@lightningjs/renderer 3.0.0-beta1 → 3.0.0-beta11

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (490) hide show
  1. package/README.md +13 -27
  2. package/dist/exports/canvas.d.ts +1 -1
  3. package/dist/exports/canvas.js +1 -1
  4. package/dist/exports/canvas.js.map +1 -1
  5. package/dist/exports/index.d.ts +1 -5
  6. package/dist/exports/index.js +1 -5
  7. package/dist/exports/index.js.map +1 -1
  8. package/dist/exports/utils.d.ts +2 -1
  9. package/dist/exports/utils.js +2 -1
  10. package/dist/exports/utils.js.map +1 -1
  11. package/dist/exports/webgl.d.ts +2 -1
  12. package/dist/exports/webgl.js +2 -1
  13. package/dist/exports/webgl.js.map +1 -1
  14. package/dist/src/core/CoreNode.d.ts +45 -69
  15. package/dist/src/core/CoreNode.js +323 -305
  16. package/dist/src/core/CoreNode.js.map +1 -1
  17. package/dist/src/core/CoreShaderManager.d.ts +3 -5
  18. package/dist/src/core/CoreShaderManager.js.map +1 -1
  19. package/dist/src/core/CoreTextNode.d.ts +61 -87
  20. package/dist/src/core/CoreTextNode.js +276 -235
  21. package/dist/src/core/CoreTextNode.js.map +1 -1
  22. package/dist/src/core/CoreTextureManager.d.ts +9 -11
  23. package/dist/src/core/CoreTextureManager.js +80 -91
  24. package/dist/src/core/CoreTextureManager.js.map +1 -1
  25. package/dist/src/core/Stage.d.ts +75 -31
  26. package/dist/src/core/Stage.js +270 -136
  27. package/dist/src/core/Stage.js.map +1 -1
  28. package/dist/src/core/TextureMemoryManager.d.ts +10 -1
  29. package/dist/src/core/TextureMemoryManager.js +112 -78
  30. package/dist/src/core/TextureMemoryManager.js.map +1 -1
  31. package/dist/src/core/animations/CoreAnimation.js +5 -0
  32. package/dist/src/core/animations/CoreAnimation.js.map +1 -1
  33. package/dist/src/core/animations/CoreAnimationController.d.ts +1 -0
  34. package/dist/src/core/animations/CoreAnimationController.js +11 -4
  35. package/dist/src/core/animations/CoreAnimationController.js.map +1 -1
  36. package/dist/src/core/lib/ImageWorker.js +3 -2
  37. package/dist/src/core/lib/ImageWorker.js.map +1 -1
  38. package/dist/src/core/lib/RenderCoords.d.ts +9 -10
  39. package/dist/src/core/lib/RenderCoords.js +43 -55
  40. package/dist/src/core/lib/RenderCoords.js.map +1 -1
  41. package/dist/src/core/lib/WebGlContextWrapper.d.ts +51 -2
  42. package/dist/src/core/lib/WebGlContextWrapper.js +92 -22
  43. package/dist/src/core/lib/WebGlContextWrapper.js.map +1 -1
  44. package/dist/src/core/lib/colorCache.d.ts +1 -0
  45. package/dist/src/core/lib/colorCache.js +19 -0
  46. package/dist/src/core/lib/colorCache.js.map +1 -0
  47. package/dist/src/core/lib/colorParser.d.ts +21 -0
  48. package/dist/src/core/lib/colorParser.js +72 -0
  49. package/dist/src/core/lib/colorParser.js.map +1 -0
  50. package/dist/src/core/lib/utils.d.ts +3 -0
  51. package/dist/src/core/lib/utils.js +42 -0
  52. package/dist/src/core/lib/utils.js.map +1 -1
  53. package/dist/src/core/lib/validateImageBitmap.d.ts +2 -1
  54. package/dist/src/core/lib/validateImageBitmap.js +4 -4
  55. package/dist/src/core/lib/validateImageBitmap.js.map +1 -1
  56. package/dist/src/core/platform.js +29 -4
  57. package/dist/src/core/platform.js.map +1 -1
  58. package/dist/src/core/platforms/Platform.d.ts +37 -0
  59. package/dist/src/{main-api/IRenderDriver.js → core/platforms/Platform.js} +4 -2
  60. package/dist/src/core/platforms/Platform.js.map +1 -0
  61. package/dist/src/core/platforms/web/WebPlatform.d.ts +9 -0
  62. package/dist/src/core/platforms/web/WebPlatform.js +84 -0
  63. package/dist/src/core/platforms/web/WebPlatform.js.map +1 -0
  64. package/dist/src/core/renderers/CoreContextTexture.d.ts +1 -1
  65. package/dist/src/core/renderers/CoreRenderer.d.ts +5 -2
  66. package/dist/src/core/renderers/CoreRenderer.js.map +1 -1
  67. package/dist/src/core/renderers/CoreShaderNode.d.ts +3 -3
  68. package/dist/src/core/renderers/CoreShaderNode.js +8 -2
  69. package/dist/src/core/renderers/CoreShaderNode.js.map +1 -1
  70. package/dist/src/core/renderers/canvas/CanvasCoreTexture.d.ts +1 -1
  71. package/dist/src/core/renderers/canvas/CanvasCoreTexture.js +7 -6
  72. package/dist/src/core/renderers/canvas/CanvasCoreTexture.js.map +1 -1
  73. package/dist/src/core/renderers/canvas/CanvasRenderer.d.ts +1 -2
  74. package/dist/src/core/renderers/canvas/CanvasRenderer.js +10 -21
  75. package/dist/src/core/renderers/canvas/CanvasRenderer.js.map +1 -1
  76. package/dist/src/core/renderers/canvas/CanvasShaderNode.js +3 -5
  77. package/dist/src/core/renderers/canvas/CanvasShaderNode.js.map +1 -1
  78. package/dist/src/core/renderers/canvas/CanvasTexture.d.ts +2 -2
  79. package/dist/src/core/renderers/canvas/CanvasTexture.js +11 -9
  80. package/dist/src/core/renderers/canvas/CanvasTexture.js.map +1 -1
  81. package/dist/src/core/renderers/canvas/internal/C2DShaderUtils.d.ts +13 -0
  82. package/dist/src/core/renderers/canvas/internal/C2DShaderUtils.js +113 -192
  83. package/dist/src/core/renderers/canvas/internal/C2DShaderUtils.js.map +1 -1
  84. package/dist/src/core/renderers/canvas/internal/ColorUtils.d.ts +0 -2
  85. package/dist/src/core/renderers/canvas/internal/ColorUtils.js +0 -14
  86. package/dist/src/core/renderers/canvas/internal/ColorUtils.js.map +1 -1
  87. package/dist/src/core/renderers/webgl/WebGlCoreCtxRenderTexture.js +3 -0
  88. package/dist/src/core/renderers/webgl/WebGlCoreCtxRenderTexture.js.map +1 -1
  89. package/dist/src/core/renderers/webgl/WebGlCoreCtxTexture.d.ts +5 -6
  90. package/dist/src/core/renderers/webgl/WebGlCoreCtxTexture.js +30 -18
  91. package/dist/src/core/renderers/webgl/WebGlCoreCtxTexture.js.map +1 -1
  92. package/dist/src/core/renderers/webgl/WebGlCoreRenderer.js +5 -2
  93. package/dist/src/core/renderers/webgl/WebGlCoreRenderer.js.map +1 -1
  94. package/dist/src/core/renderers/webgl/WebGlCoreShader.js +3 -1
  95. package/dist/src/core/renderers/webgl/WebGlCoreShader.js.map +1 -1
  96. package/dist/src/core/renderers/webgl/WebGlCtxRenderTexture.js +3 -0
  97. package/dist/src/core/renderers/webgl/WebGlCtxRenderTexture.js.map +1 -1
  98. package/dist/src/core/renderers/webgl/WebGlCtxTexture.d.ts +5 -6
  99. package/dist/src/core/renderers/webgl/WebGlCtxTexture.js +30 -21
  100. package/dist/src/core/renderers/webgl/WebGlCtxTexture.js.map +1 -1
  101. package/dist/src/core/renderers/webgl/WebGlRenderOp.d.ts +10 -2
  102. package/dist/src/core/renderers/webgl/WebGlRenderOp.js +37 -19
  103. package/dist/src/core/renderers/webgl/WebGlRenderOp.js.map +1 -1
  104. package/dist/src/core/renderers/webgl/WebGlRenderer.d.ts +5 -3
  105. package/dist/src/core/renderers/webgl/WebGlRenderer.js +144 -117
  106. package/dist/src/core/renderers/webgl/WebGlRenderer.js.map +1 -1
  107. package/dist/src/core/renderers/webgl/WebGlShaderNode.d.ts +2 -1
  108. package/dist/src/core/renderers/webgl/WebGlShaderNode.js +1 -4
  109. package/dist/src/core/renderers/webgl/WebGlShaderNode.js.map +1 -1
  110. package/dist/src/core/renderers/webgl/WebGlShaderProgram.d.ts +5 -3
  111. package/dist/src/core/renderers/webgl/WebGlShaderProgram.js +55 -31
  112. package/dist/src/core/renderers/webgl/WebGlShaderProgram.js.map +1 -1
  113. package/dist/src/core/shaders/canvas/Border.js +1 -1
  114. package/dist/src/core/shaders/canvas/Border.js.map +1 -1
  115. package/dist/src/core/shaders/canvas/LinearGradient.js +5 -3
  116. package/dist/src/core/shaders/canvas/LinearGradient.js.map +1 -1
  117. package/dist/src/core/shaders/canvas/RadialGradient.js +13 -11
  118. package/dist/src/core/shaders/canvas/RadialGradient.js.map +1 -1
  119. package/dist/src/core/shaders/canvas/RoundedWithBorder.js +14 -6
  120. package/dist/src/core/shaders/canvas/RoundedWithBorder.js.map +1 -1
  121. package/dist/src/core/shaders/canvas/RoundedWithBorderAndShadow.js +10 -8
  122. package/dist/src/core/shaders/canvas/RoundedWithBorderAndShadow.js.map +1 -1
  123. package/dist/src/core/shaders/canvas/RoundedWithShadow.js +7 -5
  124. package/dist/src/core/shaders/canvas/RoundedWithShadow.js.map +1 -1
  125. package/dist/src/core/shaders/templates/BorderTemplate.d.ts +1 -1
  126. package/dist/src/core/shaders/templates/BorderTemplate.js +1 -1
  127. package/dist/src/core/shaders/templates/BorderTemplate.js.map +1 -1
  128. package/dist/src/core/shaders/templates/HolePunchTemplate.js +1 -1
  129. package/dist/src/core/shaders/templates/HolePunchTemplate.js.map +1 -1
  130. package/dist/src/core/shaders/templates/RoundedTemplate.js +1 -1
  131. package/dist/src/core/shaders/templates/RoundedTemplate.js.map +1 -1
  132. package/dist/src/core/shaders/templates/RoundedWithBorderAndShadowTemplate.d.ts +1 -1
  133. package/dist/src/core/shaders/templates/RoundedWithBorderTemplate.d.ts +1 -1
  134. package/dist/src/core/shaders/templates/RoundedWithShadowTemplate.d.ts +1 -1
  135. package/dist/src/core/shaders/templates/ShadowTemplate.d.ts +1 -1
  136. package/dist/src/core/shaders/utils.d.ts +5 -0
  137. package/dist/src/core/shaders/utils.js +41 -0
  138. package/dist/src/core/shaders/utils.js.map +1 -0
  139. package/dist/src/core/shaders/webgl/Border.js +57 -34
  140. package/dist/src/core/shaders/webgl/Border.js.map +1 -1
  141. package/dist/src/core/shaders/webgl/HolePunch.js +4 -3
  142. package/dist/src/core/shaders/webgl/HolePunch.js.map +1 -1
  143. package/dist/src/core/shaders/webgl/LinearGradient.js +5 -4
  144. package/dist/src/core/shaders/webgl/LinearGradient.js.map +1 -1
  145. package/dist/src/core/shaders/webgl/RadialGradient.js +6 -5
  146. package/dist/src/core/shaders/webgl/RadialGradient.js.map +1 -1
  147. package/dist/src/core/shaders/webgl/RoundedWithBorder.js +79 -36
  148. package/dist/src/core/shaders/webgl/RoundedWithBorder.js.map +1 -1
  149. package/dist/src/core/shaders/webgl/RoundedWithBorderAndShadow.js +92 -42
  150. package/dist/src/core/shaders/webgl/RoundedWithBorderAndShadow.js.map +1 -1
  151. package/dist/src/core/shaders/webgl/SdfShader.js +1 -1
  152. package/dist/src/core/shaders/webgl/SdfShader.js.map +1 -1
  153. package/dist/src/core/shaders/webgl/Spinner.js +2 -0
  154. package/dist/src/core/shaders/webgl/Spinner.js.map +1 -0
  155. package/dist/src/core/text-rendering/CanvasFontHandler.d.ts +41 -0
  156. package/dist/src/core/text-rendering/CanvasFontHandler.js +159 -0
  157. package/dist/src/core/text-rendering/CanvasFontHandler.js.map +1 -0
  158. package/dist/src/core/text-rendering/CanvasTextRenderer.d.ts +22 -0
  159. package/dist/src/core/text-rendering/CanvasTextRenderer.js +366 -0
  160. package/dist/src/core/text-rendering/CanvasTextRenderer.js.map +1 -0
  161. package/dist/src/core/text-rendering/SdfFontHandler.d.ts +152 -0
  162. package/dist/src/core/text-rendering/SdfFontHandler.js +368 -0
  163. package/dist/src/core/text-rendering/SdfFontHandler.js.map +1 -0
  164. package/dist/src/core/text-rendering/SdfTextRenderer.d.ts +17 -0
  165. package/dist/src/core/text-rendering/SdfTextRenderer.js +355 -0
  166. package/dist/src/core/text-rendering/SdfTextRenderer.js.map +1 -0
  167. package/dist/src/core/text-rendering/TextRenderer.d.ts +351 -0
  168. package/dist/src/{main-api/ICoreDriver.js → core/text-rendering/TextRenderer.js} +1 -1
  169. package/dist/src/core/text-rendering/TextRenderer.js.map +1 -0
  170. package/dist/src/core/text-rendering/TextTextureRendererUtils.js.map +1 -1
  171. package/dist/src/core/text-rendering/Utils.d.ts +71 -0
  172. package/dist/src/core/text-rendering/Utils.js +212 -0
  173. package/dist/src/core/text-rendering/Utils.js.map +1 -0
  174. package/dist/src/core/text-rendering/canvas/Settings.d.ts +64 -0
  175. package/dist/src/{main-api/texture-usage-trackers/TextureUsageTracker.js → core/text-rendering/canvas/Settings.js} +3 -11
  176. package/dist/src/core/text-rendering/canvas/Settings.js.map +1 -0
  177. package/dist/src/core/text-rendering/canvas/Utils.d.ts +20 -0
  178. package/dist/src/core/text-rendering/canvas/Utils.js +144 -0
  179. package/dist/src/core/text-rendering/canvas/Utils.js.map +1 -0
  180. package/dist/src/core/text-rendering/canvas/calculateRenderInfo.d.ts +60 -0
  181. package/dist/src/core/text-rendering/canvas/calculateRenderInfo.js +183 -0
  182. package/dist/src/core/text-rendering/canvas/calculateRenderInfo.js.map +1 -0
  183. package/dist/src/core/text-rendering/canvas/draw.d.ts +5 -0
  184. package/dist/src/core/text-rendering/canvas/draw.js +132 -0
  185. package/dist/src/core/text-rendering/canvas/draw.js.map +1 -0
  186. package/dist/src/core/text-rendering/font-face-types/SdfTrFontFace/SdfTrFontFace.js +2 -2
  187. package/dist/src/core/text-rendering/font-face-types/SdfTrFontFace/SdfTrFontFace.js.map +1 -1
  188. package/dist/src/core/text-rendering/renderers/LightningTextTextureRenderer.d.ts +0 -6
  189. package/dist/src/core/text-rendering/renderers/LightningTextTextureRenderer.js.map +1 -1
  190. package/dist/src/core/text-rendering/renderers/SdfTextRenderer/SdfTextRenderer.d.ts +3 -2
  191. package/dist/src/core/text-rendering/renderers/SdfTextRenderer/SdfTextRenderer.js +30 -34
  192. package/dist/src/core/text-rendering/renderers/SdfTextRenderer/SdfTextRenderer.js.map +1 -1
  193. package/dist/src/core/text-rendering/renderers/TextRenderer.d.ts +4 -1
  194. package/dist/src/core/text-rendering/renderers/TextRenderer.js.map +1 -1
  195. package/dist/src/core/text-rendering/sdf/PeekableGenerator.d.ts +12 -0
  196. package/dist/src/core/text-rendering/sdf/PeekableGenerator.js +61 -0
  197. package/dist/src/core/text-rendering/sdf/PeekableGenerator.js.map +1 -0
  198. package/dist/src/core/text-rendering/sdf/SimpleFontShaper.d.ts +45 -0
  199. package/dist/src/core/text-rendering/sdf/SimpleFontShaper.js +69 -0
  200. package/dist/src/core/text-rendering/sdf/SimpleFontShaper.js.map +1 -0
  201. package/dist/src/core/text-rendering/sdf/Utils.d.ts +26 -0
  202. package/dist/src/core/text-rendering/sdf/Utils.js +304 -0
  203. package/dist/src/core/text-rendering/sdf/Utils.js.map +1 -0
  204. package/dist/src/core/text-rendering/sdf/index.d.ts +1 -0
  205. package/dist/src/core/{CoreExtension.js → text-rendering/sdf/index.js} +3 -12
  206. package/dist/src/core/text-rendering/sdf/index.js.map +1 -0
  207. package/dist/src/core/textures/ImageTexture.d.ts +4 -3
  208. package/dist/src/core/textures/ImageTexture.js +36 -9
  209. package/dist/src/core/textures/ImageTexture.js.map +1 -1
  210. package/dist/src/core/textures/Texture.d.ts +21 -2
  211. package/dist/src/core/textures/Texture.js +37 -6
  212. package/dist/src/core/textures/Texture.js.map +1 -1
  213. package/dist/src/core/utils.d.ts +1 -1
  214. package/dist/src/main-api/INode.d.ts +2 -2
  215. package/dist/src/main-api/Inspector.d.ts +6 -1
  216. package/dist/src/main-api/Inspector.js +43 -7
  217. package/dist/src/main-api/Inspector.js.map +1 -1
  218. package/dist/src/main-api/Renderer.d.ts +122 -46
  219. package/dist/src/main-api/Renderer.js +174 -37
  220. package/dist/src/main-api/Renderer.js.map +1 -1
  221. package/dist/src/utils.d.ts +1 -6
  222. package/dist/src/utils.js +2 -9
  223. package/dist/src/utils.js.map +1 -1
  224. package/dist/tsconfig.dist.tsbuildinfo +1 -1
  225. package/exports/canvas.ts +1 -1
  226. package/exports/index.ts +1 -8
  227. package/exports/utils.ts +7 -1
  228. package/exports/webgl.ts +3 -1
  229. package/package.json +2 -3
  230. package/src/core/CoreNode.test.ts +0 -1
  231. package/src/core/CoreNode.ts +403 -388
  232. package/src/core/CoreShaderManager.ts +5 -10
  233. package/src/core/CoreTextNode.ts +337 -302
  234. package/src/core/CoreTextureManager.ts +78 -110
  235. package/src/core/Stage.ts +344 -178
  236. package/src/core/TextureMemoryManager.ts +150 -100
  237. package/src/core/animations/CoreAnimation.ts +7 -0
  238. package/src/core/animations/CoreAnimationController.ts +13 -4
  239. package/src/core/lib/ImageWorker.ts +9 -2
  240. package/src/core/lib/RenderCoords.ts +52 -67
  241. package/src/core/lib/WebGlContextWrapper.ts +125 -68
  242. package/src/core/lib/colorCache.ts +20 -0
  243. package/src/core/{renderers/canvas/internal/ColorUtils.ts → lib/colorParser.ts} +2 -2
  244. package/src/core/lib/utils.ts +51 -0
  245. package/src/core/lib/validateImageBitmap.ts +17 -6
  246. package/src/core/platforms/Platform.ts +77 -0
  247. package/src/core/platforms/web/WebPlatform.ts +121 -0
  248. package/src/core/renderers/CoreContextTexture.ts +1 -1
  249. package/src/core/renderers/CoreRenderer.ts +5 -2
  250. package/src/core/renderers/CoreShaderNode.ts +10 -6
  251. package/src/core/renderers/canvas/CanvasRenderer.ts +12 -28
  252. package/src/core/renderers/canvas/CanvasShaderNode.ts +3 -6
  253. package/src/core/renderers/canvas/CanvasTexture.ts +17 -14
  254. package/src/core/renderers/webgl/WebGlCtxRenderTexture.ts +5 -0
  255. package/src/core/renderers/webgl/WebGlCtxTexture.ts +52 -43
  256. package/src/core/renderers/webgl/WebGlRenderOp.ts +46 -24
  257. package/src/core/renderers/webgl/WebGlRenderer.ts +177 -145
  258. package/src/core/renderers/webgl/WebGlShaderNode.ts +7 -5
  259. package/src/core/renderers/webgl/WebGlShaderProgram.ts +68 -37
  260. package/src/core/shaders/canvas/Border.ts +1 -4
  261. package/src/core/shaders/canvas/LinearGradient.ts +8 -6
  262. package/src/core/shaders/canvas/RadialGradient.ts +22 -36
  263. package/src/core/shaders/canvas/RoundedWithBorder.ts +17 -11
  264. package/src/core/shaders/canvas/RoundedWithBorderAndShadow.ts +14 -12
  265. package/src/core/shaders/canvas/RoundedWithShadow.ts +8 -7
  266. package/src/core/shaders/templates/BorderTemplate.ts +1 -1
  267. package/src/core/shaders/templates/HolePunchTemplate.ts +1 -1
  268. package/src/core/shaders/templates/RoundedTemplate.ts +1 -1
  269. package/src/core/shaders/templates/RoundedWithBorderAndShadowTemplate.ts +1 -1
  270. package/src/core/shaders/templates/RoundedWithBorderTemplate.ts +1 -1
  271. package/src/core/shaders/templates/RoundedWithShadowTemplate.ts +1 -1
  272. package/src/core/shaders/templates/ShadowTemplate.ts +1 -1
  273. package/src/core/shaders/{templates/shaderUtils.ts → utils.ts} +2 -3
  274. package/src/core/shaders/webgl/Border.ts +57 -37
  275. package/src/core/shaders/webgl/HolePunch.ts +4 -7
  276. package/src/core/shaders/webgl/LinearGradient.ts +5 -4
  277. package/src/core/shaders/webgl/RadialGradient.ts +7 -6
  278. package/src/core/shaders/webgl/RoundedWithBorder.ts +80 -39
  279. package/src/core/shaders/webgl/RoundedWithBorderAndShadow.ts +92 -50
  280. package/src/core/shaders/webgl/SdfShader.ts +1 -4
  281. package/src/core/text-rendering/CanvasFontHandler.ts +210 -0
  282. package/src/core/text-rendering/CanvasTextRenderer.ts +622 -0
  283. package/src/core/text-rendering/SdfFontHandler.ts +554 -0
  284. package/src/core/text-rendering/SdfTextRenderer.ts +466 -0
  285. package/src/core/text-rendering/TextRenderer.ts +406 -0
  286. package/src/core/text-rendering/{TextTextureRendererUtils.ts → Utils.ts} +5 -11
  287. package/src/core/text-rendering/canvas/Settings.ts +99 -0
  288. package/src/core/text-rendering/canvas/Utils.test.ts +206 -0
  289. package/src/core/text-rendering/canvas/Utils.ts +178 -0
  290. package/src/core/text-rendering/canvas/calculateRenderInfo.ts +299 -0
  291. package/src/core/text-rendering/canvas/draw.ts +165 -0
  292. package/src/core/text-rendering/sdf/Utils.test.ts +402 -0
  293. package/src/core/text-rendering/sdf/Utils.ts +436 -0
  294. package/src/core/text-rendering/sdf/index.ts +20 -0
  295. package/src/core/textures/ImageTexture.ts +69 -27
  296. package/src/core/textures/Texture.ts +50 -6
  297. package/src/main-api/INode.ts +4 -3
  298. package/src/main-api/Inspector.ts +53 -8
  299. package/src/main-api/Renderer.ts +311 -87
  300. package/src/utils.ts +10 -10
  301. package/dist/exports/core-api.d.ts +0 -74
  302. package/dist/exports/core-api.js +0 -96
  303. package/dist/exports/core-api.js.map +0 -1
  304. package/dist/exports/main-api.d.ts +0 -30
  305. package/dist/exports/main-api.js +0 -45
  306. package/dist/exports/main-api.js.map +0 -1
  307. package/dist/src/core/CoreExtension.d.ts +0 -12
  308. package/dist/src/core/CoreExtension.js.map +0 -1
  309. package/dist/src/core/CoreStuff.js +0 -138
  310. package/dist/src/core/CoreStuff.js.map +0 -1
  311. package/dist/src/core/CoreTexturizer.d.ts +0 -14
  312. package/dist/src/core/CoreTexturizer.js +0 -47
  313. package/dist/src/core/CoreTexturizer.js.map +0 -1
  314. package/dist/src/core/LngNode.d.ts +0 -736
  315. package/dist/src/core/LngNode.js +0 -1174
  316. package/dist/src/core/LngNode.js.map +0 -1
  317. package/dist/src/core/Matrix2DContext.d.ts +0 -15
  318. package/dist/src/core/Matrix2DContext.js +0 -45
  319. package/dist/src/core/Matrix2DContext.js.map +0 -1
  320. package/dist/src/core/ShaderNode.d.ts +0 -10
  321. package/dist/src/core/ShaderNode.js +0 -30
  322. package/dist/src/core/ShaderNode.js.map +0 -1
  323. package/dist/src/core/TextNode.d.ts +0 -103
  324. package/dist/src/core/TextNode.js +0 -331
  325. package/dist/src/core/TextNode.js.map +0 -1
  326. package/dist/src/core/lib/Coords.d.ts +0 -14
  327. package/dist/src/core/lib/Coords.js +0 -55
  328. package/dist/src/core/lib/Coords.js.map +0 -1
  329. package/dist/src/core/lib/glm/common.d.ts +0 -162
  330. package/dist/src/core/lib/glm/common.js +0 -81
  331. package/dist/src/core/lib/glm/common.js.map +0 -1
  332. package/dist/src/core/lib/glm/index.d.ts +0 -11
  333. package/dist/src/core/lib/glm/index.js +0 -30
  334. package/dist/src/core/lib/glm/index.js.map +0 -1
  335. package/dist/src/core/lib/glm/mat2.d.ts +0 -219
  336. package/dist/src/core/lib/glm/mat2.js +0 -396
  337. package/dist/src/core/lib/glm/mat2.js.map +0 -1
  338. package/dist/src/core/lib/glm/mat2d.d.ts +0 -237
  339. package/dist/src/core/lib/glm/mat2d.js +0 -442
  340. package/dist/src/core/lib/glm/mat2d.js.map +0 -1
  341. package/dist/src/core/lib/glm/mat3.d.ts +0 -283
  342. package/dist/src/core/lib/glm/mat3.js +0 -680
  343. package/dist/src/core/lib/glm/mat3.js.map +0 -1
  344. package/dist/src/core/lib/glm/mat4.d.ts +0 -550
  345. package/dist/src/core/lib/glm/mat4.js +0 -1802
  346. package/dist/src/core/lib/glm/mat4.js.map +0 -1
  347. package/dist/src/core/lib/glm/quat.d.ts +0 -363
  348. package/dist/src/core/lib/glm/quat.js +0 -693
  349. package/dist/src/core/lib/glm/quat.js.map +0 -1
  350. package/dist/src/core/lib/glm/quat2.d.ts +0 -356
  351. package/dist/src/core/lib/glm/quat2.js +0 -754
  352. package/dist/src/core/lib/glm/quat2.js.map +0 -1
  353. package/dist/src/core/lib/glm/vec2.d.ts +0 -365
  354. package/dist/src/core/lib/glm/vec2.js +0 -569
  355. package/dist/src/core/lib/glm/vec2.js.map +0 -1
  356. package/dist/src/core/lib/glm/vec3.d.ts +0 -406
  357. package/dist/src/core/lib/glm/vec3.js +0 -720
  358. package/dist/src/core/lib/glm/vec3.js.map +0 -1
  359. package/dist/src/core/lib/glm/vec4.d.ts +0 -330
  360. package/dist/src/core/lib/glm/vec4.js +0 -608
  361. package/dist/src/core/lib/glm/vec4.js.map +0 -1
  362. package/dist/src/core/renderers/CoreShaderManager.d.ts +0 -19
  363. package/dist/src/core/renderers/CoreShaderManager.js +0 -33
  364. package/dist/src/core/renderers/CoreShaderManager.js.map +0 -1
  365. package/dist/src/core/renderers/webgl/WebGlCoreShaderManager.d.ts +0 -27
  366. package/dist/src/core/renderers/webgl/WebGlCoreShaderManager.js +0 -82
  367. package/dist/src/core/renderers/webgl/WebGlCoreShaderManager.js.map +0 -1
  368. package/dist/src/core/renderers/webgl/WebGlCoreShaderProgram.d.ts +0 -11
  369. package/dist/src/core/renderers/webgl/WebGlCoreShaderProgram.js +0 -34
  370. package/dist/src/core/renderers/webgl/WebGlCoreShaderProgram.js.map +0 -1
  371. package/dist/src/core/scene/Scene.d.ts +0 -59
  372. package/dist/src/core/scene/Scene.js +0 -106
  373. package/dist/src/core/scene/Scene.js.map +0 -1
  374. package/dist/src/core/text-rendering/renderers/SdfTextRenderer/internal/makeRenderWindow.d.ts +0 -20
  375. package/dist/src/core/text-rendering/renderers/SdfTextRenderer/internal/makeRenderWindow.js +0 -55
  376. package/dist/src/core/text-rendering/renderers/SdfTextRenderer/internal/makeRenderWindow.js.map +0 -1
  377. package/dist/src/main-api/ICoreDriver.d.ts +0 -27
  378. package/dist/src/main-api/ICoreDriver.js.map +0 -1
  379. package/dist/src/main-api/IRenderDriver.d.ts +0 -20
  380. package/dist/src/main-api/IRenderDriver.js.map +0 -1
  381. package/dist/src/main-api/IShaderController.d.ts +0 -14
  382. package/dist/src/main-api/IShaderController.js +0 -30
  383. package/dist/src/main-api/IShaderController.js.map +0 -1
  384. package/dist/src/main-api/IShaderNode.d.ts +0 -17
  385. package/dist/src/main-api/IShaderNode.js +0 -19
  386. package/dist/src/main-api/IShaderNode.js.map +0 -1
  387. package/dist/src/main-api/RendererMain.d.ts +0 -375
  388. package/dist/src/main-api/RendererMain.js +0 -365
  389. package/dist/src/main-api/RendererMain.js.map +0 -1
  390. package/dist/src/main-api/texture-usage-trackers/FinalizationRegistryTextureUsageTracker.d.ts +0 -9
  391. package/dist/src/main-api/texture-usage-trackers/FinalizationRegistryTextureUsageTracker.js +0 -38
  392. package/dist/src/main-api/texture-usage-trackers/FinalizationRegistryTextureUsageTracker.js.map +0 -1
  393. package/dist/src/main-api/texture-usage-trackers/ManualCountTextureUsageTracker.d.ts +0 -56
  394. package/dist/src/main-api/texture-usage-trackers/ManualCountTextureUsageTracker.js +0 -101
  395. package/dist/src/main-api/texture-usage-trackers/ManualCountTextureUsageTracker.js.map +0 -1
  396. package/dist/src/main-api/texture-usage-trackers/TextureUsageTracker.d.ts +0 -32
  397. package/dist/src/main-api/texture-usage-trackers/TextureUsageTracker.js.map +0 -1
  398. package/dist/src/render-drivers/main/MainCoreDriver.d.ts +0 -24
  399. package/dist/src/render-drivers/main/MainCoreDriver.js +0 -118
  400. package/dist/src/render-drivers/main/MainCoreDriver.js.map +0 -1
  401. package/dist/src/render-drivers/main/MainOnlyNode.d.ts +0 -99
  402. package/dist/src/render-drivers/main/MainOnlyNode.js +0 -396
  403. package/dist/src/render-drivers/main/MainOnlyNode.js.map +0 -1
  404. package/dist/src/render-drivers/main/MainOnlyShaderController.d.ts +0 -6
  405. package/dist/src/render-drivers/main/MainOnlyShaderController.js +0 -15
  406. package/dist/src/render-drivers/main/MainOnlyShaderController.js.map +0 -1
  407. package/dist/src/render-drivers/main/MainOnlyShaderNode.d.ts +0 -7
  408. package/dist/src/render-drivers/main/MainOnlyShaderNode.js +0 -34
  409. package/dist/src/render-drivers/main/MainOnlyShaderNode.js.map +0 -1
  410. package/dist/src/render-drivers/main/MainOnlyTextNode.d.ts +0 -47
  411. package/dist/src/render-drivers/main/MainOnlyTextNode.js +0 -205
  412. package/dist/src/render-drivers/main/MainOnlyTextNode.js.map +0 -1
  413. package/dist/src/render-drivers/main/MainRenderDriver.d.ts +0 -17
  414. package/dist/src/render-drivers/main/MainRenderDriver.js +0 -88
  415. package/dist/src/render-drivers/main/MainRenderDriver.js.map +0 -1
  416. package/dist/src/render-drivers/threadx/NodeStruct.d.ts +0 -90
  417. package/dist/src/render-drivers/threadx/NodeStruct.js +0 -281
  418. package/dist/src/render-drivers/threadx/NodeStruct.js.map +0 -1
  419. package/dist/src/render-drivers/threadx/SharedNode.d.ts +0 -39
  420. package/dist/src/render-drivers/threadx/SharedNode.js +0 -60
  421. package/dist/src/render-drivers/threadx/SharedNode.js.map +0 -1
  422. package/dist/src/render-drivers/threadx/TextNodeStruct.d.ts +0 -44
  423. package/dist/src/render-drivers/threadx/TextNodeStruct.js +0 -201
  424. package/dist/src/render-drivers/threadx/TextNodeStruct.js.map +0 -1
  425. package/dist/src/render-drivers/threadx/ThreadXCoreDriver.d.ts +0 -28
  426. package/dist/src/render-drivers/threadx/ThreadXCoreDriver.js +0 -234
  427. package/dist/src/render-drivers/threadx/ThreadXCoreDriver.js.map +0 -1
  428. package/dist/src/render-drivers/threadx/ThreadXMainAnimationController.d.ts +0 -20
  429. package/dist/src/render-drivers/threadx/ThreadXMainAnimationController.js +0 -84
  430. package/dist/src/render-drivers/threadx/ThreadXMainAnimationController.js.map +0 -1
  431. package/dist/src/render-drivers/threadx/ThreadXMainNode.d.ts +0 -44
  432. package/dist/src/render-drivers/threadx/ThreadXMainNode.js +0 -154
  433. package/dist/src/render-drivers/threadx/ThreadXMainNode.js.map +0 -1
  434. package/dist/src/render-drivers/threadx/ThreadXMainShaderController.d.ts +0 -6
  435. package/dist/src/render-drivers/threadx/ThreadXMainShaderController.js +0 -16
  436. package/dist/src/render-drivers/threadx/ThreadXMainShaderController.js.map +0 -1
  437. package/dist/src/render-drivers/threadx/ThreadXMainShaderNode.d.ts +0 -7
  438. package/dist/src/render-drivers/threadx/ThreadXMainShaderNode.js +0 -15
  439. package/dist/src/render-drivers/threadx/ThreadXMainShaderNode.js.map +0 -1
  440. package/dist/src/render-drivers/threadx/ThreadXMainTextNode.d.ts +0 -28
  441. package/dist/src/render-drivers/threadx/ThreadXMainTextNode.js +0 -55
  442. package/dist/src/render-drivers/threadx/ThreadXMainTextNode.js.map +0 -1
  443. package/dist/src/render-drivers/threadx/ThreadXRenderDriver.d.ts +0 -21
  444. package/dist/src/render-drivers/threadx/ThreadXRenderDriver.js +0 -198
  445. package/dist/src/render-drivers/threadx/ThreadXRenderDriver.js.map +0 -1
  446. package/dist/src/render-drivers/threadx/ThreadXRendererMessage.d.ts +0 -70
  447. package/dist/src/render-drivers/threadx/ThreadXRendererMessage.js +0 -32
  448. package/dist/src/render-drivers/threadx/ThreadXRendererMessage.js.map +0 -1
  449. package/dist/src/render-drivers/threadx/worker/ThreadXRendererNode.d.ts +0 -19
  450. package/dist/src/render-drivers/threadx/worker/ThreadXRendererNode.js +0 -177
  451. package/dist/src/render-drivers/threadx/worker/ThreadXRendererNode.js.map +0 -1
  452. package/dist/src/render-drivers/threadx/worker/ThreadXRendererTextNode.d.ts +0 -27
  453. package/dist/src/render-drivers/threadx/worker/ThreadXRendererTextNode.js +0 -108
  454. package/dist/src/render-drivers/threadx/worker/ThreadXRendererTextNode.js.map +0 -1
  455. package/dist/src/render-drivers/threadx/worker/renderer.d.ts +0 -1
  456. package/dist/src/render-drivers/threadx/worker/renderer.js +0 -145
  457. package/dist/src/render-drivers/threadx/worker/renderer.js.map +0 -1
  458. package/dist/src/render-drivers/utils.d.ts +0 -12
  459. package/dist/src/render-drivers/utils.js +0 -69
  460. package/dist/src/render-drivers/utils.js.map +0 -1
  461. package/scripts/please-use-pnpm.js +0 -13
  462. package/src/core/platform.ts +0 -64
  463. package/src/core/renderers/canvas/internal/C2DShaderUtils.ts +0 -220
  464. package/src/core/text-rendering/TextRenderingUtils.ts +0 -36
  465. package/src/core/text-rendering/TrFontManager.ts +0 -183
  466. package/src/core/text-rendering/font-face-types/SdfTrFontFace/SdfTrFontFace.ts +0 -176
  467. package/src/core/text-rendering/font-face-types/SdfTrFontFace/internal/FontShaper.ts +0 -139
  468. package/src/core/text-rendering/font-face-types/SdfTrFontFace/internal/SdfFontShaper.test.ts +0 -173
  469. package/src/core/text-rendering/font-face-types/SdfTrFontFace/internal/SdfFontShaper.ts +0 -171
  470. package/src/core/text-rendering/font-face-types/TrFontFace.ts +0 -187
  471. package/src/core/text-rendering/font-face-types/WebTrFontFace.ts +0 -94
  472. package/src/core/text-rendering/font-face-types/utils.ts +0 -39
  473. package/src/core/text-rendering/renderers/CanvasTextRenderer.ts +0 -509
  474. package/src/core/text-rendering/renderers/LightningTextTextureRenderer.ts +0 -815
  475. package/src/core/text-rendering/renderers/SdfTextRenderer/SdfTextRenderer.ts +0 -841
  476. package/src/core/text-rendering/renderers/SdfTextRenderer/internal/PeekableGenerator.test.ts +0 -48
  477. package/src/core/text-rendering/renderers/SdfTextRenderer/internal/PeekableGenerator.ts +0 -66
  478. package/src/core/text-rendering/renderers/SdfTextRenderer/internal/SpecialCodepoints.ts +0 -52
  479. package/src/core/text-rendering/renderers/SdfTextRenderer/internal/constants.ts +0 -32
  480. package/src/core/text-rendering/renderers/SdfTextRenderer/internal/getStartConditions.ts +0 -117
  481. package/src/core/text-rendering/renderers/SdfTextRenderer/internal/getUnicodeCodepoints.test.ts +0 -133
  482. package/src/core/text-rendering/renderers/SdfTextRenderer/internal/getUnicodeCodepoints.ts +0 -38
  483. package/src/core/text-rendering/renderers/SdfTextRenderer/internal/layoutText.ts +0 -408
  484. package/src/core/text-rendering/renderers/SdfTextRenderer/internal/measureText.test.ts +0 -49
  485. package/src/core/text-rendering/renderers/SdfTextRenderer/internal/measureText.ts +0 -52
  486. package/src/core/text-rendering/renderers/SdfTextRenderer/internal/setRenderWindow.test.ts +0 -205
  487. package/src/core/text-rendering/renderers/SdfTextRenderer/internal/setRenderWindow.ts +0 -93
  488. package/src/core/text-rendering/renderers/SdfTextRenderer/internal/util.ts +0 -40
  489. package/src/core/text-rendering/renderers/TextRenderer.ts +0 -550
  490. /package/dist/src/core/{CoreStuff.d.ts → shaders/webgl/Spinner.d.ts} +0 -0
@@ -24,14 +24,14 @@ import { ImageTexture } from './textures/ImageTexture.js';
24
24
  import { NoiseTexture } from './textures/NoiseTexture.js';
25
25
  import { SubTexture } from './textures/SubTexture.js';
26
26
  import { RenderTexture } from './textures/RenderTexture.js';
27
- import { TextureType, type Texture } from './textures/Texture.js';
27
+ import { Texture, TextureType } from './textures/Texture.js';
28
28
  import { EventEmitter } from '../common/EventEmitter.js';
29
- import { getTimeStamp } from './platform.js';
30
29
  import type { Stage } from './Stage.js';
31
30
  import {
32
31
  validateCreateImageBitmap,
33
32
  type CreateImageBitmapSupport,
34
33
  } from './lib/validateImageBitmap.js';
34
+ import type { Platform } from './platforms/Platform.js';
35
35
 
36
36
  /**
37
37
  * Augmentable map of texture class types
@@ -178,15 +178,16 @@ export class CoreTextureManager extends EventEmitter {
178
178
  */
179
179
  txConstructors: Partial<TextureMap> = {};
180
180
 
181
- private downloadTextureSourceQueue: Array<Texture> = [];
182
181
  private priorityQueue: Array<Texture> = [];
183
182
  private uploadTextureQueue: Array<Texture> = [];
184
183
  private initialized = false;
185
184
  private stage: Stage;
186
185
  private numImageWorkers: number;
187
186
 
187
+ public platform: Platform;
188
+
188
189
  imageWorkerManager: ImageWorkerManager | null = null;
189
- hasCreateImageBitmap = !!self.createImageBitmap;
190
+ hasCreateImageBitmap = false;
190
191
  imageBitmapSupported = {
191
192
  basic: false,
192
193
  options: false,
@@ -219,14 +220,15 @@ export class CoreTextureManager extends EventEmitter {
219
220
 
220
221
  const { numImageWorkers, createImageBitmapSupport } = settings;
221
222
  this.stage = stage;
223
+ this.platform = stage.platform;
222
224
  this.numImageWorkers = numImageWorkers;
223
225
 
224
226
  if (createImageBitmapSupport === 'auto') {
225
- validateCreateImageBitmap()
227
+ validateCreateImageBitmap(this.platform)
226
228
  .then((result) => {
227
229
  this.initialize(result);
228
230
  })
229
- .catch((e) => {
231
+ .catch(() => {
230
232
  console.warn(
231
233
  '[Lightning] createImageBitmap is not supported on this browser. ImageTexture will be slower.',
232
234
  );
@@ -262,15 +264,15 @@ export class CoreTextureManager extends EventEmitter {
262
264
  support.basic || support.options || support.full;
263
265
  this.imageBitmapSupported = support;
264
266
 
265
- if (!this.hasCreateImageBitmap) {
267
+ if (this.hasCreateImageBitmap === false) {
266
268
  console.warn(
267
269
  '[Lightning] createImageBitmap is not supported on this browser. ImageTexture will be slower.',
268
270
  );
269
271
  }
270
272
 
271
273
  if (
272
- this.hasCreateImageBitmap &&
273
- this.hasWorker &&
274
+ this.hasCreateImageBitmap === true &&
275
+ this.hasWorker === true &&
274
276
  this.numImageWorkers > 0
275
277
  ) {
276
278
  this.imageWorkerManager = new ImageWorkerManager(
@@ -287,15 +289,6 @@ export class CoreTextureManager extends EventEmitter {
287
289
  this.emit('initialized');
288
290
  }
289
291
 
290
- /**
291
- * Enqueue a texture for downloading its source image.
292
- */
293
- enqueueDownloadTextureSource(texture: Texture): void {
294
- if (!this.downloadTextureSourceQueue.includes(texture)) {
295
- this.downloadTextureSourceQueue.push(texture);
296
- }
297
- }
298
-
299
292
  /**
300
293
  * Enqueue a texture for uploading to the GPU.
301
294
  *
@@ -365,87 +358,76 @@ export class CoreTextureManager extends EventEmitter {
365
358
  return;
366
359
  }
367
360
 
368
- // if the texture is already loaded, don't load it again
369
- if (
370
- texture.ctxTexture !== undefined &&
371
- texture.ctxTexture.state === 'loaded'
372
- ) {
373
- texture.setState('loaded');
361
+ if (texture.state === 'loaded') {
362
+ // if the texture is already loaded, just return
374
363
  return;
375
364
  }
376
365
 
377
- // if the texture is already being processed, don't load it again
378
- if (
379
- this.downloadTextureSourceQueue.includes(texture) === true ||
380
- this.uploadTextureQueue.includes(texture) === true
381
- ) {
366
+ if (Texture.TRANSITIONAL_TEXTURE_STATES.includes(texture.state)) {
382
367
  return;
383
368
  }
384
369
 
385
- // if the texture is already loading, free it, this can happen if the texture is
386
- // orphaned and then reloaded
387
- if (
388
- texture.ctxTexture !== undefined &&
389
- texture.ctxTexture.state === 'loading'
390
- ) {
391
- // if the texture has texture data, queue it for upload
392
- if (texture.textureData !== null) {
393
- this.enqueueUploadTexture(texture);
394
- }
395
-
396
- // else we will have to re-download the texture
397
- texture.free();
398
- }
399
-
400
370
  // if we're not initialized, just queue the texture into the priority queue
401
371
  if (this.initialized === false) {
402
372
  this.priorityQueue.push(texture);
403
373
  return;
404
374
  }
405
375
 
406
- // these types of textures don't need to be downloaded
407
- // Technically the noise texture shouldn't either, but it's a special case
408
- // and not really used in production so who cares ¯\_()_/¯
409
- if (
410
- (texture.type === TextureType.color ||
411
- texture.type === TextureType.renderToTexture) &&
412
- texture.state !== 'initial'
413
- ) {
414
- texture.setState('fetched');
415
- this.enqueueUploadTexture(texture);
416
- return;
376
+ // If the texture failed to load, we need to re-download it.
377
+ if (texture.state === 'failed') {
378
+ texture.free();
379
+ texture.freeTextureData();
417
380
  }
418
381
 
419
382
  texture.setState('loading');
420
383
 
421
- // prioritize the texture for immediate loading
422
- if (priority === true) {
423
- texture
424
- .getTextureData()
425
- .then(() => {
426
- this.uploadTexture(texture);
427
- })
428
- .catch((err) => {
429
- console.error(err);
430
- });
431
- }
384
+ // Get the texture data
385
+ texture
386
+ .getTextureData()
387
+ .then(() => {
388
+ if (texture.state !== 'fetched') {
389
+ texture.setState('failed');
390
+ return;
391
+ }
432
392
 
433
- // enqueue the texture for download and upload
434
- this.enqueueDownloadTextureSource(texture);
393
+ // For non-image textures, upload immediately
394
+ if (texture.type !== TextureType.image) {
395
+ this.uploadTexture(texture).catch((err) => {
396
+ console.error('Failed to upload non-image texture:', err);
397
+ texture.setState('failed');
398
+ });
399
+ } else {
400
+ // For image textures, queue for throttled upload
401
+ // If it's a priority texture, upload it immediately
402
+ if (priority === true) {
403
+ this.uploadTexture(texture).catch((err) => {
404
+ console.error('Failed to upload priority texture:', err);
405
+ texture.setState('failed');
406
+ });
407
+ } else {
408
+ this.enqueueUploadTexture(texture);
409
+ }
410
+ }
411
+ })
412
+ .catch((err) => {
413
+ console.error(err);
414
+ texture.setState('failed');
415
+ });
435
416
  }
436
417
 
437
418
  /**
438
419
  * Upload a texture to the GPU
439
420
  *
440
421
  * @param texture Texture to upload
422
+ * @returns Promise that resolves when the texture is fully loaded
441
423
  */
442
- uploadTexture(texture: Texture): void {
424
+ async uploadTexture(texture: Texture): Promise<void> {
443
425
  if (
444
426
  this.stage.txMemManager.doNotExceedCriticalThreshold === true &&
445
427
  this.stage.txMemManager.criticalCleanupRequested === true
446
428
  ) {
447
429
  // we're at a critical memory threshold, don't upload textures
448
- this.enqueueUploadTexture(texture);
430
+ texture.setState('failed');
449
431
  return;
450
432
  }
451
433
 
@@ -455,72 +437,63 @@ export class CoreTextureManager extends EventEmitter {
455
437
  return;
456
438
  }
457
439
 
458
- coreContext.load();
440
+ await coreContext.load();
459
441
  }
460
442
 
461
443
  /**
462
444
  * Check if a texture is being processed
463
445
  */
464
446
  isProcessingTexture(texture: Texture): boolean {
465
- return (
466
- this.downloadTextureSourceQueue.includes(texture) === true ||
467
- this.uploadTextureQueue.includes(texture) === true
468
- );
447
+ return this.uploadTextureQueue.includes(texture) === true;
469
448
  }
470
449
 
471
450
  /**
472
- * Process a limited number of downloads and uploads.
451
+ * Process a limited number of uploads.
473
452
  *
474
- * @param maxItems - The maximum number of items to process
453
+ * @param maxProcessingTime - The maximum processing time in milliseconds
475
454
  */
476
- processSome(maxProcessingTime: number): void {
455
+ async processSome(maxProcessingTime: number): Promise<void> {
477
456
  if (this.initialized === false) {
478
457
  return;
479
458
  }
480
459
 
481
- const startTime = getTimeStamp();
460
+ const platform = this.platform;
461
+ const startTime = platform.getTimeStamp();
482
462
 
483
463
  // Process priority queue
484
464
  while (
485
465
  this.priorityQueue.length > 0 &&
486
- getTimeStamp() - startTime < maxProcessingTime
466
+ platform.getTimeStamp() - startTime < maxProcessingTime
487
467
  ) {
488
468
  // eslint-disable-next-line @typescript-eslint/no-non-null-assertion
489
469
  const texture = this.priorityQueue.pop()!;
490
- texture.getTextureData().then(() => {
491
- this.uploadTexture(texture);
492
- });
470
+ try {
471
+ await texture.getTextureData();
472
+ await this.uploadTexture(texture);
473
+ } catch (error) {
474
+ console.error('Failed to process priority texture:', error);
475
+ // Continue with next texture instead of stopping entire queue
476
+ }
493
477
  }
494
478
 
495
- // Process uploads
479
+ // Process uploads - await each upload to prevent GPU overload
496
480
  while (
497
481
  this.uploadTextureQueue.length > 0 &&
498
- getTimeStamp() - startTime < maxProcessingTime
482
+ platform.getTimeStamp() - startTime < maxProcessingTime
499
483
  ) {
500
484
  // eslint-disable-next-line @typescript-eslint/no-non-null-assertion
501
- this.uploadTexture(this.uploadTextureQueue.pop()!);
502
- }
503
-
504
- // Process downloads
505
- while (
506
- this.downloadTextureSourceQueue.length > 0 &&
507
- getTimeStamp() - startTime < maxProcessingTime
508
- ) {
509
- // eslint-disable-next-line @typescript-eslint/no-non-null-assertion
510
- const texture = this.downloadTextureSourceQueue.shift()!;
511
- texture.getTextureData().then(() => {
512
- if (texture.state === 'fetched') {
513
- this.enqueueUploadTexture(texture);
514
- }
515
- });
485
+ const texture = this.uploadTextureQueue.shift()!;
486
+ try {
487
+ await this.uploadTexture(texture);
488
+ } catch (error) {
489
+ console.error('Failed to upload texture:', error);
490
+ // Continue with next texture instead of stopping entire queue
491
+ }
516
492
  }
517
493
  }
518
494
 
519
495
  public hasUpdates(): boolean {
520
- return (
521
- this.downloadTextureSourceQueue.length > 0 ||
522
- this.uploadTextureQueue.length > 0
523
- );
496
+ return this.uploadTextureQueue.length > 0;
524
497
  }
525
498
 
526
499
  /**
@@ -561,16 +534,11 @@ export class CoreTextureManager extends EventEmitter {
561
534
  }
562
535
 
563
536
  /**
564
- * Remove texture from the queue's
537
+ * Remove texture from the upload queue
565
538
  *
566
539
  * @param texture - The texture to remove
567
540
  */
568
541
  removeTextureFromQueue(texture: Texture): void {
569
- const downloadIndex = this.downloadTextureSourceQueue.indexOf(texture);
570
- if (downloadIndex !== -1) {
571
- this.downloadTextureSourceQueue.splice(downloadIndex, 1);
572
- }
573
-
574
542
  const uploadIndex = this.uploadTextureQueue.indexOf(texture);
575
543
  if (uploadIndex !== -1) {
576
544
  this.uploadTextureQueue.splice(uploadIndex, 1);