@lightningtv/renderer 2.16.1 → 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 (625) 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 +8 -2
  6. package/dist/exports/canvas.js +8 -20
  7. package/dist/exports/canvas.js.map +1 -1
  8. package/dist/exports/index.d.ts +18 -13
  9. package/dist/exports/index.js +9 -27
  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 +11 -2
  19. package/dist/exports/webgl.js +11 -20
  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 +138 -105
  32. package/dist/src/core/CoreNode.js +805 -526
  33. package/dist/src/core/CoreNode.js.map +1 -1
  34. package/dist/src/core/CoreShaderManager.d.ts +29 -73
  35. package/dist/src/core/CoreShaderManager.js +92 -97
  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 +18 -3
  41. package/dist/src/core/CoreTextureManager.js +63 -107
  42. package/dist/src/core/CoreTextureManager.js.map +1 -1
  43. package/dist/src/core/Stage.d.ts +82 -55
  44. package/dist/src/core/Stage.js +410 -247
  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 +4 -3
  50. package/dist/src/core/TextureMemoryManager.js +103 -135
  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 -4
  55. package/dist/src/core/animations/CoreAnimation.js +9 -76
  56. package/dist/src/core/animations/CoreAnimation.js.map +1 -1
  57. package/dist/src/core/animations/CoreAnimationController.js +0 -18
  58. package/dist/src/core/animations/CoreAnimationController.js.map +1 -1
  59. package/dist/src/core/lib/ContextSpy.js +0 -18
  60. package/dist/src/core/lib/ContextSpy.js.map +1 -1
  61. package/dist/src/core/lib/ImageWorker.d.ts +2 -2
  62. package/dist/src/core/lib/ImageWorker.js +31 -30
  63. package/dist/src/core/lib/ImageWorker.js.map +1 -1
  64. package/dist/src/core/lib/Matrix3d.d.ts +1 -0
  65. package/dist/src/core/lib/Matrix3d.js +7 -19
  66. package/dist/src/core/lib/Matrix3d.js.map +1 -1
  67. package/dist/src/core/lib/RenderCoords.d.ts +9 -10
  68. package/dist/src/core/lib/RenderCoords.js +27 -55
  69. package/dist/src/core/lib/RenderCoords.js.map +1 -1
  70. package/dist/src/core/lib/WebGlContextWrapper.d.ts +147 -59
  71. package/dist/src/core/lib/WebGlContextWrapper.js +252 -158
  72. package/dist/src/core/lib/WebGlContextWrapper.js.map +1 -1
  73. package/dist/src/core/lib/collectionUtils.d.ts +5 -0
  74. package/dist/src/core/lib/collectionUtils.js +82 -0
  75. package/dist/src/core/lib/collectionUtils.js.map +1 -0
  76. package/dist/src/core/lib/colorCache.d.ts +1 -0
  77. package/dist/src/core/lib/colorCache.js +19 -0
  78. package/dist/src/core/lib/colorCache.js.map +1 -0
  79. package/dist/src/core/{renderers/canvas/internal/ColorUtils.d.ts → lib/colorParser.d.ts} +2 -0
  80. package/dist/src/core/{renderers/canvas/internal/ColorUtils.js → lib/colorParser.js} +15 -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 -86
  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 -2
  88. package/dist/src/core/lib/utils.js +21 -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 +5 -0
  94. package/dist/src/core/platforms/Platform.js +0 -18
  95. package/dist/src/core/platforms/Platform.js.map +1 -1
  96. package/dist/src/core/platforms/web/WebPlatform.d.ts +1 -0
  97. package/dist/src/core/platforms/web/WebPlatform.js +39 -7
  98. package/dist/src/core/platforms/web/WebPlatform.js.map +1 -1
  99. package/dist/src/core/renderers/CoreContextTexture.d.ts +1 -0
  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 +25 -23
  105. package/dist/src/core/renderers/CoreRenderer.js +1 -24
  106. package/dist/src/core/renderers/CoreRenderer.js.map +1 -1
  107. package/dist/src/core/renderers/CoreShaderNode.d.ts +10 -0
  108. package/dist/src/core/renderers/CoreShaderNode.js +19 -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 +3 -5
  113. package/dist/src/core/renderers/canvas/CanvasRenderer.js +86 -83
  114. package/dist/src/core/renderers/canvas/CanvasRenderer.js.map +1 -1
  115. package/dist/src/core/renderers/canvas/CanvasShaderNode.js +2 -17
  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 +17 -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 -67
  131. package/dist/src/core/renderers/webgl/WebGlCtxTexture.js.map +1 -1
  132. package/dist/src/core/renderers/webgl/WebGlRenderer.d.ts +31 -19
  133. package/dist/src/core/renderers/webgl/WebGlRenderer.js +297 -200
  134. package/dist/src/core/renderers/webgl/WebGlRenderer.js.map +1 -1
  135. package/dist/src/core/renderers/webgl/WebGlShaderNode.d.ts +2 -4
  136. package/dist/src/core/renderers/webgl/WebGlShaderNode.js.map +1 -1
  137. package/dist/src/core/renderers/webgl/WebGlShaderProgram.d.ts +5 -5
  138. package/dist/src/core/renderers/webgl/WebGlShaderProgram.js +61 -34
  139. package/dist/src/core/renderers/webgl/WebGlShaderProgram.js.map +1 -1
  140. package/dist/src/core/renderers/webgl/internal/BufferCollection.d.ts +1 -0
  141. package/dist/src/core/renderers/webgl/internal/BufferCollection.js +12 -21
  142. package/dist/src/core/renderers/webgl/internal/BufferCollection.js.map +1 -1
  143. package/dist/src/core/renderers/webgl/internal/RendererUtils.js +0 -18
  144. package/dist/src/core/renderers/webgl/internal/RendererUtils.js.map +1 -1
  145. package/dist/src/core/renderers/webgl/internal/ShaderUtils.d.ts +32 -5
  146. package/dist/src/core/renderers/webgl/internal/ShaderUtils.js +50 -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 +2 -18
  156. package/dist/src/core/shaders/canvas/LinearGradient.js.map +1 -1
  157. package/dist/src/core/shaders/canvas/RadialGradient.js +5 -21
  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 +40 -26
  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 +43 -23
  166. package/dist/src/core/shaders/canvas/RoundedWithBorderAndShadow.js.map +1 -1
  167. package/dist/src/core/shaders/canvas/RoundedWithShadow.js +4 -18
  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 +11 -2
  175. package/dist/src/core/shaders/templates/BorderTemplate.js +30 -26
  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 +2 -18
  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 +0 -16
  186. package/dist/src/core/shaders/templates/RoundedTemplate.js.map +1 -1
  187. package/dist/src/core/shaders/templates/RoundedWithBorderAndShadowTemplate.js +0 -16
  188. package/dist/src/core/shaders/templates/RoundedWithBorderAndShadowTemplate.js.map +1 -1
  189. package/dist/src/core/shaders/templates/RoundedWithBorderTemplate.d.ts +1 -2
  190. package/dist/src/core/shaders/templates/RoundedWithBorderTemplate.js +3 -17
  191. package/dist/src/core/shaders/templates/RoundedWithBorderTemplate.js.map +1 -1
  192. package/dist/src/core/shaders/templates/RoundedWithShadowTemplate.js +0 -16
  193. package/dist/src/core/shaders/templates/RoundedWithShadowTemplate.js.map +1 -1
  194. package/dist/src/core/shaders/templates/ShadowTemplate.js +0 -16
  195. package/dist/src/core/shaders/templates/ShadowTemplate.js.map +1 -1
  196. package/dist/src/core/shaders/utils.js +0 -16
  197. package/dist/src/core/shaders/utils.js.map +1 -1
  198. package/dist/src/core/shaders/webgl/Border.js +75 -31
  199. package/dist/src/core/shaders/webgl/Border.js.map +1 -1
  200. package/dist/src/core/shaders/webgl/Default.js +6 -41
  201. package/dist/src/core/shaders/webgl/Default.js.map +1 -1
  202. package/dist/src/core/shaders/webgl/HolePunch.js +2 -18
  203. package/dist/src/core/shaders/webgl/HolePunch.js.map +1 -1
  204. package/dist/src/core/shaders/webgl/LinearGradient.js +68 -30
  205. package/dist/src/core/shaders/webgl/LinearGradient.js.map +1 -1
  206. package/dist/src/core/shaders/webgl/RadialGradient.js +52 -45
  207. package/dist/src/core/shaders/webgl/RadialGradient.js.map +1 -1
  208. package/dist/src/core/shaders/webgl/Rounded.js +25 -23
  209. package/dist/src/core/shaders/webgl/Rounded.js.map +1 -1
  210. package/dist/src/core/shaders/webgl/RoundedWithBorder.js +110 -48
  211. package/dist/src/core/shaders/webgl/RoundedWithBorder.js.map +1 -1
  212. package/dist/src/core/shaders/webgl/RoundedWithBorderAndShadow.js +114 -54
  213. package/dist/src/core/shaders/webgl/RoundedWithBorderAndShadow.js.map +1 -1
  214. package/dist/src/core/shaders/webgl/RoundedWithShadow.js +73 -34
  215. package/dist/src/core/shaders/webgl/RoundedWithShadow.js.map +1 -1
  216. package/dist/src/core/shaders/webgl/SdfShader.d.ts +0 -2
  217. package/dist/src/core/shaders/webgl/SdfShader.js +7 -35
  218. package/dist/src/core/shaders/webgl/SdfShader.js.map +1 -1
  219. package/dist/src/core/shaders/webgl/Shadow.js +39 -34
  220. package/dist/src/core/shaders/webgl/Shadow.js.map +1 -1
  221. package/dist/src/core/text-rendering/CanvasFontHandler.d.ts +59 -0
  222. package/dist/src/core/text-rendering/CanvasFontHandler.js +206 -0
  223. package/dist/src/core/text-rendering/CanvasFontHandler.js.map +1 -0
  224. package/dist/src/core/text-rendering/CanvasTextRenderer.d.ts +17 -0
  225. package/dist/src/core/text-rendering/CanvasTextRenderer.js +139 -0
  226. package/dist/src/core/text-rendering/CanvasTextRenderer.js.map +1 -0
  227. package/dist/src/core/text-rendering/SdfFontHandler.d.ts +167 -0
  228. package/dist/src/core/text-rendering/SdfFontHandler.js +371 -0
  229. package/dist/src/core/text-rendering/SdfFontHandler.js.map +1 -0
  230. package/dist/src/core/text-rendering/SdfTextRenderer.d.ts +18 -0
  231. package/dist/src/core/text-rendering/SdfTextRenderer.js +301 -0
  232. package/dist/src/core/text-rendering/SdfTextRenderer.js.map +1 -0
  233. package/dist/src/core/text-rendering/TextLayoutEngine.d.ts +18 -0
  234. package/dist/src/core/text-rendering/TextLayoutEngine.js +380 -0
  235. package/dist/src/core/text-rendering/TextLayoutEngine.js.map +1 -0
  236. package/dist/src/core/text-rendering/TextRenderer.d.ts +384 -0
  237. package/dist/src/core/text-rendering/TextRenderer.js +2 -0
  238. package/dist/src/core/text-rendering/TextRenderer.js.map +1 -0
  239. package/dist/src/core/text-rendering/Utils.d.ts +30 -0
  240. package/dist/src/core/text-rendering/Utils.js +66 -0
  241. package/dist/src/core/text-rendering/Utils.js.map +1 -0
  242. package/dist/src/core/textures/ColorTexture.d.ts +1 -1
  243. package/dist/src/core/textures/ColorTexture.js +3 -22
  244. package/dist/src/core/textures/ColorTexture.js.map +1 -1
  245. package/dist/src/core/textures/ImageTexture.d.ts +10 -3
  246. package/dist/src/core/textures/ImageTexture.js +33 -62
  247. package/dist/src/core/textures/ImageTexture.js.map +1 -1
  248. package/dist/src/core/textures/NoiseTexture.d.ts +3 -3
  249. package/dist/src/core/textures/NoiseTexture.js +8 -26
  250. package/dist/src/core/textures/NoiseTexture.js.map +1 -1
  251. package/dist/src/core/textures/RenderTexture.d.ts +7 -7
  252. package/dist/src/core/textures/RenderTexture.js +12 -30
  253. package/dist/src/core/textures/RenderTexture.js.map +1 -1
  254. package/dist/src/core/textures/SubTexture.d.ts +6 -8
  255. package/dist/src/core/textures/SubTexture.js +19 -55
  256. package/dist/src/core/textures/SubTexture.js.map +1 -1
  257. package/dist/src/core/textures/Texture.d.ts +80 -16
  258. package/dist/src/core/textures/Texture.js +131 -37
  259. package/dist/src/core/textures/Texture.js.map +1 -1
  260. package/dist/src/core/utils.d.ts +2 -1
  261. package/dist/src/core/utils.js +1 -19
  262. package/dist/src/core/utils.js.map +1 -1
  263. package/dist/src/main-api/INode.d.ts +9 -9
  264. package/dist/src/main-api/INode.js.map +1 -1
  265. package/dist/src/main-api/Inspector.d.ts +135 -2
  266. package/dist/src/main-api/Inspector.js +507 -30
  267. package/dist/src/main-api/Inspector.js.map +1 -1
  268. package/dist/src/main-api/Renderer.d.ts +246 -162
  269. package/dist/src/main-api/Renderer.js +192 -152
  270. package/dist/src/main-api/Renderer.js.map +1 -1
  271. package/dist/src/utils.d.ts +23 -4
  272. package/dist/src/utils.js +50 -27
  273. package/dist/src/utils.js.map +1 -1
  274. package/dist/tsconfig.dist.tsbuildinfo +1 -1
  275. package/dist/tsconfig.tsbuildinfo +1 -1
  276. package/exports/canvas-shaders.ts +11 -0
  277. package/exports/canvas.ts +8 -20
  278. package/exports/index.ts +24 -44
  279. package/exports/inspector.ts +0 -19
  280. package/exports/utils.ts +7 -19
  281. package/exports/webgl-shaders.ts +12 -0
  282. package/exports/webgl.ts +15 -20
  283. package/package.json +23 -20
  284. package/src/common/CommonTypes.ts +20 -22
  285. package/src/common/EventEmitter.ts +0 -19
  286. package/src/common/IAnimationController.ts +0 -18
  287. package/src/common/IEventEmitter.ts +0 -17
  288. package/src/core/Autosizer.ts +205 -0
  289. package/src/core/CoreNode.test.ts +378 -46
  290. package/src/core/CoreNode.ts +1007 -659
  291. package/src/core/CoreShaderManager.ts +128 -250
  292. package/src/core/CoreTextNode.ts +457 -321
  293. package/src/core/CoreTextureManager.ts +94 -115
  294. package/src/core/Stage.ts +516 -312
  295. package/src/core/TextureError.ts +46 -0
  296. package/src/core/TextureMemoryManager.ts +139 -175
  297. package/src/core/animations/AnimationManager.ts +0 -19
  298. package/src/core/animations/CoreAnimation.ts +16 -96
  299. package/src/core/animations/CoreAnimationController.ts +0 -19
  300. package/src/core/lib/ContextSpy.ts +0 -19
  301. package/src/core/lib/ImageWorker.ts +43 -31
  302. package/src/core/lib/Matrix3d.ts +7 -20
  303. package/src/core/lib/RenderCoords.ts +36 -67
  304. package/src/core/lib/WebGlContextWrapper.ts +353 -237
  305. package/src/core/lib/collectionUtils.ts +99 -0
  306. package/src/core/lib/colorCache.ts +20 -0
  307. package/src/core/{renderers/canvas/internal/ColorUtils.ts → lib/colorParser.ts} +16 -19
  308. package/src/core/lib/textureCompression.ts +434 -94
  309. package/src/core/lib/textureSvg.ts +0 -19
  310. package/src/core/lib/utils.ts +31 -19
  311. package/src/core/lib/validateImageBitmap.ts +17 -6
  312. package/src/core/platforms/Platform.ts +64 -0
  313. package/src/core/platforms/web/WebPlatform.ts +132 -0
  314. package/src/core/renderers/CoreContextTexture.ts +1 -19
  315. package/src/core/renderers/CoreRenderOp.ts +0 -19
  316. package/src/core/renderers/CoreRenderer.ts +34 -49
  317. package/src/core/renderers/CoreShaderNode.ts +202 -0
  318. package/src/core/renderers/CoreShaderProgram.ts +4 -0
  319. package/src/core/renderers/canvas/CanvasRenderer.ts +270 -0
  320. package/src/core/renderers/canvas/CanvasShaderNode.ts +79 -0
  321. package/src/core/renderers/canvas/{CanvasCoreTexture.ts → CanvasTexture.ts} +15 -27
  322. package/src/core/renderers/webgl/SdfRenderOp.ts +88 -0
  323. package/src/core/renderers/webgl/{WebGlCoreCtxRenderTexture.ts → WebGlCtxRenderTexture.ts} +15 -36
  324. package/src/core/renderers/webgl/WebGlCtxSubTexture.ts +76 -0
  325. package/src/core/renderers/webgl/{WebGlCoreCtxTexture.ts → WebGlCtxTexture.ts} +89 -70
  326. package/src/core/renderers/webgl/WebGlRenderer.ts +850 -0
  327. package/src/core/renderers/webgl/WebGlShaderNode.ts +430 -0
  328. package/src/core/renderers/webgl/WebGlShaderProgram.ts +356 -0
  329. package/src/core/renderers/webgl/internal/BufferCollection.ts +15 -23
  330. package/src/core/renderers/webgl/internal/RendererUtils.ts +0 -19
  331. package/src/core/renderers/webgl/internal/ShaderUtils.ts +143 -24
  332. package/src/core/renderers/webgl/internal/WebGlUtils.ts +0 -19
  333. package/src/core/shaders/canvas/Border.ts +119 -0
  334. package/src/core/shaders/canvas/HolePunch.ts +38 -0
  335. package/src/core/shaders/canvas/LinearGradient.ts +54 -0
  336. package/src/core/shaders/canvas/RadialGradient.ts +82 -0
  337. package/src/core/shaders/canvas/Rounded.ts +38 -0
  338. package/src/core/shaders/canvas/RoundedWithBorder.ts +105 -0
  339. package/src/core/shaders/canvas/RoundedWithBorderAndShadow.ts +118 -0
  340. package/src/core/shaders/canvas/RoundedWithShadow.ts +56 -0
  341. package/src/core/shaders/canvas/Shadow.ts +35 -0
  342. package/src/core/shaders/canvas/utils/render.ts +143 -0
  343. package/src/core/shaders/templates/BorderTemplate.ts +128 -0
  344. package/src/core/shaders/templates/HolePunchTemplate.ts +65 -0
  345. package/src/core/shaders/templates/LinearGradientTemplate.ts +54 -0
  346. package/src/core/shaders/templates/RadialGradientTemplate.ts +66 -0
  347. package/src/core/shaders/templates/RoundedTemplate.ts +81 -0
  348. package/src/core/shaders/templates/RoundedWithBorderAndShadowTemplate.ts +21 -0
  349. package/src/core/shaders/templates/RoundedWithBorderTemplate.ts +23 -0
  350. package/src/core/shaders/templates/RoundedWithShadowTemplate.ts +18 -0
  351. package/src/core/shaders/templates/ShadowTemplate.ts +89 -0
  352. package/src/core/shaders/utils.ts +30 -0
  353. package/src/core/shaders/webgl/Border.ts +159 -0
  354. package/src/core/shaders/webgl/Default.ts +52 -0
  355. package/src/core/shaders/webgl/HolePunch.ts +58 -0
  356. package/src/core/shaders/webgl/LinearGradient.ts +119 -0
  357. package/src/core/shaders/webgl/RadialGradient.ts +91 -0
  358. package/src/core/shaders/webgl/Rounded.ts +97 -0
  359. package/src/core/shaders/webgl/RoundedWithBorder.ts +212 -0
  360. package/src/core/shaders/webgl/RoundedWithBorderAndShadow.ts +234 -0
  361. package/src/core/shaders/webgl/RoundedWithShadow.ts +132 -0
  362. package/src/core/shaders/webgl/SdfShader.ts +104 -0
  363. package/src/core/shaders/webgl/Shadow.ts +119 -0
  364. package/src/core/text-rendering/CanvasFontHandler.ts +285 -0
  365. package/src/core/text-rendering/CanvasTextRenderer.ts +236 -0
  366. package/src/core/text-rendering/SdfFontHandler.ts +566 -0
  367. package/src/core/text-rendering/SdfTextRenderer.ts +406 -0
  368. package/src/core/text-rendering/TextLayoutEngine.ts +672 -0
  369. package/src/core/text-rendering/TextRenderer.ts +426 -0
  370. package/src/core/text-rendering/Utils.ts +80 -0
  371. package/src/core/text-rendering/tests/TextLayoutEngine.test.ts +434 -0
  372. package/src/core/textures/ColorTexture.ts +7 -24
  373. package/src/core/textures/ImageTexture.ts +72 -78
  374. package/src/core/textures/NoiseTexture.ts +14 -31
  375. package/src/core/textures/RenderTexture.ts +18 -35
  376. package/src/core/textures/SubTexture.ts +25 -65
  377. package/src/core/textures/Texture.ts +182 -53
  378. package/src/core/utils.ts +9 -26
  379. package/src/main-api/INode.ts +10 -29
  380. package/src/main-api/Inspector.ts +794 -38
  381. package/src/main-api/Renderer.ts +476 -274
  382. package/src/utils.ts +83 -29
  383. package/dist/src/core/animations/SimpleAnimation.d.ts +0 -28
  384. package/dist/src/core/animations/SimpleAnimation.js +0 -96
  385. package/dist/src/core/animations/SimpleAnimation.js.map +0 -1
  386. package/dist/src/core/platform.d.ts +0 -10
  387. package/dist/src/core/platform.js +0 -81
  388. package/dist/src/core/platform.js.map +0 -1
  389. package/dist/src/core/renderers/CoreShader.d.ts +0 -9
  390. package/dist/src/core/renderers/CoreShader.js +0 -28
  391. package/dist/src/core/renderers/CoreShader.js.map +0 -1
  392. package/dist/src/core/renderers/canvas/CanvasCoreRenderer.d.ts +0 -33
  393. package/dist/src/core/renderers/canvas/CanvasCoreRenderer.js +0 -250
  394. package/dist/src/core/renderers/canvas/CanvasCoreRenderer.js.map +0 -1
  395. package/dist/src/core/renderers/canvas/CanvasCoreTexture.d.ts +0 -16
  396. package/dist/src/core/renderers/canvas/CanvasCoreTexture.js +0 -124
  397. package/dist/src/core/renderers/canvas/CanvasCoreTexture.js.map +0 -1
  398. package/dist/src/core/renderers/canvas/internal/C2DShaderUtils.d.ts +0 -14
  399. package/dist/src/core/renderers/canvas/internal/C2DShaderUtils.js +0 -138
  400. package/dist/src/core/renderers/canvas/internal/C2DShaderUtils.js.map +0 -1
  401. package/dist/src/core/renderers/canvas/internal/ColorUtils.js.map +0 -1
  402. package/dist/src/core/renderers/canvas/shaders/UnsupportedShader.d.ts +0 -10
  403. package/dist/src/core/renderers/canvas/shaders/UnsupportedShader.js +0 -43
  404. package/dist/src/core/renderers/canvas/shaders/UnsupportedShader.js.map +0 -1
  405. package/dist/src/core/renderers/webgl/WebGlCoreCtxRenderTexture.d.ts +0 -12
  406. package/dist/src/core/renderers/webgl/WebGlCoreCtxRenderTexture.js +0 -58
  407. package/dist/src/core/renderers/webgl/WebGlCoreCtxRenderTexture.js.map +0 -1
  408. package/dist/src/core/renderers/webgl/WebGlCoreCtxSubTexture.d.ts +0 -9
  409. package/dist/src/core/renderers/webgl/WebGlCoreCtxSubTexture.js +0 -38
  410. package/dist/src/core/renderers/webgl/WebGlCoreCtxSubTexture.js.map +0 -1
  411. package/dist/src/core/renderers/webgl/WebGlCoreCtxTexture.d.ts +0 -56
  412. package/dist/src/core/renderers/webgl/WebGlCoreCtxTexture.js +0 -239
  413. package/dist/src/core/renderers/webgl/WebGlCoreCtxTexture.js.map +0 -1
  414. package/dist/src/core/renderers/webgl/WebGlCoreRenderOp.d.ts +0 -34
  415. package/dist/src/core/renderers/webgl/WebGlCoreRenderOp.js +0 -114
  416. package/dist/src/core/renderers/webgl/WebGlCoreRenderOp.js.map +0 -1
  417. package/dist/src/core/renderers/webgl/WebGlCoreRenderer.d.ts +0 -133
  418. package/dist/src/core/renderers/webgl/WebGlCoreRenderer.js +0 -616
  419. package/dist/src/core/renderers/webgl/WebGlCoreRenderer.js.map +0 -1
  420. package/dist/src/core/renderers/webgl/WebGlCoreShader.d.ts +0 -83
  421. package/dist/src/core/renderers/webgl/WebGlCoreShader.js +0 -233
  422. package/dist/src/core/renderers/webgl/WebGlCoreShader.js.map +0 -1
  423. package/dist/src/core/renderers/webgl/WebGlRenderOp.d.ts +0 -44
  424. package/dist/src/core/renderers/webgl/WebGlRenderOp.js +0 -118
  425. package/dist/src/core/renderers/webgl/WebGlRenderOp.js.map +0 -1
  426. package/dist/src/core/renderers/webgl/shaders/DefaultShader.d.ts +0 -9
  427. package/dist/src/core/renderers/webgl/shaders/DefaultShader.js +0 -87
  428. package/dist/src/core/renderers/webgl/shaders/DefaultShader.js.map +0 -1
  429. package/dist/src/core/renderers/webgl/shaders/DefaultShaderBatched.d.ts +0 -10
  430. package/dist/src/core/renderers/webgl/shaders/DefaultShaderBatched.js +0 -119
  431. package/dist/src/core/renderers/webgl/shaders/DefaultShaderBatched.js.map +0 -1
  432. package/dist/src/core/renderers/webgl/shaders/DynamicShader.d.ts +0 -29
  433. package/dist/src/core/renderers/webgl/shaders/DynamicShader.js +0 -413
  434. package/dist/src/core/renderers/webgl/shaders/DynamicShader.js.map +0 -1
  435. package/dist/src/core/renderers/webgl/shaders/RoundedRectangle.d.ts +0 -28
  436. package/dist/src/core/renderers/webgl/shaders/RoundedRectangle.js +0 -131
  437. package/dist/src/core/renderers/webgl/shaders/RoundedRectangle.js.map +0 -1
  438. package/dist/src/core/renderers/webgl/shaders/SdfShader.d.ts +0 -47
  439. package/dist/src/core/renderers/webgl/shaders/SdfShader.js +0 -160
  440. package/dist/src/core/renderers/webgl/shaders/SdfShader.js.map +0 -1
  441. package/dist/src/core/renderers/webgl/shaders/effects/BorderBottomEffect.d.ts +0 -31
  442. package/dist/src/core/renderers/webgl/shaders/effects/BorderBottomEffect.js +0 -71
  443. package/dist/src/core/renderers/webgl/shaders/effects/BorderBottomEffect.js.map +0 -1
  444. package/dist/src/core/renderers/webgl/shaders/effects/BorderEffect.d.ts +0 -30
  445. package/dist/src/core/renderers/webgl/shaders/effects/BorderEffect.js +0 -58
  446. package/dist/src/core/renderers/webgl/shaders/effects/BorderEffect.js.map +0 -1
  447. package/dist/src/core/renderers/webgl/shaders/effects/BorderLeftEffect.d.ts +0 -31
  448. package/dist/src/core/renderers/webgl/shaders/effects/BorderLeftEffect.js +0 -71
  449. package/dist/src/core/renderers/webgl/shaders/effects/BorderLeftEffect.js.map +0 -1
  450. package/dist/src/core/renderers/webgl/shaders/effects/BorderRightEffect.d.ts +0 -31
  451. package/dist/src/core/renderers/webgl/shaders/effects/BorderRightEffect.js +0 -71
  452. package/dist/src/core/renderers/webgl/shaders/effects/BorderRightEffect.js.map +0 -1
  453. package/dist/src/core/renderers/webgl/shaders/effects/BorderTopEffect.d.ts +0 -31
  454. package/dist/src/core/renderers/webgl/shaders/effects/BorderTopEffect.js +0 -71
  455. package/dist/src/core/renderers/webgl/shaders/effects/BorderTopEffect.js.map +0 -1
  456. package/dist/src/core/renderers/webgl/shaders/effects/EffectUtils.d.ts +0 -9
  457. package/dist/src/core/renderers/webgl/shaders/effects/EffectUtils.js +0 -136
  458. package/dist/src/core/renderers/webgl/shaders/effects/EffectUtils.js.map +0 -1
  459. package/dist/src/core/renderers/webgl/shaders/effects/FadeOutEffect.d.ts +0 -36
  460. package/dist/src/core/renderers/webgl/shaders/effects/FadeOutEffect.js +0 -85
  461. package/dist/src/core/renderers/webgl/shaders/effects/FadeOutEffect.js.map +0 -1
  462. package/dist/src/core/renderers/webgl/shaders/effects/GlitchEffect.d.ts +0 -45
  463. package/dist/src/core/renderers/webgl/shaders/effects/GlitchEffect.js +0 -104
  464. package/dist/src/core/renderers/webgl/shaders/effects/GlitchEffect.js.map +0 -1
  465. package/dist/src/core/renderers/webgl/shaders/effects/GrayscaleEffect.d.ts +0 -22
  466. package/dist/src/core/renderers/webgl/shaders/effects/GrayscaleEffect.js +0 -45
  467. package/dist/src/core/renderers/webgl/shaders/effects/GrayscaleEffect.js.map +0 -1
  468. package/dist/src/core/renderers/webgl/shaders/effects/HolePunchEffect.d.ts +0 -58
  469. package/dist/src/core/renderers/webgl/shaders/effects/HolePunchEffect.js +0 -80
  470. package/dist/src/core/renderers/webgl/shaders/effects/HolePunchEffect.js.map +0 -1
  471. package/dist/src/core/renderers/webgl/shaders/effects/LinearGradientEffect.d.ts +0 -35
  472. package/dist/src/core/renderers/webgl/shaders/effects/LinearGradientEffect.js +0 -129
  473. package/dist/src/core/renderers/webgl/shaders/effects/LinearGradientEffect.js.map +0 -1
  474. package/dist/src/core/renderers/webgl/shaders/effects/RadialGradientEffect.d.ts +0 -39
  475. package/dist/src/core/renderers/webgl/shaders/effects/RadialGradientEffect.js +0 -116
  476. package/dist/src/core/renderers/webgl/shaders/effects/RadialGradientEffect.js.map +0 -1
  477. package/dist/src/core/renderers/webgl/shaders/effects/RadialProgressEffect.d.ts +0 -61
  478. package/dist/src/core/renderers/webgl/shaders/effects/RadialProgressEffect.js +0 -127
  479. package/dist/src/core/renderers/webgl/shaders/effects/RadialProgressEffect.js.map +0 -1
  480. package/dist/src/core/renderers/webgl/shaders/effects/RadiusEffect.d.ts +0 -40
  481. package/dist/src/core/renderers/webgl/shaders/effects/RadiusEffect.js +0 -71
  482. package/dist/src/core/renderers/webgl/shaders/effects/RadiusEffect.js.map +0 -1
  483. package/dist/src/core/renderers/webgl/shaders/effects/ShaderEffect.d.ts +0 -115
  484. package/dist/src/core/renderers/webgl/shaders/effects/ShaderEffect.js +0 -61
  485. package/dist/src/core/renderers/webgl/shaders/effects/ShaderEffect.js.map +0 -1
  486. package/dist/src/core/shaders/templates/shaderUtils.d.ts +0 -5
  487. package/dist/src/core/shaders/templates/shaderUtils.js +0 -41
  488. package/dist/src/core/shaders/templates/shaderUtils.js.map +0 -1
  489. package/dist/src/core/shaders/webgl/Magnifier.d.ts +0 -46
  490. package/dist/src/core/shaders/webgl/Magnifier.js +0 -107
  491. package/dist/src/core/shaders/webgl/Magnifier.js.map +0 -1
  492. package/dist/src/core/shaders/webgl/RoundedWithBorder copy.d.ts +0 -3
  493. package/dist/src/core/shaders/webgl/RoundedWithBorder copy.js +0 -218
  494. package/dist/src/core/shaders/webgl/RoundedWithBorder copy.js.map +0 -1
  495. package/dist/src/core/text-rendering/TextRenderingUtils.d.ts +0 -12
  496. package/dist/src/core/text-rendering/TextRenderingUtils.js +0 -14
  497. package/dist/src/core/text-rendering/TextRenderingUtils.js.map +0 -1
  498. package/dist/src/core/text-rendering/TextTextureRendererUtils.d.ts +0 -72
  499. package/dist/src/core/text-rendering/TextTextureRendererUtils.js +0 -217
  500. package/dist/src/core/text-rendering/TextTextureRendererUtils.js.map +0 -1
  501. package/dist/src/core/text-rendering/TrFontManager.d.ts +0 -26
  502. package/dist/src/core/text-rendering/TrFontManager.js +0 -131
  503. package/dist/src/core/text-rendering/TrFontManager.js.map +0 -1
  504. package/dist/src/core/text-rendering/font-face-types/SdfTrFontFace/SdfTrFontFace.d.ts +0 -39
  505. package/dist/src/core/text-rendering/font-face-types/SdfTrFontFace/SdfTrFontFace.js +0 -125
  506. package/dist/src/core/text-rendering/font-face-types/SdfTrFontFace/SdfTrFontFace.js.map +0 -1
  507. package/dist/src/core/text-rendering/font-face-types/SdfTrFontFace/internal/FontShaper.d.ts +0 -103
  508. package/dist/src/core/text-rendering/font-face-types/SdfTrFontFace/internal/FontShaper.js +0 -21
  509. package/dist/src/core/text-rendering/font-face-types/SdfTrFontFace/internal/FontShaper.js.map +0 -1
  510. package/dist/src/core/text-rendering/font-face-types/SdfTrFontFace/internal/SdfFontShaper.d.ts +0 -62
  511. package/dist/src/core/text-rendering/font-face-types/SdfTrFontFace/internal/SdfFontShaper.js +0 -88
  512. package/dist/src/core/text-rendering/font-face-types/SdfTrFontFace/internal/SdfFontShaper.js.map +0 -1
  513. package/dist/src/core/text-rendering/font-face-types/TrFontFace.d.ts +0 -118
  514. package/dist/src/core/text-rendering/font-face-types/TrFontFace.js +0 -63
  515. package/dist/src/core/text-rendering/font-face-types/TrFontFace.js.map +0 -1
  516. package/dist/src/core/text-rendering/font-face-types/WebTrFontFace.d.ts +0 -14
  517. package/dist/src/core/text-rendering/font-face-types/WebTrFontFace.js +0 -66
  518. package/dist/src/core/text-rendering/font-face-types/WebTrFontFace.js.map +0 -1
  519. package/dist/src/core/text-rendering/font-face-types/utils.d.ts +0 -1
  520. package/dist/src/core/text-rendering/font-face-types/utils.js +0 -38
  521. package/dist/src/core/text-rendering/font-face-types/utils.js.map +0 -1
  522. package/dist/src/core/text-rendering/renderers/CanvasTextRenderer.d.ts +0 -59
  523. package/dist/src/core/text-rendering/renderers/CanvasTextRenderer.js +0 -397
  524. package/dist/src/core/text-rendering/renderers/CanvasTextRenderer.js.map +0 -1
  525. package/dist/src/core/text-rendering/renderers/LightningTextTextureRenderer.d.ts +0 -120
  526. package/dist/src/core/text-rendering/renderers/LightningTextTextureRenderer.js +0 -551
  527. package/dist/src/core/text-rendering/renderers/LightningTextTextureRenderer.js.map +0 -1
  528. package/dist/src/core/text-rendering/renderers/SdfTextRenderer/SdfTextRenderer.d.ts +0 -92
  529. package/dist/src/core/text-rendering/renderers/SdfTextRenderer/SdfTextRenderer.js +0 -607
  530. package/dist/src/core/text-rendering/renderers/SdfTextRenderer/SdfTextRenderer.js.map +0 -1
  531. package/dist/src/core/text-rendering/renderers/SdfTextRenderer/internal/PeekableGenerator.d.ts +0 -12
  532. package/dist/src/core/text-rendering/renderers/SdfTextRenderer/internal/PeekableGenerator.js +0 -61
  533. package/dist/src/core/text-rendering/renderers/SdfTextRenderer/internal/PeekableGenerator.js.map +0 -1
  534. package/dist/src/core/text-rendering/renderers/SdfTextRenderer/internal/SpecialCodepoints.d.ts +0 -33
  535. package/dist/src/core/text-rendering/renderers/SdfTextRenderer/internal/SpecialCodepoints.js +0 -52
  536. package/dist/src/core/text-rendering/renderers/SdfTextRenderer/internal/SpecialCodepoints.js.map +0 -1
  537. package/dist/src/core/text-rendering/renderers/SdfTextRenderer/internal/constants.d.ts +0 -13
  538. package/dist/src/core/text-rendering/renderers/SdfTextRenderer/internal/constants.js +0 -32
  539. package/dist/src/core/text-rendering/renderers/SdfTextRenderer/internal/constants.js.map +0 -1
  540. package/dist/src/core/text-rendering/renderers/SdfTextRenderer/internal/getStartConditions.d.ts +0 -23
  541. package/dist/src/core/text-rendering/renderers/SdfTextRenderer/internal/getStartConditions.js +0 -84
  542. package/dist/src/core/text-rendering/renderers/SdfTextRenderer/internal/getStartConditions.js.map +0 -1
  543. package/dist/src/core/text-rendering/renderers/SdfTextRenderer/internal/getUnicodeCodepoints.d.ts +0 -4
  544. package/dist/src/core/text-rendering/renderers/SdfTextRenderer/internal/getUnicodeCodepoints.js +0 -34
  545. package/dist/src/core/text-rendering/renderers/SdfTextRenderer/internal/getUnicodeCodepoints.js.map +0 -1
  546. package/dist/src/core/text-rendering/renderers/SdfTextRenderer/internal/layoutText.d.ts +0 -20
  547. package/dist/src/core/text-rendering/renderers/SdfTextRenderer/internal/layoutText.js +0 -308
  548. package/dist/src/core/text-rendering/renderers/SdfTextRenderer/internal/layoutText.js.map +0 -1
  549. package/dist/src/core/text-rendering/renderers/SdfTextRenderer/internal/measureText.d.ts +0 -10
  550. package/dist/src/core/text-rendering/renderers/SdfTextRenderer/internal/measureText.js +0 -40
  551. package/dist/src/core/text-rendering/renderers/SdfTextRenderer/internal/measureText.js.map +0 -1
  552. package/dist/src/core/text-rendering/renderers/SdfTextRenderer/internal/setRenderWindow.d.ts +0 -26
  553. package/dist/src/core/text-rendering/renderers/SdfTextRenderer/internal/setRenderWindow.js +0 -70
  554. package/dist/src/core/text-rendering/renderers/SdfTextRenderer/internal/setRenderWindow.js.map +0 -1
  555. package/dist/src/core/text-rendering/renderers/SdfTextRenderer/internal/util.d.ts +0 -16
  556. package/dist/src/core/text-rendering/renderers/SdfTextRenderer/internal/util.js +0 -39
  557. package/dist/src/core/text-rendering/renderers/SdfTextRenderer/internal/util.js.map +0 -1
  558. package/dist/src/core/text-rendering/renderers/TextRenderer.d.ts +0 -373
  559. package/dist/src/core/text-rendering/renderers/TextRenderer.js +0 -178
  560. package/dist/src/core/text-rendering/renderers/TextRenderer.js.map +0 -1
  561. package/dist/src/main-api/DynamicShaderController.d.ts +0 -29
  562. package/dist/src/main-api/DynamicShaderController.js +0 -58
  563. package/dist/src/main-api/DynamicShaderController.js.map +0 -1
  564. package/dist/src/main-api/ShaderController.d.ts +0 -31
  565. package/dist/src/main-api/ShaderController.js +0 -37
  566. package/dist/src/main-api/ShaderController.js.map +0 -1
  567. package/scripts/please-use-pnpm.js +0 -13
  568. package/src/core/platform.ts +0 -100
  569. package/src/core/renderers/CoreShader.ts +0 -41
  570. package/src/core/renderers/canvas/CanvasCoreRenderer.ts +0 -375
  571. package/src/core/renderers/canvas/internal/C2DShaderUtils.ts +0 -231
  572. package/src/core/renderers/canvas/shaders/UnsupportedShader.ts +0 -48
  573. package/src/core/renderers/webgl/WebGlCoreCtxSubTexture.ts +0 -50
  574. package/src/core/renderers/webgl/WebGlCoreRenderOp.ts +0 -125
  575. package/src/core/renderers/webgl/WebGlCoreRenderer.ts +0 -821
  576. package/src/core/renderers/webgl/WebGlCoreShader.ts +0 -365
  577. package/src/core/renderers/webgl/shaders/DefaultShader.ts +0 -93
  578. package/src/core/renderers/webgl/shaders/DefaultShaderBatched.ts +0 -132
  579. package/src/core/renderers/webgl/shaders/DynamicShader.ts +0 -580
  580. package/src/core/renderers/webgl/shaders/RoundedRectangle.ts +0 -167
  581. package/src/core/renderers/webgl/shaders/SdfShader.ts +0 -204
  582. package/src/core/renderers/webgl/shaders/effects/BorderBottomEffect.ts +0 -101
  583. package/src/core/renderers/webgl/shaders/effects/BorderEffect.ts +0 -87
  584. package/src/core/renderers/webgl/shaders/effects/BorderLeftEffect.ts +0 -101
  585. package/src/core/renderers/webgl/shaders/effects/BorderRightEffect.ts +0 -101
  586. package/src/core/renderers/webgl/shaders/effects/BorderTopEffect.ts +0 -101
  587. package/src/core/renderers/webgl/shaders/effects/EffectUtils.ts +0 -159
  588. package/src/core/renderers/webgl/shaders/effects/FadeOutEffect.ts +0 -127
  589. package/src/core/renderers/webgl/shaders/effects/GlitchEffect.ts +0 -148
  590. package/src/core/renderers/webgl/shaders/effects/GrayscaleEffect.ts +0 -67
  591. package/src/core/renderers/webgl/shaders/effects/HolePunchEffect.ts +0 -157
  592. package/src/core/renderers/webgl/shaders/effects/LinearGradientEffect.ts +0 -171
  593. package/src/core/renderers/webgl/shaders/effects/RadialGradientEffect.ts +0 -168
  594. package/src/core/renderers/webgl/shaders/effects/RadialProgressEffect.ts +0 -187
  595. package/src/core/renderers/webgl/shaders/effects/RadiusEffect.ts +0 -110
  596. package/src/core/renderers/webgl/shaders/effects/ShaderEffect.ts +0 -196
  597. package/src/core/text-rendering/TextRenderingUtils.ts +0 -36
  598. package/src/core/text-rendering/TextTextureRendererUtils.ts +0 -263
  599. package/src/core/text-rendering/TrFontManager.ts +0 -183
  600. package/src/core/text-rendering/font-face-types/SdfTrFontFace/SdfTrFontFace.ts +0 -176
  601. package/src/core/text-rendering/font-face-types/SdfTrFontFace/internal/FontShaper.ts +0 -139
  602. package/src/core/text-rendering/font-face-types/SdfTrFontFace/internal/SdfFontShaper.test.ts +0 -173
  603. package/src/core/text-rendering/font-face-types/SdfTrFontFace/internal/SdfFontShaper.ts +0 -171
  604. package/src/core/text-rendering/font-face-types/TrFontFace.ts +0 -187
  605. package/src/core/text-rendering/font-face-types/WebTrFontFace.ts +0 -94
  606. package/src/core/text-rendering/font-face-types/utils.ts +0 -39
  607. package/src/core/text-rendering/renderers/CanvasTextRenderer.ts +0 -509
  608. package/src/core/text-rendering/renderers/LightningTextTextureRenderer.ts +0 -808
  609. package/src/core/text-rendering/renderers/SdfTextRenderer/SdfTextRenderer.ts +0 -853
  610. package/src/core/text-rendering/renderers/SdfTextRenderer/internal/PeekableGenerator.test.ts +0 -48
  611. package/src/core/text-rendering/renderers/SdfTextRenderer/internal/PeekableGenerator.ts +0 -66
  612. package/src/core/text-rendering/renderers/SdfTextRenderer/internal/SpecialCodepoints.ts +0 -52
  613. package/src/core/text-rendering/renderers/SdfTextRenderer/internal/constants.ts +0 -32
  614. package/src/core/text-rendering/renderers/SdfTextRenderer/internal/getStartConditions.ts +0 -117
  615. package/src/core/text-rendering/renderers/SdfTextRenderer/internal/getUnicodeCodepoints.test.ts +0 -133
  616. package/src/core/text-rendering/renderers/SdfTextRenderer/internal/getUnicodeCodepoints.ts +0 -38
  617. package/src/core/text-rendering/renderers/SdfTextRenderer/internal/layoutText.ts +0 -408
  618. package/src/core/text-rendering/renderers/SdfTextRenderer/internal/measureText.test.ts +0 -49
  619. package/src/core/text-rendering/renderers/SdfTextRenderer/internal/measureText.ts +0 -52
  620. package/src/core/text-rendering/renderers/SdfTextRenderer/internal/setRenderWindow.test.ts +0 -205
  621. package/src/core/text-rendering/renderers/SdfTextRenderer/internal/setRenderWindow.ts +0 -93
  622. package/src/core/text-rendering/renderers/SdfTextRenderer/internal/util.ts +0 -40
  623. package/src/core/text-rendering/renderers/TextRenderer.ts +0 -557
  624. package/src/main-api/DynamicShaderController.ts +0 -104
  625. package/src/main-api/ShaderController.ts +0 -80
@@ -1,509 +0,0 @@
1
- /*
2
- * If not stated otherwise in this file or this component's LICENSE file the
3
- * following copyright and licenses apply:
4
- *
5
- * Copyright 2023 Comcast Cable Communications Management, LLC.
6
- *
7
- * Licensed under the Apache License, Version 2.0 (the License);
8
- * you may not use this file except in compliance with the License.
9
- * You may obtain a copy of the License at
10
- *
11
- * http://www.apache.org/licenses/LICENSE-2.0
12
- *
13
- * Unless required by applicable law or agreed to in writing, software
14
- * distributed under the License is distributed on an "AS IS" BASIS,
15
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
16
- * See the License for the specific language governing permissions and
17
- * limitations under the License.
18
- */
19
-
20
- import { EventEmitter } from '../../../common/EventEmitter.js';
21
- import { assertTruthy } from '../../../utils.js';
22
- import type { CoreNode } from '../../CoreNode.js';
23
- import type { CoreTextNode } from '../../CoreTextNode.js';
24
- import type { Stage } from '../../Stage.js';
25
- import {
26
- getNormalizedRgbaComponents,
27
- getNormalizedAlphaComponent,
28
- } from '../../lib/utils.js';
29
- import { type FontFamilyMap } from '../TrFontManager.js';
30
- import type { TrFontFace } from '../font-face-types/TrFontFace.js';
31
- import { WebTrFontFace } from '../font-face-types/WebTrFontFace.js';
32
- import {
33
- LightningTextTextureRenderer,
34
- type RenderInfo,
35
- } from './LightningTextTextureRenderer.js';
36
- import {
37
- TextRenderer,
38
- type TextRendererState,
39
- type TrFontProps,
40
- type TrPropSetters,
41
- type TrProps,
42
- } from './TextRenderer.js';
43
-
44
- const resolvedGlobal = typeof self === 'undefined' ? globalThis : self;
45
-
46
- /**
47
- * Global font set regardless of if run in the main thread or a web worker
48
- */
49
- const globalFontSet: FontFaceSet = (resolvedGlobal.document?.fonts ||
50
- (resolvedGlobal as any).fonts) as FontFaceSet;
51
-
52
- declare module './TextRenderer.js' {
53
- interface TextRendererMap {
54
- canvas: CanvasTextRenderer;
55
- }
56
- }
57
-
58
- function getFontCssString(props: TrProps): string {
59
- const { fontFamily, fontStyle, fontWeight, fontStretch, fontSize } = props;
60
- return [fontStyle, fontWeight, fontStretch, `${fontSize}px`, fontFamily].join(
61
- ' ',
62
- );
63
- }
64
-
65
- export interface CanvasTextRendererState extends TextRendererState {
66
- node: CoreTextNode;
67
- props: TrProps;
68
- fontInfo:
69
- | {
70
- fontFace: WebTrFontFace;
71
- cssString: string;
72
- loaded: boolean;
73
- }
74
- | undefined;
75
- textureNode: CoreNode | undefined;
76
- lightning2TextRenderer: LightningTextTextureRenderer;
77
- renderInfo: RenderInfo | undefined;
78
- }
79
-
80
- export class CanvasTextRenderer extends TextRenderer<CanvasTextRendererState> {
81
- protected canvas: OffscreenCanvas | HTMLCanvasElement;
82
- protected context:
83
- | OffscreenCanvasRenderingContext2D
84
- | CanvasRenderingContext2D;
85
- /**
86
- * Font family map used to store web font faces that were added to the
87
- * canvas text renderer.
88
- */
89
- private fontFamilies: FontFamilyMap = {};
90
- private fontFamilyArray: FontFamilyMap[] = [this.fontFamilies];
91
-
92
- public type: 'canvas' | 'sdf' = 'canvas';
93
-
94
- constructor(stage: Stage) {
95
- super(stage);
96
- if (typeof OffscreenCanvas !== 'undefined') {
97
- this.canvas = new OffscreenCanvas(0, 0);
98
- } else {
99
- this.canvas = document.createElement('canvas');
100
- }
101
-
102
- let context = this.canvas.getContext('2d', {
103
- willReadFrequently: true,
104
- }) as OffscreenCanvasRenderingContext2D | CanvasRenderingContext2D | null;
105
- if (!context) {
106
- // A browser may appear to support OffscreenCanvas but not actually support the Canvas '2d' context
107
- // Here we try getting the context again after falling back to an HTMLCanvasElement.
108
- // See: https://github.com/lightning-js/renderer/issues/26#issuecomment-1750438486
109
- this.canvas = document.createElement('canvas');
110
- context = this.canvas.getContext('2d', {
111
- willReadFrequently: true,
112
- });
113
- }
114
- assertTruthy(context);
115
- this.context = context;
116
-
117
- // Install the default 'san-serif' font face
118
- this.addFontFace(
119
- new WebTrFontFace({
120
- fontFamily: 'sans-serif',
121
- descriptors: {},
122
- fontUrl: '',
123
- }),
124
- );
125
- }
126
-
127
- //#region Overrides
128
- override getPropertySetters(): Partial<
129
- TrPropSetters<CanvasTextRendererState>
130
- > {
131
- return {
132
- fontFamily: (state, value) => {
133
- state.props.fontFamily = value;
134
- state.fontInfo = undefined;
135
- this.invalidateLayoutCache(state);
136
- },
137
- fontWeight: (state, value) => {
138
- state.props.fontWeight = value;
139
- state.fontInfo = undefined;
140
- this.invalidateLayoutCache(state);
141
- },
142
- fontStyle: (state, value) => {
143
- state.props.fontStyle = value;
144
- state.fontInfo = undefined;
145
- this.invalidateLayoutCache(state);
146
- },
147
- fontStretch: (state, value) => {
148
- state.props.fontStretch = value;
149
- state.fontInfo = undefined;
150
- this.invalidateLayoutCache(state);
151
- },
152
- fontSize: (state, value) => {
153
- state.props.fontSize = value;
154
- state.fontInfo = undefined;
155
- this.invalidateLayoutCache(state);
156
- },
157
- text: (state, value) => {
158
- state.props.text = value;
159
- this.invalidateLayoutCache(state);
160
- },
161
- textAlign: (state, value) => {
162
- state.props.textAlign = value;
163
- this.invalidateLayoutCache(state);
164
- },
165
- color: (state, value) => {
166
- state.props.color = value;
167
- this.invalidateLayoutCache(state);
168
- },
169
- x: (state, value) => {
170
- state.props.x = value;
171
- },
172
- y: (state, value) => {
173
- state.props.y = value;
174
- },
175
- contain: (state, value) => {
176
- state.props.contain = value;
177
- this.invalidateLayoutCache(state);
178
- },
179
- width: (state, value) => {
180
- state.props.width = value;
181
- // Only invalidate layout cache if we're containing in the horizontal direction
182
- if (state.props.contain !== 'none') {
183
- this.invalidateLayoutCache(state);
184
- }
185
- },
186
- height: (state, value) => {
187
- state.props.height = value;
188
- // Only invalidate layout cache if we're containing in the vertical direction
189
- if (state.props.contain === 'both') {
190
- this.invalidateLayoutCache(state);
191
- }
192
- },
193
- offsetY: (state, value) => {
194
- state.props.offsetY = value;
195
- this.invalidateLayoutCache(state);
196
- },
197
- scrollY: (state, value) => {
198
- state.props.scrollY = value;
199
- },
200
- letterSpacing: (state, value) => {
201
- state.props.letterSpacing = value;
202
- this.invalidateLayoutCache(state);
203
- },
204
- lineHeight: (state, value) => {
205
- state.props.lineHeight = value;
206
- this.invalidateLayoutCache(state);
207
- },
208
- maxLines: (state, value) => {
209
- state.props.maxLines = value;
210
- this.invalidateLayoutCache(state);
211
- },
212
- textBaseline: (state, value) => {
213
- state.props.textBaseline = value;
214
- this.invalidateLayoutCache(state);
215
- },
216
- verticalAlign: (state, value) => {
217
- state.props.verticalAlign = value;
218
- this.invalidateLayoutCache(state);
219
- },
220
- overflowSuffix: (state, value) => {
221
- state.props.overflowSuffix = value;
222
- this.invalidateLayoutCache(state);
223
- },
224
- };
225
- }
226
-
227
- // eslint-disable-next-line @typescript-eslint/no-unused-vars
228
- override canRenderFont(props: TrFontProps): boolean {
229
- // The canvas renderer can render any font because it automatically
230
- // falls back to system fonts. The CanvasTextRenderer should be
231
- // checked last if other renderers are preferred.
232
- return true;
233
- }
234
-
235
- override isFontFaceSupported(fontFace: TrFontFace): boolean {
236
- return fontFace instanceof WebTrFontFace;
237
- }
238
-
239
- override addFontFace(fontFace: TrFontFace): void {
240
- // Make sure the font face is an Canvas font face (it should have already passed
241
- // the `isFontFaceSupported` check)
242
- assertTruthy(fontFace instanceof WebTrFontFace);
243
-
244
- const fontFamily = fontFace.fontFamily;
245
-
246
- // Add the font face to the document
247
- // Except for the 'sans-serif' font family, which the Renderer provides
248
- // as a special default fallback.
249
- if (fontFamily !== 'sans-serif') {
250
- // @ts-expect-error `add()` method should be available from a FontFaceSet
251
- // eslint-disable-next-line @typescript-eslint/no-unsafe-call
252
- globalFontSet.add(fontFace.fontFace);
253
- }
254
-
255
- let faceSet = this.fontFamilies[fontFamily];
256
- if (!faceSet) {
257
- faceSet = new Set();
258
- this.fontFamilies[fontFamily] = faceSet;
259
- }
260
- faceSet.add(fontFace);
261
- }
262
-
263
- override createState(
264
- props: TrProps,
265
- node: CoreTextNode,
266
- ): CanvasTextRendererState {
267
- return {
268
- node,
269
- props,
270
- status: 'initialState',
271
- updateScheduled: false,
272
- emitter: new EventEmitter(),
273
- textureNode: undefined,
274
- lightning2TextRenderer: new LightningTextTextureRenderer(
275
- this.canvas,
276
- this.context,
277
- ),
278
- renderInfo: undefined,
279
- forceFullLayoutCalc: false,
280
- textW: 0,
281
- textH: 0,
282
- fontInfo: undefined,
283
- isRenderable: false,
284
- debugData: {
285
- updateCount: 0,
286
- layoutCount: 0,
287
- drawCount: 0,
288
- lastLayoutNumCharacters: 0,
289
- layoutSum: 0,
290
- drawSum: 0,
291
- bufferSize: 0,
292
- },
293
- };
294
- }
295
-
296
- override updateState(state: CanvasTextRendererState): void {
297
- // On the first update call we need to set the status to loading
298
- if (state.status === 'initialState') {
299
- this.setStatus(state, 'loading');
300
- // check if we're on screen
301
- // if (this.isValidOnScreen(state) === true) {
302
- // this.setStatus(state, 'loading');
303
- // }
304
- }
305
-
306
- if (state.status === 'loaded') {
307
- // If we're loaded, we don't need to do anything
308
- return;
309
- }
310
-
311
- // If fontInfo is invalid, we need to establish it
312
- if (!state.fontInfo) {
313
- return this.loadFont(state);
314
- }
315
-
316
- // If we're waiting for a font face to load, don't render anything
317
- if (!state.fontInfo.loaded) {
318
- return;
319
- }
320
-
321
- if (!state.renderInfo) {
322
- state.renderInfo = this.calculateRenderInfo(state);
323
- state.textH = state.renderInfo.lineHeight * state.renderInfo.lines.length;
324
- state.textW = state.renderInfo.width;
325
- this.renderSingleCanvasPage(state);
326
- }
327
-
328
- // handle scrollable text !!!
329
- // if (state.isScrollable === true) {
330
- // return this.renderScrollableCanvasPages(state);
331
- // }
332
-
333
- // handle single page text
334
- }
335
-
336
- renderSingleCanvasPage(state: CanvasTextRendererState): void {
337
- assertTruthy(state.renderInfo);
338
- const node = state.node;
339
-
340
- const texture = this.stage.txManager.createTexture('ImageTexture', {
341
- premultiplyAlpha: true,
342
- src: function (
343
- this: CanvasTextRenderer,
344
- lightning2TextRenderer: LightningTextTextureRenderer,
345
- renderInfo: RenderInfo,
346
- ) {
347
- // load the canvas texture
348
- assertTruthy(renderInfo);
349
- lightning2TextRenderer.draw(renderInfo, {
350
- lines: renderInfo.lines,
351
- lineWidths: renderInfo.lineWidths,
352
- });
353
- if (this.canvas.width === 0 || this.canvas.height === 0) {
354
- return null;
355
- }
356
- return this.context.getImageData(
357
- 0,
358
- 0,
359
- this.canvas.width,
360
- this.canvas.height,
361
- );
362
- }.bind(this, state.lightning2TextRenderer, state.renderInfo),
363
- });
364
-
365
- if (state.textureNode) {
366
- // Use the existing texture node
367
- state.textureNode.texture = texture;
368
- // Update the alpha
369
- state.textureNode.alpha = getNormalizedAlphaComponent(state.props.color);
370
- } else {
371
- // Create a new texture node
372
- const textureNode = this.stage.createNode({
373
- parent: node,
374
- texture,
375
- autosize: true,
376
- // The alpha channel of the color is ignored when rasterizing the text
377
- // texture so we need to pass it directly to the texture node.
378
- alpha: getNormalizedAlphaComponent(state.props.color),
379
- });
380
- state.textureNode = textureNode;
381
- }
382
-
383
- this.setStatus(state, 'loaded');
384
- }
385
-
386
- loadFont = (state: CanvasTextRendererState): void => {
387
- const cssString = getFontCssString(state.props);
388
-
389
- const trFontFace = this.stage.fontManager.resolveFontFace(
390
- this.fontFamilyArray,
391
- state.props,
392
- 'canvas',
393
- ) as WebTrFontFace | undefined;
394
- assertTruthy(trFontFace, `Could not resolve font face for ${cssString}`);
395
- state.fontInfo = {
396
- fontFace: trFontFace,
397
- cssString: cssString,
398
- // TODO: For efficiency we would use this here but it's not reliable on WPE -> document.fonts.check(cssString),
399
- loaded: false,
400
- };
401
- // If font is not loaded, set up a handler to update the font info when the font loads
402
- if (!state.fontInfo.loaded) {
403
- globalFontSet
404
- .load(cssString)
405
- .then(this.onFontLoaded.bind(this, state, cssString))
406
- .catch(this.onFontLoadError.bind(this, state, cssString));
407
- return;
408
- }
409
- };
410
-
411
- calculateRenderInfo(state: CanvasTextRendererState): RenderInfo {
412
- state.lightning2TextRenderer.settings = {
413
- text: state.props.text,
414
- textAlign: state.props.textAlign,
415
- fontFamily: state.props.fontFamily,
416
- trFontFace: state.fontInfo?.fontFace,
417
- fontSize: state.props.fontSize,
418
- fontStyle: [
419
- state.props.fontStretch,
420
- state.props.fontStyle,
421
- state.props.fontWeight,
422
- ].join(' '),
423
- textColor: getNormalizedRgbaComponents(state.props.color),
424
- offsetY: state.props.offsetY,
425
- wordWrap: state.props.contain !== 'none',
426
- wordWrapWidth:
427
- state.props.contain === 'none' ? undefined : state.props.width,
428
- letterSpacing: state.props.letterSpacing,
429
- lineHeight: state.props.lineHeight ?? null,
430
- maxLines: state.props.maxLines,
431
- maxHeight:
432
- state.props.contain === 'both'
433
- ? state.props.height - state.props.offsetY
434
- : null,
435
- textBaseline: state.props.textBaseline,
436
- verticalAlign: state.props.verticalAlign,
437
- overflowSuffix: state.props.overflowSuffix,
438
- w: state.props.contain !== 'none' ? state.props.width : undefined,
439
- };
440
- state.renderInfo = state.lightning2TextRenderer.calculateRenderInfo();
441
- return state.renderInfo;
442
- }
443
-
444
- override renderQuads(): void {
445
- // Do nothing. The renderer will render the child node(s) that were created
446
- // in the state update.
447
- return;
448
- }
449
-
450
- override destroyState(state: CanvasTextRendererState): void {
451
- if (state.status === 'destroyed') {
452
- return;
453
- }
454
- super.destroyState(state);
455
-
456
- if (state.textureNode) {
457
- state.textureNode.destroy();
458
- delete state.textureNode;
459
- }
460
- delete state.renderInfo;
461
- }
462
- //#endregion Overrides
463
-
464
- /**
465
- * Invalidate the layout cache stored in the state. This will cause the text
466
- * to be re-rendered on the next update.
467
- *
468
- * @remarks
469
- * This also invalidates the visible window cache.
470
- *
471
- * @param state
472
- */
473
- private invalidateLayoutCache(state: CanvasTextRendererState): void {
474
- state.renderInfo = undefined;
475
- this.setStatus(state, 'loading');
476
- this.scheduleUpdateState(state);
477
- }
478
-
479
- private onFontLoaded(
480
- state: CanvasTextRendererState,
481
- cssString: string,
482
- ): void {
483
- if (cssString !== state.fontInfo?.cssString || !state.fontInfo) {
484
- return;
485
- }
486
- state.fontInfo.loaded = true;
487
- this.scheduleUpdateState(state);
488
- }
489
-
490
- private onFontLoadError(
491
- state: CanvasTextRendererState,
492
- cssString: string,
493
- error: Error,
494
- ): void {
495
- if (cssString !== state.fontInfo?.cssString || !state.fontInfo) {
496
- return;
497
- }
498
-
499
- // Font didn't actually load, but we'll log the error and mark it as loaded
500
- // because the browser can still render with a fallback font.
501
- state.fontInfo.loaded = true;
502
-
503
- console.error(
504
- `CanvasTextRenderer: Error loading font '${state.fontInfo.cssString}'`,
505
- error,
506
- );
507
- this.scheduleUpdateState(state);
508
- }
509
- }