@swf2es/render 0.1.18 → 0.1.20
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.
- package/dist/webgl/atlas.d.ts +14 -1
- package/dist/webgl/atlas.d.ts.map +1 -1
- package/dist/webgl/atlas.js +119 -28
- package/dist/webgl/atlas.js.map +1 -1
- package/dist/webgl/batches.d.ts +68 -18
- package/dist/webgl/batches.d.ts.map +1 -1
- package/dist/webgl/batches.js +252 -63
- package/dist/webgl/batches.js.map +1 -1
- package/dist/webgl/draws.d.ts +26 -8
- package/dist/webgl/draws.d.ts.map +1 -1
- package/dist/webgl/draws.js +92 -36
- package/dist/webgl/draws.js.map +1 -1
- package/dist/webgl/programs.d.ts +10 -3
- package/dist/webgl/programs.d.ts.map +1 -1
- package/dist/webgl/programs.js +13 -5
- package/dist/webgl/programs.js.map +1 -1
- package/package.json +2 -2
- package/src/webgl/atlas.ts +149 -27
- package/src/webgl/batches.ts +316 -68
- package/src/webgl/draws.ts +104 -40
- package/src/webgl/programs.ts +13 -5
package/dist/webgl/atlas.d.ts
CHANGED
|
@@ -38,6 +38,15 @@ export declare class GeometryAtlas {
|
|
|
38
38
|
private indexTop;
|
|
39
39
|
private live;
|
|
40
40
|
private holes;
|
|
41
|
+
/** Vertices staged for the atlas from vertex `stagedVertexAt`, as floats and as words. */
|
|
42
|
+
private readonly stagedFloats;
|
|
43
|
+
private readonly stagedWords;
|
|
44
|
+
private stagedVertexAt;
|
|
45
|
+
private stagedVertices;
|
|
46
|
+
/** Indices staged for the atlas from index `stagedIndexAt`. */
|
|
47
|
+
private readonly stagedIndices;
|
|
48
|
+
private stagedIndexAt;
|
|
49
|
+
private stagedIndexCount;
|
|
41
50
|
places: (Place | null)[];
|
|
42
51
|
glyphArray: WebGLVertexArrayObject;
|
|
43
52
|
private glyphBuffer;
|
|
@@ -59,8 +68,12 @@ export declare class GeometryAtlas {
|
|
|
59
68
|
repackGlyphs(geometries: Geometries): void;
|
|
60
69
|
/** `data` copied in at the top of the atlas, its indices made absolute. */
|
|
61
70
|
private copyIn;
|
|
62
|
-
/** `data`'s vertices interleaved
|
|
71
|
+
/** `data`'s vertices interleaved for the atlas from vertex `base`: staged, or uploaded if too many. */
|
|
63
72
|
private copyVertices;
|
|
73
|
+
/** What is staged, uploaded: before anything draws from the atlas. */
|
|
74
|
+
private flush;
|
|
75
|
+
private flushVertices;
|
|
76
|
+
private flushIndices;
|
|
64
77
|
private batch;
|
|
65
78
|
/** Glyph quads copied in at the top of the glyph atlas, their indices made absolute in it. */
|
|
66
79
|
private copyGlyphs;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"atlas.d.ts","sourceRoot":"","sources":["../../src/webgl/atlas.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,0BAA0B,CAAC;AACxD,OAAO,EAAE,KAAK,UAAU,EAAE,KAAK,YAAY,EAAgB,MAAM,gBAAgB,CAAC;
|
|
1
|
+
{"version":3,"file":"atlas.d.ts","sourceRoot":"","sources":["../../src/webgl/atlas.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,0BAA0B,CAAC;AACxD,OAAO,EAAE,KAAK,UAAU,EAAE,KAAK,YAAY,EAAgB,MAAM,gBAAgB,CAAC;AAoElF,6FAA6F;AAC7F,MAAM,WAAW,KAAK;IACpB,WAAW,EAAE,MAAM,CAAC;IACpB,QAAQ,EAAE,MAAM,CAAC;IACjB,UAAU,EAAE,MAAM,CAAC;IACnB,OAAO,EAAE,MAAM,CAAC;IAChB,MAAM,EAAE;QAAE,IAAI,EAAE,YAAY,CAAC;QAAC,KAAK,EAAE,YAAY,CAAA;KAAE,GAAG,IAAI,CAAC;IAC3D,+CAA+C;IAC/C,IAAI,EAAE,OAAO,CAAC;IACd,+EAA+E;IAC/E,KAAK,EAAE;QAAE,IAAI,EAAE,YAAY,CAAC;QAAC,KAAK,EAAE,MAAM,CAAA;KAAE,GAAG,IAAI,CAAC;CACrD;AAED;;;;;;GAMG;AACH,qBAAa,aAAa;IACxB,KAAK,SAAK;IACV,OAAO,CAAC,QAAQ,CAAC,EAAE,CAAyB;IAC5C,OAAO,CAAC,QAAQ,CAAC,KAAK,CAAU;IAChC,WAAW,EAAG,sBAAsB,CAAC;IACrC,OAAO,CAAC,YAAY,CAAe;IACnC,OAAO,CAAC,WAAW,CAAe;IAClC,OAAO,CAAC,cAAc,CAAK;IAC3B,OAAO,CAAC,aAAa,CAAK;IAC1B,OAAO,CAAC,SAAS,CAAK;IACtB,OAAO,CAAC,QAAQ,CAAK;IACrB,OAAO,CAAC,IAAI,CAAK;IACjB,OAAO,CAAC,KAAK,CAAK;IAClB,0FAA0F;IAC1F,OAAO,CAAC,QAAQ,CAAC,YAAY,CAA0D;IACvF,OAAO,CAAC,QAAQ,CAAC,WAAW,CAA6C;IACzE,OAAO,CAAC,cAAc,CAAK;IAC3B,OAAO,CAAC,cAAc,CAAK;IAC3B,+DAA+D;IAC/D,OAAO,CAAC,QAAQ,CAAC,aAAa,CAAmC;IACjE,OAAO,CAAC,aAAa,CAAK;IAC1B,OAAO,CAAC,gBAAgB,CAAK;IAC7B,MAAM,EAAE,CAAC,KAAK,GAAG,IAAI,CAAC,EAAE,CAAM;IAC9B,UAAU,EAAG,sBAAsB,CAAC;IACpC,OAAO,CAAC,WAAW,CAAe;IAClC,OAAO,CAAC,gBAAgB,CAAe;IACvC,sGAAsG;IACtG,OAAO,CAAC,QAAQ,CAAC,MAAM,CAOrB;IAEF,YAAY,EAAE,EAAE,sBAAsB,EAAE,KAAK,EAAE,OAAO,EAGrD;IAED,kGAAkG;IAClG,KAAK,IAAI,IAAI,CAgDZ;IAED;;;;OAIG;IACH,KAAK,CAAC,UAAU,EAAE,UAAU,GAAG,IAAI,CAwFlC;IAED,6FAA6F;IAC7F,MAAM,CAAC,UAAU,EAAE,UAAU,GAAG,IAAI,CAkCnC;IAED,0FAA0F;IAC1F,YAAY,CAAC,UAAU,EAAE,UAAU,GAAG,IAAI,CA8BzC;IAED,2EAA2E;IAC3E,OAAO,CAAC,MAAM;IAoDd,uGAAuG;IACvG,OAAO,CAAC,YAAY;IAuBpB,sEAAsE;IACtE,OAAO,CAAC,KAAK;IAKb,OAAO,CAAC,aAAa;IAerB,OAAO,CAAC,YAAY;IAepB,OAAO,CAAC,KAAK;IAMb,8FAA8F;IAC9F,OAAO,CAAC,UAAU;IA4BlB,kEAAkE;IAClE,OAAO,IAAI,IAAI,CAQd;CACF"}
|
package/dist/webgl/atlas.js
CHANGED
|
@@ -13,6 +13,42 @@ const GLYPHS_LEAST = 1024;
|
|
|
13
13
|
const LEAST = 1 << 16;
|
|
14
14
|
/** Holes past which, and past the live vertices, the atlas is packed again. */
|
|
15
15
|
const SLACK = 1 << 16;
|
|
16
|
+
/**
|
|
17
|
+
* The vertices, and the indices, staged before an upload: geometries placed
|
|
18
|
+
* one after another go to the GPU in one call for each buffer, not two a
|
|
19
|
+
* geometry, which shapes drawn anew each frame paid for some thousand times
|
|
20
|
+
* a frame. A geometry larger than the staging is uploaded from its own copy.
|
|
21
|
+
*/
|
|
22
|
+
const STAGED_VERTICES = 1 << 14;
|
|
23
|
+
const STAGED_INDICES = 1 << 16;
|
|
24
|
+
/**
|
|
25
|
+
* `data`'s `count` vertices interleaved into `floats` from float `at`, `words` the same bytes:
|
|
26
|
+
* a position, a texel or zeros, then the colour's bytes or a mesh's depth.
|
|
27
|
+
*/
|
|
28
|
+
function interleave(data, count, floats, words, at) {
|
|
29
|
+
const positions = data.positions;
|
|
30
|
+
const texels = data.texels;
|
|
31
|
+
const depths = data.depths;
|
|
32
|
+
const colors = data.colors;
|
|
33
|
+
for (let i = 0; i < count; i++, at += 5) {
|
|
34
|
+
floats[at] = positions[i * 2];
|
|
35
|
+
floats[at + 1] = positions[i * 2 + 1];
|
|
36
|
+
if (texels) {
|
|
37
|
+
floats[at + 2] = texels[i * 2];
|
|
38
|
+
floats[at + 3] = texels[i * 2 + 1];
|
|
39
|
+
}
|
|
40
|
+
else {
|
|
41
|
+
floats[at + 2] = 0;
|
|
42
|
+
floats[at + 3] = 0;
|
|
43
|
+
}
|
|
44
|
+
if (depths) {
|
|
45
|
+
floats[at + 4] = depths[i];
|
|
46
|
+
}
|
|
47
|
+
else {
|
|
48
|
+
words[at + 4] = colors[i];
|
|
49
|
+
}
|
|
50
|
+
}
|
|
51
|
+
}
|
|
16
52
|
/**
|
|
17
53
|
* The geometry atlas: every geometry copied once into a vertex and an index
|
|
18
54
|
* buffer, and advanced text's glyph quads into an atlas of their own, where
|
|
@@ -33,6 +69,15 @@ export class GeometryAtlas {
|
|
|
33
69
|
indexTop = 0;
|
|
34
70
|
live = 0;
|
|
35
71
|
holes = 0;
|
|
72
|
+
/** Vertices staged for the atlas from vertex `stagedVertexAt`, as floats and as words. */
|
|
73
|
+
stagedFloats = new Float32Array(STAGED_VERTICES * (VERTEX_BYTES / 4));
|
|
74
|
+
stagedWords = new Uint32Array(this.stagedFloats.buffer);
|
|
75
|
+
stagedVertexAt = 0;
|
|
76
|
+
stagedVertices = 0;
|
|
77
|
+
/** Indices staged for the atlas from index `stagedIndexAt`. */
|
|
78
|
+
stagedIndices = new Uint32Array(STAGED_INDICES);
|
|
79
|
+
stagedIndexAt = 0;
|
|
80
|
+
stagedIndexCount = 0;
|
|
36
81
|
places = [];
|
|
37
82
|
glyphArray;
|
|
38
83
|
glyphBuffer;
|
|
@@ -95,6 +140,8 @@ export class GeometryAtlas {
|
|
|
95
140
|
});
|
|
96
141
|
this.vertexCapacity = 0;
|
|
97
142
|
this.indexCapacity = 0;
|
|
143
|
+
this.stagedVertices = 0;
|
|
144
|
+
this.stagedIndexCount = 0;
|
|
98
145
|
this.places = [];
|
|
99
146
|
}
|
|
100
147
|
/**
|
|
@@ -118,6 +165,12 @@ export class GeometryAtlas {
|
|
|
118
165
|
}
|
|
119
166
|
}
|
|
120
167
|
geometries.removed.length = 0;
|
|
168
|
+
// Nothing left in it: filled again from its start, in the buffers it has.
|
|
169
|
+
if (this.live === 0) {
|
|
170
|
+
this.vertexTop = 0;
|
|
171
|
+
this.indexTop = 0;
|
|
172
|
+
this.holes = 0;
|
|
173
|
+
}
|
|
121
174
|
// Changed in place: copied again where they lie, else as added.
|
|
122
175
|
for (const id of geometries.updated) {
|
|
123
176
|
const place = this.places[id];
|
|
@@ -177,6 +230,7 @@ export class GeometryAtlas {
|
|
|
177
230
|
}
|
|
178
231
|
}
|
|
179
232
|
geometries.added.length = 0;
|
|
233
|
+
this.flush();
|
|
180
234
|
}
|
|
181
235
|
/** Every live shape's geometry copied into new buffers, with room for twice what is live. */
|
|
182
236
|
repack(geometries) {
|
|
@@ -197,6 +251,9 @@ export class GeometryAtlas {
|
|
|
197
251
|
gl.bindBuffer(gl.ARRAY_BUFFER, this.vertexBuffer);
|
|
198
252
|
gl.bufferData(gl.ARRAY_BUFFER, this.vertexCapacity * VERTEX_BYTES, gl.STATIC_DRAW);
|
|
199
253
|
gl.bufferData(gl.ELEMENT_ARRAY_BUFFER, this.indexCapacity * 4, gl.STATIC_DRAW);
|
|
254
|
+
// What was staged for the buffers replaced is copied again below.
|
|
255
|
+
this.stagedVertices = 0;
|
|
256
|
+
this.stagedIndexCount = 0;
|
|
200
257
|
this.vertexTop = 0;
|
|
201
258
|
this.indexTop = 0;
|
|
202
259
|
this.live = 0;
|
|
@@ -207,6 +264,7 @@ export class GeometryAtlas {
|
|
|
207
264
|
this.copyIn(id, data);
|
|
208
265
|
}
|
|
209
266
|
}
|
|
267
|
+
this.flush();
|
|
210
268
|
}
|
|
211
269
|
/** Every live text's quads copied into new glyph buffers: none till a text needs them. */
|
|
212
270
|
repackGlyphs(geometries) {
|
|
@@ -245,52 +303,85 @@ export class GeometryAtlas {
|
|
|
245
303
|
this.copyGlyphs(id, data);
|
|
246
304
|
return;
|
|
247
305
|
}
|
|
248
|
-
const gl = this.gl;
|
|
249
306
|
const count = data.positions.length / 2;
|
|
250
307
|
const base = this.vertexTop;
|
|
251
308
|
this.copyVertices(data, base);
|
|
252
|
-
const
|
|
253
|
-
|
|
254
|
-
|
|
309
|
+
const source = data.indices;
|
|
310
|
+
const length = source.length;
|
|
311
|
+
if (length > STAGED_INDICES) {
|
|
312
|
+
const indices = new Uint32Array(length);
|
|
313
|
+
for (let i = 0; i < length; i++) {
|
|
314
|
+
indices[i] = source[i] + base;
|
|
315
|
+
}
|
|
316
|
+
this.flushIndices();
|
|
317
|
+
this.state.bindVertexArray(this.vertexArray);
|
|
318
|
+
this.gl.bufferSubData(this.gl.ELEMENT_ARRAY_BUFFER, this.indexTop * 4, indices);
|
|
319
|
+
}
|
|
320
|
+
else {
|
|
321
|
+
if (this.stagedIndexCount + length > STAGED_INDICES ||
|
|
322
|
+
this.stagedIndexAt + this.stagedIndexCount !== this.indexTop) {
|
|
323
|
+
this.flushIndices();
|
|
324
|
+
this.stagedIndexAt = this.indexTop;
|
|
325
|
+
}
|
|
326
|
+
const staged = this.stagedIndices;
|
|
327
|
+
const at = this.stagedIndexCount;
|
|
328
|
+
for (let i = 0; i < length; i++) {
|
|
329
|
+
staged[at + i] = source[i] + base;
|
|
330
|
+
}
|
|
331
|
+
this.stagedIndexCount = at + length;
|
|
255
332
|
}
|
|
256
|
-
this.state.bindVertexArray(this.vertexArray);
|
|
257
|
-
gl.bufferSubData(gl.ELEMENT_ARRAY_BUFFER, this.indexTop * 4, indices);
|
|
258
333
|
this.places[id] = {
|
|
259
334
|
vertexStart: base,
|
|
260
335
|
vertices: count,
|
|
261
336
|
indexStart: this.indexTop,
|
|
262
|
-
indices:
|
|
337
|
+
indices: length,
|
|
263
338
|
glyphs: null,
|
|
264
339
|
flat: data.flat === true,
|
|
265
340
|
batch: this.batch(data),
|
|
266
341
|
};
|
|
267
342
|
this.vertexTop += count;
|
|
268
|
-
this.indexTop +=
|
|
343
|
+
this.indexTop += length;
|
|
269
344
|
this.live += count;
|
|
270
345
|
}
|
|
271
|
-
/** `data`'s vertices interleaved
|
|
346
|
+
/** `data`'s vertices interleaved for the atlas from vertex `base`: staged, or uploaded if too many. */
|
|
272
347
|
copyVertices(data, base) {
|
|
273
|
-
const gl = this.gl;
|
|
274
348
|
const count = data.positions.length / 2;
|
|
275
|
-
|
|
276
|
-
|
|
277
|
-
|
|
278
|
-
|
|
279
|
-
|
|
280
|
-
|
|
281
|
-
|
|
282
|
-
|
|
283
|
-
|
|
284
|
-
|
|
285
|
-
|
|
286
|
-
|
|
287
|
-
|
|
288
|
-
|
|
289
|
-
|
|
290
|
-
|
|
349
|
+
if (count > STAGED_VERTICES) {
|
|
350
|
+
const floats = new Float32Array(count * (VERTEX_BYTES / 4));
|
|
351
|
+
interleave(data, count, floats, new Uint32Array(floats.buffer), 0);
|
|
352
|
+
this.flushVertices();
|
|
353
|
+
this.gl.bindBuffer(this.gl.ARRAY_BUFFER, this.vertexBuffer);
|
|
354
|
+
this.gl.bufferSubData(this.gl.ARRAY_BUFFER, base * VERTEX_BYTES, floats);
|
|
355
|
+
return;
|
|
356
|
+
}
|
|
357
|
+
if (this.stagedVertices + count > STAGED_VERTICES ||
|
|
358
|
+
this.stagedVertexAt + this.stagedVertices !== base) {
|
|
359
|
+
this.flushVertices();
|
|
360
|
+
this.stagedVertexAt = base;
|
|
361
|
+
}
|
|
362
|
+
interleave(data, count, this.stagedFloats, this.stagedWords, this.stagedVertices * 5);
|
|
363
|
+
this.stagedVertices += count;
|
|
364
|
+
}
|
|
365
|
+
/** What is staged, uploaded: before anything draws from the atlas. */
|
|
366
|
+
flush() {
|
|
367
|
+
this.flushVertices();
|
|
368
|
+
this.flushIndices();
|
|
369
|
+
}
|
|
370
|
+
flushVertices() {
|
|
371
|
+
if (this.stagedVertices > 0) {
|
|
372
|
+
const gl = this.gl;
|
|
373
|
+
gl.bindBuffer(gl.ARRAY_BUFFER, this.vertexBuffer);
|
|
374
|
+
gl.bufferSubData(gl.ARRAY_BUFFER, this.stagedVertexAt * VERTEX_BYTES, this.stagedFloats, 0, this.stagedVertices * 5);
|
|
375
|
+
this.stagedVertices = 0;
|
|
376
|
+
}
|
|
377
|
+
}
|
|
378
|
+
flushIndices() {
|
|
379
|
+
if (this.stagedIndexCount > 0) {
|
|
380
|
+
const gl = this.gl;
|
|
381
|
+
this.state.bindVertexArray(this.vertexArray);
|
|
382
|
+
gl.bufferSubData(gl.ELEMENT_ARRAY_BUFFER, this.stagedIndexAt * 4, this.stagedIndices, 0, this.stagedIndexCount);
|
|
383
|
+
this.stagedIndexCount = 0;
|
|
291
384
|
}
|
|
292
|
-
gl.bindBuffer(gl.ARRAY_BUFFER, this.vertexBuffer);
|
|
293
|
-
gl.bufferSubData(gl.ARRAY_BUFFER, base * VERTEX_BYTES, floats);
|
|
294
385
|
}
|
|
295
386
|
batch(data) {
|
|
296
387
|
return data.positions.length <= 512 && data.indices.length <= 1024 && !data.depths
|
package/dist/webgl/atlas.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"atlas.js","sourceRoot":"","sources":["../../src/webgl/atlas.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"atlas.js","sourceRoot":"","sources":["../../src/webgl/atlas.ts"],"names":[],"mappings":"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"}
|
package/dist/webgl/batches.d.ts
CHANGED
|
@@ -1,11 +1,14 @@
|
|
|
1
1
|
import type { GlState } from "@swf2es/context3d/device";
|
|
2
2
|
import type { Place } from "./atlas.js";
|
|
3
3
|
/**
|
|
4
|
-
* Small
|
|
5
|
-
*
|
|
6
|
-
*
|
|
7
|
-
*
|
|
8
|
-
*
|
|
4
|
+
* Small geometries merged run by run in painter's order, each run's copy a
|
|
5
|
+
* segment of one stream that any later run of the same geometries draws
|
|
6
|
+
* again, wherever it comes in the frame: its rows are in a texture of its
|
|
7
|
+
* own, written each frame, not in its vertices. Only the segments a frame adds are staged on the
|
|
8
|
+
* CPU, after the stream's top, and uploaded there at once; what is below
|
|
9
|
+
* stays on the GPU alone, and a buffer grown keeps it by a copy there.
|
|
10
|
+
* Segments no run used in a frame are let go of, and their room once the
|
|
11
|
+
* stream is twice what the last frame used, the stream then made anew.
|
|
9
12
|
*/
|
|
10
13
|
export declare class FillBatches {
|
|
11
14
|
private readonly gl;
|
|
@@ -21,14 +24,36 @@ export declare class FillBatches {
|
|
|
21
24
|
private indexCapacity;
|
|
22
25
|
private vertexTop;
|
|
23
26
|
indexTop: number;
|
|
24
|
-
/** Where this frame's staging starts in the stream:
|
|
27
|
+
/** Where this frame's staging starts in the stream: its top as the frame began. */
|
|
25
28
|
private fromVertex;
|
|
26
29
|
private fromIndex;
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
30
|
+
/**
|
|
31
|
+
* The segments' rows, slot by slot (Segment.slot), as their texture holds
|
|
32
|
+
* them, the slots taken, and the range of them this frame changed.
|
|
33
|
+
*/
|
|
34
|
+
rowsTexture: WebGLTexture | null;
|
|
35
|
+
private rows;
|
|
36
|
+
private rowsLines;
|
|
37
|
+
private slotTop;
|
|
38
|
+
private slotsMost;
|
|
39
|
+
private changedFrom;
|
|
40
|
+
private changedTo;
|
|
41
|
+
/** The segments by their first geometry. */
|
|
42
|
+
private readonly segments;
|
|
43
|
+
private frame;
|
|
44
|
+
/** What the frame's runs used of the stream, each segment once. */
|
|
45
|
+
private liveVertices;
|
|
46
|
+
private liveIndices;
|
|
47
|
+
/**
|
|
48
|
+
* The keys of the runs this frame and the last asked for (add's
|
|
49
|
+
* `settled`), so that a run is copied only once it is drawn again.
|
|
50
|
+
*/
|
|
51
|
+
private seen;
|
|
52
|
+
private seenBefore;
|
|
53
|
+
/** A frame prepared but not uploaded, as an overflowing run table leaves one: its staging lost. */
|
|
54
|
+
private pending;
|
|
55
|
+
/** Whether a run found no room this frame, so that the next makes the stream anew. */
|
|
56
|
+
private full;
|
|
32
57
|
/** The frames of the current watch, and the most of the stream and of the staging they used. */
|
|
33
58
|
private frames;
|
|
34
59
|
private mostVertices;
|
|
@@ -36,15 +61,40 @@ export declare class FillBatches {
|
|
|
36
61
|
private mostStaged;
|
|
37
62
|
private mostStagedIndices;
|
|
38
63
|
constructor(gl: WebGL2RenderingContext, state: GlState);
|
|
39
|
-
|
|
64
|
+
/** The buffers and the rows' texture made, `textureMost` lines at most, as the context comes. */
|
|
65
|
+
setUp(textureMost: number): void;
|
|
66
|
+
/** No segment kept: the stream made anew from its start. */
|
|
67
|
+
private clear;
|
|
68
|
+
/** A frame's preparation begun: staging from the stream's top, or from its start once it is mostly dead. */
|
|
40
69
|
reset(): void;
|
|
41
|
-
/** Append the whole run, or leave it to multi-draw if copying would cost too much. */
|
|
42
|
-
add(places: Place[], rows: Int32Array, count: number, frame: number): void;
|
|
43
70
|
/**
|
|
44
|
-
* The
|
|
45
|
-
*
|
|
46
|
-
*
|
|
47
|
-
* the
|
|
71
|
+
* The segment that draws the run, of at least `least` draws: one kept, or
|
|
72
|
+
* one staged now; null leaves it to the atlas, where copying would cost
|
|
73
|
+
* too much: a run short or of geometry added this `frame` is cheaper
|
|
74
|
+
* drawn from it, and with `settled` a run not drawn the frame before
|
|
75
|
+
* too, as a run that changes from frame to frame, as an animation's do,
|
|
76
|
+
* would be copied again each frame. Its vertices carry each draw's slot
|
|
77
|
+
* in the rows' texture, where `rows` are written.
|
|
78
|
+
*/
|
|
79
|
+
add(places: Place[], rows: Int32Array, count: number, frame: number, least: number, settled: boolean): {
|
|
80
|
+
indexStart: number;
|
|
81
|
+
indices: number;
|
|
82
|
+
} | null;
|
|
83
|
+
/** Whether the `count` rows from `slot` are `rows`. */
|
|
84
|
+
private rowsAre;
|
|
85
|
+
/** `rows` written from `slot` on, what changes counted for the upload. */
|
|
86
|
+
private writeRows;
|
|
87
|
+
/** The rows' texture made tall enough for the slots taken, and the lines this frame changed uploaded. */
|
|
88
|
+
private uploadRows;
|
|
89
|
+
/** Whether `segment` is of the geometries of `places`, in their order. */
|
|
90
|
+
private holds;
|
|
91
|
+
/** `segment` used this frame, counted once among what the frame used. */
|
|
92
|
+
private use;
|
|
93
|
+
/**
|
|
94
|
+
* The staged segments uploaded where they lie, the buffers grown to fit
|
|
95
|
+
* them first, keeping what is below; the segments no run used let go of;
|
|
96
|
+
* and, once a watch of SHRINK_FRAMES has used a quarter of the room or
|
|
97
|
+
* less, the buffers and the staging made smaller.
|
|
48
98
|
*/
|
|
49
99
|
upload(): void;
|
|
50
100
|
/** What add staged uploaded where it lies, the buffers grown first to fit the stream. */
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"batches.d.ts","sourceRoot":"","sources":["../../src/webgl/batches.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,0BAA0B,CAAC;AACxD,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,YAAY,CAAC;
|
|
1
|
+
{"version":3,"file":"batches.d.ts","sourceRoot":"","sources":["../../src/webgl/batches.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,0BAA0B,CAAC;AACxD,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,YAAY,CAAC;AAiCxC;;;;;;;;;GASG;AACH,qBAAa,WAAW;IAkDpB,OAAO,CAAC,QAAQ,CAAC,EAAE;IACnB,OAAO,CAAC,QAAQ,CAAC,KAAK;IAlDxB,WAAW,EAAG,sBAAsB,CAAC;IACrC,OAAO,CAAC,YAAY,CAAe;IACnC,OAAO,CAAC,WAAW,CAAe;IAClC,yGAAyG;IACzG,OAAO,CAAC,KAAK,CAAsB;IACnC,OAAO,CAAC,MAAM,CAAuB;IACrC,OAAO,CAAC,OAAO,CAAsB;IACrC,OAAO,CAAC,cAAc,CAAK;IAC3B,OAAO,CAAC,aAAa,CAAK;IAC1B,OAAO,CAAC,SAAS,CAAK;IACtB,QAAQ,SAAK;IACb,mFAAmF;IACnF,OAAO,CAAC,UAAU,CAAK;IACvB,OAAO,CAAC,SAAS,CAAK;IACtB;;;OAGG;IACH,WAAW,EAAE,YAAY,GAAG,IAAI,CAAQ;IACxC,OAAO,CAAC,IAAI,CAAqB;IACjC,OAAO,CAAC,SAAS,CAAK;IACtB,OAAO,CAAC,OAAO,CAAK;IACpB,OAAO,CAAC,SAAS,CAAK;IACtB,OAAO,CAAC,WAAW,CAAK;IACxB,OAAO,CAAC,SAAS,CAAK;IACtB,4CAA4C;IAC5C,OAAO,CAAC,QAAQ,CAAC,QAAQ,CAA+B;IACxD,OAAO,CAAC,KAAK,CAAK;IAClB,mEAAmE;IACnE,OAAO,CAAC,YAAY,CAAK;IACzB,OAAO,CAAC,WAAW,CAAK;IACxB;;;OAGG;IACH,OAAO,CAAC,IAAI,CAAqB;IACjC,OAAO,CAAC,UAAU,CAAqB;IACvC,mGAAmG;IACnG,OAAO,CAAC,OAAO,CAAS;IACxB,sFAAsF;IACtF,OAAO,CAAC,IAAI,CAAS;IACrB,gGAAgG;IAChG,OAAO,CAAC,MAAM,CAAK;IACnB,OAAO,CAAC,YAAY,CAAK;IACzB,OAAO,CAAC,WAAW,CAAK;IACxB,OAAO,CAAC,UAAU,CAAK;IACvB,OAAO,CAAC,iBAAiB,CAAK;IAE9B,YACmB,EAAE,EAAE,sBAAsB,EAC1B,KAAK,EAAE,OAAO,EAC7B;IAEJ,iGAAiG;IACjG,KAAK,CAAC,WAAW,EAAE,MAAM,GAAG,IAAI,CAyB/B;IAED,4DAA4D;IAC5D,OAAO,CAAC,KAAK;IASb,4GAA4G;IAC5G,KAAK,IAAI,IAAI,CA6BZ;IAED;;;;;;;;OAQG;IACH,GAAG,CACD,MAAM,EAAE,KAAK,EAAE,EACf,IAAI,EAAE,UAAU,EAChB,KAAK,EAAE,MAAM,EACb,KAAK,EAAE,MAAM,EACb,KAAK,EAAE,MAAM,EACb,OAAO,EAAE,OAAO,GACf;QAAE,UAAU,EAAE,MAAM,CAAC;QAAC,OAAO,EAAE,MAAM,CAAA;KAAE,GAAG,IAAI,CAuGhD;IAED,uDAAuD;IACvD,OAAO,CAAC,OAAO;IAUf,0EAA0E;IAC1E,OAAO,CAAC,SAAS;IAkBjB,yGAAyG;IACzG,OAAO,CAAC,UAAU;IA4ClB,0EAA0E;IAC1E,OAAO,CAAC,KAAK;IAWb,yEAAyE;IACzE,OAAO,CAAC,GAAG;IAQX;;;;;OAKG;IACH,MAAM,IAAI,IAAI,CA2Bb;IAED,yFAAyF;IACzF,OAAO,CAAC,YAAY;IA2CpB,OAAO,IAAI,IAAI,CAad;IAED,yFAAyF;IACzF,OAAO,CAAC,SAAS;IAmBjB;;;;;OAKG;IACH,OAAO,CAAC,KAAK;IAqDb;;;;OAIG;IACH,OAAO,CAAC,MAAM;CA4Bf"}
|