28 lines
1.0 KiB
TypeScript
28 lines
1.0 KiB
TypeScript
import { ExtensionType } from '../../../extensions/Extensions';
|
|
import { STENCIL_MODES } from '../shared/state/const';
|
|
import type { RenderTarget } from '../shared/renderTarget/RenderTarget';
|
|
import type { System } from '../shared/system/System';
|
|
import type { WebGLRenderer } from './WebGLRenderer';
|
|
/**
|
|
* This manages the stencil buffer. Used primarily for masking
|
|
* @memberof rendering
|
|
*/
|
|
export declare class GlStencilSystem implements System {
|
|
/** @ignore */
|
|
static extension: {
|
|
readonly type: readonly [ExtensionType.WebGLSystem];
|
|
readonly name: "stencil";
|
|
};
|
|
private _gl;
|
|
private readonly _stencilCache;
|
|
private _renderTargetStencilState;
|
|
private _stencilOpsMapping;
|
|
private _comparisonFuncMapping;
|
|
private _activeRenderTarget;
|
|
constructor(renderer: WebGLRenderer);
|
|
protected contextChange(gl: WebGLRenderingContext): void;
|
|
protected onRenderTargetChange(renderTarget: RenderTarget): void;
|
|
setStencilMode(stencilMode: STENCIL_MODES, stencilReference: number): void;
|
|
destroy?: () => void;
|
|
}
|