@lightningjs/renderer 3.0.0-beta10 → 3.0.0-beta11

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 (275) hide show
  1. package/LICENSE +202 -202
  2. package/NOTICE +3 -3
  3. package/README.md +133 -133
  4. package/dist/src/core/CoreTextNode.d.ts +3 -0
  5. package/dist/src/core/CoreTextNode.js +45 -10
  6. package/dist/src/core/CoreTextNode.js.map +1 -1
  7. package/dist/src/core/platform.d.ts +10 -0
  8. package/dist/src/core/platform.js +81 -0
  9. package/dist/src/core/platform.js.map +1 -0
  10. package/dist/src/core/renderers/CoreShader.d.ts +9 -0
  11. package/dist/src/core/renderers/CoreShader.js +28 -0
  12. package/dist/src/core/renderers/CoreShader.js.map +1 -0
  13. package/dist/src/core/renderers/canvas/CanvasCoreRenderer.d.ts +33 -0
  14. package/dist/src/core/renderers/canvas/CanvasCoreRenderer.js +250 -0
  15. package/dist/src/core/renderers/canvas/CanvasCoreRenderer.js.map +1 -0
  16. package/dist/src/core/renderers/canvas/CanvasCoreTexture.d.ts +16 -0
  17. package/dist/src/core/renderers/canvas/CanvasCoreTexture.js +124 -0
  18. package/dist/src/core/renderers/canvas/CanvasCoreTexture.js.map +1 -0
  19. package/dist/src/core/renderers/canvas/internal/C2DShaderUtils.d.ts +13 -0
  20. package/dist/src/core/renderers/canvas/internal/C2DShaderUtils.js +113 -192
  21. package/dist/src/core/renderers/canvas/internal/C2DShaderUtils.js.map +1 -1
  22. package/dist/src/core/renderers/canvas/internal/ColorUtils.d.ts +0 -2
  23. package/dist/src/core/renderers/canvas/internal/ColorUtils.js +0 -14
  24. package/dist/src/core/renderers/canvas/internal/ColorUtils.js.map +1 -1
  25. package/dist/src/core/renderers/canvas/shaders/UnsupportedShader.d.ts +10 -0
  26. package/dist/src/core/renderers/canvas/shaders/UnsupportedShader.js +43 -0
  27. package/dist/src/core/renderers/canvas/shaders/UnsupportedShader.js.map +1 -0
  28. package/dist/src/core/renderers/webgl/WebGlCoreCtxRenderTexture.d.ts +12 -0
  29. package/dist/src/core/renderers/webgl/WebGlCoreCtxRenderTexture.js +58 -0
  30. package/dist/src/core/renderers/webgl/WebGlCoreCtxRenderTexture.js.map +1 -0
  31. package/dist/src/core/renderers/webgl/WebGlCoreCtxSubTexture.d.ts +9 -0
  32. package/dist/src/core/renderers/webgl/WebGlCoreCtxSubTexture.js +38 -0
  33. package/dist/src/core/renderers/webgl/WebGlCoreCtxSubTexture.js.map +1 -0
  34. package/dist/src/core/renderers/webgl/WebGlCoreCtxTexture.d.ts +56 -0
  35. package/dist/src/core/renderers/webgl/WebGlCoreCtxTexture.js +239 -0
  36. package/dist/src/core/renderers/webgl/WebGlCoreCtxTexture.js.map +1 -0
  37. package/dist/src/core/renderers/webgl/WebGlCoreRenderOp.d.ts +34 -0
  38. package/dist/src/core/renderers/webgl/WebGlCoreRenderOp.js +114 -0
  39. package/dist/src/core/renderers/webgl/WebGlCoreRenderOp.js.map +1 -0
  40. package/dist/src/core/renderers/webgl/WebGlCoreRenderer.d.ts +133 -0
  41. package/dist/src/core/renderers/webgl/WebGlCoreRenderer.js +616 -0
  42. package/dist/src/core/renderers/webgl/WebGlCoreRenderer.js.map +1 -0
  43. package/dist/src/core/renderers/webgl/WebGlCoreShader.d.ts +83 -0
  44. package/dist/src/core/renderers/webgl/WebGlCoreShader.js +233 -0
  45. package/dist/src/core/renderers/webgl/WebGlCoreShader.js.map +1 -0
  46. package/dist/src/core/renderers/webgl/internal/ShaderUtils.js +35 -35
  47. package/dist/src/core/renderers/webgl/shaders/DefaultShader.d.ts +9 -0
  48. package/dist/src/core/renderers/webgl/shaders/DefaultShader.js +87 -0
  49. package/dist/src/core/renderers/webgl/shaders/DefaultShader.js.map +1 -0
  50. package/dist/src/core/renderers/webgl/shaders/DefaultShaderBatched.d.ts +10 -0
  51. package/dist/src/core/renderers/webgl/shaders/DefaultShaderBatched.js +119 -0
  52. package/dist/src/core/renderers/webgl/shaders/DefaultShaderBatched.js.map +1 -0
  53. package/dist/src/core/renderers/webgl/shaders/DynamicShader.d.ts +29 -0
  54. package/dist/src/core/renderers/webgl/shaders/DynamicShader.js +413 -0
  55. package/dist/src/core/renderers/webgl/shaders/DynamicShader.js.map +1 -0
  56. package/dist/src/core/renderers/webgl/shaders/RoundedRectangle.d.ts +28 -0
  57. package/dist/src/core/renderers/webgl/shaders/RoundedRectangle.js +131 -0
  58. package/dist/src/core/renderers/webgl/shaders/RoundedRectangle.js.map +1 -0
  59. package/dist/src/core/renderers/webgl/shaders/SdfShader.d.ts +47 -0
  60. package/dist/src/core/renderers/webgl/shaders/SdfShader.js +160 -0
  61. package/dist/src/core/renderers/webgl/shaders/SdfShader.js.map +1 -0
  62. package/dist/src/core/renderers/webgl/shaders/effects/BorderBottomEffect.d.ts +31 -0
  63. package/dist/src/core/renderers/webgl/shaders/effects/BorderBottomEffect.js +71 -0
  64. package/dist/src/core/renderers/webgl/shaders/effects/BorderBottomEffect.js.map +1 -0
  65. package/dist/src/core/renderers/webgl/shaders/effects/BorderEffect.d.ts +30 -0
  66. package/dist/src/core/renderers/webgl/shaders/effects/BorderEffect.js +58 -0
  67. package/dist/src/core/renderers/webgl/shaders/effects/BorderEffect.js.map +1 -0
  68. package/dist/src/core/renderers/webgl/shaders/effects/BorderLeftEffect.d.ts +31 -0
  69. package/dist/src/core/renderers/webgl/shaders/effects/BorderLeftEffect.js +71 -0
  70. package/dist/src/core/renderers/webgl/shaders/effects/BorderLeftEffect.js.map +1 -0
  71. package/dist/src/core/renderers/webgl/shaders/effects/BorderRightEffect.d.ts +31 -0
  72. package/dist/src/core/renderers/webgl/shaders/effects/BorderRightEffect.js +71 -0
  73. package/dist/src/core/renderers/webgl/shaders/effects/BorderRightEffect.js.map +1 -0
  74. package/dist/src/core/renderers/webgl/shaders/effects/BorderTopEffect.d.ts +31 -0
  75. package/dist/src/core/renderers/webgl/shaders/effects/BorderTopEffect.js +71 -0
  76. package/dist/src/core/renderers/webgl/shaders/effects/BorderTopEffect.js.map +1 -0
  77. package/dist/src/core/renderers/webgl/shaders/effects/EffectUtils.d.ts +9 -0
  78. package/dist/src/core/renderers/webgl/shaders/effects/EffectUtils.js +136 -0
  79. package/dist/src/core/renderers/webgl/shaders/effects/EffectUtils.js.map +1 -0
  80. package/dist/src/core/renderers/webgl/shaders/effects/FadeOutEffect.d.ts +36 -0
  81. package/dist/src/core/renderers/webgl/shaders/effects/FadeOutEffect.js +85 -0
  82. package/dist/src/core/renderers/webgl/shaders/effects/FadeOutEffect.js.map +1 -0
  83. package/dist/src/core/renderers/webgl/shaders/effects/GlitchEffect.d.ts +45 -0
  84. package/dist/src/core/renderers/webgl/shaders/effects/GlitchEffect.js +104 -0
  85. package/dist/src/core/renderers/webgl/shaders/effects/GlitchEffect.js.map +1 -0
  86. package/dist/src/core/renderers/webgl/shaders/effects/GrayscaleEffect.d.ts +22 -0
  87. package/dist/src/core/renderers/webgl/shaders/effects/GrayscaleEffect.js +45 -0
  88. package/dist/src/core/renderers/webgl/shaders/effects/GrayscaleEffect.js.map +1 -0
  89. package/dist/src/core/renderers/webgl/shaders/effects/HolePunchEffect.d.ts +58 -0
  90. package/dist/src/core/renderers/webgl/shaders/effects/HolePunchEffect.js +80 -0
  91. package/dist/src/core/renderers/webgl/shaders/effects/HolePunchEffect.js.map +1 -0
  92. package/dist/src/core/renderers/webgl/shaders/effects/LinearGradientEffect.d.ts +35 -0
  93. package/dist/src/core/renderers/webgl/shaders/effects/LinearGradientEffect.js +129 -0
  94. package/dist/src/core/renderers/webgl/shaders/effects/LinearGradientEffect.js.map +1 -0
  95. package/dist/src/core/renderers/webgl/shaders/effects/RadialGradientEffect.d.ts +39 -0
  96. package/dist/src/core/renderers/webgl/shaders/effects/RadialGradientEffect.js +116 -0
  97. package/dist/src/core/renderers/webgl/shaders/effects/RadialGradientEffect.js.map +1 -0
  98. package/dist/src/core/renderers/webgl/shaders/effects/RadialProgressEffect.d.ts +61 -0
  99. package/dist/src/core/renderers/webgl/shaders/effects/RadialProgressEffect.js +127 -0
  100. package/dist/src/core/renderers/webgl/shaders/effects/RadialProgressEffect.js.map +1 -0
  101. package/dist/src/core/renderers/webgl/shaders/effects/RadiusEffect.d.ts +40 -0
  102. package/dist/src/core/renderers/webgl/shaders/effects/RadiusEffect.js +71 -0
  103. package/dist/src/core/renderers/webgl/shaders/effects/RadiusEffect.js.map +1 -0
  104. package/dist/src/core/renderers/webgl/shaders/effects/ShaderEffect.d.ts +115 -0
  105. package/dist/src/core/renderers/webgl/shaders/effects/ShaderEffect.js +61 -0
  106. package/dist/src/core/renderers/webgl/shaders/effects/ShaderEffect.js.map +1 -0
  107. package/dist/src/core/shaders/templates/shaderUtils.d.ts +5 -0
  108. package/dist/src/core/shaders/templates/shaderUtils.js +41 -0
  109. package/dist/src/core/shaders/templates/shaderUtils.js.map +1 -0
  110. package/dist/src/core/shaders/webgl/Border.js +82 -82
  111. package/dist/src/core/shaders/webgl/Default.js +47 -47
  112. package/dist/src/core/shaders/webgl/DefaultBatched.js +61 -61
  113. package/dist/src/core/shaders/webgl/HolePunch.js +32 -32
  114. package/dist/src/core/shaders/webgl/LinearGradient.js +36 -36
  115. package/dist/src/core/shaders/webgl/RadialGradient.js +33 -33
  116. package/dist/src/core/shaders/webgl/Rounded.js +71 -71
  117. package/dist/src/core/shaders/webgl/RoundedWithBorder.js +111 -111
  118. package/dist/src/core/shaders/webgl/RoundedWithBorderAndShadow.js +130 -130
  119. package/dist/src/core/shaders/webgl/RoundedWithShadow.js +54 -54
  120. package/dist/src/core/shaders/webgl/SdfShader.js +62 -62
  121. package/dist/src/core/shaders/webgl/Shadow.js +83 -83
  122. package/dist/src/core/shaders/webgl/Spinner.d.ts +1 -0
  123. package/dist/src/core/shaders/webgl/Spinner.js +2 -0
  124. package/dist/src/core/shaders/webgl/Spinner.js.map +1 -0
  125. package/dist/src/core/text-rendering/CanvasFontHandler.d.ts +16 -0
  126. package/dist/src/core/text-rendering/CanvasFontHandler.js +29 -0
  127. package/dist/src/core/text-rendering/CanvasFontHandler.js.map +1 -1
  128. package/dist/src/core/text-rendering/SdfFontHandler.d.ts +15 -0
  129. package/dist/src/core/text-rendering/SdfFontHandler.js +34 -2
  130. package/dist/src/core/text-rendering/SdfFontHandler.js.map +1 -1
  131. package/dist/src/core/text-rendering/TextRenderer.d.ts +2 -0
  132. package/dist/src/core/text-rendering/TextTextureRendererUtils.js.map +1 -1
  133. package/dist/src/core/text-rendering/font-face-types/SdfTrFontFace/SdfTrFontFace.js +2 -2
  134. package/dist/src/core/text-rendering/font-face-types/SdfTrFontFace/SdfTrFontFace.js.map +1 -1
  135. package/dist/src/core/text-rendering/renderers/CanvasTextRenderer.js +0 -5
  136. package/dist/src/core/text-rendering/renderers/CanvasTextRenderer.js.map +1 -1
  137. package/dist/src/core/text-rendering/renderers/LightningTextTextureRenderer.d.ts +1 -7
  138. package/dist/src/core/text-rendering/renderers/LightningTextTextureRenderer.js +2 -50
  139. package/dist/src/core/text-rendering/renderers/LightningTextTextureRenderer.js.map +1 -1
  140. package/dist/src/core/text-rendering/renderers/SdfTextRenderer/SdfTextRenderer.d.ts +3 -2
  141. package/dist/src/core/text-rendering/renderers/SdfTextRenderer/SdfTextRenderer.js +83 -42
  142. package/dist/src/core/text-rendering/renderers/SdfTextRenderer/SdfTextRenderer.js.map +1 -1
  143. package/dist/src/core/text-rendering/renderers/SdfTextRenderer/internal/layoutText.d.ts +1 -1
  144. package/dist/src/core/text-rendering/renderers/SdfTextRenderer/internal/layoutText.js +8 -66
  145. package/dist/src/core/text-rendering/renderers/SdfTextRenderer/internal/layoutText.js.map +1 -1
  146. package/dist/src/core/text-rendering/renderers/TextRenderer.d.ts +4 -14
  147. package/dist/src/core/text-rendering/renderers/TextRenderer.js +0 -3
  148. package/dist/src/core/text-rendering/renderers/TextRenderer.js.map +1 -1
  149. package/dist/src/core/text-rendering/sdf/PeekableGenerator.d.ts +12 -0
  150. package/dist/src/core/text-rendering/sdf/PeekableGenerator.js +61 -0
  151. package/dist/src/core/text-rendering/sdf/PeekableGenerator.js.map +1 -0
  152. package/dist/src/core/text-rendering/sdf/SimpleFontShaper.d.ts +45 -0
  153. package/dist/src/core/text-rendering/sdf/SimpleFontShaper.js +69 -0
  154. package/dist/src/core/text-rendering/sdf/SimpleFontShaper.js.map +1 -0
  155. package/dist/src/main-api/DynamicShaderController.d.ts +29 -0
  156. package/dist/src/main-api/DynamicShaderController.js +58 -0
  157. package/dist/src/main-api/DynamicShaderController.js.map +1 -0
  158. package/dist/src/main-api/ShaderController.d.ts +31 -0
  159. package/dist/src/main-api/ShaderController.js +37 -0
  160. package/dist/src/main-api/ShaderController.js.map +1 -0
  161. package/dist/tsconfig.dist.tsbuildinfo +1 -1
  162. package/exports/canvas-shaders.ts +28 -28
  163. package/exports/canvas.ts +45 -45
  164. package/exports/index.ts +82 -82
  165. package/exports/inspector.ts +24 -24
  166. package/exports/utils.ts +50 -50
  167. package/exports/webgl-shaders.ts +28 -28
  168. package/exports/webgl.ts +52 -52
  169. package/package.json +2 -1
  170. package/src/common/CommonTypes.ts +146 -146
  171. package/src/common/EventEmitter.ts +77 -77
  172. package/src/common/IAnimationController.ts +92 -92
  173. package/src/common/IEventEmitter.ts +28 -28
  174. package/src/core/CoreNode.test.ts +202 -202
  175. package/src/core/CoreNode.ts +2491 -2491
  176. package/src/core/CoreShaderManager.ts +188 -188
  177. package/src/core/CoreTextNode.ts +483 -443
  178. package/src/core/CoreTextureManager.ts +565 -565
  179. package/src/core/Stage.ts +906 -906
  180. package/src/core/TextureMemoryManager.ts +445 -445
  181. package/src/core/animations/AnimationManager.ts +38 -38
  182. package/src/core/animations/CoreAnimation.ts +291 -291
  183. package/src/core/animations/CoreAnimationController.ts +166 -166
  184. package/src/core/lib/ContextSpy.ts +41 -41
  185. package/src/core/lib/ImageWorker.ts +286 -286
  186. package/src/core/lib/Matrix3d.ts +244 -244
  187. package/src/core/lib/RenderCoords.ts +71 -71
  188. package/src/core/lib/WebGlContextWrapper.ts +1381 -1381
  189. package/src/core/lib/colorCache.ts +20 -20
  190. package/src/core/lib/colorParser.ts +85 -85
  191. package/src/core/lib/textureCompression.ts +152 -152
  192. package/src/core/lib/textureSvg.ts +78 -78
  193. package/src/core/lib/utils.ts +412 -412
  194. package/src/core/lib/validateImageBitmap.ts +87 -87
  195. package/src/core/platforms/Platform.ts +77 -77
  196. package/src/core/platforms/web/WebPlatform.ts +121 -121
  197. package/src/core/renderers/CoreContextTexture.ts +43 -43
  198. package/src/core/renderers/CoreRenderOp.ts +22 -22
  199. package/src/core/renderers/CoreRenderer.ts +110 -110
  200. package/src/core/renderers/CoreShaderNode.ts +175 -175
  201. package/src/core/renderers/CoreShaderProgram.ts +23 -23
  202. package/src/core/renderers/canvas/CanvasRenderer.ts +283 -283
  203. package/src/core/renderers/canvas/CanvasShaderNode.ts +96 -96
  204. package/src/core/renderers/canvas/CanvasTexture.ts +156 -156
  205. package/src/core/renderers/webgl/WebGlCtxRenderTexture.ts +91 -91
  206. package/src/core/renderers/webgl/WebGlCtxSubTexture.ts +50 -50
  207. package/src/core/renderers/webgl/WebGlCtxTexture.ts +310 -310
  208. package/src/core/renderers/webgl/WebGlRenderOp.ts +167 -167
  209. package/src/core/renderers/webgl/WebGlRenderer.ts +747 -747
  210. package/src/core/renderers/webgl/WebGlShaderNode.ts +435 -435
  211. package/src/core/renderers/webgl/WebGlShaderProgram.ts +341 -341
  212. package/src/core/renderers/webgl/internal/BufferCollection.ts +54 -54
  213. package/src/core/renderers/webgl/internal/RendererUtils.ts +155 -155
  214. package/src/core/renderers/webgl/internal/ShaderUtils.ts +281 -281
  215. package/src/core/renderers/webgl/internal/WebGlUtils.ts +35 -35
  216. package/src/core/shaders/canvas/Border.ts +75 -75
  217. package/src/core/shaders/canvas/HolePunch.ts +62 -62
  218. package/src/core/shaders/canvas/LinearGradient.ts +71 -71
  219. package/src/core/shaders/canvas/RadialGradient.ts +99 -99
  220. package/src/core/shaders/canvas/Rounded.ts +55 -55
  221. package/src/core/shaders/canvas/RoundedWithBorder.ts +74 -74
  222. package/src/core/shaders/canvas/RoundedWithBorderAndShadow.ts +90 -90
  223. package/src/core/shaders/canvas/RoundedWithShadow.ts +70 -70
  224. package/src/core/shaders/canvas/Shadow.ts +52 -52
  225. package/src/core/shaders/canvas/utils/render.ts +151 -151
  226. package/src/core/shaders/templates/BorderTemplate.ts +115 -115
  227. package/src/core/shaders/templates/HolePunchTemplate.ts +82 -82
  228. package/src/core/shaders/templates/LinearGradientTemplate.ts +71 -71
  229. package/src/core/shaders/templates/RadialGradientTemplate.ts +81 -81
  230. package/src/core/shaders/templates/RoundedTemplate.ts +98 -98
  231. package/src/core/shaders/templates/RoundedWithBorderAndShadowTemplate.ts +38 -38
  232. package/src/core/shaders/templates/RoundedWithBorderTemplate.ts +35 -35
  233. package/src/core/shaders/templates/RoundedWithShadowTemplate.ts +35 -35
  234. package/src/core/shaders/templates/ShadowTemplate.ts +106 -106
  235. package/src/core/shaders/utils.ts +46 -46
  236. package/src/core/shaders/webgl/Border.ts +116 -116
  237. package/src/core/shaders/webgl/Default.ts +89 -89
  238. package/src/core/shaders/webgl/DefaultBatched.ts +129 -129
  239. package/src/core/shaders/webgl/HolePunch.ts +75 -75
  240. package/src/core/shaders/webgl/LinearGradient.ts +82 -82
  241. package/src/core/shaders/webgl/RadialGradient.ts +85 -85
  242. package/src/core/shaders/webgl/Rounded.ts +117 -117
  243. package/src/core/shaders/webgl/RoundedWithBorder.ts +155 -155
  244. package/src/core/shaders/webgl/RoundedWithBorderAndShadow.ts +175 -175
  245. package/src/core/shaders/webgl/RoundedWithShadow.ts +98 -98
  246. package/src/core/shaders/webgl/SdfShader.ts +134 -134
  247. package/src/core/shaders/webgl/Shadow.ts +115 -115
  248. package/src/core/text-rendering/CanvasFontHandler.ts +210 -176
  249. package/src/core/text-rendering/CanvasTextRenderer.ts +622 -622
  250. package/src/core/text-rendering/SdfFontHandler.ts +554 -517
  251. package/src/core/text-rendering/SdfTextRenderer.ts +466 -466
  252. package/src/core/text-rendering/TextRenderer.ts +406 -404
  253. package/src/core/text-rendering/Utils.ts +257 -257
  254. package/src/core/text-rendering/canvas/Settings.ts +99 -99
  255. package/src/core/text-rendering/canvas/Utils.test.ts +206 -206
  256. package/src/core/text-rendering/canvas/Utils.ts +178 -178
  257. package/src/core/text-rendering/canvas/calculateRenderInfo.ts +299 -299
  258. package/src/core/text-rendering/canvas/draw.ts +165 -165
  259. package/src/core/text-rendering/sdf/Utils.test.ts +402 -402
  260. package/src/core/text-rendering/sdf/Utils.ts +436 -436
  261. package/src/core/text-rendering/sdf/index.ts +20 -20
  262. package/src/core/textures/ColorTexture.ts +102 -102
  263. package/src/core/textures/ImageTexture.ts +418 -418
  264. package/src/core/textures/NoiseTexture.ts +104 -104
  265. package/src/core/textures/RenderTexture.ts +85 -85
  266. package/src/core/textures/SubTexture.ts +205 -205
  267. package/src/core/textures/Texture.ts +381 -381
  268. package/src/core/utils.ts +227 -227
  269. package/src/env.d.ts +7 -7
  270. package/src/main-api/INode.ts +100 -100
  271. package/src/main-api/Inspector.ts +567 -567
  272. package/src/main-api/Renderer.ts +873 -873
  273. package/src/main-api/utils.ts +45 -45
  274. package/src/utils.ts +267 -267
  275. package/COPYING +0 -1
@@ -28,7 +28,7 @@ vertexBuffer, contain,
28
28
  /**
29
29
  * Mutated
30
30
  */
31
- lineCache, rwSdf, trFontFace, forceFullLayoutCalc, scrollable, overflowSuffix, wordBreak, maxLines) {
31
+ lineCache, rwSdf, trFontFace, forceFullLayoutCalc, scrollable, overflowSuffix, maxLines) {
32
32
  assertTruthy(trFontFace, 'Font face must be loaded');
33
33
  assertTruthy(trFontFace.loaded, 'Font face must be loaded');
34
34
  assertTruthy(trFontFace.data, 'Font face must be loaded');
@@ -74,10 +74,6 @@ lineCache, rwSdf, trFontFace, forceFullLayoutCalc, scrollable, overflowSuffix, w
74
74
  bufferOffset: -1,
75
75
  xStart: -1,
76
76
  };
77
- let previousWord = {
78
- bufferOffset: -1,
79
- xStart: -1,
80
- };
81
77
  const shaper = trFontFace.shaper;
82
78
  const shaperProps = {
83
79
  letterSpacing: vertexLSpacing,
@@ -102,6 +98,9 @@ lineCache, rwSdf, trFontFace, forceFullLayoutCalc, scrollable, overflowSuffix, w
102
98
  scrollable ||
103
99
  curY + vertexLineHeight + trFontFace.maxCharHeight <=
104
100
  vertexTruncateHeight);
101
+ const lineVertexW = nextLineWillFit
102
+ ? vertexW
103
+ : vertexW - overflowSuffVertexWidth;
105
104
  /**
106
105
  * Vertex X position to the beginning of the last word boundary. This becomes -1 when we start traversing a word.
107
106
  */
@@ -131,8 +130,6 @@ lineCache, rwSdf, trFontFace, forceFullLayoutCalc, scrollable, overflowSuffix, w
131
130
  if (lastWord.codepointIndex !== -1) {
132
131
  lastWord.codepointIndex = -1;
133
132
  xStartLastWordBoundary = curX;
134
- previousWord.bufferOffset = lastWord.bufferOffset;
135
- previousWord.xStart = lastWord.xStart;
136
133
  }
137
134
  }
138
135
  else if (lastWord.codepointIndex === -1) {
@@ -143,29 +140,12 @@ lineCache, rwSdf, trFontFace, forceFullLayoutCalc, scrollable, overflowSuffix, w
143
140
  if (glyph.mapped) {
144
141
  // Mapped glyph
145
142
  const charEndX = curX + glyph.xOffset + glyph.width;
146
- if (wordBreak === 'break-all' &&
147
- charEndX >= vertexW &&
148
- nextLineWillFit) {
149
- // wordBreak: break-all - the current letter is about to go of the edge
150
- // of the container width and the next line will fit, so we break to the next line
151
- glyphs = shaper.shapeText(shaperProps, new PeekableIterator(getUnicodeCodepoints(text, glyph.cluster), glyph.cluster));
152
- break;
153
- }
154
- else if (contain !== 'none' &&
155
- wordBreak === 'break-all' &&
156
- charEndX + overflowSuffVertexWidth >= vertexW &&
157
- nextLineWillFit === false) {
158
- // wordBreak: break-all - the current letter is about to go of the edge
159
- // of the container width and the next line will not fit, so we add the overflow suffix
160
- glyphs = shaper.shapeText(shaperProps, new PeekableIterator(getUnicodeCodepoints(overflowSuffix, 0), 0));
161
- contain = 'none';
162
- }
163
- else if (
164
143
  // Word wrap check
144
+ if (
165
145
  // We are containing the text
166
146
  contain !== 'none' &&
167
147
  // The current glyph reaches outside the contained width
168
- charEndX >= vertexW &&
148
+ charEndX >= lineVertexW &&
169
149
  // There is a last word that we can break to the next line
170
150
  lastWord.codepointIndex !== -1 &&
171
151
  // Prevents infinite loop when a single word is longer than the width
@@ -180,39 +160,13 @@ lineCache, rwSdf, trFontFace, forceFullLayoutCalc, scrollable, overflowSuffix, w
180
160
  }
181
161
  else {
182
162
  glyphs = shaper.shapeText(shaperProps, new PeekableIterator(getUnicodeCodepoints(overflowSuffix, 0), 0));
183
- if (lastWord.xStart + overflowSuffVertexWidth < vertexW) {
184
- curX = lastWord.xStart;
185
- bufferOffset = lastWord.bufferOffset;
186
- }
187
- else if (previousWord.xStart + overflowSuffVertexWidth <
188
- vertexW) {
189
- curX = previousWord.xStart;
190
- bufferOffset = previousWord.bufferOffset;
191
- }
163
+ curX = lastWord.xStart;
164
+ bufferOffset = lastWord.bufferOffset;
192
165
  // HACK: For the rest of the line when inserting the overflow suffix,
193
166
  // set contain = 'none' to prevent an infinite loop.
194
167
  contain = 'none';
195
168
  }
196
169
  }
197
- else if (wordBreak === 'break-word' &&
198
- charEndX >= vertexW &&
199
- lastWord.xStart === 0 &&
200
- nextLineWillFit) {
201
- // The current word which starts the line is wider than the line width
202
- // proceed to next line
203
- glyphs = shaper.shapeText(shaperProps, new PeekableIterator(getUnicodeCodepoints(text, glyph.cluster), glyph.cluster));
204
- break;
205
- }
206
- else if (contain !== 'none' &&
207
- wordBreak === 'break-word' &&
208
- lastWord.xStart === 0 &&
209
- charEndX + overflowSuffVertexWidth >= vertexW &&
210
- nextLineWillFit === false) {
211
- // wordBreak: break-word - the current letter is about to go of the edge
212
- // and the next line will not fit, so we add the overflow suffix
213
- glyphs = shaper.shapeText(shaperProps, new PeekableIterator(getUnicodeCodepoints(overflowSuffix, 0), 0));
214
- contain = 'none';
215
- }
216
170
  else {
217
171
  // This glyph fits, so we can add it to the buffer
218
172
  const quadX = curX + glyph.xOffset;
@@ -265,18 +219,6 @@ lineCache, rwSdf, trFontFace, forceFullLayoutCalc, scrollable, overflowSuffix, w
265
219
  break;
266
220
  }
267
221
  else {
268
- // Check if the overflow suffix will fit
269
- if (curX + overflowSuffVertexWidth >= vertexW) {
270
- if (lastWord.xStart + overflowSuffVertexWidth < vertexW) {
271
- curX = lastWord.xStart;
272
- bufferOffset = lastWord.bufferOffset;
273
- }
274
- else if (previousWord.xStart + overflowSuffVertexWidth <
275
- vertexW) {
276
- curX = previousWord.xStart;
277
- bufferOffset = previousWord.bufferOffset;
278
- }
279
- }
280
222
  // The whole line won't fit, so we need to add the overflow suffix
281
223
  glyphs = shaper.shapeText(shaperProps, new PeekableIterator(getUnicodeCodepoints(overflowSuffix, 0), 0));
282
224
  // HACK: For the rest of the line when inserting the overflow suffix,
@@ -1 +1 @@
1
- {"version":3,"file":"layoutText.js","sourceRoot":"","sources":["../../../../../../../src/core/text-rendering/renderers/SdfTextRenderer/internal/layoutText.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"layoutText.js","sourceRoot":"","sources":["../../../../../../../src/core/text-rendering/renderers/SdfTextRenderer/internal/layoutText.ts"],"names":[],"mappings":"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"}
@@ -1,6 +1,9 @@
1
+ import type { Dimensions } from '../../../common/CommonTypes.js';
1
2
  import type { EventEmitter } from '../../../common/EventEmitter.js';
2
3
  import type { CoreTextNode } from '../../CoreTextNode.js';
3
4
  import type { Stage } from '../../Stage.js';
5
+ import type { Matrix3d } from '../../lib/Matrix3d.js';
6
+ import type { RectWithValid } from '../../lib/utils.js';
4
7
  import type { TrFontFace, TrFontFaceDescriptors } from '../font-face-types/TrFontFace.js';
5
8
  import type { TextBaseline, TextVerticalAlign } from './LightningTextTextureRenderer.js';
6
9
  /**
@@ -281,19 +284,6 @@ export interface TrProps extends TrFontProps {
281
284
  * @default "..."
282
285
  */
283
286
  overflowSuffix: string;
284
- /**
285
- * Word Break for text
286
- *
287
- * @remarks
288
- * This property sets how words should break when reaching the end of a line.
289
- *
290
- * - `'normal'`: Use the default line break rule.
291
- * - `'break-all'`: To prevent overflow, word breaks should happen between any two characters.
292
- * - `'break-word'`: To prevent overflow, word breaks should happen between words. If words are too long word breaks happen between any two characters.
293
- *
294
- * @default "normal"
295
- */
296
- wordBreak: 'normal' | 'break-all' | 'break-word';
297
287
  zIndex: number;
298
288
  debug: Partial<TextRendererDebugProps>;
299
289
  }
@@ -379,5 +369,5 @@ export declare abstract class TextRenderer<StateT extends TextRendererState = Te
379
369
  */
380
370
  scheduleUpdateState(state: StateT): void;
381
371
  abstract updateState(state: StateT): void;
382
- renderQuads?(node: CoreTextNode): void;
372
+ renderQuads?(state: StateT, transform: Matrix3d, clippingRect: RectWithValid, alpha: number, parentHasRenderTexture: boolean, framebufferDimensions: Dimensions | undefined): void;
383
373
  }
@@ -86,9 +86,6 @@ const trPropSetterDefaults = {
86
86
  overflowSuffix: (state, value) => {
87
87
  state.props.overflowSuffix = value;
88
88
  },
89
- wordBreak: (state, value) => {
90
- state.props.wordBreak = value;
91
- },
92
89
  debug: (state, value) => {
93
90
  state.props.debug = value;
94
91
  },
@@ -1 +1 @@
1
- {"version":3,"file":"TextRenderer.js","sourceRoot":"","sources":["../../../../../src/core/text-rendering/renderers/TextRenderer.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;GAiBG;AAsUH,MAAM,oBAAoB,GAAkB;IAC1C,CAAC,EAAE,CAAC,KAAK,EAAE,KAAK,EAAE,EAAE;QAClB,KAAK,CAAC,KAAK,CAAC,CAAC,GAAG,KAAK,CAAC;IACxB,CAAC;IACD,CAAC,EAAE,CAAC,KAAK,EAAE,KAAK,EAAE,EAAE;QAClB,KAAK,CAAC,KAAK,CAAC,CAAC,GAAG,KAAK,CAAC;IACxB,CAAC;IACD,KAAK,EAAE,CAAC,KAAK,EAAE,KAAK,EAAE,EAAE;QACtB,KAAK,CAAC,KAAK,CAAC,KAAK,GAAG,KAAK,CAAC;IAC5B,CAAC;IACD,MAAM,EAAE,CAAC,KAAK,EAAE,KAAK,EAAE,EAAE;QACvB,KAAK,CAAC,KAAK,CAAC,MAAM,GAAG,KAAK,CAAC;IAC7B,CAAC;IACD,KAAK,EAAE,CAAC,KAAK,EAAE,KAAK,EAAE,EAAE;QACtB,KAAK,CAAC,KAAK,CAAC,KAAK,GAAG,KAAK,CAAC;IAC5B,CAAC;IACD,MAAM,EAAE,CAAC,KAAK,EAAE,KAAK,EAAE,EAAE;QACvB,KAAK,CAAC,KAAK,CAAC,MAAM,GAAG,KAAK,CAAC;IAC7B,CAAC;IACD,UAAU,EAAE,CAAC,KAAK,EAAE,KAAK,EAAE,EAAE;QAC3B,KAAK,CAAC,KAAK,CAAC,UAAU,GAAG,KAAK,CAAC;IACjC,CAAC;IACD,UAAU,EAAE,CAAC,KAAK,EAAE,KAAK,EAAE,EAAE;QAC3B,KAAK,CAAC,KAAK,CAAC,UAAU,GAAG,KAAK,CAAC;IACjC,CAAC;IACD,SAAS,EAAE,CAAC,KAAK,EAAE,KAAK,EAAE,EAAE;QAC1B,KAAK,CAAC,KAAK,CAAC,SAAS,GAAG,KAAK,CAAC;IAChC,CAAC;IACD,WAAW,EAAE,CAAC,KAAK,EAAE,KAAK,EAAE,EAAE;QAC5B,KAAK,CAAC,KAAK,CAAC,WAAW,GAAG,KAAK,CAAC;IAClC,CAAC;IACD,QAAQ,EAAE,CAAC,KAAK,EAAE,KAAK,EAAE,EAAE;QACzB,KAAK,CAAC,KAAK,CAAC,QAAQ,GAAG,KAAK,CAAC;IAC/B,CAAC;IACD,IAAI,EAAE,CAAC,KAAK,EAAE,KAAK,EAAE,EAAE;QACrB,KAAK,CAAC,KAAK,CAAC,IAAI,GAAG,KAAK,CAAC;IAC3B,CAAC;IACD,SAAS,EAAE,CAAC,KAAK,EAAE,KAAK,EAAE,EAAE;QAC1B,KAAK,CAAC,KAAK,CAAC,SAAS,GAAG,KAAK,CAAC;IAChC,CAAC;IACD,OAAO,EAAE,CAAC,KAAK,EAAE,KAAK,EAAE,EAAE;QACxB,KAAK,CAAC,KAAK,CAAC,OAAO,GAAG,KAAK,CAAC;IAC9B,CAAC;IACD,OAAO,EAAE,CAAC,KAAK,EAAE,KAAK,EAAE,EAAE;QACxB,KAAK,CAAC,KAAK,CAAC,OAAO,GAAG,KAAK,CAAC;IAC9B,CAAC;IACD,UAAU,EAAE,CAAC,KAAK,EAAE,KAAK,EAAE,EAAE;QAC3B,KAAK,CAAC,KAAK,CAAC,UAAU,GAAG,KAAK,CAAC;IACjC,CAAC;IACD,OAAO,EAAE,CAAC,KAAK,EAAE,KAAK,EAAE,EAAE;QACxB,KAAK,CAAC,KAAK,CAAC,OAAO,GAAG,KAAK,CAAC;IAC9B,CAAC;IACD,aAAa,EAAE,CAAC,KAAK,EAAE,KAAK,EAAE,EAAE;QAC9B,KAAK,CAAC,KAAK,CAAC,aAAa,GAAG,KAAK,CAAC;IACpC,CAAC;IACD,UAAU,EAAE,CAAC,KAAK,EAAE,KAAK,EAAE,EAAE;QAC3B,KAAK,CAAC,KAAK,CAAC,UAAU,GAAG,KAAK,CAAC;IACjC,CAAC;IACD,QAAQ,EAAE,CAAC,KAAK,EAAE,KAAK,EAAE,EAAE;QACzB,KAAK,CAAC,KAAK,CAAC,QAAQ,GAAG,KAAK,CAAC;IAC/B,CAAC;IACD,YAAY,EAAE,CAAC,KAAK,EAAE,KAAK,EAAE,EAAE;QAC7B,KAAK,CAAC,KAAK,CAAC,YAAY,GAAG,KAAK,CAAC;IACnC,CAAC;IACD,aAAa,EAAE,CAAC,KAAK,EAAE,KAAK,EAAE,EAAE;QAC9B,KAAK,CAAC,KAAK,CAAC,aAAa,GAAG,KAAK,CAAC;IACpC,CAAC;IACD,cAAc,EAAE,CAAC,KAAK,EAAE,KAAK,EAAE,EAAE;QAC/B,KAAK,CAAC,KAAK,CAAC,cAAc,GAAG,KAAK,CAAC;IACrC,CAAC;IACD,SAAS,EAAE,CAAC,KAAK,EAAE,KAAK,EAAE,EAAE;QAC1B,KAAK,CAAC,KAAK,CAAC,SAAS,GAAG,KAAK,CAAC;IAChC,CAAC;IACD,KAAK,EAAE,CAAC,KAAK,EAAE,KAAK,EAAE,EAAE;QACtB,KAAK,CAAC,KAAK,CAAC,KAAK,GAAG,KAAK,CAAC;IAC5B,CAAC;CACF,CAAC;AAkBF,MAAM,OAAgB,YAAY;IAMV;IAHb,GAAG,CAAkC;IAG9C,YAAsB,KAAY;QAAZ,UAAK,GAAL,KAAK,CAAO;QAChC,MAAM,WAAW,GAAG;YAClB,GAAG,oBAAoB;YACvB,GAAG,IAAI,CAAC,kBAAkB,EAAE;SAC7B,CAAC;QACF,uEAAuE;QACvE,sCAAsC;QACtC,MAAM,OAAO,GAAG,EAAE,CAAC;QACnB,MAAM,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC,OAAO,CAAC,CAAC,GAAG,EAAE,EAAE;YACvC,MAAM,CAAC,cAAc,CAAC,OAAO,EAAE,GAAG,EAAE;gBAClC,KAAK,EAAE,CAAC,KAAa,EAAE,KAA6B,EAAE,EAAE;oBACtD,yEAAyE;oBACzE,IAAI,KAAK,CAAC,KAAK,CAAC,GAAoB,CAAC,KAAK,KAAK,EAAE,CAAC;wBAChD,WAAW,CAAC,GAA0B,CAAC,CAAC,KAAK,EAAE,KAAc,CAAC,CAAC;wBAE/D,+CAA+C;wBAC/C,6EAA6E;wBAC7E,IAAI,CAAC,KAAK,CAAC,aAAa,EAAE,CAAC;oBAC7B,CAAC;gBACH,CAAC;gBACD,QAAQ,EAAE,KAAK,EAAE,uCAAuC;gBACxD,YAAY,EAAE,KAAK,EAAE,uCAAuC;aAC7D,CAAC,CAAC;QACL,CAAC,CAAC,CAAC;QACH,IAAI,CAAC,GAAG,GAAG,OAA0C,CAAC;IACxD,CAAC;IAED,SAAS,CAAC,KAAa,EAAE,MAAwB,EAAE,KAAa;QAC9D,mCAAmC;QACnC,IAAI,KAAK,CAAC,MAAM,KAAK,MAAM,EAAE,CAAC;YAC5B,OAAO;QACT,CAAC;QACD,KAAK,CAAC,MAAM,GAAG,MAAM,CAAC;QACtB,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,MAAM,EAAE,KAAK,CAAC,CAAC;IACpC,CAAC;IAED;;;;;;OAMG;IACH,eAAe,CAAC,KAAa,EAAE,UAAmB;QAChD,KAAK,CAAC,YAAY,GAAG,UAAU,CAAC;IAClC,CAAC;IAoCD;;;;;;;;OAQG;IACH,YAAY,CAAC,KAAa;QACxB,IAAI,CAAC,SAAS,CAAC,KAAK,EAAE,WAAW,CAAC,CAAC;QACnC,KAAK,CAAC,OAAO,CAAC,kBAAkB,EAAE,CAAC;IACrC,CAAC;IAED;;;;;;;;;OASG;IACH,mBAAmB,CAAC,KAAa;QAC/B,IAAI,KAAK,CAAC,eAAe,EAAE,CAAC;YAC1B,OAAO;QACT,CAAC;QACD,KAAK,CAAC,eAAe,GAAG,IAAI,CAAC;QAC7B,cAAc,CAAC,GAAG,EAAE;YAClB,mDAAmD;YACnD,IAAI,KAAK,CAAC,MAAM,KAAK,WAAW,EAAE,CAAC;gBACjC,OAAO;YACT,CAAC;YACD,KAAK,CAAC,eAAe,GAAG,KAAK,CAAC;YAC9B,IAAI,CAAC,WAAW,CAAC,KAAK,CAAC,CAAC;QAC1B,CAAC,CAAC,CAAC;IACL,CAAC;CAKF"}
1
+ {"version":3,"file":"TextRenderer.js","sourceRoot":"","sources":["../../../../../src/core/text-rendering/renderers/TextRenderer.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;GAiBG;AAwTH,MAAM,oBAAoB,GAAkB;IAC1C,CAAC,EAAE,CAAC,KAAK,EAAE,KAAK,EAAE,EAAE;QAClB,KAAK,CAAC,KAAK,CAAC,CAAC,GAAG,KAAK,CAAC;IACxB,CAAC;IACD,CAAC,EAAE,CAAC,KAAK,EAAE,KAAK,EAAE,EAAE;QAClB,KAAK,CAAC,KAAK,CAAC,CAAC,GAAG,KAAK,CAAC;IACxB,CAAC;IACD,KAAK,EAAE,CAAC,KAAK,EAAE,KAAK,EAAE,EAAE;QACtB,KAAK,CAAC,KAAK,CAAC,KAAK,GAAG,KAAK,CAAC;IAC5B,CAAC;IACD,MAAM,EAAE,CAAC,KAAK,EAAE,KAAK,EAAE,EAAE;QACvB,KAAK,CAAC,KAAK,CAAC,MAAM,GAAG,KAAK,CAAC;IAC7B,CAAC;IACD,KAAK,EAAE,CAAC,KAAK,EAAE,KAAK,EAAE,EAAE;QACtB,KAAK,CAAC,KAAK,CAAC,KAAK,GAAG,KAAK,CAAC;IAC5B,CAAC;IACD,MAAM,EAAE,CAAC,KAAK,EAAE,KAAK,EAAE,EAAE;QACvB,KAAK,CAAC,KAAK,CAAC,MAAM,GAAG,KAAK,CAAC;IAC7B,CAAC;IACD,UAAU,EAAE,CAAC,KAAK,EAAE,KAAK,EAAE,EAAE;QAC3B,KAAK,CAAC,KAAK,CAAC,UAAU,GAAG,KAAK,CAAC;IACjC,CAAC;IACD,UAAU,EAAE,CAAC,KAAK,EAAE,KAAK,EAAE,EAAE;QAC3B,KAAK,CAAC,KAAK,CAAC,UAAU,GAAG,KAAK,CAAC;IACjC,CAAC;IACD,SAAS,EAAE,CAAC,KAAK,EAAE,KAAK,EAAE,EAAE;QAC1B,KAAK,CAAC,KAAK,CAAC,SAAS,GAAG,KAAK,CAAC;IAChC,CAAC;IACD,WAAW,EAAE,CAAC,KAAK,EAAE,KAAK,EAAE,EAAE;QAC5B,KAAK,CAAC,KAAK,CAAC,WAAW,GAAG,KAAK,CAAC;IAClC,CAAC;IACD,QAAQ,EAAE,CAAC,KAAK,EAAE,KAAK,EAAE,EAAE;QACzB,KAAK,CAAC,KAAK,CAAC,QAAQ,GAAG,KAAK,CAAC;IAC/B,CAAC;IACD,IAAI,EAAE,CAAC,KAAK,EAAE,KAAK,EAAE,EAAE;QACrB,KAAK,CAAC,KAAK,CAAC,IAAI,GAAG,KAAK,CAAC;IAC3B,CAAC;IACD,SAAS,EAAE,CAAC,KAAK,EAAE,KAAK,EAAE,EAAE;QAC1B,KAAK,CAAC,KAAK,CAAC,SAAS,GAAG,KAAK,CAAC;IAChC,CAAC;IACD,OAAO,EAAE,CAAC,KAAK,EAAE,KAAK,EAAE,EAAE;QACxB,KAAK,CAAC,KAAK,CAAC,OAAO,GAAG,KAAK,CAAC;IAC9B,CAAC;IACD,OAAO,EAAE,CAAC,KAAK,EAAE,KAAK,EAAE,EAAE;QACxB,KAAK,CAAC,KAAK,CAAC,OAAO,GAAG,KAAK,CAAC;IAC9B,CAAC;IACD,UAAU,EAAE,CAAC,KAAK,EAAE,KAAK,EAAE,EAAE;QAC3B,KAAK,CAAC,KAAK,CAAC,UAAU,GAAG,KAAK,CAAC;IACjC,CAAC;IACD,OAAO,EAAE,CAAC,KAAK,EAAE,KAAK,EAAE,EAAE;QACxB,KAAK,CAAC,KAAK,CAAC,OAAO,GAAG,KAAK,CAAC;IAC9B,CAAC;IACD,aAAa,EAAE,CAAC,KAAK,EAAE,KAAK,EAAE,EAAE;QAC9B,KAAK,CAAC,KAAK,CAAC,aAAa,GAAG,KAAK,CAAC;IACpC,CAAC;IACD,UAAU,EAAE,CAAC,KAAK,EAAE,KAAK,EAAE,EAAE;QAC3B,KAAK,CAAC,KAAK,CAAC,UAAU,GAAG,KAAK,CAAC;IACjC,CAAC;IACD,QAAQ,EAAE,CAAC,KAAK,EAAE,KAAK,EAAE,EAAE;QACzB,KAAK,CAAC,KAAK,CAAC,QAAQ,GAAG,KAAK,CAAC;IAC/B,CAAC;IACD,YAAY,EAAE,CAAC,KAAK,EAAE,KAAK,EAAE,EAAE;QAC7B,KAAK,CAAC,KAAK,CAAC,YAAY,GAAG,KAAK,CAAC;IACnC,CAAC;IACD,aAAa,EAAE,CAAC,KAAK,EAAE,KAAK,EAAE,EAAE;QAC9B,KAAK,CAAC,KAAK,CAAC,aAAa,GAAG,KAAK,CAAC;IACpC,CAAC;IACD,cAAc,EAAE,CAAC,KAAK,EAAE,KAAK,EAAE,EAAE;QAC/B,KAAK,CAAC,KAAK,CAAC,cAAc,GAAG,KAAK,CAAC;IACrC,CAAC;IACD,KAAK,EAAE,CAAC,KAAK,EAAE,KAAK,EAAE,EAAE;QACtB,KAAK,CAAC,KAAK,CAAC,KAAK,GAAG,KAAK,CAAC;IAC5B,CAAC;CACF,CAAC;AAkBF,MAAM,OAAgB,YAAY;IAMV;IAHb,GAAG,CAAkC;IAG9C,YAAsB,KAAY;QAAZ,UAAK,GAAL,KAAK,CAAO;QAChC,MAAM,WAAW,GAAG;YAClB,GAAG,oBAAoB;YACvB,GAAG,IAAI,CAAC,kBAAkB,EAAE;SAC7B,CAAC;QACF,uEAAuE;QACvE,sCAAsC;QACtC,MAAM,OAAO,GAAG,EAAE,CAAC;QACnB,MAAM,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC,OAAO,CAAC,CAAC,GAAG,EAAE,EAAE;YACvC,MAAM,CAAC,cAAc,CAAC,OAAO,EAAE,GAAG,EAAE;gBAClC,KAAK,EAAE,CAAC,KAAa,EAAE,KAA6B,EAAE,EAAE;oBACtD,yEAAyE;oBACzE,IAAI,KAAK,CAAC,KAAK,CAAC,GAAoB,CAAC,KAAK,KAAK,EAAE,CAAC;wBAChD,WAAW,CAAC,GAA0B,CAAC,CAAC,KAAK,EAAE,KAAc,CAAC,CAAC;wBAE/D,+CAA+C;wBAC/C,6EAA6E;wBAC7E,IAAI,CAAC,KAAK,CAAC,aAAa,EAAE,CAAC;oBAC7B,CAAC;gBACH,CAAC;gBACD,QAAQ,EAAE,KAAK,EAAE,uCAAuC;gBACxD,YAAY,EAAE,KAAK,EAAE,uCAAuC;aAC7D,CAAC,CAAC;QACL,CAAC,CAAC,CAAC;QACH,IAAI,CAAC,GAAG,GAAG,OAA0C,CAAC;IACxD,CAAC;IAED,SAAS,CAAC,KAAa,EAAE,MAAwB,EAAE,KAAa;QAC9D,mCAAmC;QACnC,IAAI,KAAK,CAAC,MAAM,KAAK,MAAM,EAAE,CAAC;YAC5B,OAAO;QACT,CAAC;QACD,KAAK,CAAC,MAAM,GAAG,MAAM,CAAC;QACtB,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,MAAM,EAAE,KAAK,CAAC,CAAC;IACpC,CAAC;IAED;;;;;;OAMG;IACH,eAAe,CAAC,KAAa,EAAE,UAAmB;QAChD,KAAK,CAAC,YAAY,GAAG,UAAU,CAAC;IAClC,CAAC;IAoCD;;;;;;;;OAQG;IACH,YAAY,CAAC,KAAa;QACxB,IAAI,CAAC,SAAS,CAAC,KAAK,EAAE,WAAW,CAAC,CAAC;QACnC,KAAK,CAAC,OAAO,CAAC,kBAAkB,EAAE,CAAC;IACrC,CAAC;IAED;;;;;;;;;OASG;IACH,mBAAmB,CAAC,KAAa;QAC/B,IAAI,KAAK,CAAC,eAAe,EAAE,CAAC;YAC1B,OAAO;QACT,CAAC;QACD,KAAK,CAAC,eAAe,GAAG,IAAI,CAAC;QAC7B,cAAc,CAAC,GAAG,EAAE;YAClB,mDAAmD;YACnD,IAAI,KAAK,CAAC,MAAM,KAAK,WAAW,EAAE,CAAC;gBACjC,OAAO;YACT,CAAC;YACD,KAAK,CAAC,eAAe,GAAG,KAAK,CAAC;YAC9B,IAAI,CAAC,WAAW,CAAC,KAAK,CAAC,CAAC;QAC1B,CAAC,CAAC,CAAC;IACL,CAAC;CAYF"}
@@ -0,0 +1,12 @@
1
+ /**
2
+ * A wrapper Generator class that makes a generator peekable.
3
+ */
4
+ export declare class PeekableIterator<T = unknown, TReturn = any, TNext = unknown> implements Iterator<T, TReturn, TNext> {
5
+ private iterator;
6
+ private peekBuffer;
7
+ private _lastIndex;
8
+ constructor(iterator: Iterator<T, TReturn, TNext>, indexBase?: number);
9
+ next(): IteratorResult<T, TReturn>;
10
+ peek(): IteratorResult<T, TReturn>;
11
+ get lastIndex(): number;
12
+ }
@@ -0,0 +1,61 @@
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
+ * A wrapper Generator class that makes a generator peekable.
21
+ */
22
+ // eslint-disable-next-line @typescript-eslint/no-explicit-any
23
+ export class PeekableIterator {
24
+ iterator;
25
+ peekBuffer = [];
26
+ _lastIndex = -1;
27
+ constructor(iterator, indexBase = 0) {
28
+ this.iterator = iterator;
29
+ this.iterator = iterator;
30
+ this._lastIndex = indexBase - 1;
31
+ this.peekBuffer = [];
32
+ }
33
+ next() {
34
+ const nextResult = this.peekBuffer.length > 0
35
+ ? // eslint-disable-next-line @typescript-eslint/no-non-null-assertion
36
+ this.peekBuffer.pop()
37
+ : this.iterator.next();
38
+ if (nextResult.done === true) {
39
+ this._lastIndex = -1;
40
+ }
41
+ else {
42
+ this._lastIndex++;
43
+ }
44
+ return nextResult;
45
+ }
46
+ peek() {
47
+ if (this.peekBuffer.length > 0) {
48
+ // We know that the buffer is not empty, so we can safely use the
49
+ // non-null assertion operator
50
+ // eslint-disable-next-line @typescript-eslint/no-non-null-assertion
51
+ return this.peekBuffer[0];
52
+ }
53
+ const result = this.iterator.next();
54
+ this.peekBuffer.push(result);
55
+ return result;
56
+ }
57
+ get lastIndex() {
58
+ return this._lastIndex;
59
+ }
60
+ }
61
+ //# sourceMappingURL=PeekableGenerator.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"PeekableGenerator.js","sourceRoot":"","sources":["../../../../../src/core/text-rendering/sdf/PeekableGenerator.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;GAiBG;AAEH;;GAEG;AACH,8DAA8D;AAC9D,MAAM,OAAO,gBAAgB;IAMP;IAHZ,UAAU,GAAiC,EAAE,CAAC;IAC9C,UAAU,GAAG,CAAC,CAAC,CAAC;IAExB,YAAoB,QAAqC,EAAE,SAAS,GAAG,CAAC;QAApD,aAAQ,GAAR,QAAQ,CAA6B;QACvD,IAAI,CAAC,QAAQ,GAAG,QAAQ,CAAC;QACzB,IAAI,CAAC,UAAU,GAAG,SAAS,GAAG,CAAC,CAAC;QAChC,IAAI,CAAC,UAAU,GAAG,EAAE,CAAC;IACvB,CAAC;IAED,IAAI;QACF,MAAM,UAAU,GACd,IAAI,CAAC,UAAU,CAAC,MAAM,GAAG,CAAC;YACxB,CAAC,CAAC,oEAAoE;gBACpE,IAAI,CAAC,UAAU,CAAC,GAAG,EAAG;YACxB,CAAC,CAAC,IAAI,CAAC,QAAQ,CAAC,IAAI,EAAE,CAAC;QAE3B,IAAI,UAAU,CAAC,IAAI,KAAK,IAAI,EAAE,CAAC;YAC7B,IAAI,CAAC,UAAU,GAAG,CAAC,CAAC,CAAC;QACvB,CAAC;aAAM,CAAC;YACN,IAAI,CAAC,UAAU,EAAE,CAAC;QACpB,CAAC;QACD,OAAO,UAAU,CAAC;IACpB,CAAC;IAED,IAAI;QACF,IAAI,IAAI,CAAC,UAAU,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YAC/B,iEAAiE;YACjE,8BAA8B;YAC9B,oEAAoE;YACpE,OAAO,IAAI,CAAC,UAAU,CAAC,CAAC,CAAE,CAAC;QAC7B,CAAC;QACD,MAAM,MAAM,GAAG,IAAI,CAAC,QAAQ,CAAC,IAAI,EAAE,CAAC;QACpC,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;QAC7B,OAAO,MAAM,CAAC;IAChB,CAAC;IAED,IAAI,SAAS;QACX,OAAO,IAAI,CAAC,UAAU,CAAC;IACzB,CAAC;CACF"}
@@ -0,0 +1,45 @@
1
+ import type { PeekableIterator } from './PeekableGenerator.js';
2
+ /**
3
+ * Minimal glyph info for performance-focused text shaping
4
+ */
5
+ export interface SimpleGlyphInfo {
6
+ /**
7
+ * Whether the character was successfully mapped to a glyph
8
+ */
9
+ mapped: boolean;
10
+ /**
11
+ * Unicode codepoint
12
+ */
13
+ codepoint: number;
14
+ /**
15
+ * How much to advance horizontally after rendering this glyph
16
+ */
17
+ xAdvance: number;
18
+ }
19
+ /**
20
+ * Minimal font shaper properties
21
+ */
22
+ export interface FontShaperProps {
23
+ /**
24
+ * Font family name
25
+ */
26
+ fontFamily: string;
27
+ /**
28
+ * Font size in pixels
29
+ */
30
+ fontSize: number;
31
+ /**
32
+ * Letter spacing in pixels
33
+ */
34
+ letterSpacing: number;
35
+ }
36
+ /**
37
+ * Functional font shaper interface
38
+ */
39
+ export interface FontShaper {
40
+ shapeText: (props: FontShaperProps, codepoints: PeekableIterator<number>) => Generator<SimpleGlyphInfo, void>;
41
+ }
42
+ /**
43
+ * Create a simple SDF font shaper
44
+ */
45
+ export declare const createSdfFontShaper: () => FontShaper;
@@ -0,0 +1,69 @@
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 2025 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 * as SdfFontHandler from '../SdfFontHandler.js';
20
+ /**
21
+ * Create a simple SDF font shaper
22
+ */
23
+ export const createSdfFontShaper = () => ({
24
+ shapeText: function* (props, codepoints) {
25
+ // Host paths on top
26
+ const fontFamily = props.fontFamily;
27
+ const fontSize = props.fontSize;
28
+ const letterSpacing = props.letterSpacing;
29
+ const fontData = SdfFontHandler.getFontData(fontFamily);
30
+ if (fontData === null)
31
+ return;
32
+ const fontScale = fontSize / fontData.common.lineHeight;
33
+ let prevCodepoint = 0;
34
+ while (true) {
35
+ const result = codepoints.next();
36
+ if (result.done)
37
+ break;
38
+ const codepoint = result.value;
39
+ if (!codepoint)
40
+ continue;
41
+ // Get glyph data
42
+ const glyph = SdfFontHandler.getGlyph(fontFamily, codepoint);
43
+ if (glyph === null) {
44
+ yield {
45
+ mapped: false,
46
+ codepoint,
47
+ xAdvance: 0,
48
+ };
49
+ continue;
50
+ }
51
+ // Calculate advance with kerning
52
+ let advance = glyph.xadvance * fontScale;
53
+ // Add kerning if there's a previous character
54
+ if (prevCodepoint !== 0) {
55
+ const kerning = SdfFontHandler.getKerning(fontFamily, prevCodepoint, codepoint);
56
+ advance += kerning * fontScale;
57
+ }
58
+ // Add letter spacing
59
+ advance += letterSpacing;
60
+ yield {
61
+ mapped: true,
62
+ codepoint,
63
+ xAdvance: advance,
64
+ };
65
+ prevCodepoint = codepoint;
66
+ }
67
+ },
68
+ });
69
+ //# sourceMappingURL=SimpleFontShaper.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"SimpleFontShaper.js","sourceRoot":"","sources":["../../../../../src/core/text-rendering/sdf/SimpleFontShaper.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;GAiBG;AAGH,OAAO,KAAK,cAAc,MAAM,sBAAsB,CAAC;AAgDvD;;GAEG;AACH,MAAM,CAAC,MAAM,mBAAmB,GAAG,GAAe,EAAE,CAAC,CAAC;IACpD,SAAS,EAAE,QAAQ,CAAC,EAClB,KAAsB,EACtB,UAAoC;QAEpC,oBAAoB;QACpB,MAAM,UAAU,GAAG,KAAK,CAAC,UAAU,CAAC;QACpC,MAAM,QAAQ,GAAG,KAAK,CAAC,QAAQ,CAAC;QAChC,MAAM,aAAa,GAAG,KAAK,CAAC,aAAa,CAAC;QAE1C,MAAM,QAAQ,GAAG,cAAc,CAAC,WAAW,CAAC,UAAU,CAAC,CAAC;QACxD,IAAI,QAAQ,KAAK,IAAI;YAAE,OAAO;QAE9B,MAAM,SAAS,GAAG,QAAQ,GAAG,QAAQ,CAAC,MAAM,CAAC,UAAU,CAAC;QACxD,IAAI,aAAa,GAAG,CAAC,CAAC;QAEtB,OAAO,IAAI,EAAE,CAAC;YACZ,MAAM,MAAM,GAAG,UAAU,CAAC,IAAI,EAAE,CAAC;YACjC,IAAI,MAAM,CAAC,IAAI;gBAAE,MAAM;YAEvB,MAAM,SAAS,GAAG,MAAM,CAAC,KAAK,CAAC;YAC/B,IAAI,CAAC,SAAS;gBAAE,SAAS;YAEzB,iBAAiB;YACjB,MAAM,KAAK,GAAG,cAAc,CAAC,QAAQ,CAAC,UAAU,EAAE,SAAS,CAAC,CAAC;YAC7D,IAAI,KAAK,KAAK,IAAI,EAAE,CAAC;gBACnB,MAAM;oBACJ,MAAM,EAAE,KAAK;oBACb,SAAS;oBACT,QAAQ,EAAE,CAAC;iBACZ,CAAC;gBACF,SAAS;YACX,CAAC;YAED,iCAAiC;YACjC,IAAI,OAAO,GAAG,KAAK,CAAC,QAAQ,GAAG,SAAS,CAAC;YAEzC,8CAA8C;YAC9C,IAAI,aAAa,KAAK,CAAC,EAAE,CAAC;gBACxB,MAAM,OAAO,GAAG,cAAc,CAAC,UAAU,CACvC,UAAU,EACV,aAAa,EACb,SAAS,CACV,CAAC;gBACF,OAAO,IAAI,OAAO,GAAG,SAAS,CAAC;YACjC,CAAC;YAED,qBAAqB;YACrB,OAAO,IAAI,aAAa,CAAC;YAEzB,MAAM;gBACJ,MAAM,EAAE,IAAI;gBACZ,SAAS;gBACT,QAAQ,EAAE,OAAO;aAClB,CAAC;YAEF,aAAa,GAAG,SAAS,CAAC;QAC5B,CAAC;IACH,CAAC;CACF,CAAC,CAAC"}
@@ -0,0 +1,29 @@
1
+ import type { CoreShaderManager, EffectMap, ShaderMap } from '../core/CoreShaderManager.js';
2
+ import type { ExtractProps } from '../core/CoreTextureManager.js';
3
+ import type { EffectDesc } from '../core/renderers/webgl/shaders/effects/ShaderEffect.js';
4
+ import type { BaseShaderController } from './ShaderController.js';
5
+ type OptionalName<T> = T extends string ? T : never;
6
+ type MapEffectProps<Effects extends [...{
7
+ name?: string;
8
+ type: keyof EffectMap;
9
+ }[]]> = {
10
+ [K in Effects[number] as OptionalName<K['name']>]: ExtractProps<EffectMap[K['type']]>;
11
+ };
12
+ export type DynamicEffects<T extends [...{
13
+ name?: string;
14
+ type: keyof EffectMap;
15
+ }[]]> = {
16
+ [K in keyof T]: EffectDesc<T[K]>;
17
+ };
18
+ export declare class DynamicShaderController<Effects extends [...{
19
+ name?: string;
20
+ type: keyof EffectMap;
21
+ }[]]> implements BaseShaderController {
22
+ readonly shader: InstanceType<ShaderMap['DynamicShader']>;
23
+ private resolvedProps;
24
+ props: MapEffectProps<Effects>;
25
+ type: 'DynamicShader';
26
+ constructor(shader: InstanceType<ShaderMap['DynamicShader']>, props: ExtractProps<ShaderMap['DynamicShader']>, shManager: CoreShaderManager);
27
+ getResolvedProps(): import("../core/renderers/webgl/shaders/DynamicShader.js").DynamicShaderProps;
28
+ }
29
+ export {};
@@ -0,0 +1,58 @@
1
+ export class DynamicShaderController {
2
+ shader;
3
+ resolvedProps;
4
+ props;
5
+ type;
6
+ constructor(shader, props, shManager) {
7
+ this.shader = shader;
8
+ this.type = 'DynamicShader';
9
+ this.resolvedProps = props;
10
+ const effectConstructors = shManager.getRegisteredEffects();
11
+ const definedProps = {};
12
+ const effects = props.effects;
13
+ const effectsLength = effects.length;
14
+ for (let i = 0; i < effectsLength; i++) {
15
+ const { name: effectName, props: effectProps, type: effectType, } = effects[i];
16
+ if (effectName === undefined) {
17
+ continue;
18
+ }
19
+ const definedEffectProps = {};
20
+ const propEntries = Object.keys(effectProps);
21
+ const propEntriesLength = propEntries.length;
22
+ for (let j = 0; j < propEntriesLength; j++) {
23
+ const propName = propEntries[j];
24
+ Object.defineProperty(definedEffectProps, propName, {
25
+ get: () => {
26
+ return this.resolvedProps.effects[i].props[propName].value;
27
+ },
28
+ set: (value) => {
29
+ const target = this.resolvedProps.effects[i].props[propName];
30
+ target.value = value;
31
+ if (target.hasValidator) {
32
+ value = target.validatedValue = effectConstructors[effectType]
33
+ .uniforms[propName]?.validator(value, effectProps);
34
+ }
35
+ if (target.hasProgramValueUpdater) {
36
+ effectConstructors[effectType].uniforms[propName]
37
+ ?.updateProgramValue(target);
38
+ }
39
+ else {
40
+ target.programValue = value;
41
+ }
42
+ shManager.renderer.stage.requestRender();
43
+ },
44
+ });
45
+ }
46
+ Object.defineProperty(definedProps, effectName, {
47
+ get: () => {
48
+ return definedEffectProps;
49
+ },
50
+ });
51
+ }
52
+ this.props = definedProps;
53
+ }
54
+ getResolvedProps() {
55
+ return this.resolvedProps;
56
+ }
57
+ }
58
+ //# sourceMappingURL=DynamicShaderController.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"DynamicShaderController.js","sourceRoot":"","sources":["../../../src/main-api/DynamicShaderController.ts"],"names":[],"mappings":"AA0BA,MAAM,OAAO,uBAAuB;IASvB;IALH,aAAa,CAA2C;IAChE,KAAK,CAA0B;IAC/B,IAAI,CAAkB;IAEtB,YACW,MAAgD,EACzD,KAA+C,EAC/C,SAA4B;QAFnB,WAAM,GAAN,MAAM,CAA0C;QAIzD,IAAI,CAAC,IAAI,GAAG,eAAe,CAAC;QAC5B,IAAI,CAAC,aAAa,GAAG,KAAK,CAAC;QAC3B,MAAM,kBAAkB,GAAG,SAAS,CAAC,oBAAoB,EAAE,CAAC;QAC5D,MAAM,YAAY,GAAG,EAAE,CAAC;QAExB,MAAM,OAAO,GAAG,KAAK,CAAC,OAAQ,CAAC;QAC/B,MAAM,aAAa,GAAG,OAAO,CAAC,MAAM,CAAC;QAErC,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,aAAa,EAAE,CAAC,EAAE,EAAE,CAAC;YACvC,MAAM,EACJ,IAAI,EAAE,UAAU,EAChB,KAAK,EAAE,WAAW,EAClB,IAAI,EAAE,UAAU,GACjB,GAAG,OAAO,CAAC,CAAC,CAAE,CAAC;YAChB,IAAI,UAAU,KAAK,SAAS,EAAE,CAAC;gBAC7B,SAAS;YACX,CAAC;YACD,MAAM,kBAAkB,GAAG,EAAE,CAAC;YAC9B,MAAM,WAAW,GAAG,MAAM,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC;YAC7C,MAAM,iBAAiB,GAAG,WAAW,CAAC,MAAM,CAAC;YAC7C,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,iBAAiB,EAAE,CAAC,EAAE,EAAE,CAAC;gBAC3C,MAAM,QAAQ,GAAG,WAAW,CAAC,CAAC,CAAE,CAAC;gBACjC,MAAM,CAAC,cAAc,CAAC,kBAAkB,EAAE,QAAQ,EAAE;oBAClD,GAAG,EAAE,GAAG,EAAE;wBACR,OACE,IAAI,CAAC,aAAa,CAAC,OAAQ,CAAC,CAAC,CAAE,CAAC,KAAK,CAAC,QAAQ,CAI/C,CAAC,KAAK,CAAC;oBACV,CAAC;oBACD,GAAG,EAAE,CAAC,KAAK,EAAE,EAAE;wBACb,MAAM,MAAM,GAAG,IAAI,CAAC,aAAa,CAAC,OAAQ,CAAC,CAAC,CAAE,CAAC,KAAK,CAClD,QAAQ,CACc,CAAC;wBACzB,MAAM,CAAC,KAAK,GAAG,KAAK,CAAC;wBACrB,IAAI,MAAM,CAAC,YAAY,EAAE,CAAC;4BACxB,KAAK,GAAG,MAAM,CAAC,cAAc,GAAG,kBAAkB,CAAC,UAAU,CAAE;iCAC5D,QAAQ,CAAC,QAAQ,CAAC,EAAE,SAAU,CAAC,KAAK,EAAE,WAAW,CAAC,CAAC;wBACxD,CAAC;wBACD,IAAI,MAAM,CAAC,sBAAsB,EAAE,CAAC;4BAClC,kBAAkB,CAAC,UAAU,CAAE,CAAC,QAAQ,CAAC,QAAQ,CAAC;gCAChD,EAAE,kBAAmB,CAAC,MAA8B,CAAC,CAAC;wBAC1D,CAAC;6BAAM,CAAC;4BACN,MAAM,CAAC,YAAY,GAAG,KAAK,CAAC;wBAC9B,CAAC;wBACD,SAAS,CAAC,QAAQ,CAAC,KAAK,CAAC,aAAa,EAAE,CAAC;oBAC3C,CAAC;iBACF,CAAC,CAAC;YACL,CAAC;YAED,MAAM,CAAC,cAAc,CAAC,YAAY,EAAE,UAAU,EAAE;gBAC9C,GAAG,EAAE,GAAG,EAAE;oBACR,OAAO,kBAAkB,CAAC;gBAC5B,CAAC;aACF,CAAC,CAAC;QACL,CAAC;QAED,IAAI,CAAC,KAAK,GAAG,YAAuC,CAAC;IACvD,CAAC;IAED,gBAAgB;QACd,OAAO,IAAI,CAAC,aAAa,CAAC;IAC5B,CAAC;CACF"}
@@ -0,0 +1,31 @@
1
+ import type { ShaderMap } from '../core/CoreShaderManager.js';
2
+ import type { ExtractProps } from '../core/CoreTextureManager.js';
3
+ import type { Stage } from '../core/Stage.js';
4
+ import type { CoreShader } from '../core/renderers/CoreShader.js';
5
+ /**
6
+ * Shader Controller Base Interface
7
+ *
8
+ * @remarks
9
+ * Used directly this interface is like an `any` type for Shader Controllers.
10
+ * But it is also used as a base for more specific Shader Controller interfaces.
11
+ */
12
+ export interface BaseShaderController {
13
+ type: keyof ShaderMap;
14
+ shader: CoreShader;
15
+ props: Record<string, any>;
16
+ getResolvedProps: () => Record<string, any>;
17
+ }
18
+ /**
19
+ * Shader Controller Class
20
+ *
21
+ * @remarks
22
+ * This class is used to control shader props.
23
+ */
24
+ export declare class ShaderController<S extends keyof ShaderMap> implements BaseShaderController {
25
+ readonly type: S;
26
+ readonly shader: InstanceType<ShaderMap[S]>;
27
+ private resolvedProps;
28
+ props: ExtractProps<ShaderMap[S]>;
29
+ constructor(type: S, shader: InstanceType<ShaderMap[S]>, props: ExtractProps<ShaderMap[S]>, stage: Stage);
30
+ getResolvedProps(): ExtractProps<ShaderMap[S]>;
31
+ }
@@ -0,0 +1,37 @@
1
+ /**
2
+ * Shader Controller Class
3
+ *
4
+ * @remarks
5
+ * This class is used to control shader props.
6
+ */
7
+ export class ShaderController {
8
+ type;
9
+ shader;
10
+ resolvedProps;
11
+ props;
12
+ constructor(type, shader, props, stage) {
13
+ this.type = type;
14
+ this.shader = shader;
15
+ this.resolvedProps = props;
16
+ const keys = Object.keys(props);
17
+ const l = keys.length;
18
+ const definedProps = {};
19
+ for (let i = 0; i < l; i++) {
20
+ const name = keys[i];
21
+ Object.defineProperty(definedProps, name, {
22
+ get: () => {
23
+ return this.resolvedProps[name];
24
+ },
25
+ set: (value) => {
26
+ this.resolvedProps[name] = value;
27
+ stage.requestRender();
28
+ },
29
+ });
30
+ }
31
+ this.props = definedProps;
32
+ }
33
+ getResolvedProps() {
34
+ return this.resolvedProps;
35
+ }
36
+ }
37
+ //# sourceMappingURL=ShaderController.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ShaderController.js","sourceRoot":"","sources":["../../../src/main-api/ShaderController.ts"],"names":[],"mappings":"AAsCA;;;;;GAKG;AAEH,MAAM,OAAO,gBAAgB;IAMhB;IACA;IAJH,aAAa,CAA6B;IAClD,KAAK,CAA6B;IAClC,YACW,IAAO,EACP,MAAkC,EAC3C,KAAiC,EACjC,KAAY;QAHH,SAAI,GAAJ,IAAI,CAAG;QACP,WAAM,GAAN,MAAM,CAA4B;QAI3C,IAAI,CAAC,aAAa,GAAG,KAAK,CAAC;QAC3B,MAAM,IAAI,GAAG,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;QAChC,MAAM,CAAC,GAAG,IAAI,CAAC,MAAM,CAAC;QAEtB,MAAM,YAAY,GAAG,EAAE,CAAC;QACxB,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC;YAC3B,MAAM,IAAI,GAAG,IAAI,CAAC,CAAC,CAAE,CAAC;YACtB,MAAM,CAAC,cAAc,CAAC,YAAY,EAAE,IAAI,EAAE;gBACxC,GAAG,EAAE,GAAG,EAAE;oBACR,OAAO,IAAI,CAAC,aAAa,CAAC,IAAwC,CAAC,CAAC;gBACtE,CAAC;gBACD,GAAG,EAAE,CAAC,KAAK,EAAE,EAAE;oBACb,IAAI,CAAC,aAAa,CAAC,IAAwC,CAAC,GAAG,KAAK,CAAC;oBACrE,KAAK,CAAC,aAAa,EAAE,CAAC;gBACxB,CAAC;aACF,CAAC,CAAC;QACL,CAAC;QACD,IAAI,CAAC,KAAK,GAAG,YAA0C,CAAC;IAC1D,CAAC;IAED,gBAAgB;QACd,OAAO,IAAI,CAAC,aAAa,CAAC;IAC5B,CAAC;CACF"}