@lightningjs/renderer 2.12.0 → 2.13.0

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 (338) hide show
  1. package/COPYING +1 -0
  2. package/LICENSE +202 -202
  3. package/NOTICE +3 -3
  4. package/README.md +147 -147
  5. package/dist/src/core/CoreNode.d.ts +12 -1
  6. package/dist/src/core/CoreNode.js +113 -34
  7. package/dist/src/core/CoreNode.js.map +1 -1
  8. package/dist/src/core/CoreTextureManager.d.ts +13 -7
  9. package/dist/src/core/CoreTextureManager.js +92 -105
  10. package/dist/src/core/CoreTextureManager.js.map +1 -1
  11. package/dist/src/core/Stage.d.ts +4 -2
  12. package/dist/src/core/Stage.js +23 -7
  13. package/dist/src/core/Stage.js.map +1 -1
  14. package/dist/src/core/TextureMemoryManager.d.ts +17 -6
  15. package/dist/src/core/TextureMemoryManager.js +78 -18
  16. package/dist/src/core/TextureMemoryManager.js.map +1 -1
  17. package/dist/src/core/lib/ImageWorker.d.ts +1 -1
  18. package/dist/src/core/lib/ImageWorker.js +13 -11
  19. package/dist/src/core/lib/ImageWorker.js.map +1 -1
  20. package/dist/src/core/lib/WebGlContextWrapper.d.ts +7 -0
  21. package/dist/src/core/lib/WebGlContextWrapper.js +9 -0
  22. package/dist/src/core/lib/WebGlContextWrapper.js.map +1 -1
  23. package/dist/src/core/lib/validateImageBitmap.d.ts +6 -0
  24. package/dist/src/core/lib/validateImageBitmap.js +68 -0
  25. package/dist/src/core/lib/validateImageBitmap.js.map +1 -0
  26. package/dist/src/core/platform.js +3 -3
  27. package/dist/src/core/platform.js.map +1 -1
  28. package/dist/src/core/renderers/webgl/WebGlCoreCtxRenderTexture.d.ts +2 -1
  29. package/dist/src/core/renderers/webgl/WebGlCoreCtxRenderTexture.js +9 -5
  30. package/dist/src/core/renderers/webgl/WebGlCoreCtxRenderTexture.js.map +1 -1
  31. package/dist/src/core/renderers/webgl/WebGlCoreCtxTexture.js +7 -12
  32. package/dist/src/core/renderers/webgl/WebGlCoreCtxTexture.js.map +1 -1
  33. package/dist/src/core/renderers/webgl/WebGlCoreRenderer.d.ts +1 -1
  34. package/dist/src/core/renderers/webgl/WebGlCoreRenderer.js +18 -18
  35. package/dist/src/core/renderers/webgl/WebGlCoreRenderer.js.map +1 -1
  36. package/dist/src/core/renderers/webgl/shaders/DefaultShader.js +45 -45
  37. package/dist/src/core/renderers/webgl/shaders/DefaultShaderBatched.js +61 -61
  38. package/dist/src/core/renderers/webgl/shaders/DynamicShader.js +93 -93
  39. package/dist/src/core/renderers/webgl/shaders/RoundedRectangle.js +63 -63
  40. package/dist/src/core/renderers/webgl/shaders/SdfShader.js +62 -62
  41. package/dist/src/core/renderers/webgl/shaders/effects/BorderBottomEffect.js +15 -15
  42. package/dist/src/core/renderers/webgl/shaders/effects/BorderEffect.js +6 -6
  43. package/dist/src/core/renderers/webgl/shaders/effects/BorderLeftEffect.js +15 -15
  44. package/dist/src/core/renderers/webgl/shaders/effects/BorderRightEffect.js +15 -15
  45. package/dist/src/core/renderers/webgl/shaders/effects/BorderTopEffect.js +15 -15
  46. package/dist/src/core/renderers/webgl/shaders/effects/FadeOutEffect.js +42 -42
  47. package/dist/src/core/renderers/webgl/shaders/effects/GlitchEffect.js +44 -44
  48. package/dist/src/core/renderers/webgl/shaders/effects/GrayscaleEffect.js +3 -3
  49. package/dist/src/core/renderers/webgl/shaders/effects/HolePunchEffect.js +22 -22
  50. package/dist/src/core/renderers/webgl/shaders/effects/LinearGradientEffect.js +28 -28
  51. package/dist/src/core/renderers/webgl/shaders/effects/RadialGradientEffect.js +10 -10
  52. package/dist/src/core/renderers/webgl/shaders/effects/RadialProgressEffect.js +37 -37
  53. package/dist/src/core/renderers/webgl/shaders/effects/RadiusEffect.js +19 -19
  54. package/dist/src/core/textures/ImageTexture.js +10 -16
  55. package/dist/src/core/textures/ImageTexture.js.map +1 -1
  56. package/dist/src/main-api/Inspector.js +16 -2
  57. package/dist/src/main-api/Inspector.js.map +1 -1
  58. package/dist/src/main-api/Renderer.d.ts +27 -1
  59. package/dist/src/main-api/Renderer.js +8 -3
  60. package/dist/src/main-api/Renderer.js.map +1 -1
  61. package/dist/tsconfig.dist.tsbuildinfo +1 -1
  62. package/exports/canvas.ts +39 -39
  63. package/exports/index.ts +89 -89
  64. package/exports/inspector.ts +24 -24
  65. package/exports/utils.ts +44 -44
  66. package/exports/webgl.ts +38 -38
  67. package/package.json +1 -2
  68. package/scripts/please-use-pnpm.js +13 -13
  69. package/src/common/CommonTypes.ts +146 -146
  70. package/src/common/EventEmitter.ts +77 -77
  71. package/src/common/IAnimationController.ts +92 -92
  72. package/src/common/IEventEmitter.ts +28 -28
  73. package/src/core/CoreNode.test.ts +202 -199
  74. package/src/core/CoreNode.ts +2455 -2335
  75. package/src/core/CoreShaderManager.ts +292 -292
  76. package/src/core/CoreTextNode.ts +455 -455
  77. package/src/core/CoreTextureManager.ts +597 -596
  78. package/src/core/Stage.ts +743 -722
  79. package/src/core/TextureMemoryManager.ts +395 -310
  80. package/src/core/animations/AnimationManager.ts +38 -38
  81. package/src/core/animations/CoreAnimation.ts +340 -340
  82. package/src/core/animations/CoreAnimationController.ts +157 -157
  83. package/src/core/lib/ContextSpy.ts +41 -41
  84. package/src/core/lib/ImageWorker.ts +279 -271
  85. package/src/core/lib/Matrix3d.ts +244 -244
  86. package/src/core/lib/RenderCoords.ts +86 -86
  87. package/src/core/lib/WebGlContextWrapper.ts +1332 -1322
  88. package/src/core/lib/textureCompression.ts +152 -152
  89. package/src/core/lib/textureSvg.ts +78 -78
  90. package/src/core/lib/utils.ts +310 -310
  91. package/src/core/lib/validateImageBitmap.ts +76 -0
  92. package/src/core/platform.ts +63 -61
  93. package/src/core/renderers/CoreContextTexture.ts +43 -43
  94. package/src/core/renderers/CoreRenderOp.ts +22 -22
  95. package/src/core/renderers/CoreRenderer.ts +115 -115
  96. package/src/core/renderers/CoreShader.ts +41 -41
  97. package/src/core/renderers/canvas/CanvasCoreRenderer.ts +375 -375
  98. package/src/core/renderers/canvas/CanvasCoreTexture.ts +153 -153
  99. package/src/core/renderers/canvas/internal/C2DShaderUtils.ts +231 -231
  100. package/src/core/renderers/canvas/internal/ColorUtils.ts +69 -69
  101. package/src/core/renderers/canvas/shaders/UnsupportedShader.ts +48 -48
  102. package/src/core/renderers/webgl/WebGlCoreCtxRenderTexture.ts +86 -79
  103. package/src/core/renderers/webgl/WebGlCoreCtxSubTexture.ts +50 -50
  104. package/src/core/renderers/webgl/WebGlCoreCtxTexture.ts +301 -303
  105. package/src/core/renderers/webgl/WebGlCoreRenderOp.ts +125 -125
  106. package/src/core/renderers/webgl/WebGlCoreRenderer.ts +815 -814
  107. package/src/core/renderers/webgl/WebGlCoreShader.ts +362 -362
  108. package/src/core/renderers/webgl/internal/BufferCollection.ts +54 -54
  109. package/src/core/renderers/webgl/internal/RendererUtils.ts +155 -155
  110. package/src/core/renderers/webgl/internal/ShaderUtils.ts +143 -143
  111. package/src/core/renderers/webgl/internal/WebGlUtils.ts +35 -35
  112. package/src/core/renderers/webgl/shaders/DefaultShader.ts +93 -93
  113. package/src/core/renderers/webgl/shaders/DefaultShaderBatched.ts +132 -132
  114. package/src/core/renderers/webgl/shaders/DynamicShader.ts +580 -580
  115. package/src/core/renderers/webgl/shaders/RoundedRectangle.ts +167 -167
  116. package/src/core/renderers/webgl/shaders/SdfShader.ts +204 -204
  117. package/src/core/renderers/webgl/shaders/effects/BorderBottomEffect.ts +101 -101
  118. package/src/core/renderers/webgl/shaders/effects/BorderEffect.ts +87 -87
  119. package/src/core/renderers/webgl/shaders/effects/BorderLeftEffect.ts +101 -101
  120. package/src/core/renderers/webgl/shaders/effects/BorderRightEffect.ts +101 -101
  121. package/src/core/renderers/webgl/shaders/effects/BorderTopEffect.ts +101 -101
  122. package/src/core/renderers/webgl/shaders/effects/EffectUtils.ts +159 -159
  123. package/src/core/renderers/webgl/shaders/effects/FadeOutEffect.ts +127 -127
  124. package/src/core/renderers/webgl/shaders/effects/GlitchEffect.ts +148 -148
  125. package/src/core/renderers/webgl/shaders/effects/GrayscaleEffect.ts +67 -67
  126. package/src/core/renderers/webgl/shaders/effects/HolePunchEffect.ts +157 -157
  127. package/src/core/renderers/webgl/shaders/effects/LinearGradientEffect.ts +171 -171
  128. package/src/core/renderers/webgl/shaders/effects/RadialGradientEffect.ts +168 -168
  129. package/src/core/renderers/webgl/shaders/effects/RadialProgressEffect.ts +187 -187
  130. package/src/core/renderers/webgl/shaders/effects/RadiusEffect.ts +110 -110
  131. package/src/core/renderers/webgl/shaders/effects/ShaderEffect.ts +196 -196
  132. package/src/core/text-rendering/TextRenderingUtils.ts +36 -36
  133. package/src/core/text-rendering/TextTextureRendererUtils.ts +263 -263
  134. package/src/core/text-rendering/TrFontManager.ts +183 -183
  135. package/src/core/text-rendering/font-face-types/SdfTrFontFace/SdfTrFontFace.ts +176 -176
  136. package/src/core/text-rendering/font-face-types/SdfTrFontFace/internal/FontShaper.ts +139 -139
  137. package/src/core/text-rendering/font-face-types/SdfTrFontFace/internal/SdfFontShaper.test.ts +173 -173
  138. package/src/core/text-rendering/font-face-types/SdfTrFontFace/internal/SdfFontShaper.ts +171 -171
  139. package/src/core/text-rendering/font-face-types/TrFontFace.ts +187 -187
  140. package/src/core/text-rendering/font-face-types/WebTrFontFace.ts +94 -94
  141. package/src/core/text-rendering/font-face-types/utils.ts +39 -39
  142. package/src/core/text-rendering/renderers/CanvasTextRenderer.ts +509 -509
  143. package/src/core/text-rendering/renderers/LightningTextTextureRenderer.ts +808 -808
  144. package/src/core/text-rendering/renderers/SdfTextRenderer/SdfTextRenderer.ts +853 -853
  145. package/src/core/text-rendering/renderers/SdfTextRenderer/internal/PeekableGenerator.test.ts +48 -48
  146. package/src/core/text-rendering/renderers/SdfTextRenderer/internal/PeekableGenerator.ts +66 -66
  147. package/src/core/text-rendering/renderers/SdfTextRenderer/internal/SpecialCodepoints.ts +52 -52
  148. package/src/core/text-rendering/renderers/SdfTextRenderer/internal/constants.ts +32 -32
  149. package/src/core/text-rendering/renderers/SdfTextRenderer/internal/getStartConditions.ts +117 -117
  150. package/src/core/text-rendering/renderers/SdfTextRenderer/internal/getUnicodeCodepoints.test.ts +133 -133
  151. package/src/core/text-rendering/renderers/SdfTextRenderer/internal/getUnicodeCodepoints.ts +38 -38
  152. package/src/core/text-rendering/renderers/SdfTextRenderer/internal/layoutText.ts +408 -408
  153. package/src/core/text-rendering/renderers/SdfTextRenderer/internal/measureText.test.ts +49 -49
  154. package/src/core/text-rendering/renderers/SdfTextRenderer/internal/measureText.ts +52 -52
  155. package/src/core/text-rendering/renderers/SdfTextRenderer/internal/setRenderWindow.test.ts +205 -205
  156. package/src/core/text-rendering/renderers/SdfTextRenderer/internal/setRenderWindow.ts +93 -93
  157. package/src/core/text-rendering/renderers/SdfTextRenderer/internal/util.ts +40 -40
  158. package/src/core/text-rendering/renderers/TextRenderer.ts +557 -557
  159. package/src/core/textures/ColorTexture.ts +102 -102
  160. package/src/core/textures/ImageTexture.ts +376 -382
  161. package/src/core/textures/NoiseTexture.ts +104 -104
  162. package/src/core/textures/RenderTexture.ts +85 -85
  163. package/src/core/textures/SubTexture.ts +205 -205
  164. package/src/core/textures/Texture.ts +337 -337
  165. package/src/core/utils.ts +227 -227
  166. package/src/env.d.ts +7 -7
  167. package/src/main-api/DynamicShaderController.ts +104 -104
  168. package/src/main-api/INode.ts +101 -101
  169. package/src/main-api/Inspector.ts +522 -505
  170. package/src/main-api/Renderer.ts +751 -720
  171. package/src/main-api/ShaderController.ts +80 -80
  172. package/src/main-api/utils.ts +45 -45
  173. package/src/utils.ts +248 -248
  174. package/dist/exports/core-api.d.ts +0 -74
  175. package/dist/exports/core-api.js +0 -96
  176. package/dist/exports/core-api.js.map +0 -1
  177. package/dist/exports/main-api.d.ts +0 -30
  178. package/dist/exports/main-api.js +0 -45
  179. package/dist/exports/main-api.js.map +0 -1
  180. package/dist/src/core/CoreExtension.d.ts +0 -12
  181. package/dist/src/core/CoreExtension.js +0 -29
  182. package/dist/src/core/CoreExtension.js.map +0 -1
  183. package/dist/src/core/CoreStuff.d.ts +0 -1
  184. package/dist/src/core/CoreStuff.js +0 -138
  185. package/dist/src/core/CoreStuff.js.map +0 -1
  186. package/dist/src/core/CoreTexturizer.d.ts +0 -14
  187. package/dist/src/core/CoreTexturizer.js +0 -47
  188. package/dist/src/core/CoreTexturizer.js.map +0 -1
  189. package/dist/src/core/LngNode.d.ts +0 -736
  190. package/dist/src/core/LngNode.js +0 -1174
  191. package/dist/src/core/LngNode.js.map +0 -1
  192. package/dist/src/core/Matrix2DContext.d.ts +0 -15
  193. package/dist/src/core/Matrix2DContext.js +0 -45
  194. package/dist/src/core/Matrix2DContext.js.map +0 -1
  195. package/dist/src/core/ShaderNode.d.ts +0 -10
  196. package/dist/src/core/ShaderNode.js +0 -30
  197. package/dist/src/core/ShaderNode.js.map +0 -1
  198. package/dist/src/core/TextNode.d.ts +0 -103
  199. package/dist/src/core/TextNode.js +0 -331
  200. package/dist/src/core/TextNode.js.map +0 -1
  201. package/dist/src/core/lib/Coords.d.ts +0 -14
  202. package/dist/src/core/lib/Coords.js +0 -55
  203. package/dist/src/core/lib/Coords.js.map +0 -1
  204. package/dist/src/core/lib/glm/common.d.ts +0 -162
  205. package/dist/src/core/lib/glm/common.js +0 -81
  206. package/dist/src/core/lib/glm/common.js.map +0 -1
  207. package/dist/src/core/lib/glm/index.d.ts +0 -11
  208. package/dist/src/core/lib/glm/index.js +0 -30
  209. package/dist/src/core/lib/glm/index.js.map +0 -1
  210. package/dist/src/core/lib/glm/mat2.d.ts +0 -219
  211. package/dist/src/core/lib/glm/mat2.js +0 -396
  212. package/dist/src/core/lib/glm/mat2.js.map +0 -1
  213. package/dist/src/core/lib/glm/mat2d.d.ts +0 -237
  214. package/dist/src/core/lib/glm/mat2d.js +0 -442
  215. package/dist/src/core/lib/glm/mat2d.js.map +0 -1
  216. package/dist/src/core/lib/glm/mat3.d.ts +0 -283
  217. package/dist/src/core/lib/glm/mat3.js +0 -680
  218. package/dist/src/core/lib/glm/mat3.js.map +0 -1
  219. package/dist/src/core/lib/glm/mat4.d.ts +0 -550
  220. package/dist/src/core/lib/glm/mat4.js +0 -1802
  221. package/dist/src/core/lib/glm/mat4.js.map +0 -1
  222. package/dist/src/core/lib/glm/quat.d.ts +0 -363
  223. package/dist/src/core/lib/glm/quat.js +0 -693
  224. package/dist/src/core/lib/glm/quat.js.map +0 -1
  225. package/dist/src/core/lib/glm/quat2.d.ts +0 -356
  226. package/dist/src/core/lib/glm/quat2.js +0 -754
  227. package/dist/src/core/lib/glm/quat2.js.map +0 -1
  228. package/dist/src/core/lib/glm/vec2.d.ts +0 -365
  229. package/dist/src/core/lib/glm/vec2.js +0 -569
  230. package/dist/src/core/lib/glm/vec2.js.map +0 -1
  231. package/dist/src/core/lib/glm/vec3.d.ts +0 -406
  232. package/dist/src/core/lib/glm/vec3.js +0 -720
  233. package/dist/src/core/lib/glm/vec3.js.map +0 -1
  234. package/dist/src/core/lib/glm/vec4.d.ts +0 -330
  235. package/dist/src/core/lib/glm/vec4.js +0 -608
  236. package/dist/src/core/lib/glm/vec4.js.map +0 -1
  237. package/dist/src/core/renderers/CoreShaderManager.d.ts +0 -19
  238. package/dist/src/core/renderers/CoreShaderManager.js +0 -33
  239. package/dist/src/core/renderers/CoreShaderManager.js.map +0 -1
  240. package/dist/src/core/renderers/webgl/WebGlCoreShaderManager.d.ts +0 -27
  241. package/dist/src/core/renderers/webgl/WebGlCoreShaderManager.js +0 -82
  242. package/dist/src/core/renderers/webgl/WebGlCoreShaderManager.js.map +0 -1
  243. package/dist/src/core/renderers/webgl/WebGlCoreShaderProgram.d.ts +0 -11
  244. package/dist/src/core/renderers/webgl/WebGlCoreShaderProgram.js +0 -34
  245. package/dist/src/core/renderers/webgl/WebGlCoreShaderProgram.js.map +0 -1
  246. package/dist/src/core/scene/Scene.d.ts +0 -59
  247. package/dist/src/core/scene/Scene.js +0 -106
  248. package/dist/src/core/scene/Scene.js.map +0 -1
  249. package/dist/src/core/text-rendering/renderers/SdfTextRenderer/internal/makeRenderWindow.d.ts +0 -20
  250. package/dist/src/core/text-rendering/renderers/SdfTextRenderer/internal/makeRenderWindow.js +0 -55
  251. package/dist/src/core/text-rendering/renderers/SdfTextRenderer/internal/makeRenderWindow.js.map +0 -1
  252. package/dist/src/main-api/ICoreDriver.d.ts +0 -27
  253. package/dist/src/main-api/ICoreDriver.js +0 -20
  254. package/dist/src/main-api/ICoreDriver.js.map +0 -1
  255. package/dist/src/main-api/IRenderDriver.d.ts +0 -20
  256. package/dist/src/main-api/IRenderDriver.js +0 -20
  257. package/dist/src/main-api/IRenderDriver.js.map +0 -1
  258. package/dist/src/main-api/IShaderController.d.ts +0 -14
  259. package/dist/src/main-api/IShaderController.js +0 -30
  260. package/dist/src/main-api/IShaderController.js.map +0 -1
  261. package/dist/src/main-api/IShaderNode.d.ts +0 -17
  262. package/dist/src/main-api/IShaderNode.js +0 -19
  263. package/dist/src/main-api/IShaderNode.js.map +0 -1
  264. package/dist/src/main-api/RendererMain.d.ts +0 -375
  265. package/dist/src/main-api/RendererMain.js +0 -365
  266. package/dist/src/main-api/RendererMain.js.map +0 -1
  267. package/dist/src/main-api/texture-usage-trackers/FinalizationRegistryTextureUsageTracker.d.ts +0 -9
  268. package/dist/src/main-api/texture-usage-trackers/FinalizationRegistryTextureUsageTracker.js +0 -38
  269. package/dist/src/main-api/texture-usage-trackers/FinalizationRegistryTextureUsageTracker.js.map +0 -1
  270. package/dist/src/main-api/texture-usage-trackers/ManualCountTextureUsageTracker.d.ts +0 -56
  271. package/dist/src/main-api/texture-usage-trackers/ManualCountTextureUsageTracker.js +0 -101
  272. package/dist/src/main-api/texture-usage-trackers/ManualCountTextureUsageTracker.js.map +0 -1
  273. package/dist/src/main-api/texture-usage-trackers/TextureUsageTracker.d.ts +0 -32
  274. package/dist/src/main-api/texture-usage-trackers/TextureUsageTracker.js +0 -28
  275. package/dist/src/main-api/texture-usage-trackers/TextureUsageTracker.js.map +0 -1
  276. package/dist/src/render-drivers/main/MainCoreDriver.d.ts +0 -24
  277. package/dist/src/render-drivers/main/MainCoreDriver.js +0 -118
  278. package/dist/src/render-drivers/main/MainCoreDriver.js.map +0 -1
  279. package/dist/src/render-drivers/main/MainOnlyNode.d.ts +0 -99
  280. package/dist/src/render-drivers/main/MainOnlyNode.js +0 -396
  281. package/dist/src/render-drivers/main/MainOnlyNode.js.map +0 -1
  282. package/dist/src/render-drivers/main/MainOnlyShaderController.d.ts +0 -6
  283. package/dist/src/render-drivers/main/MainOnlyShaderController.js +0 -15
  284. package/dist/src/render-drivers/main/MainOnlyShaderController.js.map +0 -1
  285. package/dist/src/render-drivers/main/MainOnlyShaderNode.d.ts +0 -7
  286. package/dist/src/render-drivers/main/MainOnlyShaderNode.js +0 -34
  287. package/dist/src/render-drivers/main/MainOnlyShaderNode.js.map +0 -1
  288. package/dist/src/render-drivers/main/MainOnlyTextNode.d.ts +0 -47
  289. package/dist/src/render-drivers/main/MainOnlyTextNode.js +0 -205
  290. package/dist/src/render-drivers/main/MainOnlyTextNode.js.map +0 -1
  291. package/dist/src/render-drivers/main/MainRenderDriver.d.ts +0 -17
  292. package/dist/src/render-drivers/main/MainRenderDriver.js +0 -88
  293. package/dist/src/render-drivers/main/MainRenderDriver.js.map +0 -1
  294. package/dist/src/render-drivers/threadx/NodeStruct.d.ts +0 -90
  295. package/dist/src/render-drivers/threadx/NodeStruct.js +0 -281
  296. package/dist/src/render-drivers/threadx/NodeStruct.js.map +0 -1
  297. package/dist/src/render-drivers/threadx/SharedNode.d.ts +0 -39
  298. package/dist/src/render-drivers/threadx/SharedNode.js +0 -60
  299. package/dist/src/render-drivers/threadx/SharedNode.js.map +0 -1
  300. package/dist/src/render-drivers/threadx/TextNodeStruct.d.ts +0 -44
  301. package/dist/src/render-drivers/threadx/TextNodeStruct.js +0 -201
  302. package/dist/src/render-drivers/threadx/TextNodeStruct.js.map +0 -1
  303. package/dist/src/render-drivers/threadx/ThreadXCoreDriver.d.ts +0 -28
  304. package/dist/src/render-drivers/threadx/ThreadXCoreDriver.js +0 -234
  305. package/dist/src/render-drivers/threadx/ThreadXCoreDriver.js.map +0 -1
  306. package/dist/src/render-drivers/threadx/ThreadXMainAnimationController.d.ts +0 -20
  307. package/dist/src/render-drivers/threadx/ThreadXMainAnimationController.js +0 -84
  308. package/dist/src/render-drivers/threadx/ThreadXMainAnimationController.js.map +0 -1
  309. package/dist/src/render-drivers/threadx/ThreadXMainNode.d.ts +0 -44
  310. package/dist/src/render-drivers/threadx/ThreadXMainNode.js +0 -154
  311. package/dist/src/render-drivers/threadx/ThreadXMainNode.js.map +0 -1
  312. package/dist/src/render-drivers/threadx/ThreadXMainShaderController.d.ts +0 -6
  313. package/dist/src/render-drivers/threadx/ThreadXMainShaderController.js +0 -16
  314. package/dist/src/render-drivers/threadx/ThreadXMainShaderController.js.map +0 -1
  315. package/dist/src/render-drivers/threadx/ThreadXMainShaderNode.d.ts +0 -7
  316. package/dist/src/render-drivers/threadx/ThreadXMainShaderNode.js +0 -15
  317. package/dist/src/render-drivers/threadx/ThreadXMainShaderNode.js.map +0 -1
  318. package/dist/src/render-drivers/threadx/ThreadXMainTextNode.d.ts +0 -28
  319. package/dist/src/render-drivers/threadx/ThreadXMainTextNode.js +0 -55
  320. package/dist/src/render-drivers/threadx/ThreadXMainTextNode.js.map +0 -1
  321. package/dist/src/render-drivers/threadx/ThreadXRenderDriver.d.ts +0 -21
  322. package/dist/src/render-drivers/threadx/ThreadXRenderDriver.js +0 -198
  323. package/dist/src/render-drivers/threadx/ThreadXRenderDriver.js.map +0 -1
  324. package/dist/src/render-drivers/threadx/ThreadXRendererMessage.d.ts +0 -70
  325. package/dist/src/render-drivers/threadx/ThreadXRendererMessage.js +0 -32
  326. package/dist/src/render-drivers/threadx/ThreadXRendererMessage.js.map +0 -1
  327. package/dist/src/render-drivers/threadx/worker/ThreadXRendererNode.d.ts +0 -19
  328. package/dist/src/render-drivers/threadx/worker/ThreadXRendererNode.js +0 -177
  329. package/dist/src/render-drivers/threadx/worker/ThreadXRendererNode.js.map +0 -1
  330. package/dist/src/render-drivers/threadx/worker/ThreadXRendererTextNode.d.ts +0 -27
  331. package/dist/src/render-drivers/threadx/worker/ThreadXRendererTextNode.js +0 -108
  332. package/dist/src/render-drivers/threadx/worker/ThreadXRendererTextNode.js.map +0 -1
  333. package/dist/src/render-drivers/threadx/worker/renderer.d.ts +0 -1
  334. package/dist/src/render-drivers/threadx/worker/renderer.js +0 -145
  335. package/dist/src/render-drivers/threadx/worker/renderer.js.map +0 -1
  336. package/dist/src/render-drivers/utils.d.ts +0 -12
  337. package/dist/src/render-drivers/utils.js +0 -69
  338. package/dist/src/render-drivers/utils.js.map +0 -1
@@ -1,375 +0,0 @@
1
- import type { ShaderMap } from '../core/CoreShaderManager.js';
2
- import type { ExtractProps, TextureMap, TextureOptions } from '../core/CoreTextureManager.js';
3
- import type { INode, INodeWritableProps, ITextNode, ITextNodeWritableProps } from './INode.js';
4
- import type { ICoreDriver } from './ICoreDriver.js';
5
- import { type ManualCountTextureUsageTrackerOptions } from './texture-usage-trackers/ManualCountTextureUsageTracker.js';
6
- import type { TextureUsageTracker } from './texture-usage-trackers/TextureUsageTracker.js';
7
- import { EventEmitter } from '../common/EventEmitter.js';
8
- import type { IShaderController } from './IShaderController.js';
9
- /**
10
- * An immutable reference to a specific Texture type
11
- *
12
- * @remarks
13
- * See {@link TextureRef} for more details.
14
- */
15
- export interface SpecificTextureRef<TxType extends keyof TextureMap> {
16
- readonly descType: 'texture';
17
- readonly txType: TxType;
18
- readonly props: ExtractProps<TextureMap[TxType]>;
19
- readonly options?: Readonly<TextureOptions>;
20
- }
21
- type MapTextureRefs<TxType extends keyof TextureMap> = TxType extends keyof TextureMap ? SpecificTextureRef<TxType> : never;
22
- /**
23
- * An immutable reference to a Texture
24
- *
25
- * @remarks
26
- * This structure should only be created by the RendererMain's `createTexture`
27
- * method. The structure is immutable and should not be modified once created.
28
- *
29
- * A `TextureRef` exists in the Main API Space and is used to point to an actual
30
- * `Texture` instance in the Core API Space. The `TextureRef` is used to
31
- * communicate with the Core API Space to create, load, and destroy the
32
- * `Texture` instance.
33
- *
34
- * This type is technically a discriminated union of all possible texture types.
35
- * If you'd like to represent a specific texture type, you can use the
36
- * `SpecificTextureRef` generic type.
37
- */
38
- export type TextureRef = MapTextureRefs<keyof TextureMap>;
39
- /**
40
- * An immutable reference to a specific Shader type
41
- *
42
- * @remarks
43
- * See {@link ShaderRef} for more details.
44
- */
45
- export interface SpecificShaderRef<ShType extends keyof ShaderMap> {
46
- readonly descType: 'shader';
47
- readonly shType: ShType;
48
- readonly props: ExtractProps<ShaderMap[ShType]>;
49
- }
50
- type MapShaderRefs<ShType extends keyof ShaderMap> = ShType extends keyof ShaderMap ? SpecificShaderRef<ShType> : never;
51
- /**
52
- * An immutable reference to a Shader
53
- *
54
- * @remarks
55
- * This structure should only be created by the RendererMain's `createShader`
56
- * method. The structure is immutable and should not be modified once created.
57
- *
58
- * A `ShaderRef` exists in the Main API Space and is used to point to an actual
59
- * `Shader` instance in the Core API Space. The `ShaderRef` is used to
60
- * communicate with the Core API Space to create, load, and destroy the
61
- * `Shader` instance.
62
- *
63
- * This type is technically a discriminated union of all possible shader types.
64
- * If you'd like to represent a specific shader type, you can use the
65
- * `SpecificShaderRef` generic type.
66
- */
67
- export type ShaderRef = MapShaderRefs<keyof ShaderMap>;
68
- /**
69
- * Configuration settings for {@link RendererMain}
70
- */
71
- export interface RendererMainSettings {
72
- /**
73
- * Authored logical pixel width of the application
74
- *
75
- * @defaultValue `1920`
76
- */
77
- appWidth?: number;
78
- /**
79
- * Authored logical pixel height of the application
80
- *
81
- * @defaultValue `1080`
82
- */
83
- appHeight?: number;
84
- /**
85
- * Texture Memory Byte Threshold
86
- *
87
- * @remarks
88
- * When the amount of GPU VRAM used by textures exceeds this threshold,
89
- * the Renderer will free up all the textures that are current not visible
90
- * within the configured `boundsMargin`.
91
- *
92
- * When set to `0`, the threshold-based texture memory manager is disabled.
93
- */
94
- txMemByteThreshold?: number;
95
- /**
96
- * Bounds margin to extend the boundary in which a CoreNode is added as Quad.
97
- */
98
- boundsMargin?: number | [number, number, number, number];
99
- /**
100
- * Factor to convert app-authored logical coorindates to device logical coordinates
101
- *
102
- * @remarks
103
- * This value allows auto-scaling to support larger/small resolutions than the
104
- * app was authored for.
105
- *
106
- * If the app was authored for 1920x1080 and this value is 2, the app's canvas
107
- * will be rendered at 3840x2160 logical pixels.
108
- *
109
- * Likewise, if the app was authored for 1920x1080 and this value is 0.66667,
110
- * the app's canvas will be rendered at 1280x720 logical pixels.
111
- *
112
- * @defaultValue `1`
113
- */
114
- deviceLogicalPixelRatio?: number;
115
- /**
116
- * Factor to convert device logical coordinates to device physical coordinates
117
- *
118
- * @remarks
119
- * This value allows auto-scaling to support devices with different pixel densities.
120
- *
121
- * This controls the number of physical pixels that are used to render each logical
122
- * pixel. For example, if the device has a pixel density of 2, each logical pixel
123
- * will be rendered using 2x2 physical pixels.
124
- *
125
- * By default, it will be set to `window.devicePixelRatio` which is the pixel
126
- * density of the device the app is running on reported by the browser.
127
- *
128
- * @defaultValue `window.devicePixelRatio`
129
- */
130
- devicePhysicalPixelRatio?: number;
131
- /**
132
- * RGBA encoded number of the background to use
133
- *
134
- * @defaultValue `0x00000000`
135
- */
136
- clearColor?: number;
137
- /**
138
- * Path to a custom core module to use
139
- *
140
- * @defaultValue `null`
141
- */
142
- coreExtensionModule?: string | null;
143
- /**
144
- * Enable experimental FinalizationRegistry-based texture usage tracking
145
- * for texture garbage collection
146
- *
147
- * @remarks
148
- * By default, the Renderer uses a manual reference counting system to track
149
- * texture usage. Textures are eventually released from the Core Texture
150
- * Manager's Usage Cache when they are no longer referenced by any Nodes (or
151
- * SubTextures that are referenced by nodes). This works well enough, but has
152
- * the consequence of textures being removed from Usage Cache even if their
153
- * references are still alive in memory. This can require a texture to be
154
- * reloaded from the source when it is used again after being removed from
155
- * cache.
156
- *
157
- * This is an experimental feature that uses a FinalizationRegistry to track
158
- * texture usage. This causes textures to be removed from the Usage Cache only
159
- * when their references are no longer alive in memory. Meaning a loaded texture
160
- * will remain in the Usage Cache until it's reference is garbage collected.
161
- *
162
- * This feature is not enabled by default because browser support for the
163
- * FinalizationRegistry is limited. It should NOT be enabled in production apps
164
- * as this behavior is not guaranteed to be supported in the future. Developer
165
- * feedback on this feature, however, is welcome.
166
- *
167
- * @defaultValue `false`
168
- */
169
- experimental_FinalizationRegistryTextureUsageTracker?: boolean;
170
- textureCleanupOptions?: ManualCountTextureUsageTrackerOptions;
171
- /**
172
- * Interval in milliseconds to receive FPS updates
173
- *
174
- * @remarks
175
- * If set to `0`, FPS updates will be disabled.
176
- *
177
- * @defaultValue `0` (disabled)
178
- */
179
- fpsUpdateInterval?: number;
180
- /**
181
- * Include context call (i.e. WebGL) information in FPS updates
182
- *
183
- * @remarks
184
- * When enabled the number of calls to each context method over the
185
- * `fpsUpdateInterval` will be included in the FPS update payload's
186
- * `contextSpyData` property.
187
- *
188
- * Enabling the context spy has a serious impact on performance so only use it
189
- * when you need to extract context call information.
190
- *
191
- * @defaultValue `false` (disabled)
192
- */
193
- enableContextSpy?: boolean;
194
- /**
195
- * Number or Image Workers to use
196
- *
197
- * @remarks
198
- * On devices with multiple cores, this can be used to improve image loading
199
- * as well as reduce the impact of image loading on the main thread.
200
- * Set to 0 to disable image workers.
201
- *
202
- * @defaultValue `2`
203
- */
204
- numImageWorkers?: number;
205
- /**
206
- * Enable inspector
207
- *
208
- * @remarks
209
- * When enabled the renderer will spawn a inspector. The inspector will
210
- * replicate the state of the Nodes created in the renderer and allow
211
- * inspection of the state of the nodes.
212
- *
213
- * @defaultValue `false` (disabled)
214
- */
215
- enableInspector?: boolean;
216
- }
217
- /**
218
- * The Renderer Main API
219
- *
220
- * @remarks
221
- * This is the primary class used to configure and operate the Renderer.
222
- *
223
- * It is used to create and destroy Nodes, as well as Texture and Shader
224
- * references.
225
- *
226
- * Example:
227
- * ```ts
228
- * import { RendererMain, MainCoreDriver } from '@lightningjs/renderer';
229
- *
230
- * // Initialize the Renderer
231
- * const renderer = new RendererMain(
232
- * {
233
- * appWidth: 1920,
234
- * appHeight: 1080
235
- * },
236
- * 'app',
237
- * new MainCoreDriver(),
238
- * );
239
- * ```
240
- */
241
- export declare class RendererMain extends EventEmitter {
242
- readonly root: INode | null;
243
- readonly driver: ICoreDriver;
244
- readonly canvas: HTMLCanvasElement;
245
- readonly settings: Readonly<Required<RendererMainSettings>>;
246
- private inspector;
247
- private nodes;
248
- private nextTextureId;
249
- /**
250
- * Texture Usage Tracker for Usage Based Texture Garbage Collection
251
- *
252
- * @remarks
253
- * For internal use only. DO NOT ACCESS.
254
- */
255
- textureTracker: TextureUsageTracker;
256
- /**
257
- * Constructs a new Renderer instance
258
- *
259
- * @param settings Renderer settings
260
- * @param target Element ID or HTMLElement to insert the canvas into
261
- * @param driver Core Driver to use
262
- */
263
- constructor(settings: RendererMainSettings, target: string | HTMLElement, driver: ICoreDriver);
264
- /**
265
- * Initialize the renderer
266
- *
267
- * @remarks
268
- * This method must be called and resolved asyncronously before any other
269
- * methods are called.
270
- */
271
- init(): Promise<void>;
272
- /**
273
- * Create a new scene graph node
274
- *
275
- * @remarks
276
- * A node is the main graphical building block of the Renderer scene graph. It
277
- * can be a container for other nodes, or it can be a leaf node that renders a
278
- * solid color, gradient, image, or specific texture, using a specific shader.
279
- *
280
- * To create a text node, see {@link createTextNode}.
281
- *
282
- * See {@link INode} for more details.
283
- *
284
- * @param props
285
- * @returns
286
- */
287
- createNode(props: Partial<INodeWritableProps>): INode;
288
- /**
289
- * Create a new scene graph text node
290
- *
291
- * @remarks
292
- * A text node is the second graphical building block of the Renderer scene
293
- * graph. It renders text using a specific text renderer that is automatically
294
- * chosen based on the font requested and what type of fonts are installed
295
- * into an app via a CoreExtension.
296
- *
297
- * See {@link ITextNode} for more details.
298
- *
299
- * @param props
300
- * @returns
301
- */
302
- createTextNode(props: Partial<ITextNodeWritableProps>): ITextNode;
303
- /**
304
- * Resolves the default property values for a Node
305
- *
306
- * @remarks
307
- * This method is used internally by the RendererMain to resolve the default
308
- * property values for a Node. It is exposed publicly so that it can be used
309
- * by Core Driver implementations.
310
- *
311
- * @param props
312
- * @returns
313
- */
314
- resolveNodeDefaults(props: Partial<INodeWritableProps>): INodeWritableProps;
315
- /**
316
- * Destroy a node
317
- *
318
- * @remarks
319
- * This method destroys a node but does not destroy its children.
320
- *
321
- * @param node
322
- * @returns
323
- */
324
- destroyNode(node: INode): void;
325
- /**
326
- * Create a new texture reference
327
- *
328
- * @remarks
329
- * This method creates a new reference to a texture. The texture is not
330
- * loaded until it is used on a node.
331
- *
332
- * It can be assigned to a node's `texture` property, or it can be used
333
- * when creating a SubTexture.
334
- *
335
- * @param textureType
336
- * @param props
337
- * @param options
338
- * @returns
339
- */
340
- createTexture<TxType extends keyof TextureMap>(textureType: TxType, props: SpecificTextureRef<TxType>['props'], options?: TextureOptions): SpecificTextureRef<TxType>;
341
- /**
342
- * Create a new shader reference
343
- *
344
- * @remarks
345
- * This method creates a new reference to a shader. The shader is not
346
- * loaded until it is used on a Node.
347
- *
348
- * It can be assigned to a Node's `shader` property.
349
- *
350
- * @param shaderType
351
- * @param props
352
- * @returns
353
- */
354
- createShader<ShType extends keyof ShaderMap>(shaderType: ShType, props?: SpecificShaderRef<ShType>['props']): IShaderController;
355
- /**
356
- * Get a Node by its ID
357
- *
358
- * @param id
359
- * @returns
360
- */
361
- getNodeById(id: number): INode | null;
362
- toggleFreeze(): void;
363
- advanceFrame(): void;
364
- /**
365
- * Re-render the current frame without advancing any running animations.
366
- *
367
- * @remarks
368
- * Any state changes will be reflected in the re-rendered frame. Useful for
369
- * debugging.
370
- *
371
- * May not do anything if the render loop is running on a separate worker.
372
- */
373
- rerender(): void;
374
- }
375
- export {};