@lightningjs/renderer 0.7.2 → 0.7.3
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 +221 -221
- package/dist/src/common/CommonTypes.d.ts +7 -0
- package/dist/src/core/Stage.d.ts +2 -1
- package/dist/src/core/Stage.js +4 -0
- package/dist/src/core/Stage.js.map +1 -1
- package/dist/src/core/animations/CoreAnimation.js +3 -0
- package/dist/src/core/animations/CoreAnimation.js.map +1 -1
- package/dist/src/core/animations/CoreAnimationController.d.ts +8 -0
- package/dist/src/core/animations/CoreAnimationController.js +26 -0
- package/dist/src/core/animations/CoreAnimationController.js.map +1 -1
- package/dist/src/core/lib/ImageWorker.js +21 -21
- package/dist/src/core/renderers/webgl/shaders/DefaultShader.js +47 -47
- 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 +49 -49
- package/dist/src/core/renderers/webgl/shaders/effects/BorderBottomEffect.js +15 -15
- package/dist/src/core/renderers/webgl/shaders/effects/BorderEffect.js +5 -5
- 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/LinearGradientEffect.js +31 -31
- package/dist/src/core/renderers/webgl/shaders/effects/RadialGradientEffect.js +13 -13
- 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/main-api/ICoreDriver.d.ts +2 -1
- package/dist/src/main-api/Inspector.d.ts +6 -0
- package/dist/src/main-api/Inspector.js +105 -19
- package/dist/src/main-api/Inspector.js.map +1 -1
- package/dist/src/main-api/RendererMain.d.ts +12 -0
- package/dist/src/main-api/RendererMain.js +19 -1
- package/dist/src/main-api/RendererMain.js.map +1 -1
- package/dist/src/render-drivers/main/MainCoreDriver.d.ts +2 -1
- package/dist/src/render-drivers/main/MainCoreDriver.js +7 -1
- package/dist/src/render-drivers/main/MainCoreDriver.js.map +1 -1
- package/dist/src/render-drivers/threadx/ThreadXCoreDriver.d.ts +2 -1
- package/dist/src/render-drivers/threadx/ThreadXCoreDriver.js +7 -0
- package/dist/src/render-drivers/threadx/ThreadXCoreDriver.js.map +1 -1
- package/dist/src/render-drivers/threadx/ThreadXRendererMessage.d.ts +9 -1
- package/dist/src/render-drivers/threadx/ThreadXRendererMessage.js.map +1 -1
- package/dist/tsconfig.dist.tsbuildinfo +1 -1
- package/exports/core-api.ts +102 -102
- package/exports/main-api.ts +60 -60
- package/exports/utils.ts +41 -41
- package/package.json +5 -3
- package/scripts/please-use-pnpm.js +13 -0
- package/src/common/CommonTypes.ts +113 -105
- package/src/common/EventEmitter.ts +77 -77
- package/src/common/IAnimationController.ts +29 -29
- package/src/core/CoreExtension.ts +32 -32
- package/src/core/CoreNode.ts +926 -926
- package/src/core/CoreShaderManager.ts +243 -243
- package/src/core/CoreTextNode.ts +391 -391
- package/src/core/CoreTextureManager.ts +326 -326
- package/src/core/Stage.ts +354 -342
- package/src/core/animations/AnimationManager.ts +38 -38
- package/src/core/animations/CoreAnimation.ts +181 -177
- package/src/core/animations/CoreAnimationController.ts +148 -117
- package/src/core/lib/ContextSpy.ts +41 -41
- package/src/core/lib/ImageWorker.ts +124 -124
- package/src/core/lib/Matrix3d.ts +290 -290
- package/src/core/lib/WebGlContextWrapper.ts +992 -992
- package/src/core/lib/textureCompression.ts +152 -152
- package/src/core/lib/utils.ts +241 -241
- package/src/core/platform.ts +46 -46
- package/src/core/renderers/CoreContextTexture.ts +30 -30
- package/src/core/renderers/CoreRenderOp.ts +22 -22
- package/src/core/renderers/CoreRenderer.ts +63 -63
- package/src/core/renderers/CoreShader.ts +41 -41
- package/src/core/renderers/webgl/WebGlCoreCtxSubTexture.ts +37 -37
- package/src/core/renderers/webgl/WebGlCoreCtxTexture.ts +231 -231
- package/src/core/renderers/webgl/WebGlCoreRenderOp.ts +107 -107
- package/src/core/renderers/webgl/WebGlCoreRenderer.ts +520 -520
- package/src/core/renderers/webgl/WebGlCoreShader.ts +337 -337
- package/src/core/renderers/webgl/internal/BufferCollection.ts +54 -54
- package/src/core/renderers/webgl/internal/RendererUtils.ts +131 -131
- package/src/core/renderers/webgl/internal/ShaderUtils.ts +136 -136
- package/src/core/renderers/webgl/internal/WebGlUtils.ts +35 -35
- package/src/core/renderers/webgl/shaders/DefaultShader.ts +95 -95
- package/src/core/renderers/webgl/shaders/DefaultShaderBatched.ts +132 -132
- package/src/core/renderers/webgl/shaders/DynamicShader.ts +474 -474
- package/src/core/renderers/webgl/shaders/RoundedRectangle.ts +161 -161
- package/src/core/renderers/webgl/shaders/SdfShader.ts +174 -174
- package/src/core/renderers/webgl/shaders/effects/BorderBottomEffect.ts +101 -101
- package/src/core/renderers/webgl/shaders/effects/BorderEffect.ts +86 -86
- 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 +33 -33
- package/src/core/renderers/webgl/shaders/effects/FadeOutEffect.ts +135 -135
- package/src/core/renderers/webgl/shaders/effects/GlitchEffect.ts +145 -145
- package/src/core/renderers/webgl/shaders/effects/GrayscaleEffect.ts +67 -67
- package/src/core/renderers/webgl/shaders/effects/LinearGradientEffect.ts +176 -176
- package/src/core/renderers/webgl/shaders/effects/RadialGradientEffect.ts +159 -159
- package/src/core/renderers/webgl/shaders/effects/RadialProgressEffect.ts +186 -186
- package/src/core/renderers/webgl/shaders/effects/RadiusEffect.ts +121 -121
- package/src/core/renderers/webgl/shaders/effects/ShaderEffect.ts +114 -114
- package/src/core/text-rendering/TextTextureRendererUtils.ts +189 -189
- package/src/core/text-rendering/TrFontManager.ts +96 -96
- package/src/core/text-rendering/font-face-types/SdfTrFontFace/SdfTrFontFace.ts +141 -141
- 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 +169 -169
- package/src/core/text-rendering/font-face-types/TrFontFace.ts +105 -105
- package/src/core/text-rendering/font-face-types/WebTrFontFace.ts +77 -77
- package/src/core/text-rendering/renderers/CanvasTextRenderer.ts +751 -751
- package/src/core/text-rendering/renderers/LightningTextTextureRenderer.ts +741 -741
- package/src/core/text-rendering/renderers/SdfTextRenderer/SdfTextRenderer.ts +775 -775
- 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 +84 -84
- 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 +393 -393
- package/src/core/text-rendering/renderers/SdfTextRenderer/internal/measureText.test.ts +49 -49
- package/src/core/text-rendering/renderers/SdfTextRenderer/internal/measureText.ts +51 -51
- 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 +504 -504
- package/src/core/textures/ColorTexture.ts +86 -86
- package/src/core/textures/ImageTexture.ts +133 -133
- package/src/core/textures/NoiseTexture.ts +96 -96
- package/src/core/textures/SubTexture.ts +143 -143
- package/src/core/textures/Texture.ts +218 -218
- package/src/core/utils.ts +224 -224
- package/src/env.d.ts +7 -7
- package/src/main-api/ICoreDriver.ts +66 -61
- package/src/main-api/INode.ts +470 -470
- package/src/main-api/Inspector.ts +432 -0
- package/src/main-api/RendererMain.ts +649 -610
- package/src/main-api/texture-usage-trackers/FinalizationRegistryTextureUsageTracker.ts +45 -45
- package/src/main-api/texture-usage-trackers/ManualCountTextureUsageTracker.ts +154 -154
- package/src/main-api/texture-usage-trackers/TextureUsageTracker.ts +54 -54
- package/src/render-drivers/main/MainCoreDriver.ts +148 -133
- package/src/render-drivers/main/MainOnlyNode.ts +453 -453
- package/src/render-drivers/main/MainOnlyTextNode.ts +261 -261
- package/src/render-drivers/threadx/NodeStruct.ts +300 -300
- package/src/render-drivers/threadx/SharedNode.ts +97 -97
- package/src/render-drivers/threadx/TextNodeStruct.ts +211 -211
- package/src/render-drivers/threadx/ThreadXCoreDriver.ts +285 -273
- package/src/render-drivers/threadx/ThreadXMainAnimationController.ts +99 -99
- package/src/render-drivers/threadx/ThreadXMainNode.ts +178 -178
- package/src/render-drivers/threadx/ThreadXMainTextNode.ts +85 -85
- package/src/render-drivers/threadx/ThreadXRendererMessage.ts +110 -97
- package/src/render-drivers/threadx/worker/ThreadXRendererNode.ts +238 -238
- package/src/render-drivers/threadx/worker/ThreadXRendererTextNode.ts +149 -149
- package/src/render-drivers/threadx/worker/renderer.ts +151 -151
- package/src/render-drivers/utils.ts +57 -57
- package/src/utils.ts +207 -207
- package/dist/src/core/lib/WebGlContext.d.ts +0 -414
- package/dist/src/core/lib/WebGlContext.js +0 -640
- package/dist/src/core/lib/WebGlContext.js.map +0 -1
- package/dist/src/core/scene/Scene.d.ts +0 -59
- package/dist/src/core/scene/Scene.js +0 -106
- package/dist/src/core/scene/Scene.js.map +0 -1
- package/dist/src/core/text-rendering/renderers/SdfTextRenderer/internal/findNearestMultiple.d.ts +0 -8
- package/dist/src/core/text-rendering/renderers/SdfTextRenderer/internal/findNearestMultiple.js +0 -29
- package/dist/src/core/text-rendering/renderers/SdfTextRenderer/internal/findNearestMultiple.js.map +0 -1
- package/dist/src/core/text-rendering/renderers/SdfTextRenderer/internal/layoutText2/SdfBufferHelper.d.ts +0 -19
- package/dist/src/core/text-rendering/renderers/SdfTextRenderer/internal/layoutText2/SdfBufferHelper.js +0 -84
- package/dist/src/core/text-rendering/renderers/SdfTextRenderer/internal/layoutText2/SdfBufferHelper.js.map +0 -1
- package/dist/src/core/text-rendering/renderers/SdfTextRenderer/internal/layoutText2/layoutLine.d.ts +0 -8
- package/dist/src/core/text-rendering/renderers/SdfTextRenderer/internal/layoutText2/layoutLine.js +0 -40
- package/dist/src/core/text-rendering/renderers/SdfTextRenderer/internal/layoutText2/layoutLine.js.map +0 -1
- package/dist/src/core/text-rendering/renderers/SdfTextRenderer/internal/layoutText2/layoutText2.d.ts +0 -2
- package/dist/src/core/text-rendering/renderers/SdfTextRenderer/internal/layoutText2/layoutText2.js +0 -41
- package/dist/src/core/text-rendering/renderers/SdfTextRenderer/internal/layoutText2/layoutText2.js.map +0 -1
- package/dist/src/core/text-rendering/renderers/SdfTextRenderer/internal/layoutText2/utils.d.ts +0 -1
- package/dist/src/core/text-rendering/renderers/SdfTextRenderer/internal/layoutText2/utils.js +0 -4
- package/dist/src/core/text-rendering/renderers/SdfTextRenderer/internal/layoutText2/utils.js.map +0 -1
- package/dist/src/core/text-rendering/renderers/SdfTextRenderer/internal/layoutText2.d.ts +0 -1
- package/dist/src/core/text-rendering/renderers/SdfTextRenderer/internal/layoutText2.js +0 -2
- package/dist/src/core/text-rendering/renderers/SdfTextRenderer/internal/layoutText2.js.map +0 -1
- package/dist/src/core/text-rendering/renderers/SdfTextRenderer/internal/makeRenderWindow.d.ts +0 -20
- package/dist/src/core/text-rendering/renderers/SdfTextRenderer/internal/makeRenderWindow.js +0 -55
- package/dist/src/core/text-rendering/renderers/SdfTextRenderer/internal/makeRenderWindow.js.map +0 -1
- package/dist/src/core/text-rendering/renderers/SdfTextRenderer/internal/roundUpToMultiple.d.ts +0 -9
- package/dist/src/core/text-rendering/renderers/SdfTextRenderer/internal/roundUpToMultiple.js +0 -32
- package/dist/src/core/text-rendering/renderers/SdfTextRenderer/internal/roundUpToMultiple.js.map +0 -1
|
@@ -80,47 +80,47 @@ export class RadialProgressEffect extends ShaderEffect {
|
|
|
80
80
|
},
|
|
81
81
|
};
|
|
82
82
|
static methods = {
|
|
83
|
-
rotateUV: `
|
|
84
|
-
vec2 function(vec2 uv, float d) {
|
|
85
|
-
float s = sin(d);
|
|
86
|
-
float c = cos(d);
|
|
87
|
-
mat2 rotMatrix = mat2(c, -s, s, c);
|
|
88
|
-
return uv * rotMatrix;
|
|
89
|
-
}
|
|
83
|
+
rotateUV: `
|
|
84
|
+
vec2 function(vec2 uv, float d) {
|
|
85
|
+
float s = sin(d);
|
|
86
|
+
float c = cos(d);
|
|
87
|
+
mat2 rotMatrix = mat2(c, -s, s, c);
|
|
88
|
+
return uv * rotMatrix;
|
|
89
|
+
}
|
|
90
90
|
`,
|
|
91
|
-
drawDot: `
|
|
92
|
-
float function(vec2 uv, vec2 p, float r) {
|
|
93
|
-
uv += p;
|
|
94
|
-
float circle = length(uv) - r;
|
|
95
|
-
return clamp(-circle, 0.0, 1.0);
|
|
96
|
-
}
|
|
91
|
+
drawDot: `
|
|
92
|
+
float function(vec2 uv, vec2 p, float r) {
|
|
93
|
+
uv += p;
|
|
94
|
+
float circle = length(uv) - r;
|
|
95
|
+
return clamp(-circle, 0.0, 1.0);
|
|
96
|
+
}
|
|
97
97
|
`,
|
|
98
98
|
};
|
|
99
|
-
static onEffectMask = `
|
|
100
|
-
float outerRadius = radius * u_dimensions.y * 0.5;
|
|
101
|
-
|
|
102
|
-
float endAngle = range * progress - 0.0005;
|
|
103
|
-
|
|
104
|
-
vec2 uv = v_textureCoordinate.xy * u_dimensions.xy - u_dimensions * 0.5;
|
|
105
|
-
|
|
106
|
-
uv = $rotateUV(uv, -(offset));
|
|
107
|
-
float linewidth = width * u_pixelRatio;
|
|
108
|
-
float circle = length(uv) - (outerRadius - linewidth) ;
|
|
109
|
-
circle = abs(circle) - linewidth;
|
|
110
|
-
circle = clamp(-circle, 0.0, 1.0);
|
|
111
|
-
|
|
112
|
-
float angle = (atan(uv.x, -uv.y) / 3.14159265359 * 0.5);
|
|
113
|
-
float p = endAngle / (PI * 2.);
|
|
114
|
-
|
|
115
|
-
circle *= step(fract(angle), fract(p));
|
|
116
|
-
|
|
117
|
-
circle = rounded < 1. ? circle : max(circle, $drawDot(uv, vec2(0, outerRadius - linewidth), linewidth));
|
|
118
|
-
circle = rounded < 1. ? circle : max(circle, $drawDot($rotateUV(uv, -(endAngle)), vec2(0, outerRadius - linewidth), linewidth));
|
|
119
|
-
|
|
120
|
-
return mix(shaderColor, maskColor, circle);
|
|
99
|
+
static onEffectMask = `
|
|
100
|
+
float outerRadius = radius * u_dimensions.y * 0.5;
|
|
101
|
+
|
|
102
|
+
float endAngle = range * progress - 0.0005;
|
|
103
|
+
|
|
104
|
+
vec2 uv = v_textureCoordinate.xy * u_dimensions.xy - u_dimensions * 0.5;
|
|
105
|
+
|
|
106
|
+
uv = $rotateUV(uv, -(offset));
|
|
107
|
+
float linewidth = width * u_pixelRatio;
|
|
108
|
+
float circle = length(uv) - (outerRadius - linewidth) ;
|
|
109
|
+
circle = abs(circle) - linewidth;
|
|
110
|
+
circle = clamp(-circle, 0.0, 1.0);
|
|
111
|
+
|
|
112
|
+
float angle = (atan(uv.x, -uv.y) / 3.14159265359 * 0.5);
|
|
113
|
+
float p = endAngle / (PI * 2.);
|
|
114
|
+
|
|
115
|
+
circle *= step(fract(angle), fract(p));
|
|
116
|
+
|
|
117
|
+
circle = rounded < 1. ? circle : max(circle, $drawDot(uv, vec2(0, outerRadius - linewidth), linewidth));
|
|
118
|
+
circle = rounded < 1. ? circle : max(circle, $drawDot($rotateUV(uv, -(endAngle)), vec2(0, outerRadius - linewidth), linewidth));
|
|
119
|
+
|
|
120
|
+
return mix(shaderColor, maskColor, circle);
|
|
121
121
|
`;
|
|
122
|
-
static onColorize = `
|
|
123
|
-
return color;
|
|
122
|
+
static onColorize = `
|
|
123
|
+
return color;
|
|
124
124
|
`;
|
|
125
125
|
}
|
|
126
126
|
//# sourceMappingURL=RadialProgressEffect.js.map
|
|
@@ -52,17 +52,17 @@ export class RadiusEffect extends ShaderEffect {
|
|
|
52
52
|
},
|
|
53
53
|
};
|
|
54
54
|
static methods = {
|
|
55
|
-
fillMask: `
|
|
56
|
-
float function(float dist) {
|
|
57
|
-
return clamp(-dist, 0.0, 1.0);
|
|
58
|
-
}
|
|
55
|
+
fillMask: `
|
|
56
|
+
float function(float dist) {
|
|
57
|
+
return clamp(-dist, 0.0, 1.0);
|
|
58
|
+
}
|
|
59
59
|
`,
|
|
60
|
-
boxDist: `
|
|
61
|
-
float function(vec2 p, vec2 size, float radius) {
|
|
62
|
-
size -= vec2(radius);
|
|
63
|
-
vec2 d = abs(p) - size;
|
|
64
|
-
return min(max(d.x, d.y), 0.0) + length(max(d, 0.0)) - radius;
|
|
65
|
-
}
|
|
60
|
+
boxDist: `
|
|
61
|
+
float function(vec2 p, vec2 size, float radius) {
|
|
62
|
+
size -= vec2(radius);
|
|
63
|
+
vec2 d = abs(p) - size;
|
|
64
|
+
return min(max(d.x, d.y), 0.0) + length(max(d, 0.0)) - radius;
|
|
65
|
+
}
|
|
66
66
|
`,
|
|
67
67
|
};
|
|
68
68
|
static resolveDefaults(props) {
|
|
@@ -70,16 +70,16 @@ export class RadiusEffect extends ShaderEffect {
|
|
|
70
70
|
radius: props.radius ?? 10,
|
|
71
71
|
};
|
|
72
72
|
}
|
|
73
|
-
static onShaderMask = `
|
|
74
|
-
vec2 halfDimensions = u_dimensions * 0.5;
|
|
75
|
-
float r = radius[0] * step(v_textureCoordinate.x, 0.5) * step(v_textureCoordinate.y, 0.5);
|
|
76
|
-
r = r + radius[1] * step(0.5, v_textureCoordinate.x) * step(v_textureCoordinate.y, 0.5);
|
|
77
|
-
r = r + radius[2] * step(0.5, v_textureCoordinate.x) * step(0.5, v_textureCoordinate.y);
|
|
78
|
-
r = r + radius[3] * step(v_textureCoordinate.x, 0.5) * step(0.5, v_textureCoordinate.y);
|
|
79
|
-
return $boxDist(v_textureCoordinate.xy * u_dimensions - halfDimensions, halfDimensions, r);
|
|
73
|
+
static onShaderMask = `
|
|
74
|
+
vec2 halfDimensions = u_dimensions * 0.5;
|
|
75
|
+
float r = radius[0] * step(v_textureCoordinate.x, 0.5) * step(v_textureCoordinate.y, 0.5);
|
|
76
|
+
r = r + radius[1] * step(0.5, v_textureCoordinate.x) * step(v_textureCoordinate.y, 0.5);
|
|
77
|
+
r = r + radius[2] * step(0.5, v_textureCoordinate.x) * step(0.5, v_textureCoordinate.y);
|
|
78
|
+
r = r + radius[3] * step(v_textureCoordinate.x, 0.5) * step(0.5, v_textureCoordinate.y);
|
|
79
|
+
return $boxDist(v_textureCoordinate.xy * u_dimensions - halfDimensions, halfDimensions, r);
|
|
80
80
|
`;
|
|
81
|
-
static onEffectMask = `
|
|
82
|
-
return mix(vec4(0.0), maskColor, $fillMask(shaderMask));
|
|
81
|
+
static onEffectMask = `
|
|
82
|
+
return mix(vec4(0.0), maskColor, $fillMask(shaderMask));
|
|
83
83
|
`;
|
|
84
84
|
}
|
|
85
85
|
//# sourceMappingURL=RadiusEffect.js.map
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import type { FpsUpdatePayload } from '../common/CommonTypes.js';
|
|
1
|
+
import type { FpsUpdatePayload, FrameTickPayload } from '../common/CommonTypes.js';
|
|
2
2
|
import type { INode, INodeWritableProps, ITextNode, ITextNodeWritableProps } from './INode.js';
|
|
3
3
|
import type { RendererMain, RendererMainSettings } from './RendererMain.js';
|
|
4
4
|
/**
|
|
@@ -19,4 +19,5 @@ export interface ICoreDriver {
|
|
|
19
19
|
onCreateNode(node: INode): void;
|
|
20
20
|
onBeforeDestroyNode(node: INode): void;
|
|
21
21
|
onFpsUpdate(fpsData: FpsUpdatePayload): void;
|
|
22
|
+
onFrameTick(frameTickData: FrameTickPayload): void;
|
|
22
23
|
}
|
|
@@ -4,7 +4,13 @@ import { type RendererMainSettings } from './RendererMain.js';
|
|
|
4
4
|
import type { AnimationSettings } from '../core/animations/CoreAnimation.js';
|
|
5
5
|
export declare class Inspector {
|
|
6
6
|
private root;
|
|
7
|
+
private canvas;
|
|
8
|
+
private height;
|
|
9
|
+
private width;
|
|
10
|
+
private scaleX;
|
|
11
|
+
private scaleY;
|
|
7
12
|
constructor(canvas: HTMLCanvasElement, settings: RendererMainSettings);
|
|
13
|
+
setRootPosition(): void;
|
|
8
14
|
createDiv(node: INode | ITextNode, properties: INodeWritableProps | ITextNodeWritableProps): HTMLElement;
|
|
9
15
|
createNode(driver: ICoreDriver, properties: INodeWritableProps): INode;
|
|
10
16
|
createTextNode(driver: ICoreDriver, properties: ITextNodeWritableProps): ITextNode;
|
|
@@ -1,10 +1,29 @@
|
|
|
1
1
|
import {} from './RendererMain.js';
|
|
2
2
|
const stylePropertyMap = {
|
|
3
|
-
alpha: () =>
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
3
|
+
alpha: (v) => {
|
|
4
|
+
if (v === 1) {
|
|
5
|
+
return null;
|
|
6
|
+
}
|
|
7
|
+
return { prop: 'opacity', value: `${v}` };
|
|
8
|
+
},
|
|
9
|
+
x: (x) => {
|
|
10
|
+
return { prop: 'left', value: `${x}px` };
|
|
11
|
+
},
|
|
12
|
+
y: (y) => {
|
|
13
|
+
return { prop: 'top', value: `${y}px` };
|
|
14
|
+
},
|
|
15
|
+
width: (w) => {
|
|
16
|
+
if (w === 0) {
|
|
17
|
+
return null;
|
|
18
|
+
}
|
|
19
|
+
return { prop: 'width', value: `${w}px` };
|
|
20
|
+
},
|
|
21
|
+
height: (h) => {
|
|
22
|
+
if (h === 0) {
|
|
23
|
+
return null;
|
|
24
|
+
}
|
|
25
|
+
return { prop: 'height', value: `${h}px` };
|
|
26
|
+
},
|
|
8
27
|
zIndex: () => 'zIndex',
|
|
9
28
|
fontFamily: () => 'font-family',
|
|
10
29
|
fontSize: () => 'font-size',
|
|
@@ -19,24 +38,45 @@ const stylePropertyMap = {
|
|
|
19
38
|
contain: () => 'contain',
|
|
20
39
|
verticalAlign: () => 'vertical-align',
|
|
21
40
|
clipping: (v) => {
|
|
41
|
+
if (v === false) {
|
|
42
|
+
return null;
|
|
43
|
+
}
|
|
22
44
|
return { prop: 'overflow', value: v ? 'hidden' : 'visible' };
|
|
23
45
|
},
|
|
24
46
|
rotation: (v) => {
|
|
47
|
+
if (v === 0) {
|
|
48
|
+
return null;
|
|
49
|
+
}
|
|
25
50
|
return { prop: 'transform', value: `rotate(${v}rad)` };
|
|
26
51
|
},
|
|
27
52
|
scale: (v) => {
|
|
53
|
+
if (v === 1) {
|
|
54
|
+
return null;
|
|
55
|
+
}
|
|
28
56
|
return { prop: 'transform', value: `scale(${v})` };
|
|
29
57
|
},
|
|
30
58
|
scaleX: (v) => {
|
|
59
|
+
if (v === 1) {
|
|
60
|
+
return null;
|
|
61
|
+
}
|
|
31
62
|
return { prop: 'transform', value: `scaleX(${v})` };
|
|
32
63
|
},
|
|
33
64
|
scaleY: (v) => {
|
|
65
|
+
if (v === 1) {
|
|
66
|
+
return null;
|
|
67
|
+
}
|
|
34
68
|
return { prop: 'transform', value: `scaleY(${v})` };
|
|
35
69
|
},
|
|
36
70
|
src: (v) => {
|
|
71
|
+
if (!v) {
|
|
72
|
+
return null;
|
|
73
|
+
}
|
|
37
74
|
return { prop: 'background-image', value: `url(${v})` };
|
|
38
75
|
},
|
|
39
76
|
color: (v) => {
|
|
77
|
+
if (v === 0) {
|
|
78
|
+
return null;
|
|
79
|
+
}
|
|
40
80
|
return { prop: 'color', value: convertColorToRgba(v) };
|
|
41
81
|
},
|
|
42
82
|
};
|
|
@@ -61,27 +101,59 @@ const gradientColorPropertyMap = [
|
|
|
61
101
|
'colorBr',
|
|
62
102
|
];
|
|
63
103
|
export class Inspector {
|
|
64
|
-
root;
|
|
104
|
+
root = null;
|
|
105
|
+
canvas = null;
|
|
106
|
+
height = 1080;
|
|
107
|
+
width = 1920;
|
|
108
|
+
scaleX = 1;
|
|
109
|
+
scaleY = 1;
|
|
65
110
|
constructor(canvas, settings) {
|
|
111
|
+
if (import.meta.env.PROD)
|
|
112
|
+
return;
|
|
66
113
|
if (!settings) {
|
|
67
114
|
throw new Error('settings is required');
|
|
68
115
|
}
|
|
69
116
|
// calc dimensions based on the devicePixelRatio
|
|
70
|
-
|
|
71
|
-
|
|
117
|
+
this.height = Math.ceil(settings.appHeight ?? 1080 / (settings.deviceLogicalPixelRatio ?? 1));
|
|
118
|
+
this.width = Math.ceil(settings.appWidth ?? 1900 / (settings.deviceLogicalPixelRatio ?? 1));
|
|
119
|
+
this.scaleX = settings.deviceLogicalPixelRatio ?? 1;
|
|
120
|
+
this.scaleY = settings.deviceLogicalPixelRatio ?? 1;
|
|
121
|
+
this.canvas = canvas;
|
|
72
122
|
this.root = document.createElement('div');
|
|
123
|
+
this.setRootPosition();
|
|
124
|
+
document.body.appendChild(this.root);
|
|
125
|
+
//listen for changes on canvas
|
|
126
|
+
const mutationObserver = new MutationObserver(this.setRootPosition.bind(this));
|
|
127
|
+
mutationObserver.observe(canvas, {
|
|
128
|
+
attributes: true,
|
|
129
|
+
childList: false,
|
|
130
|
+
subtree: false,
|
|
131
|
+
});
|
|
132
|
+
// Create a ResizeObserver to watch for changes in the element's size
|
|
133
|
+
const resizeObserver = new ResizeObserver(this.setRootPosition.bind(this));
|
|
134
|
+
resizeObserver.observe(canvas);
|
|
135
|
+
//listen for changes on window
|
|
136
|
+
window.addEventListener('resize', this.setRootPosition.bind(this));
|
|
137
|
+
console.warn('Inspector is enabled, this will impact performance');
|
|
138
|
+
}
|
|
139
|
+
setRootPosition() {
|
|
140
|
+
if (this.root === null || this.canvas === null) {
|
|
141
|
+
return;
|
|
142
|
+
}
|
|
143
|
+
// get the world position of the canvas object, so we can match the inspector to it
|
|
144
|
+
const rect = this.canvas.getBoundingClientRect();
|
|
145
|
+
const top = document.documentElement.scrollTop + rect.top;
|
|
146
|
+
const left = document.documentElement.scrollLeft + rect.left;
|
|
73
147
|
this.root.id = 'root';
|
|
74
|
-
this.root.style.left =
|
|
75
|
-
this.root.style.top =
|
|
76
|
-
this.root.style.width = `${width}px`;
|
|
77
|
-
this.root.style.height = `${height}px`;
|
|
148
|
+
this.root.style.left = `${left}px`;
|
|
149
|
+
this.root.style.top = `${top}px`;
|
|
150
|
+
this.root.style.width = `${this.width}px`;
|
|
151
|
+
this.root.style.height = `${this.height}px`;
|
|
78
152
|
this.root.style.position = 'absolute';
|
|
79
153
|
this.root.style.transformOrigin = '0 0 0';
|
|
80
|
-
this.root.style.transform = `scale(${
|
|
154
|
+
this.root.style.transform = `scale(${this.scaleX}, ${this.scaleY})`;
|
|
81
155
|
this.root.style.overflow = 'hidden';
|
|
82
|
-
this.root.style.zIndex = '-
|
|
83
|
-
document.body.appendChild(this.root);
|
|
84
|
-
console.warn('Inspector is enabled, this will impact performance');
|
|
156
|
+
this.root.style.zIndex = '-65534';
|
|
85
157
|
}
|
|
86
158
|
createDiv(node, properties) {
|
|
87
159
|
const div = document.createElement('div');
|
|
@@ -98,6 +170,8 @@ export class Inspector {
|
|
|
98
170
|
createNode(driver, properties) {
|
|
99
171
|
const node = driver.createNode(properties);
|
|
100
172
|
const div = this.createDiv(node, properties);
|
|
173
|
+
// eslint-disable-next-line @typescript-eslint/no-unsafe-member-access, @typescript-eslint/no-explicit-any
|
|
174
|
+
div.node = node;
|
|
101
175
|
return this.createProxy(node, div);
|
|
102
176
|
}
|
|
103
177
|
createTextNode(driver, properties) {
|
|
@@ -140,7 +214,7 @@ export class Inspector {
|
|
|
140
214
|
updateNodeProperty(div, property,
|
|
141
215
|
// eslint-disable-next-line @typescript-eslint/no-explicit-any
|
|
142
216
|
value) {
|
|
143
|
-
if (
|
|
217
|
+
if (this.root === null || value === undefined || value === null) {
|
|
144
218
|
return;
|
|
145
219
|
}
|
|
146
220
|
/**
|
|
@@ -173,10 +247,14 @@ export class Inspector {
|
|
|
173
247
|
// CSS mappable attribute
|
|
174
248
|
if (stylePropertyMap[property]) {
|
|
175
249
|
const mappedStyleResponse = stylePropertyMap[property]?.(value);
|
|
250
|
+
if (mappedStyleResponse === null) {
|
|
251
|
+
return;
|
|
252
|
+
}
|
|
176
253
|
if (typeof mappedStyleResponse === 'string') {
|
|
177
254
|
div.style.setProperty(mappedStyleResponse, String(value));
|
|
255
|
+
return;
|
|
178
256
|
}
|
|
179
|
-
|
|
257
|
+
if (typeof mappedStyleResponse === 'object') {
|
|
180
258
|
div.style.setProperty(mappedStyleResponse.prop, mappedStyleResponse.value);
|
|
181
259
|
}
|
|
182
260
|
return;
|
|
@@ -186,10 +264,18 @@ export class Inspector {
|
|
|
186
264
|
div.setAttribute(String(stylePropertyMap[property]), String(value));
|
|
187
265
|
return;
|
|
188
266
|
}
|
|
267
|
+
// custom data properties
|
|
268
|
+
// Needs https://github.com/lightning-js/renderer/pull/178 to be merged
|
|
269
|
+
// if (property === 'data') {
|
|
270
|
+
// for (const key in value) {
|
|
271
|
+
// // eslint-disable-next-line @typescript-eslint/no-unsafe-member-access
|
|
272
|
+
// div.setAttribute(`data-${key}`, String(value[key]));
|
|
273
|
+
// }
|
|
274
|
+
// return;
|
|
275
|
+
// }
|
|
189
276
|
}
|
|
190
277
|
// simple animation handler
|
|
191
278
|
animateNode(div, node, props, settings) {
|
|
192
|
-
console.log('animateNode', props, settings);
|
|
193
279
|
const { duration = 1000, delay = 0,
|
|
194
280
|
// easing = 'linear',
|
|
195
281
|
// repeat = 0,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Inspector.js","sourceRoot":"","sources":["../../../src/main-api/Inspector.ts"],"names":[],"mappings":"AAQA,OAAO,EAA6B,MAAM,mBAAmB,CAAC;AAyB9D,MAAM,gBAAgB,
|
|
1
|
+
{"version":3,"file":"Inspector.js","sourceRoot":"","sources":["../../../src/main-api/Inspector.ts"],"names":[],"mappings":"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"}
|
|
@@ -186,6 +186,17 @@ export interface RendererMainSettings {
|
|
|
186
186
|
* @defaultValue `2`
|
|
187
187
|
*/
|
|
188
188
|
numImageWorkers?: number;
|
|
189
|
+
/**
|
|
190
|
+
* Enable inspector
|
|
191
|
+
*
|
|
192
|
+
* @remarks
|
|
193
|
+
* When enabled the renderer will spawn a inspector. The inspector will
|
|
194
|
+
* replicate the state of the Nodes created in the renderer and allow
|
|
195
|
+
* inspection of the state of the nodes.
|
|
196
|
+
*
|
|
197
|
+
* @defaultValue `false` (disabled)
|
|
198
|
+
*/
|
|
199
|
+
enableInspector?: boolean;
|
|
189
200
|
}
|
|
190
201
|
/**
|
|
191
202
|
* The Renderer Main API
|
|
@@ -216,6 +227,7 @@ export declare class RendererMain extends EventEmitter {
|
|
|
216
227
|
readonly driver: ICoreDriver;
|
|
217
228
|
readonly canvas: HTMLCanvasElement;
|
|
218
229
|
readonly settings: Readonly<Required<RendererMainSettings>>;
|
|
230
|
+
private inspector;
|
|
219
231
|
private nodes;
|
|
220
232
|
private nextTextureId;
|
|
221
233
|
/**
|
|
@@ -19,6 +19,7 @@
|
|
|
19
19
|
import { ManualCountTextureUsageTracker, } from './texture-usage-trackers/ManualCountTextureUsageTracker.js';
|
|
20
20
|
import { FinalizationRegistryTextureUsageTracker } from './texture-usage-trackers/FinalizationRegistryTextureUsageTracker.js';
|
|
21
21
|
import { EventEmitter } from '../common/EventEmitter.js';
|
|
22
|
+
import { Inspector } from './Inspector.js';
|
|
22
23
|
/**
|
|
23
24
|
* The Renderer Main API
|
|
24
25
|
*
|
|
@@ -48,6 +49,7 @@ export class RendererMain extends EventEmitter {
|
|
|
48
49
|
driver;
|
|
49
50
|
canvas;
|
|
50
51
|
settings;
|
|
52
|
+
inspector = null;
|
|
51
53
|
nodes = new Map();
|
|
52
54
|
nextTextureId = 1;
|
|
53
55
|
/**
|
|
@@ -78,9 +80,10 @@ export class RendererMain extends EventEmitter {
|
|
|
78
80
|
fpsUpdateInterval: settings.fpsUpdateInterval || 0,
|
|
79
81
|
numImageWorkers: settings.numImageWorkers !== undefined ? settings.numImageWorkers : 2,
|
|
80
82
|
enableContextSpy: settings.enableContextSpy ?? false,
|
|
83
|
+
enableInspector: settings.enableInspector ?? false,
|
|
81
84
|
};
|
|
82
85
|
this.settings = resolvedSettings;
|
|
83
|
-
const { appWidth, appHeight, deviceLogicalPixelRatio, devicePhysicalPixelRatio, } = resolvedSettings;
|
|
86
|
+
const { appWidth, appHeight, deviceLogicalPixelRatio, devicePhysicalPixelRatio, enableInspector, } = resolvedSettings;
|
|
84
87
|
const releaseCallback = (textureId) => {
|
|
85
88
|
this.driver.releaseTexture(textureId);
|
|
86
89
|
};
|
|
@@ -118,7 +121,13 @@ export class RendererMain extends EventEmitter {
|
|
|
118
121
|
driver.onFpsUpdate = (fpsData) => {
|
|
119
122
|
this.emit('fpsUpdate', fpsData);
|
|
120
123
|
};
|
|
124
|
+
driver.onFrameTick = (frameTickData) => {
|
|
125
|
+
this.emit('frameTick', frameTickData);
|
|
126
|
+
};
|
|
121
127
|
targetEl.appendChild(canvas);
|
|
128
|
+
if (enableInspector && !import.meta.env.PROD) {
|
|
129
|
+
this.inspector = new Inspector(canvas, resolvedSettings);
|
|
130
|
+
}
|
|
122
131
|
}
|
|
123
132
|
/**
|
|
124
133
|
* Initialize the renderer
|
|
@@ -148,6 +157,9 @@ export class RendererMain extends EventEmitter {
|
|
|
148
157
|
* @returns
|
|
149
158
|
*/
|
|
150
159
|
createNode(props) {
|
|
160
|
+
if (this.inspector) {
|
|
161
|
+
return this.inspector.createNode(this.driver, this.resolveNodeDefaults(props));
|
|
162
|
+
}
|
|
151
163
|
return this.driver.createNode(this.resolveNodeDefaults(props));
|
|
152
164
|
}
|
|
153
165
|
/**
|
|
@@ -188,6 +200,9 @@ export class RendererMain extends EventEmitter {
|
|
|
188
200
|
overflowSuffix: props.overflowSuffix ?? '...',
|
|
189
201
|
debug: props.debug ?? {},
|
|
190
202
|
};
|
|
203
|
+
if (this.inspector) {
|
|
204
|
+
return this.inspector.createTextNode(this.driver, data);
|
|
205
|
+
}
|
|
191
206
|
return this.driver.createTextNode(data);
|
|
192
207
|
}
|
|
193
208
|
/**
|
|
@@ -253,6 +268,9 @@ export class RendererMain extends EventEmitter {
|
|
|
253
268
|
* @returns
|
|
254
269
|
*/
|
|
255
270
|
destroyNode(node) {
|
|
271
|
+
if (this.inspector) {
|
|
272
|
+
this.inspector.destroyNode(node);
|
|
273
|
+
}
|
|
256
274
|
return this.driver.destroyNode(node);
|
|
257
275
|
}
|
|
258
276
|
/**
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"RendererMain.js","sourceRoot":"","sources":["../../../src/main-api/RendererMain.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;GAiBG;AAgBH,OAAO,EACL,8BAA8B,GAE/B,MAAM,4DAA4D,CAAC;AACpE,OAAO,EAAE,uCAAuC,EAAE,MAAM,qEAAqE,CAAC;AAE9H,OAAO,EAAE,YAAY,EAAE,MAAM,2BAA2B,CAAC;
|
|
1
|
+
{"version":3,"file":"RendererMain.js","sourceRoot":"","sources":["../../../src/main-api/RendererMain.ts"],"names":[],"mappings":"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"}
|
|
@@ -2,7 +2,7 @@ import type { ICoreDriver } from '../../main-api/ICoreDriver.js';
|
|
|
2
2
|
import type { INode, INodeWritableProps, ITextNodeWritableProps } from '../../main-api/INode.js';
|
|
3
3
|
import type { RendererMain, RendererMainSettings } from '../../main-api/RendererMain.js';
|
|
4
4
|
import { MainOnlyTextNode } from './MainOnlyTextNode.js';
|
|
5
|
-
import type { FpsUpdatePayload } from '../../common/CommonTypes.js';
|
|
5
|
+
import type { FpsUpdatePayload, FrameTickPayload } from '../../common/CommonTypes.js';
|
|
6
6
|
export declare class MainCoreDriver implements ICoreDriver {
|
|
7
7
|
private root;
|
|
8
8
|
private stage;
|
|
@@ -16,4 +16,5 @@ export declare class MainCoreDriver implements ICoreDriver {
|
|
|
16
16
|
onCreateNode(node: INode): void;
|
|
17
17
|
onBeforeDestroyNode(node: INode): void;
|
|
18
18
|
onFpsUpdate(fpsData: FpsUpdatePayload): void;
|
|
19
|
+
onFrameTick(frameTickData: FrameTickPayload): void;
|
|
19
20
|
}
|
|
@@ -18,7 +18,7 @@
|
|
|
18
18
|
*/
|
|
19
19
|
import { assertTruthy } from '../../utils.js';
|
|
20
20
|
import { MainOnlyNode, getNewId } from './MainOnlyNode.js';
|
|
21
|
-
import { Stage } from '../../core/Stage.js';
|
|
21
|
+
import { Stage, } from '../../core/Stage.js';
|
|
22
22
|
import { MainOnlyTextNode } from './MainOnlyTextNode.js';
|
|
23
23
|
import { loadCoreExtension } from '../utils.js';
|
|
24
24
|
export class MainCoreDriver {
|
|
@@ -55,6 +55,9 @@ export class MainCoreDriver {
|
|
|
55
55
|
this.stage.on('fpsUpdate', ((stage, fpsData) => {
|
|
56
56
|
this.onFpsUpdate(fpsData);
|
|
57
57
|
}));
|
|
58
|
+
this.stage.on('frameTick', ((stage, frameTickData) => {
|
|
59
|
+
this.onFrameTick(frameTickData);
|
|
60
|
+
}));
|
|
58
61
|
}
|
|
59
62
|
createNode(props) {
|
|
60
63
|
assertTruthy(this.rendererMain);
|
|
@@ -96,5 +99,8 @@ export class MainCoreDriver {
|
|
|
96
99
|
onFpsUpdate(fpsData) {
|
|
97
100
|
throw new Error('Method not implemented.');
|
|
98
101
|
}
|
|
102
|
+
onFrameTick(frameTickData) {
|
|
103
|
+
throw new Error('Method not implemented.');
|
|
104
|
+
}
|
|
99
105
|
}
|
|
100
106
|
//# sourceMappingURL=MainCoreDriver.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"MainCoreDriver.js","sourceRoot":"","sources":["../../../../src/render-drivers/main/MainCoreDriver.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;GAiBG;AAEH,OAAO,EAAE,YAAY,EAAE,MAAM,gBAAgB,CAAC;AAO9C,OAAO,EAAE,YAAY,EAAE,QAAQ,EAAE,MAAM,mBAAmB,CAAC;AAC3D,OAAO,
|
|
1
|
+
{"version":3,"file":"MainCoreDriver.js","sourceRoot":"","sources":["../../../../src/render-drivers/main/MainCoreDriver.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import type { INode, INodeWritableProps, ITextNode, ITextNodeWritableProps } from '../../main-api/INode.js';
|
|
2
2
|
import type { ICoreDriver } from '../../main-api/ICoreDriver.js';
|
|
3
3
|
import type { RendererMain, RendererMainSettings } from '../../main-api/RendererMain.js';
|
|
4
|
-
import type { FpsUpdatePayload } from '../../common/CommonTypes.js';
|
|
4
|
+
import type { FpsUpdatePayload, FrameTickPayload } from '../../common/CommonTypes.js';
|
|
5
5
|
export interface ThreadXRendererSettings {
|
|
6
6
|
coreWorkerUrl: string;
|
|
7
7
|
}
|
|
@@ -21,4 +21,5 @@ export declare class ThreadXCoreDriver implements ICoreDriver {
|
|
|
21
21
|
onCreateNode(node: INode): void;
|
|
22
22
|
onBeforeDestroyNode(node: INode): void;
|
|
23
23
|
onFpsUpdate(fps: FpsUpdatePayload): void;
|
|
24
|
+
onFrameTick(frameTickData: FrameTickPayload): void;
|
|
24
25
|
}
|
|
@@ -57,6 +57,10 @@ export class ThreadXCoreDriver {
|
|
|
57
57
|
if (isThreadXRendererMessage('fpsUpdate', message)) {
|
|
58
58
|
this.onFpsUpdate(message.fpsData);
|
|
59
59
|
}
|
|
60
|
+
// Forward frameTick events from the renderer worker's Stage to RendererMain
|
|
61
|
+
if (isThreadXRendererMessage('frameTick', message)) {
|
|
62
|
+
this.onFrameTick(message.frameTickData);
|
|
63
|
+
}
|
|
60
64
|
},
|
|
61
65
|
});
|
|
62
66
|
this.threadx.registerWorker('renderer', new Worker(this.settings.coreWorkerUrl, { type: 'module' }));
|
|
@@ -215,5 +219,8 @@ export class ThreadXCoreDriver {
|
|
|
215
219
|
onFpsUpdate(fps) {
|
|
216
220
|
throw new Error('Method not implemented.');
|
|
217
221
|
}
|
|
222
|
+
onFrameTick(frameTickData) {
|
|
223
|
+
throw new Error('Method not implemented.');
|
|
224
|
+
}
|
|
218
225
|
}
|
|
219
226
|
//# sourceMappingURL=ThreadXCoreDriver.js.map
|