@lightningjs/renderer 2.7.2 → 2.9.0-beta1

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 (247) hide show
  1. package/README.md +7 -4
  2. package/dist/src/common/EventEmitter.js.map +1 -1
  3. package/dist/src/core/CoreNode.d.ts +2 -0
  4. package/dist/src/core/CoreNode.js +27 -8
  5. package/dist/src/core/CoreNode.js.map +1 -1
  6. package/dist/src/core/CoreShaderManager.js.map +1 -1
  7. package/dist/src/core/CoreTextNode.js.map +1 -1
  8. package/dist/src/core/CoreTextureManager.d.ts +13 -1
  9. package/dist/src/core/CoreTextureManager.js +163 -7
  10. package/dist/src/core/CoreTextureManager.js.map +1 -1
  11. package/dist/src/core/Stage.d.ts +1 -0
  12. package/dist/src/core/Stage.js +5 -1
  13. package/dist/src/core/Stage.js.map +1 -1
  14. package/dist/src/core/TextureMemoryManager.js.map +1 -1
  15. package/dist/src/core/animations/CoreAnimation.js.map +1 -1
  16. package/dist/src/core/animations/CoreAnimationController.js.map +1 -1
  17. package/dist/src/core/lib/ContextSpy.js.map +1 -1
  18. package/dist/src/core/lib/ImageWorker.d.ts +2 -1
  19. package/dist/src/core/lib/ImageWorker.js +40 -11
  20. package/dist/src/core/lib/ImageWorker.js.map +1 -1
  21. package/dist/src/core/lib/Matrix3d.js.map +1 -1
  22. package/dist/src/core/lib/RenderCoords.js.map +1 -1
  23. package/dist/src/core/lib/WebGlContextWrapper.d.ts +10 -0
  24. package/dist/src/core/lib/WebGlContextWrapper.js +15 -0
  25. package/dist/src/core/lib/WebGlContextWrapper.js.map +1 -1
  26. package/dist/src/core/lib/textureCompression.js.map +1 -1
  27. package/dist/src/core/lib/utils.js.map +1 -1
  28. package/dist/src/core/platform.js.map +1 -1
  29. package/dist/src/core/renderers/CoreRenderer.d.ts +1 -0
  30. package/dist/src/core/renderers/CoreRenderer.js.map +1 -1
  31. package/dist/src/core/renderers/canvas/CanvasCoreRenderer.d.ts +6 -0
  32. package/dist/src/core/renderers/canvas/CanvasCoreRenderer.js +11 -3
  33. package/dist/src/core/renderers/canvas/CanvasCoreRenderer.js.map +1 -1
  34. package/dist/src/core/renderers/canvas/CanvasCoreTexture.js.map +1 -1
  35. package/dist/src/core/renderers/canvas/internal/C2DShaderUtils.d.ts +1 -0
  36. package/dist/src/core/renderers/canvas/internal/C2DShaderUtils.js +38 -0
  37. package/dist/src/core/renderers/canvas/internal/C2DShaderUtils.js.map +1 -1
  38. package/dist/src/core/renderers/canvas/internal/ColorUtils.js.map +1 -1
  39. package/dist/src/core/renderers/webgl/WebGlCoreCtxSubTexture.js.map +1 -1
  40. package/dist/src/core/renderers/webgl/WebGlCoreCtxTexture.js.map +1 -1
  41. package/dist/src/core/renderers/webgl/WebGlCoreRenderOp.js +9 -3
  42. package/dist/src/core/renderers/webgl/WebGlCoreRenderOp.js.map +1 -1
  43. package/dist/src/core/renderers/webgl/WebGlCoreRenderer.d.ts +8 -1
  44. package/dist/src/core/renderers/webgl/WebGlCoreRenderer.js +29 -8
  45. package/dist/src/core/renderers/webgl/WebGlCoreRenderer.js.map +1 -1
  46. package/dist/src/core/renderers/webgl/WebGlCoreShader.js +6 -1
  47. package/dist/src/core/renderers/webgl/WebGlCoreShader.js.map +1 -1
  48. package/dist/src/core/renderers/webgl/internal/RendererUtils.d.ts +4 -0
  49. package/dist/src/core/renderers/webgl/internal/RendererUtils.js +1 -1
  50. package/dist/src/core/renderers/webgl/internal/RendererUtils.js.map +1 -1
  51. package/dist/src/core/renderers/webgl/internal/ShaderUtils.js +4 -3
  52. package/dist/src/core/renderers/webgl/internal/ShaderUtils.js.map +1 -1
  53. package/dist/src/core/renderers/webgl/shaders/DefaultShaderBatched.js.map +1 -1
  54. package/dist/src/core/renderers/webgl/shaders/DynamicShader.js.map +1 -1
  55. package/dist/src/core/renderers/webgl/shaders/SdfShader.js.map +1 -1
  56. package/dist/src/core/renderers/webgl/shaders/effects/EffectUtils.js.map +1 -1
  57. package/dist/src/core/renderers/webgl/shaders/effects/LinearGradientEffect.js.map +1 -1
  58. package/dist/src/core/renderers/webgl/shaders/effects/RadialGradientEffect.js.map +1 -1
  59. package/dist/src/core/renderers/webgl/shaders/effects/ShaderEffect.js.map +1 -1
  60. package/dist/src/core/text-rendering/TextTextureRendererUtils.js.map +1 -1
  61. package/dist/src/core/text-rendering/TrFontManager.js.map +1 -1
  62. package/dist/src/core/text-rendering/font-face-types/SdfTrFontFace/SdfTrFontFace.js +3 -4
  63. package/dist/src/core/text-rendering/font-face-types/SdfTrFontFace/SdfTrFontFace.js.map +1 -1
  64. package/dist/src/core/text-rendering/font-face-types/SdfTrFontFace/internal/SdfFontShaper.js.map +1 -1
  65. package/dist/src/core/text-rendering/font-face-types/TrFontFace.js.map +1 -1
  66. package/dist/src/core/text-rendering/font-face-types/WebTrFontFace.js.map +1 -1
  67. package/dist/src/core/text-rendering/renderers/CanvasTextRenderer.js.map +1 -1
  68. package/dist/src/core/text-rendering/renderers/LightningTextTextureRenderer.js.map +1 -1
  69. package/dist/src/core/text-rendering/renderers/SdfTextRenderer/SdfTextRenderer.js +4 -4
  70. package/dist/src/core/text-rendering/renderers/SdfTextRenderer/SdfTextRenderer.js.map +1 -1
  71. package/dist/src/core/text-rendering/renderers/SdfTextRenderer/internal/PeekableGenerator.js.map +1 -1
  72. package/dist/src/core/text-rendering/renderers/SdfTextRenderer/internal/getStartConditions.js.map +1 -1
  73. package/dist/src/core/text-rendering/renderers/SdfTextRenderer/internal/getUnicodeCodepoints.js.map +1 -1
  74. package/dist/src/core/text-rendering/renderers/SdfTextRenderer/internal/layoutText.js.map +1 -1
  75. package/dist/src/core/text-rendering/renderers/SdfTextRenderer/internal/measureText.js.map +1 -1
  76. package/dist/src/core/text-rendering/renderers/SdfTextRenderer/internal/setRenderWindow.js.map +1 -1
  77. package/dist/src/core/text-rendering/renderers/TextRenderer.js +1 -1
  78. package/dist/src/core/text-rendering/renderers/TextRenderer.js.map +1 -1
  79. package/dist/src/core/textures/ColorTexture.js.map +1 -1
  80. package/dist/src/core/textures/ImageTexture.d.ts +8 -0
  81. package/dist/src/core/textures/ImageTexture.js +52 -39
  82. package/dist/src/core/textures/ImageTexture.js.map +1 -1
  83. package/dist/src/core/textures/NoiseTexture.js.map +1 -1
  84. package/dist/src/core/textures/SubTexture.js.map +1 -1
  85. package/dist/src/core/textures/Texture.js.map +1 -1
  86. package/dist/src/core/utils.d.ts +1 -1
  87. package/dist/src/core/utils.js.map +1 -1
  88. package/dist/src/main-api/DynamicShaderController.js.map +1 -1
  89. package/dist/src/main-api/ICoreDriver.d.ts +1 -4
  90. package/dist/src/main-api/Inspector.js.map +1 -1
  91. package/dist/src/main-api/Renderer.d.ts +6 -0
  92. package/dist/src/main-api/Renderer.js +8 -0
  93. package/dist/src/main-api/Renderer.js.map +1 -1
  94. package/dist/src/main-api/RendererMain.d.ts +5 -2
  95. package/dist/src/main-api/RendererMain.js +6 -4
  96. package/dist/src/main-api/RendererMain.js.map +1 -1
  97. package/dist/src/main-api/ShaderController.js.map +1 -1
  98. package/dist/src/main-api/texture-usage-trackers/ManualCountTextureUsageTracker.js.map +1 -1
  99. package/dist/src/main-api/utils.js.map +1 -1
  100. package/dist/src/render-drivers/main/MainCoreDriver.d.ts +1 -4
  101. package/dist/src/render-drivers/main/MainCoreDriver.js +1 -4
  102. package/dist/src/render-drivers/main/MainCoreDriver.js.map +1 -1
  103. package/dist/src/render-drivers/main/MainOnlyNode.d.ts +8 -6
  104. package/dist/src/render-drivers/main/MainOnlyNode.js +30 -1
  105. package/dist/src/render-drivers/main/MainOnlyNode.js.map +1 -1
  106. package/dist/src/render-drivers/main/MainOnlyTextNode.d.ts +1 -1
  107. package/dist/src/render-drivers/main/MainOnlyTextNode.js +2 -3
  108. package/dist/src/render-drivers/main/MainOnlyTextNode.js.map +1 -1
  109. package/dist/src/render-drivers/threadx/NodeStruct.d.ts +3 -0
  110. package/dist/src/render-drivers/threadx/NodeStruct.js +9 -0
  111. package/dist/src/render-drivers/threadx/NodeStruct.js.map +1 -1
  112. package/dist/src/render-drivers/threadx/SharedNode.d.ts +1 -0
  113. package/dist/src/render-drivers/threadx/SharedNode.js +1 -0
  114. package/dist/src/render-drivers/threadx/SharedNode.js.map +1 -1
  115. package/dist/src/render-drivers/threadx/TextNodeStruct.js +3 -1
  116. package/dist/src/render-drivers/threadx/TextNodeStruct.js.map +1 -1
  117. package/dist/src/render-drivers/threadx/ThreadXCoreDriver.d.ts +1 -4
  118. package/dist/src/render-drivers/threadx/ThreadXCoreDriver.js +2 -4
  119. package/dist/src/render-drivers/threadx/ThreadXCoreDriver.js.map +1 -1
  120. package/dist/src/render-drivers/threadx/ThreadXMainAnimationController.d.ts +8 -4
  121. package/dist/src/render-drivers/threadx/ThreadXMainAnimationController.js +53 -24
  122. package/dist/src/render-drivers/threadx/ThreadXMainAnimationController.js.map +1 -1
  123. package/dist/src/render-drivers/threadx/ThreadXMainNode.d.ts +7 -5
  124. package/dist/src/render-drivers/threadx/ThreadXMainNode.js +8 -2
  125. package/dist/src/render-drivers/threadx/ThreadXMainNode.js.map +1 -1
  126. package/dist/src/render-drivers/threadx/ThreadXMainTextNode.js.map +1 -1
  127. package/dist/src/render-drivers/threadx/worker/ThreadXRendererNode.js +7 -0
  128. package/dist/src/render-drivers/threadx/worker/ThreadXRendererNode.js.map +1 -1
  129. package/dist/src/render-drivers/threadx/worker/ThreadXRendererTextNode.js +1 -0
  130. package/dist/src/render-drivers/threadx/worker/ThreadXRendererTextNode.js.map +1 -1
  131. package/dist/src/render-drivers/threadx/worker/renderer.js +2 -0
  132. package/dist/src/render-drivers/threadx/worker/renderer.js.map +1 -1
  133. package/dist/src/render-drivers/utils.js +6 -1
  134. package/dist/src/render-drivers/utils.js.map +1 -1
  135. package/dist/src/utils.js.map +1 -1
  136. package/dist/tsconfig.dist.tsbuildinfo +1 -1
  137. package/dist/tsconfig.tsbuildinfo +1 -0
  138. package/package.json +10 -11
  139. package/src/core/CoreNode.ts +30 -9
  140. package/src/core/CoreTextureManager.ts +188 -10
  141. package/src/core/Stage.ts +5 -0
  142. package/src/core/lib/ImageWorker.ts +63 -11
  143. package/src/core/lib/WebGlContextWrapper.ts +16 -0
  144. package/src/core/renderers/CoreRenderer.ts +1 -0
  145. package/src/core/renderers/canvas/CanvasCoreRenderer.ts +18 -3
  146. package/src/core/renderers/canvas/internal/C2DShaderUtils.ts +93 -0
  147. package/src/core/renderers/webgl/WebGlCoreRenderOp.ts +12 -5
  148. package/src/core/renderers/webgl/WebGlCoreRenderer.ts +35 -5
  149. package/src/core/renderers/webgl/WebGlCoreShader.ts +7 -1
  150. package/src/core/renderers/webgl/internal/RendererUtils.ts +5 -0
  151. package/src/core/renderers/webgl/internal/ShaderUtils.ts +9 -3
  152. package/src/core/text-rendering/font-face-types/SdfTrFontFace/SdfTrFontFace.ts +6 -4
  153. package/src/core/textures/ImageTexture.ts +78 -45
  154. package/src/main-api/Renderer.ts +9 -0
  155. package/dist/src/core/CoreStuff.d.ts +0 -1
  156. package/dist/src/core/CoreStuff.js +0 -138
  157. package/dist/src/core/CoreStuff.js.map +0 -1
  158. package/dist/src/core/LngNode.d.ts +0 -736
  159. package/dist/src/core/LngNode.js +0 -1174
  160. package/dist/src/core/LngNode.js.map +0 -1
  161. package/dist/src/core/Matrix2DContext.d.ts +0 -15
  162. package/dist/src/core/Matrix2DContext.js +0 -45
  163. package/dist/src/core/Matrix2DContext.js.map +0 -1
  164. package/dist/src/core/ShaderNode.d.ts +0 -10
  165. package/dist/src/core/ShaderNode.js +0 -30
  166. package/dist/src/core/ShaderNode.js.map +0 -1
  167. package/dist/src/core/TextNode.d.ts +0 -103
  168. package/dist/src/core/TextNode.js +0 -331
  169. package/dist/src/core/TextNode.js.map +0 -1
  170. package/dist/src/core/lib/Coords.d.ts +0 -14
  171. package/dist/src/core/lib/Coords.js +0 -55
  172. package/dist/src/core/lib/Coords.js.map +0 -1
  173. package/dist/src/core/lib/glm/common.d.ts +0 -162
  174. package/dist/src/core/lib/glm/common.js +0 -81
  175. package/dist/src/core/lib/glm/common.js.map +0 -1
  176. package/dist/src/core/lib/glm/index.d.ts +0 -11
  177. package/dist/src/core/lib/glm/index.js +0 -30
  178. package/dist/src/core/lib/glm/index.js.map +0 -1
  179. package/dist/src/core/lib/glm/mat2.d.ts +0 -219
  180. package/dist/src/core/lib/glm/mat2.js +0 -396
  181. package/dist/src/core/lib/glm/mat2.js.map +0 -1
  182. package/dist/src/core/lib/glm/mat2d.d.ts +0 -237
  183. package/dist/src/core/lib/glm/mat2d.js +0 -442
  184. package/dist/src/core/lib/glm/mat2d.js.map +0 -1
  185. package/dist/src/core/lib/glm/mat3.d.ts +0 -283
  186. package/dist/src/core/lib/glm/mat3.js +0 -680
  187. package/dist/src/core/lib/glm/mat3.js.map +0 -1
  188. package/dist/src/core/lib/glm/mat4.d.ts +0 -550
  189. package/dist/src/core/lib/glm/mat4.js +0 -1802
  190. package/dist/src/core/lib/glm/mat4.js.map +0 -1
  191. package/dist/src/core/lib/glm/quat.d.ts +0 -363
  192. package/dist/src/core/lib/glm/quat.js +0 -693
  193. package/dist/src/core/lib/glm/quat.js.map +0 -1
  194. package/dist/src/core/lib/glm/quat2.d.ts +0 -356
  195. package/dist/src/core/lib/glm/quat2.js +0 -754
  196. package/dist/src/core/lib/glm/quat2.js.map +0 -1
  197. package/dist/src/core/lib/glm/vec2.d.ts +0 -365
  198. package/dist/src/core/lib/glm/vec2.js +0 -569
  199. package/dist/src/core/lib/glm/vec2.js.map +0 -1
  200. package/dist/src/core/lib/glm/vec3.d.ts +0 -406
  201. package/dist/src/core/lib/glm/vec3.js +0 -720
  202. package/dist/src/core/lib/glm/vec3.js.map +0 -1
  203. package/dist/src/core/lib/glm/vec4.d.ts +0 -330
  204. package/dist/src/core/lib/glm/vec4.js +0 -608
  205. package/dist/src/core/lib/glm/vec4.js.map +0 -1
  206. package/dist/src/core/renderers/CoreShaderManager.d.ts +0 -19
  207. package/dist/src/core/renderers/CoreShaderManager.js +0 -33
  208. package/dist/src/core/renderers/CoreShaderManager.js.map +0 -1
  209. package/dist/src/core/renderers/webgl/WebGlCoreShaderManager.d.ts +0 -27
  210. package/dist/src/core/renderers/webgl/WebGlCoreShaderManager.js +0 -82
  211. package/dist/src/core/renderers/webgl/WebGlCoreShaderManager.js.map +0 -1
  212. package/dist/src/core/renderers/webgl/WebGlCoreShaderProgram.d.ts +0 -11
  213. package/dist/src/core/renderers/webgl/WebGlCoreShaderProgram.js +0 -34
  214. package/dist/src/core/renderers/webgl/WebGlCoreShaderProgram.js.map +0 -1
  215. package/dist/src/core/scene/Scene.d.ts +0 -59
  216. package/dist/src/core/scene/Scene.js +0 -106
  217. package/dist/src/core/scene/Scene.js.map +0 -1
  218. package/dist/src/core/text-rendering/renderers/SdfTextRenderer/internal/makeRenderWindow.d.ts +0 -20
  219. package/dist/src/core/text-rendering/renderers/SdfTextRenderer/internal/makeRenderWindow.js +0 -55
  220. package/dist/src/core/text-rendering/renderers/SdfTextRenderer/internal/makeRenderWindow.js.map +0 -1
  221. package/dist/src/main-api/IRenderDriver.d.ts +0 -20
  222. package/dist/src/main-api/IRenderDriver.js +0 -20
  223. package/dist/src/main-api/IRenderDriver.js.map +0 -1
  224. package/dist/src/main-api/IShaderController.d.ts +0 -14
  225. package/dist/src/main-api/IShaderController.js +0 -30
  226. package/dist/src/main-api/IShaderController.js.map +0 -1
  227. package/dist/src/main-api/IShaderNode.d.ts +0 -17
  228. package/dist/src/main-api/IShaderNode.js +0 -19
  229. package/dist/src/main-api/IShaderNode.js.map +0 -1
  230. package/dist/src/render-drivers/main/MainOnlyShaderController.d.ts +0 -6
  231. package/dist/src/render-drivers/main/MainOnlyShaderController.js +0 -15
  232. package/dist/src/render-drivers/main/MainOnlyShaderController.js.map +0 -1
  233. package/dist/src/render-drivers/main/MainOnlyShaderNode.d.ts +0 -7
  234. package/dist/src/render-drivers/main/MainOnlyShaderNode.js +0 -34
  235. package/dist/src/render-drivers/main/MainOnlyShaderNode.js.map +0 -1
  236. package/dist/src/render-drivers/main/MainRenderDriver.d.ts +0 -17
  237. package/dist/src/render-drivers/main/MainRenderDriver.js +0 -88
  238. package/dist/src/render-drivers/main/MainRenderDriver.js.map +0 -1
  239. package/dist/src/render-drivers/threadx/ThreadXMainShaderController.d.ts +0 -6
  240. package/dist/src/render-drivers/threadx/ThreadXMainShaderController.js +0 -16
  241. package/dist/src/render-drivers/threadx/ThreadXMainShaderController.js.map +0 -1
  242. package/dist/src/render-drivers/threadx/ThreadXMainShaderNode.d.ts +0 -7
  243. package/dist/src/render-drivers/threadx/ThreadXMainShaderNode.js +0 -15
  244. package/dist/src/render-drivers/threadx/ThreadXMainShaderNode.js.map +0 -1
  245. package/dist/src/render-drivers/threadx/ThreadXRenderDriver.d.ts +0 -21
  246. package/dist/src/render-drivers/threadx/ThreadXRenderDriver.js +0 -198
  247. package/dist/src/render-drivers/threadx/ThreadXRenderDriver.js.map +0 -1
@@ -1,17 +0,0 @@
1
- import type { IRenderDriver } from '../../main-api/IRenderDriver.js';
2
- import type { INode, INodeWritableProps, ITextNodeWritableProps } from '../../main-api/INode.js';
3
- import type { RendererMain, RendererMainSettings } from '../../main-api/RendererMain.js';
4
- import { MainOnlyTextNode } from './MainOnlyTextNode.js';
5
- export declare class MainRenderDriver implements IRenderDriver {
6
- private root;
7
- private stage;
8
- private rendererMain;
9
- init(rendererMain: RendererMain, rendererSettings: Required<RendererMainSettings>, canvas: HTMLCanvasElement): Promise<void>;
10
- createNode(props: INodeWritableProps): INode;
11
- createTextNode(props: ITextNodeWritableProps): MainOnlyTextNode;
12
- destroyNode(node: INode): void;
13
- releaseTexture(id: number): void;
14
- getRootNode(): INode;
15
- onCreateNode(node: INode): void;
16
- onBeforeDestroyNode(node: INode): void;
17
- }
@@ -1,88 +0,0 @@
1
- /*
2
- * If not stated otherwise in this file or this component's LICENSE file the
3
- * following copyright and licenses apply:
4
- *
5
- * Copyright 2023 Comcast Cable Communications Management, LLC.
6
- *
7
- * Licensed under the Apache License, Version 2.0 (the License);
8
- * you may not use this file except in compliance with the License.
9
- * You may obtain a copy of the License at
10
- *
11
- * http://www.apache.org/licenses/LICENSE-2.0
12
- *
13
- * Unless required by applicable law or agreed to in writing, software
14
- * distributed under the License is distributed on an "AS IS" BASIS,
15
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
16
- * See the License for the specific language governing permissions and
17
- * limitations under the License.
18
- */
19
- import { assertTruthy } from '../../utils.js';
20
- import { MainOnlyNode } from './MainOnlyNode.js';
21
- import { Stage } from '../../core/Stage.js';
22
- import { MainOnlyTextNode } from './MainOnlyTextNode.js';
23
- import { loadCoreExtension } from '../utils.js';
24
- export class MainRenderDriver {
25
- root = null;
26
- stage = null;
27
- rendererMain = null;
28
- async init(rendererMain, rendererSettings, canvas) {
29
- this.stage = new Stage({
30
- rootId: 1,
31
- appWidth: rendererSettings.appWidth,
32
- appHeight: rendererSettings.appHeight,
33
- deviceLogicalPixelRatio: rendererSettings.deviceLogicalPixelRatio,
34
- devicePhysicalPixelRatio: rendererSettings.devicePhysicalPixelRatio,
35
- clearColor: rendererSettings.clearColor,
36
- canvas,
37
- debug: {
38
- monitorTextureCache: false,
39
- },
40
- });
41
- this.rendererMain = rendererMain;
42
- assertTruthy(this.stage.root);
43
- const node = new MainOnlyNode(rendererMain.resolveNodeDefaults({}), this.rendererMain, this.stage, this.stage.root);
44
- this.root = node;
45
- node.once('beforeDestroy', this.onBeforeDestroyNode.bind(this, node));
46
- this.onCreateNode(node);
47
- // Load the Core Extension Module if one was specified.
48
- if (rendererSettings.coreExtensionModule) {
49
- await loadCoreExtension(rendererSettings.coreExtensionModule, this.stage);
50
- }
51
- }
52
- createNode(props) {
53
- assertTruthy(this.rendererMain);
54
- assertTruthy(this.stage);
55
- const node = new MainOnlyNode(props, this.rendererMain, this.stage);
56
- node.once('beforeDestroy', this.onBeforeDestroyNode.bind(this, node));
57
- this.onCreateNode(node);
58
- return node;
59
- }
60
- createTextNode(props) {
61
- assertTruthy(this.rendererMain);
62
- assertTruthy(this.stage);
63
- const node = new MainOnlyTextNode(props, this.rendererMain, this.stage);
64
- node.once('beforeDestroy', this.onBeforeDestroyNode.bind(this, node));
65
- this.onCreateNode(node);
66
- return node;
67
- }
68
- // TODO: Remove?
69
- destroyNode(node) {
70
- node.destroy();
71
- }
72
- releaseTexture(id) {
73
- const { stage } = this;
74
- assertTruthy(stage);
75
- stage.txManager.removeTextureIdFromCache(id);
76
- }
77
- getRootNode() {
78
- assertTruthy(this.root);
79
- return this.root;
80
- }
81
- onCreateNode(node) {
82
- throw new Error('Method not implemented.');
83
- }
84
- onBeforeDestroyNode(node) {
85
- throw new Error('Method not implemented.');
86
- }
87
- }
88
- //# sourceMappingURL=MainRenderDriver.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"MainRenderDriver.js","sourceRoot":"","sources":["../../../../src/render-drivers/main/MainRenderDriver.ts"],"names":[],"mappings":"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"}
@@ -1,6 +0,0 @@
1
- import { IShaderController } from "../../main-api/IShaderController.js";
2
- export declare class ThreadXMainShaderController extends IShaderController {
3
- getProp(propName: string): unknown;
4
- setProp(propName: string, value: unknown): void;
5
- loadShader(): void;
6
- }
@@ -1,16 +0,0 @@
1
- import { IShaderController } from "../../main-api/IShaderController.js";
2
- export class ThreadXMainShaderController extends IShaderController {
3
- getProp(propName) {
4
- // return (this.node as ThreadXMainNode).coreNode.shaderProps![propName];
5
- return false;
6
- }
7
- setProp(propName, value) {
8
- // (this.node as MainOnlyNode).coreNode.shaderProps![propName] = value;
9
- }
10
- loadShader() {
11
- // const coreNode = (this.node as MainOnlyNode).coreNode;
12
- // coreNode.loadShader(this.shType, this.props);
13
- // this.defineProps(coreNode.shaderProps as ExtractProps<ShaderMap[keyof ShaderMap]>);
14
- }
15
- }
16
- //# sourceMappingURL=ThreadXMainShaderController.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"ThreadXMainShaderController.js","sourceRoot":"","sources":["../../../../src/render-drivers/threadx/ThreadXMainShaderController.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,iBAAiB,EAAE,MAAM,qCAAqC,CAAC;AAGxE,MAAM,OAAO,2BAA4B,SAAQ,iBAAiB;IACvD,OAAO,CAAC,QAAgB;QAC/B,yEAAyE;QACzE,OAAO,KAAK,CAAC;IACf,CAAC;IAEQ,OAAO,CAAC,QAAgB,EAAE,KAAc;QAC/C,uEAAuE;IACzE,CAAC;IAEQ,UAAU;QACjB,yDAAyD;QACzD,gDAAgD;QAChD,sFAAsF;IACxF,CAAC;CACF"}
@@ -1,7 +0,0 @@
1
- import type { IAnimationController } from '../../common/IAnimationController.js';
2
- import type { AnimationSettings } from '../../core/animations/CoreAnimation.js';
3
- import { IShaderNode } from '../../main-api/IShaderNode.js';
4
- export declare class ThreadXMainShaderNode extends IShaderNode {
5
- loadShader(): void;
6
- animate(props: Record<string, number>, settings: Partial<AnimationSettings>): IAnimationController;
7
- }
@@ -1,15 +0,0 @@
1
- import { EventEmitter } from '../../common/EventEmitter.js';
2
- import { IShaderNode } from '../../main-api/IShaderNode.js';
3
- import { ThreadXMainAnimationController } from './ThreadXMainAnimationController.js';
4
- export class ThreadXMainShaderNode extends IShaderNode {
5
- loadShader() {
6
- //load shader
7
- }
8
- animate(props, settings) {
9
- // const id = this.nextAnimationId++;
10
- // // this.emit('createAnimation', {id, props, settings});
11
- // const controller = new ThreadXMainAnimationController(this, 1);
12
- return {};
13
- }
14
- }
15
- //# sourceMappingURL=ThreadXMainShaderNode.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"ThreadXMainShaderNode.js","sourceRoot":"","sources":["../../../../src/render-drivers/threadx/ThreadXMainShaderNode.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,8BAA8B,CAAC;AAG5D,OAAO,EAAE,WAAW,EAAE,MAAM,+BAA+B,CAAC;AAC5D,OAAO,EAAE,8BAA8B,EAAE,MAAM,qCAAqC,CAAC;AAErF,MAAM,OAAO,qBAAsB,SAAQ,WAAW;IAC3C,UAAU;QACjB,aAAa;IACf,CAAC;IAEQ,OAAO,CACd,KAA6B,EAC7B,QAAoC;QAEpC,qCAAqC;QACrC,0DAA0D;QAC1D,kEAAkE;QAClE,OAAO,EAA0B,CAAC;IACpC,CAAC;CACF"}
@@ -1,21 +0,0 @@
1
- import type { INode, INodeWritableProps, ITextNode, ITextNodeWritableProps } from '../../main-api/INode.js';
2
- import type { IRenderDriver } from '../../main-api/IRenderDriver.js';
3
- import type { RendererMain, RendererMainSettings } from '../../main-api/RendererMain.js';
4
- export interface ThreadXRendererSettings {
5
- coreWorkerUrl: string;
6
- }
7
- export declare class ThreadXRenderDriver implements IRenderDriver {
8
- private settings;
9
- private threadx;
10
- private rendererMain;
11
- private root;
12
- constructor(settings: ThreadXRendererSettings);
13
- init(rendererMain: RendererMain, rendererSettings: Required<RendererMainSettings>, canvas: HTMLCanvasElement): Promise<void>;
14
- getRootNode(): INode;
15
- createNode(props: INodeWritableProps): INode;
16
- createTextNode(props: ITextNodeWritableProps): ITextNode;
17
- destroyNode(node: INode): void;
18
- releaseTexture(textureDescId: number): void;
19
- onCreateNode(node: INode): void;
20
- onBeforeDestroyNode(node: INode): void;
21
- }
@@ -1,198 +0,0 @@
1
- /*
2
- * If not stated otherwise in this file or this component's LICENSE file the
3
- * following copyright and licenses apply:
4
- *
5
- * Copyright 2023 Comcast Cable Communications Management, LLC.
6
- *
7
- * Licensed under the Apache License, Version 2.0 (the License);
8
- * you may not use this file except in compliance with the License.
9
- * You may obtain a copy of the License at
10
- *
11
- * http://www.apache.org/licenses/LICENSE-2.0
12
- *
13
- * Unless required by applicable law or agreed to in writing, software
14
- * distributed under the License is distributed on an "AS IS" BASIS,
15
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
16
- * See the License for the specific language governing permissions and
17
- * limitations under the License.
18
- */
19
- import { ThreadX, BufferStruct } from '@lightningjs/threadx';
20
- import { NodeStruct } from './NodeStruct.js';
21
- import { ThreadXMainNode } from './ThreadXMainNode.js';
22
- import { assertTruthy } from '../../utils.js';
23
- import { TextNodeStruct, } from './TextNodeStruct.js';
24
- import { ThreadXMainTextNode } from './ThreadXMainTextNode.js';
25
- export class ThreadXRenderDriver {
26
- settings;
27
- threadx;
28
- rendererMain = null;
29
- root = null;
30
- constructor(settings) {
31
- this.settings = settings;
32
- this.threadx = ThreadX.init({
33
- workerId: 1,
34
- workerName: 'main',
35
- sharedObjectFactory: (buffer) => {
36
- const typeId = BufferStruct.extractTypeId(buffer);
37
- const rendererMain = this.rendererMain;
38
- assertTruthy(rendererMain);
39
- if (typeId === NodeStruct.typeId) {
40
- const nodeStruct = new NodeStruct(buffer);
41
- return nodeStruct.lock(() => {
42
- return new ThreadXMainNode(rendererMain, nodeStruct);
43
- });
44
- }
45
- else if (typeId === TextNodeStruct.typeId) {
46
- const nodeStruct = new TextNodeStruct(buffer);
47
- return nodeStruct.lock(() => {
48
- return new ThreadXMainTextNode(rendererMain, nodeStruct);
49
- });
50
- }
51
- return null;
52
- },
53
- });
54
- this.threadx.registerWorker('renderer', new Worker(this.settings.coreWorkerUrl, { type: 'module' }));
55
- }
56
- async init(rendererMain, rendererSettings, canvas) {
57
- this.rendererMain = rendererMain;
58
- const offscreenCanvas = canvas.transferControlToOffscreen();
59
- const rootNodeId = (await this.threadx.sendMessageAsync('renderer', {
60
- type: 'init',
61
- canvas: offscreenCanvas,
62
- appWidth: rendererSettings.appWidth,
63
- appHeight: rendererSettings.appHeight,
64
- deviceLogicalPixelRatio: rendererSettings.deviceLogicalPixelRatio,
65
- devicePhysicalPixelRatio: rendererSettings.devicePhysicalPixelRatio,
66
- clearColor: rendererSettings.clearColor,
67
- coreExtensionModule: rendererSettings.coreExtensionModule,
68
- }, [offscreenCanvas]));
69
- // The Render worker shares the root node with this worker during the
70
- // 'init' call above. That call returns the ID of the root node, which
71
- // we can use to retrieve it from the shared object store.
72
- const rootNode = this.threadx.getSharedObjectById(rootNodeId);
73
- assertTruthy(rootNode instanceof ThreadXMainNode, 'Unexpected root node type');
74
- this.root = rootNode;
75
- }
76
- getRootNode() {
77
- assertTruthy(this.root, 'Driver not initialized');
78
- return this.root;
79
- }
80
- createNode(props) {
81
- const rendererMain = this.rendererMain;
82
- assertTruthy(rendererMain);
83
- const bufferStruct = new NodeStruct();
84
- Object.assign(bufferStruct, {
85
- // Node specific properties
86
- x: props.x,
87
- y: props.y,
88
- width: props.width,
89
- height: props.height,
90
- parentId: props.parent ? props.parent.id : 0,
91
- clipping: props.clipping,
92
- color: props.color,
93
- colorTop: props.colorTop,
94
- colorRight: props.colorBottom,
95
- colorBottom: props.colorBottom,
96
- colorLeft: props.colorLeft,
97
- colorTl: props.colorTl,
98
- colorTr: props.colorTr,
99
- colorBl: props.colorBl,
100
- colorBr: props.colorBr,
101
- alpha: props.alpha,
102
- zIndex: props.zIndex,
103
- zIndexLocked: props.zIndexLocked,
104
- scaleX: props.scaleX,
105
- scaleY: props.scaleY,
106
- mount: props.mount,
107
- mountX: props.mountX,
108
- mountY: props.mountY,
109
- pivot: props.pivot,
110
- pivotX: props.pivotX,
111
- pivotY: props.pivotY,
112
- rotation: props.rotation,
113
- });
114
- const node = new ThreadXMainNode(rendererMain, bufferStruct);
115
- node.once('beforeDestroy', this.onBeforeDestroyNode.bind(this, node));
116
- this.threadx.shareObjects('renderer', [node]).catch(console.error);
117
- node.shader = props.shader ?? null;
118
- node.texture = props.texture ?? null;
119
- node.src = props.src ?? '';
120
- this.onCreateNode(node);
121
- return node;
122
- }
123
- createTextNode(props) {
124
- const rendererMain = this.rendererMain;
125
- assertTruthy(rendererMain);
126
- const bufferStruct = new TextNodeStruct();
127
- Object.assign(bufferStruct, {
128
- // Node specific properties
129
- x: props.x,
130
- y: props.y,
131
- width: props.width,
132
- height: props.height,
133
- parentId: props.parent ? props.parent.id : 0,
134
- clipping: props.clipping,
135
- color: props.color,
136
- colorTop: props.colorTop,
137
- colorRight: props.colorBottom,
138
- colorBottom: props.colorBottom,
139
- colorLeft: props.colorLeft,
140
- colorTl: props.colorTl,
141
- colorTr: props.colorTr,
142
- colorBl: props.colorBl,
143
- colorBr: props.colorBr,
144
- alpha: props.alpha,
145
- zIndex: props.zIndex,
146
- zIndexLocked: props.zIndexLocked,
147
- scaleX: props.scaleX,
148
- scaleY: props.scaleY,
149
- mount: props.mount,
150
- mountX: props.mountX,
151
- mountY: props.mountY,
152
- pivot: props.pivot,
153
- pivotX: props.pivotX,
154
- pivotY: props.pivotY,
155
- rotation: props.rotation,
156
- // Text specific properties
157
- text: props.text,
158
- textRendererOverride: props.textRendererOverride,
159
- fontSize: props.fontSize,
160
- fontFamily: props.fontFamily,
161
- fontWeight: props.fontWeight,
162
- fontStretch: props.fontStretch,
163
- fontStyle: props.fontStyle,
164
- contain: props.contain,
165
- letterSpacing: props.letterSpacing,
166
- offsetY: props.offsetY,
167
- textAlign: props.textAlign,
168
- scrollable: props.scrollable,
169
- scrollY: props.scrollY,
170
- });
171
- const node = new ThreadXMainTextNode(rendererMain, bufferStruct);
172
- node.once('beforeDestroy', this.onBeforeDestroyNode.bind(this, node));
173
- this.threadx.shareObjects('renderer', [node]).catch(console.error);
174
- node.shader = props.shader ?? null;
175
- node.texture = props.texture ?? null;
176
- node.src = props.src ?? '';
177
- node.debug = props.debug ?? {};
178
- this.onCreateNode(node);
179
- return node;
180
- }
181
- // TODO: Remove?
182
- destroyNode(node) {
183
- node.destroy();
184
- }
185
- releaseTexture(textureDescId) {
186
- this.threadx.sendMessage('renderer', {
187
- type: 'releaseTexture',
188
- textureDescId,
189
- });
190
- }
191
- onCreateNode(node) {
192
- return;
193
- }
194
- onBeforeDestroyNode(node) {
195
- return;
196
- }
197
- }
198
- //# sourceMappingURL=ThreadXRenderDriver.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"ThreadXRenderDriver.js","sourceRoot":"","sources":["../../../../src/render-drivers/threadx/ThreadXRenderDriver.ts"],"names":[],"mappings":"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"}