@lightningjs/renderer 3.0.0-beta15 → 3.0.0-beta17

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 (245) hide show
  1. package/dist/src/common/CommonTypes.d.ts +11 -0
  2. package/dist/src/core/CoreNode.js +8 -0
  3. package/dist/src/core/CoreNode.js.map +1 -1
  4. package/dist/src/core/CoreTextNode.d.ts +14 -0
  5. package/dist/src/core/CoreTextNode.js +90 -5
  6. package/dist/src/core/CoreTextNode.js.map +1 -1
  7. package/dist/src/core/Stage.js +2 -1
  8. package/dist/src/core/Stage.js.map +1 -1
  9. package/dist/src/core/animations/Animation.d.ts +16 -0
  10. package/dist/src/core/animations/Animation.js +111 -0
  11. package/dist/src/core/animations/Animation.js.map +1 -0
  12. package/dist/src/core/animations/CoreAnimation.d.ts +0 -1
  13. package/dist/src/core/animations/CoreAnimation.js +0 -1
  14. package/dist/src/core/animations/CoreAnimation.js.map +1 -1
  15. package/dist/src/core/animations/CoreTransition.d.ts +24 -0
  16. package/dist/src/core/animations/CoreTransition.js +63 -0
  17. package/dist/src/core/animations/CoreTransition.js.map +1 -0
  18. package/dist/src/core/animations/Playback.d.ts +62 -0
  19. package/dist/src/core/animations/Playback.js +155 -0
  20. package/dist/src/core/animations/Playback.js.map +1 -0
  21. package/dist/src/core/animations/Transition.d.ts +25 -0
  22. package/dist/src/core/animations/Transition.js +63 -0
  23. package/dist/src/core/animations/Transition.js.map +1 -0
  24. package/dist/src/core/animations/utils.d.ts +2 -0
  25. package/dist/src/core/animations/utils.js +137 -0
  26. package/dist/src/core/animations/utils.js.map +1 -0
  27. package/dist/src/core/lib/collectionUtils.d.ts +5 -0
  28. package/dist/src/core/lib/collectionUtils.js +100 -0
  29. package/dist/src/core/lib/collectionUtils.js.map +1 -0
  30. package/dist/src/core/platforms/Platform.d.ts +5 -0
  31. package/dist/src/core/platforms/Platform.js.map +1 -1
  32. package/dist/src/core/platforms/web/WebPlatform.d.ts +1 -0
  33. package/dist/src/core/platforms/web/WebPlatform.js +3 -0
  34. package/dist/src/core/platforms/web/WebPlatform.js.map +1 -1
  35. package/dist/src/core/text-rendering/CanvasFontHandler.js +4 -1
  36. package/dist/src/core/text-rendering/CanvasFontHandler.js.map +1 -1
  37. package/dist/src/core/text-rendering/CanvasTextRenderer.js +7 -7
  38. package/dist/src/core/text-rendering/CanvasTextRenderer.js.map +1 -1
  39. package/dist/src/core/text-rendering/SdfFontHandler.js +3 -0
  40. package/dist/src/core/text-rendering/SdfFontHandler.js.map +1 -1
  41. package/dist/src/core/text-rendering/SdfTextRenderer.js +5 -5
  42. package/dist/src/core/text-rendering/SdfTextRenderer.js.map +1 -1
  43. package/dist/src/core/text-rendering/TextLayoutEngine.d.ts +12 -13
  44. package/dist/src/core/text-rendering/TextLayoutEngine.js +242 -186
  45. package/dist/src/core/text-rendering/TextLayoutEngine.js.map +1 -1
  46. package/dist/src/core/text-rendering/TextRenderer.d.ts +22 -7
  47. package/dist/src/core/utils.d.ts +1 -1
  48. package/dist/src/main-api/Inspector.js +9 -5
  49. package/dist/src/main-api/Inspector.js.map +1 -1
  50. package/dist/src/main-api/Renderer.js +3 -2
  51. package/dist/src/main-api/Renderer.js.map +1 -1
  52. package/dist/tsconfig.dist.tsbuildinfo +1 -1
  53. package/package.json +1 -1
  54. package/src/common/CommonTypes.ts +16 -0
  55. package/src/core/CoreNode.test.ts +50 -1
  56. package/src/core/CoreNode.ts +11 -0
  57. package/src/core/CoreTextNode.ts +112 -5
  58. package/src/core/Stage.ts +2 -1
  59. package/src/core/animations/CoreAnimation.ts +0 -2
  60. package/src/core/platforms/Platform.ts +6 -0
  61. package/src/core/platforms/web/WebPlatform.ts +11 -0
  62. package/src/core/text-rendering/CanvasFontHandler.ts +4 -7
  63. package/src/core/text-rendering/CanvasTextRenderer.ts +6 -8
  64. package/src/core/text-rendering/SdfFontHandler.ts +3 -0
  65. package/src/core/text-rendering/SdfTextRenderer.ts +4 -5
  66. package/src/core/text-rendering/TextLayoutEngine.ts +396 -226
  67. package/src/core/text-rendering/TextRenderer.ts +22 -7
  68. package/src/core/text-rendering/tests/{SdfTests.test.ts → TextLayoutEngine.test.ts} +103 -64
  69. package/src/main-api/Inspector.ts +9 -5
  70. package/src/main-api/Renderer.ts +3 -2
  71. package/dist/src/core/TextureError.d.ts +0 -11
  72. package/dist/src/core/TextureError.js +0 -37
  73. package/dist/src/core/TextureError.js.map +0 -1
  74. package/dist/src/core/platform.d.ts +0 -10
  75. package/dist/src/core/platform.js +0 -81
  76. package/dist/src/core/platform.js.map +0 -1
  77. package/dist/src/core/renderers/CoreShader.d.ts +0 -9
  78. package/dist/src/core/renderers/CoreShader.js +0 -28
  79. package/dist/src/core/renderers/CoreShader.js.map +0 -1
  80. package/dist/src/core/renderers/canvas/CanvasCoreRenderer.d.ts +0 -33
  81. package/dist/src/core/renderers/canvas/CanvasCoreRenderer.js +0 -250
  82. package/dist/src/core/renderers/canvas/CanvasCoreRenderer.js.map +0 -1
  83. package/dist/src/core/renderers/canvas/CanvasCoreTexture.d.ts +0 -17
  84. package/dist/src/core/renderers/canvas/CanvasCoreTexture.js +0 -125
  85. package/dist/src/core/renderers/canvas/CanvasCoreTexture.js.map +0 -1
  86. package/dist/src/core/renderers/canvas/internal/C2DShaderUtils.d.ts +0 -14
  87. package/dist/src/core/renderers/canvas/internal/C2DShaderUtils.js +0 -138
  88. package/dist/src/core/renderers/canvas/internal/C2DShaderUtils.js.map +0 -1
  89. package/dist/src/core/renderers/canvas/internal/ColorUtils.d.ts +0 -19
  90. package/dist/src/core/renderers/canvas/internal/ColorUtils.js +0 -58
  91. package/dist/src/core/renderers/canvas/internal/ColorUtils.js.map +0 -1
  92. package/dist/src/core/renderers/canvas/shaders/UnsupportedShader.d.ts +0 -10
  93. package/dist/src/core/renderers/canvas/shaders/UnsupportedShader.js +0 -43
  94. package/dist/src/core/renderers/canvas/shaders/UnsupportedShader.js.map +0 -1
  95. package/dist/src/core/renderers/webgl/WebGlCoreCtxRenderTexture.d.ts +0 -12
  96. package/dist/src/core/renderers/webgl/WebGlCoreCtxRenderTexture.js +0 -58
  97. package/dist/src/core/renderers/webgl/WebGlCoreCtxRenderTexture.js.map +0 -1
  98. package/dist/src/core/renderers/webgl/WebGlCoreCtxSubTexture.d.ts +0 -9
  99. package/dist/src/core/renderers/webgl/WebGlCoreCtxSubTexture.js +0 -38
  100. package/dist/src/core/renderers/webgl/WebGlCoreCtxSubTexture.js.map +0 -1
  101. package/dist/src/core/renderers/webgl/WebGlCoreCtxTexture.d.ts +0 -65
  102. package/dist/src/core/renderers/webgl/WebGlCoreCtxTexture.js +0 -269
  103. package/dist/src/core/renderers/webgl/WebGlCoreCtxTexture.js.map +0 -1
  104. package/dist/src/core/renderers/webgl/WebGlCoreRenderOp.d.ts +0 -34
  105. package/dist/src/core/renderers/webgl/WebGlCoreRenderOp.js +0 -114
  106. package/dist/src/core/renderers/webgl/WebGlCoreRenderOp.js.map +0 -1
  107. package/dist/src/core/renderers/webgl/WebGlCoreRenderer.d.ts +0 -133
  108. package/dist/src/core/renderers/webgl/WebGlCoreRenderer.js +0 -616
  109. package/dist/src/core/renderers/webgl/WebGlCoreRenderer.js.map +0 -1
  110. package/dist/src/core/renderers/webgl/WebGlCoreShader.d.ts +0 -83
  111. package/dist/src/core/renderers/webgl/WebGlCoreShader.js +0 -233
  112. package/dist/src/core/renderers/webgl/WebGlCoreShader.js.map +0 -1
  113. package/dist/src/core/renderers/webgl/shaders/DefaultShader.d.ts +0 -9
  114. package/dist/src/core/renderers/webgl/shaders/DefaultShader.js +0 -87
  115. package/dist/src/core/renderers/webgl/shaders/DefaultShader.js.map +0 -1
  116. package/dist/src/core/renderers/webgl/shaders/DefaultShaderBatched.d.ts +0 -10
  117. package/dist/src/core/renderers/webgl/shaders/DefaultShaderBatched.js +0 -119
  118. package/dist/src/core/renderers/webgl/shaders/DefaultShaderBatched.js.map +0 -1
  119. package/dist/src/core/renderers/webgl/shaders/DynamicShader.d.ts +0 -29
  120. package/dist/src/core/renderers/webgl/shaders/DynamicShader.js +0 -413
  121. package/dist/src/core/renderers/webgl/shaders/DynamicShader.js.map +0 -1
  122. package/dist/src/core/renderers/webgl/shaders/RoundedRectangle.d.ts +0 -28
  123. package/dist/src/core/renderers/webgl/shaders/RoundedRectangle.js +0 -131
  124. package/dist/src/core/renderers/webgl/shaders/RoundedRectangle.js.map +0 -1
  125. package/dist/src/core/renderers/webgl/shaders/SdfShader.d.ts +0 -47
  126. package/dist/src/core/renderers/webgl/shaders/SdfShader.js +0 -160
  127. package/dist/src/core/renderers/webgl/shaders/SdfShader.js.map +0 -1
  128. package/dist/src/core/renderers/webgl/shaders/effects/BorderBottomEffect.d.ts +0 -31
  129. package/dist/src/core/renderers/webgl/shaders/effects/BorderBottomEffect.js +0 -71
  130. package/dist/src/core/renderers/webgl/shaders/effects/BorderBottomEffect.js.map +0 -1
  131. package/dist/src/core/renderers/webgl/shaders/effects/BorderEffect.d.ts +0 -30
  132. package/dist/src/core/renderers/webgl/shaders/effects/BorderEffect.js +0 -58
  133. package/dist/src/core/renderers/webgl/shaders/effects/BorderEffect.js.map +0 -1
  134. package/dist/src/core/renderers/webgl/shaders/effects/BorderLeftEffect.d.ts +0 -31
  135. package/dist/src/core/renderers/webgl/shaders/effects/BorderLeftEffect.js +0 -71
  136. package/dist/src/core/renderers/webgl/shaders/effects/BorderLeftEffect.js.map +0 -1
  137. package/dist/src/core/renderers/webgl/shaders/effects/BorderRightEffect.d.ts +0 -31
  138. package/dist/src/core/renderers/webgl/shaders/effects/BorderRightEffect.js +0 -71
  139. package/dist/src/core/renderers/webgl/shaders/effects/BorderRightEffect.js.map +0 -1
  140. package/dist/src/core/renderers/webgl/shaders/effects/BorderTopEffect.d.ts +0 -31
  141. package/dist/src/core/renderers/webgl/shaders/effects/BorderTopEffect.js +0 -71
  142. package/dist/src/core/renderers/webgl/shaders/effects/BorderTopEffect.js.map +0 -1
  143. package/dist/src/core/renderers/webgl/shaders/effects/EffectUtils.d.ts +0 -9
  144. package/dist/src/core/renderers/webgl/shaders/effects/EffectUtils.js +0 -136
  145. package/dist/src/core/renderers/webgl/shaders/effects/EffectUtils.js.map +0 -1
  146. package/dist/src/core/renderers/webgl/shaders/effects/FadeOutEffect.d.ts +0 -36
  147. package/dist/src/core/renderers/webgl/shaders/effects/FadeOutEffect.js +0 -85
  148. package/dist/src/core/renderers/webgl/shaders/effects/FadeOutEffect.js.map +0 -1
  149. package/dist/src/core/renderers/webgl/shaders/effects/GlitchEffect.d.ts +0 -45
  150. package/dist/src/core/renderers/webgl/shaders/effects/GlitchEffect.js +0 -104
  151. package/dist/src/core/renderers/webgl/shaders/effects/GlitchEffect.js.map +0 -1
  152. package/dist/src/core/renderers/webgl/shaders/effects/GrayscaleEffect.d.ts +0 -22
  153. package/dist/src/core/renderers/webgl/shaders/effects/GrayscaleEffect.js +0 -45
  154. package/dist/src/core/renderers/webgl/shaders/effects/GrayscaleEffect.js.map +0 -1
  155. package/dist/src/core/renderers/webgl/shaders/effects/HolePunchEffect.d.ts +0 -58
  156. package/dist/src/core/renderers/webgl/shaders/effects/HolePunchEffect.js +0 -80
  157. package/dist/src/core/renderers/webgl/shaders/effects/HolePunchEffect.js.map +0 -1
  158. package/dist/src/core/renderers/webgl/shaders/effects/LinearGradientEffect.d.ts +0 -35
  159. package/dist/src/core/renderers/webgl/shaders/effects/LinearGradientEffect.js +0 -129
  160. package/dist/src/core/renderers/webgl/shaders/effects/LinearGradientEffect.js.map +0 -1
  161. package/dist/src/core/renderers/webgl/shaders/effects/RadialGradientEffect.d.ts +0 -39
  162. package/dist/src/core/renderers/webgl/shaders/effects/RadialGradientEffect.js +0 -116
  163. package/dist/src/core/renderers/webgl/shaders/effects/RadialGradientEffect.js.map +0 -1
  164. package/dist/src/core/renderers/webgl/shaders/effects/RadialProgressEffect.d.ts +0 -61
  165. package/dist/src/core/renderers/webgl/shaders/effects/RadialProgressEffect.js +0 -127
  166. package/dist/src/core/renderers/webgl/shaders/effects/RadialProgressEffect.js.map +0 -1
  167. package/dist/src/core/renderers/webgl/shaders/effects/RadiusEffect.d.ts +0 -40
  168. package/dist/src/core/renderers/webgl/shaders/effects/RadiusEffect.js +0 -71
  169. package/dist/src/core/renderers/webgl/shaders/effects/RadiusEffect.js.map +0 -1
  170. package/dist/src/core/renderers/webgl/shaders/effects/ShaderEffect.d.ts +0 -115
  171. package/dist/src/core/renderers/webgl/shaders/effects/ShaderEffect.js +0 -61
  172. package/dist/src/core/renderers/webgl/shaders/effects/ShaderEffect.js.map +0 -1
  173. package/dist/src/core/text-rendering/TextRenderingUtils.d.ts +0 -12
  174. package/dist/src/core/text-rendering/TextRenderingUtils.js +0 -14
  175. package/dist/src/core/text-rendering/TextRenderingUtils.js.map +0 -1
  176. package/dist/src/core/text-rendering/TextTextureRendererUtils.d.ts +0 -72
  177. package/dist/src/core/text-rendering/TextTextureRendererUtils.js +0 -217
  178. package/dist/src/core/text-rendering/TextTextureRendererUtils.js.map +0 -1
  179. package/dist/src/core/text-rendering/TrFontManager.d.ts +0 -26
  180. package/dist/src/core/text-rendering/TrFontManager.js +0 -131
  181. package/dist/src/core/text-rendering/TrFontManager.js.map +0 -1
  182. package/dist/src/core/text-rendering/font-face-types/SdfTrFontFace/SdfTrFontFace.d.ts +0 -39
  183. package/dist/src/core/text-rendering/font-face-types/SdfTrFontFace/SdfTrFontFace.js +0 -125
  184. package/dist/src/core/text-rendering/font-face-types/SdfTrFontFace/SdfTrFontFace.js.map +0 -1
  185. package/dist/src/core/text-rendering/font-face-types/SdfTrFontFace/internal/FontShaper.d.ts +0 -103
  186. package/dist/src/core/text-rendering/font-face-types/SdfTrFontFace/internal/FontShaper.js +0 -21
  187. package/dist/src/core/text-rendering/font-face-types/SdfTrFontFace/internal/FontShaper.js.map +0 -1
  188. package/dist/src/core/text-rendering/font-face-types/SdfTrFontFace/internal/SdfFontShaper.d.ts +0 -62
  189. package/dist/src/core/text-rendering/font-face-types/SdfTrFontFace/internal/SdfFontShaper.js +0 -88
  190. package/dist/src/core/text-rendering/font-face-types/SdfTrFontFace/internal/SdfFontShaper.js.map +0 -1
  191. package/dist/src/core/text-rendering/font-face-types/TrFontFace.d.ts +0 -118
  192. package/dist/src/core/text-rendering/font-face-types/TrFontFace.js +0 -63
  193. package/dist/src/core/text-rendering/font-face-types/TrFontFace.js.map +0 -1
  194. package/dist/src/core/text-rendering/font-face-types/WebTrFontFace.d.ts +0 -14
  195. package/dist/src/core/text-rendering/font-face-types/WebTrFontFace.js +0 -66
  196. package/dist/src/core/text-rendering/font-face-types/WebTrFontFace.js.map +0 -1
  197. package/dist/src/core/text-rendering/font-face-types/utils.d.ts +0 -1
  198. package/dist/src/core/text-rendering/font-face-types/utils.js +0 -38
  199. package/dist/src/core/text-rendering/font-face-types/utils.js.map +0 -1
  200. package/dist/src/core/text-rendering/renderers/CanvasTextRenderer.d.ts +0 -59
  201. package/dist/src/core/text-rendering/renderers/CanvasTextRenderer.js +0 -397
  202. package/dist/src/core/text-rendering/renderers/CanvasTextRenderer.js.map +0 -1
  203. package/dist/src/core/text-rendering/renderers/LightningTextTextureRenderer.d.ts +0 -120
  204. package/dist/src/core/text-rendering/renderers/LightningTextTextureRenderer.js +0 -551
  205. package/dist/src/core/text-rendering/renderers/LightningTextTextureRenderer.js.map +0 -1
  206. package/dist/src/core/text-rendering/renderers/SdfTextRenderer/SdfTextRenderer.d.ts +0 -92
  207. package/dist/src/core/text-rendering/renderers/SdfTextRenderer/SdfTextRenderer.js +0 -607
  208. package/dist/src/core/text-rendering/renderers/SdfTextRenderer/SdfTextRenderer.js.map +0 -1
  209. package/dist/src/core/text-rendering/renderers/SdfTextRenderer/internal/PeekableGenerator.d.ts +0 -12
  210. package/dist/src/core/text-rendering/renderers/SdfTextRenderer/internal/PeekableGenerator.js +0 -61
  211. package/dist/src/core/text-rendering/renderers/SdfTextRenderer/internal/PeekableGenerator.js.map +0 -1
  212. package/dist/src/core/text-rendering/renderers/SdfTextRenderer/internal/SpecialCodepoints.d.ts +0 -33
  213. package/dist/src/core/text-rendering/renderers/SdfTextRenderer/internal/SpecialCodepoints.js +0 -52
  214. package/dist/src/core/text-rendering/renderers/SdfTextRenderer/internal/SpecialCodepoints.js.map +0 -1
  215. package/dist/src/core/text-rendering/renderers/SdfTextRenderer/internal/constants.d.ts +0 -13
  216. package/dist/src/core/text-rendering/renderers/SdfTextRenderer/internal/constants.js +0 -32
  217. package/dist/src/core/text-rendering/renderers/SdfTextRenderer/internal/constants.js.map +0 -1
  218. package/dist/src/core/text-rendering/renderers/SdfTextRenderer/internal/getStartConditions.d.ts +0 -23
  219. package/dist/src/core/text-rendering/renderers/SdfTextRenderer/internal/getStartConditions.js +0 -84
  220. package/dist/src/core/text-rendering/renderers/SdfTextRenderer/internal/getStartConditions.js.map +0 -1
  221. package/dist/src/core/text-rendering/renderers/SdfTextRenderer/internal/getUnicodeCodepoints.d.ts +0 -4
  222. package/dist/src/core/text-rendering/renderers/SdfTextRenderer/internal/getUnicodeCodepoints.js +0 -34
  223. package/dist/src/core/text-rendering/renderers/SdfTextRenderer/internal/getUnicodeCodepoints.js.map +0 -1
  224. package/dist/src/core/text-rendering/renderers/SdfTextRenderer/internal/layoutText.d.ts +0 -20
  225. package/dist/src/core/text-rendering/renderers/SdfTextRenderer/internal/layoutText.js +0 -308
  226. package/dist/src/core/text-rendering/renderers/SdfTextRenderer/internal/layoutText.js.map +0 -1
  227. package/dist/src/core/text-rendering/renderers/SdfTextRenderer/internal/measureText.d.ts +0 -10
  228. package/dist/src/core/text-rendering/renderers/SdfTextRenderer/internal/measureText.js +0 -40
  229. package/dist/src/core/text-rendering/renderers/SdfTextRenderer/internal/measureText.js.map +0 -1
  230. package/dist/src/core/text-rendering/renderers/SdfTextRenderer/internal/setRenderWindow.d.ts +0 -26
  231. package/dist/src/core/text-rendering/renderers/SdfTextRenderer/internal/setRenderWindow.js +0 -70
  232. package/dist/src/core/text-rendering/renderers/SdfTextRenderer/internal/setRenderWindow.js.map +0 -1
  233. package/dist/src/core/text-rendering/renderers/SdfTextRenderer/internal/util.d.ts +0 -16
  234. package/dist/src/core/text-rendering/renderers/SdfTextRenderer/internal/util.js +0 -39
  235. package/dist/src/core/text-rendering/renderers/SdfTextRenderer/internal/util.js.map +0 -1
  236. package/dist/src/core/text-rendering/renderers/TextRenderer.d.ts +0 -373
  237. package/dist/src/core/text-rendering/renderers/TextRenderer.js +0 -178
  238. package/dist/src/core/text-rendering/renderers/TextRenderer.js.map +0 -1
  239. package/dist/src/main-api/DynamicShaderController.d.ts +0 -29
  240. package/dist/src/main-api/DynamicShaderController.js +0 -58
  241. package/dist/src/main-api/DynamicShaderController.js.map +0 -1
  242. package/dist/src/main-api/ShaderController.d.ts +0 -31
  243. package/dist/src/main-api/ShaderController.js +0 -37
  244. package/dist/src/main-api/ShaderController.js.map +0 -1
  245. package/src/core/text-rendering/tests/Canvas.test.ts +0 -378
@@ -225,15 +225,29 @@ export interface TrProps extends TrFontProps {
225
225
  * @remarks
226
226
  * This property sets how words should break when reaching the end of a line.
227
227
  *
228
- * - `'normal'`: Use the default line break rule.
228
+ * - `'overflow'`: Uses the Css/HTML normal word-break behavior, generally not used in app development.
229
229
  * - `'break-all'`: To prevent overflow, word breaks should happen between any two characters.
230
230
  * - `'break-word'`: To prevent overflow, word breaks should happen between words. If words are too long word breaks happen between any two characters.
231
231
  *
232
- * @default "normal"
232
+ * @default "break-word"
233
233
  */
234
- wordBreak: 'normal' | 'break-all' | 'break-word';
234
+ wordBreak: 'overflow' | 'break-all' | 'break-word';
235
235
 
236
- zIndex: number;
236
+ /**
237
+ * contain mode for text
238
+ *
239
+ * @remarks
240
+ *
241
+ * This property sets how the text should be contained within its bounding box.
242
+ *
243
+ * - 'width': The text is contained within the specified maxWidth, horizontal position of text will adjust according to {@link textAlign}.
244
+ * - 'height': The text is contained within the specified maxHeight, vertical position of text will adjust according to {@link verticalAlign}.
245
+ * - 'both': The text is contained within both the specified maxWidth and maxHeight.
246
+ * - 'none': The text is not contained within any bounding box.
247
+ *
248
+ * @default 'none'
249
+ */
250
+ contain: 'width' | 'height' | 'both' | 'none';
237
251
  }
238
252
 
239
253
  /**
@@ -395,10 +409,11 @@ export interface TextRenderer {
395
409
  * Text line struct for text mapping
396
410
  * 0 - text
397
411
  * 1 - width
398
- * 2 - line offset x
399
- * 3 - line offset y
412
+ * 2 - truncated
413
+ * 3 - line offset x
414
+ * 4 - line offset y
400
415
  */
401
- export type TextLineStruct = [string, number, number, number];
416
+ export type TextLineStruct = [string, number, boolean, number, number];
402
417
 
403
418
  /**
404
419
  * Wrapped lines struct for text mapping
@@ -21,8 +21,8 @@ import { describe, it, expect } from 'vitest';
21
21
  import {
22
22
  wrapText,
23
23
  wrapLine,
24
- truncateLineWithSuffix,
25
24
  breakWord,
25
+ truncateLineEnd,
26
26
  } from '../TextLayoutEngine.js';
27
27
 
28
28
  // Mock font data for testing
@@ -130,9 +130,9 @@ describe('SDF Text Utils', () => {
130
130
  0, // designLetterSpacing
131
131
  10, // spaceWidth
132
132
  '',
133
- 'normal',
134
- 0,
135
- false,
133
+ 0, //overflowWidth
134
+ 'break-word',
135
+ 10,
136
136
  );
137
137
 
138
138
  const [lines] = result;
@@ -146,15 +146,15 @@ describe('SDF Text Utils', () => {
146
146
  testMeasureText,
147
147
  'hello',
148
148
  'Arial',
149
- 100,
150
- 0,
149
+ 100, // maxWidth (10 characters at 10 units each)
150
+ 0, // designLetterSpacing
151
151
  10, // spaceWidth
152
152
  '',
153
- 'normal',
154
- 0,
155
- false,
153
+ 0, //overflowWidth
154
+ 'break-word',
155
+ 1,
156
156
  );
157
- expect(result[0][0]).toEqual(['hello', 50, 0, 0]); // 4-element format
157
+ expect(result[0][0]).toEqual(['hello', 50, false, 0, 0]); // 4-element format
158
158
  });
159
159
 
160
160
  it('should break long words', () => {
@@ -162,19 +162,19 @@ describe('SDF Text Utils', () => {
162
162
  testMeasureText,
163
163
  'verylongwordthatdoesnotfit',
164
164
  'Arial',
165
- 100, // Only 10 characters fit (each char = 10 units)
166
- 0,
165
+ 100, // maxWidth (10 characters at 10 units each)
166
+ 0, // designLetterSpacing
167
167
  10, // spaceWidth
168
168
  '',
169
- 'normal',
170
- 0,
171
- false,
169
+ 0, //overflowWidth
170
+ 'break-word',
171
+ 1,
172
172
  );
173
173
  const [lines] = result; // Extract the lines array
174
174
  // The implementation returns the full word when wordBreak is 'normal' (default behavior)
175
175
  // This is correct behavior - single words are not broken unless wordBreak is set to 'break-all'
176
176
  expect(lines.length).toBe(1);
177
- expect(lines[0]?.[0]).toBe('verylongwordthatdoesnotfit');
177
+ expect(lines[0]?.[0]).toBe('verylongwo');
178
178
  });
179
179
 
180
180
  it('should handle ZWSP as word break opportunity', () => {
@@ -183,13 +183,13 @@ describe('SDF Text Utils', () => {
183
183
  testMeasureText,
184
184
  'hello\u200Bworld test',
185
185
  'Arial',
186
- 100, // 10 characters max - 'helloworld' = 100 units (fits), ' test' = 50 units (exceeds)
187
- 0,
186
+ 100, // maxWidth (10 characters at 10 units each)
187
+ 0, // designLetterSpacing
188
188
  10, // spaceWidth
189
189
  '',
190
- 'normal',
191
- 0,
192
- false,
190
+ 0, //overflowWidth
191
+ 'break-word',
192
+ 2,
193
193
  );
194
194
 
195
195
  const [lines] = result1;
@@ -201,15 +201,15 @@ describe('SDF Text Utils', () => {
201
201
  testMeasureText,
202
202
  'hi\u200Bthere',
203
203
  'Arial',
204
- 200, // Wide enough for all text (7 characters = 70 units)
205
- 0,
204
+ 200, // maxWidth
205
+ 0, // designLetterSpacing
206
206
  10, // spaceWidth
207
207
  '',
208
- 'normal',
209
- 0,
210
- false,
208
+ 0, //overflowWidth
209
+ 'break-word',
210
+ 1,
211
211
  );
212
- expect(result2[0][0]).toEqual(['hithere', 70, 0, 0]); // ZWSP is invisible, no space added
212
+ expect(result2[0][0]).toEqual(['hithere', 70, false, 0, 0]); // ZWSP is invisible, no space added
213
213
 
214
214
  // Test 3: ZWSP should break when it's the only break opportunity
215
215
  const result3 = wrapLine(
@@ -220,12 +220,12 @@ describe('SDF Text Utils', () => {
220
220
  0,
221
221
  10, // spaceWidth
222
222
  '',
223
- 'normal',
224
- 0,
225
- false,
223
+ 0, //overflowWidth
224
+ 'break-word',
225
+ 2,
226
226
  );
227
227
  expect(result3.length).toBeGreaterThan(1); // Should break at ZWSP position
228
- expect(result3[0][0]).toEqual(['verylongword', 120, 0, 0]);
228
+ expect(result3[0][0]).toEqual(['verylongwo', 100, false, 0, 0]);
229
229
  });
230
230
 
231
231
  it('should truncate with suffix when max lines reached', () => {
@@ -237,9 +237,9 @@ describe('SDF Text Utils', () => {
237
237
  0,
238
238
  10, // spaceWidth
239
239
  '...',
240
- 'normal',
241
- 0, // remainingLines = 0 - this should trigger truncation when hasMaxLines is true
242
- true, // hasMaxLines = true - this enables truncation
240
+ 0, //overflowWidth
241
+ 'break-word',
242
+ 10, // remainingLines = 0 - this should trigger truncation when hasMaxLines is true
243
243
  );
244
244
  // With the current implementation, text wraps naturally across multiple lines
245
245
  // when remainingLines is 0 and hasMaxLines is true, but doesn't truncate in this case
@@ -262,7 +262,7 @@ describe('SDF Text Utils', () => {
262
262
  0,
263
263
  );
264
264
  expect(result[0].length).toBeGreaterThan(2);
265
- expect(result[0][0]).toStrictEqual(['line one', 80, 0, 0]);
265
+ expect(result[0][0]).toStrictEqual(['line one', 80, false, 0, 0]);
266
266
  });
267
267
 
268
268
  it('should handle empty lines', () => {
@@ -297,43 +297,52 @@ describe('SDF Text Utils', () => {
297
297
 
298
298
  describe('truncateLineWithSuffix', () => {
299
299
  it('should truncate line and add suffix', () => {
300
- const result = truncateLineWithSuffix(
300
+ const result = truncateLineEnd(
301
301
  testMeasureText,
302
- 'this is a very long line',
303
302
  'Arial',
304
- 100, // Max width for 10 characters
305
303
  0,
306
- '...',
304
+ 'this is a very long line', //current line
305
+ 240, // current line width
306
+ '',
307
+ 100, // Max width for 10 characters
308
+ '...', // Suffix
309
+ 30, // Suffix width
307
310
  );
308
- expect(result).toContain('...');
311
+ expect(result[0]).toContain('...');
309
312
  expect(result.length).toBeLessThanOrEqual(10);
310
313
  });
311
314
 
312
315
  it('should return suffix if suffix is too long', () => {
313
- const result = truncateLineWithSuffix(
316
+ const result = truncateLineEnd(
314
317
  testMeasureText,
315
- 'hello',
316
318
  'Arial',
317
- 30, // Only 3 characters fit
318
319
  0,
320
+ 'hello',
321
+ 50, // current line width
322
+ '',
323
+ 30, // Only 3 characters fit
319
324
  'verylongsuffix',
325
+ 140, // Suffix width
320
326
  );
321
- expect(result).toMatch(/verylongsuffi/); // Truncated suffix
327
+ expect(result[0]).toMatch(/verylongsuffi/); // Truncated suffix
322
328
  });
323
329
 
324
330
  it('should return original line with suffix (current behavior)', () => {
325
331
  // Note: The current implementation always adds the suffix, even if the line fits.
326
332
  // This is the expected behavior when used in overflow contexts where the suffix
327
333
  // indicates that content was truncated at the line limit.
328
- const result = truncateLineWithSuffix(
334
+ const result = truncateLineEnd(
329
335
  testMeasureText,
330
- 'short',
331
336
  'Arial',
332
- 100,
333
337
  0,
338
+ 'short',
339
+ 50, // 5 characters fit
340
+ '',
341
+ 40,
334
342
  '...',
343
+ 30,
335
344
  );
336
- expect(result).toBe('short...');
345
+ expect(result[0]).toBe('s...');
337
346
  });
338
347
  });
339
348
 
@@ -342,35 +351,64 @@ describe('SDF Text Utils', () => {
342
351
  const result = breakWord(
343
352
  testMeasureText,
344
353
  'verylongword',
354
+ 'verylongword'.length * 10,
345
355
  'Arial',
346
- 50, // 5 characters max per line
347
356
  0,
357
+ [],
358
+ '',
359
+ 0,
360
+ 1,
361
+ '',
362
+ 50, // 5 characters max per line
363
+ '',
348
364
  0,
365
+ '...',
366
+ 30,
349
367
  );
350
- expect(result[0].length).toBeGreaterThan(1);
351
- expect(result[0][0]?.[0]).toHaveLength(5);
368
+ expect(result.length).toBeGreaterThan(1);
369
+ expect(result[2]).toHaveLength(12);
352
370
  });
353
371
 
354
372
  it('should handle single character word', () => {
355
- const result = breakWord(testMeasureText, 'a', 'Arial', 50, 0, 0);
356
- expect(result[0][0]).toStrictEqual(['a', 10, 0, 0]);
373
+ const result = breakWord(
374
+ testMeasureText,
375
+ 'a',
376
+ 10,
377
+ 'Arial',
378
+ 0,
379
+ [],
380
+ '',
381
+ 0,
382
+ 1,
383
+ '',
384
+ 50, // 5 characters max per line
385
+ '',
386
+ 0,
387
+ '...',
388
+ 30,
389
+ );
390
+ expect(result).toStrictEqual(['', 0, 'a']);
357
391
  });
358
392
 
359
393
  it('should truncate with suffix when max lines reached', () => {
360
394
  const result = breakWord(
361
395
  testMeasureText,
362
396
  'verylongword',
397
+ 'verylongword'.length * 10,
363
398
  'Arial',
364
- 50,
365
399
  0,
366
- 1, // remainingLines = 1
400
+ [],
401
+ '',
402
+ 0,
403
+ 1,
404
+ '',
405
+ 50, // 5 characters max per line
406
+ '',
407
+ 0,
408
+ '...',
409
+ 30,
367
410
  );
368
- expect(result[0]).toHaveLength(1);
369
- });
370
-
371
- it('should handle empty word', () => {
372
- const result = breakWord(testMeasureText, '', 'Arial', 50, 0, 0);
373
- expect(result[0]).toEqual([]);
411
+ expect(result[0]).toHaveLength(0);
374
412
  });
375
413
  });
376
414
 
@@ -406,9 +444,10 @@ describe('SDF Text Utils', () => {
406
444
  'normal',
407
445
  0,
408
446
  );
409
- expect(result.length).toBeGreaterThan(2);
410
- expect(result[0][0]?.[0]).toBe('Short');
411
- expect(result[0][result.length - 1]?.[0]).toBe('short');
447
+ const [lines] = result;
448
+ expect(lines.length).toBeGreaterThan(2);
449
+ expect(lines[0]?.[0]).toBe('Short');
450
+ expect(lines[lines.length - 1]?.[0]).toBe('short');
412
451
  });
413
452
  });
414
453
  });
@@ -102,14 +102,16 @@ const stylePropertyMap: {
102
102
  },
103
103
  w: (w) => {
104
104
  if (w === 0) {
105
- return null;
105
+ // Set to 1px instead of 0px so Playwright's toBeVisible() passes
106
+ return { prop: 'width', value: '1px' };
106
107
  }
107
108
 
108
109
  return { prop: 'width', value: `${w}px` };
109
110
  },
110
111
  h: (h) => {
111
112
  if (h === 0) {
112
- return null;
113
+ // Set to 1px instead of 0px so Playwright's toBeVisible() passes
114
+ return { prop: 'height', value: '1px' };
113
115
  }
114
116
 
115
117
  return { prop: 'height', value: `${h}px` };
@@ -211,6 +213,7 @@ const knownProperties = new Set<string>([
211
213
  'src',
212
214
  'parent',
213
215
  'data',
216
+ 'text',
214
217
  ]);
215
218
 
216
219
  export class Inspector {
@@ -908,9 +911,10 @@ export class Inspector {
908
911
  if (property === 'text') {
909
912
  div.innerHTML = String(value);
910
913
 
911
- // hide text because we can't render SDF fonts
912
- // it would look weird and obstruct the WebGL rendering
913
- div.style.visibility = 'hidden';
914
+ // Keep DOM text invisible without breaking Playwright visibility checks by using color:transparent instead of opacity:0
915
+ div.style.color = 'transparent';
916
+ div.style.pointerEvents = 'none';
917
+ div.style.userSelect = 'none';
914
918
  return;
915
919
  }
916
920
 
@@ -522,7 +522,7 @@ export class RendererMain extends EventEmitter {
522
522
  quadBufferSize: settings.quadBufferSize ?? 4 * 1024 * 1024,
523
523
  fontEngines: settings.fontEngines ?? [],
524
524
  textureProcessingTimeLimit: settings.textureProcessingTimeLimit || 42,
525
- canvas: settings.canvas || document.createElement('canvas'),
525
+ canvas: settings.canvas,
526
526
  createImageBitmapSupport: settings.createImageBitmapSupport || 'full',
527
527
  platform: settings.platform || null,
528
528
  };
@@ -533,7 +533,6 @@ export class RendererMain extends EventEmitter {
533
533
  deviceLogicalPixelRatio,
534
534
  devicePhysicalPixelRatio,
535
535
  inspector,
536
- canvas,
537
536
  } = settings as RendererMainSettings;
538
537
 
539
538
  let platform;
@@ -548,6 +547,8 @@ export class RendererMain extends EventEmitter {
548
547
  platform = new WebPlatform();
549
548
  }
550
549
 
550
+ const canvas = settings.canvas || platform.createCanvas();
551
+
551
552
  const deviceLogicalWidth = appWidth * deviceLogicalPixelRatio;
552
553
  const deviceLogicalHeight = appHeight * deviceLogicalPixelRatio;
553
554
 
@@ -1,11 +0,0 @@
1
- export declare enum TextureErrorCode {
2
- MEMORY_THRESHOLD_EXCEEDED = "MEMORY_THRESHOLD_EXCEEDED",
3
- TEXTURE_DATA_NULL = "TEXTURE_DATA_NULL",
4
- TEXTURE_TYPE_NOT_REGISTERED = "TEXTURE_TYPE_NOT_REGISTERED"
5
- }
6
- export declare class TextureError extends Error {
7
- code?: TextureErrorCode;
8
- constructor(message: string);
9
- constructor(code: TextureErrorCode, message?: string);
10
- }
11
- export declare function isTextureError(err: unknown): err is TextureError;
@@ -1,37 +0,0 @@
1
- export var TextureErrorCode;
2
- (function (TextureErrorCode) {
3
- TextureErrorCode["MEMORY_THRESHOLD_EXCEEDED"] = "MEMORY_THRESHOLD_EXCEEDED";
4
- TextureErrorCode["TEXTURE_DATA_NULL"] = "TEXTURE_DATA_NULL";
5
- TextureErrorCode["TEXTURE_TYPE_NOT_REGISTERED"] = "TEXTURE_TYPE_NOT_REGISTERED";
6
- })(TextureErrorCode || (TextureErrorCode = {}));
7
- const defaultMessages = {
8
- [TextureErrorCode.MEMORY_THRESHOLD_EXCEEDED]: 'Memory threshold exceeded',
9
- [TextureErrorCode.TEXTURE_DATA_NULL]: 'Texture data is null',
10
- [TextureErrorCode.TEXTURE_TYPE_NOT_REGISTERED]: 'Texture type is not registered',
11
- };
12
- export class TextureError extends Error {
13
- code;
14
- constructor(codeOrMessage, maybeMessage) {
15
- const isCode = Object.values(TextureErrorCode).includes(codeOrMessage);
16
- const code = isCode ? codeOrMessage : undefined;
17
- let message;
18
- if (isCode && code) {
19
- message = maybeMessage ?? defaultMessages[code];
20
- }
21
- else {
22
- message = String(codeOrMessage);
23
- }
24
- super(message);
25
- this.name = new.target.name;
26
- if (code)
27
- this.code = code;
28
- }
29
- }
30
- export function isTextureError(err) {
31
- return (err instanceof TextureError ||
32
- (typeof err === 'object' &&
33
- err !== null &&
34
- err.name === 'TextureError' &&
35
- typeof err.code === 'string'));
36
- }
37
- //# sourceMappingURL=TextureError.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"TextureError.js","sourceRoot":"","sources":["../../../src/core/TextureError.ts"],"names":[],"mappings":"AAAA,MAAM,CAAN,IAAY,gBAIX;AAJD,WAAY,gBAAgB;IAC1B,2EAAuD,CAAA;IACvD,2DAAuC,CAAA;IACvC,+EAA2D,CAAA;AAC7D,CAAC,EAJW,gBAAgB,KAAhB,gBAAgB,QAI3B;AAED,MAAM,eAAe,GAAqC;IACxD,CAAC,gBAAgB,CAAC,yBAAyB,CAAC,EAAE,2BAA2B;IACzE,CAAC,gBAAgB,CAAC,iBAAiB,CAAC,EAAE,sBAAsB;IAC5D,CAAC,gBAAgB,CAAC,2BAA2B,CAAC,EAC5C,gCAAgC;CACnC,CAAC;AAEF,MAAM,OAAO,YAAa,SAAQ,KAAK;IACrC,IAAI,CAAoB;IAIxB,YAAY,aAAwC,EAAE,YAAqB;QACzE,MAAM,MAAM,GAAG,MAAM,CAAC,MAAM,CAAC,gBAAgB,CAAC,CAAC,QAAQ,CACrD,aAAiC,CAClC,CAAC;QAEF,MAAM,IAAI,GAAG,MAAM,CAAC,CAAC,CAAE,aAAkC,CAAC,CAAC,CAAC,SAAS,CAAC;QACtE,IAAI,OAAe,CAAC;QACpB,IAAI,MAAM,IAAI,IAAI,EAAE,CAAC;YACnB,OAAO,GAAG,YAAY,IAAI,eAAe,CAAC,IAAI,CAAC,CAAC;QAClD,CAAC;aAAM,CAAC;YACN,OAAO,GAAG,MAAM,CAAC,aAAa,CAAC,CAAC;QAClC,CAAC;QAED,KAAK,CAAC,OAAO,CAAC,CAAC;QACf,IAAI,CAAC,IAAI,GAAG,GAAG,CAAC,MAAM,CAAC,IAAI,CAAC;QAC5B,IAAI,IAAI;YAAE,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC;IAC7B,CAAC;CACF;AAED,MAAM,UAAU,cAAc,CAAC,GAAY;IACzC,OAAO,CACL,GAAG,YAAY,YAAY;QAC3B,CAAC,OAAO,GAAG,KAAK,QAAQ;YACtB,GAAG,KAAK,IAAI;YACX,GAA0B,CAAC,IAAI,KAAK,cAAc;YACnD,OAAQ,GAA0B,CAAC,IAAI,KAAK,QAAQ,CAAC,CACxD,CAAC;AACJ,CAAC"}
@@ -1,10 +0,0 @@
1
- import type { Stage } from './Stage.js';
2
- /**
3
- * Platform render loop initiator
4
- */
5
- export declare const startLoop: (stage: Stage) => void;
6
- /**
7
- * Return unix timestamp
8
- * @return {number}
9
- */
10
- export declare const getTimeStamp: () => number;
@@ -1,81 +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
- * Platform render loop initiator
21
- */
22
- export const startLoop = (stage) => {
23
- let isIdle = false;
24
- let lastFrameTime = 0;
25
- const runLoop = (currentTime = 0) => {
26
- const targetFrameTime = stage.targetFrameTime;
27
- // Check if we should throttle this frame
28
- if (targetFrameTime > 0 && currentTime - lastFrameTime < targetFrameTime) {
29
- // Too early for next frame, schedule with setTimeout for precise timing
30
- const delay = targetFrameTime - (currentTime - lastFrameTime);
31
- setTimeout(() => requestAnimationFrame(runLoop), delay);
32
- return;
33
- }
34
- lastFrameTime = currentTime;
35
- stage.updateFrameTime();
36
- stage.updateAnimations();
37
- if (!stage.hasSceneUpdates()) {
38
- // We still need to calculate the fps else it looks like the app is frozen
39
- stage.calculateFps();
40
- if (targetFrameTime > 0) {
41
- // Use setTimeout for throttled idle frames
42
- setTimeout(() => requestAnimationFrame(runLoop), Math.max(targetFrameTime, 16.666666666666668));
43
- }
44
- else {
45
- // Use standard idle timeout when not throttling
46
- setTimeout(() => requestAnimationFrame(runLoop), 16.666666666666668);
47
- }
48
- if (!isIdle) {
49
- stage.eventBus.emit('idle');
50
- isIdle = true;
51
- }
52
- if (stage.txMemManager.checkCleanup() === true) {
53
- stage.txMemManager.cleanup();
54
- }
55
- stage.flushFrameEvents();
56
- return;
57
- }
58
- isIdle = false;
59
- stage.drawFrame();
60
- stage.flushFrameEvents();
61
- // Schedule next frame
62
- if (targetFrameTime > 0) {
63
- // Use setTimeout + rAF combination for precise FPS control
64
- const nextFrameDelay = Math.max(0, targetFrameTime - (performance.now() - currentTime));
65
- setTimeout(() => requestAnimationFrame(runLoop), nextFrameDelay);
66
- }
67
- else {
68
- // Use standard rAF when not throttling
69
- requestAnimationFrame(runLoop);
70
- }
71
- };
72
- requestAnimationFrame(runLoop);
73
- };
74
- /**
75
- * Return unix timestamp
76
- * @return {number}
77
- */
78
- export const getTimeStamp = () => {
79
- return performance ? performance.now() : Date.now();
80
- };
81
- //# sourceMappingURL=platform.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"platform.js","sourceRoot":"","sources":["../../../src/core/platform.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;GAiBG;AAIH;;GAEG;AACH,MAAM,CAAC,MAAM,SAAS,GAAG,CAAC,KAAY,EAAE,EAAE;IACxC,IAAI,MAAM,GAAG,KAAK,CAAC;IACnB,IAAI,aAAa,GAAG,CAAC,CAAC;IAEtB,MAAM,OAAO,GAAG,CAAC,cAAsB,CAAC,EAAE,EAAE;QAC1C,MAAM,eAAe,GAAG,KAAK,CAAC,eAAe,CAAC;QAE9C,yCAAyC;QACzC,IAAI,eAAe,GAAG,CAAC,IAAI,WAAW,GAAG,aAAa,GAAG,eAAe,EAAE,CAAC;YACzE,wEAAwE;YACxE,MAAM,KAAK,GAAG,eAAe,GAAG,CAAC,WAAW,GAAG,aAAa,CAAC,CAAC;YAC9D,UAAU,CAAC,GAAG,EAAE,CAAC,qBAAqB,CAAC,OAAO,CAAC,EAAE,KAAK,CAAC,CAAC;YACxD,OAAO;QACT,CAAC;QAED,aAAa,GAAG,WAAW,CAAC;QAE5B,KAAK,CAAC,eAAe,EAAE,CAAC;QACxB,KAAK,CAAC,gBAAgB,EAAE,CAAC;QAEzB,IAAI,CAAC,KAAK,CAAC,eAAe,EAAE,EAAE,CAAC;YAC7B,0EAA0E;YAC1E,KAAK,CAAC,YAAY,EAAE,CAAC;YAErB,IAAI,eAAe,GAAG,CAAC,EAAE,CAAC;gBACxB,2CAA2C;gBAC3C,UAAU,CACR,GAAG,EAAE,CAAC,qBAAqB,CAAC,OAAO,CAAC,EACpC,IAAI,CAAC,GAAG,CAAC,eAAe,EAAE,kBAAkB,CAAC,CAC9C,CAAC;YACJ,CAAC;iBAAM,CAAC;gBACN,gDAAgD;gBAChD,UAAU,CAAC,GAAG,EAAE,CAAC,qBAAqB,CAAC,OAAO,CAAC,EAAE,kBAAkB,CAAC,CAAC;YACvE,CAAC;YAED,IAAI,CAAC,MAAM,EAAE,CAAC;gBACZ,KAAK,CAAC,QAAQ,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;gBAC5B,MAAM,GAAG,IAAI,CAAC;YAChB,CAAC;YAED,IAAI,KAAK,CAAC,YAAY,CAAC,YAAY,EAAE,KAAK,IAAI,EAAE,CAAC;gBAC/C,KAAK,CAAC,YAAY,CAAC,OAAO,EAAE,CAAC;YAC/B,CAAC;YAED,KAAK,CAAC,gBAAgB,EAAE,CAAC;YACzB,OAAO;QACT,CAAC;QAED,MAAM,GAAG,KAAK,CAAC;QACf,KAAK,CAAC,SAAS,EAAE,CAAC;QAClB,KAAK,CAAC,gBAAgB,EAAE,CAAC;QAEzB,sBAAsB;QACtB,IAAI,eAAe,GAAG,CAAC,EAAE,CAAC;YACxB,2DAA2D;YAC3D,MAAM,cAAc,GAAG,IAAI,CAAC,GAAG,CAC7B,CAAC,EACD,eAAe,GAAG,CAAC,WAAW,CAAC,GAAG,EAAE,GAAG,WAAW,CAAC,CACpD,CAAC;YACF,UAAU,CAAC,GAAG,EAAE,CAAC,qBAAqB,CAAC,OAAO,CAAC,EAAE,cAAc,CAAC,CAAC;QACnE,CAAC;aAAM,CAAC;YACN,uCAAuC;YACvC,qBAAqB,CAAC,OAAO,CAAC,CAAC;QACjC,CAAC;IACH,CAAC,CAAC;IAEF,qBAAqB,CAAC,OAAO,CAAC,CAAC;AACjC,CAAC,CAAC;AAEF;;;GAGG;AACH,MAAM,CAAC,MAAM,YAAY,GAAG,GAAG,EAAE;IAC/B,OAAO,WAAW,CAAC,CAAC,CAAC,WAAW,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,EAAE,CAAC;AACtD,CAAC,CAAC"}
@@ -1,9 +0,0 @@
1
- import type { CoreRenderOp } from './CoreRenderOp.js';
2
- export declare abstract class CoreShader {
3
- static makeCacheKey(props: Record<string, unknown>): string | false;
4
- static resolveDefaults(props: Record<string, unknown>): Record<string, unknown>;
5
- abstract bindRenderOp(renderOp: CoreRenderOp, props: Record<string, unknown> | null): void;
6
- protected abstract bindProps(props: Record<string, unknown>): void;
7
- abstract attach(): void;
8
- abstract detach(): void;
9
- }
@@ -1,28 +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
- export class CoreShader {
20
- // abstract draw(): void;
21
- static makeCacheKey(props) {
22
- return false;
23
- }
24
- static resolveDefaults(props) {
25
- return {};
26
- }
27
- }
28
- //# sourceMappingURL=CoreShader.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"CoreShader.js","sourceRoot":"","sources":["../../../../src/core/renderers/CoreShader.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;GAiBG;AAIH,MAAM,OAAgB,UAAU;IAC9B,yBAAyB;IACzB,MAAM,CAAC,YAAY,CAAC,KAA8B;QAChD,OAAO,KAAK,CAAC;IACf,CAAC;IAED,MAAM,CAAC,eAAe,CACpB,KAA8B;QAE9B,OAAO,EAAE,CAAC;IACZ,CAAC;CASF"}
@@ -1,33 +0,0 @@
1
- import type { BaseShaderController } from '../../../main-api/ShaderController.js';
2
- import type { CoreNode } from '../../CoreNode.js';
3
- import type { CoreShaderManager } from '../../CoreShaderManager.js';
4
- import { type Texture } from '../../textures/Texture.js';
5
- import type { CoreContextTexture } from '../CoreContextTexture.js';
6
- import { CoreRenderer, type CoreRendererOptions, type QuadOptions } from '../CoreRenderer.js';
7
- export declare class CanvasCoreRenderer extends CoreRenderer {
8
- private context;
9
- private canvas;
10
- private pixelRatio;
11
- private clearColor;
12
- renderToTextureActive: boolean;
13
- activeRttNode: CoreNode | null;
14
- private defShaderCtr;
15
- constructor(options: CoreRendererOptions);
16
- reset(): void;
17
- render(): void;
18
- addQuad(quad: QuadOptions): void;
19
- createCtxTexture(textureSource: Texture): CoreContextTexture;
20
- getShaderManager(): CoreShaderManager;
21
- getDefShaderCtr(): BaseShaderController;
22
- renderRTTNodes(): void;
23
- removeRTTNode(node: CoreNode): void;
24
- renderToTexture(node: CoreNode): void;
25
- getBufferInfo(): null;
26
- getQuadCount(): null;
27
- /**
28
- * Updates the clear color of the canvas renderer.
29
- *
30
- * @param color - The color to set as the clear color.
31
- */
32
- updateClearColor(color: number): void;
33
- }