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 IMPLEMENTATION_COLOR_READ_TYPE = 0x8B9A;
430 const GLenum IMPLEMENTATION_COLOR_READ_FORMAT = 0x8B9B;
433 const GLenum COMPILE_STATUS = 0x8B81;
435 /* Shader Precision-Specified Types */
436 const GLenum LOW_FLOAT = 0x8DF0;
437 const GLenum MEDIUM_FLOAT = 0x8DF1;
438 const GLenum HIGH_FLOAT = 0x8DF2;
439 const GLenum LOW_INT = 0x8DF3;
440 const GLenum MEDIUM_INT = 0x8DF4;
441 const GLenum HIGH_INT = 0x8DF5;
443 /* Framebuffer Object. */
444 const GLenum FRAMEBUFFER = 0x8D40;
445 const GLenum RENDERBUFFER = 0x8D41;
447 const GLenum RGBA4 = 0x8056;
448 const GLenum RGB5_A1 = 0x8057;
449 const GLenum RGB565 = 0x8D62;
450 const GLenum DEPTH_COMPONENT16 = 0x81A5;
451 const GLenum STENCIL_INDEX = 0x1901;
452 const GLenum STENCIL_INDEX8 = 0x8D48;
453 const GLenum DEPTH_STENCIL = 0x84F9;
455 const GLenum RENDERBUFFER_WIDTH = 0x8D42;
456 const GLenum RENDERBUFFER_HEIGHT = 0x8D43;
457 const GLenum RENDERBUFFER_INTERNAL_FORMAT = 0x8D44;
458 const GLenum RENDERBUFFER_RED_SIZE = 0x8D50;
459 const GLenum RENDERBUFFER_GREEN_SIZE = 0x8D51;
460 const GLenum RENDERBUFFER_BLUE_SIZE = 0x8D52;
461 const GLenum RENDERBUFFER_ALPHA_SIZE = 0x8D53;
462 const GLenum RENDERBUFFER_DEPTH_SIZE = 0x8D54;
463 const GLenum RENDERBUFFER_STENCIL_SIZE = 0x8D55;
465 const GLenum FRAMEBUFFER_ATTACHMENT_OBJECT_TYPE = 0x8CD0;
466 const GLenum FRAMEBUFFER_ATTACHMENT_OBJECT_NAME = 0x8CD1;
467 const GLenum FRAMEBUFFER_ATTACHMENT_TEXTURE_LEVEL = 0x8CD2;
468 const GLenum FRAMEBUFFER_ATTACHMENT_TEXTURE_CUBE_MAP_FACE = 0x8CD3;
470 const GLenum COLOR_ATTACHMENT0 = 0x8CE0;
471 const GLenum DEPTH_ATTACHMENT = 0x8D00;
472 const GLenum STENCIL_ATTACHMENT = 0x8D20;
473 const GLenum DEPTH_STENCIL_ATTACHMENT = 0x821A;
475 const GLenum NONE = 0;
477 const GLenum FRAMEBUFFER_COMPLETE = 0x8CD5;
478 const GLenum FRAMEBUFFER_INCOMPLETE_ATTACHMENT = 0x8CD6;
479 const GLenum FRAMEBUFFER_INCOMPLETE_MISSING_ATTACHMENT = 0x8CD7;
480 const GLenum FRAMEBUFFER_INCOMPLETE_DIMENSIONS = 0x8CD9;
481 const GLenum FRAMEBUFFER_UNSUPPORTED = 0x8CDD;
483 const GLenum FRAMEBUFFER_BINDING = 0x8CA6;
484 const GLenum RENDERBUFFER_BINDING = 0x8CA7;
485 const GLenum MAX_RENDERBUFFER_SIZE = 0x84E8;
487 const GLenum INVALID_FRAMEBUFFER_OPERATION = 0x0506;
489 /* WebGL-specific enums */
490 const GLenum UNPACK_FLIP_Y_WEBGL = 0x9240;
491 const GLenum UNPACK_PREMULTIPLY_ALPHA_WEBGL = 0x9241;
492 const GLenum CONTEXT_LOST_WEBGL = 0x9242;
493 const GLenum UNPACK_COLORSPACE_CONVERSION_WEBGL = 0x9243;
494 const GLenum BROWSER_DEFAULT_WEBGL = 0x9244;
496 readonly attribute HTMLCanvasElement canvas;
497 readonly attribute GLsizei drawingBufferWidth;
498 readonly attribute GLsizei drawingBufferHeight;
500 [WebGLHandlesContextLoss] WebGLContextAttributes? getContextAttributes();
501 [WebGLHandlesContextLoss] boolean isContextLost();
503 sequence<DOMString>? getSupportedExtensions();
504 object? getExtension(DOMString name);
506 void activeTexture(GLenum texture);
507 void attachShader(WebGLProgram? program, WebGLShader? shader);
508 void bindAttribLocation(WebGLProgram? program, GLuint index, DOMString name);
509 void bindBuffer(GLenum target, WebGLBuffer? buffer);
510 void bindFramebuffer(GLenum target, WebGLFramebuffer? framebuffer);
511 void bindRenderbuffer(GLenum target, WebGLRenderbuffer? renderbuffer);
512 void bindTexture(GLenum target, WebGLTexture? texture);
513 void blendColor(GLclampf red, GLclampf green, GLclampf blue, GLclampf alpha);
514 void blendEquation(GLenum mode);
515 void blendEquationSeparate(GLenum modeRGB, GLenum modeAlpha);
516 void blendFunc(GLenum sfactor, GLenum dfactor);
517 void blendFuncSeparate(GLenum srcRGB, GLenum dstRGB,
518 GLenum srcAlpha, GLenum dstAlpha);
520 typedef (ArrayBuffer or ArrayBufferView) BufferDataSource;
521 void bufferData(GLenum target, GLsizeiptr size, GLenum usage);
522 void bufferData(GLenum target, BufferDataSource? data, GLenum usage);
523 void bufferSubData(GLenum target, GLintptr offset, BufferDataSource? data);
525 [WebGLHandlesContextLoss] GLenum checkFramebufferStatus(GLenum target);
526 void clear(GLbitfield mask);
527 void clearColor(GLclampf red, GLclampf green, GLclampf blue, GLclampf alpha);
528 void clearDepth(GLclampf depth);
529 void clearStencil(GLint s);
530 void colorMask(GLboolean red, GLboolean green, GLboolean blue, GLboolean alpha);
531 void compileShader(WebGLShader? shader);
533 void compressedTexImage2D(GLenum target, GLint level, GLenum internalformat,
534 GLsizei width, GLsizei height, GLint border,
535 ArrayBufferView data);
536 void compressedTexSubImage2D(GLenum target, GLint level,
537 GLint xoffset, GLint yoffset,
538 GLsizei width, GLsizei height, GLenum format,
539 ArrayBufferView data);
541 void copyTexImage2D(GLenum target, GLint level, GLenum internalformat,
542 GLint x, GLint y, GLsizei width, GLsizei height,
544 void copyTexSubImage2D(GLenum target, GLint level, GLint xoffset, GLint yoffset,
545 GLint x, GLint y, GLsizei width, GLsizei height);
547 WebGLBuffer? createBuffer();
548 WebGLFramebuffer? createFramebuffer();
549 WebGLProgram? createProgram();
550 WebGLRenderbuffer? createRenderbuffer();
551 WebGLShader? createShader(GLenum type);
552 WebGLTexture? createTexture();
554 void cullFace(GLenum mode);
556 void deleteBuffer(WebGLBuffer? buffer);
557 void deleteFramebuffer(WebGLFramebuffer? framebuffer);
558 void deleteProgram(WebGLProgram? program);
559 void deleteRenderbuffer(WebGLRenderbuffer? renderbuffer);
560 void deleteShader(WebGLShader? shader);
561 void deleteTexture(WebGLTexture? texture);
563 void depthFunc(GLenum func);
564 void depthMask(GLboolean flag);
565 void depthRange(GLclampf zNear, GLclampf zFar);
566 void detachShader(WebGLProgram? program, WebGLShader? shader);
567 void disable(GLenum cap);
568 void disableVertexAttribArray(GLuint index);
569 void drawArrays(GLenum mode, GLint first, GLsizei count);
570 void drawElements(GLenum mode, GLsizei count, GLenum type, GLintptr offset);
572 void enable(GLenum cap);
573 void enableVertexAttribArray(GLuint index);
576 void framebufferRenderbuffer(GLenum target, GLenum attachment,
577 GLenum renderbuffertarget,
578 WebGLRenderbuffer? renderbuffer);
579 void framebufferTexture2D(GLenum target, GLenum attachment, GLenum textarget,
580 WebGLTexture? texture, GLint level);
581 void frontFace(GLenum mode);
583 void generateMipmap(GLenum target);
585 WebGLActiveInfo? getActiveAttrib(WebGLProgram? program, GLuint index);
586 WebGLActiveInfo? getActiveUniform(WebGLProgram? program, GLuint index);
587 sequence<WebGLShader>? getAttachedShaders(WebGLProgram? program);
589 [WebGLHandlesContextLoss] GLint getAttribLocation(WebGLProgram? program, DOMString name);
591 any getBufferParameter(GLenum target, GLenum pname);
592 any getParameter(GLenum pname);
594 [WebGLHandlesContextLoss] GLenum getError();
596 any getFramebufferAttachmentParameter(GLenum target, GLenum attachment,
598 any getProgramParameter(WebGLProgram? program, GLenum pname);
599 DOMString? getProgramInfoLog(WebGLProgram? program);
600 any getRenderbufferParameter(GLenum target, GLenum pname);
601 any getShaderParameter(WebGLShader? shader, GLenum pname);
602 WebGLShaderPrecisionFormat? getShaderPrecisionFormat(GLenum shadertype, GLenum precisiontype);
603 DOMString? getShaderInfoLog(WebGLShader? shader);
605 DOMString? getShaderSource(WebGLShader? shader);
607 any getTexParameter(GLenum target, GLenum pname);
609 any getUniform(WebGLProgram? program, WebGLUniformLocation? location);
611 WebGLUniformLocation? getUniformLocation(WebGLProgram? program, DOMString name);
613 any getVertexAttrib(GLuint index, GLenum pname);
615 [WebGLHandlesContextLoss] GLsizeiptr getVertexAttribOffset(GLuint index, GLenum pname);
617 void hint(GLenum target, GLenum mode);
618 [WebGLHandlesContextLoss] GLboolean isBuffer(WebGLBuffer? buffer);
619 [WebGLHandlesContextLoss] GLboolean isEnabled(GLenum cap);
620 [WebGLHandlesContextLoss] GLboolean isFramebuffer(WebGLFramebuffer? framebuffer);
621 [WebGLHandlesContextLoss] GLboolean isProgram(WebGLProgram? program);
622 [WebGLHandlesContextLoss] GLboolean isRenderbuffer(WebGLRenderbuffer? renderbuffer);
623 [WebGLHandlesContextLoss] GLboolean isShader(WebGLShader? shader);
624 [WebGLHandlesContextLoss] GLboolean isTexture(WebGLTexture? texture);
625 void lineWidth(GLfloat width);
626 void linkProgram(WebGLProgram? program);
627 void pixelStorei(GLenum pname, GLint param);
628 void polygonOffset(GLfloat factor, GLfloat units);
630 void readPixels(GLint x, GLint y, GLsizei width, GLsizei height,
631 GLenum format, GLenum type, ArrayBufferView? pixels);
633 void renderbufferStorage(GLenum target, GLenum internalformat,
634 GLsizei width, GLsizei height);
635 void sampleCoverage(GLclampf value, GLboolean invert);
636 void scissor(GLint x, GLint y, GLsizei width, GLsizei height);
638 void shaderSource(WebGLShader? shader, DOMString source);
640 void stencilFunc(GLenum func, GLint ref, GLuint mask);
641 void stencilFuncSeparate(GLenum face, GLenum func, GLint ref, GLuint mask);
642 void stencilMask(GLuint mask);
643 void stencilMaskSeparate(GLenum face, GLuint mask);
644 void stencilOp(GLenum fail, GLenum zfail, GLenum zpass);
645 void stencilOpSeparate(GLenum face, GLenum fail, GLenum zfail, GLenum zpass);
647 typedef (ImageData or
650 HTMLVideoElement) TexImageSource;
651 void texImage2D(GLenum target, GLint level, GLenum internalformat,
652 GLsizei width, GLsizei height, GLint border, GLenum format,
653 GLenum type, ArrayBufferView? pixels);
654 void texImage2D(GLenum target, GLint level, GLenum internalformat,
655 GLenum format, GLenum type, TexImageSource? source); // May throw DOMException
657 void texParameterf(GLenum target, GLenum pname, GLfloat param);
658 void texParameteri(GLenum target, GLenum pname, GLint param);
660 void texSubImage2D(GLenum target, GLint level, GLint xoffset, GLint yoffset,
661 GLsizei width, GLsizei height,
662 GLenum format, GLenum type, ArrayBufferView? pixels);
663 void texSubImage2D(GLenum target, GLint level, GLint xoffset, GLint yoffset,
664 GLenum format, GLenum type, TexImageSource? source); // May throw DOMException
666 void uniform1f(WebGLUniformLocation? location, GLfloat x);
667 void uniform1fv(WebGLUniformLocation? location, Float32Array v);
668 void uniform1fv(WebGLUniformLocation? location, sequence<GLfloat> v);
669 void uniform1i(WebGLUniformLocation? location, GLint x);
670 void uniform1iv(WebGLUniformLocation? location, Int32Array v);
671 void uniform1iv(WebGLUniformLocation? location, sequence<long> v);
672 void uniform2f(WebGLUniformLocation? location, GLfloat x, GLfloat y);
673 void uniform2fv(WebGLUniformLocation? location, Float32Array v);
674 void uniform2fv(WebGLUniformLocation? location, sequence<GLfloat> v);
675 void uniform2i(WebGLUniformLocation? location, GLint x, GLint y);
676 void uniform2iv(WebGLUniformLocation? location, Int32Array v);
677 void uniform2iv(WebGLUniformLocation? location, sequence<long> v);
678 void uniform3f(WebGLUniformLocation? location, GLfloat x, GLfloat y, GLfloat z);
679 void uniform3fv(WebGLUniformLocation? location, Float32Array v);
680 void uniform3fv(WebGLUniformLocation? location, sequence<GLfloat> v);
681 void uniform3i(WebGLUniformLocation? location, GLint x, GLint y, GLint z);
682 void uniform3iv(WebGLUniformLocation? location, Int32Array v);
683 void uniform3iv(WebGLUniformLocation? location, sequence<long> v);
684 void uniform4f(WebGLUniformLocation? location, GLfloat x, GLfloat y, GLfloat z, GLfloat w);
685 void uniform4fv(WebGLUniformLocation? location, Float32Array v);
686 void uniform4fv(WebGLUniformLocation? location, sequence<GLfloat> v);
687 void uniform4i(WebGLUniformLocation? location, GLint x, GLint y, GLint z, GLint w);
688 void uniform4iv(WebGLUniformLocation? location, Int32Array v);
689 void uniform4iv(WebGLUniformLocation? location, sequence<long> v);
691 void uniformMatrix2fv(WebGLUniformLocation? location, GLboolean transpose,
693 void uniformMatrix2fv(WebGLUniformLocation? location, GLboolean transpose,
694 sequence<GLfloat> value);
695 void uniformMatrix3fv(WebGLUniformLocation? location, GLboolean transpose,
697 void uniformMatrix3fv(WebGLUniformLocation? location, GLboolean transpose,
698 sequence<GLfloat> value);
699 void uniformMatrix4fv(WebGLUniformLocation? location, GLboolean transpose,
701 void uniformMatrix4fv(WebGLUniformLocation? location, GLboolean transpose,
702 sequence<GLfloat> value);
704 void useProgram(WebGLProgram? program);
705 void validateProgram(WebGLProgram? program);
707 void vertexAttrib1f(GLuint indx, GLfloat x);
708 void vertexAttrib1fv(GLuint indx, Float32Array values);
709 void vertexAttrib1fv(GLuint indx, sequence<GLfloat> values);
710 void vertexAttrib2f(GLuint indx, GLfloat x, GLfloat y);
711 void vertexAttrib2fv(GLuint indx, Float32Array values);
712 void vertexAttrib2fv(GLuint indx, sequence<GLfloat> values);
713 void vertexAttrib3f(GLuint indx, GLfloat x, GLfloat y, GLfloat z);
714 void vertexAttrib3fv(GLuint indx, Float32Array values);
715 void vertexAttrib3fv(GLuint indx, sequence<GLfloat> values);
716 void vertexAttrib4f(GLuint indx, GLfloat x, GLfloat y, GLfloat z, GLfloat w);
717 void vertexAttrib4fv(GLuint indx, Float32Array values);
718 void vertexAttrib4fv(GLuint indx, sequence<GLfloat> values);
719 void vertexAttribPointer(GLuint indx, GLint size, GLenum type,
720 GLboolean normalized, GLsizei stride, GLintptr offset);
722 void viewport(GLint x, GLint y, GLsizei width, GLsizei height);
725 interface WebGLRenderingContext
728 WebGLRenderingContext implements WebGLRenderingContextBase;
731 [Constructor(DOMString type, optional WebGLContextEventInit eventInit)]
732 interface WebGLContextEvent : Event {
733 readonly attribute DOMString statusMessage;
736 // EventInit is defined in the DOM4 specification.
737 dictionary WebGLContextEventInit : EventInit {
738 DOMString statusMessage;