@lightningjs/renderer 2.19.0 → 2.20.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/utils.d.ts +2 -1
- package/dist/exports/utils.js +2 -1
- package/dist/exports/utils.js.map +1 -1
- package/dist/src/core/CoreNode.js +11 -11
- package/dist/src/core/CoreNode.js.map +1 -1
- package/dist/src/core/TextureMemoryManager.js +1 -1
- package/dist/src/core/TextureMemoryManager.js.map +1 -1
- package/dist/src/core/lib/WebGlContextWrapper.d.ts +14 -0
- package/dist/src/core/lib/WebGlContextWrapper.js +35 -0
- package/dist/src/core/lib/WebGlContextWrapper.js.map +1 -1
- package/dist/src/core/lib/textureCompression.d.ts +14 -2
- package/dist/src/core/lib/textureCompression.js +301 -65
- package/dist/src/core/lib/textureCompression.js.map +1 -1
- package/dist/src/core/renderers/CoreRenderer.d.ts +2 -2
- package/dist/src/core/renderers/webgl/WebGlCoreCtxTexture.d.ts +4 -0
- package/dist/src/core/renderers/webgl/WebGlCoreCtxTexture.js +14 -11
- package/dist/src/core/renderers/webgl/WebGlCoreCtxTexture.js.map +1 -1
- package/dist/src/core/renderers/webgl/WebGlCoreRenderOp.js +1 -1
- package/dist/src/core/renderers/webgl/WebGlCoreRenderer.js +49 -20
- package/dist/src/core/renderers/webgl/WebGlCoreRenderer.js.map +1 -1
- package/dist/src/core/renderers/webgl/WebGlCoreShader.d.ts +2 -7
- package/dist/src/core/renderers/webgl/WebGlCoreShader.js +18 -49
- package/dist/src/core/renderers/webgl/WebGlCoreShader.js.map +1 -1
- package/dist/src/core/renderers/webgl/internal/ShaderUtils.d.ts +0 -2
- package/dist/src/core/renderers/webgl/internal/ShaderUtils.js.map +1 -1
- package/dist/src/core/renderers/webgl/shaders/DefaultShader.js +3 -6
- package/dist/src/core/renderers/webgl/shaders/DefaultShader.js.map +1 -1
- package/dist/src/core/renderers/webgl/shaders/DefaultShaderBatched.js +0 -11
- package/dist/src/core/renderers/webgl/shaders/DefaultShaderBatched.js.map +1 -1
- package/dist/src/core/renderers/webgl/shaders/DynamicShader.js +5 -10
- package/dist/src/core/renderers/webgl/shaders/DynamicShader.js.map +1 -1
- package/dist/src/core/renderers/webgl/shaders/RoundedRectangle.js +5 -10
- package/dist/src/core/renderers/webgl/shaders/RoundedRectangle.js.map +1 -1
- package/dist/src/core/renderers/webgl/shaders/SdfShader.js +0 -12
- package/dist/src/core/renderers/webgl/shaders/SdfShader.js.map +1 -1
- package/dist/src/core/renderers/webgl/shaders/effects/BorderBottomEffect.js +1 -1
- package/dist/src/core/renderers/webgl/shaders/effects/BorderLeftEffect.js +1 -1
- package/dist/src/core/renderers/webgl/shaders/effects/BorderRightEffect.js +1 -1
- package/dist/src/core/renderers/webgl/shaders/effects/BorderTopEffect.js +1 -1
- package/dist/src/core/renderers/webgl/shaders/effects/FadeOutEffect.js +5 -5
- package/dist/src/core/renderers/webgl/shaders/effects/HolePunchEffect.js +1 -1
- package/dist/src/core/renderers/webgl/shaders/effects/LinearGradientEffect.js +1 -1
- package/dist/src/core/renderers/webgl/shaders/effects/RadialGradientEffect.js +1 -1
- package/dist/src/core/renderers/webgl/shaders/effects/RadialProgressEffect.js +1 -1
- package/dist/src/core/renderers/webgl/shaders/effects/RadiusEffect.js +5 -5
- package/dist/src/core/textures/Texture.d.ts +12 -5
- package/dist/src/core/textures/Texture.js.map +1 -1
- package/dist/src/main-api/Inspector.js +10 -6
- package/dist/src/main-api/Inspector.js.map +1 -1
- package/dist/src/main-api/Renderer.js +1 -1
- package/dist/src/main-api/Renderer.js.map +1 -1
- package/dist/src/utils.d.ts +1 -6
- package/dist/src/utils.js +2 -9
- package/dist/src/utils.js.map +1 -1
- package/dist/tsconfig.dist.tsbuildinfo +1 -1
- package/exports/utils.ts +7 -1
- package/package.json +1 -1
- package/src/core/CoreNode.ts +12 -14
- package/src/core/TextureMemoryManager.ts +1 -1
- package/src/core/lib/WebGlContextWrapper.ts +49 -0
- package/src/core/lib/textureCompression.ts +416 -75
- package/src/core/renderers/CoreRenderer.ts +2 -2
- package/src/core/renderers/webgl/WebGlCoreCtxTexture.ts +16 -14
- package/src/core/renderers/webgl/WebGlCoreRenderOp.ts +1 -1
- package/src/core/renderers/webgl/WebGlCoreRenderer.ts +53 -32
- package/src/core/renderers/webgl/WebGlCoreShader.ts +27 -75
- package/src/core/renderers/webgl/internal/ShaderUtils.ts +0 -2
- package/src/core/renderers/webgl/shaders/DefaultShader.ts +3 -6
- package/src/core/renderers/webgl/shaders/DefaultShaderBatched.ts +0 -11
- package/src/core/renderers/webgl/shaders/DynamicShader.ts +5 -10
- package/src/core/renderers/webgl/shaders/RoundedRectangle.ts +5 -10
- package/src/core/renderers/webgl/shaders/SdfShader.ts +0 -12
- package/src/core/renderers/webgl/shaders/effects/BorderBottomEffect.ts +1 -1
- package/src/core/renderers/webgl/shaders/effects/BorderLeftEffect.ts +1 -1
- package/src/core/renderers/webgl/shaders/effects/BorderRightEffect.ts +1 -1
- package/src/core/renderers/webgl/shaders/effects/BorderTopEffect.ts +1 -1
- package/src/core/renderers/webgl/shaders/effects/FadeOutEffect.ts +5 -5
- package/src/core/renderers/webgl/shaders/effects/HolePunchEffect.ts +1 -1
- package/src/core/renderers/webgl/shaders/effects/LinearGradientEffect.ts +1 -1
- package/src/core/renderers/webgl/shaders/effects/RadialGradientEffect.ts +1 -1
- package/src/core/renderers/webgl/shaders/effects/RadialProgressEffect.ts +1 -1
- package/src/core/renderers/webgl/shaders/effects/RadiusEffect.ts +5 -5
- package/src/core/textures/Texture.ts +13 -6
- package/src/main-api/Inspector.ts +10 -6
- package/src/main-api/Renderer.ts +1 -1
- package/src/utils.ts +4 -4
- package/dist/exports/canvas-shaders.d.ts +0 -10
- package/dist/exports/canvas-shaders.js +0 -27
- package/dist/exports/canvas-shaders.js.map +0 -1
- package/dist/exports/webgl-shaders.d.ts +0 -11
- package/dist/exports/webgl-shaders.js +0 -28
- package/dist/exports/webgl-shaders.js.map +0 -1
- package/dist/src/core/lib/colorCache.d.ts +0 -1
- package/dist/src/core/lib/colorCache.js +0 -19
- package/dist/src/core/lib/colorCache.js.map +0 -1
- package/dist/src/core/lib/colorParser.d.ts +0 -21
- package/dist/src/core/lib/colorParser.js +0 -72
- package/dist/src/core/lib/colorParser.js.map +0 -1
- package/dist/src/core/platforms/Platform.d.ts +0 -37
- package/dist/src/core/platforms/Platform.js +0 -22
- package/dist/src/core/platforms/Platform.js.map +0 -1
- package/dist/src/core/platforms/web/WebPlatform.d.ts +0 -9
- package/dist/src/core/platforms/web/WebPlatform.js +0 -84
- package/dist/src/core/platforms/web/WebPlatform.js.map +0 -1
- package/dist/src/core/renderers/CoreShaderNode.d.ts +0 -59
- package/dist/src/core/renderers/CoreShaderNode.js +0 -113
- package/dist/src/core/renderers/CoreShaderNode.js.map +0 -1
- package/dist/src/core/renderers/CoreShaderProgram.d.ts +0 -4
- package/dist/src/core/renderers/CoreShaderProgram.js +0 -20
- package/dist/src/core/renderers/CoreShaderProgram.js.map +0 -1
- package/dist/src/core/renderers/canvas/CanvasRenderer.d.ts +0 -35
- package/dist/src/core/renderers/canvas/CanvasRenderer.js +0 -201
- package/dist/src/core/renderers/canvas/CanvasRenderer.js.map +0 -1
- package/dist/src/core/renderers/canvas/CanvasShaderNode.d.ts +0 -21
- package/dist/src/core/renderers/canvas/CanvasShaderNode.js +0 -58
- package/dist/src/core/renderers/canvas/CanvasShaderNode.js.map +0 -1
- package/dist/src/core/renderers/canvas/CanvasTexture.d.ts +0 -16
- package/dist/src/core/renderers/canvas/CanvasTexture.js +0 -125
- package/dist/src/core/renderers/canvas/CanvasTexture.js.map +0 -1
- package/dist/src/core/renderers/webgl/WebGlCtxRenderTexture.d.ts +0 -12
- package/dist/src/core/renderers/webgl/WebGlCtxRenderTexture.js +0 -57
- package/dist/src/core/renderers/webgl/WebGlCtxRenderTexture.js.map +0 -1
- package/dist/src/core/renderers/webgl/WebGlCtxSubTexture.d.ts +0 -22
- package/dist/src/core/renderers/webgl/WebGlCtxSubTexture.js +0 -67
- package/dist/src/core/renderers/webgl/WebGlCtxSubTexture.js.map +0 -1
- package/dist/src/core/renderers/webgl/WebGlCtxTexture.d.ts +0 -56
- package/dist/src/core/renderers/webgl/WebGlCtxTexture.js +0 -236
- package/dist/src/core/renderers/webgl/WebGlCtxTexture.js.map +0 -1
- package/dist/src/core/renderers/webgl/WebGlRenderOp.d.ts +0 -44
- package/dist/src/core/renderers/webgl/WebGlRenderOp.js +0 -125
- package/dist/src/core/renderers/webgl/WebGlRenderOp.js.map +0 -1
- package/dist/src/core/renderers/webgl/WebGlRenderer.d.ts +0 -136
- package/dist/src/core/renderers/webgl/WebGlRenderer.js +0 -573
- package/dist/src/core/renderers/webgl/WebGlRenderer.js.map +0 -1
- package/dist/src/core/renderers/webgl/WebGlShaderNode.d.ts +0 -222
- package/dist/src/core/renderers/webgl/WebGlShaderNode.js +0 -331
- package/dist/src/core/renderers/webgl/WebGlShaderNode.js.map +0 -1
- package/dist/src/core/renderers/webgl/WebGlShaderProgram.d.ts +0 -37
- package/dist/src/core/renderers/webgl/WebGlShaderProgram.js +0 -218
- package/dist/src/core/renderers/webgl/WebGlShaderProgram.js.map +0 -1
- package/dist/src/core/shaders/canvas/Border.d.ts +0 -9
- package/dist/src/core/shaders/canvas/Border.js +0 -57
- package/dist/src/core/shaders/canvas/Border.js.map +0 -1
- package/dist/src/core/shaders/canvas/HolePunch.d.ts +0 -7
- package/dist/src/core/shaders/canvas/HolePunch.js +0 -38
- package/dist/src/core/shaders/canvas/HolePunch.js.map +0 -1
- package/dist/src/core/shaders/canvas/LinearGradient.d.ts +0 -10
- package/dist/src/core/shaders/canvas/LinearGradient.js +0 -48
- package/dist/src/core/shaders/canvas/LinearGradient.js.map +0 -1
- package/dist/src/core/shaders/canvas/RadialGradient.d.ts +0 -11
- package/dist/src/core/shaders/canvas/RadialGradient.js +0 -70
- package/dist/src/core/shaders/canvas/RadialGradient.js.map +0 -1
- package/dist/src/core/shaders/canvas/Rounded.d.ts +0 -7
- package/dist/src/core/shaders/canvas/Rounded.js +0 -33
- package/dist/src/core/shaders/canvas/Rounded.js.map +0 -1
- package/dist/src/core/shaders/canvas/RoundedWithBorder.d.ts +0 -7
- package/dist/src/core/shaders/canvas/RoundedWithBorder.js +0 -43
- package/dist/src/core/shaders/canvas/RoundedWithBorder.js.map +0 -1
- package/dist/src/core/shaders/canvas/RoundedWithBorderAndShadow.d.ts +0 -8
- package/dist/src/core/shaders/canvas/RoundedWithBorderAndShadow.js +0 -41
- package/dist/src/core/shaders/canvas/RoundedWithBorderAndShadow.js.map +0 -1
- package/dist/src/core/shaders/canvas/RoundedWithShadow.d.ts +0 -7
- package/dist/src/core/shaders/canvas/RoundedWithShadow.js +0 -40
- package/dist/src/core/shaders/canvas/RoundedWithShadow.js.map +0 -1
- package/dist/src/core/shaders/canvas/Shadow.d.ts +0 -8
- package/dist/src/core/shaders/canvas/Shadow.js +0 -31
- package/dist/src/core/shaders/canvas/Shadow.js.map +0 -1
- package/dist/src/core/shaders/canvas/utils/render.d.ts +0 -5
- package/dist/src/core/shaders/canvas/utils/render.js +0 -84
- package/dist/src/core/shaders/canvas/utils/render.js.map +0 -1
- package/dist/src/core/shaders/templates/BorderTemplate.d.ts +0 -37
- package/dist/src/core/shaders/templates/BorderTemplate.js +0 -73
- package/dist/src/core/shaders/templates/BorderTemplate.js.map +0 -1
- package/dist/src/core/shaders/templates/HolePunchTemplate.d.ts +0 -46
- package/dist/src/core/shaders/templates/HolePunchTemplate.js +0 -35
- package/dist/src/core/shaders/templates/HolePunchTemplate.js.map +0 -1
- package/dist/src/core/shaders/templates/LinearGradientTemplate.d.ts +0 -23
- package/dist/src/core/shaders/templates/LinearGradientTemplate.js +0 -47
- package/dist/src/core/shaders/templates/LinearGradientTemplate.js.map +0 -1
- package/dist/src/core/shaders/templates/RadialGradientTemplate.d.ts +0 -31
- package/dist/src/core/shaders/templates/RadialGradientTemplate.js +0 -49
- package/dist/src/core/shaders/templates/RadialGradientTemplate.js.map +0 -1
- package/dist/src/core/shaders/templates/RoundedTemplate.d.ts +0 -29
- package/dist/src/core/shaders/templates/RoundedTemplate.js +0 -67
- package/dist/src/core/shaders/templates/RoundedTemplate.js.map +0 -1
- package/dist/src/core/shaders/templates/RoundedWithBorderAndShadowTemplate.d.ts +0 -7
- package/dist/src/core/shaders/templates/RoundedWithBorderAndShadowTemplate.js +0 -24
- package/dist/src/core/shaders/templates/RoundedWithBorderAndShadowTemplate.js.map +0 -1
- package/dist/src/core/shaders/templates/RoundedWithBorderTemplate.d.ts +0 -6
- package/dist/src/core/shaders/templates/RoundedWithBorderTemplate.js +0 -23
- package/dist/src/core/shaders/templates/RoundedWithBorderTemplate.js.map +0 -1
- package/dist/src/core/shaders/templates/RoundedWithShadowTemplate.d.ts +0 -6
- package/dist/src/core/shaders/templates/RoundedWithShadowTemplate.js +0 -23
- package/dist/src/core/shaders/templates/RoundedWithShadowTemplate.js.map +0 -1
- package/dist/src/core/shaders/templates/ShadowTemplate.d.ts +0 -34
- package/dist/src/core/shaders/templates/ShadowTemplate.js +0 -66
- package/dist/src/core/shaders/templates/ShadowTemplate.js.map +0 -1
- package/dist/src/core/shaders/utils.d.ts +0 -5
- package/dist/src/core/shaders/utils.js +0 -41
- package/dist/src/core/shaders/utils.js.map +0 -1
- package/dist/src/core/shaders/webgl/Border.d.ts +0 -3
- package/dist/src/core/shaders/webgl/Border.js +0 -110
- package/dist/src/core/shaders/webgl/Border.js.map +0 -1
- package/dist/src/core/shaders/webgl/Default.d.ts +0 -2
- package/dist/src/core/shaders/webgl/Default.js +0 -86
- package/dist/src/core/shaders/webgl/Default.js.map +0 -1
- package/dist/src/core/shaders/webgl/DefaultBatched.d.ts +0 -2
- package/dist/src/core/shaders/webgl/DefaultBatched.js +0 -104
- package/dist/src/core/shaders/webgl/DefaultBatched.js.map +0 -1
- package/dist/src/core/shaders/webgl/HolePunch.d.ts +0 -3
- package/dist/src/core/shaders/webgl/HolePunch.js +0 -65
- package/dist/src/core/shaders/webgl/HolePunch.js.map +0 -1
- package/dist/src/core/shaders/webgl/LinearGradient.d.ts +0 -3
- package/dist/src/core/shaders/webgl/LinearGradient.js +0 -99
- package/dist/src/core/shaders/webgl/LinearGradient.js.map +0 -1
- package/dist/src/core/shaders/webgl/RadialGradient.d.ts +0 -3
- package/dist/src/core/shaders/webgl/RadialGradient.js +0 -96
- package/dist/src/core/shaders/webgl/RadialGradient.js.map +0 -1
- package/dist/src/core/shaders/webgl/Rounded.d.ts +0 -7
- package/dist/src/core/shaders/webgl/Rounded.js +0 -86
- package/dist/src/core/shaders/webgl/Rounded.js.map +0 -1
- package/dist/src/core/shaders/webgl/RoundedWithBorder.d.ts +0 -3
- package/dist/src/core/shaders/webgl/RoundedWithBorder.js +0 -140
- package/dist/src/core/shaders/webgl/RoundedWithBorder.js.map +0 -1
- package/dist/src/core/shaders/webgl/RoundedWithBorderAndShadow.d.ts +0 -3
- package/dist/src/core/shaders/webgl/RoundedWithBorderAndShadow.js +0 -162
- package/dist/src/core/shaders/webgl/RoundedWithBorderAndShadow.js.map +0 -1
- package/dist/src/core/shaders/webgl/RoundedWithShadow.d.ts +0 -3
- package/dist/src/core/shaders/webgl/RoundedWithShadow.js +0 -84
- package/dist/src/core/shaders/webgl/RoundedWithShadow.js.map +0 -1
- package/dist/src/core/shaders/webgl/SdfShader.d.ts +0 -30
- package/dist/src/core/shaders/webgl/SdfShader.js +0 -107
- package/dist/src/core/shaders/webgl/SdfShader.js.map +0 -1
- package/dist/src/core/shaders/webgl/Shadow.d.ts +0 -3
- package/dist/src/core/shaders/webgl/Shadow.js +0 -110
- package/dist/src/core/shaders/webgl/Shadow.js.map +0 -1
- package/dist/src/core/text-rendering/CanvasFontHandler.d.ts +0 -59
- package/dist/src/core/text-rendering/CanvasFontHandler.js +0 -221
- package/dist/src/core/text-rendering/CanvasFontHandler.js.map +0 -1
- package/dist/src/core/text-rendering/CanvasTextRenderer.d.ts +0 -17
- package/dist/src/core/text-rendering/CanvasTextRenderer.js +0 -157
- package/dist/src/core/text-rendering/CanvasTextRenderer.js.map +0 -1
- package/dist/src/core/text-rendering/SdfFontHandler.d.ts +0 -182
- package/dist/src/core/text-rendering/SdfFontHandler.js +0 -388
- package/dist/src/core/text-rendering/SdfFontHandler.js.map +0 -1
- package/dist/src/core/text-rendering/SdfTextRenderer.d.ts +0 -17
- package/dist/src/core/text-rendering/SdfTextRenderer.js +0 -311
- package/dist/src/core/text-rendering/SdfTextRenderer.js.map +0 -1
- package/dist/src/core/text-rendering/TextLayoutEngine.d.ts +0 -19
- package/dist/src/core/text-rendering/TextLayoutEngine.js +0 -324
- package/dist/src/core/text-rendering/TextLayoutEngine.js.map +0 -1
- package/dist/src/core/text-rendering/TextRenderer.d.ts +0 -368
- package/dist/src/core/text-rendering/TextRenderer.js +0 -20
- package/dist/src/core/text-rendering/TextRenderer.js.map +0 -1
- package/dist/src/core/text-rendering/Utils.d.ts +0 -30
- package/dist/src/core/text-rendering/Utils.js +0 -84
- package/dist/src/core/text-rendering/Utils.js.map +0 -1
|
@@ -162,7 +162,7 @@ export class RadialGradientEffect extends ShaderEffect {
|
|
|
162
162
|
static override onColorize = (props: RadialGradientEffectProps) => {
|
|
163
163
|
const colors = props.colors!.length || 1;
|
|
164
164
|
return `
|
|
165
|
-
vec2 point =
|
|
165
|
+
vec2 point = v_nodeCoordinate.xy * u_dimensions;
|
|
166
166
|
vec2 projection = vec2(pivot.x * u_dimensions.x, pivot.y * u_dimensions.y);
|
|
167
167
|
|
|
168
168
|
float dist = length((point - projection) / vec2(width, height));
|
|
@@ -162,7 +162,7 @@ export class RadialProgressEffect extends ShaderEffect {
|
|
|
162
162
|
|
|
163
163
|
float endAngle = range * progress - 0.0005;
|
|
164
164
|
|
|
165
|
-
vec2 uv =
|
|
165
|
+
vec2 uv = v_nodeCoordinate.xy * u_dimensions.xy - u_dimensions * 0.5;
|
|
166
166
|
|
|
167
167
|
uv = $rotateUV(uv, -(offset));
|
|
168
168
|
float linewidth = width * u_pixelRatio;
|
|
@@ -97,11 +97,11 @@ export class RadiusEffect extends ShaderEffect {
|
|
|
97
97
|
|
|
98
98
|
static override onShaderMask = `
|
|
99
99
|
vec2 halfDimensions = u_dimensions * 0.5;
|
|
100
|
-
float r = radius[0] * step(
|
|
101
|
-
r = r + radius[1] * step(0.5,
|
|
102
|
-
r = r + radius[2] * step(0.5,
|
|
103
|
-
r = r + radius[3] * step(
|
|
104
|
-
return $boxDist(
|
|
100
|
+
float r = radius[0] * step(v_nodeCoordinate.x, 0.5) * step(v_nodeCoordinate.y, 0.5);
|
|
101
|
+
r = r + radius[1] * step(0.5, v_nodeCoordinate.x) * step(v_nodeCoordinate.y, 0.5);
|
|
102
|
+
r = r + radius[2] * step(0.5, v_nodeCoordinate.x) * step(0.5, v_nodeCoordinate.y);
|
|
103
|
+
r = r + radius[3] * step(v_nodeCoordinate.x, 0.5) * step(0.5, v_nodeCoordinate.y);
|
|
104
|
+
return $boxDist(v_nodeCoordinate.xy * u_dimensions - halfDimensions, halfDimensions, r);
|
|
105
105
|
`;
|
|
106
106
|
|
|
107
107
|
static override onEffectMask = `
|
|
@@ -45,7 +45,7 @@ export type TextureLoadedEventHandler = (
|
|
|
45
45
|
/**
|
|
46
46
|
* Represents compressed texture data.
|
|
47
47
|
*/
|
|
48
|
-
interface CompressedData {
|
|
48
|
+
export interface CompressedData {
|
|
49
49
|
/**
|
|
50
50
|
* GLenum spcifying compression format
|
|
51
51
|
*/
|
|
@@ -54,12 +54,12 @@ interface CompressedData {
|
|
|
54
54
|
/**
|
|
55
55
|
* All mipmap levels
|
|
56
56
|
*/
|
|
57
|
-
mipmaps
|
|
57
|
+
mipmaps: ArrayBuffer[];
|
|
58
58
|
|
|
59
59
|
/**
|
|
60
|
-
* Supported container types ('pvr'
|
|
60
|
+
* Supported container types ('pvr', 'ktx', 'astc').
|
|
61
61
|
*/
|
|
62
|
-
type: 'pvr' | 'ktx';
|
|
62
|
+
type: 'pvr' | 'ktx' | 'astc';
|
|
63
63
|
|
|
64
64
|
/**
|
|
65
65
|
* The width of the compressed texture in pixels. Defaults to 0.
|
|
@@ -72,6 +72,15 @@ interface CompressedData {
|
|
|
72
72
|
* The height of the compressed texture in pixels.
|
|
73
73
|
**/
|
|
74
74
|
height: number;
|
|
75
|
+
|
|
76
|
+
/**
|
|
77
|
+
* block info
|
|
78
|
+
*/
|
|
79
|
+
blockInfo: {
|
|
80
|
+
width: number;
|
|
81
|
+
height: number;
|
|
82
|
+
bytes: number;
|
|
83
|
+
};
|
|
75
84
|
}
|
|
76
85
|
|
|
77
86
|
/**
|
|
@@ -298,7 +307,6 @@ export abstract class Texture extends EventEmitter {
|
|
|
298
307
|
// We've exceeded the max retry count, do not attempt to load again
|
|
299
308
|
return;
|
|
300
309
|
}
|
|
301
|
-
|
|
302
310
|
this.txManager.loadTexture(this);
|
|
303
311
|
}
|
|
304
312
|
|
|
@@ -386,7 +394,6 @@ export abstract class Texture extends EventEmitter {
|
|
|
386
394
|
if (this.state === state) {
|
|
387
395
|
return;
|
|
388
396
|
}
|
|
389
|
-
|
|
390
397
|
let payload: Error | Dimensions | null = null;
|
|
391
398
|
if (state === 'loaded') {
|
|
392
399
|
// Clear any previous error when successfully loading
|
|
@@ -52,14 +52,16 @@ const stylePropertyMap: {
|
|
|
52
52
|
},
|
|
53
53
|
width: (w) => {
|
|
54
54
|
if (w === 0) {
|
|
55
|
-
|
|
55
|
+
// Set to 1px instead of 0px so visibility checks (e.g. Playwright) keep treating the node as visible
|
|
56
|
+
return { prop: 'width', value: '1px' };
|
|
56
57
|
}
|
|
57
58
|
|
|
58
59
|
return { prop: 'width', value: `${w}px` };
|
|
59
60
|
},
|
|
60
61
|
height: (h) => {
|
|
61
62
|
if (h === 0) {
|
|
62
|
-
|
|
63
|
+
// Set to 1px instead of 0px so visibility checks (e.g. Playwright) keep treating the node as visible
|
|
64
|
+
return { prop: 'height', value: '1px' };
|
|
63
65
|
}
|
|
64
66
|
|
|
65
67
|
return { prop: 'height', value: `${h}px` };
|
|
@@ -179,6 +181,7 @@ const knownProperties = new Set<string>([
|
|
|
179
181
|
'src',
|
|
180
182
|
'parent',
|
|
181
183
|
'data',
|
|
184
|
+
'text',
|
|
182
185
|
'texture',
|
|
183
186
|
]);
|
|
184
187
|
|
|
@@ -192,7 +195,7 @@ export class Inspector {
|
|
|
192
195
|
private textureMetrics = new Map<Texture, TextureMetrics>();
|
|
193
196
|
|
|
194
197
|
constructor(canvas: HTMLCanvasElement, settings: RendererMainSettings) {
|
|
195
|
-
if (isProductionEnvironment
|
|
198
|
+
if (isProductionEnvironment) return;
|
|
196
199
|
|
|
197
200
|
if (!settings) {
|
|
198
201
|
throw new Error('settings is required');
|
|
@@ -575,9 +578,10 @@ export class Inspector {
|
|
|
575
578
|
if (property === 'text') {
|
|
576
579
|
div.innerHTML = String(value);
|
|
577
580
|
|
|
578
|
-
//
|
|
579
|
-
|
|
580
|
-
div.style.
|
|
581
|
+
// Keep DOM text invisible without breaking visibility checks by using color:transparent instead of opacity:0
|
|
582
|
+
div.style.color = 'transparent';
|
|
583
|
+
div.style.pointerEvents = 'none';
|
|
584
|
+
div.style.userSelect = 'none';
|
|
581
585
|
return;
|
|
582
586
|
}
|
|
583
587
|
|
package/src/main-api/Renderer.ts
CHANGED
|
@@ -515,7 +515,7 @@ export class RendererMain extends EventEmitter {
|
|
|
515
515
|
targetEl.appendChild(canvas);
|
|
516
516
|
|
|
517
517
|
// Initialize inspector (if enabled)
|
|
518
|
-
if (inspector && !isProductionEnvironment
|
|
518
|
+
if (inspector && !isProductionEnvironment) {
|
|
519
519
|
this.inspector = new inspector(canvas, resolvedSettings);
|
|
520
520
|
}
|
|
521
521
|
}
|
package/src/utils.ts
CHANGED
|
@@ -80,7 +80,7 @@ export function assertTruthy(
|
|
|
80
80
|
condition: unknown,
|
|
81
81
|
message?: string,
|
|
82
82
|
): asserts condition {
|
|
83
|
-
if (isProductionEnvironment
|
|
83
|
+
if (isProductionEnvironment) return;
|
|
84
84
|
if (!condition) {
|
|
85
85
|
throw new Error(message || 'Assertion failed');
|
|
86
86
|
}
|
|
@@ -235,9 +235,9 @@ export function getImageAspectRatio(width: number, height: number): number {
|
|
|
235
235
|
*
|
|
236
236
|
* @returns
|
|
237
237
|
*/
|
|
238
|
-
|
|
239
|
-
|
|
240
|
-
|
|
238
|
+
declare const __DEV__: boolean;
|
|
239
|
+
export const isProductionEnvironment =
|
|
240
|
+
typeof __DEV__ !== 'undefined' ? !__DEV__ : true;
|
|
241
241
|
|
|
242
242
|
/**
|
|
243
243
|
* Returns a new unique ID
|
|
@@ -1,10 +0,0 @@
|
|
|
1
|
-
export * from '../src/core/renderers/canvas/CanvasShaderNode.js';
|
|
2
|
-
export { Rounded } from '../src/core/shaders/canvas/Rounded.js';
|
|
3
|
-
export { RoundedWithBorder } from '../src/core/shaders/canvas/RoundedWithBorder.js';
|
|
4
|
-
export { RoundedWithBorderAndShadow } from '../src/core/shaders/canvas/RoundedWithBorderAndShadow.js';
|
|
5
|
-
export { RoundedWithShadow } from '../src/core/shaders/canvas/RoundedWithShadow.js';
|
|
6
|
-
export { Border } from '../src/core/shaders/canvas/Border.js';
|
|
7
|
-
export { Shadow } from '../src/core/shaders/canvas/Shadow.js';
|
|
8
|
-
export { HolePunch } from '../src/core/shaders/canvas/HolePunch.js';
|
|
9
|
-
export { LinearGradient } from '../src/core/shaders/canvas/LinearGradient.js';
|
|
10
|
-
export { RadialGradient } from '../src/core/shaders/canvas/RadialGradient.js';
|
|
@@ -1,27 +0,0 @@
|
|
|
1
|
-
/*
|
|
2
|
-
* Copyright 2023 Comcast Cable Communications Management, LLC
|
|
3
|
-
* Licensed under the Apache License, Version 2.0 (the "License");
|
|
4
|
-
* you may not use this file except in compliance with the License.
|
|
5
|
-
* You may obtain a copy of the License at
|
|
6
|
-
*
|
|
7
|
-
* http://www.apache.org/licenses/LICENSE-2.0
|
|
8
|
-
*
|
|
9
|
-
* Unless required by applicable law or agreed to in writing, software
|
|
10
|
-
* distributed under the License is distributed on an "AS IS" BASIS,
|
|
11
|
-
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
12
|
-
* See the License for the specific language governing permissions and
|
|
13
|
-
* limitations under the License.
|
|
14
|
-
*
|
|
15
|
-
* SPDX-License-Identifier: Apache-2.0
|
|
16
|
-
*/
|
|
17
|
-
export * from '../src/core/renderers/canvas/CanvasShaderNode.js';
|
|
18
|
-
export { Rounded } from '../src/core/shaders/canvas/Rounded.js';
|
|
19
|
-
export { RoundedWithBorder } from '../src/core/shaders/canvas/RoundedWithBorder.js';
|
|
20
|
-
export { RoundedWithBorderAndShadow } from '../src/core/shaders/canvas/RoundedWithBorderAndShadow.js';
|
|
21
|
-
export { RoundedWithShadow } from '../src/core/shaders/canvas/RoundedWithShadow.js';
|
|
22
|
-
export { Border } from '../src/core/shaders/canvas/Border.js';
|
|
23
|
-
export { Shadow } from '../src/core/shaders/canvas/Shadow.js';
|
|
24
|
-
export { HolePunch } from '../src/core/shaders/canvas/HolePunch.js';
|
|
25
|
-
export { LinearGradient } from '../src/core/shaders/canvas/LinearGradient.js';
|
|
26
|
-
export { RadialGradient } from '../src/core/shaders/canvas/RadialGradient.js';
|
|
27
|
-
//# sourceMappingURL=canvas-shaders.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"canvas-shaders.js","sourceRoot":"","sources":["../../exports/canvas-shaders.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;GAeG;AAEH,cAAc,kDAAkD,CAAC;AAEjE,OAAO,EAAE,OAAO,EAAE,MAAM,uCAAuC,CAAC;AAChE,OAAO,EAAE,iBAAiB,EAAE,MAAM,iDAAiD,CAAC;AACpF,OAAO,EAAE,0BAA0B,EAAE,MAAM,0DAA0D,CAAC;AACtG,OAAO,EAAE,iBAAiB,EAAE,MAAM,iDAAiD,CAAC;AACpF,OAAO,EAAE,MAAM,EAAE,MAAM,sCAAsC,CAAC;AAC9D,OAAO,EAAE,MAAM,EAAE,MAAM,sCAAsC,CAAC;AAC9D,OAAO,EAAE,SAAS,EAAE,MAAM,yCAAyC,CAAC;AACpE,OAAO,EAAE,cAAc,EAAE,MAAM,8CAA8C,CAAC;AAC9E,OAAO,EAAE,cAAc,EAAE,MAAM,8CAA8C,CAAC"}
|
|
@@ -1,11 +0,0 @@
|
|
|
1
|
-
export * from '../src/core/renderers/webgl/WebGlShaderNode.js';
|
|
2
|
-
export { Rounded } from '../src/core/shaders/webgl/Rounded.js';
|
|
3
|
-
export { RoundedWithBorder } from '../src/core/shaders/webgl/RoundedWithBorder.js';
|
|
4
|
-
export { RoundedWithBorderAndShadow } from '../src/core/shaders/webgl/RoundedWithBorderAndShadow.js';
|
|
5
|
-
export { RoundedWithShadow } from '../src/core/shaders/webgl/RoundedWithShadow.js';
|
|
6
|
-
export { Border } from '../src/core/shaders/webgl/Border.js';
|
|
7
|
-
export { Shadow } from '../src/core/shaders/webgl/Shadow.js';
|
|
8
|
-
export { HolePunch } from '../src/core/shaders/webgl/HolePunch.js';
|
|
9
|
-
export { LinearGradient } from '../src/core/shaders/webgl/LinearGradient.js';
|
|
10
|
-
export { RadialGradient } from '../src/core/shaders/webgl/RadialGradient.js';
|
|
11
|
-
export { Default } from '../src/core/shaders/webgl/Default.js';
|
|
@@ -1,28 +0,0 @@
|
|
|
1
|
-
/*
|
|
2
|
-
* Copyright 2023 Comcast Cable Communications Management, LLC
|
|
3
|
-
* Licensed under the Apache License, Version 2.0 (the "License");
|
|
4
|
-
* you may not use this file except in compliance with the License.
|
|
5
|
-
* You may obtain a copy of the License at
|
|
6
|
-
*
|
|
7
|
-
* http://www.apache.org/licenses/LICENSE-2.0
|
|
8
|
-
*
|
|
9
|
-
* Unless required by applicable law or agreed to in writing, software
|
|
10
|
-
* distributed under the License is distributed on an "AS IS" BASIS,
|
|
11
|
-
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
12
|
-
* See the License for the specific language governing permissions and
|
|
13
|
-
* limitations under the License.
|
|
14
|
-
*
|
|
15
|
-
* SPDX-License-Identifier: Apache-2.0
|
|
16
|
-
*/
|
|
17
|
-
export * from '../src/core/renderers/webgl/WebGlShaderNode.js';
|
|
18
|
-
export { Rounded } from '../src/core/shaders/webgl/Rounded.js';
|
|
19
|
-
export { RoundedWithBorder } from '../src/core/shaders/webgl/RoundedWithBorder.js';
|
|
20
|
-
export { RoundedWithBorderAndShadow } from '../src/core/shaders/webgl/RoundedWithBorderAndShadow.js';
|
|
21
|
-
export { RoundedWithShadow } from '../src/core/shaders/webgl/RoundedWithShadow.js';
|
|
22
|
-
export { Border } from '../src/core/shaders/webgl/Border.js';
|
|
23
|
-
export { Shadow } from '../src/core/shaders/webgl/Shadow.js';
|
|
24
|
-
export { HolePunch } from '../src/core/shaders/webgl/HolePunch.js';
|
|
25
|
-
export { LinearGradient } from '../src/core/shaders/webgl/LinearGradient.js';
|
|
26
|
-
export { RadialGradient } from '../src/core/shaders/webgl/RadialGradient.js';
|
|
27
|
-
export { Default } from '../src/core/shaders/webgl/Default.js';
|
|
28
|
-
//# sourceMappingURL=webgl-shaders.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"webgl-shaders.js","sourceRoot":"","sources":["../../exports/webgl-shaders.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;GAeG;AACH,cAAc,gDAAgD,CAAC;AAE/D,OAAO,EAAE,OAAO,EAAE,MAAM,sCAAsC,CAAC;AAC/D,OAAO,EAAE,iBAAiB,EAAE,MAAM,gDAAgD,CAAC;AACnF,OAAO,EAAE,0BAA0B,EAAE,MAAM,yDAAyD,CAAC;AACrG,OAAO,EAAE,iBAAiB,EAAE,MAAM,gDAAgD,CAAC;AACnF,OAAO,EAAE,MAAM,EAAE,MAAM,qCAAqC,CAAC;AAC7D,OAAO,EAAE,MAAM,EAAE,MAAM,qCAAqC,CAAC;AAC7D,OAAO,EAAE,SAAS,EAAE,MAAM,wCAAwC,CAAC;AACnE,OAAO,EAAE,cAAc,EAAE,MAAM,6CAA6C,CAAC;AAC7E,OAAO,EAAE,cAAc,EAAE,MAAM,6CAA6C,CAAC;AAC7E,OAAO,EAAE,OAAO,EAAE,MAAM,sCAAsC,CAAC"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
export declare function normalizeCanvasColor(color: number, isRGBA?: boolean): string;
|
|
@@ -1,19 +0,0 @@
|
|
|
1
|
-
import { parseToAbgrString, parseToRgbaString } from './colorParser.js';
|
|
2
|
-
const parsedArgbColors = new Map();
|
|
3
|
-
const parsedRgbaColors = new Map();
|
|
4
|
-
export function normalizeCanvasColor(color, isRGBA = false) {
|
|
5
|
-
let targetCache = isRGBA === true ? parsedRgbaColors : parsedArgbColors;
|
|
6
|
-
let out = targetCache.get(color);
|
|
7
|
-
if (out !== undefined) {
|
|
8
|
-
return out;
|
|
9
|
-
}
|
|
10
|
-
if (isRGBA === true) {
|
|
11
|
-
out = parseToRgbaString(color);
|
|
12
|
-
}
|
|
13
|
-
else {
|
|
14
|
-
out = parseToAbgrString(color);
|
|
15
|
-
}
|
|
16
|
-
targetCache.set(color, out);
|
|
17
|
-
return out;
|
|
18
|
-
}
|
|
19
|
-
//# sourceMappingURL=colorCache.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"colorCache.js","sourceRoot":"","sources":["../../../../src/core/lib/colorCache.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,iBAAiB,EAAE,iBAAiB,EAAE,MAAM,kBAAkB,CAAC;AAExE,MAAM,gBAAgB,GAAwB,IAAI,GAAG,EAAE,CAAC;AACxD,MAAM,gBAAgB,GAAwB,IAAI,GAAG,EAAE,CAAC;AAExD,MAAM,UAAU,oBAAoB,CAAC,KAAa,EAAE,SAAkB,KAAK;IACzE,IAAI,WAAW,GAAG,MAAM,KAAK,IAAI,CAAC,CAAC,CAAC,gBAAgB,CAAC,CAAC,CAAC,gBAAgB,CAAC;IACxE,IAAI,GAAG,GAAG,WAAW,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC;IACjC,IAAI,GAAG,KAAK,SAAS,EAAE,CAAC;QACtB,OAAO,GAAG,CAAC;IACb,CAAC;IAED,IAAI,MAAM,KAAK,IAAI,EAAE,CAAC;QACpB,GAAG,GAAG,iBAAiB,CAAC,KAAK,CAAC,CAAC;IACjC,CAAC;SAAM,CAAC;QACN,GAAG,GAAG,iBAAiB,CAAC,KAAK,CAAC,CAAC;IACjC,CAAC;IACD,WAAW,CAAC,GAAG,CAAC,KAAK,EAAE,GAAG,CAAC,CAAC;IAC5B,OAAO,GAAG,CAAC;AACb,CAAC"}
|
|
@@ -1,21 +0,0 @@
|
|
|
1
|
-
export interface IParsedColor {
|
|
2
|
-
isWhite: boolean;
|
|
3
|
-
a: number;
|
|
4
|
-
r: number;
|
|
5
|
-
g: number;
|
|
6
|
-
b: number;
|
|
7
|
-
}
|
|
8
|
-
/**
|
|
9
|
-
* Extract color components
|
|
10
|
-
*/
|
|
11
|
-
export declare function parseColor(abgr: number): IParsedColor;
|
|
12
|
-
export declare function parseToAbgrString(abgr: number): string;
|
|
13
|
-
export declare function parseToRgbaString(rgba: number): string;
|
|
14
|
-
/**
|
|
15
|
-
* Extract color components
|
|
16
|
-
*/
|
|
17
|
-
export declare function parseColorRgba(rgba: number): IParsedColor;
|
|
18
|
-
/**
|
|
19
|
-
* Format a parsed color into a rgba CSS color
|
|
20
|
-
*/
|
|
21
|
-
export declare function formatRgba({ a, r, g, b }: IParsedColor): string;
|
|
@@ -1,72 +0,0 @@
|
|
|
1
|
-
/*
|
|
2
|
-
* If not stated otherwise in this file or this component's LICENSE file the
|
|
3
|
-
* following copyright and licenses apply:
|
|
4
|
-
*
|
|
5
|
-
* Copyright 2023 Comcast Cable Communications Management, LLC.
|
|
6
|
-
*
|
|
7
|
-
* Licensed under the Apache License, Version 2.0 (the License);
|
|
8
|
-
* you may not use this file except in compliance with the License.
|
|
9
|
-
* You may obtain a copy of the License at
|
|
10
|
-
*
|
|
11
|
-
* http://www.apache.org/licenses/LICENSE-2.0
|
|
12
|
-
*
|
|
13
|
-
* Unless required by applicable law or agreed to in writing, software
|
|
14
|
-
* distributed under the License is distributed on an "AS IS" BASIS,
|
|
15
|
-
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
16
|
-
* See the License for the specific language governing permissions and
|
|
17
|
-
* limitations under the License.
|
|
18
|
-
*/
|
|
19
|
-
const WHITE = {
|
|
20
|
-
isWhite: true,
|
|
21
|
-
a: 1,
|
|
22
|
-
r: 0xff,
|
|
23
|
-
g: 0xff,
|
|
24
|
-
b: 0xff,
|
|
25
|
-
};
|
|
26
|
-
/**
|
|
27
|
-
* Extract color components
|
|
28
|
-
*/
|
|
29
|
-
export function parseColor(abgr) {
|
|
30
|
-
if (abgr === 0xffffffff) {
|
|
31
|
-
return WHITE;
|
|
32
|
-
}
|
|
33
|
-
const a = ((abgr >>> 24) & 0xff) / 255;
|
|
34
|
-
const b = (abgr >>> 16) & 0xff & 0xff;
|
|
35
|
-
const g = (abgr >>> 8) & 0xff & 0xff;
|
|
36
|
-
const r = abgr & 0xff & 0xff;
|
|
37
|
-
return { isWhite: false, a, r, g, b };
|
|
38
|
-
}
|
|
39
|
-
export function parseToAbgrString(abgr) {
|
|
40
|
-
const a = ((abgr >>> 24) & 0xff) / 255;
|
|
41
|
-
const b = (abgr >>> 16) & 0xff & 0xff;
|
|
42
|
-
const g = (abgr >>> 8) & 0xff & 0xff;
|
|
43
|
-
const r = abgr & 0xff & 0xff;
|
|
44
|
-
return `rgba(${r},${g},${b},${a})`;
|
|
45
|
-
}
|
|
46
|
-
export function parseToRgbaString(rgba) {
|
|
47
|
-
const r = (rgba >>> 24) & 0xff;
|
|
48
|
-
const g = (rgba >>> 16) & 0xff & 0xff;
|
|
49
|
-
const b = (rgba >>> 8) & 0xff & 0xff;
|
|
50
|
-
const a = (rgba & 0xff & 0xff) / 255;
|
|
51
|
-
return `rgba(${r},${g},${b},${a})`;
|
|
52
|
-
}
|
|
53
|
-
/**
|
|
54
|
-
* Extract color components
|
|
55
|
-
*/
|
|
56
|
-
export function parseColorRgba(rgba) {
|
|
57
|
-
if (rgba === 0xffffffff) {
|
|
58
|
-
return WHITE;
|
|
59
|
-
}
|
|
60
|
-
const r = (rgba >>> 24) & 0xff;
|
|
61
|
-
const g = (rgba >>> 16) & 0xff & 0xff;
|
|
62
|
-
const b = (rgba >>> 8) & 0xff & 0xff;
|
|
63
|
-
const a = (rgba & 0xff & 0xff) / 255;
|
|
64
|
-
return { isWhite: false, r, g, b, a };
|
|
65
|
-
}
|
|
66
|
-
/**
|
|
67
|
-
* Format a parsed color into a rgba CSS color
|
|
68
|
-
*/
|
|
69
|
-
export function formatRgba({ a, r, g, b }) {
|
|
70
|
-
return `rgba(${r},${g},${b},${a})`;
|
|
71
|
-
}
|
|
72
|
-
//# sourceMappingURL=colorParser.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"colorParser.js","sourceRoot":"","sources":["../../../../src/core/lib/colorParser.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,37 +0,0 @@
|
|
|
1
|
-
import { type Stage } from '../Stage.js';
|
|
2
|
-
export declare abstract class Platform {
|
|
3
|
-
/**
|
|
4
|
-
* Creates a new canvas element.
|
|
5
|
-
* @returns The created HTMLCanvasElement.
|
|
6
|
-
*/
|
|
7
|
-
abstract createCanvas(): HTMLCanvasElement;
|
|
8
|
-
/**
|
|
9
|
-
* Get a DOM element by ID
|
|
10
|
-
* @returns The DOM element (or null)
|
|
11
|
-
*/
|
|
12
|
-
abstract getElementById(id: string): HTMLElement | null;
|
|
13
|
-
/**
|
|
14
|
-
* Starts the main rendering loop, calling the provided update function every frame.
|
|
15
|
-
* @param Stage - The stage for rendering
|
|
16
|
-
*/
|
|
17
|
-
abstract startLoop(stage: Stage): void;
|
|
18
|
-
/**
|
|
19
|
-
* Abstracted createImageBitmap method.
|
|
20
|
-
* @param blob - The image source to create the ImageBitmap from.
|
|
21
|
-
* @param sxOrOptions - The source rectangle x coordinate or ImageBitmapOptions.
|
|
22
|
-
* @param sy - The source rectangle y coordinate.
|
|
23
|
-
* @param sw - The source rectangle width.
|
|
24
|
-
* @param sh - The source rectangle height.
|
|
25
|
-
* @param options - The ImageBitmapOptions.
|
|
26
|
-
* @returns A promise that resolves with the created ImageBitmap.
|
|
27
|
-
*/
|
|
28
|
-
abstract createImageBitmap(blob: ImageBitmapSource): Promise<ImageBitmap>;
|
|
29
|
-
abstract createImageBitmap(blob: ImageBitmapSource, options: ImageBitmapOptions): Promise<ImageBitmap>;
|
|
30
|
-
abstract createImageBitmap(blob: ImageBitmapSource, sx: number, sy: number, sw: number, sh: number): Promise<ImageBitmap>;
|
|
31
|
-
abstract createImageBitmap(blob: ImageBitmapSource, sx: number, sy: number, sw: number, sh: number, options: ImageBitmapOptions): Promise<ImageBitmap>;
|
|
32
|
-
/**
|
|
33
|
-
* Retrieves the current timestamp.
|
|
34
|
-
* @returns The current timestamp.
|
|
35
|
-
*/
|
|
36
|
-
abstract getTimeStamp(): number;
|
|
37
|
-
}
|
|
@@ -1,22 +0,0 @@
|
|
|
1
|
-
/*
|
|
2
|
-
* If not stated otherwise in this file or this component's LICENSE file the
|
|
3
|
-
* following copyright and licenses apply:
|
|
4
|
-
*
|
|
5
|
-
* Copyright 2023 Comcast Cable Communications Management, LLC.
|
|
6
|
-
*
|
|
7
|
-
* Licensed under the Apache License, Version 2.0 (the License);
|
|
8
|
-
* you may not use this file except in compliance with the License.
|
|
9
|
-
* You may obtain a copy of the License at
|
|
10
|
-
*
|
|
11
|
-
* http://www.apache.org/licenses/LICENSE-2.0
|
|
12
|
-
*
|
|
13
|
-
* Unless required by applicable law or agreed to in writing, software
|
|
14
|
-
* distributed under the License is distributed on an "AS IS" BASIS,
|
|
15
|
-
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
16
|
-
* See the License for the specific language governing permissions and
|
|
17
|
-
* limitations under the License.
|
|
18
|
-
*/
|
|
19
|
-
import {} from '../Stage.js';
|
|
20
|
-
export class Platform {
|
|
21
|
-
}
|
|
22
|
-
//# sourceMappingURL=Platform.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"Platform.js","sourceRoot":"","sources":["../../../../src/core/platforms/Platform.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;GAiBG;AAEH,OAAO,EAAc,MAAM,aAAa,CAAC;AAEzC,MAAM,OAAgB,QAAQ;CAuD7B"}
|
|
@@ -1,9 +0,0 @@
|
|
|
1
|
-
import { Platform } from '../Platform.js';
|
|
2
|
-
import type { Stage } from '../../Stage.js';
|
|
3
|
-
export declare class WebPlatform extends Platform {
|
|
4
|
-
createCanvas(): HTMLCanvasElement;
|
|
5
|
-
getElementById(id: string): HTMLElement | null;
|
|
6
|
-
startLoop(stage: Stage): void;
|
|
7
|
-
createImageBitmap(blob: ImageBitmapSource, sxOrOptions?: number | ImageBitmapOptions, sy?: number, sw?: number, sh?: number, options?: ImageBitmapOptions): Promise<ImageBitmap>;
|
|
8
|
-
getTimeStamp(): number;
|
|
9
|
-
}
|
|
@@ -1,84 +0,0 @@
|
|
|
1
|
-
import { Platform } from '../Platform.js';
|
|
2
|
-
export class WebPlatform extends Platform {
|
|
3
|
-
////////////////////////
|
|
4
|
-
// Platform-specific methods
|
|
5
|
-
////////////////////////
|
|
6
|
-
createCanvas() {
|
|
7
|
-
const canvas = document.createElement('canvas');
|
|
8
|
-
return canvas;
|
|
9
|
-
}
|
|
10
|
-
getElementById(id) {
|
|
11
|
-
return document.getElementById(id);
|
|
12
|
-
}
|
|
13
|
-
////////////////////////
|
|
14
|
-
// Update loop
|
|
15
|
-
////////////////////////
|
|
16
|
-
startLoop(stage) {
|
|
17
|
-
let isIdle = false;
|
|
18
|
-
let lastFrameTime = 0;
|
|
19
|
-
const runLoop = (currentTime = 0) => {
|
|
20
|
-
const targetFrameTime = stage.targetFrameTime;
|
|
21
|
-
// Check if we should throttle this frame
|
|
22
|
-
if (targetFrameTime > 0 &&
|
|
23
|
-
currentTime - lastFrameTime < targetFrameTime) {
|
|
24
|
-
// Too early for next frame, schedule with setTimeout for precise timing
|
|
25
|
-
const delay = targetFrameTime - (currentTime - lastFrameTime);
|
|
26
|
-
setTimeout(() => requestAnimationFrame(runLoop), delay);
|
|
27
|
-
return;
|
|
28
|
-
}
|
|
29
|
-
stage.updateFrameTime();
|
|
30
|
-
stage.updateAnimations();
|
|
31
|
-
if (!stage.hasSceneUpdates()) {
|
|
32
|
-
// We still need to calculate the fps else it looks like the app is frozen
|
|
33
|
-
stage.calculateFps();
|
|
34
|
-
if (targetFrameTime > 0) {
|
|
35
|
-
// Use setTimeout for throttled idle frames
|
|
36
|
-
setTimeout(() => requestAnimationFrame(runLoop), Math.max(targetFrameTime, 16.666666666666668));
|
|
37
|
-
}
|
|
38
|
-
else {
|
|
39
|
-
// Use standard idle timeout when not throttling
|
|
40
|
-
setTimeout(() => requestAnimationFrame(runLoop), 16.666666666666668);
|
|
41
|
-
}
|
|
42
|
-
if (!isIdle) {
|
|
43
|
-
stage.shManager.cleanup();
|
|
44
|
-
stage.eventBus.emit('idle');
|
|
45
|
-
isIdle = true;
|
|
46
|
-
}
|
|
47
|
-
if (stage.txMemManager.checkCleanup() === true) {
|
|
48
|
-
stage.txMemManager.cleanup(false);
|
|
49
|
-
}
|
|
50
|
-
stage.flushFrameEvents();
|
|
51
|
-
return;
|
|
52
|
-
}
|
|
53
|
-
isIdle = false;
|
|
54
|
-
stage.drawFrame();
|
|
55
|
-
stage.flushFrameEvents();
|
|
56
|
-
// Schedule next frame
|
|
57
|
-
if (targetFrameTime > 0) {
|
|
58
|
-
// Use setTimeout + rAF combination for precise FPS control
|
|
59
|
-
const nextFrameDelay = Math.max(0, targetFrameTime - (performance.now() - currentTime));
|
|
60
|
-
setTimeout(() => requestAnimationFrame(runLoop), nextFrameDelay);
|
|
61
|
-
}
|
|
62
|
-
else {
|
|
63
|
-
// Use standard rAF when not throttling
|
|
64
|
-
requestAnimationFrame(runLoop);
|
|
65
|
-
}
|
|
66
|
-
};
|
|
67
|
-
requestAnimationFrame(runLoop);
|
|
68
|
-
}
|
|
69
|
-
////////////////////////
|
|
70
|
-
// ImageBitmap
|
|
71
|
-
////////////////////////
|
|
72
|
-
createImageBitmap(blob, sxOrOptions, sy, sw, sh, options) {
|
|
73
|
-
if (typeof sxOrOptions === 'number') {
|
|
74
|
-
return createImageBitmap(blob, sxOrOptions, sy ?? 0, sw ?? 0, sh ?? 0, options);
|
|
75
|
-
}
|
|
76
|
-
else {
|
|
77
|
-
return createImageBitmap(blob, sxOrOptions);
|
|
78
|
-
}
|
|
79
|
-
}
|
|
80
|
-
getTimeStamp() {
|
|
81
|
-
return performance ? performance.now() : Date.now();
|
|
82
|
-
}
|
|
83
|
-
}
|
|
84
|
-
//# sourceMappingURL=WebPlatform.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"WebPlatform.js","sourceRoot":"","sources":["../../../../../src/core/platforms/web/WebPlatform.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,59 +0,0 @@
|
|
|
1
|
-
import { type CoreNode } from '../CoreNode.js';
|
|
2
|
-
import type { Stage } from '../Stage.js';
|
|
3
|
-
export interface AdvShaderProp<T = any, Props = Record<string, unknown>> {
|
|
4
|
-
/**
|
|
5
|
-
* default value
|
|
6
|
-
*/
|
|
7
|
-
default: T;
|
|
8
|
-
resolve?: (this: AdvShaderProp<T, Props>, value: T, props: Props) => T;
|
|
9
|
-
transform?: (start: T, end: T, progress: number) => T;
|
|
10
|
-
}
|
|
11
|
-
export type AdvancedShaderProp<T = any, Props = Record<string, unknown>> = (AdvShaderProp<T, Props> & {
|
|
12
|
-
set: (value: T, props: Props) => void;
|
|
13
|
-
get: (props: Props) => T;
|
|
14
|
-
}) | (AdvShaderProp<T, Props> & {
|
|
15
|
-
set?: never;
|
|
16
|
-
get?: never;
|
|
17
|
-
});
|
|
18
|
-
export type ShaderProp<T, Props> = T | AdvancedShaderProp<T, Props>;
|
|
19
|
-
export type ShaderProps<Props> = {
|
|
20
|
-
[K in keyof Props]: ShaderProp<Props[K], Props>;
|
|
21
|
-
};
|
|
22
|
-
export declare function isAdvancedShaderProp(obj: any): obj is AdvancedShaderProp;
|
|
23
|
-
export declare function resolveShaderProps(props: Record<string, unknown>, propsConfig: ShaderProps<Record<string, unknown>>): void;
|
|
24
|
-
/**
|
|
25
|
-
* CoreShaderType is a template for ShaderTypes the renderer.
|
|
26
|
-
* You could view a ShaderType as a configuration object that contains methods,
|
|
27
|
-
* and values that you can use to alter the way a node is drawn by the Renderer.
|
|
28
|
-
*/
|
|
29
|
-
export interface CoreShaderType<Props extends object = any> {
|
|
30
|
-
/**
|
|
31
|
-
* Values you use to draw the Shader
|
|
32
|
-
*/
|
|
33
|
-
props?: ShaderProps<Props>;
|
|
34
|
-
/**
|
|
35
|
-
* used for making a cache key to check for reusability, currently only used for webgl ShaderTypes but might be needed for other types of renderer
|
|
36
|
-
*/
|
|
37
|
-
getCacheMarkers?: (props: Props) => string;
|
|
38
|
-
}
|
|
39
|
-
/**
|
|
40
|
-
* CoreShaderNode is a base class that manages the shader prop values.
|
|
41
|
-
* When a prop is being updated the CoreShaderNode will notify either the associated CoreNode,
|
|
42
|
-
* or the Stage that there has been a change and a new render of the scene.
|
|
43
|
-
*/
|
|
44
|
-
export declare class CoreShaderNode<Props extends object = Record<string, unknown>> {
|
|
45
|
-
readonly shaderKey: string;
|
|
46
|
-
readonly stage: Stage;
|
|
47
|
-
readonly shaderType: CoreShaderType<Props>;
|
|
48
|
-
protected propsConfig: ShaderProps<Props> | undefined;
|
|
49
|
-
readonly resolvedProps: Props | undefined;
|
|
50
|
-
protected definedProps: Props | undefined;
|
|
51
|
-
protected node: CoreNode | null;
|
|
52
|
-
update: (() => void) | undefined;
|
|
53
|
-
constructor(shaderKey: string, type: CoreShaderType<Props>, stage: Stage, props?: Props);
|
|
54
|
-
private defineProps;
|
|
55
|
-
attachNode(node: CoreNode): void;
|
|
56
|
-
createValueKey(): string;
|
|
57
|
-
get props(): Props | undefined;
|
|
58
|
-
set props(props: Props | undefined);
|
|
59
|
-
}
|