@codexo/exojs 0.14.0 → 0.15.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 (237) hide show
  1. package/CHANGELOG.md +132 -0
  2. package/README.md +2 -4
  3. package/dist/esm/animation/Tween.d.ts.map +1 -1
  4. package/dist/esm/animation/Tween.js +0 -1
  5. package/dist/esm/animation/Tween.js.map +1 -1
  6. package/dist/esm/animation/TweenManager.d.ts +44 -5
  7. package/dist/esm/animation/TweenManager.d.ts.map +1 -1
  8. package/dist/esm/animation/TweenManager.js +57 -5
  9. package/dist/esm/animation/TweenManager.js.map +1 -1
  10. package/dist/esm/animation/TweenSequencer.d.ts +139 -0
  11. package/dist/esm/animation/TweenSequencer.d.ts.map +1 -0
  12. package/dist/esm/animation/TweenSequencer.js +305 -0
  13. package/dist/esm/animation/TweenSequencer.js.map +1 -0
  14. package/dist/esm/animation/index.d.ts +1 -0
  15. package/dist/esm/animation/index.d.ts.map +1 -1
  16. package/dist/esm/audio/WorkletEffect.d.ts +34 -20
  17. package/dist/esm/audio/WorkletEffect.d.ts.map +1 -1
  18. package/dist/esm/audio/WorkletEffect.js +92 -25
  19. package/dist/esm/audio/WorkletEffect.js.map +1 -1
  20. package/dist/esm/core/Application.d.ts +43 -5
  21. package/dist/esm/core/Application.d.ts.map +1 -1
  22. package/dist/esm/core/Application.js +83 -9
  23. package/dist/esm/core/Application.js.map +1 -1
  24. package/dist/esm/core/BuildInfo.js +2 -2
  25. package/dist/esm/core/Codec.d.ts +41 -0
  26. package/dist/esm/core/Codec.d.ts.map +1 -0
  27. package/dist/esm/core/Codec.js +79 -0
  28. package/dist/esm/core/Codec.js.map +1 -0
  29. package/dist/esm/core/FixedTimestep.d.ts +28 -0
  30. package/dist/esm/core/FixedTimestep.d.ts.map +1 -0
  31. package/dist/esm/core/FixedTimestep.js +62 -0
  32. package/dist/esm/core/FixedTimestep.js.map +1 -0
  33. package/dist/esm/core/Scene.d.ts +14 -0
  34. package/dist/esm/core/Scene.d.ts.map +1 -1
  35. package/dist/esm/core/Scene.js +18 -0
  36. package/dist/esm/core/Scene.js.map +1 -1
  37. package/dist/esm/core/SceneManager.d.ts +7 -0
  38. package/dist/esm/core/SceneManager.d.ts.map +1 -1
  39. package/dist/esm/core/SceneManager.js +20 -4
  40. package/dist/esm/core/SceneManager.js.map +1 -1
  41. package/dist/esm/core/SceneNode.d.ts +36 -6
  42. package/dist/esm/core/SceneNode.d.ts.map +1 -1
  43. package/dist/esm/core/SceneNode.js +63 -11
  44. package/dist/esm/core/SceneNode.js.map +1 -1
  45. package/dist/esm/core/Stage.d.ts +7 -0
  46. package/dist/esm/core/Stage.d.ts.map +1 -1
  47. package/dist/esm/core/SystemRegistry.d.ts +5 -0
  48. package/dist/esm/core/SystemRegistry.d.ts.map +1 -1
  49. package/dist/esm/core/SystemRegistry.js +10 -0
  50. package/dist/esm/core/SystemRegistry.js.map +1 -1
  51. package/dist/esm/core/index.d.ts +4 -0
  52. package/dist/esm/core/index.d.ts.map +1 -1
  53. package/dist/esm/core/logging.d.ts +34 -0
  54. package/dist/esm/core/logging.d.ts.map +1 -0
  55. package/dist/esm/core/logging.js +59 -0
  56. package/dist/esm/core/logging.js.map +1 -0
  57. package/dist/esm/core/serialization/commonFields.d.ts.map +1 -1
  58. package/dist/esm/core/serialization/commonFields.js +6 -0
  59. package/dist/esm/core/serialization/commonFields.js.map +1 -1
  60. package/dist/esm/core/serialization/renderingSerializers.d.ts.map +1 -1
  61. package/dist/esm/core/serialization/renderingSerializers.js +14 -5
  62. package/dist/esm/core/serialization/renderingSerializers.js.map +1 -1
  63. package/dist/esm/index.js +7 -2
  64. package/dist/esm/index.js.map +1 -1
  65. package/dist/esm/input/Gamepad.d.ts +10 -0
  66. package/dist/esm/input/Gamepad.d.ts.map +1 -1
  67. package/dist/esm/input/Gamepad.js +12 -0
  68. package/dist/esm/input/Gamepad.js.map +1 -1
  69. package/dist/esm/input/InputManager.d.ts.map +1 -1
  70. package/dist/esm/input/InputManager.js +5 -0
  71. package/dist/esm/input/InputManager.js.map +1 -1
  72. package/dist/esm/input/InteractionManager.js +4 -4
  73. package/dist/esm/input/InteractionManager.js.map +1 -1
  74. package/dist/esm/math/collision-detection.js +1 -1
  75. package/dist/esm/rendering/BackendTargetPass.d.ts +1 -1
  76. package/dist/esm/rendering/BackendTargetPass.d.ts.map +1 -1
  77. package/dist/esm/rendering/CallbackRenderPass.d.ts +14 -10
  78. package/dist/esm/rendering/CallbackRenderPass.d.ts.map +1 -1
  79. package/dist/esm/rendering/CallbackRenderPass.js +16 -11
  80. package/dist/esm/rendering/CallbackRenderPass.js.map +1 -1
  81. package/dist/esm/rendering/DrawContext.d.ts +48 -0
  82. package/dist/esm/rendering/DrawContext.d.ts.map +1 -0
  83. package/dist/esm/rendering/PassContext.d.ts +42 -0
  84. package/dist/esm/rendering/PassContext.d.ts.map +1 -0
  85. package/dist/esm/rendering/PassContext.js +48 -0
  86. package/dist/esm/rendering/PassContext.js.map +1 -0
  87. package/dist/esm/rendering/RenderBackend.d.ts +14 -0
  88. package/dist/esm/rendering/RenderBackend.d.ts.map +1 -1
  89. package/dist/esm/rendering/RenderNode.d.ts.map +1 -1
  90. package/dist/esm/rendering/RenderNode.js +2 -2
  91. package/dist/esm/rendering/RenderNode.js.map +1 -1
  92. package/dist/esm/rendering/RenderNodePass.d.ts +1 -1
  93. package/dist/esm/rendering/RenderNodePass.d.ts.map +1 -1
  94. package/dist/esm/rendering/RenderingContext.d.ts +47 -16
  95. package/dist/esm/rendering/RenderingContext.d.ts.map +1 -1
  96. package/dist/esm/rendering/RenderingContext.js +134 -36
  97. package/dist/esm/rendering/RenderingContext.js.map +1 -1
  98. package/dist/esm/rendering/TransformBuffer.d.ts +23 -0
  99. package/dist/esm/rendering/TransformBuffer.d.ts.map +1 -1
  100. package/dist/esm/rendering/TransformBuffer.js +58 -0
  101. package/dist/esm/rendering/TransformBuffer.js.map +1 -1
  102. package/dist/esm/rendering/View.d.ts +38 -0
  103. package/dist/esm/rendering/View.d.ts.map +1 -1
  104. package/dist/esm/rendering/View.js +37 -0
  105. package/dist/esm/rendering/View.js.map +1 -1
  106. package/dist/esm/rendering/filters/WebGpuShaderFilter.d.ts.map +1 -1
  107. package/dist/esm/rendering/filters/WebGpuShaderFilter.js +9 -2
  108. package/dist/esm/rendering/filters/WebGpuShaderFilter.js.map +1 -1
  109. package/dist/esm/rendering/material/MeshMaterial.d.ts +20 -1
  110. package/dist/esm/rendering/material/MeshMaterial.d.ts.map +1 -1
  111. package/dist/esm/rendering/material/MeshMaterial.js +17 -0
  112. package/dist/esm/rendering/material/MeshMaterial.js.map +1 -1
  113. package/dist/esm/rendering/material/SpriteMaterial.d.ts +20 -1
  114. package/dist/esm/rendering/material/SpriteMaterial.d.ts.map +1 -1
  115. package/dist/esm/rendering/material/SpriteMaterial.js +17 -0
  116. package/dist/esm/rendering/material/SpriteMaterial.js.map +1 -1
  117. package/dist/esm/rendering/plan/RenderEffectExecutor.d.ts.map +1 -1
  118. package/dist/esm/rendering/plan/RenderEffectExecutor.js +7 -2
  119. package/dist/esm/rendering/plan/RenderEffectExecutor.js.map +1 -1
  120. package/dist/esm/rendering/plan/RenderInstruction.d.ts +5 -2
  121. package/dist/esm/rendering/plan/RenderInstruction.d.ts.map +1 -1
  122. package/dist/esm/rendering/plan/RenderPlanBuilder.d.ts.map +1 -1
  123. package/dist/esm/rendering/plan/RenderPlanBuilder.js +23 -5
  124. package/dist/esm/rendering/plan/RenderPlanBuilder.js.map +1 -1
  125. package/dist/esm/rendering/plan/RenderScope.d.ts +7 -0
  126. package/dist/esm/rendering/plan/RenderScope.d.ts.map +1 -1
  127. package/dist/esm/rendering/primitives/Graphics.d.ts +10 -1
  128. package/dist/esm/rendering/primitives/Graphics.d.ts.map +1 -1
  129. package/dist/esm/rendering/primitives/Graphics.js +30 -9
  130. package/dist/esm/rendering/primitives/Graphics.js.map +1 -1
  131. package/dist/esm/rendering/public.d.ts +5 -5
  132. package/dist/esm/rendering/public.d.ts.map +1 -1
  133. package/dist/esm/rendering/sprite/AnimatedSprite.d.ts +56 -19
  134. package/dist/esm/rendering/sprite/AnimatedSprite.d.ts.map +1 -1
  135. package/dist/esm/rendering/sprite/AnimatedSprite.js +121 -31
  136. package/dist/esm/rendering/sprite/AnimatedSprite.js.map +1 -1
  137. package/dist/esm/rendering/text/BitmapText.d.ts.map +1 -1
  138. package/dist/esm/rendering/text/BitmapText.js +2 -0
  139. package/dist/esm/rendering/text/BitmapText.js.map +1 -1
  140. package/dist/esm/rendering/text/HTMLText.d.ts.map +1 -1
  141. package/dist/esm/rendering/text/HTMLText.js +2 -2
  142. package/dist/esm/rendering/text/HTMLText.js.map +1 -1
  143. package/dist/esm/rendering/text/Text.d.ts.map +1 -1
  144. package/dist/esm/rendering/text/Text.js +2 -0
  145. package/dist/esm/rendering/text/Text.js.map +1 -1
  146. package/dist/esm/rendering/types.d.ts +37 -13
  147. package/dist/esm/rendering/types.d.ts.map +1 -1
  148. package/dist/esm/rendering/types.js +37 -13
  149. package/dist/esm/rendering/types.js.map +1 -1
  150. package/dist/esm/rendering/webgl2/WebGl2BackdropBlendCompositor.d.ts +41 -0
  151. package/dist/esm/rendering/webgl2/WebGl2BackdropBlendCompositor.d.ts.map +1 -0
  152. package/dist/esm/rendering/webgl2/WebGl2BackdropBlendCompositor.js +222 -0
  153. package/dist/esm/rendering/webgl2/WebGl2BackdropBlendCompositor.js.map +1 -0
  154. package/dist/esm/rendering/webgl2/WebGl2Backend.d.ts +34 -1
  155. package/dist/esm/rendering/webgl2/WebGl2Backend.d.ts.map +1 -1
  156. package/dist/esm/rendering/webgl2/WebGl2Backend.js +108 -60
  157. package/dist/esm/rendering/webgl2/WebGl2Backend.js.map +1 -1
  158. package/dist/esm/rendering/webgl2/WebGl2TextRenderer.d.ts.map +1 -1
  159. package/dist/esm/rendering/webgl2/WebGl2TextRenderer.js +50 -11
  160. package/dist/esm/rendering/webgl2/WebGl2TextRenderer.js.map +1 -1
  161. package/dist/esm/rendering/webgl2/glsl/backdrop-blend.frag.js +4 -0
  162. package/dist/esm/rendering/webgl2/glsl/backdrop-blend.frag.js.map +1 -0
  163. package/dist/esm/rendering/webgl2/glsl/backdrop-blend.vert.js +4 -0
  164. package/dist/esm/rendering/webgl2/glsl/backdrop-blend.vert.js.map +1 -0
  165. package/dist/esm/rendering/webgl2/glsl/text.vert.js +1 -1
  166. package/dist/esm/rendering/webgpu/WebGpuBackdropBlendCompositor.d.ts +72 -0
  167. package/dist/esm/rendering/webgpu/WebGpuBackdropBlendCompositor.d.ts.map +1 -0
  168. package/dist/esm/rendering/webgpu/WebGpuBackdropBlendCompositor.js +494 -0
  169. package/dist/esm/rendering/webgpu/WebGpuBackdropBlendCompositor.js.map +1 -0
  170. package/dist/esm/rendering/webgpu/WebGpuBackend.d.ts +27 -0
  171. package/dist/esm/rendering/webgpu/WebGpuBackend.d.ts.map +1 -1
  172. package/dist/esm/rendering/webgpu/WebGpuBackend.js +157 -60
  173. package/dist/esm/rendering/webgpu/WebGpuBackend.js.map +1 -1
  174. package/dist/esm/rendering/webgpu/WebGpuBlendState.d.ts.map +1 -1
  175. package/dist/esm/rendering/webgpu/WebGpuBlendState.js +5 -29
  176. package/dist/esm/rendering/webgpu/WebGpuBlendState.js.map +1 -1
  177. package/dist/esm/rendering/webgpu/WebGpuMaskCompositor.d.ts +2 -0
  178. package/dist/esm/rendering/webgpu/WebGpuMaskCompositor.d.ts.map +1 -1
  179. package/dist/esm/rendering/webgpu/WebGpuMaskCompositor.js +2 -1
  180. package/dist/esm/rendering/webgpu/WebGpuMaskCompositor.js.map +1 -1
  181. package/dist/esm/rendering/webgpu/WebGpuMeshRenderer.d.ts +4 -0
  182. package/dist/esm/rendering/webgpu/WebGpuMeshRenderer.d.ts.map +1 -1
  183. package/dist/esm/rendering/webgpu/WebGpuMeshRenderer.js +3 -1
  184. package/dist/esm/rendering/webgpu/WebGpuMeshRenderer.js.map +1 -1
  185. package/dist/esm/rendering/webgpu/WebGpuNineSliceSpriteRenderer.d.ts +2 -0
  186. package/dist/esm/rendering/webgpu/WebGpuNineSliceSpriteRenderer.d.ts.map +1 -1
  187. package/dist/esm/rendering/webgpu/WebGpuNineSliceSpriteRenderer.js +2 -1
  188. package/dist/esm/rendering/webgpu/WebGpuNineSliceSpriteRenderer.js.map +1 -1
  189. package/dist/esm/rendering/webgpu/WebGpuPassCoordinator.d.ts +8 -0
  190. package/dist/esm/rendering/webgpu/WebGpuPassCoordinator.d.ts.map +1 -1
  191. package/dist/esm/rendering/webgpu/WebGpuPassCoordinator.js +20 -0
  192. package/dist/esm/rendering/webgpu/WebGpuPassCoordinator.js.map +1 -1
  193. package/dist/esm/rendering/webgpu/WebGpuRepeatingSpriteRenderer.d.ts +6 -0
  194. package/dist/esm/rendering/webgpu/WebGpuRepeatingSpriteRenderer.d.ts.map +1 -1
  195. package/dist/esm/rendering/webgpu/WebGpuRepeatingSpriteRenderer.js +4 -1
  196. package/dist/esm/rendering/webgpu/WebGpuRepeatingSpriteRenderer.js.map +1 -1
  197. package/dist/esm/rendering/webgpu/WebGpuSpriteRenderer.d.ts +2 -0
  198. package/dist/esm/rendering/webgpu/WebGpuSpriteRenderer.d.ts.map +1 -1
  199. package/dist/esm/rendering/webgpu/WebGpuSpriteRenderer.js +2 -1
  200. package/dist/esm/rendering/webgpu/WebGpuSpriteRenderer.js.map +1 -1
  201. package/dist/esm/rendering/webgpu/WebGpuStencilClipper.d.ts +2 -0
  202. package/dist/esm/rendering/webgpu/WebGpuStencilClipper.d.ts.map +1 -1
  203. package/dist/esm/rendering/webgpu/WebGpuStencilClipper.js +2 -1
  204. package/dist/esm/rendering/webgpu/WebGpuStencilClipper.js.map +1 -1
  205. package/dist/esm/rendering/webgpu/WebGpuTextRenderer.d.ts +2 -0
  206. package/dist/esm/rendering/webgpu/WebGpuTextRenderer.d.ts.map +1 -1
  207. package/dist/esm/rendering/webgpu/WebGpuTextRenderer.js +3 -2
  208. package/dist/esm/rendering/webgpu/WebGpuTextRenderer.js.map +1 -1
  209. package/dist/esm/rendering/webgpu/WebGpuTransformStorage.d.ts +3 -1
  210. package/dist/esm/rendering/webgpu/WebGpuTransformStorage.d.ts.map +1 -1
  211. package/dist/esm/rendering/webgpu/WebGpuTransformStorage.js +29 -5
  212. package/dist/esm/rendering/webgpu/WebGpuTransformStorage.js.map +1 -1
  213. package/dist/esm/resources/Loader.d.ts +13 -0
  214. package/dist/esm/resources/Loader.d.ts.map +1 -1
  215. package/dist/esm/resources/Loader.js +67 -7
  216. package/dist/esm/resources/Loader.js.map +1 -1
  217. package/dist/esm/ui/ScrollContainer.d.ts +63 -0
  218. package/dist/esm/ui/ScrollContainer.d.ts.map +1 -0
  219. package/dist/esm/ui/ScrollContainer.js +99 -0
  220. package/dist/esm/ui/ScrollContainer.js.map +1 -0
  221. package/dist/esm/ui/Tooltip.d.ts +67 -0
  222. package/dist/esm/ui/Tooltip.d.ts.map +1 -0
  223. package/dist/esm/ui/Tooltip.js +133 -0
  224. package/dist/esm/ui/Tooltip.js.map +1 -0
  225. package/dist/esm/ui/index.d.ts +4 -0
  226. package/dist/esm/ui/index.d.ts.map +1 -1
  227. package/dist/exo.esm.js +1 -1
  228. package/dist/exo.esm.js.map +1 -1
  229. package/dist/exo.iife.js +45202 -0
  230. package/dist/exo.iife.js.map +1 -0
  231. package/dist/exo.iife.min.js +2 -0
  232. package/dist/exo.iife.min.js.map +1 -0
  233. package/package.json +15 -3
  234. package/dist/esm/rendering/Camera.d.ts +0 -34
  235. package/dist/esm/rendering/Camera.d.ts.map +0 -1
  236. package/dist/esm/rendering/Camera.js +0 -38
  237. package/dist/esm/rendering/Camera.js.map +0 -1
@@ -13,48 +13,12 @@ import { DataTexture } from '../texture/DataTexture.js';
13
13
  import { RenderTexture } from '../texture/RenderTexture.js';
14
14
  import { TransformBuffer } from '../TransformBuffer.js';
15
15
  import { BlendModes } from '../types.js';
16
+ import { WebGl2BackdropBlendCompositor } from './WebGl2BackdropBlendCompositor.js';
16
17
  import { WebGl2MaskCompositor } from './WebGl2MaskCompositor.js';
17
18
  import { WebGl2MeshRenderer } from './WebGl2MeshRenderer.js';
18
19
  import { WebGl2PassCoordinator } from './WebGl2PassCoordinator.js';
19
20
  import { WebGl2StencilClipper } from './WebGl2StencilClipper.js';
20
21
 
21
- // Inline GL debug helpers — replaces the webgl-debug vendor lib.
22
- // Used only when renderingOptions.debug = true.
23
- const glEnumToString = (gl, value) => {
24
- const ctor = gl.constructor;
25
- for (const key of Object.getOwnPropertyNames(ctor)) {
26
- if (ctor[key] === value)
27
- return key;
28
- }
29
- return `0x${value.toString(16).padStart(4, '0').toUpperCase()}`;
30
- };
31
- const glArgsToString = (gl, args) => args.map(a => (typeof a === 'number' ? glEnumToString(gl, a) : String(a))).join(', ');
32
- const makeWebGl2DebugContext = (gl) => new Proxy(gl, {
33
- get(target, prop, receiver) {
34
- // `Reflect.get` is typed `any`; contain it as `unknown` so the non-function
35
- // branch returns a safe value and the function branch narrows via `typeof`.
36
- const value = Reflect.get(target, prop, receiver);
37
- if (typeof value !== 'function')
38
- return value;
39
- const name = String(prop);
40
- return (...args) => {
41
- console.log(`gl.${name}(${glArgsToString(target, args)})`);
42
- for (const arg of args) {
43
- if (arg === undefined) {
44
- console.error(`undefined passed to gl.${name}(${glArgsToString(target, args)})`);
45
- }
46
- }
47
- const result = Reflect.apply(value, target, args);
48
- if (name !== 'getError') {
49
- const err = target.getError();
50
- if (err !== target.NO_ERROR) {
51
- throw new Error(`${glEnumToString(target, err)} was caused by call to: ${name}`);
52
- }
53
- }
54
- return result;
55
- };
56
- },
57
- });
58
22
  const renderTargetTextureSyncUnit = 15;
59
23
  /**
60
24
  * WebGL 2.0 implementation of {@link RenderBackend}. Manages the GL
@@ -89,6 +53,8 @@ class WebGl2Backend {
89
53
  _clipPointB = new Vector();
90
54
  _maskCompositor = new WebGl2MaskCompositor();
91
55
  _maskCompositorConnected = false;
56
+ _backdropBlendCompositor = new WebGl2BackdropBlendCompositor();
57
+ _backdropBlendCompositorConnected = false;
92
58
  _stencilClipper = new WebGl2StencilClipper();
93
59
  _stencilStates = new Map();
94
60
  _stencilClipperConnected = false;
@@ -113,6 +79,8 @@ class WebGl2Backend {
113
79
  _transformTextureCount = -1;
114
80
  _activeDrawCommand = null;
115
81
  _drawPlanDepth = 0;
82
+ _planBaseStack = [];
83
+ _planHashStack = [];
116
84
  constructor(app) {
117
85
  const canvasOptions = app.options.canvas ?? {};
118
86
  const renderingOptions = app.options.rendering ?? {};
@@ -120,13 +88,13 @@ class WebGl2Backend {
120
88
  const height = canvasOptions.height ?? 600;
121
89
  const clearColor = app.options.clearColor;
122
90
  const webglAttributes = renderingOptions.webglAttributes;
123
- const debug = renderingOptions.debug ?? false;
91
+ renderingOptions.debug ?? false;
124
92
  this._canvas = app.canvas;
125
93
  const gl = this._createContext(webglAttributes);
126
94
  if (!gl) {
127
95
  throw new Error('This browser or hardware does not support WebGL.');
128
96
  }
129
- this._context = debug ? makeWebGl2DebugContext(gl) : gl;
97
+ this._context = gl;
130
98
  this._contextLost = this._context.isContextLost();
131
99
  if (this._contextLost) {
132
100
  this._restoreContext();
@@ -189,11 +157,24 @@ class WebGl2Backend {
189
157
  }
190
158
  resetStats() {
191
159
  resetRenderStats(this._stats);
160
+ // The transform buffer is frame-scoped: reset it once per frame here (was
161
+ // previously reset per render() call in _beginDrawPlan).
162
+ this._transformBuffer.begin();
192
163
  return this;
193
164
  }
165
+ /** Frame-global slot base the plan builder indexes from. @internal */
166
+ get transformBufferCount() {
167
+ return this._transformBuffer.count;
168
+ }
194
169
  /** @internal */
195
- _beginDrawPlan(nodeCount) {
196
- this._transformBuffer.begin(nodeCount);
170
+ _beginDrawPlan(_nodeCount) {
171
+ // Do NOT reset the transform buffer here — it is frame-scoped (reset in
172
+ // resetStats). The builder already based this plan's node indices at the
173
+ // current buffer count, so writes land in fresh frame-global slots and
174
+ // batches survive across render() calls. Remember this plan's base so a
175
+ // nested plan can free its rows on end.
176
+ this._planBaseStack.push(this._transformBuffer.count);
177
+ this._planHashStack.push(this._transformBuffer.frameHash);
197
178
  this._activeDrawCommand = null;
198
179
  this._drawPlanDepth++;
199
180
  }
@@ -289,12 +270,20 @@ class WebGl2Backend {
289
270
  /** @internal */
290
271
  _endDrawPlan() {
291
272
  this._activeDrawCommand = null;
273
+ const planBase = this._planBaseStack.pop() ?? 0;
274
+ const planHash = this._planHashStack.pop() ?? 0;
292
275
  if (this._drawPlanDepth > 0) {
293
276
  this._drawPlanDepth--;
294
277
  }
295
- // Only assert balance at the outermost plan: cacheAsBitmap draws a cache
296
- // sprite via a nested render(), whose inner _endDrawPlan sees the still-open
297
- // outer clips those are not leaks.
278
+ // A nested plan (filter / cacheAsBitmap) just ended: flush its draws, then
279
+ // free its transform rows so the frame-scoped buffer only grows with
280
+ // top-level render() calls. Top-level plans (depth back to 0) keep their rows
281
+ // so cross-call batching survives to the frame-end flush.
282
+ if (this._drawPlanDepth > 0) {
283
+ this._flushActiveRenderer();
284
+ this._transformBuffer.rewindTo(planBase, planHash);
285
+ }
286
+ // Only assert balance at the outermost plan.
298
287
  if (this._drawPlanDepth === 0) {
299
288
  this._assertBalancedStencil();
300
289
  }
@@ -470,6 +459,37 @@ class WebGl2Backend {
470
459
  this._maskCompositor.compose(this, content, mask, x, y, width, height, blendMode);
471
460
  return this;
472
461
  }
462
+ composeWithBackdropBlend(source, x, y, width, height, mode) {
463
+ if (width <= 0 || height <= 0) {
464
+ return this;
465
+ }
466
+ this._flushActiveRenderer();
467
+ this._setActiveRenderer(null);
468
+ if (!this._backdropBlendCompositorConnected) {
469
+ this._backdropBlendCompositor.connect(this);
470
+ this._backdropBlendCompositorConnected = true;
471
+ }
472
+ this._backdropBlendCompositor.compose(this, source, x, y, width, height, mode);
473
+ return this;
474
+ }
475
+ /**
476
+ * Return the GL framebuffer for `target`, preparing the render-target state so
477
+ * the texture is attached. Used internally by {@link WebGl2BackdropBlendCompositor}
478
+ * for framebuffer blits. Null for the root (default) framebuffer.
479
+ * @internal
480
+ */
481
+ _renderTargetFramebuffer(target) {
482
+ return this._prepareRenderTarget(target).framebuffer;
483
+ }
484
+ /**
485
+ * Re-bind the currently active render target as the GL DRAW framebuffer and
486
+ * restore the viewport. Called by {@link WebGl2BackdropBlendCompositor} after
487
+ * it unbinds the framebuffer for a blit operation.
488
+ * @internal
489
+ */
490
+ _rebindActiveTarget() {
491
+ this._bindRenderTarget(this._renderTarget);
492
+ }
473
493
  acquireRenderTexture(width, height) {
474
494
  for (let index = 0; index < this._temporaryRenderTextures.length; index++) {
475
495
  // In-bounds: `index` ranges over `0..length-1`.
@@ -490,7 +510,12 @@ class WebGl2Backend {
490
510
  return this;
491
511
  }
492
512
  setView(view) {
493
- this._flushActiveRenderer();
513
+ // Only flush the open batch when the view actually changes. The unconditional
514
+ // flush forced one draw call per render() call (each render() re-applies the
515
+ // same camera view), defeating cross-call batching.
516
+ if (this._renderTarget.view !== view) {
517
+ this._flushActiveRenderer();
518
+ }
494
519
  this._renderTarget.setView(view);
495
520
  this._bindRenderTarget(this._renderTarget);
496
521
  return this;
@@ -540,6 +565,21 @@ class WebGl2Backend {
540
565
  this._texture = texture;
541
566
  return this;
542
567
  }
568
+ /**
569
+ * Make `unit` the active texture unit through the backend's unit cache.
570
+ *
571
+ * Renderers that bind a *raw* `WebGLTexture` to a unit (e.g. the text
572
+ * renderer's private node-data texture) must route the unit switch through
573
+ * here instead of calling `gl.activeTexture` directly — otherwise the cache
574
+ * goes stale and a later {@link bindTexture} can skip its own `activeTexture`
575
+ * call, binding to the wrong unit. After this returns the caller may issue its
576
+ * own raw `gl.bindTexture` on the now-active unit.
577
+ * @internal
578
+ */
579
+ setActiveTextureUnit(unit) {
580
+ this._setTextureUnit(unit);
581
+ return this;
582
+ }
543
583
  /** @internal */
544
584
  bindTransformBufferTexture(unit, minCount) {
545
585
  const requiredCount = Math.max(1, minCount);
@@ -560,11 +600,21 @@ class WebGl2Backend {
560
600
  if (nextTransformTexture === null) {
561
601
  throw new Error('Transform texture must be initialized before binding.');
562
602
  }
603
+ // A skipped flush (all three guards false) leaves the dirty range uncleared
604
+ // until the next begin(). Safe: every write() mixes its slot into _frameHash,
605
+ // so a non-empty dirty range always coincides with snapshot.changed = true —
606
+ // the upload branch is always taken before any dirty rows could be stale.
563
607
  if (snapshot.changed || snapshot.count !== this._transformTextureCount || snapshot.hash !== this._transformTextureHash) {
564
- nextTransformTexture.commitRect(0, 0, 3, snapshot.count);
565
- this._transformBuffer.recordUpload(snapshot.count);
566
- this._transformTextureHash = snapshot.hash;
608
+ // Upload only the rows actually written since the last upload (delta), so
609
+ // barrier-heavy frames don't re-upload the whole growing buffer. A reused
610
+ // slot below the high-water mark is in the dirty range, so it re-uploads.
611
+ const { firstRow, rowCount } = this._transformBuffer.consumeDirtyRange(snapshot.count);
612
+ if (rowCount > 0) {
613
+ nextTransformTexture.commitRect(0, firstRow, 3, rowCount);
614
+ this._transformBuffer.recordUpload(rowCount);
615
+ }
567
616
  this._transformTextureCount = snapshot.count;
617
+ this._transformTextureHash = snapshot.hash;
568
618
  }
569
619
  return this.bindTexture(nextTransformTexture, unit);
570
620
  }
@@ -589,17 +639,6 @@ class WebGl2Backend {
589
639
  gl.blendEquation(gl.FUNC_ADD);
590
640
  gl.blendFunc(gl.ONE, gl.ONE_MINUS_SRC_COLOR);
591
641
  break;
592
- case BlendModes.Darken:
593
- // MIN/MAX ignore blendFunc factors, so this cannot account for source
594
- // coverage — transparent (premultiplied rgb=0) texels darken to black.
595
- // Reliable only for opaque sources. See {@link BlendModes.Darken}.
596
- gl.blendEquation(gl.MIN);
597
- gl.blendFunc(gl.ONE, gl.ONE);
598
- break;
599
- case BlendModes.Lighten:
600
- gl.blendEquation(gl.MAX);
601
- gl.blendFunc(gl.ONE, gl.ONE);
602
- break;
603
642
  default:
604
643
  gl.blendEquation(gl.FUNC_ADD);
605
644
  gl.blendFunc(gl.ONE, gl.ONE_MINUS_SRC_ALPHA);
@@ -665,6 +704,10 @@ class WebGl2Backend {
665
704
  this._maskCompositor.disconnect();
666
705
  this._maskCompositorConnected = false;
667
706
  }
707
+ if (this._backdropBlendCompositorConnected) {
708
+ this._backdropBlendCompositor.disconnect();
709
+ this._backdropBlendCompositorConnected = false;
710
+ }
668
711
  if (this._stencilClipperConnected) {
669
712
  this._stencilClipper.disconnect();
670
713
  this._stencilClipperConnected = false;
@@ -879,9 +922,14 @@ class WebGl2Backend {
879
922
  const scaleX = target.root && target.width > 0 ? this._canvas.width / target.width : 1;
880
923
  const scaleY = target.root && target.height > 0 ? this._canvas.height / target.height : 1;
881
924
  const x = Math.floor(viewport.x * scaleX);
882
- const y = Math.floor(viewport.y * scaleY);
883
925
  const width = Math.max(0, Math.round(viewport.width * scaleX));
884
926
  const height = Math.max(0, Math.round(viewport.height * scaleY));
927
+ // `viewport.y` is top-left (the View / RenderTarget convention); GL's viewport
928
+ // origin is bottom-left, so flip it. A full viewport (y = 0, height = full) maps
929
+ // to y = 0 unchanged — only partial viewports (split-screen / pip / minimap) were
930
+ // affected, landing at the wrong edge before this flip.
931
+ const backingHeight = target.root ? this._canvas.height : target.height;
932
+ const y = backingHeight - (Math.floor(viewport.y * scaleY) + height);
885
933
  gl.bindFramebuffer(gl.FRAMEBUFFER, state.framebuffer);
886
934
  gl.viewport(x, y, width, height);
887
935
  this._boundFramebuffer = state.framebuffer;
@@ -1 +1 @@
1
- {"version":3,"file":"WebGl2Backend.js","sources":["../../../../../src/rendering/webgl2/WebGl2Backend.ts"],"sourcesContent":[null],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"WebGl2Backend.js","sources":["../../../../../src/rendering/webgl2/WebGl2Backend.ts"],"sourcesContent":[null],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"WebGl2TextRenderer.d.ts","sourceRoot":"","sources":["../../../../src/rendering/webgl2/WebGl2TextRenderer.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,KAAK,UAAU,EAAE,MAAM,4BAA4B,CAAC;AAE7D,OAAO,EAAE,IAAI,EAAE,MAAM,sBAAsB,CAAC;AAI5C,OAAO,EAAE,sBAAsB,EAAE,MAAM,0BAA0B,CAAC;AAKlE,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,iBAAiB,CAAC;AA0DrD;;;;;;;;;;;GAWG;AACH,qBAAa,kBAAmB,SAAQ,sBAAsB,CAAC,IAAI,GAAG,UAAU,CAAC;IAC/E;;;;;OAKG;IACH,SAAgB,wBAAwB,SAAS;IAEjD,OAAO,CAAC,QAAQ,CAAC,UAAU,CAAyD;IACpF,OAAO,CAAC,QAAQ,CAAC,WAAW,CAA0D;IACtF,OAAO,CAAC,QAAQ,CAAC,YAAY,CAA2D;IAExF,OAAO,CAAC,QAAQ,CAAC,mBAAmB,CAAuB;IAC3D,OAAO,CAAC,QAAQ,CAAC,oBAAoB,CAAuB;IAC5D,OAAO,CAAC,QAAQ,CAAC,aAAa,CAAuB;IAErD,OAAO,CAAC,eAAe,CAAyB;IAChD,OAAO,CAAC,cAAc,CAAwB;IAC9C,OAAO,CAAC,WAAW,CAA2E;IAC9F,OAAO,CAAC,YAAY,CAAoD;IACxE,OAAO,CAAC,UAAU,CAAsD;IAExE,OAAO,CAAC,cAAc,CAAoE;IAC1F,OAAO,CAAC,aAAa,CAAuB;IAC5C,OAAO,CAAC,UAAU,CAAK;IAEvB,OAAO,CAAC,QAAQ,CAAC,aAAa,CAAqB;IACnD,OAAO,CAAC,QAAQ,CAAC,aAAa,CAAwC;IACtE,OAAO,CAAC,QAAQ,CAAC,cAAc,CAA8B;IAC7D,OAAO,CAAC,kBAAkB,CAAK;IAE/B,OAAO,CAAC,WAAW,CAAuC;IAInD,MAAM,CAAC,IAAI,EAAE,IAAI,GAAG,UAAU,GAAG,IAAI;IAUrC,KAAK,IAAI,IAAI;IAYb,OAAO,IAAI,IAAI;IAStB,SAAS,CAAC,SAAS,CAAC,OAAO,EAAE,aAAa,GAAG,IAAI;IAmCjD,SAAS,CAAC,YAAY,IAAI,IAAI;IAiB9B,OAAO,CAAC,YAAY;IAgBpB,OAAO,CAAC,kBAAkB;IAc1B,OAAO,CAAC,gBAAgB;IAaxB,OAAO,CAAC,aAAa;IAiFrB,OAAO,CAAC,eAAe;IA4BvB,OAAO,CAAC,YAAY;IA6GpB,OAAO,CAAC,UAAU;IAMlB,OAAO,CAAC,gBAAgB;IAUxB,OAAO,CAAC,qBAAqB;IAO7B,OAAO,CAAC,oBAAoB;IAM5B,OAAO,CAAC,mBAAmB;IAU3B,OAAO,CAAC,sBAAsB;IAa9B,OAAO,CAAC,oBAAoB;IA4B5B,OAAO,CAAC,iBAAiB;CAoC1B"}
1
+ {"version":3,"file":"WebGl2TextRenderer.d.ts","sourceRoot":"","sources":["../../../../src/rendering/webgl2/WebGl2TextRenderer.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,KAAK,UAAU,EAAE,MAAM,4BAA4B,CAAC;AAE7D,OAAO,EAAE,IAAI,EAAE,MAAM,sBAAsB,CAAC;AAI5C,OAAO,EAAE,sBAAsB,EAAE,MAAM,0BAA0B,CAAC;AAKlE,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,iBAAiB,CAAC;AAgErD;;;;;;;;;;;GAWG;AACH,qBAAa,kBAAmB,SAAQ,sBAAsB,CAAC,IAAI,GAAG,UAAU,CAAC;IAC/E;;;;;OAKG;IACH,SAAgB,wBAAwB,SAAS;IAEjD,OAAO,CAAC,QAAQ,CAAC,UAAU,CAAyD;IACpF,OAAO,CAAC,QAAQ,CAAC,WAAW,CAA0D;IACtF,OAAO,CAAC,QAAQ,CAAC,YAAY,CAA2D;IAExF,OAAO,CAAC,QAAQ,CAAC,mBAAmB,CAAuB;IAC3D,OAAO,CAAC,QAAQ,CAAC,oBAAoB,CAAuB;IAC5D,OAAO,CAAC,QAAQ,CAAC,aAAa,CAAuB;IAErD,OAAO,CAAC,eAAe,CAAyB;IAChD,OAAO,CAAC,cAAc,CAAwB;IAC9C,OAAO,CAAC,WAAW,CAA2E;IAC9F,OAAO,CAAC,YAAY,CAAoD;IACxE,OAAO,CAAC,UAAU,CAAsD;IAExE,OAAO,CAAC,cAAc,CAAoE;IAC1F,OAAO,CAAC,aAAa,CAAuB;IAC5C,OAAO,CAAC,UAAU,CAAK;IAEvB,OAAO,CAAC,QAAQ,CAAC,aAAa,CAAqB;IACnD,OAAO,CAAC,QAAQ,CAAC,aAAa,CAAwC;IACtE,OAAO,CAAC,QAAQ,CAAC,cAAc,CAA8B;IAC7D,OAAO,CAAC,kBAAkB,CAAK;IAE/B,OAAO,CAAC,WAAW,CAAuC;IAInD,MAAM,CAAC,IAAI,EAAE,IAAI,GAAG,UAAU,GAAG,IAAI;IAUrC,KAAK,IAAI,IAAI;IAYb,OAAO,IAAI,IAAI;IAStB,SAAS,CAAC,SAAS,CAAC,OAAO,EAAE,aAAa,GAAG,IAAI;IA2CjD,SAAS,CAAC,YAAY,IAAI,IAAI;IAiB9B,OAAO,CAAC,YAAY;IAgBpB,OAAO,CAAC,kBAAkB;IAc1B,OAAO,CAAC,gBAAgB;IAaxB,OAAO,CAAC,aAAa;IAiFrB,OAAO,CAAC,eAAe;IAiCvB,OAAO,CAAC,YAAY;IAoIpB,OAAO,CAAC,UAAU;IAMlB,OAAO,CAAC,gBAAgB;IAUxB,OAAO,CAAC,qBAAqB;IAO7B,OAAO,CAAC,oBAAoB;IAM5B,OAAO,CAAC,mBAAmB;IAU3B,OAAO,CAAC,sBAAsB;IAa9B,OAAO,CAAC,oBAAoB;IA4B5B,OAAO,CAAC,iBAAiB;CAoC1B"}
@@ -4,11 +4,11 @@ import '../plan/RenderCommand.js';
4
4
  import '../../core/SceneNode.js';
5
5
  import '../../math/Size.js';
6
6
  import '../../math/Rectangle.js';
7
+ import { BufferTypes, BufferUsage, RenderingPrimitives } from '../types.js';
7
8
  import '../plan/RenderScope.js';
8
9
  import '../texture/RenderTexture.js';
9
10
  import '../texture/Texture.js';
10
11
  import '../pass/RenderPassDescriptor.js';
11
- import { BufferTypes, BufferUsage, RenderingPrimitives } from '../types.js';
12
12
  import '../View.js';
13
13
  import { Text } from '../text/Text.js';
14
14
  import { AbstractWebGl2Renderer } from './AbstractWebGl2Renderer.js';
@@ -42,12 +42,18 @@ import { WebGl2VertexArrayObject } from './WebGl2VertexArrayObject.js';
42
42
  // to convert px → UV space.
43
43
  const nodeTexels = 10;
44
44
  const nodeFloats = nodeTexels * 4; // 40 floats per node
45
- // Per-vertex layout (20 bytes — same stride as WebGl2MeshRenderer):
46
- // a_position : vec2 f32 (offset 0, 8 bytes)
45
+ // Per-vertex layout (28 bytes):
46
+ // a_position : vec2 f32 (offset 0, 8 bytes) ← WORLD space (CPU-transformed)
47
47
  // a_texcoord : vec2 f32 (offset 8, 8 bytes)
48
- // a_nodeIndex: float f32 (offset 16, 4 bytes) ← was a_color u8x4 in mesh.vert
49
- const vertexStrideBytes = 20;
50
- const vertexStrideWords = vertexStrideBytes / 4; // 5 floats per vertex
48
+ // a_nodeIndex: float f32 (offset 16, 4 bytes) ← row into the data texture (style lookup)
49
+ // a_gradUV : vec2 f32 (offset 20, 8 bytes) ← normalised gradient UV (CPU-computed)
50
+ //
51
+ // The vertex shader does NOT read the per-node data texture: the world transform and
52
+ // gradient UV are computed on the CPU here and uploaded per vertex. This sidesteps an
53
+ // ANGLE/D3D11 bug where a vertex texelFetch of the RGBA32F data texture returns RGB as
54
+ // 0 when an RGBA8 atlas is bound, collapsing the transform and hiding bitmap text.
55
+ const vertexStrideBytes = 28;
56
+ const vertexStrideWords = vertexStrideBytes / 4; // 7 floats per vertex
51
57
  const initialVertexCapacity = 256;
52
58
  const initialIndexCapacity = 384;
53
59
  const initialNodeCapacity = 32;
@@ -136,8 +142,14 @@ class WebGl2TextRenderer extends AbstractWebGl2Renderer {
136
142
  .addIndex(indexBuffer)
137
143
  .addAttribute(vertexBuffer, this._sdfShader.getAttribute('a_position'), gl.FLOAT, false, vertexStrideBytes, 0)
138
144
  .addAttribute(vertexBuffer, this._sdfShader.getAttribute('a_texcoord'), gl.FLOAT, false, vertexStrideBytes, 8)
139
- .addAttribute(vertexBuffer, this._sdfShader.getAttribute('a_nodeIndex'), gl.FLOAT, false, vertexStrideBytes, 16)
140
- .connect(this._createVaoRuntime(gl, vaoHandle));
145
+ .addAttribute(vertexBuffer, this._sdfShader.getAttribute('a_nodeIndex'), gl.FLOAT, false, vertexStrideBytes, 16);
146
+ // a_gradUV is bound only when the program declares it. The real shaders always
147
+ // do; reduced test stand-in vertex shaders may omit it (an unused attribute is
148
+ // optimised out and would not get a location).
149
+ if (this._sdfShader.attributes.has('a_gradUV')) {
150
+ vao.addAttribute(vertexBuffer, this._sdfShader.getAttribute('a_gradUV'), gl.FLOAT, false, vertexStrideBytes, 20);
151
+ }
152
+ vao.connect(this._createVaoRuntime(gl, vaoHandle));
141
153
  const nodeDataTexture = this._createNodeDataTexture(gl, initialNodeCapacity);
142
154
  this._connection = { gl, buffers, vertexBuffer, indexBuffer, vao, nodeDataTexture, nodeDataCapacity: initialNodeCapacity };
143
155
  }
@@ -278,7 +290,12 @@ class WebGl2TextRenderer extends AbstractWebGl2Renderer {
278
290
  c.nodeDataTexture = this._createNodeDataTexture(gl, cap);
279
291
  c.nodeDataCapacity = cap;
280
292
  }
281
- gl.activeTexture(gl.TEXTURE1);
293
+ // Route the unit switch through the backend so its texture-unit cache stays
294
+ // in sync. A raw gl.activeTexture here would leave the cache reading unit 0,
295
+ // and the atlas bindTexture(_, 0) in _drawBatches would then skip its own
296
+ // switch and bind the atlas to unit 1 — leaving the SDF sampler (unit 0)
297
+ // empty and the text invisible whenever it is the first draw of a frame.
298
+ this.getBackend().setActiveTextureUnit(1);
282
299
  gl.bindTexture(gl.TEXTURE_2D, c.nodeDataTexture);
283
300
  gl.texSubImage2D(gl.TEXTURE_2D, 0, 0, 0, // x, y offset
284
301
  nodeTexels, nodeCount, gl.RGBA, gl.FLOAT, this._nodeDataArray.subarray(0, nodeCount * nodeFloats));
@@ -333,15 +350,37 @@ class WebGl2TextRenderer extends AbstractWebGl2Renderer {
333
350
  const { quads: batch, nodeIndex } = quads[k];
334
351
  const qVerts = batch.quadCount * 4;
335
352
  const { vertices, uvs, indices } = batch;
353
+ // Read this node's transform + gradient bounds back from the packed data array
354
+ // (same layout as _packNodeData) so we can transform vertices on the CPU. The
355
+ // vertex shader no longer reads the data texture; see the layout comment above.
356
+ const nb = nodeIndex * nodeFloats;
357
+ // In-bounds: `_packNodeData` wrote nodeFloats values at `nb` for every node index.
358
+ const a = this._nodeDataArray[nb + 0]; // texel0.x
359
+ const cc = this._nodeDataArray[nb + 1]; // texel0.y
360
+ const tx = this._nodeDataArray[nb + 3]; // texel0.w
361
+ const b = this._nodeDataArray[nb + 4]; // texel1.x
362
+ const dd = this._nodeDataArray[nb + 5]; // texel1.y
363
+ const ty = this._nodeDataArray[nb + 7]; // texel1.w
364
+ const boundsMinX = this._nodeDataArray[nb + 36]; // texel9.x
365
+ const boundsMinY = this._nodeDataArray[nb + 37]; // texel9.y
366
+ const boundsW = this._nodeDataArray[nb + 38]; // texel9.z
367
+ const boundsH = this._nodeDataArray[nb + 39]; // texel9.w
368
+ const hasGradBounds = boundsW > 0 && boundsH > 0;
336
369
  for (let v = 0; v < qVerts; v++) {
337
370
  const w = (vOffset + v) * vertexStrideWords;
338
371
  const vp = v * 2;
339
372
  // In-bounds: `vp + 1 < qVerts * 2`; `vertices`/`uvs` carry 2 floats per quad vertex.
340
- this._float32View[w + 0] = vertices[vp];
341
- this._float32View[w + 1] = vertices[vp + 1];
373
+ const lx = vertices[vp];
374
+ const ly = vertices[vp + 1];
375
+ // world = M · (lx, ly, 1) with M = column-major [a c 0 | b d 0 | tx ty 1].
376
+ this._float32View[w + 0] = a * lx + b * ly + tx;
377
+ this._float32View[w + 1] = cc * lx + dd * ly + ty;
342
378
  this._float32View[w + 2] = uvs[vp];
343
379
  this._float32View[w + 3] = uvs[vp + 1];
344
380
  this._float32View[w + 4] = nodeIndex;
381
+ // Normalised gradient UV across the text block (matches the old vertex math).
382
+ this._float32View[w + 5] = hasGradBounds ? Math.min(1, Math.max(0, (lx - boundsMinX) / boundsW)) : 0;
383
+ this._float32View[w + 6] = hasGradBounds ? Math.min(1, Math.max(0, (ly - boundsMinY) / boundsH)) : 0;
345
384
  }
346
385
  for (let x = 0; x < indices.length; x++) {
347
386
  // In-bounds: `x` < `indices.length`.