# WebGL2 > ![icon-note.gif](public_sys-resources/icon-note.gif) **Note:** > 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. This 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/). ## Modules to Import ``` import webgl from 'ohos.webglnapi' ``` ## System Capabilities SystemCapability.Graphic.Graphic2D.WebGL2 ## Invoking Method ``` // Obtain the component instance. const el = this.$refs.canvas // Obtain the WebGL context from the component instance. const gl = el.getContext('webgl'); const gl2 = el.getContext('webgl2'); // Call the WebGL API. gl2.readBuffer(gl.COLOR_ATTACHMENT0) ``` ## GLenum | Name| Type| | -------- | -------- | | GLenum | number | ## Glint64 | Name| Type| | -------- | -------- | | Glint64 | number | ## Gluint64 | Name| Type| | -------- | -------- | | Gluint64 | number | ## Uint32List | Name| Type| | -------- | -------- | | Uint32List | array | ## webgl.webGL2RenderingContexBase WebGL2RenderingContexBase ### Attributes | Name| Type| Mandatory| | -------- | ------- | --------- | | READ_BUFFER | [GLenum](#GLenum) | Yes| | UNPACK_ROW_LENGTH | [GLenum](#GLenum) | Yes| | UNPACK_SKIP_ROWS | [GLenum](#GLenum) | Yes| | UNPACK_SKIP_PIXELS | [GLenum](#GLenum) | Yes| | PACK_ROW_LENGTH | [GLenum](#GLenum) | Yes| | PACK_SKIP_ROWS | [GLenum](#GLenum) | Yes| | PACK_SKIP_PIXELS | [GLenum](#GLenum) | Yes| | COLOR | [GLenum](#GLenum) | Yes| | DEPTH | [GLenum](#GLenum) | Yes| | STENCIL | [GLenum](#GLenum) | Yes| | RED | [GLenum](#GLenum) | Yes| | RGB8 | [GLenum](#GLenum) | Yes| | RGBA8 | [GLenum](#GLenum) | Yes| | RGB10_A2 | [GLenum](#GLenum) | Yes| | TEXTURE_BINDING_3D | [GLenum](#GLenum) | Yes| | UNPACK_SKIP_IMAGES | [GLenum](#GLenum) | Yes| | UNPACK_IMAGE_HEIGHT | [GLenum](#GLenum) | Yes| | TEXTURE_3D | [GLenum](#GLenum) | Yes| | TEXTURE_WRAP_R | [GLenum](#GLenum) | Yes| | MAX_3D_TEXTURE_SIZE | [GLenum](#GLenum) | Yes| | UNSIGNED_INT_2_10_10_10_REV | [GLenum](#GLenum) | Yes| | MAX_ELEMENTS_VERTICES | [GLenum](#GLenum) | Yes| | MAX_ELEMENTS_INDICES | [GLenum](#GLenum) | Yes| | TEXTURE_MIN_LOD | [GLenum](#GLenum) | Yes| | TEXTURE_MAX_LOD | [GLenum](#GLenum) | Yes| | TEXTURE_BASE_LEVEL | [GLenum](#GLenum) | Yes| | TEXTURE_MAX_LEVEL | [GLenum](#GLenum) | Yes| | MIN | [GLenum](#GLenum) | Yes| | MAX | [GLenum](#GLenum) | Yes| | DEPTH_COMPONENT24 | [GLenum](#GLenum) | Yes| | MAX_TEXTURE_LOD_BIAS | [GLenum](#GLenum) | Yes| | TEXTURE_COMPARE_MODE | [GLenum](#GLenum) | Yes| | TEXTURE_COMPARE_FUNC | [GLenum](#GLenum) | Yes| | CURRENT_QUERY | [GLenum](#GLenum) | Yes| | QUERY_RESULT | [GLenum](#GLenum) | Yes| | QUERY_RESULT_AVAILABLE | [GLenum](#GLenum) | Yes| | STREAM_READ | [GLenum](#GLenum) | Yes| | STREAM_COPY | [GLenum](#GLenum) | Yes| | STATIC_READ | [GLenum](#GLenum) | Yes| | STATIC_COPY | [GLenum](#GLenum) | Yes| | DYNAMIC_READ | [GLenum](#GLenum) | Yes| | DYNAMIC_COPY | [GLenum](#GLenum) | Yes| | MAX_DRAW_BUFFERS | [GLenum](#GLenum) | Yes| | DRAW_BUFFER0 | [GLenum](#GLenum) | Yes| | DRAW_BUFFER1 | [GLenum](#GLenum) | Yes| | DRAW_BUFFER2 | [GLenum](#GLenum) | Yes| | DRAW_BUFFER3 | [GLenum](#GLenum) | Yes| | DRAW_BUFFER4 | [GLenum](#GLenum) | Yes| | DRAW_BUFFER5 | [GLenum](#GLenum) | Yes| | DRAW_BUFFER6 | [GLenum](#GLenum) | Yes| | DRAW_BUFFER7 | [GLenum](#GLenum) | Yes| | DRAW_BUFFER8 | [GLenum](#GLenum) | Yes| | DRAW_BUFFER9 | [GLenum](#GLenum) | Yes| | DRAW_BUFFER10 | [GLenum](#GLenum) | Yes| | DRAW_BUFFER11 | [GLenum](#GLenum) | Yes| | DRAW_BUFFER12 | [GLenum](#GLenum) | Yes| | DRAW_BUFFER13 | [GLenum](#GLenum) | Yes| | DRAW_BUFFER14 | [GLenum](#GLenum) | Yes| | DRAW_BUFFER15 | [GLenum](#GLenum) | Yes| | MAX_FRAGMENT_UNIFORM_COMPONENTS | [GLenum](#GLenum) | Yes| | MAX_VERTEX_UNIFORM_COMPONENTS | [GLenum](#GLenum) | Yes| | SAMPLER_3D | [GLenum](#GLenum) | Yes| | SAMPLER_2D_SHADOW | [GLenum](#GLenum) | Yes| | FRAGMENT_SHADER_DERIVATIVE_HINT | [GLenum](#GLenum) | Yes| | PIXEL_PACK_BUFFER | [GLenum](#GLenum) | Yes| | PIXEL_UNPACK_BUFFER | [GLenum](#GLenum) | Yes| | PIXEL_PACK_BUFFER_BINDING | [GLenum](#GLenum) | Yes| | PIXEL_UNPACK_BUFFER_BINDING | [GLenum](#GLenum) | Yes| | FLOAT_MAT2x3 | [GLenum](#GLenum) | Yes| | FLOAT_MAT2x4 | [GLenum](#GLenum) | Yes| | FLOAT_MAT3x2 | [GLenum](#GLenum) | Yes| | FLOAT_MAT3x4 | [GLenum](#GLenum) | Yes| | FLOAT_MAT4x2 | [GLenum](#GLenum) | Yes| | FLOAT_MAT4x3 | [GLenum](#GLenum) | Yes| | SRGB | [GLenum](#GLenum) | Yes| | SRGB8 | [GLenum](#GLenum) | Yes| | SRGB8_ALPHA8 | [GLenum](#GLenum) | Yes| | COMPARE_REF_TO_TEXTURE | [GLenum](#GLenum) | Yes| | RGBA32F | [GLenum](#GLenum) | Yes| | RGB32F | [GLenum](#GLenum) | Yes| | RGBA16F | [GLenum](#GLenum) | Yes| | RGB16F | [GLenum](#GLenum) | Yes| | VERTEX_ATTRIB_ARRAY_INTEGER | [GLenum](#GLenum) | Yes| | MAX_ARRAY_TEXTURE_LAYERS | [GLenum](#GLenum) | Yes| | MIN_PROGRAM_TEXEL_OFFSET | [GLenum](#GLenum) | Yes| | MAX_PROGRAM_TEXEL_OFFSET | [GLenum](#GLenum) | Yes| | MAX_VARYING_COMPONENTS | [GLenum](#GLenum) | Yes| | TEXTURE_2D_ARRAY | [GLenum](#GLenum) | Yes| | TEXTURE_BINDING_2D_ARRAY | [GLenum](#GLenum) | Yes| | R11F_G11F_B10F | [GLenum](#GLenum) | Yes| | UNSIGNED_INT_10F_11F_11F_REV | [GLenum](#GLenum) | Yes| | RGB9_E5 | [GLenum](#GLenum) | Yes| | UNSIGNED_INT_5_9_9_9_REV | [GLenum](#GLenum) | Yes| | TRANSFORM_FEEDBACK_BUFFER_MODE | [GLenum](#GLenum) | Yes| | MAX_TRANSFORM_FEEDBACK_SEPARATE_COMPONENTS | [GLenum](#GLenum) | Yes| | TRANSFORM_FEEDBACK_VARYINGS | [GLenum](#GLenum) | Yes| | TRANSFORM_FEEDBACK_BUFFER_START | [GLenum](#GLenum) | Yes| | TRANSFORM_FEEDBACK_BUFFER_SIZE | [GLenum](#GLenum) | Yes| | TRANSFORM_FEEDBACK_PRIMITIVES_WRITTEN | [GLenum](#GLenum) | Yes| | RASTERIZER_DISCARD | [GLenum](#GLenum) | Yes| | MAX_TRANSFORM_FEEDBACK_INTERLEAVED_COMPONENTS | [GLenum](#GLenum) | Yes| | MAX_TRANSFORM_FEEDBACK_SEPARATE_ATTRIBS | [GLenum](#GLenum) | Yes| | INTERLEAVED_ATTRIBS | [GLenum](#GLenum) | Yes| | SEPARATE_ATTRIBS | [GLenum](#GLenum) | Yes| | TRANSFORM_FEEDBACK_BUFFER | [GLenum](#GLenum) | Yes| | TRANSFORM_FEEDBACK_BUFFER_BINDING | [GLenum](#GLenum) | Yes| | RGBA32UI | [GLenum](#GLenum) | Yes| | RGB32UI | [GLenum](#GLenum) | Yes| | RGBA16UI | [GLenum](#GLenum) | Yes| | RGB16UI | [GLenum](#GLenum) | Yes| | RGBA8UI | [GLenum](#GLenum) | Yes| | RGB8UI | [GLenum](#GLenum) | Yes| | RGBA32I | [GLenum](#GLenum) | Yes| | RGB32I | [GLenum](#GLenum) | Yes| | RGBA16I | [GLenum](#GLenum) | Yes| | RGB16I | [GLenum](#GLenum) | Yes| | RGBA8I | [GLenum](#GLenum) | Yes| | RGB8I | [GLenum](#GLenum) | Yes| | RED_INTEGER | [GLenum](#GLenum) | Yes| | RGB_INTEGER | [GLenum](#GLenum) | Yes| | RGBA_INTEGER | [GLenum](#GLenum) | Yes| | SAMPLER_2D_ARRAY | [GLenum](#GLenum) | Yes| | SAMPLER_2D_ARRAY_SHADOW | [GLenum](#GLenum) | Yes| | SAMPLER_CUBE_SHADOW | [GLenum](#GLenum) | Yes| | UNSIGNED_INT_VEC2 | [GLenum](#GLenum) | Yes| | UNSIGNED_INT_VEC3 | [GLenum](#GLenum) | Yes| | UNSIGNED_INT_VEC4 | [GLenum](#GLenum) | Yes| | INT_SAMPLER_2D | [GLenum](#GLenum) | Yes| | INT_SAMPLER_3D | [GLenum](#GLenum) | Yes| | INT_SAMPLER_CUBE | [GLenum](#GLenum) | Yes| | INT_SAMPLER_2D_ARRAY | [GLenum](#GLenum) | Yes| | UNSIGNED_INT_SAMPLER_2D | [GLenum](#GLenum) | Yes| | UNSIGNED_INT_SAMPLER_3D | [GLenum](#GLenum) | Yes| | UNSIGNED_INT_SAMPLER_CUBE | [GLenum](#GLenum) | Yes| | UNSIGNED_INT_SAMPLER_2D_ARRAY | [GLenum](#GLenum) | Yes| | DEPTH_COMPONENT32F | [GLenum](#GLenum) | Yes| | DEPTH32F_STENCIL8 | [GLenum](#GLenum) | Yes| | FLOAT_32_UNSIGNED_INT_24_8_REV | [GLenum](#GLenum) | Yes| | FRAMEBUFFER_ATTACHMENT_COLOR_ENCODING | [GLenum](#GLenum) | Yes| | FRAMEBUFFER_ATTACHMENT_COMPONENT_TYPE | [GLenum](#GLenum) | Yes| | FRAMEBUFFER_ATTACHMENT_RED_SIZE | [GLenum](#GLenum) | Yes| | FRAMEBUFFER_ATTACHMENT_GREEN_SIZE | [GLenum](#GLenum) | Yes| | FRAMEBUFFER_ATTACHMENT_BLUE_SIZE | [GLenum](#GLenum) | Yes| | FRAMEBUFFER_ATTACHMENT_ALPHA_SIZE | [GLenum](#GLenum) | Yes| | FRAMEBUFFER_ATTACHMENT_DEPTH_SIZE | [GLenum](#GLenum) | Yes| | FRAMEBUFFER_ATTACHMENT_STENCIL_SIZE | [GLenum](#GLenum) | Yes| | FRAMEBUFFER_DEFAULT | [GLenum](#GLenum) | Yes| | UNSIGNED_INT_24_8 | [GLenum](#GLenum) | Yes| | DEPTH24_STENCIL8 | [GLenum](#GLenum) | Yes| | UNSIGNED_NORMALIZED | [GLenum](#GLenum) | Yes| | DRAW_FRAMEBUFFER_BINDING | [GLenum](#GLenum) | Yes| | READ_FRAMEBUFFER | [GLenum](#GLenum) | Yes| | DRAW_FRAMEBUFFER | [GLenum](#GLenum) | Yes| | READ_FRAMEBUFFER_BINDING | [GLenum](#GLenum) | Yes| | RENDERBUFFER_SAMPLES | [GLenum](#GLenum) | Yes| | FRAMEBUFFER_ATTACHMENT_TEXTURE_LAYER | [GLenum](#GLenum) | Yes| | MAX_COLOR_ATTACHMENTS | [GLenum](#GLenum) | Yes| | COLOR_ATTACHMENT1 | [GLenum](#GLenum) | Yes| | COLOR_ATTACHMENT2 | [GLenum](#GLenum) | Yes| | COLOR_ATTACHMENT3 | [GLenum](#GLenum) | Yes| | COLOR_ATTACHMENT4 | [GLenum](#GLenum) | Yes| | COLOR_ATTACHMENT5 | [GLenum](#GLenum) | Yes| | COLOR_ATTACHMENT6 | [GLenum](#GLenum) | Yes| | COLOR_ATTACHMENT7 | [GLenum](#GLenum) | Yes| | COLOR_ATTACHMENT8 | [GLenum](#GLenum) | Yes| | COLOR_ATTACHMENT9 | [GLenum](#GLenum) | Yes| | COLOR_ATTACHMENT10 | [GLenum](#GLenum) | Yes| | COLOR_ATTACHMENT11 | [GLenum](#GLenum) | Yes| | COLOR_ATTACHMENT12 | [GLenum](#GLenum) | Yes| | COLOR_ATTACHMENT13 | [GLenum](#GLenum) | Yes| | COLOR_ATTACHMENT14 | [GLenum](#GLenum) | Yes| | COLOR_ATTACHMENT15 | [GLenum](#GLenum) | Yes| | FRAMEBUFFER_INCOMPLETE_MULTISAMPLE | [GLenum](#GLenum) | Yes| | MAX_SAMPLES | [GLenum](#GLenum) | Yes| | HALF_FLOAT | [GLenum](#GLenum) | Yes| | RG | [GLenum](#GLenum) | Yes| | RG_INTEGER | [GLenum](#GLenum) | Yes| | R8 | [GLenum](#GLenum) | Yes| | RG8 | [GLenum](#GLenum) | Yes| | R16F | [GLenum](#GLenum) | Yes| | R32F | [GLenum](#GLenum) | Yes| | RG16F | [GLenum](#GLenum) | Yes| | RG32F | [GLenum](#GLenum) | Yes| | R8I | [GLenum](#GLenum) | Yes| | R8UI | [GLenum](#GLenum) | Yes| | R16I | [GLenum](#GLenum) | Yes| | R16UI | [GLenum](#GLenum) | Yes| | R32I | [GLenum](#GLenum) | Yes| | R32UI | [GLenum](#GLenum) | Yes| | RG8I | [GLenum](#GLenum) | Yes| | RG8UI | [GLenum](#GLenum) | Yes| | RG16I | [GLenum](#GLenum) | Yes| | RG16UI | [GLenum](#GLenum) | Yes| | RG32I | [GLenum](#GLenum) | Yes| | RG32UI | [GLenum](#GLenum) | Yes| | VERTEX_ARRAY_BINDING | [GLenum](#GLenum) | Yes| | R8_SNORM | [GLenum](#GLenum) | Yes| | RG8_SNORM | [GLenum](#GLenum) | Yes| | RGB8_SNORM | [GLenum](#GLenum) | Yes| | SIGNED_NORMALIZED | [GLenum](#GLenum) | Yes| | COPY_READ_BUFFER | [GLenum](#GLenum) | Yes| | COPY_WRITE_BUFFER | [GLenum](#GLenum) | Yes| | COPY_READ_BUFFER_BINDING | [GLenum](#GLenum) | Yes| | COPY_WRITE_BUFFER_BINDING | [GLenum](#GLenum) | Yes| | UNIFORM_BUFFER | [GLenum](#GLenum) | Yes| | UNIFORM_BUFFER_BINDING | [GLenum](#GLenum) | Yes| | UNIFORM_BUFFER_START | [GLenum](#GLenum) | Yes| | UNIFORM_BUFFER_SIZE | [GLenum](#GLenum) | Yes| | MAX_VERTEX_UNIFORM_BLOCKS | [GLenum](#GLenum) | Yes| | MAX_FRAGMENT_UNIFORM_BLOCKS | [GLenum](#GLenum) | Yes| | MAX_COMBINED_UNIFORM_BLOCKS | [GLenum](#GLenum) | Yes| | MAX_UNIFORM_BUFFER_BINDINGS | [GLenum](#GLenum) | Yes| | MAX_UNIFORM_BLOCK_SIZE | [GLenum](#GLenum) | Yes| | MAX_COMBINED_VERTEX_UNIFORM_COMPONENTS | [GLenum](#GLenum) | Yes| | MAX_COMBINED_FRAGMENT_UNIFORM_COMPONENTS | [GLenum](#GLenum) | Yes| | UNIFORM_BUFFER_OFFSET_ALIGNMENT | [GLenum](#GLenum) | Yes| | ACTIVE_UNIFORM_BLOCKS | [GLenum](#GLenum) | Yes| | UNIFORM_TYPE | [GLenum](#GLenum) | Yes| | UNIFORM_SIZE | [GLenum](#GLenum) | Yes| | UNIFORM_BLOCK_INDEX | [GLenum](#GLenum) | Yes| | UNIFORM_OFFSET | [GLenum](#GLenum) | Yes| | UNIFORM_ARRAY_STRIDE | [GLenum](#GLenum) | Yes| | UNIFORM_MATRIX_STRIDE | [GLenum](#GLenum) | Yes| | UNIFORM_IS_ROW_MAJOR | [GLenum](#GLenum) | Yes| | UNIFORM_BLOCK_BINDING | [GLenum](#GLenum) | Yes| | UNIFORM_BLOCK_DATA_SIZE | [GLenum](#GLenum) | Yes| | UNIFORM_BLOCK_ACTIVE_UNIFORMS | [GLenum](#GLenum) | Yes| | UNIFORM_BLOCK_ACTIVE_UNIFORM_INDICES | [GLenum](#GLenum) | Yes| | UNIFORM_BLOCK_REFERENCED_BY_VERTEX_SHADER | [GLenum](#GLenum) | Yes| | UNIFORM_BLOCK_REFERENCED_BY_FRAGMENT_SHADER | [GLenum](#GLenum) | Yes| | INVALID_INDEX | [GLenum](#GLenum) | Yes| | MAX_VERTEX_OUTPUT_COMPONENTS | [GLenum](#GLenum) | Yes| | MAX_FRAGMENT_INPUT_COMPONENTS | [GLenum](#GLenum) | Yes| | MAX_SERVER_WAIT_TIMEOUT | [GLenum](#GLenum) | Yes| | OBJECT_TYPE | [GLenum](#GLenum) | Yes| | SYNC_CONDITION | [GLenum](#GLenum) | Yes| | SYNC_STATUS | [GLenum](#GLenum) | Yes| | SYNC_FLAGS | [GLenum](#GLenum) | Yes| | SYNC_FENCE | [GLenum](#GLenum) | Yes| | SYNC_GPU_COMMANDS_COMPLETE | [GLenum](#GLenum) | Yes| | UNSIGNALED | [GLenum](#GLenum) | Yes| | SIGNALED | [GLenum](#GLenum) | Yes| | ALREADY_SIGNALED | [GLenum](#GLenum) | Yes| | TIMEOUT_EXPIRED | [GLenum](#GLenum) | Yes| | CONDITION_SATISFIED | [GLenum](#GLenum) | Yes| | WAIT_FAILED | [GLenum](#GLenum) | Yes| | SYNC_FLUSH_COMMANDS_BIT | [GLenum](#GLenum) | Yes| | VERTEX_ATTRIB_ARRAY_DIVISOR | [GLenum](#GLenum) | Yes| | ANY_SAMPLES_PASSED | [GLenum](#GLenum) | Yes| | ANY_SAMPLES_PASSED_CONSERVATIVE | [GLenum](#GLenum) | Yes| | SAMPLER_BINDING | [GLenum](#GLenum) | Yes| | RGB10_A2UI | [GLenum](#GLenum) | Yes| | INT_2_10_10_10_REV | [GLenum](#GLenum) | Yes| | TRANSFORM_FEEDBACK | [GLenum](#GLenum) | Yes| | TRANSFORM_FEEDBACK_PAUSED | [GLenum](#GLenum) | Yes| | TRANSFORM_FEEDBACK_ACTIVE | [GLenum](#GLenum) | Yes| | TRANSFORM_FEEDBACK_BINDING | [GLenum](#GLenum) | Yes| | TEXTURE_IMMUTABLE_FORMAT | [GLenum](#GLenum) | Yes| | MAX_ELEMENT_INDEX | [GLenum](#GLenum) | Yes| | TEXTURE_IMMUTABLE_LEVELS | [GLenum](#GLenum) | Yes| | TIMEOUT_IGNORED | [GLenum](#GLenum) | Yes| | MAX_CLIENT_WAIT_TIMEOUT_WEBGL | [GLenum](#GLenum) | Yes| ### Methods | Method| Return Value Type| | -------- | ---------- | | copyBufferSubData(readTarget:  GLenum,  writeTarget:  GLenum,  readOffset:  GLintptr,  writeOffset:  GLintptr,  size:  GLsizeiptr) | void | | getBufferSubData(target:  GLenum,  srcByteOffset:  GLintptr,  dstBuffer:  ArrayBufferView,  dstOffset?:  GLuint,  length?:  GLuint) | void | | blitFramebuffer(srcX0:  GLint,  srcY0:  GLint,  srcX1:  GLint,  srcY1:  GLint,  dstX0:  GLint,  dstY0:  GLint,  dstX1:  GLint,  dstY1:  GLint,  mask:  GLbitfield,  filter:  GLenum) | void | | framebufferTextureLayer(target:  GLenum,  attachment:  GLenum,  texture:  WebGLTexture \| null,  level:  GLint,  layer:  GLint) | void | | invalidateFramebuffer(target:  GLenum,  attachments:  GLenum[]) | void | | invalidateSubFramebuffer(target:  GLenum,  attachments:  GLenum[],  x:  GLint,  y:  GLint,  width:  GLsizei,  height:  GLsizei) | void | | readBuffer(src:  GLenum) | void | | getInternalformatParameter(target:  GLenum,  internalformat:  GLenum,  pname:  GLenum) | any | | renderbufferStorageMultisample(target:  GLenum,  samples:  GLsizei,  internalformat:  GLenum,  width:  GLsizei,  height:  GLsizei) | void | | texStorage2D(target:  GLenum,  levels:  GLsizei,  internalformat:  GLenum,  width:  GLsizei,  height:  GLsizei) | void | | texStorage3D(target:  GLenum,  levels:  GLsizei,  internalformat:  GLenum,  width:  GLsizei,  height:  GLsizei,  depth:  GLsizei) | void | | texImage3D(target:  GLenum,  level:  GLint,  internalformat:  GLint,  width:  GLsizei,  height:  GLsizei,  depth:  GLsizei,  border:  GLint,  format:  GLenum,  type:  GLenum,  pboOffset:  GLintptr) | void | | texImage3D(target:  GLenum,  level:  GLint,  internalformat:  GLint,  width:  GLsizei,  height:  GLsizei,  depth:  GLsizei,  border:  GLint,  format:  GLenum,  type:  GLenum,  source:  TexImageSource) | void | | texImage3D(target:  GLenum,  level:  GLint,  internalformat:  GLint,  width:  GLsizei,  height:  GLsizei,  depth:  GLsizei,  border:  GLint,  format:  GLenum,  type:  GLenum,  srcData:  ArrayBufferView \| null) | void | | texImage3D(target:  GLenum,  level:  GLint,  internalformat:  GLint,  width:  GLsizei,  height:  GLsizei,  depth:  GLsizei,  border:  GLint,  format:  GLenum,  type:  GLenum,  srcData:  ArrayBufferView,  srcOffset:  GLuint) | void | | texSubImage3D(target:  GLenum,  level:  GLint,  xoffset:  GLint,  yoffset:  GLint,  zoffset:  GLint,  width:  GLsizei,  height:  GLsizei,  depth:  GLsizei,  format:  GLenum,  type:  GLenum,  pboOffset:  GLintptr) | void | | texSubImage3D(target:  GLenum,  level:  GLint,  xoffset:  GLint,  yoffset:  GLint,  zoffset:  GLint,  width:  GLsizei,  height:  GLsizei,  depth:  GLsizei,  format:  GLenum,  type:  GLenum,  source:  TexImageSource) | void | | 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 | | copyTexSubImage3D(target:  GLenum,  level:  GLint,  xoffset:  GLint,  yoffset:  GLint,  zoffset:  GLint,  x:  GLint,  y:  GLint,  width:  GLsizei,  height:  GLsizei) | void | | compressedTexImage3D(target:  GLenum,  level:  GLint,  internalformat:  GLenum,  width:  GLsizei,  height:  GLsizei,  depth:  GLsizei,  border:  GLint,  imageSize:  GLsizei,  offset:  GLintptr) | void | | compressedTexImage3D(target:  GLenum,  level:  GLint,  internalformat:  GLenum,  width:  GLsizei,  height:  GLsizei,  depth:  GLsizei,  border:  GLint,  srcData:  ArrayBufferView,  srcOffset?:  GLuint,  srcLengthOverride?:  GLuint) | void | | compressedTexSubImage3D(target:  GLenum,  level:  GLint,  xoffset:  GLint,  yoffset:  GLint,  zoffset:  GLint,  width:  GLsizei,  height:  GLsizei,  depth:  GLsizei,  format:  GLenum,  imageSize:  GLsizei,  offset:  GLintptr) | void | | 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 | | getFragDataLocation(program:  WebGLProgram,  name:  string) | GLint | | uniform1ui(location:  WebGLUniformLocation \| null,  v0:  GLuint) | void | | uniform2ui(location:  WebGLUniformLocation \| null,  v0:  GLuint,  v1:  GLuint) | void | | uniform3ui(location:  WebGLUniformLocation \| null,  v0:  GLuint,  v1:  GLuint,  v2:  GLuint) | void | | uniform4ui(location:  WebGLUniformLocation \| null,  v0:  GLuint,  v1:  GLuint,  v2:  GLuint,  v3:  GLuint) | void | | uniform1uiv(location:  WebGLUniformLocation \| null,  data:  Uint32List,  srcOffset?:  GLuint,  srcLength?:  GLuint) | void | | uniform2uiv(location:  WebGLUniformLocation \| null,  data:  Uint32List,  srcOffset?:  GLuint,  srcLength?:  GLuint) | void | | uniform3uiv(location:  WebGLUniformLocation \| null,  data:  Uint32List,  srcOffset?:  GLuint,  srcLength?:  GLuint) | void | | uniform4uiv(location:  WebGLUniformLocation \| null,  data:  Uint32List,  srcOffset?:  GLuint,  srcLength?:  GLuint) | void | | uniformMatrix3x2fv(location:  WebGLUniformLocation \| null,  transpose:  GLboolean,  data:  Float32List,  srcOffset?:  GLuint,  srcLength?:  GLuint) | void | | uniformMatrix4x2fv(location:  WebGLUniformLocation \| null,  transpose:  GLboolean,  data:  Float32List,  srcOffset?:  GLuint,  srcLength?:  GLuint) | void | | uniformMatrix2x3fv(location:  WebGLUniformLocation \| null,  transpose:  GLboolean,  data:  Float32List,  srcOffset?:  GLuint,  srcLength?:  GLuint) | void | | uniformMatrix4x3fv(location:  WebGLUniformLocation \| null,  transpose:  GLboolean,  data:  Float32List,  srcOffset?:  GLuint,  srcLength?:  GLuint) | void | | uniformMatrix2x4fv(location:  WebGLUniformLocation \| null,  transpose:  GLboolean,  data:  Float32List,  srcOffset?:  GLuint,  srcLength?:  GLuint) | void | | uniformMatrix3x4fv(location:  WebGLUniformLocation \| null,  transpose:  GLboolean,  data:  Float32List,  srcOffset?:  GLuint,  srcLength?:  GLuint) | void | | vertexAttribI4i(index:  GLuint,  x:  GLint,  y:  GLint,  z:  GLint,  w:  GLint) | void | | vertexAttribI4iv(index:  GLuint,  values:  Int32List) | void | | vertexAttribI4ui(index:  GLuint,  x:  GLuint,  y:  GLuint,  z:  GLuint,  w:  GLuint) | void | | vertexAttribI4uiv(index:  GLuint,  values:  Uint32List) | void | | vertexAttribIPointer(index:  GLuint,  size:  GLint,  type:  GLenum,  stride:  GLsizei,  offset:  GLintptr) | void | | vertexAttribDivisor(index:  GLuint,  divisor:  GLuint) | void | | drawArraysInstanced(mode:  GLenum,  first:  GLint,  count:  GLsizei,  instanceCount:  GLsizei) | void | | drawElementsInstanced(mode:  GLenum,  count:  GLsizei,  type:  GLenum,  offset:  GLintptr,  instanceCount:  GLsizei) | void | | drawRangeElements(mode:  GLenum,  start:  GLuint,  end:  GLuint,  count:  GLsizei,  type:  GLenum,  offset:  GLintptr) | void | | drawBuffers(buffers:  GLenum[]) | void | | clearBufferfv(buffer:  GLenum,  drawbuffer:  GLint,  values:  Float32List,  srcOffset?:  GLuint) | void | | clearBufferiv(buffer:  GLenum,  drawbuffer:  GLint,  values:  Int32List,  srcOffset?:  GLuint) | void | | clearBufferuiv(buffer:  GLenum,  drawbuffer:  GLint,  values:  Uint32List,  srcOffset?:  GLuint) | void | | clearBufferfi(buffer:  GLenum,  drawbuffer:  GLint,  depth:  GLfloat,  stencil:  GLint) | void | | createQuery() | WebGLQuery \| null | | deleteQuery(query:  WebGLQuery \| null) | void | | isQuery(query:  WebGLQuery \| null) | GLboolean | | beginQuery(target:  GLenum,  query:  WebGLQuery) | void | | endQuery(target:  GLenum) | void | | getQuery(target:  GLenum,  pname:  GLenum) | WebGLQuery \| null | | getQueryParameter(query:  WebGLQuery,  pname:  GLenum) | any | | createSampler() | WebGLSampler \| null | | deleteSampler(sampler:  WebGLSampler \| null) | void | | isSampler(sampler:  WebGLSampler \| null) | GLboolean | | bindSampler(unit:  GLuint,  sampler:  WebGLSampler \| null) | void | | samplerParameteri(sampler:  WebGLSampler,  pname:  GLenum,  param:  GLint) | void | | samplerParameterf(sampler:  WebGLSampler,  pname:  GLenum,  param:  GLfloat) | void | | getSamplerParameter(sampler:  WebGLSampler,  pname:  GLenum) | any | | fenceSync(condition:  GLenum,  flags:  GLbitfield) | WebGLSync \| null | | isSync(sync:  WebGLSync \| null) | GLboolean | | deleteSync(sync:  WebGLSync \| null) | void | | clientWaitSync(sync:  WebGLSync,  flags:  GLbitfield,  timeout:  GLuint64) | GLenum | | waitSync(sync:  WebGLSync,  flags:  GLbitfield,  timeout:  GLint64) | void | | getSyncParameter(sync:  WebGLSync,  pname:  GLenum) | any | | createTransformFeedback() | WebGLTransformFeedback \| null | | deleteTransformFeedback(tf:  WebGLTransformFeedback \| null) | void | | isTransformFeedback(tf:  WebGLTransformFeedback \| null) | GLboolean | | bindTransformFeedback(target:  GLenum,  tf:  WebGLTransformFeedback \| null) | void | | beginTransformFeedback(primitiveMode:  GLenum) | void | | endTransformFeedback() | void | | transformFeedbackVaryings(program:  WebGLProgram,  varyings:  string[],  bufferMode:  GLenum) | void | | getTransformFeedbackVarying(program:  WebGLProgram,  index:  GLuint) | WebGLActiveInfo \| null | | pauseTransformFeedback() | void | | resumeTransformFeedback() | void | | bindBufferBase(target:  GLenum,  index:  GLuint,  buffer:  WebGLBuffer \| null) | void | | bindBufferRange(target:  GLenum,  index:  GLuint,  buffer:  WebGLBuffer \| null,  offset:  GLintptr,  size:  GLsizeiptr) | void | | getIndexedParameter(target:  GLenum,  index:  GLuint) | any | | getUniformIndices(program:  WebGLProgram,  uniformNames:  string[]) | GLuint[] \| null | | getActiveUniforms(program:  WebGLProgram,  uniformIndices:  GLuint[],  pname:  GLenum) | any | | getUniformBlockIndex(program:  WebGLProgram,  uniformBlockName:  string) | GLuint | | getActiveUniformBlockParameter(program:  WebGLProgram,  uniformBlockIndex:  GLuint,  pname:  GLenum) | any | | getActiveUniformBlockName(program:  WebGLProgram,  uniformBlockIndex:  GLuint) | string \| null | | uniformBlockBinding(program:  WebGLProgram,  uniformBlockIndex:  GLuint,  uniformBlockBinding:  GLuint) | void | | createVertexArray() | WebGLVertexArrayObject \| null | | deleteVertexArray(vertexArray:  WebGLVertexArrayObject \| null) | void | | isVertexArray(vertexArray:  WebGLVertexArrayObject \| null) | GLboolean | | bindVertexArray(array:  WebGLVertexArrayObject \| null) | void | ## webgl.WebGL2RenderingContextOverloads WebGL2RenderingContextOverloads | Method| Return Value Type| | -------- | ---------- | | bufferData(target:  GLenum,  size:  GLsizeiptr,  usage:  GLenum) | void | | bufferData(target:  GLenum,  srcData:  BufferSource \| null,  usage:  GLenum) | void | | bufferSubData(target:  GLenum,  dstByteOffset:  GLintptr,  srcData:  BufferSource) | void | | bufferData(target:  GLenum,  srcData:  ArrayBufferView,  usage:  GLenum,  srcOffset:  GLuint,  length?:  GLuint) | void | | bufferSubData(target:  GLenum,  dstByteOffset:  GLintptr,  srcData:  ArrayBufferView,  srcOffset:  GLuint,  length?:  GLuint) | void | | texImage2D(target:  GLenum,  level:  GLint,  internalformat:  GLint,  width:  GLsizei,  height:  GLsizei,  border:  GLint,  format:  GLenum,  type:  GLenum,  pixels:  ArrayBufferView \| null) | void | | texImage2D(target:  GLenum,  level:  GLint,  internalformat:  GLint,  format:  GLenum,  type:  GLenum,  source:  TexImageSource) | void | | texSubImage2D(target:  GLenum,  level:  GLint,  xoffset:  GLint,  yoffset:  GLint,  width:  GLsizei,  height:  GLsizei,  format:  GLenum,  type:  GLenum,  pixels:  ArrayBufferView \| null) | void | | texSubImage2D(target:  GLenum,  level:  GLint,  xoffset:  GLint,  yoffset:  GLint,  format:  GLenum,  type:  GLenum,  source:  TexImageSource) | void | | texImage2D(target:  GLenum,  level:  GLint,  internalformat:  GLint,  width:  GLsizei,  height:  GLsizei,  border:  GLint,  format:  GLenum,  type:  GLenum,  pboOffset:  GLintptr) | void | | texImage2D(target:  GLenum,  level:  GLint,  internalformat:  GLint,  width:  GLsizei,  height:  GLsizei,  border:  GLint,  format:  GLenum,  type:  GLenum,  source:  TexImageSource) | void | | texImage2D(target:  GLenum,  level:  GLint,  internalformat:  GLint,  width:  GLsizei,  height:  GLsizei,  border:  GLint,  format:  GLenum,  type:  GLenum,  srcData:  ArrayBufferView,  srcOffset:  GLuint) | void | | texSubImage2D(target:  GLenum,  level:  GLint,  xoffset:  GLint,  yoffset:  GLint,  width:  GLsizei,  height:  GLsizei,  format:  GLenum,  type:  GLenum,  pboOffset:  GLintptr) | void | | texSubImage2D(target:  GLenum,  level:  GLint,  xoffset:  GLint,  yoffset:  GLint,  width:  GLsizei,  height:  GLsizei,  format:  GLenum,  type:  GLenum,  source:  TexImageSource) | void | | texSubImage2D(target:  GLenum,  level:  GLint,  xoffset:  GLint,  yoffset:  GLint,  width:  GLsizei,  height:  GLsizei,  format:  GLenum,  type:  GLenum,  srcData:  ArrayBufferView,  srcOffset:  GLuint) | void | | compressedTexImage2D(target:  GLenum,  level:  GLint,  internalformat:  GLenum,  width:  GLsizei,  height:  GLsizei,  border:  GLint,  imageSize:  GLsizei,  offset:  GLintptr) | void | | compressedTexImage2D(target:  GLenum,  level:  GLint,  internalformat:  GLenum,  width:  GLsizei,  height:  GLsizei,  border:  GLint,  srcData:  ArrayBufferView,  srcOffset?:  GLuint,  srcLengthOverride?:  GLuint) | void | | compressedTexSubImage2D(target:  GLenum,  level:  GLint,  xoffset:  GLint,  yoffset:  GLint,  width:  GLsizei,  height:  GLsizei,  format:  GLenum,  imageSize:  GLsizei,  offset:  GLintptr) | void | | compressedTexSubImage2D(target:  GLenum,  level:  GLint,  xoffset:  GLint,  yoffset:  GLint,  width:  GLsizei,  height:  GLsizei,  format:  GLenum,  srcData:  ArrayBufferView,  srcOffset?:  GLuint,  srcLengthOverride?:  GLuint) | void | | uniform1fv(location:  WebGLUniformLocation \| null,  data:  Float32List,  srcOffset?:  GLuint,  srcLength?:  GLuint) | void | | uniform2fv(location:  WebGLUniformLocation \| null,  data:  Float32List,  srcOffset?:  GLuint,  srcLength?:  GLuint) | void | | uniform3fv(location:  WebGLUniformLocation \| null,  data:  Float32List,  srcOffset?:  GLuint,  srcLength?:  GLuint) | void | | uniform4fv(location:  WebGLUniformLocation \| null,  data:  Float32List,  srcOffset?:  GLuint,  srcLength?:  GLuint) | void | | uniform1iv(location:  WebGLUniformLocation \| null,  data:  Int32List,  srcOffset?:  GLuint,  srcLength?:  GLuint) | void | | uniform2iv(location:  WebGLUniformLocation \| null,  data:  Int32List,  srcOffset?:  GLuint,  srcLength?:  GLuint) | void | | uniform3iv(location:  WebGLUniformLocation \| null,  data:  Int32List,  srcOffset?:  GLuint,  srcLength?:  GLuint) | void | | uniform4iv(location:  WebGLUniformLocation \| null,  data:  Int32List,  srcOffset?:  GLuint,  srcLength?:  GLuint) | void | | uniformMatrix2fv(location:  WebGLUniformLocation \| null,  transpose:  GLboolean,  data:  Float32List,  srcOffset?:  GLuint,  srcLength?:  GLuint) | void | | uniformMatrix3fv(location:  WebGLUniformLocation \| null,  transpose:  GLboolean,  data:  Float32List,  srcOffset?:  GLuint,  srcLength?:  GLuint) | void | | uniformMatrix4fv(location:  WebGLUniformLocation \| null,  transpose:  GLboolean,  data:  Float32List,  srcOffset?:  GLuint,  srcLength?:  GLuint) | void | | readPixels(x:  GLint,  y:  GLint,  width:  GLsizei,  height:  GLsizei,  format:  GLenum,  type:  GLenum,  dstData:  ArrayBufferView \| null) | void | | readPixels(x:  GLint,  y:  GLint,  width:  GLsizei,  height:  GLsizei,  format:  GLenum,  type:  GLenum,  offset:  GLintptr) | void | | readPixels(x:  GLint,  y:  GLint,  width:  GLsizei,  height:  GLsizei,  format:  GLenum,  type:  GLenum,  dstData:  ArrayBufferView,  dstOffset:  GLuint) | void | ## webgl.WebGLQuery WebGLQuery ## webgl.WebGLSampler WebGLSampler ## webgl.WebGLSync WebGLSync ## webgl.WebGLTransformFeedback WebGLTransformFeedback ## webgl.WebGLVertexArrayObject WebGLVertexArrayObject