tor-browser

The Tor Browser
git clone https://git.dasho.dev/tor-browser.git
Log | Files | Refs | README | LICENSE

WebGL2RenderingContext.webidl (49771B)


      1 /* -*- Mode: IDL; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */
      2 /* This Source Code Form is subject to the terms of the Mozilla Public
      3 * License, v. 2.0. If a copy of the MPL was not distributed with this file,
      4 * You can obtain one at http://mozilla.org/MPL/2.0/.
      5 *
      6 * The source for this IDL is found at https://www.khronos.org/registry/webgl/specs/latest/2.0
      7 * This IDL depends on WebGLRenderingContext.webidl
      8 */
      9 
     10 typedef long long GLint64;
     11 typedef unsigned long long GLuint64;
     12 
     13 [Pref="webgl.enable-webgl2", Exposed=(Window,Worker)]
     14 interface WebGLSampler {
     15 };
     16 
     17 [Pref="webgl.enable-webgl2", Exposed=(Window,Worker)]
     18 interface WebGLSync {
     19 };
     20 
     21 [Pref="webgl.enable-webgl2", Exposed=(Window,Worker)]
     22 interface WebGLTransformFeedback {
     23 };
     24 
     25 typedef ([AllowShared] Uint32Array or sequence<GLuint>) Uint32List;
     26 
     27 // WebGL2 spec has this as an empty interface that pulls in everything
     28 // via WebGL2RenderingContextBase.
     29 [Pref="webgl.enable-webgl2", Exposed=(Window,Worker)]
     30 interface WebGL2RenderingContext
     31 {
     32 };
     33 
     34 interface mixin WebGL2RenderingContextBase
     35 {
     36    const GLenum READ_BUFFER                                   = 0x0C02;
     37    const GLenum UNPACK_ROW_LENGTH                             = 0x0CF2;
     38    const GLenum UNPACK_SKIP_ROWS                              = 0x0CF3;
     39    const GLenum UNPACK_SKIP_PIXELS                            = 0x0CF4;
     40    const GLenum PACK_ROW_LENGTH                               = 0x0D02;
     41    const GLenum PACK_SKIP_ROWS                                = 0x0D03;
     42    const GLenum PACK_SKIP_PIXELS                              = 0x0D04;
     43    const GLenum COLOR                                         = 0x1800;
     44    const GLenum DEPTH                                         = 0x1801;
     45    const GLenum STENCIL                                       = 0x1802;
     46    const GLenum RED                                           = 0x1903;
     47    const GLenum RGB8                                          = 0x8051;
     48    const GLenum RGBA8                                         = 0x8058;
     49    const GLenum RGB10_A2                                      = 0x8059;
     50    const GLenum TEXTURE_BINDING_3D                            = 0x806A;
     51    const GLenum UNPACK_SKIP_IMAGES                            = 0x806D;
     52    const GLenum UNPACK_IMAGE_HEIGHT                           = 0x806E;
     53    const GLenum TEXTURE_3D                                    = 0x806F;
     54    const GLenum TEXTURE_WRAP_R                                = 0x8072;
     55    const GLenum MAX_3D_TEXTURE_SIZE                           = 0x8073;
     56    const GLenum UNSIGNED_INT_2_10_10_10_REV                   = 0x8368;
     57    const GLenum MAX_ELEMENTS_VERTICES                         = 0x80E8;
     58    const GLenum MAX_ELEMENTS_INDICES                          = 0x80E9;
     59    const GLenum TEXTURE_MIN_LOD                               = 0x813A;
     60    const GLenum TEXTURE_MAX_LOD                               = 0x813B;
     61    const GLenum TEXTURE_BASE_LEVEL                            = 0x813C;
     62    const GLenum TEXTURE_MAX_LEVEL                             = 0x813D;
     63    const GLenum MIN                                           = 0x8007;
     64    const GLenum MAX                                           = 0x8008;
     65    const GLenum DEPTH_COMPONENT24                             = 0x81A6;
     66    const GLenum MAX_TEXTURE_LOD_BIAS                          = 0x84FD;
     67    const GLenum TEXTURE_COMPARE_MODE                          = 0x884C;
     68    const GLenum TEXTURE_COMPARE_FUNC                          = 0x884D;
     69    const GLenum CURRENT_QUERY                                 = 0x8865;
     70    const GLenum QUERY_RESULT                                  = 0x8866;
     71    const GLenum QUERY_RESULT_AVAILABLE                        = 0x8867;
     72    const GLenum STREAM_READ                                   = 0x88E1;
     73    const GLenum STREAM_COPY                                   = 0x88E2;
     74    const GLenum STATIC_READ                                   = 0x88E5;
     75    const GLenum STATIC_COPY                                   = 0x88E6;
     76    const GLenum DYNAMIC_READ                                  = 0x88E9;
     77    const GLenum DYNAMIC_COPY                                  = 0x88EA;
     78    const GLenum MAX_DRAW_BUFFERS                              = 0x8824;
     79    const GLenum DRAW_BUFFER0                                  = 0x8825;
     80    const GLenum DRAW_BUFFER1                                  = 0x8826;
     81    const GLenum DRAW_BUFFER2                                  = 0x8827;
     82    const GLenum DRAW_BUFFER3                                  = 0x8828;
     83    const GLenum DRAW_BUFFER4                                  = 0x8829;
     84    const GLenum DRAW_BUFFER5                                  = 0x882A;
     85    const GLenum DRAW_BUFFER6                                  = 0x882B;
     86    const GLenum DRAW_BUFFER7                                  = 0x882C;
     87    const GLenum DRAW_BUFFER8                                  = 0x882D;
     88    const GLenum DRAW_BUFFER9                                  = 0x882E;
     89    const GLenum DRAW_BUFFER10                                 = 0x882F;
     90    const GLenum DRAW_BUFFER11                                 = 0x8830;
     91    const GLenum DRAW_BUFFER12                                 = 0x8831;
     92    const GLenum DRAW_BUFFER13                                 = 0x8832;
     93    const GLenum DRAW_BUFFER14                                 = 0x8833;
     94    const GLenum DRAW_BUFFER15                                 = 0x8834;
     95    const GLenum MAX_FRAGMENT_UNIFORM_COMPONENTS               = 0x8B49;
     96    const GLenum MAX_VERTEX_UNIFORM_COMPONENTS                 = 0x8B4A;
     97    const GLenum SAMPLER_3D                                    = 0x8B5F;
     98    const GLenum SAMPLER_2D_SHADOW                             = 0x8B62;
     99    const GLenum FRAGMENT_SHADER_DERIVATIVE_HINT               = 0x8B8B;
    100    const GLenum PIXEL_PACK_BUFFER                             = 0x88EB;
    101    const GLenum PIXEL_UNPACK_BUFFER                           = 0x88EC;
    102    const GLenum PIXEL_PACK_BUFFER_BINDING                     = 0x88ED;
    103    const GLenum PIXEL_UNPACK_BUFFER_BINDING                   = 0x88EF;
    104    const GLenum FLOAT_MAT2x3                                  = 0x8B65;
    105    const GLenum FLOAT_MAT2x4                                  = 0x8B66;
    106    const GLenum FLOAT_MAT3x2                                  = 0x8B67;
    107    const GLenum FLOAT_MAT3x4                                  = 0x8B68;
    108    const GLenum FLOAT_MAT4x2                                  = 0x8B69;
    109    const GLenum FLOAT_MAT4x3                                  = 0x8B6A;
    110    const GLenum SRGB                                          = 0x8C40;
    111    const GLenum SRGB8                                         = 0x8C41;
    112    const GLenum SRGB8_ALPHA8                                  = 0x8C43;
    113    const GLenum COMPARE_REF_TO_TEXTURE                        = 0x884E;
    114    const GLenum RGBA32F                                       = 0x8814;
    115    const GLenum RGB32F                                        = 0x8815;
    116    const GLenum RGBA16F                                       = 0x881A;
    117    const GLenum RGB16F                                        = 0x881B;
    118    const GLenum VERTEX_ATTRIB_ARRAY_INTEGER                   = 0x88FD;
    119    const GLenum MAX_ARRAY_TEXTURE_LAYERS                      = 0x88FF;
    120    const GLenum MIN_PROGRAM_TEXEL_OFFSET                      = 0x8904;
    121    const GLenum MAX_PROGRAM_TEXEL_OFFSET                      = 0x8905;
    122    const GLenum MAX_VARYING_COMPONENTS                        = 0x8B4B;
    123    const GLenum TEXTURE_2D_ARRAY                              = 0x8C1A;
    124    const GLenum TEXTURE_BINDING_2D_ARRAY                      = 0x8C1D;
    125    const GLenum R11F_G11F_B10F                                = 0x8C3A;
    126    const GLenum UNSIGNED_INT_10F_11F_11F_REV                  = 0x8C3B;
    127    const GLenum RGB9_E5                                       = 0x8C3D;
    128    const GLenum UNSIGNED_INT_5_9_9_9_REV                      = 0x8C3E;
    129    const GLenum TRANSFORM_FEEDBACK_BUFFER_MODE                = 0x8C7F;
    130    const GLenum MAX_TRANSFORM_FEEDBACK_SEPARATE_COMPONENTS    = 0x8C80;
    131    const GLenum TRANSFORM_FEEDBACK_VARYINGS                   = 0x8C83;
    132    const GLenum TRANSFORM_FEEDBACK_BUFFER_START               = 0x8C84;
    133    const GLenum TRANSFORM_FEEDBACK_BUFFER_SIZE                = 0x8C85;
    134    const GLenum TRANSFORM_FEEDBACK_PRIMITIVES_WRITTEN         = 0x8C88;
    135    const GLenum RASTERIZER_DISCARD                            = 0x8C89;
    136    const GLenum MAX_TRANSFORM_FEEDBACK_INTERLEAVED_COMPONENTS = 0x8C8A;
    137    const GLenum MAX_TRANSFORM_FEEDBACK_SEPARATE_ATTRIBS       = 0x8C8B;
    138    const GLenum INTERLEAVED_ATTRIBS                           = 0x8C8C;
    139    const GLenum SEPARATE_ATTRIBS                              = 0x8C8D;
    140    const GLenum TRANSFORM_FEEDBACK_BUFFER                     = 0x8C8E;
    141    const GLenum TRANSFORM_FEEDBACK_BUFFER_BINDING             = 0x8C8F;
    142    const GLenum RGBA32UI                                      = 0x8D70;
    143    const GLenum RGB32UI                                       = 0x8D71;
    144    const GLenum RGBA16UI                                      = 0x8D76;
    145    const GLenum RGB16UI                                       = 0x8D77;
    146    const GLenum RGBA8UI                                       = 0x8D7C;
    147    const GLenum RGB8UI                                        = 0x8D7D;
    148    const GLenum RGBA32I                                       = 0x8D82;
    149    const GLenum RGB32I                                        = 0x8D83;
    150    const GLenum RGBA16I                                       = 0x8D88;
    151    const GLenum RGB16I                                        = 0x8D89;
    152    const GLenum RGBA8I                                        = 0x8D8E;
    153    const GLenum RGB8I                                         = 0x8D8F;
    154    const GLenum RED_INTEGER                                   = 0x8D94;
    155    const GLenum RGB_INTEGER                                   = 0x8D98;
    156    const GLenum RGBA_INTEGER                                  = 0x8D99;
    157    const GLenum SAMPLER_2D_ARRAY                              = 0x8DC1;
    158    const GLenum SAMPLER_2D_ARRAY_SHADOW                       = 0x8DC4;
    159    const GLenum SAMPLER_CUBE_SHADOW                           = 0x8DC5;
    160    const GLenum UNSIGNED_INT_VEC2                             = 0x8DC6;
    161    const GLenum UNSIGNED_INT_VEC3                             = 0x8DC7;
    162    const GLenum UNSIGNED_INT_VEC4                             = 0x8DC8;
    163    const GLenum INT_SAMPLER_2D                                = 0x8DCA;
    164    const GLenum INT_SAMPLER_3D                                = 0x8DCB;
    165    const GLenum INT_SAMPLER_CUBE                              = 0x8DCC;
    166    const GLenum INT_SAMPLER_2D_ARRAY                          = 0x8DCF;
    167    const GLenum UNSIGNED_INT_SAMPLER_2D                       = 0x8DD2;
    168    const GLenum UNSIGNED_INT_SAMPLER_3D                       = 0x8DD3;
    169    const GLenum UNSIGNED_INT_SAMPLER_CUBE                     = 0x8DD4;
    170    const GLenum UNSIGNED_INT_SAMPLER_2D_ARRAY                 = 0x8DD7;
    171    const GLenum DEPTH_COMPONENT32F                            = 0x8CAC;
    172    const GLenum DEPTH32F_STENCIL8                             = 0x8CAD;
    173    const GLenum FLOAT_32_UNSIGNED_INT_24_8_REV                = 0x8DAD;
    174    const GLenum FRAMEBUFFER_ATTACHMENT_COLOR_ENCODING         = 0x8210;
    175    const GLenum FRAMEBUFFER_ATTACHMENT_COMPONENT_TYPE         = 0x8211;
    176    const GLenum FRAMEBUFFER_ATTACHMENT_RED_SIZE               = 0x8212;
    177    const GLenum FRAMEBUFFER_ATTACHMENT_GREEN_SIZE             = 0x8213;
    178    const GLenum FRAMEBUFFER_ATTACHMENT_BLUE_SIZE              = 0x8214;
    179    const GLenum FRAMEBUFFER_ATTACHMENT_ALPHA_SIZE             = 0x8215;
    180    const GLenum FRAMEBUFFER_ATTACHMENT_DEPTH_SIZE             = 0x8216;
    181    const GLenum FRAMEBUFFER_ATTACHMENT_STENCIL_SIZE           = 0x8217;
    182    const GLenum FRAMEBUFFER_DEFAULT                           = 0x8218;
    183    const GLenum UNSIGNED_INT_24_8                             = 0x84FA;
    184    const GLenum DEPTH24_STENCIL8                              = 0x88F0;
    185    const GLenum UNSIGNED_NORMALIZED                           = 0x8C17;
    186    const GLenum DRAW_FRAMEBUFFER_BINDING                      = 0x8CA6; /* Same as FRAMEBUFFER_BINDING */
    187    const GLenum READ_FRAMEBUFFER                              = 0x8CA8;
    188    const GLenum DRAW_FRAMEBUFFER                              = 0x8CA9;
    189    const GLenum READ_FRAMEBUFFER_BINDING                      = 0x8CAA;
    190    const GLenum RENDERBUFFER_SAMPLES                          = 0x8CAB;
    191    const GLenum FRAMEBUFFER_ATTACHMENT_TEXTURE_LAYER          = 0x8CD4;
    192    const GLenum MAX_COLOR_ATTACHMENTS                         = 0x8CDF;
    193    const GLenum COLOR_ATTACHMENT1                             = 0x8CE1;
    194    const GLenum COLOR_ATTACHMENT2                             = 0x8CE2;
    195    const GLenum COLOR_ATTACHMENT3                             = 0x8CE3;
    196    const GLenum COLOR_ATTACHMENT4                             = 0x8CE4;
    197    const GLenum COLOR_ATTACHMENT5                             = 0x8CE5;
    198    const GLenum COLOR_ATTACHMENT6                             = 0x8CE6;
    199    const GLenum COLOR_ATTACHMENT7                             = 0x8CE7;
    200    const GLenum COLOR_ATTACHMENT8                             = 0x8CE8;
    201    const GLenum COLOR_ATTACHMENT9                             = 0x8CE9;
    202    const GLenum COLOR_ATTACHMENT10                            = 0x8CEA;
    203    const GLenum COLOR_ATTACHMENT11                            = 0x8CEB;
    204    const GLenum COLOR_ATTACHMENT12                            = 0x8CEC;
    205    const GLenum COLOR_ATTACHMENT13                            = 0x8CED;
    206    const GLenum COLOR_ATTACHMENT14                            = 0x8CEE;
    207    const GLenum COLOR_ATTACHMENT15                            = 0x8CEF;
    208    const GLenum FRAMEBUFFER_INCOMPLETE_MULTISAMPLE            = 0x8D56;
    209    const GLenum MAX_SAMPLES                                   = 0x8D57;
    210    const GLenum HALF_FLOAT                                    = 0x140B;
    211    const GLenum RG                                            = 0x8227;
    212    const GLenum RG_INTEGER                                    = 0x8228;
    213    const GLenum R8                                            = 0x8229;
    214    const GLenum RG8                                           = 0x822B;
    215    const GLenum R16F                                          = 0x822D;
    216    const GLenum R32F                                          = 0x822E;
    217    const GLenum RG16F                                         = 0x822F;
    218    const GLenum RG32F                                         = 0x8230;
    219    const GLenum R8I                                           = 0x8231;
    220    const GLenum R8UI                                          = 0x8232;
    221    const GLenum R16I                                          = 0x8233;
    222    const GLenum R16UI                                         = 0x8234;
    223    const GLenum R32I                                          = 0x8235;
    224    const GLenum R32UI                                         = 0x8236;
    225    const GLenum RG8I                                          = 0x8237;
    226    const GLenum RG8UI                                         = 0x8238;
    227    const GLenum RG16I                                         = 0x8239;
    228    const GLenum RG16UI                                        = 0x823A;
    229    const GLenum RG32I                                         = 0x823B;
    230    const GLenum RG32UI                                        = 0x823C;
    231    const GLenum VERTEX_ARRAY_BINDING                          = 0x85B5;
    232    const GLenum R8_SNORM                                      = 0x8F94;
    233    const GLenum RG8_SNORM                                     = 0x8F95;
    234    const GLenum RGB8_SNORM                                    = 0x8F96;
    235    const GLenum RGBA8_SNORM                                   = 0x8F97;
    236    const GLenum SIGNED_NORMALIZED                             = 0x8F9C;
    237    const GLenum COPY_READ_BUFFER                              = 0x8F36;
    238    const GLenum COPY_WRITE_BUFFER                             = 0x8F37;
    239    const GLenum COPY_READ_BUFFER_BINDING                      = 0x8F36; /* Same as COPY_READ_BUFFER */
    240    const GLenum COPY_WRITE_BUFFER_BINDING                     = 0x8F37; /* Same as COPY_WRITE_BUFFER */
    241    const GLenum UNIFORM_BUFFER                                = 0x8A11;
    242    const GLenum UNIFORM_BUFFER_BINDING                        = 0x8A28;
    243    const GLenum UNIFORM_BUFFER_START                          = 0x8A29;
    244    const GLenum UNIFORM_BUFFER_SIZE                           = 0x8A2A;
    245    const GLenum MAX_VERTEX_UNIFORM_BLOCKS                     = 0x8A2B;
    246    const GLenum MAX_FRAGMENT_UNIFORM_BLOCKS                   = 0x8A2D;
    247    const GLenum MAX_COMBINED_UNIFORM_BLOCKS                   = 0x8A2E;
    248    const GLenum MAX_UNIFORM_BUFFER_BINDINGS                   = 0x8A2F;
    249    const GLenum MAX_UNIFORM_BLOCK_SIZE                        = 0x8A30;
    250    const GLenum MAX_COMBINED_VERTEX_UNIFORM_COMPONENTS        = 0x8A31;
    251    const GLenum MAX_COMBINED_FRAGMENT_UNIFORM_COMPONENTS      = 0x8A33;
    252    const GLenum UNIFORM_BUFFER_OFFSET_ALIGNMENT               = 0x8A34;
    253    const GLenum ACTIVE_UNIFORM_BLOCKS                         = 0x8A36;
    254    const GLenum UNIFORM_TYPE                                  = 0x8A37;
    255    const GLenum UNIFORM_SIZE                                  = 0x8A38;
    256    const GLenum UNIFORM_BLOCK_INDEX                           = 0x8A3A;
    257    const GLenum UNIFORM_OFFSET                                = 0x8A3B;
    258    const GLenum UNIFORM_ARRAY_STRIDE                          = 0x8A3C;
    259    const GLenum UNIFORM_MATRIX_STRIDE                         = 0x8A3D;
    260    const GLenum UNIFORM_IS_ROW_MAJOR                          = 0x8A3E;
    261    const GLenum UNIFORM_BLOCK_BINDING                         = 0x8A3F;
    262    const GLenum UNIFORM_BLOCK_DATA_SIZE                       = 0x8A40;
    263    const GLenum UNIFORM_BLOCK_ACTIVE_UNIFORMS                 = 0x8A42;
    264    const GLenum UNIFORM_BLOCK_ACTIVE_UNIFORM_INDICES          = 0x8A43;
    265    const GLenum UNIFORM_BLOCK_REFERENCED_BY_VERTEX_SHADER     = 0x8A44;
    266    const GLenum UNIFORM_BLOCK_REFERENCED_BY_FRAGMENT_SHADER   = 0x8A46;
    267    const GLenum INVALID_INDEX                                 = 0xFFFFFFFF;
    268    const GLenum MAX_VERTEX_OUTPUT_COMPONENTS                  = 0x9122;
    269    const GLenum MAX_FRAGMENT_INPUT_COMPONENTS                 = 0x9125;
    270    const GLenum MAX_SERVER_WAIT_TIMEOUT                       = 0x9111;
    271    const GLenum OBJECT_TYPE                                   = 0x9112;
    272    const GLenum SYNC_CONDITION                                = 0x9113;
    273    const GLenum SYNC_STATUS                                   = 0x9114;
    274    const GLenum SYNC_FLAGS                                    = 0x9115;
    275    const GLenum SYNC_FENCE                                    = 0x9116;
    276    const GLenum SYNC_GPU_COMMANDS_COMPLETE                    = 0x9117;
    277    const GLenum UNSIGNALED                                    = 0x9118;
    278    const GLenum SIGNALED                                      = 0x9119;
    279    const GLenum ALREADY_SIGNALED                              = 0x911A;
    280    const GLenum TIMEOUT_EXPIRED                               = 0x911B;
    281    const GLenum CONDITION_SATISFIED                           = 0x911C;
    282    const GLenum WAIT_FAILED                                   = 0x911D;
    283    const GLenum SYNC_FLUSH_COMMANDS_BIT                       = 0x00000001;
    284    const GLenum VERTEX_ATTRIB_ARRAY_DIVISOR                   = 0x88FE;
    285    const GLenum ANY_SAMPLES_PASSED                            = 0x8C2F;
    286    const GLenum ANY_SAMPLES_PASSED_CONSERVATIVE               = 0x8D6A;
    287    const GLenum SAMPLER_BINDING                               = 0x8919;
    288    const GLenum RGB10_A2UI                                    = 0x906F;
    289    const GLenum INT_2_10_10_10_REV                            = 0x8D9F;
    290    const GLenum TRANSFORM_FEEDBACK                            = 0x8E22;
    291    const GLenum TRANSFORM_FEEDBACK_PAUSED                     = 0x8E23;
    292    const GLenum TRANSFORM_FEEDBACK_ACTIVE                     = 0x8E24;
    293    const GLenum TRANSFORM_FEEDBACK_BINDING                    = 0x8E25;
    294    const GLenum TEXTURE_IMMUTABLE_FORMAT                      = 0x912F;
    295    const GLenum MAX_ELEMENT_INDEX                             = 0x8D6B;
    296    const GLenum TEXTURE_IMMUTABLE_LEVELS                      = 0x82DF;
    297 
    298    const GLint64 TIMEOUT_IGNORED                              = -1;
    299 
    300    /* WebGL-specific enums */
    301    const GLenum MAX_CLIENT_WAIT_TIMEOUT_WEBGL                 = 0x9247;
    302 
    303    /* Buffer objects */
    304    // WebGL1:
    305    undefined bufferData(GLenum target, GLsizeiptr size, GLenum usage);
    306    undefined bufferData(GLenum target, [AllowShared] ArrayBuffer? srcData, GLenum usage);
    307    undefined bufferData(GLenum target, [AllowShared] ArrayBufferView srcData, GLenum usage);
    308    undefined bufferSubData(GLenum target, GLintptr offset, AllowSharedBufferSource srcData);
    309    // WebGL2:
    310    undefined bufferData(GLenum target, [AllowShared] ArrayBufferView srcData, GLenum usage,
    311                         GLuint srcOffset, optional GLuint length = 0);
    312    undefined bufferSubData(GLenum target, GLintptr dstByteOffset, [AllowShared] ArrayBufferView srcData,
    313                            GLuint srcOffset, optional GLuint length = 0);
    314 
    315    undefined copyBufferSubData(GLenum readTarget, GLenum writeTarget, GLintptr readOffset,
    316                                GLintptr writeOffset, GLsizeiptr size);
    317    // MapBufferRange, in particular its read-only and write-only modes,
    318    // can not be exposed safely to JavaScript. GetBufferSubData
    319    // replaces it for the purpose of fetching data back from the GPU.
    320    undefined getBufferSubData(GLenum target, GLintptr srcByteOffset, [AllowShared] ArrayBufferView dstData,
    321                               optional GLuint dstOffset = 0, optional GLuint length = 0);
    322 
    323    /* Framebuffer objects */
    324    undefined blitFramebuffer(GLint srcX0, GLint srcY0, GLint srcX1, GLint srcY1, GLint dstX0, GLint dstY0,
    325                              GLint dstX1, GLint dstY1, GLbitfield mask, GLenum filter);
    326    undefined framebufferTextureLayer(GLenum target, GLenum attachment, WebGLTexture? texture, GLint level,
    327                                      GLint layer);
    328 
    329    [Throws]
    330    undefined invalidateFramebuffer(GLenum target, sequence<GLenum> attachments);
    331 
    332    [Throws]
    333    undefined invalidateSubFramebuffer(GLenum target, sequence<GLenum> attachments,
    334                                       GLint x, GLint y, GLsizei width, GLsizei height);
    335 
    336    undefined readBuffer(GLenum src);
    337 
    338    /* Renderbuffer objects */
    339    [Throws]
    340    any getInternalformatParameter(GLenum target, GLenum internalformat, GLenum pname);
    341    undefined renderbufferStorageMultisample(GLenum target, GLsizei samples, GLenum internalformat,
    342                                             GLsizei width, GLsizei height);
    343 
    344    /* Texture objects */
    345    undefined texStorage2D(GLenum target, GLsizei levels, GLenum internalformat, GLsizei width,
    346                           GLsizei height);
    347    undefined texStorage3D(GLenum target, GLsizei levels, GLenum internalformat, GLsizei width,
    348                           GLsizei height, GLsizei depth);
    349 
    350    // WebGL1 legacy entrypoints:
    351    [Throws] // Another overhead throws.
    352    undefined texImage2D(GLenum target, GLint level, GLint internalformat,
    353                         GLsizei width, GLsizei height, GLint border, GLenum format,
    354                         GLenum type, [AllowShared] ArrayBufferView? pixels);
    355    [Throws]
    356    undefined texImage2D(GLenum target, GLint level, GLint internalformat,
    357                         GLenum format, GLenum type, HTMLCanvasElement source); // May throw DOMException
    358    [Throws]
    359    undefined texImage2D(GLenum target, GLint level, GLint internalformat,
    360                         GLenum format, GLenum type, HTMLImageElement source); // May throw DOMException
    361    [Throws]
    362    undefined texImage2D(GLenum target, GLint level, GLint internalformat,
    363                         GLenum format, GLenum type, HTMLVideoElement source); // May throw DOMException
    364    [Throws] // Another overhead throws.
    365    undefined texImage2D(GLenum target, GLint level, GLint internalformat,
    366                         GLenum format, GLenum type, ImageBitmap source);
    367    [Throws] // Another overhead throws.
    368    undefined texImage2D(GLenum target, GLint level, GLint internalformat,
    369                         GLenum format, GLenum type, ImageData source);
    370    [Throws] // Another overhead throws.
    371    undefined texImage2D(GLenum target, GLint level, GLint internalformat,
    372                         GLenum format, GLenum type, OffscreenCanvas source);
    373    [Throws] // Another overhead throws.
    374    undefined texImage2D(GLenum target, GLint level, GLint internalformat,
    375                         GLenum format, GLenum type, VideoFrame source);
    376 
    377    [Throws] // Another overhead throws.
    378    undefined texSubImage2D(GLenum target, GLint level, GLint xoffset, GLint yoffset,
    379                            GLsizei width, GLsizei height,
    380                            GLenum format, GLenum type, [AllowShared] ArrayBufferView? pixels);
    381    [Throws]
    382    undefined texSubImage2D(GLenum target, GLint level, GLint xoffset, GLint yoffset,
    383                            GLenum format, GLenum type, HTMLCanvasElement source); // May throw DOMException
    384    [Throws]
    385    undefined texSubImage2D(GLenum target, GLint level, GLint xoffset, GLint yoffset,
    386                            GLenum format, GLenum type, HTMLImageElement source); // May throw DOMException
    387    [Throws]
    388    undefined texSubImage2D(GLenum target, GLint level, GLint xoffset, GLint yoffset,
    389                            GLenum format, GLenum type, HTMLVideoElement source); // May throw DOMException
    390    [Throws] // Another overhead throws.
    391    undefined texSubImage2D(GLenum target, GLint level, GLint xoffset, GLint yoffset,
    392                            GLenum format, GLenum type, ImageBitmap source);
    393    [Throws] // Another overhead throws.
    394    undefined texSubImage2D(GLenum target, GLint level, GLint xoffset, GLint yoffset,
    395                            GLenum format, GLenum type, ImageData source);
    396    [Throws] // Another overhead throws.
    397    undefined texSubImage2D(GLenum target, GLint level, GLint xoffset, GLint yoffset,
    398                            GLenum format, GLenum type, OffscreenCanvas source);
    399    [Throws] // Another overhead throws.
    400    undefined texSubImage2D(GLenum target, GLint level, GLint xoffset, GLint yoffset,
    401                            GLenum format, GLenum type, VideoFrame source);
    402 
    403    // WebGL2 entrypoints:
    404    [Throws] // Another overhead throws.
    405    undefined texImage2D(GLenum target, GLint level, GLint internalformat, GLsizei width, GLsizei height,
    406                         GLint border, GLenum format, GLenum type, GLintptr pboOffset);
    407    [Throws]
    408    undefined texImage2D(GLenum target, GLint level, GLint internalformat, GLsizei width, GLsizei height,
    409                         GLint border, GLenum format, GLenum type,
    410                         HTMLCanvasElement source); // May throw DOMException
    411    [Throws]
    412    undefined texImage2D(GLenum target, GLint level, GLint internalformat, GLsizei width, GLsizei height,
    413                         GLint border, GLenum format, GLenum type,
    414                         HTMLImageElement source); // May throw DOMException
    415    [Throws]
    416    undefined texImage2D(GLenum target, GLint level, GLint internalformat, GLsizei width, GLsizei height,
    417                         GLint border, GLenum format, GLenum type,
    418                         HTMLVideoElement source); // May throw DOMException
    419    [Throws] // Another overhead throws.
    420    undefined texImage2D(GLenum target, GLint level, GLint internalformat, GLsizei width, GLsizei height,
    421                         GLint border, GLenum format, GLenum type,
    422                         ImageBitmap source);
    423    [Throws] // Another overhead throws.
    424    undefined texImage2D(GLenum target, GLint level, GLint internalformat, GLsizei width, GLsizei height,
    425                         GLint border, GLenum format, GLenum type,
    426                         ImageData source);
    427    [Throws] // Another overhead throws.
    428    undefined texImage2D(GLenum target, GLint level, GLint internalformat, GLsizei width, GLsizei height,
    429                         GLint border, GLenum format, GLenum type,
    430                         OffscreenCanvas source);
    431    [Throws] // Another overhead throws.
    432    undefined texImage2D(GLenum target, GLint level, GLint internalformat, GLsizei width, GLsizei height,
    433                         GLint border, GLenum format, GLenum type,
    434                         VideoFrame source);
    435    [Throws] // Another overhead throws.
    436    undefined texImage2D(GLenum target, GLint level, GLint internalformat, GLsizei width, GLsizei height,
    437                         GLint border, GLenum format, GLenum type, [AllowShared] ArrayBufferView srcData,
    438                         GLuint srcOffset);
    439 
    440    [Throws] // Another overhead throws.
    441    undefined texImage3D(GLenum target, GLint level, GLint internalformat, GLsizei width, GLsizei height,
    442                         GLsizei depth, GLint border, GLenum format, GLenum type, GLintptr pboOffset);
    443    [Throws]
    444    undefined texImage3D(GLenum target, GLint level, GLint internalformat, GLsizei width, GLsizei height,
    445                         GLsizei depth, GLint border, GLenum format, GLenum type,
    446                         HTMLCanvasElement source); // May throw DOMException
    447    [Throws]
    448    undefined texImage3D(GLenum target, GLint level, GLint internalformat, GLsizei width, GLsizei height,
    449                         GLsizei depth, GLint border, GLenum format, GLenum type,
    450                         HTMLImageElement source); // May throw DOMException
    451    [Throws]
    452    undefined texImage3D(GLenum target, GLint level, GLint internalformat, GLsizei width, GLsizei height,
    453                         GLsizei depth, GLint border, GLenum format, GLenum type,
    454                         HTMLVideoElement source); // May throw DOMException
    455    [Throws] // Another overhead throws.
    456    undefined texImage3D(GLenum target, GLint level, GLint internalformat, GLsizei width, GLsizei height,
    457                         GLsizei depth, GLint border, GLenum format, GLenum type,
    458                         ImageBitmap source);
    459    [Throws] // Another overhead throws.
    460    undefined texImage3D(GLenum target, GLint level, GLint internalformat, GLsizei width, GLsizei height,
    461                         GLsizei depth, GLint border, GLenum format, GLenum type,
    462                         ImageData source);
    463    [Throws] // Another overhead throws.
    464    undefined texImage3D(GLenum target, GLint level, GLint internalformat, GLsizei width, GLsizei height,
    465                         GLsizei depth, GLint border, GLenum format, GLenum type,
    466                         OffscreenCanvas source);
    467    [Throws] // Another overhead throws.
    468    undefined texImage3D(GLenum target, GLint level, GLint internalformat, GLsizei width, GLsizei height,
    469                         GLsizei depth, GLint border, GLenum format, GLenum type,
    470                         VideoFrame source);
    471    [Throws] // Another overhead throws.
    472    undefined texImage3D(GLenum target, GLint level, GLint internalformat, GLsizei width, GLsizei height,
    473                         GLsizei depth, GLint border, GLenum format, GLenum type, [AllowShared] ArrayBufferView? srcData);
    474    [Throws] // Another overhead throws.
    475    undefined texImage3D(GLenum target, GLint level, GLint internalformat, GLsizei width, GLsizei height,
    476                         GLsizei depth, GLint border, GLenum format, GLenum type, [AllowShared] ArrayBufferView srcData,
    477                         GLuint srcOffset);
    478 
    479    [Throws] // Another overhead throws.
    480    undefined texSubImage2D(GLenum target, GLint level, GLint xoffset, GLint yoffset, GLsizei width,
    481                            GLsizei height, GLenum format, GLenum type, GLintptr pboOffset);
    482    [Throws]
    483    undefined texSubImage2D(GLenum target, GLint level, GLint xoffset, GLint yoffset, GLsizei width,
    484                            GLsizei height, GLenum format, GLenum type,
    485                            HTMLCanvasElement source); // May throw DOMException
    486    [Throws]
    487    undefined texSubImage2D(GLenum target, GLint level, GLint xoffset, GLint yoffset, GLsizei width,
    488                            GLsizei height, GLenum format, GLenum type,
    489                            HTMLImageElement source); // May throw DOMException
    490    [Throws]
    491    undefined texSubImage2D(GLenum target, GLint level, GLint xoffset, GLint yoffset, GLsizei width,
    492                            GLsizei height, GLenum format, GLenum type,
    493                            HTMLVideoElement source); // May throw DOMException
    494    [Throws] // Another overhead throws.
    495    undefined texSubImage2D(GLenum target, GLint level, GLint xoffset, GLint yoffset, GLsizei width,
    496                            GLsizei height, GLenum format, GLenum type,
    497                            ImageBitmap source);
    498    [Throws] // Another overhead throws.
    499    undefined texSubImage2D(GLenum target, GLint level, GLint xoffset, GLint yoffset, GLsizei width,
    500                            GLsizei height, GLenum format, GLenum type,
    501                            ImageData source);
    502    [Throws] // Another overhead throws.
    503    undefined texSubImage2D(GLenum target, GLint level, GLint xoffset, GLint yoffset, GLsizei width,
    504                            GLsizei height, GLenum format, GLenum type,
    505                            OffscreenCanvas source);
    506    [Throws] // Another overhead throws.
    507    undefined texSubImage2D(GLenum target, GLint level, GLint xoffset, GLint yoffset, GLsizei width,
    508                            GLsizei height, GLenum format, GLenum type,
    509                            VideoFrame source);
    510    [Throws] // Another overhead throws.
    511    undefined texSubImage2D(GLenum target, GLint level, GLint xoffset, GLint yoffset, GLsizei width,
    512                            GLsizei height, GLenum format, GLenum type, [AllowShared] ArrayBufferView srcData,
    513                            GLuint srcOffset);
    514 
    515    [Throws] // Another overhead throws.
    516    undefined texSubImage3D(GLenum target, GLint level, GLint xoffset, GLint yoffset, GLint zoffset,
    517                            GLsizei width, GLsizei height, GLsizei depth, GLenum format, GLenum type,
    518                            GLintptr pboOffset);
    519    [Throws]
    520    undefined texSubImage3D(GLenum target, GLint level, GLint xoffset, GLint yoffset, GLint zoffset,
    521                            GLsizei width, GLsizei height, GLsizei depth, GLenum format, GLenum type,
    522                            HTMLCanvasElement source); // May throw DOMException
    523    [Throws]
    524    undefined texSubImage3D(GLenum target, GLint level, GLint xoffset, GLint yoffset, GLint zoffset,
    525                            GLsizei width, GLsizei height, GLsizei depth, GLenum format, GLenum type,
    526                            HTMLImageElement source); // May throw DOMException
    527    [Throws]
    528    undefined texSubImage3D(GLenum target, GLint level, GLint xoffset, GLint yoffset, GLint zoffset,
    529                            GLsizei width, GLsizei height, GLsizei depth, GLenum format, GLenum type,
    530                            HTMLVideoElement source); // May throw DOMException
    531    [Throws] // Another overhead throws.
    532    undefined texSubImage3D(GLenum target, GLint level, GLint xoffset, GLint yoffset, GLint zoffset,
    533                            GLsizei width, GLsizei height, GLsizei depth, GLenum format, GLenum type,
    534                            ImageBitmap source);
    535    [Throws] // Another overhead throws.
    536    undefined texSubImage3D(GLenum target, GLint level, GLint xoffset, GLint yoffset, GLint zoffset,
    537                            GLsizei width, GLsizei height, GLsizei depth, GLenum format, GLenum type,
    538                            ImageData source);
    539    [Throws] // Another overhead throws.
    540    undefined texSubImage3D(GLenum target, GLint level, GLint xoffset, GLint yoffset, GLint zoffset,
    541                            GLsizei width, GLsizei height, GLsizei depth, GLenum format, GLenum type,
    542                            OffscreenCanvas source);
    543    [Throws] // Another overhead throws.
    544    undefined texSubImage3D(GLenum target, GLint level, GLint xoffset, GLint yoffset, GLint zoffset,
    545                            GLsizei width, GLsizei height, GLsizei depth, GLenum format, GLenum type,
    546                            VideoFrame source);
    547    [Throws] // Another overhead throws.
    548    undefined texSubImage3D(GLenum target, GLint level, GLint xoffset, GLint yoffset, GLint zoffset,
    549                            GLsizei width, GLsizei height, GLsizei depth, GLenum format, GLenum type,
    550                            [AllowShared] ArrayBufferView? srcData, optional GLuint srcOffset = 0);
    551 
    552    undefined copyTexSubImage3D(GLenum target, GLint level, GLint xoffset, GLint yoffset, GLint zoffset,
    553                                GLint x, GLint y, GLsizei width, GLsizei height);
    554 
    555    undefined compressedTexImage2D(GLenum target, GLint level, GLenum internalformat, GLsizei width,
    556                                   GLsizei height, GLint border, GLsizei imageSize,  GLintptr offset);
    557    undefined compressedTexImage2D(GLenum target, GLint level, GLenum internalformat, GLsizei width,
    558                                   GLsizei height, GLint border, [AllowShared] ArrayBufferView srcData,
    559                                   optional GLuint srcOffset = 0, optional GLuint srcLengthOverride = 0);
    560 
    561    undefined compressedTexImage3D(GLenum target, GLint level, GLenum internalformat, GLsizei width,
    562                                   GLsizei height, GLsizei depth, GLint border, GLsizei imageSize, GLintptr offset);
    563    undefined compressedTexImage3D(GLenum target, GLint level, GLenum internalformat, GLsizei width,
    564                                   GLsizei height, GLsizei depth, GLint border, [AllowShared] ArrayBufferView srcData,
    565                                   optional GLuint srcOffset = 0, optional GLuint srcLengthOverride = 0);
    566 
    567    undefined compressedTexSubImage2D(GLenum target, GLint level, GLint xoffset, GLint yoffset,
    568                                      GLsizei width, GLsizei height, GLenum format, GLsizei imageSize, GLintptr offset);
    569    undefined compressedTexSubImage2D(GLenum target, GLint level, GLint xoffset, GLint yoffset,
    570                                      GLsizei width, GLsizei height, GLenum format,
    571                                      [AllowShared] ArrayBufferView srcData,
    572                                      optional GLuint srcOffset = 0,
    573                                      optional GLuint srcLengthOverride = 0);
    574 
    575    undefined compressedTexSubImage3D(GLenum target, GLint level, GLint xoffset, GLint yoffset,
    576                                      GLint zoffset, GLsizei width, GLsizei height, GLsizei depth,
    577                                      GLenum format, GLsizei imageSize, GLintptr offset);
    578    undefined compressedTexSubImage3D(GLenum target, GLint level, GLint xoffset, GLint yoffset,
    579                                      GLint zoffset, GLsizei width, GLsizei height, GLsizei depth,
    580                                      GLenum format, [AllowShared] ArrayBufferView srcData,
    581                                      optional GLuint srcOffset = 0,
    582                                      optional GLuint srcLengthOverride = 0);
    583 
    584    /* Programs and shaders */
    585    [WebGLHandlesContextLoss] GLint getFragDataLocation(WebGLProgram program, DOMString name);
    586 
    587    /* Uniforms */
    588    undefined uniform1ui(WebGLUniformLocation? location, GLuint v0);
    589    undefined uniform2ui(WebGLUniformLocation? location, GLuint v0, GLuint v1);
    590    undefined uniform3ui(WebGLUniformLocation? location, GLuint v0, GLuint v1, GLuint v2);
    591    undefined uniform4ui(WebGLUniformLocation? location, GLuint v0, GLuint v1, GLuint v2, GLuint v3);
    592 
    593    undefined uniform1fv(WebGLUniformLocation? location, Float32List data, optional GLuint srcOffset = 0,
    594                         optional GLuint srcLength = 0);
    595    undefined uniform2fv(WebGLUniformLocation? location, Float32List data, optional GLuint srcOffset = 0,
    596                         optional GLuint srcLength = 0);
    597    undefined uniform3fv(WebGLUniformLocation? location, Float32List data, optional GLuint srcOffset = 0,
    598                         optional GLuint srcLength = 0);
    599    undefined uniform4fv(WebGLUniformLocation? location, Float32List data, optional GLuint srcOffset = 0,
    600                         optional GLuint srcLength = 0);
    601 
    602    undefined uniform1iv(WebGLUniformLocation? location, Int32List data, optional GLuint srcOffset = 0,
    603                         optional GLuint srcLength = 0);
    604    undefined uniform2iv(WebGLUniformLocation? location, Int32List data, optional GLuint srcOffset = 0,
    605                         optional GLuint srcLength = 0);
    606    undefined uniform3iv(WebGLUniformLocation? location, Int32List data, optional GLuint srcOffset = 0,
    607                         optional GLuint srcLength = 0);
    608    undefined uniform4iv(WebGLUniformLocation? location, Int32List data, optional GLuint srcOffset = 0,
    609                         optional GLuint srcLength = 0);
    610 
    611    undefined uniform1uiv(WebGLUniformLocation? location, Uint32List data, optional GLuint srcOffset = 0,
    612                          optional GLuint srcLength = 0);
    613    undefined uniform2uiv(WebGLUniformLocation? location, Uint32List data, optional GLuint srcOffset = 0,
    614                          optional GLuint srcLength = 0);
    615    undefined uniform3uiv(WebGLUniformLocation? location, Uint32List data, optional GLuint srcOffset = 0,
    616                          optional GLuint srcLength = 0);
    617    undefined uniform4uiv(WebGLUniformLocation? location, Uint32List data, optional GLuint srcOffset = 0,
    618                          optional GLuint srcLength = 0);
    619 
    620    undefined uniformMatrix2fv(WebGLUniformLocation? location, GLboolean transpose, Float32List data,
    621                               optional GLuint srcOffset = 0, optional GLuint srcLength = 0);
    622    undefined uniformMatrix3x2fv(WebGLUniformLocation? location, GLboolean transpose, Float32List data,
    623                                 optional GLuint srcOffset = 0, optional GLuint srcLength = 0);
    624    undefined uniformMatrix4x2fv(WebGLUniformLocation? location, GLboolean transpose, Float32List data,
    625                                 optional GLuint srcOffset = 0, optional GLuint srcLength = 0);
    626 
    627    undefined uniformMatrix2x3fv(WebGLUniformLocation? location, GLboolean transpose, Float32List data,
    628                                 optional GLuint srcOffset = 0, optional GLuint srcLength = 0);
    629    undefined uniformMatrix3fv(WebGLUniformLocation? location, GLboolean transpose, Float32List data,
    630                               optional GLuint srcOffset = 0, optional GLuint srcLength = 0);
    631    undefined uniformMatrix4x3fv(WebGLUniformLocation? location, GLboolean transpose, Float32List data,
    632                                 optional GLuint srcOffset = 0, optional GLuint srcLength = 0);
    633 
    634    undefined uniformMatrix2x4fv(WebGLUniformLocation? location, GLboolean transpose, Float32List data,
    635                                 optional GLuint srcOffset = 0, optional GLuint srcLength = 0);
    636    undefined uniformMatrix3x4fv(WebGLUniformLocation? location, GLboolean transpose, Float32List data,
    637                                 optional GLuint srcOffset = 0, optional GLuint srcLength = 0);
    638    undefined uniformMatrix4fv(WebGLUniformLocation? location, GLboolean transpose, Float32List data,
    639                               optional GLuint srcOffset = 0, optional GLuint srcLength = 0);
    640 
    641    /* Vertex attribs */
    642    undefined vertexAttribI4i(GLuint index, GLint x, GLint y, GLint z, GLint w);
    643    undefined vertexAttribI4iv(GLuint index, Int32List values);
    644    undefined vertexAttribI4ui(GLuint index, GLuint x, GLuint y, GLuint z, GLuint w);
    645    undefined vertexAttribI4uiv(GLuint index, Uint32List values);
    646    undefined vertexAttribIPointer(GLuint index, GLint size, GLenum type, GLsizei stride, GLintptr offset);
    647 
    648    /* Writing to the drawing buffer */
    649    undefined vertexAttribDivisor(GLuint index, GLuint divisor);
    650    undefined drawArraysInstanced(GLenum mode, GLint first, GLsizei count, GLsizei instanceCount);
    651    undefined drawElementsInstanced(GLenum mode, GLsizei count, GLenum type, GLintptr offset, GLsizei instanceCount);
    652    undefined drawRangeElements(GLenum mode, GLuint start, GLuint end, GLsizei count, GLenum type, GLintptr offset);
    653 
    654    /* Reading back pixels */
    655    // WebGL1:
    656    [Throws, NeedsCallerType] // Throws on readback in a write-only context.
    657    undefined readPixels(GLint x, GLint y, GLsizei width, GLsizei height, GLenum format, GLenum type,
    658                         [AllowShared] ArrayBufferView? dstData);
    659    // WebGL2:
    660    [Throws, NeedsCallerType] // Throws on readback in a write-only context.
    661    undefined readPixels(GLint x, GLint y, GLsizei width, GLsizei height, GLenum format, GLenum type,
    662                         GLintptr offset);
    663    [Throws, NeedsCallerType] // Throws on readback in a write-only context.
    664    undefined readPixels(GLint x, GLint y, GLsizei width, GLsizei height, GLenum format, GLenum type,
    665                         [AllowShared] ArrayBufferView dstData, GLuint dstOffset);
    666 
    667    /* Multiple Render Targets */
    668    undefined drawBuffers(sequence<GLenum> buffers);
    669 
    670    undefined clearBufferfv(GLenum buffer, GLint drawbuffer, Float32List values,
    671                            optional GLuint srcOffset = 0);
    672    undefined clearBufferiv(GLenum buffer, GLint drawbuffer, Int32List values,
    673                            optional GLuint srcOffset = 0);
    674    undefined clearBufferuiv(GLenum buffer, GLint drawbuffer, Uint32List values,
    675                             optional GLuint srcOffset = 0);
    676 
    677    undefined clearBufferfi(GLenum buffer, GLint drawbuffer, GLfloat depth, GLint stencil);
    678 
    679    /* Query Objects */
    680    WebGLQuery createQuery();
    681    undefined deleteQuery(WebGLQuery? query);
    682    [WebGLHandlesContextLoss] GLboolean isQuery(WebGLQuery? query);
    683    undefined beginQuery(GLenum target, WebGLQuery query);
    684    undefined endQuery(GLenum target);
    685    any getQuery(GLenum target, GLenum pname);
    686    any getQueryParameter(WebGLQuery query, GLenum pname);
    687 
    688    /* Sampler Objects */
    689    WebGLSampler createSampler();
    690    undefined deleteSampler(WebGLSampler? sampler);
    691    [WebGLHandlesContextLoss] GLboolean isSampler(WebGLSampler? sampler);
    692    undefined bindSampler(GLuint unit, WebGLSampler? sampler);
    693    undefined samplerParameteri(WebGLSampler sampler, GLenum pname, GLint param);
    694    undefined samplerParameterf(WebGLSampler sampler, GLenum pname, GLfloat param);
    695    any getSamplerParameter(WebGLSampler sampler, GLenum pname);
    696 
    697    /* Sync objects */
    698    WebGLSync? fenceSync(GLenum condition, GLbitfield flags);
    699    [WebGLHandlesContextLoss] GLboolean isSync(WebGLSync? sync);
    700    undefined deleteSync(WebGLSync? sync);
    701    GLenum clientWaitSync(WebGLSync sync, GLbitfield flags, GLuint64 timeout);
    702    undefined waitSync(WebGLSync sync, GLbitfield flags, GLint64 timeout);
    703    any getSyncParameter(WebGLSync sync, GLenum pname);
    704 
    705    /* Transform Feedback */
    706    WebGLTransformFeedback createTransformFeedback();
    707    undefined deleteTransformFeedback(WebGLTransformFeedback? tf);
    708    [WebGLHandlesContextLoss] GLboolean isTransformFeedback(WebGLTransformFeedback? tf);
    709    undefined bindTransformFeedback(GLenum target, WebGLTransformFeedback? tf);
    710    undefined beginTransformFeedback(GLenum primitiveMode);
    711    undefined endTransformFeedback();
    712    undefined transformFeedbackVaryings(WebGLProgram program, sequence<DOMString> varyings, GLenum bufferMode);
    713    [NewObject]
    714    WebGLActiveInfo? getTransformFeedbackVarying(WebGLProgram program, GLuint index);
    715    undefined pauseTransformFeedback();
    716    undefined resumeTransformFeedback();
    717 
    718    /* Uniform Buffer Objects and Transform Feedback Buffers */
    719    undefined bindBufferBase(GLenum target, GLuint index, WebGLBuffer? buffer);
    720    undefined bindBufferRange(GLenum target, GLuint index, WebGLBuffer? buffer, GLintptr offset, GLsizeiptr size);
    721    [Throws] // GetOrCreateDOMReflector can fail.
    722    any getIndexedParameter(GLenum target, GLuint index);
    723    sequence<GLuint>? getUniformIndices(WebGLProgram program, sequence<DOMString> uniformNames);
    724    any getActiveUniforms(WebGLProgram program, sequence<GLuint> uniformIndices, GLenum pname);
    725    GLuint getUniformBlockIndex(WebGLProgram program, DOMString uniformBlockName);
    726    [Throws] // Creating a Uint32Array can fail.
    727    any getActiveUniformBlockParameter(WebGLProgram program, GLuint uniformBlockIndex, GLenum pname);
    728    DOMString? getActiveUniformBlockName(WebGLProgram program, GLuint uniformBlockIndex);
    729    undefined uniformBlockBinding(WebGLProgram program, GLuint uniformBlockIndex, GLuint uniformBlockBinding);
    730 
    731    /* Vertex Array Objects */
    732    WebGLVertexArrayObject createVertexArray();
    733    undefined deleteVertexArray(WebGLVertexArrayObject? vertexArray);
    734    [WebGLHandlesContextLoss] GLboolean isVertexArray(WebGLVertexArrayObject? vertexArray);
    735    undefined bindVertexArray(WebGLVertexArrayObject? array);
    736 };
    737 
    738 WebGL2RenderingContext includes WebGLRenderingContextBase;
    739 WebGL2RenderingContext includes WebGL2RenderingContextBase;
    740 
    741 [LegacyNoInterfaceObject,
    742 Exposed=(Window,Worker)]
    743 interface EXT_color_buffer_float {
    744 };
    745 
    746 [LegacyNoInterfaceObject,
    747 Exposed=(Window,Worker)]
    748 interface OVR_multiview2 {
    749    const GLenum FRAMEBUFFER_ATTACHMENT_TEXTURE_NUM_VIEWS_OVR = 0x9630;
    750    const GLenum FRAMEBUFFER_ATTACHMENT_TEXTURE_BASE_VIEW_INDEX_OVR = 0x9632;
    751    const GLenum MAX_VIEWS_OVR = 0x9631;
    752    const GLenum FRAMEBUFFER_INCOMPLETE_VIEW_TARGETS_OVR = 0x9633;
    753 
    754    undefined framebufferTextureMultiviewOVR(GLenum target, GLenum attachment, WebGLTexture? texture, GLint level, GLint baseViewIndex, GLsizei numViews);
    755 };