@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
|
@@ -74,7 +74,7 @@ export class FilterPipe {
|
|
|
74
74
|
const filters = inst.filters;
|
|
75
75
|
if (!filters.length)
|
|
76
76
|
return undefined;
|
|
77
|
-
const bounds = inst.renderable
|
|
77
|
+
const bounds = inst.renderable.$getOriginalBounds();
|
|
78
78
|
if (bounds.width <= 0 || bounds.height <= 0)
|
|
79
79
|
return undefined;
|
|
80
80
|
// Inline ColorMatrix optimisation: no offscreen buffer needed.
|
|
@@ -82,11 +82,11 @@ export class FilterPipe {
|
|
|
82
82
|
// so the GL FBO + viewport/projection are in a known-good state before
|
|
83
83
|
// the leaf draw commands are queued. Without this, the colorTransform
|
|
84
84
|
// draw may execute against a stale FBO left by a previous filter pass.
|
|
85
|
-
if (!inst.renderable
|
|
86
|
-
const hasBlend = inst.renderable
|
|
85
|
+
if (!inst.renderable.$mask && filters.length === 1 && filters[0] instanceof ColorMatrixFilter) {
|
|
86
|
+
const hasBlend = inst.renderable.$blendMode !== 0;
|
|
87
87
|
if (hasBlend) {
|
|
88
88
|
inst.savedBlendMode = buffer.context.currentBlendMode;
|
|
89
|
-
buffer.context.setGlobalCompositeOperation(BLEND_MODES[inst.renderable
|
|
89
|
+
buffer.context.setGlobalCompositeOperation(BLEND_MODES[inst.renderable.$blendMode] ?? 'source-over');
|
|
90
90
|
}
|
|
91
91
|
// Flush pending batched commands so the GL state is clean, then
|
|
92
92
|
// re-push the current buffer to guarantee an ACT_BUFFER command
|
|
@@ -128,8 +128,8 @@ export class FilterPipe {
|
|
|
128
128
|
executePop(inst, buffer, offscreen) {
|
|
129
129
|
const { renderable, push } = inst;
|
|
130
130
|
const filters = push.filters;
|
|
131
|
-
const hasBlend = renderable
|
|
132
|
-
const blendOp = BLEND_MODES[renderable
|
|
131
|
+
const hasBlend = renderable.$blendMode !== 0;
|
|
132
|
+
const blendOp = BLEND_MODES[renderable.$blendMode] ?? 'source-over';
|
|
133
133
|
// Inline ColorMatrix path — clear the filter flag and pop the buffer
|
|
134
134
|
// that was pushed in executePush to balance the stack.
|
|
135
135
|
if (!offscreen) {
|
|
@@ -142,7 +142,7 @@ export class FilterPipe {
|
|
|
142
142
|
}
|
|
143
143
|
// Deactivate the offscreen buffer, restoring the main buffer as active.
|
|
144
144
|
offscreen.context.popBuffer();
|
|
145
|
-
const bounds = renderable
|
|
145
|
+
const bounds = renderable.$getOriginalBounds();
|
|
146
146
|
const bx = bounds.x;
|
|
147
147
|
const by = bounds.y;
|
|
148
148
|
// Save the current blend mode before applying the filter's blend mode,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"FilterPipe.js","sourceRoot":"","sources":["../../../../../src/blakron/player/webgl/pipes/FilterPipe.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,iBAAiB,EAAE,MAAM,uCAAuC,CAAC;AAK1E,OAAO,EAAE,iBAAiB,IAAI,MAAM,EAAE,MAAM,yBAAyB,CAAC;AA0BtE,iFAAiF;AAEjF,MAAM,WAAW,GAA2B;IAC3C,CAAC,EAAE,aAAa;IAChB,CAAC,EAAE,SAAS;IACZ,CAAC,EAAE,iBAAiB;CACpB,CAAC;AAEF;;;;;;;;;GASG;AACH,MAAM,OAAO,UAAU;IACtB,6EAA6E;IACtE,MAAM,CAAU,OAAO,GAAG,YAAY,CAAC;IACvC,MAAM,CAAU,MAAM,GAAG,WAAW,CAAC;IACpC,MAAM,CAAU,SAAS,GAA4B,EAAE,CAAC;IACxD,MAAM,CAAU,QAAQ,GAA2B,EAAE,CAAC;IAE9D,6EAA6E;IAEtE,mBAAmB,CAAC,WAA0B,EAAE,IAAoB;QAC1E,uEAAuE;QACvE,+DAA+D;IAChE,CAAC;IAEM,gBAAgB,CAAC,WAA0B,IAAS,CAAC;IAE5D,4EAA4E;IAErE,MAAM,CAAC,QAAQ,CACrB,UAAyB,EACzB,OAAiB,EACjB,OAAe,EACf,OAAe;QAEf,MAAM,IAAI,GAAG,UAAU,CAAC,SAAS,CAAC,GAAG,EAAE,CAAC;QACxC,IAAI,IAAI,EAAE,CAAC;YACV,IAAI,CAAC,UAAU,GAAG,UAAU,CAAC;YAC7B,IAAI,CAAC,OAAO,GAAG,OAAO,CAAC;YACvB,IAAI,CAAC,OAAO,GAAG,OAAO,CAAC;YACvB,IAAI,CAAC,OAAO,GAAG,OAAO,CAAC;YACvB,IAAI,CAAC,cAAc,GAAG,aAAa,CAAC;YACpC,OAAO,IAAI,CAAC;QACb,CAAC;QACD,OAAO,EAAE,YAAY,EAAE,YAAY,EAAE,UAAU,EAAE,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE,cAAc,EAAE,aAAa,EAAE,CAAC;IAC7G,CAAC;IAEM,MAAM,CAAC,OAAO,CAAC,UAAyB,EAAE,IAA2B;QAC3E,MAAM,IAAI,GAAG,UAAU,CAAC,QAAQ,CAAC,GAAG,EAAE,CAAC;QACvC,IAAI,IAAI,EAAE,CAAC;YACV,IAAI,CAAC,UAAU,GAAG,UAAU,CAAC;YAC7B,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC;YACjB,OAAO,IAAI,CAAC;QACb,CAAC;QACD,OAAO,EAAE,YAAY,EAAE,WAAW,EAAE,UAAU,EAAE,IAAI,EAAE,CAAC;IACxD,CAAC;IAEM,MAAM,CAAC,WAAW,CAAC,IAA2B;QACpD,UAAU,CAAC,SAAS,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IACjC,CAAC;IAEM,MAAM,CAAC,UAAU,CAAC,IAA0B;QAClD,UAAU,CAAC,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IAChC,CAAC;IAED,6EAA6E;IAE7E;;;;;;;;;;;;OAYG;IACI,WAAW,CAAC,IAA2B,EAAE,MAAyB;QACxE,MAAM,OAAO,GAAG,IAAI,CAAC,OAAO,CAAC;QAC7B,IAAI,CAAC,OAAO,CAAC,MAAM;YAAE,OAAO,SAAS,CAAC;QAEtC,MAAM,MAAM,GAAG,IAAI,CAAC,UAAU,CAAC,
|
|
1
|
+
{"version":3,"file":"FilterPipe.js","sourceRoot":"","sources":["../../../../../src/blakron/player/webgl/pipes/FilterPipe.ts"],"names":[],"mappings":"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"}
|
|
@@ -89,7 +89,7 @@ export class GraphicsPipe {
|
|
|
89
89
|
this._gl = buffer.context.gl;
|
|
90
90
|
const bounds = _scratchBounds;
|
|
91
91
|
bounds.setEmpty();
|
|
92
|
-
graphics
|
|
92
|
+
graphics.$measureContentBounds(bounds);
|
|
93
93
|
const w = Math.ceil(bounds.width);
|
|
94
94
|
const h = Math.ceil(bounds.height);
|
|
95
95
|
if (w <= 0 || h <= 0) {
|
|
@@ -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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"}
|
|
@@ -52,7 +52,7 @@ export class MaskPipe {
|
|
|
52
52
|
*/
|
|
53
53
|
executeScrollRectPush(inst, buffer) {
|
|
54
54
|
const { renderable } = inst;
|
|
55
|
-
const rect = renderable
|
|
55
|
+
const rect = renderable.$scrollRect ?? renderable.$maskRect;
|
|
56
56
|
if (!rect || rect.isEmpty()) {
|
|
57
57
|
return false;
|
|
58
58
|
}
|
|
@@ -96,15 +96,15 @@ export class MaskPipe {
|
|
|
96
96
|
*/
|
|
97
97
|
executeClipPush(inst, buffer, renderer) {
|
|
98
98
|
const { renderable } = inst;
|
|
99
|
-
const scrollRect = renderable
|
|
100
|
-
// Simple case: no mask object, no children — stencil/scissor only.
|
|
101
|
-
if (!renderable
|
|
99
|
+
const scrollRect = renderable.$scrollRect ?? renderable.$maskRect;
|
|
100
|
+
// Simple case: no mask object, no $children — stencil/scissor only.
|
|
101
|
+
if (!renderable.$mask && (!renderable.$children || renderable.$children.length === 0)) {
|
|
102
102
|
if (scrollRect) {
|
|
103
103
|
buffer.context.pushMask(scrollRect.x + inst.offsetX, scrollRect.y + inst.offsetY, scrollRect.width, scrollRect.height);
|
|
104
104
|
}
|
|
105
105
|
return undefined;
|
|
106
106
|
}
|
|
107
|
-
const bounds = renderable
|
|
107
|
+
const bounds = renderable.$getOriginalBounds();
|
|
108
108
|
if (bounds.width <= 0 || bounds.height <= 0) {
|
|
109
109
|
return undefined;
|
|
110
110
|
}
|
|
@@ -119,10 +119,10 @@ export class MaskPipe {
|
|
|
119
119
|
executeClipPop(inst, buffer, displayBuffer, renderer) {
|
|
120
120
|
const { renderable, push } = inst;
|
|
121
121
|
const { offsetX, offsetY } = push;
|
|
122
|
-
const scrollRect = renderable
|
|
123
|
-
const hasBlend = renderable
|
|
122
|
+
const scrollRect = renderable.$scrollRect ?? renderable.$maskRect;
|
|
123
|
+
const hasBlend = renderable.$blendMode !== 0;
|
|
124
124
|
const blendOp = hasBlend
|
|
125
|
-
? ({ 0: 'source-over', 1: 'lighter', 2: 'destination-out' }[renderable
|
|
125
|
+
? ({ 0: 'source-over', 1: 'lighter', 2: 'destination-out' }[renderable.$blendMode] ?? 'source-over')
|
|
126
126
|
: 'source-over';
|
|
127
127
|
if (!displayBuffer) {
|
|
128
128
|
// Simple stencil path — just pop the mask.
|
|
@@ -131,19 +131,19 @@ export class MaskPipe {
|
|
|
131
131
|
}
|
|
132
132
|
return;
|
|
133
133
|
}
|
|
134
|
-
const bounds = renderable
|
|
134
|
+
const bounds = renderable.$getOriginalBounds();
|
|
135
135
|
const bx = bounds.x;
|
|
136
136
|
const by = bounds.y;
|
|
137
137
|
const bw = bounds.width;
|
|
138
138
|
const bh = bounds.height;
|
|
139
139
|
// Apply the mask object (if any) to the displayBuffer via destination-in.
|
|
140
|
-
const mask = renderable
|
|
140
|
+
const mask = renderable.$mask;
|
|
141
141
|
if (mask) {
|
|
142
142
|
const maskBuffer = WGLBuf.create(buffer.context, bw, bh);
|
|
143
143
|
maskBuffer.context.pushBuffer(maskBuffer);
|
|
144
144
|
const maskMatrix = Matrix.create();
|
|
145
|
-
maskMatrix.copyFrom(mask
|
|
146
|
-
mask
|
|
145
|
+
maskMatrix.copyFrom(mask.$getConcatenatedMatrix());
|
|
146
|
+
mask.$getConcatenatedMatrixAt(renderable, maskMatrix);
|
|
147
147
|
maskMatrix.translate(-bx, -by);
|
|
148
148
|
maskBuffer.setTransform(maskMatrix.a, maskMatrix.b, maskMatrix.c, maskMatrix.d, maskMatrix.tx, maskMatrix.ty);
|
|
149
149
|
Matrix.release(maskMatrix);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"MaskPipe.js","sourceRoot":"","sources":["../../../../../src/blakron/player/webgl/pipes/MaskPipe.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,MAAM,EAAE,MAAM,yBAAyB,CAAC;AAKjD,OAAO,EAAE,iBAAiB,IAAI,MAAM,EAAE,MAAM,yBAAyB,CAAC;AAkBtE,iFAAiF;AAEjF;;;;;GAKG;AACH,MAAM,OAAO,QAAQ;IACpB,6EAA6E;IACtE,MAAM,CAAU,OAAO,GAAG,UAAU,CAAC;IACrC,MAAM,CAAU,MAAM,GAAG,SAAS,CAAC;IAClC,MAAM,CAAU,SAAS,GAA0B,EAAE,CAAC;IACtD,MAAM,CAAU,QAAQ,GAAyB,EAAE,CAAC;IAE5D,6EAA6E;IAEtE,mBAAmB,CAAC,WAA0B,EAAE,IAAoB;QAC1E,6CAA6C;IAC9C,CAAC;IAEM,gBAAgB,CAAC,WAA0B,IAAS,CAAC;IAE5D,6EAA6E;IAEtE,MAAM,CAAC,QAAQ,CAAC,UAAyB,EAAE,OAAe,EAAE,OAAe;QACjF,MAAM,IAAI,GAAG,QAAQ,CAAC,SAAS,CAAC,GAAG,EAAE,CAAC;QACtC,IAAI,IAAI,EAAE,CAAC;YACV,IAAI,CAAC,UAAU,GAAG,UAAU,CAAC;YAC7B,IAAI,CAAC,OAAO,GAAG,OAAO,CAAC;YACvB,IAAI,CAAC,OAAO,GAAG,OAAO,CAAC;YACvB,IAAI,CAAC,YAAY,GAAG,SAAS,CAAC;YAC9B,OAAO,IAAI,CAAC;QACb,CAAC;QACD,OAAO,EAAE,YAAY,EAAE,UAAU,EAAE,UAAU,EAAE,OAAO,EAAE,OAAO,EAAE,CAAC;IACnE,CAAC;IAEM,MAAM,CAAC,OAAO,CAAC,UAAyB,EAAE,IAAyB;QACzE,MAAM,IAAI,GAAG,QAAQ,CAAC,QAAQ,CAAC,GAAG,EAAE,CAAC;QACrC,IAAI,IAAI,EAAE,CAAC;YACV,IAAI,CAAC,UAAU,GAAG,UAAU,CAAC;YAC7B,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC;YACjB,OAAO,IAAI,CAAC;QACb,CAAC;QACD,OAAO,EAAE,YAAY,EAAE,SAAS,EAAE,UAAU,EAAE,IAAI,EAAE,CAAC;IACtD,CAAC;IAEM,MAAM,CAAC,WAAW,CAAC,IAAyB;QAClD,QAAQ,CAAC,SAAS,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IAC/B,CAAC;IAEM,MAAM,CAAC,UAAU,CAAC,IAAwB;QAChD,QAAQ,CAAC,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IAC9B,CAAC;IAED,6EAA6E;IAE7E;;;OAGG;IACI,qBAAqB,CAAC,IAAyB,EAAE,MAAyB;QAChF,MAAM,EAAE,UAAU,EAAE,GAAG,IAAI,CAAC;QAC5B,MAAM,IAAI,GAAG,UAAU,CAAC,
|
|
1
|
+
{"version":3,"file":"MaskPipe.js","sourceRoot":"","sources":["../../../../../src/blakron/player/webgl/pipes/MaskPipe.ts"],"names":[],"mappings":"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"}
|
|
@@ -34,7 +34,7 @@ export class ParticlePipe {
|
|
|
34
34
|
const baseAlpha = buffer.globalAlpha;
|
|
35
35
|
for (let i = 0; i < ps.numParticles; i++) {
|
|
36
36
|
const particle = ps.particles[i];
|
|
37
|
-
const matrix = particle
|
|
37
|
+
const matrix = particle.$getMatrix(regX, regY);
|
|
38
38
|
buffer.globalMatrix.copyFrom(savedMatrix);
|
|
39
39
|
buffer.globalMatrix.append(matrix.a, matrix.b, matrix.c, matrix.d, matrix.tx, matrix.ty);
|
|
40
40
|
buffer.globalAlpha = baseAlpha * particle.alpha;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ParticlePipe.js","sourceRoot":"","sources":["../../../../../src/blakron/player/webgl/pipes/ParticlePipe.ts"],"names":[],"mappings":"AAMA,OAAO,EAAE,MAAM,EAAE,MAAM,yBAAyB,CAAC;AAWjD,iFAAiF;AAEjF;;;GAGG;AACH,MAAM,OAAO,YAAY;IACjB,MAAM,CAAU,OAAO,GAAG,UAAU,CAAC;IAE5C,6EAA6E;IAEtE,mBAAmB,CAAC,GAAkB,EAAE,IAAoB;QAClE,WAAW;IACZ,CAAC;IAEM,gBAAgB,CAAC,GAAkB;QACzC,WAAW;IACZ,CAAC;IAEM,iBAAiB,CAAC,GAAkB;QAC1C,WAAW;IACZ,CAAC;IAED,6EAA6E;IAEtE,OAAO,CAAC,IAAyB,EAAE,MAAyB;QAClE,MAAM,EAAE,GAAG,IAAI,CAAC,UAYf,CAAC;QAEF,IAAI,EAAE,CAAC,YAAY,KAAK,CAAC;YAAE,OAAO;QAElC,MAAM,OAAO,GAAG,EAAE,CAAC,OAAO,CAAC;QAC3B,MAAM,EAAE,GAAG,OAAO,CAAC,UAAU,CAAC;QAC9B,IAAI,CAAC,EAAE,EAAE,MAAM;YAAE,OAAO;QAExB,MAAM,IAAI,GAAG,OAAO,CAAC,YAAY,CAAC;QAClC,MAAM,IAAI,GAAG,OAAO,CAAC,aAAa,CAAC;QACnC,MAAM,IAAI,GAAG,IAAI,GAAG,CAAC,CAAC;QACtB,MAAM,IAAI,GAAG,IAAI,GAAG,CAAC,CAAC;QAEtB,MAAM,WAAW,GAAG,MAAM,CAAC,MAAM,EAAE,CAAC;QACpC,WAAW,CAAC,QAAQ,CAAC,MAAM,CAAC,YAAY,CAAC,CAAC;QAE1C,MAAM,SAAS,GAAG,MAAM,CAAC,WAAW,CAAC;QAErC,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,EAAE,CAAC,YAAY,EAAE,CAAC,EAAE,EAAE,CAAC;YAC1C,MAAM,QAAQ,GAAG,EAAE,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC;YACjC,MAAM,MAAM,GAAG,QAAQ,CAAC,
|
|
1
|
+
{"version":3,"file":"ParticlePipe.js","sourceRoot":"","sources":["../../../../../src/blakron/player/webgl/pipes/ParticlePipe.ts"],"names":[],"mappings":"AAMA,OAAO,EAAE,MAAM,EAAE,MAAM,yBAAyB,CAAC;AAWjD,iFAAiF;AAEjF;;;GAGG;AACH,MAAM,OAAO,YAAY;IACjB,MAAM,CAAU,OAAO,GAAG,UAAU,CAAC;IAE5C,6EAA6E;IAEtE,mBAAmB,CAAC,GAAkB,EAAE,IAAoB;QAClE,WAAW;IACZ,CAAC;IAEM,gBAAgB,CAAC,GAAkB;QACzC,WAAW;IACZ,CAAC;IAEM,iBAAiB,CAAC,GAAkB;QAC1C,WAAW;IACZ,CAAC;IAED,6EAA6E;IAEtE,OAAO,CAAC,IAAyB,EAAE,MAAyB;QAClE,MAAM,EAAE,GAAG,IAAI,CAAC,UAYf,CAAC;QAEF,IAAI,EAAE,CAAC,YAAY,KAAK,CAAC;YAAE,OAAO;QAElC,MAAM,OAAO,GAAG,EAAE,CAAC,OAAO,CAAC;QAC3B,MAAM,EAAE,GAAG,OAAO,CAAC,UAAU,CAAC;QAC9B,IAAI,CAAC,EAAE,EAAE,MAAM;YAAE,OAAO;QAExB,MAAM,IAAI,GAAG,OAAO,CAAC,YAAY,CAAC;QAClC,MAAM,IAAI,GAAG,OAAO,CAAC,aAAa,CAAC;QACnC,MAAM,IAAI,GAAG,IAAI,GAAG,CAAC,CAAC;QACtB,MAAM,IAAI,GAAG,IAAI,GAAG,CAAC,CAAC;QAEtB,MAAM,WAAW,GAAG,MAAM,CAAC,MAAM,EAAE,CAAC;QACpC,WAAW,CAAC,QAAQ,CAAC,MAAM,CAAC,YAAY,CAAC,CAAC;QAE1C,MAAM,SAAS,GAAG,MAAM,CAAC,WAAW,CAAC;QAErC,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,EAAE,CAAC,YAAY,EAAE,CAAC,EAAE,EAAE,CAAC;YAC1C,MAAM,QAAQ,GAAG,EAAE,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC;YACjC,MAAM,MAAM,GAAG,QAAQ,CAAC,UAAU,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC;YAE/C,MAAM,CAAC,YAAY,CAAC,QAAQ,CAAC,WAAW,CAAC,CAAC;YAC1C,MAAM,CAAC,YAAY,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,EAAE,MAAM,CAAC,CAAC,EAAE,MAAM,CAAC,CAAC,EAAE,MAAM,CAAC,CAAC,EAAE,MAAM,CAAC,EAAE,EAAE,MAAM,CAAC,EAAE,CAAC,CAAC;YAEzF,MAAM,CAAC,WAAW,GAAG,SAAS,GAAG,QAAQ,CAAC,KAAK,CAAC;YAEhD,MAAM,CAAC,OAAO,CAAC,SAAS,CACvB,EAAE,EACF,OAAO,CAAC,OAAO,EACf,OAAO,CAAC,OAAO,EACf,OAAO,CAAC,WAAW,EACnB,OAAO,CAAC,YAAY,EACpB,OAAO,CAAC,OAAO,EACf,OAAO,CAAC,OAAO,EACf,IAAI,EACJ,IAAI,EACJ,OAAO,CAAC,WAAW,EACnB,OAAO,CAAC,YAAY,EACpB,OAAO,CAAC,OAAO,IAAI,KAAK,EACxB,KAAK,CACL,CAAC;QACH,CAAC;QAED,MAAM,CAAC,YAAY,CAAC,QAAQ,CAAC,WAAW,CAAC,CAAC;QAC1C,MAAM,CAAC,WAAW,GAAG,SAAS,CAAC;QAC/B,MAAM,CAAC,OAAO,CAAC,WAAW,CAAC,CAAC;IAC7B,CAAC"}
|
|
@@ -23,7 +23,7 @@ export interface TextInstruction extends Instruction {
|
|
|
23
23
|
* 5. Draw the texture via `buffer.context.drawTexture()`, scaling back down
|
|
24
24
|
* by `canvasScale` so the on-screen size is correct.
|
|
25
25
|
*
|
|
26
|
-
* The cache is invalidated when `tf
|
|
26
|
+
* The cache is invalidated when `tf.$renderDirty` is true or when the
|
|
27
27
|
* dimensions / DPR change.
|
|
28
28
|
*/
|
|
29
29
|
export declare class TextPipe implements RenderPipe<TextField> {
|
|
@@ -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;
|
|
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;AAkB5D,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,15 @@
|
|
|
1
1
|
import { TextFieldType } from '../../../text/enums/TextFieldType.js';
|
|
2
2
|
import { RenderBuffer } from '../../canvas/index.js';
|
|
3
|
+
// ── Texture GC registry ───────────────────────────────────────────────────────
|
|
4
|
+
/**
|
|
5
|
+
* When a TextField is GC'd, automatically release its cached WebGL texture.
|
|
6
|
+
* TextFields are frequently created and discarded without an explicit
|
|
7
|
+
* destroyRenderable() call (e.g. UI relayouts, virtualized lists), so this
|
|
8
|
+
* is the primary cleanup path — mirrors GraphicsPipe's texture registry.
|
|
9
|
+
*/
|
|
10
|
+
const _textureRegistry = new FinalizationRegistry(({ gl, texture }) => {
|
|
11
|
+
gl.deleteTexture(texture);
|
|
12
|
+
});
|
|
3
13
|
// ── Pipe ──────────────────────────────────────────────────────────────────────
|
|
4
14
|
/**
|
|
5
15
|
* Handles WebGL rendering of TextField display objects.
|
|
@@ -14,7 +24,7 @@ import { RenderBuffer } from '../../canvas/index.js';
|
|
|
14
24
|
* 5. Draw the texture via `buffer.context.drawTexture()`, scaling back down
|
|
15
25
|
* by `canvasScale` so the on-screen size is correct.
|
|
16
26
|
*
|
|
17
|
-
* The cache is invalidated when `tf
|
|
27
|
+
* The cache is invalidated when `tf.$renderDirty` is true or when the
|
|
18
28
|
* dimensions / DPR change.
|
|
19
29
|
*/
|
|
20
30
|
export class TextPipe {
|
|
@@ -24,6 +34,8 @@ export class TextPipe {
|
|
|
24
34
|
// ── Instance fields ───────────────────────────────────────────────────────
|
|
25
35
|
_canvasRenderer;
|
|
26
36
|
_cache = new WeakMap();
|
|
37
|
+
_registryTokens = new WeakMap();
|
|
38
|
+
_gl;
|
|
27
39
|
// ── Constructor ───────────────────────────────────────────────────────────
|
|
28
40
|
constructor(canvasRenderer) {
|
|
29
41
|
this._canvasRenderer = canvasRenderer;
|
|
@@ -48,10 +60,21 @@ export class TextPipe {
|
|
|
48
60
|
set.add(TextPipe._alloc(tf, 0, 0));
|
|
49
61
|
}
|
|
50
62
|
updateRenderable(_tf) {
|
|
51
|
-
// Cache invalidation is driven by tf
|
|
63
|
+
// Cache invalidation is driven by tf.$renderDirty,
|
|
52
64
|
// which is checked at execute time — nothing to pre-upload here.
|
|
53
65
|
}
|
|
54
66
|
destroyRenderable(tf) {
|
|
67
|
+
const cache = this._cache.get(tf);
|
|
68
|
+
if (cache?.texture) {
|
|
69
|
+
// Unregister from GC registry and delete texture immediately.
|
|
70
|
+
const token = this._registryTokens.get(tf);
|
|
71
|
+
if (token) {
|
|
72
|
+
_textureRegistry.unregister(token);
|
|
73
|
+
this._registryTokens.delete(tf);
|
|
74
|
+
}
|
|
75
|
+
if (this._gl)
|
|
76
|
+
this._gl.deleteTexture(cache.texture);
|
|
77
|
+
}
|
|
55
78
|
this._cache.delete(tf);
|
|
56
79
|
}
|
|
57
80
|
// ── Execute ───────────────────────────────────────────────────────────────
|
|
@@ -68,6 +91,9 @@ export class TextPipe {
|
|
|
68
91
|
execute(inst, buffer) {
|
|
69
92
|
const tf = inst.renderable;
|
|
70
93
|
tf.getLinesArr(); // ensure lines are computed
|
|
94
|
+
// Cache the GL context for use in destroyRenderable.
|
|
95
|
+
if (!this._gl)
|
|
96
|
+
this._gl = buffer.context.gl;
|
|
71
97
|
// ── INPUT mode while focused: HTML input element owns the display ────
|
|
72
98
|
// Don't render the canvas texture — the native <input>/<textarea>
|
|
73
99
|
// is overlaid on top and already shows the text. Rendering here too
|
|
@@ -76,8 +102,8 @@ export class TextPipe {
|
|
|
76
102
|
return;
|
|
77
103
|
}
|
|
78
104
|
// ── 1. Compute logical dimensions ────────────────────────────────────
|
|
79
|
-
const logicalW = Math.ceil(!isNaN(tf
|
|
80
|
-
const logicalH = Math.ceil(!isNaN(tf
|
|
105
|
+
const logicalW = Math.ceil(!isNaN(tf.$explicitWidth) ? tf.$explicitWidth : tf.textWidth);
|
|
106
|
+
const logicalH = Math.ceil(!isNaN(tf.$explicitHeight) ? tf.$explicitHeight : tf.textHeight);
|
|
81
107
|
if (logicalW <= 0 || logicalH <= 0) {
|
|
82
108
|
return;
|
|
83
109
|
}
|
|
@@ -121,7 +147,7 @@ export class TextPipe {
|
|
|
121
147
|
this._cache.set(tf, cache);
|
|
122
148
|
}
|
|
123
149
|
// Dirty when: text content changed, dimensions changed, or DPR changed.
|
|
124
|
-
const needsRebuild = tf
|
|
150
|
+
const needsRebuild = tf.$renderDirty || cache.textureWidth !== pixelW || cache.textureHeight !== pixelH || scaleChanged;
|
|
125
151
|
if (needsRebuild) {
|
|
126
152
|
// Resize the offscreen canvas if needed.
|
|
127
153
|
if (cache.renderBuffer.width !== pixelW || cache.renderBuffer.height !== pixelH) {
|
|
@@ -140,9 +166,20 @@ export class TextPipe {
|
|
|
140
166
|
const surface = cache.renderBuffer.surface;
|
|
141
167
|
if (!cache.texture) {
|
|
142
168
|
cache.texture = buffer.context.createTexture(surface);
|
|
169
|
+
// Register for GC-based cleanup.
|
|
170
|
+
const token = {};
|
|
171
|
+
_textureRegistry.register(tf, { gl: buffer.context.gl, texture: cache.texture }, token);
|
|
172
|
+
this._registryTokens.set(tf, token);
|
|
143
173
|
}
|
|
144
174
|
else {
|
|
175
|
+
// Unregister old texture, create new registration for updated texture.
|
|
176
|
+
const oldToken = this._registryTokens.get(tf);
|
|
177
|
+
if (oldToken)
|
|
178
|
+
_textureRegistry.unregister(oldToken);
|
|
145
179
|
buffer.context.updateTexture(cache.texture, surface);
|
|
180
|
+
const token = {};
|
|
181
|
+
_textureRegistry.register(tf, { gl: buffer.context.gl, texture: cache.texture }, token);
|
|
182
|
+
this._registryTokens.set(tf, token);
|
|
146
183
|
}
|
|
147
184
|
cache.textureWidth = pixelW;
|
|
148
185
|
cache.textureHeight = pixelH;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"TextPipe.js","sourceRoot":"","sources":["../../../../../src/blakron/player/webgl/pipes/TextPipe.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,aAAa,EAAE,MAAM,sCAAsC,CAAC;AAMrE,OAAO,EAAE,YAAY,EAAE,MAAM,uBAAuB,CAAC;
|
|
1
|
+
{"version":3,"file":"TextPipe.js","sourceRoot":"","sources":["../../../../../src/blakron/player/webgl/pipes/TextPipe.ts"],"names":[],"mappings":"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"}
|
|
@@ -21,14 +21,12 @@ export type ResourceEventListener = (event: ResourceEvent) => void;
|
|
|
21
21
|
* ```
|
|
22
22
|
*/
|
|
23
23
|
export declare class Resource {
|
|
24
|
-
private static _instance?;
|
|
25
|
-
static get instance(): Resource;
|
|
26
24
|
private config;
|
|
27
25
|
private loader;
|
|
28
26
|
private analyzerMap;
|
|
29
27
|
private eventListeners;
|
|
30
28
|
private loadedNames;
|
|
31
|
-
private
|
|
29
|
+
private groupLoadQueue;
|
|
32
30
|
constructor();
|
|
33
31
|
/**
|
|
34
32
|
* Load and parse a resource configuration file.
|
|
@@ -46,8 +44,22 @@ export declare class Resource {
|
|
|
46
44
|
}): void;
|
|
47
45
|
/**
|
|
48
46
|
* Load all resources in a group. Returns a promise that resolves when done.
|
|
47
|
+
*
|
|
48
|
+
* `this.loader` is a single shared instance, so running two batches at once
|
|
49
|
+
* would let the second call's queue/callbacks silently replace the first's
|
|
50
|
+
* mid-flight. Concurrent calls (for the same or different groups) are
|
|
51
|
+
* therefore chained onto `groupLoadQueue` and run to completion one at a
|
|
52
|
+
* time; each call still gets its own promise that resolves/rejects
|
|
53
|
+
* independently once its turn comes up, and a failed batch doesn't block
|
|
54
|
+
* the ones queued after it.
|
|
55
|
+
*
|
|
56
|
+
* The already-loaded filter is recomputed once this call's turn actually
|
|
57
|
+
* starts (inside `run()`), not at call time — otherwise an
|
|
58
|
+
* already-queued, overlapping `loadGroup()` call could finish loading some
|
|
59
|
+
* of these items first, and a stale snapshot would re-load them anyway.
|
|
60
|
+
*
|
|
49
61
|
* @param groupName Name of the group to load
|
|
50
|
-
* @param priority
|
|
62
|
+
* @param priority Reserved for future prioritized loading; currently unused by `ResourceLoader`
|
|
51
63
|
* @param onProgress Optional progress callback
|
|
52
64
|
*/
|
|
53
65
|
loadGroup(groupName: string, priority?: number, onProgress?: ProgressCallback): Promise<void>;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Resource.d.ts","sourceRoot":"","sources":["../../../src/blakron/resource/Resource.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,iBAAiB,EAAE,KAAK,aAAa,EAAE,MAAM,oBAAoB,CAAC;AAC3E,OAAO,EAAE,YAAY,EAAE,MAAM,6BAA6B,CAAC;AAW3D;;GAEG;AACH,MAAM,MAAM,gBAAgB,GAAG,CAAC,MAAM,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,KAAK,IAAI,CAAC;AAEvE;;GAEG;AACH,MAAM,MAAM,qBAAqB,GAAG,CAAC,KAAK,EAAE,aAAa,KAAK,IAAI,CAAC;AAEnE;;;;;;;;;;;GAWG;AACH,qBAAa,QAAQ;IAGpB,OAAO,CAAC,MAAM,
|
|
1
|
+
{"version":3,"file":"Resource.d.ts","sourceRoot":"","sources":["../../../src/blakron/resource/Resource.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,iBAAiB,EAAE,KAAK,aAAa,EAAE,MAAM,oBAAoB,CAAC;AAC3E,OAAO,EAAE,YAAY,EAAE,MAAM,6BAA6B,CAAC;AAW3D;;GAEG;AACH,MAAM,MAAM,gBAAgB,GAAG,CAAC,MAAM,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,KAAK,IAAI,CAAC;AAEvE;;GAEG;AACH,MAAM,MAAM,qBAAqB,GAAG,CAAC,KAAK,EAAE,aAAa,KAAK,IAAI,CAAC;AAEnE;;;;;;;;;;;GAWG;AACH,qBAAa,QAAQ;IAGpB,OAAO,CAAC,MAAM,CAAwC;IACtD,OAAO,CAAC,MAAM,CAAwC;IACtD,OAAO,CAAC,WAAW,CAA8D;IACjF,OAAO,CAAC,cAAc,CAA0F;IAChH,OAAO,CAAC,WAAW,CAAkC;IACrD,OAAO,CAAC,cAAc,CAAuC;;IAU7D;;;;OAIG;IACU,UAAU,CAAC,GAAG,EAAE,MAAM,EAAE,MAAM,SAAK,GAAG,OAAO,CAAC,IAAI,CAAC;IAWhE;;OAEG;IACI,WAAW,CAAC,GAAG,EAAE;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,GAAG,EAAE,MAAM,CAAC;QAAC,IAAI,EAAE,MAAM,CAAA;KAAE,GAAG,IAAI;IAM1E;;;;;;;;;;;;;;;;;;;OAmBG;IACU,SAAS,CAAC,SAAS,EAAE,MAAM,EAAE,QAAQ,SAAI,EAAE,UAAU,CAAC,EAAE,gBAAgB,GAAG,OAAO,CAAC,IAAI,CAAC;IAmBrG;;OAEG;IACU,IAAI,CAAC,CAAC,GAAG,OAAO,EAAE,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,CAAC,CAAC;IA0BxD;;OAEG;IACI,GAAG,CAAC,CAAC,GAAG,OAAO,EAAE,IAAI,EAAE,MAAM,GAAG,CAAC,GAAG,SAAS;IASpD;;OAEG;IACI,MAAM,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO;IAOpC;;OAEG;IACI,QAAQ,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO;IAItC;;OAEG;IACI,aAAa,IAAI,MAAM,EAAE;IAMhC;;OAEG;IACI,OAAO,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO;IAUrC;;OAEG;IACI,YAAY,CAAC,SAAS,EAAE,MAAM,GAAG,IAAI;IAO5C;;OAEG;IACI,UAAU,IAAI,IAAI;IAUzB;;OAEG;IACI,EAAE,CAAC,IAAI,EAAE,iBAAiB,EAAE,QAAQ,EAAE,qBAAqB,GAAG,IAAI;IASzE;;OAEG;IACI,GAAG,CAAC,IAAI,EAAE,iBAAiB,EAAE,QAAQ,EAAE,qBAAqB,GAAG,IAAI;IAO1E;;;OAGG;IACI,UAAU,CAAC,QAAQ,EAAE,gBAAgB,GAAG,IAAI;IAQnD;;OAEG;IACI,gBAAgB,CAAC,IAAI,EAAE,MAAM,EAAE,QAAQ,EAAE,YAAY,GAAG,IAAI;IAOnE,OAAO,CAAC,wBAAwB;YAqBlB,WAAW;IAkDzB,OAAO,CAAC,gBAAgB;IAsExB,OAAO,CAAC,WAAW;IAInB,OAAO,CAAC,gBAAgB;IAIxB,OAAO,CAAC,IAAI;CAYZ;AAED;;GAEG;AACH,eAAO,MAAM,QAAQ,EAAE,QAAyB,CAAC"}
|
|
@@ -24,21 +24,13 @@ import { IOErrorEvent } from '../events/IOErrorEvent.js';
|
|
|
24
24
|
* ```
|
|
25
25
|
*/
|
|
26
26
|
export class Resource {
|
|
27
|
-
// ──
|
|
28
|
-
static _instance;
|
|
29
|
-
static get instance() {
|
|
30
|
-
if (!Resource._instance) {
|
|
31
|
-
Resource._instance = new Resource();
|
|
32
|
-
}
|
|
33
|
-
return Resource._instance;
|
|
34
|
-
}
|
|
35
|
-
// ── Instance fields ──────────────────────────────────────────────────────
|
|
27
|
+
// ── Instance fields ────────────────────────────────────────────────────────
|
|
36
28
|
config = new ResourceConfig();
|
|
37
29
|
loader = new ResourceLoader();
|
|
38
30
|
analyzerMap = new Map();
|
|
39
31
|
eventListeners = new Map();
|
|
40
32
|
loadedNames = new Set();
|
|
41
|
-
|
|
33
|
+
groupLoadQueue = Promise.resolve();
|
|
42
34
|
// ── Constructor ──────────────────────────────────────────────────────────
|
|
43
35
|
constructor() {
|
|
44
36
|
this.registerDefaultAnalyzers();
|
|
@@ -52,7 +44,6 @@ export class Resource {
|
|
|
52
44
|
async loadConfig(url, folder = '') {
|
|
53
45
|
const data = await this.fetchConfig(url);
|
|
54
46
|
this.config.parseConfig(data, folder);
|
|
55
|
-
this.isConfigLoaded = true;
|
|
56
47
|
this.emit({
|
|
57
48
|
type: ResourceEventType.CONFIG_COMPLETE,
|
|
58
49
|
groupName: '',
|
|
@@ -69,8 +60,22 @@ export class Resource {
|
|
|
69
60
|
// ── Group loading ────────────────────────────────────────────────────────
|
|
70
61
|
/**
|
|
71
62
|
* Load all resources in a group. Returns a promise that resolves when done.
|
|
63
|
+
*
|
|
64
|
+
* `this.loader` is a single shared instance, so running two batches at once
|
|
65
|
+
* would let the second call's queue/callbacks silently replace the first's
|
|
66
|
+
* mid-flight. Concurrent calls (for the same or different groups) are
|
|
67
|
+
* therefore chained onto `groupLoadQueue` and run to completion one at a
|
|
68
|
+
* time; each call still gets its own promise that resolves/rejects
|
|
69
|
+
* independently once its turn comes up, and a failed batch doesn't block
|
|
70
|
+
* the ones queued after it.
|
|
71
|
+
*
|
|
72
|
+
* The already-loaded filter is recomputed once this call's turn actually
|
|
73
|
+
* starts (inside `run()`), not at call time — otherwise an
|
|
74
|
+
* already-queued, overlapping `loadGroup()` call could finish loading some
|
|
75
|
+
* of these items first, and a stale snapshot would re-load them anyway.
|
|
76
|
+
*
|
|
72
77
|
* @param groupName Name of the group to load
|
|
73
|
-
* @param priority
|
|
78
|
+
* @param priority Reserved for future prioritized loading; currently unused by `ResourceLoader`
|
|
74
79
|
* @param onProgress Optional progress callback
|
|
75
80
|
*/
|
|
76
81
|
async loadGroup(groupName, priority = 0, onProgress) {
|
|
@@ -78,11 +83,15 @@ export class Resource {
|
|
|
78
83
|
if (items.length === 0) {
|
|
79
84
|
throw new Error(`Resource group "${groupName}" not found or is empty.`);
|
|
80
85
|
}
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
|
|
86
|
+
const run = () => {
|
|
87
|
+
const toLoad = items.filter(item => !this.isResourceLoaded(item.name));
|
|
88
|
+
if (toLoad.length === 0)
|
|
89
|
+
return Promise.resolve();
|
|
90
|
+
return this.loadResourceList(toLoad, groupName, priority, onProgress);
|
|
91
|
+
};
|
|
92
|
+
const scheduled = this.groupLoadQueue.then(run, run);
|
|
93
|
+
this.groupLoadQueue = scheduled.catch(() => undefined);
|
|
94
|
+
return scheduled;
|
|
86
95
|
}
|
|
87
96
|
// ── Single resource loading ──────────────────────────────────────────────
|
|
88
97
|
/**
|
|
@@ -308,9 +317,10 @@ export class Resource {
|
|
|
308
317
|
itemsTotal: totalCount,
|
|
309
318
|
});
|
|
310
319
|
};
|
|
311
|
-
|
|
312
|
-
|
|
313
|
-
|
|
320
|
+
// No-op: item-level progress is already reported above via
|
|
321
|
+
// `this.loader.onComplete`. This just satisfies the loader's
|
|
322
|
+
// optional callback slot.
|
|
323
|
+
this.loader.onProgress = (_loaded, _total) => { };
|
|
314
324
|
this.loader.start().then(() => {
|
|
315
325
|
this.loader.onComplete = undefined;
|
|
316
326
|
this.loader.onError = undefined;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Resource.js","sourceRoot":"","sources":["../../../src/blakron/resource/Resource.ts"],"names":[],"mappings":"AAAA,OAAO,EAAgB,YAAY,EAAE,MAAM,mBAAmB,CAAC;AAC/D,OAAO,EAAE,cAAc,EAAqD,MAAM,qBAAqB,CAAC;AACxG,OAAO,EAAE,cAAc,EAAE,MAAM,qBAAqB,CAAC;AACrD,OAAO,EAAE,iBAAiB,EAAsB,MAAM,oBAAoB,CAAC;AAE3E,OAAO,EAAE,aAAa,EAAE,MAAM,8BAA8B,CAAC;AAC7D,OAAO,EAAE,YAAY,EAAE,MAAM,6BAA6B,CAAC;AAC3D,OAAO,EAAE,YAAY,EAAE,MAAM,6BAA6B,CAAC;AAC3D,OAAO,EAAE,aAAa,EAAE,MAAM,8BAA8B,CAAC;AAC7D,OAAO,EAAE,aAAa,EAAE,MAAM,8BAA8B,CAAC;AAC7D,OAAO,EAAE,WAAW,EAAE,MAAM,uBAAuB,CAAC;AACpD,OAAO,EAAE,gBAAgB,EAAE,MAAM,4BAA4B,CAAC;AAC9D,OAAO,EAAE,KAAK,EAAE,MAAM,oBAAoB,CAAC;AAC3C,OAAO,EAAE,YAAY,EAAE,MAAM,2BAA2B,CAAC;AAYzD;;;;;;;;;;;GAWG;AACH,MAAM,OAAO,QAAQ;IACpB,
|
|
1
|
+
{"version":3,"file":"Resource.js","sourceRoot":"","sources":["../../../src/blakron/resource/Resource.ts"],"names":[],"mappings":"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"}
|