@lightningjs/renderer 0.7.5 → 0.8.0

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 (252) hide show
  1. package/LICENSE +202 -202
  2. package/NOTICE +3 -3
  3. package/README.md +233 -221
  4. package/dist/src/common/CommonTypes.d.ts +12 -0
  5. package/dist/src/core/CoreNode.d.ts +83 -9
  6. package/dist/src/core/CoreNode.js +232 -44
  7. package/dist/src/core/CoreNode.js.map +1 -1
  8. package/dist/src/core/CoreTextNode.d.ts +6 -1
  9. package/dist/src/core/CoreTextNode.js +33 -20
  10. package/dist/src/core/CoreTextNode.js.map +1 -1
  11. package/dist/src/core/CoreTextureManager.d.ts +3 -1
  12. package/dist/src/core/CoreTextureManager.js +11 -2
  13. package/dist/src/core/CoreTextureManager.js.map +1 -1
  14. package/dist/src/core/Stage.d.ts +6 -0
  15. package/dist/src/core/Stage.js +16 -1
  16. package/dist/src/core/Stage.js.map +1 -1
  17. package/dist/src/core/TextureMemoryManager.d.ts +12 -0
  18. package/dist/src/core/TextureMemoryManager.js +42 -0
  19. package/dist/src/core/TextureMemoryManager.js.map +1 -0
  20. package/dist/src/core/lib/ImageWorker.d.ts +0 -1
  21. package/dist/src/core/lib/ImageWorker.js +55 -40
  22. package/dist/src/core/lib/ImageWorker.js.map +1 -1
  23. package/dist/src/core/lib/RenderCoords.d.ts +13 -0
  24. package/dist/src/core/lib/RenderCoords.js +63 -0
  25. package/dist/src/core/lib/RenderCoords.js.map +1 -0
  26. package/dist/src/core/lib/WebGlContext.d.ts +414 -0
  27. package/dist/src/core/lib/WebGlContext.js +640 -0
  28. package/dist/src/core/lib/WebGlContext.js.map +1 -0
  29. package/dist/src/core/lib/utils.d.ts +1 -0
  30. package/dist/src/core/lib/utils.js +6 -0
  31. package/dist/src/core/lib/utils.js.map +1 -1
  32. package/dist/src/core/platform.js +8 -0
  33. package/dist/src/core/platform.js.map +1 -1
  34. package/dist/src/core/renderers/CoreContextTexture.d.ts +5 -1
  35. package/dist/src/core/renderers/CoreContextTexture.js +3 -1
  36. package/dist/src/core/renderers/CoreContextTexture.js.map +1 -1
  37. package/dist/src/core/renderers/webgl/WebGlCoreCtxSubTexture.d.ts +2 -1
  38. package/dist/src/core/renderers/webgl/WebGlCoreCtxSubTexture.js +2 -2
  39. package/dist/src/core/renderers/webgl/WebGlCoreCtxSubTexture.js.map +1 -1
  40. package/dist/src/core/renderers/webgl/WebGlCoreCtxTexture.d.ts +3 -1
  41. package/dist/src/core/renderers/webgl/WebGlCoreCtxTexture.js +26 -6
  42. package/dist/src/core/renderers/webgl/WebGlCoreCtxTexture.js.map +1 -1
  43. package/dist/src/core/renderers/webgl/WebGlCoreRenderer.d.ts +3 -0
  44. package/dist/src/core/renderers/webgl/WebGlCoreRenderer.js +4 -2
  45. package/dist/src/core/renderers/webgl/WebGlCoreRenderer.js.map +1 -1
  46. package/dist/src/core/renderers/webgl/internal/RendererUtils.d.ts +9 -0
  47. package/dist/src/core/renderers/webgl/internal/RendererUtils.js +14 -0
  48. package/dist/src/core/renderers/webgl/internal/RendererUtils.js.map +1 -1
  49. package/dist/src/core/renderers/webgl/shaders/DefaultShader.js +47 -47
  50. package/dist/src/core/renderers/webgl/shaders/DefaultShaderBatched.js +61 -61
  51. package/dist/src/core/renderers/webgl/shaders/DynamicShader.js +93 -93
  52. package/dist/src/core/renderers/webgl/shaders/RoundedRectangle.js +63 -63
  53. package/dist/src/core/renderers/webgl/shaders/SdfShader.js +49 -49
  54. package/dist/src/core/renderers/webgl/shaders/effects/BorderBottomEffect.js +15 -15
  55. package/dist/src/core/renderers/webgl/shaders/effects/BorderEffect.js +5 -5
  56. package/dist/src/core/renderers/webgl/shaders/effects/BorderLeftEffect.js +15 -15
  57. package/dist/src/core/renderers/webgl/shaders/effects/BorderRightEffect.js +15 -15
  58. package/dist/src/core/renderers/webgl/shaders/effects/BorderTopEffect.js +15 -15
  59. package/dist/src/core/renderers/webgl/shaders/effects/FadeOutEffect.js +42 -42
  60. package/dist/src/core/renderers/webgl/shaders/effects/GlitchEffect.js +44 -44
  61. package/dist/src/core/renderers/webgl/shaders/effects/GrayscaleEffect.js +3 -3
  62. package/dist/src/core/renderers/webgl/shaders/effects/LinearGradientEffect.js +44 -57
  63. package/dist/src/core/renderers/webgl/shaders/effects/LinearGradientEffect.js.map +1 -1
  64. package/dist/src/core/renderers/webgl/shaders/effects/RadialGradientEffect.d.ts +1 -0
  65. package/dist/src/core/renderers/webgl/shaders/effects/RadialGradientEffect.js +33 -39
  66. package/dist/src/core/renderers/webgl/shaders/effects/RadialGradientEffect.js.map +1 -1
  67. package/dist/src/core/renderers/webgl/shaders/effects/RadialProgressEffect.js +37 -37
  68. package/dist/src/core/renderers/webgl/shaders/effects/RadiusEffect.js +19 -19
  69. package/dist/src/core/scene/Scene.d.ts +59 -0
  70. package/dist/src/core/scene/Scene.js +106 -0
  71. package/dist/src/core/scene/Scene.js.map +1 -0
  72. package/dist/src/core/text-rendering/TrFontManager.js +30 -25
  73. package/dist/src/core/text-rendering/TrFontManager.js.map +1 -1
  74. package/dist/src/core/text-rendering/renderers/CanvasTextRenderer.d.ts +2 -0
  75. package/dist/src/core/text-rendering/renderers/CanvasTextRenderer.js +26 -2
  76. package/dist/src/core/text-rendering/renderers/CanvasTextRenderer.js.map +1 -1
  77. package/dist/src/core/text-rendering/renderers/SdfTextRenderer/SdfTextRenderer.d.ts +8 -0
  78. package/dist/src/core/text-rendering/renderers/SdfTextRenderer/SdfTextRenderer.js +34 -6
  79. package/dist/src/core/text-rendering/renderers/SdfTextRenderer/SdfTextRenderer.js.map +1 -1
  80. package/dist/src/core/text-rendering/renderers/SdfTextRenderer/internal/findNearestMultiple.d.ts +8 -0
  81. package/dist/src/core/text-rendering/renderers/SdfTextRenderer/internal/findNearestMultiple.js +29 -0
  82. package/dist/src/core/text-rendering/renderers/SdfTextRenderer/internal/findNearestMultiple.js.map +1 -0
  83. package/dist/src/core/text-rendering/renderers/SdfTextRenderer/internal/layoutText.js +1 -3
  84. package/dist/src/core/text-rendering/renderers/SdfTextRenderer/internal/layoutText.js.map +1 -1
  85. package/dist/src/core/text-rendering/renderers/SdfTextRenderer/internal/layoutText2/SdfBufferHelper.d.ts +19 -0
  86. package/dist/src/core/text-rendering/renderers/SdfTextRenderer/internal/layoutText2/SdfBufferHelper.js +84 -0
  87. package/dist/src/core/text-rendering/renderers/SdfTextRenderer/internal/layoutText2/SdfBufferHelper.js.map +1 -0
  88. package/dist/src/core/text-rendering/renderers/SdfTextRenderer/internal/layoutText2/layoutLine.d.ts +8 -0
  89. package/dist/src/core/text-rendering/renderers/SdfTextRenderer/internal/layoutText2/layoutLine.js +40 -0
  90. package/dist/src/core/text-rendering/renderers/SdfTextRenderer/internal/layoutText2/layoutLine.js.map +1 -0
  91. package/dist/src/core/text-rendering/renderers/SdfTextRenderer/internal/layoutText2/layoutText2.d.ts +2 -0
  92. package/dist/src/core/text-rendering/renderers/SdfTextRenderer/internal/layoutText2/layoutText2.js +41 -0
  93. package/dist/src/core/text-rendering/renderers/SdfTextRenderer/internal/layoutText2/layoutText2.js.map +1 -0
  94. package/dist/src/core/text-rendering/renderers/SdfTextRenderer/internal/layoutText2/utils.d.ts +1 -0
  95. package/dist/src/core/text-rendering/renderers/SdfTextRenderer/internal/layoutText2/utils.js +4 -0
  96. package/dist/src/core/text-rendering/renderers/SdfTextRenderer/internal/layoutText2/utils.js.map +1 -0
  97. package/dist/src/core/text-rendering/renderers/SdfTextRenderer/internal/layoutText2.d.ts +1 -0
  98. package/dist/src/core/text-rendering/renderers/SdfTextRenderer/internal/layoutText2.js +2 -0
  99. package/dist/src/core/text-rendering/renderers/SdfTextRenderer/internal/layoutText2.js.map +1 -0
  100. package/dist/src/core/text-rendering/renderers/SdfTextRenderer/internal/makeRenderWindow.d.ts +20 -0
  101. package/dist/src/core/text-rendering/renderers/SdfTextRenderer/internal/makeRenderWindow.js +55 -0
  102. package/dist/src/core/text-rendering/renderers/SdfTextRenderer/internal/makeRenderWindow.js.map +1 -0
  103. package/dist/src/core/text-rendering/renderers/SdfTextRenderer/internal/roundUpToMultiple.d.ts +9 -0
  104. package/dist/src/core/text-rendering/renderers/SdfTextRenderer/internal/roundUpToMultiple.js +32 -0
  105. package/dist/src/core/text-rendering/renderers/SdfTextRenderer/internal/roundUpToMultiple.js.map +1 -0
  106. package/dist/src/core/text-rendering/renderers/TextRenderer.d.ts +31 -0
  107. package/dist/src/core/text-rendering/renderers/TextRenderer.js +26 -0
  108. package/dist/src/core/text-rendering/renderers/TextRenderer.js.map +1 -1
  109. package/dist/src/core/textures/ImageTexture.js +16 -2
  110. package/dist/src/core/textures/ImageTexture.js.map +1 -1
  111. package/dist/src/core/textures/Texture.d.ts +27 -2
  112. package/dist/src/core/textures/Texture.js +30 -1
  113. package/dist/src/core/textures/Texture.js.map +1 -1
  114. package/dist/src/core/utils.d.ts +1 -1
  115. package/dist/src/main-api/ICoreDriver.d.ts +1 -0
  116. package/dist/src/main-api/Inspector.js +2 -1
  117. package/dist/src/main-api/Inspector.js.map +1 -1
  118. package/dist/src/main-api/RendererMain.d.ts +15 -0
  119. package/dist/src/main-api/RendererMain.js +7 -1
  120. package/dist/src/main-api/RendererMain.js.map +1 -1
  121. package/dist/src/render-drivers/main/MainCoreDriver.d.ts +1 -0
  122. package/dist/src/render-drivers/main/MainCoreDriver.js +8 -0
  123. package/dist/src/render-drivers/main/MainCoreDriver.js.map +1 -1
  124. package/dist/src/render-drivers/main/MainOnlyNode.d.ts +5 -0
  125. package/dist/src/render-drivers/main/MainOnlyNode.js +26 -0
  126. package/dist/src/render-drivers/main/MainOnlyNode.js.map +1 -1
  127. package/dist/src/render-drivers/threadx/ThreadXCoreDriver.js +2 -0
  128. package/dist/src/render-drivers/threadx/ThreadXCoreDriver.js.map +1 -1
  129. package/dist/src/render-drivers/threadx/ThreadXRendererMessage.d.ts +2 -0
  130. package/dist/src/render-drivers/threadx/ThreadXRendererMessage.js.map +1 -1
  131. package/dist/src/render-drivers/threadx/worker/ThreadXRendererNode.js +3 -0
  132. package/dist/src/render-drivers/threadx/worker/ThreadXRendererNode.js.map +1 -1
  133. package/dist/src/render-drivers/threadx/worker/renderer.js +2 -0
  134. package/dist/src/render-drivers/threadx/worker/renderer.js.map +1 -1
  135. package/dist/src/utils.d.ts +6 -0
  136. package/dist/src/utils.js +9 -1
  137. package/dist/src/utils.js.map +1 -1
  138. package/dist/tsconfig.dist.tsbuildinfo +1 -1
  139. package/exports/core-api.ts +102 -102
  140. package/exports/main-api.ts +60 -60
  141. package/exports/utils.ts +41 -41
  142. package/package.json +1 -1
  143. package/scripts/please-use-pnpm.js +13 -13
  144. package/src/common/CommonTypes.ts +132 -113
  145. package/src/common/EventEmitter.ts +77 -77
  146. package/src/common/IAnimationController.ts +29 -29
  147. package/src/core/CoreExtension.ts +32 -32
  148. package/src/core/CoreNode.ts +1199 -955
  149. package/src/core/CoreShaderManager.ts +243 -243
  150. package/src/core/CoreTextNode.ts +400 -391
  151. package/src/core/CoreTextureManager.ts +339 -326
  152. package/src/core/Stage.ts +375 -354
  153. package/src/core/TextureMemoryManager.ts +66 -0
  154. package/src/core/animations/AnimationManager.ts +38 -38
  155. package/src/core/animations/CoreAnimation.ts +181 -181
  156. package/src/core/animations/CoreAnimationController.ts +148 -148
  157. package/src/core/lib/ContextSpy.ts +41 -41
  158. package/src/core/lib/ImageWorker.ts +149 -135
  159. package/src/core/lib/Matrix3d.ts +290 -290
  160. package/src/core/lib/RenderCoords.ts +86 -0
  161. package/src/core/lib/WebGlContextWrapper.ts +992 -992
  162. package/src/core/lib/textureCompression.ts +152 -152
  163. package/src/core/lib/utils.ts +250 -241
  164. package/src/core/platform.ts +54 -46
  165. package/src/core/renderers/CoreContextTexture.ts +35 -30
  166. package/src/core/renderers/CoreRenderOp.ts +22 -22
  167. package/src/core/renderers/CoreRenderer.ts +63 -63
  168. package/src/core/renderers/CoreShader.ts +41 -41
  169. package/src/core/renderers/webgl/WebGlCoreCtxSubTexture.ts +42 -37
  170. package/src/core/renderers/webgl/WebGlCoreCtxTexture.ts +261 -230
  171. package/src/core/renderers/webgl/WebGlCoreRenderOp.ts +107 -107
  172. package/src/core/renderers/webgl/WebGlCoreRenderer.ts +528 -520
  173. package/src/core/renderers/webgl/WebGlCoreShader.ts +337 -337
  174. package/src/core/renderers/webgl/internal/BufferCollection.ts +54 -54
  175. package/src/core/renderers/webgl/internal/RendererUtils.ts +148 -131
  176. package/src/core/renderers/webgl/internal/ShaderUtils.ts +136 -136
  177. package/src/core/renderers/webgl/internal/WebGlUtils.ts +35 -35
  178. package/src/core/renderers/webgl/shaders/DefaultShader.ts +95 -95
  179. package/src/core/renderers/webgl/shaders/DefaultShaderBatched.ts +132 -132
  180. package/src/core/renderers/webgl/shaders/DynamicShader.ts +474 -474
  181. package/src/core/renderers/webgl/shaders/RoundedRectangle.ts +161 -161
  182. package/src/core/renderers/webgl/shaders/SdfShader.ts +174 -174
  183. package/src/core/renderers/webgl/shaders/effects/BorderBottomEffect.ts +101 -101
  184. package/src/core/renderers/webgl/shaders/effects/BorderEffect.ts +86 -86
  185. package/src/core/renderers/webgl/shaders/effects/BorderLeftEffect.ts +101 -101
  186. package/src/core/renderers/webgl/shaders/effects/BorderRightEffect.ts +101 -101
  187. package/src/core/renderers/webgl/shaders/effects/BorderTopEffect.ts +101 -101
  188. package/src/core/renderers/webgl/shaders/effects/EffectUtils.ts +33 -33
  189. package/src/core/renderers/webgl/shaders/effects/FadeOutEffect.ts +135 -135
  190. package/src/core/renderers/webgl/shaders/effects/GlitchEffect.ts +145 -145
  191. package/src/core/renderers/webgl/shaders/effects/GrayscaleEffect.ts +67 -67
  192. package/src/core/renderers/webgl/shaders/effects/LinearGradientEffect.ts +160 -176
  193. package/src/core/renderers/webgl/shaders/effects/RadialGradientEffect.ts +153 -159
  194. package/src/core/renderers/webgl/shaders/effects/RadialProgressEffect.ts +186 -186
  195. package/src/core/renderers/webgl/shaders/effects/RadiusEffect.ts +121 -121
  196. package/src/core/renderers/webgl/shaders/effects/ShaderEffect.ts +114 -114
  197. package/src/core/text-rendering/TextTextureRendererUtils.ts +189 -189
  198. package/src/core/text-rendering/TrFontManager.ts +170 -166
  199. package/src/core/text-rendering/font-face-types/SdfTrFontFace/SdfTrFontFace.ts +141 -141
  200. package/src/core/text-rendering/font-face-types/SdfTrFontFace/internal/FontShaper.ts +139 -139
  201. package/src/core/text-rendering/font-face-types/SdfTrFontFace/internal/SdfFontShaper.test.ts +173 -173
  202. package/src/core/text-rendering/font-face-types/SdfTrFontFace/internal/SdfFontShaper.ts +169 -169
  203. package/src/core/text-rendering/font-face-types/TrFontFace.ts +105 -105
  204. package/src/core/text-rendering/font-face-types/WebTrFontFace.ts +77 -77
  205. package/src/core/text-rendering/renderers/CanvasTextRenderer.ts +780 -751
  206. package/src/core/text-rendering/renderers/LightningTextTextureRenderer.ts +741 -741
  207. package/src/core/text-rendering/renderers/SdfTextRenderer/SdfTextRenderer.ts +812 -778
  208. package/src/core/text-rendering/renderers/SdfTextRenderer/internal/PeekableGenerator.test.ts +48 -48
  209. package/src/core/text-rendering/renderers/SdfTextRenderer/internal/PeekableGenerator.ts +66 -66
  210. package/src/core/text-rendering/renderers/SdfTextRenderer/internal/SpecialCodepoints.ts +52 -52
  211. package/src/core/text-rendering/renderers/SdfTextRenderer/internal/constants.ts +32 -32
  212. package/src/core/text-rendering/renderers/SdfTextRenderer/internal/getStartConditions.ts +84 -84
  213. package/src/core/text-rendering/renderers/SdfTextRenderer/internal/getUnicodeCodepoints.test.ts +133 -133
  214. package/src/core/text-rendering/renderers/SdfTextRenderer/internal/getUnicodeCodepoints.ts +38 -38
  215. package/src/core/text-rendering/renderers/SdfTextRenderer/internal/layoutText.ts +391 -393
  216. package/src/core/text-rendering/renderers/SdfTextRenderer/internal/measureText.test.ts +49 -49
  217. package/src/core/text-rendering/renderers/SdfTextRenderer/internal/measureText.ts +51 -51
  218. package/src/core/text-rendering/renderers/SdfTextRenderer/internal/setRenderWindow.test.ts +205 -205
  219. package/src/core/text-rendering/renderers/SdfTextRenderer/internal/setRenderWindow.ts +93 -93
  220. package/src/core/text-rendering/renderers/SdfTextRenderer/internal/util.ts +40 -40
  221. package/src/core/text-rendering/renderers/TextRenderer.ts +548 -504
  222. package/src/core/textures/ColorTexture.ts +86 -86
  223. package/src/core/textures/ImageTexture.ts +154 -140
  224. package/src/core/textures/NoiseTexture.ts +96 -96
  225. package/src/core/textures/SubTexture.ts +143 -143
  226. package/src/core/textures/Texture.ts +261 -218
  227. package/src/core/utils.ts +224 -224
  228. package/src/env.d.ts +7 -7
  229. package/src/main-api/ICoreDriver.ts +68 -66
  230. package/src/main-api/INode.ts +499 -499
  231. package/src/main-api/Inspector.ts +440 -439
  232. package/src/main-api/RendererMain.ts +676 -652
  233. package/src/main-api/texture-usage-trackers/FinalizationRegistryTextureUsageTracker.ts +45 -45
  234. package/src/main-api/texture-usage-trackers/ManualCountTextureUsageTracker.ts +154 -154
  235. package/src/main-api/texture-usage-trackers/TextureUsageTracker.ts +54 -54
  236. package/src/render-drivers/main/MainCoreDriver.ts +158 -148
  237. package/src/render-drivers/main/MainOnlyNode.ts +500 -466
  238. package/src/render-drivers/main/MainOnlyTextNode.ts +261 -261
  239. package/src/render-drivers/threadx/NodeStruct.ts +300 -300
  240. package/src/render-drivers/threadx/SharedNode.ts +97 -97
  241. package/src/render-drivers/threadx/TextNodeStruct.ts +211 -211
  242. package/src/render-drivers/threadx/ThreadXCoreDriver.ts +287 -285
  243. package/src/render-drivers/threadx/ThreadXMainAnimationController.ts +99 -99
  244. package/src/render-drivers/threadx/ThreadXMainNode.ts +192 -192
  245. package/src/render-drivers/threadx/ThreadXMainTextNode.ts +85 -85
  246. package/src/render-drivers/threadx/ThreadXRendererMessage.ts +112 -110
  247. package/src/render-drivers/threadx/worker/ThreadXRendererNode.ts +245 -238
  248. package/src/render-drivers/threadx/worker/ThreadXRendererTextNode.ts +149 -149
  249. package/src/render-drivers/threadx/worker/renderer.ts +153 -151
  250. package/src/render-drivers/utils.ts +97 -97
  251. package/src/utils.ts +216 -207
  252. package/COPYING +0 -1
@@ -16,7 +16,7 @@
16
16
  * See the License for the specific language governing permissions and
17
17
  * limitations under the License.
18
18
  */
19
- import { CoreNode } from './CoreNode.js';
19
+ import { CoreNode, UpdateType } from './CoreNode.js';
20
20
  import { assertTruthy } from '../utils.js';
21
21
  export class CoreTextNode extends CoreNode {
22
22
  textRenderer;
@@ -50,7 +50,7 @@ export class CoreTextNode extends CoreNode {
50
50
  textBaseline: props.textBaseline,
51
51
  verticalAlign: props.verticalAlign,
52
52
  overflowSuffix: props.overflowSuffix,
53
- }, undefined);
53
+ });
54
54
  this.textRenderer = resolvedTextRenderer;
55
55
  this.trState = textRendererState;
56
56
  }
@@ -91,16 +91,28 @@ export class CoreTextNode extends CoreNode {
91
91
  });
92
92
  };
93
93
  get width() {
94
- return this.trState.props.width;
94
+ return this.props.width;
95
95
  }
96
96
  set width(value) {
97
+ this.props.width = value;
97
98
  this.textRenderer.set.width(this.trState, value);
99
+ // If not containing, we must update the local transform to account for the
100
+ // new width
101
+ if (this.contain === 'none') {
102
+ this.setUpdateType(UpdateType.Local);
103
+ }
98
104
  }
99
105
  get height() {
100
- return this.trState.props.height;
106
+ return this.props.height;
101
107
  }
102
108
  set height(value) {
109
+ this.props.height = value;
103
110
  this.textRenderer.set.height(this.trState, value);
111
+ // If not containing in the horizontal direction, we must update the local
112
+ // transform to account for the new height
113
+ if (this.contain !== 'both') {
114
+ this.setUpdateType(UpdateType.Local);
115
+ }
104
116
  }
105
117
  get color() {
106
118
  return this.trState.props.color;
@@ -113,14 +125,14 @@ export class CoreTextNode extends CoreNode {
113
125
  }
114
126
  set text(value) {
115
127
  this.textRenderer.set.text(this.trState, value);
116
- this.checkIsRenderable();
117
128
  }
118
129
  get textRendererOverride() {
119
130
  return this._textRendererOverride;
120
131
  }
121
132
  set textRendererOverride(value) {
122
133
  this._textRendererOverride = value;
123
- const { resolvedTextRenderer, textRendererState } = this.resolveTextRendererAndState(this.trState.props, this.trState);
134
+ this.textRenderer.destroyState(this.trState);
135
+ const { resolvedTextRenderer, textRendererState } = this.resolveTextRendererAndState(this.trState.props);
124
136
  this.textRenderer = resolvedTextRenderer;
125
137
  this.trState = textRendererState;
126
138
  }
@@ -243,34 +255,35 @@ export class CoreTextNode extends CoreNode {
243
255
  this.textRenderer.set.x(this.trState, this.globalTransform.tx);
244
256
  this.textRenderer.set.y(this.trState, this.globalTransform.ty);
245
257
  }
246
- checkIsRenderable() {
247
- if (super.checkIsRenderable()) {
248
- return true;
249
- }
258
+ checkRenderProps() {
250
259
  if (this.trState.props.text !== '') {
251
- return (this.isRenderable = true);
260
+ return true;
252
261
  }
253
- return (this.isRenderable = false);
262
+ return super.checkRenderProps();
263
+ }
264
+ onChangeIsRenderable(isRenderable) {
265
+ super.onChangeIsRenderable(isRenderable);
266
+ this.textRenderer.setIsRenderable(this.trState, isRenderable);
254
267
  }
255
268
  renderQuads(renderer) {
256
269
  assertTruthy(this.globalTransform);
257
270
  this.textRenderer.renderQuads(this.trState, this.globalTransform, this.clippingRect, this.worldAlpha);
258
271
  }
272
+ /**
273
+ * Destroy the node and cleanup all resources
274
+ */
275
+ destroy() {
276
+ super.destroy();
277
+ this.textRenderer.destroyState(this.trState);
278
+ }
259
279
  /**
260
280
  * Resolve a text renderer and a new state based on the current text renderer props provided
261
281
  * @param props
262
282
  * @returns
263
283
  */
264
- resolveTextRendererAndState(props, prevState) {
284
+ resolveTextRendererAndState(props) {
265
285
  const resolvedTextRenderer = this.stage.resolveTextRenderer(props, this._textRendererOverride);
266
286
  const textRendererState = resolvedTextRenderer.createState(props);
267
- const stateEvents = ['loading', 'loaded', 'failed'];
268
- if (prevState) {
269
- // Remove the old event listeners from previous state obj there was one
270
- stateEvents.forEach((eventName) => {
271
- prevState.emitter.off(eventName);
272
- });
273
- }
274
287
  textRendererState.emitter.on('loaded', this.onTextLoaded);
275
288
  textRendererState.emitter.on('failed', this.onTextFailed);
276
289
  resolvedTextRenderer.scheduleUpdateState(textRendererState);
@@ -1 +1 @@
1
- {"version":3,"file":"CoreTextNode.js","sourceRoot":"","sources":["../../../src/core/CoreTextNode.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"CoreTextNode.js","sourceRoot":"","sources":["../../../src/core/CoreTextNode.ts"],"names":[],"mappings":"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"}
@@ -113,7 +113,9 @@ export declare class CoreTextureManager {
113
113
  cacheKey: string | false;
114
114
  count: number;
115
115
  }>;
116
- imageWorkerManager: ImageWorkerManager;
116
+ imageWorkerManager: ImageWorkerManager | null;
117
+ hasCreateImageBitmap: boolean;
118
+ hasWorker: boolean;
117
119
  /**
118
120
  * Renderer that this texture manager is associated with
119
121
  *
@@ -32,7 +32,9 @@ export class CoreTextureManager {
32
32
  textureIdCache = new Map();
33
33
  ctxTextureCache = new WeakMap();
34
34
  textureRefCountMap = new WeakMap();
35
- imageWorkerManager;
35
+ imageWorkerManager = null;
36
+ hasCreateImageBitmap = !!self.createImageBitmap;
37
+ hasWorker = !!self.Worker;
36
38
  /**
37
39
  * Renderer that this texture manager is associated with
38
40
  *
@@ -43,7 +45,12 @@ export class CoreTextureManager {
43
45
  renderer;
44
46
  constructor(numImageWorkers) {
45
47
  // Register default known texture types
46
- this.imageWorkerManager = new ImageWorkerManager(numImageWorkers);
48
+ if (this.hasCreateImageBitmap && this.hasWorker) {
49
+ this.imageWorkerManager = new ImageWorkerManager(numImageWorkers);
50
+ }
51
+ if (!this.hasCreateImageBitmap) {
52
+ console.warn('[Lightning] createImageBitmap is not supported on this browser. ImageTexture will be slower.');
53
+ }
47
54
  this.registerTextureType('ImageTexture', ImageTexture);
48
55
  this.registerTextureType('ColorTexture', ColorTexture);
49
56
  this.registerTextureType('NoiseTexture', NoiseTexture);
@@ -149,6 +156,8 @@ export class CoreTextureManager {
149
156
  }
150
157
  }
151
158
  }
159
+ // Free the ctx texture if it exists.
160
+ this.ctxTextureCache.get(texture)?.free();
152
161
  }
153
162
  /**
154
163
  * Get an object containing debug information about the texture manager.
@@ -1 +1 @@
1
- {"version":3,"file":"CoreTextureManager.js","sourceRoot":"","sources":["../../../src/core/CoreTextureManager.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"CoreTextureManager.js","sourceRoot":"","sources":["../../../src/core/CoreTextureManager.ts"],"names":[],"mappings":"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"}
@@ -8,10 +8,13 @@ import type { TextRenderer, TextRendererMap, TrProps } from './text-rendering/re
8
8
  import { EventEmitter } from '../common/EventEmitter.js';
9
9
  import { ContextSpy } from './lib/ContextSpy.js';
10
10
  import type { FpsUpdatePayload, FrameTickPayload } from '../common/CommonTypes.js';
11
+ import { TextureMemoryManager } from './TextureMemoryManager.js';
11
12
  export interface StageOptions {
12
13
  rootId: number;
13
14
  appWidth: number;
14
15
  appHeight: number;
16
+ txMemByteThreshold: number;
17
+ boundsMargin: number | [number, number, number, number];
15
18
  deviceLogicalPixelRatio: number;
16
19
  devicePhysicalPixelRatio: number;
17
20
  canvas: HTMLCanvasElement | OffscreenCanvas;
@@ -29,11 +32,13 @@ export declare class Stage extends EventEmitter {
29
32
  readonly options: StageOptions;
30
33
  readonly animationManager: AnimationManager;
31
34
  readonly txManager: CoreTextureManager;
35
+ readonly txMemManager: TextureMemoryManager;
32
36
  readonly fontManager: TrFontManager;
33
37
  readonly textRenderers: Partial<TextRendererMap>;
34
38
  readonly shManager: CoreShaderManager;
35
39
  readonly renderer: WebGlCoreRenderer;
36
40
  readonly root: CoreNode;
41
+ readonly boundsMargin: [number, number, number, number];
37
42
  deltaTime: number;
38
43
  lastFrameTime: number;
39
44
  currentFrameTime: number;
@@ -57,6 +62,7 @@ export declare class Stage extends EventEmitter {
57
62
  * Start a new frame draw
58
63
  */
59
64
  drawFrame(): void;
65
+ calculateFps(): void;
60
66
  addQuads(node: CoreNode): void;
61
67
  /**
62
68
  * Request a render pass without forcing an update
@@ -28,6 +28,7 @@ import { SdfTextRenderer } from './text-rendering/renderers/SdfTextRenderer/SdfT
28
28
  import { CanvasTextRenderer } from './text-rendering/renderers/CanvasTextRenderer.js';
29
29
  import { EventEmitter } from '../common/EventEmitter.js';
30
30
  import { ContextSpy } from './lib/ContextSpy.js';
31
+ import { TextureMemoryManager } from './TextureMemoryManager.js';
31
32
  const bufferMemory = 2e6;
32
33
  const autoStart = true;
33
34
  export class Stage extends EventEmitter {
@@ -35,11 +36,13 @@ export class Stage extends EventEmitter {
35
36
  /// Module Instances
36
37
  animationManager;
37
38
  txManager;
39
+ txMemManager;
38
40
  fontManager;
39
41
  textRenderers;
40
42
  shManager;
41
43
  renderer;
42
44
  root;
45
+ boundsMargin;
43
46
  /// State
44
47
  deltaTime = 0;
45
48
  lastFrameTime = 0;
@@ -55,11 +58,19 @@ export class Stage extends EventEmitter {
55
58
  constructor(options) {
56
59
  super();
57
60
  this.options = options;
58
- const { canvas, clearColor, rootId, debug, appWidth, appHeight, enableContextSpy, numImageWorkers, } = options;
61
+ const { canvas, clearColor, rootId, debug, appWidth, appHeight, boundsMargin, enableContextSpy, numImageWorkers, txMemByteThreshold, } = options;
59
62
  this.txManager = new CoreTextureManager(numImageWorkers);
63
+ this.txMemManager = new TextureMemoryManager(txMemByteThreshold);
60
64
  this.shManager = new CoreShaderManager();
61
65
  this.animationManager = new AnimationManager();
62
66
  this.contextSpy = enableContextSpy ? new ContextSpy() : null;
67
+ let bm = [0, 0, 0, 0];
68
+ if (boundsMargin) {
69
+ bm = Array.isArray(boundsMargin)
70
+ ? boundsMargin
71
+ : [boundsMargin, boundsMargin, boundsMargin, boundsMargin];
72
+ }
73
+ this.boundsMargin = bm;
63
74
  if (debug?.monitorTextureCache) {
64
75
  setInterval(() => {
65
76
  assertTruthy(this.txManager);
@@ -75,6 +86,7 @@ export class Stage extends EventEmitter {
75
86
  clearColor: clearColor ?? 0xff000000,
76
87
  bufferMemory,
77
88
  txManager: this.txManager,
89
+ txMemManager: this.txMemManager,
78
90
  shManager: this.shManager,
79
91
  contextSpy: this.contextSpy,
80
92
  });
@@ -165,10 +177,13 @@ export class Stage extends EventEmitter {
165
177
  renderer?.reset();
166
178
  this.addQuads(this.root);
167
179
  renderer?.render();
180
+ this.calculateFps();
168
181
  // Reset renderRequested flag if it was set
169
182
  if (renderRequested) {
170
183
  this.renderRequested = false;
171
184
  }
185
+ }
186
+ calculateFps() {
172
187
  // If there's an FPS update interval, emit the FPS update event
173
188
  // when the specified interval has elapsed.
174
189
  const { fpsUpdateInterval } = this.options;
@@ -1 +1 @@
1
- {"version":3,"file":"Stage.js","sourceRoot":"","sources":["../../../src/core/Stage.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"Stage.js","sourceRoot":"","sources":["../../../src/core/Stage.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,12 @@
1
+ import type { CoreContextTexture } from './renderers/CoreContextTexture.js';
2
+ export declare class TextureMemoryManager {
3
+ private memUsed;
4
+ private textures;
5
+ private threshold;
6
+ /**
7
+ * @param byteThreshold Number of texture bytes to trigger garbage collection
8
+ */
9
+ constructor(byteThreshold: number);
10
+ setTextureMemUse(ctxTexture: CoreContextTexture, byteSize: number): void;
11
+ gc(): void;
12
+ }
@@ -0,0 +1,42 @@
1
+ export class TextureMemoryManager {
2
+ memUsed = 0;
3
+ textures = new Map();
4
+ threshold;
5
+ /**
6
+ * @param byteThreshold Number of texture bytes to trigger garbage collection
7
+ */
8
+ constructor(byteThreshold) {
9
+ this.threshold = byteThreshold;
10
+ // If the threshold is 0, we disable the memory manager by replacing the
11
+ // setTextureMemUse method with a no-op function.
12
+ if (byteThreshold === 0) {
13
+ // eslint-disable-next-line @typescript-eslint/no-empty-function
14
+ this.setTextureMemUse = () => { };
15
+ }
16
+ }
17
+ setTextureMemUse(ctxTexture, byteSize) {
18
+ if (this.textures.has(ctxTexture)) {
19
+ // eslint-disable-next-line @typescript-eslint/no-non-null-assertion
20
+ this.memUsed -= this.textures.get(ctxTexture);
21
+ }
22
+ if (byteSize === 0) {
23
+ this.textures.delete(ctxTexture);
24
+ return;
25
+ }
26
+ else {
27
+ this.memUsed += byteSize;
28
+ this.textures.set(ctxTexture, byteSize);
29
+ }
30
+ if (this.memUsed > this.threshold) {
31
+ this.gc();
32
+ }
33
+ }
34
+ gc() {
35
+ this.textures.forEach((byteSize, ctxTexture) => {
36
+ if (!ctxTexture.renderable) {
37
+ ctxTexture.free();
38
+ }
39
+ });
40
+ }
41
+ }
42
+ //# sourceMappingURL=TextureMemoryManager.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"TextureMemoryManager.js","sourceRoot":"","sources":["../../../src/core/TextureMemoryManager.ts"],"names":[],"mappings":"AAoBA,MAAM,OAAO,oBAAoB;IACvB,OAAO,GAAG,CAAC,CAAC;IACZ,QAAQ,GAAoC,IAAI,GAAG,EAAE,CAAC;IACtD,SAAS,CAAS;IAE1B;;OAEG;IACH,YAAY,aAAqB;QAC/B,IAAI,CAAC,SAAS,GAAG,aAAa,CAAC;QAE/B,wEAAwE;QACxE,iDAAiD;QACjD,IAAI,aAAa,KAAK,CAAC,EAAE;YACvB,gEAAgE;YAChE,IAAI,CAAC,gBAAgB,GAAG,GAAG,EAAE,GAAE,CAAC,CAAC;SAClC;IACH,CAAC;IAED,gBAAgB,CAAC,UAA8B,EAAE,QAAgB;QAC/D,IAAI,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,UAAU,CAAC,EAAE;YACjC,oEAAoE;YACpE,IAAI,CAAC,OAAO,IAAI,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,UAAU,CAAE,CAAC;SAChD;QAED,IAAI,QAAQ,KAAK,CAAC,EAAE;YAClB,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,UAAU,CAAC,CAAC;YACjC,OAAO;SACR;aAAM;YACL,IAAI,CAAC,OAAO,IAAI,QAAQ,CAAC;YACzB,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,UAAU,EAAE,QAAQ,CAAC,CAAC;SACzC;QAED,IAAI,IAAI,CAAC,OAAO,GAAG,IAAI,CAAC,SAAS,EAAE;YACjC,IAAI,CAAC,EAAE,EAAE,CAAC;SACX;IACH,CAAC;IAED,EAAE;QACA,IAAI,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC,QAAQ,EAAE,UAAU,EAAE,EAAE;YAC7C,IAAI,CAAC,UAAU,CAAC,UAAU,EAAE;gBAC1B,UAAU,CAAC,IAAI,EAAE,CAAC;aACnB;QACH,CAAC,CAAC,CAAC;IACL,CAAC;CACF"}
@@ -1,7 +1,6 @@
1
1
  import { type TextureData } from '../textures/Texture.js';
2
2
  type MessageCallback = [(value: any) => void, (reason: any) => void];
3
3
  export declare class ImageWorkerManager {
4
- isWorkerSupported: boolean;
5
4
  imageWorkersEnabled: boolean;
6
5
  messageManager: Record<string, MessageCallback>;
7
6
  workers: Worker[];
@@ -18,21 +18,15 @@
18
18
  */
19
19
  import {} from '../textures/Texture.js';
20
20
  export class ImageWorkerManager {
21
- isWorkerSupported = !!self.Worker;
22
21
  imageWorkersEnabled = true;
23
22
  messageManager = {};
24
23
  workers = [];
25
24
  workerIndex = 0;
26
25
  constructor(numImageWorkers) {
27
- if (this.isWorkerSupported && numImageWorkers > 0) {
28
- this.workers = this.createWorkers(numImageWorkers);
29
- this.workers.forEach((worker) => {
30
- worker.onmessage = this.handleMessage.bind(this);
31
- });
32
- }
33
- else {
34
- this.imageWorkersEnabled = false;
35
- }
26
+ this.workers = this.createWorkers(numImageWorkers);
27
+ this.workers.forEach((worker) => {
28
+ worker.onmessage = this.handleMessage.bind(this);
29
+ });
36
30
  }
37
31
  handleMessage(event) {
38
32
  const { src, data, error } = event.data;
@@ -49,40 +43,61 @@ export class ImageWorkerManager {
49
43
  }
50
44
  }
51
45
  createWorkers(numWorkers = 1) {
52
- const workerCode = `
53
- function hasAlphaChannel(mimeType) {
54
- return (mimeType.indexOf("image/png") !== -1);
55
- }
56
-
57
- async function getImage(src, premultiplyAlpha) {
58
- const response = await fetch(src);
59
- const blob = await response.blob();
60
- const hasAlphaChannel = premultiplyAlpha ?? this.hasAlphaChannel(blob.type);
61
-
62
- const data = await createImageBitmap(blob, {
63
- premultiplyAlpha: hasAlphaChannel ? 'premultiply' : 'none',
64
- colorSpaceConversion: 'none',
65
- imageOrientation: 'none',
66
- });
67
-
68
- return { data, premultiplyAlpha };
69
- }
70
-
71
- self.onmessage = async (event) => {
72
- const { src, premultiplyAlpha } = event.data;
73
-
74
- try {
75
- const data = await getImage(src, premultiplyAlpha);
76
- self.postMessage({ src, data }, [data.data]);
77
- } catch (error) {
78
- self.postMessage({ src, error: error.message });
79
- }
80
- };
46
+ const workerCode = `
47
+ function hasAlphaChannel(mimeType) {
48
+ return (mimeType.indexOf("image/png") !== -1);
49
+ }
50
+
51
+ async function getImage(src, premultiplyAlpha) {
52
+ return new Promise(function(resolve, reject) {
53
+ var xhr = new XMLHttpRequest();
54
+ xhr.open('GET', src, true);
55
+ xhr.responseType = 'blob';
56
+
57
+ xhr.onload = function() {
58
+ if (xhr.status === 200) {
59
+ var blob = xhr.response;
60
+ var hasAlphaChannel = premultiplyAlpha !== undefined ? premultiplyAlpha : hasAlphaChannel(blob.type);
61
+
62
+ createImageBitmap(blob, {
63
+ premultiplyAlpha: hasAlphaChannel ? 'premultiply' : 'none',
64
+ colorSpaceConversion: 'none',
65
+ imageOrientation: 'none'
66
+ }).then(function(data) {
67
+ resolve({ data: data, premultiplyAlpha: premultiplyAlpha });
68
+ }).catch(function(error) {
69
+ reject(error);
70
+ });
71
+ } else {
72
+ reject(new Error('Failed to load image: ' + xhr.statusText));
73
+ }
74
+ };
75
+
76
+ xhr.onerror = function() {
77
+ reject(new Error('Network error occurred while trying to fetch the image.'));
78
+ };
79
+
80
+ xhr.send();
81
+ });
82
+ }
83
+
84
+ self.onmessage = async (event) => {
85
+ var src = event.data.src;
86
+ var premultiplyAlpha = event.data.premultiplyAlpha;
87
+
88
+ getImage(src, premultiplyAlpha)
89
+ .then(function(data) {
90
+ self.postMessage({ src: src, data: data }, [data.data]);
91
+ })
92
+ .catch(function(error) {
93
+ self.postMessage({ src: src, error: error.message });
94
+ });
95
+ };
81
96
  `;
82
97
  const blob = new Blob([workerCode.replace('"use strict";', '')], {
83
98
  type: 'application/javascript',
84
99
  });
85
- const blobURL = (window.URL ? URL : webkitURL).createObjectURL(blob);
100
+ const blobURL = (self.URL ? URL : webkitURL).createObjectURL(blob);
86
101
  const workers = [];
87
102
  for (let i = 0; i < numWorkers; i++) {
88
103
  workers.push(new Worker(blobURL));
@@ -1 +1 @@
1
- {"version":3,"file":"ImageWorker.js","sourceRoot":"","sources":["../../../../src/core/lib/ImageWorker.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"ImageWorker.js","sourceRoot":"","sources":["../../../../src/core/lib/ImageWorker.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,13 @@
1
+ export declare class RenderCoords {
2
+ data: Float32Array;
3
+ constructor(entries?: [number, number, number, number, number, number, number, number] | Float32Array);
4
+ static translate(x1: number, y1: number, x2: number, y2: number, x3: number, y3: number, x4: number, y4: number, out?: RenderCoords): RenderCoords;
5
+ get x1(): number;
6
+ get x2(): number;
7
+ get x3(): number;
8
+ get x4(): number;
9
+ get y1(): number;
10
+ get y2(): number;
11
+ get y3(): number;
12
+ get y4(): number;
13
+ }
@@ -0,0 +1,63 @@
1
+ const rx1 = 0;
2
+ const rx2 = 2;
3
+ const rx3 = 4;
4
+ const rx4 = 6;
5
+ const ry1 = 1;
6
+ const ry2 = 3;
7
+ const ry3 = 5;
8
+ const ry4 = 7;
9
+ export class RenderCoords {
10
+ data;
11
+ constructor(entries) {
12
+ this.data = new Float32Array(8);
13
+ if (entries) {
14
+ this.data[rx1] = entries[rx1];
15
+ this.data[rx2] = entries[rx2];
16
+ this.data[rx3] = entries[rx3];
17
+ this.data[rx4] = entries[rx4];
18
+ this.data[ry1] = entries[ry1];
19
+ this.data[ry2] = entries[ry2];
20
+ this.data[ry3] = entries[ry3];
21
+ this.data[ry4] = entries[ry4];
22
+ }
23
+ }
24
+ static translate(x1, y1, x2, y2, x3, y3, x4, y4, out) {
25
+ if (!out) {
26
+ out = new RenderCoords();
27
+ }
28
+ out.data[rx1] = x1;
29
+ out.data[rx2] = x2;
30
+ out.data[rx3] = x3;
31
+ out.data[rx4] = x4;
32
+ out.data[ry1] = y1;
33
+ out.data[ry2] = y2;
34
+ out.data[ry3] = y3;
35
+ out.data[ry4] = y4;
36
+ return out;
37
+ }
38
+ get x1() {
39
+ return this.data[rx1];
40
+ }
41
+ get x2() {
42
+ return this.data[rx2];
43
+ }
44
+ get x3() {
45
+ return this.data[rx3];
46
+ }
47
+ get x4() {
48
+ return this.data[rx4];
49
+ }
50
+ get y1() {
51
+ return this.data[ry1];
52
+ }
53
+ get y2() {
54
+ return this.data[ry2];
55
+ }
56
+ get y3() {
57
+ return this.data[ry3];
58
+ }
59
+ get y4() {
60
+ return this.data[ry4];
61
+ }
62
+ }
63
+ //# sourceMappingURL=RenderCoords.js.map