Files
il/resources/public/js/cljs-runtime/module$node_modules$pixi_DOT_js$lib$scene$container$RenderGroupPipe.js
2026-07-01 22:38:29 -06:00

59 lines
3.7 KiB
JavaScript

shadow$provide.module$node_modules$pixi_DOT_js$lib$scene$container$RenderGroupPipe = function(global, require, module, exports) {
global = require("module$node_modules$pixi_DOT_js$lib$extensions$Extensions");
var Matrix = require("module$node_modules$pixi_DOT_js$lib$maths$matrix$Matrix"), PoolGroup = require("module$node_modules$pixi_DOT_js$lib$utils$pool$PoolGroup"), BatchableSprite = require("module$node_modules$pixi_DOT_js$lib$scene$sprite$BatchableSprite"), executeInstructions = require("module$node_modules$pixi_DOT_js$lib$scene$container$utils$executeInstructions");
"use strict";
class RenderGroupPipe {
constructor(renderer) {
this._renderer = renderer;
}
addRenderGroup(renderGroup, instructionSet) {
renderGroup.isCachedAsTexture ? this._addRenderableCacheAsTexture(renderGroup, instructionSet) : this._addRenderableDirect(renderGroup, instructionSet);
}
execute(renderGroup) {
renderGroup.isRenderable && (renderGroup.isCachedAsTexture ? this._executeCacheAsTexture(renderGroup) : this._executeDirect(renderGroup));
}
destroy() {
this._renderer = null;
}
_addRenderableDirect(renderGroup, instructionSet) {
this._renderer.renderPipes.batch.break(instructionSet);
renderGroup._batchableRenderGroup && (PoolGroup.BigPool.return(renderGroup._batchableRenderGroup), renderGroup._batchableRenderGroup = null);
instructionSet.add(renderGroup);
}
_addRenderableCacheAsTexture(renderGroup, instructionSet) {
const batchableRenderGroup = renderGroup._batchableRenderGroup ?? (renderGroup._batchableRenderGroup = PoolGroup.BigPool.get(BatchableSprite.BatchableSprite));
batchableRenderGroup.renderable = renderGroup.root;
batchableRenderGroup.transform = renderGroup.root.relativeGroupTransform;
batchableRenderGroup.texture = renderGroup.texture;
batchableRenderGroup.bounds = renderGroup._textureBounds;
instructionSet.add(renderGroup);
this._renderer.renderPipes.blendMode.pushBlendMode(renderGroup, renderGroup.root.groupBlendMode, instructionSet);
this._renderer.renderPipes.batch.addToBatch(batchableRenderGroup, instructionSet);
this._renderer.renderPipes.blendMode.popBlendMode(instructionSet);
}
_executeCacheAsTexture(renderGroup) {
if (renderGroup.textureNeedsUpdate) {
renderGroup.textureNeedsUpdate = !1;
const worldTransformMatrix = (new Matrix.Matrix()).translate(-renderGroup._textureBounds.x, -renderGroup._textureBounds.y);
this._renderer.renderTarget.push(renderGroup.texture, !0, null, renderGroup.texture.frame);
this._renderer.globalUniforms.push({worldTransformMatrix, worldColor:4294967295, offset:{x:0, y:0}});
executeInstructions.executeInstructions(renderGroup, this._renderer.renderPipes);
this._renderer.renderTarget.finishRenderPass();
this._renderer.renderTarget.pop();
this._renderer.globalUniforms.pop();
}
renderGroup._batchableRenderGroup._batcher.updateElement(renderGroup._batchableRenderGroup);
renderGroup._batchableRenderGroup._batcher.geometry.buffers[0].update();
}
_executeDirect(renderGroup) {
this._renderer.globalUniforms.push({worldTransformMatrix:renderGroup.inverseParentTextureTransform, worldColor:renderGroup.worldColorAlpha});
executeInstructions.executeInstructions(renderGroup, this._renderer.renderPipes);
this._renderer.globalUniforms.pop();
}
}
RenderGroupPipe.extension = {type:[global.ExtensionType.WebGLPipes, global.ExtensionType.WebGPUPipes, global.ExtensionType.CanvasPipes], name:"renderGroup"};
exports.RenderGroupPipe = RenderGroupPipe;
};
//# sourceMappingURL=module$node_modules$pixi_DOT_js$lib$scene$container$RenderGroupPipe.js.map