@lightningjs/renderer 0.9.4 → 1.0.0-rc.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 (289) hide show
  1. package/README.md +0 -82
  2. package/dist/exports/index.d.ts +42 -3
  3. package/dist/exports/index.js +37 -3
  4. package/dist/exports/index.js.map +1 -1
  5. package/dist/src/core/CoreNode.d.ts +461 -46
  6. package/dist/src/core/CoreNode.js +170 -104
  7. package/dist/src/core/CoreNode.js.map +1 -1
  8. package/dist/src/core/CoreShaderManager.d.ts +16 -6
  9. package/dist/src/core/CoreShaderManager.js +20 -20
  10. package/dist/src/core/CoreShaderManager.js.map +1 -1
  11. package/dist/src/core/CoreTextNode.d.ts +30 -4
  12. package/dist/src/core/CoreTextNode.js +24 -1
  13. package/dist/src/core/CoreTextNode.js.map +1 -1
  14. package/dist/src/core/CoreTextureManager.d.ts +31 -82
  15. package/dist/src/core/CoreTextureManager.js +39 -126
  16. package/dist/src/core/CoreTextureManager.js.map +1 -1
  17. package/dist/src/core/Stage.d.ts +67 -9
  18. package/dist/src/core/Stage.js +174 -30
  19. package/dist/src/core/Stage.js.map +1 -1
  20. package/dist/src/core/TextureMemoryManager.d.ts +97 -8
  21. package/dist/src/core/TextureMemoryManager.js +142 -19
  22. package/dist/src/core/TextureMemoryManager.js.map +1 -1
  23. package/dist/src/core/animations/CoreAnimation.d.ts +14 -6
  24. package/dist/src/core/animations/CoreAnimation.js +137 -43
  25. package/dist/src/core/animations/CoreAnimation.js.map +1 -1
  26. package/dist/src/core/lib/ImageWorker.js +59 -52
  27. package/dist/src/core/lib/ImageWorker.js.map +1 -1
  28. package/dist/src/core/lib/utils.js.map +1 -1
  29. package/dist/src/core/platform.js +7 -1
  30. package/dist/src/core/platform.js.map +1 -1
  31. package/dist/src/core/renderers/CoreContextTexture.d.ts +3 -2
  32. package/dist/src/core/renderers/CoreContextTexture.js +7 -1
  33. package/dist/src/core/renderers/CoreContextTexture.js.map +1 -1
  34. package/dist/src/core/renderers/CoreRenderer.d.ts +5 -1
  35. package/dist/src/core/renderers/CoreRenderer.js +0 -1
  36. package/dist/src/core/renderers/CoreRenderer.js.map +1 -1
  37. package/dist/src/core/renderers/canvas/CanvasCoreRenderer.d.ts +3 -0
  38. package/dist/src/core/renderers/canvas/CanvasCoreRenderer.js +16 -1
  39. package/dist/src/core/renderers/canvas/CanvasCoreRenderer.js.map +1 -1
  40. package/dist/src/core/renderers/canvas/CanvasCoreTexture.d.ts +0 -1
  41. package/dist/src/core/renderers/canvas/CanvasCoreTexture.js +2 -5
  42. package/dist/src/core/renderers/canvas/CanvasCoreTexture.js.map +1 -1
  43. package/dist/src/core/renderers/webgl/WebGlCoreCtxRenderTexture.js +2 -2
  44. package/dist/src/core/renderers/webgl/WebGlCoreCtxRenderTexture.js.map +1 -1
  45. package/dist/src/core/renderers/webgl/WebGlCoreCtxTexture.d.ts +0 -1
  46. package/dist/src/core/renderers/webgl/WebGlCoreCtxTexture.js +7 -10
  47. package/dist/src/core/renderers/webgl/WebGlCoreCtxTexture.js.map +1 -1
  48. package/dist/src/core/renderers/webgl/WebGlCoreRenderer.d.ts +3 -0
  49. package/dist/src/core/renderers/webgl/WebGlCoreRenderer.js +47 -9
  50. package/dist/src/core/renderers/webgl/WebGlCoreRenderer.js.map +1 -1
  51. package/dist/src/core/renderers/webgl/shaders/DynamicShader.d.ts +2 -43
  52. package/dist/src/core/renderers/webgl/shaders/DynamicShader.js +70 -37
  53. package/dist/src/core/renderers/webgl/shaders/DynamicShader.js.map +1 -1
  54. package/dist/src/core/renderers/webgl/shaders/effects/BorderBottomEffect.js +2 -2
  55. package/dist/src/core/renderers/webgl/shaders/effects/BorderBottomEffect.js.map +1 -1
  56. package/dist/src/core/renderers/webgl/shaders/effects/BorderEffect.js +2 -2
  57. package/dist/src/core/renderers/webgl/shaders/effects/BorderEffect.js.map +1 -1
  58. package/dist/src/core/renderers/webgl/shaders/effects/BorderLeftEffect.js +2 -2
  59. package/dist/src/core/renderers/webgl/shaders/effects/BorderLeftEffect.js.map +1 -1
  60. package/dist/src/core/renderers/webgl/shaders/effects/BorderRightEffect.js +2 -2
  61. package/dist/src/core/renderers/webgl/shaders/effects/BorderRightEffect.js.map +1 -1
  62. package/dist/src/core/renderers/webgl/shaders/effects/BorderTopEffect.js +2 -2
  63. package/dist/src/core/renderers/webgl/shaders/effects/BorderTopEffect.js.map +1 -1
  64. package/dist/src/core/renderers/webgl/shaders/effects/EffectUtils.d.ts +8 -0
  65. package/dist/src/core/renderers/webgl/shaders/effects/EffectUtils.js +103 -0
  66. package/dist/src/core/renderers/webgl/shaders/effects/EffectUtils.js.map +1 -1
  67. package/dist/src/core/renderers/webgl/shaders/effects/FadeOutEffect.js +3 -18
  68. package/dist/src/core/renderers/webgl/shaders/effects/FadeOutEffect.js.map +1 -1
  69. package/dist/src/core/renderers/webgl/shaders/effects/GlitchEffect.js +5 -2
  70. package/dist/src/core/renderers/webgl/shaders/effects/GlitchEffect.js.map +1 -1
  71. package/dist/src/core/renderers/webgl/shaders/effects/HolePunchEffect.js +4 -36
  72. package/dist/src/core/renderers/webgl/shaders/effects/HolePunchEffect.js.map +1 -1
  73. package/dist/src/core/renderers/webgl/shaders/effects/LinearGradientEffect.js +3 -2
  74. package/dist/src/core/renderers/webgl/shaders/effects/LinearGradientEffect.js.map +1 -1
  75. package/dist/src/core/renderers/webgl/shaders/effects/RadialGradientEffect.js +4 -2
  76. package/dist/src/core/renderers/webgl/shaders/effects/RadialGradientEffect.js.map +1 -1
  77. package/dist/src/core/renderers/webgl/shaders/effects/RadialProgressEffect.js +2 -1
  78. package/dist/src/core/renderers/webgl/shaders/effects/RadialProgressEffect.js.map +1 -1
  79. package/dist/src/core/renderers/webgl/shaders/effects/RadiusEffect.js +4 -36
  80. package/dist/src/core/renderers/webgl/shaders/effects/RadiusEffect.js.map +1 -1
  81. package/dist/src/core/renderers/webgl/shaders/effects/ShaderEffect.d.ts +69 -0
  82. package/dist/src/core/renderers/webgl/shaders/effects/ShaderEffect.js.map +1 -1
  83. package/dist/src/core/text-rendering/font-face-types/SdfTrFontFace/SdfTrFontFace.js +5 -2
  84. package/dist/src/core/text-rendering/font-face-types/SdfTrFontFace/SdfTrFontFace.js.map +1 -1
  85. package/dist/src/core/text-rendering/font-face-types/TrFontFace.d.ts +0 -1
  86. package/dist/src/core/text-rendering/font-face-types/TrFontFace.js +0 -1
  87. package/dist/src/core/text-rendering/font-face-types/TrFontFace.js.map +1 -1
  88. package/dist/src/core/text-rendering/font-face-types/WebTrFontFace.js +0 -1
  89. package/dist/src/core/text-rendering/font-face-types/WebTrFontFace.js.map +1 -1
  90. package/dist/src/core/text-rendering/renderers/CanvasTextRenderer.d.ts +10 -26
  91. package/dist/src/core/text-rendering/renderers/CanvasTextRenderer.js +116 -365
  92. package/dist/src/core/text-rendering/renderers/CanvasTextRenderer.js.map +1 -1
  93. package/dist/src/core/text-rendering/renderers/LightningTextTextureRenderer.d.ts +0 -1
  94. package/dist/src/core/text-rendering/renderers/LightningTextTextureRenderer.js +0 -2
  95. package/dist/src/core/text-rendering/renderers/LightningTextTextureRenderer.js.map +1 -1
  96. package/dist/src/core/text-rendering/renderers/SdfTextRenderer/SdfTextRenderer.js +2 -2
  97. package/dist/src/core/text-rendering/renderers/SdfTextRenderer/SdfTextRenderer.js.map +1 -1
  98. package/dist/src/core/text-rendering/renderers/SdfTextRenderer/internal/layoutText.js +2 -0
  99. package/dist/src/core/text-rendering/renderers/SdfTextRenderer/internal/layoutText.js.map +1 -1
  100. package/dist/src/core/text-rendering/renderers/TextRenderer.d.ts +3 -2
  101. package/dist/src/core/text-rendering/renderers/TextRenderer.js.map +1 -1
  102. package/dist/src/core/textures/ColorTexture.d.ts +1 -1
  103. package/dist/src/core/textures/ColorTexture.js +1 -1
  104. package/dist/src/core/textures/ImageTexture.d.ts +1 -1
  105. package/dist/src/core/textures/NoiseTexture.d.ts +1 -1
  106. package/dist/src/core/textures/NoiseTexture.js +3 -0
  107. package/dist/src/core/textures/NoiseTexture.js.map +1 -1
  108. package/dist/src/core/textures/SubTexture.d.ts +2 -2
  109. package/dist/src/core/textures/SubTexture.js +5 -1
  110. package/dist/src/core/textures/SubTexture.js.map +1 -1
  111. package/dist/src/core/textures/Texture.d.ts +23 -2
  112. package/dist/src/core/textures/Texture.js +32 -3
  113. package/dist/src/core/textures/Texture.js.map +1 -1
  114. package/dist/src/core/utils.d.ts +7 -0
  115. package/dist/src/core/utils.js +12 -10
  116. package/dist/src/core/utils.js.map +1 -1
  117. package/dist/src/main-api/DynamicShaderController.d.ts +9 -14
  118. package/dist/src/main-api/DynamicShaderController.js +21 -17
  119. package/dist/src/main-api/DynamicShaderController.js.map +1 -1
  120. package/dist/src/main-api/INode.d.ts +43 -463
  121. package/dist/src/main-api/INode.js +1 -19
  122. package/dist/src/main-api/INode.js.map +1 -1
  123. package/dist/src/main-api/Inspector.d.ts +10 -10
  124. package/dist/src/main-api/Inspector.js +18 -15
  125. package/dist/src/main-api/Inspector.js.map +1 -1
  126. package/dist/src/main-api/Renderer.d.ts +71 -25
  127. package/dist/src/main-api/Renderer.js +80 -109
  128. package/dist/src/main-api/Renderer.js.map +1 -1
  129. package/dist/src/main-api/ShaderController.d.ts +3 -8
  130. package/dist/src/main-api/ShaderController.js +8 -3
  131. package/dist/src/main-api/ShaderController.js.map +1 -1
  132. package/dist/src/utils.d.ts +1 -0
  133. package/dist/src/utils.js +7 -0
  134. package/dist/src/utils.js.map +1 -1
  135. package/dist/tsconfig.dist.tsbuildinfo +1 -1
  136. package/exports/index.ts +62 -3
  137. package/package.json +8 -7
  138. package/src/core/CoreNode.test.ts +93 -0
  139. package/src/core/CoreNode.ts +675 -188
  140. package/src/core/CoreShaderManager.ts +56 -29
  141. package/src/core/CoreTextNode.ts +41 -9
  142. package/src/core/CoreTextureManager.ts +55 -175
  143. package/src/core/Stage.ts +199 -43
  144. package/src/core/TextureMemoryManager.ts +231 -22
  145. package/src/core/animations/CoreAnimation.ts +194 -67
  146. package/src/core/lib/ImageWorker.ts +79 -52
  147. package/src/core/lib/utils.ts +1 -0
  148. package/src/core/platform.ts +8 -1
  149. package/src/core/renderers/CoreContextTexture.ts +9 -2
  150. package/src/core/renderers/CoreRenderer.ts +5 -2
  151. package/src/core/renderers/canvas/CanvasCoreRenderer.ts +20 -1
  152. package/src/core/renderers/canvas/CanvasCoreTexture.ts +2 -6
  153. package/src/core/renderers/webgl/WebGlCoreCtxRenderTexture.ts +2 -2
  154. package/src/core/renderers/webgl/WebGlCoreCtxTexture.ts +7 -11
  155. package/src/core/renderers/webgl/WebGlCoreRenderer.ts +51 -9
  156. package/src/core/renderers/webgl/shaders/DynamicShader.ts +94 -92
  157. package/src/core/renderers/webgl/shaders/effects/BorderBottomEffect.ts +2 -2
  158. package/src/core/renderers/webgl/shaders/effects/BorderEffect.ts +2 -2
  159. package/src/core/renderers/webgl/shaders/effects/BorderLeftEffect.ts +2 -2
  160. package/src/core/renderers/webgl/shaders/effects/BorderRightEffect.ts +2 -2
  161. package/src/core/renderers/webgl/shaders/effects/BorderTopEffect.ts +2 -2
  162. package/src/core/renderers/webgl/shaders/effects/EffectUtils.ts +129 -3
  163. package/src/core/renderers/webgl/shaders/effects/FadeOutEffect.ts +7 -15
  164. package/src/core/renderers/webgl/shaders/effects/GlitchEffect.ts +5 -2
  165. package/src/core/renderers/webgl/shaders/effects/HolePunchEffect.ts +6 -15
  166. package/src/core/renderers/webgl/shaders/effects/LinearGradientEffect.ts +6 -2
  167. package/src/core/renderers/webgl/shaders/effects/RadialGradientEffect.ts +10 -2
  168. package/src/core/renderers/webgl/shaders/effects/RadialProgressEffect.ts +2 -1
  169. package/src/core/renderers/webgl/shaders/effects/RadiusEffect.ts +6 -15
  170. package/src/core/renderers/webgl/shaders/effects/ShaderEffect.ts +80 -0
  171. package/src/core/text-rendering/font-face-types/SdfTrFontFace/SdfTrFontFace.ts +14 -15
  172. package/src/core/text-rendering/font-face-types/TrFontFace.ts +0 -2
  173. package/src/core/text-rendering/font-face-types/WebTrFontFace.ts +0 -1
  174. package/src/core/text-rendering/renderers/CanvasTextRenderer.ts +139 -447
  175. package/src/core/text-rendering/renderers/LightningTextTextureRenderer.ts +0 -3
  176. package/src/core/text-rendering/renderers/SdfTextRenderer/SdfTextRenderer.ts +2 -2
  177. package/src/core/text-rendering/renderers/SdfTextRenderer/internal/layoutText.ts +4 -2
  178. package/src/core/text-rendering/renderers/TextRenderer.ts +3 -2
  179. package/src/core/textures/ColorTexture.ts +1 -1
  180. package/src/core/textures/ImageTexture.ts +1 -1
  181. package/src/core/textures/NoiseTexture.ts +4 -1
  182. package/src/core/textures/SubTexture.ts +7 -7
  183. package/src/core/textures/Texture.ts +46 -3
  184. package/src/core/utils.ts +12 -11
  185. package/src/main-api/DynamicShaderController.ts +104 -0
  186. package/src/main-api/INode.ts +57 -479
  187. package/src/main-api/Inspector.ts +37 -39
  188. package/src/main-api/Renderer.ts +586 -0
  189. package/src/main-api/ShaderController.ts +81 -0
  190. package/src/main-api/utils.ts +45 -0
  191. package/src/utils.ts +8 -0
  192. package/dist/exports/core-api.d.ts +0 -74
  193. package/dist/exports/core-api.js +0 -96
  194. package/dist/exports/core-api.js.map +0 -1
  195. package/dist/exports/main-api.d.ts +0 -30
  196. package/dist/exports/main-api.js +0 -45
  197. package/dist/exports/main-api.js.map +0 -1
  198. package/dist/src/core/CoreExtension.d.ts +0 -12
  199. package/dist/src/core/CoreExtension.js +0 -29
  200. package/dist/src/core/CoreExtension.js.map +0 -1
  201. package/dist/src/core/renderers/SpecificNode.d.ts +0 -1
  202. package/dist/src/core/renderers/SpecificNode.js +0 -19
  203. package/dist/src/core/renderers/SpecificNode.js.map +0 -1
  204. package/dist/src/core/renderers/webgl/newShader/effectsMock.d.ts +0 -13
  205. package/dist/src/core/renderers/webgl/newShader/effectsMock.js +0 -62
  206. package/dist/src/core/renderers/webgl/newShader/effectsMock.js.map +0 -1
  207. package/dist/src/main-api/ICoreDriver.d.ts +0 -24
  208. package/dist/src/main-api/ICoreDriver.js +0 -20
  209. package/dist/src/main-api/ICoreDriver.js.map +0 -1
  210. package/dist/src/main-api/RendererMain.d.ts +0 -378
  211. package/dist/src/main-api/RendererMain.js +0 -367
  212. package/dist/src/main-api/RendererMain.js.map +0 -1
  213. package/dist/src/main-api/texture-usage-trackers/FinalizationRegistryTextureUsageTracker.d.ts +0 -9
  214. package/dist/src/main-api/texture-usage-trackers/FinalizationRegistryTextureUsageTracker.js +0 -38
  215. package/dist/src/main-api/texture-usage-trackers/FinalizationRegistryTextureUsageTracker.js.map +0 -1
  216. package/dist/src/main-api/texture-usage-trackers/ManualCountTextureUsageTracker.d.ts +0 -56
  217. package/dist/src/main-api/texture-usage-trackers/ManualCountTextureUsageTracker.js +0 -101
  218. package/dist/src/main-api/texture-usage-trackers/ManualCountTextureUsageTracker.js.map +0 -1
  219. package/dist/src/main-api/texture-usage-trackers/TextureUsageTracker.d.ts +0 -32
  220. package/dist/src/main-api/texture-usage-trackers/TextureUsageTracker.js +0 -28
  221. package/dist/src/main-api/texture-usage-trackers/TextureUsageTracker.js.map +0 -1
  222. package/dist/src/render-drivers/main/MainCoreDriver.d.ts +0 -21
  223. package/dist/src/render-drivers/main/MainCoreDriver.js +0 -115
  224. package/dist/src/render-drivers/main/MainCoreDriver.js.map +0 -1
  225. package/dist/src/render-drivers/main/MainOnlyNode.d.ts +0 -101
  226. package/dist/src/render-drivers/main/MainOnlyNode.js +0 -425
  227. package/dist/src/render-drivers/main/MainOnlyNode.js.map +0 -1
  228. package/dist/src/render-drivers/main/MainOnlyTextNode.d.ts +0 -47
  229. package/dist/src/render-drivers/main/MainOnlyTextNode.js +0 -204
  230. package/dist/src/render-drivers/main/MainOnlyTextNode.js.map +0 -1
  231. package/dist/src/render-drivers/threadx/NodeStruct.d.ts +0 -93
  232. package/dist/src/render-drivers/threadx/NodeStruct.js +0 -290
  233. package/dist/src/render-drivers/threadx/NodeStruct.js.map +0 -1
  234. package/dist/src/render-drivers/threadx/SharedNode.d.ts +0 -40
  235. package/dist/src/render-drivers/threadx/SharedNode.js +0 -61
  236. package/dist/src/render-drivers/threadx/SharedNode.js.map +0 -1
  237. package/dist/src/render-drivers/threadx/TextNodeStruct.d.ts +0 -44
  238. package/dist/src/render-drivers/threadx/TextNodeStruct.js +0 -203
  239. package/dist/src/render-drivers/threadx/TextNodeStruct.js.map +0 -1
  240. package/dist/src/render-drivers/threadx/ThreadXCoreDriver.d.ts +0 -25
  241. package/dist/src/render-drivers/threadx/ThreadXCoreDriver.js +0 -232
  242. package/dist/src/render-drivers/threadx/ThreadXCoreDriver.js.map +0 -1
  243. package/dist/src/render-drivers/threadx/ThreadXMainAnimationController.d.ts +0 -24
  244. package/dist/src/render-drivers/threadx/ThreadXMainAnimationController.js +0 -113
  245. package/dist/src/render-drivers/threadx/ThreadXMainAnimationController.js.map +0 -1
  246. package/dist/src/render-drivers/threadx/ThreadXMainNode.d.ts +0 -46
  247. package/dist/src/render-drivers/threadx/ThreadXMainNode.js +0 -160
  248. package/dist/src/render-drivers/threadx/ThreadXMainNode.js.map +0 -1
  249. package/dist/src/render-drivers/threadx/ThreadXMainTextNode.d.ts +0 -28
  250. package/dist/src/render-drivers/threadx/ThreadXMainTextNode.js +0 -55
  251. package/dist/src/render-drivers/threadx/ThreadXMainTextNode.js.map +0 -1
  252. package/dist/src/render-drivers/threadx/ThreadXRendererMessage.d.ts +0 -70
  253. package/dist/src/render-drivers/threadx/ThreadXRendererMessage.js +0 -32
  254. package/dist/src/render-drivers/threadx/ThreadXRendererMessage.js.map +0 -1
  255. package/dist/src/render-drivers/threadx/worker/ThreadXRendererNode.d.ts +0 -19
  256. package/dist/src/render-drivers/threadx/worker/ThreadXRendererNode.js +0 -184
  257. package/dist/src/render-drivers/threadx/worker/ThreadXRendererNode.js.map +0 -1
  258. package/dist/src/render-drivers/threadx/worker/ThreadXRendererTextNode.d.ts +0 -27
  259. package/dist/src/render-drivers/threadx/worker/ThreadXRendererTextNode.js +0 -109
  260. package/dist/src/render-drivers/threadx/worker/ThreadXRendererTextNode.js.map +0 -1
  261. package/dist/src/render-drivers/threadx/worker/renderer.d.ts +0 -1
  262. package/dist/src/render-drivers/threadx/worker/renderer.js +0 -147
  263. package/dist/src/render-drivers/threadx/worker/renderer.js.map +0 -1
  264. package/dist/src/render-drivers/utils.d.ts +0 -12
  265. package/dist/src/render-drivers/utils.js +0 -74
  266. package/dist/src/render-drivers/utils.js.map +0 -1
  267. package/exports/core-api.ts +0 -102
  268. package/exports/main-api.ts +0 -62
  269. package/src/core/CoreExtension.ts +0 -32
  270. package/src/main-api/ICoreDriver.ts +0 -68
  271. package/src/main-api/RendererMain.ts +0 -685
  272. package/src/main-api/texture-usage-trackers/FinalizationRegistryTextureUsageTracker.ts +0 -45
  273. package/src/main-api/texture-usage-trackers/ManualCountTextureUsageTracker.ts +0 -154
  274. package/src/main-api/texture-usage-trackers/TextureUsageTracker.ts +0 -54
  275. package/src/render-drivers/main/MainCoreDriver.ts +0 -159
  276. package/src/render-drivers/main/MainOnlyNode.ts +0 -553
  277. package/src/render-drivers/main/MainOnlyTextNode.ts +0 -261
  278. package/src/render-drivers/threadx/NodeStruct.ts +0 -320
  279. package/src/render-drivers/threadx/SharedNode.ts +0 -101
  280. package/src/render-drivers/threadx/TextNodeStruct.ts +0 -213
  281. package/src/render-drivers/threadx/ThreadXCoreDriver.ts +0 -291
  282. package/src/render-drivers/threadx/ThreadXMainAnimationController.ts +0 -135
  283. package/src/render-drivers/threadx/ThreadXMainNode.ts +0 -201
  284. package/src/render-drivers/threadx/ThreadXMainTextNode.ts +0 -85
  285. package/src/render-drivers/threadx/ThreadXRendererMessage.ts +0 -112
  286. package/src/render-drivers/threadx/worker/ThreadXRendererNode.ts +0 -253
  287. package/src/render-drivers/threadx/worker/ThreadXRendererTextNode.ts +0 -151
  288. package/src/render-drivers/threadx/worker/renderer.ts +0 -156
  289. package/src/render-drivers/utils.ts +0 -102
@@ -17,8 +17,7 @@
17
17
  * limitations under the License.
18
18
  */
19
19
 
20
- import type { CoreNode } from '../CoreNode.js';
21
- import type { INodeAnimatableProps } from '../../main-api/INode.js';
20
+ import { type CoreNode, type CoreNodeAnimateProps } from '../CoreNode.js';
22
21
  import { getTimingFunction } from '../utils.js';
23
22
  import { mergeColorProgress } from '../../utils.js';
24
23
  import { EventEmitter } from '../../common/EventEmitter.js';
@@ -33,26 +32,68 @@ export interface AnimationSettings {
33
32
  stopMethod: 'reverse' | 'reset' | false;
34
33
  }
35
34
 
35
+ type PropValues = {
36
+ start: number;
37
+ target: number;
38
+ };
39
+ type PropValuesMap = Record<string, Record<string, PropValues>>;
40
+
36
41
  export class CoreAnimation extends EventEmitter {
37
- public propStartValues: Partial<INodeAnimatableProps> = {};
38
- public restoreValues: Partial<INodeAnimatableProps> = {};
39
42
  public settings: AnimationSettings;
40
43
  private progress = 0;
41
44
  private delayFor = 0;
42
45
  private timingFunction: (t: number) => number | undefined;
43
- private propsList: Array<keyof INodeAnimatableProps>; //fixme - aint got not time for this
46
+
47
+ propValuesMap: PropValuesMap = {};
48
+ dynPropValuesMap: PropValuesMap | undefined = undefined;
44
49
 
45
50
  constructor(
46
51
  private node: CoreNode,
47
- private props: Partial<INodeAnimatableProps>,
52
+ private props: Partial<CoreNodeAnimateProps>,
48
53
  settings: Partial<AnimationSettings>,
49
54
  ) {
50
55
  super();
51
- this.propStartValues = {};
52
- this.propsList = Object.keys(props) as Array<keyof INodeAnimatableProps>;
53
- this.propsList.forEach((propName) => {
54
- this.propStartValues[propName] = node[propName];
55
- });
56
+
57
+ for (const key in props) {
58
+ if (key !== 'shaderProps') {
59
+ if (this.propValuesMap['props'] === undefined) {
60
+ this.propValuesMap['props'] = {};
61
+ }
62
+ this.propValuesMap['props'][key] = {
63
+ start: node[key as keyof Omit<CoreNodeAnimateProps, 'shaderProps'>],
64
+ target: props[
65
+ key as keyof Omit<CoreNodeAnimateProps, 'shaderProps'>
66
+ ] as number,
67
+ };
68
+ } else if (node.shader.type !== 'DynamicShader') {
69
+ this.propValuesMap['shaderProps'] = {};
70
+ for (const key in props.shaderProps) {
71
+ this.propValuesMap['shaderProps'][key] = {
72
+ start: node.shader.props[key] as number,
73
+ target: props.shaderProps[key] as number,
74
+ };
75
+ }
76
+ } else {
77
+ const shaderPropKeys = Object.keys(props.shaderProps!);
78
+ const spLength = shaderPropKeys.length;
79
+ this.dynPropValuesMap = {};
80
+ for (let j = 0; j < spLength; j++) {
81
+ const effectName = shaderPropKeys[j]!;
82
+ const effect = props.shaderProps![effectName]!;
83
+ this.dynPropValuesMap[effectName] = {};
84
+ const effectProps = Object.entries(effect);
85
+ const eLength = effectProps.length;
86
+
87
+ for (let k = 0; k < eLength; k++) {
88
+ const [key, value] = effectProps[k]!;
89
+ this.dynPropValuesMap[effectName]![key] = {
90
+ start: node.shader.props[effectName][key],
91
+ target: value,
92
+ };
93
+ }
94
+ }
95
+ }
96
+ }
56
97
 
57
98
  const easing = settings.easing || 'linear';
58
99
  const delay = settings.delay ?? 0;
@@ -75,28 +116,82 @@ export class CoreAnimation extends EventEmitter {
75
116
  this.update(0);
76
117
  }
77
118
 
119
+ private restoreValues(
120
+ target: Record<string, number>,
121
+ valueMap: Record<string, PropValues>,
122
+ ) {
123
+ const entries = Object.entries(valueMap);
124
+ const eLength = entries.length;
125
+
126
+ for (let i = 0; i < eLength; i++) {
127
+ const [key, value] = entries[i]!;
128
+ target[key] = value.start;
129
+ }
130
+ }
131
+
78
132
  restore() {
79
133
  this.reset();
80
- (Object.keys(this.props) as Array<keyof INodeAnimatableProps>).forEach(
81
- (propName) => {
82
- this.node[propName] = this.propStartValues[propName] as number;
83
- },
84
- );
134
+ if (this.propValuesMap['props'] !== undefined) {
135
+ this.restoreValues(
136
+ this.node as unknown as Record<string, number>,
137
+ this.propValuesMap['props'],
138
+ );
139
+ }
140
+ if (this.propValuesMap['shaderProps'] !== undefined) {
141
+ this.restoreValues(
142
+ this.node.shader.props as Record<string, number>,
143
+ this.propValuesMap['shaderProps'],
144
+ );
145
+ }
146
+
147
+ if (this.dynPropValuesMap !== undefined) {
148
+ const dynEntries = Object.keys(this.dynPropValuesMap);
149
+ const dynEntriesL = dynEntries.length;
150
+ if (dynEntriesL > 0) {
151
+ for (let i = 0; i < dynEntriesL; i++) {
152
+ const key = dynEntries[i]!;
153
+ this.restoreValues(
154
+ this.node.shader.props[key],
155
+ this.dynPropValuesMap[key]!,
156
+ );
157
+ }
158
+ }
159
+ }
160
+ }
161
+
162
+ private reverseValues(valueMap: Record<string, PropValues>) {
163
+ const entries = Object.entries(valueMap);
164
+ const eLength = entries.length;
165
+
166
+ for (let i = 0; i < eLength; i++) {
167
+ const [key, value] = entries[i]!;
168
+ valueMap[key] = {
169
+ start: value.target,
170
+ target: value.start,
171
+ };
172
+ }
85
173
  }
86
174
 
87
175
  reverse() {
88
176
  this.progress = 0;
89
- (Object.keys(this.props) as Array<keyof INodeAnimatableProps>).forEach(
90
- (propName) => {
91
- // set the start value to the current value
92
- const startValue = this.props[propName];
93
- const endValue = this.propStartValues[propName] as number;
94
-
95
- // swap the start and end values
96
- this.props[propName] = endValue;
97
- this.propStartValues[propName] = startValue;
98
- },
99
- );
177
+
178
+ if (this.propValuesMap['props'] !== undefined) {
179
+ this.reverseValues(this.propValuesMap['props']);
180
+ }
181
+ if (this.propValuesMap['shaderProps'] !== undefined) {
182
+ this.reverseValues(this.propValuesMap['shaderProps']);
183
+ }
184
+
185
+ if (this.dynPropValuesMap !== undefined) {
186
+ const dynEntries = Object.keys(this.dynPropValuesMap);
187
+ const dynEntriesL = dynEntries.length;
188
+ if (dynEntriesL > 0) {
189
+ for (let i = 0; i < dynEntriesL; i++) {
190
+ const key = dynEntries[i]!;
191
+ this.reverseValues(this.dynPropValuesMap[key]!);
192
+ }
193
+ }
194
+ }
100
195
 
101
196
  // restore stop method if we are not looping
102
197
  if (!this.settings.loop) {
@@ -108,6 +203,53 @@ export class CoreAnimation extends EventEmitter {
108
203
  return (this.timingFunction(p) || p) * (e - s) + s;
109
204
  }
110
205
 
206
+ updateValue(
207
+ propName: string,
208
+ propValue: number,
209
+ startValue: number,
210
+ easing: string | undefined,
211
+ ): number {
212
+ if (this.progress === 1) {
213
+ return propValue;
214
+ }
215
+ if (this.progress === 0) {
216
+ return startValue;
217
+ }
218
+
219
+ const endValue = propValue;
220
+ if (propName.indexOf('color') !== -1) {
221
+ if (startValue === endValue) {
222
+ return startValue;
223
+ }
224
+
225
+ if (easing) {
226
+ const easingProgressValue =
227
+ this.timingFunction(this.progress) || this.progress;
228
+ return mergeColorProgress(startValue, endValue, easingProgressValue);
229
+ }
230
+ return mergeColorProgress(startValue, endValue, this.progress);
231
+ }
232
+
233
+ if (easing) {
234
+ return this.applyEasing(this.progress, startValue, endValue);
235
+ }
236
+ return startValue + (endValue - startValue) * this.progress;
237
+ }
238
+
239
+ private updateValues(
240
+ target: Record<string, number>,
241
+ valueMap: Record<string, PropValues>,
242
+ easing: string | undefined,
243
+ ) {
244
+ const entries = Object.entries(valueMap);
245
+ const eLength = entries.length;
246
+
247
+ for (let i = 0; i < eLength; i++) {
248
+ const [key, value] = entries[i]!;
249
+ target[key] = this.updateValue(key, value.target, value.start, easing);
250
+ }
251
+ }
252
+
111
253
  update(dt: number) {
112
254
  const { duration, loop, easing, stopMethod } = this.settings;
113
255
  const { delayFor } = this;
@@ -153,51 +295,36 @@ export class CoreAnimation extends EventEmitter {
153
295
  }
154
296
  }
155
297
 
156
- for (let i = 0; i < this.propsList.length; i++) {
157
- const propName = this.propsList[i] as keyof INodeAnimatableProps;
158
- const propValue = this.props[propName] as number;
159
- const startValue = this.propStartValues[propName] as number;
160
- const endValue = propValue;
161
-
162
- if (propName.indexOf('color') !== -1) {
163
- // check if we have to change the color to begin with
164
- if (startValue === endValue) {
165
- this.node[propName] = startValue;
166
- continue;
167
- }
298
+ if (this.propValuesMap['props'] !== undefined) {
299
+ this.updateValues(
300
+ this.node as unknown as Record<string, number>,
301
+ this.propValuesMap['props'],
302
+ easing,
303
+ );
304
+ }
305
+ if (this.propValuesMap['shaderProps'] !== undefined) {
306
+ this.updateValues(
307
+ this.node.shader.props as Record<string, number>,
308
+ this.propValuesMap['shaderProps'],
309
+ easing,
310
+ );
311
+ }
168
312
 
169
- if (easing) {
170
- const easingProgressValue =
171
- this.timingFunction(this.progress) || this.progress;
172
- const easingColorValue = mergeColorProgress(
173
- startValue,
174
- endValue,
175
- easingProgressValue,
313
+ if (this.dynPropValuesMap !== undefined) {
314
+ const dynEntries = Object.keys(this.dynPropValuesMap);
315
+ const dynEntriesL = dynEntries.length;
316
+ if (dynEntriesL > 0) {
317
+ for (let i = 0; i < dynEntriesL; i++) {
318
+ const key = dynEntries[i]!;
319
+ this.updateValues(
320
+ this.node.shader.props[key],
321
+ this.dynPropValuesMap[key]!,
322
+ easing,
176
323
  );
177
- this.node[propName] = easingColorValue;
178
- continue;
179
324
  }
180
-
181
- this.node[propName] = mergeColorProgress(
182
- startValue,
183
- endValue,
184
- this.progress,
185
- );
186
- continue;
187
325
  }
188
-
189
- if (easing) {
190
- this.node[propName] = this.applyEasing(
191
- this.progress,
192
- startValue,
193
- endValue,
194
- );
195
- continue;
196
- }
197
-
198
- this.node[propName] =
199
- startValue + (endValue - startValue) * this.progress;
200
326
  }
327
+
201
328
  if (this.progress === 1) {
202
329
  this.emit('finished', {});
203
330
  }
@@ -20,6 +20,84 @@
20
20
  import { type TextureData } from '../textures/Texture.js';
21
21
 
22
22
  type MessageCallback = [(value: any) => void, (reason: any) => void];
23
+ interface getImageReturn {
24
+ data: ImageBitmap;
25
+ premultiplyAlpha: boolean | null;
26
+ }
27
+
28
+ /**
29
+ * Note that, within the createImageWorker function, we must only use ES5 code to keep it ES5-valid after babelifying, as
30
+ * the converted code of this section is converted to a blob and used as the js of the web worker thread.
31
+ *
32
+ * The createImageWorker function is a web worker that fetches an image from a URL and returns an ImageBitmap object.
33
+ * The eslint @typescript rule is disabled for the entire function because the function is converted to a blob and used as the
34
+ * js of the web worker thread, so the typescript syntax is not valid in this context.
35
+ */
36
+
37
+ /* eslint-disable */
38
+ const createImageWorker = function worker() {
39
+ function hasAlphaChannel(mimeType: string) {
40
+ return mimeType.indexOf('image/png') !== -1;
41
+ }
42
+
43
+ function getImage(
44
+ src: string,
45
+ premultiplyAlpha: boolean | null,
46
+ ): Promise<getImageReturn> {
47
+ return new Promise(function (resolve, reject) {
48
+ var xhr = new XMLHttpRequest();
49
+ xhr.open('GET', src, true);
50
+ xhr.responseType = 'blob';
51
+
52
+ xhr.onload = function () {
53
+ if (xhr.status !== 200) {
54
+ return reject(new Error('Failed to load image: ' + xhr.statusText));
55
+ }
56
+
57
+ var blob = xhr.response;
58
+ var withAlphaChannel =
59
+ premultiplyAlpha !== undefined
60
+ ? premultiplyAlpha
61
+ : hasAlphaChannel(blob.type);
62
+
63
+ createImageBitmap(blob, {
64
+ premultiplyAlpha: withAlphaChannel ? 'premultiply' : 'none',
65
+ colorSpaceConversion: 'none',
66
+ imageOrientation: 'none',
67
+ })
68
+ .then(function (data) {
69
+ resolve({ data, premultiplyAlpha: premultiplyAlpha });
70
+ })
71
+ .catch(function (error) {
72
+ reject(error);
73
+ });
74
+ };
75
+
76
+ xhr.onerror = function () {
77
+ reject(
78
+ new Error('Network error occurred while trying to fetch the image.'),
79
+ );
80
+ };
81
+
82
+ xhr.send();
83
+ });
84
+ }
85
+
86
+ self.onmessage = (event) => {
87
+ var src = event.data.src;
88
+ var id = event.data.id;
89
+ var premultiplyAlpha = event.data.premultiplyAlpha;
90
+
91
+ getImage(src, premultiplyAlpha)
92
+ .then(function (data) {
93
+ self.postMessage({ id: id, src: src, data: data });
94
+ })
95
+ .catch(function (error) {
96
+ self.postMessage({ id: id, src: src, error: error.message });
97
+ });
98
+ };
99
+ };
100
+ /* eslint-enable */
23
101
 
24
102
  export class ImageWorkerManager {
25
103
  imageWorkersEnabled = true;
@@ -55,58 +133,7 @@ export class ImageWorkerManager {
55
133
  }
56
134
 
57
135
  private createWorkers(numWorkers = 1): Worker[] {
58
- const workerCode = `
59
- function hasAlphaChannel(mimeType) {
60
- return (mimeType.indexOf("image/png") !== -1);
61
- }
62
-
63
- function getImage(src, premultiplyAlpha) {
64
- return new Promise(function(resolve, reject) {
65
- var xhr = new XMLHttpRequest();
66
- xhr.open('GET', src, true);
67
- xhr.responseType = 'blob';
68
-
69
- xhr.onload = function() {
70
- if (xhr.status === 200) {
71
- var blob = xhr.response;
72
- var hasAlphaChannel = premultiplyAlpha !== undefined ? premultiplyAlpha : hasAlphaChannel(blob.type);
73
-
74
- createImageBitmap(blob, {
75
- premultiplyAlpha: hasAlphaChannel ? 'premultiply' : 'none',
76
- colorSpaceConversion: 'none',
77
- imageOrientation: 'none'
78
- }).then(function(data) {
79
- resolve({ data: data, premultiplyAlpha: premultiplyAlpha });
80
- }).catch(function(error) {
81
- reject(error);
82
- });
83
- } else {
84
- reject(new Error('Failed to load image: ' + xhr.statusText));
85
- }
86
- };
87
-
88
- xhr.onerror = function() {
89
- reject(new Error('Network error occurred while trying to fetch the image.'));
90
- };
91
-
92
- xhr.send();
93
- });
94
- }
95
-
96
- self.onmessage = (event) => {
97
- var id = event.data.id;
98
- var src = event.data.src;
99
- var premultiplyAlpha = event.data.premultiplyAlpha;
100
-
101
- getImage(src, premultiplyAlpha)
102
- .then(function(data) {
103
- self.postMessage({ id: id, data: data }, [data.data]);
104
- })
105
- .catch(function(error) {
106
- self.postMessage({ id: id, error: error.message });
107
- });
108
- };
109
- `;
136
+ const workerCode = `${createImageWorker.toString()} worker()`;
110
137
 
111
138
  const blob: Blob = new Blob([workerCode.replace('"use strict";', '')], {
112
139
  type: 'application/javascript',
@@ -20,6 +20,7 @@
20
20
  export const PROTOCOL_REGEX = /^(data|ftps?|https?):/;
21
21
 
22
22
  export type RGBA = [r: number, g: number, b: number, a: number];
23
+
23
24
  export const getNormalizedRgbaComponents = (rgba: number): RGBA => {
24
25
  const r = rgba >>> 24;
25
26
  const g = (rgba >>> 16) & 0xff;
@@ -25,21 +25,28 @@ import type { Stage } from './Stage.js';
25
25
  export const startLoop = (stage: Stage) => {
26
26
  let isIdle = false;
27
27
  const runLoop = () => {
28
+ stage.updateFrameTime();
28
29
  stage.updateAnimations();
29
30
 
30
31
  if (!stage.hasSceneUpdates()) {
31
32
  // We still need to calculate the fps else it looks like the app is frozen
32
33
  stage.calculateFps();
33
34
  setTimeout(runLoop, 16.666666666666668);
35
+
34
36
  if (!isIdle) {
35
- stage.emit('idle');
37
+ if (stage.txMemManager.checkCleanup()) {
38
+ stage.txMemManager.cleanup();
39
+ }
40
+ stage.eventBus.emit('idle');
36
41
  isIdle = true;
37
42
  }
43
+ stage.flushFrameEvents();
38
44
  return;
39
45
  }
40
46
 
41
47
  isIdle = false;
42
48
  stage.drawFrame();
49
+ stage.flushFrameEvents();
43
50
  requestAnimationFrame(runLoop);
44
51
  };
45
52
  requestAnimationFrame(runLoop);
@@ -21,15 +21,22 @@ import type { TextureMemoryManager } from '../TextureMemoryManager.js';
21
21
  import type { Texture } from '../textures/Texture.js';
22
22
 
23
23
  export abstract class CoreContextTexture {
24
- readonly memManager: TextureMemoryManager;
25
24
  readonly textureSource: Texture;
25
+ private memManager: TextureMemoryManager;
26
26
 
27
27
  constructor(memManager: TextureMemoryManager, textureSource: Texture) {
28
28
  this.memManager = memManager;
29
29
  this.textureSource = textureSource;
30
30
  }
31
31
 
32
+ protected setTextureMemUse(byteSize: number): void {
33
+ this.memManager.setTextureMemUse(this.textureSource, byteSize);
34
+ }
35
+
32
36
  abstract load(): void;
33
37
  abstract free(): void;
34
- abstract get renderable(): boolean;
38
+
39
+ get renderable(): boolean {
40
+ return this.textureSource.renderable;
41
+ }
35
42
  }
@@ -18,6 +18,7 @@
18
18
  */
19
19
 
20
20
  import type { Dimensions } from '../../common/CommonTypes.js';
21
+ import type { BaseShaderController } from '../../main-api/ShaderController.js';
21
22
  import type { CoreNode } from '../CoreNode.js';
22
23
  import type { CoreShaderManager } from '../CoreShaderManager.js';
23
24
  import type {
@@ -27,8 +28,8 @@ import type {
27
28
  import type { Stage } from '../Stage.js';
28
29
  import type { TextureMemoryManager } from '../TextureMemoryManager.js';
29
30
  import type { ContextSpy } from '../lib/ContextSpy.js';
31
+ import type { RenderCoords } from '../lib/RenderCoords.js';
30
32
  import type { RectWithValid } from '../lib/utils.js';
31
- import { ColorTexture } from '../textures/ColorTexture.js';
32
33
  import type { Texture } from '../textures/Texture.js';
33
34
  import { CoreContextTexture } from './CoreContextTexture.js';
34
35
  import type { CoreShader } from './CoreShader.js';
@@ -53,6 +54,7 @@ export interface QuadOptions {
53
54
  tb: number;
54
55
  tc: number;
55
56
  td: number;
57
+ renderCoords?: RenderCoords;
56
58
  rtt?: boolean;
57
59
  parentHasRenderTexture?: boolean;
58
60
  framebufferDimensions?: Dimensions;
@@ -74,7 +76,7 @@ export abstract class CoreRenderer {
74
76
  public options: CoreRendererOptions;
75
77
  public mode: 'webgl' | 'canvas' | undefined;
76
78
 
77
- protected stage: Stage;
79
+ readonly stage: Stage;
78
80
 
79
81
  //// Core Managers
80
82
  txManager: CoreTextureManager;
@@ -100,4 +102,5 @@ export abstract class CoreRenderer {
100
102
  abstract renderRTTNodes(): void;
101
103
  abstract removeRTTNode(node: CoreNode): void;
102
104
  abstract renderToTexture(node: CoreNode): void;
105
+ abstract getDefShaderCtr(): BaseShaderController;
103
106
  }
@@ -17,6 +17,7 @@
17
17
  * limitations under the License.
18
18
  */
19
19
 
20
+ import type { BaseShaderController } from '../../../main-api/ShaderController.js';
20
21
  import type { CoreNode } from '../../CoreNode.js';
21
22
  import type { CoreShaderManager } from '../../CoreShaderManager.js';
22
23
  import { getRgbaComponents, type RGBA } from '../../lib/utils.js';
@@ -35,6 +36,7 @@ import {
35
36
  parseColor,
36
37
  type IParsedColor,
37
38
  } from './internal/ColorUtils.js';
39
+ import { UnsupportedShader } from './shaders/UnsupportedShader.js';
38
40
 
39
41
  export class CanvasCoreRenderer extends CoreRenderer {
40
42
  private context: CanvasRenderingContext2D;
@@ -43,6 +45,8 @@ export class CanvasCoreRenderer extends CoreRenderer {
43
45
  private clearColor: RGBA | undefined;
44
46
  public renderToTextureActive = false;
45
47
  activeRttNode: CoreNode | null = null;
48
+ private defShaderCtr: BaseShaderController;
49
+
46
50
  constructor(options: CoreRendererOptions) {
47
51
  super(options);
48
52
 
@@ -54,6 +58,17 @@ export class CanvasCoreRenderer extends CoreRenderer {
54
58
  this.context = canvas.getContext('2d') as CanvasRenderingContext2D;
55
59
  this.pixelRatio = pixelRatio;
56
60
  this.clearColor = clearColor ? getRgbaComponents(clearColor) : undefined;
61
+
62
+ // Stub for default shader controller since the canvas renderer does not
63
+ // (really) support the concept of a shader (yet)
64
+ this.defShaderCtr = {
65
+ type: 'DefaultShader',
66
+ props: {},
67
+ shader: new UnsupportedShader('DefaultShader'),
68
+ getResolvedProps: () => () => {
69
+ return {};
70
+ },
71
+ };
57
72
  }
58
73
 
59
74
  reset(): void {
@@ -104,7 +119,7 @@ export class CanvasCoreRenderer extends CoreRenderer {
104
119
  texture = texture.parentTexture;
105
120
  }
106
121
 
107
- ctxTexture = this.txManager.getCtxTexture(texture) as CanvasCoreTexture;
122
+ ctxTexture = texture.ctxTexture as CanvasCoreTexture;
108
123
  if (texture.state === 'freed') {
109
124
  ctxTexture.load();
110
125
  return;
@@ -209,6 +224,10 @@ export class CanvasCoreRenderer extends CoreRenderer {
209
224
  return this.shManager;
210
225
  }
211
226
 
227
+ override getDefShaderCtr(): BaseShaderController {
228
+ return this.defShaderCtr;
229
+ }
230
+
212
231
  renderRTTNodes(): void {
213
232
  // noop
214
233
  }
@@ -50,7 +50,7 @@ export class CanvasCoreTexture extends CoreContextTexture {
50
50
  this.image = undefined;
51
51
  this.tintCache = undefined;
52
52
  this.textureSource.setState('freed');
53
- this.memManager.setTextureMemUse(this, 0);
53
+ this.setTextureMemUse(0);
54
54
  }
55
55
 
56
56
  updateMemSize(): void {
@@ -60,7 +60,7 @@ export class CanvasCoreTexture extends CoreContextTexture {
60
60
  const mult = this.tintCache ? 8 : 4;
61
61
  if (this.textureSource.dimensions) {
62
62
  const { width, height } = this.textureSource.dimensions;
63
- this.memManager.setTextureMemUse(this, width * height * mult);
63
+ this.setTextureMemUse(width * height * mult);
64
64
  }
65
65
  }
66
66
 
@@ -119,10 +119,6 @@ export class CanvasCoreTexture extends CoreContextTexture {
119
119
  return canvas;
120
120
  }
121
121
 
122
- get renderable(): boolean {
123
- return this.textureSource.renderable;
124
- }
125
-
126
122
  private async onLoadRequest(): Promise<Dimensions> {
127
123
  const { data } = await this.textureSource.getTextureData();
128
124
  // TODO: canvas from text renderer should be able to provide the canvas directly
@@ -42,7 +42,7 @@ export class WebGlCoreCtxRenderTexture extends WebGlCoreCtxTexture {
42
42
  }
43
43
 
44
44
  override async onLoadRequest(): Promise<Dimensions> {
45
- const { glw, memManager } = this;
45
+ const { glw } = this;
46
46
  const nativeTexture = (this._nativeCtxTexture =
47
47
  this.createNativeCtxTexture());
48
48
  const { width, height } = this.textureSource;
@@ -60,7 +60,7 @@ export class WebGlCoreCtxRenderTexture extends WebGlCoreCtxTexture {
60
60
  );
61
61
 
62
62
  // Update the texture memory manager
63
- memManager.setTextureMemUse(this, width * height * 4);
63
+ this.setTextureMemUse(width * height * 4);
64
64
 
65
65
  // Bind the framebuffer
66
66
  glw.bindFramebuffer(this.framebuffer);