@itwin/core-frontend
Version:
iTwin.js frontend components
96 lines • 3.83 kB
TypeScript
/** @packageDocumentation
* @module WebGL
*/
import { GL } from "./GL";
/** @internal */
export declare class RenderStateFlags {
cull: boolean;
depthTest: boolean;
blend: boolean;
stencilTest: boolean;
depthMask: boolean;
colorWrite: boolean;
constructor(src?: RenderStateFlags);
copyFrom(src: RenderStateFlags): void;
clone(result?: RenderStateFlags): RenderStateFlags;
equals(rhs: RenderStateFlags): boolean;
apply(previousFlags: RenderStateFlags): void;
static enableOrDisable(currentFlag: boolean, value: number, previousFlag: boolean): void;
}
/** @internal */
export declare class RenderStateBlend {
color: [number, number, number, number];
equationRgb: GL.BlendEquation;
equationAlpha: GL.BlendEquation;
functionSourceRgb: GL.BlendFactor;
functionSourceAlpha: GL.BlendFactor;
functionDestRgb: GL.BlendFactor;
functionDestAlpha: GL.BlendFactor;
constructor(src?: RenderStateBlend);
apply(previousBlend?: RenderStateBlend): void;
copyFrom(src: RenderStateBlend): void;
clone(result?: RenderStateBlend): RenderStateBlend;
equals(rhs: RenderStateBlend): boolean;
equalColors(rhs: RenderStateBlend): boolean;
setColor(color: [number, number, number, number]): void;
setBlendFunc(src: GL.BlendFactor, dst: GL.BlendFactor): void;
setBlendFuncSeparate(srcRgb: GL.BlendFactor, srcAlpha: GL.BlendFactor, dstRgb: GL.BlendFactor, dstAlpha: GL.BlendFactor): void;
}
/** @internal */
export declare class RenderStateStencilOperation {
fail: GL.StencilOperation;
zFail: GL.StencilOperation;
zPass: GL.StencilOperation;
constructor(src?: RenderStateStencilOperation);
copyFrom(src: RenderStateStencilOperation): void;
clone(result?: RenderStateStencilOperation): RenderStateStencilOperation;
equals(rhs: RenderStateStencilOperation): boolean;
}
/** @internal */
export declare class RenderStateStencilFunction {
function: GL.StencilFunction;
ref: number;
mask: number;
constructor(src?: RenderStateStencilFunction);
copyFrom(src: RenderStateStencilFunction): void;
clone(result?: RenderStateStencilFunction): RenderStateStencilFunction;
equals(rhs: RenderStateStencilFunction): boolean;
}
/** @internal */
export declare class RenderStateStencil {
frontFunction: RenderStateStencilFunction;
backFunction: RenderStateStencilFunction;
frontOperation: RenderStateStencilOperation;
backOperation: RenderStateStencilOperation;
constructor(src?: RenderStateStencil);
apply(previousStencil?: RenderStateStencil): void;
copyFrom(src: RenderStateStencil): void;
clone(result?: RenderStateStencil): RenderStateStencil;
equals(rhs: RenderStateStencil): boolean;
}
/** Encapsulates the state of an OpenGL context.
* to modify the context for a rendering operation, do *not* directly call
* functions like glDepthMask(), glBlendFunc(), etc - otherwise such calls may adversely
* affect subsequent rendering operations.
* Instead, set up a RenderState as desired and invoke System.instance.applyRenderState()
* The context tracks the most-recently applied RenderState, allowing it to minimize
* the number of GL state changes actually invoked, improving performance.
* @internal
*/
export declare class RenderState {
flags: RenderStateFlags;
blend: RenderStateBlend;
stencil: RenderStateStencil;
frontFace: GL.FrontFace;
cullFace: GL.CullFace;
depthFunc: GL.DepthFunc;
stencilMask: number;
constructor(src?: RenderState);
static defaults: RenderState;
copyFrom(src: RenderState): void;
clone(result?: RenderState): RenderState;
set clockwiseFrontFace(clockwise: boolean);
equals(rhs: RenderState): boolean;
apply(prevState: RenderState): void;
}
//# sourceMappingURL=RenderState.d.ts.map