@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.
@@ -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 into the atlas from vertex `base`. */
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;AA0BlF,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,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,CA8CZ;IAED;;;;OAIG;IACH,KAAK,CAAC,UAAU,EAAE,UAAU,GAAG,IAAI,CAgFlC;IAED,6FAA6F;IAC7F,MAAM,CAAC,UAAU,EAAE,UAAU,GAAG,IAAI,CA6BnC;IAED,0FAA0F;IAC1F,YAAY,CAAC,UAAU,EAAE,UAAU,GAAG,IAAI,CA8BzC;IAED,2EAA2E;IAC3E,OAAO,CAAC,MAAM;IA+Bd,uEAAuE;IACvE,OAAO,CAAC,YAAY;IAwBpB,OAAO,CAAC,KAAK;IAMb,8FAA8F;IAC9F,OAAO,CAAC,UAAU;IA4BlB,kEAAkE;IAClE,OAAO,IAAI,IAAI,CAQd;CACF"}
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"}
@@ -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 indices = new Uint32Array(data.indices.length);
253
- for (let i = 0; i < indices.length; i++) {
254
- indices[i] = data.indices[i] + base;
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: indices.length,
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 += indices.length;
343
+ this.indexTop += length;
269
344
  this.live += count;
270
345
  }
271
- /** `data`'s vertices interleaved into the atlas from vertex `base`. */
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
- const bytes = new ArrayBuffer(count * VERTEX_BYTES);
276
- const floats = new Float32Array(bytes);
277
- const words = new Uint32Array(bytes);
278
- const texels = data.texels;
279
- const depths = data.depths;
280
- for (let i = 0; i < count; i++) {
281
- floats[i * 5] = data.positions[i * 2];
282
- floats[i * 5 + 1] = data.positions[i * 2 + 1];
283
- floats[i * 5 + 2] = texels ? texels[i * 2] : 0;
284
- floats[i * 5 + 3] = texels ? texels[i * 2 + 1] : 0;
285
- if (depths) {
286
- floats[i * 5 + 4] = depths[i];
287
- }
288
- else {
289
- words[i * 5 + 4] = data.colors[i];
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
@@ -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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"}
@@ -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 stable geometries merged in painter's order; unchanged streams reuse
5
- * their GPU buffers. Only what changed since the last frame, from the first
6
- * draw that differs to the stream's end, is staged on the CPU and uploaded
7
- * where it lies: the stream before it stays on the GPU alone, and a buffer
8
- * grown keeps it by a copy there.
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: the first draw that differs from the last frame's. */
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
- private readonly previous;
28
- private readonly previousRows;
29
- private cursor;
30
- /** Stays dirty if preparation aborts before upload, as an overflowing run table can do. */
31
- private changed;
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
- setUp(): void;
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 staged part of the stream uploaded where it lies, the buffers grown
45
- * to fit it first, keeping what is before it; and, once a watch of
46
- * SHRINK_FRAMES has used a quarter of the room or less, the buffers and
47
- * the staging made smaller.
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;AAcxC;;;;;;GAMG;AACH,qBAAa,WAAW;IA4BpB,OAAO,CAAC,QAAQ,CAAC,EAAE;IACnB,OAAO,CAAC,QAAQ,CAAC,KAAK;IA5BxB,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,0GAA0G;IAC1G,OAAO,CAAC,UAAU,CAAK;IACvB,OAAO,CAAC,SAAS,CAAK;IACtB,OAAO,CAAC,QAAQ,CAAC,QAAQ,CAAqC;IAC9D,OAAO,CAAC,QAAQ,CAAC,YAAY,CAAgB;IAC7C,OAAO,CAAC,MAAM,CAAK;IACnB,2FAA2F;IAC3F,OAAO,CAAC,OAAO,CAAS;IACxB,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,KAAK,IAAI,IAAI,CAwBZ;IAED,KAAK,IAAI,IAAI,CAOZ;IAED,sFAAsF;IACtF,GAAG,CAAC,MAAM,EAAE,KAAK,EAAE,EAAE,IAAI,EAAE,UAAU,EAAE,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,GAAG,IAAI,CAkEzE;IAED;;;;;OAKG;IACH,MAAM,IAAI,IAAI,CASb;IAED,yFAAyF;IACzF,OAAO,CAAC,YAAY;IA4CpB,OAAO,IAAI,IAAI,CAOd;IAED,yFAAyF;IACzF,OAAO,CAAC,SAAS;IAmBjB;;;;;OAKG;IACH,OAAO,CAAC,KAAK;IAuDb;;;;OAIG;IACH,OAAO,CAAC,MAAM;CA4Bf"}
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"}