tor-browser

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

webgl2.idl (38449B)


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