textmode.js 0.4.0 → 0.6.0-beta.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/textmode.esm.js +2868 -2164
- package/dist/textmode.esm.min.js +2863 -2159
- package/dist/textmode.umd.js +11 -8
- package/dist/textmode.umd.min.js +11 -8
- package/dist/types/Textmode.d.ts +13 -22
- package/dist/types/index.d.ts +8 -6
- package/dist/types/rendering/index.d.ts +3 -3
- package/dist/types/rendering/webgl/batching/DrawQueue.d.ts +89 -0
- package/dist/types/rendering/webgl/{VAOManager.d.ts → batching/GeometryAttributeCache.d.ts} +4 -4
- package/dist/types/rendering/webgl/batching/InstanceAttributeBinder.d.ts +87 -0
- package/dist/types/rendering/webgl/{InstanceBatch.d.ts → batching/InstanceBatch.d.ts} +25 -34
- package/dist/types/rendering/webgl/batching/InstanceBuffer.d.ts +78 -0
- package/dist/types/rendering/webgl/{InstanceData.d.ts → batching/InstanceData.d.ts} +11 -18
- package/dist/types/rendering/webgl/batching/InstanceWriter.d.ts +70 -0
- package/dist/types/rendering/webgl/{Framebuffer.d.ts → core/Framebuffer.d.ts} +37 -39
- package/dist/types/rendering/webgl/core/Renderer.d.ts +64 -0
- package/dist/types/rendering/webgl/{Shader.d.ts → core/Shader.d.ts} +2 -23
- package/dist/types/rendering/webgl/core/interfaces/IFramebuffer.d.ts +103 -0
- package/dist/types/rendering/webgl/core/interfaces/IRenderer.d.ts +210 -0
- package/dist/types/rendering/webgl/geometries/{Arc.d.ts → 2d/Arc.d.ts} +5 -4
- package/dist/types/rendering/webgl/geometries/{BezierCurve.d.ts → 2d/BezierCurve.d.ts} +5 -4
- package/dist/types/rendering/webgl/geometries/{Ellipse.d.ts → 2d/Ellipse.d.ts} +6 -5
- package/dist/types/rendering/webgl/geometries/{Line.d.ts → 2d/Line.d.ts} +5 -4
- package/dist/types/rendering/webgl/geometries/{Rectangle.d.ts → 2d/Rectangle.d.ts} +5 -4
- package/dist/types/rendering/webgl/geometries/{Triangle.d.ts → 2d/Triangle.d.ts} +5 -4
- package/dist/types/rendering/webgl/geometries/BaseGeometry.d.ts +30 -26
- package/dist/types/rendering/webgl/geometries/immediate/ImmediateQuad.d.ts +33 -0
- package/dist/types/rendering/webgl/geometries/index.d.ts +6 -6
- package/dist/types/rendering/webgl/geometries/utils/GeometryDescriptors.d.ts +31 -0
- package/dist/types/rendering/webgl/geometries/utils/GeometryGenerator.d.ts +16 -0
- package/dist/types/rendering/webgl/index.d.ts +15 -14
- package/dist/types/rendering/webgl/materials/Material.d.ts +26 -0
- package/dist/types/rendering/webgl/materials/MaterialManager.d.ts +63 -0
- package/dist/types/rendering/webgl/materials/index.d.ts +2 -0
- package/dist/types/rendering/webgl/pipeline/MaterialBatchPipeline.d.ts +63 -0
- package/dist/types/rendering/webgl/pipeline/index.d.ts +7 -0
- package/dist/types/rendering/webgl/state/RenderState.d.ts +143 -0
- package/dist/types/rendering/webgl/types/DrawCommand.d.ts +5 -3
- package/dist/types/rendering/webgl/types/GeometryTypes.d.ts +10 -10
- package/dist/types/rendering/webgl/types/RenderTypes.d.ts +1 -1
- package/dist/types/rendering/webgl/utils/GLUtils.d.ts +45 -0
- package/dist/types/rendering/webgl/utils/hash.d.ts +118 -0
- package/dist/types/textmode/AnimationController.d.ts +11 -21
- package/dist/types/textmode/Canvas.d.ts +10 -2
- package/dist/types/textmode/Grid.d.ts +2 -0
- package/dist/types/textmode/TextmodeColor.d.ts +57 -0
- package/dist/types/textmode/Textmodifier.d.ts +40 -212
- package/dist/types/textmode/interfaces/ITextmodifier.d.ts +272 -0
- package/dist/types/textmode/interfaces/index.d.ts +1 -0
- package/dist/types/textmode/loadables/TextmodeImage.d.ts +21 -0
- package/dist/types/textmode/loadables/TextmodeSource.d.ts +130 -0
- package/dist/types/textmode/loadables/TextmodeVideo.d.ts +237 -0
- package/dist/types/textmode/{font → loadables/font}/CharacterColorMapper.d.ts +1 -1
- package/dist/types/textmode/{font → loadables/font}/CharacterExtractor.d.ts +0 -10
- package/dist/types/textmode/{font → loadables/font}/TextmodeFont.d.ts +6 -3
- package/dist/types/textmode/{font → loadables/font}/TextureAtlas.d.ts +4 -11
- package/dist/types/textmode/{font → loadables/font}/typr/types.d.ts +0 -6
- package/dist/types/textmode/loadables/index.d.ts +5 -0
- package/dist/types/textmode/loading/LoadingPhaseTracker.d.ts +20 -0
- package/dist/types/textmode/loading/LoadingScreenManager.d.ts +170 -0
- package/dist/types/textmode/loading/LoadingScreenState.d.ts +22 -0
- package/dist/types/textmode/loading/LoadingScreenTheme.d.ts +26 -0
- package/dist/types/textmode/loading/LoadingScreenTransition.d.ts +17 -0
- package/dist/types/textmode/loading/index.d.ts +6 -0
- package/dist/types/textmode/loading/templates/SpinnerTemplate.d.ts +2 -0
- package/dist/types/textmode/loading/templates/index.d.ts +1 -0
- package/dist/types/textmode/loading/types.d.ts +251 -0
- package/dist/types/textmode/managers/KeyboardManager.d.ts +2 -3
- package/dist/types/textmode/managers/MouseManager.d.ts +1 -1
- package/dist/types/textmode/{plugins → managers}/PluginManager.d.ts +12 -15
- package/dist/types/textmode/managers/TouchManager.d.ts +0 -2
- package/dist/types/textmode/mixins/AnimationMixin.d.ts +2 -122
- package/dist/types/textmode/mixins/FontMixin.d.ts +2 -77
- package/dist/types/textmode/mixins/KeyboardMixin.d.ts +3 -85
- package/dist/types/textmode/mixins/MouseMixin.d.ts +3 -130
- package/dist/types/textmode/mixins/RenderingMixin.d.ts +2 -749
- package/dist/types/textmode/mixins/TextmodifierMixin.d.ts +2 -44
- package/dist/types/textmode/mixins/TouchMixin.d.ts +2 -187
- package/dist/types/textmode/mixins/index.d.ts +8 -8
- package/dist/types/textmode/mixins/interfaces/IAnimationMixin.d.ts +167 -0
- package/dist/types/textmode/mixins/interfaces/IFontMixin.d.ts +46 -0
- package/dist/types/textmode/mixins/interfaces/IKeyboardMixin.d.ts +235 -0
- package/dist/types/textmode/mixins/interfaces/IMouseMixin.d.ts +457 -0
- package/dist/types/textmode/mixins/interfaces/IRenderingMixin.d.ts +1085 -0
- package/dist/types/textmode/mixins/interfaces/ITouchMixin.d.ts +186 -0
- package/dist/types/textmode/types.d.ts +49 -0
- package/dist/types/textmode/utils/cssColor.d.ts +8 -0
- package/dist/types/utils/array.d.ts +34 -0
- package/dist/types/utils/math.d.ts +69 -0
- package/package.json +1 -1
- package/dist/types/rendering/webgl/DrawQueue.d.ts +0 -30
- package/dist/types/rendering/webgl/RenderPipeline.d.ts +0 -30
- package/dist/types/rendering/webgl/RenderState.d.ts +0 -73
- package/dist/types/rendering/webgl/Renderer.d.ts +0 -158
- package/dist/types/rendering/webgl/ShaderManager.d.ts +0 -66
- package/dist/types/rendering/webgl/geometries/NoiseGrid.d.ts +0 -1
- package/dist/types/textmode/TextmodeImage.d.ts +0 -161
- package/dist/types/textmode/mixins/ShaderMixin.d.ts +0 -1
- /package/dist/types/rendering/webgl/{StateCache.d.ts → utils/ViewportCache.d.ts} +0 -0
- /package/dist/types/textmode/{font → loadables/font}/MetricsCalculator.d.ts +0 -0
- /package/dist/types/textmode/{font → loadables/font}/index.d.ts +0 -0
- /package/dist/types/textmode/{font → loadables/font}/types.d.ts +0 -0
- /package/dist/types/textmode/{font → loadables/font}/typr/Typr.d.ts +0 -0
- /package/dist/types/textmode/{font → loadables/font}/utils/FontTableReader.d.ts +0 -0
- /package/dist/types/textmode/{font → loadables/font}/utils/index.d.ts +0 -0
|
@@ -1,66 +0,0 @@
|
|
|
1
|
-
import { GLShader } from './Shader';
|
|
2
|
-
/**
|
|
3
|
-
* Registry keys for built-in shaders
|
|
4
|
-
*/
|
|
5
|
-
export declare enum BuiltInShader {
|
|
6
|
-
MRT_DRAW = "mrt-draw",
|
|
7
|
-
MRT_COPY = "mrt-copy",
|
|
8
|
-
ASCII_CONVERSION = "ascii-conversion",
|
|
9
|
-
IMAGE_TO_MRT = "image-to-mrt"
|
|
10
|
-
}
|
|
11
|
-
/**
|
|
12
|
-
* Centralized shader management system for textmode.js
|
|
13
|
-
*
|
|
14
|
-
* Provides a registry pattern for managing shared shaders, eliminating
|
|
15
|
-
* duplication and providing a single source of truth for shader lifecycle.
|
|
16
|
-
*
|
|
17
|
-
* Key benefits:
|
|
18
|
-
* - Eliminates shader duplication (especially copy shader)
|
|
19
|
-
* - Centralizes vertex shader imports
|
|
20
|
-
* - Provides lazy initialization
|
|
21
|
-
* - Supports future extensibility (shader variants, hot-reloading)
|
|
22
|
-
* - Consistent resource management
|
|
23
|
-
*/
|
|
24
|
-
export declare class ShaderManager {
|
|
25
|
-
private _gl;
|
|
26
|
-
private _copyShader;
|
|
27
|
-
private _mainDrawShader;
|
|
28
|
-
private _conversionShader;
|
|
29
|
-
private _imageToMRTShader;
|
|
30
|
-
constructor(gl: WebGL2RenderingContext);
|
|
31
|
-
/**
|
|
32
|
-
* Get the shared MRT copy shader used for framebuffer compositing
|
|
33
|
-
* This shader handles copying 5-attachment MRT data with proper transparency
|
|
34
|
-
*/
|
|
35
|
-
$getCopyShader(): GLShader;
|
|
36
|
-
/**
|
|
37
|
-
* Get the main MRT draw shader used for standard geometry rendering
|
|
38
|
-
* This shader outputs to all 5 MRT attachments for textmode rendering
|
|
39
|
-
*/
|
|
40
|
-
$getMainDrawShader(): GLShader;
|
|
41
|
-
/**
|
|
42
|
-
* Get the ASCII conversion shader used for final display output
|
|
43
|
-
* This shader converts MRT data to final ASCII characters
|
|
44
|
-
*/
|
|
45
|
-
$getConversionShader(): GLShader;
|
|
46
|
-
/**
|
|
47
|
-
* Get the shader that converts a single RGBA texture into MRT attachments.
|
|
48
|
-
* It writes brightness into o_character and grayscale into o_primaryColor.
|
|
49
|
-
*/
|
|
50
|
-
$getImageToMRTShader(): GLShader;
|
|
51
|
-
/**
|
|
52
|
-
* Create a custom filter shader using the standard instanced vertex shader
|
|
53
|
-
* These shaders are not cached as they are user-specific
|
|
54
|
-
*/
|
|
55
|
-
$createFilterShader(fragmentSource: string): GLShader;
|
|
56
|
-
/**
|
|
57
|
-
* Create a custom shader with arbitrary vertex and fragment sources
|
|
58
|
-
* These shaders are not cached as they are user-specific
|
|
59
|
-
*/
|
|
60
|
-
$createShader(vertexSource: string, fragmentSource: string): GLShader;
|
|
61
|
-
/**
|
|
62
|
-
* Dispose of all managed shaders and clear the registry
|
|
63
|
-
* This method is idempotent and safe to call multiple times
|
|
64
|
-
*/
|
|
65
|
-
$dispose(): void;
|
|
66
|
-
}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
export {};
|
|
@@ -1,161 +0,0 @@
|
|
|
1
|
-
import type { GLRenderer } from '../rendering/webgl/Renderer';
|
|
2
|
-
/**
|
|
3
|
-
* Consolidated render data for TextmodeImage
|
|
4
|
-
*/
|
|
5
|
-
export interface TextmodeImageRenderData {
|
|
6
|
-
texture: WebGLTexture;
|
|
7
|
-
invert: number;
|
|
8
|
-
flipX: number;
|
|
9
|
-
flipY: number;
|
|
10
|
-
charRotation: [number, number];
|
|
11
|
-
charColorFixed: boolean;
|
|
12
|
-
charColor: [number, number, number, number];
|
|
13
|
-
cellColorFixed: boolean;
|
|
14
|
-
cellColor: [number, number, number, number];
|
|
15
|
-
backgroundColor: [number, number, number, number];
|
|
16
|
-
charCount: number;
|
|
17
|
-
charList: number[][];
|
|
18
|
-
}
|
|
19
|
-
/**
|
|
20
|
-
* Represents an image uploaded for textmode rendering via {@link Textmodifier.loadImage}.
|
|
21
|
-
*
|
|
22
|
-
* It can be drawn to the canvas via {@link Textmodifier.image}.
|
|
23
|
-
*
|
|
24
|
-
* An image uploaded currently runs through an adjustable brightness-converter that converts
|
|
25
|
-
* the original image into a textmode representation using characters.
|
|
26
|
-
* Those adjustable options are available via chainable methods on this class.
|
|
27
|
-
*/
|
|
28
|
-
export declare class TextmodeImage {
|
|
29
|
-
/**
|
|
30
|
-
* Underlying WebGL texture handle.
|
|
31
|
-
*/
|
|
32
|
-
private _texture;
|
|
33
|
-
/** Original pixel dimensions of the source image. */
|
|
34
|
-
private _width;
|
|
35
|
-
private _height;
|
|
36
|
-
private _gl;
|
|
37
|
-
private _invert;
|
|
38
|
-
private _flipX;
|
|
39
|
-
private _flipY;
|
|
40
|
-
private _charRotation;
|
|
41
|
-
private _charColorMode;
|
|
42
|
-
private _cellColorMode;
|
|
43
|
-
private _charColor;
|
|
44
|
-
private _cellColor;
|
|
45
|
-
private _backgroundColor;
|
|
46
|
-
private _glyphColors;
|
|
47
|
-
private _glyphColorResolver;
|
|
48
|
-
/**
|
|
49
|
-
* Create a new TextmodeImage instance.
|
|
50
|
-
* @param gl WebGL2 rendering context
|
|
51
|
-
* @param texture WebGL texture containing the image
|
|
52
|
-
* @param width Original image width in pixels
|
|
53
|
-
* @param height Original image height in pixels
|
|
54
|
-
*
|
|
55
|
-
* @ignore
|
|
56
|
-
*/
|
|
57
|
-
constructor(gl: WebGL2RenderingContext, texture: WebGLTexture, width: number, height: number);
|
|
58
|
-
/**
|
|
59
|
-
* Dispose of GPU resources.
|
|
60
|
-
* @ignore
|
|
61
|
-
*/
|
|
62
|
-
$dispose(): void;
|
|
63
|
-
/** Normalize boolean | number to 0/1 */
|
|
64
|
-
private _to01;
|
|
65
|
-
/**
|
|
66
|
-
* Set the invert flag.
|
|
67
|
-
*
|
|
68
|
-
* Setting this flag to `true` will swap the character and cell colors when rendering the image.
|
|
69
|
-
*
|
|
70
|
-
* @param v Flag value
|
|
71
|
-
* @returns This instance for chaining.
|
|
72
|
-
*/
|
|
73
|
-
invert(v?: boolean | number): this;
|
|
74
|
-
/**
|
|
75
|
-
* Set horizontal flip indicator flag.
|
|
76
|
-
* @param v Flag value
|
|
77
|
-
* @returns This instance for chaining.
|
|
78
|
-
*/
|
|
79
|
-
flipX(v?: boolean | number): this;
|
|
80
|
-
/**
|
|
81
|
-
* Set vertical flip indicator flag.
|
|
82
|
-
* @param v Flag value
|
|
83
|
-
* @returns This instance for chaining.
|
|
84
|
-
*/
|
|
85
|
-
flipY(v?: boolean | number): this;
|
|
86
|
-
/**
|
|
87
|
-
* Set the character rotation in degrees.
|
|
88
|
-
* @param degrees Rotation in degrees *(0-360)*
|
|
89
|
-
* @returns This instance for chaining.
|
|
90
|
-
*/
|
|
91
|
-
charRotation(degrees: number): this;
|
|
92
|
-
/**
|
|
93
|
-
* Get all render data needed by the GLRenderer.
|
|
94
|
-
* @ignore
|
|
95
|
-
*/
|
|
96
|
-
$getRenderData(): TextmodeImageRenderData;
|
|
97
|
-
/**
|
|
98
|
-
* Set character color mode: `'sampled'` *(from image)* or `'fixed'` *(use {@link charColor})*.
|
|
99
|
-
* @param mode
|
|
100
|
-
* @returns
|
|
101
|
-
*/
|
|
102
|
-
charColorMode(mode: 'sampled' | 'fixed'): this;
|
|
103
|
-
/**
|
|
104
|
-
* Set the cell color mode: `'sampled'` *(from image)* or `'fixed'` *(use {@link cellColor})*.
|
|
105
|
-
* @param mode
|
|
106
|
-
* @returns
|
|
107
|
-
*/
|
|
108
|
-
cellColorMode(mode: 'sampled' | 'fixed'): this;
|
|
109
|
-
/**
|
|
110
|
-
* Defines the character color used when {@link charColorMode} is `'fixed'`.
|
|
111
|
-
* @param r Red channel (0-255)
|
|
112
|
-
* @param g Green channel (0-255)
|
|
113
|
-
* @param b Blue channel (0-255)
|
|
114
|
-
* @returns This instance for chaining.
|
|
115
|
-
*/
|
|
116
|
-
charColor(r: number, g?: number, b?: number, a?: number): this;
|
|
117
|
-
/**
|
|
118
|
-
* Defines the cell color used when {@link cellColorMode} is `'fixed'`.
|
|
119
|
-
* @param r Red channel (0-255)
|
|
120
|
-
* @param g Green channel (0-255)
|
|
121
|
-
* @param b Blue channel (0-255)
|
|
122
|
-
* @returns This instance for chaining.
|
|
123
|
-
*/
|
|
124
|
-
cellColor(r: number, g?: number, b?: number, a?: number): this;
|
|
125
|
-
/**
|
|
126
|
-
* Set background color for transparent pixels.
|
|
127
|
-
* @param r Red channel (0-255)
|
|
128
|
-
* @param g Green channel (0-255)
|
|
129
|
-
* @param b Blue channel (0-255)
|
|
130
|
-
* @param a Alpha channel (0-255)
|
|
131
|
-
* @returns This instance for chaining.
|
|
132
|
-
*/
|
|
133
|
-
background(r: number, g?: number, b?: number, a?: number): this;
|
|
134
|
-
/**
|
|
135
|
-
* Define the characters to use for brightness mapping as a string.
|
|
136
|
-
*
|
|
137
|
-
* The maximum number of characters for brightness mapping currently is `64`; excess characters are ignored.
|
|
138
|
-
*
|
|
139
|
-
* @param chars
|
|
140
|
-
* @returns
|
|
141
|
-
*/
|
|
142
|
-
characters(chars: string): this;
|
|
143
|
-
/**
|
|
144
|
-
* Create a TextmodeImage from an HTML image/video/canvas element.
|
|
145
|
-
* Texture parameters use NEAREST and CLAMP to align with grid sampling.
|
|
146
|
-
* @ignore
|
|
147
|
-
*/
|
|
148
|
-
static $fromSource(renderer: GLRenderer, source: HTMLImageElement | HTMLCanvasElement | HTMLVideoElement, glyphResolver: (s: string) => ([number, number, number])[]): TextmodeImage;
|
|
149
|
-
/**
|
|
150
|
-
* WebGL texture handle containing the original source image.
|
|
151
|
-
*/
|
|
152
|
-
get texture(): WebGLTexture;
|
|
153
|
-
/**
|
|
154
|
-
* Original pixel width of the source image.
|
|
155
|
-
*/
|
|
156
|
-
get width(): number;
|
|
157
|
-
/**
|
|
158
|
-
* Original pixel height of the source image.
|
|
159
|
-
*/
|
|
160
|
-
get height(): number;
|
|
161
|
-
}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
export {};
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|
|
File without changes
|