• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1# WebGL2
2
3The **WebGL2** module supports graphics drawing, such as processing the graphics position and color. WebGL2 provides enhanced capabilities in the rendering pipeline and shader language than WebGL.
4
5This module provides WebGL APIs that correspond to the OpenGL ES 3.0 feature set. For more information, see [WebGL™](https://www.khronos.org/registry/webgl/specs/latest/2.0/).
6
7>  **NOTE**
8>
9> The initial APIs of this module are supported since API version 7. Newly added APIs will be marked with a superscript to indicate their earliest API version.
10>
11> WebGL2 complies with the OpenGL protocol and does not support multi-thread calling.
12>
13> This module can be used only in the JavaScript-compatible web-like development paradigm.
14
15
16## Invoking Method
17
18Create a **\<canvas>** component in the HML file. The following is an example:
19
20
21```html
22<!--xxx.hml-->
23<div class="container">
24    <canvas ref="canvas1" style="width : 400px; height : 200px; background-color : lightyellow;"></canvas>
25    <button class="btn-button" onclick="BtnDraw2D">BtnDraw2D</button>
26</div>
27```
28
29Obtain the **\<canvas>** component instance in the JS file. The following is an example:
30
31
32```js
33// Obtain the <canvas> component instance.
34const el = this.$refs.canvas1;
35// Obtain the WebGL context from the <canvas> component instance.
36const gl = el.getContext('webgl2');
37// Call the WebGL API.
38gl.clearColor(0.0, 0.0, 0.0, 1.0);
39```
40
41
42## Type
43
44**System capability**: SystemCapability.Graphic.Graphic2D.WebGL2
45
46**Table 1** Type
47
48| Name| Type|
49| -------- | -------- |
50| GLenum | number |
51| GLint64 | number |
52| GLuint64 | number |
53| Uint32List | array |
54
55
56## APIs
57
58**System capability**: SystemCapability.Graphic.Graphic2D.WebGL2
59
60**Table 2** APIs
61
62| Name|
63| -------- |
64| [WebGL2RenderingContextBase](#webgl2renderingcontextbase) |
65| [WebGL2RenderingContextOverloads](#webgl2renderingcontextoverloads) |
66| WebGLQuery |
67| WebGLSampler |
68| WebGLSync |
69| WebGLTransformFeedback |
70| WebGLVertexArrayObject |
71
72
73## WebGL2RenderingContextBase
74
75WebGL2RenderingContextBase
76
77
78### Attributes
79
80  | Name| Type| Mandatory|
81| -------- | -------- | -------- |
82| READ_BUFFER | GLenum | Yes|
83| UNPACK_ROW_LENGTH | GLenum | Yes|
84| UNPACK_SKIP_ROWS | GLenum | Yes|
85| UNPACK_SKIP_PIXELS | GLenum | Yes|
86| PACK_ROW_LENGTH | GLenum | Yes|
87| PACK_SKIP_ROWS | GLenum | Yes|
88| PACK_SKIP_PIXELS | GLenum | Yes|
89| COLOR | GLenum | Yes|
90| DEPTH | GLenum | Yes|
91| STENCIL | GLenum | Yes|
92| RED | GLenum | Yes|
93| RGB8 | GLenum | Yes|
94| RGBA8 | GLenum | Yes|
95| RGB10_A2 | GLenum | Yes|
96| TEXTURE_BINDING_3D | GLenum | Yes|
97| UNPACK_SKIP_IMAGES | GLenum | Yes|
98| UNPACK_IMAGE_HEIGHT | GLenum | Yes|
99| TEXTURE_3D | GLenum | Yes|
100| TEXTURE_WRAP_R | GLenum | Yes|
101| MAX_3D_TEXTURE_SIZE | GLenum | Yes|
102| UNSIGNED_INT_2_10_10_10_REV | GLenum | Yes|
103| MAX_ELEMENTS_VERTICES | GLenum | Yes|
104| MAX_ELEMENTS_INDICES | GLenum | Yes|
105| TEXTURE_MIN_LOD | GLenum | Yes|
106| TEXTURE_MAX_LOD | GLenum | Yes|
107| TEXTURE_BASE_LEVEL | GLenum | Yes|
108| TEXTURE_MAX_LEVEL | GLenum | Yes|
109| MIN | GLenum | Yes|
110| MAX | GLenum | Yes|
111| DEPTH_COMPONENT24 | GLenum | Yes|
112| MAX_TEXTURE_LOD_BIAS | GLenum | Yes|
113| TEXTURE_COMPARE_MODE | GLenum | Yes|
114| TEXTURE_COMPARE_FUNC | GLenum | Yes|
115| CURRENT_QUERY | GLenum | Yes|
116| QUERY_RESULT | GLenum | Yes|
117| QUERY_RESULT_AVAILABLE | GLenum | Yes|
118| STREAM_READ | GLenum | Yes|
119| STREAM_COPY | GLenum | Yes|
120| STATIC_READ | GLenum | Yes|
121| STATIC_COPY | GLenum | Yes|
122| DYNAMIC_READ | GLenum | Yes|
123| DYNAMIC_COPY | GLenum | Yes|
124| MAX_DRAW_BUFFERS | GLenum | Yes|
125| DRAW_BUFFER0 | GLenum | Yes|
126| DRAW_BUFFER1 | GLenum | Yes|
127| DRAW_BUFFER2 | GLenum | Yes|
128| DRAW_BUFFER3 | GLenum | Yes|
129| DRAW_BUFFER4 | GLenum | Yes|
130| DRAW_BUFFER5 | GLenum | Yes|
131| DRAW_BUFFER6 | GLenum | Yes|
132| DRAW_BUFFER7 | GLenum | Yes|
133| DRAW_BUFFER8 | GLenum | Yes|
134| DRAW_BUFFER9 | GLenum | Yes|
135| DRAW_BUFFER10 | GLenum | Yes|
136| DRAW_BUFFER11 | GLenum | Yes|
137| DRAW_BUFFER12 | GLenum | Yes|
138| DRAW_BUFFER13 | GLenum | Yes|
139| DRAW_BUFFER14 | GLenum | Yes|
140| DRAW_BUFFER15 | GLenum | Yes|
141| MAX_FRAGMENT_UNIFORM_COMPONENTS | GLenum | Yes|
142| MAX_VERTEX_UNIFORM_COMPONENTS | GLenum | Yes|
143| SAMPLER_3D | GLenum | Yes|
144| SAMPLER_2D_SHADOW | GLenum | Yes|
145| FRAGMENT_SHADER_DERIVATIVE_HINT | GLenum | Yes|
146| PIXEL_PACK_BUFFER | GLenum | Yes|
147| PIXEL_UNPACK_BUFFER | GLenum | Yes|
148| PIXEL_PACK_BUFFER_BINDING | GLenum | Yes|
149| PIXEL_UNPACK_BUFFER_BINDING | GLenum | Yes|
150| FLOAT_MAT2x3 | GLenum | Yes|
151| FLOAT_MAT2x4 | GLenum | Yes|
152| FLOAT_MAT3x2 | GLenum | Yes|
153| FLOAT_MAT3x4 | GLenum | Yes|
154| FLOAT_MAT4x2 | GLenum | Yes|
155| FLOAT_MAT4x3 | GLenum | Yes|
156| SRGB | GLenum | Yes|
157| SRGB8 | GLenum | Yes|
158| SRGB8_ALPHA8 | GLenum | Yes|
159| COMPARE_REF_TO_TEXTURE | GLenum | Yes|
160| RGBA32F | GLenum | Yes|
161| RGB32F | GLenum | Yes|
162| RGBA16F | GLenum | Yes|
163| RGB16F | GLenum | Yes|
164| VERTEX_ATTRIB_ARRAY_INTEGER | GLenum | Yes|
165| MAX_ARRAY_TEXTURE_LAYERS | GLenum | Yes|
166| MIN_PROGRAM_TEXEL_OFFSET | GLenum | Yes|
167| MAX_PROGRAM_TEXEL_OFFSET | GLenum | Yes|
168| MAX_VARYING_COMPONENTS | GLenum | Yes|
169| TEXTURE_2D_ARRAY | GLenum | Yes|
170| TEXTURE_BINDING_2D_ARRAY | GLenum | Yes|
171| R11F_G11F_B10F | GLenum | Yes|
172| UNSIGNED_INT_10F_11F_11F_REV | GLenum | Yes|
173| RGB9_E5 | GLenum | Yes|
174| UNSIGNED_INT_5_9_9_9_REV | GLenum | Yes|
175| TRANSFORM_FEEDBACK_BUFFER_MODE | GLenum | Yes|
176| MAX_TRANSFORM_FEEDBACK_SEPARATE_COMPONENTS | GLenum | Yes|
177| TRANSFORM_FEEDBACK_VARYINGS | GLenum | Yes|
178| TRANSFORM_FEEDBACK_BUFFER_START | GLenum | Yes|
179| TRANSFORM_FEEDBACK_BUFFER_SIZE | GLenum | Yes|
180| TRANSFORM_FEEDBACK_PRIMITIVES_WRITTEN | GLenum | Yes|
181| RASTERIZER_DISCARD | GLenum | Yes|
182| MAX_TRANSFORM_FEEDBACK_INTERLEAVED_COMPONENTS | GLenum | Yes|
183| MAX_TRANSFORM_FEEDBACK_SEPARATE_ATTRIBS | GLenum | Yes|
184| INTERLEAVED_ATTRIBS | GLenum | Yes|
185| SEPARATE_ATTRIBS | GLenum | Yes|
186| TRANSFORM_FEEDBACK_BUFFER | GLenum | Yes|
187| TRANSFORM_FEEDBACK_BUFFER_BINDING | GLenum | Yes|
188| RGBA32UI | GLenum | Yes|
189| RGB32UI | GLenum | Yes|
190| RGBA16UI | GLenum | Yes|
191| RGB16UI | GLenum | Yes|
192| RGBA8UI | GLenum | Yes|
193| RGB8UI | GLenum | Yes|
194| RGBA32I | GLenum | Yes|
195| RGB32I | GLenum | Yes|
196| RGBA16I | GLenum | Yes|
197| RGB16I | GLenum | Yes|
198| RGBA8I | GLenum | Yes|
199| RGB8I | GLenum | Yes|
200| RED_INTEGER | GLenum | Yes|
201| RGB_INTEGER | GLenum | Yes|
202| RGBA_INTEGER | GLenum | Yes|
203| SAMPLER_2D_ARRAY | GLenum | Yes|
204| SAMPLER_2D_ARRAY_SHADOW | GLenum | Yes|
205| SAMPLER_CUBE_SHADOW | GLenum | Yes|
206| UNSIGNED_INT_VEC2 | GLenum | Yes|
207| UNSIGNED_INT_VEC3 | GLenum | Yes|
208| UNSIGNED_INT_VEC4 | GLenum | Yes|
209| INT_SAMPLER_2D | GLenum | Yes|
210| INT_SAMPLER_3D | GLenum | Yes|
211| INT_SAMPLER_CUBE | GLenum | Yes|
212| INT_SAMPLER_2D_ARRAY | GLenum | Yes|
213| UNSIGNED_INT_SAMPLER_2D | GLenum | Yes|
214| UNSIGNED_INT_SAMPLER_3D | GLenum | Yes|
215| UNSIGNED_INT_SAMPLER_CUBE | GLenum | Yes|
216| UNSIGNED_INT_SAMPLER_2D_ARRAY | GLenum | Yes|
217| DEPTH_COMPONENT32F | GLenum | Yes|
218| DEPTH32F_STENCIL8 | GLenum | Yes|
219| FLOAT_32_UNSIGNED_INT_24_8_REV | GLenum | Yes|
220| FRAMEBUFFER_ATTACHMENT_COLOR_ENCODING | GLenum | Yes|
221| FRAMEBUFFER_ATTACHMENT_COMPONENT_TYPE | GLenum | Yes|
222| FRAMEBUFFER_ATTACHMENT_RED_SIZE | GLenum | Yes|
223| FRAMEBUFFER_ATTACHMENT_GREEN_SIZE | GLenum | Yes|
224| FRAMEBUFFER_ATTACHMENT_BLUE_SIZE | GLenum | Yes|
225| FRAMEBUFFER_ATTACHMENT_ALPHA_SIZE | GLenum | Yes|
226| FRAMEBUFFER_ATTACHMENT_DEPTH_SIZE | GLenum | Yes|
227| FRAMEBUFFER_ATTACHMENT_STENCIL_SIZE | GLenum | Yes|
228| FRAMEBUFFER_DEFAULT | GLenum | Yes|
229| UNSIGNED_INT_24_8 | GLenum | Yes|
230| DEPTH24_STENCIL8 | GLenum | Yes|
231| UNSIGNED_NORMALIZED | GLenum | Yes|
232| DRAW_FRAMEBUFFER_BINDING | GLenum | Yes|
233| READ_FRAMEBUFFER | GLenum | Yes|
234| DRAW_FRAMEBUFFER | GLenum | Yes|
235| READ_FRAMEBUFFER_BINDING | GLenum | Yes|
236| RENDERBUFFER_SAMPLES | GLenum | Yes|
237| FRAMEBUFFER_ATTACHMENT_TEXTURE_LAYER | GLenum | Yes|
238| MAX_COLOR_ATTACHMENTS | GLenum | Yes|
239| COLOR_ATTACHMENT1 | GLenum | Yes|
240| COLOR_ATTACHMENT2 | GLenum | Yes|
241| COLOR_ATTACHMENT3 | GLenum | Yes|
242| COLOR_ATTACHMENT4 | GLenum | Yes|
243| COLOR_ATTACHMENT5 | GLenum | Yes|
244| COLOR_ATTACHMENT6 | GLenum | Yes|
245| COLOR_ATTACHMENT7 | GLenum | Yes|
246| COLOR_ATTACHMENT8 | GLenum | Yes|
247| COLOR_ATTACHMENT9 | GLenum | Yes|
248| COLOR_ATTACHMENT10 | GLenum | Yes|
249| COLOR_ATTACHMENT11 | GLenum | Yes|
250| COLOR_ATTACHMENT12 | GLenum | Yes|
251| COLOR_ATTACHMENT13 | GLenum | Yes|
252| COLOR_ATTACHMENT14 | GLenum | Yes|
253| COLOR_ATTACHMENT15 | GLenum | Yes|
254| FRAMEBUFFER_INCOMPLETE_MULTISAMPLE | GLenum | Yes|
255| MAX_SAMPLES | GLenum | Yes|
256| HALF_FLOAT | GLenum | Yes|
257| RG | GLenum | Yes|
258| RG_INTEGER | GLenum | Yes|
259| R8 | GLenum | Yes|
260| RG8 | GLenum | Yes|
261| R16F | GLenum | Yes|
262| R32F | GLenum | Yes|
263| RG16F | GLenum | Yes|
264| RG32F | GLenum | Yes|
265| R8I | GLenum | Yes|
266| R8UI | GLenum | Yes|
267| R16I | GLenum | Yes|
268| R16UI | GLenum | Yes|
269| R32I | GLenum | Yes|
270| R32UI | GLenum | Yes|
271| RG8I | GLenum | Yes|
272| RG8UI | GLenum | Yes|
273| RG16I | GLenum | Yes|
274| RG16UI | GLenum | Yes|
275| RG32I | GLenum | Yes|
276| RG32UI | GLenum | Yes|
277| VERTEX_ARRAY_BINDING | GLenum | Yes|
278| R8_SNORM | GLenum | Yes|
279| RG8_SNORM | GLenum | Yes|
280| RGB8_SNORM | GLenum | Yes|
281| SIGNED_NORMALIZED | GLenum | Yes|
282| COPY_READ_BUFFER | GLenum | Yes|
283| COPY_WRITE_BUFFER | GLenum | Yes|
284| COPY_READ_BUFFER_BINDING | GLenum | Yes|
285| COPY_WRITE_BUFFER_BINDING | GLenum | Yes|
286| UNIFORM_BUFFER | GLenum | Yes|
287| UNIFORM_BUFFER_BINDING | GLenum | Yes|
288| UNIFORM_BUFFER_START | GLenum | Yes|
289| UNIFORM_BUFFER_SIZE | GLenum | Yes|
290| MAX_VERTEX_UNIFORM_BLOCKS | GLenum | Yes|
291| MAX_FRAGMENT_UNIFORM_BLOCKS | GLenum | Yes|
292| MAX_COMBINED_UNIFORM_BLOCKS | GLenum | Yes|
293| MAX_UNIFORM_BUFFER_BINDINGS | GLenum | Yes|
294| MAX_UNIFORM_BLOCK_SIZE | GLenum | Yes|
295| MAX_COMBINED_VERTEX_UNIFORM_COMPONENTS | GLenum | Yes|
296| MAX_COMBINED_FRAGMENT_UNIFORM_COMPONENTS | GLenum | Yes|
297| UNIFORM_BUFFER_OFFSET_ALIGNMENT | GLenum | Yes|
298| ACTIVE_UNIFORM_BLOCKS | GLenum | Yes|
299| UNIFORM_TYPE | GLenum | Yes|
300| UNIFORM_SIZE | GLenum | Yes|
301| UNIFORM_BLOCK_INDEX | GLenum | Yes|
302| UNIFORM_OFFSET | GLenum | Yes|
303| UNIFORM_ARRAY_STRIDE | GLenum | Yes|
304| UNIFORM_MATRIX_STRIDE | GLenum | Yes|
305| UNIFORM_IS_ROW_MAJOR | GLenum | Yes|
306| UNIFORM_BLOCK_BINDING | GLenum | Yes|
307| UNIFORM_BLOCK_DATA_SIZE | GLenum | Yes|
308| UNIFORM_BLOCK_ACTIVE_UNIFORMS | GLenum | Yes|
309| UNIFORM_BLOCK_ACTIVE_UNIFORM_INDICES | GLenum | Yes|
310| UNIFORM_BLOCK_REFERENCED_BY_VERTEX_SHADER | GLenum | Yes|
311| UNIFORM_BLOCK_REFERENCED_BY_FRAGMENT_SHADER | GLenum | Yes|
312| INVALID_INDEX | GLenum | Yes|
313| MAX_VERTEX_OUTPUT_COMPONENTS | GLenum | Yes|
314| MAX_FRAGMENT_INPUT_COMPONENTS | GLenum | Yes|
315| MAX_SERVER_WAIT_TIMEOUT | GLenum | Yes|
316| OBJECT_TYPE | GLenum | Yes|
317| SYNC_CONDITION | GLenum | Yes|
318| SYNC_STATUS | GLenum | Yes|
319| SYNC_FLAGS | GLenum | Yes|
320| SYNC_FENCE | GLenum | Yes|
321| SYNC_GPU_COMMANDS_COMPLETE | GLenum | Yes|
322| UNSIGNALED | GLenum | Yes|
323| SIGNALED | GLenum | Yes|
324| ALREADY_SIGNALED | GLenum | Yes|
325| TIMEOUT_EXPIRED | GLenum | Yes|
326| CONDITION_SATISFIED | GLenum | Yes|
327| WAIT_FAILED | GLenum | Yes|
328| SYNC_FLUSH_COMMANDS_BIT | GLenum | Yes|
329| VERTEX_ATTRIB_ARRAY_DIVISOR | GLenum | Yes|
330| ANY_SAMPLES_PASSED | GLenum | Yes|
331| ANY_SAMPLES_PASSED_CONSERVATIVE | GLenum | Yes|
332| SAMPLER_BINDING | GLenum | Yes|
333| RGB10_A2UI | GLenum | Yes|
334| INT_2_10_10_10_REV | GLenum | Yes|
335| TRANSFORM_FEEDBACK | GLenum | Yes|
336| TRANSFORM_FEEDBACK_PAUSED | GLenum | Yes|
337| TRANSFORM_FEEDBACK_ACTIVE | GLenum | Yes|
338| TRANSFORM_FEEDBACK_BINDING | GLenum | Yes|
339| TEXTURE_IMMUTABLE_FORMAT | GLenum | Yes|
340| MAX_ELEMENT_INDEX | GLenum | Yes|
341| TEXTURE_IMMUTABLE_LEVELS | GLenum | Yes|
342| TIMEOUT_IGNORED | GLint64 | Yes|
343| MAX_CLIENT_WAIT_TIMEOUT_WEBGL | GLenum | Yes|
344
345
346### Methods
347
348  | Method| Return Value Type|
349| -------- | -------- |
350| copyBufferSubData(readTarget: GLenum, writeTarget: GLenum, readOffset: GLintptr, writeOffset: GLintptr, size: GLsizeiptr) | void |
351| getBufferSubData(target: GLenum, srcByteOffset: GLintptr, dstBuffer: ArrayBufferView, dstOffset?: GLuint, length?: GLuint) | void |
352| blitFramebuffer(srcX0: GLint, srcY0: GLint, srcX1: GLint, srcY1: GLint, dstX0: GLint, dstY0: GLint, dstX1: GLint, dstY1: GLint, mask: GLbitfield, filter: GLenum) | void |
353| framebufferTextureLayer(target: GLenum, attachment: GLenum, texture: WebGLTexture \| null, level: GLint, layer: GLint) | void |
354| invalidateFramebuffer(target: GLenum, attachments: GLenum[]) | void |
355| invalidateSubFramebuffer(target: GLenum, attachments: GLenum[], x: GLint, y: GLint, width: GLsizei, height: GLsizei) | void |
356| readBuffer(src: GLenum) | void |
357| getInternalformatParameter(target: GLenum, internalformat: GLenum, pname: GLenum) | any |
358| renderbufferStorageMultisample(target: GLenum, samples: GLsizei, internalformat: GLenum, width: GLsizei, height: GLsizei) | void |
359| texStorage2D(target: GLenum, levels: GLsizei, internalformat: GLenum, width: GLsizei, height: GLsizei) | void |
360| texStorage3D(target: GLenum, levels: GLsizei, internalformat: GLenum, width: GLsizei, height: GLsizei, depth: GLsizei) | void |
361| texImage3D(target: GLenum, level: GLint, internalformat: GLint, width: GLsizei, height: GLsizei, depth: GLsizei, border: GLint, format: GLenum, type: GLenum, pboOffset: GLintptr) | void |
362| texImage3D(target: GLenum, level: GLint, internalformat: GLint, width: GLsizei, height: GLsizei, depth: GLsizei, border: GLint, format: GLenum, type: GLenum, source: TexImageSource) | void |
363| texImage3D(target: GLenum, level: GLint, internalformat: GLint, width: GLsizei, height: GLsizei, depth: GLsizei, border: GLint, format: GLenum, type: GLenum, srcData: ArrayBufferView \| null) | void |
364| texImage3D(target: GLenum, level: GLint, internalformat: GLint, width: GLsizei, height: GLsizei, depth: GLsizei, border: GLint, format: GLenum, type: GLenum, srcData: ArrayBufferView, srcOffset: GLuint) | void |
365| texSubImage3D(target: GLenum, level: GLint, xoffset: GLint, yoffset: GLint, zoffset: GLint, width: GLsizei, height: GLsizei, depth: GLsizei, format: GLenum, type: GLenum, pboOffset: GLintptr) | void |
366| texSubImage3D(target: GLenum, level: GLint, xoffset: GLint, yoffset: GLint, zoffset: GLint, width: GLsizei, height: GLsizei, depth: GLsizei, format: GLenum, type: GLenum, source: TexImageSource) | void |
367| texSubImage3D(target: GLenum, level: GLint, xoffset: GLint, yoffset: GLint, zoffset: GLint, width: GLsizei, height: GLsizei, depth: GLsizei, format: GLenum, type: GLenum, srcData: ArrayBufferView \| null, srcOffset?: GLuint) | void |
368| copyTexSubImage3D(target: GLenum, level: GLint, xoffset: GLint, yoffset: GLint, zoffset: GLint, x: GLint, y: GLint, width: GLsizei, height: GLsizei) | void |
369| compressedTexImage3D(target: GLenum, level: GLint, internalformat: GLenum, width: GLsizei, height: GLsizei, depth: GLsizei, border: GLint, imageSize: GLsizei, offset: GLintptr) | void |
370| compressedTexImage3D(target: GLenum, level: GLint, internalformat: GLenum, width: GLsizei, height: GLsizei, depth: GLsizei, border: GLint, srcData: ArrayBufferView, srcOffset?: GLuint, srcLengthOverride?: GLuint) | void |
371| compressedTexSubImage3D(target: GLenum, level: GLint, xoffset: GLint, yoffset: GLint, zoffset: GLint, width: GLsizei, height: GLsizei, depth: GLsizei, format: GLenum, imageSize: GLsizei, offset: GLintptr) | void |
372| compressedTexSubImage3D(target: GLenum, level: GLint, xoffset: GLint, yoffset: GLint, zoffset: GLint, width: GLsizei, height: GLsizei, depth: GLsizei, format: GLenum, srcData: ArrayBufferView, srcOffset?: GLuint, srcLengthOverride?: GLuint) | void |
373| getFragDataLocation(program: WebGLProgram, name: string) | GLint |
374| uniform1ui(location: WebGLUniformLocation \| null, v0: GLuint) | void |
375| uniform2ui(location: WebGLUniformLocation \| null, v0: GLuint, v1: GLuint) | void |
376| uniform3ui(location: WebGLUniformLocation \| null, v0: GLuint, v1: GLuint, v2: GLuint) | void |
377| uniform4ui(location: WebGLUniformLocation \| null, v0: GLuint, v1: GLuint, v2: GLuint, v3: GLuint) | void |
378| uniform1uiv(location: WebGLUniformLocation \| null, data: Uint32List, srcOffset?: GLuint, srcLength?: GLuint) | void |
379| uniform2uiv(location: WebGLUniformLocation \| null, data: Uint32List, srcOffset?: GLuint, srcLength?: GLuint) | void |
380| uniform3uiv(location: WebGLUniformLocation \| null, data: Uint32List, srcOffset?: GLuint, srcLength?: GLuint) | void |
381| uniform4uiv(location: WebGLUniformLocation \| null, data: Uint32List, srcOffset?: GLuint, srcLength?: GLuint) | void |
382| uniformMatrix3x2fv(location: WebGLUniformLocation \| null, transpose: GLboolean, data: Float32List, srcOffset?: GLuint, srcLength?: GLuint) | void |
383| uniformMatrix4x2fv(location: WebGLUniformLocation \| null, transpose: GLboolean, data: Float32List, srcOffset?: GLuint, srcLength?: GLuint) | void |
384| uniformMatrix2x3fv(location: WebGLUniformLocation \| null, transpose: GLboolean, data: Float32List, srcOffset?: GLuint, srcLength?: GLuint) | void |
385| uniformMatrix4x3fv(location: WebGLUniformLocation \| null, transpose: GLboolean, data: Float32List, srcOffset?: GLuint, srcLength?: GLuint) | void |
386| uniformMatrix2x4fv(location: WebGLUniformLocation \| null, transpose: GLboolean, data: Float32List, srcOffset?: GLuint, srcLength?: GLuint) | void |
387| uniformMatrix3x4fv(location: WebGLUniformLocation \| null, transpose: GLboolean, data: Float32List, srcOffset?: GLuint, srcLength?: GLuint) | void |
388| vertexAttribI4i(index: GLuint, x: GLint, y: GLint, z: GLint, w: GLint) | void |
389| vertexAttribI4iv(index: GLuint, values: Int32List) | void |
390| vertexAttribI4ui(index: GLuint, x: GLuint, y: GLuint, z: GLuint, w: GLuint) | void |
391| vertexAttribI4uiv(index: GLuint, values: Uint32List) | void |
392| vertexAttribIPointer(index: GLuint, size: GLint, type: GLenum, stride: GLsizei, offset: GLintptr) | void |
393| vertexAttribDivisor(index: GLuint, divisor: GLuint) | void |
394| drawArraysInstanced(mode: GLenum, first: GLint, count: GLsizei, instanceCount: GLsizei) | void |
395| drawElementsInstanced(mode: GLenum, count: GLsizei, type: GLenum, offset: GLintptr, instanceCount: GLsizei) | void |
396| drawRangeElements(mode: GLenum, start: GLuint, end: GLuint, count: GLsizei, type: GLenum, offset: GLintptr) | void |
397| drawBuffers(buffers: GLenum[]) | void |
398| clearBufferfv(buffer: GLenum, drawbuffer: GLint, values: Float32List, srcOffset?: GLuint) | void |
399| clearBufferiv(buffer: GLenum, drawbuffer: GLint, values: Int32List, srcOffset?: GLuint) | void |
400| clearBufferuiv(buffer: GLenum, drawbuffer: GLint, values: Uint32List, srcOffset?: GLuint) | void |
401| clearBufferfi(buffer: GLenum, drawbuffer: GLint, depth: GLfloat, stencil: GLint) | void |
402| createQuery() | WebGLQuery \| null |
403| deleteQuery(query: WebGLQuery \| null) | void |
404| isQuery(query: WebGLQuery \| null) | GLboolean |
405| beginQuery(target: GLenum, query: WebGLQuery) | void |
406| endQuery(target: GLenum) | void |
407| getQuery(target: GLenum, pname: GLenum) | WebGLQuery \| null |
408| getQueryParameter(query: WebGLQuery, pname: GLenum) | any |
409| createSampler() | WebGLSampler \| null |
410| deleteSampler(sampler: WebGLSampler \| null) | void |
411| isSampler(sampler: WebGLSampler \| null) | GLboolean |
412| bindSampler(unit: GLuint, sampler: WebGLSampler \| null) | void |
413| samplerParameteri(sampler: WebGLSampler, pname: GLenum, param: GLint) | void |
414| samplerParameterf(sampler: WebGLSampler, pname: GLenum, param: GLfloat) | void; |
415| getSamplerParameter(sampler: WebGLSampler, pname: GLenum) | any |
416| fenceSync(condition: GLenum, flags: GLbitfield) | WebGLSync \| null |
417| isSync(sync: WebGLSync \| null) | GLboolean |
418| deleteSync(sync: WebGLSync \| null) | void |
419| clientWaitSync(sync: WebGLSync, flags: GLbitfield, timeout: GLuint64) | GLenum |
420| waitSync(sync: WebGLSync, flags: GLbitfield, timeout: GLint64) | void |
421| getSyncParameter(sync: WebGLSync, pname: GLenum) | any |
422| createTransformFeedback() | WebGLTransformFeedback \| null |
423| deleteTransformFeedback(tf: WebGLTransformFeedback \| null) | void |
424| isTransformFeedback(tf: WebGLTransformFeedback \| null) | GLboolean |
425| bindTransformFeedback(target: GLenum, tf: WebGLTransformFeedback \| null) | void |
426| beginTransformFeedback(primitiveMode: GLenum) | void |
427| endTransformFeedback() | void |
428| transformFeedbackVaryings(program: WebGLProgram, varyings: string[], bufferMode: GLenum) | void |
429| getTransformFeedbackVarying(program: WebGLProgram, index: GLuint) | WebGLActiveInfo \| null |
430| pauseTransformFeedback() | void |
431| resumeTransformFeedback() | void |
432| bindBufferBase(target: GLenum, index: GLuint, buffer: WebGLBuffer \| null) | void |
433| bindBufferRange(target: GLenum, index: GLuint, buffer: WebGLBuffer \| null, offset: GLintptr, size: GLsizeiptr) | void |
434| getIndexedParameter(target: GLenum, index: GLuint) | any |
435| getUniformIndices(program: WebGLProgram, uniformNames: string[]) | GLuint[] \| null |
436| getActiveUniforms(program: WebGLProgram, uniformIndices: GLuint[], pname: GLenum) | any |
437| getUniformBlockIndex(program: WebGLProgram, uniformBlockName: string) | GLuint |
438| getActiveUniformBlockParameter(program: WebGLProgram, uniformBlockIndex: GLuint, pname: GLenum) | any |
439| getActiveUniformBlockName(program: WebGLProgram, uniformBlockIndex: GLuint) | string \| null |
440| uniformBlockBinding(program: WebGLProgram, uniformBlockIndex: GLuint, uniformBlockBinding: GLuint) | void |
441| createVertexArray() | WebGLVertexArrayObject \| null |
442| deleteVertexArray(vertexArray: WebGLVertexArrayObject \| null) | void |
443| isVertexArray(vertexArray: WebGLVertexArrayObject \| null) | GLboolean |
444| bindVertexArray(array: WebGLVertexArrayObject \| null) | void |
445
446
447## WebGL2RenderingContextOverloads
448
449WebGL2RenderingContextOverloads
450
451  | Method| Return Value Type|
452| -------- | -------- |
453| bufferData(target: GLenum, size: GLsizeiptr, usage: GLenum) | void |
454| bufferData(target: GLenum, srcData: BufferSource \| null, usage: GLenum) | void |
455| bufferSubData(target: GLenum, dstByteOffset: GLintptr, srcData: BufferSource) | void |
456| bufferData(target: GLenum, srcData: ArrayBufferView, usage: GLenum, srcOffset: GLuint, length?: GLuint) | void |
457| bufferSubData(target: GLenum, dstByteOffset: GLintptr, srcData: ArrayBufferView, srcOffset: GLuint, length?: GLuint) | void |
458| texImage2D(target: GLenum, level: GLint, internalformat: GLint, width: GLsizei, height: GLsizei, border: GLint, format: GLenum, type: GLenum, pixels: ArrayBufferView \| null) | void |
459| texImage2D(target: GLenum, level: GLint, internalformat: GLint, format: GLenum, type: GLenum, source: TexImageSource) | void |
460| texSubImage2D(target: GLenum, level: GLint, xoffset: GLint, yoffset: GLint, width: GLsizei, height: GLsizei, format: GLenum, type: GLenum, pixels: ArrayBufferView \| null) | void |
461| texSubImage2D(target: GLenum, level: GLint, xoffset: GLint, yoffset: GLint, format: GLenum, type: GLenum, source: TexImageSource) | void |
462| texImage2D(target: GLenum, level: GLint, internalformat: GLint, width: GLsizei, height: GLsizei, border: GLint, format: GLenum, type: GLenum, pboOffset: GLintptr) | void |
463| texImage2D(target: GLenum, level: GLint, internalformat: GLint, width: GLsizei, height: GLsizei, border: GLint, format: GLenum, type: GLenum, source: TexImageSource) | void |
464| texImage2D(target: GLenum, level: GLint, internalformat: GLint, width: GLsizei, height: GLsizei, border: GLint, format: GLenum, type: GLenum, srcData: ArrayBufferView, srcOffset: GLuint) | void |
465| texSubImage2D(target: GLenum, level: GLint, xoffset: GLint, yoffset: GLint, width: GLsizei, height: GLsizei, format: GLenum, type: GLenum, pboOffset: GLintptr) | void |
466| texSubImage2D(target: GLenum, level: GLint, xoffset: GLint, yoffset: GLint, width: GLsizei, height: GLsizei, format: GLenum, type: GLenum, source: TexImageSource) | void |
467| texSubImage2D(target: GLenum, level: GLint, xoffset: GLint, yoffset: GLint, width: GLsizei, height: GLsizei, format: GLenum, type: GLenum, srcData: ArrayBufferView, srcOffset: GLuint) | void |
468| compressedTexImage2D(target: GLenum, level: GLint, internalformat: GLenum, width: GLsizei, height: GLsizei, border: GLint, imageSize: GLsizei, offset: GLintptr) | void |
469| compressedTexImage2D(target: GLenum, level: GLint, internalformat: GLenum, width: GLsizei, height: GLsizei, border: GLint, srcData: ArrayBufferView, srcOffset?: GLuint, srcLengthOverride?: GLuint) | void |
470| compressedTexSubImage2D(target: GLenum, level: GLint, xoffset: GLint, yoffset: GLint, width: GLsizei, height: GLsizei, format: GLenum, imageSize: GLsizei, offset: GLintptr) | void |
471| compressedTexSubImage2D(target: GLenum, level: GLint, xoffset: GLint, yoffset: GLint, width: GLsizei, height: GLsizei, format: GLenum, srcData: ArrayBufferView, srcOffset?: GLuint, srcLengthOverride?: GLuint) | void |
472| uniform1fv(location: WebGLUniformLocation \| null, data: Float32List, srcOffset?: GLuint, srcLength?: GLuint) | void |
473| uniform2fv(location: WebGLUniformLocation \| null, data: Float32List, srcOffset?: GLuint, srcLength?: GLuint) | void |
474| uniform3fv(location: WebGLUniformLocation \| null, data: Float32List, srcOffset?: GLuint, srcLength?: GLuint) | void |
475| uniform4fv(location: WebGLUniformLocation \| null, data: Float32List, srcOffset?: GLuint, srcLength?: GLuint) | void |
476| uniform1iv(location: WebGLUniformLocation \| null, data: Int32List, srcOffset?: GLuint, srcLength?: GLuint) | void |
477| uniform2iv(location: WebGLUniformLocation \| null, data: Int32List, srcOffset?: GLuint, srcLength?: GLuint) | void |
478| uniform3iv(location: WebGLUniformLocation \| null, data: Int32List, srcOffset?: GLuint, srcLength?: GLuint) | void |
479| uniform4iv(location: WebGLUniformLocation \| null, data: Int32List, srcOffset?: GLuint, srcLength?: GLuint) | void |
480| uniformMatrix2fv(location: WebGLUniformLocation \| null, transpose: GLboolean, data: Float32List, srcOffset?: GLuint, srcLength?: GLuint) | void |
481| uniformMatrix3fv(location: WebGLUniformLocation \| null, transpose: GLboolean, data: Float32List, srcOffset?: GLuint, srcLength?: GLuint) | void |
482| uniformMatrix4fv(location: WebGLUniformLocation \| null, transpose: GLboolean, data: Float32List, srcOffset?: GLuint, srcLength?: GLuint) | void |
483| readPixels(x: GLint, y: GLint, width: GLsizei, height: GLsizei, format: GLenum, type: GLenum, dstData: ArrayBufferView \| null) | void |
484| readPixels(x: GLint, y: GLint, width: GLsizei, height: GLsizei, format: GLenum, type: GLenum, offset: GLintptr) | void |
485| readPixels(x: GLint, y: GLint, width: GLsizei, height: GLsizei, format: GLenum, type: GLenum, dstData: ArrayBufferView, dstOffset: GLuint) | void |
486