@lightningjs/renderer 2.16.0 → 2.18.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 (257) hide show
  1. package/dist/src/core/CoreNode.js +7 -5
  2. package/dist/src/core/CoreNode.js.map +1 -1
  3. package/dist/src/core/CoreTextureManager.d.ts +14 -8
  4. package/dist/src/core/CoreTextureManager.js +33 -59
  5. package/dist/src/core/CoreTextureManager.js.map +1 -1
  6. package/dist/src/core/Stage.d.ts +3 -3
  7. package/dist/src/core/Stage.js +9 -14
  8. package/dist/src/core/Stage.js.map +1 -1
  9. package/dist/src/core/TextureMemoryManager.d.ts +21 -17
  10. package/dist/src/core/TextureMemoryManager.js +99 -124
  11. package/dist/src/core/TextureMemoryManager.js.map +1 -1
  12. package/dist/src/core/lib/WebGlContextWrapper.d.ts +10 -0
  13. package/dist/src/core/lib/WebGlContextWrapper.js +32 -0
  14. package/dist/src/core/lib/WebGlContextWrapper.js.map +1 -1
  15. package/dist/src/core/lib/textureCompression.js +13 -6
  16. package/dist/src/core/lib/textureCompression.js.map +1 -1
  17. package/dist/src/core/platform.js +4 -1
  18. package/dist/src/core/platform.js.map +1 -1
  19. package/dist/src/core/renderers/CoreContextTexture.d.ts +1 -0
  20. package/dist/src/core/renderers/CoreContextTexture.js.map +1 -1
  21. package/dist/src/core/renderers/canvas/CanvasCoreTexture.d.ts +1 -0
  22. package/dist/src/core/renderers/canvas/CanvasCoreTexture.js +4 -3
  23. package/dist/src/core/renderers/canvas/CanvasCoreTexture.js.map +1 -1
  24. package/dist/src/core/renderers/webgl/WebGlCoreCtxTexture.d.ts +9 -0
  25. package/dist/src/core/renderers/webgl/WebGlCoreCtxTexture.js +59 -29
  26. package/dist/src/core/renderers/webgl/WebGlCoreCtxTexture.js.map +1 -1
  27. package/dist/src/core/text-rendering/renderers/SdfTextRenderer/SdfTextRenderer.js +4 -4
  28. package/dist/src/core/text-rendering/renderers/SdfTextRenderer/SdfTextRenderer.js.map +1 -1
  29. package/dist/src/core/textures/ColorTexture.d.ts +2 -2
  30. package/dist/src/core/textures/ColorTexture.js +1 -2
  31. package/dist/src/core/textures/ColorTexture.js.map +1 -1
  32. package/dist/src/core/textures/ImageTexture.d.ts +7 -1
  33. package/dist/src/core/textures/ImageTexture.js +55 -39
  34. package/dist/src/core/textures/ImageTexture.js.map +1 -1
  35. package/dist/src/core/textures/NoiseTexture.js +1 -1
  36. package/dist/src/core/textures/NoiseTexture.js.map +1 -1
  37. package/dist/src/core/textures/RenderTexture.js +1 -1
  38. package/dist/src/core/textures/RenderTexture.js.map +1 -1
  39. package/dist/src/core/textures/SubTexture.d.ts +1 -2
  40. package/dist/src/core/textures/SubTexture.js +11 -29
  41. package/dist/src/core/textures/SubTexture.js.map +1 -1
  42. package/dist/src/core/textures/Texture.d.ts +51 -7
  43. package/dist/src/core/textures/Texture.js +127 -15
  44. package/dist/src/core/textures/Texture.js.map +1 -1
  45. package/dist/src/main-api/Inspector.d.ts +3 -0
  46. package/dist/src/main-api/Inspector.js +156 -0
  47. package/dist/src/main-api/Inspector.js.map +1 -1
  48. package/dist/src/main-api/Renderer.d.ts +1 -3
  49. package/dist/src/main-api/Renderer.js +2 -4
  50. package/dist/src/main-api/Renderer.js.map +1 -1
  51. package/dist/tsconfig.dist.tsbuildinfo +1 -1
  52. package/package.json +1 -1
  53. package/src/core/CoreNode.ts +8 -4
  54. package/src/core/CoreTextureManager.ts +59 -65
  55. package/src/core/Stage.ts +10 -16
  56. package/src/core/TextureMemoryManager.ts +118 -148
  57. package/src/core/lib/WebGlContextWrapper.ts +38 -0
  58. package/src/core/lib/textureCompression.ts +18 -7
  59. package/src/core/platform.ts +5 -1
  60. package/src/core/renderers/CoreContextTexture.ts +1 -0
  61. package/src/core/renderers/canvas/CanvasCoreTexture.ts +5 -3
  62. package/src/core/renderers/webgl/WebGlCoreCtxTexture.ts +78 -40
  63. package/src/core/text-rendering/renderers/SdfTextRenderer/SdfTextRenderer.ts +10 -4
  64. package/src/core/textures/ColorTexture.ts +4 -7
  65. package/src/core/textures/ImageTexture.ts +66 -51
  66. package/src/core/textures/NoiseTexture.ts +1 -1
  67. package/src/core/textures/RenderTexture.ts +1 -1
  68. package/src/core/textures/SubTexture.ts +14 -31
  69. package/src/core/textures/Texture.ts +150 -21
  70. package/src/main-api/Inspector.ts +203 -0
  71. package/src/main-api/Renderer.ts +2 -4
  72. package/dist/exports/canvas-shaders.d.ts +0 -10
  73. package/dist/exports/canvas-shaders.js +0 -27
  74. package/dist/exports/canvas-shaders.js.map +0 -1
  75. package/dist/exports/webgl-shaders.d.ts +0 -11
  76. package/dist/exports/webgl-shaders.js +0 -28
  77. package/dist/exports/webgl-shaders.js.map +0 -1
  78. package/dist/src/core/platforms/Platform.d.ts +0 -37
  79. package/dist/src/core/platforms/Platform.js +0 -22
  80. package/dist/src/core/platforms/Platform.js.map +0 -1
  81. package/dist/src/core/platforms/web/WebPlatform.d.ts +0 -9
  82. package/dist/src/core/platforms/web/WebPlatform.js +0 -58
  83. package/dist/src/core/platforms/web/WebPlatform.js.map +0 -1
  84. package/dist/src/core/renderers/CoreShaderNode.d.ts +0 -59
  85. package/dist/src/core/renderers/CoreShaderNode.js +0 -113
  86. package/dist/src/core/renderers/CoreShaderNode.js.map +0 -1
  87. package/dist/src/core/renderers/CoreShaderProgram.d.ts +0 -4
  88. package/dist/src/core/renderers/CoreShaderProgram.js +0 -20
  89. package/dist/src/core/renderers/CoreShaderProgram.js.map +0 -1
  90. package/dist/src/core/renderers/canvas/CanvasRenderer.d.ts +0 -37
  91. package/dist/src/core/renderers/canvas/CanvasRenderer.js +0 -215
  92. package/dist/src/core/renderers/canvas/CanvasRenderer.js.map +0 -1
  93. package/dist/src/core/renderers/canvas/CanvasShaderNode.d.ts +0 -21
  94. package/dist/src/core/renderers/canvas/CanvasShaderNode.js +0 -57
  95. package/dist/src/core/renderers/canvas/CanvasShaderNode.js.map +0 -1
  96. package/dist/src/core/renderers/canvas/CanvasTexture.d.ts +0 -16
  97. package/dist/src/core/renderers/canvas/CanvasTexture.js +0 -124
  98. package/dist/src/core/renderers/canvas/CanvasTexture.js.map +0 -1
  99. package/dist/src/core/renderers/webgl/WebGlCtxRenderTexture.d.ts +0 -12
  100. package/dist/src/core/renderers/webgl/WebGlCtxRenderTexture.js +0 -55
  101. package/dist/src/core/renderers/webgl/WebGlCtxRenderTexture.js.map +0 -1
  102. package/dist/src/core/renderers/webgl/WebGlCtxSubTexture.d.ts +0 -9
  103. package/dist/src/core/renderers/webgl/WebGlCtxSubTexture.js +0 -38
  104. package/dist/src/core/renderers/webgl/WebGlCtxSubTexture.js.map +0 -1
  105. package/dist/src/core/renderers/webgl/WebGlCtxTexture.d.ts +0 -57
  106. package/dist/src/core/renderers/webgl/WebGlCtxTexture.js +0 -224
  107. package/dist/src/core/renderers/webgl/WebGlCtxTexture.js.map +0 -1
  108. package/dist/src/core/renderers/webgl/WebGlRenderOp.d.ts +0 -44
  109. package/dist/src/core/renderers/webgl/WebGlRenderOp.js +0 -125
  110. package/dist/src/core/renderers/webgl/WebGlRenderOp.js.map +0 -1
  111. package/dist/src/core/renderers/webgl/WebGlRenderer.d.ts +0 -136
  112. package/dist/src/core/renderers/webgl/WebGlRenderer.js +0 -573
  113. package/dist/src/core/renderers/webgl/WebGlRenderer.js.map +0 -1
  114. package/dist/src/core/renderers/webgl/WebGlShaderNode.d.ts +0 -222
  115. package/dist/src/core/renderers/webgl/WebGlShaderNode.js +0 -331
  116. package/dist/src/core/renderers/webgl/WebGlShaderNode.js.map +0 -1
  117. package/dist/src/core/renderers/webgl/WebGlShaderProgram.d.ts +0 -35
  118. package/dist/src/core/renderers/webgl/WebGlShaderProgram.js +0 -201
  119. package/dist/src/core/renderers/webgl/WebGlShaderProgram.js.map +0 -1
  120. package/dist/src/core/shaders/canvas/Border.d.ts +0 -9
  121. package/dist/src/core/shaders/canvas/Border.js +0 -57
  122. package/dist/src/core/shaders/canvas/Border.js.map +0 -1
  123. package/dist/src/core/shaders/canvas/HolePunch.d.ts +0 -7
  124. package/dist/src/core/shaders/canvas/HolePunch.js +0 -38
  125. package/dist/src/core/shaders/canvas/HolePunch.js.map +0 -1
  126. package/dist/src/core/shaders/canvas/LinearGradient.d.ts +0 -10
  127. package/dist/src/core/shaders/canvas/LinearGradient.js +0 -48
  128. package/dist/src/core/shaders/canvas/LinearGradient.js.map +0 -1
  129. package/dist/src/core/shaders/canvas/RadialGradient.d.ts +0 -11
  130. package/dist/src/core/shaders/canvas/RadialGradient.js +0 -70
  131. package/dist/src/core/shaders/canvas/RadialGradient.js.map +0 -1
  132. package/dist/src/core/shaders/canvas/Rounded.d.ts +0 -7
  133. package/dist/src/core/shaders/canvas/Rounded.js +0 -33
  134. package/dist/src/core/shaders/canvas/Rounded.js.map +0 -1
  135. package/dist/src/core/shaders/canvas/RoundedWithBorder.d.ts +0 -7
  136. package/dist/src/core/shaders/canvas/RoundedWithBorder.js +0 -43
  137. package/dist/src/core/shaders/canvas/RoundedWithBorder.js.map +0 -1
  138. package/dist/src/core/shaders/canvas/RoundedWithBorderAndShadow.d.ts +0 -8
  139. package/dist/src/core/shaders/canvas/RoundedWithBorderAndShadow.js +0 -41
  140. package/dist/src/core/shaders/canvas/RoundedWithBorderAndShadow.js.map +0 -1
  141. package/dist/src/core/shaders/canvas/RoundedWithShadow.d.ts +0 -7
  142. package/dist/src/core/shaders/canvas/RoundedWithShadow.js +0 -40
  143. package/dist/src/core/shaders/canvas/RoundedWithShadow.js.map +0 -1
  144. package/dist/src/core/shaders/canvas/Shadow.d.ts +0 -8
  145. package/dist/src/core/shaders/canvas/Shadow.js +0 -31
  146. package/dist/src/core/shaders/canvas/Shadow.js.map +0 -1
  147. package/dist/src/core/shaders/canvas/utils/render.d.ts +0 -5
  148. package/dist/src/core/shaders/canvas/utils/render.js +0 -84
  149. package/dist/src/core/shaders/canvas/utils/render.js.map +0 -1
  150. package/dist/src/core/shaders/templates/BorderTemplate.d.ts +0 -37
  151. package/dist/src/core/shaders/templates/BorderTemplate.js +0 -73
  152. package/dist/src/core/shaders/templates/BorderTemplate.js.map +0 -1
  153. package/dist/src/core/shaders/templates/HolePunchTemplate.d.ts +0 -46
  154. package/dist/src/core/shaders/templates/HolePunchTemplate.js +0 -35
  155. package/dist/src/core/shaders/templates/HolePunchTemplate.js.map +0 -1
  156. package/dist/src/core/shaders/templates/LinearGradientTemplate.d.ts +0 -23
  157. package/dist/src/core/shaders/templates/LinearGradientTemplate.js +0 -47
  158. package/dist/src/core/shaders/templates/LinearGradientTemplate.js.map +0 -1
  159. package/dist/src/core/shaders/templates/RadialGradientTemplate.d.ts +0 -31
  160. package/dist/src/core/shaders/templates/RadialGradientTemplate.js +0 -49
  161. package/dist/src/core/shaders/templates/RadialGradientTemplate.js.map +0 -1
  162. package/dist/src/core/shaders/templates/RoundedTemplate.d.ts +0 -29
  163. package/dist/src/core/shaders/templates/RoundedTemplate.js +0 -67
  164. package/dist/src/core/shaders/templates/RoundedTemplate.js.map +0 -1
  165. package/dist/src/core/shaders/templates/RoundedWithBorderAndShadowTemplate.d.ts +0 -7
  166. package/dist/src/core/shaders/templates/RoundedWithBorderAndShadowTemplate.js +0 -24
  167. package/dist/src/core/shaders/templates/RoundedWithBorderAndShadowTemplate.js.map +0 -1
  168. package/dist/src/core/shaders/templates/RoundedWithBorderTemplate.d.ts +0 -6
  169. package/dist/src/core/shaders/templates/RoundedWithBorderTemplate.js +0 -23
  170. package/dist/src/core/shaders/templates/RoundedWithBorderTemplate.js.map +0 -1
  171. package/dist/src/core/shaders/templates/RoundedWithShadowTemplate.d.ts +0 -6
  172. package/dist/src/core/shaders/templates/RoundedWithShadowTemplate.js +0 -23
  173. package/dist/src/core/shaders/templates/RoundedWithShadowTemplate.js.map +0 -1
  174. package/dist/src/core/shaders/templates/ShadowTemplate.d.ts +0 -34
  175. package/dist/src/core/shaders/templates/ShadowTemplate.js +0 -66
  176. package/dist/src/core/shaders/templates/ShadowTemplate.js.map +0 -1
  177. package/dist/src/core/shaders/templates/shaderUtils.d.ts +0 -5
  178. package/dist/src/core/shaders/templates/shaderUtils.js +0 -41
  179. package/dist/src/core/shaders/templates/shaderUtils.js.map +0 -1
  180. package/dist/src/core/shaders/utils.d.ts +0 -5
  181. package/dist/src/core/shaders/utils.js +0 -41
  182. package/dist/src/core/shaders/utils.js.map +0 -1
  183. package/dist/src/core/shaders/webgl/Border.d.ts +0 -3
  184. package/dist/src/core/shaders/webgl/Border.js +0 -110
  185. package/dist/src/core/shaders/webgl/Border.js.map +0 -1
  186. package/dist/src/core/shaders/webgl/Default.d.ts +0 -2
  187. package/dist/src/core/shaders/webgl/Default.js +0 -86
  188. package/dist/src/core/shaders/webgl/Default.js.map +0 -1
  189. package/dist/src/core/shaders/webgl/DefaultBatched.d.ts +0 -2
  190. package/dist/src/core/shaders/webgl/DefaultBatched.js +0 -104
  191. package/dist/src/core/shaders/webgl/DefaultBatched.js.map +0 -1
  192. package/dist/src/core/shaders/webgl/HolePunch.d.ts +0 -3
  193. package/dist/src/core/shaders/webgl/HolePunch.js +0 -65
  194. package/dist/src/core/shaders/webgl/HolePunch.js.map +0 -1
  195. package/dist/src/core/shaders/webgl/LinearGradient.d.ts +0 -3
  196. package/dist/src/core/shaders/webgl/LinearGradient.js +0 -76
  197. package/dist/src/core/shaders/webgl/LinearGradient.js.map +0 -1
  198. package/dist/src/core/shaders/webgl/RadialGradient.d.ts +0 -3
  199. package/dist/src/core/shaders/webgl/RadialGradient.js +0 -74
  200. package/dist/src/core/shaders/webgl/RadialGradient.js.map +0 -1
  201. package/dist/src/core/shaders/webgl/Rounded.d.ts +0 -7
  202. package/dist/src/core/shaders/webgl/Rounded.js +0 -86
  203. package/dist/src/core/shaders/webgl/Rounded.js.map +0 -1
  204. package/dist/src/core/shaders/webgl/RoundedWithBorder.d.ts +0 -3
  205. package/dist/src/core/shaders/webgl/RoundedWithBorder.js +0 -140
  206. package/dist/src/core/shaders/webgl/RoundedWithBorder.js.map +0 -1
  207. package/dist/src/core/shaders/webgl/RoundedWithBorderAndShadow.d.ts +0 -3
  208. package/dist/src/core/shaders/webgl/RoundedWithBorderAndShadow.js +0 -162
  209. package/dist/src/core/shaders/webgl/RoundedWithBorderAndShadow.js.map +0 -1
  210. package/dist/src/core/shaders/webgl/RoundedWithShadow.d.ts +0 -3
  211. package/dist/src/core/shaders/webgl/RoundedWithShadow.js +0 -84
  212. package/dist/src/core/shaders/webgl/RoundedWithShadow.js.map +0 -1
  213. package/dist/src/core/shaders/webgl/SdfShader.d.ts +0 -32
  214. package/dist/src/core/shaders/webgl/SdfShader.js +0 -116
  215. package/dist/src/core/shaders/webgl/SdfShader.js.map +0 -1
  216. package/dist/src/core/shaders/webgl/Shadow.d.ts +0 -3
  217. package/dist/src/core/shaders/webgl/Shadow.js +0 -110
  218. package/dist/src/core/shaders/webgl/Shadow.js.map +0 -1
  219. package/dist/src/core/shaders/webgl/Spinner.d.ts +0 -1
  220. package/dist/src/core/shaders/webgl/Spinner.js +0 -2
  221. package/dist/src/core/shaders/webgl/Spinner.js.map +0 -1
  222. package/dist/src/core/text-rendering/CanvasFontHandler.d.ts +0 -25
  223. package/dist/src/core/text-rendering/CanvasFontHandler.js +0 -117
  224. package/dist/src/core/text-rendering/CanvasFontHandler.js.map +0 -1
  225. package/dist/src/core/text-rendering/CanvasTextRenderer.d.ts +0 -6
  226. package/dist/src/core/text-rendering/CanvasTextRenderer.js +0 -139
  227. package/dist/src/core/text-rendering/CanvasTextRenderer.js.map +0 -1
  228. package/dist/src/core/text-rendering/SdfFontHandler.d.ts +0 -137
  229. package/dist/src/core/text-rendering/SdfFontHandler.js +0 -336
  230. package/dist/src/core/text-rendering/SdfFontHandler.js.map +0 -1
  231. package/dist/src/core/text-rendering/SdfTextRenderer.d.ts +0 -21
  232. package/dist/src/core/text-rendering/SdfTextRenderer.js +0 -324
  233. package/dist/src/core/text-rendering/SdfTextRenderer.js.map +0 -1
  234. package/dist/src/core/text-rendering/TextRenderer.d.ts +0 -425
  235. package/dist/src/core/text-rendering/TextRenderer.js +0 -70
  236. package/dist/src/core/text-rendering/TextRenderer.js.map +0 -1
  237. package/dist/src/core/text-rendering/Utils.d.ts +0 -71
  238. package/dist/src/core/text-rendering/Utils.js +0 -212
  239. package/dist/src/core/text-rendering/Utils.js.map +0 -1
  240. package/dist/src/core/text-rendering/canvas/Settings.d.ts +0 -53
  241. package/dist/src/core/text-rendering/canvas/Settings.js +0 -20
  242. package/dist/src/core/text-rendering/canvas/Settings.js.map +0 -1
  243. package/dist/src/core/text-rendering/canvas/Utils.d.ts +0 -19
  244. package/dist/src/core/text-rendering/canvas/Utils.js +0 -139
  245. package/dist/src/core/text-rendering/canvas/Utils.js.map +0 -1
  246. package/dist/src/core/text-rendering/canvas/calculateRenderInfo.d.ts +0 -37
  247. package/dist/src/core/text-rendering/canvas/calculateRenderInfo.js +0 -188
  248. package/dist/src/core/text-rendering/canvas/calculateRenderInfo.js.map +0 -1
  249. package/dist/src/core/text-rendering/canvas/draw.d.ts +0 -12
  250. package/dist/src/core/text-rendering/canvas/draw.js +0 -133
  251. package/dist/src/core/text-rendering/canvas/draw.js.map +0 -1
  252. package/dist/src/core/text-rendering/sdf/PeekableGenerator.d.ts +0 -12
  253. package/dist/src/core/text-rendering/sdf/PeekableGenerator.js +0 -61
  254. package/dist/src/core/text-rendering/sdf/PeekableGenerator.js.map +0 -1
  255. package/dist/src/core/text-rendering/sdf/SimpleFontShaper.d.ts +0 -45
  256. package/dist/src/core/text-rendering/sdf/SimpleFontShaper.js +0 -69
  257. package/dist/src/core/text-rendering/sdf/SimpleFontShaper.js.map +0 -1
@@ -34,7 +34,7 @@ export class ColorTexture extends Texture {
34
34
  props;
35
35
  constructor(txManager, props) {
36
36
  super(txManager);
37
- this.props = ColorTexture.resolveDefaults(props || {});
37
+ this.props = ColorTexture.resolveDefaults(props);
38
38
  }
39
39
  get color() {
40
40
  return this.props.color;
@@ -56,7 +56,6 @@ export class ColorTexture extends Texture {
56
56
  pixelData[2] = this.color & 0xff; // Blue
57
57
  pixelData[3] = (this.color >>> 24) & 0xff; // Alpha
58
58
  }
59
- this.setState('fetched', { width: 1, height: 1 });
60
59
  return {
61
60
  data: pixelData,
62
61
  premultiplyAlpha: true,
@@ -1 +1 @@
1
- {"version":3,"file":"ColorTexture.js","sourceRoot":"","sources":["../../../../src/core/textures/ColorTexture.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;GAiBG;AAGH,OAAO,EAAE,OAAO,EAAE,WAAW,EAAoB,MAAM,cAAc,CAAC;AActE;;;;;;;;;;;GAWG;AACH,MAAM,OAAO,YAAa,SAAQ,OAAO;IACvB,IAAI,GAAgB,WAAW,CAAC,KAAK,CAAC;IAEtD,KAAK,CAA8B;IAEnC,YAAY,SAA6B,EAAE,KAAyB;QAClE,KAAK,CAAC,SAAS,CAAC,CAAC;QACjB,IAAI,CAAC,KAAK,GAAG,YAAY,CAAC,eAAe,CAAC,KAAK,IAAI,EAAE,CAAC,CAAC;IACzD,CAAC;IAED,IAAI,KAAK;QACP,OAAO,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC;IAC1B,CAAC;IAED,IAAI,KAAK,CAAC,KAAa;QACrB,IAAI,CAAC,KAAK,CAAC,KAAK,GAAG,KAAK,CAAC;IAC3B,CAAC;IAEQ,KAAK,CAAC,gBAAgB;QAC7B,MAAM,SAAS,GAAG,IAAI,UAAU,CAAC,CAAC,CAAC,CAAC;QAEpC,IAAI,IAAI,CAAC,KAAK,KAAK,UAAU,EAAE,CAAC;YAC9B,SAAS,CAAC,CAAC,CAAC,GAAG,GAAG,CAAC;YACnB,SAAS,CAAC,CAAC,CAAC,GAAG,GAAG,CAAC;YACnB,SAAS,CAAC,CAAC,CAAC,GAAG,GAAG,CAAC;YACnB,SAAS,CAAC,CAAC,CAAC,GAAG,GAAG,CAAC;QACrB,CAAC;aAAM,CAAC;YACN,SAAS,CAAC,CAAC,CAAC,GAAG,CAAC,IAAI,CAAC,KAAK,IAAI,EAAE,CAAC,GAAG,IAAI,CAAC,CAAC,MAAM;YAChD,SAAS,CAAC,CAAC,CAAC,GAAG,CAAC,IAAI,CAAC,KAAK,IAAI,CAAC,CAAC,GAAG,IAAI,CAAC,CAAC,QAAQ;YACjD,SAAS,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC,CAAC,OAAO;YACzC,SAAS,CAAC,CAAC,CAAC,GAAG,CAAC,IAAI,CAAC,KAAK,KAAK,EAAE,CAAC,GAAG,IAAI,CAAC,CAAC,QAAQ;QACrD,CAAC;QAED,IAAI,CAAC,QAAQ,CAAC,SAAS,EAAE,EAAE,KAAK,EAAE,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,CAAC,CAAC;QAElD,OAAO;YACL,IAAI,EAAE,SAAS;YACf,gBAAgB,EAAE,IAAI;SACvB,CAAC;IACJ,CAAC;IAED,MAAM,CAAU,YAAY,CAAC,KAAwB;QACnD,MAAM,aAAa,GAAG,YAAY,CAAC,eAAe,CAAC,KAAK,CAAC,CAAC;QAC1D,OAAO,gBAAgB,aAAa,CAAC,KAAK,EAAE,CAAC;IAC/C,CAAC;IAED,MAAM,CAAU,eAAe,CAC7B,KAAwB;QAExB,OAAO;YACL,KAAK,EAAE,KAAK,CAAC,KAAK,IAAI,UAAU;SACjC,CAAC;IACJ,CAAC;IAED,MAAM,CAAC,eAAe,CAAoB;CAC3C"}
1
+ {"version":3,"file":"ColorTexture.js","sourceRoot":"","sources":["../../../../src/core/textures/ColorTexture.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;GAiBG;AAGH,OAAO,EAAE,OAAO,EAAE,WAAW,EAAoB,MAAM,cAAc,CAAC;AActE;;;;;;;;;;;GAWG;AACH,MAAM,OAAO,YAAa,SAAQ,OAAO;IACrB,IAAI,GAAG,WAAW,CAAC,KAAc,CAAC;IAC7C,KAAK,CAA8B;IAE1C,YAAY,SAA6B,EAAE,KAAwB;QACjE,KAAK,CAAC,SAAS,CAAC,CAAC;QACjB,IAAI,CAAC,KAAK,GAAG,YAAY,CAAC,eAAe,CAAC,KAAK,CAAC,CAAC;IACnD,CAAC;IAED,IAAI,KAAK;QACP,OAAO,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC;IAC1B,CAAC;IAED,IAAI,KAAK,CAAC,KAAa;QACrB,IAAI,CAAC,KAAK,CAAC,KAAK,GAAG,KAAK,CAAC;IAC3B,CAAC;IAEQ,KAAK,CAAC,gBAAgB;QAC7B,MAAM,SAAS,GAAG,IAAI,UAAU,CAAC,CAAC,CAAC,CAAC;QAEpC,IAAI,IAAI,CAAC,KAAK,KAAK,UAAU,EAAE,CAAC;YAC9B,SAAS,CAAC,CAAC,CAAC,GAAG,GAAG,CAAC;YACnB,SAAS,CAAC,CAAC,CAAC,GAAG,GAAG,CAAC;YACnB,SAAS,CAAC,CAAC,CAAC,GAAG,GAAG,CAAC;YACnB,SAAS,CAAC,CAAC,CAAC,GAAG,GAAG,CAAC;QACrB,CAAC;aAAM,CAAC;YACN,SAAS,CAAC,CAAC,CAAC,GAAG,CAAC,IAAI,CAAC,KAAK,IAAI,EAAE,CAAC,GAAG,IAAI,CAAC,CAAC,MAAM;YAChD,SAAS,CAAC,CAAC,CAAC,GAAG,CAAC,IAAI,CAAC,KAAK,IAAI,CAAC,CAAC,GAAG,IAAI,CAAC,CAAC,QAAQ;YACjD,SAAS,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC,CAAC,OAAO;YACzC,SAAS,CAAC,CAAC,CAAC,GAAG,CAAC,IAAI,CAAC,KAAK,KAAK,EAAE,CAAC,GAAG,IAAI,CAAC,CAAC,QAAQ;QACrD,CAAC;QAED,OAAO;YACL,IAAI,EAAE,SAAS;YACf,gBAAgB,EAAE,IAAI;SACvB,CAAC;IACJ,CAAC;IAED,MAAM,CAAU,YAAY,CAAC,KAAwB;QACnD,MAAM,aAAa,GAAG,YAAY,CAAC,eAAe,CAAC,KAAK,CAAC,CAAC;QAC1D,OAAO,gBAAgB,aAAa,CAAC,KAAK,EAAE,CAAC;IAC/C,CAAC;IAED,MAAM,CAAU,eAAe,CAC7B,KAAwB;QAExB,OAAO;YACL,KAAK,EAAE,KAAK,CAAC,KAAK,IAAI,UAAU;SACjC,CAAC;IACJ,CAAC;IAED,MAAM,CAAC,eAAe,CAAoB;CAC3C"}
@@ -76,6 +76,12 @@ export interface ImageTextureProps {
76
76
  * @default null
77
77
  */
78
78
  sy?: number | null;
79
+ /**
80
+ * Maximum number of times to retry loading the image if it fails.
81
+ *
82
+ * @default 5
83
+ */
84
+ maxRetryCount?: number | null;
79
85
  }
80
86
  /**
81
87
  * Texture consisting of an image loaded from a URL
@@ -92,8 +98,8 @@ export interface ImageTextureProps {
92
98
  * {@link ImageTextureProps.premultiplyAlpha} prop to `false`.
93
99
  */
94
100
  export declare class ImageTexture extends Texture {
101
+ readonly type: TextureType.image;
95
102
  props: Required<ImageTextureProps>;
96
- type: TextureType;
97
103
  constructor(txManager: CoreTextureManager, props: ImageTextureProps);
98
104
  hasAlphaChannel(mimeType: string): boolean;
99
105
  loadImageFallback(src: string | Blob, hasAlpha: boolean): Promise<{
@@ -36,11 +36,13 @@ import { fetchJson } from '../text-rendering/font-face-types/utils.js';
36
36
  * {@link ImageTextureProps.premultiplyAlpha} prop to `false`.
37
37
  */
38
38
  export class ImageTexture extends Texture {
39
- props;
40
39
  type = TextureType.image;
40
+ props;
41
41
  constructor(txManager, props) {
42
+ const resolvedProps = ImageTexture.resolveDefaults(props);
42
43
  super(txManager);
43
- this.props = ImageTexture.resolveDefaults(props);
44
+ this.props = resolvedProps;
45
+ this.maxRetryCount = props.maxRetryCount;
44
46
  }
45
47
  hasAlphaChannel(mimeType) {
46
48
  return mimeType.indexOf('image/png') !== -1;
@@ -50,13 +52,17 @@ export class ImageTexture extends Texture {
50
52
  if (typeof src === 'string' && isBase64Image(src) === false) {
51
53
  img.crossOrigin = 'anonymous';
52
54
  }
53
- return new Promise((resolve) => {
55
+ return new Promise((resolve, reject) => {
54
56
  img.onload = () => {
55
57
  resolve({ data: img, premultiplyAlpha: hasAlpha });
56
58
  };
57
- img.onerror = () => {
58
- console.warn('Image loading failed, returning fallback object.');
59
- resolve({ data: null, premultiplyAlpha: hasAlpha });
59
+ img.onerror = (err) => {
60
+ const errorMessage = err instanceof Error
61
+ ? err.message
62
+ : err instanceof Event
63
+ ? `Image loading failed for ${img.src}`
64
+ : 'Unknown image loading error';
65
+ reject(new Error(`Image loading failed: ${errorMessage}`));
60
66
  };
61
67
  if (src instanceof Blob) {
62
68
  img.src = URL.createObjectURL(src);
@@ -71,28 +77,43 @@ export class ImageTexture extends Texture {
71
77
  const imageBitmapSupported = this.txManager.imageBitmapSupported;
72
78
  if (imageBitmapSupported.full === true && sw !== null && sh !== null) {
73
79
  // createImageBitmap with crop
74
- const bitmap = await createImageBitmap(blob, sx || 0, sy || 0, sw, sh, {
80
+ try {
81
+ const bitmap = await createImageBitmap(blob, sx || 0, sy || 0, sw, sh, {
82
+ premultiplyAlpha: hasAlphaChannel ? 'premultiply' : 'none',
83
+ colorSpaceConversion: 'none',
84
+ imageOrientation: 'none',
85
+ });
86
+ return { data: bitmap, premultiplyAlpha: hasAlphaChannel };
87
+ }
88
+ catch (error) {
89
+ throw new Error(`Failed to create image bitmap with crop: ${error}`);
90
+ }
91
+ }
92
+ else if (imageBitmapSupported.basic === true) {
93
+ // basic createImageBitmap without options or crop
94
+ // this is supported for Chrome v50 to v52/54 that doesn't support options
95
+ try {
96
+ return {
97
+ data: await createImageBitmap(blob),
98
+ premultiplyAlpha: hasAlphaChannel,
99
+ };
100
+ }
101
+ catch (error) {
102
+ throw new Error(`Failed to create basic image bitmap: ${error}`);
103
+ }
104
+ }
105
+ // default createImageBitmap without crop but with options
106
+ try {
107
+ const bitmap = await createImageBitmap(blob, {
75
108
  premultiplyAlpha: hasAlphaChannel ? 'premultiply' : 'none',
76
109
  colorSpaceConversion: 'none',
77
110
  imageOrientation: 'none',
78
111
  });
79
112
  return { data: bitmap, premultiplyAlpha: hasAlphaChannel };
80
113
  }
81
- else if (imageBitmapSupported.basic === true) {
82
- // basic createImageBitmap without options or crop
83
- // this is supported for Chrome v50 to v52/54 that doesn't support options
84
- return {
85
- data: await createImageBitmap(blob),
86
- premultiplyAlpha: hasAlphaChannel,
87
- };
114
+ catch (error) {
115
+ throw new Error(`Failed to create image bitmap with options: ${error}`);
88
116
  }
89
- // default createImageBitmap without crop but with options
90
- const bitmap = await createImageBitmap(blob, {
91
- premultiplyAlpha: hasAlphaChannel ? 'premultiply' : 'none',
92
- colorSpaceConversion: 'none',
93
- imageOrientation: 'none',
94
- });
95
- return { data: bitmap, premultiplyAlpha: hasAlphaChannel };
96
117
  }
97
118
  async loadImage(src) {
98
119
  const { premultiplyAlpha, sx, sy, sw, sh } = this.props;
@@ -100,14 +121,24 @@ export class ImageTexture extends Texture {
100
121
  if (isBase64Image(src) === false &&
101
122
  this.txManager.hasWorker === true &&
102
123
  this.txManager.imageWorkerManager !== null) {
103
- return this.txManager.imageWorkerManager.getImage(src, premultiplyAlpha, sx, sy, sw, sh);
124
+ try {
125
+ return this.txManager.imageWorkerManager.getImage(src, premultiplyAlpha, sx, sy, sw, sh);
126
+ }
127
+ catch (error) {
128
+ throw new Error(`Failed to load image via worker: ${error}`);
129
+ }
104
130
  }
105
131
  let blob;
106
132
  if (isBase64Image(src) === true) {
107
133
  blob = dataURIToBlob(src);
108
134
  }
109
135
  else {
110
- blob = await fetchJson(src, 'blob').then((response) => response);
136
+ try {
137
+ blob = (await fetchJson(src, 'blob'));
138
+ }
139
+ catch (error) {
140
+ throw new Error(`Failed to fetch image blob from ${src}: ${error}`);
141
+ }
111
142
  }
112
143
  return this.createImageBitmap(blob, premultiplyAlpha, sx, sy, sw, sh);
113
144
  }
@@ -130,22 +161,6 @@ export class ImageTexture extends Texture {
130
161
  data: null,
131
162
  };
132
163
  }
133
- let width, height;
134
- // check if resp.data is typeof Uint8ClampedArray else
135
- // use resp.data.width and resp.data.height
136
- if (resp.data instanceof Uint8Array) {
137
- width = this.props.width ?? 0;
138
- height = this.props.height ?? 0;
139
- }
140
- else {
141
- width = resp.data?.width ?? (this.props.width || 0);
142
- height = resp.data?.height ?? (this.props.height || 0);
143
- }
144
- // we're loaded!
145
- this.setState('fetched', {
146
- width,
147
- height,
148
- });
149
164
  return {
150
165
  data: resp.data,
151
166
  premultiplyAlpha: this.props.premultiplyAlpha ?? true,
@@ -233,6 +248,7 @@ export class ImageTexture extends Texture {
233
248
  sy: props.sy ?? null,
234
249
  sw: props.sw ?? null,
235
250
  sh: props.sh ?? null,
251
+ maxRetryCount: props.maxRetryCount ?? 5,
236
252
  };
237
253
  }
238
254
  static z$__type__Props;
@@ -1 +1 @@
1
- {"version":3,"file":"ImageTexture.js","sourceRoot":"","sources":["../../../../src/core/textures/ImageTexture.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"ImageTexture.js","sourceRoot":"","sources":["../../../../src/core/textures/ImageTexture.ts"],"names":[],"mappings":"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"}
@@ -44,7 +44,7 @@ export class NoiseTexture extends Texture {
44
44
  pixelData8[i + 2] = v;
45
45
  pixelData8[i + 3] = 255;
46
46
  }
47
- this.setState('fetched');
47
+ // Noise texture data ready - dimensions will be set during upload
48
48
  return {
49
49
  data: new ImageData(pixelData8, width, height),
50
50
  };
@@ -1 +1 @@
1
- {"version":3,"file":"NoiseTexture.js","sourceRoot":"","sources":["../../../../src/core/textures/NoiseTexture.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;GAiBG;AAGH,OAAO,EAAE,OAAO,EAAE,WAAW,EAAoB,MAAM,cAAc,CAAC;AA0BtE;;;;;;;;GAQG;AACH,MAAM,OAAO,YAAa,SAAQ,OAAO;IACvC,KAAK,CAA8B;IAEnB,IAAI,GAAgB,WAAW,CAAC,KAAK,CAAC;IAEtD,YAAY,SAA6B,EAAE,KAAwB;QACjE,KAAK,CAAC,SAAS,CAAC,CAAC;QACjB,IAAI,CAAC,KAAK,GAAG,YAAY,CAAC,eAAe,CAAC,KAAK,CAAC,CAAC;IACnD,CAAC;IAEQ,KAAK,CAAC,gBAAgB;QAC7B,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,GAAG,IAAI,CAAC,KAAK,CAAC;QACrC,MAAM,IAAI,GAAG,KAAK,GAAG,MAAM,GAAG,CAAC,CAAC;QAChC,MAAM,UAAU,GAAG,IAAI,iBAAiB,CAAC,IAAI,CAAC,CAAC;QAC/C,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,IAAI,EAAE,CAAC,IAAI,CAAC,EAAE,CAAC;YACjC,MAAM,CAAC,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,MAAM,EAAE,GAAG,GAAG,CAAC,CAAC;YAC1C,UAAU,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC;YAClB,UAAU,CAAC,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC;YACtB,UAAU,CAAC,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC;YACtB,UAAU,CAAC,CAAC,GAAG,CAAC,CAAC,GAAG,GAAG,CAAC;QAC1B,CAAC;QAED,IAAI,CAAC,QAAQ,CAAC,SAAS,CAAC,CAAC;QAEzB,OAAO;YACL,IAAI,EAAE,IAAI,SAAS,CAAC,UAAU,EAAE,KAAK,EAAE,MAAM,CAAC;SAC/C,CAAC;IACJ,CAAC;IAED,MAAM,CAAU,YAAY,CAAC,KAAwB;QACnD,IAAI,KAAK,CAAC,OAAO,KAAK,SAAS,EAAE,CAAC;YAChC,OAAO,KAAK,CAAC;QACf,CAAC;QACD,MAAM,aAAa,GAAG,YAAY,CAAC,eAAe,CAAC,KAAK,CAAC,CAAC;QAC1D,OAAO,gBAAgB,aAAa,CAAC,KAAK,IAAI,aAAa,CAAC,MAAM,IAAI,aAAa,CAAC,OAAO,EAAE,CAAC;IAChG,CAAC;IAED,MAAM,CAAU,eAAe,CAC7B,KAAwB;QAExB,OAAO;YACL,KAAK,EAAE,KAAK,CAAC,KAAK,IAAI,GAAG;YACzB,MAAM,EAAE,KAAK,CAAC,MAAM,IAAI,GAAG;YAC3B,OAAO,EAAE,KAAK,CAAC,OAAO,IAAI,CAAC;SAC5B,CAAC;IACJ,CAAC;IAED,MAAM,CAAC,eAAe,CAAoB;CAC3C"}
1
+ {"version":3,"file":"NoiseTexture.js","sourceRoot":"","sources":["../../../../src/core/textures/NoiseTexture.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;GAiBG;AAGH,OAAO,EAAE,OAAO,EAAE,WAAW,EAAoB,MAAM,cAAc,CAAC;AA0BtE;;;;;;;;GAQG;AACH,MAAM,OAAO,YAAa,SAAQ,OAAO;IACvC,KAAK,CAA8B;IAEnB,IAAI,GAAgB,WAAW,CAAC,KAAK,CAAC;IAEtD,YAAY,SAA6B,EAAE,KAAwB;QACjE,KAAK,CAAC,SAAS,CAAC,CAAC;QACjB,IAAI,CAAC,KAAK,GAAG,YAAY,CAAC,eAAe,CAAC,KAAK,CAAC,CAAC;IACnD,CAAC;IAEQ,KAAK,CAAC,gBAAgB;QAC7B,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,GAAG,IAAI,CAAC,KAAK,CAAC;QACrC,MAAM,IAAI,GAAG,KAAK,GAAG,MAAM,GAAG,CAAC,CAAC;QAChC,MAAM,UAAU,GAAG,IAAI,iBAAiB,CAAC,IAAI,CAAC,CAAC;QAC/C,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,IAAI,EAAE,CAAC,IAAI,CAAC,EAAE,CAAC;YACjC,MAAM,CAAC,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,MAAM,EAAE,GAAG,GAAG,CAAC,CAAC;YAC1C,UAAU,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC;YAClB,UAAU,CAAC,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC;YACtB,UAAU,CAAC,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC;YACtB,UAAU,CAAC,CAAC,GAAG,CAAC,CAAC,GAAG,GAAG,CAAC;QAC1B,CAAC;QAED,kEAAkE;QAElE,OAAO;YACL,IAAI,EAAE,IAAI,SAAS,CAAC,UAAU,EAAE,KAAK,EAAE,MAAM,CAAC;SAC/C,CAAC;IACJ,CAAC;IAED,MAAM,CAAU,YAAY,CAAC,KAAwB;QACnD,IAAI,KAAK,CAAC,OAAO,KAAK,SAAS,EAAE,CAAC;YAChC,OAAO,KAAK,CAAC;QACf,CAAC;QACD,MAAM,aAAa,GAAG,YAAY,CAAC,eAAe,CAAC,KAAK,CAAC,CAAC;QAC1D,OAAO,gBAAgB,aAAa,CAAC,KAAK,IAAI,aAAa,CAAC,MAAM,IAAI,aAAa,CAAC,OAAO,EAAE,CAAC;IAChG,CAAC;IAED,MAAM,CAAU,eAAe,CAC7B,KAAwB;QAExB,OAAO;YACL,KAAK,EAAE,KAAK,CAAC,KAAK,IAAI,GAAG;YACzB,MAAM,EAAE,KAAK,CAAC,MAAM,IAAI,GAAG;YAC3B,OAAO,EAAE,KAAK,CAAC,OAAO,IAAI,CAAC;SAC5B,CAAC;IACJ,CAAC;IAED,MAAM,CAAC,eAAe,CAAoB;CAC3C"}
@@ -37,7 +37,7 @@ export class RenderTexture extends Texture {
37
37
  this.props.height = value;
38
38
  }
39
39
  async getTextureSource() {
40
- this.setState('fetched');
40
+ // Render texture data ready - dimensions will be set during upload
41
41
  return {
42
42
  data: null,
43
43
  premultiplyAlpha: null,
@@ -1 +1 @@
1
- {"version":3,"file":"RenderTexture.js","sourceRoot":"","sources":["../../../../src/core/textures/RenderTexture.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;GAiBG;AAGH,OAAO,EAAE,OAAO,EAAE,WAAW,EAAoB,MAAM,cAAc,CAAC;AAmBtE,MAAM,OAAO,aAAc,SAAQ,OAAO;IACxC,KAAK,CAA+B;IAEpB,IAAI,GAAgB,WAAW,CAAC,eAAe,CAAC;IAEhE,YAAY,SAA6B,EAAE,KAA0B;QACnE,KAAK,CAAC,SAAS,CAAC,CAAC;QACjB,IAAI,CAAC,KAAK,GAAG,aAAa,CAAC,eAAe,CAAC,KAAK,IAAI,EAAE,CAAC,CAAC;IAC1D,CAAC;IAED,IAAI,KAAK;QACP,OAAO,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC;IAC1B,CAAC;IAED,IAAI,KAAK,CAAC,KAAa;QACrB,IAAI,CAAC,KAAK,CAAC,KAAK,GAAG,KAAK,CAAC;IAC3B,CAAC;IAED,IAAI,MAAM;QACR,OAAO,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC;IAC3B,CAAC;IAED,IAAI,MAAM,CAAC,KAAa;QACtB,IAAI,CAAC,KAAK,CAAC,MAAM,GAAG,KAAK,CAAC;IAC5B,CAAC;IAEQ,KAAK,CAAC,gBAAgB;QAC7B,IAAI,CAAC,QAAQ,CAAC,SAAS,CAAC,CAAC;QAEzB,OAAO;YACL,IAAI,EAAE,IAAI;YACV,gBAAgB,EAAE,IAAI;SACvB,CAAC;IACJ,CAAC;IAED,MAAM,CAAU,eAAe,CAC7B,KAAyB;QAEzB,OAAO;YACL,KAAK,EAAE,KAAK,CAAC,KAAK,IAAI,GAAG;YACzB,MAAM,EAAE,KAAK,CAAC,MAAM,IAAI,GAAG;SAC5B,CAAC;IACJ,CAAC;IAED,MAAM,CAAC,eAAe,CAAqB;CAC5C"}
1
+ {"version":3,"file":"RenderTexture.js","sourceRoot":"","sources":["../../../../src/core/textures/RenderTexture.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;GAiBG;AAGH,OAAO,EAAE,OAAO,EAAE,WAAW,EAAoB,MAAM,cAAc,CAAC;AAmBtE,MAAM,OAAO,aAAc,SAAQ,OAAO;IACxC,KAAK,CAA+B;IAEpB,IAAI,GAAgB,WAAW,CAAC,eAAe,CAAC;IAEhE,YAAY,SAA6B,EAAE,KAA0B;QACnE,KAAK,CAAC,SAAS,CAAC,CAAC;QACjB,IAAI,CAAC,KAAK,GAAG,aAAa,CAAC,eAAe,CAAC,KAAK,IAAI,EAAE,CAAC,CAAC;IAC1D,CAAC;IAED,IAAI,KAAK;QACP,OAAO,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC;IAC1B,CAAC;IAED,IAAI,KAAK,CAAC,KAAa;QACrB,IAAI,CAAC,KAAK,CAAC,KAAK,GAAG,KAAK,CAAC;IAC3B,CAAC;IAED,IAAI,MAAM;QACR,OAAO,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC;IAC3B,CAAC;IAED,IAAI,MAAM,CAAC,KAAa;QACtB,IAAI,CAAC,KAAK,CAAC,MAAM,GAAG,KAAK,CAAC;IAC5B,CAAC;IAEQ,KAAK,CAAC,gBAAgB;QAC7B,mEAAmE;QAEnE,OAAO;YACL,IAAI,EAAE,IAAI;YACV,gBAAgB,EAAE,IAAI;SACvB,CAAC;IACJ,CAAC;IAED,MAAM,CAAU,eAAe,CAC7B,KAAyB;QAEzB,OAAO;YACL,KAAK,EAAE,KAAK,CAAC,KAAK,IAAI,GAAG;YACzB,MAAM,EAAE,KAAK,CAAC,MAAM,IAAI,GAAG;SAC5B,CAAC;IACJ,CAAC;IAED,MAAM,CAAC,eAAe,CAAqB;CAC5C"}
@@ -47,11 +47,10 @@ export declare class SubTexture extends Texture {
47
47
  props: Required<SubTextureProps>;
48
48
  parentTexture: Texture;
49
49
  type: TextureType;
50
+ subtextureId: string;
50
51
  constructor(txManager: CoreTextureManager, props: SubTextureProps);
51
52
  private onParentTxLoaded;
52
53
  private onParentTxFailed;
53
- private onParentTxFetched;
54
- private onParentTxFetching;
55
54
  private onParentTxLoading;
56
55
  private onParentTxFreed;
57
56
  private forwardParentTxState;
@@ -19,6 +19,7 @@
19
19
  import { assertTruthy } from '../../utils.js';
20
20
  import { ImageTexture } from './ImageTexture.js';
21
21
  import { Texture, TextureType, } from './Texture.js';
22
+ let subTextureId = 0;
22
23
  /**
23
24
  * A Texture that is a sub-region of another Texture.
24
25
  *
@@ -33,6 +34,7 @@ export class SubTexture extends Texture {
33
34
  props;
34
35
  parentTexture;
35
36
  type = TextureType.subTexture;
37
+ subtextureId = `subtexture-${subTextureId++}`;
36
38
  constructor(txManager, props) {
37
39
  super(txManager);
38
40
  this.props = SubTexture.resolveDefaults(props || {});
@@ -40,8 +42,8 @@ export class SubTexture extends Texture {
40
42
  assertTruthy(this.props.texture instanceof ImageTexture, 'SubTexture requires an ImageTexture parent');
41
43
  // Resolve parent texture from cache or fallback to provided texture
42
44
  this.parentTexture = txManager.resolveParentTexture(this.props.texture);
43
- if (this.renderableOwners.size > 0) {
44
- this.parentTexture.setRenderableOwner(this, true);
45
+ if (this.renderableOwners.length > 0) {
46
+ this.parentTexture.setRenderableOwner(this.subtextureId, true);
45
47
  }
46
48
  // If parent texture is already loaded / failed, trigger loaded event manually
47
49
  // so that users get a consistent event experience.
@@ -49,27 +51,19 @@ export class SubTexture extends Texture {
49
51
  // synchronous task after calling loadTexture()
50
52
  queueMicrotask(() => {
51
53
  const parentTx = this.parentTexture;
52
- if (parentTx.state === 'loaded') {
54
+ if (parentTx.state === 'loaded' && parentTx.dimensions) {
53
55
  this.onParentTxLoaded(parentTx, parentTx.dimensions);
54
56
  }
55
- else if (parentTx.state === 'fetching') {
56
- this.onParentTxFetching();
57
- }
58
- else if (parentTx.state === 'fetched') {
59
- this.onParentTxFetched();
60
- }
61
57
  else if (parentTx.state === 'loading') {
62
58
  this.onParentTxLoading();
63
59
  }
64
- else if (parentTx.state === 'failed') {
60
+ else if (parentTx.state === 'failed' && parentTx.error) {
65
61
  this.onParentTxFailed(parentTx, parentTx.error);
66
62
  }
67
63
  else if (parentTx.state === 'freed') {
68
64
  this.onParentTxFreed();
69
65
  }
70
- parentTx.on('fetched', this.onParentTxFetched);
71
66
  parentTx.on('loading', this.onParentTxLoading);
72
- parentTx.on('fetching', this.onParentTxFetching);
73
67
  parentTx.on('loaded', this.onParentTxLoaded);
74
68
  parentTx.on('failed', this.onParentTxFailed);
75
69
  parentTx.on('freed', this.onParentTxFreed);
@@ -86,15 +80,6 @@ export class SubTexture extends Texture {
86
80
  onParentTxFailed = (target, error) => {
87
81
  this.forwardParentTxState('failed', error);
88
82
  };
89
- onParentTxFetched = () => {
90
- this.forwardParentTxState('fetched', {
91
- width: this.props.width,
92
- height: this.props.height,
93
- });
94
- };
95
- onParentTxFetching = () => {
96
- this.forwardParentTxState('fetching');
97
- };
98
83
  onParentTxLoading = () => {
99
84
  this.forwardParentTxState('loading');
100
85
  };
@@ -106,16 +91,13 @@ export class SubTexture extends Texture {
106
91
  }
107
92
  onChangeIsRenderable(isRenderable) {
108
93
  // Propagate the renderable owner change to the parent texture
109
- this.parentTexture.setRenderableOwner(this, isRenderable);
94
+ this.parentTexture.setRenderableOwner(this.subtextureId, isRenderable);
110
95
  }
111
96
  async getTextureSource() {
112
- // Check if parent texture is loaded
113
- return new Promise((resolve, reject) => {
114
- this.setState('fetched');
115
- resolve({
116
- data: this.props,
117
- });
118
- });
97
+ // SubTexture data ready - dimensions will be set during upload
98
+ return {
99
+ data: this.props,
100
+ };
119
101
  }
120
102
  // eslint-disable-next-line @typescript-eslint/no-unused-vars
121
103
  static makeCacheKey(props) {
@@ -1 +1 @@
1
- {"version":3,"file":"SubTexture.js","sourceRoot":"","sources":["../../../../src/core/textures/SubTexture.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"SubTexture.js","sourceRoot":"","sources":["../../../../src/core/textures/SubTexture.ts"],"names":[],"mappings":"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"}
@@ -61,7 +61,7 @@ export interface TextureData {
61
61
  */
62
62
  premultiplyAlpha?: boolean | null;
63
63
  }
64
- export type TextureState = 'initial' | 'fetching' | 'fetched' | 'loading' | 'loaded' | 'failed' | 'freed';
64
+ export type TextureState = 'initial' | 'loading' | 'loaded' | 'failed' | 'freed';
65
65
  export declare enum TextureType {
66
66
  'generic' = 0,
67
67
  'color' = 1,
@@ -90,20 +90,50 @@ export declare abstract class Texture extends EventEmitter {
90
90
  */
91
91
  private _dimensions;
92
92
  private _error;
93
- /**
94
- * Texture states that are considered transitional and should be skipped during cleanup
95
- */
96
- static readonly TRANSITIONAL_TEXTURE_STATES: readonly TextureState[];
97
93
  state: TextureState;
98
- readonly renderableOwners: Set<unknown>;
94
+ readonly renderableOwners: any[];
99
95
  readonly renderable: boolean;
100
96
  type: TextureType;
101
97
  preventCleanup: boolean;
102
98
  ctxTexture: CoreContextTexture | undefined;
103
99
  textureData: TextureData | null;
100
+ /**
101
+ * Memory used by this texture in bytes
102
+ *
103
+ * @remarks
104
+ * This is tracked by the TextureMemoryManager and updated when the texture
105
+ * is loaded/freed. Set to 0 when texture is not loaded.
106
+ */
107
+ memUsed: number;
108
+ retryCount: number;
109
+ maxRetryCount: number | null;
110
+ /**
111
+ * Timestamp when texture was created (for startup grace period)
112
+ */
113
+ private createdAt;
114
+ /**
115
+ * Flag to track if grace period has expired to avoid repeated Date.now() calls
116
+ */
117
+ private gracePeriodExpired;
118
+ /**
119
+ * Grace period in milliseconds to prevent premature cleanup during app startup
120
+ * This helps prevent race conditions when bounds calculation is delayed
121
+ */
122
+ private static readonly STARTUP_GRACE_PERIOD;
104
123
  constructor(txManager: CoreTextureManager);
105
124
  get dimensions(): Dimensions | null;
106
125
  get error(): Error | null;
126
+ /**
127
+ * Checks if the texture is within the startup grace period.
128
+ * During this period, textures are protected from cleanup to prevent
129
+ * race conditions during app initialization.
130
+ */
131
+ isWithinStartupGracePeriod(): boolean;
132
+ /**
133
+ * Checks if the texture can be safely cleaned up.
134
+ * Considers the renderable state, startup grace period, and renderable owners.
135
+ */
136
+ canBeCleanedUp(): boolean;
107
137
  /**
108
138
  * Add/remove an owner to/from the Texture based on its renderability.
109
139
  *
@@ -118,7 +148,7 @@ export declare abstract class Texture extends EventEmitter {
118
148
  * @param owner
119
149
  * @param renderable
120
150
  */
121
- setRenderableOwner(owner: unknown, renderable: boolean): void;
151
+ setRenderableOwner(owner: string | number, renderable: boolean): void;
122
152
  load(): void;
123
153
  /**
124
154
  * Event called when the Texture becomes renderable or unrenderable.
@@ -144,6 +174,13 @@ export declare abstract class Texture extends EventEmitter {
144
174
  * The ctxTexture is created by the renderer and lives on the GPU.
145
175
  */
146
176
  free(): void;
177
+ /**
178
+ * Release the texture data and core context texture for this Texture without changing state.
179
+ *
180
+ * @remarks
181
+ * The ctxTexture is created by the renderer and lives on the GPU.
182
+ */
183
+ release(): void;
147
184
  /**
148
185
  * Destroy the texture.
149
186
  *
@@ -207,5 +244,12 @@ export declare abstract class Texture extends EventEmitter {
207
244
  * The default values for the texture's properties.
208
245
  */
209
246
  static resolveDefaults(props: unknown): Record<string, unknown>;
247
+ /**
248
+ * Retry the texture by resetting retryCount and setting state to 'initial'.
249
+ *
250
+ * @remarks
251
+ * This allows the texture to be loaded again.
252
+ */
253
+ retry(): void;
210
254
  }
211
255
  export {};