@codexo/exojs 0.12.0 → 0.13.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 (101) hide show
  1. package/CHANGELOG.md +125 -0
  2. package/dist/esm/core/BuildInfo.js +2 -2
  3. package/dist/esm/extensions/Extension.d.ts +39 -7
  4. package/dist/esm/extensions/Extension.d.ts.map +1 -1
  5. package/dist/esm/extensions/ExtensionRegistry.d.ts.map +1 -1
  6. package/dist/esm/extensions/ExtensionRegistry.js.map +1 -1
  7. package/dist/esm/extensions/snapshot.d.ts +12 -2
  8. package/dist/esm/extensions/snapshot.d.ts.map +1 -1
  9. package/dist/esm/extensions/snapshot.js +43 -14
  10. package/dist/esm/extensions/snapshot.js.map +1 -1
  11. package/dist/esm/index.js +8 -0
  12. package/dist/esm/index.js.map +1 -1
  13. package/dist/esm/rendering/Drawable.d.ts +23 -0
  14. package/dist/esm/rendering/Drawable.d.ts.map +1 -1
  15. package/dist/esm/rendering/Drawable.js +34 -0
  16. package/dist/esm/rendering/Drawable.js.map +1 -1
  17. package/dist/esm/rendering/coreRendererBindings.d.ts.map +1 -1
  18. package/dist/esm/rendering/coreRendererBindings.js +22 -0
  19. package/dist/esm/rendering/coreRendererBindings.js.map +1 -1
  20. package/dist/esm/rendering/index.d.ts +13 -0
  21. package/dist/esm/rendering/index.d.ts.map +1 -1
  22. package/dist/esm/rendering/pixelSnap.d.ts +219 -0
  23. package/dist/esm/rendering/pixelSnap.d.ts.map +1 -0
  24. package/dist/esm/rendering/pixelSnap.js +186 -0
  25. package/dist/esm/rendering/pixelSnap.js.map +1 -0
  26. package/dist/esm/rendering/plan/RenderPlanPlayer.d.ts.map +1 -1
  27. package/dist/esm/rendering/plan/RenderPlanPlayer.js +21 -1
  28. package/dist/esm/rendering/plan/RenderPlanPlayer.js.map +1 -1
  29. package/dist/esm/rendering/sprite/NineSliceSprite.d.ts +69 -0
  30. package/dist/esm/rendering/sprite/NineSliceSprite.d.ts.map +1 -0
  31. package/dist/esm/rendering/sprite/NineSliceSprite.js +207 -0
  32. package/dist/esm/rendering/sprite/NineSliceSprite.js.map +1 -0
  33. package/dist/esm/rendering/sprite/RepeatingSprite.d.ts +120 -0
  34. package/dist/esm/rendering/sprite/RepeatingSprite.d.ts.map +1 -0
  35. package/dist/esm/rendering/sprite/RepeatingSprite.js +279 -0
  36. package/dist/esm/rendering/sprite/RepeatingSprite.js.map +1 -0
  37. package/dist/esm/rendering/sprite/Sprite.d.ts +13 -0
  38. package/dist/esm/rendering/sprite/Sprite.d.ts.map +1 -1
  39. package/dist/esm/rendering/sprite/Sprite.js +23 -0
  40. package/dist/esm/rendering/sprite/Sprite.js.map +1 -1
  41. package/dist/esm/rendering/sprite/nineSlice.d.ts +53 -0
  42. package/dist/esm/rendering/sprite/nineSlice.d.ts.map +1 -0
  43. package/dist/esm/rendering/sprite/nineSlice.js +340 -0
  44. package/dist/esm/rendering/sprite/nineSlice.js.map +1 -0
  45. package/dist/esm/rendering/sprite/repeatingSpritePlan.d.ts +57 -0
  46. package/dist/esm/rendering/sprite/repeatingSpritePlan.d.ts.map +1 -0
  47. package/dist/esm/rendering/sprite/repeatingSpritePlan.js +156 -0
  48. package/dist/esm/rendering/sprite/repeatingSpritePlan.js.map +1 -0
  49. package/dist/esm/rendering/texture/TextureRegion.d.ts +100 -0
  50. package/dist/esm/rendering/texture/TextureRegion.d.ts.map +1 -0
  51. package/dist/esm/rendering/texture/TextureRegion.js +144 -0
  52. package/dist/esm/rendering/texture/TextureRegion.js.map +1 -0
  53. package/dist/esm/rendering/texture/repeat.d.ts +96 -0
  54. package/dist/esm/rendering/texture/repeat.d.ts.map +1 -0
  55. package/dist/esm/rendering/texture/repeat.js +158 -0
  56. package/dist/esm/rendering/texture/repeat.js.map +1 -0
  57. package/dist/esm/rendering/webgl2/WebGl2Backend.d.ts +20 -0
  58. package/dist/esm/rendering/webgl2/WebGl2Backend.d.ts.map +1 -1
  59. package/dist/esm/rendering/webgl2/WebGl2Backend.js +31 -2
  60. package/dist/esm/rendering/webgl2/WebGl2Backend.js.map +1 -1
  61. package/dist/esm/rendering/webgl2/WebGl2NineSliceSpriteRenderer.d.ts +32 -0
  62. package/dist/esm/rendering/webgl2/WebGl2NineSliceSpriteRenderer.d.ts.map +1 -0
  63. package/dist/esm/rendering/webgl2/WebGl2NineSliceSpriteRenderer.js +308 -0
  64. package/dist/esm/rendering/webgl2/WebGl2NineSliceSpriteRenderer.js.map +1 -0
  65. package/dist/esm/rendering/webgl2/WebGl2RepeatingSpriteRenderer.d.ts +49 -0
  66. package/dist/esm/rendering/webgl2/WebGl2RepeatingSpriteRenderer.d.ts.map +1 -0
  67. package/dist/esm/rendering/webgl2/WebGl2RepeatingSpriteRenderer.js +535 -0
  68. package/dist/esm/rendering/webgl2/WebGl2RepeatingSpriteRenderer.js.map +1 -0
  69. package/dist/esm/rendering/webgl2/WebGl2SpriteRenderer.d.ts +9 -0
  70. package/dist/esm/rendering/webgl2/WebGl2SpriteRenderer.d.ts.map +1 -1
  71. package/dist/esm/rendering/webgl2/WebGl2SpriteRenderer.js +22 -2
  72. package/dist/esm/rendering/webgl2/WebGl2SpriteRenderer.js.map +1 -1
  73. package/dist/esm/rendering/webgpu/WebGpuBackend.d.ts +21 -1
  74. package/dist/esm/rendering/webgpu/WebGpuBackend.d.ts.map +1 -1
  75. package/dist/esm/rendering/webgpu/WebGpuBackend.js +29 -2
  76. package/dist/esm/rendering/webgpu/WebGpuBackend.js.map +1 -1
  77. package/dist/esm/rendering/webgpu/WebGpuNineSliceSpriteRenderer.d.ts +36 -0
  78. package/dist/esm/rendering/webgpu/WebGpuNineSliceSpriteRenderer.d.ts.map +1 -0
  79. package/dist/esm/rendering/webgpu/WebGpuNineSliceSpriteRenderer.js +358 -0
  80. package/dist/esm/rendering/webgpu/WebGpuNineSliceSpriteRenderer.js.map +1 -0
  81. package/dist/esm/rendering/webgpu/WebGpuRepeatingSpriteRenderer.d.ts +52 -0
  82. package/dist/esm/rendering/webgpu/WebGpuRepeatingSpriteRenderer.d.ts.map +1 -0
  83. package/dist/esm/rendering/webgpu/WebGpuRepeatingSpriteRenderer.js +556 -0
  84. package/dist/esm/rendering/webgpu/WebGpuRepeatingSpriteRenderer.js.map +1 -0
  85. package/dist/esm/rendering/webgpu/WebGpuSpriteRenderer.d.ts +9 -0
  86. package/dist/esm/rendering/webgpu/WebGpuSpriteRenderer.d.ts.map +1 -1
  87. package/dist/esm/rendering/webgpu/WebGpuSpriteRenderer.js +22 -2
  88. package/dist/esm/rendering/webgpu/WebGpuSpriteRenderer.js.map +1 -1
  89. package/dist/esm/rendering/webgpu/WebGpuTransformStorage.d.ts +3 -2
  90. package/dist/esm/rendering/webgpu/WebGpuTransformStorage.d.ts.map +1 -1
  91. package/dist/esm/rendering/webgpu/WebGpuTransformStorage.js +4 -4
  92. package/dist/esm/rendering/webgpu/WebGpuTransformStorage.js.map +1 -1
  93. package/dist/esm/rendering.d.ts +1 -0
  94. package/dist/esm/rendering.d.ts.map +1 -1
  95. package/dist/esm/resources/Loader.d.ts +36 -8
  96. package/dist/esm/resources/Loader.d.ts.map +1 -1
  97. package/dist/esm/resources/Loader.js +30 -11
  98. package/dist/esm/resources/Loader.js.map +1 -1
  99. package/dist/exo.esm.js +3449 -59
  100. package/dist/exo.esm.js.map +1 -1
  101. package/package.json +10 -3
@@ -0,0 +1,308 @@
1
+ import { Shader } from '../shader/Shader.js';
2
+ import { RenderingPrimitives, BufferTypes, BufferUsage } from '../types.js';
3
+ import { AbstractWebGl2Renderer } from './AbstractWebGl2Renderer.js';
4
+ import { WebGl2RenderBuffer } from './WebGl2RenderBuffer.js';
5
+ import { createWebGl2ShaderProgram } from './WebGl2ShaderProgram.js';
6
+ import { WebGl2VertexArrayObject } from './WebGl2VertexArrayObject.js';
7
+
8
+ const nineSliceVertexSource = `#version 300 es
9
+ precision lowp float;
10
+ precision highp int;
11
+
12
+ // Per-instance attributes (divisor = 1). One entry per nine-slice quad.
13
+ // gl_VertexID 0..3 selects which corner of the quad this invocation computes.
14
+ layout(location = 0) in vec4 a_quadBounds; // x0, y0, x1, y1 (local space)
15
+ layout(location = 1) in vec4 a_uvBounds; // u0, v0, u1, v1 (normalised, flipY pre-applied)
16
+ layout(location = 2) in vec4 a_color; // RGBA tint
17
+ layout(location = 3) in uint a_nodeIndex; // row into the shared transform buffer
18
+
19
+ uniform mat3 u_projection;
20
+ uniform sampler2D u_transforms; // shared per-frame transform buffer (3 texels/row)
21
+
22
+ out vec2 v_texcoord;
23
+ out vec4 v_color;
24
+
25
+ void main(void) {
26
+ // gl_VertexID 0..3 -> corner: 0=TL, 1=TR, 2=BL, 3=BR (TRIANGLE_STRIP order)
27
+ int vid = gl_VertexID;
28
+ int cornerX = vid & 1;
29
+ int cornerY = (vid >> 1) & 1;
30
+
31
+ float localX = (cornerX == 0) ? a_quadBounds.x : a_quadBounds.z;
32
+ float localY = (cornerY == 0) ? a_quadBounds.y : a_quadBounds.w;
33
+
34
+ int row = int(a_nodeIndex);
35
+ vec4 m0 = texelFetch(u_transforms, ivec2(0, row), 0); // a, b, c, d
36
+ vec4 m1 = texelFetch(u_transforms, ivec2(1, row), 0); // tx, ty, 0, 0
37
+
38
+ float worldX = (m0.x * localX) + (m0.y * localY) + m1.x;
39
+ float worldY = (m0.z * localX) + (m0.w * localY) + m1.y;
40
+
41
+ gl_Position = vec4((u_projection * vec3(worldX, worldY, 1.0)).xy, 0.0, 1.0);
42
+
43
+ float u = (cornerX == 0) ? a_uvBounds.x : a_uvBounds.z;
44
+ float v = (cornerY == 0) ? a_uvBounds.y : a_uvBounds.w;
45
+ v_texcoord = vec2(u, v);
46
+
47
+ v_color = vec4(a_color.rgb * a_color.a, a_color.a);
48
+ }`;
49
+ const nineSliceFragmentSource = `#version 300 es
50
+ precision lowp float;
51
+
52
+ uniform sampler2D u_texture;
53
+
54
+ in vec2 v_texcoord;
55
+ in vec4 v_color;
56
+
57
+ layout(location = 0) out vec4 fragColor;
58
+
59
+ void main(void) {
60
+ vec4 sampleColor = texture(u_texture, v_texcoord);
61
+ fragColor = sampleColor * v_color;
62
+ }`;
63
+ const instanceStrideBytes = 32;
64
+ const wordsPerInstance = instanceStrideBytes / Uint32Array.BYTES_PER_ELEMENT;
65
+ const transformTextureUnit = 1;
66
+ /** Instanced renderer for {@link NineSliceSprite} using WebGL2. */
67
+ class WebGl2NineSliceSpriteRenderer extends AbstractWebGl2Renderer {
68
+ _shader;
69
+ _batchSize;
70
+ _instanceData;
71
+ _instanceFloat32;
72
+ _instanceUint32;
73
+ _transformUnitScratch = new Int32Array([transformTextureUnit]);
74
+ _quadIndex = 0;
75
+ _maxNodeIndex = 0;
76
+ _currentBlendMode = null;
77
+ _currentTexture = null;
78
+ _currentView = null;
79
+ _currentViewId = -1;
80
+ _instanceBuffer = null;
81
+ _vao = null;
82
+ _connection = null;
83
+ constructor(batchSize) {
84
+ super();
85
+ this._batchSize = batchSize;
86
+ this._shader = new Shader(nineSliceVertexSource, nineSliceFragmentSource);
87
+ this._instanceData = new ArrayBuffer(batchSize * instanceStrideBytes);
88
+ this._instanceFloat32 = new Float32Array(this._instanceData);
89
+ this._instanceUint32 = new Uint32Array(this._instanceData);
90
+ }
91
+ render(sprite) {
92
+ const backend = this.getBackend();
93
+ let quads = sprite.quads;
94
+ if (sprite.pixelSnapMode === 'geometry') {
95
+ const snap = backend._getSnapPixelSize();
96
+ quads = sprite.getRenderQuads(backend.view, snap.width, snap.height);
97
+ }
98
+ if (quads.length === 0) {
99
+ return;
100
+ }
101
+ const texture = sprite.texture;
102
+ const blendMode = sprite.blendMode;
103
+ const tintRgba = sprite.tint.toRgba();
104
+ const command = backend.activeDrawCommand;
105
+ const nodeIndex = command !== null ? command.nodeIndex : backend._pushTransform(sprite);
106
+ const textureChanged = this._currentTexture !== null && texture !== this._currentTexture;
107
+ const blendModeChanged = blendMode !== this._currentBlendMode;
108
+ // If the batch would overflow with current quads + new quads, flush first.
109
+ if (this._quadIndex > 0) {
110
+ if (blendModeChanged || textureChanged || this._quadIndex + quads.length > this._batchSize) {
111
+ this.flush();
112
+ }
113
+ }
114
+ // Establish blend and texture state (may have been cleared by flush).
115
+ if (this._currentBlendMode === null || this._currentBlendMode !== blendMode) {
116
+ this._currentBlendMode = blendMode;
117
+ backend.setBlendMode(blendMode);
118
+ }
119
+ if (this._currentTexture !== texture) {
120
+ this._currentTexture = texture;
121
+ backend.bindTexture(texture, 0);
122
+ }
123
+ // A single sprite may produce more quads than the fixed batch buffer can hold.
124
+ // Process in [start, end) chunks, flushing between each. Iterating by index
125
+ // range (rather than `quads.slice(...)`) keeps the overflow path allocation-free.
126
+ let offset = 0;
127
+ while (offset < quads.length) {
128
+ const chunkEnd = Math.min(offset + this._batchSize, quads.length);
129
+ this._writeQuadChunk(quads, offset, chunkEnd, texture, tintRgba, nodeIndex);
130
+ offset = chunkEnd;
131
+ if (offset < quads.length) {
132
+ this.flush();
133
+ // Re-establish state after flush
134
+ this._currentBlendMode = blendMode;
135
+ backend.setBlendMode(blendMode);
136
+ this._currentTexture = texture;
137
+ backend.bindTexture(texture, 0);
138
+ }
139
+ }
140
+ }
141
+ _writeQuadChunk(quads, start, end, texture, tintRgba, nodeIndex) {
142
+ const f32 = this._instanceFloat32;
143
+ const u32 = this._instanceUint32;
144
+ const flipY = texture.flipY;
145
+ for (let i = start; i < end; i++) {
146
+ const q = quads[i];
147
+ const idx = this._quadIndex * wordsPerInstance;
148
+ f32[idx + 0] = q.x0;
149
+ f32[idx + 1] = q.y0;
150
+ f32[idx + 2] = q.x1;
151
+ f32[idx + 3] = q.y1;
152
+ const uMin = (q.u0 * 0xffff) & 0xffff;
153
+ const uMax = (q.u1 * 0xffff) & 0xffff;
154
+ const v0Raw = (q.v0 * 0xffff) & 0xffff;
155
+ const v1Raw = (q.v1 * 0xffff) & 0xffff;
156
+ const vMin = flipY ? v1Raw : v0Raw;
157
+ const vMax = flipY ? v0Raw : v1Raw;
158
+ u32[idx + 4] = uMin | (vMin << 16);
159
+ u32[idx + 5] = uMax | (vMax << 16);
160
+ u32[idx + 6] = tintRgba;
161
+ u32[idx + 7] = nodeIndex >>> 0;
162
+ this._quadIndex++;
163
+ if (nodeIndex > this._maxNodeIndex) {
164
+ this._maxNodeIndex = nodeIndex;
165
+ }
166
+ }
167
+ }
168
+ flush() {
169
+ const backend = this.getBackendOrNull();
170
+ const instanceBuffer = this._instanceBuffer;
171
+ const vao = this._vao;
172
+ if (this._quadIndex === 0 || backend === null || instanceBuffer === null || vao === null) {
173
+ this._quadIndex = 0;
174
+ this._maxNodeIndex = 0;
175
+ return;
176
+ }
177
+ const view = backend.view;
178
+ if (this._currentView !== view || this._currentViewId !== view.updateId) {
179
+ this._currentView = view;
180
+ this._currentViewId = view.updateId;
181
+ this._shader.getUniform('u_projection').setValue(view.getTransform().toArray(false));
182
+ }
183
+ if (this._currentTexture !== null) {
184
+ this._shader.getUniform('u_texture').setValue(new Int32Array([0]));
185
+ }
186
+ backend.bindTransformBufferTexture(transformTextureUnit, this._maxNodeIndex + 1);
187
+ this._shader.getUniform('u_transforms').setValue(this._transformUnitScratch);
188
+ this._shader.sync();
189
+ backend.bindVertexArrayObject(vao);
190
+ instanceBuffer.upload(this._instanceFloat32.subarray(0, this._quadIndex * wordsPerInstance));
191
+ vao.drawInstanced(4, 0, this._quadIndex, RenderingPrimitives.TriangleStrip);
192
+ backend.stats.batches++;
193
+ backend.stats.drawCalls++;
194
+ this._quadIndex = 0;
195
+ this._maxNodeIndex = 0;
196
+ }
197
+ onConnect(backend) {
198
+ const gl = backend.context;
199
+ this._shader.connect(createWebGl2ShaderProgram(gl));
200
+ this._connection = this._createConnection(gl);
201
+ this._instanceBuffer = new WebGl2RenderBuffer(BufferTypes.ArrayBuffer, this._instanceData, BufferUsage.DynamicDraw).connect(this._createBufferRuntime(this._connection));
202
+ this._shader.sync();
203
+ this._vao = new WebGl2VertexArrayObject(RenderingPrimitives.TriangleStrip)
204
+ .addAttribute(this._instanceBuffer, this._shader.getAttribute('a_quadBounds'), gl.FLOAT, false, instanceStrideBytes, 0, false, 1)
205
+ .addAttribute(this._instanceBuffer, this._shader.getAttribute('a_uvBounds'), gl.UNSIGNED_SHORT, true, instanceStrideBytes, 16, false, 1)
206
+ .addAttribute(this._instanceBuffer, this._shader.getAttribute('a_color'), gl.UNSIGNED_BYTE, true, instanceStrideBytes, 24, false, 1)
207
+ .addAttribute(this._instanceBuffer, this._shader.getAttribute('a_nodeIndex'), gl.UNSIGNED_INT, false, instanceStrideBytes, 28, true, 1)
208
+ .connect(this._createVaoRuntime(this._connection));
209
+ }
210
+ onDisconnect() {
211
+ this._shader.disconnect();
212
+ this._instanceBuffer?.destroy();
213
+ this._instanceBuffer = null;
214
+ this._vao?.destroy();
215
+ this._vao = null;
216
+ this._connection = null;
217
+ this._currentBlendMode = null;
218
+ this._currentTexture = null;
219
+ this._currentView = null;
220
+ this._currentViewId = -1;
221
+ this._quadIndex = 0;
222
+ this._maxNodeIndex = 0;
223
+ }
224
+ destroy() {
225
+ this.disconnect();
226
+ this._shader.destroy();
227
+ }
228
+ _createConnection(gl) {
229
+ const vaoHandle = gl.createVertexArray();
230
+ if (vaoHandle === null) {
231
+ throw new Error('WebGl2NineSliceSpriteRenderer: could not create vertex array object.');
232
+ }
233
+ return { gl, buffers: new Map(), vaoHandle };
234
+ }
235
+ _createBufferRuntime(connection) {
236
+ const handle = connection.gl.createBuffer();
237
+ if (handle === null) {
238
+ throw new Error('WebGl2NineSliceSpriteRenderer: could not create render buffer.');
239
+ }
240
+ return {
241
+ bind: (buffer) => {
242
+ connection.gl.bindBuffer(buffer.type, handle);
243
+ },
244
+ upload: (buffer, offset) => {
245
+ const gl = connection.gl;
246
+ const data = buffer.data;
247
+ const state = connection.buffers.get(buffer);
248
+ gl.bindBuffer(buffer.type, handle);
249
+ if (state && state.dataByteLength >= data.byteLength) {
250
+ gl.bufferSubData(buffer.type, offset, data);
251
+ state.dataByteLength = data.byteLength;
252
+ }
253
+ else {
254
+ gl.bufferData(buffer.type, data, buffer.usage);
255
+ connection.buffers.set(buffer, { handle, dataByteLength: data.byteLength });
256
+ }
257
+ },
258
+ destroy: (buffer) => {
259
+ connection.gl.deleteBuffer(handle);
260
+ connection.buffers.delete(buffer);
261
+ buffer.disconnect();
262
+ },
263
+ };
264
+ }
265
+ _createVaoRuntime(connection) {
266
+ let appliedVersion = -1;
267
+ return {
268
+ bind: (vao) => {
269
+ const gl = connection.gl;
270
+ gl.bindVertexArray(connection.vaoHandle);
271
+ if (appliedVersion !== vao.version) {
272
+ let lastBuffer = null;
273
+ for (const attribute of vao.attributes) {
274
+ if (lastBuffer !== attribute.buffer) {
275
+ attribute.buffer.bind();
276
+ lastBuffer = attribute.buffer;
277
+ }
278
+ if (attribute.integer) {
279
+ gl.vertexAttribIPointer(attribute.location, attribute.size, attribute.type, attribute.stride, attribute.start);
280
+ }
281
+ else {
282
+ gl.vertexAttribPointer(attribute.location, attribute.size, attribute.type, attribute.normalized, attribute.stride, attribute.start);
283
+ }
284
+ gl.enableVertexAttribArray(attribute.location);
285
+ gl.vertexAttribDivisor(attribute.location, attribute.divisor);
286
+ }
287
+ appliedVersion = vao.version;
288
+ }
289
+ },
290
+ unbind: () => {
291
+ connection.gl.bindVertexArray(null);
292
+ },
293
+ draw: (_vao, size, start, type) => {
294
+ connection.gl.drawArrays(type, start, size);
295
+ },
296
+ drawInstanced: (_vao, count, start, instanceCount, type) => {
297
+ connection.gl.drawArraysInstanced(type, start, count, instanceCount);
298
+ },
299
+ destroy: (vao) => {
300
+ connection.gl.deleteVertexArray(connection.vaoHandle);
301
+ vao.disconnect();
302
+ },
303
+ };
304
+ }
305
+ }
306
+
307
+ export { WebGl2NineSliceSpriteRenderer };
308
+ //# sourceMappingURL=WebGl2NineSliceSpriteRenderer.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"WebGl2NineSliceSpriteRenderer.js","sources":["../../../../../src/rendering/webgl2/WebGl2NineSliceSpriteRenderer.ts"],"sourcesContent":[null],"names":[],"mappings":"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"}
@@ -0,0 +1,49 @@
1
+ import type { RepeatingSprite } from '#rendering/sprite/RepeatingSprite';
2
+ import { AbstractWebGl2Renderer } from './AbstractWebGl2Renderer';
3
+ import type { WebGl2Backend } from './WebGl2Backend';
4
+ /** Instanced renderer for {@link RepeatingSprite} using WebGL2. Handles both shader and geometry paths internally. */
5
+ export declare class WebGl2RepeatingSpriteRenderer extends AbstractWebGl2Renderer<RepeatingSprite> {
6
+ private readonly _shaderPathShader;
7
+ private readonly _geoPathShader;
8
+ private readonly _batchSize;
9
+ private readonly _shaderData;
10
+ private readonly _shaderF32;
11
+ private readonly _shaderU32;
12
+ private _shaderBuf;
13
+ private _shaderVao;
14
+ private _shaderQuadCount;
15
+ private readonly _geoData;
16
+ private readonly _geoF32;
17
+ private readonly _geoU32;
18
+ private _geoBuf;
19
+ private _geoVao;
20
+ private _geoQuadCount;
21
+ private _samplers;
22
+ private _maxNodeIndex;
23
+ private _currentTexture;
24
+ private _currentBlendMode;
25
+ private _currentModeX;
26
+ private _currentModeY;
27
+ private _currentPath;
28
+ private _connection;
29
+ private readonly _transformUnitScratch;
30
+ private readonly _snapBounds;
31
+ private _currentView;
32
+ private _currentViewId;
33
+ constructor(batchSize: number);
34
+ render(sprite: RepeatingSprite): void;
35
+ private _writeShaderInstance;
36
+ private _writeGeoQuads;
37
+ flush(): void;
38
+ private _flushShaderBatch;
39
+ private _flushGeoBatch;
40
+ private _resetBatchState;
41
+ private _getOrCreateSampler;
42
+ protected onConnect(backend: WebGl2Backend): void;
43
+ protected onDisconnect(): void;
44
+ destroy(): void;
45
+ private _createConnection;
46
+ private _createBufRuntime;
47
+ private _createVaoRuntime;
48
+ }
49
+ //# sourceMappingURL=WebGl2RepeatingSpriteRenderer.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"WebGl2RepeatingSpriteRenderer.d.ts","sourceRoot":"","sources":["../../../../src/rendering/webgl2/WebGl2RepeatingSpriteRenderer.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,mCAAmC,CAAC;AAOzE,OAAO,EAAE,sBAAsB,EAAE,MAAM,0BAA0B,CAAC;AAClE,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,iBAAiB,CAAC;AA+IrD,sHAAsH;AACtH,qBAAa,6BAA8B,SAAQ,sBAAsB,CAAC,eAAe,CAAC;IACxF,OAAO,CAAC,QAAQ,CAAC,iBAAiB,CAAS;IAC3C,OAAO,CAAC,QAAQ,CAAC,cAAc,CAAS;IACxC,OAAO,CAAC,QAAQ,CAAC,UAAU,CAAS;IAGpC,OAAO,CAAC,QAAQ,CAAC,WAAW,CAAc;IAC1C,OAAO,CAAC,QAAQ,CAAC,UAAU,CAAe;IAC1C,OAAO,CAAC,QAAQ,CAAC,UAAU,CAAc;IACzC,OAAO,CAAC,UAAU,CAAmC;IACrD,OAAO,CAAC,UAAU,CAAwC;IAC1D,OAAO,CAAC,gBAAgB,CAAK;IAG7B,OAAO,CAAC,QAAQ,CAAC,QAAQ,CAAc;IACvC,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAe;IACvC,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAc;IACtC,OAAO,CAAC,OAAO,CAAmC;IAClD,OAAO,CAAC,OAAO,CAAwC;IACvD,OAAO,CAAC,aAAa,CAAK;IAG1B,OAAO,CAAC,SAAS,CAAmC;IAGpD,OAAO,CAAC,aAAa,CAAK;IAC1B,OAAO,CAAC,eAAe,CAAwC;IAC/D,OAAO,CAAC,iBAAiB,CAA2B;IACpD,OAAO,CAAC,aAAa,CAA2B;IAChD,OAAO,CAAC,aAAa,CAA2B;IAChD,OAAO,CAAC,YAAY,CAAsC;IAE1D,OAAO,CAAC,WAAW,CAAmC;IAEtD,OAAO,CAAC,QAAQ,CAAC,qBAAqB,CAA0C;IAChF,OAAO,CAAC,QAAQ,CAAC,WAAW,CAAmB;IAC/C,OAAO,CAAC,YAAY,CAAiB;IACrC,OAAO,CAAC,cAAc,CAAM;gBAET,SAAS,EAAE,MAAM;IAe7B,MAAM,CAAC,MAAM,EAAE,eAAe,GAAG,IAAI;IAmD5C,OAAO,CAAC,oBAAoB;IAmD5B,OAAO,CAAC,cAAc;IAmEf,KAAK,IAAI,IAAI;IA6BpB,OAAO,CAAC,iBAAiB;IAmCzB,OAAO,CAAC,cAAc;IAsBtB,OAAO,CAAC,gBAAgB;IAWxB,OAAO,CAAC,mBAAmB;IAsB3B,SAAS,CAAC,SAAS,CAAC,OAAO,EAAE,aAAa,GAAG,IAAI;IAqCjD,SAAS,CAAC,YAAY,IAAI,IAAI;IA0BvB,OAAO,IAAI,IAAI;IAUtB,OAAO,CAAC,iBAAiB;IAWzB,OAAO,CAAC,iBAAiB;IA4BzB,OAAO,CAAC,iBAAiB;CAuC1B"}