1 | import {
|
2 | CullFace,
|
3 | Blending,
|
4 | BlendingEquation,
|
5 | BlendingSrcFactor,
|
6 | BlendingDstFactor,
|
7 | DepthModes,
|
8 | } from '../../constants';
|
9 | import { WebGLCapabilities } from './WebGLCapabilities';
|
10 | import { WebGLExtensions } from './WebGLExtensions';
|
11 | import { Material } from '../../materials/Material';
|
12 | import { Vector4 } from '../../math/Vector4';
|
13 |
|
14 | export class WebGLColorBuffer {
|
15 | constructor();
|
16 |
|
17 | setMask(colorMask: boolean): void;
|
18 | setLocked(lock: boolean): void;
|
19 | setClear(r: number, g: number, b: number, a: number, premultipliedAlpha: boolean): void;
|
20 | reset(): void;
|
21 | }
|
22 |
|
23 | export class WebGLDepthBuffer {
|
24 | constructor();
|
25 |
|
26 | setTest(depthTest: boolean): void;
|
27 | setMask(depthMask: boolean): void;
|
28 | setFunc(depthFunc: DepthModes): void;
|
29 | setLocked(lock: boolean): void;
|
30 | setClear(depth: number): void;
|
31 | reset(): void;
|
32 | }
|
33 |
|
34 | export class WebGLStencilBuffer {
|
35 | constructor();
|
36 |
|
37 | setTest(stencilTest: boolean): void;
|
38 | setMask(stencilMask: number): void;
|
39 | setFunc(stencilFunc: number, stencilRef: number, stencilMask: number): void;
|
40 | setOp(stencilFail: number, stencilZFail: number, stencilZPass: number): void;
|
41 | setLocked(lock: boolean): void;
|
42 | setClear(stencil: number): void;
|
43 | reset(): void;
|
44 | }
|
45 |
|
46 | export class WebGLState {
|
47 | constructor(gl: WebGLRenderingContext, extensions: WebGLExtensions, capabilities: WebGLCapabilities);
|
48 |
|
49 | buffers: {
|
50 | color: WebGLColorBuffer;
|
51 | depth: WebGLDepthBuffer;
|
52 | stencil: WebGLStencilBuffer;
|
53 | };
|
54 |
|
55 | initAttributes(): void;
|
56 | enableAttribute(attribute: number): void;
|
57 | enableAttributeAndDivisor(attribute: number, meshPerAttribute: number): void;
|
58 | disableUnusedAttributes(): void;
|
59 | vertexAttribPointer(
|
60 | index: number,
|
61 | size: number,
|
62 | type: number,
|
63 | normalized: boolean,
|
64 | stride: number,
|
65 | offset: number,
|
66 | ): void;
|
67 | enable(id: number): void;
|
68 | disable(id: number): void;
|
69 | bindFramebuffer(target: number, framebuffer: WebGLFramebuffer | null): void;
|
70 | bindXRFramebuffer(framebuffer: WebGLFramebuffer | null): void;
|
71 | useProgram(program: any): boolean;
|
72 | setBlending(
|
73 | blending: Blending,
|
74 | blendEquation?: BlendingEquation,
|
75 | blendSrc?: BlendingSrcFactor,
|
76 | blendDst?: BlendingDstFactor,
|
77 | blendEquationAlpha?: BlendingEquation,
|
78 | blendSrcAlpha?: BlendingSrcFactor,
|
79 | blendDstAlpha?: BlendingDstFactor,
|
80 | premultiplyAlpha?: boolean,
|
81 | ): void;
|
82 | setMaterial(material: Material, frontFaceCW: boolean): void;
|
83 | setFlipSided(flipSided: boolean): void;
|
84 | setCullFace(cullFace: CullFace): void;
|
85 | setLineWidth(width: number): void;
|
86 | setPolygonOffset(polygonoffset: boolean, factor?: number, units?: number): void;
|
87 | setScissorTest(scissorTest: boolean): void;
|
88 | activeTexture(webglSlot: number): void;
|
89 | bindTexture(webglType: number, webglTexture: any): void;
|
90 | unbindTexture(): void;
|
91 |
|
92 | compressedTexImage2D(
|
93 | target: number,
|
94 | level: number,
|
95 | internalformat: number,
|
96 | width: number,
|
97 | height: number,
|
98 | border: number,
|
99 | data: ArrayBufferView,
|
100 | ): void;
|
101 |
|
102 | texImage2D(
|
103 | target: number,
|
104 | level: number,
|
105 | internalformat: number,
|
106 | width: number,
|
107 | height: number,
|
108 | border: number,
|
109 | format: number,
|
110 | type: number,
|
111 | pixels: ArrayBufferView | null,
|
112 | ): void;
|
113 | texImage2D(target: number, level: number, internalformat: number, format: number, type: number, source: any): void;
|
114 | texImage3D(
|
115 | target: number,
|
116 | level: number,
|
117 | internalformat: number,
|
118 | width: number,
|
119 | height: number,
|
120 | depth: number,
|
121 | border: number,
|
122 | format: number,
|
123 | type: number,
|
124 | pixels: any,
|
125 | ): void;
|
126 | scissor(scissor: Vector4): void;
|
127 | viewport(viewport: Vector4): void;
|
128 | reset(): void;
|
129 | }
|