@lightningjs/renderer 2.9.0-beta2 → 2.9.0-beta3
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/COPYING +1 -0
- package/LICENSE +202 -202
- package/NOTICE +3 -3
- package/README.md +147 -147
- package/dist/src/core/CoreNode.d.ts +2 -1
- package/dist/src/core/CoreNode.js +54 -43
- package/dist/src/core/CoreNode.js.map +1 -1
- package/dist/src/core/CoreTextureManager.d.ts +61 -15
- package/dist/src/core/CoreTextureManager.js +179 -104
- package/dist/src/core/CoreTextureManager.js.map +1 -1
- package/dist/src/core/Stage.d.ts +7 -0
- package/dist/src/core/Stage.js +33 -1
- package/dist/src/core/Stage.js.map +1 -1
- package/dist/src/core/TextureMemoryManager.js +2 -5
- package/dist/src/core/TextureMemoryManager.js.map +1 -1
- package/dist/src/core/lib/ImageWorker.js +31 -28
- package/dist/src/core/lib/ImageWorker.js.map +1 -1
- package/dist/src/core/lib/WebGlContextWrapper.d.ts +1 -0
- package/dist/src/core/lib/WebGlContextWrapper.js +2 -0
- package/dist/src/core/lib/WebGlContextWrapper.js.map +1 -1
- package/dist/src/core/renderers/CoreContextTexture.d.ts +1 -0
- package/dist/src/core/renderers/CoreContextTexture.js +1 -0
- package/dist/src/core/renderers/CoreContextTexture.js.map +1 -1
- package/dist/src/core/renderers/canvas/CanvasCoreRenderer.d.ts +1 -1
- package/dist/src/core/renderers/canvas/CanvasCoreRenderer.js +13 -5
- package/dist/src/core/renderers/canvas/CanvasCoreRenderer.js.map +1 -1
- package/dist/src/core/renderers/canvas/CanvasCoreTexture.js +6 -8
- package/dist/src/core/renderers/canvas/CanvasCoreTexture.js.map +1 -1
- package/dist/src/core/renderers/webgl/WebGlCoreCtxSubTexture.js +3 -1
- package/dist/src/core/renderers/webgl/WebGlCoreCtxSubTexture.js.map +1 -1
- package/dist/src/core/renderers/webgl/WebGlCoreCtxTexture.d.ts +1 -2
- package/dist/src/core/renderers/webgl/WebGlCoreCtxTexture.js +26 -24
- package/dist/src/core/renderers/webgl/WebGlCoreCtxTexture.js.map +1 -1
- package/dist/src/core/renderers/webgl/WebGlCoreRenderer.d.ts +0 -1
- package/dist/src/core/renderers/webgl/WebGlCoreRenderer.js +7 -17
- package/dist/src/core/renderers/webgl/WebGlCoreRenderer.js.map +1 -1
- package/dist/src/core/renderers/webgl/shaders/DefaultShader.js +45 -45
- package/dist/src/core/renderers/webgl/shaders/DefaultShaderBatched.js +61 -61
- package/dist/src/core/renderers/webgl/shaders/DynamicShader.js +93 -93
- package/dist/src/core/renderers/webgl/shaders/RoundedRectangle.js +63 -63
- package/dist/src/core/renderers/webgl/shaders/SdfShader.js +62 -62
- package/dist/src/core/renderers/webgl/shaders/effects/BorderBottomEffect.js +15 -15
- package/dist/src/core/renderers/webgl/shaders/effects/BorderEffect.js +6 -6
- package/dist/src/core/renderers/webgl/shaders/effects/BorderLeftEffect.js +15 -15
- package/dist/src/core/renderers/webgl/shaders/effects/BorderRightEffect.js +15 -15
- package/dist/src/core/renderers/webgl/shaders/effects/BorderTopEffect.js +15 -15
- package/dist/src/core/renderers/webgl/shaders/effects/FadeOutEffect.js +42 -42
- package/dist/src/core/renderers/webgl/shaders/effects/GlitchEffect.js +44 -44
- package/dist/src/core/renderers/webgl/shaders/effects/GrayscaleEffect.js +3 -3
- package/dist/src/core/renderers/webgl/shaders/effects/HolePunchEffect.js +22 -22
- package/dist/src/core/renderers/webgl/shaders/effects/LinearGradientEffect.js +28 -28
- package/dist/src/core/renderers/webgl/shaders/effects/RadialGradientEffect.js +10 -10
- package/dist/src/core/renderers/webgl/shaders/effects/RadialProgressEffect.js +37 -37
- package/dist/src/core/renderers/webgl/shaders/effects/RadiusEffect.js +19 -19
- package/dist/src/core/text-rendering/font-face-types/SdfTrFontFace/SdfTrFontFace.js +3 -5
- package/dist/src/core/text-rendering/font-face-types/SdfTrFontFace/SdfTrFontFace.js.map +1 -1
- package/dist/src/core/text-rendering/renderers/CanvasTextRenderer.js +2 -1
- package/dist/src/core/text-rendering/renderers/CanvasTextRenderer.js.map +1 -1
- package/dist/src/core/textures/ColorTexture.d.ts +1 -1
- package/dist/src/core/textures/ColorTexture.js +2 -1
- package/dist/src/core/textures/ColorTexture.js.map +1 -1
- package/dist/src/core/textures/ImageTexture.d.ts +8 -1
- package/dist/src/core/textures/ImageTexture.js +39 -1
- package/dist/src/core/textures/ImageTexture.js.map +1 -1
- package/dist/src/core/textures/NoiseTexture.d.ts +1 -1
- package/dist/src/core/textures/NoiseTexture.js +2 -1
- package/dist/src/core/textures/NoiseTexture.js.map +1 -1
- package/dist/src/core/textures/RenderTexture.d.ts +1 -1
- package/dist/src/core/textures/RenderTexture.js +2 -1
- package/dist/src/core/textures/RenderTexture.js.map +1 -1
- package/dist/src/core/textures/SubTexture.d.ts +1 -1
- package/dist/src/core/textures/SubTexture.js +21 -4
- package/dist/src/core/textures/SubTexture.js.map +1 -1
- package/dist/src/core/textures/Texture.d.ts +43 -21
- package/dist/src/core/textures/Texture.js +105 -33
- package/dist/src/core/textures/Texture.js.map +1 -1
- package/dist/src/main-api/Renderer.d.ts +18 -0
- package/dist/src/main-api/Renderer.js +6 -4
- package/dist/src/main-api/Renderer.js.map +1 -1
- package/dist/tsconfig.dist.tsbuildinfo +1 -1
- package/exports/canvas.ts +39 -39
- package/exports/index.ts +89 -89
- package/exports/inspector.ts +24 -24
- package/exports/utils.ts +44 -44
- package/exports/webgl.ts +38 -38
- package/package.json +1 -1
- package/scripts/please-use-pnpm.js +13 -13
- package/src/common/CommonTypes.ts +139 -139
- package/src/common/EventEmitter.ts +77 -77
- package/src/common/IAnimationController.ts +92 -92
- package/src/common/IEventEmitter.ts +28 -28
- package/src/core/CoreNode.test.ts +95 -95
- package/src/core/CoreNode.ts +2282 -2258
- package/src/core/CoreShaderManager.ts +292 -292
- package/src/core/CoreTextNode.ts +450 -450
- package/src/core/CoreTextureManager.ts +522 -432
- package/src/core/Stage.ts +699 -652
- package/src/core/TextureMemoryManager.ts +277 -279
- package/src/core/animations/AnimationManager.ts +38 -38
- package/src/core/animations/CoreAnimation.ts +340 -340
- package/src/core/animations/CoreAnimationController.ts +157 -157
- package/src/core/lib/ContextSpy.ts +41 -41
- package/src/core/lib/ImageWorker.ts +270 -267
- package/src/core/lib/Matrix3d.ts +244 -244
- package/src/core/lib/RenderCoords.ts +86 -86
- package/src/core/lib/WebGlContextWrapper.ts +1322 -1320
- package/src/core/lib/textureCompression.ts +152 -152
- package/src/core/lib/textureSvg.ts +78 -78
- package/src/core/lib/utils.ts +306 -306
- package/src/core/platform.ts +61 -61
- package/src/core/renderers/CoreContextTexture.ts +43 -42
- package/src/core/renderers/CoreRenderOp.ts +22 -22
- package/src/core/renderers/CoreRenderer.ts +114 -114
- package/src/core/renderers/CoreShader.ts +41 -41
- package/src/core/renderers/canvas/CanvasCoreRenderer.ts +364 -353
- package/src/core/renderers/canvas/CanvasCoreTexture.ts +150 -149
- package/src/core/renderers/canvas/internal/C2DShaderUtils.ts +231 -231
- package/src/core/renderers/canvas/internal/ColorUtils.ts +69 -69
- package/src/core/renderers/canvas/shaders/UnsupportedShader.ts +48 -48
- package/src/core/renderers/webgl/WebGlCoreCtxRenderTexture.ts +79 -79
- package/src/core/renderers/webgl/WebGlCoreCtxSubTexture.ts +50 -48
- package/src/core/renderers/webgl/WebGlCoreCtxTexture.ts +298 -290
- package/src/core/renderers/webgl/WebGlCoreRenderOp.ts +125 -125
- package/src/core/renderers/webgl/WebGlCoreRenderer.ts +805 -817
- package/src/core/renderers/webgl/WebGlCoreShader.ts +362 -362
- package/src/core/renderers/webgl/internal/BufferCollection.ts +54 -54
- package/src/core/renderers/webgl/internal/ShaderUtils.ts +143 -143
- package/src/core/renderers/webgl/internal/WebGlUtils.ts +35 -35
- package/src/core/renderers/webgl/shaders/DefaultShader.ts +93 -93
- package/src/core/renderers/webgl/shaders/DefaultShaderBatched.ts +132 -132
- package/src/core/renderers/webgl/shaders/DynamicShader.ts +580 -580
- package/src/core/renderers/webgl/shaders/RoundedRectangle.ts +167 -167
- package/src/core/renderers/webgl/shaders/SdfShader.ts +204 -204
- package/src/core/renderers/webgl/shaders/effects/BorderBottomEffect.ts +101 -101
- package/src/core/renderers/webgl/shaders/effects/BorderEffect.ts +87 -87
- package/src/core/renderers/webgl/shaders/effects/BorderLeftEffect.ts +101 -101
- package/src/core/renderers/webgl/shaders/effects/BorderRightEffect.ts +101 -101
- package/src/core/renderers/webgl/shaders/effects/BorderTopEffect.ts +101 -101
- package/src/core/renderers/webgl/shaders/effects/EffectUtils.ts +159 -159
- package/src/core/renderers/webgl/shaders/effects/FadeOutEffect.ts +127 -127
- package/src/core/renderers/webgl/shaders/effects/GlitchEffect.ts +148 -148
- package/src/core/renderers/webgl/shaders/effects/GrayscaleEffect.ts +67 -67
- package/src/core/renderers/webgl/shaders/effects/HolePunchEffect.ts +157 -157
- package/src/core/renderers/webgl/shaders/effects/LinearGradientEffect.ts +171 -171
- package/src/core/renderers/webgl/shaders/effects/RadialGradientEffect.ts +168 -168
- package/src/core/renderers/webgl/shaders/effects/RadialProgressEffect.ts +187 -187
- package/src/core/renderers/webgl/shaders/effects/RadiusEffect.ts +110 -110
- package/src/core/renderers/webgl/shaders/effects/ShaderEffect.ts +196 -196
- package/src/core/text-rendering/TextRenderingUtils.ts +36 -36
- package/src/core/text-rendering/TextTextureRendererUtils.ts +263 -263
- package/src/core/text-rendering/TrFontManager.ts +183 -183
- package/src/core/text-rendering/font-face-types/SdfTrFontFace/SdfTrFontFace.ts +169 -171
- package/src/core/text-rendering/font-face-types/SdfTrFontFace/internal/FontShaper.ts +139 -139
- package/src/core/text-rendering/font-face-types/SdfTrFontFace/internal/SdfFontShaper.test.ts +173 -173
- package/src/core/text-rendering/font-face-types/SdfTrFontFace/internal/SdfFontShaper.ts +171 -171
- package/src/core/text-rendering/font-face-types/TrFontFace.ts +187 -187
- package/src/core/text-rendering/font-face-types/WebTrFontFace.ts +89 -89
- package/src/core/text-rendering/renderers/CanvasTextRenderer.ts +509 -507
- package/src/core/text-rendering/renderers/LightningTextTextureRenderer.ts +798 -798
- package/src/core/text-rendering/renderers/SdfTextRenderer/SdfTextRenderer.ts +853 -853
- package/src/core/text-rendering/renderers/SdfTextRenderer/internal/PeekableGenerator.test.ts +48 -48
- package/src/core/text-rendering/renderers/SdfTextRenderer/internal/PeekableGenerator.ts +66 -66
- package/src/core/text-rendering/renderers/SdfTextRenderer/internal/SpecialCodepoints.ts +52 -52
- package/src/core/text-rendering/renderers/SdfTextRenderer/internal/constants.ts +32 -32
- package/src/core/text-rendering/renderers/SdfTextRenderer/internal/getStartConditions.ts +117 -117
- package/src/core/text-rendering/renderers/SdfTextRenderer/internal/getUnicodeCodepoints.test.ts +133 -133
- package/src/core/text-rendering/renderers/SdfTextRenderer/internal/getUnicodeCodepoints.ts +38 -38
- package/src/core/text-rendering/renderers/SdfTextRenderer/internal/layoutText.ts +403 -403
- package/src/core/text-rendering/renderers/SdfTextRenderer/internal/measureText.test.ts +49 -49
- package/src/core/text-rendering/renderers/SdfTextRenderer/internal/measureText.ts +52 -52
- package/src/core/text-rendering/renderers/SdfTextRenderer/internal/setRenderWindow.test.ts +205 -205
- package/src/core/text-rendering/renderers/SdfTextRenderer/internal/setRenderWindow.ts +93 -93
- package/src/core/text-rendering/renderers/SdfTextRenderer/internal/util.ts +40 -40
- package/src/core/text-rendering/renderers/TextRenderer.ts +557 -557
- package/src/core/textures/ColorTexture.ts +102 -100
- package/src/core/textures/ImageTexture.ts +378 -337
- package/src/core/textures/NoiseTexture.ts +104 -101
- package/src/core/textures/RenderTexture.ts +85 -83
- package/src/core/textures/SubTexture.ts +171 -146
- package/src/core/textures/Texture.ts +407 -318
- package/src/core/utils.ts +227 -227
- package/src/env.d.ts +7 -7
- package/src/main-api/DynamicShaderController.ts +104 -104
- package/src/main-api/INode.ts +101 -101
- package/src/main-api/Inspector.ts +505 -505
- package/src/main-api/Renderer.ts +693 -670
- package/src/main-api/ShaderController.ts +80 -80
- package/src/main-api/utils.ts +45 -45
- package/src/utils.ts +248 -248
|
@@ -76,11 +76,7 @@ export interface TextureStateEventMap {
|
|
|
76
76
|
loaded: TextureLoadedEventHandler;
|
|
77
77
|
failed: TextureFailedEventHandler;
|
|
78
78
|
}
|
|
79
|
-
|
|
80
|
-
* Like the built-in Parameters<> type but skips the first parameter (which is
|
|
81
|
-
* `target` currently)
|
|
82
|
-
*/
|
|
83
|
-
type ParametersSkipTarget<T extends (...args: any) => any> = T extends (target: any, ...args: infer P) => any ? P : never;
|
|
79
|
+
export type UpdateType = 'source' | 'coreCtx';
|
|
84
80
|
/**
|
|
85
81
|
* Represents a source of texture data for a CoreContextTexture.
|
|
86
82
|
*
|
|
@@ -101,12 +97,16 @@ export declare abstract class Texture extends EventEmitter {
|
|
|
101
97
|
*/
|
|
102
98
|
readonly dimensions: Readonly<Dimensions> | null;
|
|
103
99
|
readonly error: Error | null;
|
|
104
|
-
|
|
100
|
+
state: TextureState;
|
|
101
|
+
private sourceState;
|
|
102
|
+
private coreCtxState;
|
|
105
103
|
readonly renderableOwners: Set<unknown>;
|
|
106
104
|
readonly renderable: boolean;
|
|
107
105
|
readonly lastRenderableChangeTime = 0;
|
|
108
106
|
type: TextureType;
|
|
109
107
|
preventCleanup: boolean;
|
|
108
|
+
ctxTexture: CoreContextTexture | undefined;
|
|
109
|
+
textureData: TextureData | null;
|
|
110
110
|
constructor(txManager: CoreTextureManager);
|
|
111
111
|
/**
|
|
112
112
|
* Add/remove an owner to/from the Texture based on its renderability.
|
|
@@ -134,28 +134,42 @@ export declare abstract class Texture extends EventEmitter {
|
|
|
134
134
|
*/
|
|
135
135
|
onChangeIsRenderable?(isRenderable: boolean): void;
|
|
136
136
|
/**
|
|
137
|
-
*
|
|
137
|
+
* Load the core context texture for this Texture.
|
|
138
|
+
* The ctxTexture is created by the renderer and lives on the GPU.
|
|
139
|
+
*
|
|
140
|
+
* @returns
|
|
141
|
+
*/
|
|
142
|
+
loadCtxTexture(): CoreContextTexture;
|
|
143
|
+
/**
|
|
144
|
+
* Free the core context texture for this Texture.
|
|
145
|
+
*
|
|
146
|
+
* @remarks
|
|
147
|
+
* The ctxTexture is created by the renderer and lives on the GPU.
|
|
148
|
+
*/
|
|
149
|
+
free(): void;
|
|
150
|
+
private setState;
|
|
151
|
+
/**
|
|
152
|
+
* Set the source state of the texture
|
|
138
153
|
*
|
|
139
154
|
* @remarks
|
|
140
|
-
*
|
|
141
|
-
*
|
|
142
|
-
* (WebGL, Canvas, etc).
|
|
155
|
+
* The source of the texture can either be generated by the texture itself or
|
|
156
|
+
* loaded from an external source.
|
|
143
157
|
*
|
|
144
|
-
*
|
|
145
|
-
*
|
|
158
|
+
* @param state State of the texture
|
|
159
|
+
* @param errorOrDimensions Error or dimensions of the texture
|
|
146
160
|
*/
|
|
147
|
-
|
|
161
|
+
setSourceState(state: TextureState, errorOrDimensions?: Error | Dimensions): void;
|
|
148
162
|
/**
|
|
149
|
-
* Set the state of the texture
|
|
163
|
+
* Set the core context state of the texture
|
|
150
164
|
*
|
|
151
|
-
* @
|
|
152
|
-
*
|
|
153
|
-
* by it's associated {@link CoreContextTexture}
|
|
165
|
+
* @remarks
|
|
166
|
+
* The core context state of the texture is the state of the texture on the GPU.
|
|
154
167
|
*
|
|
155
|
-
* @param state
|
|
156
|
-
* @param
|
|
168
|
+
* @param state State of the texture
|
|
169
|
+
* @param errorOrDimensions Error or dimensions of the texture
|
|
157
170
|
*/
|
|
158
|
-
|
|
171
|
+
setCoreCtxState(state: TextureState, errorOrDimensions?: Error | Dimensions): void;
|
|
172
|
+
private updateState;
|
|
159
173
|
/**
|
|
160
174
|
* Get the texture data for this texture.
|
|
161
175
|
*
|
|
@@ -166,7 +180,15 @@ export declare abstract class Texture extends EventEmitter {
|
|
|
166
180
|
* @returns
|
|
167
181
|
* The texture data for this texture.
|
|
168
182
|
*/
|
|
169
|
-
|
|
183
|
+
getTextureData(): Promise<TextureData>;
|
|
184
|
+
/**
|
|
185
|
+
* Get the texture source for this texture.
|
|
186
|
+
*
|
|
187
|
+
* @remarks
|
|
188
|
+
* This method is called by the CoreContextTexture when the texture is loaded.
|
|
189
|
+
* The texture source is then used to populate the CoreContextTexture.
|
|
190
|
+
*/
|
|
191
|
+
abstract getTextureSource(): Promise<TextureData>;
|
|
170
192
|
/**
|
|
171
193
|
* Make a cache key for this texture.
|
|
172
194
|
*
|
|
@@ -46,12 +46,19 @@ export class Texture extends EventEmitter {
|
|
|
46
46
|
*/
|
|
47
47
|
dimensions = null;
|
|
48
48
|
error = null;
|
|
49
|
+
// aggregate state
|
|
49
50
|
state = 'freed';
|
|
51
|
+
// texture source state
|
|
52
|
+
sourceState = 'freed';
|
|
53
|
+
// texture (gpu) state
|
|
54
|
+
coreCtxState = 'freed';
|
|
50
55
|
renderableOwners = new Set();
|
|
51
56
|
renderable = false;
|
|
52
57
|
lastRenderableChangeTime = 0;
|
|
53
58
|
type = TextureType.generic;
|
|
54
59
|
preventCleanup = false;
|
|
60
|
+
ctxTexture;
|
|
61
|
+
textureData = null;
|
|
55
62
|
constructor(txManager) {
|
|
56
63
|
super();
|
|
57
64
|
this.txManager = txManager;
|
|
@@ -76,7 +83,6 @@ export class Texture extends EventEmitter {
|
|
|
76
83
|
this.renderableOwners.add(owner);
|
|
77
84
|
const newSize = this.renderableOwners.size;
|
|
78
85
|
if (newSize > oldSize && newSize === 1) {
|
|
79
|
-
// eslint-disable-next-line @typescript-eslint/no-unnecessary-type-assertion
|
|
80
86
|
this.renderable = true;
|
|
81
87
|
this.lastRenderableChangeTime = this.txManager.frameTime;
|
|
82
88
|
this.onChangeIsRenderable?.(true);
|
|
@@ -86,7 +92,6 @@ export class Texture extends EventEmitter {
|
|
|
86
92
|
this.renderableOwners.delete(owner);
|
|
87
93
|
const newSize = this.renderableOwners.size;
|
|
88
94
|
if (newSize < oldSize && newSize === 0) {
|
|
89
|
-
// eslint-disable-next-line @typescript-eslint/no-unnecessary-type-assertion
|
|
90
95
|
this.renderable = false;
|
|
91
96
|
this.lastRenderableChangeTime = this.txManager.frameTime;
|
|
92
97
|
this.onChangeIsRenderable?.(false);
|
|
@@ -94,47 +99,114 @@ export class Texture extends EventEmitter {
|
|
|
94
99
|
}
|
|
95
100
|
}
|
|
96
101
|
/**
|
|
97
|
-
*
|
|
102
|
+
* Load the core context texture for this Texture.
|
|
103
|
+
* The ctxTexture is created by the renderer and lives on the GPU.
|
|
104
|
+
*
|
|
105
|
+
* @returns
|
|
106
|
+
*/
|
|
107
|
+
loadCtxTexture() {
|
|
108
|
+
if (this.ctxTexture === undefined) {
|
|
109
|
+
this.ctxTexture = this.txManager.renderer.createCtxTexture(this);
|
|
110
|
+
}
|
|
111
|
+
return this.ctxTexture;
|
|
112
|
+
}
|
|
113
|
+
/**
|
|
114
|
+
* Free the core context texture for this Texture.
|
|
115
|
+
*
|
|
116
|
+
* @remarks
|
|
117
|
+
* The ctxTexture is created by the renderer and lives on the GPU.
|
|
118
|
+
*/
|
|
119
|
+
free() {
|
|
120
|
+
this.ctxTexture?.free();
|
|
121
|
+
if (this.textureData !== null) {
|
|
122
|
+
this.textureData = null;
|
|
123
|
+
}
|
|
124
|
+
}
|
|
125
|
+
setState(state, type, errorOrDimensions) {
|
|
126
|
+
const stateObj = type === 'source' ? 'sourceState' : 'coreCtxState';
|
|
127
|
+
if (this[stateObj] === state) {
|
|
128
|
+
return;
|
|
129
|
+
}
|
|
130
|
+
this[stateObj] = state;
|
|
131
|
+
if (state === 'loaded') {
|
|
132
|
+
this.dimensions = errorOrDimensions;
|
|
133
|
+
}
|
|
134
|
+
else if (state === 'failed') {
|
|
135
|
+
this.error = errorOrDimensions;
|
|
136
|
+
}
|
|
137
|
+
this.updateState();
|
|
138
|
+
}
|
|
139
|
+
/**
|
|
140
|
+
* Set the source state of the texture
|
|
141
|
+
*
|
|
142
|
+
* @remarks
|
|
143
|
+
* The source of the texture can either be generated by the texture itself or
|
|
144
|
+
* loaded from an external source.
|
|
145
|
+
*
|
|
146
|
+
* @param state State of the texture
|
|
147
|
+
* @param errorOrDimensions Error or dimensions of the texture
|
|
148
|
+
*/
|
|
149
|
+
setSourceState(state, errorOrDimensions) {
|
|
150
|
+
this.setState(state, 'source', errorOrDimensions);
|
|
151
|
+
}
|
|
152
|
+
/**
|
|
153
|
+
* Set the core context state of the texture
|
|
98
154
|
*
|
|
99
155
|
* @remarks
|
|
100
|
-
*
|
|
101
|
-
* manage the texture's native data depending on the renderer's mode
|
|
102
|
-
* (WebGL, Canvas, etc).
|
|
156
|
+
* The core context state of the texture is the state of the texture on the GPU.
|
|
103
157
|
*
|
|
104
|
-
*
|
|
105
|
-
*
|
|
158
|
+
* @param state State of the texture
|
|
159
|
+
* @param errorOrDimensions Error or dimensions of the texture
|
|
106
160
|
*/
|
|
107
|
-
|
|
108
|
-
|
|
109
|
-
|
|
110
|
-
|
|
111
|
-
|
|
112
|
-
|
|
161
|
+
setCoreCtxState(state, errorOrDimensions) {
|
|
162
|
+
this.setState(state, 'coreCtx', errorOrDimensions);
|
|
163
|
+
}
|
|
164
|
+
updateState() {
|
|
165
|
+
const ctxState = this.coreCtxState;
|
|
166
|
+
const sourceState = this.sourceState;
|
|
167
|
+
let newState = 'freed';
|
|
168
|
+
let payload = null;
|
|
169
|
+
if (sourceState === 'failed' || ctxState === 'failed') {
|
|
170
|
+
newState = 'failed';
|
|
171
|
+
payload = this.error; // Error set by the source
|
|
172
|
+
}
|
|
173
|
+
else if (sourceState === 'loading' || ctxState === 'loading') {
|
|
174
|
+
newState = 'loading';
|
|
175
|
+
}
|
|
176
|
+
else if (sourceState === 'loaded' && ctxState === 'loaded') {
|
|
177
|
+
newState = 'loaded';
|
|
178
|
+
payload = this.dimensions; // Dimensions set by the source
|
|
179
|
+
}
|
|
180
|
+
else if ((sourceState === 'loaded' && ctxState === 'freed') ||
|
|
181
|
+
(ctxState === 'loaded' && sourceState === 'freed')) {
|
|
182
|
+
// If one is loaded and the other is freed, then we are in a loading state
|
|
183
|
+
newState = 'loading';
|
|
184
|
+
}
|
|
185
|
+
else {
|
|
186
|
+
newState = 'freed';
|
|
187
|
+
}
|
|
188
|
+
if (this.state === newState) {
|
|
189
|
+
return;
|
|
190
|
+
}
|
|
191
|
+
// emit the new state
|
|
192
|
+
this.state = newState;
|
|
193
|
+
this.emit(newState, payload);
|
|
113
194
|
}
|
|
114
195
|
/**
|
|
115
|
-
*
|
|
196
|
+
* Get the texture data for this texture.
|
|
116
197
|
*
|
|
117
|
-
* @
|
|
118
|
-
*
|
|
119
|
-
*
|
|
198
|
+
* @remarks
|
|
199
|
+
* This method is called by the CoreContextTexture when the texture is loaded.
|
|
200
|
+
* The texture data is then used to populate the CoreContextTexture.
|
|
120
201
|
*
|
|
121
|
-
* @
|
|
122
|
-
*
|
|
202
|
+
* @returns
|
|
203
|
+
* The texture data for this texture.
|
|
123
204
|
*/
|
|
124
|
-
|
|
125
|
-
if (this.
|
|
126
|
-
|
|
127
|
-
this.state = state;
|
|
128
|
-
if (state === 'loaded') {
|
|
129
|
-
const loadedArgs = args;
|
|
130
|
-
this.dimensions = loadedArgs[0];
|
|
131
|
-
}
|
|
132
|
-
else if (state === 'failed') {
|
|
133
|
-
const failedArgs = args;
|
|
134
|
-
this.error = failedArgs[0];
|
|
135
|
-
}
|
|
136
|
-
this.emit(state, ...args);
|
|
205
|
+
async getTextureData() {
|
|
206
|
+
if (this.textureData === null) {
|
|
207
|
+
this.textureData = await this.getTextureSource();
|
|
137
208
|
}
|
|
209
|
+
return this.textureData;
|
|
138
210
|
}
|
|
139
211
|
/**
|
|
140
212
|
* Make a cache key for this texture.
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Texture.js","sourceRoot":"","sources":["../../../../src/core/textures/Texture.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;GAiBG;AAKH,OAAO,EAAE,YAAY,EAAE,MAAM,8BAA8B,CAAC;AAmF5D,MAAM,CAAN,IAAY,WAOX;AAPD,WAAY,WAAW;IACrB,mDAAa,CAAA;IACb,+CAAW,CAAA;IACX,+CAAW,CAAA;IACX,+CAAW,CAAA;IACX,mEAAqB,CAAA;IACrB,yDAAgB,CAAA;AAClB,CAAC,EAPW,WAAW,KAAX,WAAW,QAOtB;
|
|
1
|
+
{"version":3,"file":"Texture.js","sourceRoot":"","sources":["../../../../src/core/textures/Texture.ts"],"names":[],"mappings":"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"}
|
|
@@ -216,6 +216,24 @@ export interface RendererMainSettings {
|
|
|
216
216
|
* @defaultValue `true`
|
|
217
217
|
*/
|
|
218
218
|
strictBounds?: boolean;
|
|
219
|
+
/**
|
|
220
|
+
* Texture Processing Limit
|
|
221
|
+
*
|
|
222
|
+
* @remarks
|
|
223
|
+
* The maximum number of textures to process in a single frame. This is used to
|
|
224
|
+
* prevent the renderer from processing too many textures in a single frame.
|
|
225
|
+
*
|
|
226
|
+
* @defaultValue `0`
|
|
227
|
+
*/
|
|
228
|
+
textureProcessingLimit?: number;
|
|
229
|
+
/**
|
|
230
|
+
* Canvas object to use for rendering
|
|
231
|
+
*
|
|
232
|
+
* @remarks
|
|
233
|
+
* This is used to render the scene graph. If not provided, a new canvas
|
|
234
|
+
* element will be created and appended to the target element.
|
|
235
|
+
*/
|
|
236
|
+
canvas?: HTMLCanvasElement;
|
|
219
237
|
}
|
|
220
238
|
/**
|
|
221
239
|
* The Renderer Main API
|
|
@@ -107,12 +107,13 @@ export class RendererMain extends EventEmitter {
|
|
|
107
107
|
quadBufferSize: settings.quadBufferSize ?? 4 * 1024 * 1024,
|
|
108
108
|
fontEngines: settings.fontEngines,
|
|
109
109
|
strictBounds: settings.strictBounds ?? true,
|
|
110
|
+
textureProcessingLimit: settings.textureProcessingLimit || 0,
|
|
111
|
+
canvas: settings.canvas || document.createElement('canvas'),
|
|
110
112
|
};
|
|
111
113
|
this.settings = resolvedSettings;
|
|
112
|
-
const { appWidth, appHeight, deviceLogicalPixelRatio, devicePhysicalPixelRatio, inspector, } = resolvedSettings;
|
|
114
|
+
const { appWidth, appHeight, deviceLogicalPixelRatio, devicePhysicalPixelRatio, inspector, canvas, } = resolvedSettings;
|
|
113
115
|
const deviceLogicalWidth = appWidth * deviceLogicalPixelRatio;
|
|
114
116
|
const deviceLogicalHeight = appHeight * deviceLogicalPixelRatio;
|
|
115
|
-
const canvas = document.createElement('canvas');
|
|
116
117
|
this.canvas = canvas;
|
|
117
118
|
canvas.width = deviceLogicalWidth * devicePhysicalPixelRatio;
|
|
118
119
|
canvas.height = deviceLogicalHeight * devicePhysicalPixelRatio;
|
|
@@ -138,6 +139,7 @@ export class RendererMain extends EventEmitter {
|
|
|
138
139
|
fontEngines: this.settings.fontEngines,
|
|
139
140
|
inspector: this.settings.inspector !== null,
|
|
140
141
|
strictBounds: this.settings.strictBounds,
|
|
142
|
+
textureProcessingLimit: this.settings.textureProcessingLimit,
|
|
141
143
|
});
|
|
142
144
|
// Extract the root node
|
|
143
145
|
this.root = this.stage.root;
|
|
@@ -234,7 +236,7 @@ export class RendererMain extends EventEmitter {
|
|
|
234
236
|
* @returns
|
|
235
237
|
*/
|
|
236
238
|
createTexture(textureType, props) {
|
|
237
|
-
return this.stage.txManager.
|
|
239
|
+
return this.stage.txManager.createTexture(textureType, props);
|
|
238
240
|
}
|
|
239
241
|
/**
|
|
240
242
|
* Create a new shader controller for a shader type
|
|
@@ -350,7 +352,7 @@ export class RendererMain extends EventEmitter {
|
|
|
350
352
|
* May not do anything if the render loop is running on a separate worker.
|
|
351
353
|
*/
|
|
352
354
|
rerender() {
|
|
353
|
-
|
|
355
|
+
this.stage.requestRender();
|
|
354
356
|
}
|
|
355
357
|
/**
|
|
356
358
|
* Sets the clear color for the stage.
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Renderer.js","sourceRoot":"","sources":["../../../src/main-api/Renderer.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;GAiBG;AAKH,OAAO,EAAE,YAAY,EAAE,MAAM,2BAA2B,CAAC;AACzD,OAAO,EAAE,YAAY,EAAE,uBAAuB,EAAE,MAAM,aAAa,CAAC;AACpE,OAAO,EAAE,KAAK,EAAE,MAAM,kBAAkB,CAAC;AACzC,OAAO,EAAE,QAAQ,EAAsB,MAAM,qBAAqB,CAAC;AACnE,OAAO,EAA0B,MAAM,yBAAyB,CAAC;
|
|
1
|
+
{"version":3,"file":"Renderer.js","sourceRoot":"","sources":["../../../src/main-api/Renderer.ts"],"names":[],"mappings":"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"}
|