@lightningjs/renderer 0.7.2 → 0.7.4
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.d.ts +1 -1
- package/dist/src/core/lib/ImageWorker.js +30 -22
- package/dist/src/core/lib/ImageWorker.js.map +1 -1
- package/dist/src/core/renderers/webgl/WebGlCoreCtxTexture.js.map +1 -1
- 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/core/textures/ImageTexture.d.ts +2 -1
- package/dist/src/core/textures/ImageTexture.js +7 -2
- package/dist/src/core/textures/ImageTexture.js.map +1 -1
- package/dist/src/core/textures/Texture.d.ts +1 -1
- 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 +135 -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 +230 -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 +140 -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
|
@@ -87,24 +87,24 @@ export class LinearGradientEffect extends ShaderEffect {
|
|
|
87
87
|
},
|
|
88
88
|
};
|
|
89
89
|
static methods = {
|
|
90
|
-
fromLinear: `
|
|
91
|
-
vec4 function(vec4 linearRGB) {
|
|
92
|
-
vec4 higher = vec4(1.055)*pow(linearRGB, vec4(1.0/2.4)) - vec4(0.055);
|
|
93
|
-
vec4 lower = linearRGB * vec4(12.92);
|
|
94
|
-
return mix(higher, lower, 1.0);
|
|
95
|
-
}
|
|
90
|
+
fromLinear: `
|
|
91
|
+
vec4 function(vec4 linearRGB) {
|
|
92
|
+
vec4 higher = vec4(1.055)*pow(linearRGB, vec4(1.0/2.4)) - vec4(0.055);
|
|
93
|
+
vec4 lower = linearRGB * vec4(12.92);
|
|
94
|
+
return mix(higher, lower, 1.0);
|
|
95
|
+
}
|
|
96
96
|
`,
|
|
97
|
-
toLinear: `
|
|
98
|
-
vec4 function(vec4 sRGB) {
|
|
99
|
-
vec4 higher = pow((sRGB + vec4(0.055))/vec4(1.055), vec4(2.4));
|
|
100
|
-
vec4 lower = sRGB/vec4(12.92);
|
|
101
|
-
return mix(higher, lower, 1.0);
|
|
102
|
-
}
|
|
97
|
+
toLinear: `
|
|
98
|
+
vec4 function(vec4 sRGB) {
|
|
99
|
+
vec4 higher = pow((sRGB + vec4(0.055))/vec4(1.055), vec4(2.4));
|
|
100
|
+
vec4 lower = sRGB/vec4(12.92);
|
|
101
|
+
return mix(higher, lower, 1.0);
|
|
102
|
+
}
|
|
103
103
|
`,
|
|
104
|
-
calcPoint: `
|
|
105
|
-
vec2 function(float d, float angle) {
|
|
106
|
-
return d * vec2(cos(angle), sin(angle)) + (u_dimensions * 0.5);
|
|
107
|
-
}
|
|
104
|
+
calcPoint: `
|
|
105
|
+
vec2 function(float d, float angle) {
|
|
106
|
+
return d * vec2(cos(angle), sin(angle)) + (u_dimensions * 0.5);
|
|
107
|
+
}
|
|
108
108
|
`,
|
|
109
109
|
};
|
|
110
110
|
static ColorLoop = (amount) => {
|
|
@@ -116,21 +116,21 @@ export class LinearGradientEffect extends ShaderEffect {
|
|
|
116
116
|
};
|
|
117
117
|
static onColorize = (props) => {
|
|
118
118
|
const colors = props.colors.length || 1;
|
|
119
|
-
return `
|
|
120
|
-
float a = angle - (PI / 180.0 * 90.0);
|
|
121
|
-
float lineDist = abs(u_dimensions.x * cos(a)) + abs(u_dimensions.y * sin(a));
|
|
122
|
-
vec2 f = $calcPoint(lineDist * 0.5, a);
|
|
123
|
-
vec2 t = $calcPoint(lineDist * 0.5, a + PI);
|
|
124
|
-
vec2 gradVec = t - f;
|
|
125
|
-
float dist = dot(v_textureCoordinate.xy * u_dimensions - f, gradVec) / dot(gradVec, gradVec);
|
|
126
|
-
|
|
127
|
-
float stopCalc = (dist - stops[0]) / (stops[1] - stops[0]);
|
|
128
|
-
vec4 colorOut = $fromLinear(mix($toLinear(colors[0]), $toLinear(colors[1]), stopCalc));
|
|
129
|
-
for(int i = 1; i < ${colors}-1; i++) {
|
|
130
|
-
stopCalc = (dist - stops[i]) / (stops[i + 1] - stops[i]);
|
|
131
|
-
colorOut = mix(colorOut, colors[i + 1], clamp(stopCalc, 0.0, 1.0));
|
|
132
|
-
}
|
|
133
|
-
return mix(maskColor, colorOut, clamp(colorOut.a, 0.0, 1.0));
|
|
119
|
+
return `
|
|
120
|
+
float a = angle - (PI / 180.0 * 90.0);
|
|
121
|
+
float lineDist = abs(u_dimensions.x * cos(a)) + abs(u_dimensions.y * sin(a));
|
|
122
|
+
vec2 f = $calcPoint(lineDist * 0.5, a);
|
|
123
|
+
vec2 t = $calcPoint(lineDist * 0.5, a + PI);
|
|
124
|
+
vec2 gradVec = t - f;
|
|
125
|
+
float dist = dot(v_textureCoordinate.xy * u_dimensions - f, gradVec) / dot(gradVec, gradVec);
|
|
126
|
+
|
|
127
|
+
float stopCalc = (dist - stops[0]) / (stops[1] - stops[0]);
|
|
128
|
+
vec4 colorOut = $fromLinear(mix($toLinear(colors[0]), $toLinear(colors[1]), stopCalc));
|
|
129
|
+
for(int i = 1; i < ${colors}-1; i++) {
|
|
130
|
+
stopCalc = (dist - stops[i]) / (stops[i + 1] - stops[i]);
|
|
131
|
+
colorOut = mix(colorOut, colors[i + 1], clamp(stopCalc, 0.0, 1.0));
|
|
132
|
+
}
|
|
133
|
+
return mix(maskColor, colorOut, clamp(colorOut.a, 0.0, 1.0));
|
|
134
134
|
`;
|
|
135
135
|
};
|
|
136
136
|
}
|
|
@@ -97,19 +97,19 @@ export class RadialGradientEffect extends ShaderEffect {
|
|
|
97
97
|
};
|
|
98
98
|
static onColorize = (props) => {
|
|
99
99
|
const colors = props.colors.length || 1;
|
|
100
|
-
return `
|
|
101
|
-
vec2 point = v_textureCoordinate.xy * u_dimensions;
|
|
102
|
-
vec2 projection = vec2(pivot.x * u_dimensions.x, pivot.y * u_dimensions.y);
|
|
103
|
-
|
|
104
|
-
float dist = length((point - projection) / vec2(width, height));
|
|
105
|
-
|
|
106
|
-
float stopCalc = (dist - stops[0]) / (stops[1] - stops[0]);
|
|
107
|
-
vec4 colorOut = mix(colors[0], colors[1], stopCalc);
|
|
108
|
-
for(int i = 1; i < ${colors}-1; i++) {
|
|
109
|
-
stopCalc = (dist - stops[i]) / (stops[i + 1] - stops[i]);
|
|
110
|
-
colorOut = mix(colorOut, colors[i + 1], clamp(stopCalc, 0.0, 1.0));
|
|
111
|
-
}
|
|
112
|
-
return mix(maskColor, colorOut, clamp(colorOut.a, 0.0, 1.0));
|
|
100
|
+
return `
|
|
101
|
+
vec2 point = v_textureCoordinate.xy * u_dimensions;
|
|
102
|
+
vec2 projection = vec2(pivot.x * u_dimensions.x, pivot.y * u_dimensions.y);
|
|
103
|
+
|
|
104
|
+
float dist = length((point - projection) / vec2(width, height));
|
|
105
|
+
|
|
106
|
+
float stopCalc = (dist - stops[0]) / (stops[1] - stops[0]);
|
|
107
|
+
vec4 colorOut = mix(colors[0], colors[1], stopCalc);
|
|
108
|
+
for(int i = 1; i < ${colors}-1; i++) {
|
|
109
|
+
stopCalc = (dist - stops[i]) / (stops[i + 1] - stops[i]);
|
|
110
|
+
colorOut = mix(colorOut, colors[i + 1], clamp(stopCalc, 0.0, 1.0));
|
|
111
|
+
}
|
|
112
|
+
return mix(maskColor, colorOut, clamp(colorOut.a, 0.0, 1.0));
|
|
113
113
|
`;
|
|
114
114
|
};
|
|
115
115
|
}
|
|
@@ -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
|
|
@@ -25,7 +25,7 @@ export interface ImageTextureProps {
|
|
|
25
25
|
*
|
|
26
26
|
* @default true
|
|
27
27
|
*/
|
|
28
|
-
premultiplyAlpha?: boolean;
|
|
28
|
+
premultiplyAlpha?: boolean | null;
|
|
29
29
|
}
|
|
30
30
|
/**
|
|
31
31
|
* Texture consisting of an image loaded from a URL
|
|
@@ -44,6 +44,7 @@ export interface ImageTextureProps {
|
|
|
44
44
|
export declare class ImageTexture extends Texture {
|
|
45
45
|
props: Required<ImageTextureProps>;
|
|
46
46
|
constructor(txManager: CoreTextureManager, props: ImageTextureProps);
|
|
47
|
+
hasAlphaChannel(mimeType: string): boolean;
|
|
47
48
|
getTextureData(): Promise<TextureData>;
|
|
48
49
|
static makeCacheKey(props: ImageTextureProps): string | false;
|
|
49
50
|
static resolveDefaults(props: ImageTextureProps): Required<ImageTextureProps>;
|
|
@@ -38,6 +38,9 @@ export class ImageTexture extends Texture {
|
|
|
38
38
|
super(txManager);
|
|
39
39
|
this.props = ImageTexture.resolveDefaults(props);
|
|
40
40
|
}
|
|
41
|
+
hasAlphaChannel(mimeType) {
|
|
42
|
+
return mimeType.indexOf('image/png') !== -1;
|
|
43
|
+
}
|
|
41
44
|
async getTextureData() {
|
|
42
45
|
const { src, premultiplyAlpha } = this.props;
|
|
43
46
|
if (!src) {
|
|
@@ -61,12 +64,14 @@ export class ImageTexture extends Texture {
|
|
|
61
64
|
else {
|
|
62
65
|
const response = await fetch(src);
|
|
63
66
|
const blob = await response.blob();
|
|
67
|
+
const hasAlphaChannel = premultiplyAlpha ?? this.hasAlphaChannel(blob.type);
|
|
64
68
|
return {
|
|
65
69
|
data: await createImageBitmap(blob, {
|
|
66
|
-
premultiplyAlpha:
|
|
70
|
+
premultiplyAlpha: hasAlphaChannel ? 'premultiply' : 'none',
|
|
67
71
|
colorSpaceConversion: 'none',
|
|
68
72
|
imageOrientation: 'none',
|
|
69
73
|
}),
|
|
74
|
+
premultiplyAlpha: hasAlphaChannel,
|
|
70
75
|
};
|
|
71
76
|
}
|
|
72
77
|
}
|
|
@@ -81,7 +86,7 @@ export class ImageTexture extends Texture {
|
|
|
81
86
|
static resolveDefaults(props) {
|
|
82
87
|
return {
|
|
83
88
|
src: props.src ?? '',
|
|
84
|
-
premultiplyAlpha: props.premultiplyAlpha ?? true,
|
|
89
|
+
premultiplyAlpha: props.premultiplyAlpha ?? true, // null,
|
|
85
90
|
};
|
|
86
91
|
}
|
|
87
92
|
static z$__type__Props;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ImageTexture.js","sourceRoot":"","sources":["../../../../src/core/textures/ImageTexture.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;GAiBG;AAGH,OAAO,EAAE,OAAO,EAAoB,MAAM,cAAc,CAAC;AACzD,OAAO,EACL,4BAA4B,EAC5B,qBAAqB,GACtB,MAAM,8BAA8B,CAAC;AA8BtC;;;;;;;;;;;;;GAaG;AACH,MAAM,OAAO,YAAa,SAAQ,OAAO;IACvC,KAAK,CAA8B;IAEnC,YAAY,SAA6B,EAAE,KAAwB;QACjE,KAAK,CAAC,SAAS,CAAC,CAAC;QACjB,IAAI,CAAC,KAAK,GAAG,YAAY,CAAC,eAAe,CAAC,KAAK,CAAC,CAAC;IACnD,CAAC;IAEQ,KAAK,CAAC,cAAc;QAC3B,MAAM,EAAE,GAAG,EAAE,gBAAgB,EAAE,GAAG,IAAI,CAAC,KAAK,CAAC;QAC7C,IAAI,CAAC,GAAG,EAAE;YACR,OAAO;gBACL,IAAI,EAAE,IAAI;aACX,CAAC;SACH;QACD,IAAI,GAAG,YAAY,SAAS,EAAE;YAC5B,OAAO;gBACL,IAAI,EAAE,GAAG;gBACT,gBAAgB;aACjB,CAAC;SACH;QAED,6BAA6B;QAC7B,IAAI,4BAA4B,CAAC,GAAG,CAAC,EAAE;YACrC,OAAO,qBAAqB,CAAC,GAAG,CAAC,CAAC;SACnC;QAED,IAAI,IAAI,CAAC,SAAS,CAAC,kBAAkB,CAAC,mBAAmB,EAAE;YACzD,OAAO,MAAM,IAAI,CAAC,SAAS,CAAC,kBAAkB,CAAC,QAAQ,CACrD,GAAG,EACH,gBAAgB,CACjB,CAAC;SACH;aAAM;YACL,MAAM,QAAQ,GAAG,MAAM,KAAK,CAAC,GAAG,CAAC,CAAC;YAClC,MAAM,IAAI,GAAG,MAAM,QAAQ,CAAC,IAAI,EAAE,CAAC;YACnC,OAAO;gBACL,IAAI,EAAE,MAAM,iBAAiB,CAAC,IAAI,EAAE;oBAClC,gBAAgB,EAAE,
|
|
1
|
+
{"version":3,"file":"ImageTexture.js","sourceRoot":"","sources":["../../../../src/core/textures/ImageTexture.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;GAiBG;AAGH,OAAO,EAAE,OAAO,EAAoB,MAAM,cAAc,CAAC;AACzD,OAAO,EACL,4BAA4B,EAC5B,qBAAqB,GACtB,MAAM,8BAA8B,CAAC;AA8BtC;;;;;;;;;;;;;GAaG;AACH,MAAM,OAAO,YAAa,SAAQ,OAAO;IACvC,KAAK,CAA8B;IAEnC,YAAY,SAA6B,EAAE,KAAwB;QACjE,KAAK,CAAC,SAAS,CAAC,CAAC;QACjB,IAAI,CAAC,KAAK,GAAG,YAAY,CAAC,eAAe,CAAC,KAAK,CAAC,CAAC;IACnD,CAAC;IAED,eAAe,CAAC,QAAgB;QAC9B,OAAO,QAAQ,CAAC,OAAO,CAAC,WAAW,CAAC,KAAK,CAAC,CAAC,CAAC;IAC9C,CAAC;IAEQ,KAAK,CAAC,cAAc;QAC3B,MAAM,EAAE,GAAG,EAAE,gBAAgB,EAAE,GAAG,IAAI,CAAC,KAAK,CAAC;QAC7C,IAAI,CAAC,GAAG,EAAE;YACR,OAAO;gBACL,IAAI,EAAE,IAAI;aACX,CAAC;SACH;QACD,IAAI,GAAG,YAAY,SAAS,EAAE;YAC5B,OAAO;gBACL,IAAI,EAAE,GAAG;gBACT,gBAAgB;aACjB,CAAC;SACH;QAED,6BAA6B;QAC7B,IAAI,4BAA4B,CAAC,GAAG,CAAC,EAAE;YACrC,OAAO,qBAAqB,CAAC,GAAG,CAAC,CAAC;SACnC;QAED,IAAI,IAAI,CAAC,SAAS,CAAC,kBAAkB,CAAC,mBAAmB,EAAE;YACzD,OAAO,MAAM,IAAI,CAAC,SAAS,CAAC,kBAAkB,CAAC,QAAQ,CACrD,GAAG,EACH,gBAAgB,CACjB,CAAC;SACH;aAAM;YACL,MAAM,QAAQ,GAAG,MAAM,KAAK,CAAC,GAAG,CAAC,CAAC;YAClC,MAAM,IAAI,GAAG,MAAM,QAAQ,CAAC,IAAI,EAAE,CAAC;YACnC,MAAM,eAAe,GACnB,gBAAgB,IAAI,IAAI,CAAC,eAAe,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;YACtD,OAAO;gBACL,IAAI,EAAE,MAAM,iBAAiB,CAAC,IAAI,EAAE;oBAClC,gBAAgB,EAAE,eAAe,CAAC,CAAC,CAAC,aAAa,CAAC,CAAC,CAAC,MAAM;oBAC1D,oBAAoB,EAAE,MAAM;oBAC5B,gBAAgB,EAAE,MAAM;iBACzB,CAAC;gBACF,gBAAgB,EAAE,eAAe;aAClC,CAAC;SACH;IACH,CAAC;IAED,MAAM,CAAU,YAAY,CAAC,KAAwB;QACnD,MAAM,aAAa,GAAG,YAAY,CAAC,eAAe,CAAC,KAAK,CAAC,CAAC;QAC1D,uDAAuD;QACvD,IAAI,aAAa,CAAC,GAAG,YAAY,SAAS,EAAE;YAC1C,OAAO,KAAK,CAAC;SACd;QACD,OAAO,gBAAgB,aAAa,CAAC,GAAG,IAAI,aAAa,CAAC,gBAAgB,EAAE,CAAC;IAC/E,CAAC;IAED,MAAM,CAAU,eAAe,CAC7B,KAAwB;QAExB,OAAO;YACL,GAAG,EAAE,KAAK,CAAC,GAAG,IAAI,EAAE;YACpB,gBAAgB,EAAE,KAAK,CAAC,gBAAgB,IAAI,IAAI,EAAE,QAAQ;SAC3D,CAAC;IACJ,CAAC;IAED,MAAM,CAAC,eAAe,CAAoB;CAC3C"}
|
|
@@ -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":"AAQA,OAAO,EAA6B,MAAM,mBAAmB,CAAC;AAyB9D,MAAM,gBAAgB,GAIlB;IACF,KAAK,EAAE,CAAC,CAAC,EAAE,EAAE;QACX,IAAI,CAAC,KAAK,CAAC,EAAE;YACX,OAAO,IAAI,CAAC;SACb;QAED,OAAO,EAAE,IAAI,EAAE,SAAS,EAAE,KAAK,EAAE,GAAG,CAAC,EAAE,EAAE,CAAC;IAC5C,CAAC;IACD,CAAC,EAAE,CAAC,CAAC,EAAE,EAAE;QACP,OAAO,EAAE,IAAI,EAAE,MAAM,EAAE,KAAK,EAAE,GAAG,CAAC,IAAI,EAAE,CAAC;IAC3C,CAAC;IACD,CAAC,EAAE,CAAC,CAAC,EAAE,EAAE;QACP,OAAO,EAAE,IAAI,EAAE,KAAK,EAAE,KAAK,EAAE,GAAG,CAAC,IAAI,EAAE,CAAC;IAC1C,CAAC;IACD,KAAK,EAAE,CAAC,CAAC,EAAE,EAAE;QACX,IAAI,CAAC,KAAK,CAAC,EAAE;YACX,OAAO,IAAI,CAAC;SACb;QAED,OAAO,EAAE,IAAI,EAAE,OAAO,EAAE,KAAK,EAAE,GAAG,CAAC,IAAI,EAAE,CAAC;IAC5C,CAAC;IACD,MAAM,EAAE,CAAC,CAAC,EAAE,EAAE;QACZ,IAAI,CAAC,KAAK,CAAC,EAAE;YACX,OAAO,IAAI,CAAC;SACb;QAED,OAAO,EAAE,IAAI,EAAE,QAAQ,EAAE,KAAK,EAAE,GAAG,CAAC,IAAI,EAAE,CAAC;IAC7C,CAAC;IACD,MAAM,EAAE,GAAG,EAAE,CAAC,QAAQ;IACtB,UAAU,EAAE,GAAG,EAAE,CAAC,aAAa;IAC/B,QAAQ,EAAE,GAAG,EAAE,CAAC,WAAW;IAC3B,SAAS,EAAE,GAAG,EAAE,CAAC,YAAY;IAC7B,UAAU,EAAE,GAAG,EAAE,CAAC,aAAa;IAC/B,WAAW,EAAE,GAAG,EAAE,CAAC,cAAc;IACjC,UAAU,EAAE,GAAG,EAAE,CAAC,aAAa;IAC/B,aAAa,EAAE,GAAG,EAAE,CAAC,gBAAgB;IACrC,SAAS,EAAE,GAAG,EAAE,CAAC,YAAY;IAC7B,cAAc,EAAE,GAAG,EAAE,CAAC,iBAAiB;IACvC,QAAQ,EAAE,GAAG,EAAE,CAAC,WAAW;IAC3B,OAAO,EAAE,GAAG,EAAE,CAAC,SAAS;IACxB,aAAa,EAAE,GAAG,EAAE,CAAC,gBAAgB;IACrC,QAAQ,EAAE,CAAC,CAAC,EAAE,EAAE;QACd,IAAI,CAAC,KAAK,KAAK,EAAE;YACf,OAAO,IAAI,CAAC;SACb;QAED,OAAO,EAAE,IAAI,EAAE,UAAU,EAAE,KAAK,EAAE,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,SAAS,EAAE,CAAC;IAC/D,CAAC;IACD,QAAQ,EAAE,CAAC,CAAC,EAAE,EAAE;QACd,IAAI,CAAC,KAAK,CAAC,EAAE;YACX,OAAO,IAAI,CAAC;SACb;QAED,OAAO,EAAE,IAAI,EAAE,WAAW,EAAE,KAAK,EAAE,UAAU,CAAC,MAAM,EAAE,CAAC;IACzD,CAAC;IACD,KAAK,EAAE,CAAC,CAAC,EAAE,EAAE;QACX,IAAI,CAAC,KAAK,CAAC,EAAE;YACX,OAAO,IAAI,CAAC;SACb;QAED,OAAO,EAAE,IAAI,EAAE,WAAW,EAAE,KAAK,EAAE,SAAS,CAAC,GAAG,EAAE,CAAC;IACrD,CAAC;IACD,MAAM,EAAE,CAAC,CAAC,EAAE,EAAE;QACZ,IAAI,CAAC,KAAK,CAAC,EAAE;YACX,OAAO,IAAI,CAAC;SACb;QAED,OAAO,EAAE,IAAI,EAAE,WAAW,EAAE,KAAK,EAAE,UAAU,CAAC,GAAG,EAAE,CAAC;IACtD,CAAC;IACD,MAAM,EAAE,CAAC,CAAC,EAAE,EAAE;QACZ,IAAI,CAAC,KAAK,CAAC,EAAE;YACX,OAAO,IAAI,CAAC;SACb;QAED,OAAO,EAAE,IAAI,EAAE,WAAW,EAAE,KAAK,EAAE,UAAU,CAAC,GAAG,EAAE,CAAC;IACtD,CAAC;IACD,GAAG,EAAE,CAAC,CAAC,EAAE,EAAE;QACT,IAAI,CAAC,CAAC,EAAE;YACN,OAAO,IAAI,CAAC;SACb;QAED,OAAO,EAAE,IAAI,EAAE,kBAAkB,EAAE,KAAK,EAAE,OAAO,CAAC,GAAG,EAAE,CAAC;IAC1D,CAAC;IACD,KAAK,EAAE,CAAC,CAAC,EAAE,EAAE;QACX,IAAI,CAAC,KAAK,CAAC,EAAE;YACX,OAAO,IAAI,CAAC;SACb;QAED,OAAO,EAAE,IAAI,EAAE,OAAO,EAAE,KAAK,EAAE,kBAAkB,CAAC,CAAW,CAAC,EAAE,CAAC;IACnE,CAAC;CACF,CAAC;AAEF,MAAM,kBAAkB,GAAG,CAAC,KAAa,EAAE,EAAE;IAC3C,MAAM,CAAC,GAAG,CAAC,KAAK,GAAG,IAAI,CAAC,GAAG,GAAG,CAAC;IAC/B,MAAM,CAAC,GAAG,CAAC,KAAK,IAAI,CAAC,CAAC,GAAG,IAAI,CAAC;IAC9B,MAAM,CAAC,GAAG,CAAC,KAAK,IAAI,EAAE,CAAC,GAAG,IAAI,CAAC;IAC/B,MAAM,CAAC,GAAG,CAAC,KAAK,IAAI,EAAE,CAAC,GAAG,IAAI,CAAC;IAC/B,OAAO,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC;AACrC,CAAC,CAAC;AAEF,MAAM,cAAc,GAA8B;IAChD,EAAE,EAAE,IAAI;CACT,CAAC;AAEF,MAAM,wBAAwB,GAAG;IAC/B,UAAU;IACV,aAAa;IACb,WAAW;IACX,YAAY;IACZ,SAAS;IACT,SAAS;IACT,SAAS;IACT,SAAS;CACV,CAAC;AAEF,MAAM,OAAO,SAAS;IACZ,IAAI,GAAuB,IAAI,CAAC;IAChC,MAAM,GAA6B,IAAI,CAAC;IACxC,MAAM,GAAG,IAAI,CAAC;IACd,KAAK,GAAG,IAAI,CAAC;IACb,MAAM,GAAG,CAAC,CAAC;IACX,MAAM,GAAG,CAAC,CAAC;IAEnB,YAAY,MAAyB,EAAE,QAA8B;QACnE,IAAI,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI;YAAE,OAAO;QAEjC,IAAI,CAAC,QAAQ,EAAE;YACb,MAAM,IAAI,KAAK,CAAC,sBAAsB,CAAC,CAAC;SACzC;QAED,gDAAgD;QAChD,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC,IAAI,CACrB,QAAQ,CAAC,SAAS,IAAI,IAAI,GAAG,CAAC,QAAQ,CAAC,uBAAuB,IAAI,CAAC,CAAC,CACrE,CAAC;QAEF,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC,IAAI,CACpB,QAAQ,CAAC,QAAQ,IAAI,IAAI,GAAG,CAAC,QAAQ,CAAC,uBAAuB,IAAI,CAAC,CAAC,CACpE,CAAC;QAEF,IAAI,CAAC,MAAM,GAAG,QAAQ,CAAC,uBAAuB,IAAI,CAAC,CAAC;QACpD,IAAI,CAAC,MAAM,GAAG,QAAQ,CAAC,uBAAuB,IAAI,CAAC,CAAC;QAEpD,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC;QACrB,IAAI,CAAC,IAAI,GAAG,QAAQ,CAAC,aAAa,CAAC,KAAK,CAAC,CAAC;QAC1C,IAAI,CAAC,eAAe,EAAE,CAAC;QACvB,QAAQ,CAAC,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QAErC,8BAA8B;QAC9B,MAAM,gBAAgB,GAAG,IAAI,gBAAgB,CAC3C,IAAI,CAAC,eAAe,CAAC,IAAI,CAAC,IAAI,CAAC,CAChC,CAAC;QACF,gBAAgB,CAAC,OAAO,CAAC,MAAM,EAAE;YAC/B,UAAU,EAAE,IAAI;YAChB,SAAS,EAAE,KAAK;YAChB,OAAO,EAAE,KAAK;SACf,CAAC,CAAC;QAEH,qEAAqE;QACrE,MAAM,cAAc,GAAG,IAAI,cAAc,CAAC,IAAI,CAAC,eAAe,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC;QAC3E,cAAc,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC;QAE/B,8BAA8B;QAC9B,MAAM,CAAC,gBAAgB,CAAC,QAAQ,EAAE,IAAI,CAAC,eAAe,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC;QAEnE,OAAO,CAAC,IAAI,CAAC,oDAAoD,CAAC,CAAC;IACrE,CAAC;IAED,eAAe;QACb,IAAI,IAAI,CAAC,IAAI,KAAK,IAAI,IAAI,IAAI,CAAC,MAAM,KAAK,IAAI,EAAE;YAC9C,OAAO;SACR;QAED,mFAAmF;QACnF,MAAM,IAAI,GAAG,IAAI,CAAC,MAAM,CAAC,qBAAqB,EAAE,CAAC;QACjD,MAAM,GAAG,GAAG,QAAQ,CAAC,eAAe,CAAC,SAAS,GAAG,IAAI,CAAC,GAAG,CAAC;QAC1D,MAAM,IAAI,GAAG,QAAQ,CAAC,eAAe,CAAC,UAAU,GAAG,IAAI,CAAC,IAAI,CAAC;QAE7D,IAAI,CAAC,IAAI,CAAC,EAAE,GAAG,MAAM,CAAC;QACtB,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,GAAG,GAAG,IAAI,IAAI,CAAC;QACnC,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,GAAG,GAAG,GAAG,GAAG,IAAI,CAAC;QACjC,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,KAAK,GAAG,GAAG,IAAI,CAAC,KAAK,IAAI,CAAC;QAC1C,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,MAAM,GAAG,GAAG,IAAI,CAAC,MAAM,IAAI,CAAC;QAC5C,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,QAAQ,GAAG,UAAU,CAAC;QACtC,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,eAAe,GAAG,OAAO,CAAC;QAC1C,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,SAAS,GAAG,SAAS,IAAI,CAAC,MAAM,KAAK,IAAI,CAAC,MAAM,GAAG,CAAC;QACpE,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,QAAQ,GAAG,QAAQ,CAAC;QACpC,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,MAAM,GAAG,QAAQ,CAAC;IACpC,CAAC;IAED,SAAS,CACP,IAAuB,EACvB,UAAuD;QAEvD,MAAM,GAAG,GAAG,QAAQ,CAAC,aAAa,CAAC,KAAK,CAAC,CAAC;QAC1C,GAAG,CAAC,KAAK,CAAC,QAAQ,GAAG,UAAU,CAAC;QAChC,GAAG,CAAC,EAAE,GAAG,IAAI,CAAC,EAAE,CAAC,QAAQ,EAAE,CAAC;QAE5B,yBAAyB;QACzB,KAAK,MAAM,GAAG,IAAI,UAAU,EAAE;YAC5B,IAAI,CAAC,kBAAkB,CACrB,GAAG;YACH,6BAA6B;YAC7B,GAA0D,EACzD,UAA0D,CACzD,GAA0D,CAC3D,CACF,CAAC;SACH;QAED,OAAO,GAAG,CAAC;IACb,CAAC;IAED,UAAU,CAAC,MAAmB,EAAE,UAA8B;QAC5D,MAAM,IAAI,GAAG,MAAM,CAAC,UAAU,CAAC,UAAU,CAAC,CAAC;QAC3C,MAAM,GAAG,GAAG,IAAI,CAAC,SAAS,CAAC,IAAI,EAAE,UAAU,CAAC,CAAC;QAE7C,0GAA0G;QACzG,GAAW,CAAC,IAAI,GAAG,IAAI,CAAC;QAEzB,OAAO,IAAI,CAAC,WAAW,CAAC,IAAI,EAAE,GAAG,CAAC,CAAC;IACrC,CAAC;IAED,cAAc,CACZ,MAAmB,EACnB,UAAkC;QAElC,MAAM,IAAI,GAAG,MAAM,CAAC,cAAc,CAAC,UAAU,CAAC,CAAC;QAC/C,MAAM,GAAG,GAAG,IAAI,CAAC,SAAS,CAAC,IAAI,EAAE,UAAU,CAAC,CAAC;QAC7C,OAAO,IAAI,CAAC,WAAW,CAAC,IAAI,EAAE,GAAG,CAAc,CAAC;IAClD,CAAC;IAED,WAAW,CAAC,IAAuB,EAAE,GAAgB;QACnD,OAAO,IAAI,KAAK,CAAC,IAAI,EAAE;YACrB,GAAG,EAAE,CAAC,MAAM,EAAE,QAAkC,EAAE,KAAK,EAAE,EAAE;gBACzD,IAAI,CAAC,kBAAkB,CAAC,GAAG,EAAE,QAAQ,EAAE,KAAK,CAAC,CAAC;gBAC9C,OAAO,OAAO,CAAC,GAAG,CAAC,MAAM,EAAE,QAAQ,EAAE,KAAK,CAAC,CAAC;YAC9C,CAAC;YACD,GAAG,EAAE,CAAC,MAAM,EAAE,QAAqB,EAAE,QAAa,EAAO,EAAE;gBACzD,IAAI,QAAQ,KAAK,SAAS,EAAE;oBAC1B,IAAI,CAAC,WAAW,CAAC,MAAM,CAAC,CAAC;iBAC1B;gBAED,IAAI,QAAQ,KAAK,SAAS,EAAE;oBAC1B,OAAO,CAAC,KAA2B,EAAE,QAA2B,EAAE,EAAE;wBAClE,MAAM,IAAI,GAAG,MAAM,CAAC,OAAO,CAAC,KAAK,EAAE,QAAQ,CAAC,CAAC;wBAE7C,6EAA6E;wBAC7E,OAAO,IAAI,KAAK,CAAC,IAAI,EAAE;4BACrB,GAAG,EAAE,CAAC,MAAM,EAAE,QAAoC,EAAE,QAAQ,EAAE,EAAE;gCAC9D,IAAI,QAAQ,KAAK,OAAO,EAAE;oCACxB,IAAI,CAAC,WAAW,CAAC,GAAG,EAAE,IAAI,EAAE,KAAK,EAAE,QAAQ,CAAC,CAAC;iCAC9C;gCAED,OAAO,OAAO,CAAC,GAAG,CAAC,MAAM,EAAE,QAAQ,EAAE,QAAQ,CAAC,CAAC;4BACjD,CAAC;yBACF,CAAC,CAAC;oBACL,CAAC,CAAC;iBACH;gBAED,OAAO,OAAO,CAAC,GAAG,CAAC,MAAM,EAAE,QAAQ,EAAE,QAAQ,CAAC,CAAC;YACjD,CAAC;SACF,CAAC,CAAC;IACL,CAAC;IAED,WAAW,CAAC,IAAuB;QACjC,MAAM,GAAG,GAAG,QAAQ,CAAC,cAAc,CAAC,IAAI,CAAC,EAAE,CAAC,QAAQ,EAAE,CAAC,CAAC;QACxD,GAAG,EAAE,MAAM,EAAE,CAAC;IAChB,CAAC;IAED,kBAAkB,CAChB,GAAgB,EAChB,QAAiE;IACjE,8DAA8D;IAC9D,KAAU;QAEV,IAAI,IAAI,CAAC,IAAI,KAAK,IAAI,IAAI,KAAK,KAAK,SAAS,IAAI,KAAK,KAAK,IAAI,EAAE;YAC/D,OAAO;SACR;QAED;;WAEG;QACH,IAAI,QAAQ,KAAK,QAAQ,EAAE;YACzB,MAAM,QAAQ,GAAY,KAAe,CAAC,EAAE,CAAC;YAE7C,oDAAoD;YACpD,oEAAoE;YACpE,IAAI,QAAQ,KAAK,CAAC,EAAE;gBAClB,IAAI,CAAC,IAAI,CAAC,WAAW,CAAC,GAAG,CAAC,CAAC;gBAC3B,OAAO;aACR;YAED,MAAM,MAAM,GAAG,QAAQ,CAAC,cAAc,CAAC,QAAQ,CAAC,QAAQ,EAAE,CAAC,CAAC;YAC5D,MAAM,EAAE,WAAW,CAAC,GAAG,CAAC,CAAC;YACzB,OAAO;SACR;QAED,wBAAwB;QACxB,IAAI,QAAQ,KAAK,MAAM,EAAE;YACvB,GAAG,CAAC,SAAS,GAAG,MAAM,CAAC,KAAK,CAAC,CAAC;YAC9B,OAAO;SACR;QAED,uFAAuF;QACvF,oEAAoE;QACpE,+DAA+D;QAC/D,uDAAuD;QACvD,iDAAiD;QACjD,YAAY;QACZ,IAAI;QAEJ,yBAAyB;QACzB,IAAI,gBAAgB,CAAC,QAAQ,CAAC,EAAE;YAC9B,MAAM,mBAAmB,GAAG,gBAAgB,CAAC,QAAQ,CAAC,EAAE,CAAC,KAAK,CAAC,CAAC;YAEhE,IAAI,mBAAmB,KAAK,IAAI,EAAE;gBAChC,OAAO;aACR;YAED,IAAI,OAAO,mBAAmB,KAAK,QAAQ,EAAE;gBAC3C,GAAG,CAAC,KAAK,CAAC,WAAW,CAAC,mBAAmB,EAAE,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC;gBAC1D,OAAO;aACR;YAED,IAAI,OAAO,mBAAmB,KAAK,QAAQ,EAAE;gBAC3C,GAAG,CAAC,KAAK,CAAC,WAAW,CACnB,mBAAmB,CAAC,IAAI,EACxB,mBAAmB,CAAC,KAAK,CAC1B,CAAC;aACH;YAED,OAAO;SACR;QAED,iBAAiB;QACjB,IAAI,cAAc,CAAC,QAAQ,CAAC,EAAE;YAC5B,GAAG,CAAC,YAAY,CAAC,MAAM,CAAC,gBAAgB,CAAC,QAAQ,CAAC,CAAC,EAAE,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC;YACpE,OAAO;SACR;QAED,yBAAyB;QACzB,uEAAuE;QACvE,6BAA6B;QAC7B,+BAA+B;QAC/B,6EAA6E;QAC7E,2DAA2D;QAC3D,MAAM;QACN,YAAY;QACZ,IAAI;IACN,CAAC;IAED,2BAA2B;IAC3B,WAAW,CACT,GAAgB,EAChB,IAAW,EACX,KAA2B,EAC3B,QAA2B;QAE3B,MAAM,EACJ,QAAQ,GAAG,IAAI,EACf,KAAK,GAAG,CAAC;QACT,qBAAqB;QACrB,cAAc;QACd,gBAAgB;QAChB,sBAAsB;UACvB,GAAG,QAAQ,CAAC;QAEb,MAAM,EACJ,CAAC,EACD,CAAC,EACD,KAAK,EACL,MAAM,EACN,KAAK,GAAG,CAAC,EACT,QAAQ,GAAG,CAAC,EACZ,KAAK,GAAG,CAAC,EACT,KAAK,GACN,GAAG,KAAK,CAAC;QAEV,wFAAwF;QACxF,SAAS,OAAO;YACd,UAAU,CAAC,GAAG,EAAE;gBACd,GAAG,CAAC,KAAK,CAAC,GAAG,GAAG,GAAG,CAAC,IAAI,CAAC;gBACzB,GAAG,CAAC,KAAK,CAAC,IAAI,GAAG,GAAG,CAAC,IAAI,CAAC;gBAC1B,GAAG,CAAC,KAAK,CAAC,KAAK,GAAG,GAAG,KAAK,IAAI,CAAC;gBAC/B,GAAG,CAAC,KAAK,CAAC,MAAM,GAAG,GAAG,MAAM,IAAI,CAAC;gBACjC,GAAG,CAAC,KAAK,CAAC,OAAO,GAAG,GAAG,KAAK,EAAE,CAAC;gBAC/B,GAAG,CAAC,KAAK,CAAC,MAAM,GAAG,GAAG,QAAQ,KAAK,CAAC;gBACpC,GAAG,CAAC,KAAK,CAAC,KAAK,GAAG,GAAG,KAAK,EAAE,CAAC;gBAC7B,GAAG,CAAC,KAAK,CAAC,KAAK,GAAG,kBAAkB,CAAC,KAAK,CAAC,CAAC;YAC9C,CAAC,EAAE,QAAQ,CAAC,CAAC;QACf,CAAC;QAED,UAAU,CAAC,OAAO,EAAE,KAAK,CAAC,CAAC;IAC7B,CAAC;CACF"}
|
|
@@ -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
|
/**
|