UNPKG

modern-canvas

Version:

A JavaScript WebGL rendering engine. only the ESM.

58 lines (57 loc) 1.83 kB
import type { RenderTargetLike } from '../shared'; import type { GlRenderer } from './GlRenderer'; import type { GlRenderingContext } from './types'; import { StencilMode } from './const'; import { GlSystem } from './system'; export interface StencilState { stencilWriteMask?: number; stencilReadMask?: number; stencilFront?: { compare: 'always' | 'equal' | 'not-equal'; passOp: 'increment-clamp' | 'decrement-clamp' | 'keep' | 'replace'; }; stencilBack?: { compare: 'always' | 'equal' | 'not-equal'; passOp: 'increment-clamp' | 'decrement-clamp' | 'keep' | 'replace'; }; } /** @internal */ export declare const stencilModeMap: StencilState[]; export declare class GlStencilSystem extends GlSystem { install(renderer: GlRenderer): void; protected readonly _cache: { enabled: boolean; stencilMode: StencilMode; refCount: number; }; current: Record<number, { stencilMode: StencilMode; refCount: number; }>; protected _passOpMap: { 'keep': number; 'zero': number; 'replace': number; 'invert': number; 'increment-clamp': number; 'decrement-clamp': number; 'increment-wrap': number; 'decrement-wrap': number; }; protected _compareMap: { 'always': number; 'never': number; 'equal': number; 'not-equal': number; 'less': number; 'less-equal': number; 'greater': number; 'greater-equal': number; }; protected _updateContext(gl: GlRenderingContext): void; protected _setup(): void; reset(): void; protected _updateRenderTarget: (renderTarget: RenderTargetLike | null) => void; bind(stencilMode: StencilMode, refCount: number): void; destroy(): void; }