1 // AUTOGENERATED FILE -- DO NOT EDIT -- SEE Makefile
3 // WebGL IDL definitions scraped from the Khronos specification:
4 // https://www.khronos.org/registry/webgl/specs/latest/
6 // This IDL depends on the typed array specification defined at:
7 // https://www.khronos.org/registry/typedarray/specs/latest/typedarrays.idl
9 typedef unsigned long GLenum;
10 typedef boolean GLboolean;
11 typedef unsigned long GLbitfield;
12 typedef byte GLbyte; /* 'byte' should be a signed 8 bit type. */
13 typedef short GLshort;
16 typedef long long GLintptr;
17 typedef long long GLsizeiptr;
18 // Ideally the typedef below would use 'unsigned byte', but that doesn't currently exist in Web IDL.
19 typedef octet GLubyte; /* 'octet' should be an unsigned 8 bit type. */
20 typedef unsigned short GLushort;
21 typedef unsigned long GLuint;
22 typedef unrestricted float GLfloat;
23 typedef unrestricted float GLclampf;
26 dictionary WebGLContextAttributes {
27 GLboolean alpha = true;
28 GLboolean depth = true;
29 GLboolean stencil = false;
30 GLboolean antialias = true;
31 GLboolean premultipliedAlpha = true;
32 GLboolean preserveDrawingBuffer = false;
33 GLboolean preferLowPowerToHighPerformance = false;
34 GLboolean failIfMajorPerformanceCaveat = false;
37 interface WebGLObject {
40 interface WebGLBuffer : WebGLObject {
43 interface WebGLFramebuffer : WebGLObject {
46 interface WebGLProgram : WebGLObject {
49 interface WebGLRenderbuffer : WebGLObject {
52 interface WebGLShader : WebGLObject {
55 interface WebGLTexture : WebGLObject {
58 interface WebGLUniformLocation {
61 interface WebGLActiveInfo {
62 readonly attribute GLint size;
63 readonly attribute GLenum type;
64 readonly attribute DOMString name;
67 interface WebGLShaderPrecisionFormat {
68 readonly attribute GLint rangeMin;
69 readonly attribute GLint rangeMax;
70 readonly attribute GLint precision;
74 interface WebGLRenderingContextBase
78 const GLenum DEPTH_BUFFER_BIT = 0x00000100;
79 const GLenum STENCIL_BUFFER_BIT = 0x00000400;
80 const GLenum COLOR_BUFFER_BIT = 0x00004000;
83 const GLenum POINTS = 0x0000;
84 const GLenum LINES = 0x0001;
85 const GLenum LINE_LOOP = 0x0002;
86 const GLenum LINE_STRIP = 0x0003;
87 const GLenum TRIANGLES = 0x0004;
88 const GLenum TRIANGLE_STRIP = 0x0005;
89 const GLenum TRIANGLE_FAN = 0x0006;
91 /* AlphaFunction (not supported in ES20) */
101 /* BlendingFactorDest */
102 const GLenum ZERO = 0;
103 const GLenum ONE = 1;
104 const GLenum SRC_COLOR = 0x0300;
105 const GLenum ONE_MINUS_SRC_COLOR = 0x0301;
106 const GLenum SRC_ALPHA = 0x0302;
107 const GLenum ONE_MINUS_SRC_ALPHA = 0x0303;
108 const GLenum DST_ALPHA = 0x0304;
109 const GLenum ONE_MINUS_DST_ALPHA = 0x0305;
111 /* BlendingFactorSrc */
114 const GLenum DST_COLOR = 0x0306;
115 const GLenum ONE_MINUS_DST_COLOR = 0x0307;
116 const GLenum SRC_ALPHA_SATURATE = 0x0308;
118 /* ONE_MINUS_SRC_ALPHA */
120 /* ONE_MINUS_DST_ALPHA */
122 /* BlendEquationSeparate */
123 const GLenum FUNC_ADD = 0x8006;
124 const GLenum BLEND_EQUATION = 0x8009;
125 const GLenum BLEND_EQUATION_RGB = 0x8009; /* same as BLEND_EQUATION */
126 const GLenum BLEND_EQUATION_ALPHA = 0x883D;
129 const GLenum FUNC_SUBTRACT = 0x800A;
130 const GLenum FUNC_REVERSE_SUBTRACT = 0x800B;
132 /* Separate Blend Functions */
133 const GLenum BLEND_DST_RGB = 0x80C8;
134 const GLenum BLEND_SRC_RGB = 0x80C9;
135 const GLenum BLEND_DST_ALPHA = 0x80CA;
136 const GLenum BLEND_SRC_ALPHA = 0x80CB;
137 const GLenum CONSTANT_COLOR = 0x8001;
138 const GLenum ONE_MINUS_CONSTANT_COLOR = 0x8002;
139 const GLenum CONSTANT_ALPHA = 0x8003;
140 const GLenum ONE_MINUS_CONSTANT_ALPHA = 0x8004;
141 const GLenum BLEND_COLOR = 0x8005;
144 const GLenum ARRAY_BUFFER = 0x8892;
145 const GLenum ELEMENT_ARRAY_BUFFER = 0x8893;
146 const GLenum ARRAY_BUFFER_BINDING = 0x8894;
147 const GLenum ELEMENT_ARRAY_BUFFER_BINDING = 0x8895;
149 const GLenum STREAM_DRAW = 0x88E0;
150 const GLenum STATIC_DRAW = 0x88E4;
151 const GLenum DYNAMIC_DRAW = 0x88E8;
153 const GLenum BUFFER_SIZE = 0x8764;
154 const GLenum BUFFER_USAGE = 0x8765;
156 const GLenum CURRENT_VERTEX_ATTRIB = 0x8626;
159 const GLenum FRONT = 0x0404;
160 const GLenum BACK = 0x0405;
161 const GLenum FRONT_AND_BACK = 0x0408;
175 const GLenum CULL_FACE = 0x0B44;
176 const GLenum BLEND = 0x0BE2;
177 const GLenum DITHER = 0x0BD0;
178 const GLenum STENCIL_TEST = 0x0B90;
179 const GLenum DEPTH_TEST = 0x0B71;
180 const GLenum SCISSOR_TEST = 0x0C11;
181 const GLenum POLYGON_OFFSET_FILL = 0x8037;
182 const GLenum SAMPLE_ALPHA_TO_COVERAGE = 0x809E;
183 const GLenum SAMPLE_COVERAGE = 0x80A0;
186 const GLenum NO_ERROR = 0;
187 const GLenum INVALID_ENUM = 0x0500;
188 const GLenum INVALID_VALUE = 0x0501;
189 const GLenum INVALID_OPERATION = 0x0502;
190 const GLenum OUT_OF_MEMORY = 0x0505;
192 /* FrontFaceDirection */
193 const GLenum CW = 0x0900;
194 const GLenum CCW = 0x0901;
197 const GLenum LINE_WIDTH = 0x0B21;
198 const GLenum ALIASED_POINT_SIZE_RANGE = 0x846D;
199 const GLenum ALIASED_LINE_WIDTH_RANGE = 0x846E;
200 const GLenum CULL_FACE_MODE = 0x0B45;
201 const GLenum FRONT_FACE = 0x0B46;
202 const GLenum DEPTH_RANGE = 0x0B70;
203 const GLenum DEPTH_WRITEMASK = 0x0B72;
204 const GLenum DEPTH_CLEAR_VALUE = 0x0B73;
205 const GLenum DEPTH_FUNC = 0x0B74;
206 const GLenum STENCIL_CLEAR_VALUE = 0x0B91;
207 const GLenum STENCIL_FUNC = 0x0B92;
208 const GLenum STENCIL_FAIL = 0x0B94;
209 const GLenum STENCIL_PASS_DEPTH_FAIL = 0x0B95;
210 const GLenum STENCIL_PASS_DEPTH_PASS = 0x0B96;
211 const GLenum STENCIL_REF = 0x0B97;
212 const GLenum STENCIL_VALUE_MASK = 0x0B93;
213 const GLenum STENCIL_WRITEMASK = 0x0B98;
214 const GLenum STENCIL_BACK_FUNC = 0x8800;
215 const GLenum STENCIL_BACK_FAIL = 0x8801;
216 const GLenum STENCIL_BACK_PASS_DEPTH_FAIL = 0x8802;
217 const GLenum STENCIL_BACK_PASS_DEPTH_PASS = 0x8803;
218 const GLenum STENCIL_BACK_REF = 0x8CA3;
219 const GLenum STENCIL_BACK_VALUE_MASK = 0x8CA4;
220 const GLenum STENCIL_BACK_WRITEMASK = 0x8CA5;
221 const GLenum VIEWPORT = 0x0BA2;
222 const GLenum SCISSOR_BOX = 0x0C10;
224 const GLenum COLOR_CLEAR_VALUE = 0x0C22;
225 const GLenum COLOR_WRITEMASK = 0x0C23;
226 const GLenum UNPACK_ALIGNMENT = 0x0CF5;
227 const GLenum PACK_ALIGNMENT = 0x0D05;
228 const GLenum MAX_TEXTURE_SIZE = 0x0D33;
229 const GLenum MAX_VIEWPORT_DIMS = 0x0D3A;
230 const GLenum SUBPIXEL_BITS = 0x0D50;
231 const GLenum RED_BITS = 0x0D52;
232 const GLenum GREEN_BITS = 0x0D53;
233 const GLenum BLUE_BITS = 0x0D54;
234 const GLenum ALPHA_BITS = 0x0D55;
235 const GLenum DEPTH_BITS = 0x0D56;
236 const GLenum STENCIL_BITS = 0x0D57;
237 const GLenum POLYGON_OFFSET_UNITS = 0x2A00;
238 /* POLYGON_OFFSET_FILL */
239 const GLenum POLYGON_OFFSET_FACTOR = 0x8038;
240 const GLenum TEXTURE_BINDING_2D = 0x8069;
241 const GLenum SAMPLE_BUFFERS = 0x80A8;
242 const GLenum SAMPLES = 0x80A9;
243 const GLenum SAMPLE_COVERAGE_VALUE = 0x80AA;
244 const GLenum SAMPLE_COVERAGE_INVERT = 0x80AB;
246 /* GetTextureParameter */
247 /* TEXTURE_MAG_FILTER */
248 /* TEXTURE_MIN_FILTER */
252 const GLenum COMPRESSED_TEXTURE_FORMATS = 0x86A3;
255 const GLenum DONT_CARE = 0x1100;
256 const GLenum FASTEST = 0x1101;
257 const GLenum NICEST = 0x1102;
260 const GLenum GENERATE_MIPMAP_HINT = 0x8192;
263 const GLenum BYTE = 0x1400;
264 const GLenum UNSIGNED_BYTE = 0x1401;
265 const GLenum SHORT = 0x1402;
266 const GLenum UNSIGNED_SHORT = 0x1403;
267 const GLenum INT = 0x1404;
268 const GLenum UNSIGNED_INT = 0x1405;
269 const GLenum FLOAT = 0x1406;
272 const GLenum DEPTH_COMPONENT = 0x1902;
273 const GLenum ALPHA = 0x1906;
274 const GLenum RGB = 0x1907;
275 const GLenum RGBA = 0x1908;
276 const GLenum LUMINANCE = 0x1909;
277 const GLenum LUMINANCE_ALPHA = 0x190A;
281 const GLenum UNSIGNED_SHORT_4_4_4_4 = 0x8033;
282 const GLenum UNSIGNED_SHORT_5_5_5_1 = 0x8034;
283 const GLenum UNSIGNED_SHORT_5_6_5 = 0x8363;
286 const GLenum FRAGMENT_SHADER = 0x8B30;
287 const GLenum VERTEX_SHADER = 0x8B31;
288 const GLenum MAX_VERTEX_ATTRIBS = 0x8869;
289 const GLenum MAX_VERTEX_UNIFORM_VECTORS = 0x8DFB;
290 const GLenum MAX_VARYING_VECTORS = 0x8DFC;
291 const GLenum MAX_COMBINED_TEXTURE_IMAGE_UNITS = 0x8B4D;
292 const GLenum MAX_VERTEX_TEXTURE_IMAGE_UNITS = 0x8B4C;
293 const GLenum MAX_TEXTURE_IMAGE_UNITS = 0x8872;
294 const GLenum MAX_FRAGMENT_UNIFORM_VECTORS = 0x8DFD;
295 const GLenum SHADER_TYPE = 0x8B4F;
296 const GLenum DELETE_STATUS = 0x8B80;
297 const GLenum LINK_STATUS = 0x8B82;
298 const GLenum VALIDATE_STATUS = 0x8B83;
299 const GLenum ATTACHED_SHADERS = 0x8B85;
300 const GLenum ACTIVE_UNIFORMS = 0x8B86;
301 const GLenum ACTIVE_ATTRIBUTES = 0x8B89;
302 const GLenum SHADING_LANGUAGE_VERSION = 0x8B8C;
303 const GLenum CURRENT_PROGRAM = 0x8B8D;
305 /* StencilFunction */
306 const GLenum NEVER = 0x0200;
307 const GLenum LESS = 0x0201;
308 const GLenum EQUAL = 0x0202;
309 const GLenum LEQUAL = 0x0203;
310 const GLenum GREATER = 0x0204;
311 const GLenum NOTEQUAL = 0x0205;
312 const GLenum GEQUAL = 0x0206;
313 const GLenum ALWAYS = 0x0207;
317 const GLenum KEEP = 0x1E00;
318 const GLenum REPLACE = 0x1E01;
319 const GLenum INCR = 0x1E02;
320 const GLenum DECR = 0x1E03;
321 const GLenum INVERT = 0x150A;
322 const GLenum INCR_WRAP = 0x8507;
323 const GLenum DECR_WRAP = 0x8508;
326 const GLenum VENDOR = 0x1F00;
327 const GLenum RENDERER = 0x1F01;
328 const GLenum VERSION = 0x1F02;
330 /* TextureMagFilter */
331 const GLenum NEAREST = 0x2600;
332 const GLenum LINEAR = 0x2601;
334 /* TextureMinFilter */
337 const GLenum NEAREST_MIPMAP_NEAREST = 0x2700;
338 const GLenum LINEAR_MIPMAP_NEAREST = 0x2701;
339 const GLenum NEAREST_MIPMAP_LINEAR = 0x2702;
340 const GLenum LINEAR_MIPMAP_LINEAR = 0x2703;
342 /* TextureParameterName */
343 const GLenum TEXTURE_MAG_FILTER = 0x2800;
344 const GLenum TEXTURE_MIN_FILTER = 0x2801;
345 const GLenum TEXTURE_WRAP_S = 0x2802;
346 const GLenum TEXTURE_WRAP_T = 0x2803;
349 const GLenum TEXTURE_2D = 0x0DE1;
350 const GLenum TEXTURE = 0x1702;
352 const GLenum TEXTURE_CUBE_MAP = 0x8513;
353 const GLenum TEXTURE_BINDING_CUBE_MAP = 0x8514;
354 const GLenum TEXTURE_CUBE_MAP_POSITIVE_X = 0x8515;
355 const GLenum TEXTURE_CUBE_MAP_NEGATIVE_X = 0x8516;
356 const GLenum TEXTURE_CUBE_MAP_POSITIVE_Y = 0x8517;
357 const GLenum TEXTURE_CUBE_MAP_NEGATIVE_Y = 0x8518;
358 const GLenum TEXTURE_CUBE_MAP_POSITIVE_Z = 0x8519;
359 const GLenum TEXTURE_CUBE_MAP_NEGATIVE_Z = 0x851A;
360 const GLenum MAX_CUBE_MAP_TEXTURE_SIZE = 0x851C;
363 const GLenum TEXTURE0 = 0x84C0;
364 const GLenum TEXTURE1 = 0x84C1;
365 const GLenum TEXTURE2 = 0x84C2;
366 const GLenum TEXTURE3 = 0x84C3;
367 const GLenum TEXTURE4 = 0x84C4;
368 const GLenum TEXTURE5 = 0x84C5;
369 const GLenum TEXTURE6 = 0x84C6;
370 const GLenum TEXTURE7 = 0x84C7;
371 const GLenum TEXTURE8 = 0x84C8;
372 const GLenum TEXTURE9 = 0x84C9;
373 const GLenum TEXTURE10 = 0x84CA;
374 const GLenum TEXTURE11 = 0x84CB;
375 const GLenum TEXTURE12 = 0x84CC;
376 const GLenum TEXTURE13 = 0x84CD;
377 const GLenum TEXTURE14 = 0x84CE;
378 const GLenum TEXTURE15 = 0x84CF;
379 const GLenum TEXTURE16 = 0x84D0;
380 const GLenum TEXTURE17 = 0x84D1;
381 const GLenum TEXTURE18 = 0x84D2;
382 const GLenum TEXTURE19 = 0x84D3;
383 const GLenum TEXTURE20 = 0x84D4;
384 const GLenum TEXTURE21 = 0x84D5;
385 const GLenum TEXTURE22 = 0x84D6;
386 const GLenum TEXTURE23 = 0x84D7;
387 const GLenum TEXTURE24 = 0x84D8;
388 const GLenum TEXTURE25 = 0x84D9;
389 const GLenum TEXTURE26 = 0x84DA;
390 const GLenum TEXTURE27 = 0x84DB;
391 const GLenum TEXTURE28 = 0x84DC;
392 const GLenum TEXTURE29 = 0x84DD;
393 const GLenum TEXTURE30 = 0x84DE;
394 const GLenum TEXTURE31 = 0x84DF;
395 const GLenum ACTIVE_TEXTURE = 0x84E0;
397 /* TextureWrapMode */
398 const GLenum REPEAT = 0x2901;
399 const GLenum CLAMP_TO_EDGE = 0x812F;
400 const GLenum MIRRORED_REPEAT = 0x8370;
403 const GLenum FLOAT_VEC2 = 0x8B50;
404 const GLenum FLOAT_VEC3 = 0x8B51;
405 const GLenum FLOAT_VEC4 = 0x8B52;
406 const GLenum INT_VEC2 = 0x8B53;
407 const GLenum INT_VEC3 = 0x8B54;
408 const GLenum INT_VEC4 = 0x8B55;
409 const GLenum BOOL = 0x8B56;
410 const GLenum BOOL_VEC2 = 0x8B57;
411 const GLenum BOOL_VEC3 = 0x8B58;
412 const GLenum BOOL_VEC4 = 0x8B59;
413 const GLenum FLOAT_MAT2 = 0x8B5A;
414 const GLenum FLOAT_MAT3 = 0x8B5B;
415 const GLenum FLOAT_MAT4 = 0x8B5C;
416 const GLenum SAMPLER_2D = 0x8B5E;
417 const GLenum SAMPLER_CUBE = 0x8B60;
420 const GLenum VERTEX_ATTRIB_ARRAY_ENABLED = 0x8622;
421 const GLenum VERTEX_ATTRIB_ARRAY_SIZE = 0x8623;
422 const GLenum VERTEX_ATTRIB_ARRAY_STRIDE = 0x8624;
423 const GLenum VERTEX_ATTRIB_ARRAY_TYPE = 0x8625;
424 const GLenum VERTEX_ATTRIB_ARRAY_NORMALIZED = 0x886A;
425 const GLenum VERTEX_ATTRIB_ARRAY_POINTER = 0x8645;
426 const GLenum VERTEX_ATTRIB_ARRAY_BUFFER_BINDING = 0x889F;
429 const GLenum COMPILE_STATUS = 0x8B81;
431 /* Shader Precision-Specified Types */
432 const GLenum LOW_FLOAT = 0x8DF0;
433 const GLenum MEDIUM_FLOAT = 0x8DF1;
434 const GLenum HIGH_FLOAT = 0x8DF2;
435 const GLenum LOW_INT = 0x8DF3;
436 const GLenum MEDIUM_INT = 0x8DF4;
437 const GLenum HIGH_INT = 0x8DF5;
439 /* Framebuffer Object. */
440 const GLenum FRAMEBUFFER = 0x8D40;
441 const GLenum RENDERBUFFER = 0x8D41;
443 const GLenum RGBA4 = 0x8056;
444 const GLenum RGB5_A1 = 0x8057;
445 const GLenum RGB565 = 0x8D62;
446 const GLenum DEPTH_COMPONENT16 = 0x81A5;
447 const GLenum STENCIL_INDEX = 0x1901;
448 const GLenum STENCIL_INDEX8 = 0x8D48;
449 const GLenum DEPTH_STENCIL = 0x84F9;
451 const GLenum RENDERBUFFER_WIDTH = 0x8D42;
452 const GLenum RENDERBUFFER_HEIGHT = 0x8D43;
453 const GLenum RENDERBUFFER_INTERNAL_FORMAT = 0x8D44;
454 const GLenum RENDERBUFFER_RED_SIZE = 0x8D50;
455 const GLenum RENDERBUFFER_GREEN_SIZE = 0x8D51;
456 const GLenum RENDERBUFFER_BLUE_SIZE = 0x8D52;
457 const GLenum RENDERBUFFER_ALPHA_SIZE = 0x8D53;
458 const GLenum RENDERBUFFER_DEPTH_SIZE = 0x8D54;
459 const GLenum RENDERBUFFER_STENCIL_SIZE = 0x8D55;
461 const GLenum FRAMEBUFFER_ATTACHMENT_OBJECT_TYPE = 0x8CD0;
462 const GLenum FRAMEBUFFER_ATTACHMENT_OBJECT_NAME = 0x8CD1;
463 const GLenum FRAMEBUFFER_ATTACHMENT_TEXTURE_LEVEL = 0x8CD2;
464 const GLenum FRAMEBUFFER_ATTACHMENT_TEXTURE_CUBE_MAP_FACE = 0x8CD3;
466 const GLenum COLOR_ATTACHMENT0 = 0x8CE0;
467 const GLenum DEPTH_ATTACHMENT = 0x8D00;
468 const GLenum STENCIL_ATTACHMENT = 0x8D20;
469 const GLenum DEPTH_STENCIL_ATTACHMENT = 0x821A;
471 const GLenum NONE = 0;
473 const GLenum FRAMEBUFFER_COMPLETE = 0x8CD5;
474 const GLenum FRAMEBUFFER_INCOMPLETE_ATTACHMENT = 0x8CD6;
475 const GLenum FRAMEBUFFER_INCOMPLETE_MISSING_ATTACHMENT = 0x8CD7;
476 const GLenum FRAMEBUFFER_INCOMPLETE_DIMENSIONS = 0x8CD9;
477 const GLenum FRAMEBUFFER_UNSUPPORTED = 0x8CDD;
479 const GLenum FRAMEBUFFER_BINDING = 0x8CA6;
480 const GLenum RENDERBUFFER_BINDING = 0x8CA7;
481 const GLenum MAX_RENDERBUFFER_SIZE = 0x84E8;
483 const GLenum INVALID_FRAMEBUFFER_OPERATION = 0x0506;
485 /* WebGL-specific enums */
486 const GLenum UNPACK_FLIP_Y_WEBGL = 0x9240;
487 const GLenum UNPACK_PREMULTIPLY_ALPHA_WEBGL = 0x9241;
488 const GLenum CONTEXT_LOST_WEBGL = 0x9242;
489 const GLenum UNPACK_COLORSPACE_CONVERSION_WEBGL = 0x9243;
490 const GLenum BROWSER_DEFAULT_WEBGL = 0x9244;
492 readonly attribute HTMLCanvasElement canvas;
493 readonly attribute GLsizei drawingBufferWidth;
494 readonly attribute GLsizei drawingBufferHeight;
496 [WebGLHandlesContextLoss] WebGLContextAttributes? getContextAttributes();
497 [WebGLHandlesContextLoss] boolean isContextLost();
499 sequence<DOMString>? getSupportedExtensions();
500 object? getExtension(DOMString name);
502 void activeTexture(GLenum texture);
503 void attachShader(WebGLProgram? program, WebGLShader? shader);
504 void bindAttribLocation(WebGLProgram? program, GLuint index, DOMString name);
505 void bindBuffer(GLenum target, WebGLBuffer? buffer);
506 void bindFramebuffer(GLenum target, WebGLFramebuffer? framebuffer);
507 void bindRenderbuffer(GLenum target, WebGLRenderbuffer? renderbuffer);
508 void bindTexture(GLenum target, WebGLTexture? texture);
509 void blendColor(GLclampf red, GLclampf green, GLclampf blue, GLclampf alpha);
510 void blendEquation(GLenum mode);
511 void blendEquationSeparate(GLenum modeRGB, GLenum modeAlpha);
512 void blendFunc(GLenum sfactor, GLenum dfactor);
513 void blendFuncSeparate(GLenum srcRGB, GLenum dstRGB,
514 GLenum srcAlpha, GLenum dstAlpha);
516 void bufferData(GLenum target, GLsizeiptr size, GLenum usage);
517 void bufferData(GLenum target, ArrayBufferView data, GLenum usage);
518 void bufferData(GLenum target, ArrayBuffer? data, GLenum usage);
519 void bufferSubData(GLenum target, GLintptr offset, ArrayBufferView data);
520 void bufferSubData(GLenum target, GLintptr offset, ArrayBuffer? data);
522 [WebGLHandlesContextLoss] GLenum checkFramebufferStatus(GLenum target);
523 void clear(GLbitfield mask);
524 void clearColor(GLclampf red, GLclampf green, GLclampf blue, GLclampf alpha);
525 void clearDepth(GLclampf depth);
526 void clearStencil(GLint s);
527 void colorMask(GLboolean red, GLboolean green, GLboolean blue, GLboolean alpha);
528 void compileShader(WebGLShader? shader);
530 void compressedTexImage2D(GLenum target, GLint level, GLenum internalformat,
531 GLsizei width, GLsizei height, GLint border,
532 ArrayBufferView data);
533 void compressedTexSubImage2D(GLenum target, GLint level,
534 GLint xoffset, GLint yoffset,
535 GLsizei width, GLsizei height, GLenum format,
536 ArrayBufferView data);
538 void copyTexImage2D(GLenum target, GLint level, GLenum internalformat,
539 GLint x, GLint y, GLsizei width, GLsizei height,
541 void copyTexSubImage2D(GLenum target, GLint level, GLint xoffset, GLint yoffset,
542 GLint x, GLint y, GLsizei width, GLsizei height);
544 WebGLBuffer? createBuffer();
545 WebGLFramebuffer? createFramebuffer();
546 WebGLProgram? createProgram();
547 WebGLRenderbuffer? createRenderbuffer();
548 WebGLShader? createShader(GLenum type);
549 WebGLTexture? createTexture();
551 void cullFace(GLenum mode);
553 void deleteBuffer(WebGLBuffer? buffer);
554 void deleteFramebuffer(WebGLFramebuffer? framebuffer);
555 void deleteProgram(WebGLProgram? program);
556 void deleteRenderbuffer(WebGLRenderbuffer? renderbuffer);
557 void deleteShader(WebGLShader? shader);
558 void deleteTexture(WebGLTexture? texture);
560 void depthFunc(GLenum func);
561 void depthMask(GLboolean flag);
562 void depthRange(GLclampf zNear, GLclampf zFar);
563 void detachShader(WebGLProgram? program, WebGLShader? shader);
564 void disable(GLenum cap);
565 void disableVertexAttribArray(GLuint index);
566 void drawArrays(GLenum mode, GLint first, GLsizei count);
567 void drawElements(GLenum mode, GLsizei count, GLenum type, GLintptr offset);
569 void enable(GLenum cap);
570 void enableVertexAttribArray(GLuint index);
573 void framebufferRenderbuffer(GLenum target, GLenum attachment,
574 GLenum renderbuffertarget,
575 WebGLRenderbuffer? renderbuffer);
576 void framebufferTexture2D(GLenum target, GLenum attachment, GLenum textarget,
577 WebGLTexture? texture, GLint level);
578 void frontFace(GLenum mode);
580 void generateMipmap(GLenum target);
582 WebGLActiveInfo? getActiveAttrib(WebGLProgram? program, GLuint index);
583 WebGLActiveInfo? getActiveUniform(WebGLProgram? program, GLuint index);
584 sequence<WebGLShader>? getAttachedShaders(WebGLProgram? program);
586 [WebGLHandlesContextLoss] GLint getAttribLocation(WebGLProgram? program, DOMString name);
588 any getBufferParameter(GLenum target, GLenum pname);
589 any getParameter(GLenum pname);
591 [WebGLHandlesContextLoss] GLenum getError();
593 any getFramebufferAttachmentParameter(GLenum target, GLenum attachment,
595 any getProgramParameter(WebGLProgram? program, GLenum pname);
596 DOMString? getProgramInfoLog(WebGLProgram? program);
597 any getRenderbufferParameter(GLenum target, GLenum pname);
598 any getShaderParameter(WebGLShader? shader, GLenum pname);
599 WebGLShaderPrecisionFormat? getShaderPrecisionFormat(GLenum shadertype, GLenum precisiontype);
600 DOMString? getShaderInfoLog(WebGLShader? shader);
602 DOMString? getShaderSource(WebGLShader? shader);
604 any getTexParameter(GLenum target, GLenum pname);
606 any getUniform(WebGLProgram? program, WebGLUniformLocation? location);
608 WebGLUniformLocation? getUniformLocation(WebGLProgram? program, DOMString name);
610 any getVertexAttrib(GLuint index, GLenum pname);
612 [WebGLHandlesContextLoss] GLsizeiptr getVertexAttribOffset(GLuint index, GLenum pname);
614 void hint(GLenum target, GLenum mode);
615 [WebGLHandlesContextLoss] GLboolean isBuffer(WebGLBuffer? buffer);
616 [WebGLHandlesContextLoss] GLboolean isEnabled(GLenum cap);
617 [WebGLHandlesContextLoss] GLboolean isFramebuffer(WebGLFramebuffer? framebuffer);
618 [WebGLHandlesContextLoss] GLboolean isProgram(WebGLProgram? program);
619 [WebGLHandlesContextLoss] GLboolean isRenderbuffer(WebGLRenderbuffer? renderbuffer);
620 [WebGLHandlesContextLoss] GLboolean isShader(WebGLShader? shader);
621 [WebGLHandlesContextLoss] GLboolean isTexture(WebGLTexture? texture);
622 void lineWidth(GLfloat width);
623 void linkProgram(WebGLProgram? program);
624 void pixelStorei(GLenum pname, GLint param);
625 void polygonOffset(GLfloat factor, GLfloat units);
627 void readPixels(GLint x, GLint y, GLsizei width, GLsizei height,
628 GLenum format, GLenum type, ArrayBufferView? pixels);
630 void renderbufferStorage(GLenum target, GLenum internalformat,
631 GLsizei width, GLsizei height);
632 void sampleCoverage(GLclampf value, GLboolean invert);
633 void scissor(GLint x, GLint y, GLsizei width, GLsizei height);
635 void shaderSource(WebGLShader? shader, DOMString source);
637 void stencilFunc(GLenum func, GLint ref, GLuint mask);
638 void stencilFuncSeparate(GLenum face, GLenum func, GLint ref, GLuint mask);
639 void stencilMask(GLuint mask);
640 void stencilMaskSeparate(GLenum face, GLuint mask);
641 void stencilOp(GLenum fail, GLenum zfail, GLenum zpass);
642 void stencilOpSeparate(GLenum face, GLenum fail, GLenum zfail, GLenum zpass);
644 void texImage2D(GLenum target, GLint level, GLenum internalformat,
645 GLsizei width, GLsizei height, GLint border, GLenum format,
646 GLenum type, ArrayBufferView? pixels);
647 void texImage2D(GLenum target, GLint level, GLenum internalformat,
648 GLenum format, GLenum type, ImageData? pixels);
649 void texImage2D(GLenum target, GLint level, GLenum internalformat,
650 GLenum format, GLenum type, HTMLImageElement image); // May throw DOMException
651 void texImage2D(GLenum target, GLint level, GLenum internalformat,
652 GLenum format, GLenum type, HTMLCanvasElement canvas); // May throw DOMException
653 void texImage2D(GLenum target, GLint level, GLenum internalformat,
654 GLenum format, GLenum type, HTMLVideoElement video); // May throw DOMException
656 void texParameterf(GLenum target, GLenum pname, GLfloat param);
657 void texParameteri(GLenum target, GLenum pname, GLint param);
659 void texSubImage2D(GLenum target, GLint level, GLint xoffset, GLint yoffset,
660 GLsizei width, GLsizei height,
661 GLenum format, GLenum type, ArrayBufferView? pixels);
662 void texSubImage2D(GLenum target, GLint level, GLint xoffset, GLint yoffset,
663 GLenum format, GLenum type, ImageData? pixels);
664 void texSubImage2D(GLenum target, GLint level, GLint xoffset, GLint yoffset,
665 GLenum format, GLenum type, HTMLImageElement image); // May throw DOMException
666 void texSubImage2D(GLenum target, GLint level, GLint xoffset, GLint yoffset,
667 GLenum format, GLenum type, HTMLCanvasElement canvas); // May throw DOMException
668 void texSubImage2D(GLenum target, GLint level, GLint xoffset, GLint yoffset,
669 GLenum format, GLenum type, HTMLVideoElement video); // May throw DOMException
671 void uniform1f(WebGLUniformLocation? location, GLfloat x);
672 void uniform1fv(WebGLUniformLocation? location, Float32Array v);
673 void uniform1fv(WebGLUniformLocation? location, sequence<GLfloat> v);
674 void uniform1i(WebGLUniformLocation? location, GLint x);
675 void uniform1iv(WebGLUniformLocation? location, Int32Array v);
676 void uniform1iv(WebGLUniformLocation? location, sequence<long> v);
677 void uniform2f(WebGLUniformLocation? location, GLfloat x, GLfloat y);
678 void uniform2fv(WebGLUniformLocation? location, Float32Array v);
679 void uniform2fv(WebGLUniformLocation? location, sequence<GLfloat> v);
680 void uniform2i(WebGLUniformLocation? location, GLint x, GLint y);
681 void uniform2iv(WebGLUniformLocation? location, Int32Array v);
682 void uniform2iv(WebGLUniformLocation? location, sequence<long> v);
683 void uniform3f(WebGLUniformLocation? location, GLfloat x, GLfloat y, GLfloat z);
684 void uniform3fv(WebGLUniformLocation? location, Float32Array v);
685 void uniform3fv(WebGLUniformLocation? location, sequence<GLfloat> v);
686 void uniform3i(WebGLUniformLocation? location, GLint x, GLint y, GLint z);
687 void uniform3iv(WebGLUniformLocation? location, Int32Array v);
688 void uniform3iv(WebGLUniformLocation? location, sequence<long> v);
689 void uniform4f(WebGLUniformLocation? location, GLfloat x, GLfloat y, GLfloat z, GLfloat w);
690 void uniform4fv(WebGLUniformLocation? location, Float32Array v);
691 void uniform4fv(WebGLUniformLocation? location, sequence<GLfloat> v);
692 void uniform4i(WebGLUniformLocation? location, GLint x, GLint y, GLint z, GLint w);
693 void uniform4iv(WebGLUniformLocation? location, Int32Array v);
694 void uniform4iv(WebGLUniformLocation? location, sequence<long> v);
696 void uniformMatrix2fv(WebGLUniformLocation? location, GLboolean transpose,
698 void uniformMatrix2fv(WebGLUniformLocation? location, GLboolean transpose,
699 sequence<GLfloat> value);
700 void uniformMatrix3fv(WebGLUniformLocation? location, GLboolean transpose,
702 void uniformMatrix3fv(WebGLUniformLocation? location, GLboolean transpose,
703 sequence<GLfloat> value);
704 void uniformMatrix4fv(WebGLUniformLocation? location, GLboolean transpose,
706 void uniformMatrix4fv(WebGLUniformLocation? location, GLboolean transpose,
707 sequence<GLfloat> value);
709 void useProgram(WebGLProgram? program);
710 void validateProgram(WebGLProgram? program);
712 void vertexAttrib1f(GLuint indx, GLfloat x);
713 void vertexAttrib1fv(GLuint indx, Float32Array values);
714 void vertexAttrib1fv(GLuint indx, sequence<GLfloat> values);
715 void vertexAttrib2f(GLuint indx, GLfloat x, GLfloat y);
716 void vertexAttrib2fv(GLuint indx, Float32Array values);
717 void vertexAttrib2fv(GLuint indx, sequence<GLfloat> values);
718 void vertexAttrib3f(GLuint indx, GLfloat x, GLfloat y, GLfloat z);
719 void vertexAttrib3fv(GLuint indx, Float32Array values);
720 void vertexAttrib3fv(GLuint indx, sequence<GLfloat> values);
721 void vertexAttrib4f(GLuint indx, GLfloat x, GLfloat y, GLfloat z, GLfloat w);
722 void vertexAttrib4fv(GLuint indx, Float32Array values);
723 void vertexAttrib4fv(GLuint indx, sequence<GLfloat> values);
724 void vertexAttribPointer(GLuint indx, GLint size, GLenum type,
725 GLboolean normalized, GLsizei stride, GLintptr offset);
727 void viewport(GLint x, GLint y, GLsizei width, GLsizei height);
730 interface WebGLRenderingContext
733 WebGLRenderingContext implements WebGLRenderingContextBase;
736 [Constructor(DOMString type, optional WebGLContextEventInit eventInit)]
737 interface WebGLContextEvent : Event {
738 readonly attribute DOMString statusMessage;
741 // EventInit is defined in the DOM4 specification.
742 dictionary WebGLContextEventInit : EventInit {
743 DOMString statusMessage;