@lightningjs/renderer 3.0.0-beta9 → 3.0.1

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 (541) hide show
  1. package/LICENSE +202 -202
  2. package/NOTICE +3 -3
  3. package/README.md +230 -147
  4. package/dist/exports/canvas.d.ts +1 -1
  5. package/dist/exports/canvas.js +1 -1
  6. package/dist/exports/canvas.js.map +1 -1
  7. package/dist/exports/index.d.ts +5 -6
  8. package/dist/exports/index.js +3 -5
  9. package/dist/exports/index.js.map +1 -1
  10. package/dist/exports/platform.d.ts +7 -0
  11. package/dist/exports/platform.js +27 -0
  12. package/dist/exports/platform.js.map +1 -0
  13. package/dist/exports/webgl.d.ts +2 -1
  14. package/dist/exports/webgl.js +2 -1
  15. package/dist/exports/webgl.js.map +1 -1
  16. package/dist/src/common/CommonTypes.d.ts +15 -3
  17. package/dist/src/core/Autosizer.d.ts +35 -0
  18. package/dist/src/core/Autosizer.js +196 -0
  19. package/dist/src/core/Autosizer.js.map +1 -0
  20. package/dist/src/core/CoreNode.d.ts +107 -59
  21. package/dist/src/core/CoreNode.js +524 -282
  22. package/dist/src/core/CoreNode.js.map +1 -1
  23. package/dist/src/core/CoreTextNode.d.ts +73 -88
  24. package/dist/src/core/CoreTextNode.js +383 -236
  25. package/dist/src/core/CoreTextNode.js.map +1 -1
  26. package/dist/src/core/CoreTextureManager.d.ts +19 -17
  27. package/dist/src/core/CoreTextureManager.js +52 -120
  28. package/dist/src/core/CoreTextureManager.js.map +1 -1
  29. package/dist/src/core/Stage.d.ts +63 -9
  30. package/dist/src/core/Stage.js +233 -133
  31. package/dist/src/core/Stage.js.map +1 -1
  32. package/dist/src/core/TextureError.d.ts +11 -0
  33. package/dist/src/core/TextureError.js +37 -0
  34. package/dist/src/core/TextureError.js.map +1 -0
  35. package/dist/src/core/TextureMemoryManager.d.ts +2 -4
  36. package/dist/src/core/TextureMemoryManager.js +80 -113
  37. package/dist/src/core/TextureMemoryManager.js.map +1 -1
  38. package/dist/src/core/animations/CoreAnimation.d.ts +3 -3
  39. package/dist/src/core/animations/CoreAnimation.js +3 -3
  40. package/dist/src/core/animations/CoreAnimation.js.map +1 -1
  41. package/dist/src/core/animations/CoreAnimationController.d.ts +1 -1
  42. package/dist/src/core/animations/CoreAnimationController.js +4 -2
  43. package/dist/src/core/animations/CoreAnimationController.js.map +1 -1
  44. package/dist/src/core/lib/ImageWorker.js +1 -1
  45. package/dist/src/core/lib/ImageWorker.js.map +1 -1
  46. package/dist/src/core/lib/WebGlContextWrapper.d.ts +69 -97
  47. package/dist/src/core/lib/WebGlContextWrapper.js +192 -152
  48. package/dist/src/core/lib/WebGlContextWrapper.js.map +1 -1
  49. package/dist/src/core/lib/collectionUtils.d.ts +4 -0
  50. package/dist/src/core/lib/collectionUtils.js +72 -0
  51. package/dist/src/core/lib/collectionUtils.js.map +1 -0
  52. package/dist/src/core/lib/colorCache.d.ts +1 -0
  53. package/dist/src/core/lib/colorCache.js +19 -0
  54. package/dist/src/core/lib/colorCache.js.map +1 -0
  55. package/dist/src/core/lib/colorParser.d.ts +21 -0
  56. package/dist/src/core/lib/colorParser.js +72 -0
  57. package/dist/src/core/lib/colorParser.js.map +1 -0
  58. package/dist/src/core/lib/textureCompression.d.ts +14 -2
  59. package/dist/src/core/lib/textureCompression.js +311 -67
  60. package/dist/src/core/lib/textureCompression.js.map +1 -1
  61. package/dist/src/core/lib/utils.d.ts +6 -6
  62. package/dist/src/core/lib/utils.js +21 -65
  63. package/dist/src/core/lib/utils.js.map +1 -1
  64. package/dist/src/core/lib/validateImageBitmap.d.ts +1 -2
  65. package/dist/src/core/lib/validateImageBitmap.js +4 -4
  66. package/dist/src/core/lib/validateImageBitmap.js.map +1 -1
  67. package/dist/src/core/platform.d.ts +10 -0
  68. package/dist/src/core/platform.js +84 -0
  69. package/dist/src/core/platform.js.map +1 -0
  70. package/dist/src/core/platforms/GlContextWrapper.d.ts +136 -0
  71. package/{src/core/text-rendering/TextRenderingUtils.ts → dist/src/core/platforms/GlContextWrapper.js} +32 -36
  72. package/dist/src/core/platforms/GlContextWrapper.js.map +1 -0
  73. package/dist/src/core/platforms/Platform.d.ts +78 -12
  74. package/dist/src/core/platforms/Platform.js +18 -0
  75. package/dist/src/core/platforms/Platform.js.map +1 -1
  76. package/dist/src/core/platforms/web/WebGlContextWrapper.d.ts +776 -0
  77. package/dist/src/core/platforms/web/WebGlContextWrapper.js +1208 -0
  78. package/dist/src/core/platforms/web/WebGlContextWrapper.js.map +1 -0
  79. package/dist/src/core/platforms/web/WebPlatform.d.ts +17 -2
  80. package/dist/src/core/platforms/web/WebPlatform.js +158 -13
  81. package/dist/src/core/platforms/web/WebPlatform.js.map +1 -1
  82. package/dist/src/core/platforms/web/WebPlatformChrome50.d.ts +19 -0
  83. package/dist/src/core/platforms/web/WebPlatformChrome50.js +54 -0
  84. package/dist/src/core/platforms/web/WebPlatformChrome50.js.map +1 -0
  85. package/dist/src/core/platforms/web/WebPlatformLegacy.d.ts +20 -0
  86. package/dist/src/core/platforms/web/WebPlatformLegacy.js +105 -0
  87. package/dist/src/core/platforms/web/WebPlatformLegacy.js.map +1 -0
  88. package/dist/src/core/platforms/web/WebPlatformNext.d.ts +21 -0
  89. package/dist/src/core/platforms/web/WebPlatformNext.js +52 -0
  90. package/dist/src/core/platforms/web/WebPlatformNext.js.map +1 -0
  91. package/dist/src/core/platforms/web/lib/ImageWorker.d.ts +21 -0
  92. package/dist/src/core/platforms/web/lib/ImageWorker.js +136 -0
  93. package/dist/src/core/platforms/web/lib/ImageWorker.js.map +1 -0
  94. package/dist/src/core/platforms/web/lib/ImageWorkerDefault.d.ts +6 -0
  95. package/dist/src/core/platforms/web/lib/ImageWorkerDefault.js +92 -0
  96. package/dist/src/core/platforms/web/lib/ImageWorkerDefault.js.map +1 -0
  97. package/dist/src/core/platforms/web/lib/ImageWorkerLegacy.d.ts +1 -0
  98. package/dist/src/core/platforms/web/lib/ImageWorkerLegacy.js +63 -0
  99. package/dist/src/core/platforms/web/lib/ImageWorkerLegacy.js.map +1 -0
  100. package/dist/src/core/platforms/web/lib/ImageWorkerNoOptions.d.ts +7 -0
  101. package/dist/src/core/platforms/web/lib/ImageWorkerNoOptions.js +75 -0
  102. package/dist/src/core/platforms/web/lib/ImageWorkerNoOptions.js.map +1 -0
  103. package/dist/src/core/platforms/web/lib/createImageBitmap.d.ts +1 -0
  104. package/dist/src/core/platforms/web/lib/createImageBitmap.js +27 -0
  105. package/dist/src/core/platforms/web/lib/createImageBitmap.js.map +1 -0
  106. package/dist/src/core/platforms/web/lib/textureCompression.d.ts +26 -0
  107. package/dist/src/core/platforms/web/lib/textureCompression.js +301 -0
  108. package/dist/src/core/platforms/web/lib/textureCompression.js.map +1 -0
  109. package/dist/src/core/platforms/web/lib/textureSvg.d.ts +7 -0
  110. package/dist/src/core/platforms/web/lib/textureSvg.js +51 -0
  111. package/dist/src/core/platforms/web/lib/textureSvg.js.map +1 -0
  112. package/dist/src/core/platforms/web/lib/utils.d.ts +5 -0
  113. package/dist/src/core/platforms/web/lib/utils.js +86 -0
  114. package/dist/src/core/platforms/web/lib/utils.js.map +1 -0
  115. package/dist/src/core/renderers/CoreContextTexture.d.ts +2 -1
  116. package/dist/src/core/renderers/CoreContextTexture.js.map +1 -1
  117. package/dist/src/core/renderers/CoreRenderer.d.ts +4 -40
  118. package/dist/src/core/renderers/CoreRenderer.js +3 -4
  119. package/dist/src/core/renderers/CoreRenderer.js.map +1 -1
  120. package/dist/src/core/renderers/CoreShader.d.ts +9 -0
  121. package/{src/core/text-rendering/renderers/SdfTextRenderer/internal/constants.ts → dist/src/core/renderers/CoreShader.js} +28 -32
  122. package/dist/src/core/renderers/CoreShader.js.map +1 -0
  123. package/dist/src/core/renderers/CoreShaderNode.d.ts +10 -0
  124. package/dist/src/core/renderers/CoreShaderNode.js +19 -2
  125. package/dist/src/core/renderers/CoreShaderNode.js.map +1 -1
  126. package/dist/src/core/renderers/canvas/CanvasCoreRenderer.d.ts +33 -0
  127. package/dist/src/core/renderers/canvas/CanvasCoreRenderer.js +250 -0
  128. package/dist/src/core/renderers/canvas/CanvasCoreRenderer.js.map +1 -0
  129. package/dist/src/core/renderers/canvas/CanvasCoreTexture.d.ts +17 -0
  130. package/dist/src/core/renderers/canvas/CanvasCoreTexture.js +125 -0
  131. package/dist/src/core/renderers/canvas/CanvasCoreTexture.js.map +1 -0
  132. package/dist/src/core/renderers/canvas/CanvasRenderer.d.ts +5 -6
  133. package/dist/src/core/renderers/canvas/CanvasRenderer.js +67 -91
  134. package/dist/src/core/renderers/canvas/CanvasRenderer.js.map +1 -1
  135. package/dist/src/core/renderers/canvas/CanvasShaderNode.d.ts +1 -2
  136. package/dist/src/core/renderers/canvas/CanvasShaderNode.js +5 -4
  137. package/dist/src/core/renderers/canvas/CanvasShaderNode.js.map +1 -1
  138. package/dist/src/core/renderers/canvas/CanvasTexture.d.ts +3 -2
  139. package/dist/src/core/renderers/canvas/CanvasTexture.js +17 -13
  140. package/dist/src/core/renderers/canvas/CanvasTexture.js.map +1 -1
  141. package/dist/src/core/renderers/canvas/internal/C2DShaderUtils.d.ts +13 -0
  142. package/dist/src/core/renderers/canvas/internal/C2DShaderUtils.js +113 -192
  143. package/dist/src/core/renderers/canvas/internal/C2DShaderUtils.js.map +1 -1
  144. package/dist/src/core/renderers/canvas/internal/ColorUtils.d.ts +0 -2
  145. package/dist/src/core/renderers/canvas/internal/ColorUtils.js +0 -14
  146. package/dist/src/core/renderers/canvas/internal/ColorUtils.js.map +1 -1
  147. package/dist/src/core/renderers/canvas/shaders/UnsupportedShader.d.ts +10 -0
  148. package/{src/core/text-rendering/renderers/SdfTextRenderer/internal/util.ts → dist/src/core/renderers/canvas/shaders/UnsupportedShader.js} +43 -40
  149. package/dist/src/core/renderers/canvas/shaders/UnsupportedShader.js.map +1 -0
  150. package/dist/src/core/renderers/webgl/SdfRenderOp.d.ts +33 -0
  151. package/dist/src/core/renderers/webgl/SdfRenderOp.js +98 -0
  152. package/dist/src/core/renderers/webgl/SdfRenderOp.js.map +1 -0
  153. package/dist/src/core/renderers/webgl/WebGlCoreCtxRenderTexture.d.ts +12 -0
  154. package/dist/src/core/renderers/webgl/WebGlCoreCtxRenderTexture.js +58 -0
  155. package/dist/src/core/renderers/webgl/WebGlCoreCtxRenderTexture.js.map +1 -0
  156. package/dist/src/core/renderers/webgl/WebGlCoreCtxSubTexture.d.ts +9 -0
  157. package/dist/src/core/renderers/webgl/WebGlCoreCtxSubTexture.js +38 -0
  158. package/dist/src/core/renderers/webgl/WebGlCoreCtxSubTexture.js.map +1 -0
  159. package/dist/src/core/renderers/webgl/WebGlCoreCtxTexture.d.ts +69 -0
  160. package/dist/src/core/renderers/webgl/WebGlCoreCtxTexture.js +272 -0
  161. package/dist/src/core/renderers/webgl/WebGlCoreCtxTexture.js.map +1 -0
  162. package/dist/src/core/renderers/webgl/WebGlCoreRenderOp.d.ts +34 -0
  163. package/dist/src/core/renderers/webgl/{WebGlRenderOp.js → WebGlCoreRenderOp.js} +43 -47
  164. package/dist/src/core/renderers/webgl/WebGlCoreRenderOp.js.map +1 -0
  165. package/dist/src/core/renderers/webgl/WebGlCoreRenderer.d.ts +133 -0
  166. package/dist/src/core/renderers/webgl/WebGlCoreRenderer.js +649 -0
  167. package/dist/src/core/renderers/webgl/WebGlCoreRenderer.js.map +1 -0
  168. package/dist/src/core/renderers/webgl/WebGlCoreShader.d.ts +78 -0
  169. package/dist/src/core/renderers/webgl/WebGlCoreShader.destroy.d.ts +1 -0
  170. package/dist/src/core/renderers/webgl/WebGlCoreShader.destroy.js +2 -0
  171. package/dist/src/core/renderers/webgl/WebGlCoreShader.destroy.js.map +1 -0
  172. package/dist/src/core/renderers/webgl/WebGlCoreShader.js +202 -0
  173. package/dist/src/core/renderers/webgl/WebGlCoreShader.js.map +1 -0
  174. package/dist/src/core/renderers/webgl/WebGlCtxRenderTexture.d.ts +4 -2
  175. package/dist/src/core/renderers/webgl/WebGlCtxRenderTexture.js +14 -6
  176. package/dist/src/core/renderers/webgl/WebGlCtxRenderTexture.js.map +1 -1
  177. package/dist/src/core/renderers/webgl/WebGlCtxSubTexture.d.ts +15 -2
  178. package/dist/src/core/renderers/webgl/WebGlCtxSubTexture.js +34 -5
  179. package/dist/src/core/renderers/webgl/WebGlCtxSubTexture.js.map +1 -1
  180. package/dist/src/core/renderers/webgl/WebGlCtxTexture.d.ts +19 -9
  181. package/dist/src/core/renderers/webgl/WebGlCtxTexture.js +101 -49
  182. package/dist/src/core/renderers/webgl/WebGlCtxTexture.js.map +1 -1
  183. package/dist/src/core/renderers/webgl/WebGlRenderer.d.ts +11 -23
  184. package/dist/src/core/renderers/webgl/WebGlRenderer.js +124 -133
  185. package/dist/src/core/renderers/webgl/WebGlRenderer.js.map +1 -1
  186. package/dist/src/core/renderers/webgl/WebGlShaderNode.d.ts +4 -6
  187. package/dist/src/core/renderers/webgl/WebGlShaderNode.js +3 -3
  188. package/dist/src/core/renderers/webgl/WebGlShaderNode.js.map +1 -1
  189. package/dist/src/core/renderers/webgl/WebGlShaderProgram.d.ts +7 -7
  190. package/dist/src/core/renderers/webgl/WebGlShaderProgram.js +60 -38
  191. package/dist/src/core/renderers/webgl/WebGlShaderProgram.js.map +1 -1
  192. package/dist/src/core/renderers/webgl/internal/RendererUtils.d.ts +4 -4
  193. package/dist/src/core/renderers/webgl/internal/RendererUtils.js +1 -2
  194. package/dist/src/core/renderers/webgl/internal/RendererUtils.js.map +1 -1
  195. package/dist/src/core/renderers/webgl/internal/ShaderUtils.d.ts +3 -3
  196. package/dist/src/core/renderers/webgl/internal/ShaderUtils.js +38 -37
  197. package/dist/src/core/renderers/webgl/internal/ShaderUtils.js.map +1 -1
  198. package/dist/src/core/renderers/webgl/shaders/DefaultShader.d.ts +9 -0
  199. package/dist/src/core/renderers/webgl/shaders/DefaultShader.js +84 -0
  200. package/dist/src/core/renderers/webgl/shaders/DefaultShader.js.map +1 -0
  201. package/dist/src/core/renderers/webgl/shaders/DefaultShaderBatched.d.ts +10 -0
  202. package/dist/src/core/renderers/webgl/shaders/DefaultShaderBatched.js +108 -0
  203. package/dist/src/core/renderers/webgl/shaders/DefaultShaderBatched.js.map +1 -0
  204. package/dist/src/core/renderers/webgl/shaders/DynamicShader.d.ts +29 -0
  205. package/dist/src/core/renderers/webgl/shaders/DynamicShader.js +408 -0
  206. package/dist/src/core/renderers/webgl/shaders/DynamicShader.js.map +1 -0
  207. package/dist/src/core/renderers/webgl/shaders/RoundedRectangle.d.ts +28 -0
  208. package/dist/src/core/renderers/webgl/shaders/RoundedRectangle.js +126 -0
  209. package/dist/src/core/renderers/webgl/shaders/RoundedRectangle.js.map +1 -0
  210. package/dist/src/core/renderers/webgl/shaders/SdfShader.d.ts +47 -0
  211. package/dist/src/core/renderers/webgl/shaders/SdfShader.js +148 -0
  212. package/dist/src/core/renderers/webgl/shaders/SdfShader.js.map +1 -0
  213. package/dist/src/core/renderers/webgl/shaders/effects/BorderBottomEffect.d.ts +31 -0
  214. package/dist/src/core/renderers/webgl/shaders/effects/BorderBottomEffect.js +71 -0
  215. package/dist/src/core/renderers/webgl/shaders/effects/BorderBottomEffect.js.map +1 -0
  216. package/dist/src/core/renderers/webgl/shaders/effects/BorderEffect.d.ts +30 -0
  217. package/dist/src/core/renderers/webgl/shaders/effects/BorderEffect.js +58 -0
  218. package/dist/src/core/renderers/webgl/shaders/effects/BorderEffect.js.map +1 -0
  219. package/dist/src/core/renderers/webgl/shaders/effects/BorderLeftEffect.d.ts +31 -0
  220. package/dist/src/core/renderers/webgl/shaders/effects/BorderLeftEffect.js +71 -0
  221. package/dist/src/core/renderers/webgl/shaders/effects/BorderLeftEffect.js.map +1 -0
  222. package/dist/src/core/renderers/webgl/shaders/effects/BorderRightEffect.d.ts +31 -0
  223. package/dist/src/core/renderers/webgl/shaders/effects/BorderRightEffect.js +71 -0
  224. package/dist/src/core/renderers/webgl/shaders/effects/BorderRightEffect.js.map +1 -0
  225. package/dist/src/core/renderers/webgl/shaders/effects/BorderTopEffect.d.ts +31 -0
  226. package/dist/src/core/renderers/webgl/shaders/effects/BorderTopEffect.js +71 -0
  227. package/dist/src/core/renderers/webgl/shaders/effects/BorderTopEffect.js.map +1 -0
  228. package/dist/src/core/renderers/webgl/shaders/effects/EffectUtils.d.ts +9 -0
  229. package/dist/src/core/renderers/webgl/shaders/effects/EffectUtils.js +136 -0
  230. package/dist/src/core/renderers/webgl/shaders/effects/EffectUtils.js.map +1 -0
  231. package/dist/src/core/renderers/webgl/shaders/effects/FadeOutEffect.d.ts +36 -0
  232. package/dist/src/core/renderers/webgl/shaders/effects/FadeOutEffect.js +85 -0
  233. package/dist/src/core/renderers/webgl/shaders/effects/FadeOutEffect.js.map +1 -0
  234. package/dist/src/core/renderers/webgl/shaders/effects/GlitchEffect.d.ts +45 -0
  235. package/dist/src/core/renderers/webgl/shaders/effects/GlitchEffect.js +104 -0
  236. package/dist/src/core/renderers/webgl/shaders/effects/GlitchEffect.js.map +1 -0
  237. package/dist/src/core/renderers/webgl/shaders/effects/GrayscaleEffect.d.ts +22 -0
  238. package/dist/src/core/renderers/webgl/shaders/effects/GrayscaleEffect.js +45 -0
  239. package/dist/src/core/renderers/webgl/shaders/effects/GrayscaleEffect.js.map +1 -0
  240. package/dist/src/core/renderers/webgl/shaders/effects/HolePunchEffect.d.ts +58 -0
  241. package/dist/src/core/renderers/webgl/shaders/effects/HolePunchEffect.js +80 -0
  242. package/dist/src/core/renderers/webgl/shaders/effects/HolePunchEffect.js.map +1 -0
  243. package/dist/src/core/renderers/webgl/shaders/effects/LinearGradientEffect.d.ts +34 -0
  244. package/dist/src/core/renderers/webgl/shaders/effects/LinearGradientEffect.js +113 -0
  245. package/dist/src/core/renderers/webgl/shaders/effects/LinearGradientEffect.js.map +1 -0
  246. package/dist/src/core/renderers/webgl/shaders/effects/RadialGradientEffect.d.ts +40 -0
  247. package/dist/src/core/renderers/webgl/shaders/effects/RadialGradientEffect.js +126 -0
  248. package/dist/src/core/renderers/webgl/shaders/effects/RadialGradientEffect.js.map +1 -0
  249. package/dist/src/core/renderers/webgl/shaders/effects/RadialProgressEffect.d.ts +61 -0
  250. package/dist/src/core/renderers/webgl/shaders/effects/RadialProgressEffect.js +127 -0
  251. package/dist/src/core/renderers/webgl/shaders/effects/RadialProgressEffect.js.map +1 -0
  252. package/dist/src/core/renderers/webgl/shaders/effects/RadiusEffect.d.ts +40 -0
  253. package/dist/src/core/renderers/webgl/shaders/effects/RadiusEffect.js +71 -0
  254. package/dist/src/core/renderers/webgl/shaders/effects/RadiusEffect.js.map +1 -0
  255. package/dist/src/core/renderers/webgl/shaders/effects/ShaderEffect.d.ts +115 -0
  256. package/dist/src/core/renderers/webgl/shaders/effects/ShaderEffect.js +61 -0
  257. package/dist/src/core/renderers/webgl/shaders/effects/ShaderEffect.js.map +1 -0
  258. package/dist/src/core/shaders/canvas/Border.d.ts +8 -2
  259. package/dist/src/core/shaders/canvas/Border.js +64 -25
  260. package/dist/src/core/shaders/canvas/Border.js.map +1 -1
  261. package/dist/src/core/shaders/canvas/HolePunch.js +4 -3
  262. package/dist/src/core/shaders/canvas/HolePunch.js.map +1 -1
  263. package/dist/src/core/shaders/canvas/LinearGradient.js +7 -5
  264. package/dist/src/core/shaders/canvas/LinearGradient.js.map +1 -1
  265. package/dist/src/core/shaders/canvas/RadialGradient.js +12 -10
  266. package/dist/src/core/shaders/canvas/RadialGradient.js.map +1 -1
  267. package/dist/src/core/shaders/canvas/Rounded.js +3 -3
  268. package/dist/src/core/shaders/canvas/Rounded.js.map +1 -1
  269. package/dist/src/core/shaders/canvas/RoundedWithBorder.d.ts +6 -3
  270. package/dist/src/core/shaders/canvas/RoundedWithBorder.js +41 -11
  271. package/dist/src/core/shaders/canvas/RoundedWithBorder.js.map +1 -1
  272. package/dist/src/core/shaders/canvas/RoundedWithBorderAndShadow.d.ts +2 -3
  273. package/dist/src/core/shaders/canvas/RoundedWithBorderAndShadow.js +46 -9
  274. package/dist/src/core/shaders/canvas/RoundedWithBorderAndShadow.js.map +1 -1
  275. package/dist/src/core/shaders/canvas/RoundedWithShadow.js +6 -5
  276. package/dist/src/core/shaders/canvas/RoundedWithShadow.js.map +1 -1
  277. package/dist/src/core/shaders/canvas/Shadow.js +4 -2
  278. package/dist/src/core/shaders/canvas/Shadow.js.map +1 -1
  279. package/dist/src/core/shaders/canvas/utils/render.d.ts +1 -1
  280. package/dist/src/core/shaders/canvas/utils/render.js +31 -18
  281. package/dist/src/core/shaders/canvas/utils/render.js.map +1 -1
  282. package/dist/src/core/shaders/templates/BorderTemplate.d.ts +11 -1
  283. package/dist/src/core/shaders/templates/BorderTemplate.js +30 -10
  284. package/dist/src/core/shaders/templates/BorderTemplate.js.map +1 -1
  285. package/dist/src/core/shaders/templates/HolePunchTemplate.d.ts +2 -2
  286. package/dist/src/core/shaders/templates/HolePunchTemplate.js +2 -2
  287. package/dist/src/core/shaders/templates/HolePunchTemplate.js.map +1 -1
  288. package/dist/src/core/shaders/templates/RadialGradientTemplate.d.ts +8 -6
  289. package/dist/src/core/shaders/templates/RadialGradientTemplate.js +2 -2
  290. package/dist/src/core/shaders/templates/RadialGradientTemplate.js.map +1 -1
  291. package/dist/src/core/shaders/webgl/Border.js +138 -84
  292. package/dist/src/core/shaders/webgl/Border.js.map +1 -1
  293. package/dist/src/core/shaders/webgl/Default.js +46 -47
  294. package/dist/src/core/shaders/webgl/Default.js.map +1 -1
  295. package/dist/src/core/shaders/webgl/DefaultBatched.js +61 -61
  296. package/dist/src/core/shaders/webgl/HolePunch.js +34 -34
  297. package/dist/src/core/shaders/webgl/HolePunch.js.map +1 -1
  298. package/dist/src/core/shaders/webgl/LinearGradient.js +60 -36
  299. package/dist/src/core/shaders/webgl/LinearGradient.js.map +1 -1
  300. package/dist/src/core/shaders/webgl/RadialGradient.js +60 -37
  301. package/dist/src/core/shaders/webgl/RadialGradient.js.map +1 -1
  302. package/dist/src/core/shaders/webgl/Rounded.js +74 -72
  303. package/dist/src/core/shaders/webgl/Rounded.js.map +1 -1
  304. package/dist/src/core/shaders/webgl/RoundedWithBorder.js +172 -113
  305. package/dist/src/core/shaders/webgl/RoundedWithBorder.js.map +1 -1
  306. package/dist/src/core/shaders/webgl/RoundedWithBorderAndShadow.js +191 -132
  307. package/dist/src/core/shaders/webgl/RoundedWithBorderAndShadow.js.map +1 -1
  308. package/dist/src/core/shaders/webgl/RoundedWithShadow.js +57 -55
  309. package/dist/src/core/shaders/webgl/RoundedWithShadow.js.map +1 -1
  310. package/dist/src/core/shaders/webgl/SdfShader.d.ts +0 -2
  311. package/dist/src/core/shaders/webgl/SdfShader.js +56 -66
  312. package/dist/src/core/shaders/webgl/SdfShader.js.map +1 -1
  313. package/dist/src/core/shaders/webgl/Shadow.js +89 -83
  314. package/dist/src/core/shaders/webgl/Shadow.js.map +1 -1
  315. package/dist/src/core/text-rendering/CanvasFontHandler.d.ts +59 -0
  316. package/dist/src/core/text-rendering/CanvasFontHandler.js +224 -0
  317. package/dist/src/core/text-rendering/CanvasFontHandler.js.map +1 -0
  318. package/dist/src/core/text-rendering/CanvasTextRenderer.d.ts +17 -0
  319. package/dist/src/core/text-rendering/CanvasTextRenderer.js +157 -0
  320. package/dist/src/core/text-rendering/CanvasTextRenderer.js.map +1 -0
  321. package/dist/src/core/text-rendering/SdfFontHandler.d.ts +182 -0
  322. package/dist/src/core/text-rendering/SdfFontHandler.js +379 -0
  323. package/dist/src/core/text-rendering/SdfFontHandler.js.map +1 -0
  324. package/dist/src/core/text-rendering/SdfTextRenderer.d.ts +17 -0
  325. package/dist/src/core/text-rendering/SdfTextRenderer.js +301 -0
  326. package/dist/src/core/text-rendering/SdfTextRenderer.js.map +1 -0
  327. package/dist/src/core/text-rendering/TextLayoutEngine.d.ts +18 -0
  328. package/dist/src/core/text-rendering/TextLayoutEngine.js +380 -0
  329. package/dist/src/core/text-rendering/TextLayoutEngine.js.map +1 -0
  330. package/dist/src/core/text-rendering/TextRenderer.d.ts +383 -0
  331. package/{src/core/text-rendering/renderers/SdfTextRenderer/internal/getUnicodeCodepoints.ts → dist/src/core/text-rendering/TextRenderer.js} +20 -38
  332. package/dist/src/core/text-rendering/TextRenderer.js.map +1 -0
  333. package/dist/src/core/text-rendering/TextTextureRendererUtils.js.map +1 -1
  334. package/dist/src/core/text-rendering/Utils.d.ts +30 -0
  335. package/dist/src/core/text-rendering/Utils.js +84 -0
  336. package/dist/src/core/text-rendering/Utils.js.map +1 -0
  337. package/dist/src/core/text-rendering/font-face-types/SdfTrFontFace/SdfTrFontFace.js +2 -2
  338. package/dist/src/core/text-rendering/font-face-types/SdfTrFontFace/SdfTrFontFace.js.map +1 -1
  339. package/dist/src/core/text-rendering/renderers/CanvasTextRenderer.js +0 -5
  340. package/dist/src/core/text-rendering/renderers/CanvasTextRenderer.js.map +1 -1
  341. package/dist/src/core/text-rendering/renderers/LightningTextTextureRenderer.d.ts +1 -7
  342. package/dist/src/core/text-rendering/renderers/LightningTextTextureRenderer.js +2 -50
  343. package/dist/src/core/text-rendering/renderers/LightningTextTextureRenderer.js.map +1 -1
  344. package/dist/src/core/text-rendering/renderers/SdfTextRenderer/SdfTextRenderer.d.ts +3 -2
  345. package/dist/src/core/text-rendering/renderers/SdfTextRenderer/SdfTextRenderer.js +87 -46
  346. package/dist/src/core/text-rendering/renderers/SdfTextRenderer/SdfTextRenderer.js.map +1 -1
  347. package/dist/src/core/text-rendering/renderers/SdfTextRenderer/internal/layoutText.d.ts +1 -1
  348. package/dist/src/core/text-rendering/renderers/SdfTextRenderer/internal/layoutText.js +8 -66
  349. package/dist/src/core/text-rendering/renderers/SdfTextRenderer/internal/layoutText.js.map +1 -1
  350. package/dist/src/core/text-rendering/renderers/TextRenderer.d.ts +4 -14
  351. package/dist/src/core/text-rendering/renderers/TextRenderer.js +0 -3
  352. package/dist/src/core/text-rendering/renderers/TextRenderer.js.map +1 -1
  353. package/dist/src/core/textures/ColorTexture.d.ts +1 -1
  354. package/dist/src/core/textures/ColorTexture.js +3 -4
  355. package/dist/src/core/textures/ColorTexture.js.map +1 -1
  356. package/dist/src/core/textures/ImageTexture.d.ts +33 -14
  357. package/dist/src/core/textures/ImageTexture.js +46 -125
  358. package/dist/src/core/textures/ImageTexture.js.map +1 -1
  359. package/dist/src/core/textures/NoiseTexture.d.ts +3 -3
  360. package/dist/src/core/textures/NoiseTexture.js +8 -8
  361. package/dist/src/core/textures/NoiseTexture.js.map +1 -1
  362. package/dist/src/core/textures/RenderTexture.d.ts +7 -7
  363. package/dist/src/core/textures/RenderTexture.js +12 -12
  364. package/dist/src/core/textures/RenderTexture.js.map +1 -1
  365. package/dist/src/core/textures/SubTexture.d.ts +6 -8
  366. package/dist/src/core/textures/SubTexture.js +22 -40
  367. package/dist/src/core/textures/SubTexture.js.map +1 -1
  368. package/dist/src/core/textures/Texture.d.ts +74 -15
  369. package/dist/src/core/textures/Texture.js +131 -19
  370. package/dist/src/core/textures/Texture.js.map +1 -1
  371. package/dist/src/core/utils.d.ts +2 -1
  372. package/dist/src/core/utils.js +1 -1
  373. package/dist/src/core/utils.js.map +1 -1
  374. package/dist/src/main-api/DynamicShaderController.d.ts +29 -0
  375. package/dist/src/main-api/DynamicShaderController.js +58 -0
  376. package/dist/src/main-api/DynamicShaderController.js.map +1 -0
  377. package/dist/src/main-api/Inspector.d.ts +129 -1
  378. package/dist/src/main-api/Inspector.js +462 -23
  379. package/dist/src/main-api/Inspector.js.map +1 -1
  380. package/dist/src/main-api/Renderer.d.ts +223 -41
  381. package/dist/src/main-api/Renderer.js +107 -62
  382. package/dist/src/main-api/Renderer.js.map +1 -1
  383. package/dist/src/main-api/ShaderController.d.ts +31 -0
  384. package/dist/src/main-api/ShaderController.js +37 -0
  385. package/dist/src/main-api/ShaderController.js.map +1 -0
  386. package/dist/src/utils.d.ts +0 -2
  387. package/dist/src/utils.js +0 -36
  388. package/dist/src/utils.js.map +1 -1
  389. package/dist/tsconfig.dist.tsbuildinfo +1 -1
  390. package/exports/canvas-shaders.ts +28 -28
  391. package/exports/canvas.ts +45 -45
  392. package/exports/index.ts +90 -90
  393. package/exports/inspector.ts +24 -24
  394. package/exports/platform.ts +31 -0
  395. package/exports/utils.ts +50 -50
  396. package/exports/webgl-shaders.ts +28 -28
  397. package/exports/webgl.ts +52 -50
  398. package/package.json +16 -15
  399. package/src/common/CommonTypes.ts +163 -146
  400. package/src/common/EventEmitter.ts +77 -77
  401. package/src/common/IAnimationController.ts +92 -92
  402. package/src/common/IEventEmitter.ts +28 -28
  403. package/src/core/Autosizer.ts +224 -0
  404. package/src/core/CoreNode.test.ts +365 -202
  405. package/src/core/CoreNode.ts +2785 -2489
  406. package/src/core/CoreShaderManager.ts +188 -188
  407. package/src/core/CoreTextNode.test.ts +311 -0
  408. package/src/core/CoreTextNode.ts +607 -451
  409. package/src/core/CoreTextureManager.ts +484 -548
  410. package/src/core/Stage.ts +927 -800
  411. package/src/core/TextureError.ts +46 -0
  412. package/src/core/TextureMemoryManager.ts +418 -462
  413. package/src/core/animations/AnimationManager.ts +38 -38
  414. package/src/core/animations/CoreAnimation.ts +290 -291
  415. package/src/core/animations/CoreAnimationController.ts +169 -166
  416. package/src/core/lib/ContextSpy.ts +41 -41
  417. package/src/core/lib/Matrix3d.ts +244 -244
  418. package/src/core/lib/RenderCoords.ts +71 -71
  419. package/src/core/lib/collectionUtils.ts +83 -0
  420. package/src/core/lib/colorCache.ts +20 -0
  421. package/src/core/{renderers/canvas/internal/ColorUtils.ts → lib/colorParser.ts} +85 -85
  422. package/src/core/lib/utils.ts +337 -390
  423. package/src/core/platforms/GlContextWrapper.ts +291 -0
  424. package/src/core/platforms/Platform.ts +176 -77
  425. package/src/core/{lib → platforms/web}/WebGlContextWrapper.ts +1547 -1368
  426. package/src/core/platforms/web/WebPlatform.ts +306 -84
  427. package/src/core/platforms/web/WebPlatformChrome50.ts +63 -0
  428. package/src/core/platforms/web/WebPlatformLegacy.ts +150 -0
  429. package/src/core/platforms/web/WebPlatformNext.ts +57 -0
  430. package/src/core/platforms/web/lib/ImageWorker.ts +192 -0
  431. package/src/core/platforms/web/lib/ImageWorkerDefault.ts +117 -0
  432. package/src/core/platforms/web/lib/ImageWorkerLegacy.ts +87 -0
  433. package/src/core/platforms/web/lib/ImageWorkerNoOptions.ts +99 -0
  434. package/src/core/platforms/web/lib/createImageBitmap.ts +40 -0
  435. package/src/core/platforms/web/lib/textureCompression.ts +391 -0
  436. package/src/core/{lib → platforms/web/lib}/textureSvg.ts +66 -78
  437. package/src/core/platforms/web/lib/utils.ts +105 -0
  438. package/src/core/renderers/CoreContextTexture.ts +44 -43
  439. package/src/core/renderers/CoreRenderOp.ts +22 -22
  440. package/src/core/renderers/CoreRenderer.ts +71 -110
  441. package/src/core/renderers/CoreShaderNode.ts +202 -175
  442. package/src/core/renderers/CoreShaderProgram.ts +23 -23
  443. package/src/core/renderers/canvas/CanvasRenderer.ts +258 -302
  444. package/src/core/renderers/canvas/CanvasShaderNode.ts +95 -96
  445. package/src/core/renderers/canvas/CanvasTexture.ts +160 -156
  446. package/src/core/renderers/webgl/SdfRenderOp.ts +106 -0
  447. package/src/core/renderers/webgl/WebGlCtxRenderTexture.ts +89 -86
  448. package/src/core/renderers/webgl/WebGlCtxSubTexture.ts +95 -50
  449. package/src/core/renderers/webgl/WebGlCtxTexture.test.ts +113 -0
  450. package/src/core/renderers/webgl/WebGlCtxTexture.ts +350 -298
  451. package/src/core/renderers/webgl/WebGlRenderer.ts +727 -747
  452. package/src/core/renderers/webgl/WebGlShaderNode.ts +430 -435
  453. package/src/core/renderers/webgl/WebGlShaderProgram.ts +364 -341
  454. package/src/core/renderers/webgl/internal/BufferCollection.ts +54 -54
  455. package/src/core/renderers/webgl/internal/RendererUtils.ts +150 -155
  456. package/src/core/renderers/webgl/internal/ShaderUtils.ts +283 -281
  457. package/src/core/renderers/webgl/internal/WebGlUtils.ts +35 -35
  458. package/src/core/shaders/canvas/Border.ts +132 -78
  459. package/src/core/shaders/canvas/HolePunch.ts +56 -62
  460. package/src/core/shaders/canvas/LinearGradient.ts +73 -71
  461. package/src/core/shaders/canvas/RadialGradient.ts +96 -99
  462. package/src/core/shaders/canvas/Rounded.ts +55 -55
  463. package/src/core/shaders/canvas/RoundedWithBorder.ts +122 -74
  464. package/src/core/shaders/canvas/RoundedWithBorderAndShadow.ts +136 -90
  465. package/src/core/shaders/canvas/RoundedWithShadow.ts +71 -70
  466. package/src/core/shaders/canvas/Shadow.ts +54 -52
  467. package/src/core/shaders/canvas/utils/render.ts +160 -151
  468. package/src/core/shaders/templates/BorderTemplate.ts +145 -115
  469. package/src/core/shaders/templates/HolePunchTemplate.ts +82 -82
  470. package/src/core/shaders/templates/LinearGradientTemplate.ts +71 -71
  471. package/src/core/shaders/templates/RadialGradientTemplate.ts +83 -81
  472. package/src/core/shaders/templates/RoundedTemplate.ts +98 -98
  473. package/src/core/shaders/templates/RoundedWithBorderAndShadowTemplate.ts +38 -38
  474. package/src/core/shaders/templates/RoundedWithBorderTemplate.ts +35 -35
  475. package/src/core/shaders/templates/RoundedWithShadowTemplate.ts +35 -35
  476. package/src/core/shaders/templates/ShadowTemplate.ts +106 -106
  477. package/src/core/shaders/utils.ts +46 -46
  478. package/src/core/shaders/webgl/Border.ts +169 -116
  479. package/src/core/shaders/webgl/Default.ts +88 -89
  480. package/src/core/shaders/webgl/DefaultBatched.ts +129 -129
  481. package/src/core/shaders/webgl/HolePunch.ts +75 -75
  482. package/src/core/shaders/webgl/LinearGradient.ts +106 -82
  483. package/src/core/shaders/webgl/RadialGradient.ts +108 -85
  484. package/src/core/shaders/webgl/Rounded.ts +115 -117
  485. package/src/core/shaders/webgl/RoundedWithBorder.ts +210 -155
  486. package/src/core/shaders/webgl/RoundedWithBorderAndShadow.ts +234 -175
  487. package/src/core/shaders/webgl/RoundedWithShadow.ts +96 -98
  488. package/src/core/shaders/webgl/SdfShader.ts +122 -134
  489. package/src/core/shaders/webgl/Shadow.ts +121 -115
  490. package/src/core/text-rendering/CanvasFontHandler.ts +304 -0
  491. package/src/core/text-rendering/CanvasTextRenderer.ts +255 -0
  492. package/src/core/text-rendering/SdfFontHandler.ts +581 -0
  493. package/src/core/text-rendering/SdfTextRenderer.ts +403 -0
  494. package/src/core/text-rendering/TextLayoutEngine.ts +672 -0
  495. package/src/core/text-rendering/TextRenderer.ts +444 -0
  496. package/src/core/text-rendering/Utils.ts +99 -0
  497. package/src/core/text-rendering/tests/TextLayoutEngine.test.ts +453 -0
  498. package/src/core/textures/ColorTexture.ts +104 -102
  499. package/src/core/textures/ImageTexture.ts +292 -418
  500. package/src/core/textures/NoiseTexture.ts +106 -104
  501. package/src/core/textures/RenderTexture.ts +87 -85
  502. package/src/core/textures/SubTexture.ts +184 -205
  503. package/src/core/textures/Texture.ts +524 -381
  504. package/src/core/utils.ts +229 -227
  505. package/src/env.d.ts +7 -7
  506. package/src/main-api/INode.ts +100 -100
  507. package/src/main-api/Inspector.ts +1278 -569
  508. package/src/main-api/Renderer.ts +1030 -818
  509. package/src/main-api/utils.ts +45 -45
  510. package/src/utils.ts +220 -267
  511. package/COPYING +0 -1
  512. package/dist/src/core/renderers/webgl/WebGlRenderOp.d.ts +0 -44
  513. package/dist/src/core/renderers/webgl/WebGlRenderOp.js.map +0 -1
  514. package/src/core/lib/ImageWorker.ts +0 -286
  515. package/src/core/lib/textureCompression.ts +0 -152
  516. package/src/core/lib/validateImageBitmap.ts +0 -87
  517. package/src/core/renderers/canvas/internal/C2DShaderUtils.ts +0 -220
  518. package/src/core/renderers/webgl/WebGlRenderOp.ts +0 -161
  519. package/src/core/text-rendering/TextTextureRendererUtils.ts +0 -263
  520. package/src/core/text-rendering/TrFontManager.ts +0 -183
  521. package/src/core/text-rendering/font-face-types/SdfTrFontFace/SdfTrFontFace.ts +0 -176
  522. package/src/core/text-rendering/font-face-types/SdfTrFontFace/internal/FontShaper.ts +0 -139
  523. package/src/core/text-rendering/font-face-types/SdfTrFontFace/internal/SdfFontShaper.test.ts +0 -173
  524. package/src/core/text-rendering/font-face-types/SdfTrFontFace/internal/SdfFontShaper.ts +0 -171
  525. package/src/core/text-rendering/font-face-types/TrFontFace.ts +0 -187
  526. package/src/core/text-rendering/font-face-types/WebTrFontFace.ts +0 -94
  527. package/src/core/text-rendering/font-face-types/utils.ts +0 -39
  528. package/src/core/text-rendering/renderers/CanvasTextRenderer.ts +0 -514
  529. package/src/core/text-rendering/renderers/LightningTextTextureRenderer.ts +0 -863
  530. package/src/core/text-rendering/renderers/SdfTextRenderer/SdfTextRenderer.ts +0 -793
  531. package/src/core/text-rendering/renderers/SdfTextRenderer/internal/PeekableGenerator.test.ts +0 -48
  532. package/src/core/text-rendering/renderers/SdfTextRenderer/internal/PeekableGenerator.ts +0 -66
  533. package/src/core/text-rendering/renderers/SdfTextRenderer/internal/SpecialCodepoints.ts +0 -52
  534. package/src/core/text-rendering/renderers/SdfTextRenderer/internal/getStartConditions.ts +0 -117
  535. package/src/core/text-rendering/renderers/SdfTextRenderer/internal/getUnicodeCodepoints.test.ts +0 -133
  536. package/src/core/text-rendering/renderers/SdfTextRenderer/internal/layoutText.ts +0 -497
  537. package/src/core/text-rendering/renderers/SdfTextRenderer/internal/measureText.test.ts +0 -49
  538. package/src/core/text-rendering/renderers/SdfTextRenderer/internal/measureText.ts +0 -52
  539. package/src/core/text-rendering/renderers/SdfTextRenderer/internal/setRenderWindow.test.ts +0 -205
  540. package/src/core/text-rendering/renderers/SdfTextRenderer/internal/setRenderWindow.ts +0 -93
  541. package/src/core/text-rendering/renderers/TextRenderer.ts +0 -567
package/README.md CHANGED
@@ -1,147 +1,230 @@
1
- # Lightning 3 Renderer
2
-
3
- A powerful 2D scene renderer designed for rendering highly performant user
4
- interfaces on web browsers running on embedded devices using WebGL.
5
-
6
- The Renderer is part of the [LightningJS](https://lightningjs.io) project. While it is possible to use the renderer directly, it is not recommended. Instead, Lightning 3 works best when combined with [Blits](https://lightningjs.io/v3-docs/blits/getting_started/intro.html).
7
-
8
- ## Setup & Commands
9
-
10
- ```
11
- # Install renderer + example dependencies
12
- pnpm install
13
-
14
- # Build Renderer
15
- pnpm build
16
-
17
- # Build Renderer (watch mode)
18
- pnpm watch
19
-
20
- # Run unit tests
21
- pnpm test
22
-
23
- # Run Visual Regression Tests
24
- pnpm test:visual
25
-
26
- # Build API Documentation (builds into ./typedocs folder)
27
- pnpm typedoc
28
-
29
- # Launch Example Tests in dev mode (includes Build Renderer (watch mode))
30
- pnpm start
31
-
32
- # Launch Example Tests in production mode
33
- # IMPORTANT: To run test examples on embedded devices that use older browser versions
34
- # you MUST run the examples in this mode.
35
- pnpm start:prod
36
- ```
37
-
38
- ## Browser Targets
39
-
40
- The Lightning 3 Renderer's goal is to work with the following browser versions and above:
41
-
42
- - Chrome v38 (Released October 7, 2014)
43
-
44
- Any JavaScript language features or browser APIs that cannot be automatically transpiled or polyfilled by industry standard transpilers (such as Babel) to target these versions must be carefully considered before use.
45
-
46
- For a more detailed and comprehensive list of browsers and their features please see [browsers](./BROWSERS.md).
47
-
48
- ## Example Tests
49
-
50
- The Example Tests sub-project define a set of tests for various Renderer
51
- features. This is NOT an automated test. The command below will launch a
52
- web server which can be accessed by a web browser for manual testing. However,
53
- many of the Example Tests define Snapshots for the Visual Regression Test Runner
54
- (see below).
55
-
56
- The Example Tests can be launched with:
57
-
58
- ```
59
- pnpm start
60
- ```
61
-
62
- A hosted version can be found [here](https://lightning-js.github.io/renderer/).
63
-
64
- This supports modern browsers as well as Chrome 38 and above through a legacy build.
65
-
66
- See [examples/README.md](./examples/README.md) for more info.
67
-
68
- ## Visual Regression Tests
69
-
70
- In order to prevent bugs on existing Renderer features when new features or bug
71
- fixes are added, the Renderer includes a Visual Regression Test Runner along
72
- with a set of certified snapshot files that are checked into the repository.
73
-
74
- These tests can be launched with:
75
-
76
- ```
77
- pnpm test:visual
78
- ```
79
-
80
- The captured Snapshots of these tests are optionally defined in the individual
81
- Example Tests.
82
-
83
- See [visual-regression/README.md](./visual-regression/README.md) for more info.
84
-
85
- ## Manual Regression Tests
86
-
87
- See [docs/ManualRegressionTests.md].
88
-
89
- ## Release Procedure
90
-
91
- See [RELEASE.md](./RELEASE.md)
92
-
93
- ## Installing Fonts
94
-
95
- Fonts can be installed into the Font Manager exposed by the Renderer's Stage.
96
- There are two types of fonts that you can install, Web/Canvas2D fonts (WebTrFontFace)
97
- and SDF fonts (SdfTrFontFace). Install that fonts that your applications needs
98
- at start up so they are ready when your application is rendered.
99
-
100
- ```ts
101
- import {
102
- RendererMain,
103
- WebTrFontFace,
104
- SdfTrFontFace,
105
- } from '@lightningjs/renderer';
106
-
107
- import {
108
- WebGlCoreRenderer,
109
- SdfTextRenderer,
110
- } from '@lightningjs/renderer/webgl';
111
- import { CanvasTextRenderer } from '@lightningjs/renderer/canvas';
112
-
113
- const renderer = new RendererMain(
114
- {
115
- appWidth: 1920,
116
- appHeight: 1080,
117
- renderEngine: WebGlCoreRenderer,
118
- fontEngines: [SdfTextRenderer, CanvasTextRenderer],
119
- // ...Other Renderer Config
120
- },
121
- 'app', // id of div to insert Canvas.
122
- );
123
-
124
- // Load fonts into renderer
125
- renderer.stage.fontManager.addFontFace(
126
- new WebTrFontFace('Ubuntu', {}, '/fonts/Ubuntu-Regular.ttf'),
127
- );
128
-
129
- renderer.stage.fontManager.addFontFace(
130
- new SdfTrFontFace(
131
- 'Ubuntu',
132
- {},
133
- 'msdf',
134
- stage,
135
- '/fonts/Ubuntu-Regular.msdf.png',
136
- '/fonts/Ubuntu-Regular.msdf.json',
137
- ),
138
- );
139
- ```
140
-
141
- Please note that the WebGL renderer supports both SDF Fonts and Web Fonts, however the
142
- Canvas renderer only supports Web Fonts:
143
-
144
- | Font Type Renderer | SDF Font | Web Font |
145
- | ------------------ | -------- | -------- |
146
- | WebGL | Y | Y |
147
- | Canvas | N | Y |
1
+ # Lightning 3 Renderer
2
+
3
+ A powerful 2D scene renderer designed for rendering highly performant user
4
+ interfaces on web browsers running on embedded devices using WebGL.
5
+
6
+ The Renderer is part of the [LightningJS](https://lightningjs.io) project. While it is possible to use the renderer directly, it is not recommended. Instead, Lightning 3 works best when combined with [Blits](https://lightningjs.io/v3-docs/blits/getting_started/intro.html).
7
+
8
+ ## Setup & Commands
9
+
10
+ ```
11
+ # Install renderer + example dependencies
12
+ pnpm install
13
+
14
+ # Build Renderer
15
+ pnpm build
16
+
17
+ # Build Renderer (watch mode)
18
+ pnpm watch
19
+
20
+ # Run unit tests
21
+ pnpm test
22
+
23
+ # Run Visual Regression Tests
24
+ pnpm test:visual
25
+
26
+ # Build API Documentation (builds into ./typedocs folder)
27
+ pnpm typedoc
28
+
29
+ # Launch Example Tests in dev mode (includes Build Renderer (watch mode))
30
+ pnpm start
31
+
32
+ # Launch Example Tests in production mode
33
+ # IMPORTANT: To run test examples on embedded devices that use older browser versions
34
+ # you MUST run the examples in this mode.
35
+ pnpm start:prod
36
+ ```
37
+
38
+ ## Browser Targets
39
+
40
+ The Lightning 3 Renderer's goal is to work with the following browser versions and above:
41
+
42
+ - Chrome v38 (Released October 7, 2014)
43
+
44
+ Any JavaScript language features or browser APIs that cannot be automatically transpiled or polyfilled by industry standard transpilers (such as Babel) to target these versions must be carefully considered before use.
45
+
46
+ For a more detailed and comprehensive list of browsers and their features please see [browsers](./BROWSERS.md).
47
+
48
+ ## Platform Architecture
49
+
50
+ The Lightning 3 Renderer uses a modular platform architecture that allows it to adapt to different browser capabilities and environments. This enables optimal performance across a wide range of devices, from modern browsers to legacy embedded systems.
51
+
52
+ ### Available Platforms
53
+
54
+ The Renderer includes several platform implementations, each tailored for specific browser capabilities:
55
+
56
+ #### WebPlatform (Default)
57
+
58
+ The standard platform for modern browsers with full WebGL and createImageBitmap support.
59
+
60
+ - Uses XMLHttpRequest for loading resources
61
+ - Full createImageBitmap API with options (premultiplyAlpha, colorSpaceConversion, imageOrientation)
62
+ - Supports image cropping
63
+ - Multi-threaded image processing via Web Workers
64
+ - **Use case:** Modern browsers, default choice for most applications
65
+
66
+ #### WebPlatformNext
67
+
68
+ Platform using the modern Fetch API instead of XMLHttpRequest.
69
+
70
+ - Uses Fetch API for loading resources (promise-based, Service Worker compatible)
71
+ - Full createImageBitmap API with options
72
+ - Supports image cropping
73
+ - Multi-threaded image processing via Web Workers
74
+ - **Use case:** Modern browsers where Fetch API is preferred, progressive web apps
75
+
76
+ #### WebPlatformChrome50
77
+
78
+ Compatibility platform for browsers with limited createImageBitmap support (Chrome 50-51).
79
+
80
+ - Uses XMLHttpRequest for loading resources
81
+ - Limited createImageBitmap API (no options or cropping parameters)
82
+ - Multi-threaded image processing via Web Workers (if enabled)
83
+ - **Use case:** Chrome 50-51, browsers with basic createImageBitmap support
84
+
85
+ #### WebPlatformLegacy
86
+
87
+ Legacy platform for older browsers without createImageBitmap support.
88
+
89
+ - Uses direct Image element loading (no blob conversion for URLs)
90
+ - HTMLImageElement instead of createImageBitmap
91
+ - Single-threaded image processing (no Web Workers)
92
+ - No image cropping support
93
+ - No compressed texture support
94
+ - **Use case:** Chrome 38-49, older embedded device browsers
95
+
96
+ ### Using a Platform
97
+
98
+ Platforms can be specified when initializing the Renderer:
99
+
100
+ ```ts
101
+ import { RendererMain } from '@lightningjs/renderer';
102
+ import { WebGlRenderer } from '@lightningjs/renderer/webgl';
103
+ import {
104
+ WebPlatform,
105
+ WebPlatformNext,
106
+ WebPlatformChrome50,
107
+ WebPlatformLegacy,
108
+ } from '@lightningjs/renderer/platforms';
109
+
110
+ const renderer = new RendererMain(
111
+ {
112
+ appWidth: 1920,
113
+ appHeight: 1080,
114
+ renderEngine: WebGlRenderer,
115
+ platform: WebPlatformLegacy, // Use legacy platform for older browsers
116
+ // ...Other Renderer Config
117
+ },
118
+ 'app',
119
+ );
120
+ ```
121
+
122
+ **Note:** `WebPlatformLegacy` automatically sets `numImageWorkers` to 0 since it doesn't support Web Workers.
123
+
124
+ ### Creating Custom Platforms
125
+
126
+ You can create your own custom platform tailored to your specific device or environment by extending the `Platform` base class or one of the existing platform implementations.
127
+
128
+ **Key methods you can override:**
129
+
130
+ - `fetch(url: string): Promise<Blob>` - Resource loading
131
+ - `createImage(...)` - Image bitmap creation
132
+ - `loadImage(...)` - Complete image loading pipeline
133
+ - `loadSvg(...)` - SVG loading
134
+ - `loadCompressedTexture(...)` - Compressed texture loading
135
+ - `createCanvas()` - Canvas element creation
136
+ - `createContext()` - WebGL context creation
137
+ - `startLoop(stage)` - Animation loop implementation
138
+
139
+ This allows you to optimize the Renderer for proprietary platforms, embedded systems, or environments with unique capabilities and constraints.
140
+
141
+ ## Example Tests
142
+
143
+ The Example Tests sub-project define a set of tests for various Renderer
144
+ features. This is NOT an automated test. The command below will launch a
145
+ web server which can be accessed by a web browser for manual testing. However,
146
+ many of the Example Tests define Snapshots for the Visual Regression Test Runner
147
+ (see below).
148
+
149
+ The Example Tests can be launched with:
150
+
151
+ ```
152
+ pnpm start
153
+ ```
154
+
155
+ A hosted version can be found [here](https://lightning-js.github.io/renderer/).
156
+
157
+ This supports modern browsers as well as Chrome 38 and above through a legacy build.
158
+
159
+ See [examples/README.md](./examples/README.md) for more info.
160
+
161
+ ## Visual Regression Tests
162
+
163
+ In order to prevent bugs on existing Renderer features when new features or bug
164
+ fixes are added, the Renderer includes a Visual Regression Test Runner along
165
+ with a set of certified snapshot files that are checked into the repository.
166
+
167
+ These tests can be launched with:
168
+
169
+ ```
170
+ pnpm test:visual
171
+ ```
172
+
173
+ The captured Snapshots of these tests are optionally defined in the individual
174
+ Example Tests.
175
+
176
+ See [visual-regression/README.md](./visual-regression/README.md) for more info.
177
+
178
+ ## Manual Regression Tests
179
+
180
+ See [docs/ManualRegressionTests.md].
181
+
182
+ ## Release Procedure
183
+
184
+ See [RELEASE.md](./RELEASE.md)
185
+
186
+ ## Installing Fonts
187
+
188
+ Fonts can be installed into the Font Manager exposed by the Renderer's Stage.
189
+ There are two types of fonts that you can install, Web/Canvas2D fonts (WebTrFontFace)
190
+ and SDF fonts (SdfTrFontFace). Install that fonts that your applications needs
191
+ at start up so they are ready when your application is rendered.
192
+
193
+ ```ts
194
+ import { RendererMain } from '@lightningjs/renderer';
195
+
196
+ import {
197
+ WebGlCoreRenderer,
198
+ SdfTextRenderer,
199
+ } from '@lightningjs/renderer/webgl';
200
+ import { CanvasTextRenderer } from '@lightningjs/renderer/canvas';
201
+
202
+ const renderer = new RendererMain(
203
+ {
204
+ appWidth: 1920,
205
+ appHeight: 1080,
206
+ renderEngine: WebGlCoreRenderer,
207
+ fontEngines: [SdfTextRenderer, CanvasTextRenderer],
208
+ // ...Other Renderer Config
209
+ },
210
+ 'app', // id of div to insert Canvas.
211
+ );
212
+
213
+ // Load fonts by explicitly specifying the renderer type
214
+ await stage.loadFont('canvas', {
215
+ fontFamily: 'myWebFont',
216
+ fontUrl: '/fonts/my-font.ttf',
217
+ });
218
+
219
+ await stage.loadFont('sdf', {
220
+ fontFamily: 'mySdfFont',
221
+ atlasUrl: '/fonts/my-font-atlas.png',
222
+ atlasDataUrl: '/fonts/my-font-data.json',
223
+ });
224
+ ```
225
+
226
+ For more information see [Font Loading](./docs/fontLoading.md)
227
+
228
+ ## Migration Guide
229
+
230
+ Upgrading from Lightning 3 v2.x? See the [Migration Guide](./docs/migration-2x-to-3.0.md) for detailed information about breaking changes and how to update your code.
@@ -16,7 +16,7 @@
16
16
  *
17
17
  * @packageDocumentation
18
18
  */
19
- export { CanvasTextRenderer } from '../src/core/text-rendering/renderers/CanvasTextRenderer.js';
19
+ export { default as CanvasTextRenderer } from '../src/core/text-rendering/CanvasTextRenderer.js';
20
20
  export { CanvasRenderer } from '../src/core/renderers/canvas/CanvasRenderer.js';
21
21
  export { CanvasTexture } from '../src/core/renderers/canvas/CanvasTexture.js';
22
22
  export * from '../src/core/renderers/canvas/CanvasShaderNode.js';
@@ -34,7 +34,7 @@
34
34
  *
35
35
  * @packageDocumentation
36
36
  */
37
- export { CanvasTextRenderer } from '../src/core/text-rendering/renderers/CanvasTextRenderer.js';
37
+ export { default as CanvasTextRenderer } from '../src/core/text-rendering/CanvasTextRenderer.js';
38
38
  export { CanvasRenderer } from '../src/core/renderers/canvas/CanvasRenderer.js';
39
39
  export { CanvasTexture } from '../src/core/renderers/canvas/CanvasTexture.js';
40
40
  export * from '../src/core/renderers/canvas/CanvasShaderNode.js';
@@ -1 +1 @@
1
- {"version":3,"file":"canvas.js","sourceRoot":"","sources":["../../exports/canvas.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;GAiBG;AACH;;;;;;;;;;;;;;;;;GAiBG;AAEH,OAAO,EAAE,kBAAkB,EAAE,MAAM,4DAA4D,CAAC;AAChG,OAAO,EAAE,cAAc,EAAE,MAAM,gDAAgD,CAAC;AAChF,OAAO,EAAE,aAAa,EAAE,MAAM,+CAA+C,CAAC;AAC9E,cAAc,kDAAkD,CAAC;AACjE;;GAEG;AACH,OAAO,EAAE,cAAc,IAAI,kBAAkB,EAAE,MAAM,gDAAgD,CAAC"}
1
+ {"version":3,"file":"canvas.js","sourceRoot":"","sources":["../../exports/canvas.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;GAiBG;AACH;;;;;;;;;;;;;;;;;GAiBG;AAEH,OAAO,EAAE,OAAO,IAAI,kBAAkB,EAAE,MAAM,kDAAkD,CAAC;AACjG,OAAO,EAAE,cAAc,EAAE,MAAM,gDAAgD,CAAC;AAChF,OAAO,EAAE,aAAa,EAAE,MAAM,+CAA+C,CAAC;AAC9E,cAAc,kDAAkD,CAAC;AACjE;;GAEG;AACH,OAAO,EAAE,cAAc,IAAI,kBAAkB,EAAE,MAAM,gDAAgD,CAAC"}
@@ -22,12 +22,14 @@ export * from '../src/main-api/Renderer.js';
22
22
  export * from '../src/common/IAnimationController.js';
23
23
  export * from '../src/common/CommonTypes.js';
24
24
  export { CoreTextureManager, type TextureMap, } from '../src/core/CoreTextureManager.js';
25
+ export { TextureError, TextureErrorCode, isTextureError, } from '../src/core/TextureError.js';
26
+ export type { TextRenderer } from '../src/core/text-rendering/TextRenderer.js';
25
27
  export type { MemoryInfo } from '../src/core/TextureMemoryManager.js';
26
- export type { TextRendererMap } from '../src/core/text-rendering/renderers/TextRenderer.js';
27
- export type { TrFontFaceMap } from '../src/core/text-rendering/font-face-types/TrFontFace.js';
28
28
  export type { AnimationSettings } from '../src/core/animations/CoreAnimation.js';
29
+ export type { TimingFunction } from '../src/core/utils.js';
29
30
  export type { Inspector } from '../src/main-api/Inspector.js';
30
- export type { CoreNodeRenderState } from '../src/core/CoreNode.js';
31
+ export { CoreNode, type CoreNodeProps, type CoreNodeRenderState } from '../src/core/CoreNode.js';
32
+ export { CoreTextNode, type CoreTextNodeProps } from '../src/core/CoreTextNode.js';
31
33
  export * from '../src/core/renderers/CoreShaderNode.js';
32
34
  export * from '../src/core/shaders/templates/BorderTemplate.js';
33
35
  export * from '../src/core/shaders/templates/HolePunchTemplate.js';
@@ -39,9 +41,6 @@ export * from '../src/core/renderers/webgl/WebGlShaderProgram.js';
39
41
  export type { ShaderProgramSources } from '../src/core/renderers/webgl/internal/ShaderUtils.js';
40
42
  export * from '../src/core/textures/Texture.js';
41
43
  export { ImageTexture } from '../src/core/textures/ImageTexture.js';
42
- export * from '../src/core/text-rendering/font-face-types/TrFontFace.js';
43
- export * from '../src/core/text-rendering/font-face-types/WebTrFontFace.js';
44
- export * from '../src/core/text-rendering/font-face-types/SdfTrFontFace/SdfTrFontFace.js';
45
44
  export type * from '../src/core/Stage.js';
46
45
  /**
47
46
  * @deprecated Use `import { WebGlRenderer } @lightningjs/renderer/webgl` instead
@@ -42,6 +42,9 @@ export * from '../src/common/CommonTypes.js';
42
42
  // Selected types exported from the Core Renderer that can be used in the
43
43
  // context of the main API.
44
44
  export { CoreTextureManager, } from '../src/core/CoreTextureManager.js';
45
+ export { TextureError, TextureErrorCode, isTextureError, } from '../src/core/TextureError.js';
46
+ export { CoreNode } from '../src/core/CoreNode.js';
47
+ export { CoreTextNode } from '../src/core/CoreTextNode.js';
45
48
  export * from '../src/core/renderers/CoreShaderNode.js';
46
49
  export * from '../src/core/shaders/templates/BorderTemplate.js';
47
50
  export * from '../src/core/shaders/templates/HolePunchTemplate.js';
@@ -54,9 +57,4 @@ export * from '../src/core/renderers/webgl/WebGlShaderProgram.js';
54
57
  // Textures
55
58
  export * from '../src/core/textures/Texture.js';
56
59
  export { ImageTexture } from '../src/core/textures/ImageTexture.js';
57
- // Text Rendering & Fonts
58
- // export * from '../src/core/text-rendering/renderers/TextRenderer.js';
59
- export * from '../src/core/text-rendering/font-face-types/TrFontFace.js';
60
- export * from '../src/core/text-rendering/font-face-types/WebTrFontFace.js';
61
- export * from '../src/core/text-rendering/font-face-types/SdfTrFontFace/SdfTrFontFace.js';
62
60
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../exports/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;GAiBG;AAEH;;;;;;;;;;;;;;;;;;GAkBG;AAEH,cAAc,0BAA0B,CAAC;AACzC,cAAc,6BAA6B,CAAC;AAC5C,cAAc,uCAAuC,CAAC;AACtD,cAAc,8BAA8B,CAAC;AAE7C,yEAAyE;AACzE,2BAA2B;AAC3B,OAAO,EACL,kBAAkB,GAEnB,MAAM,mCAAmC,CAAC;AAQ3C,cAAc,yCAAyC,CAAC;AACxD,cAAc,iDAAiD,CAAC;AAChE,cAAc,oDAAoD,CAAC;AACnE,cAAc,kDAAkD,CAAC;AACjE,cAAc,iDAAiD,CAAC;AAChE,cAAc,yDAAyD,CAAC;AACxE,cAAc,yDAAyD,CAAC;AAExE,UAAU;AACV,cAAc,mDAAmD,CAAC;AAGlE,WAAW;AACX,cAAc,iCAAiC,CAAC;AAChD,OAAO,EAAE,YAAY,EAAE,MAAM,sCAAsC,CAAC;AAEpE,yBAAyB;AACzB,wEAAwE;AACxE,cAAc,0DAA0D,CAAC;AACzE,cAAc,6DAA6D,CAAC;AAC5E,cAAc,2EAA2E,CAAC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../exports/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;GAiBG;AAEH;;;;;;;;;;;;;;;;;;GAkBG;AAEH,cAAc,0BAA0B,CAAC;AACzC,cAAc,6BAA6B,CAAC;AAC5C,cAAc,uCAAuC,CAAC;AACtD,cAAc,8BAA8B,CAAC;AAE7C,yEAAyE;AACzE,2BAA2B;AAC3B,OAAO,EACL,kBAAkB,GAEnB,MAAM,mCAAmC,CAAC;AAC3C,OAAO,EACL,YAAY,EACZ,gBAAgB,EAChB,cAAc,GACf,MAAM,6BAA6B,CAAC;AAMrC,OAAO,EAAE,QAAQ,EAAgD,MAAM,yBAAyB,CAAC;AACjG,OAAO,EAAE,YAAY,EAA0B,MAAM,6BAA6B,CAAC;AAEnF,cAAc,yCAAyC,CAAC;AACxD,cAAc,iDAAiD,CAAC;AAChE,cAAc,oDAAoD,CAAC;AACnE,cAAc,kDAAkD,CAAC;AACjE,cAAc,iDAAiD,CAAC;AAChE,cAAc,yDAAyD,CAAC;AACxE,cAAc,yDAAyD,CAAC;AAExE,UAAU;AACV,cAAc,mDAAmD,CAAC;AAGlE,WAAW;AACX,cAAc,iCAAiC,CAAC;AAChD,OAAO,EAAE,YAAY,EAAE,MAAM,sCAAsC,CAAC"}
@@ -0,0 +1,7 @@
1
+ export { Platform, type PlatformSettings, } from '../src/core/platforms/Platform.js';
2
+ export { WebPlatform } from '../src/core/platforms/web/WebPlatform.js';
3
+ export { WebPlatformNext } from '../src/core/platforms/web/WebPlatformNext.js';
4
+ export { WebPlatformChrome50 } from '../src/core/platforms/web/WebPlatformChrome50.js';
5
+ export { WebPlatformLegacy } from '../src/core/platforms/web/WebPlatformLegacy.js';
6
+ export { GlContextWrapper } from '../src/core/platforms/GlContextWrapper.js';
7
+ export { WebGlContextWrapper } from '../src/core/platforms/web/WebGlContextWrapper.js';
@@ -0,0 +1,27 @@
1
+ /*
2
+ * If not stated otherwise in this file or this component's LICENSE file the
3
+ * following copyright and licenses apply:
4
+ *
5
+ * Copyright 2026 Comcast Cable Communications Management, LLC.
6
+ *
7
+ * Licensed under the Apache License, Version 2.0 (the License);
8
+ * you may not use this file except in compliance with the License.
9
+ * You may obtain a copy of the License at
10
+ *
11
+ * http://www.apache.org/licenses/LICENSE-2.0
12
+ *
13
+ * Unless required by applicable law or agreed to in writing, software
14
+ * distributed under the License is distributed on an "AS IS" BASIS,
15
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
16
+ * See the License for the specific language governing permissions and
17
+ * limitations under the License.
18
+ */
19
+ export { Platform, } from '../src/core/platforms/Platform.js';
20
+ export { WebPlatform } from '../src/core/platforms/web/WebPlatform.js';
21
+ export { WebPlatformNext } from '../src/core/platforms/web/WebPlatformNext.js';
22
+ export { WebPlatformChrome50 } from '../src/core/platforms/web/WebPlatformChrome50.js';
23
+ export { WebPlatformLegacy } from '../src/core/platforms/web/WebPlatformLegacy.js';
24
+ // GL Context Wrappers
25
+ export { GlContextWrapper } from '../src/core/platforms/GlContextWrapper.js';
26
+ export { WebGlContextWrapper } from '../src/core/platforms/web/WebGlContextWrapper.js';
27
+ //# sourceMappingURL=platform.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"platform.js","sourceRoot":"","sources":["../../exports/platform.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;GAiBG;AAEH,OAAO,EACL,QAAQ,GAET,MAAM,mCAAmC,CAAC;AAC3C,OAAO,EAAE,WAAW,EAAE,MAAM,0CAA0C,CAAC;AACvE,OAAO,EAAE,eAAe,EAAE,MAAM,8CAA8C,CAAC;AAC/E,OAAO,EAAE,mBAAmB,EAAE,MAAM,kDAAkD,CAAC;AACvF,OAAO,EAAE,iBAAiB,EAAE,MAAM,gDAAgD,CAAC;AAEnF,sBAAsB;AACtB,OAAO,EAAE,gBAAgB,EAAE,MAAM,2CAA2C,CAAC;AAC7E,OAAO,EAAE,mBAAmB,EAAE,MAAM,kDAAkD,CAAC"}
@@ -15,7 +15,7 @@
15
15
  *
16
16
  * @packageDocumentation
17
17
  */
18
- export { SdfTextRenderer } from '../src/core/text-rendering/renderers/SdfTextRenderer/SdfTextRenderer.js';
18
+ export * from '../src/core/text-rendering/SdfTextRenderer.js';
19
19
  export { WebGlRenderer } from '../src/core/renderers/webgl/WebGlRenderer.js';
20
20
  export { WebGlCtxTexture } from '../src/core/renderers/webgl/WebGlCtxTexture.js';
21
21
  export * from '../src/core/renderers/webgl/WebGlShaderNode.js';
@@ -25,3 +25,4 @@ export * from '../src/core/renderers/webgl/WebGlShaderNode.js';
25
25
  export { WebGlRenderer as WebGlCoreRenderer } from '../src/core/renderers/webgl/WebGlRenderer.js';
26
26
  export { WebGlRenderer as WebGlCoreCtxTexture } from '../src/core/renderers/webgl/WebGlRenderer.js';
27
27
  export * as shaders from './webgl-shaders.js';
28
+ export { default as SdfTextRenderer } from '../src/core/text-rendering/SdfTextRenderer.js';
@@ -33,7 +33,7 @@
33
33
  *
34
34
  * @packageDocumentation
35
35
  */
36
- export { SdfTextRenderer } from '../src/core/text-rendering/renderers/SdfTextRenderer/SdfTextRenderer.js';
36
+ export * from '../src/core/text-rendering/SdfTextRenderer.js';
37
37
  export { WebGlRenderer } from '../src/core/renderers/webgl/WebGlRenderer.js';
38
38
  export { WebGlCtxTexture } from '../src/core/renderers/webgl/WebGlCtxTexture.js';
39
39
  export * from '../src/core/renderers/webgl/WebGlShaderNode.js';
@@ -43,4 +43,5 @@ export * from '../src/core/renderers/webgl/WebGlShaderNode.js';
43
43
  export { WebGlRenderer as WebGlCoreRenderer } from '../src/core/renderers/webgl/WebGlRenderer.js';
44
44
  export { WebGlRenderer as WebGlCoreCtxTexture } from '../src/core/renderers/webgl/WebGlRenderer.js';
45
45
  export * as shaders from './webgl-shaders.js';
46
+ export { default as SdfTextRenderer } from '../src/core/text-rendering/SdfTextRenderer.js';
46
47
  //# sourceMappingURL=webgl.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"webgl.js","sourceRoot":"","sources":["../../exports/webgl.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;GAiBG;AAEH;;;;;;;;;;;;;;;;GAgBG;AAEH,OAAO,EAAE,eAAe,EAAE,MAAM,yEAAyE,CAAC;AAC1G,OAAO,EAAE,aAAa,EAAE,MAAM,8CAA8C,CAAC;AAC7E,OAAO,EAAE,eAAe,EAAE,MAAM,gDAAgD,CAAC;AAEjF,cAAc,gDAAgD,CAAC;AAE/D;;GAEG;AACH,OAAO,EAAE,aAAa,IAAI,iBAAiB,EAAE,MAAM,8CAA8C,CAAC;AAClG,OAAO,EAAE,aAAa,IAAI,mBAAmB,EAAE,MAAM,8CAA8C,CAAC;AAEpG,OAAO,KAAK,OAAO,MAAM,oBAAoB,CAAC"}
1
+ {"version":3,"file":"webgl.js","sourceRoot":"","sources":["../../exports/webgl.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;GAiBG;AAEH;;;;;;;;;;;;;;;;GAgBG;AAEH,cAAc,+CAA+C,CAAC;AAC9D,OAAO,EAAE,aAAa,EAAE,MAAM,8CAA8C,CAAC;AAC7E,OAAO,EAAE,eAAe,EAAE,MAAM,gDAAgD,CAAC;AAEjF,cAAc,gDAAgD,CAAC;AAE/D;;GAEG;AACH,OAAO,EAAE,aAAa,IAAI,iBAAiB,EAAE,MAAM,8CAA8C,CAAC;AAClG,OAAO,EAAE,aAAa,IAAI,mBAAmB,EAAE,MAAM,8CAA8C,CAAC;AAEpG,OAAO,KAAK,OAAO,MAAM,oBAAoB,CAAC;AAE9C,OAAO,EAAE,OAAO,IAAI,eAAe,EAAE,MAAM,+CAA+C,CAAC"}
@@ -1,4 +1,5 @@
1
1
  import type { CoreNodeRenderState } from '../core/CoreNode.js';
2
+ import type { TextureError } from '../core/TextureError.js';
2
3
  /**
3
4
  * Types shared between Main Space and Core Space
4
5
  *
@@ -10,8 +11,8 @@ import type { CoreNodeRenderState } from '../core/CoreNode.js';
10
11
  * Represents a width and height.
11
12
  */
12
13
  export interface Dimensions {
13
- width: number;
14
- height: number;
14
+ w: number;
15
+ h: number;
15
16
  }
16
17
  /**
17
18
  * Payload for when text is loaded
@@ -43,7 +44,7 @@ export type NodeTextFailedPayload = {
43
44
  */
44
45
  export type NodeTextureFailedPayload = {
45
46
  type: 'texture';
46
- error: Error;
47
+ error: TextureError;
47
48
  };
48
49
  /**
49
50
  * Payload for when texture failed to load
@@ -51,6 +52,13 @@ export type NodeTextureFailedPayload = {
51
52
  export type NodeTextureFreedPayload = {
52
53
  type: 'texture';
53
54
  };
55
+ /**
56
+ * Payload for when node renderable status changes
57
+ */
58
+ export type NodeRenderablePayload = {
59
+ type: 'renderable';
60
+ isRenderable: boolean;
61
+ };
54
62
  /**
55
63
  * Combined type for all failed payloads
56
64
  */
@@ -63,6 +71,10 @@ export type NodeLoadedEventHandler = (target: any, payload: NodeLoadedPayload) =
63
71
  * Event handler for when the texture/text of a node has failed to load
64
72
  */
65
73
  export type NodeFailedEventHandler = (target: any, payload: NodeFailedPayload) => void;
74
+ /**
75
+ * Event handler for when the renderable status of a node changes
76
+ */
77
+ export type NodeRenderableEventHandler = (target: any, payload: NodeRenderablePayload) => void;
66
78
  export type NodeRenderStatePayload = {
67
79
  type: 'renderState';
68
80
  payload: CoreNodeRenderState;
@@ -0,0 +1,35 @@
1
+ import { type CoreNode } from './CoreNode.js';
2
+ import type { Coord } from './lib/utils.js';
3
+ export declare enum AutosizeMode {
4
+ Children = 0,
5
+ Texture = 1
6
+ }
7
+ export declare enum AutosizeUpdateType {
8
+ None = 0,
9
+ Filtered = 1,
10
+ All = 2
11
+ }
12
+ export declare class Autosizer {
13
+ node: CoreNode;
14
+ id: number;
15
+ mode: AutosizeMode;
16
+ updateType: AutosizeUpdateType;
17
+ lastWidth: number;
18
+ lastHeight: number;
19
+ lastHasChanged: boolean;
20
+ flaggedChildren: number[];
21
+ childMap: Map<number, CoreNode>;
22
+ minX: number;
23
+ minY: number;
24
+ maxX: number;
25
+ maxY: number;
26
+ corners: [Coord, Coord, Coord, Coord];
27
+ constructor(node: CoreNode);
28
+ attach(node: CoreNode): void;
29
+ detach(node: CoreNode): void;
30
+ patch(id: number): void;
31
+ setUpdateType(updateType: AutosizeUpdateType): void;
32
+ setMode(mode: AutosizeMode): void;
33
+ update(): void;
34
+ destroy(): void;
35
+ }