@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.
Files changed (195) hide show
  1. package/COPYING +1 -0
  2. package/LICENSE +202 -202
  3. package/NOTICE +3 -3
  4. package/README.md +221 -221
  5. package/dist/src/common/CommonTypes.d.ts +7 -0
  6. package/dist/src/core/Stage.d.ts +2 -1
  7. package/dist/src/core/Stage.js +4 -0
  8. package/dist/src/core/Stage.js.map +1 -1
  9. package/dist/src/core/animations/CoreAnimation.js +3 -0
  10. package/dist/src/core/animations/CoreAnimation.js.map +1 -1
  11. package/dist/src/core/animations/CoreAnimationController.d.ts +8 -0
  12. package/dist/src/core/animations/CoreAnimationController.js +26 -0
  13. package/dist/src/core/animations/CoreAnimationController.js.map +1 -1
  14. package/dist/src/core/lib/ImageWorker.d.ts +1 -1
  15. package/dist/src/core/lib/ImageWorker.js +30 -22
  16. package/dist/src/core/lib/ImageWorker.js.map +1 -1
  17. package/dist/src/core/renderers/webgl/WebGlCoreCtxTexture.js.map +1 -1
  18. package/dist/src/core/renderers/webgl/shaders/DefaultShader.js +47 -47
  19. package/dist/src/core/renderers/webgl/shaders/DefaultShaderBatched.js +61 -61
  20. package/dist/src/core/renderers/webgl/shaders/DynamicShader.js +93 -93
  21. package/dist/src/core/renderers/webgl/shaders/RoundedRectangle.js +63 -63
  22. package/dist/src/core/renderers/webgl/shaders/SdfShader.js +49 -49
  23. package/dist/src/core/renderers/webgl/shaders/effects/BorderBottomEffect.js +15 -15
  24. package/dist/src/core/renderers/webgl/shaders/effects/BorderEffect.js +5 -5
  25. package/dist/src/core/renderers/webgl/shaders/effects/BorderLeftEffect.js +15 -15
  26. package/dist/src/core/renderers/webgl/shaders/effects/BorderRightEffect.js +15 -15
  27. package/dist/src/core/renderers/webgl/shaders/effects/BorderTopEffect.js +15 -15
  28. package/dist/src/core/renderers/webgl/shaders/effects/FadeOutEffect.js +42 -42
  29. package/dist/src/core/renderers/webgl/shaders/effects/GlitchEffect.js +44 -44
  30. package/dist/src/core/renderers/webgl/shaders/effects/GrayscaleEffect.js +3 -3
  31. package/dist/src/core/renderers/webgl/shaders/effects/LinearGradientEffect.js +31 -31
  32. package/dist/src/core/renderers/webgl/shaders/effects/RadialGradientEffect.js +13 -13
  33. package/dist/src/core/renderers/webgl/shaders/effects/RadialProgressEffect.js +37 -37
  34. package/dist/src/core/renderers/webgl/shaders/effects/RadiusEffect.js +19 -19
  35. package/dist/src/core/textures/ImageTexture.d.ts +2 -1
  36. package/dist/src/core/textures/ImageTexture.js +7 -2
  37. package/dist/src/core/textures/ImageTexture.js.map +1 -1
  38. package/dist/src/core/textures/Texture.d.ts +1 -1
  39. package/dist/src/main-api/ICoreDriver.d.ts +2 -1
  40. package/dist/src/main-api/Inspector.d.ts +6 -0
  41. package/dist/src/main-api/Inspector.js +105 -19
  42. package/dist/src/main-api/Inspector.js.map +1 -1
  43. package/dist/src/main-api/RendererMain.d.ts +12 -0
  44. package/dist/src/main-api/RendererMain.js +19 -1
  45. package/dist/src/main-api/RendererMain.js.map +1 -1
  46. package/dist/src/render-drivers/main/MainCoreDriver.d.ts +2 -1
  47. package/dist/src/render-drivers/main/MainCoreDriver.js +7 -1
  48. package/dist/src/render-drivers/main/MainCoreDriver.js.map +1 -1
  49. package/dist/src/render-drivers/threadx/ThreadXCoreDriver.d.ts +2 -1
  50. package/dist/src/render-drivers/threadx/ThreadXCoreDriver.js +7 -0
  51. package/dist/src/render-drivers/threadx/ThreadXCoreDriver.js.map +1 -1
  52. package/dist/src/render-drivers/threadx/ThreadXRendererMessage.d.ts +9 -1
  53. package/dist/src/render-drivers/threadx/ThreadXRendererMessage.js.map +1 -1
  54. package/dist/tsconfig.dist.tsbuildinfo +1 -1
  55. package/exports/core-api.ts +102 -102
  56. package/exports/main-api.ts +60 -60
  57. package/exports/utils.ts +41 -41
  58. package/package.json +5 -3
  59. package/scripts/please-use-pnpm.js +13 -0
  60. package/src/common/CommonTypes.ts +113 -105
  61. package/src/common/EventEmitter.ts +77 -77
  62. package/src/common/IAnimationController.ts +29 -29
  63. package/src/core/CoreExtension.ts +32 -32
  64. package/src/core/CoreNode.ts +926 -926
  65. package/src/core/CoreShaderManager.ts +243 -243
  66. package/src/core/CoreTextNode.ts +391 -391
  67. package/src/core/CoreTextureManager.ts +326 -326
  68. package/src/core/Stage.ts +354 -342
  69. package/src/core/animations/AnimationManager.ts +38 -38
  70. package/src/core/animations/CoreAnimation.ts +181 -177
  71. package/src/core/animations/CoreAnimationController.ts +148 -117
  72. package/src/core/lib/ContextSpy.ts +41 -41
  73. package/src/core/lib/ImageWorker.ts +135 -124
  74. package/src/core/lib/Matrix3d.ts +290 -290
  75. package/src/core/lib/WebGlContextWrapper.ts +992 -992
  76. package/src/core/lib/textureCompression.ts +152 -152
  77. package/src/core/lib/utils.ts +241 -241
  78. package/src/core/platform.ts +46 -46
  79. package/src/core/renderers/CoreContextTexture.ts +30 -30
  80. package/src/core/renderers/CoreRenderOp.ts +22 -22
  81. package/src/core/renderers/CoreRenderer.ts +63 -63
  82. package/src/core/renderers/CoreShader.ts +41 -41
  83. package/src/core/renderers/webgl/WebGlCoreCtxSubTexture.ts +37 -37
  84. package/src/core/renderers/webgl/WebGlCoreCtxTexture.ts +230 -231
  85. package/src/core/renderers/webgl/WebGlCoreRenderOp.ts +107 -107
  86. package/src/core/renderers/webgl/WebGlCoreRenderer.ts +520 -520
  87. package/src/core/renderers/webgl/WebGlCoreShader.ts +337 -337
  88. package/src/core/renderers/webgl/internal/BufferCollection.ts +54 -54
  89. package/src/core/renderers/webgl/internal/RendererUtils.ts +131 -131
  90. package/src/core/renderers/webgl/internal/ShaderUtils.ts +136 -136
  91. package/src/core/renderers/webgl/internal/WebGlUtils.ts +35 -35
  92. package/src/core/renderers/webgl/shaders/DefaultShader.ts +95 -95
  93. package/src/core/renderers/webgl/shaders/DefaultShaderBatched.ts +132 -132
  94. package/src/core/renderers/webgl/shaders/DynamicShader.ts +474 -474
  95. package/src/core/renderers/webgl/shaders/RoundedRectangle.ts +161 -161
  96. package/src/core/renderers/webgl/shaders/SdfShader.ts +174 -174
  97. package/src/core/renderers/webgl/shaders/effects/BorderBottomEffect.ts +101 -101
  98. package/src/core/renderers/webgl/shaders/effects/BorderEffect.ts +86 -86
  99. package/src/core/renderers/webgl/shaders/effects/BorderLeftEffect.ts +101 -101
  100. package/src/core/renderers/webgl/shaders/effects/BorderRightEffect.ts +101 -101
  101. package/src/core/renderers/webgl/shaders/effects/BorderTopEffect.ts +101 -101
  102. package/src/core/renderers/webgl/shaders/effects/EffectUtils.ts +33 -33
  103. package/src/core/renderers/webgl/shaders/effects/FadeOutEffect.ts +135 -135
  104. package/src/core/renderers/webgl/shaders/effects/GlitchEffect.ts +145 -145
  105. package/src/core/renderers/webgl/shaders/effects/GrayscaleEffect.ts +67 -67
  106. package/src/core/renderers/webgl/shaders/effects/LinearGradientEffect.ts +176 -176
  107. package/src/core/renderers/webgl/shaders/effects/RadialGradientEffect.ts +159 -159
  108. package/src/core/renderers/webgl/shaders/effects/RadialProgressEffect.ts +186 -186
  109. package/src/core/renderers/webgl/shaders/effects/RadiusEffect.ts +121 -121
  110. package/src/core/renderers/webgl/shaders/effects/ShaderEffect.ts +114 -114
  111. package/src/core/text-rendering/TextTextureRendererUtils.ts +189 -189
  112. package/src/core/text-rendering/TrFontManager.ts +96 -96
  113. package/src/core/text-rendering/font-face-types/SdfTrFontFace/SdfTrFontFace.ts +141 -141
  114. package/src/core/text-rendering/font-face-types/SdfTrFontFace/internal/FontShaper.ts +139 -139
  115. package/src/core/text-rendering/font-face-types/SdfTrFontFace/internal/SdfFontShaper.test.ts +173 -173
  116. package/src/core/text-rendering/font-face-types/SdfTrFontFace/internal/SdfFontShaper.ts +169 -169
  117. package/src/core/text-rendering/font-face-types/TrFontFace.ts +105 -105
  118. package/src/core/text-rendering/font-face-types/WebTrFontFace.ts +77 -77
  119. package/src/core/text-rendering/renderers/CanvasTextRenderer.ts +751 -751
  120. package/src/core/text-rendering/renderers/LightningTextTextureRenderer.ts +741 -741
  121. package/src/core/text-rendering/renderers/SdfTextRenderer/SdfTextRenderer.ts +775 -775
  122. package/src/core/text-rendering/renderers/SdfTextRenderer/internal/PeekableGenerator.test.ts +48 -48
  123. package/src/core/text-rendering/renderers/SdfTextRenderer/internal/PeekableGenerator.ts +66 -66
  124. package/src/core/text-rendering/renderers/SdfTextRenderer/internal/SpecialCodepoints.ts +52 -52
  125. package/src/core/text-rendering/renderers/SdfTextRenderer/internal/constants.ts +32 -32
  126. package/src/core/text-rendering/renderers/SdfTextRenderer/internal/getStartConditions.ts +84 -84
  127. package/src/core/text-rendering/renderers/SdfTextRenderer/internal/getUnicodeCodepoints.test.ts +133 -133
  128. package/src/core/text-rendering/renderers/SdfTextRenderer/internal/getUnicodeCodepoints.ts +38 -38
  129. package/src/core/text-rendering/renderers/SdfTextRenderer/internal/layoutText.ts +393 -393
  130. package/src/core/text-rendering/renderers/SdfTextRenderer/internal/measureText.test.ts +49 -49
  131. package/src/core/text-rendering/renderers/SdfTextRenderer/internal/measureText.ts +51 -51
  132. package/src/core/text-rendering/renderers/SdfTextRenderer/internal/setRenderWindow.test.ts +205 -205
  133. package/src/core/text-rendering/renderers/SdfTextRenderer/internal/setRenderWindow.ts +93 -93
  134. package/src/core/text-rendering/renderers/SdfTextRenderer/internal/util.ts +40 -40
  135. package/src/core/text-rendering/renderers/TextRenderer.ts +504 -504
  136. package/src/core/textures/ColorTexture.ts +86 -86
  137. package/src/core/textures/ImageTexture.ts +140 -133
  138. package/src/core/textures/NoiseTexture.ts +96 -96
  139. package/src/core/textures/SubTexture.ts +143 -143
  140. package/src/core/textures/Texture.ts +218 -218
  141. package/src/core/utils.ts +224 -224
  142. package/src/env.d.ts +7 -7
  143. package/src/main-api/ICoreDriver.ts +66 -61
  144. package/src/main-api/INode.ts +470 -470
  145. package/src/main-api/Inspector.ts +432 -0
  146. package/src/main-api/RendererMain.ts +649 -610
  147. package/src/main-api/texture-usage-trackers/FinalizationRegistryTextureUsageTracker.ts +45 -45
  148. package/src/main-api/texture-usage-trackers/ManualCountTextureUsageTracker.ts +154 -154
  149. package/src/main-api/texture-usage-trackers/TextureUsageTracker.ts +54 -54
  150. package/src/render-drivers/main/MainCoreDriver.ts +148 -133
  151. package/src/render-drivers/main/MainOnlyNode.ts +453 -453
  152. package/src/render-drivers/main/MainOnlyTextNode.ts +261 -261
  153. package/src/render-drivers/threadx/NodeStruct.ts +300 -300
  154. package/src/render-drivers/threadx/SharedNode.ts +97 -97
  155. package/src/render-drivers/threadx/TextNodeStruct.ts +211 -211
  156. package/src/render-drivers/threadx/ThreadXCoreDriver.ts +285 -273
  157. package/src/render-drivers/threadx/ThreadXMainAnimationController.ts +99 -99
  158. package/src/render-drivers/threadx/ThreadXMainNode.ts +178 -178
  159. package/src/render-drivers/threadx/ThreadXMainTextNode.ts +85 -85
  160. package/src/render-drivers/threadx/ThreadXRendererMessage.ts +110 -97
  161. package/src/render-drivers/threadx/worker/ThreadXRendererNode.ts +238 -238
  162. package/src/render-drivers/threadx/worker/ThreadXRendererTextNode.ts +149 -149
  163. package/src/render-drivers/threadx/worker/renderer.ts +151 -151
  164. package/src/render-drivers/utils.ts +57 -57
  165. package/src/utils.ts +207 -207
  166. package/dist/src/core/lib/WebGlContext.d.ts +0 -414
  167. package/dist/src/core/lib/WebGlContext.js +0 -640
  168. package/dist/src/core/lib/WebGlContext.js.map +0 -1
  169. package/dist/src/core/scene/Scene.d.ts +0 -59
  170. package/dist/src/core/scene/Scene.js +0 -106
  171. package/dist/src/core/scene/Scene.js.map +0 -1
  172. package/dist/src/core/text-rendering/renderers/SdfTextRenderer/internal/findNearestMultiple.d.ts +0 -8
  173. package/dist/src/core/text-rendering/renderers/SdfTextRenderer/internal/findNearestMultiple.js +0 -29
  174. package/dist/src/core/text-rendering/renderers/SdfTextRenderer/internal/findNearestMultiple.js.map +0 -1
  175. package/dist/src/core/text-rendering/renderers/SdfTextRenderer/internal/layoutText2/SdfBufferHelper.d.ts +0 -19
  176. package/dist/src/core/text-rendering/renderers/SdfTextRenderer/internal/layoutText2/SdfBufferHelper.js +0 -84
  177. package/dist/src/core/text-rendering/renderers/SdfTextRenderer/internal/layoutText2/SdfBufferHelper.js.map +0 -1
  178. package/dist/src/core/text-rendering/renderers/SdfTextRenderer/internal/layoutText2/layoutLine.d.ts +0 -8
  179. package/dist/src/core/text-rendering/renderers/SdfTextRenderer/internal/layoutText2/layoutLine.js +0 -40
  180. package/dist/src/core/text-rendering/renderers/SdfTextRenderer/internal/layoutText2/layoutLine.js.map +0 -1
  181. package/dist/src/core/text-rendering/renderers/SdfTextRenderer/internal/layoutText2/layoutText2.d.ts +0 -2
  182. package/dist/src/core/text-rendering/renderers/SdfTextRenderer/internal/layoutText2/layoutText2.js +0 -41
  183. package/dist/src/core/text-rendering/renderers/SdfTextRenderer/internal/layoutText2/layoutText2.js.map +0 -1
  184. package/dist/src/core/text-rendering/renderers/SdfTextRenderer/internal/layoutText2/utils.d.ts +0 -1
  185. package/dist/src/core/text-rendering/renderers/SdfTextRenderer/internal/layoutText2/utils.js +0 -4
  186. package/dist/src/core/text-rendering/renderers/SdfTextRenderer/internal/layoutText2/utils.js.map +0 -1
  187. package/dist/src/core/text-rendering/renderers/SdfTextRenderer/internal/layoutText2.d.ts +0 -1
  188. package/dist/src/core/text-rendering/renderers/SdfTextRenderer/internal/layoutText2.js +0 -2
  189. package/dist/src/core/text-rendering/renderers/SdfTextRenderer/internal/layoutText2.js.map +0 -1
  190. package/dist/src/core/text-rendering/renderers/SdfTextRenderer/internal/makeRenderWindow.d.ts +0 -20
  191. package/dist/src/core/text-rendering/renderers/SdfTextRenderer/internal/makeRenderWindow.js +0 -55
  192. package/dist/src/core/text-rendering/renderers/SdfTextRenderer/internal/makeRenderWindow.js.map +0 -1
  193. package/dist/src/core/text-rendering/renderers/SdfTextRenderer/internal/roundUpToMultiple.d.ts +0 -9
  194. package/dist/src/core/text-rendering/renderers/SdfTextRenderer/internal/roundUpToMultiple.js +0 -32
  195. 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: premultiplyAlpha ? 'premultiply' : 'none',
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,gBAAgB,CAAC,CAAC,CAAC,aAAa,CAAC,CAAC,CAAC,MAAM;oBAC3D,oBAAoB,EAAE,MAAM;oBAC5B,gBAAgB,EAAE,MAAM;iBACzB,CAAC;aACH,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;SACjD,CAAC;IACJ,CAAC;IAED,MAAM,CAAC,eAAe,CAAoB;CAC3C"}
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"}
@@ -54,7 +54,7 @@ export interface TextureData {
54
54
  *
55
55
  * @defaultValue `false`
56
56
  */
57
- premultiplyAlpha?: boolean;
57
+ premultiplyAlpha?: boolean | null;
58
58
  }
59
59
  export type TextureState = 'loading' | 'loaded' | 'failed';
60
60
  export interface TextureStateEventMap {
@@ -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: () => 'opacity',
4
- x: () => 'left',
5
- y: () => 'top',
6
- width: () => 'width',
7
- height: () => 'height',
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
- const height = Math.ceil(settings.appHeight ?? 1080 / (settings.deviceLogicalPixelRatio ?? 1));
71
- const width = Math.ceil(settings.appWidth ?? 1900 / (settings.deviceLogicalPixelRatio ?? 1));
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 = '0';
75
- this.root.style.top = '0';
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(${settings.deviceLogicalPixelRatio ?? 1},${settings.deviceLogicalPixelRatio ?? 1})`;
154
+ this.root.style.transform = `scale(${this.scaleX}, ${this.scaleY})`;
81
155
  this.root.style.overflow = 'hidden';
82
- this.root.style.zIndex = '-65535';
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 (!value) {
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
- else if (typeof mappedStyleResponse === 'object') {
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":"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"}
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
  /**