@blakron/core 0.6.0 → 1.0.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 (130) hide show
  1. package/LICENSE +21 -0
  2. package/README.md +29 -30
  3. package/dist/blakron/display/DisplayObject.d.ts +6 -10
  4. package/dist/blakron/display/DisplayObject.d.ts.map +1 -1
  5. package/dist/blakron/display/DisplayObject.js +6 -44
  6. package/dist/blakron/display/DisplayObject.js.map +1 -1
  7. package/dist/blakron/display/DisplayObjectContainer.d.ts +3 -2
  8. package/dist/blakron/display/DisplayObjectContainer.d.ts.map +1 -1
  9. package/dist/blakron/display/DisplayObjectContainer.js +3 -18
  10. package/dist/blakron/display/DisplayObjectContainer.js.map +1 -1
  11. package/dist/blakron/display/Graphics.d.ts +1 -2
  12. package/dist/blakron/display/Graphics.d.ts.map +1 -1
  13. package/dist/blakron/display/Graphics.js +1 -2
  14. package/dist/blakron/display/Graphics.js.map +1 -1
  15. package/dist/blakron/display/Mesh.d.ts.map +1 -1
  16. package/dist/blakron/display/Mesh.js.map +1 -1
  17. package/dist/blakron/display/texture/BitmapData.d.ts +1 -2
  18. package/dist/blakron/display/texture/BitmapData.d.ts.map +1 -1
  19. package/dist/blakron/display/texture/BitmapData.js +10 -25
  20. package/dist/blakron/display/texture/BitmapData.js.map +1 -1
  21. package/dist/blakron/display/texture/SpriteSheet.d.ts +1 -2
  22. package/dist/blakron/display/texture/SpriteSheet.d.ts.map +1 -1
  23. package/dist/blakron/display/texture/SpriteSheet.js +1 -3
  24. package/dist/blakron/display/texture/SpriteSheet.js.map +1 -1
  25. package/dist/blakron/display/texture/Texture.d.ts +1 -2
  26. package/dist/blakron/display/texture/Texture.d.ts.map +1 -1
  27. package/dist/blakron/display/texture/Texture.js +1 -2
  28. package/dist/blakron/display/texture/Texture.js.map +1 -1
  29. package/dist/blakron/events/Event.d.ts +1 -2
  30. package/dist/blakron/events/Event.d.ts.map +1 -1
  31. package/dist/blakron/events/Event.js +2 -3
  32. package/dist/blakron/events/Event.js.map +1 -1
  33. package/dist/blakron/events/EventDispatcher.d.ts +1 -2
  34. package/dist/blakron/events/EventDispatcher.d.ts.map +1 -1
  35. package/dist/blakron/events/EventDispatcher.js +14 -15
  36. package/dist/blakron/events/EventDispatcher.js.map +1 -1
  37. package/dist/blakron/events/IEventDispatcher.d.ts +1 -2
  38. package/dist/blakron/events/IEventDispatcher.d.ts.map +1 -1
  39. package/dist/blakron/filters/Filter.d.ts +1 -3
  40. package/dist/blakron/filters/Filter.d.ts.map +1 -1
  41. package/dist/blakron/filters/Filter.js +2 -7
  42. package/dist/blakron/filters/Filter.js.map +1 -1
  43. package/dist/blakron/geom/Matrix.d.ts +1 -2
  44. package/dist/blakron/geom/Matrix.d.ts.map +1 -1
  45. package/dist/blakron/geom/Matrix.js +1 -3
  46. package/dist/blakron/geom/Matrix.js.map +1 -1
  47. package/dist/blakron/geom/Point.d.ts +1 -2
  48. package/dist/blakron/geom/Point.d.ts.map +1 -1
  49. package/dist/blakron/geom/Point.js +1 -3
  50. package/dist/blakron/geom/Point.js.map +1 -1
  51. package/dist/blakron/geom/Rectangle.d.ts +1 -2
  52. package/dist/blakron/geom/Rectangle.d.ts.map +1 -1
  53. package/dist/blakron/geom/Rectangle.js +1 -3
  54. package/dist/blakron/geom/Rectangle.js.map +1 -1
  55. package/dist/blakron/media/Sound.d.ts +1 -0
  56. package/dist/blakron/media/Sound.d.ts.map +1 -1
  57. package/dist/blakron/media/Sound.js +24 -6
  58. package/dist/blakron/media/Sound.js.map +1 -1
  59. package/dist/blakron/media/Video.d.ts.map +1 -1
  60. package/dist/blakron/media/Video.js +3 -10
  61. package/dist/blakron/media/Video.js.map +1 -1
  62. package/dist/blakron/net/HttpMethod.d.ts +6 -0
  63. package/dist/blakron/net/HttpMethod.d.ts.map +1 -1
  64. package/dist/blakron/net/HttpMethod.js +5 -0
  65. package/dist/blakron/net/HttpMethod.js.map +1 -1
  66. package/dist/blakron/net/HttpRequest.d.ts +40 -0
  67. package/dist/blakron/net/HttpRequest.d.ts.map +1 -1
  68. package/dist/blakron/net/HttpRequest.js +60 -2
  69. package/dist/blakron/net/HttpRequest.js.map +1 -1
  70. package/dist/blakron/net/HttpResponseType.d.ts +6 -0
  71. package/dist/blakron/net/HttpResponseType.d.ts.map +1 -1
  72. package/dist/blakron/net/HttpResponseType.js +5 -0
  73. package/dist/blakron/net/HttpResponseType.js.map +1 -1
  74. package/dist/blakron/net/ImageLoader.d.ts +18 -0
  75. package/dist/blakron/net/ImageLoader.d.ts.map +1 -1
  76. package/dist/blakron/net/ImageLoader.js +26 -4
  77. package/dist/blakron/net/ImageLoader.js.map +1 -1
  78. package/dist/blakron/player/Player.d.ts.map +1 -1
  79. package/dist/blakron/player/Player.js +18 -6
  80. package/dist/blakron/player/Player.js.map +1 -1
  81. package/dist/blakron/player/webgl/WebGLRenderContext.d.ts +2 -5
  82. package/dist/blakron/player/webgl/WebGLRenderContext.d.ts.map +1 -1
  83. package/dist/blakron/player/webgl/WebGLRenderContext.js +5 -14
  84. package/dist/blakron/player/webgl/WebGLRenderContext.js.map +1 -1
  85. package/dist/blakron/player/webgl/WebGLRenderer.d.ts +106 -3
  86. package/dist/blakron/player/webgl/WebGLRenderer.d.ts.map +1 -1
  87. package/dist/blakron/player/webgl/WebGLRenderer.js +149 -26
  88. package/dist/blakron/player/webgl/WebGLRenderer.js.map +1 -1
  89. package/dist/blakron/player/webgl/WebGLUtils.d.ts.map +1 -1
  90. package/dist/blakron/player/webgl/WebGLUtils.js +1 -2
  91. package/dist/blakron/player/webgl/WebGLUtils.js.map +1 -1
  92. package/dist/blakron/player/webgl/pipes/GraphicsPipe.d.ts.map +1 -1
  93. package/dist/blakron/player/webgl/pipes/GraphicsPipe.js +5 -3
  94. package/dist/blakron/player/webgl/pipes/GraphicsPipe.js.map +1 -1
  95. package/dist/blakron/player/webgl/pipes/TextPipe.d.ts +2 -0
  96. package/dist/blakron/player/webgl/pipes/TextPipe.d.ts.map +1 -1
  97. package/dist/blakron/player/webgl/pipes/TextPipe.js +38 -0
  98. package/dist/blakron/player/webgl/pipes/TextPipe.js.map +1 -1
  99. package/dist/blakron/resource/Resource.d.ts +16 -4
  100. package/dist/blakron/resource/Resource.d.ts.map +1 -1
  101. package/dist/blakron/resource/Resource.js +30 -20
  102. package/dist/blakron/resource/Resource.js.map +1 -1
  103. package/dist/blakron/resource/ResourceLoader.d.ts +20 -0
  104. package/dist/blakron/resource/ResourceLoader.d.ts.map +1 -1
  105. package/dist/blakron/resource/ResourceLoader.js +44 -16
  106. package/dist/blakron/resource/ResourceLoader.js.map +1 -1
  107. package/dist/blakron/text/StageText.d.ts.map +1 -1
  108. package/dist/blakron/text/StageText.js +0 -15
  109. package/dist/blakron/text/StageText.js.map +1 -1
  110. package/dist/blakron/utils/Base64Util.d.ts +15 -0
  111. package/dist/blakron/utils/Base64Util.d.ts.map +1 -1
  112. package/dist/blakron/utils/Base64Util.js +30 -34
  113. package/dist/blakron/utils/Base64Util.js.map +1 -1
  114. package/dist/blakron/utils/ByteArray.d.ts +0 -1
  115. package/dist/blakron/utils/ByteArray.d.ts.map +1 -1
  116. package/dist/blakron/utils/ByteArray.js +2 -5
  117. package/dist/blakron/utils/ByteArray.js.map +1 -1
  118. package/dist/blakron/utils/index.d.ts +0 -2
  119. package/dist/blakron/utils/index.d.ts.map +1 -1
  120. package/dist/blakron/utils/index.js +0 -1
  121. package/dist/blakron/utils/index.js.map +1 -1
  122. package/package.json +5 -6
  123. package/dist/blakron/player/webgl/UBOManager.d.ts +0 -35
  124. package/dist/blakron/player/webgl/UBOManager.d.ts.map +0 -1
  125. package/dist/blakron/player/webgl/UBOManager.js +0 -85
  126. package/dist/blakron/player/webgl/UBOManager.js.map +0 -1
  127. package/dist/blakron/utils/HashObject.d.ts +0 -9
  128. package/dist/blakron/utils/HashObject.d.ts.map +0 -1
  129. package/dist/blakron/utils/HashObject.js +0 -11
  130. package/dist/blakron/utils/HashObject.js.map +0 -1
@@ -39,7 +39,14 @@ export class WebGLRenderer {
39
39
  _instructionSet = new InstructionSet();
40
40
  _renderGroupSets = new WeakMap();
41
41
  _renderGroupSetList = [];
42
- // ── Nesting (for recursive offscreen renders, e.g. cacheAsBitmap) ────────
42
+ // Tracks recursive render() depth. Currently render() is never called
43
+ // recursively (cacheAsBitmap uses an instruction-based path, RenderTexture
44
+ // uses CanvasRenderer), so this stays at 0 on entry / exit. The guard below
45
+ // (`if (this._nestLevel === 0)`) therefore fires on every render today.
46
+ // Kept so that a future WebGL cacheAsBitmap / drawToTexture that recurses
47
+ // through render() will only restore the root projection on the outermost
48
+ // call — restoring it on an inner call would corrupt the in-flight
49
+ // offscreen pass. DO NOT remove even though it looks unused.
43
50
  _nestLevel = 0;
44
51
  constructor() {
45
52
  this._bitmapPipe = new BitmapPipe();
@@ -48,7 +55,10 @@ export class WebGLRenderer {
48
55
  this._textPipe = new TextPipe(this._canvasRenderer);
49
56
  }
50
57
  // ── Public entry point ────────────────────────────────────────────────────
51
- // Release pooled instructions back to their respective pipes before a rebuild.
58
+ /**
59
+ * Release pooled instructions (filter/mask push/pop) back to their
60
+ * respective pipes before a rebuild discards `set`'s current contents.
61
+ */
52
62
  _releaseInstructions(set) {
53
63
  for (let i = 0; i < set.instructionSize; i++) {
54
64
  const inst = set.instructions[i];
@@ -68,6 +78,11 @@ export class WebGLRenderer {
68
78
  }
69
79
  }
70
80
  }
81
+ /**
82
+ * Render `displayObject` into `buffer` and return the number of draw calls
83
+ * issued. Rebuilds the instruction set when the scene structure is dirty,
84
+ * otherwise patches dirty renderables in place, then executes.
85
+ */
71
86
  render(displayObject, buffer, matrix) {
72
87
  this._nestLevel++;
73
88
  const ctx = buffer.context;
@@ -99,6 +114,19 @@ export class WebGLRenderer {
99
114
  // Root $renderDirty is consumed after a full render pass.
100
115
  displayObject.$renderDirty = false;
101
116
  this._nestLevel--;
117
+ // Only the outermost render() restores the root buffer's projection /
118
+ // viewport. See _nestLevel comment for why this guard exists despite
119
+ // render() currently never recursing.
120
+ //
121
+ // What this call actually does: create()+release() cycles a scratch
122
+ // buffer through the pool, but its real effect is the pushBuffer /
123
+ // popBuffer pair inside WebGLRenderBuffer.resize(). That queues an
124
+ // activateBuffer command which, when flush() runs it, calls
125
+ // _activateBuffer() → onResize(), resetting the GL projection/viewport
126
+ // to the root canvas size. Without this, an in-frame offscreen buffer
127
+ // activation (filter / mask / cacheAsBitmap) leaves the projection set
128
+ // to the offscreen size, and the next frame's output is vertically
129
+ // offset. DO NOT delete as dead code — it is not dead.
102
130
  if (this._nestLevel === 0) {
103
131
  WebGLRenderBuffer.release(WebGLRenderBuffer.create(buffer.context, 0, 0));
104
132
  }
@@ -106,18 +134,26 @@ export class WebGLRenderer {
106
134
  }
107
135
  // ── Phase A: build ────────────────────────────────────────────────────────
108
136
  /**
109
- * Recursively traverse the DisplayObject tree and append instructions to `set`.
110
- * Captures the current transform/alpha/tint state into each instruction.
137
+ * Recursively build render instructions for the display subtree rooted at
138
+ * `displayObject`, appending leaf/effect/group instructions into `set`.
139
+ *
140
+ * A `cacheAsBitmap` object is treated as a single opaque leaf: a synthetic
141
+ * `BitmapInstruction` backed by its DisplayList cache is emitted via
142
+ * `addLeaf` (not `add`), so an ancestor's later transform/alpha/tint
143
+ * change can still refresh this instruction's snapshot through the same
144
+ * `renderableIndex` path as ordinary leaves; the cache itself is refreshed
145
+ * lazily during the execute phase if dirty.
146
+ *
147
+ * A child with `isRenderGroup` is built into its own `InstructionSet` and
148
+ * emitted as a single `renderGroup` instruction in the parent set, rather
149
+ * than being inlined here.
111
150
  */
112
151
  _buildInstructions(displayObject, set, buffer, offsetX, offsetY, isStage = false) {
113
- // cacheAsBitmap — treat as a single opaque leaf; render offscreen lazily.
114
152
  const $displayList = displayObject.$displayList;
115
153
  if ($displayList && !isStage) {
116
- // Emit a synthetic BitmapInstruction backed by the DisplayList cache.
117
- // The execute phase will refresh the cache if dirty.
118
154
  const inst = this._makeCacheInstruction(displayObject, offsetX, offsetY, buffer);
119
155
  if (inst)
120
- set.add(inst);
156
+ set.addLeaf(inst);
121
157
  return;
122
158
  }
123
159
  // Emit self instruction (Bitmap / Shape / Sprite / Mesh).
@@ -152,8 +188,6 @@ export class WebGLRenderer {
152
188
  if (child.$tintRGB !== 0xffffff)
153
189
  buffer.globalTintColor = child.$tintRGB;
154
190
  // Emit effect wrappers then recurse.
155
- // RenderGroup: build the subtree into its own InstructionSet and
156
- // emit a single renderGroup instruction into the parent set.
157
191
  if (child instanceof DisplayObjectContainer && child.isRenderGroup) {
158
192
  this._buildRenderGroup(child, set, buffer, ox, oy);
159
193
  }
@@ -180,7 +214,11 @@ export class WebGLRenderer {
180
214
  }
181
215
  }
182
216
  }
183
- // Emit a leaf instruction for a single DisplayObject (no $children).
217
+ /**
218
+ * Emit a leaf instruction (bitmap/mesh/shape/text/particle) for a single
219
+ * DisplayObject, based on its `$renderObjectType`. No-op for object types
220
+ * that don't map to a render pipe (e.g. plain containers).
221
+ */
184
222
  _buildLeaf(obj, set, buffer, offsetX, offsetY) {
185
223
  const transform = this._snapshotTransform(buffer, offsetX, offsetY);
186
224
  switch (obj.$renderObjectType) {
@@ -246,6 +284,12 @@ export class WebGLRenderer {
246
284
  break;
247
285
  }
248
286
  }
287
+ /**
288
+ * Wrap `obj`'s subtree with filter push/pop instructions. Skips the
289
+ * wrapper entirely (falls through to a plain build) if `obj` has no
290
+ * filters, since an empty push/pop pair would still incur an offscreen
291
+ * buffer allocation for nothing.
292
+ */
249
293
  _buildFilter(obj, set, buffer, offsetX, offsetY) {
250
294
  const filters = obj.$filters;
251
295
  if (!filters.length) {
@@ -260,6 +304,9 @@ export class WebGLRenderer {
260
304
  this._buildInstructions(obj, set, buffer, offsetX, offsetY);
261
305
  set.add(FilterPipe.makePop(obj, push));
262
306
  }
307
+ /**
308
+ * Wrap `obj`'s subtree with mask push/pop instructions (`obj.$mask`).
309
+ */
263
310
  _buildClip(obj, set, buffer, offsetX, offsetY) {
264
311
  const transform = this._snapshotTransform(buffer, offsetX, offsetY);
265
312
  const push = Object.assign(MaskPipe.makePush(obj, offsetX, offsetY), { transform });
@@ -267,6 +314,11 @@ export class WebGLRenderer {
267
314
  this._buildInstructions(obj, set, buffer, offsetX, offsetY);
268
315
  set.add(MaskPipe.makePop(obj, push));
269
316
  }
317
+ /**
318
+ * Wrap `obj`'s subtree with a mask push/pop pair driven by its
319
+ * `$scrollRect`/`$maskRect`, using the mask pipe's scrollRect path
320
+ * (`isScrollRect`) rather than a full clip mask.
321
+ */
270
322
  _buildScrollRect(obj, set, buffer, offsetX, offsetY) {
271
323
  const rect = obj.$scrollRect ?? obj.$maskRect;
272
324
  if (!rect || rect.isEmpty())
@@ -317,7 +369,10 @@ export class WebGLRenderer {
317
369
  transform,
318
370
  });
319
371
  }
320
- // Build a synthetic instruction for a cacheAsBitmap object.
372
+ /**
373
+ * Build a `displayListCache` instruction for a `cacheAsBitmap` object.
374
+ * Returns `undefined` if the object has no `$displayList` cache.
375
+ */
321
376
  _makeCacheInstruction(obj, offsetX, offsetY, buffer) {
322
377
  const $displayList = obj.$displayList;
323
378
  if (!$displayList)
@@ -348,18 +403,40 @@ export class WebGLRenderer {
348
403
  };
349
404
  }
350
405
  // ── Partial update ────────────────────────────────────────────────────────
406
+ /**
407
+ * Patch cached transform/alpha/tint snapshots for objects marked dirty
408
+ * since the last build, without forcing a full instruction rebuild.
409
+ *
410
+ * `set.renderableIndex.get(obj)` misses (returns `undefined`) in two
411
+ * distinct cases, both handled by recursing/flagging rather than
412
+ * refreshing directly:
413
+ * 1. `obj` is a plain container (or any non-leaf) whose own
414
+ * transform/alpha/tint changed. Containers never get a leaf
415
+ * instruction (see `_buildLeaf`'s switch — containers don't match any
416
+ * `RenderObjectType` case), so without recursing into descendants here,
417
+ * their cached snapshots would never be refreshed: Canvas re-walks the
418
+ * tree every frame and picks up new state for free, but WebGL's
419
+ * snapshot-based leaves would keep drawing at the old position
420
+ * indefinitely.
421
+ * 2. `obj` is a leaf-type object that was skipped during
422
+ * `_buildInstructions` because its graphics commands were empty at
423
+ * build time (e.g. a UI component whose Validator fills commands one
424
+ * frame later). If it now has graphics content, flag the set for a
425
+ * full rebuild so it gets an instruction.
426
+ *
427
+ * When a hit is found, the snapshot is rebuilt from the object's current
428
+ * world transform rather than `buffer.globalMatrix`, since that reflects
429
+ * the main buffer's current state, not this object's.
430
+ */
351
431
  _updateDirtyRenderables(set) {
352
432
  for (let i = 0; i < set.dirtyRenderableCount; i++) {
353
433
  const obj = set.dirtyRenderables[i];
354
- // Look up the instruction index for this object.
355
434
  const idx = set.renderableIndex.get(obj);
356
435
  if (idx === undefined) {
357
- // This object has no instruction — it may have been skipped during
358
- // _buildInstructions because its graphics commands were empty at the
359
- // time (e.g. UI components whose Validator fills commands one frame
360
- // later). If it now has graphics content, trigger a full rebuild so
361
- // it gets an instruction.
362
- if (this._hasGraphicsContent(obj)) {
436
+ if (obj.$children && obj.$children.length > 0) {
437
+ this._refreshDescendantTransforms(obj, set);
438
+ }
439
+ else if (this._hasGraphicsContent(obj)) {
363
440
  set.structureDirty = true;
364
441
  }
365
442
  continue;
@@ -367,13 +444,40 @@ export class WebGLRenderer {
367
444
  const inst = set.instructions[idx];
368
445
  if (!inst)
369
446
  continue;
370
- // Recompute the transform snapshot from the object's current world state.
371
- // We can't use buffer.globalMatrix here (it's the main buffer's current
372
- // state, not the object's world transform), so we rebuild from scratch.
373
447
  this._refreshLeafTransform(obj, inst);
374
448
  }
375
449
  set.dirtyRenderableCount = 0;
376
450
  }
451
+ /**
452
+ * Recursively refresh the transform snapshot of every descendant leaf
453
+ * instruction under `obj`. Used when an ancestor container's own
454
+ * transform/alpha/tint changed — the container itself has no instruction,
455
+ * but its descendants' cached snapshots are now stale and must be patched
456
+ * without forcing a full structural rebuild.
457
+ *
458
+ * Stops descending into a subtree once it hits a nested RenderGroup —
459
+ * that subtree owns its own InstructionSet and is refreshed independently
460
+ * (see markRenderableDirty's RenderGroup routing), so walking into it here
461
+ * would refresh against the wrong InstructionSet.
462
+ */
463
+ _refreshDescendantTransforms(obj, set) {
464
+ const children = obj.$children;
465
+ if (!children)
466
+ return;
467
+ for (const child of children) {
468
+ if (child instanceof DisplayObjectContainer && child.isRenderGroup)
469
+ continue;
470
+ const idx = set.renderableIndex.get(child);
471
+ if (idx !== undefined) {
472
+ const inst = set.instructions[idx];
473
+ if (inst)
474
+ this._refreshLeafTransform(child, inst);
475
+ }
476
+ if (child.$children && child.$children.length > 0) {
477
+ this._refreshDescendantTransforms(child, set);
478
+ }
479
+ }
480
+ }
377
481
  /**
378
482
  * Recompute the transform snapshot for a leaf instruction from the object's
379
483
  * current concatenated matrix and cached world alpha/tint.
@@ -392,12 +496,19 @@ export class WebGLRenderer {
392
496
  t.alpha = obj.$worldAlpha;
393
497
  t.tint = obj.$worldTint;
394
498
  }
395
- /** Check if a display object now has graphics content that warrants an instruction. */
499
+ /**
500
+ * Check if a display object now has graphics content that warrants an instruction.
501
+ */
396
502
  _hasGraphicsContent(obj) {
397
503
  const graphics = obj.graphics;
398
504
  return graphics != null && graphics.commands.length > 0;
399
505
  }
400
506
  // ── Phase B: execute ──────────────────────────────────────────────────────
507
+ /**
508
+ * Walk `set` and dispatch each instruction to its render pipe. No
509
+ * scene-graph traversal happens here — `renderGroup` instructions recurse
510
+ * into their own nested `InstructionSet` via this same method.
511
+ */
401
512
  _executeInstructions(set, buffer) {
402
513
  // Stack for offscreen buffers opened by filter/mask push instructions.
403
514
  const offscreenStack = [];
@@ -516,7 +627,10 @@ export class WebGLRenderer {
516
627
  }
517
628
  }
518
629
  }
519
- // Restore the buffer's global matrix / alpha / tint from a snapshot.
630
+ /**
631
+ * Restore `buffer`'s global matrix/alpha/tint from a snapshot, adjusting
632
+ * for the buffer's offscreen origin if it's a filter/mask offscreen target.
633
+ */
520
634
  _applyTransform(buffer, t) {
521
635
  const m = buffer.globalMatrix;
522
636
  m.a = t.a;
@@ -544,7 +658,11 @@ export class WebGLRenderer {
544
658
  buf.offscreenOriginX = worldBX - padX;
545
659
  buf.offscreenOriginY = worldBY - padY;
546
660
  }
547
- // Execute a cacheAsBitmap DisplayList instruction.
661
+ /**
662
+ * Execute a `displayListCache` instruction: refresh the cached bitmap if
663
+ * dirty (re-rendering `obj`'s subtree via the canvas renderer into an
664
+ * offscreen surface), then draw that cached bitmap into `buffer`.
665
+ */
548
666
  _executeDisplayListCache(obj, buffer, offsetX, offsetY) {
549
667
  const $displayList = obj.$displayList;
550
668
  if (!$displayList)
@@ -584,7 +702,12 @@ export class WebGLRenderer {
584
702
  // into the offscreen buffer — this is the same as the old approach.
585
703
  return this._directDraw(obj, buffer, offsetX, offsetY);
586
704
  }
587
- // Direct draw (used for offscreen mask/filter buffers).
705
+ /**
706
+ * Draw `obj` and its subtree directly into `buffer`, bypassing the
707
+ * InstructionSet. Used for offscreen mask/filter buffers, which are
708
+ * rendered on demand rather than through the main build/execute pass.
709
+ * Returns the number of draw calls issued.
710
+ */
588
711
  _directDraw(obj, buffer, offsetX, offsetY) {
589
712
  let drawCalls = 0;
590
713
  // Bake offset into globalMatrix instead of buffer.offsetX
@@ -1 +1 @@
1
- {"version":3,"file":"WebGLRenderer.js","sourceRoot":"","sources":["../../../../src/blakron/player/webgl/WebGLRenderer.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"WebGLRenderer.js","sourceRoot":"","sources":["../../../../src/blakron/player/webgl/WebGLRenderer.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"WebGLUtils.d.ts","sourceRoot":"","sources":["../../../../src/blakron/player/webgl/WebGLUtils.ts"],"names":[],"mappings":"AAAA,kDAAkD;AAClD,eAAO,MAAM,cAAc,uBAAuB,CAAC;AACnD,eAAO,MAAM,iBAAiB,2BAA2B,CAAC;AAC1D,eAAO,MAAM,iBAAiB,0BAA0B,CAAC;AACzD,eAAO,MAAM,aAAa,uBAAuB,CAAC;AAElD;;;;GAIG;AACH,MAAM,MAAM,EAAE,GAAG,sBAAsB,GAAG,qBAAqB,CAAC;AAEhE,wBAAgB,aAAa,CAAC,EAAE,EAAE,EAAE,EAAE,IAAI,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,GAAG,WAAW,CAQ/E;AAED,wBAAgB,aAAa,CAAC,EAAE,EAAE,EAAE,EAAE,OAAO,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,GAAG,YAAY,CAWpF;AAED,wBAAgB,kBAAkB,CAAC,EAAE,EAAE,EAAE,GAAG,SAAS,EAAE,OAAO,EAAE,YAAY,GAAG,SAAS,GAAG,IAAI,CAI9F;AAGD,wBAAgB,eAAe,CAAC,IAAI,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,GAAG,MAAM,CAQnE;AAED,wBAAgB,iBAAiB,IAAI,OAAO,CAU3C"}
1
+ {"version":3,"file":"WebGLUtils.d.ts","sourceRoot":"","sources":["../../../../src/blakron/player/webgl/WebGLUtils.ts"],"names":[],"mappings":"AAAA,kDAAkD;AAClD,eAAO,MAAM,cAAc,uBAAuB,CAAC;AACnD,eAAO,MAAM,iBAAiB,2BAA2B,CAAC;AAC1D,eAAO,MAAM,iBAAiB,0BAA0B,CAAC;AACzD,eAAO,MAAM,aAAa,uBAAuB,CAAC;AAElD;;;;GAIG;AACH,MAAM,MAAM,EAAE,GAAG,sBAAsB,GAAG,qBAAqB,CAAC;AAEhE,wBAAgB,aAAa,CAAC,EAAE,EAAE,EAAE,EAAE,IAAI,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,GAAG,WAAW,CAQ/E;AAED,wBAAgB,aAAa,CAAC,EAAE,EAAE,EAAE,EAAE,OAAO,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,GAAG,YAAY,CAWpF;AAED,wBAAgB,kBAAkB,CAAC,EAAE,EAAE,EAAE,GAAG,SAAS,EAAE,OAAO,EAAE,YAAY,GAAG,SAAS,GAAG,IAAI,CAI9F;AAGD,wBAAgB,eAAe,CAAC,IAAI,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,GAAG,MAAM,CAQnE;AAED,wBAAgB,iBAAiB,IAAI,OAAO,CAO3C"}
@@ -47,8 +47,7 @@ export function premultiplyTint(tint, alpha) {
47
47
  export function checkWebGLSupport() {
48
48
  try {
49
49
  const canvas = document.createElement('canvas');
50
- return !!((window.WebGL2RenderingContext && canvas.getContext('webgl2')) ||
51
- (window.WebGLRenderingContext && (canvas.getContext('webgl') || canvas.getContext('experimental-webgl'))));
50
+ return !!(canvas.getContext('webgl2') || canvas.getContext('webgl'));
52
51
  }
53
52
  catch {
54
53
  return false;
@@ -1 +1 @@
1
- {"version":3,"file":"WebGLUtils.js","sourceRoot":"","sources":["../../../../src/blakron/player/webgl/WebGLUtils.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"WebGLUtils.js","sourceRoot":"","sources":["../../../../src/blakron/player/webgl/WebGLUtils.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"GraphicsPipe.d.ts","sourceRoot":"","sources":["../../../../../src/blakron/player/webgl/pipes/GraphicsPipe.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,8BAA8B,CAAC;AAC7D,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,mCAAmC,CAAC;AAEvE,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,yBAAyB,CAAC;AACjE,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,sBAAsB,CAAC;AACxD,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,sBAAsB,CAAC;AAC3D,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,qBAAqB,CAAC;AACtD,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,uBAAuB,CAAC;AAoB5D,MAAM,WAAW,mBAAoB,SAAQ,WAAW;IACvD,QAAQ,CAAC,YAAY,EAAE,UAAU,CAAC;IAClC,UAAU,EAAE,aAAa,CAAC;IAC1B,sDAAsD;IACtD,QAAQ,EAAE,QAAQ,CAAC;IACnB,OAAO,EAAE,MAAM,CAAC;IAChB,OAAO,EAAE,MAAM,CAAC;CAChB;AAgBD;;;;;;GAMG;AACH,qBAAa,YAAa,YAAW,UAAU,CAAC,aAAa,CAAC;IAE7D,gBAAuB,OAAO,cAAc;IAC5C,OAAO,CAAC,MAAM,CAAC,QAAQ,CAAC,KAAK,CAA6B;IAG1D,OAAO,CAAC,QAAQ,CAAC,eAAe,CAAiB;IACjD,OAAO,CAAC,QAAQ,CAAC,MAAM,CAA0C;IACjE,OAAO,CAAC,QAAQ,CAAC,eAAe,CAAmC;IACnE,OAAO,CAAC,GAAG,CAAC,CAAK;gBAGE,cAAc,EAAE,cAAc;IAIjD,OAAO,CAAC,MAAM,CAAC,MAAM;WAeP,OAAO,CAAC,IAAI,EAAE,mBAAmB,GAAG,IAAI;IAM/C,mBAAmB,CAAC,UAAU,EAAE,aAAa,EAAE,GAAG,EAAE,cAAc,GAAG,IAAI;IAQzE,gBAAgB,CAAC,WAAW,EAAE,aAAa,GAAG,IAAI;IAKlD,iBAAiB,CAAC,UAAU,EAAE,aAAa,GAAG,IAAI;IAkBlD,OAAO,CAAC,IAAI,EAAE,mBAAmB,EAAE,MAAM,EAAE,iBAAiB,GAAG,IAAI;CA8F1E"}
1
+ {"version":3,"file":"GraphicsPipe.d.ts","sourceRoot":"","sources":["../../../../../src/blakron/player/webgl/pipes/GraphicsPipe.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,8BAA8B,CAAC;AAC7D,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,mCAAmC,CAAC;AAEvE,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,yBAAyB,CAAC;AACjE,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,sBAAsB,CAAC;AACxD,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,sBAAsB,CAAC;AAC3D,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,qBAAqB,CAAC;AACtD,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,uBAAuB,CAAC;AAsB5D,MAAM,WAAW,mBAAoB,SAAQ,WAAW;IACvD,QAAQ,CAAC,YAAY,EAAE,UAAU,CAAC;IAClC,UAAU,EAAE,aAAa,CAAC;IAC1B,sDAAsD;IACtD,QAAQ,EAAE,QAAQ,CAAC;IACnB,OAAO,EAAE,MAAM,CAAC;IAChB,OAAO,EAAE,MAAM,CAAC;CAChB;AAgBD;;;;;;GAMG;AACH,qBAAa,YAAa,YAAW,UAAU,CAAC,aAAa,CAAC;IAE7D,gBAAuB,OAAO,cAAc;IAC5C,OAAO,CAAC,MAAM,CAAC,QAAQ,CAAC,KAAK,CAA6B;IAG1D,OAAO,CAAC,QAAQ,CAAC,eAAe,CAAiB;IACjD,OAAO,CAAC,QAAQ,CAAC,MAAM,CAA0C;IACjE,OAAO,CAAC,QAAQ,CAAC,eAAe,CAAmC;IACnE,OAAO,CAAC,GAAG,CAAC,CAAK;gBAGE,cAAc,EAAE,cAAc;IAIjD,OAAO,CAAC,MAAM,CAAC,MAAM;WAeP,OAAO,CAAC,IAAI,EAAE,mBAAmB,GAAG,IAAI;IAM/C,mBAAmB,CAAC,UAAU,EAAE,aAAa,EAAE,GAAG,EAAE,cAAc,GAAG,IAAI;IAQzE,gBAAgB,CAAC,WAAW,EAAE,aAAa,GAAG,IAAI;IAKlD,iBAAiB,CAAC,UAAU,EAAE,aAAa,GAAG,IAAI;IAkBlD,OAAO,CAAC,IAAI,EAAE,mBAAmB,EAAE,MAAM,EAAE,iBAAiB,GAAG,IAAI;CA8F1E"}
@@ -4,9 +4,11 @@ import { RenderBuffer } from '../../canvas/index.js';
4
4
  const _scratchBounds = new Rectangle();
5
5
  // ── Texture GC registry ───────────────────────────────────────────────────────
6
6
  /**
7
- * When a Graphics object is GC'd, automatically release its WebGL texture.
8
- * This prevents GPU memory leaks when Shapes are created and discarded without
9
- * an explicit destroyRenderable() call.
7
+ * GC is the actual cleanup path for cached Graphics textures: nothing in the
8
+ * engine calls destroyRenderable() during normal Shape lifecycle (Shapes are
9
+ * typically just dropped), so this registry is what actually reclaims GPU
10
+ * memory. destroyRenderable() remains as an optional explicit entry for
11
+ * future use.
10
12
  */
11
13
  const _textureRegistry = new FinalizationRegistry(({ gl, texture }) => {
12
14
  gl.deleteTexture(texture);
@@ -1 +1 @@
1
- {"version":3,"file":"GraphicsPipe.js","sourceRoot":"","sources":["../../../../../src/blakron/player/webgl/pipes/GraphicsPipe.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"GraphicsPipe.js","sourceRoot":"","sources":["../../../../../src/blakron/player/webgl/pipes/GraphicsPipe.ts"],"names":[],"mappings":"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"}
@@ -31,6 +31,8 @@ export declare class TextPipe implements RenderPipe<TextField> {
31
31
  private static readonly _pool;
32
32
  private readonly _canvasRenderer;
33
33
  private readonly _cache;
34
+ private readonly _registryTokens;
35
+ private _gl?;
34
36
  constructor(canvasRenderer: CanvasRenderer);
35
37
  private static _alloc;
36
38
  static release(inst: TextInstruction): void;
@@ -1 +1 @@
1
- {"version":3,"file":"TextPipe.d.ts","sourceRoot":"","sources":["../../../../../src/blakron/player/webgl/pipes/TextPipe.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,4BAA4B,CAAC;AAE5D,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,yBAAyB,CAAC;AACjE,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,sBAAsB,CAAC;AACxD,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,sBAAsB,CAAC;AAC3D,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,qBAAqB,CAAC;AACtD,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,uBAAuB,CAAC;AAK5D,MAAM,WAAW,eAAgB,SAAQ,WAAW;IACnD,QAAQ,CAAC,YAAY,EAAE,MAAM,CAAC;IAC9B,UAAU,EAAE,SAAS,CAAC;IACtB,OAAO,EAAE,MAAM,CAAC;IAChB,OAAO,EAAE,MAAM,CAAC;CAChB;AAoBD;;;;;;;;;;;;;;;GAeG;AACH,qBAAa,QAAS,YAAW,UAAU,CAAC,SAAS,CAAC;IAErD,gBAAuB,OAAO,UAAU;IACxC,OAAO,CAAC,MAAM,CAAC,QAAQ,CAAC,KAAK,CAAyB;IAGtD,OAAO,CAAC,QAAQ,CAAC,eAAe,CAAiB;IACjD,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAuC;gBAG3C,cAAc,EAAE,cAAc;IAIjD,OAAO,CAAC,MAAM,CAAC,MAAM;WAaP,OAAO,CAAC,IAAI,EAAE,eAAe,GAAG,IAAI;IAM3C,mBAAmB,CAAC,EAAE,EAAE,SAAS,EAAE,GAAG,EAAE,cAAc,GAAG,IAAI;IAI7D,gBAAgB,CAAC,GAAG,EAAE,SAAS,GAAG,IAAI;IAKtC,iBAAiB,CAAC,EAAE,EAAE,SAAS,GAAG,IAAI;IAM7C;;;;;;;;;OASG;IACI,OAAO,CAAC,IAAI,EAAE,eAAe,EAAE,MAAM,EAAE,iBAAiB,GAAG,IAAI;CAmHtE"}
1
+ {"version":3,"file":"TextPipe.d.ts","sourceRoot":"","sources":["../../../../../src/blakron/player/webgl/pipes/TextPipe.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,4BAA4B,CAAC;AAE5D,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,yBAAyB,CAAC;AACjE,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,sBAAsB,CAAC;AACxD,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,sBAAsB,CAAC;AAC3D,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,qBAAqB,CAAC;AACtD,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,uBAAuB,CAAC;AAmB5D,MAAM,WAAW,eAAgB,SAAQ,WAAW;IACnD,QAAQ,CAAC,YAAY,EAAE,MAAM,CAAC;IAC9B,UAAU,EAAE,SAAS,CAAC;IACtB,OAAO,EAAE,MAAM,CAAC;IAChB,OAAO,EAAE,MAAM,CAAC;CAChB;AAoBD;;;;;;;;;;;;;;;GAeG;AACH,qBAAa,QAAS,YAAW,UAAU,CAAC,SAAS,CAAC;IAErD,gBAAuB,OAAO,UAAU;IACxC,OAAO,CAAC,MAAM,CAAC,QAAQ,CAAC,KAAK,CAAyB;IAGtD,OAAO,CAAC,QAAQ,CAAC,eAAe,CAAiB;IACjD,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAuC;IAC9D,OAAO,CAAC,QAAQ,CAAC,eAAe,CAAoC;IACpE,OAAO,CAAC,GAAG,CAAC,CAAK;gBAGE,cAAc,EAAE,cAAc;IAIjD,OAAO,CAAC,MAAM,CAAC,MAAM;WAaP,OAAO,CAAC,IAAI,EAAE,eAAe,GAAG,IAAI;IAM3C,mBAAmB,CAAC,EAAE,EAAE,SAAS,EAAE,GAAG,EAAE,cAAc,GAAG,IAAI;IAI7D,gBAAgB,CAAC,GAAG,EAAE,SAAS,GAAG,IAAI;IAKtC,iBAAiB,CAAC,EAAE,EAAE,SAAS,GAAG,IAAI;IAgB7C;;;;;;;;;OASG;IACI,OAAO,CAAC,IAAI,EAAE,eAAe,EAAE,MAAM,EAAE,iBAAiB,GAAG,IAAI;CAgItE"}
@@ -1,5 +1,16 @@
1
1
  import { TextFieldType } from '../../../text/enums/TextFieldType.js';
2
2
  import { RenderBuffer } from '../../canvas/index.js';
3
+ // ── Texture GC registry ───────────────────────────────────────────────────────
4
+ /**
5
+ * GC is the actual cleanup path for cached TextField textures: nothing in the
6
+ * engine calls destroyRenderable() during normal TextField lifecycle (UI
7
+ * relayouts, virtualized lists just drop references), so this registry is what
8
+ * actually reclaims GPU memory. destroyRenderable() remains as an optional
9
+ * explicit entry for future use. Mirrors GraphicsPipe's pattern.
10
+ */
11
+ const _textureRegistry = new FinalizationRegistry(({ gl, texture }) => {
12
+ gl.deleteTexture(texture);
13
+ });
3
14
  // ── Pipe ──────────────────────────────────────────────────────────────────────
4
15
  /**
5
16
  * Handles WebGL rendering of TextField display objects.
@@ -24,6 +35,8 @@ export class TextPipe {
24
35
  // ── Instance fields ───────────────────────────────────────────────────────
25
36
  _canvasRenderer;
26
37
  _cache = new WeakMap();
38
+ _registryTokens = new WeakMap();
39
+ _gl;
27
40
  // ── Constructor ───────────────────────────────────────────────────────────
28
41
  constructor(canvasRenderer) {
29
42
  this._canvasRenderer = canvasRenderer;
@@ -52,6 +65,17 @@ export class TextPipe {
52
65
  // which is checked at execute time — nothing to pre-upload here.
53
66
  }
54
67
  destroyRenderable(tf) {
68
+ const cache = this._cache.get(tf);
69
+ if (cache?.texture) {
70
+ // Unregister from GC registry and delete texture immediately.
71
+ const token = this._registryTokens.get(tf);
72
+ if (token) {
73
+ _textureRegistry.unregister(token);
74
+ this._registryTokens.delete(tf);
75
+ }
76
+ if (this._gl)
77
+ this._gl.deleteTexture(cache.texture);
78
+ }
55
79
  this._cache.delete(tf);
56
80
  }
57
81
  // ── Execute ───────────────────────────────────────────────────────────────
@@ -68,6 +92,9 @@ export class TextPipe {
68
92
  execute(inst, buffer) {
69
93
  const tf = inst.renderable;
70
94
  tf.getLinesArr(); // ensure lines are computed
95
+ // Cache the GL context for use in destroyRenderable.
96
+ if (!this._gl)
97
+ this._gl = buffer.context.gl;
71
98
  // ── INPUT mode while focused: HTML input element owns the display ────
72
99
  // Don't render the canvas texture — the native <input>/<textarea>
73
100
  // is overlaid on top and already shows the text. Rendering here too
@@ -140,9 +167,20 @@ export class TextPipe {
140
167
  const surface = cache.renderBuffer.surface;
141
168
  if (!cache.texture) {
142
169
  cache.texture = buffer.context.createTexture(surface);
170
+ // Register for GC-based cleanup.
171
+ const token = {};
172
+ _textureRegistry.register(tf, { gl: buffer.context.gl, texture: cache.texture }, token);
173
+ this._registryTokens.set(tf, token);
143
174
  }
144
175
  else {
176
+ // Unregister old texture, create new registration for updated texture.
177
+ const oldToken = this._registryTokens.get(tf);
178
+ if (oldToken)
179
+ _textureRegistry.unregister(oldToken);
145
180
  buffer.context.updateTexture(cache.texture, surface);
181
+ const token = {};
182
+ _textureRegistry.register(tf, { gl: buffer.context.gl, texture: cache.texture }, token);
183
+ this._registryTokens.set(tf, token);
146
184
  }
147
185
  cache.textureWidth = pixelW;
148
186
  cache.textureHeight = pixelH;