@types/three
Version:
TypeScript definitions for three
121 lines (111 loc) • 3.96 kB
TypeScript
import {
Blending,
BlendingDstFactor,
BlendingEquation,
BlendingSrcFactor,
CullFace,
DepthModes,
} from "../../constants.js";
import { Material } from "../../materials/Material.js";
import { Vector4 } from "../../math/Vector4.js";
import { WebGLRenderTarget } from "../WebGLRenderTarget.js";
import { WebGLExtensions } from "./WebGLExtensions.js";
declare class WebGLColorBuffer {
setMask(colorMask: boolean): void;
setLocked(lock: boolean): void;
setClear(r: number, g: number, b: number, a: number, premultipliedAlpha: boolean): void;
reset(): void;
}
declare class WebGLDepthBuffer {
constructor();
setReversed(value: boolean): void;
getReversed(): boolean;
setTest(depthTest: boolean): void;
setMask(depthMask: boolean): void;
setFunc(depthFunc: DepthModes): void;
setLocked(lock: boolean): void;
setClear(depth: number): void;
reset(): void;
}
declare class WebGLStencilBuffer {
constructor();
setTest(stencilTest: boolean): void;
setMask(stencilMask: number): void;
setFunc(stencilFunc: number, stencilRef: number, stencilMask: number): void;
setOp(stencilFail: number, stencilZFail: number, stencilZPass: number): void;
setLocked(lock: boolean): void;
setClear(stencil: number): void;
reset(): void;
}
declare class WebGLState {
constructor(gl: WebGLRenderingContext, extensions: WebGLExtensions);
buffers: {
color: WebGLColorBuffer;
depth: WebGLDepthBuffer;
stencil: WebGLStencilBuffer;
};
enable(id: number): void;
disable(id: number): void;
bindFramebuffer(target: number, framebuffer: WebGLFramebuffer | null): void;
drawBuffers(renderTarget: WebGLRenderTarget | null, framebuffer: WebGLFramebuffer | null): void;
useProgram(program: any): boolean;
setBlending(
blending: Blending,
blendEquation?: BlendingEquation,
blendSrc?: BlendingSrcFactor,
blendDst?: BlendingDstFactor,
blendEquationAlpha?: BlendingEquation,
blendSrcAlpha?: BlendingSrcFactor,
blendDstAlpha?: BlendingDstFactor,
premultiplyAlpha?: boolean,
): void;
setMaterial(material: Material, frontFaceCW: boolean, hardwareClippingPlanes: number): void;
setFlipSided(flipSided: boolean): void;
setCullFace(cullFace: CullFace): void;
setLineWidth(width: number): void;
setPolygonOffset(polygonoffset: boolean, factor?: number, units?: number): void;
setScissorTest(scissorTest: boolean): void;
activeTexture(webglSlot: number): void;
bindTexture(webglType: number, webglTexture: any): void;
unbindTexture(): void;
// Same interface as https://developer.mozilla.org/en-US/docs/Web/API/WebGLRenderingContext/compressedTexImage2D
compressedTexImage2D(
target: number,
level: number,
internalformat: number,
width: number,
height: number,
border: number,
data: ArrayBufferView,
): void;
// Same interface as https://developer.mozilla.org/en-US/docs/Web/API/WebGLRenderingContext/texImage2D
texImage2D(
target: number,
level: number,
internalformat: number,
width: number,
height: number,
border: number,
format: number,
type: number,
pixels: ArrayBufferView | null,
): void;
texImage2D(target: number, level: number, internalformat: number, format: number, type: number, source: any): void;
texImage3D(
target: number,
level: number,
internalformat: number,
width: number,
height: number,
depth: number,
border: number,
format: number,
type: number,
pixels: any,
): void;
scissor(scissor: Vector4): void;
viewport(viewport: Vector4): void;
reset(): void;
}
export { WebGLState };
export type { WebGLColorBuffer, WebGLDepthBuffer, WebGLStencilBuffer };