@lightningjs/renderer 0.6.1 → 0.7.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (201) hide show
  1. package/dist/src/common/CommonTypes.d.ts +8 -0
  2. package/dist/src/core/CoreNode.d.ts +4 -7
  3. package/dist/src/core/CoreNode.js +73 -40
  4. package/dist/src/core/CoreNode.js.map +1 -1
  5. package/dist/src/core/CoreTextNode.d.ts +12 -2
  6. package/dist/src/core/CoreTextNode.js +46 -1
  7. package/dist/src/core/CoreTextNode.js.map +1 -1
  8. package/dist/src/core/CoreTextureManager.d.ts +3 -1
  9. package/dist/src/core/CoreTextureManager.js +4 -1
  10. package/dist/src/core/CoreTextureManager.js.map +1 -1
  11. package/dist/src/core/Stage.d.ts +6 -0
  12. package/dist/src/core/Stage.js +13 -4
  13. package/dist/src/core/Stage.js.map +1 -1
  14. package/dist/src/core/animations/CoreAnimation.d.ts +1 -0
  15. package/dist/src/core/animations/CoreAnimation.js +7 -0
  16. package/dist/src/core/animations/CoreAnimation.js.map +1 -1
  17. package/dist/src/core/lib/ImageWorker.d.ts +16 -0
  18. package/dist/src/core/lib/ImageWorker.js +111 -0
  19. package/dist/src/core/lib/ImageWorker.js.map +1 -0
  20. package/dist/src/core/lib/WebGlContextWrapper.d.ts +4 -0
  21. package/dist/src/core/lib/WebGlContextWrapper.js +7 -2
  22. package/dist/src/core/lib/WebGlContextWrapper.js.map +1 -1
  23. package/dist/src/core/lib/utils.d.ts +9 -0
  24. package/dist/src/core/lib/utils.js +48 -1
  25. package/dist/src/core/lib/utils.js.map +1 -1
  26. package/dist/src/core/renderers/CoreRenderer.d.ts +2 -2
  27. package/dist/src/core/renderers/webgl/WebGlCoreCtxSubTexture.d.ts +2 -1
  28. package/dist/src/core/renderers/webgl/WebGlCoreCtxSubTexture.js +2 -2
  29. package/dist/src/core/renderers/webgl/WebGlCoreCtxSubTexture.js.map +1 -1
  30. package/dist/src/core/renderers/webgl/WebGlCoreCtxTexture.d.ts +3 -2
  31. package/dist/src/core/renderers/webgl/WebGlCoreCtxTexture.js +23 -21
  32. package/dist/src/core/renderers/webgl/WebGlCoreCtxTexture.js.map +1 -1
  33. package/dist/src/core/renderers/webgl/WebGlCoreRenderOp.d.ts +5 -4
  34. package/dist/src/core/renderers/webgl/WebGlCoreRenderOp.js +10 -14
  35. package/dist/src/core/renderers/webgl/WebGlCoreRenderOp.js.map +1 -1
  36. package/dist/src/core/renderers/webgl/WebGlCoreRenderer.d.ts +4 -1
  37. package/dist/src/core/renderers/webgl/WebGlCoreRenderer.js +30 -24
  38. package/dist/src/core/renderers/webgl/WebGlCoreRenderer.js.map +1 -1
  39. package/dist/src/core/renderers/webgl/WebGlCoreShader.d.ts +2 -1
  40. package/dist/src/core/renderers/webgl/WebGlCoreShader.js +24 -24
  41. package/dist/src/core/renderers/webgl/WebGlCoreShader.js.map +1 -1
  42. package/dist/src/core/renderers/webgl/internal/RendererUtils.d.ts +8 -5
  43. package/dist/src/core/renderers/webgl/internal/RendererUtils.js +11 -13
  44. package/dist/src/core/renderers/webgl/internal/RendererUtils.js.map +1 -1
  45. package/dist/src/core/renderers/webgl/internal/ShaderUtils.d.ts +3 -2
  46. package/dist/src/core/renderers/webgl/internal/ShaderUtils.js +15 -15
  47. package/dist/src/core/renderers/webgl/internal/ShaderUtils.js.map +1 -1
  48. package/dist/src/core/renderers/webgl/shaders/DefaultShader.js +3 -6
  49. package/dist/src/core/renderers/webgl/shaders/DefaultShader.js.map +1 -1
  50. package/dist/src/core/renderers/webgl/shaders/DefaultShaderBatched.js +3 -3
  51. package/dist/src/core/renderers/webgl/shaders/DefaultShaderBatched.js.map +1 -1
  52. package/dist/src/core/renderers/webgl/shaders/DynamicShader.d.ts +1 -0
  53. package/dist/src/core/renderers/webgl/shaders/DynamicShader.js +32 -12
  54. package/dist/src/core/renderers/webgl/shaders/DynamicShader.js.map +1 -1
  55. package/dist/src/core/renderers/webgl/shaders/RoundedRectangle.js +3 -3
  56. package/dist/src/core/renderers/webgl/shaders/RoundedRectangle.js.map +1 -1
  57. package/dist/src/core/renderers/webgl/shaders/SdfShader.js +3 -3
  58. package/dist/src/core/renderers/webgl/shaders/SdfShader.js.map +1 -1
  59. package/dist/src/core/renderers/webgl/shaders/effects/BorderEffect.js +1 -1
  60. package/dist/src/core/renderers/webgl/shaders/effects/GrayscaleEffect.d.ts +14 -1
  61. package/dist/src/core/renderers/webgl/shaders/effects/GrayscaleEffect.js +15 -5
  62. package/dist/src/core/renderers/webgl/shaders/effects/GrayscaleEffect.js.map +1 -1
  63. package/dist/src/core/text-rendering/font-face-types/SdfTrFontFace/SdfTrFontFace.js +3 -3
  64. package/dist/src/core/text-rendering/font-face-types/SdfTrFontFace/SdfTrFontFace.js.map +1 -1
  65. package/dist/src/core/text-rendering/font-face-types/SdfTrFontFace/internal/SdfFontShaper.d.ts +2 -1
  66. package/dist/src/core/text-rendering/font-face-types/SdfTrFontFace/internal/SdfFontShaper.js +4 -2
  67. package/dist/src/core/text-rendering/font-face-types/SdfTrFontFace/internal/SdfFontShaper.js.map +1 -1
  68. package/dist/src/core/text-rendering/renderers/CanvasTextRenderer.d.ts +2 -2
  69. package/dist/src/core/text-rendering/renderers/CanvasTextRenderer.js +25 -0
  70. package/dist/src/core/text-rendering/renderers/CanvasTextRenderer.js.map +1 -1
  71. package/dist/src/core/text-rendering/renderers/LightningTextTextureRenderer.d.ts +1 -1
  72. package/dist/src/core/text-rendering/renderers/LightningTextTextureRenderer.js +6 -6
  73. package/dist/src/core/text-rendering/renderers/LightningTextTextureRenderer.js.map +1 -1
  74. package/dist/src/core/text-rendering/renderers/SdfTextRenderer/SdfTextRenderer.d.ts +8 -11
  75. package/dist/src/core/text-rendering/renderers/SdfTextRenderer/SdfTextRenderer.js +140 -81
  76. package/dist/src/core/text-rendering/renderers/SdfTextRenderer/SdfTextRenderer.js.map +1 -1
  77. package/dist/src/core/text-rendering/renderers/SdfTextRenderer/internal/findNearestMultiple.d.ts +8 -0
  78. package/dist/src/core/text-rendering/renderers/SdfTextRenderer/internal/findNearestMultiple.js +29 -0
  79. package/dist/src/core/text-rendering/renderers/SdfTextRenderer/internal/findNearestMultiple.js.map +1 -0
  80. package/dist/src/core/text-rendering/renderers/SdfTextRenderer/internal/getStartConditions.d.ts +4 -3
  81. package/dist/src/core/text-rendering/renderers/SdfTextRenderer/internal/getStartConditions.js +15 -11
  82. package/dist/src/core/text-rendering/renderers/SdfTextRenderer/internal/getStartConditions.js.map +1 -1
  83. package/dist/src/core/text-rendering/renderers/SdfTextRenderer/internal/layoutText.d.ts +3 -2
  84. package/dist/src/core/text-rendering/renderers/SdfTextRenderer/internal/layoutText.js +30 -26
  85. package/dist/src/core/text-rendering/renderers/SdfTextRenderer/internal/layoutText.js.map +1 -1
  86. package/dist/src/core/text-rendering/renderers/SdfTextRenderer/internal/layoutText2/SdfBufferHelper.d.ts +19 -0
  87. package/dist/src/core/text-rendering/renderers/SdfTextRenderer/internal/layoutText2/SdfBufferHelper.js +84 -0
  88. package/dist/src/core/text-rendering/renderers/SdfTextRenderer/internal/layoutText2/SdfBufferHelper.js.map +1 -0
  89. package/dist/src/core/text-rendering/renderers/SdfTextRenderer/internal/layoutText2/layoutLine.d.ts +8 -0
  90. package/dist/src/core/text-rendering/renderers/SdfTextRenderer/internal/layoutText2/layoutLine.js +40 -0
  91. package/dist/src/core/text-rendering/renderers/SdfTextRenderer/internal/layoutText2/layoutLine.js.map +1 -0
  92. package/dist/src/core/text-rendering/renderers/SdfTextRenderer/internal/layoutText2/layoutText2.d.ts +2 -0
  93. package/dist/src/core/text-rendering/renderers/SdfTextRenderer/internal/layoutText2/layoutText2.js +41 -0
  94. package/dist/src/core/text-rendering/renderers/SdfTextRenderer/internal/layoutText2/layoutText2.js.map +1 -0
  95. package/dist/src/core/text-rendering/renderers/SdfTextRenderer/internal/layoutText2/utils.d.ts +1 -0
  96. package/dist/src/core/text-rendering/renderers/SdfTextRenderer/internal/layoutText2/utils.js +4 -0
  97. package/dist/src/core/text-rendering/renderers/SdfTextRenderer/internal/layoutText2/utils.js.map +1 -0
  98. package/dist/src/core/text-rendering/renderers/SdfTextRenderer/internal/layoutText2.d.ts +1 -0
  99. package/dist/src/core/text-rendering/renderers/SdfTextRenderer/internal/layoutText2.js +2 -0
  100. package/dist/src/core/text-rendering/renderers/SdfTextRenderer/internal/layoutText2.js.map +1 -0
  101. package/dist/src/core/text-rendering/renderers/SdfTextRenderer/internal/roundUpToMultiple.d.ts +9 -0
  102. package/dist/src/core/text-rendering/renderers/SdfTextRenderer/internal/roundUpToMultiple.js +32 -0
  103. package/dist/src/core/text-rendering/renderers/SdfTextRenderer/internal/roundUpToMultiple.js.map +1 -0
  104. package/dist/src/core/text-rendering/renderers/SdfTextRenderer/internal/setRenderWindow.d.ts +26 -0
  105. package/dist/src/core/text-rendering/renderers/SdfTextRenderer/internal/setRenderWindow.js +70 -0
  106. package/dist/src/core/text-rendering/renderers/SdfTextRenderer/internal/setRenderWindow.js.map +1 -0
  107. package/dist/src/core/text-rendering/renderers/SdfTextRenderer/internal/util.d.ts +16 -0
  108. package/dist/src/core/text-rendering/renderers/SdfTextRenderer/internal/util.js +39 -0
  109. package/dist/src/core/text-rendering/renderers/SdfTextRenderer/internal/util.js.map +1 -0
  110. package/dist/src/core/text-rendering/renderers/TextRenderer.d.ts +52 -2
  111. package/dist/src/core/text-rendering/renderers/TextRenderer.js +19 -0
  112. package/dist/src/core/text-rendering/renderers/TextRenderer.js.map +1 -1
  113. package/dist/src/core/textures/ImageTexture.js +14 -9
  114. package/dist/src/core/textures/ImageTexture.js.map +1 -1
  115. package/dist/src/core/utils.d.ts +1 -6
  116. package/dist/src/core/utils.js +3 -2
  117. package/dist/src/core/utils.js.map +1 -1
  118. package/dist/src/main-api/ICoreDriver.d.ts +2 -1
  119. package/dist/src/main-api/RendererMain.d.ts +25 -0
  120. package/dist/src/main-api/RendererMain.js +14 -5
  121. package/dist/src/main-api/RendererMain.js.map +1 -1
  122. package/dist/src/render-drivers/main/MainCoreDriver.d.ts +2 -1
  123. package/dist/src/render-drivers/main/MainCoreDriver.js +6 -4
  124. package/dist/src/render-drivers/main/MainCoreDriver.js.map +1 -1
  125. package/dist/src/render-drivers/main/MainOnlyTextNode.d.ts +10 -0
  126. package/dist/src/render-drivers/main/MainOnlyTextNode.js +45 -0
  127. package/dist/src/render-drivers/main/MainOnlyTextNode.js.map +1 -1
  128. package/dist/src/render-drivers/threadx/TextNodeStruct.d.ts +10 -0
  129. package/dist/src/render-drivers/threadx/TextNodeStruct.js +45 -0
  130. package/dist/src/render-drivers/threadx/TextNodeStruct.js.map +1 -1
  131. package/dist/src/render-drivers/threadx/ThreadXCoreDriver.d.ts +2 -1
  132. package/dist/src/render-drivers/threadx/ThreadXCoreDriver.js +8 -1
  133. package/dist/src/render-drivers/threadx/ThreadXCoreDriver.js.map +1 -1
  134. package/dist/src/render-drivers/threadx/ThreadXMainTextNode.d.ts +5 -0
  135. package/dist/src/render-drivers/threadx/ThreadXMainTextNode.js +5 -0
  136. package/dist/src/render-drivers/threadx/ThreadXMainTextNode.js.map +1 -1
  137. package/dist/src/render-drivers/threadx/ThreadXRendererMessage.d.ts +4 -1
  138. package/dist/src/render-drivers/threadx/ThreadXRendererMessage.js.map +1 -1
  139. package/dist/src/render-drivers/threadx/worker/ThreadXRendererTextNode.d.ts +5 -0
  140. package/dist/src/render-drivers/threadx/worker/ThreadXRendererTextNode.js +10 -0
  141. package/dist/src/render-drivers/threadx/worker/ThreadXRendererTextNode.js.map +1 -1
  142. package/dist/src/render-drivers/threadx/worker/renderer.js +5 -3
  143. package/dist/src/render-drivers/threadx/worker/renderer.js.map +1 -1
  144. package/dist/src/utils.d.ts +2 -1
  145. package/dist/src/utils.js +22 -3
  146. package/dist/src/utils.js.map +1 -1
  147. package/dist/tsconfig.dist.tsbuildinfo +1 -1
  148. package/package.json +3 -2
  149. package/src/common/CommonTypes.ts +9 -0
  150. package/src/core/CoreNode.ts +96 -62
  151. package/src/core/CoreTextNode.ts +58 -2
  152. package/src/core/CoreTextureManager.ts +4 -2
  153. package/src/core/Stage.ts +33 -4
  154. package/src/core/animations/CoreAnimation.ts +8 -0
  155. package/src/core/lib/ContextSpy.ts +41 -0
  156. package/src/core/lib/ImageWorker.ts +124 -0
  157. package/src/core/lib/WebGlContextWrapper.ts +965 -0
  158. package/src/core/lib/utils.ts +68 -1
  159. package/src/core/renderers/CoreRenderer.ts +2 -2
  160. package/src/core/renderers/webgl/WebGlCoreCtxSubTexture.ts +3 -2
  161. package/src/core/renderers/webgl/WebGlCoreCtxTexture.ts +29 -28
  162. package/src/core/renderers/webgl/WebGlCoreRenderOp.ts +13 -17
  163. package/src/core/renderers/webgl/WebGlCoreRenderer.ts +33 -25
  164. package/src/core/renderers/webgl/WebGlCoreShader.ts +34 -25
  165. package/src/core/renderers/webgl/internal/RendererUtils.ts +13 -16
  166. package/src/core/renderers/webgl/internal/ShaderUtils.ts +16 -15
  167. package/src/core/renderers/webgl/shaders/DefaultShader.ts +3 -7
  168. package/src/core/renderers/webgl/shaders/DefaultShaderBatched.ts +3 -3
  169. package/src/core/renderers/webgl/shaders/DynamicShader.ts +42 -14
  170. package/src/core/renderers/webgl/shaders/RoundedRectangle.ts +3 -3
  171. package/src/core/renderers/webgl/shaders/SdfShader.ts +3 -3
  172. package/src/core/renderers/webgl/shaders/effects/BorderEffect.ts +1 -1
  173. package/src/core/renderers/webgl/shaders/effects/GrayscaleEffect.ts +35 -5
  174. package/src/core/text-rendering/font-face-types/SdfTrFontFace/SdfTrFontFace.ts +3 -3
  175. package/src/core/text-rendering/font-face-types/SdfTrFontFace/internal/SdfFontShaper.test.ts +9 -3
  176. package/src/core/text-rendering/font-face-types/SdfTrFontFace/internal/SdfFontShaper.ts +4 -2
  177. package/src/core/text-rendering/renderers/CanvasTextRenderer.ts +27 -1
  178. package/src/core/text-rendering/renderers/LightningTextTextureRenderer.ts +7 -7
  179. package/src/core/text-rendering/renderers/SdfTextRenderer/SdfTextRenderer.ts +193 -103
  180. package/src/core/text-rendering/renderers/SdfTextRenderer/internal/getStartConditions.ts +26 -18
  181. package/src/core/text-rendering/renderers/SdfTextRenderer/internal/layoutText.ts +40 -28
  182. package/src/core/text-rendering/renderers/SdfTextRenderer/internal/measureText.test.ts +6 -1
  183. package/src/core/text-rendering/renderers/SdfTextRenderer/internal/setRenderWindow.test.ts +205 -0
  184. package/src/core/text-rendering/renderers/SdfTextRenderer/internal/{makeRenderWindow.ts → setRenderWindow.ts} +50 -21
  185. package/src/core/text-rendering/renderers/SdfTextRenderer/internal/util.ts +40 -0
  186. package/src/core/text-rendering/renderers/TextRenderer.ts +75 -2
  187. package/src/core/textures/ImageTexture.ts +17 -9
  188. package/src/core/utils.ts +87 -85
  189. package/src/env.d.ts +7 -0
  190. package/src/main-api/ICoreDriver.ts +2 -1
  191. package/src/main-api/RendererMain.ts +43 -5
  192. package/src/render-drivers/main/MainCoreDriver.ts +8 -5
  193. package/src/render-drivers/main/MainOnlyTextNode.ts +55 -1
  194. package/src/render-drivers/threadx/TextNodeStruct.ts +45 -0
  195. package/src/render-drivers/threadx/ThreadXCoreDriver.ts +10 -2
  196. package/src/render-drivers/threadx/ThreadXMainTextNode.ts +10 -0
  197. package/src/render-drivers/threadx/ThreadXRendererMessage.ts +5 -1
  198. package/src/render-drivers/threadx/worker/ThreadXRendererTextNode.ts +15 -0
  199. package/src/render-drivers/threadx/worker/renderer.ts +6 -4
  200. package/src/utils.ts +25 -4
  201. package/src/core/text-rendering/renderers/SdfTextRenderer/internal/makeRenderWindow.test.ts +0 -136
@@ -1 +1 @@
1
- {"version":3,"file":"CanvasTextRenderer.js","sourceRoot":"","sources":["../../../../../src/core/text-rendering/renderers/CanvasTextRenderer.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"CanvasTextRenderer.js","sourceRoot":"","sources":["../../../../../src/core/text-rendering/renderers/CanvasTextRenderer.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;GAiBG;AAEH,OAAO,EAAE,YAAY,EAAE,MAAM,iCAAiC,CAAC;AAC/D,OAAO,EAAE,YAAY,EAAE,4BAA4B,EAAE,MAAM,mBAAmB,CAAC;AAG/E,OAAO,EACL,aAAa,EAEb,cAAc,EACd,2BAA2B,EAE3B,2BAA2B,EAE3B,WAAW,GAEZ,MAAM,oBAAoB,CAAC;AAG5B,OAAO,EAAE,aAAa,EAAE,MAAM,qCAAqC,CAAC;AACpE,OAAO,EACL,4BAA4B,GAE7B,MAAM,mCAAmC,CAAC;AAC3C,OAAO,EACL,YAAY,GAKb,MAAM,mBAAmB,CAAC;AAE3B,MAAM,cAAc,GAAG,OAAO,IAAI,KAAK,WAAW,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,IAAI,CAAC;AAEvE;;GAEG;AACH,MAAM,aAAa,GAAG,CAAE,cAAc,CAAC,QAAgB,EAAE,KAAK;IAC3D,cAAsB,CAAC,KAAK,CAAgB,CAAC;AAehD,SAAS,gBAAgB,CAAC,KAAc;IACtC,MAAM,EAAE,UAAU,EAAE,SAAS,EAAE,UAAU,EAAE,WAAW,EAAE,QAAQ,EAAE,GAAG,KAAK,CAAC;IAC3E,OAAO,CAAC,SAAS,EAAE,UAAU,EAAE,WAAW,EAAE,GAAG,QAAQ,IAAI,EAAE,UAAU,CAAC,CAAC,IAAI,CAC3E,GAAG,CACJ,CAAC;AACJ,CAAC;AAmBD;;;;;;GAMG;AACH,MAAM,gBAAgB,GAAG,WAAW,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC;AAEjD,MAAM,OAAO,kBAAmB,SAAQ,YAAqC;IACjE,MAAM,CAAsC;IAC5C,OAAO,CAEY;IACrB,cAAc,CAAQ;IAE9B,YAAY,KAAY;QACtB,KAAK,CAAC,KAAK,CAAC,CAAC;QACb,IAAI,OAAO,eAAe,KAAK,WAAW,EAAE;YAC1C,IAAI,CAAC,MAAM,GAAG,IAAI,eAAe,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;SACzC;aAAM;YACL,IAAI,CAAC,MAAM,GAAG,QAAQ,CAAC,aAAa,CAAC,QAAQ,CAAC,CAAC;SAChD;QACD,4EAA4E;QAC5E,IAAI,OAAO,GAAG,IAAI,CAAC,MAAM,CAAC,UAAU,CAAC,IAAI,CAGjC,CAAC;QACT,IAAI,CAAC,OAAO,EAAE;YACZ,mGAAmG;YACnG,oFAAoF;YACpF,kFAAkF;YAClF,IAAI,CAAC,MAAM,GAAG,QAAQ,CAAC,aAAa,CAAC,QAAQ,CAAC,CAAC;YAC/C,OAAO,GAAG,IAAI,CAAC,MAAM,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC;SACxC;QACD,YAAY,CAAC,OAAO,CAAC,CAAC;QACtB,IAAI,CAAC,OAAO,GAAG,OAAO,CAAC;QACvB,IAAI,CAAC,cAAc,GAAG;YACpB,EAAE,EAAE,CAAC;YACL,EAAE,EAAE,CAAC;YACL,EAAE,EAAE,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,QAAQ;YAC/B,EAAE,EAAE,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,SAAS;SACjC,CAAC;IACJ,CAAC;IAED,mBAAmB;IACV,kBAAkB;QAGzB,OAAO;YACL,UAAU,EAAE,CAAC,KAAK,EAAE,KAAK,EAAE,EAAE;gBAC3B,KAAK,CAAC,KAAK,CAAC,UAAU,GAAG,KAAK,CAAC;gBAC/B,KAAK,CAAC,QAAQ,GAAG,SAAS,CAAC;gBAC3B,IAAI,CAAC,qBAAqB,CAAC,KAAK,CAAC,CAAC;YACpC,CAAC;YACD,UAAU,EAAE,CAAC,KAAK,EAAE,KAAK,EAAE,EAAE;gBAC3B,KAAK,CAAC,KAAK,CAAC,UAAU,GAAG,KAAK,CAAC;gBAC/B,KAAK,CAAC,QAAQ,GAAG,SAAS,CAAC;gBAC3B,IAAI,CAAC,qBAAqB,CAAC,KAAK,CAAC,CAAC;YACpC,CAAC;YACD,SAAS,EAAE,CAAC,KAAK,EAAE,KAAK,EAAE,EAAE;gBAC1B,KAAK,CAAC,KAAK,CAAC,SAAS,GAAG,KAAK,CAAC;gBAC9B,KAAK,CAAC,QAAQ,GAAG,SAAS,CAAC;gBAC3B,IAAI,CAAC,qBAAqB,CAAC,KAAK,CAAC,CAAC;YACpC,CAAC;YACD,WAAW,EAAE,CAAC,KAAK,EAAE,KAAK,EAAE,EAAE;gBAC5B,KAAK,CAAC,KAAK,CAAC,WAAW,GAAG,KAAK,CAAC;gBAChC,KAAK,CAAC,QAAQ,GAAG,SAAS,CAAC;gBAC3B,IAAI,CAAC,qBAAqB,CAAC,KAAK,CAAC,CAAC;YACpC,CAAC;YACD,QAAQ,EAAE,CAAC,KAAK,EAAE,KAAK,EAAE,EAAE;gBACzB,KAAK,CAAC,KAAK,CAAC,QAAQ,GAAG,KAAK,CAAC;gBAC7B,KAAK,CAAC,QAAQ,GAAG,SAAS,CAAC;gBAC3B,IAAI,CAAC,qBAAqB,CAAC,KAAK,CAAC,CAAC;YACpC,CAAC;YACD,IAAI,EAAE,CAAC,KAAK,EAAE,KAAK,EAAE,EAAE;gBACrB,KAAK,CAAC,KAAK,CAAC,IAAI,GAAG,KAAK,CAAC;gBACzB,IAAI,CAAC,qBAAqB,CAAC,KAAK,CAAC,CAAC;YACpC,CAAC;YACD,SAAS,EAAE,CAAC,KAAK,EAAE,KAAK,EAAE,EAAE;gBAC1B,KAAK,CAAC,KAAK,CAAC,SAAS,GAAG,KAAK,CAAC;gBAC9B,IAAI,CAAC,qBAAqB,CAAC,KAAK,CAAC,CAAC;YACpC,CAAC;YACD,KAAK,EAAE,CAAC,KAAK,EAAE,KAAK,EAAE,EAAE;gBACtB,KAAK,CAAC,KAAK,CAAC,KAAK,GAAG,KAAK,CAAC;gBAC1B,IAAI,CAAC,qBAAqB,CAAC,KAAK,CAAC,CAAC;YACpC,CAAC;YACD,CAAC,EAAE,CAAC,KAAK,EAAE,KAAK,EAAE,EAAE;gBAClB,KAAK,CAAC,KAAK,CAAC,CAAC,GAAG,KAAK,CAAC;gBACtB,IAAI,CAAC,4BAA4B,CAAC,KAAK,CAAC,CAAC;YAC3C,CAAC;YACD,CAAC,EAAE,CAAC,KAAK,EAAE,KAAK,EAAE,EAAE;gBAClB,KAAK,CAAC,KAAK,CAAC,CAAC,GAAG,KAAK,CAAC;gBACtB,IAAI,CAAC,4BAA4B,CAAC,KAAK,CAAC,CAAC;YAC3C,CAAC;YACD,OAAO,EAAE,CAAC,KAAK,EAAE,KAAK,EAAE,EAAE;gBACxB,KAAK,CAAC,KAAK,CAAC,OAAO,GAAG,KAAK,CAAC;gBAC5B,IAAI,CAAC,qBAAqB,CAAC,KAAK,CAAC,CAAC;YACpC,CAAC;YACD,KAAK,EAAE,CAAC,KAAK,EAAE,KAAK,EAAE,EAAE;gBACtB,KAAK,CAAC,KAAK,CAAC,KAAK,GAAG,KAAK,CAAC;gBAC1B,IAAI,CAAC,qBAAqB,CAAC,KAAK,CAAC,CAAC;YACpC,CAAC;YACD,MAAM,EAAE,CAAC,KAAK,EAAE,KAAK,EAAE,EAAE;gBACvB,KAAK,CAAC,KAAK,CAAC,MAAM,GAAG,KAAK,CAAC;gBAC3B,IAAI,CAAC,qBAAqB,CAAC,KAAK,CAAC,CAAC;YACpC,CAAC;YACD,OAAO,EAAE,CAAC,KAAK,EAAE,KAAK,EAAE,EAAE;gBACxB,KAAK,CAAC,KAAK,CAAC,OAAO,GAAG,KAAK,CAAC;gBAC5B,IAAI,CAAC,qBAAqB,CAAC,KAAK,CAAC,CAAC;YACpC,CAAC;YACD,OAAO,EAAE,CAAC,KAAK,EAAE,KAAK,EAAE,EAAE;gBACxB,KAAK,CAAC,KAAK,CAAC,OAAO,GAAG,KAAK,CAAC;YAC9B,CAAC;YACD,aAAa,EAAE,CAAC,KAAK,EAAE,KAAK,EAAE,EAAE;gBAC9B,KAAK,CAAC,KAAK,CAAC,aAAa,GAAG,KAAK,CAAC;gBAClC,IAAI,CAAC,qBAAqB,CAAC,KAAK,CAAC,CAAC;YACpC,CAAC;YACD,UAAU,EAAE,CAAC,KAAK,EAAE,KAAK,EAAE,EAAE;gBAC3B,KAAK,CAAC,KAAK,CAAC,UAAU,GAAG,KAAK,CAAC;gBAC/B,IAAI,CAAC,qBAAqB,CAAC,KAAK,CAAC,CAAC;YACpC,CAAC;YACD,QAAQ,EAAE,CAAC,KAAK,EAAE,KAAK,EAAE,EAAE;gBACzB,KAAK,CAAC,KAAK,CAAC,QAAQ,GAAG,KAAK,CAAC;gBAC7B,IAAI,CAAC,qBAAqB,CAAC,KAAK,CAAC,CAAC;YACpC,CAAC;YACD,YAAY,EAAE,CAAC,KAAK,EAAE,KAAK,EAAE,EAAE;gBAC7B,KAAK,CAAC,KAAK,CAAC,YAAY,GAAG,KAAK,CAAC;gBACjC,IAAI,CAAC,qBAAqB,CAAC,KAAK,CAAC,CAAC;YACpC,CAAC;YACD,aAAa,EAAE,CAAC,KAAK,EAAE,KAAK,EAAE,EAAE;gBAC9B,KAAK,CAAC,KAAK,CAAC,aAAa,GAAG,KAAK,CAAC;gBAClC,IAAI,CAAC,qBAAqB,CAAC,KAAK,CAAC,CAAC;YACpC,CAAC;YACD,cAAc,EAAE,CAAC,KAAK,EAAE,KAAK,EAAE,EAAE;gBAC/B,KAAK,CAAC,KAAK,CAAC,cAAc,GAAG,KAAK,CAAC;gBACnC,IAAI,CAAC,qBAAqB,CAAC,KAAK,CAAC,CAAC;YACpC,CAAC;YACD,6BAA6B;YAC7B,+BAA+B;YAC/B,KAAK;SACN,CAAC;IACJ,CAAC;IAED,6DAA6D;IACpD,aAAa,CAAC,KAAkB;QACvC,mEAAmE;QACnE,+DAA+D;QAC/D,iDAAiD;QACjD,OAAO,IAAI,CAAC;IACd,CAAC;IAEQ,mBAAmB,CAAC,QAAoB;QAC/C,OAAO,QAAQ,YAAY,aAAa,CAAC;IAC3C,CAAC;IAEQ,WAAW,CAAC,QAAoB;QACvC,gFAAgF;QAChF,mCAAmC;QACnC,YAAY,CAAC,QAAQ,YAAY,aAAa,CAAC,CAAC;QAEhD,8CAA8C;QAC9C,yEAAyE;QACzE,6DAA6D;QAC7D,aAAa,CAAC,GAAG,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAC;IACvC,CAAC;IAEQ,WAAW,CAAC,KAAc;QACjC,OAAO;YACL,KAAK;YACL,MAAM,EAAE,cAAc;YACtB,eAAe,EAAE,KAAK;YACtB,OAAO,EAAE,IAAI,YAAY,EAAE;YAC3B,WAAW,EAAE,SAAS;YACtB,sBAAsB,EAAE,IAAI,4BAA4B,CACtD,IAAI,CAAC,MAAM,EACX,IAAI,CAAC,OAAO,CACb;YACD,YAAY,EAAE,SAAS;YACvB,aAAa,EAAE;gBACb,EAAE,EAAE,CAAC;gBACL,EAAE,EAAE,CAAC;gBACL,EAAE,EAAE,CAAC;gBACL,EAAE,EAAE,CAAC;gBACL,KAAK,EAAE,KAAK;aACb;YACD,UAAU,EAAE,SAAS;YACrB,mBAAmB,EAAE,KAAK;YAC1B,KAAK,EAAE,CAAC;YACR,KAAK,EAAE,CAAC;YACR,QAAQ,EAAE,SAAS;YACnB,qBAAqB,EAAE,SAAS;YAChC,SAAS,EAAE;gBACT,WAAW,EAAE,CAAC;gBACd,WAAW,EAAE,CAAC;gBACd,SAAS,EAAE,CAAC;gBACZ,uBAAuB,EAAE,CAAC;gBAC1B,SAAS,EAAE,CAAC;gBACZ,OAAO,EAAE,CAAC;gBACV,UAAU,EAAE,CAAC;aACd;SACF,CAAC;IACJ,CAAC;IAEQ,WAAW,CAAC,KAA8B;QACjD,gEAAgE;QAChE,IAAI,KAAK,CAAC,MAAM,KAAK,cAAc,EAAE;YACnC,IAAI,CAAC,SAAS,CAAC,KAAK,EAAE,SAAS,CAAC,CAAC;SAClC;QAED,kDAAkD;QAClD,IAAI,CAAC,KAAK,CAAC,QAAQ,EAAE;YACnB,MAAM,SAAS,GAAG,gBAAgB,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;YAChD,KAAK,CAAC,QAAQ,GAAG;gBACf,SAAS,EAAE,SAAS;gBACpB,+GAA+G;gBAC/G,MAAM,EAAE,KAAK;aACd,CAAC;YACF,sFAAsF;YACtF,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC,MAAM,EAAE;gBAC1B,aAAa;qBACV,IAAI,CAAC,SAAS,CAAC;qBACf,IAAI,CAAC,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,IAAI,EAAE,KAAK,EAAE,SAAS,CAAC,CAAC;qBACpD,KAAK,CAAC,IAAI,CAAC,eAAe,CAAC,IAAI,CAAC,IAAI,EAAE,KAAK,EAAE,SAAS,CAAC,CAAC,CAAC;gBAC5D,OAAO;aACR;SACF;QAED,kEAAkE;QAClE,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC,MAAM,EAAE;YAC1B,OAAO;SACR;QAED,IAAI,CAAC,KAAK,CAAC,UAAU,EAAE;YACrB,KAAK,CAAC,sBAAsB,CAAC,QAAQ,GAAG;gBACtC,IAAI,EAAE,KAAK,CAAC,KAAK,CAAC,IAAI;gBACtB,SAAS,EAAE,KAAK,CAAC,KAAK,CAAC,SAAS;gBAChC,QAAQ,EAAE,KAAK,CAAC,KAAK,CAAC,UAAU;gBAChC,QAAQ,EAAE,KAAK,CAAC,KAAK,CAAC,QAAQ;gBAC9B,SAAS,EAAE;oBACT,KAAK,CAAC,KAAK,CAAC,WAAW;oBACvB,KAAK,CAAC,KAAK,CAAC,SAAS;oBACrB,KAAK,CAAC,KAAK,CAAC,UAAU;iBACvB,CAAC,IAAI,CAAC,GAAG,CAAC;gBACX,SAAS,EAAE,2BAA2B,CAAC,KAAK,CAAC,KAAK,CAAC,KAAK,CAAC;gBACzD,OAAO,EAAE,KAAK,CAAC,KAAK,CAAC,QAAQ,GAAG,KAAK,CAAC,KAAK,CAAC,OAAO;gBACnD,QAAQ,EAAE,KAAK,CAAC,KAAK,CAAC,OAAO,KAAK,MAAM;gBACxC,aAAa,EACX,KAAK,CAAC,KAAK,CAAC,OAAO,KAAK,MAAM,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,KAAK,CAAC,KAAK,CAAC,KAAK;gBAChE,aAAa,EAAE,KAAK,CAAC,KAAK,CAAC,aAAa;gBACxC,UAAU,EAAE,KAAK,CAAC,KAAK,CAAC,UAAU;gBAClC,QAAQ,EAAE,KAAK,CAAC,KAAK,CAAC,QAAQ;gBAC9B,YAAY,EAAE,KAAK,CAAC,KAAK,CAAC,YAAY;gBACtC,aAAa,EAAE,KAAK,CAAC,KAAK,CAAC,aAAa;gBACxC,cAAc,EAAE,KAAK,CAAC,KAAK,CAAC,cAAc;aAC3C,CAAC;YACF,qDAAqD;YACrD,KAAK,CAAC,UAAU,GAAG,KAAK,CAAC,sBAAsB,CAAC,mBAAmB,EAAE,CAAC;YACtE,eAAe;YACf,iCAAiC;YACjC,iDAAiD;YACjD,UAAU;YACV,KAAK;YACL,KAAK,CAAC,KAAK,GAAG,KAAK,CAAC,UAAU,CAAC,UAAU,GAAG,KAAK,CAAC,UAAU,CAAC,KAAK,CAAC,MAAM,CAAC;YAC1E,KAAK,CAAC,KAAK,GAAG,KAAK,CAAC,UAAU,CAAC,KAAK,CAAC;YAErC,yDAAyD;YACzD,KAAK,CAAC,YAAY,GAAG,SAAS,CAAC;SAChC;QAED,MAAM,EAAE,CAAC,EAAE,CAAC,EAAE,KAAK,EAAE,MAAM,EAAE,OAAO,EAAE,OAAO,EAAE,GAAG,KAAK,CAAC,KAAK,CAAC;QAC9D,MAAM,EAAE,aAAa,EAAE,GAAG,KAAK,CAAC;QAChC,IAAI,EAAE,YAAY,EAAE,WAAW,EAAE,GAAG,KAAK,CAAC;QAE1C,IAAI,CAAC,aAAa,CAAC,KAAK,EAAE;YACxB,iFAAiF;YACjF,MAAM,aAAa,GAAG,WAAW,CAC/B,CAAC,EACD,CAAC,EACD,OAAO,KAAK,MAAM,CAAC,CAAC,CAAC,CAAC,GAAG,KAAK,CAAC,CAAC,CAAC,QAAQ,EACzC,OAAO,KAAK,MAAM,CAAC,CAAC,CAAC,CAAC,GAAG,MAAM,CAAC,CAAC,CAAC,QAAQ,EAC1C,gBAAgB,CACjB,CAAC;YACF;;eAEG;YACH,cAAc,CAAC,IAAI,CAAC,cAAc,EAAE,aAAa,EAAE,aAAa,CAAC,CAAC;YAClE,aAAa,CAAC,KAAK,GAAG,IAAI,CAAC;SAC5B;QAED,MAAM,mBAAmB,GAAG,aAAa,CAAC,EAAE,GAAG,aAAa,CAAC,EAAE,CAAC;QAEhE,MAAM,qBAAqB,GAAG,IAAI,CAAC,IAAI,CACrC,mBAAmB,GAAG,KAAK,CAAC,UAAU,CAAC,UAAU,CAClD,CAAC;QAEF,IAAI,mBAAmB,KAAK,CAAC,EAAE;YAC7B,qEAAqE;YACrE,gBAAgB;YAChB,WAAW,GAAG,SAAS,CAAC;YACxB,YAAY,GAAG,SAAS,CAAC;YACzB,IAAI,CAAC,SAAS,CAAC,KAAK,EAAE,QAAQ,CAAC,CAAC;YAChC,OAAO;SACR;aAAM,IAAI,YAAY,IAAI,WAAW,EAAE;YACtC,2EAA2E;YAC3E,mDAAmD;YACnD,MAAM,oBAAoB,GAAG,CAAC,GAAG,YAAY,CAAC,EAAE,CAAC;YACjD,MAAM,oBAAoB,GAAG,CAAC,GAAG,OAAO,GAAG,YAAY,CAAC,EAAE,CAAC;YAC3D,MAAM,oBAAoB,GAAG,CAAC,GAAG,YAAY,CAAC,EAAE,CAAC;YACjD,MAAM,oBAAoB,GAAG,CAAC,GAAG,OAAO,GAAG,YAAY,CAAC,EAAE,CAAC;YAE3D,IACE,oBAAoB,IAAI,aAAa,CAAC,EAAE;gBACxC,oBAAoB,IAAI,aAAa,CAAC,EAAE;gBACxC,oBAAoB,IAAI,aAAa,CAAC,EAAE;gBACxC,oBAAoB,IAAI,aAAa,CAAC,EAAE,EACxC;gBACA,IAAI,CAAC,SAAS,CAAC,KAAK,EAAE,QAAQ,CAAC,CAAC;gBAChC,OAAO;aACR;YACD,IAAI,oBAAoB,GAAG,aAAa,CAAC,EAAE,EAAE;gBAC3C,wDAAwD;gBACxD,YAAY,CAAC,EAAE,IAAI,qBAAqB,GAAG,KAAK,CAAC,UAAU,CAAC,UAAU,CAAC;gBACvE,YAAY,CAAC,EAAE,IAAI,qBAAqB,GAAG,KAAK,CAAC,UAAU,CAAC,UAAU,CAAC;gBACvE,oEAAoE;gBACpE,WAAW,CAAC,IAAI,CAAC,WAAW,CAAC,KAAK,EAAG,CAAC,CAAC;gBACvC,WAAW,CAAC,CAAC,CAAC,CAAC,YAAY;oBACzB,WAAW,CAAC,CAAC,CAAC,CAAC,YAAY,GAAG,qBAAqB,CAAC;gBACtD,WAAW,CAAC,CAAC,CAAC,CAAC,UAAU;oBACvB,WAAW,CAAC,CAAC,CAAC,CAAC,YAAY,GAAG,qBAAqB,CAAC;gBACtD,WAAW,CAAC,CAAC,CAAC,CAAC,KAAK,GAAG,KAAK,CAAC;aAC9B;iBAAM,IAAI,oBAAoB,GAAG,aAAa,CAAC,EAAE,EAAE;gBAClD,8DAA8D;gBAC9D,YAAY,CAAC,EAAE,IAAI,qBAAqB,GAAG,KAAK,CAAC,UAAU,CAAC,UAAU,CAAC;gBACvE,YAAY,CAAC,EAAE,IAAI,qBAAqB,GAAG,KAAK,CAAC,UAAU,CAAC,UAAU,CAAC;gBACvE,oEAAoE;gBACpE,WAAW,CAAC,OAAO,CAAC,WAAW,CAAC,GAAG,EAAG,CAAC,CAAC;gBACxC,WAAW,CAAC,CAAC,CAAC,CAAC,YAAY;oBACzB,WAAW,CAAC,CAAC,CAAC,CAAC,YAAY,GAAG,qBAAqB,CAAC;gBACtD,WAAW,CAAC,CAAC,CAAC,CAAC,UAAU;oBACvB,WAAW,CAAC,CAAC,CAAC,CAAC,YAAY,GAAG,qBAAqB,CAAC;gBACtD,WAAW,CAAC,CAAC,CAAC,CAAC,KAAK,GAAG,KAAK,CAAC;aAC9B;SACF;aAAM;YACL,MAAM,UAAU,GAAG,KAAK,CAAC,UAAU,CAAC,UAAU,GAAG,qBAAqB,CAAC;YACvE,MAAM,UAAU,GAAG,IAAI,CAAC,IAAI,CAAC,OAAO,GAAG,UAAU,CAAC,CAAC;YACnD,MAAM,cAAc,GAAG,UAAU,GAAG,qBAAqB,CAAC;YAC1D,MAAM,cAAc,GAAG,cAAc,GAAG,qBAAqB,CAAC;YAC9D,MAAM,cAAc,GAAG,cAAc,GAAG,qBAAqB,CAAC;YAE9D,wEAAwE;YACxE,0DAA0D;YAC1D,WAAW,GAAG;gBACZ;oBACE,OAAO,EAAE,WAAW,EAAE,CAAC,CAAC,CAAC,CAAC,OAAO;oBACjC,YAAY,EAAE,cAAc;oBAC5B,UAAU,EAAE,cAAc,GAAG,qBAAqB;oBAClD,KAAK,EAAE,KAAK;iBACb;gBACD;oBACE,OAAO,EAAE,WAAW,EAAE,CAAC,CAAC,CAAC,CAAC,OAAO;oBACjC,YAAY,EAAE,cAAc;oBAC5B,UAAU,EAAE,cAAc,GAAG,qBAAqB;oBAClD,KAAK,EAAE,KAAK;iBACb;gBACD;oBACE,OAAO,EAAE,WAAW,EAAE,CAAC,CAAC,CAAC,CAAC,OAAO;oBACjC,YAAY,EAAE,cAAc;oBAC5B,UAAU,EAAE,cAAc,GAAG,qBAAqB;oBAClD,KAAK,EAAE,KAAK;iBACb;aACF,CAAC;YACF,KAAK,CAAC,WAAW,GAAG,WAAW,CAAC;YAEhC,MAAM,kBAAkB,GAAG,UAAU,GAAG,UAAU,CAAC;YAEnD,YAAY,GAAG;gBACb,EAAE,EAAE,CAAC;gBACL,EAAE,EAAE,kBAAkB,GAAG,UAAU;gBACnC,EAAE,EAAE,KAAK;gBACT,EAAE,EAAE,kBAAkB,GAAG,UAAU,GAAG,CAAC;aACxC,CAAC;SACH;QAED,KAAK,CAAC,YAAY,GAAG,YAAY,CAAC;QAElC,MAAM,YAAY,GAAG,WAAW,CAAC,GAAG,EAAE,CAAC;QACvC,KAAK,MAAM,QAAQ,IAAI,WAAW,EAAE;YAClC,IAAI,QAAQ,CAAC,KAAK;gBAAE,SAAS;YAC7B,IAAI,QAAQ,CAAC,YAAY,GAAG,CAAC,EAAE;gBAC7B,QAAQ,CAAC,OAAO,GAAG,IAAI,CAAC,KAAK,CAAC,SAAS,CAAC,WAAW,CAAC,cAAc,EAAE;oBAClE,GAAG,EAAE,EAAE;iBACR,CAAC,CAAC;gBACH,QAAQ,CAAC,KAAK,GAAG,IAAI,CAAC;gBACtB,SAAS;aACV;YACD,KAAK,CAAC,sBAAsB,CAAC,IAAI,CAAC,KAAK,CAAC,UAAU,EAAE;gBAClD,KAAK,EAAE,KAAK,CAAC,UAAU,CAAC,KAAK,CAAC,KAAK,CACjC,QAAQ,CAAC,YAAY,EACrB,QAAQ,CAAC,UAAU,CACpB;gBACD,UAAU,EAAE,KAAK,CAAC,UAAU,CAAC,UAAU,CAAC,KAAK,CAC3C,QAAQ,CAAC,YAAY,EACrB,QAAQ,CAAC,UAAU,CACpB;aACF,CAAC,CAAC;YACH,IAAI,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,KAAK,KAAK,CAAC,IAAI,IAAI,CAAC,MAAM,CAAC,MAAM,KAAK,CAAC,CAAC,EAAE;gBAC1D,QAAQ,CAAC,OAAO,GAAG,IAAI,CAAC,KAAK,CAAC,SAAS,CAAC,WAAW,CACjD,cAAc,EACd;oBACE,GAAG,EAAE,IAAI,CAAC,OAAO,CAAC,YAAY,CAC5B,CAAC,EACD,CAAC,EACD,IAAI,CAAC,MAAM,CAAC,KAAK,EACjB,IAAI,CAAC,MAAM,CAAC,MAAM,CACnB;iBACF,EACD;oBACE,OAAO,EAAE,IAAI;iBACd,CACF,CAAC;aACH;YACD,QAAQ,CAAC,KAAK,GAAG,IAAI,CAAC;SACvB;QACD,uEAAuE;QAEvE,sBAAsB;QACtB,IAAI,CAAC,SAAS,CAAC,KAAK,EAAE,QAAQ,CAAC,CAAC;IAClC,CAAC;IAEQ,WAAW,CAClB,KAA8B,EAC9B,SAAmB,EACnB,YAA2B,EAC3B,KAAa;QAEb,MAAM,EAAE,KAAK,EAAE,GAAG,IAAI,CAAC;QAEvB,MAAM,EAAE,WAAW,EAAE,KAAK,GAAG,CAAC,EAAE,KAAK,GAAG,CAAC,EAAE,YAAY,EAAE,GAAG,KAAK,CAAC;QAElE,IAAI,CAAC,WAAW,IAAI,CAAC,YAAY;YAAE,OAAO;QAE1C,MAAM,EAAE,CAAC,EAAE,CAAC,EAAE,OAAO,EAAE,OAAO,EAAE,KAAK,EAAE,MAAM,CAAC,WAAW,EAAE,GAAG,KAAK,CAAC,KAAK,CAAC;QAE1E,MAAM,WAAW,GAAG;YAClB,CAAC,EAAE,CAAC;YACJ,CAAC,EAAE,CAAC;YACJ,KAAK,EAAE,OAAO,KAAK,MAAM,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,KAAK;YACzC,MAAM,EAAE,OAAO,KAAK,MAAM,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,KAAK;SAC5C,CAAC;QAEF,MAAM,WAAW,GAAG,aAAa,CAC/B;YACE,CAAC,EAAE,CAAC;YACJ,CAAC,EAAE,CAAC;YACJ,KAAK,EAAE,KAAK,CAAC,OAAO,CAAC,QAAQ;YAC7B,MAAM,EAAE,KAAK,CAAC,OAAO,CAAC,SAAS;SAChC,EACD,WAAW,CACZ,CAAC;QAEF,+BAA+B;QAC/B,4BAA4B;QAC5B,qBAAqB;QACrB,qBAAqB;QACrB,qBAAqB;QACrB,qBAAqB;QACrB,OAAO;QACP,IAAI;QAEJ,YAAY,CAAC,WAAW,EAAE,4BAA4B,CAAC,CAAC;QACxD,YAAY,CAAC,YAAY,EAAE,6BAA6B,CAAC,CAAC;QAE1D,MAAM,kBAAkB,GAAG,YAAY,CAAC,EAAE,GAAG,YAAY,CAAC,EAAE,CAAC;QAC7D,MAAM,QAAQ,GAAG,kBAAkB,GAAG,GAAG,CAAC;QAE1C,MAAM,EAAE,MAAM,EAAE,KAAK,EAAE,GAAG,KAAK,CAAC,KAAK,CAAC;QAEtC,4EAA4E;QAC5E,yBAAyB;QACzB,MAAM,aAAa,GAAG,KAAK,GAAG,2BAA2B,CAAC,KAAK,CAAC,CAAC;QACjE,MAAM,SAAS,GAAG,4BAA4B,CAAC,UAAU,EAAE,aAAa,CAAC,CAAC;QAC1E,IAAI,WAAW,CAAC,CAAC,CAAC,CAAC,KAAK,EAAE;YACxB,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC,OAAO,CAAC;gBAC1B,KAAK,EAAE,aAAa;gBACpB,YAAY;gBACZ,OAAO,EAAE,SAAS;gBAClB,OAAO,EAAE,SAAS;gBAClB,OAAO,EAAE,SAAS;gBAClB,OAAO,EAAE,SAAS;gBAClB,KAAK,EAAE,WAAW,CAAC,CAAC,CAAC,CAAC,OAAO,EAAE,UAAU,EAAE,KAAK,IAAI,CAAC;gBACrD,MAAM,EAAE,WAAW,CAAC,CAAC,CAAC,CAAC,OAAO,EAAE,UAAU,EAAE,MAAM,IAAI,CAAC;gBACvD,OAAO,EAAE,WAAW,CAAC,CAAC,CAAC,CAAC,OAAQ;gBAChC,cAAc,EAAE,EAAE;gBAClB,MAAM,EAAE,IAAI;gBACZ,WAAW,EAAE,IAAI;gBACjB,MAAM;gBACN,EAAE,EAAE,SAAS,CAAC,EAAE;gBAChB,EAAE,EAAE,SAAS,CAAC,EAAE,GAAG,OAAO,GAAG,YAAY,CAAC,EAAE;gBAC5C,EAAE,EAAE,SAAS,CAAC,EAAE;gBAChB,EAAE,EAAE,SAAS,CAAC,EAAE;gBAChB,EAAE,EAAE,SAAS,CAAC,EAAE;gBAChB,EAAE,EAAE,SAAS,CAAC,EAAE;aACjB,CAAC,CAAC;SACJ;QACD,IAAI,WAAW,CAAC,CAAC,CAAC,CAAC,KAAK,EAAE;YACxB,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC,OAAO,CAAC;gBAC1B,KAAK,EAAE,aAAa;gBACpB,YAAY;gBACZ,OAAO,EAAE,SAAS;gBAClB,OAAO,EAAE,SAAS;gBAClB,OAAO,EAAE,SAAS;gBAClB,OAAO,EAAE,SAAS;gBAClB,KAAK,EAAE,WAAW,CAAC,CAAC,CAAC,CAAC,OAAO,EAAE,UAAU,EAAE,KAAK,IAAI,CAAC;gBACrD,MAAM,EAAE,WAAW,CAAC,CAAC,CAAC,CAAC,OAAO,EAAE,UAAU,EAAE,MAAM,IAAI,CAAC;gBACvD,OAAO,EAAE,WAAW,CAAC,CAAC,CAAC,CAAC,OAAQ;gBAChC,cAAc,EAAE,EAAE;gBAClB,MAAM,EAAE,IAAI;gBACZ,WAAW,EAAE,IAAI;gBACjB,MAAM;gBACN,EAAE,EAAE,SAAS,CAAC,EAAE;gBAChB,EAAE,EAAE,SAAS,CAAC,EAAE,GAAG,OAAO,GAAG,YAAY,CAAC,EAAE,GAAG,QAAQ;gBACvD,EAAE,EAAE,SAAS,CAAC,EAAE;gBAChB,EAAE,EAAE,SAAS,CAAC,EAAE;gBAChB,EAAE,EAAE,SAAS,CAAC,EAAE;gBAChB,EAAE,EAAE,SAAS,CAAC,EAAE;aACjB,CAAC,CAAC;SACJ;QACD,IAAI,WAAW,CAAC,CAAC,CAAC,CAAC,KAAK,EAAE;YACxB,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC,OAAO,CAAC;gBAC1B,KAAK,EAAE,aAAa;gBACpB,YAAY;gBACZ,OAAO,EAAE,SAAS;gBAClB,OAAO,EAAE,SAAS;gBAClB,OAAO,EAAE,SAAS;gBAClB,OAAO,EAAE,SAAS;gBAClB,KAAK,EAAE,WAAW,CAAC,CAAC,CAAC,CAAC,OAAO,EAAE,UAAU,EAAE,KAAK,IAAI,CAAC;gBACrD,MAAM,EAAE,WAAW,CAAC,CAAC,CAAC,CAAC,OAAO,EAAE,UAAU,EAAE,MAAM,IAAI,CAAC;gBACvD,OAAO,EAAE,WAAW,CAAC,CAAC,CAAC,CAAC,OAAQ;gBAChC,cAAc,EAAE,EAAE;gBAClB,MAAM,EAAE,IAAI;gBACZ,WAAW,EAAE,IAAI;gBACjB,MAAM;gBACN,EAAE,EAAE,SAAS,CAAC,EAAE;gBAChB,EAAE,EAAE,SAAS,CAAC,EAAE,GAAG,OAAO,GAAG,YAAY,CAAC,EAAE,GAAG,QAAQ,GAAG,QAAQ;gBAClE,EAAE,EAAE,SAAS,CAAC,EAAE;gBAChB,EAAE,EAAE,SAAS,CAAC,EAAE;gBAChB,EAAE,EAAE,SAAS,CAAC,EAAE;gBAChB,EAAE,EAAE,SAAS,CAAC,EAAE;aACjB,CAAC,CAAC;SACJ;QAED,6BAA6B;QAE7B,+BAA+B;QAC/B,8BAA8B;QAC9B,mBAAmB;QACnB,qBAAqB;QACrB,qBAAqB;QACrB,qBAAqB;QACrB,qBAAqB;QACrB,OAAO;QACP,IAAI;QAEJ,+BAA+B;QAC/B,8BAA8B;QAC9B,oBAAoB;QACpB,qBAAqB;QACrB,qBAAqB;QACrB,qBAAqB;QACrB,qBAAqB;QACrB,OAAO;QACP,IAAI;QAEJ,gDAAgD;QAChD,8BAA8B;QAC9B,kBAAkB;QAClB,2BAA2B;QAC3B,qCAAqC;QACrC,mDAAmD;QACnD,uEAAuE;QACvE,OAAO;QACP,IAAI;IACN,CAAC;IACD,sBAAsB;IAEtB;;;;;OAKG;IACO,4BAA4B,CAAC,KAA8B;QACnE,KAAK,CAAC,aAAa,CAAC,KAAK,GAAG,KAAK,CAAC;QAClC,IAAI,CAAC,SAAS,CAAC,KAAK,EAAE,SAAS,CAAC,CAAC;QACjC,IAAI,CAAC,mBAAmB,CAAC,KAAK,CAAC,CAAC;IAClC,CAAC;IAED;;;;;;;;OAQG;IACK,qBAAqB,CAAC,KAA8B;QAC1D,KAAK,CAAC,UAAU,GAAG,SAAS,CAAC;QAC7B,IAAI,CAAC,SAAS,CAAC,KAAK,EAAE,SAAS,CAAC,CAAC;QACjC,IAAI,CAAC,mBAAmB,CAAC,KAAK,CAAC,CAAC;IAClC,CAAC;IAEO,YAAY,CAClB,KAA8B,EAC9B,SAAiB;QAEjB,IAAI,SAAS,KAAK,KAAK,CAAC,QAAQ,EAAE,SAAS,IAAI,CAAC,KAAK,CAAC,QAAQ,EAAE;YAC9D,OAAO;SACR;QACD,KAAK,CAAC,QAAQ,CAAC,MAAM,GAAG,IAAI,CAAC;QAC7B,IAAI,CAAC,mBAAmB,CAAC,KAAK,CAAC,CAAC;IAClC,CAAC;IAEO,eAAe,CACrB,KAA8B,EAC9B,SAAiB,EACjB,KAAY;QAEZ,IAAI,SAAS,KAAK,KAAK,CAAC,QAAQ,EAAE,SAAS,IAAI,CAAC,KAAK,CAAC,QAAQ,EAAE;YAC9D,OAAO;SACR;QAED,2EAA2E;QAC3E,6DAA6D;QAC7D,KAAK,CAAC,QAAQ,CAAC,MAAM,GAAG,IAAI,CAAC;QAE7B,OAAO,CAAC,KAAK,CACX,2CAA2C,KAAK,CAAC,QAAQ,CAAC,SAAS,GAAG,EACtE,KAAK,CACN,CAAC;QACF,IAAI,CAAC,mBAAmB,CAAC,KAAK,CAAC,CAAC;IAClC,CAAC;CACF"}
@@ -36,7 +36,7 @@ export interface Settings {
36
36
  verticalAlign: TextVerticalAlign;
37
37
  offsetY: number | null;
38
38
  maxLines: number;
39
- maxLinesSuffix: string;
39
+ overflowSuffix: string;
40
40
  precision: number;
41
41
  textColor: RGBA;
42
42
  paddingLeft: number;
@@ -119,7 +119,7 @@ export class LightningTextTextureRenderer {
119
119
  suffix = '';
120
120
  break;
121
121
  case 'ellipsis':
122
- suffix = this._settings.maxLinesSuffix;
122
+ suffix = this._settings.overflowSuffix;
123
123
  break;
124
124
  default:
125
125
  suffix = this._settings.textOverflow;
@@ -143,13 +143,13 @@ export class LightningTextTextureRenderer {
143
143
  if (this._settings.maxLines && lines.length > this._settings.maxLines) {
144
144
  const usedLines = lines.slice(0, this._settings.maxLines);
145
145
  let otherLines = null;
146
- if (this._settings.maxLinesSuffix) {
146
+ if (this._settings.overflowSuffix) {
147
147
  // Wrap again with max lines suffix enabled.
148
- const w = this._settings.maxLinesSuffix
149
- ? this.measureText(this._settings.maxLinesSuffix)
148
+ const w = this._settings.overflowSuffix
149
+ ? this.measureText(this._settings.overflowSuffix)
150
150
  : 0;
151
151
  const al = this.wrapText(usedLines[usedLines.length - 1], wordWrapWidth - w, letterSpacing, textIndent);
152
- usedLines[usedLines.length - 1] = `${al.l[0]}${this._settings.maxLinesSuffix}`;
152
+ usedLines[usedLines.length - 1] = `${al.l[0]}${this._settings.overflowSuffix}`;
153
153
  otherLines = [al.l.length > 1 ? al.l[1] : ''];
154
154
  }
155
155
  else {
@@ -461,7 +461,7 @@ export class LightningTextTextureRenderer {
461
461
  verticalAlign: 'top',
462
462
  offsetY: null,
463
463
  maxLines: 0,
464
- maxLinesSuffix: '..',
464
+ overflowSuffix: '...',
465
465
  textColor: [1.0, 1.0, 1.0, 1.0],
466
466
  paddingLeft: 0,
467
467
  paddingRight: 0,
@@ -1 +1 @@
1
- {"version":3,"file":"LightningTextTextureRenderer.js","sourceRoot":"","sources":["../../../../../src/core/text-rendering/renderers/LightningTextTextureRenderer.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"LightningTextTextureRenderer.js","sourceRoot":"","sources":["../../../../../src/core/text-rendering/renderers/LightningTextTextureRenderer.ts"],"names":[],"mappings":"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"}
@@ -1,6 +1,7 @@
1
- import { type Bound, type Rect, type BoundWithValid } from '../../../lib/utils.js';
1
+ import { type BoundWithValid, type RectWithValid } from '../../../lib/utils.js';
2
2
  import { TextRenderer, type TrProps, type TextRendererState, type TrFontProps, type TrPropSetters } from '../TextRenderer.js';
3
3
  import { SdfTrFontFace } from '../../font-face-types/SdfTrFontFace/SdfTrFontFace.js';
4
+ import { type SdfRenderWindow } from './internal/setRenderWindow.js';
4
5
  import type { TrFontFace } from '../../font-face-types/TrFontFace.js';
5
6
  import type { Stage } from '../../../Stage.js';
6
7
  import { BufferCollection } from '../../../renderers/webgl/internal/BufferCollection.js';
@@ -27,8 +28,9 @@ export interface SdfTextRendererState extends TextRendererState {
27
28
  * outside of the renderWindow.
28
29
  */
29
30
  lineCache: LineCacheItem[];
30
- renderWindow: Bound | undefined;
31
- visibleWindow: BoundWithValid;
31
+ renderWindow: SdfRenderWindow;
32
+ elementBounds: BoundWithValid;
33
+ clippingRect: RectWithValid;
32
34
  bufferNumFloats: number;
33
35
  bufferNumQuads: number;
34
36
  vertexBuffer: Float32Array | undefined;
@@ -58,15 +60,8 @@ export declare class SdfTextRenderer extends TextRenderer<SdfTextRendererState>
58
60
  addFontFace(fontFace: TrFontFace): void;
59
61
  createState(props: TrProps): SdfTextRendererState;
60
62
  updateState(state: SdfTextRendererState): void;
61
- renderQuads(state: SdfTextRendererState, transform: Matrix3d, clippingRect: Rect | null, alpha: number): void;
63
+ renderQuads(state: SdfTextRendererState, transform: Matrix3d, clippingRect: Readonly<RectWithValid>, alpha: number): void;
62
64
  resolveFontFace(props: TrFontProps): SdfTrFontFace | undefined;
63
- /**
64
- * Invalidate the visible window stored in the state. This will cause a new
65
- * visible window to be calculated on the next update.
66
- *
67
- * @param state
68
- */
69
- protected invalidateVisibleWindowCache(state: SdfTextRendererState): void;
70
65
  /**
71
66
  * Invalidate the layout cache stored in the state. This will cause the text
72
67
  * to be re-layed out on the next update.
@@ -77,4 +72,6 @@ export declare class SdfTextRenderer extends TextRenderer<SdfTextRendererState>
77
72
  * @param state
78
73
  */
79
74
  protected invalidateLayoutCache(state: SdfTextRendererState): void;
75
+ protected setElementBoundsX(state: SdfTextRendererState): void;
76
+ protected setElementBoundsY(state: SdfTextRendererState): void;
80
77
  }
@@ -16,26 +16,27 @@
16
16
  * See the License for the specific language governing permissions and
17
17
  * limitations under the License.
18
18
  */
19
- import { intersectBound, createBound, } from '../../../lib/utils.js';
19
+ import { createBound, intersectRect, copyRect, boundsOverlap, convertBoundToRect, } from '../../../lib/utils.js';
20
20
  import { TextRenderer, } from '../TextRenderer.js';
21
21
  import { SdfTrFontFace } from '../../font-face-types/SdfTrFontFace/SdfTrFontFace.js';
22
22
  import { FLOATS_PER_GLYPH } from './internal/constants.js';
23
23
  import { getStartConditions } from './internal/getStartConditions.js';
24
24
  import { layoutText } from './internal/layoutText.js';
25
- import { makeRenderWindow } from './internal/makeRenderWindow.js';
25
+ import { setRenderWindow, } from './internal/setRenderWindow.js';
26
26
  import { TrFontManager } from '../../TrFontManager.js';
27
27
  import { assertTruthy, mergeColorAlpha } from '../../../../utils.js';
28
28
  import { WebGlCoreRenderOp } from '../../../renderers/webgl/WebGlCoreRenderOp.js';
29
29
  import { BufferCollection } from '../../../renderers/webgl/internal/BufferCollection.js';
30
30
  import { EventEmitter } from '../../../../common/EventEmitter.js';
31
31
  /**
32
- * Ephemeral bounds object used for intersection calculations
33
- *
34
- * @remarks
35
- * Used to avoid creating a new object every time we need to intersect
36
- * element bounds.
32
+ * Ephemeral rect object used for calculations
37
33
  */
38
- const tmpElementBounds = createBound(0, 0, 0, 0);
34
+ const tmpRect = {
35
+ x: 0,
36
+ y: 0,
37
+ width: 0,
38
+ height: 0,
39
+ };
39
40
  /**
40
41
  * Singleton class for rendering text using signed distance fields.
41
42
  *
@@ -100,11 +101,27 @@ export class SdfTextRenderer extends TextRenderer {
100
101
  },
101
102
  x: (state, value) => {
102
103
  state.props.x = value;
103
- this.invalidateVisibleWindowCache(state);
104
+ if (state.elementBounds.valid) {
105
+ this.setElementBoundsX(state);
106
+ // Only schedule an update if the text is not already rendered
107
+ // (renderWindow is invalid) and the element possibly overlaps the screen
108
+ // This is to avoid unnecessary updates when we know text is off-screen
109
+ if (!state.renderWindow.valid &&
110
+ boundsOverlap(state.elementBounds, this.rendererBounds)) {
111
+ this.scheduleUpdateState(state);
112
+ }
113
+ }
104
114
  },
105
115
  y: (state, value) => {
106
116
  state.props.y = value;
107
- this.invalidateVisibleWindowCache(state);
117
+ if (state.elementBounds.valid) {
118
+ this.setElementBoundsY(state);
119
+ // See x() for explanation
120
+ if (!state.renderWindow.valid &&
121
+ boundsOverlap(state.elementBounds, this.rendererBounds)) {
122
+ this.scheduleUpdateState(state);
123
+ }
124
+ }
108
125
  },
109
126
  contain: (state, value) => {
110
127
  state.props.contain = value;
@@ -136,6 +153,26 @@ export class SdfTextRenderer extends TextRenderer {
136
153
  state.props.letterSpacing = value;
137
154
  this.invalidateLayoutCache(state);
138
155
  },
156
+ lineHeight: (state, value) => {
157
+ state.props.lineHeight = value;
158
+ this.invalidateLayoutCache(state);
159
+ },
160
+ maxLines: (state, value) => {
161
+ state.props.maxLines = value;
162
+ this.invalidateLayoutCache(state);
163
+ },
164
+ textBaseline: (state, value) => {
165
+ state.props.textBaseline = value;
166
+ this.invalidateLayoutCache(state);
167
+ },
168
+ verticalAlign: (state, value) => {
169
+ state.props.verticalAlign = value;
170
+ this.invalidateLayoutCache(state);
171
+ },
172
+ overflowSuffix: (state, value) => {
173
+ state.props.overflowSuffix = value;
174
+ this.invalidateLayoutCache(state);
175
+ },
139
176
  debug: (state, value) => {
140
177
  state.props.debug = value;
141
178
  },
@@ -182,14 +219,37 @@ export class SdfTextRenderer extends TextRenderer {
182
219
  emitter: new EventEmitter(),
183
220
  lineCache: [],
184
221
  forceFullLayoutCalc: false,
185
- renderWindow: undefined,
186
- visibleWindow: {
222
+ renderWindow: {
223
+ screen: {
224
+ x1: 0,
225
+ y1: 0,
226
+ x2: 0,
227
+ y2: 0,
228
+ },
229
+ sdf: {
230
+ x1: 0,
231
+ y1: 0,
232
+ x2: 0,
233
+ y2: 0,
234
+ },
235
+ firstLineIdx: 0,
236
+ numLines: 0,
237
+ valid: false,
238
+ },
239
+ elementBounds: {
187
240
  x1: 0,
188
241
  y1: 0,
189
242
  x2: 0,
190
243
  y2: 0,
191
244
  valid: false,
192
245
  },
246
+ clippingRect: {
247
+ x: 0,
248
+ y: 0,
249
+ width: 0,
250
+ height: 0,
251
+ valid: false,
252
+ },
193
253
  bufferNumFloats: 0,
194
254
  bufferNumQuads: 0,
195
255
  vertexBuffer: undefined,
@@ -239,17 +299,21 @@ export class SdfTextRenderer extends TextRenderer {
239
299
  }
240
300
  // If the font is loaded then so should the data
241
301
  assertTruthy(trFontFace.data, 'Font face data should be loaded');
242
- const { text, fontSize, x, y, contain, width, height, scrollable } = state.props;
302
+ const { text, fontSize, x, y, contain, width, height, lineHeight, verticalAlign, scrollable, overflowSuffix, maxLines, } = state.props;
243
303
  // scrollY only has an effect when contain === 'both' and scrollable === true
244
304
  const scrollY = contain === 'both' && scrollable ? state.props.scrollY : 0;
245
- let { renderWindow } = state;
246
- // Needed in renderWindow calculation
247
- const sdfLineHeight = trFontFace.data.info.size;
305
+ const { renderWindow } = state;
306
+ /**
307
+ * The font size of the SDF font face (the basis for SDF space units)
308
+ */
309
+ const sdfFontSize = trFontFace.data.info.size;
248
310
  /**
249
- * Divide screen space points by this to get the SDF space points
250
- * Mulitple SDF space points by this to get screen space points
311
+ * Divide screen space units by this to get the SDF space units
312
+ * Mulitple SDF space units by this to get screen space units
251
313
  */
252
- const fontSizeRatio = fontSize / sdfLineHeight;
314
+ const fontSizeRatio = fontSize / sdfFontSize;
315
+ // Needed in renderWindow calculation
316
+ const sdfLineHeight = lineHeight / fontSizeRatio;
253
317
  state.distanceRange =
254
318
  fontSizeRatio * trFontFace.data.distanceField.distanceRange;
255
319
  // Allocate buffers if needed
@@ -258,40 +322,40 @@ export class SdfTextRenderer extends TextRenderer {
258
322
  if (!vertexBuffer || vertexBuffer.length < neededLength) {
259
323
  vertexBuffer = new Float32Array(neededLength * 2);
260
324
  }
261
- const visibleWindow = state.visibleWindow;
262
- // If the visibleWindow is not valid, calculate it
263
- if (!visibleWindow.valid) {
264
- // Figure out whats actually in the bounds of the renderer/canvas (visibleWindow)
265
- const elementBounds = createBound(x, y, contain !== 'none' ? x + width : Infinity, contain === 'both' ? y + height : Infinity, tmpElementBounds);
266
- /**
267
- * Area that is visible on the screen.
268
- */
269
- intersectBound(this.rendererBounds, elementBounds, state.visibleWindow);
270
- visibleWindow.valid = true;
325
+ const elementBounds = state.elementBounds;
326
+ if (!elementBounds.valid) {
327
+ this.setElementBoundsX(state);
328
+ this.setElementBoundsY(state);
329
+ elementBounds.valid = true;
271
330
  }
272
331
  // Return early if we're still viewing inside the established render window
273
332
  // No need to re-render what we've already rendered
274
333
  // (Only if there's an established renderWindow and we're not suppressing early exit)
275
- if (!forceFullLayoutCalc && renderWindow) {
276
- if (x + renderWindow.x1 <= visibleWindow.x1 &&
277
- x + renderWindow.x2 >= visibleWindow.x2 &&
278
- y - scrollY + renderWindow.y1 <= visibleWindow.y1 &&
279
- y - scrollY + renderWindow.y2 >= visibleWindow.y2) {
334
+ if (!forceFullLayoutCalc && renderWindow.valid) {
335
+ const rwScreen = renderWindow.screen;
336
+ if (x + rwScreen.x1 <= elementBounds.x1 &&
337
+ x + rwScreen.x2 >= elementBounds.x2 &&
338
+ y - scrollY + rwScreen.y1 <= elementBounds.y1 &&
339
+ y - scrollY + rwScreen.y2 >= elementBounds.y2) {
280
340
  this.setStatus(state, 'loaded');
281
341
  return;
282
342
  }
283
- // Otherwise clear the renderWindow so it can be redone
284
- renderWindow = state.renderWindow = undefined;
343
+ // Otherwise invalidate the renderWindow so it can be redone
344
+ renderWindow.valid = false;
285
345
  this.setStatus(state, 'loading');
286
346
  }
287
347
  const { offsetY, textAlign } = state.props;
288
348
  // Create a new renderWindow if needed
289
- if (!renderWindow) {
290
- const visibleWindowHeight = visibleWindow.y2 - visibleWindow.y1;
291
- const maxLinesPerCanvasPage = Math.ceil(visibleWindowHeight / sdfLineHeight);
292
- renderWindow = makeRenderWindow(x, y, scrollY, sdfLineHeight, maxLinesPerCanvasPage, visibleWindow);
349
+ if (!renderWindow.valid) {
350
+ const isPossiblyOnScreen = boundsOverlap(elementBounds, this.rendererBounds);
351
+ if (!isPossiblyOnScreen) {
352
+ // If the element is not possibly on screen, we can skip the layout and rendering completely
353
+ return;
354
+ }
355
+ setRenderWindow(renderWindow, x, y, scrollY, lineHeight, contain === 'both' ? elementBounds.y2 - elementBounds.y1 : 0, elementBounds, fontSizeRatio);
356
+ // console.log('newRenderWindow', renderWindow);
293
357
  }
294
- const start = getStartConditions(fontSize, offsetY, fontSizeRatio, sdfLineHeight, renderWindow, lineCache, textH);
358
+ const start = getStartConditions(sdfFontSize, sdfLineHeight, lineHeight, verticalAlign, offsetY, fontSizeRatio, renderWindow, lineCache, textH);
295
359
  if (!start) {
296
360
  // Nothing to render, return early, but still mark as loaded (since the text is just scrolled
297
361
  // out of view)
@@ -299,7 +363,7 @@ export class SdfTextRenderer extends TextRenderer {
299
363
  return;
300
364
  }
301
365
  const { letterSpacing } = state.props;
302
- const out2 = layoutText(start.lineIndex, start.x, start.y, text, textAlign, width, height, fontSize, letterSpacing, vertexBuffer, contain, lineCache, renderWindow, trFontFace, forceFullLayoutCalc, scrollable);
366
+ const out2 = layoutText(start.lineIndex, start.sdfX, start.sdfY, text, textAlign, width, height, fontSize, lineHeight, letterSpacing, vertexBuffer, contain, lineCache, renderWindow.sdf, trFontFace, forceFullLayoutCalc, scrollable, overflowSuffix, maxLines);
303
367
  state.bufferUploaded = false;
304
368
  state.bufferNumFloats = out2.bufferNumFloats;
305
369
  state.bufferNumQuads = out2.bufferNumQuads;
@@ -323,19 +387,16 @@ export class SdfTextRenderer extends TextRenderer {
323
387
  // Nothing to draw
324
388
  return;
325
389
  }
326
- const drawStartTime = performance.now();
327
- const { sdfShader } = this;
328
390
  const { renderer } = this.stage;
329
- const { appWidth, appHeight } = this.stage.options;
330
391
  const { fontSize, color, contain, scrollable, zIndex, debug } = state.props;
331
392
  // scrollY only has an effect when contain === 'both' and scrollable === true
332
393
  const scrollY = contain === 'both' && scrollable ? state.props.scrollY : 0;
333
- const { textW = 0, textH = 0, distanceRange, vertexBuffer, bufferUploaded, trFontFace, } = state;
394
+ const { textW = 0, textH = 0, distanceRange, vertexBuffer, bufferUploaded, trFontFace, elementBounds, } = state;
334
395
  let { webGlBuffers } = state;
335
396
  if (!webGlBuffers) {
336
- const gl = renderer.gl;
397
+ const glw = renderer.glw;
337
398
  const stride = 4 * Float32Array.BYTES_PER_ELEMENT;
338
- const webGlBuffer = gl.createBuffer();
399
+ const webGlBuffer = glw.createBuffer();
339
400
  assertTruthy(webGlBuffer);
340
401
  state.webGlBuffers = new BufferCollection([
341
402
  {
@@ -344,7 +405,7 @@ export class SdfTextRenderer extends TextRenderer {
344
405
  a_position: {
345
406
  name: 'a_position',
346
407
  size: 2,
347
- type: gl.FLOAT,
408
+ type: glw.FLOAT,
348
409
  normalized: false,
349
410
  stride,
350
411
  offset: 0, // start at the beginning of the buffer
@@ -352,7 +413,7 @@ export class SdfTextRenderer extends TextRenderer {
352
413
  a_textureCoordinate: {
353
414
  name: 'a_textureCoordinate',
354
415
  size: 2,
355
- type: gl.FLOAT,
416
+ type: glw.FLOAT,
356
417
  normalized: false,
357
418
  stride,
358
419
  offset: 2 * Float32Array.BYTES_PER_ELEMENT,
@@ -365,14 +426,25 @@ export class SdfTextRenderer extends TextRenderer {
365
426
  webGlBuffers = state.webGlBuffers;
366
427
  }
367
428
  if (!bufferUploaded) {
368
- const gl = renderer.gl;
429
+ const glw = renderer.glw;
369
430
  const buffer = webGlBuffers?.getBuffer('a_textureCoordinate') ?? null;
370
- gl.bindBuffer(gl.ARRAY_BUFFER, buffer);
371
- gl.bufferData(gl.ARRAY_BUFFER, vertexBuffer, gl.STATIC_DRAW);
431
+ glw.arrayBufferData(buffer, vertexBuffer, glw.STATIC_DRAW);
372
432
  state.bufferUploaded = true;
373
433
  }
374
434
  assertTruthy(trFontFace);
375
- const renderOp = new WebGlCoreRenderOp(renderer.gl, renderer.options, webGlBuffers, this.sdfShader, {
435
+ if (scrollable && contain === 'both') {
436
+ assertTruthy(elementBounds.valid);
437
+ const elementRect = convertBoundToRect(elementBounds, tmpRect);
438
+ if (clippingRect.valid) {
439
+ state.clippingRect.valid = true;
440
+ clippingRect = intersectRect(clippingRect, elementRect, state.clippingRect);
441
+ }
442
+ else {
443
+ state.clippingRect.valid = true;
444
+ clippingRect = copyRect(elementRect, state.clippingRect);
445
+ }
446
+ }
447
+ const renderOp = new WebGlCoreRenderOp(renderer.glw, renderer.options, webGlBuffers, this.sdfShader, {
376
448
  transform: transform.data,
377
449
  // IMPORTANT: The SDF Shader expects the color NOT to be premultiplied
378
450
  // for the best blending results. Which is why we use `mergeColorAlpha`
@@ -390,21 +462,6 @@ export class SdfTextRenderer extends TextRenderer {
390
462
  renderOp.length = state.bufferNumFloats;
391
463
  renderOp.numQuads = state.bufferNumQuads;
392
464
  renderer.addRenderOp(renderOp);
393
- // const elementRect = {
394
- // x: x,
395
- // y: y,
396
- // w: contain !== 'none' ? width : textW,
397
- // h: contain === 'both' ? height : textH,
398
- // };
399
- // const visibleRect = intersectRect(
400
- // {
401
- // x: 0,
402
- // y: 0,
403
- // w: renderer.w,
404
- // h: renderer.h,
405
- // },
406
- // elementRect,
407
- // );
408
465
  // if (!debug.disableScissor) {
409
466
  // renderer.enableScissor(
410
467
  // visibleRect.x,
@@ -456,16 +513,6 @@ export class SdfTextRenderer extends TextRenderer {
456
513
  resolveFontFace(props) {
457
514
  return TrFontManager.resolveFontFace([this.msdfFontFamilies, this.ssdfFontFamilies], props);
458
515
  }
459
- /**
460
- * Invalidate the visible window stored in the state. This will cause a new
461
- * visible window to be calculated on the next update.
462
- *
463
- * @param state
464
- */
465
- invalidateVisibleWindowCache(state) {
466
- state.visibleWindow.valid = false;
467
- this.scheduleUpdateState(state);
468
- }
469
516
  /**
470
517
  * Invalidate the layout cache stored in the state. This will cause the text
471
518
  * to be re-layed out on the next update.
@@ -476,13 +523,25 @@ export class SdfTextRenderer extends TextRenderer {
476
523
  * @param state
477
524
  */
478
525
  invalidateLayoutCache(state) {
479
- state.visibleWindow.valid = false;
480
- state.renderWindow = undefined;
526
+ state.renderWindow.valid = false;
527
+ state.elementBounds.valid = false;
481
528
  state.textH = undefined;
482
529
  state.textW = undefined;
483
530
  state.lineCache = [];
484
531
  this.setStatus(state, 'loading');
485
532
  this.scheduleUpdateState(state);
486
533
  }
534
+ setElementBoundsX(state) {
535
+ const { x, contain, width } = state.props;
536
+ const { elementBounds } = state;
537
+ elementBounds.x1 = x;
538
+ elementBounds.x2 = contain !== 'none' ? x + width : Infinity;
539
+ }
540
+ setElementBoundsY(state) {
541
+ const { y, contain, height } = state.props;
542
+ const { elementBounds } = state;
543
+ elementBounds.y1 = y;
544
+ elementBounds.y2 = contain === 'both' ? y + height : Infinity;
545
+ }
487
546
  }
488
547
  //# sourceMappingURL=SdfTextRenderer.js.map