UNPKG

34.8 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(
275 target: number,
276 sizeOrData:
277 | number
278 | Int8Array
279 | Int16Array
280 | Int32Array
281 | Uint8Array
282 | Uint16Array
283 | Uint32Array
284 | Uint8ClampedArray
285 | Float32Array
286 | Float64Array
287 | DataView
288 | ArrayBuffer
289 | null,
290 usage: number
291 ): void;
292 bufferSubData(
293 target: number,
294 dstByteOffset: number,
295 srcData:
296 | Int8Array
297 | Int16Array
298 | Int32Array
299 | Uint8Array
300 | Uint16Array
301 | Uint32Array
302 | Uint8ClampedArray
303 | Float32Array
304 | Float64Array
305 | DataView
306 | ArrayBuffer
307 | null
308 ): void;
309 // For compatibility with WebGL 1 context in older Typescript versions.
310 bufferData(target: number, data: ArrayBufferView, usage: number): void;
311 bufferSubData(target: number, dstByteOffset: number, srcData: ArrayBufferView): void;
312 // WebGL2:
313 bufferData(
314 target: number,
315 srcData:
316 | Int8Array
317 | Int16Array
318 | Int32Array
319 | Uint8Array
320 | Uint16Array
321 | Uint32Array
322 | Uint8ClampedArray
323 | Float32Array
324 | Float64Array
325 | DataView
326 | ArrayBuffer
327 | null,
328 usage: number,
329 srcOffset: number,
330 length?: number
331 ): void;
332 bufferSubData(
333 target: number,
334 dstByteOffset: number,
335 srcData: ArrayBufferView,
336 srcOffset: number,
337 length?: number
338 ): void;
339
340 copyBufferSubData(
341 readTarget: number,
342 writeTarget: number,
343 readOffset: number,
344 writeOffset: number,
345 size: number
346 ): void;
347 // MapBufferRange, in particular its read-only and write-only modes,
348 // can not be exposed safely to JavaScript. GetBufferSubData
349 // replaces it for the purpose of fetching data back from the GPU.
350 getBufferSubData(
351 target: number,
352 srcByteOffset: number,
353 dstBuffer: ArrayBufferView,
354 dstOffset?: number,
355 length?: number
356 ): void;
357
358 /* Framebuffer objects */
359 blitFramebuffer(
360 srcX0: number,
361 srcY0: number,
362 srcX1: number,
363 srcY1: number,
364 dstX0: number,
365 dstY0: number,
366 dstX1: number,
367 dstY1: number,
368 mask: number,
369 filter: number
370 ): void;
371 framebufferTextureLayer(
372 target: number,
373 attachment: number,
374 texture: WebGLTexture | null,
375 level: number,
376 layer: number
377 ): void;
378 invalidateFramebuffer(target: number, attachments: number[]): void;
379 invalidateSubFramebuffer(
380 target: number,
381 attachments: number[],
382 x: number,
383 y: number,
384 width: number,
385 height: number
386 ): void;
387 readBuffer(src: number): void;
388
389 /* Renderbuffer objects */
390 getInternalformatParameter(target: number, internalformat: number, pname: number): any;
391 renderbufferStorageMultisample(
392 target: number,
393 samples: number,
394 internalformat: number,
395 width: number,
396 height: number
397 ): void;
398
399 /* Texture objects */
400 texStorage2D(
401 target: number,
402 levels: number,
403 internalformat: number,
404 width: number,
405 height: number
406 ): void;
407 texStorage3D(
408 target: number,
409 levels: number,
410 internalformat: number,
411 width: number,
412 height: number,
413 depth: number
414 ): void;
415
416 // WebGL1 legacy entrypoints:
417 texImage2D(
418 target: number,
419 level: number,
420 internalformat: number,
421 width: number,
422 height: number,
423 border: number,
424 format: number,
425 type: number,
426 pixels?: ArrayBufferView | null
427 ): void;
428 texImage2D(
429 target: number,
430 level: number,
431 internalformat: number,
432 format: number,
433 type: number,
434 source: ImageData | HTMLImageElement | HTMLCanvasElement | HTMLVideoElement
435 ): void; // May throw DOMException
436 texImage2D(
437 target: number,
438 level: number,
439 internalformat: number,
440 format: number,
441 type: number,
442 source: ImageBitmap | ImageData | HTMLImageElement | HTMLCanvasElement | HTMLVideoElement
443 ): void; // May throw DOMException
444
445 texSubImage2D(
446 target: number,
447 level: number,
448 xoffset: number,
449 yoffset: number,
450 width: number,
451 height: number,
452 format: number,
453 type: number,
454 pixels?: ArrayBufferView | null
455 ): void;
456 texSubImage2D(
457 target: number,
458 level: number,
459 xoffset: number,
460 yoffset: number,
461 format: number,
462 type: number,
463 source: ImageData | HTMLImageElement | HTMLCanvasElement | HTMLVideoElement
464 ): void; // May throw DOMException
465 texSubImage2D(
466 target: number,
467 level: number,
468 xoffset: number,
469 yoffset: number,
470 format: number,
471 type: number,
472 source: ImageBitmap | ImageData | HTMLImageElement | HTMLCanvasElement | HTMLVideoElement
473 ): void; // May throw DOMException
474
475 // WebGL2 entrypoints:
476 texImage2D(
477 target: number,
478 level: number,
479 internalformat: number,
480 width: number,
481 height: number,
482 border: number,
483 format: number,
484 type: number,
485 pboOffset: number
486 ): void;
487 texImage2D(
488 target: number,
489 level: number,
490 internalformat: number,
491 width: number,
492 height: number,
493 border: number,
494 format: number,
495 type: number,
496 source: ImageBitmap | ImageData | HTMLImageElement | HTMLCanvasElement | HTMLVideoElement
497 ): void; // May throw DOMException
498 texImage2D(
499 target: number,
500 level: number,
501 internalformat: number,
502 width: number,
503 height: number,
504 border: number,
505 format: number,
506 type: number,
507 srcData: ArrayBufferView,
508 srcOffset: number
509 ): void;
510
511 texImage3D(
512 target: number,
513 level: number,
514 internalformat: number,
515 width: number,
516 height: number,
517 depth: number,
518 border: number,
519 format: number,
520 type: number,
521 pboOffset: number
522 ): void;
523 texImage3D(
524 target: number,
525 level: number,
526 internalformat: number,
527 width: number,
528 height: number,
529 depth: number,
530 border: number,
531 format: number,
532 type: number,
533 source: ImageBitmap | ImageData | HTMLImageElement | HTMLCanvasElement | HTMLVideoElement
534 ): void; // May throw DOMException
535 texImage3D(
536 target: number,
537 level: number,
538 internalformat: number,
539 width: number,
540 height: number,
541 depth: number,
542 border: number,
543 format: number,
544 type: number,
545 srcData: ArrayBufferView | null
546 ): void;
547 texImage3D(
548 target: number,
549 level: number,
550 internalformat: number,
551 width: number,
552 height: number,
553 depth: number,
554 border: number,
555 format: number,
556 type: number,
557 srcData: ArrayBufferView,
558 srcOffset: number
559 ): void;
560
561 texSubImage2D(
562 target: number,
563 level: number,
564 xoffset: number,
565 yoffset: number,
566 width: number,
567 height: number,
568 format: number,
569 type: number,
570 pboOffset: number
571 ): void;
572 texSubImage2D(
573 target: number,
574 level: number,
575 xoffset: number,
576 yoffset: number,
577 width: number,
578 height: number,
579 format: number,
580 type: number,
581 source: ImageBitmap | ImageData | HTMLImageElement | HTMLCanvasElement | HTMLVideoElement
582 ): void; // May throw DOMException
583 texSubImage2D(
584 target: number,
585 level: number,
586 xoffset: number,
587 yoffset: number,
588 width: number,
589 height: number,
590 format: number,
591 type: number,
592 srcData: ArrayBufferView,
593 srcOffset: number
594 ): void;
595
596 texSubImage3D(
597 target: number,
598 level: number,
599 xoffset: number,
600 yoffset: number,
601 zoffset: number,
602 width: number,
603 height: number,
604 depth: number,
605 format: number,
606 type: number,
607 pboOffset: number
608 ): void;
609 texSubImage3D(
610 target: number,
611 level: number,
612 xoffset: number,
613 yoffset: number,
614 zoffset: number,
615 width: number,
616 height: number,
617 depth: number,
618 format: number,
619 type: number,
620 source: ImageBitmap | ImageData | HTMLImageElement | HTMLCanvasElement | HTMLVideoElement
621 ): void; // May throw DOMException
622 texSubImage3D(
623 target: number,
624 level: number,
625 xoffset: number,
626 yoffset: number,
627 zoffset: number,
628 width: number,
629 height: number,
630 depth: number,
631 format: number,
632 type: number,
633 srcData: ArrayBufferView | null,
634 srcOffset?: number
635 ): void;
636
637 copyTexSubImage3D(
638 target: number,
639 level: number,
640 xoffset: number,
641 yoffset: number,
642 zoffset: number,
643 x: number,
644 y: number,
645 width: number,
646 height: number
647 ): void;
648
649 compressedTexImage2D(
650 target: number,
651 level: number,
652 internalformat: number,
653 width: number,
654 height: number,
655 border: number,
656 imageSize: number,
657 offset: number
658 ): void;
659 compressedTexImage2D(
660 target: number,
661 level: number,
662 internalformat: number,
663 width: number,
664 height: number,
665 border: number,
666 srcData:
667 | Int8Array
668 | Int16Array
669 | Int32Array
670 | Uint8Array
671 | Uint16Array
672 | Uint32Array
673 | Uint8ClampedArray
674 | Float32Array
675 | Float64Array
676 | DataView
677 | null,
678 srcOffset?: number,
679 srcLengthOverride?: number
680 ): void;
681 // For compatibility with WebGL 1 context in older Typescript versions.
682 compressedTexImage2D(
683 target: number,
684 level: number,
685 internalformat: number,
686 width: number,
687 height: number,
688 border: number,
689 srcData: ArrayBufferView,
690 srcOffset?: number,
691 srcLengthOverride?: number
692 ): void;
693
694 compressedTexImage3D(
695 target: number,
696 level: number,
697 internalformat: number,
698 width: number,
699 height: number,
700 depth: number,
701 border: number,
702 imageSize: number,
703 offset: number
704 ): void;
705 compressedTexImage3D(
706 target: number,
707 level: number,
708 internalformat: number,
709 width: number,
710 height: number,
711 depth: number,
712 border: number,
713 srcData: ArrayBufferView,
714 srcOffset?: number,
715 srcLengthOverride?: number
716 ): void;
717
718 compressedTexSubImage2D(
719 target: number,
720 level: number,
721 xoffset: number,
722 yoffset: number,
723 width: number,
724 height: number,
725 format: number,
726 imageSize: number,
727 offset: number
728 ): void;
729 compressedTexSubImage2D(
730 target: number,
731 level: number,
732 xoffset: number,
733 yoffset: number,
734 width: number,
735 height: number,
736 format: number,
737 srcData:
738 | Int8Array
739 | Int16Array
740 | Int32Array
741 | Uint8Array
742 | Uint16Array
743 | Uint32Array
744 | Uint8ClampedArray
745 | Float32Array
746 | Float64Array
747 | DataView
748 | null,
749 srcOffset?: number,
750 srcLengthOverride?: number
751 ): void;
752 // For compatibility with WebGL 1 context in older Typescript versions.
753 compressedTexSubImage2D(
754 target: number,
755 level: number,
756 xoffset: number,
757 yoffset: number,
758 width: number,
759 height: number,
760 format: number,
761 srcData: ArrayBufferView | null,
762 srcOffset?: number,
763 srcLengthOverride?: number
764 ): void;
765
766 compressedTexSubImage3D(
767 target: number,
768 level: number,
769 xoffset: number,
770 yoffset: number,
771 zoffset: number,
772 width: number,
773 height: number,
774 depth: number,
775 format: number,
776 imageSize: number,
777 offset: number
778 ): void;
779 compressedTexSubImage3D(
780 target: number,
781 level: number,
782 xoffset: number,
783 yoffset: number,
784 zoffset: number,
785 width: number,
786 height: number,
787 depth: number,
788 format: number,
789 srcData: ArrayBufferView,
790 srcOffset?: number,
791 srcLengthOverride?: number
792 ): void;
793
794 /* Programs and shaders */
795 getFragDataLocation(program: WebGLProgram, name: string): number;
796
797 /* Uniforms */
798 uniform1ui(location: WebGLUniformLocation | null, v0: number): void;
799 uniform2ui(location: WebGLUniformLocation | null, v0: number, v1: number): void;
800 uniform3ui(location: WebGLUniformLocation | null, v0: number, v1: number, v2: number): void;
801 uniform4ui(
802 location: WebGLUniformLocation | null,
803 v0: number,
804 v1: number,
805 v2: number,
806 v3: number
807 ): void;
808
809 uniform1fv(
810 location: WebGLUniformLocation | null,
811 data: Float32Array | ArrayLike<number>,
812 srcOffset?: number,
813 srcLength?: number
814 ): void;
815 uniform2fv(
816 location: WebGLUniformLocation | null,
817 data: Float32Array | ArrayLike<number>,
818 srcOffset?: number,
819 srcLength?: number
820 ): void;
821 uniform3fv(
822 location: WebGLUniformLocation | null,
823 data: Float32Array | ArrayLike<number>,
824 srcOffset?: number,
825 srcLength?: number
826 ): void;
827 uniform4fv(
828 location: WebGLUniformLocation | null,
829 data: Float32Array | ArrayLike<number>,
830 srcOffset?: number,
831 srcLength?: number
832 ): void;
833
834 uniform1iv(
835 location: WebGLUniformLocation | null,
836 data: Int32Array | ArrayLike<number>,
837 srcOffset?: number,
838 srcLength?: number
839 ): void;
840 uniform2iv(
841 location: WebGLUniformLocation | null,
842 data: Int32Array | ArrayLike<number>,
843 srcOffset?: number,
844 srcLength?: number
845 ): void;
846 uniform3iv(
847 location: WebGLUniformLocation | null,
848 data: Int32Array | ArrayLike<number>,
849 srcOffset?: number,
850 srcLength?: number
851 ): void;
852 uniform4iv(
853 location: WebGLUniformLocation | null,
854 data: Int32Array | ArrayLike<number>,
855 srcOffset?: number,
856 srcLength?: number
857 ): void;
858
859 uniform1uiv(
860 location: WebGLUniformLocation | null,
861 data: Uint32Array | ArrayLike<number>,
862 srcOffset?: number,
863 srcLength?: number
864 ): void;
865 uniform2uiv(
866 location: WebGLUniformLocation | null,
867 data: Uint32Array | ArrayLike<number>,
868 srcOffset?: number,
869 srcLength?: number
870 ): void;
871 uniform3uiv(
872 location: WebGLUniformLocation | null,
873 data: Uint32Array | ArrayLike<number>,
874 srcOffset?: number,
875 srcLength?: number
876 ): void;
877 uniform4uiv(
878 location: WebGLUniformLocation | null,
879 data: Uint32Array | ArrayLike<number>,
880 srcOffset?: number,
881 srcLength?: number
882 ): void;
883
884 uniformMatrix2fv(
885 location: WebGLUniformLocation | null,
886 transpose: boolean,
887 data: Float32Array | ArrayLike<number>,
888 srcOffset?: number,
889 srcLength?: number
890 ): void;
891 uniformMatrix3x2fv(
892 location: WebGLUniformLocation | null,
893 transpose: boolean,
894 data: Float32Array | ArrayLike<number>,
895 srcOffset?: number,
896 srcLength?: number
897 ): void;
898 uniformMatrix4x2fv(
899 location: WebGLUniformLocation | null,
900 transpose: boolean,
901 data: Float32Array | ArrayLike<number>,
902 srcOffset?: number,
903 srcLength?: number
904 ): void;
905
906 uniformMatrix2x3fv(
907 location: WebGLUniformLocation | null,
908 transpose: boolean,
909 data: Float32Array | ArrayLike<number>,
910 srcOffset?: number,
911 srcLength?: number
912 ): void;
913 uniformMatrix3fv(
914 location: WebGLUniformLocation | null,
915 transpose: boolean,
916 data: Float32Array | ArrayLike<number>,
917 srcOffset?: number,
918 srcLength?: number
919 ): void;
920 uniformMatrix4x3fv(
921 location: WebGLUniformLocation | null,
922 transpose: boolean,
923 data: Float32Array | ArrayLike<number>,
924 srcOffset?: number,
925 srcLength?: number
926 ): void;
927
928 uniformMatrix2x4fv(
929 location: WebGLUniformLocation | null,
930 transpose: boolean,
931 data: Float32Array | ArrayLike<number>,
932 srcOffset?: number,
933 srcLength?: number
934 ): void;
935 uniformMatrix3x4fv(
936 location: WebGLUniformLocation | null,
937 transpose: boolean,
938 data: Float32Array | ArrayLike<number>,
939 srcOffset?: number,
940 srcLength?: number
941 ): void;
942 uniformMatrix4fv(
943 location: WebGLUniformLocation | null,
944 transpose: boolean,
945 data: Float32Array | ArrayLike<number>,
946 srcOffset?: number,
947 srcLength?: number
948 ): void;
949
950 /* Vertex attribs */
951 vertexAttribI4i(index: number, x: number, y: number, z: number, w: number): void;
952 vertexAttribI4iv(index: number, values: Int32Array | ArrayLike<number>): void;
953 vertexAttribI4ui(index: number, x: number, y: number, z: number, w: number): void;
954 vertexAttribI4uiv(index: number, values: Uint32Array | ArrayLike<number>): void;
955 vertexAttribIPointer(
956 index: number,
957 size: number,
958 type: number,
959 stride: number,
960 offset: number
961 ): void;
962
963 /* Writing to the drawing buffer */
964 vertexAttribDivisor(index: number, divisor: number): void;
965 drawArraysInstanced(mode: number, first: number, count: number, instanceCount: number): void;
966 drawElementsInstanced(
967 mode: number,
968 count: number,
969 type: number,
970 offset: number,
971 instanceCount: number
972 ): void;
973 drawRangeElements(
974 mode: number,
975 start: number,
976 end: number,
977 count: number,
978 type: number,
979 offset: number
980 ): void;
981
982 /* Reading back pixels */
983 // WebGL1:
984 readPixels(
985 x: number,
986 y: number,
987 width: number,
988 height: number,
989 format: number,
990 type: number,
991 dstData:
992 | Int8Array
993 | Int16Array
994 | Int32Array
995 | Uint8Array
996 | Uint16Array
997 | Uint32Array
998 | Uint8ClampedArray
999 | Float32Array
1000 | Float64Array
1001 | DataView
1002 | null
1003 ): void;
1004 // For compatibility with WebGL 1 context in older Typescript versions.
1005 readPixels(
1006 x: number,
1007 y: number,
1008 width: number,
1009 height: number,
1010 format: number,
1011 type: number,
1012 dstData: ArrayBufferView | null
1013 ): void;
1014 // WebGL2:
1015 readPixels(
1016 x: number,
1017 y: number,
1018 width: number,
1019 height: number,
1020 format: number,
1021 type: number,
1022 offset: number
1023 ): void;
1024 readPixels(
1025 x: number,
1026 y: number,
1027 width: number,
1028 height: number,
1029 format: number,
1030 type: number,
1031 dstData: ArrayBufferView,
1032 dstOffset: number
1033 ): void;
1034
1035 /* Multiple Render Targets */
1036 drawBuffers(buffers: number[]): void;
1037
1038 clearBufferfv(
1039 buffer: number,
1040 drawbuffer: number,
1041 values: Float32Array | ArrayLike<number>,
1042 srcOffset?: number
1043 ): void;
1044 clearBufferiv(
1045 buffer: number,
1046 drawbuffer: number,
1047 values: Int32Array | ArrayLike<number>,
1048 srcOffset?: number
1049 ): void;
1050 clearBufferuiv(
1051 buffer: number,
1052 drawbuffer: number,
1053 values: Uint32Array | ArrayLike<number>,
1054 srcOffset?: number
1055 ): void;
1056
1057 clearBufferfi(buffer: number, drawbuffer: number, depth: number, stencil: number): void;
1058
1059 /* Query Objects */
1060 createQuery(): WebGLQuery | null;
1061 deleteQuery(query: WebGLQuery | null): void;
1062 isQuery(query: WebGLQuery | null): boolean; //[WebGLHandlesContextLoss]
1063 beginQuery(target: number, query: WebGLQuery): void;
1064 endQuery(target: number): void;
1065 getQuery(target: number, pname: number): WebGLQuery | null;
1066 getQueryParameter(query: WebGLQuery, pname: number): any;
1067
1068 /* Sampler Objects */
1069 createSampler(): WebGLSampler | null;
1070 deleteSampler(sampler: WebGLSampler | null): void;
1071 isSampler(sampler: WebGLSampler | null): boolean; //[WebGLHandlesContextLoss]
1072 bindSampler(unit: number, sampler: WebGLSampler | null): void;
1073 samplerParameteri(sampler: WebGLSampler, pname: number, param: number): void;
1074 samplerParameterf(sampler: WebGLSampler, pname: number, param: number): void;
1075 getSamplerParameter(sampler: WebGLSampler, pname: number): any;
1076
1077 /* Sync objects */
1078 fenceSync(condition: number, flags: number): WebGLSync | null;
1079 isSync(sync: WebGLSync | null): boolean; //[WebGLHandlesContextLoss]
1080 deleteSync(sync: WebGLSync | null): void;
1081 clientWaitSync(sync: WebGLSync, flags: number, timeout: number): number;
1082 waitSync(sync: WebGLSync, flags: number, timeout: number): void;
1083 getSyncParameter(sync: WebGLSync, pname: number): any;
1084
1085 /* Transform Feedback */
1086 createTransformFeedback(): WebGLTransformFeedback | null;
1087 deleteTransformFeedback(tf: WebGLTransformFeedback | null): void;
1088 isTransformFeedback(tf: WebGLTransformFeedback | null): boolean; //[WebGLHandlesContextLoss]
1089 bindTransformFeedback(target: number, tf: WebGLTransformFeedback | null): void;
1090 beginTransformFeedback(primitiveMode: number): void;
1091 endTransformFeedback(): void;
1092 transformFeedbackVaryings(program: WebGLProgram, varyings: string[], bufferMode: number): void;
1093 getTransformFeedbackVarying(program: WebGLProgram, index: number): WebGLActiveInfo | null;
1094 pauseTransformFeedback(): void;
1095 resumeTransformFeedback(): void;
1096
1097 /* Uniform Buffer Objects and Transform Feedback Buffers */
1098 bindBufferBase(target: number, index: number, buffer: WebGLBuffer | null): void;
1099 bindBufferRange(
1100 target: number,
1101 index: number,
1102 buffer: WebGLBuffer | null,
1103 offset: number,
1104 size: number
1105 ): void;
1106 getIndexedParameter(target: number, index: number): any;
1107 getUniformIndices(program: WebGLProgram, uniformNames: string[]): number[] | null;
1108 getActiveUniforms(program: WebGLProgram, uniformIndices: number[], pname: number): any;
1109 getUniformBlockIndex(program: WebGLProgram, uniformBlockName: string): number;
1110 getActiveUniformBlockParameter(
1111 program: WebGLProgram,
1112 uniformBlockIndex: number,
1113 pname: number
1114 ): any;
1115 getActiveUniformBlockName(program: WebGLProgram, uniformBlockIndex: number): string | null;
1116 uniformBlockBinding(
1117 program: WebGLProgram,
1118 uniformBlockIndex: number,
1119 uniformBlockBinding: number
1120 ): void;
1121
1122 /* Vertex Array Objects */
1123 createVertexArray(): WebGLVertexArrayObject | null;
1124 deleteVertexArray(vertexArray: WebGLVertexArrayObject | null): void;
1125 isVertexArray(vertexArray: WebGLVertexArrayObject | null): boolean; //[WebGLHandlesContextLoss]
1126 bindVertexArray(array: WebGLVertexArrayObject | null): void;
1127}
1128
1129interface WebGLQuery extends WebGLObject {}
1130interface WebGLSampler extends WebGLObject {}
1131interface WebGLSync extends WebGLObject {}
1132interface WebGLTransformFeedback extends WebGLObject {}
1133interface WebGLVertexArrayObject extends WebGLObject {}