Files
il/resources/public/js/cljs-runtime/module$node_modules$pixi_DOT_js$lib$rendering$renderers$gpu$GpuStencilSystem.js
2026-07-01 22:38:29 -06:00

35 lines
1.8 KiB
JavaScript

shadow$provide.module$node_modules$pixi_DOT_js$lib$rendering$renderers$gpu$GpuStencilSystem = function(global, require, module, exports) {
global = require("module$node_modules$pixi_DOT_js$lib$extensions$Extensions");
var _const = require("module$node_modules$pixi_DOT_js$lib$rendering$renderers$shared$state$const");
"use strict";
class GpuStencilSystem {
constructor(renderer) {
this._renderTargetStencilState = Object.create(null);
this._renderer = renderer;
renderer.renderTarget.onRenderTargetChange.add(this);
}
onRenderTargetChange(renderTarget) {
let stencilState = this._renderTargetStencilState[renderTarget.uid];
stencilState || (stencilState = this._renderTargetStencilState[renderTarget.uid] = {stencilMode:_const.STENCIL_MODES.DISABLED, stencilReference:0});
this._activeRenderTarget = renderTarget;
this.setStencilMode(stencilState.stencilMode, stencilState.stencilReference);
}
setStencilMode(stencilMode, stencilReference) {
var stencilState = this._renderTargetStencilState[this._activeRenderTarget.uid];
stencilState.stencilMode = stencilMode;
stencilState.stencilReference = stencilReference;
stencilState = this._renderer;
stencilState.pipeline.setStencilMode(stencilMode);
stencilState.encoder.renderPassEncoder.setStencilReference(stencilReference);
}
destroy() {
this._renderer.renderTarget.onRenderTargetChange.remove(this);
this._renderTargetStencilState = this._activeRenderTarget = this._renderer = null;
}
}
GpuStencilSystem.extension = {type:[global.ExtensionType.WebGPUSystem], name:"stencil"};
exports.GpuStencilSystem = GpuStencilSystem;
};
//# sourceMappingURL=module$node_modules$pixi_DOT_js$lib$rendering$renderers$gpu$GpuStencilSystem.js.map