@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.
- package/LICENSE +21 -0
- package/README.md +29 -30
- package/dist/blakron/benchmark/SceneRegistry.js +13 -13
- package/dist/blakron/benchmark/SceneRegistry.js.map +1 -1
- package/dist/blakron/display/Bitmap.d.ts +4 -4
- package/dist/blakron/display/Bitmap.d.ts.map +1 -1
- package/dist/blakron/display/Bitmap.js +23 -23
- package/dist/blakron/display/Bitmap.js.map +1 -1
- package/dist/blakron/display/DisplayObject.d.ts +82 -86
- package/dist/blakron/display/DisplayObject.d.ts.map +1 -1
- package/dist/blakron/display/DisplayObject.js +293 -331
- package/dist/blakron/display/DisplayObject.js.map +1 -1
- package/dist/blakron/display/DisplayObjectContainer.d.ts +9 -8
- package/dist/blakron/display/DisplayObjectContainer.d.ts.map +1 -1
- package/dist/blakron/display/DisplayObjectContainer.js +86 -101
- package/dist/blakron/display/DisplayObjectContainer.js.map +1 -1
- package/dist/blakron/display/Graphics.d.ts +3 -3
- package/dist/blakron/display/Graphics.d.ts.map +1 -1
- package/dist/blakron/display/Graphics.js +6 -6
- package/dist/blakron/display/Graphics.js.map +1 -1
- package/dist/blakron/display/Mesh.d.ts +1 -1
- package/dist/blakron/display/Mesh.d.ts.map +1 -1
- package/dist/blakron/display/Mesh.js +4 -4
- package/dist/blakron/display/Mesh.js.map +1 -1
- package/dist/blakron/display/Shape.d.ts +3 -3
- package/dist/blakron/display/Shape.d.ts.map +1 -1
- package/dist/blakron/display/Shape.js +10 -10
- package/dist/blakron/display/Shape.js.map +1 -1
- package/dist/blakron/display/Sprite.d.ts +3 -3
- package/dist/blakron/display/Sprite.d.ts.map +1 -1
- package/dist/blakron/display/Sprite.js +10 -10
- package/dist/blakron/display/Sprite.js.map +1 -1
- package/dist/blakron/display/Stage.js +2 -2
- package/dist/blakron/display/Stage.js.map +1 -1
- package/dist/blakron/display/texture/BitmapData.d.ts.map +1 -1
- package/dist/blakron/display/texture/BitmapData.js +13 -26
- package/dist/blakron/display/texture/BitmapData.js.map +1 -1
- package/dist/blakron/display/texture/RenderTexture.js +1 -1
- package/dist/blakron/display/texture/RenderTexture.js.map +1 -1
- package/dist/blakron/events/Event.d.ts.map +1 -1
- package/dist/blakron/events/Event.js +1 -0
- package/dist/blakron/events/Event.js.map +1 -1
- package/dist/blakron/events/EventDispatcher.d.ts.map +1 -1
- package/dist/blakron/events/EventDispatcher.js +13 -12
- package/dist/blakron/events/EventDispatcher.js.map +1 -1
- package/dist/blakron/events/TouchEvent.js +2 -2
- package/dist/blakron/events/TouchEvent.js.map +1 -1
- package/dist/blakron/filters/ColorMatrixFilter.d.ts +1 -1
- package/dist/blakron/filters/ColorMatrixFilter.d.ts.map +1 -1
- package/dist/blakron/filters/ColorMatrixFilter.js +3 -3
- package/dist/blakron/filters/ColorMatrixFilter.js.map +1 -1
- package/dist/blakron/media/Sound.d.ts +1 -0
- package/dist/blakron/media/Sound.d.ts.map +1 -1
- package/dist/blakron/media/Sound.js +23 -5
- package/dist/blakron/media/Sound.js.map +1 -1
- package/dist/blakron/media/Video.d.ts +1 -1
- package/dist/blakron/media/Video.d.ts.map +1 -1
- package/dist/blakron/media/Video.js +5 -5
- package/dist/blakron/media/Video.js.map +1 -1
- package/dist/blakron/net/HttpMethod.d.ts +6 -0
- package/dist/blakron/net/HttpMethod.d.ts.map +1 -1
- package/dist/blakron/net/HttpMethod.js +5 -0
- package/dist/blakron/net/HttpMethod.js.map +1 -1
- package/dist/blakron/net/HttpRequest.d.ts +40 -0
- package/dist/blakron/net/HttpRequest.d.ts.map +1 -1
- package/dist/blakron/net/HttpRequest.js +60 -2
- package/dist/blakron/net/HttpRequest.js.map +1 -1
- package/dist/blakron/net/HttpResponseType.d.ts +6 -0
- package/dist/blakron/net/HttpResponseType.d.ts.map +1 -1
- package/dist/blakron/net/HttpResponseType.js +5 -0
- package/dist/blakron/net/HttpResponseType.js.map +1 -1
- package/dist/blakron/net/ImageLoader.d.ts +18 -0
- package/dist/blakron/net/ImageLoader.d.ts.map +1 -1
- package/dist/blakron/net/ImageLoader.js +26 -4
- package/dist/blakron/net/ImageLoader.js.map +1 -1
- package/dist/blakron/player/Player.d.ts.map +1 -1
- package/dist/blakron/player/Player.js +18 -6
- package/dist/blakron/player/Player.js.map +1 -1
- package/dist/blakron/player/RenderPipe.d.ts +1 -1
- package/dist/blakron/player/SystemTicker.js +2 -2
- package/dist/blakron/player/SystemTicker.js.map +1 -1
- package/dist/blakron/player/TouchHandler.js +1 -1
- package/dist/blakron/player/TouchHandler.js.map +1 -1
- package/dist/blakron/player/canvas/CanvasRenderer.js +52 -52
- package/dist/blakron/player/canvas/CanvasRenderer.js.map +1 -1
- package/dist/blakron/player/canvas/DisplayList.js +1 -1
- package/dist/blakron/player/canvas/DisplayList.js.map +1 -1
- package/dist/blakron/player/webgl/WebGLRenderContext.d.ts +2 -5
- package/dist/blakron/player/webgl/WebGLRenderContext.d.ts.map +1 -1
- package/dist/blakron/player/webgl/WebGLRenderContext.js +3 -11
- package/dist/blakron/player/webgl/WebGLRenderContext.js.map +1 -1
- package/dist/blakron/player/webgl/WebGLRenderer.d.ts +107 -4
- package/dist/blakron/player/webgl/WebGLRenderer.d.ts.map +1 -1
- package/dist/blakron/player/webgl/WebGLRenderer.js +194 -91
- package/dist/blakron/player/webgl/WebGLRenderer.js.map +1 -1
- package/dist/blakron/player/webgl/pipes/FilterPipe.js +7 -7
- package/dist/blakron/player/webgl/pipes/FilterPipe.js.map +1 -1
- package/dist/blakron/player/webgl/pipes/GraphicsPipe.js +1 -1
- package/dist/blakron/player/webgl/pipes/GraphicsPipe.js.map +1 -1
- package/dist/blakron/player/webgl/pipes/MaskPipe.js +12 -12
- package/dist/blakron/player/webgl/pipes/MaskPipe.js.map +1 -1
- package/dist/blakron/player/webgl/pipes/ParticlePipe.js +1 -1
- package/dist/blakron/player/webgl/pipes/ParticlePipe.js.map +1 -1
- package/dist/blakron/player/webgl/pipes/TextPipe.d.ts +3 -1
- package/dist/blakron/player/webgl/pipes/TextPipe.d.ts.map +1 -1
- package/dist/blakron/player/webgl/pipes/TextPipe.js +42 -5
- package/dist/blakron/player/webgl/pipes/TextPipe.js.map +1 -1
- package/dist/blakron/resource/Resource.d.ts +16 -4
- package/dist/blakron/resource/Resource.d.ts.map +1 -1
- package/dist/blakron/resource/Resource.js +30 -20
- package/dist/blakron/resource/Resource.js.map +1 -1
- package/dist/blakron/resource/ResourceLoader.d.ts +20 -0
- package/dist/blakron/resource/ResourceLoader.d.ts.map +1 -1
- package/dist/blakron/resource/ResourceLoader.js +44 -16
- package/dist/blakron/resource/ResourceLoader.js.map +1 -1
- package/dist/blakron/system/Capabilities.d.ts +1 -1
- package/dist/blakron/system/Capabilities.d.ts.map +1 -1
- package/dist/blakron/system/Capabilities.js +1 -1
- package/dist/blakron/system/Capabilities.js.map +1 -1
- package/dist/blakron/text/BitmapText.d.ts +1 -1
- package/dist/blakron/text/BitmapText.d.ts.map +1 -1
- package/dist/blakron/text/BitmapText.js +11 -11
- package/dist/blakron/text/BitmapText.js.map +1 -1
- package/dist/blakron/text/InputController.js +1 -1
- package/dist/blakron/text/InputController.js.map +1 -1
- package/dist/blakron/text/TextField.d.ts +3 -3
- package/dist/blakron/text/TextField.d.ts.map +1 -1
- package/dist/blakron/text/TextField.js +33 -33
- package/dist/blakron/text/TextField.js.map +1 -1
- package/dist/blakron/utils/ByteArray.d.ts +0 -1
- package/dist/blakron/utils/ByteArray.d.ts.map +1 -1
- package/dist/blakron/utils/ByteArray.js +2 -5
- package/dist/blakron/utils/ByteArray.js.map +1 -1
- 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
|
-
|
|
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
|
|
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
|
|
110
|
-
*
|
|
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
|
-
|
|
114
|
-
|
|
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.
|
|
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
|
|
126
|
-
if (
|
|
141
|
+
const $children = displayObject.$children;
|
|
142
|
+
if (!$children || $children.length === 0)
|
|
127
143
|
return;
|
|
128
|
-
for (const child of children) {
|
|
129
|
-
if (child
|
|
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
|
|
135
|
-
const m = child
|
|
136
|
-
ox = offsetX + child
|
|
137
|
-
oy = offsetY + child
|
|
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
|
|
142
|
-
oy = -child
|
|
157
|
+
ox = -child.$anchorOffsetX;
|
|
158
|
+
oy = -child.$anchorOffsetY;
|
|
143
159
|
}
|
|
144
160
|
else {
|
|
145
|
-
ox = offsetX + child
|
|
146
|
-
oy = offsetY + child
|
|
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
|
|
150
|
-
buffer.globalAlpha *= child
|
|
165
|
+
if (child.$alpha !== 1)
|
|
166
|
+
buffer.globalAlpha *= child.$alpha;
|
|
151
167
|
const prevTint = buffer.globalTintColor;
|
|
152
|
-
if (child
|
|
153
|
-
buffer.globalTintColor = child
|
|
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
|
|
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
|
-
|
|
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
|
|
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
|
|
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
|
|
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
|
|
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
|
-
|
|
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
|
|
323
|
-
if (
|
|
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
|
-
|
|
358
|
-
|
|
359
|
-
|
|
360
|
-
|
|
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
|
|
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
|
|
393
|
-
t.tint = obj
|
|
476
|
+
t.alpha = obj.$worldAlpha;
|
|
477
|
+
t.tint = obj.$worldTint;
|
|
394
478
|
}
|
|
395
|
-
/**
|
|
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
|
|
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
|
|
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
|
-
|
|
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
|
-
|
|
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
|
|
550
|
-
if (
|
|
647
|
+
const $displayList = obj.$displayList;
|
|
648
|
+
if (!$displayList)
|
|
551
649
|
return;
|
|
552
|
-
if (obj
|
|
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
|
|
559
|
-
obj
|
|
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 (
|
|
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,
|
|
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
|
-
|
|
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
|
|
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
|
|
667
|
-
if (
|
|
769
|
+
const $children = obj.$children;
|
|
770
|
+
if (!$children)
|
|
668
771
|
return drawCalls;
|
|
669
|
-
for (const child of children) {
|
|
670
|
-
if (child
|
|
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
|
|
675
|
-
const m = child
|
|
676
|
-
ox = offsetX + child
|
|
677
|
-
oy = offsetY + child
|
|
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
|
|
682
|
-
oy = -child
|
|
784
|
+
ox = -child.$anchorOffsetX;
|
|
785
|
+
oy = -child.$anchorOffsetY;
|
|
683
786
|
}
|
|
684
787
|
else {
|
|
685
|
-
ox = offsetX + child
|
|
686
|
-
oy = offsetY + child
|
|
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
|
|
690
|
-
buffer.globalAlpha *= child
|
|
792
|
+
if (child.$alpha !== 1)
|
|
793
|
+
buffer.globalAlpha *= child.$alpha;
|
|
691
794
|
const prevTint = buffer.globalTintColor;
|
|
692
|
-
if (child
|
|
693
|
-
buffer.globalTintColor = child
|
|
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
|
|
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
|
|
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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"}
|