@lightningjs/renderer 2.18.3 → 2.19.0
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/exports/canvas-shaders.d.ts +10 -0
- package/dist/exports/canvas-shaders.js +27 -0
- package/dist/exports/canvas-shaders.js.map +1 -0
- package/dist/exports/index.d.ts +1 -0
- package/dist/exports/index.js +1 -0
- package/dist/exports/index.js.map +1 -1
- package/dist/exports/webgl-shaders.d.ts +11 -0
- package/dist/exports/webgl-shaders.js +28 -0
- package/dist/exports/webgl-shaders.js.map +1 -0
- package/dist/src/common/CommonTypes.d.ts +2 -1
- package/dist/src/core/CoreTextureManager.d.ts +2 -0
- package/dist/src/core/CoreTextureManager.js +8 -4
- package/dist/src/core/CoreTextureManager.js.map +1 -1
- package/dist/src/core/Stage.d.ts +1 -0
- package/dist/src/core/Stage.js +2 -1
- package/dist/src/core/Stage.js.map +1 -1
- package/dist/src/core/TextureError.d.ts +11 -0
- package/dist/src/core/TextureError.js +37 -0
- package/dist/src/core/TextureError.js.map +1 -0
- package/dist/src/core/TextureMemoryManager.d.ts +1 -0
- package/dist/src/core/TextureMemoryManager.js +6 -1
- package/dist/src/core/TextureMemoryManager.js.map +1 -1
- package/dist/src/core/lib/colorCache.d.ts +1 -0
- package/dist/src/core/lib/colorCache.js +19 -0
- package/dist/src/core/lib/colorCache.js.map +1 -0
- package/dist/src/core/lib/colorParser.d.ts +21 -0
- package/dist/src/core/lib/colorParser.js +72 -0
- package/dist/src/core/lib/colorParser.js.map +1 -0
- package/dist/src/core/platforms/Platform.d.ts +37 -0
- package/dist/src/core/platforms/Platform.js +22 -0
- package/dist/src/core/platforms/Platform.js.map +1 -0
- package/dist/src/core/platforms/web/WebPlatform.d.ts +9 -0
- package/dist/src/core/platforms/web/WebPlatform.js +84 -0
- package/dist/src/core/platforms/web/WebPlatform.js.map +1 -0
- package/dist/src/core/renderers/CoreShaderNode.d.ts +59 -0
- package/dist/src/core/renderers/CoreShaderNode.js +113 -0
- package/dist/src/core/renderers/CoreShaderNode.js.map +1 -0
- package/dist/src/core/renderers/CoreShaderProgram.d.ts +4 -0
- package/dist/src/core/renderers/CoreShaderProgram.js +20 -0
- package/dist/src/core/renderers/CoreShaderProgram.js.map +1 -0
- package/dist/src/core/renderers/canvas/CanvasRenderer.d.ts +35 -0
- package/dist/src/core/renderers/canvas/CanvasRenderer.js +201 -0
- package/dist/src/core/renderers/canvas/CanvasRenderer.js.map +1 -0
- package/dist/src/core/renderers/canvas/CanvasShaderNode.d.ts +21 -0
- package/dist/src/core/renderers/canvas/CanvasShaderNode.js +58 -0
- package/dist/src/core/renderers/canvas/CanvasShaderNode.js.map +1 -0
- package/dist/src/core/renderers/canvas/CanvasTexture.d.ts +16 -0
- package/dist/src/core/renderers/canvas/CanvasTexture.js +125 -0
- package/dist/src/core/renderers/canvas/CanvasTexture.js.map +1 -0
- package/dist/src/core/renderers/webgl/WebGlCtxRenderTexture.d.ts +12 -0
- package/dist/src/core/renderers/webgl/WebGlCtxRenderTexture.js +57 -0
- package/dist/src/core/renderers/webgl/WebGlCtxRenderTexture.js.map +1 -0
- package/dist/src/core/renderers/webgl/WebGlCtxSubTexture.d.ts +22 -0
- package/dist/src/core/renderers/webgl/WebGlCtxSubTexture.js +67 -0
- package/dist/src/core/renderers/webgl/WebGlCtxSubTexture.js.map +1 -0
- package/dist/src/core/renderers/webgl/WebGlCtxTexture.d.ts +56 -0
- package/dist/src/core/renderers/webgl/WebGlCtxTexture.js +236 -0
- package/dist/src/core/renderers/webgl/WebGlCtxTexture.js.map +1 -0
- package/dist/src/core/renderers/webgl/WebGlRenderOp.d.ts +44 -0
- package/dist/src/core/renderers/webgl/WebGlRenderOp.js +125 -0
- package/dist/src/core/renderers/webgl/WebGlRenderOp.js.map +1 -0
- package/dist/src/core/renderers/webgl/WebGlRenderer.d.ts +136 -0
- package/dist/src/core/renderers/webgl/WebGlRenderer.js +573 -0
- package/dist/src/core/renderers/webgl/WebGlRenderer.js.map +1 -0
- package/dist/src/core/renderers/webgl/WebGlShaderNode.d.ts +222 -0
- package/dist/src/core/renderers/webgl/WebGlShaderNode.js +331 -0
- package/dist/src/core/renderers/webgl/WebGlShaderNode.js.map +1 -0
- package/dist/src/core/renderers/webgl/WebGlShaderProgram.d.ts +37 -0
- package/dist/src/core/renderers/webgl/WebGlShaderProgram.js +218 -0
- package/dist/src/core/renderers/webgl/WebGlShaderProgram.js.map +1 -0
- package/dist/src/core/renderers/webgl/shaders/effects/LinearGradientEffect.js +23 -18
- package/dist/src/core/renderers/webgl/shaders/effects/LinearGradientEffect.js.map +1 -1
- package/dist/src/core/renderers/webgl/shaders/effects/RadialGradientEffect.d.ts +1 -0
- package/dist/src/core/renderers/webgl/shaders/effects/RadialGradientEffect.js +31 -4
- package/dist/src/core/renderers/webgl/shaders/effects/RadialGradientEffect.js.map +1 -1
- package/dist/src/core/shaders/canvas/Border.d.ts +9 -0
- package/dist/src/core/shaders/canvas/Border.js +57 -0
- package/dist/src/core/shaders/canvas/Border.js.map +1 -0
- package/dist/src/core/shaders/canvas/HolePunch.d.ts +7 -0
- package/dist/src/core/shaders/canvas/HolePunch.js +38 -0
- package/dist/src/core/shaders/canvas/HolePunch.js.map +1 -0
- package/dist/src/core/shaders/canvas/LinearGradient.d.ts +10 -0
- package/dist/src/core/shaders/canvas/LinearGradient.js +48 -0
- package/dist/src/core/shaders/canvas/LinearGradient.js.map +1 -0
- package/dist/src/core/shaders/canvas/RadialGradient.d.ts +11 -0
- package/dist/src/core/shaders/canvas/RadialGradient.js +70 -0
- package/dist/src/core/shaders/canvas/RadialGradient.js.map +1 -0
- package/dist/src/core/shaders/canvas/Rounded.d.ts +7 -0
- package/dist/src/core/shaders/canvas/Rounded.js +33 -0
- package/dist/src/core/shaders/canvas/Rounded.js.map +1 -0
- package/dist/src/core/shaders/canvas/RoundedWithBorder.d.ts +7 -0
- package/dist/src/core/shaders/canvas/RoundedWithBorder.js +43 -0
- package/dist/src/core/shaders/canvas/RoundedWithBorder.js.map +1 -0
- package/dist/src/core/shaders/canvas/RoundedWithBorderAndShadow.d.ts +8 -0
- package/dist/src/core/shaders/canvas/RoundedWithBorderAndShadow.js +41 -0
- package/dist/src/core/shaders/canvas/RoundedWithBorderAndShadow.js.map +1 -0
- package/dist/src/core/shaders/canvas/RoundedWithShadow.d.ts +7 -0
- package/dist/src/core/shaders/canvas/RoundedWithShadow.js +40 -0
- package/dist/src/core/shaders/canvas/RoundedWithShadow.js.map +1 -0
- package/dist/src/core/shaders/canvas/Shadow.d.ts +8 -0
- package/dist/src/core/shaders/canvas/Shadow.js +31 -0
- package/dist/src/core/shaders/canvas/Shadow.js.map +1 -0
- package/dist/src/core/shaders/canvas/utils/render.d.ts +5 -0
- package/dist/src/core/shaders/canvas/utils/render.js +84 -0
- package/dist/src/core/shaders/canvas/utils/render.js.map +1 -0
- package/dist/src/core/shaders/templates/BorderTemplate.d.ts +37 -0
- package/dist/src/core/shaders/templates/BorderTemplate.js +73 -0
- package/dist/src/core/shaders/templates/BorderTemplate.js.map +1 -0
- package/dist/src/core/shaders/templates/HolePunchTemplate.d.ts +46 -0
- package/dist/src/core/shaders/templates/HolePunchTemplate.js +35 -0
- package/dist/src/core/shaders/templates/HolePunchTemplate.js.map +1 -0
- package/dist/src/core/shaders/templates/LinearGradientTemplate.d.ts +23 -0
- package/dist/src/core/shaders/templates/LinearGradientTemplate.js +47 -0
- package/dist/src/core/shaders/templates/LinearGradientTemplate.js.map +1 -0
- package/dist/src/core/shaders/templates/RadialGradientTemplate.d.ts +31 -0
- package/dist/src/core/shaders/templates/RadialGradientTemplate.js +49 -0
- package/dist/src/core/shaders/templates/RadialGradientTemplate.js.map +1 -0
- package/dist/src/core/shaders/templates/RoundedTemplate.d.ts +29 -0
- package/dist/src/core/shaders/templates/RoundedTemplate.js +67 -0
- package/dist/src/core/shaders/templates/RoundedTemplate.js.map +1 -0
- package/dist/src/core/shaders/templates/RoundedWithBorderAndShadowTemplate.d.ts +7 -0
- package/dist/src/core/shaders/templates/RoundedWithBorderAndShadowTemplate.js +24 -0
- package/dist/src/core/shaders/templates/RoundedWithBorderAndShadowTemplate.js.map +1 -0
- package/dist/src/core/shaders/templates/RoundedWithBorderTemplate.d.ts +6 -0
- package/dist/src/core/shaders/templates/RoundedWithBorderTemplate.js +23 -0
- package/dist/src/core/shaders/templates/RoundedWithBorderTemplate.js.map +1 -0
- package/dist/src/core/shaders/templates/RoundedWithShadowTemplate.d.ts +6 -0
- package/dist/src/core/shaders/templates/RoundedWithShadowTemplate.js +23 -0
- package/dist/src/core/shaders/templates/RoundedWithShadowTemplate.js.map +1 -0
- package/dist/src/core/shaders/templates/ShadowTemplate.d.ts +34 -0
- package/dist/src/core/shaders/templates/ShadowTemplate.js +66 -0
- package/dist/src/core/shaders/templates/ShadowTemplate.js.map +1 -0
- package/dist/src/core/shaders/utils.d.ts +5 -0
- package/dist/src/core/shaders/utils.js +41 -0
- package/dist/src/core/shaders/utils.js.map +1 -0
- package/dist/src/core/shaders/webgl/Border.d.ts +3 -0
- package/dist/src/core/shaders/webgl/Border.js +110 -0
- package/dist/src/core/shaders/webgl/Border.js.map +1 -0
- package/dist/src/core/shaders/webgl/Default.d.ts +2 -0
- package/dist/src/core/shaders/webgl/Default.js +86 -0
- package/dist/src/core/shaders/webgl/Default.js.map +1 -0
- package/dist/src/core/shaders/webgl/DefaultBatched.d.ts +2 -0
- package/dist/src/core/shaders/webgl/DefaultBatched.js +104 -0
- package/dist/src/core/shaders/webgl/DefaultBatched.js.map +1 -0
- package/dist/src/core/shaders/webgl/HolePunch.d.ts +3 -0
- package/dist/src/core/shaders/webgl/HolePunch.js +65 -0
- package/dist/src/core/shaders/webgl/HolePunch.js.map +1 -0
- package/dist/src/core/shaders/webgl/LinearGradient.d.ts +3 -0
- package/dist/src/core/shaders/webgl/LinearGradient.js +99 -0
- package/dist/src/core/shaders/webgl/LinearGradient.js.map +1 -0
- package/dist/src/core/shaders/webgl/RadialGradient.d.ts +3 -0
- package/dist/src/core/shaders/webgl/RadialGradient.js +96 -0
- package/dist/src/core/shaders/webgl/RadialGradient.js.map +1 -0
- package/dist/src/core/shaders/webgl/Rounded.d.ts +7 -0
- package/dist/src/core/shaders/webgl/Rounded.js +86 -0
- package/dist/src/core/shaders/webgl/Rounded.js.map +1 -0
- package/dist/src/core/shaders/webgl/RoundedWithBorder.d.ts +3 -0
- package/dist/src/core/shaders/webgl/RoundedWithBorder.js +140 -0
- package/dist/src/core/shaders/webgl/RoundedWithBorder.js.map +1 -0
- package/dist/src/core/shaders/webgl/RoundedWithBorderAndShadow.d.ts +3 -0
- package/dist/src/core/shaders/webgl/RoundedWithBorderAndShadow.js +162 -0
- package/dist/src/core/shaders/webgl/RoundedWithBorderAndShadow.js.map +1 -0
- package/dist/src/core/shaders/webgl/RoundedWithShadow.d.ts +3 -0
- package/dist/src/core/shaders/webgl/RoundedWithShadow.js +84 -0
- package/dist/src/core/shaders/webgl/RoundedWithShadow.js.map +1 -0
- package/dist/src/core/shaders/webgl/SdfShader.d.ts +30 -0
- package/dist/src/core/shaders/webgl/SdfShader.js +107 -0
- package/dist/src/core/shaders/webgl/SdfShader.js.map +1 -0
- package/dist/src/core/shaders/webgl/Shadow.d.ts +3 -0
- package/dist/src/core/shaders/webgl/Shadow.js +110 -0
- package/dist/src/core/shaders/webgl/Shadow.js.map +1 -0
- package/dist/src/core/text-rendering/CanvasFontHandler.d.ts +59 -0
- package/dist/src/core/text-rendering/CanvasFontHandler.js +221 -0
- package/dist/src/core/text-rendering/CanvasFontHandler.js.map +1 -0
- package/dist/src/core/text-rendering/CanvasTextRenderer.d.ts +17 -0
- package/dist/src/core/text-rendering/CanvasTextRenderer.js +157 -0
- package/dist/src/core/text-rendering/CanvasTextRenderer.js.map +1 -0
- package/dist/src/core/text-rendering/SdfFontHandler.d.ts +182 -0
- package/dist/src/core/text-rendering/SdfFontHandler.js +388 -0
- package/dist/src/core/text-rendering/SdfFontHandler.js.map +1 -0
- package/dist/src/core/text-rendering/SdfTextRenderer.d.ts +17 -0
- package/dist/src/core/text-rendering/SdfTextRenderer.js +311 -0
- package/dist/src/core/text-rendering/SdfTextRenderer.js.map +1 -0
- package/dist/src/core/text-rendering/TextLayoutEngine.d.ts +19 -0
- package/dist/src/core/text-rendering/TextLayoutEngine.js +324 -0
- package/dist/src/core/text-rendering/TextLayoutEngine.js.map +1 -0
- package/dist/src/core/text-rendering/TextRenderer.d.ts +368 -0
- package/dist/src/core/text-rendering/TextRenderer.js +20 -0
- package/dist/src/core/text-rendering/TextRenderer.js.map +1 -0
- package/dist/src/core/text-rendering/Utils.d.ts +30 -0
- package/dist/src/core/text-rendering/Utils.js +84 -0
- package/dist/src/core/text-rendering/Utils.js.map +1 -0
- package/dist/src/core/textures/ImageTexture.js +3 -2
- package/dist/src/core/textures/ImageTexture.js.map +1 -1
- package/dist/src/core/textures/Texture.d.ts +2 -1
- package/dist/src/core/textures/Texture.js +2 -1
- package/dist/src/core/textures/Texture.js.map +1 -1
- package/dist/src/main-api/Inspector.js +1 -1
- package/dist/src/main-api/Inspector.js.map +1 -1
- package/dist/src/main-api/Renderer.d.ts +13 -0
- package/dist/src/main-api/Renderer.js +2 -0
- package/dist/src/main-api/Renderer.js.map +1 -1
- package/dist/tsconfig.dist.tsbuildinfo +1 -1
- package/exports/index.ts +5 -0
- package/package.json +1 -1
- package/src/common/CommonTypes.ts +2 -1
- package/src/core/CoreTextureManager.ts +19 -4
- package/src/core/Stage.ts +3 -0
- package/src/core/TextureError.ts +46 -0
- package/src/core/TextureMemoryManager.ts +9 -2
- package/src/core/renderers/webgl/shaders/effects/LinearGradientEffect.ts +23 -18
- package/src/core/renderers/webgl/shaders/effects/RadialGradientEffect.ts +32 -4
- package/src/core/textures/ImageTexture.ts +3 -2
- package/src/core/textures/Texture.ts +5 -3
- package/src/main-api/Inspector.ts +4 -1
- package/src/main-api/Renderer.ts +16 -0
|
@@ -121,20 +121,6 @@ export class LinearGradientEffect extends ShaderEffect {
|
|
|
121
121
|
};
|
|
122
122
|
|
|
123
123
|
static override methods: Record<string, string> = {
|
|
124
|
-
fromLinear: `
|
|
125
|
-
vec4 function(vec4 linearRGB) {
|
|
126
|
-
vec4 higher = vec4(1.055)*pow(linearRGB, vec4(1.0/2.4)) - vec4(0.055);
|
|
127
|
-
vec4 lower = linearRGB * vec4(12.92);
|
|
128
|
-
return mix(higher, lower, 1.0);
|
|
129
|
-
}
|
|
130
|
-
`,
|
|
131
|
-
toLinear: `
|
|
132
|
-
vec4 function(vec4 sRGB) {
|
|
133
|
-
vec4 higher = pow((sRGB + vec4(0.055))/vec4(1.055), vec4(2.4));
|
|
134
|
-
vec4 lower = sRGB/vec4(12.92);
|
|
135
|
-
return mix(higher, lower, 1.0);
|
|
136
|
-
}
|
|
137
|
-
`,
|
|
138
124
|
calcPoint: `
|
|
139
125
|
vec2 function(float d, float angle) {
|
|
140
126
|
return d * vec2(cos(angle), sin(angle)) + (u_dimensions * 0.5);
|
|
@@ -162,10 +148,29 @@ export class LinearGradientEffect extends ShaderEffect {
|
|
|
162
148
|
vec2 gradVec = t - f;
|
|
163
149
|
float dist = dot(v_textureCoordinate.xy * u_dimensions - f, gradVec) / dot(gradVec, gradVec);
|
|
164
150
|
|
|
165
|
-
|
|
166
|
-
|
|
167
|
-
|
|
168
|
-
|
|
151
|
+
//return early if dist is lower or equal to first stop
|
|
152
|
+
if(dist <= stops[0]) {
|
|
153
|
+
return mix(maskColor, colors[0], clamp(colors[0].a, 0.0, 1.0));
|
|
154
|
+
}
|
|
155
|
+
const int amount = ${colors};
|
|
156
|
+
const int last = amount - 1;
|
|
157
|
+
|
|
158
|
+
if(dist >= stops[last]) {
|
|
159
|
+
return mix(maskColor, colors[last], clamp(colors[last].a, 0.0, 1.0));
|
|
160
|
+
}
|
|
161
|
+
|
|
162
|
+
for(int i = 0; i < last; i++) {
|
|
163
|
+
float left = stops[i];
|
|
164
|
+
float right = stops[i + 1];
|
|
165
|
+
if(dist >= left && dist <= right) {
|
|
166
|
+
float localDist = smoothstep(left, right, dist);
|
|
167
|
+
vec4 colorOut = mix(colors[i], colors[i + 1], localDist);
|
|
168
|
+
return mix(maskColor, colorOut, clamp(colorOut.a, 0.0, 1.0));
|
|
169
|
+
}
|
|
170
|
+
}
|
|
171
|
+
|
|
172
|
+
//final fallback
|
|
173
|
+
return mix(maskColor, colors[last], clamp(colors[last].a, 0.0, 1.0));
|
|
169
174
|
`;
|
|
170
175
|
};
|
|
171
176
|
}
|
|
@@ -141,6 +141,14 @@ export class RadialGradientEffect extends ShaderEffect {
|
|
|
141
141
|
},
|
|
142
142
|
};
|
|
143
143
|
|
|
144
|
+
static override methods: Record<string, string> = {
|
|
145
|
+
getGradientColor: `
|
|
146
|
+
float function(float dist) {
|
|
147
|
+
return clamp(-dist, 0.0, 1.0);
|
|
148
|
+
}
|
|
149
|
+
`,
|
|
150
|
+
};
|
|
151
|
+
|
|
144
152
|
static ColorLoop = (amount: number): string => {
|
|
145
153
|
let loop = '';
|
|
146
154
|
for (let i = 2; i < amount; i++) {
|
|
@@ -159,10 +167,30 @@ export class RadialGradientEffect extends ShaderEffect {
|
|
|
159
167
|
|
|
160
168
|
float dist = length((point - projection) / vec2(width, height));
|
|
161
169
|
|
|
162
|
-
|
|
163
|
-
|
|
164
|
-
|
|
165
|
-
|
|
170
|
+
dist = clamp(dist, 0.0, 1.0);
|
|
171
|
+
//return early if dist is lower or equal to first stop
|
|
172
|
+
if(dist <= stops[0]) {
|
|
173
|
+
return mix(maskColor, colors[0], clamp(colors[0].a, 0.0, 1.0));
|
|
174
|
+
}
|
|
175
|
+
const int amount = ${colors};
|
|
176
|
+
const int last = amount - 1;
|
|
177
|
+
|
|
178
|
+
if(dist >= stops[last]) {
|
|
179
|
+
return mix(maskColor, colors[last], clamp(colors[last].a, 0.0, 1.0));
|
|
180
|
+
}
|
|
181
|
+
|
|
182
|
+
for(int i = 0; i < last; i++) {
|
|
183
|
+
float left = stops[i];
|
|
184
|
+
float right = stops[i + 1];
|
|
185
|
+
if(dist >= left && dist <= right) {
|
|
186
|
+
float localDist = smoothstep(left, right, dist);
|
|
187
|
+
vec4 colorOut = mix(colors[i], colors[i + 1], localDist);
|
|
188
|
+
return mix(maskColor, colorOut, clamp(colorOut.a, 0.0, 1.0));
|
|
189
|
+
}
|
|
190
|
+
}
|
|
191
|
+
|
|
192
|
+
//final fallback
|
|
193
|
+
return mix(maskColor, colors[last], clamp(colors[last].a, 0.0, 1.0));
|
|
166
194
|
`;
|
|
167
195
|
};
|
|
168
196
|
}
|
|
@@ -138,7 +138,8 @@ export class ImageTexture extends Texture {
|
|
|
138
138
|
const resolvedProps = ImageTexture.resolveDefaults(props);
|
|
139
139
|
super(txManager);
|
|
140
140
|
this.props = resolvedProps;
|
|
141
|
-
this.maxRetryCount =
|
|
141
|
+
this.maxRetryCount =
|
|
142
|
+
resolvedProps.maxRetryCount ?? this.txManager.maxRetryCount;
|
|
142
143
|
}
|
|
143
144
|
|
|
144
145
|
hasAlphaChannel(mimeType: string) {
|
|
@@ -407,7 +408,7 @@ export class ImageTexture extends Texture {
|
|
|
407
408
|
sy: props.sy ?? null,
|
|
408
409
|
sw: props.sw ?? null,
|
|
409
410
|
sh: props.sh ?? null,
|
|
410
|
-
maxRetryCount: props.maxRetryCount ??
|
|
411
|
+
maxRetryCount: props.maxRetryCount ?? null,
|
|
411
412
|
};
|
|
412
413
|
}
|
|
413
414
|
|
|
@@ -22,6 +22,7 @@ import type { SubTextureProps } from './SubTexture.js';
|
|
|
22
22
|
import type { Dimensions } from '../../common/CommonTypes.js';
|
|
23
23
|
import { EventEmitter } from '../../common/EventEmitter.js';
|
|
24
24
|
import type { CoreContextTexture } from '../renderers/CoreContextTexture.js';
|
|
25
|
+
import type { TextureError } from '../TextureError.js';
|
|
25
26
|
|
|
26
27
|
/**
|
|
27
28
|
* Event handler for when a Texture is freed
|
|
@@ -135,7 +136,7 @@ export abstract class Texture extends EventEmitter {
|
|
|
135
136
|
* `null`.
|
|
136
137
|
*/
|
|
137
138
|
private _dimensions: Dimensions | null = null;
|
|
138
|
-
private _error:
|
|
139
|
+
private _error: TextureError | null = null;
|
|
139
140
|
|
|
140
141
|
// aggregate state
|
|
141
142
|
public state: TextureState = 'initial';
|
|
@@ -162,7 +163,7 @@ export abstract class Texture extends EventEmitter {
|
|
|
162
163
|
public memUsed = 0;
|
|
163
164
|
|
|
164
165
|
public retryCount = 0;
|
|
165
|
-
public maxRetryCount: number
|
|
166
|
+
public maxRetryCount: number;
|
|
166
167
|
|
|
167
168
|
/**
|
|
168
169
|
* Timestamp when texture was created (for startup grace period)
|
|
@@ -182,13 +183,14 @@ export abstract class Texture extends EventEmitter {
|
|
|
182
183
|
|
|
183
184
|
constructor(protected txManager: CoreTextureManager) {
|
|
184
185
|
super();
|
|
186
|
+
this.maxRetryCount = txManager.maxRetryCount;
|
|
185
187
|
}
|
|
186
188
|
|
|
187
189
|
get dimensions(): Dimensions | null {
|
|
188
190
|
return this._dimensions;
|
|
189
191
|
}
|
|
190
192
|
|
|
191
|
-
get error():
|
|
193
|
+
get error(): TextureError | null {
|
|
192
194
|
return this._error;
|
|
193
195
|
}
|
|
194
196
|
|
|
@@ -533,7 +533,10 @@ export class Inspector {
|
|
|
533
533
|
|
|
534
534
|
// Update error information if present
|
|
535
535
|
if (texture.error) {
|
|
536
|
-
div.setAttribute(
|
|
536
|
+
div.setAttribute(
|
|
537
|
+
'data-texture-error',
|
|
538
|
+
texture.error.code || texture.error.message,
|
|
539
|
+
);
|
|
537
540
|
} else {
|
|
538
541
|
div.removeAttribute('data-texture-error');
|
|
539
542
|
}
|
package/src/main-api/Renderer.ts
CHANGED
|
@@ -329,6 +329,20 @@ export interface RendererMainSettings {
|
|
|
329
329
|
* @defaultValue `full`
|
|
330
330
|
*/
|
|
331
331
|
createImageBitmapSupport?: 'auto' | 'basic' | 'options' | 'full';
|
|
332
|
+
|
|
333
|
+
/**
|
|
334
|
+
* Number of times to retry loading a failed texture
|
|
335
|
+
*
|
|
336
|
+
* @remarks
|
|
337
|
+
* When a texture fails to load, Lightning will retry up to this many times
|
|
338
|
+
* before permanently giving up. Each retry will clear the texture ownership
|
|
339
|
+
* and then re-establish it to trigger a new load attempt.
|
|
340
|
+
*
|
|
341
|
+
* Set to null to disable retries. Set to 0 to always try once and never retry.
|
|
342
|
+
* This is typically only used on ImageTexture instances.
|
|
343
|
+
*
|
|
344
|
+
*/
|
|
345
|
+
maxRetryCount?: number;
|
|
332
346
|
}
|
|
333
347
|
|
|
334
348
|
/**
|
|
@@ -432,6 +446,7 @@ export class RendererMain extends EventEmitter {
|
|
|
432
446
|
textureProcessingTimeLimit: settings.textureProcessingTimeLimit || 42,
|
|
433
447
|
canvas: settings.canvas || document.createElement('canvas'),
|
|
434
448
|
createImageBitmapSupport: settings.createImageBitmapSupport || 'full',
|
|
449
|
+
maxRetryCount: settings.maxRetryCount ?? 5,
|
|
435
450
|
};
|
|
436
451
|
this.settings = resolvedSettings;
|
|
437
452
|
|
|
@@ -477,6 +492,7 @@ export class RendererMain extends EventEmitter {
|
|
|
477
492
|
strictBounds: this.settings.strictBounds,
|
|
478
493
|
textureProcessingTimeLimit: this.settings.textureProcessingTimeLimit,
|
|
479
494
|
createImageBitmapSupport: this.settings.createImageBitmapSupport,
|
|
495
|
+
maxRetryCount: this.settings.maxRetryCount,
|
|
480
496
|
});
|
|
481
497
|
|
|
482
498
|
// Extract the root node
|