@codexo/exojs 0.9.0 → 0.11.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 (242) hide show
  1. package/CHANGELOG.md +127 -0
  2. package/README.md +14 -14
  3. package/dist/esm/core/Application.d.ts +25 -6
  4. package/dist/esm/core/Application.js +42 -8
  5. package/dist/esm/core/Application.js.map +1 -1
  6. package/dist/esm/core/Perf.d.ts +23 -0
  7. package/dist/esm/core/Perf.js +49 -0
  8. package/dist/esm/core/Perf.js.map +1 -0
  9. package/dist/esm/core/Scene.d.ts +8 -8
  10. package/dist/esm/core/Scene.js +7 -7
  11. package/dist/esm/core/Scene.js.map +1 -1
  12. package/dist/esm/core/SceneManager.js +2 -2
  13. package/dist/esm/core/SceneManager.js.map +1 -1
  14. package/dist/esm/core/SceneNode.d.ts +0 -3
  15. package/dist/esm/core/SceneNode.js +0 -9
  16. package/dist/esm/core/SceneNode.js.map +1 -1
  17. package/dist/esm/core/capabilities.d.ts +2 -0
  18. package/dist/esm/core/capabilities.js +15 -0
  19. package/dist/esm/core/capabilities.js.map +1 -1
  20. package/dist/esm/core/dev.d.ts +21 -0
  21. package/dist/esm/core/dev.js +18 -0
  22. package/dist/esm/core/dev.js.map +1 -0
  23. package/dist/esm/core/index.d.ts +1 -0
  24. package/dist/esm/core/types.d.ts +1 -1
  25. package/dist/esm/core/utils.d.ts +12 -0
  26. package/dist/esm/core/utils.js +18 -1
  27. package/dist/esm/core/utils.js.map +1 -1
  28. package/dist/esm/index.js +14 -3
  29. package/dist/esm/index.js.map +1 -1
  30. package/dist/esm/particles/ParticleSystem.d.ts +8 -5
  31. package/dist/esm/particles/ParticleSystem.js +9 -5
  32. package/dist/esm/particles/ParticleSystem.js.map +1 -1
  33. package/dist/esm/particles/distributions/{Gradient.d.ts → ColorGradient.d.ts} +5 -5
  34. package/dist/esm/particles/distributions/{Gradient.js → ColorGradient.js} +5 -5
  35. package/dist/esm/particles/distributions/ColorGradient.js.map +1 -0
  36. package/dist/esm/particles/distributions/Distribution.d.ts +2 -2
  37. package/dist/esm/particles/distributions/index.d.ts +2 -2
  38. package/dist/esm/particles/gpu/ParticleGpuState.js +1 -1
  39. package/dist/esm/particles/modules/AlphaFadeOverLifetime.d.ts +2 -2
  40. package/dist/esm/particles/modules/AlphaFadeOverLifetime.js +5 -1
  41. package/dist/esm/particles/modules/AlphaFadeOverLifetime.js.map +1 -1
  42. package/dist/esm/particles/modules/ColorOverLifetime.d.ts +3 -3
  43. package/dist/esm/particles/modules/ColorOverLifetime.js.map +1 -1
  44. package/dist/esm/particles/modules/ColorOverSpeed.d.ts +3 -3
  45. package/dist/esm/particles/modules/ColorOverSpeed.js.map +1 -1
  46. package/dist/esm/particles/modules/UpdateModule.d.ts +2 -2
  47. package/dist/esm/particles/modules/UpdateModule.js +1 -1
  48. package/dist/esm/particles/modules/WgslContribution.d.ts +2 -2
  49. package/dist/esm/rendering/Camera.d.ts +33 -0
  50. package/dist/esm/rendering/Camera.js +38 -0
  51. package/dist/esm/rendering/Camera.js.map +1 -0
  52. package/dist/esm/rendering/Container.d.ts +5 -24
  53. package/dist/esm/rendering/Container.js +8 -71
  54. package/dist/esm/rendering/Container.js.map +1 -1
  55. package/dist/esm/rendering/Drawable.d.ts +8 -10
  56. package/dist/esm/rendering/Drawable.js +12 -20
  57. package/dist/esm/rendering/Drawable.js.map +1 -1
  58. package/dist/esm/rendering/RenderBackend.d.ts +18 -0
  59. package/dist/esm/rendering/RenderNode.d.ts +81 -8
  60. package/dist/esm/rendering/RenderNode.js +121 -144
  61. package/dist/esm/rendering/RenderNode.js.map +1 -1
  62. package/dist/esm/rendering/RenderTarget.d.ts +13 -0
  63. package/dist/esm/rendering/RenderTarget.js +13 -0
  64. package/dist/esm/rendering/RenderTarget.js.map +1 -1
  65. package/dist/esm/rendering/RenderTargetPass.js +17 -0
  66. package/dist/esm/rendering/RenderTargetPass.js.map +1 -1
  67. package/dist/esm/rendering/RenderingContext.d.ts +87 -0
  68. package/dist/esm/rendering/RenderingContext.js +157 -0
  69. package/dist/esm/rendering/RenderingContext.js.map +1 -0
  70. package/dist/esm/rendering/TransformBuffer.d.ts +82 -0
  71. package/dist/esm/rendering/TransformBuffer.js +180 -0
  72. package/dist/esm/rendering/TransformBuffer.js.map +1 -0
  73. package/dist/esm/rendering/filters/WebGpuShaderFilter.js +5 -12
  74. package/dist/esm/rendering/filters/WebGpuShaderFilter.js.map +1 -1
  75. package/dist/esm/rendering/geometry/Geometry.d.ts +40 -0
  76. package/dist/esm/rendering/geometry/Geometry.js +228 -0
  77. package/dist/esm/rendering/geometry/Geometry.js.map +1 -0
  78. package/dist/esm/rendering/geometry/GeometryAttribute.d.ts +32 -0
  79. package/dist/esm/rendering/geometry/QuadGeometry.d.ts +5 -0
  80. package/dist/esm/rendering/gradient/Gradient.d.ts +67 -0
  81. package/dist/esm/rendering/gradient/Gradient.js +160 -0
  82. package/dist/esm/rendering/gradient/Gradient.js.map +1 -0
  83. package/dist/esm/rendering/gradient/LinearGradient.d.ts +18 -0
  84. package/dist/esm/rendering/gradient/LinearGradient.js +49 -0
  85. package/dist/esm/rendering/gradient/LinearGradient.js.map +1 -0
  86. package/dist/esm/rendering/gradient/RadialGradient.d.ts +18 -0
  87. package/dist/esm/rendering/gradient/RadialGradient.js +44 -0
  88. package/dist/esm/rendering/gradient/RadialGradient.js.map +1 -0
  89. package/dist/esm/rendering/index.d.ts +16 -2
  90. package/dist/esm/rendering/material/Material.d.ts +114 -0
  91. package/dist/esm/rendering/material/Material.js +111 -0
  92. package/dist/esm/rendering/material/Material.js.map +1 -0
  93. package/dist/esm/rendering/material/MaterialKey.d.ts +18 -0
  94. package/dist/esm/rendering/material/MaterialKey.js +82 -0
  95. package/dist/esm/rendering/material/MaterialKey.js.map +1 -0
  96. package/dist/esm/rendering/material/MeshMaterial.d.ts +16 -0
  97. package/dist/esm/rendering/material/MeshMaterial.js +21 -0
  98. package/dist/esm/rendering/material/MeshMaterial.js.map +1 -0
  99. package/dist/esm/rendering/{mesh/MeshShader.d.ts → material/ShaderSource.d.ts} +29 -62
  100. package/dist/esm/rendering/{mesh/MeshShader.js → material/ShaderSource.js} +35 -62
  101. package/dist/esm/rendering/material/ShaderSource.js.map +1 -0
  102. package/dist/esm/rendering/material/SpriteMaterial.d.ts +15 -0
  103. package/dist/esm/rendering/material/SpriteMaterial.js +20 -0
  104. package/dist/esm/rendering/material/SpriteMaterial.js.map +1 -0
  105. package/dist/esm/rendering/mesh/Mesh.d.ts +29 -12
  106. package/dist/esm/rendering/mesh/Mesh.js +122 -3
  107. package/dist/esm/rendering/mesh/Mesh.js.map +1 -1
  108. package/dist/esm/rendering/pass/RenderPassCoordinator.d.ts +63 -0
  109. package/dist/esm/rendering/pass/RenderPassDescriptor.d.ts +48 -0
  110. package/dist/esm/rendering/pass/RenderPassDescriptor.js +16 -0
  111. package/dist/esm/rendering/pass/RenderPassDescriptor.js.map +1 -0
  112. package/dist/esm/rendering/plan/RenderCommand.d.ts +86 -0
  113. package/dist/esm/rendering/plan/RenderCommand.js +127 -0
  114. package/dist/esm/rendering/plan/RenderCommand.js.map +1 -0
  115. package/dist/esm/rendering/plan/RenderEffectExecutor.d.ts +10 -0
  116. package/dist/esm/rendering/plan/RenderEffectExecutor.js +159 -0
  117. package/dist/esm/rendering/plan/RenderEffectExecutor.js.map +1 -0
  118. package/dist/esm/rendering/plan/RenderInstruction.d.ts +51 -0
  119. package/dist/esm/rendering/plan/RenderInstruction.js +45 -0
  120. package/dist/esm/rendering/plan/RenderInstruction.js.map +1 -0
  121. package/dist/esm/rendering/plan/RenderPlan.d.ts +23 -0
  122. package/dist/esm/rendering/plan/RenderPlan.js +12 -0
  123. package/dist/esm/rendering/plan/RenderPlan.js.map +1 -0
  124. package/dist/esm/rendering/plan/RenderPlanBuilder.d.ts +31 -0
  125. package/dist/esm/rendering/plan/RenderPlanBuilder.js +242 -0
  126. package/dist/esm/rendering/plan/RenderPlanBuilder.js.map +1 -0
  127. package/dist/esm/rendering/plan/RenderPlanOptimizer.d.ts +10 -0
  128. package/dist/esm/rendering/plan/RenderPlanOptimizer.js +180 -0
  129. package/dist/esm/rendering/plan/RenderPlanOptimizer.js.map +1 -0
  130. package/dist/esm/rendering/plan/RenderPlanPlayer.d.ts +13 -0
  131. package/dist/esm/rendering/plan/RenderPlanPlayer.js +107 -0
  132. package/dist/esm/rendering/plan/RenderPlanPlayer.js.map +1 -0
  133. package/dist/esm/rendering/plan/RenderScope.d.ts +70 -0
  134. package/dist/esm/rendering/plan/RenderScope.js +16 -0
  135. package/dist/esm/rendering/plan/RenderScope.js.map +1 -0
  136. package/dist/esm/rendering/plan/playRenderTree.d.ts +4 -0
  137. package/dist/esm/rendering/plan/playRenderTree.js +19 -0
  138. package/dist/esm/rendering/plan/playRenderTree.js.map +1 -0
  139. package/dist/esm/rendering/primitives/Graphics.d.ts +70 -5
  140. package/dist/esm/rendering/primitives/Graphics.js +172 -14
  141. package/dist/esm/rendering/primitives/Graphics.js.map +1 -1
  142. package/dist/esm/rendering/sprite/Sprite.d.ts +22 -1
  143. package/dist/esm/rendering/sprite/Sprite.js +33 -2
  144. package/dist/esm/rendering/sprite/Sprite.js.map +1 -1
  145. package/dist/esm/rendering/sprite/spriteMaterialSources.d.ts +41 -0
  146. package/dist/esm/rendering/sprite/spriteMaterialSources.js +149 -0
  147. package/dist/esm/rendering/sprite/spriteMaterialSources.js.map +1 -0
  148. package/dist/esm/rendering/text/BitmapText.d.ts +2 -0
  149. package/dist/esm/rendering/text/BitmapText.js +8 -1
  150. package/dist/esm/rendering/text/BitmapText.js.map +1 -1
  151. package/dist/esm/rendering/text/BmFont.js +3 -0
  152. package/dist/esm/rendering/text/BmFont.js.map +1 -1
  153. package/dist/esm/rendering/text/GlyphSdf.d.ts +14 -0
  154. package/dist/esm/rendering/text/GlyphSdf.js +41 -11
  155. package/dist/esm/rendering/text/GlyphSdf.js.map +1 -1
  156. package/dist/esm/rendering/text/TextStyle.d.ts +6 -1
  157. package/dist/esm/rendering/text/TextStyle.js +1 -1
  158. package/dist/esm/rendering/text/TextStyle.js.map +1 -1
  159. package/dist/esm/rendering/texture/DataTexture.d.ts +5 -0
  160. package/dist/esm/rendering/texture/DataTexture.js +7 -0
  161. package/dist/esm/rendering/texture/DataTexture.js.map +1 -1
  162. package/dist/esm/rendering/texture/RenderTexture.js.map +1 -1
  163. package/dist/esm/rendering/video/Video.d.ts +3 -7
  164. package/dist/esm/rendering/video/Video.js +3 -8
  165. package/dist/esm/rendering/video/Video.js.map +1 -1
  166. package/dist/esm/rendering/webgl2/WebGl2Backend.d.ts +62 -0
  167. package/dist/esm/rendering/webgl2/WebGl2Backend.js +352 -21
  168. package/dist/esm/rendering/webgl2/WebGl2Backend.js.map +1 -1
  169. package/dist/esm/rendering/webgl2/WebGl2MeshRenderer.d.ts +22 -2
  170. package/dist/esm/rendering/webgl2/WebGl2MeshRenderer.js +404 -112
  171. package/dist/esm/rendering/webgl2/WebGl2MeshRenderer.js.map +1 -1
  172. package/dist/esm/rendering/webgl2/WebGl2ParticleRenderer.d.ts +8 -0
  173. package/dist/esm/rendering/webgl2/WebGl2ParticleRenderer.js +8 -0
  174. package/dist/esm/rendering/webgl2/WebGl2ParticleRenderer.js.map +1 -1
  175. package/dist/esm/rendering/webgl2/WebGl2PassCoordinator.d.ts +57 -0
  176. package/dist/esm/rendering/webgl2/WebGl2PassCoordinator.js +79 -0
  177. package/dist/esm/rendering/webgl2/WebGl2PassCoordinator.js.map +1 -0
  178. package/dist/esm/rendering/webgl2/WebGl2SpriteRenderer.d.ts +14 -0
  179. package/dist/esm/rendering/webgl2/WebGl2SpriteRenderer.js +257 -78
  180. package/dist/esm/rendering/webgl2/WebGl2SpriteRenderer.js.map +1 -1
  181. package/dist/esm/rendering/webgl2/WebGl2StencilClipper.d.ts +34 -0
  182. package/dist/esm/rendering/webgl2/WebGl2StencilClipper.js +169 -0
  183. package/dist/esm/rendering/webgl2/WebGl2StencilClipper.js.map +1 -0
  184. package/dist/esm/rendering/webgl2/WebGl2TextRenderer.d.ts +7 -0
  185. package/dist/esm/rendering/webgl2/WebGl2TextRenderer.js +11 -0
  186. package/dist/esm/rendering/webgl2/WebGl2TextRenderer.js.map +1 -1
  187. package/dist/esm/rendering/webgl2/glsl/mesh.frag.js +1 -1
  188. package/dist/esm/rendering/webgl2/glsl/mesh.vert.js +1 -1
  189. package/dist/esm/rendering/webgl2/glsl/sprite.vert.js +1 -1
  190. package/dist/esm/rendering/webgl2/glsl/stencil-clip.frag.js +4 -0
  191. package/dist/esm/rendering/webgl2/glsl/stencil-clip.frag.js.map +1 -0
  192. package/dist/esm/rendering/webgl2/glsl/stencil-clip.vert.js +4 -0
  193. package/dist/esm/rendering/webgl2/glsl/stencil-clip.vert.js.map +1 -0
  194. package/dist/esm/rendering/webgl2/glsl/text-color.frag.js +1 -1
  195. package/dist/esm/rendering/webgpu/WebGpuBackend.d.ts +63 -0
  196. package/dist/esm/rendering/webgpu/WebGpuBackend.js +180 -19
  197. package/dist/esm/rendering/webgpu/WebGpuBackend.js.map +1 -1
  198. package/dist/esm/rendering/webgpu/WebGpuMaskCompositor.js +22 -17
  199. package/dist/esm/rendering/webgpu/WebGpuMaskCompositor.js.map +1 -1
  200. package/dist/esm/rendering/webgpu/WebGpuMeshRenderer.d.ts +24 -0
  201. package/dist/esm/rendering/webgpu/WebGpuMeshRenderer.js +524 -98
  202. package/dist/esm/rendering/webgpu/WebGpuMeshRenderer.js.map +1 -1
  203. package/dist/esm/rendering/webgpu/WebGpuParticleRenderer.d.ts +7 -0
  204. package/dist/esm/rendering/webgpu/WebGpuParticleRenderer.js +24 -22
  205. package/dist/esm/rendering/webgpu/WebGpuParticleRenderer.js.map +1 -1
  206. package/dist/esm/rendering/webgpu/WebGpuPassCoordinator.d.ts +141 -0
  207. package/dist/esm/rendering/webgpu/WebGpuPassCoordinator.js +270 -0
  208. package/dist/esm/rendering/webgpu/WebGpuPassCoordinator.js.map +1 -0
  209. package/dist/esm/rendering/webgpu/WebGpuSpriteRenderer.d.ts +25 -1
  210. package/dist/esm/rendering/webgpu/WebGpuSpriteRenderer.js +430 -76
  211. package/dist/esm/rendering/webgpu/WebGpuSpriteRenderer.js.map +1 -1
  212. package/dist/esm/rendering/webgpu/WebGpuStencilClipper.d.ts +57 -0
  213. package/dist/esm/rendering/webgpu/WebGpuStencilClipper.js +257 -0
  214. package/dist/esm/rendering/webgpu/WebGpuStencilClipper.js.map +1 -0
  215. package/dist/esm/rendering/webgpu/WebGpuStencilState.d.ts +14 -0
  216. package/dist/esm/rendering/webgpu/WebGpuStencilState.js +36 -0
  217. package/dist/esm/rendering/webgpu/WebGpuStencilState.js.map +1 -0
  218. package/dist/esm/rendering/webgpu/WebGpuTextRenderer.d.ts +7 -0
  219. package/dist/esm/rendering/webgpu/WebGpuTextRenderer.js +30 -19
  220. package/dist/esm/rendering/webgpu/WebGpuTextRenderer.js.map +1 -1
  221. package/dist/esm/rendering/webgpu/WebGpuTransformStorage.d.ts +48 -0
  222. package/dist/esm/rendering/webgpu/WebGpuTransformStorage.js +103 -0
  223. package/dist/esm/rendering/webgpu/WebGpuTransformStorage.js.map +1 -0
  224. package/dist/esm/resources/JsonStore.d.ts +18 -0
  225. package/dist/esm/resources/JsonStore.js +62 -0
  226. package/dist/esm/resources/JsonStore.js.map +1 -0
  227. package/dist/esm/resources/Loader.js +1 -1
  228. package/dist/esm/resources/Loader.js.map +1 -1
  229. package/dist/esm/resources/factories/ImageFactory.d.ts +14 -8
  230. package/dist/esm/resources/factories/ImageFactory.js +13 -6
  231. package/dist/esm/resources/factories/ImageFactory.js.map +1 -1
  232. package/dist/esm/resources/factories/TextureFactory.d.ts +4 -4
  233. package/dist/esm/resources/factories/TextureFactory.js +8 -4
  234. package/dist/esm/resources/factories/TextureFactory.js.map +1 -1
  235. package/dist/esm/resources/index.d.ts +1 -0
  236. package/dist/exo.esm.js +6326 -2350
  237. package/dist/exo.esm.js.map +1 -1
  238. package/package.json +34 -24
  239. package/dist/esm/particles/distributions/Gradient.js.map +0 -1
  240. package/dist/esm/rendering/mesh/MeshShader.js.map +0 -1
  241. package/dist/esm/vendor/webgl-debug.js +0 -1160
  242. package/dist/esm/vendor/webgl-debug.js.map +0 -1
@@ -1 +1 @@
1
- {"version":3,"file":"Sprite.js","sources":["../../../../../src/rendering/sprite/Sprite.ts"],"sourcesContent":[null],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"Sprite.js","sources":["../../../../../src/rendering/sprite/Sprite.ts"],"sourcesContent":[null],"names":[],"mappings":";;;;;;AAUA;;;;AAIG;IACS;AAAZ,CAAA,UAAY,WAAW,EAAA;AACrB,IAAA,WAAA,CAAA,WAAA,CAAA,MAAA,CAAA,GAAA,CAAA,CAAA,GAAA,MAAW;AACX,IAAA,WAAA,CAAA,WAAA,CAAA,aAAA,CAAA,GAAA,CAAA,CAAA,GAAA,aAAkB;AAClB,IAAA,WAAA,CAAA,WAAA,CAAA,UAAA,CAAA,GAAA,CAAA,CAAA,GAAA,UAAe;AACf,IAAA,WAAA,CAAA,WAAA,CAAA,SAAA,CAAA,GAAA,CAAA,CAAA,GAAA,SAAc;AACd,IAAA,WAAA,CAAA,WAAA,CAAA,QAAA,CAAA,GAAA,CAAA,CAAA,GAAA,QAAa;AACb,IAAA,WAAA,CAAA,WAAA,CAAA,WAAA,CAAA,GAAA,EAAA,CAAA,GAAA,WAAgB;AAChB,IAAA,WAAA,CAAA,WAAA,CAAA,kBAAA,CAAA,GAAA,EAAA,CAAA,GAAA,kBAAuB;AACvB,IAAA,WAAA,CAAA,WAAA,CAAA,aAAA,CAAA,GAAA,EAAA,CAAA,GAAA,aAAkB;AAClB,IAAA,WAAA,CAAA,WAAA,CAAA,eAAA,CAAA,GAAA,EAAA,CAAA,GAAA,eAAoB;AACpB,IAAA,WAAA,CAAA,WAAA,CAAA,YAAA,CAAA,GAAA,GAAA,CAAA,GAAA,YAAiB;AACjB,IAAA,WAAA,CAAA,WAAA,CAAA,UAAA,CAAA,GAAA,IAAA,CAAA,GAAA,UAAgB;AAChB,IAAA,WAAA,CAAA,WAAA,CAAA,SAAA,CAAA,GAAA,IAAA,CAAA,GAAA,SAAe;AACjB,CAAC,EAbW,WAAW,KAAX,WAAW,GAAA,EAAA,CAAA,CAAA;AAevB;;;;;;;;;;;;;;;AAeG;AACG,MAAO,MAAO,SAAQ,QAAQ,CAAA;IAC1B,QAAQ,GAAmC,IAAI;AAC/C,IAAA,aAAa,GAAc,IAAI,SAAS,EAAE;IAC1C,SAAS,GAA0B,IAAI;AACvC,IAAA,SAAS,GAAiB,IAAI,YAAY,CAAC,CAAC,CAAC;AAC7C,IAAA,UAAU,GAAgB,IAAI,WAAW,CAAC,CAAC,CAAC;AACnC,IAAA,QAAQ,GAAqC,CAAC,IAAI,MAAM,EAAE,EAAE,IAAI,MAAM,EAAE,EAAE,IAAI,MAAM,EAAE,EAAE,IAAI,MAAM,EAAE,CAAC;AAEtH,IAAA,WAAA,CAAmB,OAAuC,EAAA;AACxD,QAAA,KAAK,EAAE;;AAGP,QAAA,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,WAAW,CAAC,QAAQ,GAAG,WAAW,CAAC,OAAO,CAAC;AAE3D,QAAA,IAAI,OAAO,KAAK,IAAI,EAAE;AACpB,YAAA,IAAI,CAAC,UAAU,CAAC,OAAO,CAAC;QAC1B;IACF;AAEA,IAAA,IAAW,OAAO,GAAA;QAChB,OAAO,IAAI,CAAC,QAAQ;IACtB;IAEA,IAAW,OAAO,CAAC,OAAuC,EAAA;AACxD,QAAA,IAAI,CAAC,UAAU,CAAC,OAAO,CAAC;IAC1B;AAEA,IAAA,IAAW,YAAY,GAAA;QACrB,OAAO,IAAI,CAAC,aAAa;IAC3B;IAEA,IAAW,YAAY,CAAC,KAAgB,EAAA;AACtC,QAAA,IAAI,CAAC,eAAe,CAAC,KAAK,CAAC;IAC7B;AAEA;;;;;;;AAOG;AACH,IAAA,IAAW,QAAQ,GAAA;QACjB,OAAO,IAAI,CAAC,SAAS;IACvB;IAEA,IAAW,QAAQ,CAAC,QAA+B,EAAA;QACjD,IAAI,QAAQ,KAAK,IAAI,IAAK,QAAqB,CAAC,MAAM,KAAK,QAAQ,EAAE;YACnE,MAAM,IAAI,KAAK,CAAC,CAAA,wCAAA,EAA4C,QAAqB,CAAC,MAAM,CAAA,WAAA,CAAa,CAAC;QACxG;AAEA,QAAA,IAAI,CAAC,SAAS,GAAG,QAAQ;QACzB,IAAI,CAAC,eAAe,EAAE;IACxB;AAEA,IAAA,IAAW,KAAK,GAAA;AACd,QAAA,OAAO,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC,aAAa,CAAC,KAAK;IAC1D;IAEA,IAAW,KAAK,CAAC,KAAa,EAAA;AAC5B,QAAA,IAAI,CAAC,KAAK,CAAC,CAAC,GAAG,KAAK,GAAG,IAAI,CAAC,aAAa,CAAC,KAAK;IACjD;AAEA,IAAA,IAAW,MAAM,GAAA;AACf,QAAA,OAAO,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC,aAAa,CAAC,MAAM;IAC3D;IAEA,IAAW,MAAM,CAAC,KAAa,EAAA;AAC7B,QAAA,IAAI,CAAC,KAAK,CAAC,CAAC,GAAG,KAAK,GAAG,IAAI,CAAC,aAAa,CAAC,MAAM;IAClD;AAEA;;;;AAIG;AACH,IAAA,IAAW,QAAQ,GAAA;QACjB,IAAI,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,WAAW,CAAC,QAAQ,CAAC,EAAE;AACxC,YAAA,MAAM,EAAE,IAAI,EAAE,GAAG,EAAE,KAAK,EAAE,MAAM,EAAE,GAAG,IAAI,CAAC,cAAc,EAAE;AAC1D,YAAA,MAAM,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,GAAG,IAAI,CAAC,kBAAkB,EAAE;AAEtD,YAAA,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC,GAAG,IAAI,GAAG,CAAC,GAAG,GAAG,GAAG,CAAC,GAAG,CAAC;AAC1C,YAAA,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC,GAAG,IAAI,GAAG,CAAC,GAAG,GAAG,GAAG,CAAC,GAAG,CAAC;AAE1C,YAAA,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC,GAAG,KAAK,GAAG,CAAC,GAAG,GAAG,GAAG,CAAC,GAAG,CAAC;AAC3C,YAAA,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC,GAAG,KAAK,GAAG,CAAC,GAAG,GAAG,GAAG,CAAC,GAAG,CAAC;AAE3C,YAAA,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC,GAAG,KAAK,GAAG,CAAC,GAAG,MAAM,GAAG,CAAC,GAAG,CAAC;AAC9C,YAAA,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC,GAAG,KAAK,GAAG,CAAC,GAAG,MAAM,GAAG,CAAC,GAAG,CAAC;AAE9C,YAAA,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC,GAAG,IAAI,GAAG,CAAC,GAAG,MAAM,GAAG,CAAC,GAAG,CAAC;AAC7C,YAAA,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC,GAAG,IAAI,GAAG,CAAC,GAAG,MAAM,GAAG,CAAC,GAAG,CAAC;YAE7C,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,WAAW,CAAC,QAAQ,CAAC;QACzC;QAEA,OAAO,IAAI,CAAC,SAAS;IACvB;AAEA;;;;;AAKG;AACH,IAAA,IAAW,SAAS,GAAA;AAClB,QAAA,IAAI,IAAI,CAAC,QAAQ,KAAK,IAAI,EAAE;AAC1B,YAAA,MAAM,IAAI,KAAK,CAAC,gEAAgE,CAAC;QACnF;QAEA,IAAI,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,WAAW,CAAC,aAAa,CAAC,EAAE;YAC7C,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,GAAG,IAAI,CAAC,QAAQ;AACvC,YAAA,MAAM,EAAE,IAAI,EAAE,GAAG,EAAE,KAAK,EAAE,MAAM,EAAE,GAAG,IAAI,CAAC,aAAa;AACvD,YAAA,MAAM,IAAI,GAAG,CAAC,CAAC,IAAI,GAAG,KAAK,IAAI,KAAK,IAAI,KAAK;AAC7C,YAAA,MAAM,IAAI,GAAG,CAAC,CAAC,CAAC,GAAG,GAAG,MAAM,IAAI,KAAK,IAAI,KAAK,KAAK,EAAE;AACrD,YAAA,MAAM,IAAI,GAAG,CAAC,CAAC,KAAK,GAAG,KAAK,IAAI,KAAK,IAAI,KAAK;AAC9C,YAAA,MAAM,IAAI,GAAG,CAAC,CAAC,CAAC,MAAM,GAAG,MAAM,IAAI,KAAK,IAAI,KAAK,KAAK,EAAE;AAExD,YAAA,IAAI,IAAI,CAAC,QAAQ,CAAC,KAAK,EAAE;gBACvB,IAAI,CAAC,UAAU,CAAC,CAAC,CAAC,GAAG,IAAI,GAAG,IAAI;gBAChC,IAAI,CAAC,UAAU,CAAC,CAAC,CAAC,GAAG,IAAI,GAAG,IAAI;gBAChC,IAAI,CAAC,UAAU,CAAC,CAAC,CAAC,GAAG,IAAI,GAAG,IAAI;gBAChC,IAAI,CAAC,UAAU,CAAC,CAAC,CAAC,GAAG,IAAI,GAAG,IAAI;YAClC;iBAAO;gBACL,IAAI,CAAC,UAAU,CAAC,CAAC,CAAC,GAAG,IAAI,GAAG,IAAI;gBAChC,IAAI,CAAC,UAAU,CAAC,CAAC,CAAC,GAAG,IAAI,GAAG,IAAI;gBAChC,IAAI,CAAC,UAAU,CAAC,CAAC,CAAC,GAAG,IAAI,GAAG,IAAI;gBAChC,IAAI,CAAC,UAAU,CAAC,CAAC,CAAC,GAAG,IAAI,GAAG,IAAI;YAClC;QACF;QAEA,OAAO,IAAI,CAAC,UAAU;IACxB;AAEA;;;;;;;;;AASG;AACI,IAAA,UAAU,CAAC,OAAuC,EAAA;AACvD,QAAA,IAAI,IAAI,CAAC,QAAQ,KAAK,OAAO,EAAE;AAC7B,YAAA,IAAI,CAAC,QAAQ,GAAG,OAAO;AAEvB,YAAA,IAAI,OAAO,KAAK,IAAI,EAAE;gBACpB,IAAI,CAAC,iBAAiB,EAAE;YAC1B;YAEA,IAAI,CAAC,eAAe,EAAE;QACxB;AAEA,QAAA,OAAO,IAAI;IACb;;IAGO,aAAa,GAAA;AAClB,QAAA,IAAI,IAAI,CAAC,QAAQ,EAAE;AACjB,YAAA,IAAI,CAAC,QAAQ,CAAC,YAAY,EAAE;YAC5B,IAAI,CAAC,iBAAiB,EAAE;YACxB,IAAI,CAAC,eAAe,EAAE;QACxB;AAEA,QAAA,OAAO,IAAI;IACb;AAEA;;;;;;AAMG;AACI,IAAA,eAAe,CAAC,KAAgB,EAAE,SAAS,GAAG,IAAI,EAAA;AACvD,QAAA,MAAM,KAAK,GAAG,IAAI,CAAC,KAAK;AACxB,QAAA,MAAM,MAAM,GAAG,IAAI,CAAC,MAAM;AAE1B,QAAA,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,KAAK,CAAC;QAC9B,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,WAAW,CAAC,aAAa,CAAC;AAC1C,QAAA,IAAI,CAAC,cAAc,EAAE,CAAC,GAAG,CAAC,CAAC,EAAE,CAAC,EAAE,KAAK,CAAC,KAAK,EAAE,KAAK,CAAC,MAAM,CAAC;QAC1D,IAAI,CAAC,wBAAwB,EAAE;QAE/B,IAAI,SAAS,EAAE;AACb,YAAA,IAAI,CAAC,KAAK,GAAG,KAAK,CAAC,KAAK;AACxB,YAAA,IAAI,CAAC,MAAM,GAAG,KAAK,CAAC,MAAM;QAC5B;aAAO;AACL,YAAA,IAAI,CAAC,KAAK,GAAG,KAAK;AAClB,YAAA,IAAI,CAAC,MAAM,GAAG,MAAM;QACtB;QAEA,IAAI,CAAC,eAAe,EAAE;AAEtB,QAAA,OAAO,IAAI;IACb;;IAGO,iBAAiB,GAAA;AACtB,QAAA,IAAI,CAAC,IAAI,CAAC,QAAQ,EAAE;AAClB,YAAA,MAAM,IAAI,KAAK,CAAC,oDAAoD,CAAC;QACvE;QAEA,OAAO,IAAI,CAAC,eAAe,CAAC,SAAS,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,CAAC,EAAE,IAAI,CAAC,QAAQ,CAAC,KAAK,EAAE,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC;IAClG;AAEA;;;AAGG;IACa,UAAU,GAAA;QACxB,IAAI,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,WAAW,CAAC,OAAO,CAAC,EAAE;YACvC,MAAM,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC,GAAG,IAAI,CAAC,QAAQ;AAEtD,YAAA,IAAI,CAAC,QAAQ,CAAC,CAAC;iBACZ,GAAG,CAAC,EAAE,GAAG,EAAE,EAAE,EAAE,GAAG,EAAE;AACpB,iBAAA,KAAK;AACL,iBAAA,SAAS,EAAE;AACd,YAAA,IAAI,CAAC,QAAQ,CAAC,CAAC;iBACZ,GAAG,CAAC,EAAE,GAAG,EAAE,EAAE,EAAE,GAAG,EAAE;AACpB,iBAAA,KAAK;AACL,iBAAA,SAAS,EAAE;AACd,YAAA,IAAI,CAAC,QAAQ,CAAC,CAAC;iBACZ,GAAG,CAAC,EAAE,GAAG,EAAE,EAAE,EAAE,GAAG,EAAE;AACpB,iBAAA,KAAK;AACL,iBAAA,SAAS,EAAE;AACd,YAAA,IAAI,CAAC,QAAQ,CAAC,CAAC;iBACZ,GAAG,CAAC,EAAE,GAAG,EAAE,EAAE,EAAE,GAAG,EAAE;AACpB,iBAAA,KAAK;AACL,iBAAA,SAAS,EAAE;YAEd,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,WAAW,CAAC,OAAO,CAAC;QACxC;QAEA,OAAO,IAAI,CAAC,QAAQ;IACtB;AAEA;;;AAGG;AACa,IAAA,OAAO,CAAC,IAAY,EAAE,MAAA,GAAmB,IAAI,QAAQ,EAAE,EAAA;QACrE,MAAM,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC,GAAG,IAAI,CAAC,QAAQ;QACtD,MAAM,KAAK,GAAG,IAAI,CAAC,GAAG,CAAC,EAAE,EAAE,EAAE,CAAC;QAC9B,MAAM,KAAK,GAAG,IAAI,CAAC,GAAG,CAAC,EAAE,EAAE,EAAE,CAAC;QAC9B,MAAM,KAAK,GAAG,IAAI,CAAC,GAAG,CAAC,EAAE,EAAE,EAAE,CAAC;QAC9B,MAAM,KAAK,GAAG,IAAI,CAAC,GAAG,CAAC,EAAE,EAAE,EAAE,CAAC;AAE9B,QAAA,OAAO,MAAM,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,CAAC,EAAE,IAAI,CAAC,GAAG,CAAC,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,CAAC,CAAC;IAC/F;AAEA;;;;AAIG;IACa,QAAQ,CAAC,CAAS,EAAE,CAAS,EAAA;AAC3C,QAAA,IAAI,IAAI,CAAC,YAAY,EAAE;YACrB,OAAO,IAAI,CAAC,SAAS,EAAE,CAAC,QAAQ,CAAC,CAAC,EAAE,CAAC,CAAC;QACxC;QAEA,MAAM,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC,GAAG,IAAI,CAAC,QAAQ;;;;;QAMtD,MAAM,EAAE,GAAG,CAAC,EAAE,GAAG,EAAE,KAAK,CAAC,GAAG,EAAE,CAAC,GAAG,CAAC,EAAE,GAAG,EAAE,KAAK,CAAC,GAAG,EAAE,CAAC;QACtD,MAAM,EAAE,GAAG,CAAC,EAAE,GAAG,EAAE,KAAK,CAAC,GAAG,EAAE,CAAC,GAAG,CAAC,EAAE,GAAG,EAAE,KAAK,CAAC,GAAG,EAAE,CAAC;QACtD,MAAM,EAAE,GAAG,CAAC,EAAE,GAAG,EAAE,KAAK,CAAC,GAAG,EAAE,CAAC,GAAG,CAAC,EAAE,GAAG,EAAE,KAAK,CAAC,GAAG,EAAE,CAAC;QACtD,MAAM,EAAE,GAAG,CAAC,EAAE,GAAG,EAAE,KAAK,CAAC,GAAG,EAAE,CAAC,GAAG,CAAC,EAAE,GAAG,EAAE,KAAK,CAAC,GAAG,EAAE,CAAC;AAEtD,QAAA,OAAO,CAAC,EAAE,IAAI,CAAC,IAAI,EAAE,IAAI,CAAC,IAAI,EAAE,IAAI,CAAC,IAAI,EAAE,IAAI,CAAC,MAAM,EAAE,IAAI,CAAC,IAAI,EAAE,IAAI,CAAC,IAAI,EAAE,IAAI,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC;IACjG;;IAGgB,2BAA2B,GAAA;QACzC,KAAK,CAAC,2BAA2B,EAAE;AACnC,QAAA,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,WAAW,CAAC,QAAQ,GAAG,WAAW,CAAC,OAAO,CAAC;IAC7D;;IAGgB,wBAAwB,GAAA;QACtC,KAAK,CAAC,wBAAwB,EAAE;AAChC,QAAA,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,WAAW,CAAC,QAAQ,GAAG,WAAW,CAAC,OAAO,CAAC;IAC7D;IAEgB,OAAO,GAAA;QACrB,KAAK,CAAC,OAAO,EAAE;AAEf,QAAA,KAAK,MAAM,MAAM,IAAI,IAAI,CAAC,QAAQ,EAAE;YAClC,MAAM,CAAC,OAAO,EAAE;QAClB;AAEA,QAAA,IAAI,CAAC,aAAa,CAAC,OAAO,EAAE;AAC5B,QAAA,IAAI,CAAC,QAAQ,GAAG,IAAI;AACpB,QAAA,IAAI,CAAC,SAAS,GAAG,IAAI;IACvB;AACD;AAED,UAAU,CAAC,wBAAwB,CAAC,MAAM,IAAI,MAAM,CAAC,IAAI,CAAC,CAAC;;;;"}
@@ -0,0 +1,41 @@
1
+ /**
2
+ * Canonical engine vertex stage for the custom {@link SpriteMaterial} path.
3
+ *
4
+ * @internal — not part of the public package surface. A custom `SpriteMaterial`
5
+ * customizes the **fragment** stage only; the vertex stage (quad-corner
6
+ * expansion, affine transform, UV unpacking) is owned by the renderer and stays
7
+ * instancing-critical. The sprite renderers consume these constants directly:
8
+ * `WebGl2SpriteRenderer` pairs {@link spriteVertexGlsl} with the material's
9
+ * fragment (ignoring any author-supplied `glsl.vertex`), and
10
+ * `WebGpuSpriteRenderer` prepends {@link spriteVertexWgsl} to the material's
11
+ * fragment WGSL. Both pin the per-instance attribute locations and the
12
+ * projection binding exactly as the default sprite path does, so a custom
13
+ * material keeps the single `drawArraysInstanced` / `drawIndexed` batch.
14
+ *
15
+ * Both paths (locations 0, 3, 4, 5, 6) fetch each instance's world transform
16
+ * from the shared transform storage keyed by `a_nodeIndex` / `nodeIndex`: the
17
+ * WebGL2 path samples the `u_transforms` texture, the WGSL path reads the
18
+ * `transforms` storage buffer (group(0) binding(1)).
19
+ *
20
+ * A custom fragment receives the interpolated `v_texcoord` and premultiplied
21
+ * `v_color`, plus the per-batch base texture bound as `u_texture` (WebGL2 unit 0
22
+ * / WGSL group(1) binding 0). Material uniforms and additional textures bind on
23
+ * top (WebGL2 units 1..N / WGSL group(2)).
24
+ */
25
+ /**
26
+ * GLSL ES 3.00 vertex shader for the custom sprite-material path. Identical
27
+ * corner expansion and attribute contract to the default sprite vertex shader.
28
+ * @internal
29
+ */
30
+ export declare const spriteVertexGlsl = "#version 300 es\nprecision highp float;\nprecision highp int;\n\n// Per-instance attributes (divisor = 1). Each Sprite contributes one entry\n// to the per-instance buffer; gl_VertexID 0..3 selects which corner of the\n// quad this invocation is computing.\nlayout(location = 0) in vec4 a_localBounds; // left, top, right, bottom (local space)\nlayout(location = 3) in vec4 a_uvBounds; // uMin, vMin, uMax, vMax (normalised, already flipY-swapped)\nlayout(location = 4) in vec4 a_color; // RGBA tint\nlayout(location = 5) in uint a_textureSlot;\nlayout(location = 6) in uint a_nodeIndex; // row into the shared transform buffer\n\nuniform mat3 u_projection;\nuniform sampler2D u_transforms; // shared per-frame transform buffer (3 texels/row)\n\nout vec2 v_texcoord;\nout vec4 v_color;\nflat out uint v_textureSlot;\n\nvoid main(void) {\n // gl_VertexID 0..3 \u2192 corner: 0=TL, 1=TR, 2=BL, 3=BR (TRIANGLE_STRIP order)\n int vid = gl_VertexID;\n int cornerX = vid & 1;\n int cornerY = (vid >> 1) & 1;\n\n float localX = (cornerX == 0) ? a_localBounds.x : a_localBounds.z;\n float localY = (cornerY == 0) ? a_localBounds.y : a_localBounds.w;\n\n // Fetch the per-instance world transform from the shared buffer (row =\n // a_nodeIndex): texel 0 = (a, b, c, d), texel 1 = (tx, ty, 0, 0).\n int row = int(a_nodeIndex);\n vec4 m0 = texelFetch(u_transforms, ivec2(0, row), 0);\n vec4 m1 = texelFetch(u_transforms, ivec2(1, row), 0);\n\n float worldX = (m0.x * localX) + (m0.y * localY) + m1.x;\n float worldY = (m0.z * localX) + (m0.w * localY) + m1.y;\n\n gl_Position = vec4((u_projection * vec3(worldX, worldY, 1.0)).xy, 0.0, 1.0);\n\n float u = (cornerX == 0) ? a_uvBounds.x : a_uvBounds.z;\n float v = (cornerY == 0) ? a_uvBounds.y : a_uvBounds.w;\n v_texcoord = vec2(u, v);\n\n v_color = vec4(a_color.rgb * a_color.a, a_color.a);\n v_textureSlot = a_textureSlot;\n}\n";
31
+ /**
32
+ * WGSL vertex stage + shared bindings for the custom sprite-material path.
33
+ * Prepend to a material's fragment WGSL: it declares the per-instance
34
+ * `VertexInput` (locations 0, 3, 4, 5, 6), the `VertexOutput` a custom
35
+ * `@fragment` consumes, the group(0) projection uniform + shared transform
36
+ * storage buffer, the group(1) base texture and sampler (`u_texture` /
37
+ * `u_sampler`), and the `vertexMain` entry point. The fragment author adds their
38
+ * group(2) bindings and a `fragmentMain` reading `VertexOutput`.
39
+ * @internal
40
+ */
41
+ export declare const spriteVertexWgsl = "\nstruct ProjectionUniforms {\n matrix: mat4x4<f32>,\n};\n\nstruct TransformSlot {\n m0: vec4<f32>,\n m1: vec4<f32>,\n m2: vec4<f32>,\n};\n\n@group(0) @binding(0) var<uniform> projection: ProjectionUniforms;\n@group(0) @binding(1) var<storage, read> transforms: array<TransformSlot>;\n\n@group(1) @binding(0) var u_texture: texture_2d<f32>;\n@group(1) @binding(1) var u_sampler: sampler;\n\nstruct VertexInput {\n @location(0) localBounds: vec4<f32>,\n @location(3) uvBounds: vec4<f32>,\n @location(4) color: vec4<f32>,\n @location(5) textureSlot: u32,\n @location(6) nodeIndex: u32,\n};\n\nstruct VertexOutput {\n @builtin(position) position: vec4<f32>,\n @location(0) texcoord: vec2<f32>,\n @location(1) color: vec4<f32>,\n};\n\n@vertex\nfn vertexMain(input: VertexInput, @builtin(vertex_index) vid: u32) -> VertexOutput {\n var output: VertexOutput;\n\n let cornerX = ((vid + 1u) >> 1u) & 1u;\n let cornerY = vid >> 1u;\n\n let localX = select(input.localBounds.x, input.localBounds.z, cornerX == 1u);\n let localY = select(input.localBounds.y, input.localBounds.w, cornerY == 1u);\n\n // Fetch this instance's world transform from the shared storage buffer,\n // keyed by nodeIndex: m0 = (a, b, c, d), m1 = (tx, ty, 0, 0). (m2 carries the\n // node tint, unused here \u2014 the sprite keeps its own per-instance color.)\n let slot = transforms[input.nodeIndex];\n let worldX = slot.m0.x * localX + slot.m0.y * localY + slot.m1.x;\n let worldY = slot.m0.z * localX + slot.m0.w * localY + slot.m1.y;\n\n output.position = projection.matrix * vec4<f32>(worldX, worldY, 0.0, 1.0);\n\n let u = select(input.uvBounds.x, input.uvBounds.z, cornerX == 1u);\n let v = select(input.uvBounds.y, input.uvBounds.w, cornerY == 1u);\n output.texcoord = vec2<f32>(u, v);\n\n output.color = vec4<f32>(input.color.rgb * input.color.a, input.color.a);\n\n return output;\n}\n";
@@ -0,0 +1,149 @@
1
+ /**
2
+ * Canonical engine vertex stage for the custom {@link SpriteMaterial} path.
3
+ *
4
+ * @internal — not part of the public package surface. A custom `SpriteMaterial`
5
+ * customizes the **fragment** stage only; the vertex stage (quad-corner
6
+ * expansion, affine transform, UV unpacking) is owned by the renderer and stays
7
+ * instancing-critical. The sprite renderers consume these constants directly:
8
+ * `WebGl2SpriteRenderer` pairs {@link spriteVertexGlsl} with the material's
9
+ * fragment (ignoring any author-supplied `glsl.vertex`), and
10
+ * `WebGpuSpriteRenderer` prepends {@link spriteVertexWgsl} to the material's
11
+ * fragment WGSL. Both pin the per-instance attribute locations and the
12
+ * projection binding exactly as the default sprite path does, so a custom
13
+ * material keeps the single `drawArraysInstanced` / `drawIndexed` batch.
14
+ *
15
+ * Both paths (locations 0, 3, 4, 5, 6) fetch each instance's world transform
16
+ * from the shared transform storage keyed by `a_nodeIndex` / `nodeIndex`: the
17
+ * WebGL2 path samples the `u_transforms` texture, the WGSL path reads the
18
+ * `transforms` storage buffer (group(0) binding(1)).
19
+ *
20
+ * A custom fragment receives the interpolated `v_texcoord` and premultiplied
21
+ * `v_color`, plus the per-batch base texture bound as `u_texture` (WebGL2 unit 0
22
+ * / WGSL group(1) binding 0). Material uniforms and additional textures bind on
23
+ * top (WebGL2 units 1..N / WGSL group(2)).
24
+ */
25
+ /**
26
+ * GLSL ES 3.00 vertex shader for the custom sprite-material path. Identical
27
+ * corner expansion and attribute contract to the default sprite vertex shader.
28
+ * @internal
29
+ */
30
+ const spriteVertexGlsl = `#version 300 es
31
+ precision highp float;
32
+ precision highp int;
33
+
34
+ // Per-instance attributes (divisor = 1). Each Sprite contributes one entry
35
+ // to the per-instance buffer; gl_VertexID 0..3 selects which corner of the
36
+ // quad this invocation is computing.
37
+ layout(location = 0) in vec4 a_localBounds; // left, top, right, bottom (local space)
38
+ layout(location = 3) in vec4 a_uvBounds; // uMin, vMin, uMax, vMax (normalised, already flipY-swapped)
39
+ layout(location = 4) in vec4 a_color; // RGBA tint
40
+ layout(location = 5) in uint a_textureSlot;
41
+ layout(location = 6) in uint a_nodeIndex; // row into the shared transform buffer
42
+
43
+ uniform mat3 u_projection;
44
+ uniform sampler2D u_transforms; // shared per-frame transform buffer (3 texels/row)
45
+
46
+ out vec2 v_texcoord;
47
+ out vec4 v_color;
48
+ flat out uint v_textureSlot;
49
+
50
+ void main(void) {
51
+ // gl_VertexID 0..3 → corner: 0=TL, 1=TR, 2=BL, 3=BR (TRIANGLE_STRIP order)
52
+ int vid = gl_VertexID;
53
+ int cornerX = vid & 1;
54
+ int cornerY = (vid >> 1) & 1;
55
+
56
+ float localX = (cornerX == 0) ? a_localBounds.x : a_localBounds.z;
57
+ float localY = (cornerY == 0) ? a_localBounds.y : a_localBounds.w;
58
+
59
+ // Fetch the per-instance world transform from the shared buffer (row =
60
+ // a_nodeIndex): texel 0 = (a, b, c, d), texel 1 = (tx, ty, 0, 0).
61
+ int row = int(a_nodeIndex);
62
+ vec4 m0 = texelFetch(u_transforms, ivec2(0, row), 0);
63
+ vec4 m1 = texelFetch(u_transforms, ivec2(1, row), 0);
64
+
65
+ float worldX = (m0.x * localX) + (m0.y * localY) + m1.x;
66
+ float worldY = (m0.z * localX) + (m0.w * localY) + m1.y;
67
+
68
+ gl_Position = vec4((u_projection * vec3(worldX, worldY, 1.0)).xy, 0.0, 1.0);
69
+
70
+ float u = (cornerX == 0) ? a_uvBounds.x : a_uvBounds.z;
71
+ float v = (cornerY == 0) ? a_uvBounds.y : a_uvBounds.w;
72
+ v_texcoord = vec2(u, v);
73
+
74
+ v_color = vec4(a_color.rgb * a_color.a, a_color.a);
75
+ v_textureSlot = a_textureSlot;
76
+ }
77
+ `;
78
+ /**
79
+ * WGSL vertex stage + shared bindings for the custom sprite-material path.
80
+ * Prepend to a material's fragment WGSL: it declares the per-instance
81
+ * `VertexInput` (locations 0, 3, 4, 5, 6), the `VertexOutput` a custom
82
+ * `@fragment` consumes, the group(0) projection uniform + shared transform
83
+ * storage buffer, the group(1) base texture and sampler (`u_texture` /
84
+ * `u_sampler`), and the `vertexMain` entry point. The fragment author adds their
85
+ * group(2) bindings and a `fragmentMain` reading `VertexOutput`.
86
+ * @internal
87
+ */
88
+ const spriteVertexWgsl = `
89
+ struct ProjectionUniforms {
90
+ matrix: mat4x4<f32>,
91
+ };
92
+
93
+ struct TransformSlot {
94
+ m0: vec4<f32>,
95
+ m1: vec4<f32>,
96
+ m2: vec4<f32>,
97
+ };
98
+
99
+ @group(0) @binding(0) var<uniform> projection: ProjectionUniforms;
100
+ @group(0) @binding(1) var<storage, read> transforms: array<TransformSlot>;
101
+
102
+ @group(1) @binding(0) var u_texture: texture_2d<f32>;
103
+ @group(1) @binding(1) var u_sampler: sampler;
104
+
105
+ struct VertexInput {
106
+ @location(0) localBounds: vec4<f32>,
107
+ @location(3) uvBounds: vec4<f32>,
108
+ @location(4) color: vec4<f32>,
109
+ @location(5) textureSlot: u32,
110
+ @location(6) nodeIndex: u32,
111
+ };
112
+
113
+ struct VertexOutput {
114
+ @builtin(position) position: vec4<f32>,
115
+ @location(0) texcoord: vec2<f32>,
116
+ @location(1) color: vec4<f32>,
117
+ };
118
+
119
+ @vertex
120
+ fn vertexMain(input: VertexInput, @builtin(vertex_index) vid: u32) -> VertexOutput {
121
+ var output: VertexOutput;
122
+
123
+ let cornerX = ((vid + 1u) >> 1u) & 1u;
124
+ let cornerY = vid >> 1u;
125
+
126
+ let localX = select(input.localBounds.x, input.localBounds.z, cornerX == 1u);
127
+ let localY = select(input.localBounds.y, input.localBounds.w, cornerY == 1u);
128
+
129
+ // Fetch this instance's world transform from the shared storage buffer,
130
+ // keyed by nodeIndex: m0 = (a, b, c, d), m1 = (tx, ty, 0, 0). (m2 carries the
131
+ // node tint, unused here — the sprite keeps its own per-instance color.)
132
+ let slot = transforms[input.nodeIndex];
133
+ let worldX = slot.m0.x * localX + slot.m0.y * localY + slot.m1.x;
134
+ let worldY = slot.m0.z * localX + slot.m0.w * localY + slot.m1.y;
135
+
136
+ output.position = projection.matrix * vec4<f32>(worldX, worldY, 0.0, 1.0);
137
+
138
+ let u = select(input.uvBounds.x, input.uvBounds.z, cornerX == 1u);
139
+ let v = select(input.uvBounds.y, input.uvBounds.w, cornerY == 1u);
140
+ output.texcoord = vec2<f32>(u, v);
141
+
142
+ output.color = vec4<f32>(input.color.rgb * input.color.a, input.color.a);
143
+
144
+ return output;
145
+ }
146
+ `;
147
+
148
+ export { spriteVertexGlsl, spriteVertexWgsl };
149
+ //# sourceMappingURL=spriteMaterialSources.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"spriteMaterialSources.js","sources":["../../../../../src/rendering/sprite/spriteMaterialSources.ts"],"sourcesContent":[null],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;AAuBG;AAEH;;;;AAIG;AACI,MAAM,gBAAgB,GAAG,CAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAiDhC;;;;;;;;;AASG;AACI,MAAM,gBAAgB,GAAG;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;"}
@@ -35,6 +35,8 @@ export declare class BmFontAdapter implements GlyphProvider {
35
35
  private readonly _scale;
36
36
  /** Fallback advance for characters not present in the font (≈ ½ line height). */
37
37
  private readonly _fallbackAdvance;
38
+ /** Identifier used as part of the warnOnce key — derived from the first page filename. */
39
+ private readonly _fontId;
38
40
  constructor(fontData: BmFontData, textures: readonly Texture[], scale: number);
39
41
  getGlyph(char: string, _fontSize: number): GlyphInfo;
40
42
  getKerning(prev: string, next: string, _fontSize: number): number;
@@ -1,3 +1,4 @@
1
+ import { warnOnce, assert } from '../../core/dev.js';
1
2
  import { AbstractText } from './AbstractText.js';
2
3
  import { layoutText, buildTextPageQuads } from './TextLayout.js';
3
4
  import { TextStyle } from './TextStyle.js';
@@ -19,11 +20,14 @@ class BmFontAdapter {
19
20
  _scale;
20
21
  /** Fallback advance for characters not present in the font (≈ ½ line height). */
21
22
  _fallbackAdvance;
23
+ /** Identifier used as part of the warnOnce key — derived from the first page filename. */
24
+ _fontId;
22
25
  constructor(fontData, textures, scale) {
23
26
  this._fontData = fontData;
24
27
  this._textures = textures;
25
28
  this._scale = scale;
26
29
  this._fallbackAdvance = fontData.lineHeight * scale * 0.5;
30
+ this._fontId = fontData.pages[0] ?? 'unknown';
27
31
  }
28
32
  getGlyph(char, _fontSize) {
29
33
  const cp = char.codePointAt(0) ?? 0;
@@ -32,7 +36,9 @@ class BmFontAdapter {
32
36
  const lh = this._fontData.lineHeight;
33
37
  const base = this._fontData.base;
34
38
  if (g === undefined) {
35
- // Unknown glyph — return an invisible placeholder with a cursor advance.
39
+ // Unknown glyph — warn once per font + codepoint, then return an invisible
40
+ // placeholder with a cursor advance so layout still makes progress.
41
+ warnOnce(`bitmaptext:${this._fontId}:${cp}`, `BitmapText: missing glyph U+${cp.toString(16).toUpperCase().padStart(4, '0')} ('${char}') in "${this._fontId}"`);
36
42
  return {
37
43
  x: 0,
38
44
  y: 0,
@@ -47,6 +53,7 @@ class BmFontAdapter {
47
53
  uvBottom: 0,
48
54
  };
49
55
  }
56
+ assert(g.page < this._textures.length, `BitmapText: glyph page index ${g.page} is out of range — font "${this._fontId}" has ${this._textures.length} page(s)`);
50
57
  const texW = this._textures[g.page]?.width ?? 1;
51
58
  const texH = this._textures[g.page]?.height ?? 1;
52
59
  return {
@@ -1 +1 @@
1
- {"version":3,"file":"BitmapText.js","sources":["../../../../../src/rendering/text/BitmapText.ts"],"sourcesContent":[null],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"BitmapText.js","sources":["../../../../../src/rendering/text/BitmapText.ts"],"sourcesContent":[null],"names":[],"mappings":"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"}
@@ -1,3 +1,5 @@
1
+ import { assert } from '../../core/dev.js';
2
+
1
3
  /**
2
4
  * A loaded BMFont asset: the parsed descriptor plus all page textures.
3
5
  *
@@ -15,6 +17,7 @@ class BmFont {
15
17
  fontData;
16
18
  textures;
17
19
  constructor(fontData, textures) {
20
+ assert(textures.length === fontData.pages.length, `BmFont: texture count (${textures.length}) must match page count (${fontData.pages.length})`);
18
21
  this.fontData = fontData;
19
22
  this.textures = textures;
20
23
  }
@@ -1 +1 @@
1
- {"version":3,"file":"BmFont.js","sources":["../../../../../src/rendering/text/BmFont.ts"],"sourcesContent":[null],"names":[],"mappings":"AAmCA;;;;;;;;;;;;AAYG;MACU,MAAM,CAAA;AACD,IAAA,QAAQ;AACR,IAAA,QAAQ;IAExB,WAAA,CAAmB,QAAoB,EAAE,QAA4B,EAAA;AACnE,QAAA,IAAI,CAAC,QAAQ,GAAG,QAAQ;AACxB,QAAA,IAAI,CAAC,QAAQ,GAAG,QAAQ;IAC1B;AACD;;;;"}
1
+ {"version":3,"file":"BmFont.js","sources":["../../../../../src/rendering/text/BmFont.ts"],"sourcesContent":[null],"names":[],"mappings":";;AAoCA;;;;;;;;;;;;AAYG;MACU,MAAM,CAAA;AACD,IAAA,QAAQ;AACR,IAAA,QAAQ;IAExB,WAAA,CAAmB,QAAoB,EAAE,QAA4B,EAAA;QACnE,MAAM,CAAC,QAAQ,CAAC,MAAM,KAAK,QAAQ,CAAC,KAAK,CAAC,MAAM,EAAE,0BAA0B,QAAQ,CAAC,MAAM,CAAA,yBAAA,EAA4B,QAAQ,CAAC,KAAK,CAAC,MAAM,CAAA,CAAA,CAAG,CAAC;AAChJ,QAAA,IAAI,CAAC,QAAQ,GAAG,QAAQ;AACxB,QAAA,IAAI,CAAC,QAAQ,GAAG,QAAQ;IAC1B;AACD;;;;"}
@@ -69,6 +69,10 @@ export declare class GlyphSdf {
69
69
  private readonly _radius;
70
70
  private readonly _cutoff;
71
71
  private readonly _font;
72
+ private readonly _fontSize;
73
+ private _fontAscent;
74
+ private _fontDescent;
75
+ private _metricsReady;
72
76
  private _canvasW;
73
77
  private _canvasH;
74
78
  private readonly _canvas;
@@ -88,5 +92,15 @@ export declare class GlyphSdf {
88
92
  * fresh `Uint8ClampedArray`; the caller may hold a reference to it safely
89
93
  * across subsequent `draw()` calls.
90
94
  */
95
+ /**
96
+ * Ensure font-level ascent/descent are measured. Called once per GlyphSdf
97
+ * instance — deferred to the first draw() so the canvas context is ready.
98
+ * Uses `fontBoundingBoxAscent/Descent` when available; falls back to
99
+ * `actualBoundingBoxAscent/Descent` measured from a reference string that
100
+ * covers ascenders ('H'), descenders ('g'), and diacritics ('É').
101
+ * Either way the same values are used for EVERY glyph so all tiles share a
102
+ * consistent height and a consistent baseline position within the tile.
103
+ */
104
+ private _ensureFontMetrics;
91
105
  draw(char: string): GlyphSdfResult;
92
106
  }
@@ -25,6 +25,14 @@ class GlyphSdf {
25
25
  _radius;
26
26
  _cutoff;
27
27
  _font;
28
+ _fontSize;
29
+ // Font-level ascent/descent — measured once from a reference string so that
30
+ // all glyph tiles share the same height and baseline position. This avoids
31
+ // the per-glyph actualBoundingBoxAscent variation that causes baseline jumps
32
+ // when fontBoundingBoxAscent is unavailable (common for loaded web fonts).
33
+ _fontAscent = 0;
34
+ _fontDescent = 0;
35
+ _metricsReady = false;
28
36
  _canvasW = 0;
29
37
  _canvasH = 0;
30
38
  _canvas;
@@ -41,18 +49,19 @@ class GlyphSdf {
41
49
  this._buffer = options.buffer ?? 8;
42
50
  this._radius = options.radius ?? this._buffer;
43
51
  this._cutoff = options.cutoff ?? 0.5;
52
+ this._fontSize = options.fontSize;
44
53
  const stylePart = options.fontStyle && options.fontStyle !== 'normal' ? `${options.fontStyle} ` : '';
45
54
  const weight = options.fontWeight ?? 'normal';
46
55
  this._font = `${stylePart}${weight} ${options.fontSize}px ${options.fontFamily}`;
47
56
  if (typeof OffscreenCanvas !== 'undefined') {
48
57
  const c = new OffscreenCanvas(1, 1);
49
58
  this._canvas = c;
50
- this._ctx = c.getContext('2d');
59
+ this._ctx = c.getContext('2d', { willReadFrequently: true });
51
60
  }
52
61
  else {
53
62
  const c = document.createElement('canvas');
54
63
  this._canvas = c;
55
- this._ctx = c.getContext('2d');
64
+ this._ctx = c.getContext('2d', { willReadFrequently: true });
56
65
  }
57
66
  }
58
67
  /**
@@ -62,7 +71,28 @@ class GlyphSdf {
62
71
  * fresh `Uint8ClampedArray`; the caller may hold a reference to it safely
63
72
  * across subsequent `draw()` calls.
64
73
  */
74
+ /**
75
+ * Ensure font-level ascent/descent are measured. Called once per GlyphSdf
76
+ * instance — deferred to the first draw() so the canvas context is ready.
77
+ * Uses `fontBoundingBoxAscent/Descent` when available; falls back to
78
+ * `actualBoundingBoxAscent/Descent` measured from a reference string that
79
+ * covers ascenders ('H'), descenders ('g'), and diacritics ('É').
80
+ * Either way the same values are used for EVERY glyph so all tiles share a
81
+ * consistent height and a consistent baseline position within the tile.
82
+ */
83
+ _ensureFontMetrics() {
84
+ if (this._metricsReady)
85
+ return;
86
+ const ctx = this._ctx;
87
+ ctx.font = this._font;
88
+ ctx.textBaseline = 'alphabetic';
89
+ const m = ctx.measureText('HgjpqyÉÅ');
90
+ this._fontAscent = Math.max(1, Math.ceil(m.fontBoundingBoxAscent ?? m.actualBoundingBoxAscent ?? this._fontSize * 0.8));
91
+ this._fontDescent = Math.max(1, Math.ceil(m.fontBoundingBoxDescent ?? m.actualBoundingBoxDescent ?? this._fontSize * 0.2));
92
+ this._metricsReady = true;
93
+ }
65
94
  draw(char) {
95
+ this._ensureFontMetrics();
66
96
  const ctx = this._ctx;
67
97
  const buf = this._buffer;
68
98
  // ── Measure ──────────────────────────────────────────────────────────
@@ -70,20 +100,20 @@ class GlyphSdf {
70
100
  ctx.textBaseline = 'alphabetic';
71
101
  const m = ctx.measureText(char);
72
102
  const advance = m.width;
103
+ // Width uses per-glyph actual bounds — each glyph has a different width.
73
104
  // Canvas 2D `actualBoundingBoxLeft` is the distance from the text's
74
105
  // left-alignment point going LEFT to the left edge of the glyph bounding
75
106
  // box. For most LTR characters this is 0; italic fonts may have a small
76
107
  // positive value (left overhang).
77
108
  const bbLeft = Math.max(0, Math.ceil(m.actualBoundingBoxLeft ?? 0));
78
109
  const bbRight = Math.max(0, Math.ceil(m.actualBoundingBoxRight ?? advance));
79
- const bbAscent = Math.max(0, Math.ceil(m.fontBoundingBoxAscent ??
80
- m.actualBoundingBoxAscent ??
81
- 0));
82
- const bbDescent = Math.max(0, Math.ceil(m.fontBoundingBoxDescent ??
83
- m.actualBoundingBoxDescent ??
84
- 0));
85
110
  const glyphWidth = Math.max(1, bbLeft + bbRight);
86
- const glyphHeight = Math.max(1, bbAscent + bbDescent);
111
+ // Height uses font-level metrics same for every glyph of this font/size
112
+ // so that all tiles are the same height and the baseline is always at
113
+ // buf + _fontAscent from the tile top. If per-glyph actualBoundingBoxAscent
114
+ // were used here instead, different glyphs would have their baselines at
115
+ // different positions in world space (the visual baseline-jump bug).
116
+ const glyphHeight = this._fontAscent + this._fontDescent;
87
117
  const tileW = glyphWidth + 2 * buf;
88
118
  const tileH = glyphHeight + 2 * buf;
89
119
  // ── Resize canvas if the tile dimensions changed ───────────────────────
@@ -96,8 +126,8 @@ class GlyphSdf {
96
126
  // ── Rasterize white glyph on transparent background ───────────────────
97
127
  ctx.clearRect(0, 0, tileW, tileH);
98
128
  ctx.fillStyle = '#ffffff';
99
- // Position so glyph's left edge lands at x = buf and baseline at y = buf + bbAscent.
100
- ctx.fillText(char, buf + bbLeft, buf + bbAscent);
129
+ // Baseline at buf + _fontAscent consistent across all glyphs.
130
+ ctx.fillText(char, buf + bbLeft, buf + this._fontAscent);
101
131
  const rgba = ctx.getImageData(0, 0, tileW, tileH).data;
102
132
  const n = tileW * tileH;
103
133
  // ── Grow working arrays lazily ────────────────────────────────────────
@@ -1 +1 @@
1
- {"version":3,"file":"GlyphSdf.js","sources":["../../../../../src/rendering/text/GlyphSdf.ts"],"sourcesContent":[null],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"GlyphSdf.js","sources":["../../../../../src/rendering/text/GlyphSdf.ts"],"sourcesContent":[null],"names":[],"mappings":"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"}
@@ -20,7 +20,7 @@ export type FontWeight = 'normal' | 'bold' | '100' | '200' | '300' | '400' | '50
20
20
  * ```ts
21
21
  * declare module 'exojs' {
22
22
  * interface FontRegistry {
23
- * 'AndyBold': true;
23
+ * 'Kenney Future': true;
24
24
  * }
25
25
  * }
26
26
  * ```
@@ -54,6 +54,11 @@ export interface TextStyleOptions {
54
54
  */
55
55
  font?: FontFace;
56
56
  fontFamily?: FontFamily;
57
+ /**
58
+ * CSS font-weight. Defaults to `'normal'` so that single-weight custom fonts
59
+ * render without browser-synthesised bold artefacts. Set explicitly to
60
+ * `'bold'` for display / title text that intentionally requires bold.
61
+ */
57
62
  fontWeight?: FontWeight;
58
63
  fontStyle?: 'normal' | 'italic';
59
64
  fontSize?: number;
@@ -47,7 +47,7 @@ class TextStyle {
47
47
  constructor(options = {}) {
48
48
  const explicitFace = typeof FontFace !== 'undefined' && options.font instanceof FontFace ? options.font : null;
49
49
  this._fontFamily = explicitFace ? explicitFace.family : (options.fontFamily ?? 'Arial');
50
- this._fontWeight = options.fontWeight ?? 'bold';
50
+ this._fontWeight = options.fontWeight ?? 'normal';
51
51
  this._fontStyle = options.fontStyle ?? 'normal';
52
52
  this._fontSize = options.fontSize ?? 20;
53
53
  this._fillColor = options.fillColor ? options.fillColor.clone() : Color.white.clone();
@@ -1 +1 @@
1
- {"version":3,"file":"TextStyle.js","sources":["../../../../../src/rendering/text/TextStyle.ts"],"sourcesContent":[null],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"TextStyle.js","sources":["../../../../../src/rendering/text/TextStyle.ts"],"sourcesContent":[null],"names":[],"mappings":"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"}
@@ -90,6 +90,11 @@ export declare class DataTexture<F extends DataTextureFormat = DataTextureFormat
90
90
  constructor(options: DataTextureOptions & {
91
91
  format: F;
92
92
  });
93
+ /**
94
+ * DataTexture has no external image source. Override the base implementation
95
+ * so Sprite/Mesh texture assignment does not collapse dimensions to 0x0.
96
+ */
97
+ updateSource(): this;
93
98
  /**
94
99
  * Mark the entire buffer for re-upload on next backend sync. Call after
95
100
  * mutating `buffer` contents to flush changes to the GPU.
@@ -108,6 +108,13 @@ class DataTexture extends Texture {
108
108
  // Mark fully dirty so the first sync uploads the whole buffer.
109
109
  this._dirty = { full: true, x: 0, y: 0, width, height };
110
110
  }
111
+ /**
112
+ * DataTexture has no external image source. Override the base implementation
113
+ * so Sprite/Mesh texture assignment does not collapse dimensions to 0x0.
114
+ */
115
+ updateSource() {
116
+ return this.commit();
117
+ }
111
118
  /**
112
119
  * Mark the entire buffer for re-upload on next backend sync. Call after
113
120
  * mutating `buffer` contents to flush changes to the GPU.