pub const WEBGL2_IDL: &'static [u8] = b"// AUTOGENERATED FILE -- DO NOT EDIT -- SEE Makefile\n//\n// WebGL IDL definitions scraped from the Khronos specification:\n// https://www.khronos.org/registry/webgl/specs/latest/\n\n// Copyright (c) 2018 The Khronos Group Inc.\n//\n// Permission is hereby granted, free of charge, to any person obtaining a\n// copy of this software and/or associated documentation files (the\n// \"Materials\"), to deal in the Materials without restriction, including\n// without limitation the rights to use, copy, modify, merge, publish,\n// distribute, sublicense, and/or sell copies of the Materials, and to\n// permit persons to whom the Materials are furnished to do so, subject to\n// the following conditions:\n//\n// The above copyright notice and this permission notice shall be included\n// in all copies or substantial portions of the Materials.\n//\n// THE MATERIALS ARE PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND,\n// EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF\n// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.\n// IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY\n// CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT,\n// TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE\n// MATERIALS OR THE USE OR OTHER DEALINGS IN THE MATERIALS.\n\ntypedef long long GLint64;\ntypedef unsigned long long GLuint64;\n\n\n[Exposed=(Window,Worker)]\ninterface WebGLQuery : WebGLObject {\n};\n\n[Exposed=(Window,Worker)]\ninterface WebGLSampler : WebGLObject {\n};\n\n[Exposed=(Window,Worker)]\ninterface WebGLSync : WebGLObject {\n};\n\n[Exposed=(Window,Worker)]\ninterface WebGLTransformFeedback : WebGLObject {\n};\n\n[Exposed=(Window,Worker)]\ninterface WebGLVertexArrayObject : WebGLObject {\n};\n\ntypedef ([AllowShared] Uint32Array or sequence<GLuint>) Uint32List;\n\ninterface mixin WebGL2RenderingContextBase\n{\n const GLenum READ_BUFFER = 0x0C02;\n const GLenum UNPACK_ROW_LENGTH = 0x0CF2;\n const GLenum UNPACK_SKIP_ROWS = 0x0CF3;\n const GLenum UNPACK_SKIP_PIXELS = 0x0CF4;\n const GLenum PACK_ROW_LENGTH = 0x0D02;\n const GLenum PACK_SKIP_ROWS = 0x0D03;\n const GLenum PACK_SKIP_PIXELS = 0x0D04;\n const GLenum COLOR = 0x1800;\n const GLenum DEPTH = 0x1801;\n const GLenum STENCIL = 0x1802;\n const GLenum RED = 0x1903;\n const GLenum RGB8 = 0x8051;\n const GLenum RGBA8 = 0x8058;\n const GLenum RGB10_A2 = 0x8059;\n const GLenum TEXTURE_BINDING_3D = 0x806A;\n const GLenum UNPACK_SKIP_IMAGES = 0x806D;\n const GLenum UNPACK_IMAGE_HEIGHT = 0x806E;\n const GLenum TEXTURE_3D = 0x806F;\n const GLenum TEXTURE_WRAP_R = 0x8072;\n const GLenum MAX_3D_TEXTURE_SIZE = 0x8073;\n const GLenum UNSIGNED_INT_2_10_10_10_REV = 0x8368;\n const GLenum MAX_ELEMENTS_VERTICES = 0x80E8;\n const GLenum MAX_ELEMENTS_INDICES = 0x80E9;\n const GLenum TEXTURE_MIN_LOD = 0x813A;\n const GLenum TEXTURE_MAX_LOD = 0x813B;\n const GLenum TEXTURE_BASE_LEVEL = 0x813C;\n const GLenum TEXTURE_MAX_LEVEL = 0x813D;\n const GLenum MIN = 0x8007;\n const GLenum MAX = 0x8008;\n const GLenum DEPTH_COMPONENT24 = 0x81A6;\n const GLenum MAX_TEXTURE_LOD_BIAS = 0x84FD;\n const GLenum TEXTURE_COMPARE_MODE = 0x884C;\n const GLenum TEXTURE_COMPARE_FUNC = 0x884D;\n const GLenum CURRENT_QUERY = 0x8865;\n const GLenum QUERY_RESULT = 0x8866;\n const GLenum QUERY_RESULT_AVAILABLE = 0x8867;\n const GLenum STREAM_READ = 0x88E1;\n const GLenum STREAM_COPY = 0x88E2;\n const GLenum STATIC_READ = 0x88E5;\n const GLenum STATIC_COPY = 0x88E6;\n const GLenum DYNAMIC_READ = 0x88E9;\n const GLenum DYNAMIC_COPY = 0x88EA;\n const GLenum MAX_DRAW_BUFFERS = 0x8824;\n const GLenum DRAW_BUFFER0 = 0x8825;\n const GLenum DRAW_BUFFER1 = 0x8826;\n const GLenum DRAW_BUFFER2 = 0x8827;\n const GLenum DRAW_BUFFER3 = 0x8828;\n const GLenum DRAW_BUFFER4 = 0x8829;\n const GLenum DRAW_BUFFER5 = 0x882A;\n const GLenum DRAW_BUFFER6 = 0x882B;\n const GLenum DRAW_BUFFER7 = 0x882C;\n const GLenum DRAW_BUFFER8 = 0x882D;\n const GLenum DRAW_BUFFER9 = 0x882E;\n const GLenum DRAW_BUFFER10 = 0x882F;\n const GLenum DRAW_BUFFER11 = 0x8830;\n const GLenum DRAW_BUFFER12 = 0x8831;\n const GLenum DRAW_BUFFER13 = 0x8832;\n const GLenum DRAW_BUFFER14 = 0x8833;\n const GLenum DRAW_BUFFER15 = 0x8834;\n const GLenum MAX_FRAGMENT_UNIFORM_COMPONENTS = 0x8B49;\n const GLenum MAX_VERTEX_UNIFORM_COMPONENTS = 0x8B4A;\n const GLenum SAMPLER_3D = 0x8B5F;\n const GLenum SAMPLER_2D_SHADOW = 0x8B62;\n const GLenum FRAGMENT_SHADER_DERIVATIVE_HINT = 0x8B8B;\n const GLenum PIXEL_PACK_BUFFER = 0x88EB;\n const GLenum PIXEL_UNPACK_BUFFER = 0x88EC;\n const GLenum PIXEL_PACK_BUFFER_BINDING = 0x88ED;\n const GLenum PIXEL_UNPACK_BUFFER_BINDING = 0x88EF;\n const GLenum FLOAT_MAT2x3 = 0x8B65;\n const GLenum FLOAT_MAT2x4 = 0x8B66;\n const GLenum FLOAT_MAT3x2 = 0x8B67;\n const GLenum FLOAT_MAT3x4 = 0x8B68;\n const GLenum FLOAT_MAT4x2 = 0x8B69;\n const GLenum FLOAT_MAT4x3 = 0x8B6A;\n const GLenum SRGB = 0x8C40;\n const GLenum SRGB8 = 0x8C41;\n const GLenum SRGB8_ALPHA8 = 0x8C43;\n const GLenum COMPARE_REF_TO_TEXTURE = 0x884E;\n const GLenum RGBA32F = 0x8814;\n const GLenum RGB32F = 0x8815;\n const GLenum RGBA16F = 0x881A;\n const GLenum RGB16F = 0x881B;\n const GLenum VERTEX_ATTRIB_ARRAY_INTEGER = 0x88FD;\n const GLenum MAX_ARRAY_TEXTURE_LAYERS = 0x88FF;\n const GLenum MIN_PROGRAM_TEXEL_OFFSET = 0x8904;\n const GLenum MAX_PROGRAM_TEXEL_OFFSET = 0x8905;\n const GLenum MAX_VARYING_COMPONENTS = 0x8B4B;\n const GLenum TEXTURE_2D_ARRAY = 0x8C1A;\n const GLenum TEXTURE_BINDING_2D_ARRAY = 0x8C1D;\n const GLenum R11F_G11F_B10F = 0x8C3A;\n const GLenum UNSIGNED_INT_10F_11F_11F_REV = 0x8C3B;\n const GLenum RGB9_E5 = 0x8C3D;\n const GLenum UNSIGNED_INT_5_9_9_9_REV = 0x8C3E;\n const GLenum TRANSFORM_FEEDBACK_BUFFER_MODE = 0x8C7F;\n const GLenum MAX_TRANSFORM_FEEDBACK_SEPARATE_COMPONENTS = 0x8C80;\n const GLenum TRANSFORM_FEEDBACK_VARYINGS = 0x8C83;\n const GLenum TRANSFORM_FEEDBACK_BUFFER_START = 0x8C84;\n const GLenum TRANSFORM_FEEDBACK_BUFFER_SIZE = 0x8C85;\n const GLenum TRANSFORM_FEEDBACK_PRIMITIVES_WRITTEN = 0x8C88;\n const GLenum RASTERIZER_DISCARD = 0x8C89;\n const GLenum MAX_TRANSFORM_FEEDBACK_INTERLEAVED_COMPONENTS = 0x8C8A;\n const GLenum MAX_TRANSFORM_FEEDBACK_SEPARATE_ATTRIBS = 0x8C8B;\n const GLenum INTERLEAVED_ATTRIBS = 0x8C8C;\n const GLenum SEPARATE_ATTRIBS = 0x8C8D;\n const GLenum TRANSFORM_FEEDBACK_BUFFER = 0x8C8E;\n const GLenum TRANSFORM_FEEDBACK_BUFFER_BINDING = 0x8C8F;\n const GLenum RGBA32UI = 0x8D70;\n const GLenum RGB32UI = 0x8D71;\n const GLenum RGBA16UI = 0x8D76;\n const GLenum RGB16UI = 0x8D77;\n const GLenum RGBA8UI = 0x8D7C;\n const GLenum RGB8UI = 0x8D7D;\n const GLenum RGBA32I = 0x8D82;\n const GLenum RGB32I = 0x8D83;\n const GLenum RGBA16I = 0x8D88;\n const GLenum RGB16I = 0x8D89;\n const GLenum RGBA8I = 0x8D8E;\n const GLenum RGB8I = 0x8D8F;\n const GLenum RED_INTEGER = 0x8D94;\n const GLenum RGB_INTEGER = 0x8D98;\n const GLenum RGBA_INTEGER = 0x8D99;\n const GLenum SAMPLER_2D_ARRAY = 0x8DC1;\n const GLenum SAMPLER_2D_ARRAY_SHADOW = 0x8DC4;\n const GLenum SAMPLER_CUBE_SHADOW = 0x8DC5;\n const GLenum UNSIGNED_INT_VEC2 = 0x8DC6;\n const GLenum UNSIGNED_INT_VEC3 = 0x8DC7;\n const GLenum UNSIGNED_INT_VEC4 = 0x8DC8;\n const GLenum INT_SAMPLER_2D = 0x8DCA;\n const GLenum INT_SAMPLER_3D = 0x8DCB;\n const GLenum INT_SAMPLER_CUBE = 0x8DCC;\n const GLenum INT_SAMPLER_2D_ARRAY = 0x8DCF;\n const GLenum UNSIGNED_INT_SAMPLER_2D = 0x8DD2;\n const GLenum UNSIGNED_INT_SAMPLER_3D = 0x8DD3;\n const GLenum UNSIGNED_INT_SAMPLER_CUBE = 0x8DD4;\n const GLenum UNSIGNED_INT_SAMPLER_2D_ARRAY = 0x8DD7;\n const GLenum DEPTH_COMPONENT32F = 0x8CAC;\n const GLenum DEPTH32F_STENCIL8 = 0x8CAD;\n const GLenum FLOAT_32_UNSIGNED_INT_24_8_REV = 0x8DAD;\n const GLenum FRAMEBUFFER_ATTACHMENT_COLOR_ENCODING = 0x8210;\n const GLenum FRAMEBUFFER_ATTACHMENT_COMPONENT_TYPE = 0x8211;\n const GLenum FRAMEBUFFER_ATTACHMENT_RED_SIZE = 0x8212;\n const GLenum FRAMEBUFFER_ATTACHMENT_GREEN_SIZE = 0x8213;\n const GLenum FRAMEBUFFER_ATTACHMENT_BLUE_SIZE = 0x8214;\n const GLenum FRAMEBUFFER_ATTACHMENT_ALPHA_SIZE = 0x8215;\n const GLenum FRAMEBUFFER_ATTACHMENT_DEPTH_SIZE = 0x8216;\n const GLenum FRAMEBUFFER_ATTACHMENT_STENCIL_SIZE = 0x8217;\n const GLenum FRAMEBUFFER_DEFAULT = 0x8218;\n const GLenum DEPTH_STENCIL_ATTACHMENT = 0x821A;\n const GLenum DEPTH_STENCIL = 0x84F9;\n const GLenum UNSIGNED_INT_24_8 = 0x84FA;\n const GLenum DEPTH24_STENCIL8 = 0x88F0;\n const GLenum UNSIGNED_NORMALIZED = 0x8C17;\n const GLenum DRAW_FRAMEBUFFER_BINDING = 0x8CA6; /* Same as FRAMEBUFFER_BINDING */\n const GLenum READ_FRAMEBUFFER = 0x8CA8;\n const GLenum DRAW_FRAMEBUFFER = 0x8CA9;\n const GLenum READ_FRAMEBUFFER_BINDING = 0x8CAA;\n const GLenum RENDERBUFFER_SAMPLES = 0x8CAB;\n const GLenum FRAMEBUFFER_ATTACHMENT_TEXTURE_LAYER = 0x8CD4;\n const GLenum MAX_COLOR_ATTACHMENTS = 0x8CDF;\n const GLenum COLOR_ATTACHMENT1 = 0x8CE1;\n const GLenum COLOR_ATTACHMENT2 = 0x8CE2;\n const GLenum COLOR_ATTACHMENT3 = 0x8CE3;\n const GLenum COLOR_ATTACHMENT4 = 0x8CE4;\n const GLenum COLOR_ATTACHMENT5 = 0x8CE5;\n const GLenum COLOR_ATTACHMENT6 = 0x8CE6;\n const GLenum COLOR_ATTACHMENT7 = 0x8CE7;\n const GLenum COLOR_ATTACHMENT8 = 0x8CE8;\n const GLenum COLOR_ATTACHMENT9 = 0x8CE9;\n const GLenum COLOR_ATTACHMENT10 = 0x8CEA;\n const GLenum COLOR_ATTACHMENT11 = 0x8CEB;\n const GLenum COLOR_ATTACHMENT12 = 0x8CEC;\n const GLenum COLOR_ATTACHMENT13 = 0x8CED;\n const GLenum COLOR_ATTACHMENT14 = 0x8CEE;\n const GLenum COLOR_ATTACHMENT15 = 0x8CEF;\n const GLenum FRAMEBUFFER_INCOMPLETE_MULTISAMPLE = 0x8D56;\n const GLenum MAX_SAMPLES = 0x8D57;\n const GLenum HALF_FLOAT = 0x140B;\n const GLenum RG = 0x8227;\n const GLenum RG_INTEGER = 0x8228;\n const GLenum R8 = 0x8229;\n const GLenum RG8 = 0x822B;\n const GLenum R16F = 0x822D;\n const GLenum R32F = 0x822E;\n const GLenum RG16F = 0x822F;\n const GLenum RG32F = 0x8230;\n const GLenum R8I = 0x8231;\n const GLenum R8UI = 0x8232;\n const GLenum R16I = 0x8233;\n const GLenum R16UI = 0x8234;\n const GLenum R32I = 0x8235;\n const GLenum R32UI = 0x8236;\n const GLenum RG8I = 0x8237;\n const GLenum RG8UI = 0x8238;\n const GLenum RG16I = 0x8239;\n const GLenum RG16UI = 0x823A;\n const GLenum RG32I = 0x823B;\n const GLenum RG32UI = 0x823C;\n const GLenum VERTEX_ARRAY_BINDING = 0x85B5;\n const GLenum R8_SNORM = 0x8F94;\n const GLenum RG8_SNORM = 0x8F95;\n const GLenum RGB8_SNORM = 0x8F96;\n const GLenum RGBA8_SNORM = 0x8F97;\n const GLenum SIGNED_NORMALIZED = 0x8F9C;\n const GLenum COPY_READ_BUFFER = 0x8F36;\n const GLenum COPY_WRITE_BUFFER = 0x8F37;\n const GLenum COPY_READ_BUFFER_BINDING = 0x8F36; /* Same as COPY_READ_BUFFER */\n const GLenum COPY_WRITE_BUFFER_BINDING = 0x8F37; /* Same as COPY_WRITE_BUFFER */\n const GLenum UNIFORM_BUFFER = 0x8A11;\n const GLenum UNIFORM_BUFFER_BINDING = 0x8A28;\n const GLenum UNIFORM_BUFFER_START = 0x8A29;\n const GLenum UNIFORM_BUFFER_SIZE = 0x8A2A;\n const GLenum MAX_VERTEX_UNIFORM_BLOCKS = 0x8A2B;\n const GLenum MAX_FRAGMENT_UNIFORM_BLOCKS = 0x8A2D;\n const GLenum MAX_COMBINED_UNIFORM_BLOCKS = 0x8A2E;\n const GLenum MAX_UNIFORM_BUFFER_BINDINGS = 0x8A2F;\n const GLenum MAX_UNIFORM_BLOCK_SIZE = 0x8A30;\n const GLenum MAX_COMBINED_VERTEX_UNIFORM_COMPONENTS = 0x8A31;\n const GLenum MAX_COMBINED_FRAGMENT_UNIFORM_COMPONENTS = 0x8A33;\n const GLenum UNIFORM_BUFFER_OFFSET_ALIGNMENT = 0x8A34;\n const GLenum ACTIVE_UNIFORM_BLOCKS = 0x8A36;\n const GLenum UNIFORM_TYPE = 0x8A37;\n const GLenum UNIFORM_SIZE = 0x8A38;\n const GLenum UNIFORM_BLOCK_INDEX = 0x8A3A;\n const GLenum UNIFORM_OFFSET = 0x8A3B;\n const GLenum UNIFORM_ARRAY_STRIDE = 0x8A3C;\n const GLenum UNIFORM_MATRIX_STRIDE = 0x8A3D;\n const GLenum UNIFORM_IS_ROW_MAJOR = 0x8A3E;\n const GLenum UNIFORM_BLOCK_BINDING = 0x8A3F;\n const GLenum UNIFORM_BLOCK_DATA_SIZE = 0x8A40;\n const GLenum UNIFORM_BLOCK_ACTIVE_UNIFORMS = 0x8A42;\n const GLenum UNIFORM_BLOCK_ACTIVE_UNIFORM_INDICES = 0x8A43;\n const GLenum UNIFORM_BLOCK_REFERENCED_BY_VERTEX_SHADER = 0x8A44;\n const GLenum UNIFORM_BLOCK_REFERENCED_BY_FRAGMENT_SHADER = 0x8A46;\n const GLenum INVALID_INDEX = 0xFFFFFFFF;\n const GLenum MAX_VERTEX_OUTPUT_COMPONENTS = 0x9122;\n const GLenum MAX_FRAGMENT_INPUT_COMPONENTS = 0x9125;\n const GLenum MAX_SERVER_WAIT_TIMEOUT = 0x9111;\n const GLenum OBJECT_TYPE = 0x9112;\n const GLenum SYNC_CONDITION = 0x9113;\n const GLenum SYNC_STATUS = 0x9114;\n const GLenum SYNC_FLAGS = 0x9115;\n const GLenum SYNC_FENCE = 0x9116;\n const GLenum SYNC_GPU_COMMANDS_COMPLETE = 0x9117;\n const GLenum UNSIGNALED = 0x9118;\n const GLenum SIGNALED = 0x9119;\n const GLenum ALREADY_SIGNALED = 0x911A;\n const GLenum TIMEOUT_EXPIRED = 0x911B;\n const GLenum CONDITION_SATISFIED = 0x911C;\n const GLenum WAIT_FAILED = 0x911D;\n const GLenum SYNC_FLUSH_COMMANDS_BIT = 0x00000001;\n const GLenum VERTEX_ATTRIB_ARRAY_DIVISOR = 0x88FE;\n const GLenum ANY_SAMPLES_PASSED = 0x8C2F;\n const GLenum ANY_SAMPLES_PASSED_CONSERVATIVE = 0x8D6A;\n const GLenum SAMPLER_BINDING = 0x8919;\n const GLenum RGB10_A2UI = 0x906F;\n const GLenum INT_2_10_10_10_REV = 0x8D9F;\n const GLenum TRANSFORM_FEEDBACK = 0x8E22;\n const GLenum TRANSFORM_FEEDBACK_PAUSED = 0x8E23;\n const GLenum TRANSFORM_FEEDBACK_ACTIVE = 0x8E24;\n const GLenum TRANSFORM_FEEDBACK_BINDING = 0x8E25;\n const GLenum TEXTURE_IMMUTABLE_FORMAT = 0x912F;\n const GLenum MAX_ELEMENT_INDEX = 0x8D6B;\n const GLenum TEXTURE_IMMUTABLE_LEVELS = 0x82DF;\n\n const GLint64 TIMEOUT_IGNORED = -1;\n\n /* WebGL-specific enums */\n const GLenum MAX_CLIENT_WAIT_TIMEOUT_WEBGL = 0x9247;\n\n /* Buffer objects */\n // WebGL1:\n void bufferData(GLenum target, GLsizeiptr size, GLenum usage);\n void bufferData(GLenum target, [AllowShared] BufferSource? srcData, GLenum usage);\n void bufferSubData(GLenum target, GLintptr dstByteOffset, [AllowShared] BufferSource srcData);\n // WebGL2:\n void bufferData(GLenum target, [AllowShared] ArrayBufferView srcData, GLenum usage, GLuint srcOffset,\n optional GLuint length = 0);\n void bufferSubData(GLenum target, GLintptr dstByteOffset, [AllowShared] ArrayBufferView srcData,\n GLuint srcOffset, optional GLuint length = 0);\n\n void copyBufferSubData(GLenum readTarget, GLenum writeTarget, GLintptr readOffset,\n GLintptr writeOffset, GLsizeiptr size);\n // MapBufferRange, in particular its read-only and write-only modes,\n // can not be exposed safely to JavaScript. GetBufferSubData\n // replaces it for the purpose of fetching data back from the GPU.\n void getBufferSubData(GLenum target, GLintptr srcByteOffset, [AllowShared] ArrayBufferView dstBuffer,\n optional GLuint dstOffset = 0, optional GLuint length = 0);\n\n /* Framebuffer objects */\n void blitFramebuffer(GLint srcX0, GLint srcY0, GLint srcX1, GLint srcY1, GLint dstX0, GLint dstY0,\n GLint dstX1, GLint dstY1, GLbitfield mask, GLenum filter);\n void framebufferTextureLayer(GLenum target, GLenum attachment, WebGLTexture? texture, GLint level,\n GLint layer);\n void invalidateFramebuffer(GLenum target, sequence<GLenum> attachments);\n void invalidateSubFramebuffer(GLenum target, sequence<GLenum> attachments,\n GLint x, GLint y, GLsizei width, GLsizei height);\n void readBuffer(GLenum src);\n\n /* Renderbuffer objects */\n any getInternalformatParameter(GLenum target, GLenum internalformat, GLenum pname);\n void renderbufferStorageMultisample(GLenum target, GLsizei samples, GLenum internalformat,\n GLsizei width, GLsizei height);\n\n /* Texture objects */\n void texStorage2D(GLenum target, GLsizei levels, GLenum internalformat, GLsizei width,\n GLsizei height);\n void texStorage3D(GLenum target, GLsizei levels, GLenum internalformat, GLsizei width,\n GLsizei height, GLsizei depth);\n\n // WebGL1 legacy entrypoints:\n void texImage2D(GLenum target, GLint level, GLint internalformat,\n GLsizei width, GLsizei height, GLint border, GLenum format,\n GLenum type, [AllowShared] ArrayBufferView? pixels);\n void texImage2D(GLenum target, GLint level, GLint internalformat,\n GLenum format, GLenum type, TexImageSource source); // May throw DOMException\n\n void texSubImage2D(GLenum target, GLint level, GLint xoffset, GLint yoffset,\n GLsizei width, GLsizei height,\n GLenum format, GLenum type, [AllowShared] ArrayBufferView? pixels);\n void texSubImage2D(GLenum target, GLint level, GLint xoffset, GLint yoffset,\n GLenum format, GLenum type, TexImageSource source); // May throw DOMException\n\n // WebGL2 entrypoints:\n void texImage2D(GLenum target, GLint level, GLint internalformat, GLsizei width, GLsizei height,\n GLint border, GLenum format, GLenum type, GLintptr pboOffset);\n void texImage2D(GLenum target, GLint level, GLint internalformat, GLsizei width, GLsizei height,\n GLint border, GLenum format, GLenum type,\n TexImageSource source); // May throw DOMException\n void texImage2D(GLenum target, GLint level, GLint internalformat, GLsizei width, GLsizei height,\n GLint border, GLenum format, GLenum type, [AllowShared] ArrayBufferView srcData,\n GLuint srcOffset);\n\n void texImage3D(GLenum target, GLint level, GLint internalformat, GLsizei width, GLsizei height,\n GLsizei depth, GLint border, GLenum format, GLenum type, GLintptr pboOffset);\n void texImage3D(GLenum target, GLint level, GLint internalformat, GLsizei width, GLsizei height,\n GLsizei depth, GLint border, GLenum format, GLenum type,\n TexImageSource source); // May throw DOMException\n void texImage3D(GLenum target, GLint level, GLint internalformat, GLsizei width, GLsizei height,\n GLsizei depth, GLint border, GLenum format, GLenum type, [AllowShared] ArrayBufferView? srcData);\n void texImage3D(GLenum target, GLint level, GLint internalformat, GLsizei width, GLsizei height,\n GLsizei depth, GLint border, GLenum format, GLenum type, [AllowShared] ArrayBufferView srcData,\n GLuint srcOffset);\n\n void texSubImage2D(GLenum target, GLint level, GLint xoffset, GLint yoffset, GLsizei width,\n GLsizei height, GLenum format, GLenum type, GLintptr pboOffset);\n void texSubImage2D(GLenum target, GLint level, GLint xoffset, GLint yoffset, GLsizei width,\n GLsizei height, GLenum format, GLenum type,\n TexImageSource source); // May throw DOMException\n void texSubImage2D(GLenum target, GLint level, GLint xoffset, GLint yoffset, GLsizei width,\n GLsizei height, GLenum format, GLenum type, [AllowShared] ArrayBufferView srcData,\n GLuint srcOffset);\n\n void texSubImage3D(GLenum target, GLint level, GLint xoffset, GLint yoffset, GLint zoffset,\n GLsizei width, GLsizei height, GLsizei depth, GLenum format, GLenum type,\n GLintptr pboOffset);\n void texSubImage3D(GLenum target, GLint level, GLint xoffset, GLint yoffset, GLint zoffset,\n GLsizei width, GLsizei height, GLsizei depth, GLenum format, GLenum type,\n TexImageSource source); // May throw DOMException\n void texSubImage3D(GLenum target, GLint level, GLint xoffset, GLint yoffset, GLint zoffset,\n GLsizei width, GLsizei height, GLsizei depth, GLenum format, GLenum type,\n [AllowShared] ArrayBufferView? srcData, optional GLuint srcOffset = 0);\n\n void copyTexSubImage3D(GLenum target, GLint level, GLint xoffset, GLint yoffset, GLint zoffset,\n GLint x, GLint y, GLsizei width, GLsizei height);\n\n void compressedTexImage2D(GLenum target, GLint level, GLenum internalformat, GLsizei width,\n GLsizei height, GLint border, GLsizei imageSize, GLintptr offset);\n void compressedTexImage2D(GLenum target, GLint level, GLenum internalformat, GLsizei width,\n GLsizei height, GLint border, [AllowShared] ArrayBufferView srcData,\n optional GLuint srcOffset = 0, optional GLuint srcLengthOverride = 0);\n\n void compressedTexImage3D(GLenum target, GLint level, GLenum internalformat, GLsizei width,\n GLsizei height, GLsizei depth, GLint border, GLsizei imageSize, GLintptr offset);\n void compressedTexImage3D(GLenum target, GLint level, GLenum internalformat, GLsizei width,\n GLsizei height, GLsizei depth, GLint border, [AllowShared] ArrayBufferView srcData,\n optional GLuint srcOffset = 0, optional GLuint srcLengthOverride = 0);\n\n void compressedTexSubImage2D(GLenum target, GLint level, GLint xoffset, GLint yoffset,\n GLsizei width, GLsizei height, GLenum format, GLsizei imageSize, GLintptr offset);\n void compressedTexSubImage2D(GLenum target, GLint level, GLint xoffset, GLint yoffset,\n GLsizei width, GLsizei height, GLenum format,\n [AllowShared] ArrayBufferView srcData,\n optional GLuint srcOffset = 0,\n optional GLuint srcLengthOverride = 0);\n\n void compressedTexSubImage3D(GLenum target, GLint level, GLint xoffset, GLint yoffset,\n GLint zoffset, GLsizei width, GLsizei height, GLsizei depth,\n GLenum format, GLsizei imageSize, GLintptr offset);\n void compressedTexSubImage3D(GLenum target, GLint level, GLint xoffset, GLint yoffset,\n GLint zoffset, GLsizei width, GLsizei height, GLsizei depth,\n GLenum format, [AllowShared] ArrayBufferView srcData,\n optional GLuint srcOffset = 0,\n optional GLuint srcLengthOverride = 0);\n\n /* Programs and shaders */\n [WebGLHandlesContextLoss] GLint getFragDataLocation(WebGLProgram program, DOMString name);\n\n /* Uniforms */\n void uniform1ui(WebGLUniformLocation? location, GLuint v0);\n void uniform2ui(WebGLUniformLocation? location, GLuint v0, GLuint v1);\n void uniform3ui(WebGLUniformLocation? location, GLuint v0, GLuint v1, GLuint v2);\n void uniform4ui(WebGLUniformLocation? location, GLuint v0, GLuint v1, GLuint v2, GLuint v3);\n\n void uniform1fv(WebGLUniformLocation? location, Float32List data, optional GLuint srcOffset = 0,\n optional GLuint srcLength = 0);\n void uniform2fv(WebGLUniformLocation? location, Float32List data, optional GLuint srcOffset = 0,\n optional GLuint srcLength = 0);\n void uniform3fv(WebGLUniformLocation? location, Float32List data, optional GLuint srcOffset = 0,\n optional GLuint srcLength = 0);\n void uniform4fv(WebGLUniformLocation? location, Float32List data, optional GLuint srcOffset = 0,\n optional GLuint srcLength = 0);\n\n void uniform1iv(WebGLUniformLocation? location, Int32List data, optional GLuint srcOffset = 0,\n optional GLuint srcLength = 0);\n void uniform2iv(WebGLUniformLocation? location, Int32List data, optional GLuint srcOffset = 0,\n optional GLuint srcLength = 0);\n void uniform3iv(WebGLUniformLocation? location, Int32List data, optional GLuint srcOffset = 0,\n optional GLuint srcLength = 0);\n void uniform4iv(WebGLUniformLocation? location, Int32List data, optional GLuint srcOffset = 0,\n optional GLuint srcLength = 0);\n\n void uniform1uiv(WebGLUniformLocation? location, Uint32List data, optional GLuint srcOffset = 0,\n optional GLuint srcLength = 0);\n void uniform2uiv(WebGLUniformLocation? location, Uint32List data, optional GLuint srcOffset = 0,\n optional GLuint srcLength = 0);\n void uniform3uiv(WebGLUniformLocation? location, Uint32List data, optional GLuint srcOffset = 0,\n optional GLuint srcLength = 0);\n void uniform4uiv(WebGLUniformLocation? location, Uint32List data, optional GLuint srcOffset = 0,\n optional GLuint srcLength = 0);\n\n void uniformMatrix2fv(WebGLUniformLocation? location, GLboolean transpose, Float32List data,\n optional GLuint srcOffset = 0, optional GLuint srcLength = 0);\n void uniformMatrix3x2fv(WebGLUniformLocation? location, GLboolean transpose, Float32List data,\n optional GLuint srcOffset = 0, optional GLuint srcLength = 0);\n void uniformMatrix4x2fv(WebGLUniformLocation? location, GLboolean transpose, Float32List data,\n optional GLuint srcOffset = 0, optional GLuint srcLength = 0);\n\n void uniformMatrix2x3fv(WebGLUniformLocation? location, GLboolean transpose, Float32List data,\n optional GLuint srcOffset = 0, optional GLuint srcLength = 0);\n void uniformMatrix3fv(WebGLUniformLocation? location, GLboolean transpose, Float32List data,\n optional GLuint srcOffset = 0, optional GLuint srcLength = 0);\n void uniformMatrix4x3fv(WebGLUniformLocation? location, GLboolean transpose, Float32List data,\n optional GLuint srcOffset = 0, optional GLuint srcLength = 0);\n\n void uniformMatrix2x4fv(WebGLUniformLocation? location, GLboolean transpose, Float32List data,\n optional GLuint srcOffset = 0, optional GLuint srcLength = 0);\n void uniformMatrix3x4fv(WebGLUniformLocation? location, GLboolean transpose, Float32List data,\n optional GLuint srcOffset = 0, optional GLuint srcLength = 0);\n void uniformMatrix4fv(WebGLUniformLocation? location, GLboolean transpose, Float32List data,\n optional GLuint srcOffset = 0, optional GLuint srcLength = 0);\n\n /* Vertex attribs */\n void vertexAttribI4i(GLuint index, GLint x, GLint y, GLint z, GLint w);\n void vertexAttribI4iv(GLuint index, Int32List values);\n void vertexAttribI4ui(GLuint index, GLuint x, GLuint y, GLuint z, GLuint w);\n void vertexAttribI4uiv(GLuint index, Uint32List values);\n void vertexAttribIPointer(GLuint index, GLint size, GLenum type, GLsizei stride, GLintptr offset);\n\n /* Writing to the drawing buffer */\n void vertexAttribDivisor(GLuint index, GLuint divisor);\n void drawArraysInstanced(GLenum mode, GLint first, GLsizei count, GLsizei instanceCount);\n void drawElementsInstanced(GLenum mode, GLsizei count, GLenum type, GLintptr offset, GLsizei instanceCount);\n void drawRangeElements(GLenum mode, GLuint start, GLuint end, GLsizei count, GLenum type, GLintptr offset);\n\n /* Reading back pixels */\n // WebGL1:\n void readPixels(GLint x, GLint y, GLsizei width, GLsizei height, GLenum format, GLenum type,\n [AllowShared] ArrayBufferView? dstData);\n // WebGL2:\n void readPixels(GLint x, GLint y, GLsizei width, GLsizei height, GLenum format, GLenum type,\n GLintptr offset);\n void readPixels(GLint x, GLint y, GLsizei width, GLsizei height, GLenum format, GLenum type,\n [AllowShared] ArrayBufferView dstData, GLuint dstOffset);\n\n /* Multiple Render Targets */\n void drawBuffers(sequence<GLenum> buffers);\n\n void clearBufferfv(GLenum buffer, GLint drawbuffer, Float32List values,\n optional GLuint srcOffset = 0);\n void clearBufferiv(GLenum buffer, GLint drawbuffer, Int32List values,\n optional GLuint srcOffset = 0);\n void clearBufferuiv(GLenum buffer, GLint drawbuffer, Uint32List values,\n optional GLuint srcOffset = 0);\n\n void clearBufferfi(GLenum buffer, GLint drawbuffer, GLfloat depth, GLint stencil);\n\n /* Query Objects */\n WebGLQuery? createQuery();\n void deleteQuery(WebGLQuery? query);\n [WebGLHandlesContextLoss] GLboolean isQuery(WebGLQuery? query);\n void beginQuery(GLenum target, WebGLQuery query);\n void endQuery(GLenum target);\n WebGLQuery? getQuery(GLenum target, GLenum pname);\n any getQueryParameter(WebGLQuery query, GLenum pname);\n\n /* Sampler Objects */\n WebGLSampler? createSampler();\n void deleteSampler(WebGLSampler? sampler);\n [WebGLHandlesContextLoss] GLboolean isSampler(WebGLSampler? sampler);\n void bindSampler(GLuint unit, WebGLSampler? sampler);\n void samplerParameteri(WebGLSampler sampler, GLenum pname, GLint param);\n void samplerParameterf(WebGLSampler sampler, GLenum pname, GLfloat param);\n any getSamplerParameter(WebGLSampler sampler, GLenum pname);\n\n /* Sync objects */\n WebGLSync? fenceSync(GLenum condition, GLbitfield flags);\n [WebGLHandlesContextLoss] GLboolean isSync(WebGLSync? sync);\n void deleteSync(WebGLSync? sync);\n GLenum clientWaitSync(WebGLSync sync, GLbitfield flags, GLuint64 timeout);\n void waitSync(WebGLSync sync, GLbitfield flags, GLint64 timeout);\n any getSyncParameter(WebGLSync sync, GLenum pname);\n\n /* Transform Feedback */\n WebGLTransformFeedback? createTransformFeedback();\n void deleteTransformFeedback(WebGLTransformFeedback? tf);\n [WebGLHandlesContextLoss] GLboolean isTransformFeedback(WebGLTransformFeedback? tf);\n void bindTransformFeedback (GLenum target, WebGLTransformFeedback? tf);\n void beginTransformFeedback(GLenum primitiveMode);\n void endTransformFeedback();\n void transformFeedbackVaryings(WebGLProgram program, sequence<DOMString> varyings, GLenum bufferMode);\n WebGLActiveInfo? getTransformFeedbackVarying(WebGLProgram program, GLuint index);\n void pauseTransformFeedback();\n void resumeTransformFeedback();\n\n /* Uniform Buffer Objects and Transform Feedback Buffers */\n void bindBufferBase(GLenum target, GLuint index, WebGLBuffer? buffer);\n void bindBufferRange(GLenum target, GLuint index, WebGLBuffer? buffer, GLintptr offset, GLsizeiptr size);\n any getIndexedParameter(GLenum target, GLuint index);\n sequence<GLuint>? getUniformIndices(WebGLProgram program, sequence<DOMString> uniformNames);\n any getActiveUniforms(WebGLProgram program, sequence<GLuint> uniformIndices, GLenum pname);\n GLuint getUniformBlockIndex(WebGLProgram program, DOMString uniformBlockName);\n any getActiveUniformBlockParameter(WebGLProgram program, GLuint uniformBlockIndex, GLenum pname);\n DOMString? getActiveUniformBlockName(WebGLProgram program, GLuint uniformBlockIndex);\n void uniformBlockBinding(WebGLProgram program, GLuint uniformBlockIndex, GLuint uniformBlockBinding);\n\n /* Vertex Array Objects */\n WebGLVertexArrayObject? createVertexArray();\n void deleteVertexArray(WebGLVertexArrayObject? vertexArray);\n [WebGLHandlesContextLoss] GLboolean isVertexArray(WebGLVertexArrayObject? vertexArray);\n void bindVertexArray(WebGLVertexArrayObject? array);\n};\n\n[Exposed=(Window,Worker)]\ninterface WebGL2RenderingContext\n{\n};\nWebGL2RenderingContext includes WebGLRenderingContextBase;\nWebGL2RenderingContext includes WebGL2RenderingContextBase;\n\n\n";Expand description
The contents of webgl2.idl