sdfsdfs
This commit is contained in:
48
node_modules/pixi.js/lib/rendering/renderers/gpu/GpuStencilSystem.js
generated
vendored
Normal file
48
node_modules/pixi.js/lib/rendering/renderers/gpu/GpuStencilSystem.js
generated
vendored
Normal file
@@ -0,0 +1,48 @@
|
||||
'use strict';
|
||||
|
||||
var Extensions = require('../../../extensions/Extensions.js');
|
||||
var _const = require('../shared/state/const.js');
|
||||
|
||||
"use strict";
|
||||
class GpuStencilSystem {
|
||||
constructor(renderer) {
|
||||
this._renderTargetStencilState = /* @__PURE__ */ Object.create(null);
|
||||
this._renderer = renderer;
|
||||
renderer.renderTarget.onRenderTargetChange.add(this);
|
||||
}
|
||||
onRenderTargetChange(renderTarget) {
|
||||
let stencilState = this._renderTargetStencilState[renderTarget.uid];
|
||||
if (!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) {
|
||||
const stencilState = this._renderTargetStencilState[this._activeRenderTarget.uid];
|
||||
stencilState.stencilMode = stencilMode;
|
||||
stencilState.stencilReference = stencilReference;
|
||||
const renderer = this._renderer;
|
||||
renderer.pipeline.setStencilMode(stencilMode);
|
||||
renderer.encoder.renderPassEncoder.setStencilReference(stencilReference);
|
||||
}
|
||||
destroy() {
|
||||
this._renderer.renderTarget.onRenderTargetChange.remove(this);
|
||||
this._renderer = null;
|
||||
this._activeRenderTarget = null;
|
||||
this._renderTargetStencilState = null;
|
||||
}
|
||||
}
|
||||
/** @ignore */
|
||||
GpuStencilSystem.extension = {
|
||||
type: [
|
||||
Extensions.ExtensionType.WebGPUSystem
|
||||
],
|
||||
name: "stencil"
|
||||
};
|
||||
|
||||
exports.GpuStencilSystem = GpuStencilSystem;
|
||||
//# sourceMappingURL=GpuStencilSystem.js.map
|
Reference in New Issue
Block a user