@lightningjs/renderer 3.0.0-beta11 → 3.0.0-beta13

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 (324) hide show
  1. package/README.md +4 -0
  2. package/dist/src/common/CommonTypes.d.ts +2 -2
  3. package/dist/src/core/CoreNode.d.ts +10 -25
  4. package/dist/src/core/CoreNode.js +77 -81
  5. package/dist/src/core/CoreNode.js.map +1 -1
  6. package/dist/src/core/CoreTextNode.js +10 -10
  7. package/dist/src/core/CoreTextNode.js.map +1 -1
  8. package/dist/src/core/Stage.d.ts +0 -1
  9. package/dist/src/core/Stage.js +5 -10
  10. package/dist/src/core/Stage.js.map +1 -1
  11. package/dist/src/core/lib/WebGlContextWrapper.js +1 -1
  12. package/dist/src/core/lib/WebGlContextWrapper.js.map +1 -1
  13. package/dist/src/core/lib/textureCompression.js +4 -4
  14. package/dist/src/core/lib/textureCompression.js.map +1 -1
  15. package/dist/src/core/renderers/CoreShaderNode.js +2 -2
  16. package/dist/src/core/renderers/CoreShaderNode.js.map +1 -1
  17. package/dist/src/core/renderers/canvas/CanvasRenderer.js +1 -1
  18. package/dist/src/core/renderers/canvas/CanvasRenderer.js.map +1 -1
  19. package/dist/src/core/renderers/canvas/CanvasTexture.js +5 -5
  20. package/dist/src/core/renderers/canvas/CanvasTexture.js.map +1 -1
  21. package/dist/src/core/renderers/webgl/WebGlCtxRenderTexture.js +5 -6
  22. package/dist/src/core/renderers/webgl/WebGlCtxRenderTexture.js.map +1 -1
  23. package/dist/src/core/renderers/webgl/WebGlCtxSubTexture.d.ts +13 -0
  24. package/dist/src/core/renderers/webgl/WebGlCtxSubTexture.js +34 -5
  25. package/dist/src/core/renderers/webgl/WebGlCtxSubTexture.js.map +1 -1
  26. package/dist/src/core/renderers/webgl/WebGlCtxTexture.js +21 -21
  27. package/dist/src/core/renderers/webgl/WebGlCtxTexture.js.map +1 -1
  28. package/dist/src/core/renderers/webgl/WebGlRenderOp.js +1 -1
  29. package/dist/src/core/renderers/webgl/WebGlRenderOp.js.map +1 -1
  30. package/dist/src/core/renderers/webgl/WebGlRenderer.js +13 -13
  31. package/dist/src/core/renderers/webgl/WebGlRenderer.js.map +1 -1
  32. package/dist/src/core/renderers/webgl/WebGlShaderProgram.js +2 -2
  33. package/dist/src/core/renderers/webgl/WebGlShaderProgram.js.map +1 -1
  34. package/dist/src/core/shaders/canvas/Border.js +4 -4
  35. package/dist/src/core/shaders/canvas/Border.js.map +1 -1
  36. package/dist/src/core/shaders/canvas/HolePunch.js +3 -3
  37. package/dist/src/core/shaders/canvas/HolePunch.js.map +1 -1
  38. package/dist/src/core/shaders/canvas/LinearGradient.js +2 -2
  39. package/dist/src/core/shaders/canvas/LinearGradient.js.map +1 -1
  40. package/dist/src/core/shaders/canvas/RadialGradient.js +4 -4
  41. package/dist/src/core/shaders/canvas/RadialGradient.js.map +1 -1
  42. package/dist/src/core/shaders/canvas/Rounded.js +1 -1
  43. package/dist/src/core/shaders/canvas/Rounded.js.map +1 -1
  44. package/dist/src/core/shaders/canvas/RoundedWithBorder.js +3 -3
  45. package/dist/src/core/shaders/canvas/RoundedWithBorder.js.map +1 -1
  46. package/dist/src/core/shaders/canvas/RoundedWithBorderAndShadow.js +3 -3
  47. package/dist/src/core/shaders/canvas/RoundedWithBorderAndShadow.js.map +1 -1
  48. package/dist/src/core/shaders/canvas/RoundedWithShadow.js +1 -1
  49. package/dist/src/core/shaders/canvas/RoundedWithShadow.js.map +1 -1
  50. package/dist/src/core/shaders/templates/BorderTemplate.d.ts +1 -1
  51. package/dist/src/core/shaders/templates/BorderTemplate.js +10 -10
  52. package/dist/src/core/shaders/templates/BorderTemplate.js.map +1 -1
  53. package/dist/src/core/shaders/templates/HolePunchTemplate.d.ts +2 -2
  54. package/dist/src/core/shaders/templates/HolePunchTemplate.js +2 -2
  55. package/dist/src/core/shaders/templates/HolePunchTemplate.js.map +1 -1
  56. package/dist/src/core/shaders/templates/RadialGradientTemplate.d.ts +2 -2
  57. package/dist/src/core/shaders/templates/RadialGradientTemplate.js +2 -2
  58. package/dist/src/core/shaders/templates/RadialGradientTemplate.js.map +1 -1
  59. package/dist/src/core/shaders/webgl/Border.js +1 -1
  60. package/dist/src/core/shaders/webgl/Border.js.map +1 -1
  61. package/dist/src/core/shaders/webgl/HolePunch.js +2 -2
  62. package/dist/src/core/shaders/webgl/HolePunch.js.map +1 -1
  63. package/dist/src/core/shaders/webgl/RadialGradient.js +2 -2
  64. package/dist/src/core/shaders/webgl/RadialGradient.js.map +1 -1
  65. package/dist/src/core/shaders/webgl/Rounded.js +1 -1
  66. package/dist/src/core/shaders/webgl/Rounded.js.map +1 -1
  67. package/dist/src/core/shaders/webgl/RoundedWithBorder.js +2 -2
  68. package/dist/src/core/shaders/webgl/RoundedWithBorder.js.map +1 -1
  69. package/dist/src/core/shaders/webgl/RoundedWithBorderAndShadow.js +2 -2
  70. package/dist/src/core/shaders/webgl/RoundedWithBorderAndShadow.js.map +1 -1
  71. package/dist/src/core/shaders/webgl/RoundedWithShadow.js +1 -1
  72. package/dist/src/core/shaders/webgl/RoundedWithShadow.js.map +1 -1
  73. package/dist/src/core/text-rendering/sdf/Utils.js +2 -2
  74. package/dist/src/core/text-rendering/sdf/Utils.js.map +1 -1
  75. package/dist/src/core/textures/ColorTexture.js +1 -1
  76. package/dist/src/core/textures/ColorTexture.js.map +1 -1
  77. package/dist/src/core/textures/ImageTexture.d.ts +2 -2
  78. package/dist/src/core/textures/ImageTexture.js +11 -11
  79. package/dist/src/core/textures/ImageTexture.js.map +1 -1
  80. package/dist/src/core/textures/NoiseTexture.d.ts +2 -2
  81. package/dist/src/core/textures/NoiseTexture.js +6 -6
  82. package/dist/src/core/textures/NoiseTexture.js.map +1 -1
  83. package/dist/src/core/textures/RenderTexture.d.ts +6 -6
  84. package/dist/src/core/textures/RenderTexture.js +10 -10
  85. package/dist/src/core/textures/RenderTexture.js.map +1 -1
  86. package/dist/src/core/textures/SubTexture.d.ts +4 -4
  87. package/dist/src/core/textures/SubTexture.js +8 -8
  88. package/dist/src/core/textures/SubTexture.js.map +1 -1
  89. package/dist/src/core/textures/Texture.d.ts +3 -4
  90. package/dist/src/core/textures/Texture.js +4 -4
  91. package/dist/src/core/textures/Texture.js.map +1 -1
  92. package/dist/src/main-api/Inspector.js +7 -7
  93. package/dist/src/main-api/Inspector.js.map +1 -1
  94. package/dist/src/main-api/Renderer.d.ts +0 -10
  95. package/dist/src/main-api/Renderer.js +2 -4
  96. package/dist/src/main-api/Renderer.js.map +1 -1
  97. package/dist/tsconfig.dist.tsbuildinfo +1 -1
  98. package/package.json +1 -1
  99. package/src/common/CommonTypes.ts +2 -2
  100. package/src/core/CoreNode.test.ts +15 -14
  101. package/src/core/CoreNode.ts +91 -118
  102. package/src/core/CoreTextNode.ts +10 -10
  103. package/src/core/Stage.ts +5 -10
  104. package/src/core/lib/WebGlContextWrapper.ts +1 -1
  105. package/src/core/lib/textureCompression.ts +4 -4
  106. package/src/core/renderers/CoreShaderNode.ts +2 -2
  107. package/src/core/renderers/canvas/CanvasRenderer.ts +2 -2
  108. package/src/core/renderers/canvas/CanvasTexture.ts +5 -5
  109. package/src/core/renderers/webgl/WebGlCtxRenderTexture.ts +5 -15
  110. package/src/core/renderers/webgl/WebGlCtxSubTexture.ts +50 -5
  111. package/src/core/renderers/webgl/WebGlCtxTexture.ts +21 -30
  112. package/src/core/renderers/webgl/WebGlRenderOp.ts +1 -1
  113. package/src/core/renderers/webgl/WebGlRenderer.ts +13 -15
  114. package/src/core/renderers/webgl/WebGlShaderProgram.ts +2 -2
  115. package/src/core/shaders/canvas/Border.ts +4 -4
  116. package/src/core/shaders/canvas/HolePunch.ts +4 -11
  117. package/src/core/shaders/canvas/LinearGradient.ts +2 -2
  118. package/src/core/shaders/canvas/RadialGradient.ts +4 -4
  119. package/src/core/shaders/canvas/Rounded.ts +2 -2
  120. package/src/core/shaders/canvas/RoundedWithBorder.ts +4 -6
  121. package/src/core/shaders/canvas/RoundedWithBorderAndShadow.ts +4 -6
  122. package/src/core/shaders/canvas/RoundedWithShadow.ts +2 -2
  123. package/src/core/shaders/templates/BorderTemplate.ts +11 -11
  124. package/src/core/shaders/templates/HolePunchTemplate.ts +4 -4
  125. package/src/core/shaders/templates/RadialGradientTemplate.ts +4 -4
  126. package/src/core/shaders/webgl/Border.ts +1 -1
  127. package/src/core/shaders/webgl/HolePunch.ts +2 -2
  128. package/src/core/shaders/webgl/RadialGradient.ts +3 -3
  129. package/src/core/shaders/webgl/Rounded.ts +1 -5
  130. package/src/core/shaders/webgl/RoundedWithBorder.ts +2 -6
  131. package/src/core/shaders/webgl/RoundedWithBorderAndShadow.ts +2 -2
  132. package/src/core/shaders/webgl/RoundedWithShadow.ts +1 -5
  133. package/src/core/text-rendering/sdf/Utils.ts +2 -2
  134. package/src/core/textures/ColorTexture.ts +1 -1
  135. package/src/core/textures/ImageTexture.ts +15 -15
  136. package/src/core/textures/NoiseTexture.ts +8 -8
  137. package/src/core/textures/RenderTexture.ts +12 -12
  138. package/src/core/textures/SubTexture.ts +10 -10
  139. package/src/core/textures/Texture.ts +7 -7
  140. package/src/main-api/Inspector.ts +8 -8
  141. package/src/main-api/Renderer.ts +2 -15
  142. package/dist/src/core/platform.d.ts +0 -10
  143. package/dist/src/core/platform.js +0 -81
  144. package/dist/src/core/platform.js.map +0 -1
  145. package/dist/src/core/renderers/CoreShader.d.ts +0 -9
  146. package/dist/src/core/renderers/CoreShader.js +0 -28
  147. package/dist/src/core/renderers/CoreShader.js.map +0 -1
  148. package/dist/src/core/renderers/canvas/CanvasCoreRenderer.d.ts +0 -33
  149. package/dist/src/core/renderers/canvas/CanvasCoreRenderer.js +0 -250
  150. package/dist/src/core/renderers/canvas/CanvasCoreRenderer.js.map +0 -1
  151. package/dist/src/core/renderers/canvas/CanvasCoreTexture.d.ts +0 -16
  152. package/dist/src/core/renderers/canvas/CanvasCoreTexture.js +0 -124
  153. package/dist/src/core/renderers/canvas/CanvasCoreTexture.js.map +0 -1
  154. package/dist/src/core/renderers/canvas/internal/C2DShaderUtils.d.ts +0 -14
  155. package/dist/src/core/renderers/canvas/internal/C2DShaderUtils.js +0 -138
  156. package/dist/src/core/renderers/canvas/internal/C2DShaderUtils.js.map +0 -1
  157. package/dist/src/core/renderers/canvas/internal/ColorUtils.d.ts +0 -19
  158. package/dist/src/core/renderers/canvas/internal/ColorUtils.js +0 -58
  159. package/dist/src/core/renderers/canvas/internal/ColorUtils.js.map +0 -1
  160. package/dist/src/core/renderers/canvas/shaders/UnsupportedShader.d.ts +0 -10
  161. package/dist/src/core/renderers/canvas/shaders/UnsupportedShader.js +0 -43
  162. package/dist/src/core/renderers/canvas/shaders/UnsupportedShader.js.map +0 -1
  163. package/dist/src/core/renderers/webgl/WebGlCoreCtxRenderTexture.d.ts +0 -12
  164. package/dist/src/core/renderers/webgl/WebGlCoreCtxRenderTexture.js +0 -58
  165. package/dist/src/core/renderers/webgl/WebGlCoreCtxRenderTexture.js.map +0 -1
  166. package/dist/src/core/renderers/webgl/WebGlCoreCtxSubTexture.d.ts +0 -9
  167. package/dist/src/core/renderers/webgl/WebGlCoreCtxSubTexture.js +0 -38
  168. package/dist/src/core/renderers/webgl/WebGlCoreCtxSubTexture.js.map +0 -1
  169. package/dist/src/core/renderers/webgl/WebGlCoreCtxTexture.d.ts +0 -56
  170. package/dist/src/core/renderers/webgl/WebGlCoreCtxTexture.js +0 -239
  171. package/dist/src/core/renderers/webgl/WebGlCoreCtxTexture.js.map +0 -1
  172. package/dist/src/core/renderers/webgl/WebGlCoreRenderOp.d.ts +0 -34
  173. package/dist/src/core/renderers/webgl/WebGlCoreRenderOp.js +0 -114
  174. package/dist/src/core/renderers/webgl/WebGlCoreRenderOp.js.map +0 -1
  175. package/dist/src/core/renderers/webgl/WebGlCoreRenderer.d.ts +0 -133
  176. package/dist/src/core/renderers/webgl/WebGlCoreRenderer.js +0 -616
  177. package/dist/src/core/renderers/webgl/WebGlCoreRenderer.js.map +0 -1
  178. package/dist/src/core/renderers/webgl/WebGlCoreShader.d.ts +0 -83
  179. package/dist/src/core/renderers/webgl/WebGlCoreShader.js +0 -233
  180. package/dist/src/core/renderers/webgl/WebGlCoreShader.js.map +0 -1
  181. package/dist/src/core/renderers/webgl/shaders/DefaultShader.d.ts +0 -9
  182. package/dist/src/core/renderers/webgl/shaders/DefaultShader.js +0 -87
  183. package/dist/src/core/renderers/webgl/shaders/DefaultShader.js.map +0 -1
  184. package/dist/src/core/renderers/webgl/shaders/DefaultShaderBatched.d.ts +0 -10
  185. package/dist/src/core/renderers/webgl/shaders/DefaultShaderBatched.js +0 -119
  186. package/dist/src/core/renderers/webgl/shaders/DefaultShaderBatched.js.map +0 -1
  187. package/dist/src/core/renderers/webgl/shaders/DynamicShader.d.ts +0 -29
  188. package/dist/src/core/renderers/webgl/shaders/DynamicShader.js +0 -413
  189. package/dist/src/core/renderers/webgl/shaders/DynamicShader.js.map +0 -1
  190. package/dist/src/core/renderers/webgl/shaders/RoundedRectangle.d.ts +0 -28
  191. package/dist/src/core/renderers/webgl/shaders/RoundedRectangle.js +0 -131
  192. package/dist/src/core/renderers/webgl/shaders/RoundedRectangle.js.map +0 -1
  193. package/dist/src/core/renderers/webgl/shaders/SdfShader.d.ts +0 -47
  194. package/dist/src/core/renderers/webgl/shaders/SdfShader.js +0 -160
  195. package/dist/src/core/renderers/webgl/shaders/SdfShader.js.map +0 -1
  196. package/dist/src/core/renderers/webgl/shaders/effects/BorderBottomEffect.d.ts +0 -31
  197. package/dist/src/core/renderers/webgl/shaders/effects/BorderBottomEffect.js +0 -71
  198. package/dist/src/core/renderers/webgl/shaders/effects/BorderBottomEffect.js.map +0 -1
  199. package/dist/src/core/renderers/webgl/shaders/effects/BorderEffect.d.ts +0 -30
  200. package/dist/src/core/renderers/webgl/shaders/effects/BorderEffect.js +0 -58
  201. package/dist/src/core/renderers/webgl/shaders/effects/BorderEffect.js.map +0 -1
  202. package/dist/src/core/renderers/webgl/shaders/effects/BorderLeftEffect.d.ts +0 -31
  203. package/dist/src/core/renderers/webgl/shaders/effects/BorderLeftEffect.js +0 -71
  204. package/dist/src/core/renderers/webgl/shaders/effects/BorderLeftEffect.js.map +0 -1
  205. package/dist/src/core/renderers/webgl/shaders/effects/BorderRightEffect.d.ts +0 -31
  206. package/dist/src/core/renderers/webgl/shaders/effects/BorderRightEffect.js +0 -71
  207. package/dist/src/core/renderers/webgl/shaders/effects/BorderRightEffect.js.map +0 -1
  208. package/dist/src/core/renderers/webgl/shaders/effects/BorderTopEffect.d.ts +0 -31
  209. package/dist/src/core/renderers/webgl/shaders/effects/BorderTopEffect.js +0 -71
  210. package/dist/src/core/renderers/webgl/shaders/effects/BorderTopEffect.js.map +0 -1
  211. package/dist/src/core/renderers/webgl/shaders/effects/EffectUtils.d.ts +0 -9
  212. package/dist/src/core/renderers/webgl/shaders/effects/EffectUtils.js +0 -136
  213. package/dist/src/core/renderers/webgl/shaders/effects/EffectUtils.js.map +0 -1
  214. package/dist/src/core/renderers/webgl/shaders/effects/FadeOutEffect.d.ts +0 -36
  215. package/dist/src/core/renderers/webgl/shaders/effects/FadeOutEffect.js +0 -85
  216. package/dist/src/core/renderers/webgl/shaders/effects/FadeOutEffect.js.map +0 -1
  217. package/dist/src/core/renderers/webgl/shaders/effects/GlitchEffect.d.ts +0 -45
  218. package/dist/src/core/renderers/webgl/shaders/effects/GlitchEffect.js +0 -104
  219. package/dist/src/core/renderers/webgl/shaders/effects/GlitchEffect.js.map +0 -1
  220. package/dist/src/core/renderers/webgl/shaders/effects/GrayscaleEffect.d.ts +0 -22
  221. package/dist/src/core/renderers/webgl/shaders/effects/GrayscaleEffect.js +0 -45
  222. package/dist/src/core/renderers/webgl/shaders/effects/GrayscaleEffect.js.map +0 -1
  223. package/dist/src/core/renderers/webgl/shaders/effects/HolePunchEffect.d.ts +0 -58
  224. package/dist/src/core/renderers/webgl/shaders/effects/HolePunchEffect.js +0 -80
  225. package/dist/src/core/renderers/webgl/shaders/effects/HolePunchEffect.js.map +0 -1
  226. package/dist/src/core/renderers/webgl/shaders/effects/LinearGradientEffect.d.ts +0 -35
  227. package/dist/src/core/renderers/webgl/shaders/effects/LinearGradientEffect.js +0 -129
  228. package/dist/src/core/renderers/webgl/shaders/effects/LinearGradientEffect.js.map +0 -1
  229. package/dist/src/core/renderers/webgl/shaders/effects/RadialGradientEffect.d.ts +0 -39
  230. package/dist/src/core/renderers/webgl/shaders/effects/RadialGradientEffect.js +0 -116
  231. package/dist/src/core/renderers/webgl/shaders/effects/RadialGradientEffect.js.map +0 -1
  232. package/dist/src/core/renderers/webgl/shaders/effects/RadialProgressEffect.d.ts +0 -61
  233. package/dist/src/core/renderers/webgl/shaders/effects/RadialProgressEffect.js +0 -127
  234. package/dist/src/core/renderers/webgl/shaders/effects/RadialProgressEffect.js.map +0 -1
  235. package/dist/src/core/renderers/webgl/shaders/effects/RadiusEffect.d.ts +0 -40
  236. package/dist/src/core/renderers/webgl/shaders/effects/RadiusEffect.js +0 -71
  237. package/dist/src/core/renderers/webgl/shaders/effects/RadiusEffect.js.map +0 -1
  238. package/dist/src/core/renderers/webgl/shaders/effects/ShaderEffect.d.ts +0 -115
  239. package/dist/src/core/renderers/webgl/shaders/effects/ShaderEffect.js +0 -61
  240. package/dist/src/core/renderers/webgl/shaders/effects/ShaderEffect.js.map +0 -1
  241. package/dist/src/core/shaders/templates/shaderUtils.d.ts +0 -5
  242. package/dist/src/core/shaders/templates/shaderUtils.js +0 -41
  243. package/dist/src/core/shaders/templates/shaderUtils.js.map +0 -1
  244. package/dist/src/core/shaders/webgl/Spinner.d.ts +0 -1
  245. package/dist/src/core/shaders/webgl/Spinner.js +0 -2
  246. package/dist/src/core/shaders/webgl/Spinner.js.map +0 -1
  247. package/dist/src/core/text-rendering/TextRenderingUtils.d.ts +0 -12
  248. package/dist/src/core/text-rendering/TextRenderingUtils.js +0 -14
  249. package/dist/src/core/text-rendering/TextRenderingUtils.js.map +0 -1
  250. package/dist/src/core/text-rendering/TextTextureRendererUtils.d.ts +0 -72
  251. package/dist/src/core/text-rendering/TextTextureRendererUtils.js +0 -217
  252. package/dist/src/core/text-rendering/TextTextureRendererUtils.js.map +0 -1
  253. package/dist/src/core/text-rendering/TrFontManager.d.ts +0 -26
  254. package/dist/src/core/text-rendering/TrFontManager.js +0 -131
  255. package/dist/src/core/text-rendering/TrFontManager.js.map +0 -1
  256. package/dist/src/core/text-rendering/font-face-types/SdfTrFontFace/SdfTrFontFace.d.ts +0 -39
  257. package/dist/src/core/text-rendering/font-face-types/SdfTrFontFace/SdfTrFontFace.js +0 -125
  258. package/dist/src/core/text-rendering/font-face-types/SdfTrFontFace/SdfTrFontFace.js.map +0 -1
  259. package/dist/src/core/text-rendering/font-face-types/SdfTrFontFace/internal/FontShaper.d.ts +0 -103
  260. package/dist/src/core/text-rendering/font-face-types/SdfTrFontFace/internal/FontShaper.js +0 -21
  261. package/dist/src/core/text-rendering/font-face-types/SdfTrFontFace/internal/FontShaper.js.map +0 -1
  262. package/dist/src/core/text-rendering/font-face-types/SdfTrFontFace/internal/SdfFontShaper.d.ts +0 -62
  263. package/dist/src/core/text-rendering/font-face-types/SdfTrFontFace/internal/SdfFontShaper.js +0 -88
  264. package/dist/src/core/text-rendering/font-face-types/SdfTrFontFace/internal/SdfFontShaper.js.map +0 -1
  265. package/dist/src/core/text-rendering/font-face-types/TrFontFace.d.ts +0 -118
  266. package/dist/src/core/text-rendering/font-face-types/TrFontFace.js +0 -63
  267. package/dist/src/core/text-rendering/font-face-types/TrFontFace.js.map +0 -1
  268. package/dist/src/core/text-rendering/font-face-types/WebTrFontFace.d.ts +0 -14
  269. package/dist/src/core/text-rendering/font-face-types/WebTrFontFace.js +0 -66
  270. package/dist/src/core/text-rendering/font-face-types/WebTrFontFace.js.map +0 -1
  271. package/dist/src/core/text-rendering/font-face-types/utils.d.ts +0 -1
  272. package/dist/src/core/text-rendering/font-face-types/utils.js +0 -38
  273. package/dist/src/core/text-rendering/font-face-types/utils.js.map +0 -1
  274. package/dist/src/core/text-rendering/renderers/CanvasTextRenderer.d.ts +0 -59
  275. package/dist/src/core/text-rendering/renderers/CanvasTextRenderer.js +0 -397
  276. package/dist/src/core/text-rendering/renderers/CanvasTextRenderer.js.map +0 -1
  277. package/dist/src/core/text-rendering/renderers/LightningTextTextureRenderer.d.ts +0 -120
  278. package/dist/src/core/text-rendering/renderers/LightningTextTextureRenderer.js +0 -551
  279. package/dist/src/core/text-rendering/renderers/LightningTextTextureRenderer.js.map +0 -1
  280. package/dist/src/core/text-rendering/renderers/SdfTextRenderer/SdfTextRenderer.d.ts +0 -92
  281. package/dist/src/core/text-rendering/renderers/SdfTextRenderer/SdfTextRenderer.js +0 -607
  282. package/dist/src/core/text-rendering/renderers/SdfTextRenderer/SdfTextRenderer.js.map +0 -1
  283. package/dist/src/core/text-rendering/renderers/SdfTextRenderer/internal/PeekableGenerator.d.ts +0 -12
  284. package/dist/src/core/text-rendering/renderers/SdfTextRenderer/internal/PeekableGenerator.js +0 -61
  285. package/dist/src/core/text-rendering/renderers/SdfTextRenderer/internal/PeekableGenerator.js.map +0 -1
  286. package/dist/src/core/text-rendering/renderers/SdfTextRenderer/internal/SpecialCodepoints.d.ts +0 -33
  287. package/dist/src/core/text-rendering/renderers/SdfTextRenderer/internal/SpecialCodepoints.js +0 -52
  288. package/dist/src/core/text-rendering/renderers/SdfTextRenderer/internal/SpecialCodepoints.js.map +0 -1
  289. package/dist/src/core/text-rendering/renderers/SdfTextRenderer/internal/constants.d.ts +0 -13
  290. package/dist/src/core/text-rendering/renderers/SdfTextRenderer/internal/constants.js +0 -32
  291. package/dist/src/core/text-rendering/renderers/SdfTextRenderer/internal/constants.js.map +0 -1
  292. package/dist/src/core/text-rendering/renderers/SdfTextRenderer/internal/getStartConditions.d.ts +0 -23
  293. package/dist/src/core/text-rendering/renderers/SdfTextRenderer/internal/getStartConditions.js +0 -84
  294. package/dist/src/core/text-rendering/renderers/SdfTextRenderer/internal/getStartConditions.js.map +0 -1
  295. package/dist/src/core/text-rendering/renderers/SdfTextRenderer/internal/getUnicodeCodepoints.d.ts +0 -4
  296. package/dist/src/core/text-rendering/renderers/SdfTextRenderer/internal/getUnicodeCodepoints.js +0 -34
  297. package/dist/src/core/text-rendering/renderers/SdfTextRenderer/internal/getUnicodeCodepoints.js.map +0 -1
  298. package/dist/src/core/text-rendering/renderers/SdfTextRenderer/internal/layoutText.d.ts +0 -20
  299. package/dist/src/core/text-rendering/renderers/SdfTextRenderer/internal/layoutText.js +0 -308
  300. package/dist/src/core/text-rendering/renderers/SdfTextRenderer/internal/layoutText.js.map +0 -1
  301. package/dist/src/core/text-rendering/renderers/SdfTextRenderer/internal/measureText.d.ts +0 -10
  302. package/dist/src/core/text-rendering/renderers/SdfTextRenderer/internal/measureText.js +0 -40
  303. package/dist/src/core/text-rendering/renderers/SdfTextRenderer/internal/measureText.js.map +0 -1
  304. package/dist/src/core/text-rendering/renderers/SdfTextRenderer/internal/setRenderWindow.d.ts +0 -26
  305. package/dist/src/core/text-rendering/renderers/SdfTextRenderer/internal/setRenderWindow.js +0 -70
  306. package/dist/src/core/text-rendering/renderers/SdfTextRenderer/internal/setRenderWindow.js.map +0 -1
  307. package/dist/src/core/text-rendering/renderers/SdfTextRenderer/internal/util.d.ts +0 -16
  308. package/dist/src/core/text-rendering/renderers/SdfTextRenderer/internal/util.js +0 -39
  309. package/dist/src/core/text-rendering/renderers/SdfTextRenderer/internal/util.js.map +0 -1
  310. package/dist/src/core/text-rendering/renderers/TextRenderer.d.ts +0 -373
  311. package/dist/src/core/text-rendering/renderers/TextRenderer.js +0 -178
  312. package/dist/src/core/text-rendering/renderers/TextRenderer.js.map +0 -1
  313. package/dist/src/core/text-rendering/sdf/PeekableGenerator.d.ts +0 -12
  314. package/dist/src/core/text-rendering/sdf/PeekableGenerator.js +0 -61
  315. package/dist/src/core/text-rendering/sdf/PeekableGenerator.js.map +0 -1
  316. package/dist/src/core/text-rendering/sdf/SimpleFontShaper.d.ts +0 -45
  317. package/dist/src/core/text-rendering/sdf/SimpleFontShaper.js +0 -69
  318. package/dist/src/core/text-rendering/sdf/SimpleFontShaper.js.map +0 -1
  319. package/dist/src/main-api/DynamicShaderController.d.ts +0 -29
  320. package/dist/src/main-api/DynamicShaderController.js +0 -58
  321. package/dist/src/main-api/DynamicShaderController.js.map +0 -1
  322. package/dist/src/main-api/ShaderController.d.ts +0 -31
  323. package/dist/src/main-api/ShaderController.js +0 -37
  324. package/dist/src/main-api/ShaderController.js.map +0 -1
@@ -1,10 +0,0 @@
1
- import { CoreShader } from '../../CoreShader.js';
2
- export declare const ROUNDED_RECTANGLE_SHADER_TYPE = "RoundedRectangle";
3
- export declare class UnsupportedShader extends CoreShader {
4
- shType: string;
5
- constructor(shType: string);
6
- bindRenderOp(): void;
7
- protected bindProps(): void;
8
- attach(): void;
9
- detach(): void;
10
- }
@@ -1,43 +0,0 @@
1
- /*
2
- * If not stated otherwise in this file or this component's LICENSE file the
3
- * following copyright and licenses apply:
4
- *
5
- * Copyright 2023 Comcast Cable Communications Management, LLC.
6
- *
7
- * Licensed under the Apache License, Version 2.0 (the License);
8
- * you may not use this file except in compliance with the License.
9
- * You may obtain a copy of the License at
10
- *
11
- * http://www.apache.org/licenses/LICENSE-2.0
12
- *
13
- * Unless required by applicable law or agreed to in writing, software
14
- * distributed under the License is distributed on an "AS IS" BASIS,
15
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
16
- * See the License for the specific language governing permissions and
17
- * limitations under the License.
18
- */
19
- import { CoreShader } from '../../CoreShader.js';
20
- export const ROUNDED_RECTANGLE_SHADER_TYPE = 'RoundedRectangle';
21
- export class UnsupportedShader extends CoreShader {
22
- shType;
23
- constructor(shType) {
24
- super();
25
- this.shType = shType;
26
- // if (shType !== ROUNDED_RECTANGLE_SHADER_TYPE) {
27
- // console.warn('Unsupported shader:', shType);
28
- // }
29
- }
30
- bindRenderOp() {
31
- // noop
32
- }
33
- bindProps() {
34
- // noop
35
- }
36
- attach() {
37
- // noop
38
- }
39
- detach() {
40
- // noop
41
- }
42
- }
43
- //# sourceMappingURL=UnsupportedShader.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"UnsupportedShader.js","sourceRoot":"","sources":["../../../../../../src/core/renderers/canvas/shaders/UnsupportedShader.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;GAiBG;AAEH,OAAO,EAAE,UAAU,EAAE,MAAM,qBAAqB,CAAC;AAEjD,MAAM,CAAC,MAAM,6BAA6B,GAAG,kBAAkB,CAAC;AAEhE,MAAM,OAAO,iBAAkB,SAAQ,UAAU;IACxC,MAAM,CAAS;IAEtB,YAAY,MAAc;QACxB,KAAK,EAAE,CAAC;QACR,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC;QACrB,kDAAkD;QAClD,iDAAiD;QACjD,IAAI;IACN,CAAC;IAED,YAAY;QACV,OAAO;IACT,CAAC;IACS,SAAS;QACjB,OAAO;IACT,CAAC;IAED,MAAM;QACJ,OAAO;IACT,CAAC;IACD,MAAM;QACJ,OAAO;IACT,CAAC;CACF"}
@@ -1,12 +0,0 @@
1
- import type { Dimensions } from '../../../common/CommonTypes.js';
2
- import type { TextureMemoryManager } from '../../TextureMemoryManager.js';
3
- import type { WebGlContextWrapper } from '../../lib/WebGlContextWrapper.js';
4
- import type { RenderTexture } from '../../textures/RenderTexture.js';
5
- import { WebGlCoreCtxTexture } from './WebGlCoreCtxTexture.js';
6
- export declare class WebGlCoreCtxRenderTexture extends WebGlCoreCtxTexture {
7
- textureSource: RenderTexture;
8
- framebuffer: WebGLFramebuffer | null;
9
- constructor(glw: WebGlContextWrapper, memManager: TextureMemoryManager, textureSource: RenderTexture);
10
- onLoadRequest(): Promise<Dimensions>;
11
- free(): void;
12
- }
@@ -1,58 +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 2024 Comcast Cable Communications Management, LLC.
6
- *
7
- * Licensed under the Apache License, Version 2.0 (the License);
8
- * you may not use this file except in compliance with the License.
9
- * You may obtain a copy of the License at
10
- *
11
- * http://www.apache.org/licenses/LICENSE-2.0
12
- *
13
- * Unless required by applicable law or agreed to in writing, software
14
- * distributed under the License is distributed on an "AS IS" BASIS,
15
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
16
- * See the License for the specific language governing permissions and
17
- * limitations under the License.
18
- */
19
- import { assertTruthy } from '../../../utils.js';
20
- import { WebGlCoreCtxTexture } from './WebGlCoreCtxTexture.js';
21
- export class WebGlCoreCtxRenderTexture extends WebGlCoreCtxTexture {
22
- framebuffer = null;
23
- constructor(glw, memManager, textureSource) {
24
- super(glw, memManager, textureSource);
25
- }
26
- async onLoadRequest() {
27
- const { glw } = this;
28
- const nativeTexture = (this._nativeCtxTexture =
29
- this.createNativeCtxTexture());
30
- if (!nativeTexture) {
31
- throw new Error('Failed to create native texture for RenderTexture');
32
- }
33
- const { width, height } = this.textureSource;
34
- // Create Framebuffer object
35
- this.framebuffer = glw.createFramebuffer();
36
- // Set the dimensions of the render texture
37
- glw.texImage2D(0, glw.RGBA, width, height, 0, glw.RGBA, glw.UNSIGNED_BYTE, null);
38
- // Update the texture memory manager
39
- this.setTextureMemUse(width * height * 4);
40
- // Bind the framebuffer
41
- glw.bindFramebuffer(this.framebuffer);
42
- // Attach the texture to the framebuffer
43
- glw.framebufferTexture2D(glw.COLOR_ATTACHMENT0, nativeTexture, 0);
44
- // Unbind the framebuffer
45
- glw.bindFramebuffer(null);
46
- return {
47
- width,
48
- height,
49
- };
50
- }
51
- free() {
52
- super.free();
53
- // Delete the framebuffer
54
- this.glw.deleteFramebuffer(this.framebuffer);
55
- this.framebuffer = null;
56
- }
57
- }
58
- //# sourceMappingURL=WebGlCoreCtxRenderTexture.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"WebGlCoreCtxRenderTexture.js","sourceRoot":"","sources":["../../../../../src/core/renderers/webgl/WebGlCoreCtxRenderTexture.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;GAiBG;AAGH,OAAO,EAAE,YAAY,EAAE,MAAM,mBAAmB,CAAC;AAIjD,OAAO,EAAE,mBAAmB,EAAE,MAAM,0BAA0B,CAAC;AAE/D,MAAM,OAAO,yBAA0B,SAAQ,mBAAmB;IAGzD,WAAW,GAA4B,IAAI,CAAC;IAEnD,YACE,GAAwB,EACxB,UAAgC,EAChC,aAA4B;QAE5B,KAAK,CAAC,GAAG,EAAE,UAAU,EAAE,aAAa,CAAC,CAAC;IACxC,CAAC;IAEQ,KAAK,CAAC,aAAa;QAC1B,MAAM,EAAE,GAAG,EAAE,GAAG,IAAI,CAAC;QACrB,MAAM,aAAa,GAAG,CAAC,IAAI,CAAC,iBAAiB;YAC3C,IAAI,CAAC,sBAAsB,EAAE,CAAC,CAAC;QAEjC,IAAI,CAAC,aAAa,EAAE,CAAC;YACnB,MAAM,IAAI,KAAK,CAAC,mDAAmD,CAAC,CAAC;QACvE,CAAC;QAED,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,GAAG,IAAI,CAAC,aAAa,CAAC;QAE7C,4BAA4B;QAC5B,IAAI,CAAC,WAAW,GAAG,GAAG,CAAC,iBAAiB,EAAE,CAAC;QAE3C,2CAA2C;QAC3C,GAAG,CAAC,UAAU,CACZ,CAAC,EACD,GAAG,CAAC,IAAI,EACR,KAAK,EACL,MAAM,EACN,CAAC,EACD,GAAG,CAAC,IAAI,EACR,GAAG,CAAC,aAAa,EACjB,IAAI,CACL,CAAC;QAEF,oCAAoC;QACpC,IAAI,CAAC,gBAAgB,CAAC,KAAK,GAAG,MAAM,GAAG,CAAC,CAAC,CAAC;QAE1C,uBAAuB;QACvB,GAAG,CAAC,eAAe,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC;QAEtC,wCAAwC;QACxC,GAAG,CAAC,oBAAoB,CAAC,GAAG,CAAC,iBAAiB,EAAE,aAAa,EAAE,CAAC,CAAC,CAAC;QAElE,yBAAyB;QACzB,GAAG,CAAC,eAAe,CAAC,IAAI,CAAC,CAAC;QAE1B,OAAO;YACL,KAAK;YACL,MAAM;SACP,CAAC;IACJ,CAAC;IAEQ,IAAI;QACX,KAAK,CAAC,IAAI,EAAE,CAAC;QAEb,yBAAyB;QACzB,IAAI,CAAC,GAAG,CAAC,iBAAiB,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC;QAC7C,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC;IAC1B,CAAC;CACF"}
@@ -1,9 +0,0 @@
1
- import type { Dimensions } from '../../../common/CommonTypes.js';
2
- import type { TextureMemoryManager } from '../../TextureMemoryManager.js';
3
- import type { WebGlContextWrapper } from '../../lib/WebGlContextWrapper.js';
4
- import type { SubTexture } from '../../textures/SubTexture.js';
5
- import { WebGlCoreCtxTexture } from './WebGlCoreCtxTexture.js';
6
- export declare class WebGlCoreCtxSubTexture extends WebGlCoreCtxTexture {
7
- constructor(glw: WebGlContextWrapper, memManager: TextureMemoryManager, textureSource: SubTexture);
8
- onLoadRequest(): Promise<Dimensions>;
9
- }
@@ -1,38 +0,0 @@
1
- /*
2
- * If not stated otherwise in this file or this component's LICENSE file the
3
- * following copyright and licenses apply:
4
- *
5
- * Copyright 2023 Comcast Cable Communications Management, LLC.
6
- *
7
- * Licensed under the Apache License, Version 2.0 (the License);
8
- * you may not use this file except in compliance with the License.
9
- * You may obtain a copy of the License at
10
- *
11
- * http://www.apache.org/licenses/LICENSE-2.0
12
- *
13
- * Unless required by applicable law or agreed to in writing, software
14
- * distributed under the License is distributed on an "AS IS" BASIS,
15
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
16
- * See the License for the specific language governing permissions and
17
- * limitations under the License.
18
- */
19
- import { assertTruthy } from '../../../utils.js';
20
- import { WebGlCoreCtxTexture } from './WebGlCoreCtxTexture.js';
21
- export class WebGlCoreCtxSubTexture extends WebGlCoreCtxTexture {
22
- constructor(glw, memManager, textureSource) {
23
- super(glw, memManager, textureSource);
24
- }
25
- async onLoadRequest() {
26
- const props = this.textureSource.textureData;
27
- assertTruthy(props, 'SubTexture must have texture data');
28
- if (props.data instanceof Uint8Array) {
29
- // its a 1x1 Color Texture
30
- return { width: 1, height: 1 };
31
- }
32
- return {
33
- width: props.data?.width || 0,
34
- height: props.data?.height || 0,
35
- };
36
- }
37
- }
38
- //# sourceMappingURL=WebGlCoreCtxSubTexture.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"WebGlCoreCtxSubTexture.js","sourceRoot":"","sources":["../../../../../src/core/renderers/webgl/WebGlCoreCtxSubTexture.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;GAiBG;AAGH,OAAO,EAAE,YAAY,EAAE,MAAM,mBAAmB,CAAC;AAIjD,OAAO,EAAE,mBAAmB,EAAE,MAAM,0BAA0B,CAAC;AAE/D,MAAM,OAAO,sBAAuB,SAAQ,mBAAmB;IAC7D,YACE,GAAwB,EACxB,UAAgC,EAChC,aAAyB;QAEzB,KAAK,CAAC,GAAG,EAAE,UAAU,EAAE,aAAa,CAAC,CAAC;IACxC,CAAC;IAEQ,KAAK,CAAC,aAAa;QAC1B,MAAM,KAAK,GAAI,IAAI,CAAC,aAA4B,CAAC,WAAW,CAAC;QAC7D,YAAY,CAAC,KAAK,EAAE,mCAAmC,CAAC,CAAC;QAEzD,IAAI,KAAK,CAAC,IAAI,YAAY,UAAU,EAAE,CAAC;YACrC,0BAA0B;YAC1B,OAAO,EAAE,KAAK,EAAE,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,CAAC;QACjC,CAAC;QAED,OAAO;YACL,KAAK,EAAE,KAAK,CAAC,IAAI,EAAE,KAAK,IAAI,CAAC;YAC7B,MAAM,EAAE,KAAK,CAAC,IAAI,EAAE,MAAM,IAAI,CAAC;SAChC,CAAC;IACJ,CAAC;CACF"}
@@ -1,56 +0,0 @@
1
- import type { Dimensions } from '../../../common/CommonTypes.js';
2
- import type { TextureMemoryManager } from '../../TextureMemoryManager.js';
3
- import type { WebGlContextWrapper } from '../../lib/WebGlContextWrapper.js';
4
- import type { Texture } from '../../textures/Texture.js';
5
- import { CoreContextTexture } from '../CoreContextTexture.js';
6
- /**
7
- * A wrapper around a WebGLTexture that handles loading the texture data
8
- * from a Texture source and uploading it to the GPU as well as freeing
9
- * the uploaded texture.
10
- *
11
- * @remarks
12
- * When accessing the ctxTexture property, the texture will be loaded if
13
- * it hasn't been already. ctxTexture will always return a valid WebGLTexture
14
- * and trigger the loading/uploading of the texture's data if it hasn't been
15
- * loaded yet.
16
- */
17
- export declare class WebGlCoreCtxTexture extends CoreContextTexture {
18
- protected glw: WebGlContextWrapper;
19
- protected _nativeCtxTexture: WebGLTexture | null;
20
- private _w;
21
- private _h;
22
- constructor(glw: WebGlContextWrapper, memManager: TextureMemoryManager, textureSource: Texture);
23
- get ctxTexture(): WebGLTexture | null;
24
- get w(): number;
25
- get h(): number;
26
- /**
27
- * Load the texture data from the Texture source and upload it to the GPU
28
- *
29
- * @remarks
30
- * This method is called automatically when accessing the ctxTexture property
31
- * if the texture hasn't been loaded yet. But it can also be called manually
32
- * to force the texture to be pre-loaded prior to accessing the ctxTexture
33
- * property.
34
- */
35
- load(): Promise<void>;
36
- /**
37
- * Called when the texture data needs to be loaded and uploaded to a texture
38
- */
39
- onLoadRequest(): Promise<Dimensions>;
40
- /**
41
- * Free the WebGLTexture from the GPU
42
- *
43
- * @returns
44
- */
45
- free(): void;
46
- /**
47
- * Create native context texture asynchronously
48
- *
49
- * @remarks
50
- * When this method resolves, the returned texture will be bound to the GL context state
51
- * and fully ready for use. This ensures proper GPU resource allocation timing.
52
- *
53
- * @returns Promise that resolves to the native WebGL texture or null on failure
54
- */
55
- protected createNativeCtxTexture(): WebGLTexture | null;
56
- }
@@ -1,239 +0,0 @@
1
- /*
2
- * If not stated otherwise in this file or this component's LICENSE file the
3
- * following copyright and licenses apply:
4
- *
5
- * Copyright 2023 Comcast Cable Communications Management, LLC.
6
- *
7
- * Licensed under the Apache License, Version 2.0 (the License);
8
- * you may not use this file except in compliance with the License.
9
- * You may obtain a copy of the License at
10
- *
11
- * http://www.apache.org/licenses/LICENSE-2.0
12
- *
13
- * Unless required by applicable law or agreed to in writing, software
14
- * distributed under the License is distributed on an "AS IS" BASIS,
15
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
16
- * See the License for the specific language governing permissions and
17
- * limitations under the License.
18
- */
19
- import { assertTruthy } from '../../../utils.js';
20
- import { isPowerOfTwo } from '../../utils.js';
21
- import { CoreContextTexture } from '../CoreContextTexture.js';
22
- import { isHTMLImageElement } from './internal/RendererUtils.js';
23
- const TRANSPARENT_TEXTURE_DATA = new Uint8Array([0, 0, 0, 0]);
24
- /**
25
- * A wrapper around a WebGLTexture that handles loading the texture data
26
- * from a Texture source and uploading it to the GPU as well as freeing
27
- * the uploaded texture.
28
- *
29
- * @remarks
30
- * When accessing the ctxTexture property, the texture will be loaded if
31
- * it hasn't been already. ctxTexture will always return a valid WebGLTexture
32
- * and trigger the loading/uploading of the texture's data if it hasn't been
33
- * loaded yet.
34
- */
35
- export class WebGlCoreCtxTexture extends CoreContextTexture {
36
- glw;
37
- _nativeCtxTexture = null;
38
- _w = 0;
39
- _h = 0;
40
- constructor(glw, memManager, textureSource) {
41
- super(memManager, textureSource);
42
- this.glw = glw;
43
- }
44
- get ctxTexture() {
45
- if (this.state === 'freed') {
46
- this.load();
47
- return null;
48
- }
49
- assertTruthy(this._nativeCtxTexture);
50
- return this._nativeCtxTexture;
51
- }
52
- get w() {
53
- return this._w;
54
- }
55
- get h() {
56
- return this._h;
57
- }
58
- /**
59
- * Load the texture data from the Texture source and upload it to the GPU
60
- *
61
- * @remarks
62
- * This method is called automatically when accessing the ctxTexture property
63
- * if the texture hasn't been loaded yet. But it can also be called manually
64
- * to force the texture to be pre-loaded prior to accessing the ctxTexture
65
- * property.
66
- */
67
- async load() {
68
- // If the texture is already loading or loaded, return resolved promise
69
- if (this.state === 'loading' || this.state === 'loaded') {
70
- return Promise.resolve();
71
- }
72
- this.state = 'loading';
73
- this.textureSource.setState('loading');
74
- // Await the native texture creation to ensure GPU buffer is fully allocated
75
- this._nativeCtxTexture = this.createNativeCtxTexture();
76
- if (this._nativeCtxTexture === null) {
77
- this.state = 'failed';
78
- const error = new Error('Could not create WebGL Texture');
79
- this.textureSource.setState('failed', error);
80
- console.error('Could not create WebGL Texture');
81
- throw error;
82
- }
83
- try {
84
- const { width, height } = await this.onLoadRequest();
85
- // If the texture has been freed while loading, return early.
86
- // Type assertion needed because state could change during async operations
87
- if (this.state === 'freed') {
88
- return;
89
- }
90
- this.state = 'loaded';
91
- this._w = width;
92
- this._h = height;
93
- // Update the texture source's width and height so that it can be used
94
- // for rendering.
95
- this.textureSource.setState('loaded', { width, height });
96
- // cleanup source texture data next tick
97
- // This is done using queueMicrotask to ensure it runs after the current
98
- // event loop tick, allowing the texture to be fully loaded and bound
99
- // to the GL context before freeing the source data.
100
- // This is important to avoid issues with the texture data being
101
- // freed while the texture is still being loaded or used.
102
- queueMicrotask(() => {
103
- this.textureSource.freeTextureData();
104
- });
105
- }
106
- catch (err) {
107
- // If the texture has been freed while loading, return early.
108
- // Type assertion needed because state could change during async operations
109
- if (this.state === 'freed') {
110
- return;
111
- }
112
- this.state = 'failed';
113
- const error = err instanceof Error ? err : new Error(String(err));
114
- this.textureSource.setState('failed', error);
115
- this.textureSource.freeTextureData();
116
- console.error(err);
117
- throw error; // Re-throw to propagate the error
118
- }
119
- }
120
- /**
121
- * Called when the texture data needs to be loaded and uploaded to a texture
122
- */
123
- async onLoadRequest() {
124
- const { glw } = this;
125
- const textureData = this.textureSource.textureData;
126
- if (textureData === null || this._nativeCtxTexture === null) {
127
- throw new Error('Texture data or native texture is null ' + this.textureSource.type);
128
- }
129
- // Set to a 1x1 transparent texture
130
- glw.texImage2D(0, glw.RGBA, 1, 1, 0, glw.RGBA, glw.UNSIGNED_BYTE, null);
131
- this.setTextureMemUse(TRANSPARENT_TEXTURE_DATA.byteLength);
132
- let width = 0;
133
- let height = 0;
134
- glw.activeTexture(0);
135
- const tdata = textureData.data;
136
- const format = glw.RGBA;
137
- const formatBytes = 4;
138
- const memoryPadding = 1.1; // Add padding to account for GPU Padding
139
- // If textureData is null, the texture is empty (0, 0) and we don't need to
140
- // upload any data to the GPU.
141
- if ((typeof ImageBitmap !== 'undefined' && tdata instanceof ImageBitmap) ||
142
- tdata instanceof ImageData ||
143
- // not using typeof HTMLImageElement due to web worker
144
- isHTMLImageElement(tdata)) {
145
- width = tdata.width;
146
- height = tdata.height;
147
- glw.bindTexture(this._nativeCtxTexture);
148
- glw.pixelStorei(glw.UNPACK_PREMULTIPLY_ALPHA_WEBGL, !!textureData.premultiplyAlpha);
149
- glw.texImage2D(0, format, format, glw.UNSIGNED_BYTE, tdata);
150
- this.setTextureMemUse(height * width * formatBytes * memoryPadding);
151
- }
152
- else if (tdata === null) {
153
- width = 0;
154
- height = 0;
155
- // Reset to a 1x1 transparent texture
156
- glw.bindTexture(this._nativeCtxTexture);
157
- glw.texImage2D(0, format, 1, 1, 0, format, glw.UNSIGNED_BYTE, TRANSPARENT_TEXTURE_DATA);
158
- this.setTextureMemUse(TRANSPARENT_TEXTURE_DATA.byteLength);
159
- }
160
- else if ('mipmaps' in tdata && tdata.mipmaps) {
161
- const { mipmaps, width = 0, height = 0, type, glInternalFormat } = tdata;
162
- const view = type === 'ktx'
163
- ? new DataView(mipmaps[0] ?? new ArrayBuffer(0))
164
- : mipmaps[0];
165
- glw.bindTexture(this._nativeCtxTexture);
166
- glw.compressedTexImage2D(0, glInternalFormat, width, height, 0, view);
167
- glw.texParameteri(glw.TEXTURE_WRAP_S, glw.CLAMP_TO_EDGE);
168
- glw.texParameteri(glw.TEXTURE_WRAP_T, glw.CLAMP_TO_EDGE);
169
- glw.texParameteri(glw.TEXTURE_MAG_FILTER, glw.LINEAR);
170
- glw.texParameteri(glw.TEXTURE_MIN_FILTER, glw.LINEAR);
171
- this.setTextureMemUse(view.byteLength);
172
- }
173
- else if (tdata && tdata instanceof Uint8Array) {
174
- // Color Texture
175
- width = 1;
176
- height = 1;
177
- glw.bindTexture(this._nativeCtxTexture);
178
- glw.pixelStorei(glw.UNPACK_PREMULTIPLY_ALPHA_WEBGL, !!textureData.premultiplyAlpha);
179
- glw.texImage2D(0, format, width, height, 0, format, glw.UNSIGNED_BYTE, tdata);
180
- this.setTextureMemUse(width * height * formatBytes);
181
- }
182
- else {
183
- console.error(`WebGlCoreCtxTexture.onLoadRequest: Unexpected textureData returned`, textureData);
184
- }
185
- return {
186
- width,
187
- height,
188
- };
189
- }
190
- /**
191
- * Free the WebGLTexture from the GPU
192
- *
193
- * @returns
194
- */
195
- free() {
196
- if (this.state === 'freed') {
197
- return;
198
- }
199
- this.state = 'freed';
200
- this.textureSource.setState('freed');
201
- this._w = 0;
202
- this._h = 0;
203
- if (this._nativeCtxTexture !== null) {
204
- this.glw.deleteTexture(this._nativeCtxTexture);
205
- this.setTextureMemUse(0);
206
- this._nativeCtxTexture = null;
207
- }
208
- // if the texture still has source data, free it
209
- this.textureSource.freeTextureData();
210
- }
211
- /**
212
- * Create native context texture asynchronously
213
- *
214
- * @remarks
215
- * When this method resolves, the returned texture will be bound to the GL context state
216
- * and fully ready for use. This ensures proper GPU resource allocation timing.
217
- *
218
- * @returns Promise that resolves to the native WebGL texture or null on failure
219
- */
220
- createNativeCtxTexture() {
221
- const { glw } = this;
222
- const nativeTexture = glw.createTexture();
223
- if (!nativeTexture) {
224
- return null;
225
- }
226
- // On initial load request, create a 1x1 transparent texture to use until
227
- // the texture data is finally loaded.
228
- glw.activeTexture(0);
229
- glw.bindTexture(nativeTexture);
230
- // linear texture filtering
231
- glw.texParameteri(glw.TEXTURE_MAG_FILTER, glw.LINEAR);
232
- glw.texParameteri(glw.TEXTURE_MIN_FILTER, glw.LINEAR);
233
- // texture wrapping method
234
- glw.texParameteri(glw.TEXTURE_WRAP_S, glw.CLAMP_TO_EDGE);
235
- glw.texParameteri(glw.TEXTURE_WRAP_T, glw.CLAMP_TO_EDGE);
236
- return nativeTexture;
237
- }
238
- }
239
- //# sourceMappingURL=WebGlCoreCtxTexture.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"WebGlCoreCtxTexture.js","sourceRoot":"","sources":["../../../../../src/core/renderers/webgl/WebGlCoreCtxTexture.ts"],"names":[],"mappings":"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"}
@@ -1,34 +0,0 @@
1
- import { CoreRenderOp } from '../CoreRenderOp.js';
2
- import { WebGlCoreShader } from './WebGlCoreShader.js';
3
- import type { WebGlCoreCtxTexture } from './WebGlCoreCtxTexture.js';
4
- import type { WebGlCoreRendererOptions } from './WebGlCoreRenderer.js';
5
- import type { BufferCollection } from './internal/BufferCollection.js';
6
- import type { Dimensions } from '../../../common/CommonTypes.js';
7
- import type { RectWithValid } from '../../lib/utils.js';
8
- import type { WebGlContextWrapper } from '../../lib/WebGlContextWrapper.js';
9
- /**
10
- * Can render multiple quads with multiple textures (up to vertex shader texture limit)
11
- *
12
- */
13
- export declare class WebGlCoreRenderOp extends CoreRenderOp {
14
- readonly glw: WebGlContextWrapper;
15
- readonly options: WebGlCoreRendererOptions;
16
- readonly buffers: BufferCollection;
17
- readonly shader: WebGlCoreShader;
18
- readonly shaderProps: Record<string, unknown>;
19
- readonly alpha: number;
20
- readonly clippingRect: RectWithValid;
21
- readonly dimensions: Dimensions;
22
- readonly bufferIdx: number;
23
- readonly zIndex: number;
24
- readonly renderToTexture: boolean | undefined;
25
- readonly parentHasRenderTexture: boolean | undefined;
26
- readonly framebufferDimensions: Dimensions | undefined;
27
- length: number;
28
- numQuads: number;
29
- textures: WebGlCoreCtxTexture[];
30
- readonly maxTextures: number;
31
- constructor(glw: WebGlContextWrapper, options: WebGlCoreRendererOptions, buffers: BufferCollection, shader: WebGlCoreShader, shaderProps: Record<string, unknown>, alpha: number, clippingRect: RectWithValid, dimensions: Dimensions, bufferIdx: number, zIndex: number, renderToTexture: boolean | undefined, parentHasRenderTexture: boolean | undefined, framebufferDimensions: Dimensions | undefined);
32
- addTexture(texture: WebGlCoreCtxTexture): number;
33
- draw(): void;
34
- }
@@ -1,114 +0,0 @@
1
- /*
2
- * If not stated otherwise in this file or this component's LICENSE file the
3
- * following copyright and licenses apply:
4
- *
5
- * Copyright 2023 Comcast Cable Communications Management, LLC.
6
- *
7
- * Licensed under the Apache License, Version 2.0 (the License);
8
- * you may not use this file except in compliance with the License.
9
- * You may obtain a copy of the License at
10
- *
11
- * http://www.apache.org/licenses/LICENSE-2.0
12
- *
13
- * Unless required by applicable law or agreed to in writing, software
14
- * distributed under the License is distributed on an "AS IS" BASIS,
15
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
16
- * See the License for the specific language governing permissions and
17
- * limitations under the License.
18
- */
19
- import { CoreRenderOp } from '../CoreRenderOp.js';
20
- import { WebGlCoreShader } from './WebGlCoreShader.js';
21
- /**
22
- * Can render multiple quads with multiple textures (up to vertex shader texture limit)
23
- *
24
- */
25
- export class WebGlCoreRenderOp extends CoreRenderOp {
26
- glw;
27
- options;
28
- buffers;
29
- shader;
30
- shaderProps;
31
- alpha;
32
- clippingRect;
33
- dimensions;
34
- bufferIdx;
35
- zIndex;
36
- renderToTexture;
37
- parentHasRenderTexture;
38
- framebufferDimensions;
39
- length = 0;
40
- numQuads = 0;
41
- textures = [];
42
- maxTextures;
43
- constructor(glw, options, buffers, shader, shaderProps, alpha, clippingRect, dimensions, bufferIdx, zIndex, renderToTexture, parentHasRenderTexture, framebufferDimensions) {
44
- super();
45
- this.glw = glw;
46
- this.options = options;
47
- this.buffers = buffers;
48
- this.shader = shader;
49
- this.shaderProps = shaderProps;
50
- this.alpha = alpha;
51
- this.clippingRect = clippingRect;
52
- this.dimensions = dimensions;
53
- this.bufferIdx = bufferIdx;
54
- this.zIndex = zIndex;
55
- this.renderToTexture = renderToTexture;
56
- this.parentHasRenderTexture = parentHasRenderTexture;
57
- this.framebufferDimensions = framebufferDimensions;
58
- this.maxTextures = shader.supportsIndexedTextures
59
- ? glw.getParameter(glw.MAX_VERTEX_TEXTURE_IMAGE_UNITS)
60
- : 1;
61
- }
62
- addTexture(texture) {
63
- const { textures, maxTextures } = this;
64
- let existingIdx = -1;
65
- const texturesLength = textures.length;
66
- for (let i = 0; i < texturesLength; i++) {
67
- const t = textures[i];
68
- if (t === texture) {
69
- existingIdx = i;
70
- break;
71
- }
72
- }
73
- if (existingIdx !== -1) {
74
- return existingIdx;
75
- }
76
- if (texturesLength >= maxTextures) {
77
- return 0xffffffff;
78
- }
79
- this.textures.push(texture);
80
- return texturesLength;
81
- }
82
- draw() {
83
- const { glw, shader, shaderProps, options } = this;
84
- const { shManager } = options;
85
- shManager.useShader(shader);
86
- shader.bindRenderOp(this, shaderProps);
87
- // TODO: Reduce calculations required
88
- const quadIdx = (this.bufferIdx / 24) * 6 * 2;
89
- // Clipping
90
- if (this.clippingRect.valid) {
91
- const { x, y, width, height } = this.clippingRect;
92
- const pixelRatio = this.parentHasRenderTexture ? 1 : options.pixelRatio;
93
- const canvasHeight = options.canvas.height;
94
- const clipX = Math.round(x * pixelRatio);
95
- const clipWidth = Math.round(width * pixelRatio);
96
- const clipHeight = Math.round(height * pixelRatio);
97
- let clipY = Math.round(canvasHeight - clipHeight - y * pixelRatio);
98
- // if parent has render texture, we need to adjust the scissor rect
99
- // to be relative to the parent's framebuffer
100
- if (this.parentHasRenderTexture) {
101
- clipY = this.framebufferDimensions
102
- ? this.framebufferDimensions.height - this.dimensions.height
103
- : 0;
104
- }
105
- glw.setScissorTest(true);
106
- glw.scissor(clipX, clipY, clipWidth, clipHeight);
107
- }
108
- else {
109
- glw.setScissorTest(false);
110
- }
111
- glw.drawElements(glw.TRIANGLES, 6 * this.numQuads, glw.UNSIGNED_SHORT, quadIdx);
112
- }
113
- }
114
- //# sourceMappingURL=WebGlCoreRenderOp.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"WebGlCoreRenderOp.js","sourceRoot":"","sources":["../../../../../src/core/renderers/webgl/WebGlCoreRenderOp.ts"],"names":[],"mappings":"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"}