UNPKG

39.9 kBPlain TextView Raw
1// TODO: copy-paste from https://github.com/DefinitelyTyped/DefinitelyTyped/blob/5344bfc80508c53a23dae37b860fb0c905ff7b24/types/webgl2/index.d.ts
2export default interface WebGL2RenderingCOntext extends WebGLRenderingContext {
3 readonly READ_BUFFER: number; // 0x0C02
4 readonly UNPACK_ROW_LENGTH: number; // 0x0CF2
5 readonly UNPACK_SKIP_ROWS: number; // 0x0CF3
6 readonly UNPACK_SKIP_PIXELS: number; // 0x0CF4
7 readonly PACK_ROW_LENGTH: number; // 0x0D02
8 readonly PACK_SKIP_ROWS: number; // 0x0D03
9 readonly PACK_SKIP_PIXELS: number; // 0x0D04
10 readonly COLOR: number; // 0x1800
11 readonly DEPTH: number; // 0x1801
12 readonly STENCIL: number; // 0x1802
13 readonly RED: number; // 0x1903
14 readonly RGB8: number; // 0x8051
15 readonly RGBA8: number; // 0x8058
16 readonly RGB10_A2: number; // 0x8059
17 readonly TEXTURE_BINDING_3D: number; // 0x806A
18 readonly UNPACK_SKIP_IMAGES: number; // 0x806D
19 readonly UNPACK_IMAGE_HEIGHT: number; // 0x806E
20 readonly TEXTURE_3D: number; // 0x806F
21 readonly TEXTURE_WRAP_R: number; // 0x8072
22 readonly MAX_3D_TEXTURE_SIZE: number; // 0x8073
23 readonly UNSIGNED_INT_2_10_10_10_REV: number; // 0x8368
24 readonly MAX_ELEMENTS_VERTICES: number; // 0x80E8
25 readonly MAX_ELEMENTS_INDICES: number; // 0x80E9
26 readonly TEXTURE_MIN_LOD: number; // 0x813A
27 readonly TEXTURE_MAX_LOD: number; // 0x813B
28 readonly TEXTURE_BASE_LEVEL: number; // 0x813C
29 readonly TEXTURE_MAX_LEVEL: number; // 0x813D
30 readonly MIN: number; // 0x8007
31 readonly MAX: number; // 0x8008
32 readonly DEPTH_COMPONENT24: number; // 0x81A6
33 readonly MAX_TEXTURE_LOD_BIAS: number; // 0x84FD
34 readonly TEXTURE_COMPARE_MODE: number; // 0x884C
35 readonly TEXTURE_COMPARE_FUNC: number; // 0x884D
36 readonly CURRENT_QUERY: number; // 0x8865
37 readonly QUERY_RESULT: number; // 0x8866
38 readonly QUERY_RESULT_AVAILABLE: number; // 0x8867
39 readonly STREAM_READ: number; // 0x88E1
40 readonly STREAM_COPY: number; // 0x88E2
41 readonly STATIC_READ: number; // 0x88E5
42 readonly STATIC_COPY: number; // 0x88E6
43 readonly DYNAMIC_READ: number; // 0x88E9
44 readonly DYNAMIC_COPY: number; // 0x88EA
45 readonly MAX_DRAW_BUFFERS: number; // 0x8824
46 readonly DRAW_BUFFER0: number; // 0x8825
47 readonly DRAW_BUFFER1: number; // 0x8826
48 readonly DRAW_BUFFER2: number; // 0x8827
49 readonly DRAW_BUFFER3: number; // 0x8828
50 readonly DRAW_BUFFER4: number; // 0x8829
51 readonly DRAW_BUFFER5: number; // 0x882A
52 readonly DRAW_BUFFER6: number; // 0x882B
53 readonly DRAW_BUFFER7: number; // 0x882C
54 readonly DRAW_BUFFER8: number; // 0x882D
55 readonly DRAW_BUFFER9: number; // 0x882E
56 readonly DRAW_BUFFER10: number; // 0x882F
57 readonly DRAW_BUFFER11: number; // 0x8830
58 readonly DRAW_BUFFER12: number; // 0x8831
59 readonly DRAW_BUFFER13: number; // 0x8832
60 readonly DRAW_BUFFER14: number; // 0x8833
61 readonly DRAW_BUFFER15: number; // 0x8834
62 readonly MAX_FRAGMENT_UNIFORM_COMPONENTS: number; // 0x8B49
63 readonly MAX_VERTEX_UNIFORM_COMPONENTS: number; // 0x8B4A
64 readonly SAMPLER_3D: number; // 0x8B5F
65 readonly SAMPLER_2D_SHADOW: number; // 0x8B62
66 readonly FRAGMENT_SHADER_DERIVATIVE_HINT: number; // 0x8B8B
67 readonly PIXEL_PACK_BUFFER: number; // 0x88EB
68 readonly PIXEL_UNPACK_BUFFER: number; // 0x88EC
69 readonly PIXEL_PACK_BUFFER_BINDING: number; // 0x88ED
70 readonly PIXEL_UNPACK_BUFFER_BINDING: number; // 0x88EF
71 readonly FLOAT_MAT2x3: number; // 0x8B65
72 readonly FLOAT_MAT2x4: number; // 0x8B66
73 readonly FLOAT_MAT3x2: number; // 0x8B67
74 readonly FLOAT_MAT3x4: number; // 0x8B68
75 readonly FLOAT_MAT4x2: number; // 0x8B69
76 readonly FLOAT_MAT4x3: number; // 0x8B6A
77 readonly SRGB: number; // 0x8C40
78 readonly SRGB8: number; // 0x8C41
79 readonly SRGB8_ALPHA8: number; // 0x8C43
80 readonly COMPARE_REF_TO_TEXTURE: number; // 0x884E
81 readonly RGBA32F: number; // 0x8814
82 readonly RGB32F: number; // 0x8815
83 readonly RGBA16F: number; // 0x881A
84 readonly RGB16F: number; // 0x881B
85 readonly VERTEX_ATTRIB_ARRAY_INTEGER: number; // 0x88FD
86 readonly MAX_ARRAY_TEXTURE_LAYERS: number; // 0x88FF
87 readonly MIN_PROGRAM_TEXEL_OFFSET: number; // 0x8904
88 readonly MAX_PROGRAM_TEXEL_OFFSET: number; // 0x8905
89 readonly MAX_VARYING_COMPONENTS: number; // 0x8B4B
90 readonly TEXTURE_2D_ARRAY: number; // 0x8C1A
91 readonly TEXTURE_BINDING_2D_ARRAY: number; // 0x8C1D
92 readonly R11F_G11F_B10F: number; // 0x8C3A
93 readonly UNSIGNED_INT_10F_11F_11F_REV: number; // 0x8C3B
94 readonly RGB9_E5: number; // 0x8C3D
95 readonly UNSIGNED_INT_5_9_9_9_REV: number; // 0x8C3E
96 readonly TRANSFORM_FEEDBACK_BUFFER_MODE: number; // 0x8C7F
97 readonly MAX_TRANSFORM_FEEDBACK_SEPARATE_COMPONENTS: number; // 0x8C80
98 readonly TRANSFORM_FEEDBACK_VARYINGS: number; // 0x8C83
99 readonly TRANSFORM_FEEDBACK_BUFFER_START: number; // 0x8C84
100 readonly TRANSFORM_FEEDBACK_BUFFER_SIZE: number; // 0x8C85
101 readonly TRANSFORM_FEEDBACK_PRIMITIVES_WRITTEN: number; // 0x8C88
102 readonly RASTERIZER_DISCARD: number; // 0x8C89
103 readonly MAX_TRANSFORM_FEEDBACK_INTERLEAVED_COMPONENTS: number; // 0x8C8A
104 readonly MAX_TRANSFORM_FEEDBACK_SEPARATE_ATTRIBS: number; // 0x8C8B
105 readonly INTERLEAVED_ATTRIBS: number; // 0x8C8C
106 readonly SEPARATE_ATTRIBS: number; // 0x8C8D
107 readonly TRANSFORM_FEEDBACK_BUFFER: number; // 0x8C8E
108 readonly TRANSFORM_FEEDBACK_BUFFER_BINDING: number; // 0x8C8F
109 readonly RGBA32UI: number; // 0x8D70
110 readonly RGB32UI: number; // 0x8D71
111 readonly RGBA16UI: number; // 0x8D76
112 readonly RGB16UI: number; // 0x8D77
113 readonly RGBA8UI: number; // 0x8D7C
114 readonly RGB8UI: number; // 0x8D7D
115 readonly RGBA32I: number; // 0x8D82
116 readonly RGB32I: number; // 0x8D83
117 readonly RGBA16I: number; // 0x8D88
118 readonly RGB16I: number; // 0x8D89
119 readonly RGBA8I: number; // 0x8D8E
120 readonly RGB8I: number; // 0x8D8F
121 readonly RED_INTEGER: number; // 0x8D94
122 readonly RGB_INTEGER: number; // 0x8D98
123 readonly RGBA_INTEGER: number; // 0x8D99
124 readonly SAMPLER_2D_ARRAY: number; // 0x8DC1
125 readonly SAMPLER_2D_ARRAY_SHADOW: number; // 0x8DC4
126 readonly SAMPLER_CUBE_SHADOW: number; // 0x8DC5
127 readonly UNSIGNED_INT_VEC2: number; // 0x8DC6
128 readonly UNSIGNED_INT_VEC3: number; // 0x8DC7
129 readonly UNSIGNED_INT_VEC4: number; // 0x8DC8
130 readonly INT_SAMPLER_2D: number; // 0x8DCA
131 readonly INT_SAMPLER_3D: number; // 0x8DCB
132 readonly INT_SAMPLER_CUBE: number; // 0x8DCC
133 readonly INT_SAMPLER_2D_ARRAY: number; // 0x8DCF
134 readonly UNSIGNED_INT_SAMPLER_2D: number; // 0x8DD2
135 readonly UNSIGNED_INT_SAMPLER_3D: number; // 0x8DD3
136 readonly UNSIGNED_INT_SAMPLER_CUBE: number; // 0x8DD4
137 readonly UNSIGNED_INT_SAMPLER_2D_ARRAY: number; // 0x8DD7
138 readonly DEPTH_COMPONENT32F: number; // 0x8CAC
139 readonly DEPTH32F_STENCIL8: number; // 0x8CAD
140 readonly FLOAT_32_UNSIGNED_INT_24_8_REV: number; // 0x8DAD
141 readonly FRAMEBUFFER_ATTACHMENT_COLOR_ENCODING: number; // 0x8210
142 readonly FRAMEBUFFER_ATTACHMENT_COMPONENT_TYPE: number; // 0x8211
143 readonly FRAMEBUFFER_ATTACHMENT_RED_SIZE: number; // 0x8212
144 readonly FRAMEBUFFER_ATTACHMENT_GREEN_SIZE: number; // 0x8213
145 readonly FRAMEBUFFER_ATTACHMENT_BLUE_SIZE: number; // 0x8214
146 readonly FRAMEBUFFER_ATTACHMENT_ALPHA_SIZE: number; // 0x8215
147 readonly FRAMEBUFFER_ATTACHMENT_DEPTH_SIZE: number; // 0x8216
148 readonly FRAMEBUFFER_ATTACHMENT_STENCIL_SIZE: number; // 0x8217
149 readonly FRAMEBUFFER_DEFAULT: number; // 0x8218
150 //readonly DEPTH_STENCIL_ATTACHMENT: number; // 0x821A /* Already defined in WebGL1 constants */
151 //readonly DEPTH_STENCIL: number; // 0x84F9 /* Already defined in WebGL1 constants */
152 readonly UNSIGNED_INT_24_8: number; // 0x84FA
153 readonly DEPTH24_STENCIL8: number; // 0x88F0
154 readonly UNSIGNED_NORMALIZED: number; // 0x8C17
155 readonly DRAW_FRAMEBUFFER_BINDING: number; // 0x8CA6 /* Same as FRAMEBUFFER_BINDING */
156 readonly READ_FRAMEBUFFER: number; // 0x8CA8
157 readonly DRAW_FRAMEBUFFER: number; // 0x8CA9
158 readonly READ_FRAMEBUFFER_BINDING: number; // 0x8CAA
159 readonly RENDERBUFFER_SAMPLES: number; // 0x8CAB
160 readonly FRAMEBUFFER_ATTACHMENT_TEXTURE_LAYER: number; // 0x8CD4
161 readonly MAX_COLOR_ATTACHMENTS: number; // 0x8CDF
162 readonly COLOR_ATTACHMENT1: number; // 0x8CE1
163 readonly COLOR_ATTACHMENT2: number; // 0x8CE2
164 readonly COLOR_ATTACHMENT3: number; // 0x8CE3
165 readonly COLOR_ATTACHMENT4: number; // 0x8CE4
166 readonly COLOR_ATTACHMENT5: number; // 0x8CE5
167 readonly COLOR_ATTACHMENT6: number; // 0x8CE6
168 readonly COLOR_ATTACHMENT7: number; // 0x8CE7
169 readonly COLOR_ATTACHMENT8: number; // 0x8CE8
170 readonly COLOR_ATTACHMENT9: number; // 0x8CE9
171 readonly COLOR_ATTACHMENT10: number; // 0x8CEA
172 readonly COLOR_ATTACHMENT11: number; // 0x8CEB
173 readonly COLOR_ATTACHMENT12: number; // 0x8CEC
174 readonly COLOR_ATTACHMENT13: number; // 0x8CED
175 readonly COLOR_ATTACHMENT14: number; // 0x8CEE
176 readonly COLOR_ATTACHMENT15: number; // 0x8CEF
177 readonly FRAMEBUFFER_INCOMPLETE_MULTISAMPLE: number; // 0x8D56
178 readonly MAX_SAMPLES: number; // 0x8D57
179 readonly HALF_FLOAT: number; // 0x140B
180 readonly RG: number; // 0x8227
181 readonly RG_INTEGER: number; // 0x8228
182 readonly R8: number; // 0x8229
183 readonly RG8: number; // 0x822B
184 readonly R16F: number; // 0x822D
185 readonly R32F: number; // 0x822E
186 readonly RG16F: number; // 0x822F
187 readonly RG32F: number; // 0x8230
188 readonly R8I: number; // 0x8231
189 readonly R8UI: number; // 0x8232
190 readonly R16I: number; // 0x8233
191 readonly R16UI: number; // 0x8234
192 readonly R32I: number; // 0x8235
193 readonly R32UI: number; // 0x8236
194 readonly RG8I: number; // 0x8237
195 readonly RG8UI: number; // 0x8238
196 readonly RG16I: number; // 0x8239
197 readonly RG16UI: number; // 0x823A
198 readonly RG32I: number; // 0x823B
199 readonly RG32UI: number; // 0x823C
200 readonly VERTEX_ARRAY_BINDING: number; // 0x85B5
201 readonly R8_SNORM: number; // 0x8F94
202 readonly RG8_SNORM: number; // 0x8F95
203 readonly RGB8_SNORM: number; // 0x8F96
204 readonly RGBA8_SNORM: number; // 0x8F97
205 readonly SIGNED_NORMALIZED: number; // 0x8F9C
206 readonly COPY_READ_BUFFER: number; // 0x8F36
207 readonly COPY_WRITE_BUFFER: number; // 0x8F37
208 readonly COPY_READ_BUFFER_BINDING: number; // 0x8F36 /* Same as COPY_READ_BUFFER */
209 readonly COPY_WRITE_BUFFER_BINDING: number; // 0x8F37 /* Same as COPY_WRITE_BUFFER */
210 readonly UNIFORM_BUFFER: number; // 0x8A11
211 readonly UNIFORM_BUFFER_BINDING: number; // 0x8A28
212 readonly UNIFORM_BUFFER_START: number; // 0x8A29
213 readonly UNIFORM_BUFFER_SIZE: number; // 0x8A2A
214 readonly MAX_VERTEX_UNIFORM_BLOCKS: number; // 0x8A2B
215 readonly MAX_FRAGMENT_UNIFORM_BLOCKS: number; // 0x8A2D
216 readonly MAX_COMBINED_UNIFORM_BLOCKS: number; // 0x8A2E
217 readonly MAX_UNIFORM_BUFFER_BINDINGS: number; // 0x8A2F
218 readonly MAX_UNIFORM_BLOCK_SIZE: number; // 0x8A30
219 readonly MAX_COMBINED_VERTEX_UNIFORM_COMPONENTS: number; // 0x8A31
220 readonly MAX_COMBINED_FRAGMENT_UNIFORM_COMPONENTS: number; // 0x8A33
221 readonly UNIFORM_BUFFER_OFFSET_ALIGNMENT: number; // 0x8A34
222 readonly ACTIVE_UNIFORM_BLOCKS: number; // 0x8A36
223 readonly UNIFORM_TYPE: number; // 0x8A37
224 readonly UNIFORM_SIZE: number; // 0x8A38
225 readonly UNIFORM_BLOCK_INDEX: number; // 0x8A3A
226 readonly UNIFORM_OFFSET: number; // 0x8A3B
227 readonly UNIFORM_ARRAY_STRIDE: number; // 0x8A3C
228 readonly UNIFORM_MATRIX_STRIDE: number; // 0x8A3D
229 readonly UNIFORM_IS_ROW_MAJOR: number; // 0x8A3E
230 readonly UNIFORM_BLOCK_BINDING: number; // 0x8A3F
231 readonly UNIFORM_BLOCK_DATA_SIZE: number; // 0x8A40
232 readonly UNIFORM_BLOCK_ACTIVE_UNIFORMS: number; // 0x8A42
233 readonly UNIFORM_BLOCK_ACTIVE_UNIFORM_INDICES: number; // 0x8A43
234 readonly UNIFORM_BLOCK_REFERENCED_BY_VERTEX_SHADER: number; // 0x8A44
235 readonly UNIFORM_BLOCK_REFERENCED_BY_FRAGMENT_SHADER: number; // 0x8A46
236 readonly INVALID_INDEX: number; // 0xFFFFFFFF
237 readonly MAX_VERTEX_OUTPUT_COMPONENTS: number; // 0x9122
238 readonly MAX_FRAGMENT_INPUT_COMPONENTS: number; // 0x9125
239 readonly MAX_SERVER_WAIT_TIMEOUT: number; // 0x9111
240 readonly OBJECT_TYPE: number; // 0x9112
241 readonly SYNC_CONDITION: number; // 0x9113
242 readonly SYNC_STATUS: number; // 0x9114
243 readonly SYNC_FLAGS: number; // 0x9115
244 readonly SYNC_FENCE: number; // 0x9116
245 readonly SYNC_GPU_COMMANDS_COMPLETE: number; // 0x9117
246 readonly UNSIGNALED: number; // 0x9118
247 readonly SIGNALED: number; // 0x9119
248 readonly ALREADY_SIGNALED: number; // 0x911A
249 readonly TIMEOUT_EXPIRED: number; // 0x911B
250 readonly CONDITION_SATISFIED: number; // 0x911C
251 readonly WAIT_FAILED: number; // 0x911D
252 readonly SYNC_FLUSH_COMMANDS_BIT: number; // 0x00000001
253 readonly VERTEX_ATTRIB_ARRAY_DIVISOR: number; // 0x88FE
254 readonly ANY_SAMPLES_PASSED: number; // 0x8C2F
255 readonly ANY_SAMPLES_PASSED_CONSERVATIVE: number; // 0x8D6A
256 readonly SAMPLER_BINDING: number; // 0x8919
257 readonly RGB10_A2UI: number; // 0x906F
258 readonly INT_2_10_10_10_REV: number; // 0x8D9F
259 readonly TRANSFORM_FEEDBACK: number; // 0x8E22
260 readonly TRANSFORM_FEEDBACK_PAUSED: number; // 0x8E23
261 readonly TRANSFORM_FEEDBACK_ACTIVE: number; // 0x8E24
262 readonly TRANSFORM_FEEDBACK_BINDING: number; // 0x8E25
263 readonly TEXTURE_IMMUTABLE_FORMAT: number; // 0x912F
264 readonly MAX_ELEMENT_INDEX: number; // 0x8D6B
265 readonly TEXTURE_IMMUTABLE_LEVELS: number; // 0x82DF
266
267 readonly TIMEOUT_IGNORED: number; // -1
268
269 /* WebGL-specific enums */
270 readonly MAX_CLIENT_WAIT_TIMEOUT_WEBGL: number; // 0x9247
271
272 /* Buffer objects */
273 // WebGL1:
274 bufferData(target: number, sizeOrData: number | Int8Array | Int16Array | Int32Array | Uint8Array | Uint16Array |
275 Uint32Array | Uint8ClampedArray | Float32Array | Float64Array | DataView | ArrayBuffer | null, usage: number): void;
276 bufferSubData(target: number, dstByteOffset: number, srcData: Int8Array | Int16Array | Int32Array | Uint8Array |
277 Uint16Array | Uint32Array | Uint8ClampedArray | Float32Array | Float64Array | DataView | ArrayBuffer | null): void;
278 // For compatibility with WebGL 1 context in older Typescript versions.
279 bufferData(target: number, data: ArrayBufferView, usage: number): void;
280 bufferSubData(target: number, dstByteOffset: number, srcData: ArrayBufferView): void;
281 // WebGL2:
282 bufferData(target: number, srcData: Int8Array | Int16Array | Int32Array | Uint8Array | Uint16Array | Uint32Array |
283 Uint8ClampedArray | Float32Array | Float64Array | DataView | ArrayBuffer | null, usage: number, srcOffset: number, length?: number): void;
284 bufferSubData(target: number, dstByteOffset: number, srcData: ArrayBufferView,
285 srcOffset: number, length?: number): void;
286
287 copyBufferSubData(readTarget: number, writeTarget: number, readOffset: number,
288 writeOffset: number, size: number): void;
289 // MapBufferRange, in particular its read-only and write-only modes,
290 // can not be exposed safely to JavaScript. GetBufferSubData
291 // replaces it for the purpose of fetching data back from the GPU.
292 getBufferSubData(target: number, srcByteOffset: number, dstBuffer: ArrayBufferView,
293 dstOffset?: number, length?: number): void;
294
295 /* Framebuffer objects */
296 blitFramebuffer(srcX0: number, srcY0: number, srcX1: number, srcY1: number, dstX0: number, dstY0: number,
297 dstX1: number, dstY1: number, mask: number, filter: number): void;
298 framebufferTextureLayer(target: number, attachment: number, texture: WebGLTexture | null, level: number,
299 layer: number): void;
300 invalidateFramebuffer(target: number, attachments: number[]): void;
301 invalidateSubFramebuffer(target: number, attachments: number[],
302 x: number, y: number, width: number, height: number): void;
303 readBuffer(src: number): void;
304
305 /* Renderbuffer objects */
306 getInternalformatParameter(target: number, internalformat: number, pname: number): any;
307 renderbufferStorageMultisample(target: number, samples: number, internalformat: number,
308 width: number, height: number): void;
309
310 /* Texture objects */
311 texStorage2D(target: number, levels: number, internalformat: number, width: number,
312 height: number): void;
313 texStorage3D(target: number, levels: number, internalformat: number, width: number,
314 height: number, depth: number): void;
315
316 // WebGL1 legacy entrypoints:
317 texImage2D(target: number, level: number, internalformat: number,
318 width: number, height: number, border: number, format: number,
319 type: number, pixels?: ArrayBufferView | null): void;
320 texImage2D(target: number, level: number, internalformat: number,
321 format: number, type: number, source: ImageData | HTMLImageElement | HTMLCanvasElement | HTMLVideoElement): void; // May throw DOMException
322 texImage2D(target: number, level: number, internalformat: number,
323 format: number, type: number, source: ImageBitmap | ImageData | HTMLImageElement | HTMLCanvasElement | HTMLVideoElement): void; // May throw DOMException
324
325 texSubImage2D(target: number, level: number, xoffset: number, yoffset: number,
326 width: number, height: number,
327 format: number, type: number, pixels?: ArrayBufferView | null): void;
328 texSubImage2D(target: number, level: number, xoffset: number, yoffset: number,
329 format: number, type: number, source: ImageData | HTMLImageElement | HTMLCanvasElement | HTMLVideoElement): void; // May throw DOMException
330 texSubImage2D(target: number, level: number, xoffset: number, yoffset: number,
331 format: number, type: number, source: ImageBitmap | ImageData | HTMLImageElement | HTMLCanvasElement | HTMLVideoElement): void; // May throw DOMException
332
333 // WebGL2 entrypoints:
334 texImage2D(target: number, level: number, internalformat: number, width: number, height: number,
335 border: number, format: number, type: number, pboOffset: number): void;
336 texImage2D(target: number, level: number, internalformat: number, width: number, height: number,
337 border: number, format: number, type: number,
338 source: ImageBitmap | ImageData | HTMLImageElement | HTMLCanvasElement | HTMLVideoElement): void; // May throw DOMException
339 texImage2D(target: number, level: number, internalformat: number, width: number, height: number,
340 border: number, format: number, type: number, srcData: ArrayBufferView,
341 srcOffset: number): void;
342
343 texImage3D(target: number, level: number, internalformat: number, width: number, height: number,
344 depth: number, border: number, format: number, type: number, pboOffset: number): void;
345 texImage3D(target: number, level: number, internalformat: number, width: number, height: number,
346 depth: number, border: number, format: number, type: number,
347 source: ImageBitmap | ImageData | HTMLImageElement | HTMLCanvasElement | HTMLVideoElement): void; // May throw DOMException
348 texImage3D(target: number, level: number, internalformat: number, width: number, height: number,
349 depth: number, border: number, format: number, type: number, srcData: ArrayBufferView | null): void;
350 texImage3D(target: number, level: number, internalformat: number, width: number, height: number,
351 depth: number, border: number, format: number, type: number, srcData: ArrayBufferView,
352 srcOffset: number): void;
353
354 texSubImage2D(target: number, level: number, xoffset: number, yoffset: number, width: number,
355 height: number, format: number, type: number, pboOffset: number): void;
356 texSubImage2D(target: number, level: number, xoffset: number, yoffset: number, width: number,
357 height: number, format: number, type: number,
358 source: ImageBitmap | ImageData | HTMLImageElement | HTMLCanvasElement | HTMLVideoElement): void; // May throw DOMException
359 texSubImage2D(target: number, level: number, xoffset: number, yoffset: number, width: number,
360 height: number, format: number, type: number, srcData: ArrayBufferView,
361 srcOffset: number): void;
362
363 texSubImage3D(target: number, level: number, xoffset: number, yoffset: number, zoffset: number,
364 width: number, height: number, depth: number, format: number, type: number,
365 pboOffset: number): void;
366 texSubImage3D(target: number, level: number, xoffset: number, yoffset: number, zoffset: number,
367 width: number, height: number, depth: number, format: number, type: number,
368 source: ImageBitmap | ImageData | HTMLImageElement | HTMLCanvasElement | HTMLVideoElement): void; // May throw DOMException
369 texSubImage3D(target: number, level: number, xoffset: number, yoffset: number, zoffset: number,
370 width: number, height: number, depth: number, format: number, type: number,
371 srcData: ArrayBufferView | null, srcOffset?: number): void;
372
373 copyTexSubImage3D(target: number, level: number, xoffset: number, yoffset: number, zoffset: number,
374 x: number, y: number, width: number, height: number): void;
375
376 compressedTexImage2D(target: number, level: number, internalformat: number, width: number,
377 height: number, border: number, imageSize: number, offset: number): void;
378 compressedTexImage2D(target: number, level: number, internalformat: number, width: number,
379 height: number, border: number, srcData: Int8Array | Int16Array | Int32Array | Uint8Array | Uint16Array | Uint32Array |
380 Uint8ClampedArray | Float32Array | Float64Array | DataView | null, srcOffset?: number, srcLengthOverride?: number): void;
381 // For compatibility with WebGL 1 context in older Typescript versions.
382 compressedTexImage2D(target: number, level: number, internalformat: number, width: number,
383 height: number, border: number, srcData: ArrayBufferView,
384 srcOffset?: number, srcLengthOverride?: number): void;
385
386 compressedTexImage3D(target: number, level: number, internalformat: number, width: number,
387 height: number, depth: number, border: number, imageSize: number, offset: number): void;
388 compressedTexImage3D(target: number, level: number, internalformat: number, width: number,
389 height: number, depth: number, border: number, srcData: ArrayBufferView,
390 srcOffset?: number, srcLengthOverride?: number): void;
391
392 compressedTexSubImage2D(target: number, level: number, xoffset: number, yoffset: number,
393 width: number, height: number, format: number, imageSize: number, offset: number): void;
394 compressedTexSubImage2D(target: number, level: number, xoffset: number, yoffset: number,
395 width: number, height: number, format: number,
396 srcData: Int8Array | Int16Array | Int32Array | Uint8Array | Uint16Array | Uint32Array |
397 Uint8ClampedArray | Float32Array | Float64Array | DataView | null, srcOffset?: number, srcLengthOverride?: number): void;
398 // For compatibility with WebGL 1 context in older Typescript versions.
399 compressedTexSubImage2D(target: number, level: number, xoffset: number, yoffset: number,
400 width: number, height: number, format: number,
401 srcData: ArrayBufferView | null,
402 srcOffset?: number,
403 srcLengthOverride?: number): void;
404
405 compressedTexSubImage3D(target: number, level: number, xoffset: number, yoffset: number,
406 zoffset: number, width: number, height: number, depth: number,
407 format: number, imageSize: number, offset: number): void;
408 compressedTexSubImage3D(target: number, level: number, xoffset: number, yoffset: number,
409 zoffset: number, width: number, height: number, depth: number,
410 format: number, srcData: ArrayBufferView,
411 srcOffset?: number,
412 srcLengthOverride?: number): void;
413
414 /* Programs and shaders */
415 getFragDataLocation(program: WebGLProgram, name: string): number;
416
417 /* Uniforms */
418 uniform1ui(location: WebGLUniformLocation | null, v0: number): void;
419 uniform2ui(location: WebGLUniformLocation | null, v0: number, v1: number): void;
420 uniform3ui(location: WebGLUniformLocation | null, v0: number, v1: number, v2: number): void;
421 uniform4ui(location: WebGLUniformLocation | null, v0: number, v1: number, v2: number, v3: number): void;
422
423 uniform1fv(location: WebGLUniformLocation | null, data: Float32Array | ArrayLike<number>, srcOffset?: number,
424 srcLength?: number): void;
425 uniform2fv(location: WebGLUniformLocation | null, data: Float32Array | ArrayLike<number>, srcOffset?: number,
426 srcLength?: number): void;
427 uniform3fv(location: WebGLUniformLocation | null, data: Float32Array | ArrayLike<number>, srcOffset?: number,
428 srcLength?: number): void;
429 uniform4fv(location: WebGLUniformLocation | null, data: Float32Array | ArrayLike<number>, srcOffset?: number,
430 srcLength?: number): void;
431
432 uniform1iv(location: WebGLUniformLocation | null, data: Int32Array | ArrayLike<number>, srcOffset?: number,
433 srcLength?: number): void;
434 uniform2iv(location: WebGLUniformLocation | null, data: Int32Array | ArrayLike<number>, srcOffset?: number,
435 srcLength?: number): void;
436 uniform3iv(location: WebGLUniformLocation | null, data: Int32Array | ArrayLike<number>, srcOffset?: number,
437 srcLength?: number): void;
438 uniform4iv(location: WebGLUniformLocation | null, data: Int32Array | ArrayLike<number>, srcOffset?: number,
439 srcLength?: number): void;
440
441 uniform1uiv(location: WebGLUniformLocation | null, data: Uint32Array | ArrayLike<number>, srcOffset?: number,
442 srcLength?: number): void;
443 uniform2uiv(location: WebGLUniformLocation | null, data: Uint32Array | ArrayLike<number>, srcOffset?: number,
444 srcLength?: number): void;
445 uniform3uiv(location: WebGLUniformLocation | null, data: Uint32Array | ArrayLike<number>, srcOffset?: number,
446 srcLength?: number): void;
447 uniform4uiv(location: WebGLUniformLocation | null, data: Uint32Array | ArrayLike<number>, srcOffset?: number,
448 srcLength?: number): void;
449
450 uniformMatrix2fv(location: WebGLUniformLocation | null, transpose: boolean, data: Float32Array | ArrayLike<number>,
451 srcOffset?: number, srcLength?: number): void;
452 uniformMatrix3x2fv(location: WebGLUniformLocation | null, transpose: boolean, data: Float32Array | ArrayLike<number>,
453 srcOffset?: number, srcLength?: number): void;
454 uniformMatrix4x2fv(location: WebGLUniformLocation | null, transpose: boolean, data: Float32Array | ArrayLike<number>,
455 srcOffset?: number, srcLength?: number): void;
456
457 uniformMatrix2x3fv(location: WebGLUniformLocation | null, transpose: boolean, data: Float32Array | ArrayLike<number>,
458 srcOffset?: number, srcLength?: number): void;
459 uniformMatrix3fv(location: WebGLUniformLocation | null, transpose: boolean, data: Float32Array | ArrayLike<number>,
460 srcOffset?: number, srcLength?: number): void;
461 uniformMatrix4x3fv(location: WebGLUniformLocation | null, transpose: boolean, data: Float32Array | ArrayLike<number>,
462 srcOffset?: number, srcLength?: number): void;
463
464 uniformMatrix2x4fv(location: WebGLUniformLocation | null, transpose: boolean, data: Float32Array | ArrayLike<number>,
465 srcOffset?: number, srcLength?: number): void;
466 uniformMatrix3x4fv(location: WebGLUniformLocation | null, transpose: boolean, data: Float32Array | ArrayLike<number>,
467 srcOffset?: number, srcLength?: number): void;
468 uniformMatrix4fv(location: WebGLUniformLocation | null, transpose: boolean, data: Float32Array | ArrayLike<number>,
469 srcOffset?: number, srcLength?: number): void;
470
471 /* Vertex attribs */
472 vertexAttribI4i(index: number, x: number, y: number, z: number, w: number): void;
473 vertexAttribI4iv(index: number, values: Int32Array | ArrayLike<number>): void;
474 vertexAttribI4ui(index: number, x: number, y: number, z: number, w: number): void;
475 vertexAttribI4uiv(index: number, values: Uint32Array | ArrayLike<number>): void;
476 vertexAttribIPointer(index: number, size: number, type: number, stride: number, offset: number): void;
477
478 /* Writing to the drawing buffer */
479 vertexAttribDivisor(index: number, divisor: number): void;
480 drawArraysInstanced(mode: number, first: number, count: number, instanceCount: number): void;
481 drawElementsInstanced(mode: number, count: number, type: number, offset: number, instanceCount: number): void;
482 drawRangeElements(mode: number, start: number, end: number, count: number, type: number, offset: number): void;
483
484 /* Reading back pixels */
485 // WebGL1:
486 readPixels(x: number, y: number, width: number, height: number, format: number, type: number,
487 dstData: Int8Array | Int16Array | Int32Array | Uint8Array | Uint16Array | Uint32Array | Uint8ClampedArray |
488 Float32Array | Float64Array | DataView | null): void;
489 // For compatibility with WebGL 1 context in older Typescript versions.
490 readPixels(x: number, y: number, width: number, height: number, format: number, type: number,
491 dstData: ArrayBufferView | null): void;
492 // WebGL2:
493 readPixels(x: number, y: number, width: number, height: number, format: number, type: number,
494 offset: number): void;
495 readPixels(x: number, y: number, width: number, height: number, format: number, type: number,
496 dstData: ArrayBufferView, dstOffset: number): void;
497
498 /* Multiple Render Targets */
499 drawBuffers(buffers: number[]): void;
500
501 clearBufferfv(buffer: number, drawbuffer: number, values: Float32Array | ArrayLike<number>,
502 srcOffset?: number): void;
503 clearBufferiv(buffer: number, drawbuffer: number, values: Int32Array | ArrayLike<number>,
504 srcOffset?: number): void;
505 clearBufferuiv(buffer: number, drawbuffer: number, values: Uint32Array | ArrayLike<number>,
506 srcOffset?: number): void;
507
508 clearBufferfi(buffer: number, drawbuffer: number, depth: number, stencil: number): void;
509
510 /* Query Objects */
511 createQuery(): WebGLQuery | null;
512 deleteQuery(query: WebGLQuery | null): void;
513 isQuery(query: WebGLQuery | null): boolean; //[WebGLHandlesContextLoss]
514 beginQuery(target: number, query: WebGLQuery): void;
515 endQuery(target: number): void;
516 getQuery(target: number, pname: number): WebGLQuery | null;
517 getQueryParameter(query: WebGLQuery, pname: number): any;
518
519 /* Sampler Objects */
520 createSampler(): WebGLSampler | null;
521 deleteSampler(sampler: WebGLSampler | null): void;
522 isSampler(sampler: WebGLSampler | null): boolean; //[WebGLHandlesContextLoss]
523 bindSampler(unit: number, sampler: WebGLSampler | null): void;
524 samplerParameteri(sampler: WebGLSampler, pname: number, param: number): void;
525 samplerParameterf(sampler: WebGLSampler, pname: number, param: number): void;
526 getSamplerParameter(sampler: WebGLSampler, pname: number): any;
527
528 /* Sync objects */
529 fenceSync(condition: number, flags: number): WebGLSync | null;
530 isSync(sync: WebGLSync | null): boolean; //[WebGLHandlesContextLoss]
531 deleteSync(sync: WebGLSync | null): void;
532 clientWaitSync(sync: WebGLSync, flags: number, timeout: number): number;
533 waitSync(sync: WebGLSync, flags: number, timeout: number): void;
534 getSyncParameter(sync: WebGLSync, pname: number): any;
535
536 /* Transform Feedback */
537 createTransformFeedback(): WebGLTransformFeedback | null;
538 deleteTransformFeedback(tf: WebGLTransformFeedback | null): void;
539 isTransformFeedback(tf: WebGLTransformFeedback | null): boolean; //[WebGLHandlesContextLoss]
540 bindTransformFeedback(target: number, tf: WebGLTransformFeedback | null): void;
541 beginTransformFeedback(primitiveMode: number): void;
542 endTransformFeedback(): void;
543 transformFeedbackVaryings(program: WebGLProgram, varyings: string[], bufferMode: number): void;
544 getTransformFeedbackVarying(program: WebGLProgram, index: number): WebGLActiveInfo | null;
545 pauseTransformFeedback(): void;
546 resumeTransformFeedback(): void;
547
548 /* Uniform Buffer Objects and Transform Feedback Buffers */
549 bindBufferBase(target: number, index: number, buffer: WebGLBuffer | null): void;
550 bindBufferRange(target: number, index: number, buffer: WebGLBuffer | null, offset: number, size: number): void;
551 getIndexedParameter(target: number, index: number): any;
552 getUniformIndices(program: WebGLProgram, uniformNames: string[]): number[] | null;
553 getActiveUniforms(program: WebGLProgram, uniformIndices: number[], pname: number): any;
554 getUniformBlockIndex(program: WebGLProgram, uniformBlockName: string): number;
555 getActiveUniformBlockParameter(program: WebGLProgram, uniformBlockIndex: number, pname: number): any;
556 getActiveUniformBlockName(program: WebGLProgram, uniformBlockIndex: number): string | null;
557 uniformBlockBinding(program: WebGLProgram, uniformBlockIndex: number, uniformBlockBinding: number): void;
558
559 /* Vertex Array Objects */
560 createVertexArray(): WebGLVertexArrayObject | null;
561 deleteVertexArray(vertexArray: WebGLVertexArrayObject | null): void;
562 isVertexArray(vertexArray: WebGLVertexArrayObject | null): boolean; //[WebGLHandlesContextLoss]
563 bindVertexArray(array: WebGLVertexArrayObject | null): void;
564}
565
566interface WebGLQuery extends WebGLObject {}
567interface WebGLSampler extends WebGLObject {}
568interface WebGLSync extends WebGLObject {}
569interface WebGLTransformFeedback extends WebGLObject {}
570interface WebGLVertexArrayObject extends WebGLObject {}