@lightningjs/renderer 2.7.0 → 2.7.2

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 (199) hide show
  1. package/dist/exports/core-api.d.ts +74 -0
  2. package/dist/exports/core-api.js +96 -0
  3. package/dist/exports/core-api.js.map +1 -0
  4. package/dist/exports/main-api.d.ts +30 -0
  5. package/dist/exports/main-api.js +45 -0
  6. package/dist/exports/main-api.js.map +1 -0
  7. package/dist/src/core/CoreExtension.d.ts +12 -0
  8. package/dist/src/core/CoreExtension.js +29 -0
  9. package/dist/src/core/CoreExtension.js.map +1 -0
  10. package/dist/src/core/CoreShaderManager.js.map +1 -1
  11. package/dist/src/core/CoreStuff.d.ts +1 -0
  12. package/dist/src/core/CoreStuff.js +138 -0
  13. package/dist/src/core/CoreStuff.js.map +1 -0
  14. package/dist/src/core/LngNode.d.ts +736 -0
  15. package/dist/src/core/LngNode.js +1174 -0
  16. package/dist/src/core/LngNode.js.map +1 -0
  17. package/dist/src/core/Matrix2DContext.d.ts +15 -0
  18. package/dist/src/core/Matrix2DContext.js +45 -0
  19. package/dist/src/core/Matrix2DContext.js.map +1 -0
  20. package/dist/src/core/ShaderNode.d.ts +10 -0
  21. package/dist/src/core/ShaderNode.js +30 -0
  22. package/dist/src/core/ShaderNode.js.map +1 -0
  23. package/dist/src/core/TextNode.d.ts +103 -0
  24. package/dist/src/core/TextNode.js +331 -0
  25. package/dist/src/core/TextNode.js.map +1 -0
  26. package/dist/src/core/lib/Coords.d.ts +14 -0
  27. package/dist/src/core/lib/Coords.js +55 -0
  28. package/dist/src/core/lib/Coords.js.map +1 -0
  29. package/dist/src/core/lib/WebGlContextWrapper.d.ts +1 -1
  30. package/dist/src/core/lib/glm/common.d.ts +162 -0
  31. package/dist/src/core/lib/glm/common.js +81 -0
  32. package/dist/src/core/lib/glm/common.js.map +1 -0
  33. package/dist/src/core/lib/glm/index.d.ts +11 -0
  34. package/dist/src/core/lib/glm/index.js +30 -0
  35. package/dist/src/core/lib/glm/index.js.map +1 -0
  36. package/dist/src/core/lib/glm/mat2.d.ts +219 -0
  37. package/dist/src/core/lib/glm/mat2.js +396 -0
  38. package/dist/src/core/lib/glm/mat2.js.map +1 -0
  39. package/dist/src/core/lib/glm/mat2d.d.ts +237 -0
  40. package/dist/src/core/lib/glm/mat2d.js +442 -0
  41. package/dist/src/core/lib/glm/mat2d.js.map +1 -0
  42. package/dist/src/core/lib/glm/mat3.d.ts +283 -0
  43. package/dist/src/core/lib/glm/mat3.js +680 -0
  44. package/dist/src/core/lib/glm/mat3.js.map +1 -0
  45. package/dist/src/core/lib/glm/mat4.d.ts +550 -0
  46. package/dist/src/core/lib/glm/mat4.js +1802 -0
  47. package/dist/src/core/lib/glm/mat4.js.map +1 -0
  48. package/dist/src/core/lib/glm/quat.d.ts +363 -0
  49. package/dist/src/core/lib/glm/quat.js +693 -0
  50. package/dist/src/core/lib/glm/quat.js.map +1 -0
  51. package/dist/src/core/lib/glm/quat2.d.ts +356 -0
  52. package/dist/src/core/lib/glm/quat2.js +754 -0
  53. package/dist/src/core/lib/glm/quat2.js.map +1 -0
  54. package/dist/src/core/lib/glm/vec2.d.ts +365 -0
  55. package/dist/src/core/lib/glm/vec2.js +569 -0
  56. package/dist/src/core/lib/glm/vec2.js.map +1 -0
  57. package/dist/src/core/lib/glm/vec3.d.ts +406 -0
  58. package/dist/src/core/lib/glm/vec3.js +720 -0
  59. package/dist/src/core/lib/glm/vec3.js.map +1 -0
  60. package/dist/src/core/lib/glm/vec4.d.ts +330 -0
  61. package/dist/src/core/lib/glm/vec4.js +608 -0
  62. package/dist/src/core/lib/glm/vec4.js.map +1 -0
  63. package/dist/src/core/renderers/CoreShaderManager.d.ts +19 -0
  64. package/dist/src/core/renderers/CoreShaderManager.js +33 -0
  65. package/dist/src/core/renderers/CoreShaderManager.js.map +1 -0
  66. package/dist/src/core/renderers/webgl/WebGlCoreCtxSubTexture.js +4 -0
  67. package/dist/src/core/renderers/webgl/WebGlCoreCtxSubTexture.js.map +1 -1
  68. package/dist/src/core/renderers/webgl/WebGlCoreCtxTexture.js +9 -0
  69. package/dist/src/core/renderers/webgl/WebGlCoreCtxTexture.js.map +1 -1
  70. package/dist/src/core/renderers/webgl/WebGlCoreShader.js +2 -2
  71. package/dist/src/core/renderers/webgl/WebGlCoreShader.js.map +1 -1
  72. package/dist/src/core/renderers/webgl/WebGlCoreShaderManager.d.ts +27 -0
  73. package/dist/src/core/renderers/webgl/WebGlCoreShaderManager.js +82 -0
  74. package/dist/src/core/renderers/webgl/WebGlCoreShaderManager.js.map +1 -0
  75. package/dist/src/core/renderers/webgl/WebGlCoreShaderProgram.d.ts +11 -0
  76. package/dist/src/core/renderers/webgl/WebGlCoreShaderProgram.js +34 -0
  77. package/dist/src/core/renderers/webgl/WebGlCoreShaderProgram.js.map +1 -0
  78. package/dist/src/core/renderers/webgl/internal/ShaderUtils.js +4 -4
  79. package/dist/src/core/renderers/webgl/internal/ShaderUtils.js.map +1 -1
  80. package/dist/src/core/renderers/webgl/shaders/SdfShader.d.ts +1 -0
  81. package/dist/src/core/renderers/webgl/shaders/SdfShader.js +1 -0
  82. package/dist/src/core/renderers/webgl/shaders/SdfShader.js.map +1 -1
  83. package/dist/src/core/scene/Scene.d.ts +59 -0
  84. package/dist/src/core/scene/Scene.js +106 -0
  85. package/dist/src/core/scene/Scene.js.map +1 -0
  86. package/dist/src/core/text-rendering/renderers/SdfTextRenderer/SdfTextRenderer.js +8 -1
  87. package/dist/src/core/text-rendering/renderers/SdfTextRenderer/SdfTextRenderer.js.map +1 -1
  88. package/dist/src/core/text-rendering/renderers/SdfTextRenderer/internal/makeRenderWindow.d.ts +20 -0
  89. package/dist/src/core/text-rendering/renderers/SdfTextRenderer/internal/makeRenderWindow.js +55 -0
  90. package/dist/src/core/text-rendering/renderers/SdfTextRenderer/internal/makeRenderWindow.js.map +1 -0
  91. package/dist/src/core/textures/ColorTexture.js +14 -3
  92. package/dist/src/core/textures/ColorTexture.js.map +1 -1
  93. package/dist/src/core/textures/Texture.d.ts +1 -1
  94. package/dist/src/core/textures/Texture.js.map +1 -1
  95. package/dist/src/main-api/ICoreDriver.d.ts +27 -0
  96. package/dist/src/main-api/ICoreDriver.js +20 -0
  97. package/dist/src/main-api/ICoreDriver.js.map +1 -0
  98. package/dist/src/main-api/IRenderDriver.d.ts +20 -0
  99. package/dist/src/main-api/IRenderDriver.js +20 -0
  100. package/dist/src/main-api/IRenderDriver.js.map +1 -0
  101. package/dist/src/main-api/IShaderController.d.ts +14 -0
  102. package/dist/src/main-api/IShaderController.js +30 -0
  103. package/dist/src/main-api/IShaderController.js.map +1 -0
  104. package/dist/src/main-api/IShaderNode.d.ts +17 -0
  105. package/dist/src/main-api/IShaderNode.js +19 -0
  106. package/dist/src/main-api/IShaderNode.js.map +1 -0
  107. package/dist/src/main-api/Inspector.d.ts +1 -1
  108. package/dist/src/main-api/Inspector.js +23 -8
  109. package/dist/src/main-api/Inspector.js.map +1 -1
  110. package/dist/src/main-api/RendererMain.d.ts +375 -0
  111. package/dist/src/main-api/RendererMain.js +365 -0
  112. package/dist/src/main-api/RendererMain.js.map +1 -0
  113. package/dist/src/main-api/ShaderController.js.map +1 -1
  114. package/dist/src/main-api/texture-usage-trackers/FinalizationRegistryTextureUsageTracker.d.ts +9 -0
  115. package/dist/src/main-api/texture-usage-trackers/FinalizationRegistryTextureUsageTracker.js +38 -0
  116. package/dist/src/main-api/texture-usage-trackers/FinalizationRegistryTextureUsageTracker.js.map +1 -0
  117. package/dist/src/main-api/texture-usage-trackers/ManualCountTextureUsageTracker.d.ts +56 -0
  118. package/dist/src/main-api/texture-usage-trackers/ManualCountTextureUsageTracker.js +101 -0
  119. package/dist/src/main-api/texture-usage-trackers/ManualCountTextureUsageTracker.js.map +1 -0
  120. package/dist/src/main-api/texture-usage-trackers/TextureUsageTracker.d.ts +32 -0
  121. package/dist/src/main-api/texture-usage-trackers/TextureUsageTracker.js +28 -0
  122. package/dist/src/main-api/texture-usage-trackers/TextureUsageTracker.js.map +1 -0
  123. package/dist/src/render-drivers/main/MainCoreDriver.d.ts +24 -0
  124. package/dist/src/render-drivers/main/MainCoreDriver.js +118 -0
  125. package/dist/src/render-drivers/main/MainCoreDriver.js.map +1 -0
  126. package/dist/src/render-drivers/main/MainOnlyNode.d.ts +99 -0
  127. package/dist/src/render-drivers/main/MainOnlyNode.js +396 -0
  128. package/dist/src/render-drivers/main/MainOnlyNode.js.map +1 -0
  129. package/dist/src/render-drivers/main/MainOnlyShaderController.d.ts +6 -0
  130. package/dist/src/render-drivers/main/MainOnlyShaderController.js +15 -0
  131. package/dist/src/render-drivers/main/MainOnlyShaderController.js.map +1 -0
  132. package/dist/src/render-drivers/main/MainOnlyShaderNode.d.ts +7 -0
  133. package/dist/src/render-drivers/main/MainOnlyShaderNode.js +34 -0
  134. package/dist/src/render-drivers/main/MainOnlyShaderNode.js.map +1 -0
  135. package/dist/src/render-drivers/main/MainOnlyTextNode.d.ts +47 -0
  136. package/dist/src/render-drivers/main/MainOnlyTextNode.js +205 -0
  137. package/dist/src/render-drivers/main/MainOnlyTextNode.js.map +1 -0
  138. package/dist/src/render-drivers/main/MainRenderDriver.d.ts +17 -0
  139. package/dist/src/render-drivers/main/MainRenderDriver.js +88 -0
  140. package/dist/src/render-drivers/main/MainRenderDriver.js.map +1 -0
  141. package/dist/src/render-drivers/threadx/NodeStruct.d.ts +90 -0
  142. package/dist/src/render-drivers/threadx/NodeStruct.js +281 -0
  143. package/dist/src/render-drivers/threadx/NodeStruct.js.map +1 -0
  144. package/dist/src/render-drivers/threadx/SharedNode.d.ts +39 -0
  145. package/dist/src/render-drivers/threadx/SharedNode.js +60 -0
  146. package/dist/src/render-drivers/threadx/SharedNode.js.map +1 -0
  147. package/dist/src/render-drivers/threadx/TextNodeStruct.d.ts +44 -0
  148. package/dist/src/render-drivers/threadx/TextNodeStruct.js +201 -0
  149. package/dist/src/render-drivers/threadx/TextNodeStruct.js.map +1 -0
  150. package/dist/src/render-drivers/threadx/ThreadXCoreDriver.d.ts +28 -0
  151. package/dist/src/render-drivers/threadx/ThreadXCoreDriver.js +234 -0
  152. package/dist/src/render-drivers/threadx/ThreadXCoreDriver.js.map +1 -0
  153. package/dist/src/render-drivers/threadx/ThreadXMainAnimationController.d.ts +20 -0
  154. package/dist/src/render-drivers/threadx/ThreadXMainAnimationController.js +84 -0
  155. package/dist/src/render-drivers/threadx/ThreadXMainAnimationController.js.map +1 -0
  156. package/dist/src/render-drivers/threadx/ThreadXMainNode.d.ts +44 -0
  157. package/dist/src/render-drivers/threadx/ThreadXMainNode.js +154 -0
  158. package/dist/src/render-drivers/threadx/ThreadXMainNode.js.map +1 -0
  159. package/dist/src/render-drivers/threadx/ThreadXMainShaderController.d.ts +6 -0
  160. package/dist/src/render-drivers/threadx/ThreadXMainShaderController.js +16 -0
  161. package/dist/src/render-drivers/threadx/ThreadXMainShaderController.js.map +1 -0
  162. package/dist/src/render-drivers/threadx/ThreadXMainShaderNode.d.ts +7 -0
  163. package/dist/src/render-drivers/threadx/ThreadXMainShaderNode.js +15 -0
  164. package/dist/src/render-drivers/threadx/ThreadXMainShaderNode.js.map +1 -0
  165. package/dist/src/render-drivers/threadx/ThreadXMainTextNode.d.ts +28 -0
  166. package/dist/src/render-drivers/threadx/ThreadXMainTextNode.js +55 -0
  167. package/dist/src/render-drivers/threadx/ThreadXMainTextNode.js.map +1 -0
  168. package/dist/src/render-drivers/threadx/ThreadXRenderDriver.d.ts +21 -0
  169. package/dist/src/render-drivers/threadx/ThreadXRenderDriver.js +198 -0
  170. package/dist/src/render-drivers/threadx/ThreadXRenderDriver.js.map +1 -0
  171. package/dist/src/render-drivers/threadx/ThreadXRendererMessage.d.ts +70 -0
  172. package/dist/src/render-drivers/threadx/ThreadXRendererMessage.js +32 -0
  173. package/dist/src/render-drivers/threadx/ThreadXRendererMessage.js.map +1 -0
  174. package/dist/src/render-drivers/threadx/worker/ThreadXRendererNode.d.ts +19 -0
  175. package/dist/src/render-drivers/threadx/worker/ThreadXRendererNode.js +177 -0
  176. package/dist/src/render-drivers/threadx/worker/ThreadXRendererNode.js.map +1 -0
  177. package/dist/src/render-drivers/threadx/worker/ThreadXRendererTextNode.d.ts +27 -0
  178. package/dist/src/render-drivers/threadx/worker/ThreadXRendererTextNode.js +108 -0
  179. package/dist/src/render-drivers/threadx/worker/ThreadXRendererTextNode.js.map +1 -0
  180. package/dist/src/render-drivers/threadx/worker/renderer.d.ts +1 -0
  181. package/dist/src/render-drivers/threadx/worker/renderer.js +145 -0
  182. package/dist/src/render-drivers/threadx/worker/renderer.js.map +1 -0
  183. package/dist/src/render-drivers/utils.d.ts +12 -0
  184. package/dist/src/render-drivers/utils.js +69 -0
  185. package/dist/src/render-drivers/utils.js.map +1 -0
  186. package/dist/tsconfig.dist.tsbuildinfo +1 -1
  187. package/package.json +2 -1
  188. package/src/core/CoreShaderManager.ts +1 -1
  189. package/src/core/lib/WebGlContextWrapper.ts +1 -1
  190. package/src/core/renderers/webgl/WebGlCoreCtxSubTexture.ts +6 -0
  191. package/src/core/renderers/webgl/WebGlCoreCtxTexture.ts +23 -0
  192. package/src/core/renderers/webgl/WebGlCoreShader.ts +4 -2
  193. package/src/core/renderers/webgl/internal/ShaderUtils.ts +5 -4
  194. package/src/core/renderers/webgl/shaders/SdfShader.ts +2 -0
  195. package/src/core/text-rendering/renderers/SdfTextRenderer/SdfTextRenderer.ts +8 -1
  196. package/src/core/textures/ColorTexture.ts +15 -3
  197. package/src/core/textures/Texture.ts +1 -0
  198. package/src/main-api/Inspector.ts +29 -11
  199. package/src/main-api/ShaderController.ts +0 -1
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@lightningjs/renderer",
3
- "version": "2.7.0",
3
+ "version": "2.7.2",
4
4
  "description": "Lightning 3 Renderer",
5
5
  "type": "module",
6
6
  "main": "./dist/exports/index.js",
@@ -61,6 +61,7 @@
61
61
  "README.md",
62
62
  "scripts"
63
63
  ],
64
+ "packageManager": "pnpm@8.9.2",
64
65
  "engines": {
65
66
  "npm": ">= 10.0.0",
66
67
  "pnpm": ">= 8.9.2",
@@ -198,7 +198,7 @@ export class CoreShaderManager {
198
198
 
199
199
  if (shType === 'DynamicShader') {
200
200
  return this.loadDynamicShader(
201
- props!,
201
+ props as DynamicShaderProps,
202
202
  ) as unknown as ShaderController<Type>;
203
203
  }
204
204
 
@@ -299,7 +299,7 @@ export class WebGlContextWrapper {
299
299
  internalformat: GLint,
300
300
  format: GLenum,
301
301
  type: GLenum,
302
- source: TexImageSource,
302
+ source: TexImageSource | Uint8Array,
303
303
  ): void;
304
304
  texImage2D(
305
305
  level: any,
@@ -34,6 +34,12 @@ export class WebGlCoreCtxSubTexture extends WebGlCoreCtxTexture {
34
34
 
35
35
  override async onLoadRequest(): Promise<Dimensions> {
36
36
  const props = await (this.textureSource as SubTexture).getTextureData();
37
+
38
+ if (props.data instanceof Uint8Array) {
39
+ // its a 1x1 Color Texture
40
+ return { width: 1, height: 1 };
41
+ }
42
+
37
43
  return {
38
44
  width: props.data?.width || 0,
39
45
  height: props.data?.height || 0,
@@ -204,6 +204,29 @@ export class WebGlCoreCtxTexture extends CoreContextTexture {
204
204
  glw.texParameteri(glw.TEXTURE_MIN_FILTER, glw.LINEAR);
205
205
 
206
206
  this.setTextureMemUse(view.byteLength);
207
+ } else if (textureData.data && textureData.data instanceof Uint8Array) {
208
+ // Color Texture
209
+ width = 1;
210
+ height = 1;
211
+
212
+ glw.bindTexture(this._nativeCtxTexture);
213
+ glw.pixelStorei(
214
+ glw.UNPACK_PREMULTIPLY_ALPHA_WEBGL,
215
+ !!textureData.premultiplyAlpha,
216
+ );
217
+
218
+ glw.texImage2D(
219
+ 0,
220
+ glw.RGBA,
221
+ width,
222
+ height,
223
+ 0,
224
+ glw.RGBA,
225
+ glw.UNSIGNED_BYTE,
226
+ textureData.data,
227
+ );
228
+
229
+ this.setTextureMemUse(width * height * 4);
207
230
  } else {
208
231
  console.error(
209
232
  `WebGlCoreCtxTexture.onLoadRequest: Unexpected textureData returned`,
@@ -143,12 +143,14 @@ export abstract class WebGlCoreShader extends CoreShader {
143
143
  fragmentSource,
144
144
  );
145
145
  if (!vertexShader || !fragmentShader) {
146
- throw new Error();
146
+ throw new Error(
147
+ `Unable to create shader type: ${glw.FRAGMENT_SHADER}. Source: ${fragmentSource}`,
148
+ );
147
149
  }
148
150
 
149
151
  const program = createProgram(glw, vertexShader, fragmentShader);
150
152
  if (!program) {
151
- throw new Error();
153
+ throw new Error('Unable to create program');
152
154
  }
153
155
  this.program = program;
154
156
 
@@ -100,11 +100,11 @@ export function createShader(
100
100
  ) {
101
101
  const shader = glw.createShader(type);
102
102
  if (!shader) {
103
- throw new Error();
103
+ throw new Error(`Unable to create shader type: ${type}. Source: ${source}`);
104
104
  }
105
105
  glw.shaderSource(shader, source);
106
106
  glw.compileShader(shader);
107
- const success = glw.getShaderParameter(shader, glw.COMPILE_STATUS);
107
+ const success = !!glw.getShaderParameter(shader, glw.COMPILE_STATUS);
108
108
  if (success) {
109
109
  return shader;
110
110
  }
@@ -120,12 +120,13 @@ export function createProgram(
120
120
  ) {
121
121
  const program = glw.createProgram();
122
122
  if (!program) {
123
- throw new Error();
123
+ throw new Error('Unable to create program');
124
124
  }
125
+
125
126
  glw.attachShader(program, vertexShader);
126
127
  glw.attachShader(program, fragmentShader);
127
128
  glw.linkProgram(program);
128
- const success = glw.getProgramParameter(program, glw.LINK_STATUS);
129
+ const success = !!glw.getProgramParameter(program, glw.LINK_STATUS);
129
130
  if (success) {
130
131
  return program;
131
132
  }
@@ -79,6 +79,8 @@ export class SdfShader extends WebGlCoreShader {
79
79
  });
80
80
  }
81
81
 
82
+ static z$__type__Props: SdfShaderProps;
83
+
82
84
  override bindTextures(textures: WebGlCoreCtxTexture[]) {
83
85
  const { glw } = this;
84
86
  glw.activeTexture(0);
@@ -146,7 +146,14 @@ export class SdfTextRenderer extends TextRenderer<SdfTextRendererState> {
146
146
 
147
147
  constructor(stage: Stage) {
148
148
  super(stage);
149
- this.sdfShader = this.stage.shManager.loadShader('SdfShader').shader;
149
+ this.sdfShader = this.stage.shManager.loadShader('SdfShader', {
150
+ transform: new Float32Array(),
151
+ color: 0,
152
+ size: 0,
153
+ scrollY: 0,
154
+ distanceRange: 0,
155
+ debug: false,
156
+ }).shader;
150
157
  this.rendererBounds = {
151
158
  x1: 0,
152
159
  y1: 0,
@@ -63,10 +63,22 @@ export class ColorTexture extends Texture {
63
63
  }
64
64
 
65
65
  override async getTextureData(): Promise<TextureData> {
66
- const pixelData32 = new Uint32Array([this.color]);
67
- const pixelData8 = new Uint8ClampedArray(pixelData32.buffer);
66
+ const pixelData = new Uint8Array(4);
67
+
68
+ if (this.color === 0xffffffff) {
69
+ pixelData[0] = 255;
70
+ pixelData[1] = 255;
71
+ pixelData[2] = 255;
72
+ pixelData[3] = 255;
73
+ } else {
74
+ pixelData[0] = (this.color >> 16) & 0xff; // Red
75
+ pixelData[1] = (this.color >> 8) & 0xff; // Green
76
+ pixelData[2] = this.color & 0xff; // Blue
77
+ pixelData[3] = (this.color >>> 24) & 0xff; // Alpha
78
+ }
79
+
68
80
  return {
69
- data: new ImageData(pixelData8, 1, 1),
81
+ data: pixelData,
70
82
  premultiplyAlpha: true,
71
83
  };
72
84
  }
@@ -91,6 +91,7 @@ export interface TextureData {
91
91
  | SubTextureProps
92
92
  | CompressedData
93
93
  | HTMLImageElement
94
+ | Uint8Array
94
95
  | null;
95
96
  /**
96
97
  * Premultiply alpha when uploading texture data to the GPU
@@ -62,7 +62,7 @@ const stylePropertyMap: {
62
62
 
63
63
  return { prop: 'height', value: `${h}px` };
64
64
  },
65
- zIndex: () => 'zIndex',
65
+ zIndex: () => 'z-index',
66
66
  fontFamily: () => 'font-family',
67
67
  fontSize: () => 'font-size',
68
68
  fontStyle: () => 'font-style',
@@ -239,6 +239,7 @@ export class Inspector {
239
239
  // really typescript? really?
240
240
  key as keyof CoreNodeProps,
241
241
  properties[key as keyof CoreNodeProps],
242
+ properties,
242
243
  );
243
244
  }
244
245
 
@@ -247,8 +248,8 @@ export class Inspector {
247
248
 
248
249
  createNode(node: CoreNode): CoreNode {
249
250
  const div = this.createDiv(node.id, node.props);
250
- (div as any).node = node;
251
- (node as any).div = div;
251
+ (div as HTMLElement & { node: CoreNode }).node = node;
252
+ (node as CoreNode & { div: HTMLElement }).div = div;
252
253
 
253
254
  node.on('inViewport', () => div.setAttribute('state', 'inViewport'));
254
255
  node.on('inBounds', () => div.setAttribute('state', 'inBounds'));
@@ -260,8 +261,8 @@ export class Inspector {
260
261
 
261
262
  createTextNode(node: CoreNode): CoreTextNode {
262
263
  const div = this.createDiv(node.id, node.props);
263
- (div as any).node = node;
264
- (node as any).div = div;
264
+ (div as HTMLElement & { node: CoreNode }).node = node;
265
+ (node as CoreNode & { div: HTMLElement }).div = div;
265
266
 
266
267
  return this.createProxy(node, div) as CoreTextNode;
267
268
  }
@@ -295,6 +296,7 @@ export class Inspector {
295
296
  div,
296
297
  property as keyof CoreNodeProps | keyof CoreTextNodeProps,
297
298
  value,
299
+ node.props,
298
300
  );
299
301
  },
300
302
  configurable: true,
@@ -344,6 +346,7 @@ export class Inspector {
344
346
  property: keyof CoreNodeProps | keyof CoreTextNodeProps,
345
347
  // eslint-disable-next-line @typescript-eslint/no-explicit-any
346
348
  value: any,
349
+ props: CoreNodeProps | CoreTextNodeProps,
347
350
  ) {
348
351
  if (this.root === null || value === undefined || value === null) {
349
352
  return;
@@ -407,10 +410,23 @@ export class Inspector {
407
410
  }
408
411
 
409
412
  if (typeof mappedStyleResponse === 'object') {
410
- div.style.setProperty(
411
- mappedStyleResponse.prop,
412
- mappedStyleResponse.value,
413
- );
413
+ let value = mappedStyleResponse.value;
414
+ if (property === 'x') {
415
+ const mount = props.mountX;
416
+ const width = props.width;
417
+
418
+ if (mount) {
419
+ value = `${parseInt(value) - width * mount}px`;
420
+ }
421
+ } else if (property === 'y') {
422
+ const mount = props.mountY;
423
+ const height = props.height;
424
+
425
+ if (mount) {
426
+ value = `${parseInt(value) - height * mount}px`;
427
+ }
428
+ }
429
+ div.style.setProperty(mappedStyleResponse.prop, value);
414
430
  }
415
431
 
416
432
  return;
@@ -466,13 +482,15 @@ export class Inspector {
466
482
  rotation = 0,
467
483
  scale = 1,
468
484
  color,
485
+ mountX,
486
+ mountY,
469
487
  } = props;
470
488
 
471
489
  // ignoring loops and repeats for now, as that might be a bit too much for the inspector
472
490
  function animate() {
473
491
  setTimeout(() => {
474
- div.style.top = `${y}px`;
475
- div.style.left = `${x}px`;
492
+ div.style.top = `${y - height * mountY}px`;
493
+ div.style.left = `${x - width * mountX}px`;
476
494
  div.style.width = `${width}px`;
477
495
  div.style.height = `${height}px`;
478
496
  div.style.opacity = `${alpha}`;
@@ -55,7 +55,6 @@ export class ShaderController<S extends keyof ShaderMap>
55
55
  stage: Stage,
56
56
  ) {
57
57
  this.resolvedProps = props;
58
-
59
58
  const keys = Object.keys(props);
60
59
  const l = keys.length;
61
60