@lightningtv/renderer 3.0.0-beta1 → 3.2.3

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 (497) hide show
  1. package/NOTICE +4 -0
  2. package/README.md +22 -28
  3. package/dist/exports/canvas-shaders.js +0 -16
  4. package/dist/exports/canvas-shaders.js.map +1 -1
  5. package/dist/exports/canvas.d.ts +1 -1
  6. package/dist/exports/canvas.js +1 -19
  7. package/dist/exports/canvas.js.map +1 -1
  8. package/dist/exports/index.d.ts +2 -5
  9. package/dist/exports/index.js +1 -23
  10. package/dist/exports/index.js.map +1 -1
  11. package/dist/exports/inspector.js +0 -18
  12. package/dist/exports/inspector.js.map +1 -1
  13. package/dist/exports/utils.d.ts +2 -1
  14. package/dist/exports/utils.js +2 -19
  15. package/dist/exports/utils.js.map +1 -1
  16. package/dist/exports/webgl-shaders.js +0 -16
  17. package/dist/exports/webgl-shaders.js.map +1 -1
  18. package/dist/exports/webgl.d.ts +2 -1
  19. package/dist/exports/webgl.js +2 -19
  20. package/dist/exports/webgl.js.map +1 -1
  21. package/dist/src/common/CommonTypes.d.ts +15 -3
  22. package/dist/src/common/CommonTypes.js +0 -18
  23. package/dist/src/common/CommonTypes.js.map +1 -1
  24. package/dist/src/common/EventEmitter.js +0 -18
  25. package/dist/src/common/EventEmitter.js.map +1 -1
  26. package/dist/src/common/IEventEmitter.js +0 -16
  27. package/dist/src/common/IEventEmitter.js.map +1 -1
  28. package/dist/src/core/Autosizer.d.ts +35 -0
  29. package/dist/src/core/Autosizer.js +178 -0
  30. package/dist/src/core/Autosizer.js.map +1 -0
  31. package/dist/src/core/CoreNode.d.ts +140 -102
  32. package/dist/src/core/CoreNode.js +812 -528
  33. package/dist/src/core/CoreNode.js.map +1 -1
  34. package/dist/src/core/CoreShaderManager.d.ts +3 -3
  35. package/dist/src/core/CoreShaderManager.js +0 -18
  36. package/dist/src/core/CoreShaderManager.js.map +1 -1
  37. package/dist/src/core/CoreTextNode.d.ts +75 -87
  38. package/dist/src/core/CoreTextNode.js +380 -258
  39. package/dist/src/core/CoreTextNode.js.map +1 -1
  40. package/dist/src/core/CoreTextureManager.d.ts +25 -14
  41. package/dist/src/core/CoreTextureManager.js +82 -139
  42. package/dist/src/core/CoreTextureManager.js.map +1 -1
  43. package/dist/src/core/Stage.d.ts +102 -36
  44. package/dist/src/core/Stage.js +424 -191
  45. package/dist/src/core/Stage.js.map +1 -1
  46. package/dist/src/core/TextureError.d.ts +11 -0
  47. package/dist/src/core/TextureError.js +37 -0
  48. package/dist/src/core/TextureError.js.map +1 -0
  49. package/dist/src/core/TextureMemoryManager.d.ts +11 -4
  50. package/dist/src/core/TextureMemoryManager.js +114 -134
  51. package/dist/src/core/TextureMemoryManager.js.map +1 -1
  52. package/dist/src/core/animations/AnimationManager.js +0 -18
  53. package/dist/src/core/animations/AnimationManager.js.map +1 -1
  54. package/dist/src/core/animations/CoreAnimation.d.ts +3 -3
  55. package/dist/src/core/animations/CoreAnimation.js +8 -24
  56. package/dist/src/core/animations/CoreAnimation.js.map +1 -1
  57. package/dist/src/core/animations/CoreAnimationController.d.ts +1 -0
  58. package/dist/src/core/animations/CoreAnimationController.js +11 -22
  59. package/dist/src/core/animations/CoreAnimationController.js.map +1 -1
  60. package/dist/src/core/lib/ContextSpy.js +0 -18
  61. package/dist/src/core/lib/ContextSpy.js.map +1 -1
  62. package/dist/src/core/lib/ImageWorker.d.ts +2 -2
  63. package/dist/src/core/lib/ImageWorker.js +33 -31
  64. package/dist/src/core/lib/ImageWorker.js.map +1 -1
  65. package/dist/src/core/lib/Matrix3d.d.ts +1 -0
  66. package/dist/src/core/lib/Matrix3d.js +7 -19
  67. package/dist/src/core/lib/Matrix3d.js.map +1 -1
  68. package/dist/src/core/lib/RenderCoords.d.ts +9 -10
  69. package/dist/src/core/lib/RenderCoords.js +27 -55
  70. package/dist/src/core/lib/RenderCoords.js.map +1 -1
  71. package/dist/src/core/lib/WebGlContextWrapper.d.ts +83 -8
  72. package/dist/src/core/lib/WebGlContextWrapper.js +150 -25
  73. package/dist/src/core/lib/WebGlContextWrapper.js.map +1 -1
  74. package/dist/src/core/lib/collectionUtils.d.ts +5 -0
  75. package/dist/src/core/lib/collectionUtils.js +82 -0
  76. package/dist/src/core/lib/collectionUtils.js.map +1 -0
  77. package/dist/src/core/lib/colorCache.d.ts +1 -0
  78. package/dist/src/core/lib/colorCache.js +19 -0
  79. package/dist/src/core/lib/colorCache.js.map +1 -0
  80. package/dist/src/core/{renderers/canvas/internal/ColorUtils.js → lib/colorParser.js} +1 -19
  81. package/dist/src/core/lib/colorParser.js.map +1 -0
  82. package/dist/src/core/lib/textureCompression.d.ts +14 -2
  83. package/dist/src/core/lib/textureCompression.js +320 -85
  84. package/dist/src/core/lib/textureCompression.js.map +1 -1
  85. package/dist/src/core/lib/textureSvg.js +0 -18
  86. package/dist/src/core/lib/textureSvg.js.map +1 -1
  87. package/dist/src/core/lib/utils.d.ts +8 -1
  88. package/dist/src/core/lib/utils.js +44 -20
  89. package/dist/src/core/lib/utils.js.map +1 -1
  90. package/dist/src/core/lib/validateImageBitmap.d.ts +2 -1
  91. package/dist/src/core/lib/validateImageBitmap.js +4 -4
  92. package/dist/src/core/lib/validateImageBitmap.js.map +1 -1
  93. package/dist/src/core/platforms/Platform.d.ts +42 -0
  94. package/dist/src/core/platforms/Platform.js +4 -0
  95. package/dist/src/core/platforms/Platform.js.map +1 -0
  96. package/dist/src/core/platforms/web/WebPlatform.d.ts +10 -0
  97. package/dist/src/core/platforms/web/WebPlatform.js +90 -0
  98. package/dist/src/core/platforms/web/WebPlatform.js.map +1 -0
  99. package/dist/src/core/renderers/CoreContextTexture.d.ts +2 -1
  100. package/dist/src/core/renderers/CoreContextTexture.js +0 -18
  101. package/dist/src/core/renderers/CoreContextTexture.js.map +1 -1
  102. package/dist/src/core/renderers/CoreRenderOp.js +0 -18
  103. package/dist/src/core/renderers/CoreRenderOp.js.map +1 -1
  104. package/dist/src/core/renderers/CoreRenderer.d.ts +15 -3
  105. package/dist/src/core/renderers/CoreRenderer.js +1 -18
  106. package/dist/src/core/renderers/CoreRenderer.js.map +1 -1
  107. package/dist/src/core/renderers/CoreShaderNode.d.ts +13 -3
  108. package/dist/src/core/renderers/CoreShaderNode.js +25 -2
  109. package/dist/src/core/renderers/CoreShaderNode.js.map +1 -1
  110. package/dist/src/core/renderers/CoreShaderProgram.js +0 -18
  111. package/dist/src/core/renderers/CoreShaderProgram.js.map +1 -1
  112. package/dist/src/core/renderers/canvas/CanvasRenderer.d.ts +4 -5
  113. package/dist/src/core/renderers/canvas/CanvasRenderer.js +89 -83
  114. package/dist/src/core/renderers/canvas/CanvasRenderer.js.map +1 -1
  115. package/dist/src/core/renderers/canvas/CanvasShaderNode.js +3 -21
  116. package/dist/src/core/renderers/canvas/CanvasShaderNode.js.map +1 -1
  117. package/dist/src/core/renderers/canvas/CanvasTexture.d.ts +3 -2
  118. package/dist/src/core/renderers/canvas/CanvasTexture.js +18 -31
  119. package/dist/src/core/renderers/canvas/CanvasTexture.js.map +1 -1
  120. package/dist/src/core/renderers/webgl/SdfRenderOp.d.ts +33 -0
  121. package/dist/src/core/renderers/webgl/SdfRenderOp.js +80 -0
  122. package/dist/src/core/renderers/webgl/SdfRenderOp.js.map +1 -0
  123. package/dist/src/core/renderers/webgl/WebGlCtxRenderTexture.d.ts +2 -0
  124. package/dist/src/core/renderers/webgl/WebGlCtxRenderTexture.js +14 -24
  125. package/dist/src/core/renderers/webgl/WebGlCtxRenderTexture.js.map +1 -1
  126. package/dist/src/core/renderers/webgl/WebGlCtxSubTexture.d.ts +13 -0
  127. package/dist/src/core/renderers/webgl/WebGlCtxSubTexture.js +34 -23
  128. package/dist/src/core/renderers/webgl/WebGlCtxSubTexture.js.map +1 -1
  129. package/dist/src/core/renderers/webgl/WebGlCtxTexture.d.ts +16 -6
  130. package/dist/src/core/renderers/webgl/WebGlCtxTexture.js +102 -70
  131. package/dist/src/core/renderers/webgl/WebGlCtxTexture.js.map +1 -1
  132. package/dist/src/core/renderers/webgl/WebGlRenderer.d.ts +34 -20
  133. package/dist/src/core/renderers/webgl/WebGlRenderer.js +319 -195
  134. package/dist/src/core/renderers/webgl/WebGlRenderer.js.map +1 -1
  135. package/dist/src/core/renderers/webgl/WebGlShaderNode.d.ts +2 -3
  136. package/dist/src/core/renderers/webgl/WebGlShaderNode.js +1 -4
  137. package/dist/src/core/renderers/webgl/WebGlShaderNode.js.map +1 -1
  138. package/dist/src/core/renderers/webgl/WebGlShaderProgram.d.ts +9 -7
  139. package/dist/src/core/renderers/webgl/WebGlShaderProgram.js +99 -48
  140. package/dist/src/core/renderers/webgl/WebGlShaderProgram.js.map +1 -1
  141. package/dist/src/core/renderers/webgl/internal/BufferCollection.d.ts +1 -0
  142. package/dist/src/core/renderers/webgl/internal/BufferCollection.js +12 -21
  143. package/dist/src/core/renderers/webgl/internal/BufferCollection.js.map +1 -1
  144. package/dist/src/core/renderers/webgl/internal/RendererUtils.js +0 -18
  145. package/dist/src/core/renderers/webgl/internal/RendererUtils.js.map +1 -1
  146. package/dist/src/core/renderers/webgl/internal/ShaderUtils.js +0 -18
  147. package/dist/src/core/renderers/webgl/internal/ShaderUtils.js.map +1 -1
  148. package/dist/src/core/renderers/webgl/internal/WebGlUtils.js +0 -18
  149. package/dist/src/core/renderers/webgl/internal/WebGlUtils.js.map +1 -1
  150. package/dist/src/core/shaders/canvas/Border.d.ts +8 -2
  151. package/dist/src/core/shaders/canvas/Border.js +67 -41
  152. package/dist/src/core/shaders/canvas/Border.js.map +1 -1
  153. package/dist/src/core/shaders/canvas/HolePunch.js +3 -19
  154. package/dist/src/core/shaders/canvas/HolePunch.js.map +1 -1
  155. package/dist/src/core/shaders/canvas/LinearGradient.js +7 -21
  156. package/dist/src/core/shaders/canvas/LinearGradient.js.map +1 -1
  157. package/dist/src/core/shaders/canvas/RadialGradient.js +14 -28
  158. package/dist/src/core/shaders/canvas/RadialGradient.js.map +1 -1
  159. package/dist/src/core/shaders/canvas/Rounded.js +1 -17
  160. package/dist/src/core/shaders/canvas/Rounded.js.map +1 -1
  161. package/dist/src/core/shaders/canvas/RoundedWithBorder.d.ts +6 -3
  162. package/dist/src/core/shaders/canvas/RoundedWithBorder.js +44 -22
  163. package/dist/src/core/shaders/canvas/RoundedWithBorder.js.map +1 -1
  164. package/dist/src/core/shaders/canvas/RoundedWithBorderAndShadow.d.ts +2 -3
  165. package/dist/src/core/shaders/canvas/RoundedWithBorderAndShadow.js +47 -25
  166. package/dist/src/core/shaders/canvas/RoundedWithBorderAndShadow.js.map +1 -1
  167. package/dist/src/core/shaders/canvas/RoundedWithShadow.js +9 -21
  168. package/dist/src/core/shaders/canvas/RoundedWithShadow.js.map +1 -1
  169. package/dist/src/core/shaders/canvas/Shadow.js +0 -16
  170. package/dist/src/core/shaders/canvas/Shadow.js.map +1 -1
  171. package/dist/src/core/shaders/canvas/utils/render.d.ts +1 -1
  172. package/dist/src/core/shaders/canvas/utils/render.js +31 -34
  173. package/dist/src/core/shaders/canvas/utils/render.js.map +1 -1
  174. package/dist/src/core/shaders/templates/BorderTemplate.d.ts +12 -2
  175. package/dist/src/core/shaders/templates/BorderTemplate.js +31 -27
  176. package/dist/src/core/shaders/templates/BorderTemplate.js.map +1 -1
  177. package/dist/src/core/shaders/templates/HolePunchTemplate.d.ts +2 -2
  178. package/dist/src/core/shaders/templates/HolePunchTemplate.js +3 -19
  179. package/dist/src/core/shaders/templates/HolePunchTemplate.js.map +1 -1
  180. package/dist/src/core/shaders/templates/LinearGradientTemplate.js +0 -16
  181. package/dist/src/core/shaders/templates/LinearGradientTemplate.js.map +1 -1
  182. package/dist/src/core/shaders/templates/RadialGradientTemplate.d.ts +8 -6
  183. package/dist/src/core/shaders/templates/RadialGradientTemplate.js +2 -18
  184. package/dist/src/core/shaders/templates/RadialGradientTemplate.js.map +1 -1
  185. package/dist/src/core/shaders/templates/RoundedTemplate.js +1 -17
  186. package/dist/src/core/shaders/templates/RoundedTemplate.js.map +1 -1
  187. package/dist/src/core/shaders/templates/RoundedWithBorderAndShadowTemplate.d.ts +1 -1
  188. package/dist/src/core/shaders/templates/RoundedWithBorderAndShadowTemplate.js +0 -16
  189. package/dist/src/core/shaders/templates/RoundedWithBorderAndShadowTemplate.js.map +1 -1
  190. package/dist/src/core/shaders/templates/RoundedWithBorderTemplate.d.ts +4 -2
  191. package/dist/src/core/shaders/templates/RoundedWithBorderTemplate.js +3 -17
  192. package/dist/src/core/shaders/templates/RoundedWithBorderTemplate.js.map +1 -1
  193. package/dist/src/core/shaders/templates/RoundedWithShadowTemplate.d.ts +1 -1
  194. package/dist/src/core/shaders/templates/RoundedWithShadowTemplate.js +0 -16
  195. package/dist/src/core/shaders/templates/RoundedWithShadowTemplate.js.map +1 -1
  196. package/dist/src/core/shaders/templates/ShadowTemplate.d.ts +1 -1
  197. package/dist/src/core/shaders/templates/ShadowTemplate.js +0 -16
  198. package/dist/src/core/shaders/templates/ShadowTemplate.js.map +1 -1
  199. package/dist/src/core/shaders/{templates/shaderUtils.d.ts → utils.d.ts} +1 -1
  200. package/dist/src/core/shaders/utils.js +25 -0
  201. package/dist/src/core/shaders/utils.js.map +1 -0
  202. package/dist/src/core/shaders/webgl/Border.js +118 -51
  203. package/dist/src/core/shaders/webgl/Border.js.map +1 -1
  204. package/dist/src/core/shaders/webgl/Default.js +6 -41
  205. package/dist/src/core/shaders/webgl/Default.js.map +1 -1
  206. package/dist/src/core/shaders/webgl/HolePunch.js +4 -19
  207. package/dist/src/core/shaders/webgl/HolePunch.js.map +1 -1
  208. package/dist/src/core/shaders/webgl/LinearGradient.js +73 -34
  209. package/dist/src/core/shaders/webgl/LinearGradient.js.map +1 -1
  210. package/dist/src/core/shaders/webgl/RadialGradient.js +56 -48
  211. package/dist/src/core/shaders/webgl/RadialGradient.js.map +1 -1
  212. package/dist/src/core/shaders/webgl/Rounded.js +25 -23
  213. package/dist/src/core/shaders/webgl/Rounded.js.map +1 -1
  214. package/dist/src/core/shaders/webgl/RoundedWithBorder.js +160 -55
  215. package/dist/src/core/shaders/webgl/RoundedWithBorder.js.map +1 -1
  216. package/dist/src/core/shaders/webgl/RoundedWithBorderAndShadow.js +168 -58
  217. package/dist/src/core/shaders/webgl/RoundedWithBorderAndShadow.js.map +1 -1
  218. package/dist/src/core/shaders/webgl/RoundedWithShadow.js +73 -34
  219. package/dist/src/core/shaders/webgl/RoundedWithShadow.js.map +1 -1
  220. package/dist/src/core/shaders/webgl/SdfShader.d.ts +0 -2
  221. package/dist/src/core/shaders/webgl/SdfShader.js +8 -36
  222. package/dist/src/core/shaders/webgl/SdfShader.js.map +1 -1
  223. package/dist/src/core/shaders/webgl/Shadow.js +39 -34
  224. package/dist/src/core/shaders/webgl/Shadow.js.map +1 -1
  225. package/dist/src/core/text-rendering/CanvasFontHandler.d.ts +59 -0
  226. package/dist/src/core/text-rendering/CanvasFontHandler.js +206 -0
  227. package/dist/src/core/text-rendering/CanvasFontHandler.js.map +1 -0
  228. package/dist/src/core/text-rendering/CanvasTextRenderer.d.ts +17 -0
  229. package/dist/src/core/text-rendering/CanvasTextRenderer.js +139 -0
  230. package/dist/src/core/text-rendering/CanvasTextRenderer.js.map +1 -0
  231. package/dist/src/core/text-rendering/SdfFontHandler.d.ts +167 -0
  232. package/dist/src/core/text-rendering/SdfFontHandler.js +371 -0
  233. package/dist/src/core/text-rendering/SdfFontHandler.js.map +1 -0
  234. package/dist/src/core/text-rendering/SdfTextRenderer.d.ts +18 -0
  235. package/dist/src/core/text-rendering/SdfTextRenderer.js +301 -0
  236. package/dist/src/core/text-rendering/SdfTextRenderer.js.map +1 -0
  237. package/dist/src/core/text-rendering/TextLayoutEngine.d.ts +18 -0
  238. package/dist/src/core/text-rendering/TextLayoutEngine.js +380 -0
  239. package/dist/src/core/text-rendering/TextLayoutEngine.js.map +1 -0
  240. package/dist/src/core/text-rendering/TextRenderer.d.ts +384 -0
  241. package/dist/src/core/text-rendering/TextRenderer.js +2 -0
  242. package/dist/src/core/text-rendering/TextRenderer.js.map +1 -0
  243. package/dist/src/core/text-rendering/Utils.d.ts +30 -0
  244. package/dist/src/core/text-rendering/Utils.js +66 -0
  245. package/dist/src/core/text-rendering/Utils.js.map +1 -0
  246. package/dist/src/core/textures/ColorTexture.d.ts +1 -1
  247. package/dist/src/core/textures/ColorTexture.js +3 -22
  248. package/dist/src/core/textures/ColorTexture.js.map +1 -1
  249. package/dist/src/core/textures/ImageTexture.d.ts +13 -6
  250. package/dist/src/core/textures/ImageTexture.js +57 -66
  251. package/dist/src/core/textures/ImageTexture.js.map +1 -1
  252. package/dist/src/core/textures/NoiseTexture.d.ts +3 -3
  253. package/dist/src/core/textures/NoiseTexture.js +8 -26
  254. package/dist/src/core/textures/NoiseTexture.js.map +1 -1
  255. package/dist/src/core/textures/RenderTexture.d.ts +7 -7
  256. package/dist/src/core/textures/RenderTexture.js +12 -30
  257. package/dist/src/core/textures/RenderTexture.js.map +1 -1
  258. package/dist/src/core/textures/SubTexture.d.ts +6 -8
  259. package/dist/src/core/textures/SubTexture.js +19 -55
  260. package/dist/src/core/textures/SubTexture.js.map +1 -1
  261. package/dist/src/core/textures/Texture.d.ts +90 -12
  262. package/dist/src/core/textures/Texture.js +160 -35
  263. package/dist/src/core/textures/Texture.js.map +1 -1
  264. package/dist/src/core/utils.d.ts +2 -1
  265. package/dist/src/core/utils.js +1 -19
  266. package/dist/src/core/utils.js.map +1 -1
  267. package/dist/src/main-api/INode.js.map +1 -1
  268. package/dist/src/main-api/Inspector.d.ts +135 -2
  269. package/dist/src/main-api/Inspector.js +507 -30
  270. package/dist/src/main-api/Inspector.js.map +1 -1
  271. package/dist/src/main-api/Renderer.d.ts +294 -81
  272. package/dist/src/main-api/Renderer.js +225 -96
  273. package/dist/src/main-api/Renderer.js.map +1 -1
  274. package/dist/src/utils.d.ts +19 -6
  275. package/dist/src/utils.js +32 -27
  276. package/dist/src/utils.js.map +1 -1
  277. package/dist/tsconfig.dist.tsbuildinfo +1 -1
  278. package/dist/tsconfig.tsbuildinfo +1 -0
  279. package/exports/canvas-shaders.ts +0 -17
  280. package/exports/canvas.ts +1 -19
  281. package/exports/index.ts +6 -27
  282. package/exports/inspector.ts +0 -19
  283. package/exports/utils.ts +7 -19
  284. package/exports/webgl-shaders.ts +0 -16
  285. package/exports/webgl.ts +3 -20
  286. package/package.json +23 -22
  287. package/src/common/CommonTypes.ts +20 -22
  288. package/src/common/EventEmitter.ts +0 -19
  289. package/src/common/IAnimationController.ts +0 -18
  290. package/src/common/IEventEmitter.ts +0 -17
  291. package/src/core/Autosizer.ts +205 -0
  292. package/src/core/CoreNode.test.ts +376 -45
  293. package/src/core/CoreNode.ts +1015 -656
  294. package/src/core/CoreShaderManager.ts +3 -21
  295. package/src/core/CoreTextNode.ts +457 -314
  296. package/src/core/CoreTextureManager.ts +110 -167
  297. package/src/core/Stage.ts +526 -236
  298. package/src/core/TextureError.ts +46 -0
  299. package/src/core/TextureMemoryManager.ts +150 -167
  300. package/src/core/animations/AnimationManager.ts +0 -19
  301. package/src/core/animations/CoreAnimation.ts +15 -32
  302. package/src/core/animations/CoreAnimationController.ts +13 -23
  303. package/src/core/lib/ContextSpy.ts +0 -19
  304. package/src/core/lib/ImageWorker.ts +45 -32
  305. package/src/core/lib/Matrix3d.ts +7 -20
  306. package/src/core/lib/RenderCoords.ts +36 -67
  307. package/src/core/lib/WebGlContextWrapper.ts +196 -72
  308. package/src/core/lib/collectionUtils.ts +99 -0
  309. package/src/core/lib/colorCache.ts +20 -0
  310. package/src/core/{renderers/canvas/internal/ColorUtils.ts → lib/colorParser.ts} +2 -21
  311. package/src/core/lib/textureCompression.ts +433 -93
  312. package/src/core/lib/textureSvg.ts +0 -19
  313. package/src/core/lib/utils.ts +58 -19
  314. package/src/core/lib/validateImageBitmap.ts +17 -6
  315. package/src/core/platforms/Platform.ts +64 -0
  316. package/src/core/platforms/web/WebPlatform.ts +132 -0
  317. package/src/core/renderers/CoreContextTexture.ts +2 -20
  318. package/src/core/renderers/CoreRenderOp.ts +0 -19
  319. package/src/core/renderers/CoreRenderer.ts +16 -23
  320. package/src/core/renderers/CoreShaderNode.ts +37 -6
  321. package/src/core/renderers/CoreShaderProgram.ts +0 -19
  322. package/src/core/renderers/canvas/CanvasRenderer.ts +108 -137
  323. package/src/core/renderers/canvas/CanvasShaderNode.ts +3 -23
  324. package/src/core/renderers/canvas/CanvasTexture.ts +25 -37
  325. package/src/core/renderers/webgl/SdfRenderOp.ts +88 -0
  326. package/src/core/renderers/webgl/WebGlCtxRenderTexture.ts +18 -34
  327. package/src/core/renderers/webgl/WebGlCtxSubTexture.ts +50 -24
  328. package/src/core/renderers/webgl/WebGlCtxTexture.ts +134 -103
  329. package/src/core/renderers/webgl/WebGlRenderer.ts +368 -233
  330. package/src/core/renderers/webgl/WebGlShaderNode.ts +4 -7
  331. package/src/core/renderers/webgl/WebGlShaderProgram.ts +122 -76
  332. package/src/core/renderers/webgl/internal/BufferCollection.ts +15 -23
  333. package/src/core/renderers/webgl/internal/RendererUtils.ts +0 -19
  334. package/src/core/renderers/webgl/internal/ShaderUtils.ts +0 -19
  335. package/src/core/renderers/webgl/internal/WebGlUtils.ts +0 -19
  336. package/src/core/shaders/canvas/Border.ts +91 -50
  337. package/src/core/shaders/canvas/HolePunch.ts +4 -28
  338. package/src/core/shaders/canvas/LinearGradient.ts +10 -25
  339. package/src/core/shaders/canvas/RadialGradient.ts +23 -54
  340. package/src/core/shaders/canvas/Rounded.ts +2 -19
  341. package/src/core/shaders/canvas/RoundedWithBorder.ts +72 -35
  342. package/src/core/shaders/canvas/RoundedWithBorderAndShadow.ts +77 -47
  343. package/src/core/shaders/canvas/RoundedWithShadow.ts +21 -34
  344. package/src/core/shaders/canvas/Shadow.ts +0 -17
  345. package/src/core/shaders/canvas/utils/render.ts +45 -53
  346. package/src/core/shaders/templates/BorderTemplate.ts +42 -29
  347. package/src/core/shaders/templates/HolePunchTemplate.ts +5 -22
  348. package/src/core/shaders/templates/LinearGradientTemplate.ts +0 -17
  349. package/src/core/shaders/templates/RadialGradientTemplate.ts +10 -25
  350. package/src/core/shaders/templates/RoundedTemplate.ts +1 -18
  351. package/src/core/shaders/templates/RoundedWithBorderAndShadowTemplate.ts +1 -18
  352. package/src/core/shaders/templates/RoundedWithBorderTemplate.ts +7 -19
  353. package/src/core/shaders/templates/RoundedWithShadowTemplate.ts +1 -18
  354. package/src/core/shaders/templates/ShadowTemplate.ts +1 -18
  355. package/src/core/shaders/utils.ts +30 -0
  356. package/src/core/shaders/webgl/Border.ts +118 -55
  357. package/src/core/shaders/webgl/Default.ts +6 -43
  358. package/src/core/shaders/webgl/HolePunch.ts +4 -24
  359. package/src/core/shaders/webgl/LinearGradient.ts +73 -35
  360. package/src/core/shaders/webgl/RadialGradient.ts +58 -51
  361. package/src/core/shaders/webgl/Rounded.ts +25 -45
  362. package/src/core/shaders/webgl/RoundedWithBorder.ts +161 -63
  363. package/src/core/shaders/webgl/RoundedWithBorderAndShadow.ts +169 -68
  364. package/src/core/shaders/webgl/RoundedWithShadow.ts +73 -39
  365. package/src/core/shaders/webgl/SdfShader.ts +8 -41
  366. package/src/core/shaders/webgl/Shadow.ts +39 -35
  367. package/src/core/text-rendering/CanvasFontHandler.ts +285 -0
  368. package/src/core/text-rendering/CanvasTextRenderer.ts +236 -0
  369. package/src/core/text-rendering/SdfFontHandler.ts +566 -0
  370. package/src/core/text-rendering/SdfTextRenderer.ts +406 -0
  371. package/src/core/text-rendering/TextLayoutEngine.ts +672 -0
  372. package/src/core/text-rendering/TextRenderer.ts +426 -0
  373. package/src/core/text-rendering/Utils.ts +80 -0
  374. package/src/core/text-rendering/tests/TextLayoutEngine.test.ts +434 -0
  375. package/src/core/textures/ColorTexture.ts +7 -24
  376. package/src/core/textures/ImageTexture.ts +110 -92
  377. package/src/core/textures/NoiseTexture.ts +14 -31
  378. package/src/core/textures/RenderTexture.ts +18 -35
  379. package/src/core/textures/SubTexture.ts +25 -65
  380. package/src/core/textures/Texture.ts +214 -46
  381. package/src/core/utils.ts +9 -26
  382. package/src/main-api/INode.ts +0 -18
  383. package/src/main-api/Inspector.ts +794 -38
  384. package/src/main-api/Renderer.ts +519 -159
  385. package/src/utils.ts +64 -29
  386. package/dist/src/core/platform.d.ts +0 -10
  387. package/dist/src/core/platform.js +0 -56
  388. package/dist/src/core/platform.js.map +0 -1
  389. package/dist/src/core/renderers/canvas/internal/C2DShaderUtils.d.ts +0 -1
  390. package/dist/src/core/renderers/canvas/internal/C2DShaderUtils.js +0 -217
  391. package/dist/src/core/renderers/canvas/internal/C2DShaderUtils.js.map +0 -1
  392. package/dist/src/core/renderers/canvas/internal/ColorUtils.js.map +0 -1
  393. package/dist/src/core/renderers/webgl/WebGlRenderOp.d.ts +0 -36
  394. package/dist/src/core/renderers/webgl/WebGlRenderOp.js +0 -107
  395. package/dist/src/core/renderers/webgl/WebGlRenderOp.js.map +0 -1
  396. package/dist/src/core/shaders/templates/shaderUtils.js +0 -41
  397. package/dist/src/core/shaders/templates/shaderUtils.js.map +0 -1
  398. package/dist/src/core/text-rendering/TextRenderingUtils.d.ts +0 -12
  399. package/dist/src/core/text-rendering/TextRenderingUtils.js +0 -14
  400. package/dist/src/core/text-rendering/TextRenderingUtils.js.map +0 -1
  401. package/dist/src/core/text-rendering/TextTextureRendererUtils.d.ts +0 -72
  402. package/dist/src/core/text-rendering/TextTextureRendererUtils.js +0 -217
  403. package/dist/src/core/text-rendering/TextTextureRendererUtils.js.map +0 -1
  404. package/dist/src/core/text-rendering/TrFontManager.d.ts +0 -26
  405. package/dist/src/core/text-rendering/TrFontManager.js +0 -131
  406. package/dist/src/core/text-rendering/TrFontManager.js.map +0 -1
  407. package/dist/src/core/text-rendering/font-face-types/SdfTrFontFace/SdfTrFontFace.d.ts +0 -39
  408. package/dist/src/core/text-rendering/font-face-types/SdfTrFontFace/SdfTrFontFace.js +0 -125
  409. package/dist/src/core/text-rendering/font-face-types/SdfTrFontFace/SdfTrFontFace.js.map +0 -1
  410. package/dist/src/core/text-rendering/font-face-types/SdfTrFontFace/internal/FontShaper.d.ts +0 -103
  411. package/dist/src/core/text-rendering/font-face-types/SdfTrFontFace/internal/FontShaper.js +0 -21
  412. package/dist/src/core/text-rendering/font-face-types/SdfTrFontFace/internal/FontShaper.js.map +0 -1
  413. package/dist/src/core/text-rendering/font-face-types/SdfTrFontFace/internal/SdfFontShaper.d.ts +0 -62
  414. package/dist/src/core/text-rendering/font-face-types/SdfTrFontFace/internal/SdfFontShaper.js +0 -88
  415. package/dist/src/core/text-rendering/font-face-types/SdfTrFontFace/internal/SdfFontShaper.js.map +0 -1
  416. package/dist/src/core/text-rendering/font-face-types/TrFontFace.d.ts +0 -118
  417. package/dist/src/core/text-rendering/font-face-types/TrFontFace.js +0 -63
  418. package/dist/src/core/text-rendering/font-face-types/TrFontFace.js.map +0 -1
  419. package/dist/src/core/text-rendering/font-face-types/WebTrFontFace.d.ts +0 -14
  420. package/dist/src/core/text-rendering/font-face-types/WebTrFontFace.js +0 -66
  421. package/dist/src/core/text-rendering/font-face-types/WebTrFontFace.js.map +0 -1
  422. package/dist/src/core/text-rendering/font-face-types/utils.d.ts +0 -1
  423. package/dist/src/core/text-rendering/font-face-types/utils.js +0 -38
  424. package/dist/src/core/text-rendering/font-face-types/utils.js.map +0 -1
  425. package/dist/src/core/text-rendering/renderers/CanvasTextRenderer.d.ts +0 -59
  426. package/dist/src/core/text-rendering/renderers/CanvasTextRenderer.js +0 -397
  427. package/dist/src/core/text-rendering/renderers/CanvasTextRenderer.js.map +0 -1
  428. package/dist/src/core/text-rendering/renderers/LightningTextTextureRenderer.d.ts +0 -126
  429. package/dist/src/core/text-rendering/renderers/LightningTextTextureRenderer.js +0 -551
  430. package/dist/src/core/text-rendering/renderers/LightningTextTextureRenderer.js.map +0 -1
  431. package/dist/src/core/text-rendering/renderers/SdfTextRenderer/SdfTextRenderer.d.ts +0 -91
  432. package/dist/src/core/text-rendering/renderers/SdfTextRenderer/SdfTextRenderer.js +0 -611
  433. package/dist/src/core/text-rendering/renderers/SdfTextRenderer/SdfTextRenderer.js.map +0 -1
  434. package/dist/src/core/text-rendering/renderers/SdfTextRenderer/internal/PeekableGenerator.d.ts +0 -12
  435. package/dist/src/core/text-rendering/renderers/SdfTextRenderer/internal/PeekableGenerator.js +0 -61
  436. package/dist/src/core/text-rendering/renderers/SdfTextRenderer/internal/PeekableGenerator.js.map +0 -1
  437. package/dist/src/core/text-rendering/renderers/SdfTextRenderer/internal/SpecialCodepoints.d.ts +0 -33
  438. package/dist/src/core/text-rendering/renderers/SdfTextRenderer/internal/SpecialCodepoints.js +0 -52
  439. package/dist/src/core/text-rendering/renderers/SdfTextRenderer/internal/SpecialCodepoints.js.map +0 -1
  440. package/dist/src/core/text-rendering/renderers/SdfTextRenderer/internal/constants.d.ts +0 -13
  441. package/dist/src/core/text-rendering/renderers/SdfTextRenderer/internal/constants.js +0 -32
  442. package/dist/src/core/text-rendering/renderers/SdfTextRenderer/internal/constants.js.map +0 -1
  443. package/dist/src/core/text-rendering/renderers/SdfTextRenderer/internal/getStartConditions.d.ts +0 -23
  444. package/dist/src/core/text-rendering/renderers/SdfTextRenderer/internal/getStartConditions.js +0 -84
  445. package/dist/src/core/text-rendering/renderers/SdfTextRenderer/internal/getStartConditions.js.map +0 -1
  446. package/dist/src/core/text-rendering/renderers/SdfTextRenderer/internal/getUnicodeCodepoints.d.ts +0 -4
  447. package/dist/src/core/text-rendering/renderers/SdfTextRenderer/internal/getUnicodeCodepoints.js +0 -34
  448. package/dist/src/core/text-rendering/renderers/SdfTextRenderer/internal/getUnicodeCodepoints.js.map +0 -1
  449. package/dist/src/core/text-rendering/renderers/SdfTextRenderer/internal/layoutText.d.ts +0 -20
  450. package/dist/src/core/text-rendering/renderers/SdfTextRenderer/internal/layoutText.js +0 -308
  451. package/dist/src/core/text-rendering/renderers/SdfTextRenderer/internal/layoutText.js.map +0 -1
  452. package/dist/src/core/text-rendering/renderers/SdfTextRenderer/internal/measureText.d.ts +0 -10
  453. package/dist/src/core/text-rendering/renderers/SdfTextRenderer/internal/measureText.js +0 -40
  454. package/dist/src/core/text-rendering/renderers/SdfTextRenderer/internal/measureText.js.map +0 -1
  455. package/dist/src/core/text-rendering/renderers/SdfTextRenderer/internal/setRenderWindow.d.ts +0 -26
  456. package/dist/src/core/text-rendering/renderers/SdfTextRenderer/internal/setRenderWindow.js +0 -70
  457. package/dist/src/core/text-rendering/renderers/SdfTextRenderer/internal/setRenderWindow.js.map +0 -1
  458. package/dist/src/core/text-rendering/renderers/SdfTextRenderer/internal/util.d.ts +0 -16
  459. package/dist/src/core/text-rendering/renderers/SdfTextRenderer/internal/util.js +0 -39
  460. package/dist/src/core/text-rendering/renderers/SdfTextRenderer/internal/util.js.map +0 -1
  461. package/dist/src/core/text-rendering/renderers/TextRenderer.d.ts +0 -370
  462. package/dist/src/core/text-rendering/renderers/TextRenderer.js +0 -178
  463. package/dist/src/core/text-rendering/renderers/TextRenderer.js.map +0 -1
  464. package/scripts/please-use-pnpm.js +0 -13
  465. package/src/core/platform.ts +0 -64
  466. package/src/core/renderers/canvas/internal/C2DShaderUtils.ts +0 -220
  467. package/src/core/renderers/webgl/WebGlRenderOp.ts +0 -145
  468. package/src/core/shaders/templates/shaderUtils.ts +0 -47
  469. package/src/core/shaders/webgl/DefaultBatched.ts +0 -129
  470. package/src/core/text-rendering/TextRenderingUtils.ts +0 -36
  471. package/src/core/text-rendering/TextTextureRendererUtils.ts +0 -263
  472. package/src/core/text-rendering/TrFontManager.ts +0 -183
  473. package/src/core/text-rendering/font-face-types/SdfTrFontFace/SdfTrFontFace.ts +0 -176
  474. package/src/core/text-rendering/font-face-types/SdfTrFontFace/internal/FontShaper.ts +0 -139
  475. package/src/core/text-rendering/font-face-types/SdfTrFontFace/internal/SdfFontShaper.test.ts +0 -173
  476. package/src/core/text-rendering/font-face-types/SdfTrFontFace/internal/SdfFontShaper.ts +0 -171
  477. package/src/core/text-rendering/font-face-types/TrFontFace.ts +0 -187
  478. package/src/core/text-rendering/font-face-types/WebTrFontFace.ts +0 -94
  479. package/src/core/text-rendering/font-face-types/utils.ts +0 -39
  480. package/src/core/text-rendering/renderers/CanvasTextRenderer.ts +0 -509
  481. package/src/core/text-rendering/renderers/LightningTextTextureRenderer.ts +0 -815
  482. package/src/core/text-rendering/renderers/SdfTextRenderer/SdfTextRenderer.ts +0 -841
  483. package/src/core/text-rendering/renderers/SdfTextRenderer/internal/PeekableGenerator.test.ts +0 -48
  484. package/src/core/text-rendering/renderers/SdfTextRenderer/internal/PeekableGenerator.ts +0 -66
  485. package/src/core/text-rendering/renderers/SdfTextRenderer/internal/SpecialCodepoints.ts +0 -52
  486. package/src/core/text-rendering/renderers/SdfTextRenderer/internal/constants.ts +0 -32
  487. package/src/core/text-rendering/renderers/SdfTextRenderer/internal/getStartConditions.ts +0 -117
  488. package/src/core/text-rendering/renderers/SdfTextRenderer/internal/getUnicodeCodepoints.test.ts +0 -133
  489. package/src/core/text-rendering/renderers/SdfTextRenderer/internal/getUnicodeCodepoints.ts +0 -38
  490. package/src/core/text-rendering/renderers/SdfTextRenderer/internal/layoutText.ts +0 -408
  491. package/src/core/text-rendering/renderers/SdfTextRenderer/internal/measureText.test.ts +0 -49
  492. package/src/core/text-rendering/renderers/SdfTextRenderer/internal/measureText.ts +0 -52
  493. package/src/core/text-rendering/renderers/SdfTextRenderer/internal/setRenderWindow.test.ts +0 -205
  494. package/src/core/text-rendering/renderers/SdfTextRenderer/internal/setRenderWindow.ts +0 -93
  495. package/src/core/text-rendering/renderers/SdfTextRenderer/internal/util.ts +0 -40
  496. package/src/core/text-rendering/renderers/TextRenderer.ts +0 -550
  497. /package/dist/src/core/{renderers/canvas/internal/ColorUtils.d.ts → lib/colorParser.d.ts} +0 -0
@@ -0,0 +1,178 @@
1
+ import { UpdateType } from './CoreNode.js';
2
+ export var AutosizeMode;
3
+ (function (AutosizeMode) {
4
+ AutosizeMode[AutosizeMode["Children"] = 0] = "Children";
5
+ AutosizeMode[AutosizeMode["Texture"] = 1] = "Texture";
6
+ })(AutosizeMode || (AutosizeMode = {}));
7
+ export var AutosizeUpdateType;
8
+ (function (AutosizeUpdateType) {
9
+ AutosizeUpdateType[AutosizeUpdateType["None"] = 0] = "None";
10
+ AutosizeUpdateType[AutosizeUpdateType["Filtered"] = 1] = "Filtered";
11
+ AutosizeUpdateType[AutosizeUpdateType["All"] = 2] = "All";
12
+ })(AutosizeUpdateType || (AutosizeUpdateType = {}));
13
+ const applyDimensions = (node, w, h) => {
14
+ node.props.w = w;
15
+ node.props.h = h;
16
+ node.setUpdateType(UpdateType.Local);
17
+ };
18
+ const getFilteredChildren = (children, childMap) => {
19
+ const filtered = [];
20
+ while (children.length > 0) {
21
+ const id = children.pop();
22
+ const child = childMap.get(id);
23
+ filtered.push(child);
24
+ }
25
+ return filtered;
26
+ };
27
+ let autosizerId = 0;
28
+ export class Autosizer {
29
+ node;
30
+ id = autosizerId++;
31
+ mode = AutosizeMode.Children;
32
+ updateType = AutosizeUpdateType.All;
33
+ lastWidth = 0;
34
+ lastHeight = 0;
35
+ lastHasChanged = false;
36
+ flaggedChildren = [];
37
+ childMap = new Map();
38
+ minX = Infinity;
39
+ minY = Infinity;
40
+ maxX = -Infinity;
41
+ maxY = -Infinity;
42
+ corners = [
43
+ { x: 0, y: 0 },
44
+ { x: 0, y: 0 },
45
+ { x: 0, y: 0 },
46
+ { x: 0, y: 0 },
47
+ ];
48
+ constructor(node) {
49
+ this.node = node;
50
+ if (node.texture !== null) {
51
+ this.mode = AutosizeMode.Texture;
52
+ }
53
+ }
54
+ attach(node) {
55
+ this.childMap.set(node.id, node);
56
+ node.parentAutosizer = this;
57
+ //bubble down to attach to grandchildren
58
+ if (node.children.length > 0 && node.autosizer === null) {
59
+ const children = node.children;
60
+ for (let i = 0; i < children.length; i++) {
61
+ this.attach(children[i]);
62
+ }
63
+ }
64
+ }
65
+ detach(node) {
66
+ if (this.childMap.delete(node.id) === true) {
67
+ node.parentAutosizer = null;
68
+ if (node.children.length > 0 && node.autosizer === null) {
69
+ const children = node.children;
70
+ for (let i = 0; i < children.length; i++) {
71
+ this.detach(children[i]);
72
+ }
73
+ }
74
+ //detached a child, need full update
75
+ this.setUpdateType(AutosizeUpdateType.All);
76
+ }
77
+ }
78
+ patch(id) {
79
+ const entry = this.childMap.get(id);
80
+ if (entry === undefined) {
81
+ return;
82
+ }
83
+ this.flaggedChildren.push(id);
84
+ this.setUpdateType(AutosizeUpdateType.Filtered);
85
+ }
86
+ setUpdateType(updateType) {
87
+ this.updateType |= updateType;
88
+ this.node.setUpdateType(UpdateType.Autosize);
89
+ }
90
+ setMode(mode) {
91
+ this.mode = mode;
92
+ this.setUpdateType(AutosizeUpdateType.All);
93
+ }
94
+ update() {
95
+ const node = this.node;
96
+ if (this.mode === AutosizeMode.Texture &&
97
+ node.texture !== null &&
98
+ node.texture.dimensions !== null) {
99
+ const { w, h } = node.texture.dimensions;
100
+ if (w !== node.w || h !== node.h) {
101
+ applyDimensions(node, w, h);
102
+ }
103
+ this.lastWidth = w;
104
+ this.lastHeight = h;
105
+ this.updateType = AutosizeUpdateType.None;
106
+ return;
107
+ }
108
+ let filtered = this.updateType === AutosizeUpdateType.Filtered
109
+ ? getFilteredChildren(this.flaggedChildren, this.childMap)
110
+ : Array.from(this.childMap.values());
111
+ if (filtered.length === 0) {
112
+ return;
113
+ }
114
+ const corners = this.corners;
115
+ let minX = this.minX;
116
+ let minY = this.minY;
117
+ let maxX = this.maxX;
118
+ let maxY = this.maxY;
119
+ for (let i = 0; i < filtered.length; i++) {
120
+ const child = filtered[i];
121
+ if (child.isRenderable === false || child.localTransform === undefined) {
122
+ continue;
123
+ }
124
+ const { tx, ty, ta, tb, tc, td } = child.localTransform;
125
+ const w = child.props.w;
126
+ const h = child.props.h;
127
+ const childMinX = tx;
128
+ const childMaxX = tx + w * ta;
129
+ const childMinY = ty;
130
+ const childMaxY = ty + h * td;
131
+ corners[0].x = childMinX;
132
+ corners[0].y = childMinY;
133
+ corners[1].x = childMaxX;
134
+ //no rotation/scale
135
+ if (tb === 0 && tc === 0) {
136
+ corners[1].y = childMinY;
137
+ corners[2].x = childMaxX;
138
+ corners[2].y = childMaxY;
139
+ corners[3].x = childMinX;
140
+ corners[3].y = childMaxY;
141
+ }
142
+ else {
143
+ corners[1].y = tx + w * tc;
144
+ corners[2].x = tx + w * ta + h * tb;
145
+ corners[2].y = ty + w * tc + h * td;
146
+ corners[3].x = tx + h * tb;
147
+ corners[3].y = ty + h * td;
148
+ }
149
+ for (let j = 0; j < 4; j++) {
150
+ const corner = corners[j];
151
+ if (corner.x < minX)
152
+ minX = corner.x;
153
+ if (corner.y < minY)
154
+ minY = corner.y;
155
+ if (corner.x > maxX)
156
+ maxX = corner.x;
157
+ if (corner.y > maxY)
158
+ maxY = corner.y;
159
+ }
160
+ }
161
+ this.updateType = AutosizeUpdateType.None;
162
+ const newWidth = maxX > 0 ? maxX : 0;
163
+ const newHeight = maxY > 0 ? maxY : 0;
164
+ applyDimensions(node, newWidth, newHeight);
165
+ this.lastWidth = newWidth;
166
+ this.lastHeight = newHeight;
167
+ }
168
+ destroy() {
169
+ if (this.childMap.size > 0) {
170
+ for (const child of this.childMap.values()) {
171
+ child.parentAutosizer = null;
172
+ }
173
+ }
174
+ this.childMap.clear();
175
+ this.flaggedChildren.length = 0;
176
+ }
177
+ }
178
+ //# sourceMappingURL=Autosizer.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Autosizer.js","sourceRoot":"","sources":["../../../src/core/Autosizer.ts"],"names":[],"mappings":"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"}
@@ -1,7 +1,10 @@
1
1
  import type { TextureOptions } from './CoreTextureManager.js';
2
+ import type { WebGlRenderer } from './renderers/webgl/WebGlRenderer.js';
3
+ import type { WebGlCtxTexture } from './renderers/webgl/WebGlCtxTexture.js';
4
+ import type { BufferCollection } from './renderers/webgl/internal/BufferCollection.js';
2
5
  import type { CoreRenderer } from './renderers/CoreRenderer.js';
3
6
  import type { Stage } from './Stage.js';
4
- import { type Texture } from './textures/Texture.js';
7
+ import { type Texture, type TextureCoords, type TextureLoadedEventHandler } from './textures/Texture.js';
5
8
  import type { Dimensions } from '../common/CommonTypes.js';
6
9
  import { EventEmitter } from '../common/EventEmitter.js';
7
10
  import { type Bound, type RectWithValid } from './lib/utils.js';
@@ -10,6 +13,7 @@ import { RenderCoords } from './lib/RenderCoords.js';
10
13
  import type { AnimationSettings } from './animations/CoreAnimation.js';
11
14
  import type { IAnimationController } from '../common/IAnimationController.js';
12
15
  import type { CoreShaderNode } from './renderers/CoreShaderNode.js';
16
+ import { Autosizer } from './Autosizer.js';
13
17
  export declare enum CoreNodeRenderState {
14
18
  Init = 0,
15
19
  OutOfBounds = 2,
@@ -22,31 +26,23 @@ export declare enum UpdateType {
22
26
  */
23
27
  Children = 1,
24
28
  /**
25
- * Scale/Rotate transform update
26
- *
27
- * @remarks
28
- * CoreNode Properties Updated:
29
- * - `scaleRotateTransform`
30
- */
31
- ScaleRotate = 2,
32
- /**
33
- * Translate transform update (x/y/width/height/pivot/mount)
29
+ * localTransform
34
30
  *
35
31
  * @remarks
36
32
  * CoreNode Properties Updated:
37
33
  * - `localTransform`
38
34
  */
39
- Local = 4,
35
+ Local = 2,
40
36
  /**
41
- * Global Transform update
37
+ * globalTransform
42
38
  *
43
- * @remarks
39
+ * * @remarks
44
40
  * CoreNode Properties Updated:
45
41
  * - `globalTransform`
42
+ * - `renderBounds`
46
43
  * - `renderCoords`
47
- * - `renderBound`
48
44
  */
49
- Global = 8,
45
+ Global = 4,
50
46
  /**
51
47
  * Clipping rect update
52
48
  *
@@ -54,23 +50,15 @@ export declare enum UpdateType {
54
50
  * CoreNode Properties Updated:
55
51
  * - `clippingRect`
56
52
  */
57
- Clipping = 16,
58
- /**
59
- * Calculated ZIndex update
60
- *
61
- * @remarks
62
- * CoreNode Properties Updated:
63
- * - `calcZIndex`
64
- */
65
- CalculatedZIndex = 32,
53
+ Clipping = 8,
66
54
  /**
67
- * Z-Index Sorted Children update
55
+ * Sort Z-Index Children update
68
56
  *
69
57
  * @remarks
70
58
  * CoreNode Properties Updated:
71
59
  * - `children` (sorts children by their `calcZIndex`)
72
60
  */
73
- ZIndexSortedChildren = 64,
61
+ SortZIndexChildren = 16,
74
62
  /**
75
63
  * Premultiplied Colors update
76
64
  *
@@ -81,7 +69,7 @@ export declare enum UpdateType {
81
69
  * - `premultipliedColorBl`
82
70
  * - `premultipliedColorBr`
83
71
  */
84
- PremultipliedColors = 128,
72
+ PremultipliedColors = 32,
85
73
  /**
86
74
  * World Alpha update
87
75
  *
@@ -89,7 +77,7 @@ export declare enum UpdateType {
89
77
  * CoreNode Properties Updated:
90
78
  * - `worldAlpha` = `parent.worldAlpha` * `alpha`
91
79
  */
92
- WorldAlpha = 256,
80
+ WorldAlpha = 64,
93
81
  /**
94
82
  * Render State update
95
83
  *
@@ -97,7 +85,7 @@ export declare enum UpdateType {
97
85
  * CoreNode Properties Updated:
98
86
  * - `renderState`
99
87
  */
100
- RenderState = 512,
88
+ RenderState = 128,
101
89
  /**
102
90
  * Is Renderable update
103
91
  *
@@ -105,19 +93,27 @@ export declare enum UpdateType {
105
93
  * CoreNode Properties Updated:
106
94
  * - `isRenderable`
107
95
  */
108
- IsRenderable = 1024,
96
+ IsRenderable = 256,
109
97
  /**
110
98
  * Render Texture update
111
99
  */
112
- RenderTexture = 2048,
100
+ RenderTexture = 512,
113
101
  /**
114
102
  * Track if parent has render texture
115
103
  */
116
- ParentRenderTexture = 4096,
104
+ ParentRenderTexture = 1024,
117
105
  /**
118
106
  * Render Bounds update
119
107
  */
120
- RenderBounds = 8192,
108
+ RenderBounds = 2048,
109
+ /**
110
+ * RecalcUniforms
111
+ */
112
+ RecalcUniforms = 4096,
113
+ /**
114
+ * Autosize update
115
+ */
116
+ Autosize = 8192,
121
117
  /**
122
118
  * None
123
119
  */
@@ -125,11 +121,7 @@ export declare enum UpdateType {
125
121
  /**
126
122
  * All
127
123
  */
128
- All = 14335,
129
- /**
130
- * RecalcUniforms
131
- */
132
- RecalcUniforms = 16384
124
+ All = 16383
133
125
  }
134
126
  /**
135
127
  * A custom data map which can be stored on an CoreNode
@@ -168,16 +160,18 @@ export interface CoreNodeProps {
168
160
  y: number;
169
161
  /**
170
162
  * The width of the Node.
163
+ * @warning This will be deprecated in favor of `w` and `h` properties in the future.
171
164
  *
172
165
  * @default `0`
173
166
  */
174
- width: number;
167
+ w: number;
175
168
  /**
176
169
  * The height of the Node.
170
+ * @warning This will be deprecated in favor of `w` and `h` properties in the future.
177
171
  *
178
172
  * @default `0`
179
173
  */
180
- height: number;
174
+ h: number;
181
175
  /**
182
176
  * The alpha opacity of the Node.
183
177
  *
@@ -189,14 +183,35 @@ export interface CoreNodeProps {
189
183
  */
190
184
  alpha: number;
191
185
  /**
192
- * Autosize mode
186
+ * Autosize
193
187
  *
194
188
  * @remarks
195
- * When enabled, when a texture is loaded into the Node, the Node will
196
- * automatically resize to the dimensions of the texture.
189
+ * When enabled, the Node automatically resizes based on its content
190
+ *
191
+ * **Texture Autosize Mode:**
192
+ * - When the Node has a texture, it automatically resizes to match the
193
+ * texture's dimensions when the texture loads
194
+ * - This ensures images display at their natural size without manual sizing
195
+ * - Text Nodes always use this mode regardless of this setting
196
+ *
197
+ * **Children Autosize Mode:**
198
+ * - When the Node has no texture but contains children, it automatically
199
+ * resizes to encompass all children's bounds
200
+ * - Calculates the bounding box that contains all child positions, dimensions,
201
+ * and transforms (scale, rotation, mount/pivot points)
202
+ * - Creates container behavior where the parent grows to fit its content
203
+ * - Updates dynamically as children are added, removed, or transformed
204
+ *
205
+ * **Mode Selection Logic:**
206
+ * - Texture mode takes precedence over children mode
207
+ * - Mode switches automatically when texture is added/removed
208
+ * - If no texture and no children, autosize has no effect
209
+ *
210
+ * **Performance:**
211
+ * - Children mode uses efficient transform caching and differential updates
212
+ * - Only recalculates when child transforms actually change
213
+ * - Minimal memory allocation with factory function patterns
197
214
  *
198
- * Text Nodes are always autosized based on their text content regardless
199
- * of this mode setting.
200
215
  *
201
216
  * @default `false`
202
217
  */
@@ -324,7 +339,11 @@ export interface CoreNodeProps {
324
339
  * The Node's z-index.
325
340
  *
326
341
  * @remarks
327
- * TBD
342
+ * Max z-index of children under the same parent determines which child
343
+ * is rendered on top. Higher z-index means the Node is rendered on top of
344
+ * children with lower z-index.
345
+ *
346
+ * Max value is 1000 and min value is -1000. Values outside of this range will be clamped.
328
347
  */
329
348
  zIndex: number;
330
349
  /**
@@ -351,15 +370,6 @@ export interface CoreNodeProps {
351
370
  * {@link TextRenderer} and should not be set explicitly.
352
371
  */
353
372
  texture: Texture | null;
354
- /**
355
- * [Deprecated]: Prevents the texture from being cleaned up when the Node is removed
356
- *
357
- * @remarks
358
- * Please use the `preventCleanup` property on {@link TextureOptions} instead.
359
- *
360
- * @default false
361
- */
362
- preventCleanup: boolean;
363
373
  /**
364
374
  * Options to associate with the Node's Texture
365
375
  */
@@ -388,7 +398,6 @@ export interface CoreNodeProps {
388
398
  * settings being defaults)
389
399
  */
390
400
  src: string | null;
391
- zIndexLocked: number;
392
401
  /**
393
402
  * Scale to render the Node at
394
403
  *
@@ -605,20 +614,11 @@ export interface CoreNodeProps {
605
614
  */
606
615
  srcY?: number;
607
616
  /**
608
- * By enabling Strict bounds the renderer will not process & render child nodes of a node that is out of the visible area
609
- *
610
- * @remarks
611
- * When enabled out of bound nodes, i.e. nodes that are out of the visible area, will
612
- * **NOT** have their children processed and renderer anymore. This means the children of a out of bound
613
- * node will not receive update processing such as positioning updates and will not be drawn on screen.
614
- * As such the rest of the branch of the update tree that sits below this node will not be processed anymore
615
- *
616
- * This is a big performance gain but may be disabled in cases where the width of the parent node is
617
- * unknown and the render must process the child nodes regardless of the viewport status of the parent node
618
- *
617
+ * Mark the node as interactive so we can perform hit tests on it
618
+ * when pointer events are registered.
619
619
  * @default false
620
620
  */
621
- strictBounds: boolean;
621
+ interactive?: boolean;
622
622
  }
623
623
  /**
624
624
  * Grab all the number properties of type T
@@ -648,10 +648,27 @@ export declare class CoreNode extends EventEmitter {
648
648
  readonly children: CoreNode[];
649
649
  protected _id: number;
650
650
  readonly props: CoreNodeProps;
651
+ readonly isCoreNode: true;
652
+ renderOpBufferIdx: number;
653
+ numQuads: number;
654
+ renderOpTextures: WebGlCtxTexture[];
655
+ /**
656
+ * Permanent index (in float32 units) into the renderer's quad buffer.
657
+ * -1 means this node has not yet been assigned a slot.
658
+ */
659
+ quadBufferIndex: number;
660
+ /**
661
+ * True when renderCoords, premultiplied colors, or textureCoords changed
662
+ * since the node's quad was last written to the GPU.
663
+ */
664
+ isQuadDirty: boolean;
665
+ private hasShaderUpdater;
666
+ hasShaderTimeFn: boolean;
667
+ private hasColorProps;
668
+ textureLoaded: boolean;
651
669
  updateType: UpdateType;
652
670
  childUpdateType: UpdateType;
653
671
  globalTransform?: Matrix3d;
654
- scaleRotateTransform?: Matrix3d;
655
672
  localTransform?: Matrix3d;
656
673
  sceneGlobalTransform?: Matrix3d;
657
674
  renderCoords?: RenderCoords;
@@ -660,8 +677,11 @@ export declare class CoreNode extends EventEmitter {
660
677
  strictBound?: Bound;
661
678
  preloadBound?: Bound;
662
679
  clippingRect: RectWithValid;
680
+ textureCoords?: TextureCoords;
681
+ updateShaderUniforms: boolean;
663
682
  isRenderable: boolean;
664
683
  renderState: CoreNodeRenderState;
684
+ isSimple: boolean;
665
685
  worldAlpha: number;
666
686
  premultipliedColorTl: number;
667
687
  premultipliedColorTr: number;
@@ -671,11 +691,25 @@ export declare class CoreNode extends EventEmitter {
671
691
  hasRTTupdates: boolean;
672
692
  parentHasRenderTexture: boolean;
673
693
  rttParent: CoreNode | null;
694
+ /**
695
+ * only used when rtt = true
696
+ */
697
+ framebufferDimensions: Dimensions | null;
698
+ /**Autosize properties */
699
+ autosizer: Autosizer | null;
700
+ parentAutosizer: Autosizer | null;
701
+ destroyed: boolean;
674
702
  constructor(stage: Stage, props: CoreNodeProps);
675
703
  loadTexture(): void;
704
+ /**
705
+ * Task for queueMicrotask to loadTexture
706
+ *
707
+ * @remarks
708
+ * This method is called in a microtask to release the texture.
709
+ */
710
+ private loadTextureTask;
676
711
  unloadTexture(): void;
677
- autosizeNode(dimensions: Dimensions): void;
678
- private onTextureLoaded;
712
+ protected onTextureLoaded: TextureLoadedEventHandler;
679
713
  private onTextureFailed;
680
714
  private onTextureFreed;
681
715
  /**
@@ -687,30 +721,28 @@ export declare class CoreNode extends EventEmitter {
687
721
  * @param type
688
722
  */
689
723
  setUpdateType(type: UpdateType): void;
690
- sortChildren(): void;
691
- updateScaleRotateTransform(): void;
692
724
  updateLocalTransform(): void;
725
+ updateIsSimple(): void;
693
726
  /**
694
727
  * @todo: test for correct calculation flag
695
728
  * @param delta
696
729
  */
697
730
  update(delta: number, parentClippingRect: RectWithValid): void;
698
731
  private findParentRTTNode;
699
- private getRTTParentRenderState;
700
732
  private notifyChildrenRTTOfUpdate;
701
- private notifyParentRTTOfUpdate;
733
+ protected notifyParentRTTOfUpdate(): void;
702
734
  checkRenderBounds(): CoreNodeRenderState;
703
735
  updateBoundingRect(): void;
704
736
  createRenderBounds(): void;
705
737
  updateRenderState(renderState: CoreNodeRenderState): void;
706
- /**
707
- * Updates the `isRenderable` property based on various conditions.
708
- */
709
- updateIsRenderable(): void;
710
738
  /**
711
739
  * Checks if the node is renderable based on world alpha, dimensions and out of bounds status.
712
740
  */
713
741
  checkBasicRenderability(): boolean;
742
+ /**
743
+ * Updates the `isRenderable` property based on various conditions.
744
+ */
745
+ updateIsRenderable(): void;
714
746
  /**
715
747
  * Sets the renderable state and triggers changes if necessary.
716
748
  * @param isRenderable - The new renderable state
@@ -728,11 +760,6 @@ export declare class CoreNode extends EventEmitter {
728
760
  * Checks if the node has dimensions (width/height)
729
761
  */
730
762
  hasDimensions(): boolean;
731
- /**
732
- * Checks if the node has any color properties set.
733
- */
734
- hasColorProperties(): boolean;
735
- hasShader(): boolean;
736
763
  calculateRenderCoords(): void;
737
764
  /**
738
765
  * This function calculates the clipping rectangle for a node.
@@ -743,12 +770,21 @@ export declare class CoreNode extends EventEmitter {
743
770
  * Finally, the node's parentClippingRect and clippingRect properties are updated.
744
771
  */
745
772
  calculateClippingRect(parentClippingRect: RectWithValid): void;
746
- calculateZIndex(): void;
747
773
  /**
748
774
  * Destroy the node and cleanup all resources
749
775
  */
750
- destroy(): void;
776
+ destroy(isChild?: boolean): void;
751
777
  renderQuads(renderer: CoreRenderer): void;
778
+ get renderTexture(): Texture | null;
779
+ get renderTextureCoords(): TextureCoords | undefined;
780
+ get quadBufferCollection(): BufferCollection;
781
+ get width(): number;
782
+ get height(): number;
783
+ get time(): number;
784
+ getTimerValue(): number;
785
+ sortChildren(): void;
786
+ removeChild(node: CoreNode, targetParent?: CoreNode | null): void;
787
+ addChild(node: CoreNode, previousParent?: CoreNode | null): void;
752
788
  get id(): number;
753
789
  get data(): CustomDataMap | undefined;
754
790
  set data(d: CustomDataMap | undefined);
@@ -758,10 +794,10 @@ export declare class CoreNode extends EventEmitter {
758
794
  get absY(): number;
759
795
  get y(): number;
760
796
  set y(value: number);
761
- get width(): number;
762
- set width(value: number);
763
- get height(): number;
764
- set height(value: number);
797
+ get w(): number;
798
+ set w(value: number);
799
+ get h(): number;
800
+ set h(value: number);
765
801
  get scale(): number;
766
802
  set scale(value: number);
767
803
  get scaleX(): number;
@@ -808,14 +844,10 @@ export declare class CoreNode extends EventEmitter {
808
844
  set colorBl(value: number);
809
845
  get colorBr(): number;
810
846
  set colorBr(value: number);
811
- get zIndexLocked(): number;
812
- set zIndexLocked(value: number);
813
847
  get zIndex(): number;
814
848
  set zIndex(value: number);
815
849
  get parent(): CoreNode | null;
816
850
  set parent(newParent: CoreNode | null);
817
- get preventCleanup(): boolean;
818
- set preventCleanup(value: boolean);
819
851
  get rtt(): boolean;
820
852
  set rtt(value: boolean);
821
853
  private initRenderTexture;
@@ -828,7 +860,7 @@ export declare class CoreNode extends EventEmitter {
828
860
  get src(): string | null;
829
861
  set src(imageUrl: string | null);
830
862
  set imageType(type: 'regular' | 'compressed' | 'svg' | null);
831
- get imageType(): 'regular' | 'compressed' | 'svg' | null;
863
+ get imageType(): "regular" | "compressed" | "svg" | null;
832
864
  get srcHeight(): number | undefined;
833
865
  set srcHeight(value: number);
834
866
  get srcWidth(): number | undefined;
@@ -838,12 +870,9 @@ export declare class CoreNode extends EventEmitter {
838
870
  get srcY(): number | undefined;
839
871
  set srcY(value: number);
840
872
  /**
841
- * Returns the framebuffer dimensions of the node.
842
- * If the node has a render texture, the dimensions are the same as the node's dimensions.
843
- * If the node does not have a render texture, the dimensions are inherited from the parent.
844
- * If the node parent has a render texture and the node is a render texture, the nodes dimensions are used.
873
+ * Returns the framebuffer dimensions of the RTT parent
845
874
  */
846
- get framebufferDimensions(): Dimensions;
875
+ get parentFramebufferDimensions(): Dimensions | null;
847
876
  /**
848
877
  * Returns the parent render texture node if it exists.
849
878
  */
@@ -852,9 +881,18 @@ export declare class CoreNode extends EventEmitter {
852
881
  set texture(value: Texture | null);
853
882
  set textureOptions(value: TextureOptions);
854
883
  get textureOptions(): TextureOptions;
855
- get strictBounds(): boolean;
856
- set strictBounds(v: boolean);
884
+ set interactive(value: boolean | undefined);
885
+ get interactive(): boolean | undefined;
886
+ setRTTUpdates(type: number): void;
857
887
  animate(props: Partial<CoreNodeAnimateProps>, settings: Partial<AnimationSettings>): IAnimationController;
858
888
  flush(): void;
889
+ /**
890
+ * Add a texture to the current RenderOp.
891
+ *
892
+ * @param texture
893
+ * @returns Assigned Texture Index of the texture in the render op
894
+ */
895
+ addTexture(texture: WebGlCtxTexture): number;
896
+ draw(renderer: WebGlRenderer): void;
859
897
  }
860
898
  export {};