@blakron/core 0.5.18 → 0.6.3

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 (134) hide show
  1. package/LICENSE +21 -0
  2. package/README.md +29 -30
  3. package/dist/blakron/benchmark/SceneRegistry.js +13 -13
  4. package/dist/blakron/benchmark/SceneRegistry.js.map +1 -1
  5. package/dist/blakron/display/Bitmap.d.ts +4 -4
  6. package/dist/blakron/display/Bitmap.d.ts.map +1 -1
  7. package/dist/blakron/display/Bitmap.js +23 -23
  8. package/dist/blakron/display/Bitmap.js.map +1 -1
  9. package/dist/blakron/display/DisplayObject.d.ts +82 -86
  10. package/dist/blakron/display/DisplayObject.d.ts.map +1 -1
  11. package/dist/blakron/display/DisplayObject.js +293 -331
  12. package/dist/blakron/display/DisplayObject.js.map +1 -1
  13. package/dist/blakron/display/DisplayObjectContainer.d.ts +9 -8
  14. package/dist/blakron/display/DisplayObjectContainer.d.ts.map +1 -1
  15. package/dist/blakron/display/DisplayObjectContainer.js +86 -101
  16. package/dist/blakron/display/DisplayObjectContainer.js.map +1 -1
  17. package/dist/blakron/display/Graphics.d.ts +3 -3
  18. package/dist/blakron/display/Graphics.d.ts.map +1 -1
  19. package/dist/blakron/display/Graphics.js +6 -6
  20. package/dist/blakron/display/Graphics.js.map +1 -1
  21. package/dist/blakron/display/Mesh.d.ts +1 -1
  22. package/dist/blakron/display/Mesh.d.ts.map +1 -1
  23. package/dist/blakron/display/Mesh.js +4 -4
  24. package/dist/blakron/display/Mesh.js.map +1 -1
  25. package/dist/blakron/display/Shape.d.ts +3 -3
  26. package/dist/blakron/display/Shape.d.ts.map +1 -1
  27. package/dist/blakron/display/Shape.js +10 -10
  28. package/dist/blakron/display/Shape.js.map +1 -1
  29. package/dist/blakron/display/Sprite.d.ts +3 -3
  30. package/dist/blakron/display/Sprite.d.ts.map +1 -1
  31. package/dist/blakron/display/Sprite.js +10 -10
  32. package/dist/blakron/display/Sprite.js.map +1 -1
  33. package/dist/blakron/display/Stage.js +2 -2
  34. package/dist/blakron/display/Stage.js.map +1 -1
  35. package/dist/blakron/display/texture/BitmapData.d.ts.map +1 -1
  36. package/dist/blakron/display/texture/BitmapData.js +13 -26
  37. package/dist/blakron/display/texture/BitmapData.js.map +1 -1
  38. package/dist/blakron/display/texture/RenderTexture.js +1 -1
  39. package/dist/blakron/display/texture/RenderTexture.js.map +1 -1
  40. package/dist/blakron/events/Event.d.ts.map +1 -1
  41. package/dist/blakron/events/Event.js +1 -0
  42. package/dist/blakron/events/Event.js.map +1 -1
  43. package/dist/blakron/events/EventDispatcher.d.ts.map +1 -1
  44. package/dist/blakron/events/EventDispatcher.js +13 -12
  45. package/dist/blakron/events/EventDispatcher.js.map +1 -1
  46. package/dist/blakron/events/TouchEvent.js +2 -2
  47. package/dist/blakron/events/TouchEvent.js.map +1 -1
  48. package/dist/blakron/filters/ColorMatrixFilter.d.ts +1 -1
  49. package/dist/blakron/filters/ColorMatrixFilter.d.ts.map +1 -1
  50. package/dist/blakron/filters/ColorMatrixFilter.js +3 -3
  51. package/dist/blakron/filters/ColorMatrixFilter.js.map +1 -1
  52. package/dist/blakron/media/Sound.d.ts +1 -0
  53. package/dist/blakron/media/Sound.d.ts.map +1 -1
  54. package/dist/blakron/media/Sound.js +23 -5
  55. package/dist/blakron/media/Sound.js.map +1 -1
  56. package/dist/blakron/media/Video.d.ts +1 -1
  57. package/dist/blakron/media/Video.d.ts.map +1 -1
  58. package/dist/blakron/media/Video.js +5 -5
  59. package/dist/blakron/media/Video.js.map +1 -1
  60. package/dist/blakron/net/HttpMethod.d.ts +6 -0
  61. package/dist/blakron/net/HttpMethod.d.ts.map +1 -1
  62. package/dist/blakron/net/HttpMethod.js +5 -0
  63. package/dist/blakron/net/HttpMethod.js.map +1 -1
  64. package/dist/blakron/net/HttpRequest.d.ts +40 -0
  65. package/dist/blakron/net/HttpRequest.d.ts.map +1 -1
  66. package/dist/blakron/net/HttpRequest.js +60 -2
  67. package/dist/blakron/net/HttpRequest.js.map +1 -1
  68. package/dist/blakron/net/HttpResponseType.d.ts +6 -0
  69. package/dist/blakron/net/HttpResponseType.d.ts.map +1 -1
  70. package/dist/blakron/net/HttpResponseType.js +5 -0
  71. package/dist/blakron/net/HttpResponseType.js.map +1 -1
  72. package/dist/blakron/net/ImageLoader.d.ts +18 -0
  73. package/dist/blakron/net/ImageLoader.d.ts.map +1 -1
  74. package/dist/blakron/net/ImageLoader.js +26 -4
  75. package/dist/blakron/net/ImageLoader.js.map +1 -1
  76. package/dist/blakron/player/Player.d.ts.map +1 -1
  77. package/dist/blakron/player/Player.js +18 -6
  78. package/dist/blakron/player/Player.js.map +1 -1
  79. package/dist/blakron/player/RenderPipe.d.ts +1 -1
  80. package/dist/blakron/player/SystemTicker.js +2 -2
  81. package/dist/blakron/player/SystemTicker.js.map +1 -1
  82. package/dist/blakron/player/TouchHandler.js +1 -1
  83. package/dist/blakron/player/TouchHandler.js.map +1 -1
  84. package/dist/blakron/player/canvas/CanvasRenderer.js +52 -52
  85. package/dist/blakron/player/canvas/CanvasRenderer.js.map +1 -1
  86. package/dist/blakron/player/canvas/DisplayList.js +1 -1
  87. package/dist/blakron/player/canvas/DisplayList.js.map +1 -1
  88. package/dist/blakron/player/webgl/WebGLRenderContext.d.ts +2 -5
  89. package/dist/blakron/player/webgl/WebGLRenderContext.d.ts.map +1 -1
  90. package/dist/blakron/player/webgl/WebGLRenderContext.js +3 -11
  91. package/dist/blakron/player/webgl/WebGLRenderContext.js.map +1 -1
  92. package/dist/blakron/player/webgl/WebGLRenderer.d.ts +107 -4
  93. package/dist/blakron/player/webgl/WebGLRenderer.d.ts.map +1 -1
  94. package/dist/blakron/player/webgl/WebGLRenderer.js +194 -91
  95. package/dist/blakron/player/webgl/WebGLRenderer.js.map +1 -1
  96. package/dist/blakron/player/webgl/pipes/FilterPipe.js +7 -7
  97. package/dist/blakron/player/webgl/pipes/FilterPipe.js.map +1 -1
  98. package/dist/blakron/player/webgl/pipes/GraphicsPipe.js +1 -1
  99. package/dist/blakron/player/webgl/pipes/GraphicsPipe.js.map +1 -1
  100. package/dist/blakron/player/webgl/pipes/MaskPipe.js +12 -12
  101. package/dist/blakron/player/webgl/pipes/MaskPipe.js.map +1 -1
  102. package/dist/blakron/player/webgl/pipes/ParticlePipe.js +1 -1
  103. package/dist/blakron/player/webgl/pipes/ParticlePipe.js.map +1 -1
  104. package/dist/blakron/player/webgl/pipes/TextPipe.d.ts +3 -1
  105. package/dist/blakron/player/webgl/pipes/TextPipe.d.ts.map +1 -1
  106. package/dist/blakron/player/webgl/pipes/TextPipe.js +42 -5
  107. package/dist/blakron/player/webgl/pipes/TextPipe.js.map +1 -1
  108. package/dist/blakron/resource/Resource.d.ts +16 -4
  109. package/dist/blakron/resource/Resource.d.ts.map +1 -1
  110. package/dist/blakron/resource/Resource.js +30 -20
  111. package/dist/blakron/resource/Resource.js.map +1 -1
  112. package/dist/blakron/resource/ResourceLoader.d.ts +20 -0
  113. package/dist/blakron/resource/ResourceLoader.d.ts.map +1 -1
  114. package/dist/blakron/resource/ResourceLoader.js +44 -16
  115. package/dist/blakron/resource/ResourceLoader.js.map +1 -1
  116. package/dist/blakron/system/Capabilities.d.ts +1 -1
  117. package/dist/blakron/system/Capabilities.d.ts.map +1 -1
  118. package/dist/blakron/system/Capabilities.js +1 -1
  119. package/dist/blakron/system/Capabilities.js.map +1 -1
  120. package/dist/blakron/text/BitmapText.d.ts +1 -1
  121. package/dist/blakron/text/BitmapText.d.ts.map +1 -1
  122. package/dist/blakron/text/BitmapText.js +11 -11
  123. package/dist/blakron/text/BitmapText.js.map +1 -1
  124. package/dist/blakron/text/InputController.js +1 -1
  125. package/dist/blakron/text/InputController.js.map +1 -1
  126. package/dist/blakron/text/TextField.d.ts +3 -3
  127. package/dist/blakron/text/TextField.d.ts.map +1 -1
  128. package/dist/blakron/text/TextField.js +33 -33
  129. package/dist/blakron/text/TextField.js.map +1 -1
  130. package/dist/blakron/utils/ByteArray.d.ts +0 -1
  131. package/dist/blakron/utils/ByteArray.d.ts.map +1 -1
  132. package/dist/blakron/utils/ByteArray.js +2 -5
  133. package/dist/blakron/utils/ByteArray.js.map +1 -1
  134. package/package.json +4 -6
@@ -22,7 +22,7 @@ import { WebGLRenderBuffer } from './WebGLRenderBuffer.js';
22
22
  * Walk the InstructionSet and dispatch each instruction to its pipe.
23
23
  * No scene-graph traversal happens here.
24
24
  *
25
- * When only data changes (renderDirty but not structureDirty):
25
+ * When only data changes ($renderDirty but not structureDirty):
26
26
  * Call pipe.updateRenderable() for each dirty object, then execute.
27
27
  */
28
28
  export class WebGLRenderer {
@@ -48,7 +48,10 @@ export class WebGLRenderer {
48
48
  this._textPipe = new TextPipe(this._canvasRenderer);
49
49
  }
50
50
  // ── Public entry point ────────────────────────────────────────────────────
51
- // Release pooled instructions back to their respective pipes before a rebuild.
51
+ /**
52
+ * Release pooled instructions (filter/mask push/pop) back to their
53
+ * respective pipes before a rebuild discards `set`'s current contents.
54
+ */
52
55
  _releaseInstructions(set) {
53
56
  for (let i = 0; i < set.instructionSize; i++) {
54
57
  const inst = set.instructions[i];
@@ -68,6 +71,11 @@ export class WebGLRenderer {
68
71
  }
69
72
  }
70
73
  }
74
+ /**
75
+ * Render `displayObject` into `buffer` and return the number of draw calls
76
+ * issued. Rebuilds the instruction set when the scene structure is dirty,
77
+ * otherwise patches dirty renderables in place, then executes.
78
+ */
71
79
  render(displayObject, buffer, matrix) {
72
80
  this._nestLevel++;
73
81
  const ctx = buffer.context;
@@ -96,8 +104,8 @@ export class WebGLRenderer {
96
104
  ctx.popBuffer();
97
105
  // Reset to identity — clean slate for next frame.
98
106
  buffer.setTransform(1, 0, 0, 1, 0, 0);
99
- // Root renderDirty is consumed after a full render pass.
100
- displayObject.renderDirty = false;
107
+ // Root $renderDirty is consumed after a full render pass.
108
+ displayObject.$renderDirty = false;
101
109
  this._nestLevel--;
102
110
  if (this._nestLevel === 0) {
103
111
  WebGLRenderBuffer.release(WebGLRenderBuffer.create(buffer.context, 0, 0));
@@ -106,59 +114,65 @@ export class WebGLRenderer {
106
114
  }
107
115
  // ── Phase A: build ────────────────────────────────────────────────────────
108
116
  /**
109
- * Recursively traverse the DisplayObject tree and append instructions to `set`.
110
- * Captures the current transform/alpha/tint state into each instruction.
117
+ * Recursively build render instructions for the display subtree rooted at
118
+ * `displayObject`, appending leaf/effect/group instructions into `set`.
119
+ *
120
+ * A `cacheAsBitmap` object is treated as a single opaque leaf: a synthetic
121
+ * `BitmapInstruction` backed by its DisplayList cache is emitted via
122
+ * `addLeaf` (not `add`), so an ancestor's later transform/alpha/tint
123
+ * change can still refresh this instruction's snapshot through the same
124
+ * `renderableIndex` path as ordinary leaves; the cache itself is refreshed
125
+ * lazily during the execute phase if dirty.
126
+ *
127
+ * A child with `isRenderGroup` is built into its own `InstructionSet` and
128
+ * emitted as a single `renderGroup` instruction in the parent set, rather
129
+ * than being inlined here.
111
130
  */
112
131
  _buildInstructions(displayObject, set, buffer, offsetX, offsetY, isStage = false) {
113
- // cacheAsBitmap treat as a single opaque leaf; render offscreen lazily.
114
- const displayList = displayObject.displayList;
115
- if (displayList && !isStage) {
116
- // Emit a synthetic BitmapInstruction backed by the DisplayList cache.
117
- // The execute phase will refresh the cache if dirty.
132
+ const $displayList = displayObject.$displayList;
133
+ if ($displayList && !isStage) {
118
134
  const inst = this._makeCacheInstruction(displayObject, offsetX, offsetY, buffer);
119
135
  if (inst)
120
- set.add(inst);
136
+ set.addLeaf(inst);
121
137
  return;
122
138
  }
123
139
  // Emit self instruction (Bitmap / Shape / Sprite / Mesh).
124
140
  this._buildLeaf(displayObject, set, buffer, offsetX, offsetY);
125
- const children = displayObject.children;
126
- if (!children || children.length === 0)
141
+ const $children = displayObject.$children;
142
+ if (!$children || $children.length === 0)
127
143
  return;
128
- for (const child of children) {
129
- if (child.renderMode === 1 /* RenderMode.NONE */)
144
+ for (const child of $children) {
145
+ if (child.$renderMode === 1 /* RenderMode.NONE */)
130
146
  continue;
131
147
  // Compute child transform.
132
148
  let ox, oy;
133
149
  let savedMatrix;
134
- if (child.useTranslate) {
135
- const m = child.getMatrix();
136
- ox = offsetX + child.internalX;
137
- oy = offsetY + child.internalY;
150
+ if (child.$useTranslate) {
151
+ const m = child.$getMatrix();
152
+ ox = offsetX + child.$x;
153
+ oy = offsetY + child.$y;
138
154
  savedMatrix = Matrix.create();
139
155
  savedMatrix.copyFrom(buffer.globalMatrix);
140
156
  buffer.transform(m.a, m.b, m.c, m.d, ox, oy);
141
- ox = -child.internalAnchorOffsetX;
142
- oy = -child.internalAnchorOffsetY;
157
+ ox = -child.$anchorOffsetX;
158
+ oy = -child.$anchorOffsetY;
143
159
  }
144
160
  else {
145
- ox = offsetX + child.internalX - child.internalAnchorOffsetX;
146
- oy = offsetY + child.internalY - child.internalAnchorOffsetY;
161
+ ox = offsetX + child.$x - child.$anchorOffsetX;
162
+ oy = offsetY + child.$y - child.$anchorOffsetY;
147
163
  }
148
164
  const prevAlpha = buffer.globalAlpha;
149
- if (child.internalAlpha !== 1)
150
- buffer.globalAlpha *= child.internalAlpha;
165
+ if (child.$alpha !== 1)
166
+ buffer.globalAlpha *= child.$alpha;
151
167
  const prevTint = buffer.globalTintColor;
152
- if (child.tintRGB !== 0xffffff)
153
- buffer.globalTintColor = child.tintRGB;
168
+ if (child.$tintRGB !== 0xffffff)
169
+ buffer.globalTintColor = child.$tintRGB;
154
170
  // 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
171
  if (child instanceof DisplayObjectContainer && child.isRenderGroup) {
158
172
  this._buildRenderGroup(child, set, buffer, ox, oy);
159
173
  }
160
174
  else {
161
- switch (child.renderMode) {
175
+ switch (child.$renderMode) {
162
176
  case 2 /* RenderMode.FILTER */:
163
177
  this._buildFilter(child, set, buffer, ox, oy);
164
178
  break;
@@ -180,10 +194,14 @@ export class WebGLRenderer {
180
194
  }
181
195
  }
182
196
  }
183
- // Emit a leaf instruction for a single DisplayObject (no children).
197
+ /**
198
+ * Emit a leaf instruction (bitmap/mesh/shape/text/particle) for a single
199
+ * DisplayObject, based on its `$renderObjectType`. No-op for object types
200
+ * that don't map to a render pipe (e.g. plain containers).
201
+ */
184
202
  _buildLeaf(obj, set, buffer, offsetX, offsetY) {
185
203
  const transform = this._snapshotTransform(buffer, offsetX, offsetY);
186
- switch (obj.renderObjectType) {
204
+ switch (obj.$renderObjectType) {
187
205
  case 2 /* RenderObjectType.MESH */:
188
206
  set.addLeaf({
189
207
  renderPipeId: 'mesh',
@@ -246,8 +264,14 @@ export class WebGLRenderer {
246
264
  break;
247
265
  }
248
266
  }
267
+ /**
268
+ * Wrap `obj`'s subtree with filter push/pop instructions. Skips the
269
+ * wrapper entirely (falls through to a plain build) if `obj` has no
270
+ * filters, since an empty push/pop pair would still incur an offscreen
271
+ * buffer allocation for nothing.
272
+ */
249
273
  _buildFilter(obj, set, buffer, offsetX, offsetY) {
250
- const filters = obj.internalFilters;
274
+ const filters = obj.$filters;
251
275
  if (!filters.length) {
252
276
  this._buildInstructions(obj, set, buffer, offsetX, offsetY);
253
277
  return;
@@ -260,6 +284,9 @@ export class WebGLRenderer {
260
284
  this._buildInstructions(obj, set, buffer, offsetX, offsetY);
261
285
  set.add(FilterPipe.makePop(obj, push));
262
286
  }
287
+ /**
288
+ * Wrap `obj`'s subtree with mask push/pop instructions (`obj.$mask`).
289
+ */
263
290
  _buildClip(obj, set, buffer, offsetX, offsetY) {
264
291
  const transform = this._snapshotTransform(buffer, offsetX, offsetY);
265
292
  const push = Object.assign(MaskPipe.makePush(obj, offsetX, offsetY), { transform });
@@ -267,12 +294,17 @@ export class WebGLRenderer {
267
294
  this._buildInstructions(obj, set, buffer, offsetX, offsetY);
268
295
  set.add(MaskPipe.makePop(obj, push));
269
296
  }
297
+ /**
298
+ * Wrap `obj`'s subtree with a mask push/pop pair driven by its
299
+ * `$scrollRect`/`$maskRect`, using the mask pipe's scrollRect path
300
+ * (`isScrollRect`) rather than a full clip mask.
301
+ */
270
302
  _buildScrollRect(obj, set, buffer, offsetX, offsetY) {
271
- const rect = obj.internalScrollRect ?? obj.internalMaskRect;
303
+ const rect = obj.$scrollRect ?? obj.$maskRect;
272
304
  if (!rect || rect.isEmpty())
273
305
  return;
274
306
  let ox = offsetX, oy = offsetY;
275
- if (obj.internalScrollRect) {
307
+ if (obj.$scrollRect) {
276
308
  ox -= rect.x;
277
309
  oy -= rect.y;
278
310
  }
@@ -317,10 +349,13 @@ export class WebGLRenderer {
317
349
  transform,
318
350
  });
319
351
  }
320
- // Build a synthetic instruction for a cacheAsBitmap object.
352
+ /**
353
+ * Build a `displayListCache` instruction for a `cacheAsBitmap` object.
354
+ * Returns `undefined` if the object has no `$displayList` cache.
355
+ */
321
356
  _makeCacheInstruction(obj, offsetX, offsetY, buffer) {
322
- const displayList = obj.displayList;
323
- if (!displayList)
357
+ const $displayList = obj.$displayList;
358
+ if (!$displayList)
324
359
  return undefined;
325
360
  const transform = this._snapshotTransform(buffer, offsetX, offsetY);
326
361
  return {
@@ -348,18 +383,40 @@ export class WebGLRenderer {
348
383
  };
349
384
  }
350
385
  // ── Partial update ────────────────────────────────────────────────────────
386
+ /**
387
+ * Patch cached transform/alpha/tint snapshots for objects marked dirty
388
+ * since the last build, without forcing a full instruction rebuild.
389
+ *
390
+ * `set.renderableIndex.get(obj)` misses (returns `undefined`) in two
391
+ * distinct cases, both handled by recursing/flagging rather than
392
+ * refreshing directly:
393
+ * 1. `obj` is a plain container (or any non-leaf) whose own
394
+ * transform/alpha/tint changed. Containers never get a leaf
395
+ * instruction (see `_buildLeaf`'s switch — containers don't match any
396
+ * `RenderObjectType` case), so without recursing into descendants here,
397
+ * their cached snapshots would never be refreshed: Canvas re-walks the
398
+ * tree every frame and picks up new state for free, but WebGL's
399
+ * snapshot-based leaves would keep drawing at the old position
400
+ * indefinitely.
401
+ * 2. `obj` is a leaf-type object that was skipped during
402
+ * `_buildInstructions` because its graphics commands were empty at
403
+ * build time (e.g. a UI component whose Validator fills commands one
404
+ * frame later). If it now has graphics content, flag the set for a
405
+ * full rebuild so it gets an instruction.
406
+ *
407
+ * When a hit is found, the snapshot is rebuilt from the object's current
408
+ * world transform rather than `buffer.globalMatrix`, since that reflects
409
+ * the main buffer's current state, not this object's.
410
+ */
351
411
  _updateDirtyRenderables(set) {
352
412
  for (let i = 0; i < set.dirtyRenderableCount; i++) {
353
413
  const obj = set.dirtyRenderables[i];
354
- // Look up the instruction index for this object.
355
414
  const idx = set.renderableIndex.get(obj);
356
415
  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)) {
416
+ if (obj.$children && obj.$children.length > 0) {
417
+ this._refreshDescendantTransforms(obj, set);
418
+ }
419
+ else if (this._hasGraphicsContent(obj)) {
363
420
  set.structureDirty = true;
364
421
  }
365
422
  continue;
@@ -367,19 +424,46 @@ export class WebGLRenderer {
367
424
  const inst = set.instructions[idx];
368
425
  if (!inst)
369
426
  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
427
  this._refreshLeafTransform(obj, inst);
374
428
  }
375
429
  set.dirtyRenderableCount = 0;
376
430
  }
431
+ /**
432
+ * Recursively refresh the transform snapshot of every descendant leaf
433
+ * instruction under `obj`. Used when an ancestor container's own
434
+ * transform/alpha/tint changed — the container itself has no instruction,
435
+ * but its descendants' cached snapshots are now stale and must be patched
436
+ * without forcing a full structural rebuild.
437
+ *
438
+ * Stops descending into a subtree once it hits a nested RenderGroup —
439
+ * that subtree owns its own InstructionSet and is refreshed independently
440
+ * (see markRenderableDirty's RenderGroup routing), so walking into it here
441
+ * would refresh against the wrong InstructionSet.
442
+ */
443
+ _refreshDescendantTransforms(obj, set) {
444
+ const children = obj.$children;
445
+ if (!children)
446
+ return;
447
+ for (const child of children) {
448
+ if (child instanceof DisplayObjectContainer && child.isRenderGroup)
449
+ continue;
450
+ const idx = set.renderableIndex.get(child);
451
+ if (idx !== undefined) {
452
+ const inst = set.instructions[idx];
453
+ if (inst)
454
+ this._refreshLeafTransform(child, inst);
455
+ }
456
+ if (child.$children && child.$children.length > 0) {
457
+ this._refreshDescendantTransforms(child, set);
458
+ }
459
+ }
460
+ }
377
461
  /**
378
462
  * Recompute the transform snapshot for a leaf instruction from the object's
379
463
  * current concatenated matrix and cached world alpha/tint.
380
464
  */
381
465
  _refreshLeafTransform(obj, inst) {
382
- const cm = obj.getConcatenatedMatrix();
466
+ const cm = obj.$getConcatenatedMatrix();
383
467
  const t = inst.transform;
384
468
  t.a = cm.a;
385
469
  t.b = cm.b;
@@ -389,15 +473,22 @@ export class WebGLRenderer {
389
473
  t.ty = cm.ty;
390
474
  t.offsetX = 0;
391
475
  t.offsetY = 0;
392
- t.alpha = obj.worldAlpha;
393
- t.tint = obj.worldTint;
476
+ t.alpha = obj.$worldAlpha;
477
+ t.tint = obj.$worldTint;
394
478
  }
395
- /** Check if a display object now has graphics content that warrants an instruction. */
479
+ /**
480
+ * Check if a display object now has graphics content that warrants an instruction.
481
+ */
396
482
  _hasGraphicsContent(obj) {
397
483
  const graphics = obj.graphics;
398
484
  return graphics != null && graphics.commands.length > 0;
399
485
  }
400
486
  // ── Phase B: execute ──────────────────────────────────────────────────────
487
+ /**
488
+ * Walk `set` and dispatch each instruction to its render pipe. No
489
+ * scene-graph traversal happens here — `renderGroup` instructions recurse
490
+ * into their own nested `InstructionSet` via this same method.
491
+ */
401
492
  _executeInstructions(set, buffer) {
402
493
  // Stack for offscreen buffers opened by filter/mask push instructions.
403
494
  const offscreenStack = [];
@@ -460,7 +551,7 @@ export class WebGLRenderer {
460
551
  const offscreen = this._filterPipe.executePush(push, activeBuffer);
461
552
  offscreenStack.push(offscreen);
462
553
  if (offscreen) {
463
- this._setOffscreenOrigin(offscreen, push.renderable.getOriginalBounds(), pushT);
554
+ this._setOffscreenOrigin(offscreen, push.renderable.$getOriginalBounds(), pushT);
464
555
  activeBuffer = offscreen;
465
556
  }
466
557
  break;
@@ -488,7 +579,7 @@ export class WebGLRenderer {
488
579
  const displayBuffer = this._maskPipe.executeClipPush(push, activeBuffer, this);
489
580
  offscreenStack.push(displayBuffer);
490
581
  if (displayBuffer) {
491
- this._setOffscreenOrigin(displayBuffer, push.renderable.getOriginalBounds(), pushT);
582
+ this._setOffscreenOrigin(displayBuffer, push.renderable.$getOriginalBounds(), pushT);
492
583
  activeBuffer = displayBuffer;
493
584
  }
494
585
  }
@@ -516,7 +607,10 @@ export class WebGLRenderer {
516
607
  }
517
608
  }
518
609
  }
519
- // Restore the buffer's global matrix / alpha / tint from a snapshot.
610
+ /**
611
+ * Restore `buffer`'s global matrix/alpha/tint from a snapshot, adjusting
612
+ * for the buffer's offscreen origin if it's a filter/mask offscreen target.
613
+ */
520
614
  _applyTransform(buffer, t) {
521
615
  const m = buffer.globalMatrix;
522
616
  m.a = t.a;
@@ -544,32 +638,36 @@ export class WebGLRenderer {
544
638
  buf.offscreenOriginX = worldBX - padX;
545
639
  buf.offscreenOriginY = worldBY - padY;
546
640
  }
547
- // Execute a cacheAsBitmap DisplayList instruction.
641
+ /**
642
+ * Execute a `displayListCache` instruction: refresh the cached bitmap if
643
+ * dirty (re-rendering `obj`'s subtree via the canvas renderer into an
644
+ * offscreen surface), then draw that cached bitmap into `buffer`.
645
+ */
548
646
  _executeDisplayListCache(obj, buffer, offsetX, offsetY) {
549
- const displayList = obj.displayList;
550
- if (!displayList)
647
+ const $displayList = obj.$displayList;
648
+ if (!$displayList)
551
649
  return;
552
- if (obj.cacheDirty || obj.renderDirty) {
553
- if (displayList.updateSurfaceSize()) {
554
- displayList.renderBuffer.clear();
555
- this._canvasRenderer.renderToContext(obj, displayList.renderBuffer.context, displayList.offsetX, displayList.offsetY);
556
- displayList.updateBitmapData();
650
+ if (obj.$cacheDirty || obj.$renderDirty) {
651
+ if ($displayList.updateSurfaceSize()) {
652
+ $displayList.renderBuffer.clear();
653
+ this._canvasRenderer.renderToContext(obj, $displayList.renderBuffer.context, $displayList.offsetX, $displayList.offsetY);
654
+ $displayList.updateBitmapData();
557
655
  }
558
- obj.cacheDirty = false;
559
- obj.renderDirty = false;
656
+ obj.$cacheDirty = false;
657
+ obj.$renderDirty = false;
560
658
  // Structure may have changed inside the cached subtree — mark dirty
561
659
  // so next frame rebuilds if the cache is invalidated.
562
660
  }
563
- if (!displayList.bitmapData?.source)
661
+ if (!$displayList.bitmapData?.source)
564
662
  return;
565
- const bd = displayList.bitmapData;
566
- const w = displayList.renderBuffer.width;
567
- const h = displayList.renderBuffer.height;
663
+ const bd = $displayList.bitmapData;
664
+ const w = $displayList.renderBuffer.width;
665
+ const h = $displayList.renderBuffer.height;
568
666
  // offsetX/Y already in globalMatrix via _applyTransform.
569
667
  if (offsetX !== 0 || offsetY !== 0) {
570
668
  buffer.globalMatrix.append(1, 0, 0, 1, offsetX, offsetY);
571
669
  }
572
- buffer.context.drawImage(bd, 0, 0, w, h, -displayList.offsetX, -displayList.offsetY, w, h, w, h, false);
670
+ buffer.context.drawImage(bd, 0, 0, w, h, -$displayList.offsetX, -$displayList.offsetY, w, h, w, h, false);
573
671
  if (offsetX !== 0 || offsetY !== 0) {
574
672
  buffer.globalMatrix.append(1, 0, 0, 1, -offsetX, -offsetY);
575
673
  }
@@ -584,7 +682,12 @@ export class WebGLRenderer {
584
682
  // into the offscreen buffer — this is the same as the old approach.
585
683
  return this._directDraw(obj, buffer, offsetX, offsetY);
586
684
  }
587
- // Direct draw (used for offscreen mask/filter buffers).
685
+ /**
686
+ * Draw `obj` and its subtree directly into `buffer`, bypassing the
687
+ * InstructionSet. Used for offscreen mask/filter buffers, which are
688
+ * rendered on demand rather than through the main build/execute pass.
689
+ * Returns the number of draw calls issued.
690
+ */
588
691
  _directDraw(obj, buffer, offsetX, offsetY) {
589
692
  let drawCalls = 0;
590
693
  // Bake offset into globalMatrix instead of buffer.offsetX
@@ -592,7 +695,7 @@ export class WebGLRenderer {
592
695
  if (offsetX !== 0 || offsetY !== 0) {
593
696
  buffer.globalMatrix.append(1, 0, 0, 1, offsetX, offsetY);
594
697
  }
595
- switch (obj.renderObjectType) {
698
+ switch (obj.$renderObjectType) {
596
699
  case 2 /* RenderObjectType.MESH */: {
597
700
  const inst = { renderPipeId: 'mesh', renderable: obj, offsetX: 0, offsetY: 0 };
598
701
  this._meshPipe.execute(inst, buffer);
@@ -663,34 +766,34 @@ export class WebGLRenderer {
663
766
  if (offsetX !== 0 || offsetY !== 0) {
664
767
  buffer.globalMatrix.append(1, 0, 0, 1, -offsetX, -offsetY);
665
768
  }
666
- const children = obj.children;
667
- if (!children)
769
+ const $children = obj.$children;
770
+ if (!$children)
668
771
  return drawCalls;
669
- for (const child of children) {
670
- if (child.renderMode === 1 /* RenderMode.NONE */)
772
+ for (const child of $children) {
773
+ if (child.$renderMode === 1 /* RenderMode.NONE */)
671
774
  continue;
672
775
  let ox, oy;
673
776
  let savedMatrix;
674
- if (child.useTranslate) {
675
- const m = child.getMatrix();
676
- ox = offsetX + child.internalX;
677
- oy = offsetY + child.internalY;
777
+ if (child.$useTranslate) {
778
+ const m = child.$getMatrix();
779
+ ox = offsetX + child.$x;
780
+ oy = offsetY + child.$y;
678
781
  savedMatrix = Matrix.create();
679
782
  savedMatrix.copyFrom(buffer.globalMatrix);
680
783
  buffer.transform(m.a, m.b, m.c, m.d, ox, oy);
681
- ox = -child.internalAnchorOffsetX;
682
- oy = -child.internalAnchorOffsetY;
784
+ ox = -child.$anchorOffsetX;
785
+ oy = -child.$anchorOffsetY;
683
786
  }
684
787
  else {
685
- ox = offsetX + child.internalX - child.internalAnchorOffsetX;
686
- oy = offsetY + child.internalY - child.internalAnchorOffsetY;
788
+ ox = offsetX + child.$x - child.$anchorOffsetX;
789
+ oy = offsetY + child.$y - child.$anchorOffsetY;
687
790
  }
688
791
  const prevAlpha = buffer.globalAlpha;
689
- if (child.internalAlpha !== 1)
690
- buffer.globalAlpha *= child.internalAlpha;
792
+ if (child.$alpha !== 1)
793
+ buffer.globalAlpha *= child.$alpha;
691
794
  const prevTint = buffer.globalTintColor;
692
- if (child.tintRGB !== 0xffffff)
693
- buffer.globalTintColor = child.tintRGB;
795
+ if (child.$tintRGB !== 0xffffff)
796
+ buffer.globalTintColor = child.$tintRGB;
694
797
  drawCalls += this._directDraw(child, buffer, ox, oy);
695
798
  buffer.globalAlpha = prevAlpha;
696
799
  buffer.globalTintColor = prevTint;
@@ -743,7 +846,7 @@ export class WebGLRenderer {
743
846
  */
744
847
  markRenderableDirty(obj) {
745
848
  // Walk up to find the nearest RenderGroup ancestor (if any).
746
- let p = obj.internalParent;
849
+ let p = obj.$parent;
747
850
  while (p) {
748
851
  if (p instanceof DisplayObjectContainer && p.isRenderGroup) {
749
852
  const groupSet = this._renderGroupSets.get(p);
@@ -753,7 +856,7 @@ export class WebGLRenderer {
753
856
  return;
754
857
  }
755
858
  }
756
- p = p.internalParent;
859
+ p = p.$parent;
757
860
  }
758
861
  // No RenderGroup ancestor — route to the root set.
759
862
  if (!this._instructionSet.structureDirty)
@@ -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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"}