pub const WEBGL_IDL: &'static [u8] = b"// AUTOGENERATED FILE -- DO NOT EDIT -- SEE Makefile\n//\n// WebGL IDL definitions scraped from the Khronos specification:\n// https://www.khronos.org/registry/webgl/specs/latest/\n\n// Copyright (c) 2018 The Khronos Group Inc.\n//\n// Permission is hereby granted, free of charge, to any person obtaining a\n// copy of this software and/or associated documentation files (the\n// \"Materials\"), to deal in the Materials without restriction, including\n// without limitation the rights to use, copy, modify, merge, publish,\n// distribute, sublicense, and/or sell copies of the Materials, and to\n// permit persons to whom the Materials are furnished to do so, subject to\n// the following conditions:\n//\n// The above copyright notice and this permission notice shall be included\n// in all copies or substantial portions of the Materials.\n//\n// THE MATERIALS ARE PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND,\n// EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF\n// MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.\n// IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY\n// CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT,\n// TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE\n// MATERIALS OR THE USE OR OTHER DEALINGS IN THE MATERIALS.\n\ntypedef unsigned long GLenum;\ntypedef boolean GLboolean;\ntypedef unsigned long GLbitfield;\ntypedef byte GLbyte; /* \'byte\' should be a signed 8 bit type. */\ntypedef short GLshort;\ntypedef long GLint;\ntypedef long GLsizei;\ntypedef long long GLintptr;\ntypedef long long GLsizeiptr;\n// Ideally the typedef below would use \'unsigned byte\', but that doesn\'t currently exist in Web IDL.\ntypedef octet GLubyte; /* \'octet\' should be an unsigned 8 bit type. */\ntypedef unsigned short GLushort;\ntypedef unsigned long GLuint;\ntypedef unrestricted float GLfloat;\ntypedef unrestricted float GLclampf;\n\n// The power preference settings are documented in the WebGLContextAttributes\n// section of the specification.\nenum WebGLPowerPreference { \"default\", \"low-power\", \"high-performance\" };\n\n\ndictionary WebGLContextAttributes {\n GLboolean alpha = true;\n GLboolean depth = true;\n GLboolean stencil = false;\n GLboolean antialias = true;\n GLboolean premultipliedAlpha = true;\n GLboolean preserveDrawingBuffer = false;\n WebGLPowerPreference powerPreference = \"default\";\n GLboolean failIfMajorPerformanceCaveat = false;\n};\n\n[Exposed=(Window,Worker)]\ninterface WebGLObject {\n};\n\n[Exposed=(Window,Worker)]\ninterface WebGLBuffer : WebGLObject {\n};\n\n[Exposed=(Window,Worker)]\ninterface WebGLFramebuffer : WebGLObject {\n};\n\n[Exposed=(Window,Worker)]\ninterface WebGLProgram : WebGLObject {\n};\n\n[Exposed=(Window,Worker)]\ninterface WebGLRenderbuffer : WebGLObject {\n};\n\n[Exposed=(Window,Worker)]\ninterface WebGLShader : WebGLObject {\n};\n\n[Exposed=(Window,Worker)]\ninterface WebGLTexture : WebGLObject {\n};\n\n[Exposed=(Window,Worker)]\ninterface WebGLUniformLocation {\n};\n\n[Exposed=(Window,Worker)]\ninterface WebGLActiveInfo {\n readonly attribute GLint size;\n readonly attribute GLenum type;\n readonly attribute DOMString name;\n};\n\n[Exposed=(Window,Worker)]\ninterface WebGLShaderPrecisionFormat {\n readonly attribute GLint rangeMin;\n readonly attribute GLint rangeMax;\n readonly attribute GLint precision;\n};\n\ntypedef (ImageBitmap or\n ImageData or\n HTMLImageElement or\n HTMLCanvasElement or\n HTMLVideoElement) TexImageSource;\n\ntypedef ([AllowShared] Float32Array or sequence<GLfloat>) Float32List;\ntypedef ([AllowShared] Int32Array or sequence<GLint>) Int32List;\n\ninterface mixin WebGLRenderingContextBase\n{\n\n /* ClearBufferMask */\n const GLenum DEPTH_BUFFER_BIT = 0x00000100;\n const GLenum STENCIL_BUFFER_BIT = 0x00000400;\n const GLenum COLOR_BUFFER_BIT = 0x00004000;\n\n /* BeginMode */\n const GLenum POINTS = 0x0000;\n const GLenum LINES = 0x0001;\n const GLenum LINE_LOOP = 0x0002;\n const GLenum LINE_STRIP = 0x0003;\n const GLenum TRIANGLES = 0x0004;\n const GLenum TRIANGLE_STRIP = 0x0005;\n const GLenum TRIANGLE_FAN = 0x0006;\n\n /* AlphaFunction (not supported in ES20) */\n /* NEVER */\n /* LESS */\n /* EQUAL */\n /* LEQUAL */\n /* GREATER */\n /* NOTEQUAL */\n /* GEQUAL */\n /* ALWAYS */\n\n /* BlendingFactorDest */\n const GLenum ZERO = 0;\n const GLenum ONE = 1;\n const GLenum SRC_COLOR = 0x0300;\n const GLenum ONE_MINUS_SRC_COLOR = 0x0301;\n const GLenum SRC_ALPHA = 0x0302;\n const GLenum ONE_MINUS_SRC_ALPHA = 0x0303;\n const GLenum DST_ALPHA = 0x0304;\n const GLenum ONE_MINUS_DST_ALPHA = 0x0305;\n\n /* BlendingFactorSrc */\n /* ZERO */\n /* ONE */\n const GLenum DST_COLOR = 0x0306;\n const GLenum ONE_MINUS_DST_COLOR = 0x0307;\n const GLenum SRC_ALPHA_SATURATE = 0x0308;\n /* SRC_ALPHA */\n /* ONE_MINUS_SRC_ALPHA */\n /* DST_ALPHA */\n /* ONE_MINUS_DST_ALPHA */\n\n /* BlendEquationSeparate */\n const GLenum FUNC_ADD = 0x8006;\n const GLenum BLEND_EQUATION = 0x8009;\n const GLenum BLEND_EQUATION_RGB = 0x8009; /* same as BLEND_EQUATION */\n const GLenum BLEND_EQUATION_ALPHA = 0x883D;\n\n /* BlendSubtract */\n const GLenum FUNC_SUBTRACT = 0x800A;\n const GLenum FUNC_REVERSE_SUBTRACT = 0x800B;\n\n /* Separate Blend Functions */\n const GLenum BLEND_DST_RGB = 0x80C8;\n const GLenum BLEND_SRC_RGB = 0x80C9;\n const GLenum BLEND_DST_ALPHA = 0x80CA;\n const GLenum BLEND_SRC_ALPHA = 0x80CB;\n const GLenum CONSTANT_COLOR = 0x8001;\n const GLenum ONE_MINUS_CONSTANT_COLOR = 0x8002;\n const GLenum CONSTANT_ALPHA = 0x8003;\n const GLenum ONE_MINUS_CONSTANT_ALPHA = 0x8004;\n const GLenum BLEND_COLOR = 0x8005;\n\n /* Buffer Objects */\n const GLenum ARRAY_BUFFER = 0x8892;\n const GLenum ELEMENT_ARRAY_BUFFER = 0x8893;\n const GLenum ARRAY_BUFFER_BINDING = 0x8894;\n const GLenum ELEMENT_ARRAY_BUFFER_BINDING = 0x8895;\n\n const GLenum STREAM_DRAW = 0x88E0;\n const GLenum STATIC_DRAW = 0x88E4;\n const GLenum DYNAMIC_DRAW = 0x88E8;\n\n const GLenum BUFFER_SIZE = 0x8764;\n const GLenum BUFFER_USAGE = 0x8765;\n\n const GLenum CURRENT_VERTEX_ATTRIB = 0x8626;\n\n /* CullFaceMode */\n const GLenum FRONT = 0x0404;\n const GLenum BACK = 0x0405;\n const GLenum FRONT_AND_BACK = 0x0408;\n\n /* DepthFunction */\n /* NEVER */\n /* LESS */\n /* EQUAL */\n /* LEQUAL */\n /* GREATER */\n /* NOTEQUAL */\n /* GEQUAL */\n /* ALWAYS */\n\n /* EnableCap */\n /* TEXTURE_2D */\n const GLenum CULL_FACE = 0x0B44;\n const GLenum BLEND = 0x0BE2;\n const GLenum DITHER = 0x0BD0;\n const GLenum STENCIL_TEST = 0x0B90;\n const GLenum DEPTH_TEST = 0x0B71;\n const GLenum SCISSOR_TEST = 0x0C11;\n const GLenum POLYGON_OFFSET_FILL = 0x8037;\n const GLenum SAMPLE_ALPHA_TO_COVERAGE = 0x809E;\n const GLenum SAMPLE_COVERAGE = 0x80A0;\n\n /* ErrorCode */\n const GLenum NO_ERROR = 0;\n const GLenum INVALID_ENUM = 0x0500;\n const GLenum INVALID_VALUE = 0x0501;\n const GLenum INVALID_OPERATION = 0x0502;\n const GLenum OUT_OF_MEMORY = 0x0505;\n\n /* FrontFaceDirection */\n const GLenum CW = 0x0900;\n const GLenum CCW = 0x0901;\n\n /* GetPName */\n const GLenum LINE_WIDTH = 0x0B21;\n const GLenum ALIASED_POINT_SIZE_RANGE = 0x846D;\n const GLenum ALIASED_LINE_WIDTH_RANGE = 0x846E;\n const GLenum CULL_FACE_MODE = 0x0B45;\n const GLenum FRONT_FACE = 0x0B46;\n const GLenum DEPTH_RANGE = 0x0B70;\n const GLenum DEPTH_WRITEMASK = 0x0B72;\n const GLenum DEPTH_CLEAR_VALUE = 0x0B73;\n const GLenum DEPTH_FUNC = 0x0B74;\n const GLenum STENCIL_CLEAR_VALUE = 0x0B91;\n const GLenum STENCIL_FUNC = 0x0B92;\n const GLenum STENCIL_FAIL = 0x0B94;\n const GLenum STENCIL_PASS_DEPTH_FAIL = 0x0B95;\n const GLenum STENCIL_PASS_DEPTH_PASS = 0x0B96;\n const GLenum STENCIL_REF = 0x0B97;\n const GLenum STENCIL_VALUE_MASK = 0x0B93;\n const GLenum STENCIL_WRITEMASK = 0x0B98;\n const GLenum STENCIL_BACK_FUNC = 0x8800;\n const GLenum STENCIL_BACK_FAIL = 0x8801;\n const GLenum STENCIL_BACK_PASS_DEPTH_FAIL = 0x8802;\n const GLenum STENCIL_BACK_PASS_DEPTH_PASS = 0x8803;\n const GLenum STENCIL_BACK_REF = 0x8CA3;\n const GLenum STENCIL_BACK_VALUE_MASK = 0x8CA4;\n const GLenum STENCIL_BACK_WRITEMASK = 0x8CA5;\n const GLenum VIEWPORT = 0x0BA2;\n const GLenum SCISSOR_BOX = 0x0C10;\n /* SCISSOR_TEST */\n const GLenum COLOR_CLEAR_VALUE = 0x0C22;\n const GLenum COLOR_WRITEMASK = 0x0C23;\n const GLenum UNPACK_ALIGNMENT = 0x0CF5;\n const GLenum PACK_ALIGNMENT = 0x0D05;\n const GLenum MAX_TEXTURE_SIZE = 0x0D33;\n const GLenum MAX_VIEWPORT_DIMS = 0x0D3A;\n const GLenum SUBPIXEL_BITS = 0x0D50;\n const GLenum RED_BITS = 0x0D52;\n const GLenum GREEN_BITS = 0x0D53;\n const GLenum BLUE_BITS = 0x0D54;\n const GLenum ALPHA_BITS = 0x0D55;\n const GLenum DEPTH_BITS = 0x0D56;\n const GLenum STENCIL_BITS = 0x0D57;\n const GLenum POLYGON_OFFSET_UNITS = 0x2A00;\n /* POLYGON_OFFSET_FILL */\n const GLenum POLYGON_OFFSET_FACTOR = 0x8038;\n const GLenum TEXTURE_BINDING_2D = 0x8069;\n const GLenum SAMPLE_BUFFERS = 0x80A8;\n const GLenum SAMPLES = 0x80A9;\n const GLenum SAMPLE_COVERAGE_VALUE = 0x80AA;\n const GLenum SAMPLE_COVERAGE_INVERT = 0x80AB;\n\n /* GetTextureParameter */\n /* TEXTURE_MAG_FILTER */\n /* TEXTURE_MIN_FILTER */\n /* TEXTURE_WRAP_S */\n /* TEXTURE_WRAP_T */\n\n const GLenum COMPRESSED_TEXTURE_FORMATS = 0x86A3;\n\n /* HintMode */\n const GLenum DONT_CARE = 0x1100;\n const GLenum FASTEST = 0x1101;\n const GLenum NICEST = 0x1102;\n\n /* HintTarget */\n const GLenum GENERATE_MIPMAP_HINT = 0x8192;\n\n /* DataType */\n const GLenum BYTE = 0x1400;\n const GLenum UNSIGNED_BYTE = 0x1401;\n const GLenum SHORT = 0x1402;\n const GLenum UNSIGNED_SHORT = 0x1403;\n const GLenum INT = 0x1404;\n const GLenum UNSIGNED_INT = 0x1405;\n const GLenum FLOAT = 0x1406;\n\n /* PixelFormat */\n const GLenum DEPTH_COMPONENT = 0x1902;\n const GLenum ALPHA = 0x1906;\n const GLenum RGB = 0x1907;\n const GLenum RGBA = 0x1908;\n const GLenum LUMINANCE = 0x1909;\n const GLenum LUMINANCE_ALPHA = 0x190A;\n\n /* PixelType */\n /* UNSIGNED_BYTE */\n const GLenum UNSIGNED_SHORT_4_4_4_4 = 0x8033;\n const GLenum UNSIGNED_SHORT_5_5_5_1 = 0x8034;\n const GLenum UNSIGNED_SHORT_5_6_5 = 0x8363;\n\n /* Shaders */\n const GLenum FRAGMENT_SHADER = 0x8B30;\n const GLenum VERTEX_SHADER = 0x8B31;\n const GLenum MAX_VERTEX_ATTRIBS = 0x8869;\n const GLenum MAX_VERTEX_UNIFORM_VECTORS = 0x8DFB;\n const GLenum MAX_VARYING_VECTORS = 0x8DFC;\n const GLenum MAX_COMBINED_TEXTURE_IMAGE_UNITS = 0x8B4D;\n const GLenum MAX_VERTEX_TEXTURE_IMAGE_UNITS = 0x8B4C;\n const GLenum MAX_TEXTURE_IMAGE_UNITS = 0x8872;\n const GLenum MAX_FRAGMENT_UNIFORM_VECTORS = 0x8DFD;\n const GLenum SHADER_TYPE = 0x8B4F;\n const GLenum DELETE_STATUS = 0x8B80;\n const GLenum LINK_STATUS = 0x8B82;\n const GLenum VALIDATE_STATUS = 0x8B83;\n const GLenum ATTACHED_SHADERS = 0x8B85;\n const GLenum ACTIVE_UNIFORMS = 0x8B86;\n const GLenum ACTIVE_ATTRIBUTES = 0x8B89;\n const GLenum SHADING_LANGUAGE_VERSION = 0x8B8C;\n const GLenum CURRENT_PROGRAM = 0x8B8D;\n\n /* StencilFunction */\n const GLenum NEVER = 0x0200;\n const GLenum LESS = 0x0201;\n const GLenum EQUAL = 0x0202;\n const GLenum LEQUAL = 0x0203;\n const GLenum GREATER = 0x0204;\n const GLenum NOTEQUAL = 0x0205;\n const GLenum GEQUAL = 0x0206;\n const GLenum ALWAYS = 0x0207;\n\n /* StencilOp */\n /* ZERO */\n const GLenum KEEP = 0x1E00;\n const GLenum REPLACE = 0x1E01;\n const GLenum INCR = 0x1E02;\n const GLenum DECR = 0x1E03;\n const GLenum INVERT = 0x150A;\n const GLenum INCR_WRAP = 0x8507;\n const GLenum DECR_WRAP = 0x8508;\n\n /* StringName */\n const GLenum VENDOR = 0x1F00;\n const GLenum RENDERER = 0x1F01;\n const GLenum VERSION = 0x1F02;\n\n /* TextureMagFilter */\n const GLenum NEAREST = 0x2600;\n const GLenum LINEAR = 0x2601;\n\n /* TextureMinFilter */\n /* NEAREST */\n /* LINEAR */\n const GLenum NEAREST_MIPMAP_NEAREST = 0x2700;\n const GLenum LINEAR_MIPMAP_NEAREST = 0x2701;\n const GLenum NEAREST_MIPMAP_LINEAR = 0x2702;\n const GLenum LINEAR_MIPMAP_LINEAR = 0x2703;\n\n /* TextureParameterName */\n const GLenum TEXTURE_MAG_FILTER = 0x2800;\n const GLenum TEXTURE_MIN_FILTER = 0x2801;\n const GLenum TEXTURE_WRAP_S = 0x2802;\n const GLenum TEXTURE_WRAP_T = 0x2803;\n\n /* TextureTarget */\n const GLenum TEXTURE_2D = 0x0DE1;\n const GLenum TEXTURE = 0x1702;\n\n const GLenum TEXTURE_CUBE_MAP = 0x8513;\n const GLenum TEXTURE_BINDING_CUBE_MAP = 0x8514;\n const GLenum TEXTURE_CUBE_MAP_POSITIVE_X = 0x8515;\n const GLenum TEXTURE_CUBE_MAP_NEGATIVE_X = 0x8516;\n const GLenum TEXTURE_CUBE_MAP_POSITIVE_Y = 0x8517;\n const GLenum TEXTURE_CUBE_MAP_NEGATIVE_Y = 0x8518;\n const GLenum TEXTURE_CUBE_MAP_POSITIVE_Z = 0x8519;\n const GLenum TEXTURE_CUBE_MAP_NEGATIVE_Z = 0x851A;\n const GLenum MAX_CUBE_MAP_TEXTURE_SIZE = 0x851C;\n\n /* TextureUnit */\n const GLenum TEXTURE0 = 0x84C0;\n const GLenum TEXTURE1 = 0x84C1;\n const GLenum TEXTURE2 = 0x84C2;\n const GLenum TEXTURE3 = 0x84C3;\n const GLenum TEXTURE4 = 0x84C4;\n const GLenum TEXTURE5 = 0x84C5;\n const GLenum TEXTURE6 = 0x84C6;\n const GLenum TEXTURE7 = 0x84C7;\n const GLenum TEXTURE8 = 0x84C8;\n const GLenum TEXTURE9 = 0x84C9;\n const GLenum TEXTURE10 = 0x84CA;\n const GLenum TEXTURE11 = 0x84CB;\n const GLenum TEXTURE12 = 0x84CC;\n const GLenum TEXTURE13 = 0x84CD;\n const GLenum TEXTURE14 = 0x84CE;\n const GLenum TEXTURE15 = 0x84CF;\n const GLenum TEXTURE16 = 0x84D0;\n const GLenum TEXTURE17 = 0x84D1;\n const GLenum TEXTURE18 = 0x84D2;\n const GLenum TEXTURE19 = 0x84D3;\n const GLenum TEXTURE20 = 0x84D4;\n const GLenum TEXTURE21 = 0x84D5;\n const GLenum TEXTURE22 = 0x84D6;\n const GLenum TEXTURE23 = 0x84D7;\n const GLenum TEXTURE24 = 0x84D8;\n const GLenum TEXTURE25 = 0x84D9;\n const GLenum TEXTURE26 = 0x84DA;\n const GLenum TEXTURE27 = 0x84DB;\n const GLenum TEXTURE28 = 0x84DC;\n const GLenum TEXTURE29 = 0x84DD;\n const GLenum TEXTURE30 = 0x84DE;\n const GLenum TEXTURE31 = 0x84DF;\n const GLenum ACTIVE_TEXTURE = 0x84E0;\n\n /* TextureWrapMode */\n const GLenum REPEAT = 0x2901;\n const GLenum CLAMP_TO_EDGE = 0x812F;\n const GLenum MIRRORED_REPEAT = 0x8370;\n\n /* Uniform Types */\n const GLenum FLOAT_VEC2 = 0x8B50;\n const GLenum FLOAT_VEC3 = 0x8B51;\n const GLenum FLOAT_VEC4 = 0x8B52;\n const GLenum INT_VEC2 = 0x8B53;\n const GLenum INT_VEC3 = 0x8B54;\n const GLenum INT_VEC4 = 0x8B55;\n const GLenum BOOL = 0x8B56;\n const GLenum BOOL_VEC2 = 0x8B57;\n const GLenum BOOL_VEC3 = 0x8B58;\n const GLenum BOOL_VEC4 = 0x8B59;\n const GLenum FLOAT_MAT2 = 0x8B5A;\n const GLenum FLOAT_MAT3 = 0x8B5B;\n const GLenum FLOAT_MAT4 = 0x8B5C;\n const GLenum SAMPLER_2D = 0x8B5E;\n const GLenum SAMPLER_CUBE = 0x8B60;\n\n /* Vertex Arrays */\n const GLenum VERTEX_ATTRIB_ARRAY_ENABLED = 0x8622;\n const GLenum VERTEX_ATTRIB_ARRAY_SIZE = 0x8623;\n const GLenum VERTEX_ATTRIB_ARRAY_STRIDE = 0x8624;\n const GLenum VERTEX_ATTRIB_ARRAY_TYPE = 0x8625;\n const GLenum VERTEX_ATTRIB_ARRAY_NORMALIZED = 0x886A;\n const GLenum VERTEX_ATTRIB_ARRAY_POINTER = 0x8645;\n const GLenum VERTEX_ATTRIB_ARRAY_BUFFER_BINDING = 0x889F;\n\n /* Read Format */\n const GLenum IMPLEMENTATION_COLOR_READ_TYPE = 0x8B9A;\n const GLenum IMPLEMENTATION_COLOR_READ_FORMAT = 0x8B9B;\n\n /* Shader Source */\n const GLenum COMPILE_STATUS = 0x8B81;\n\n /* Shader Precision-Specified Types */\n const GLenum LOW_FLOAT = 0x8DF0;\n const GLenum MEDIUM_FLOAT = 0x8DF1;\n const GLenum HIGH_FLOAT = 0x8DF2;\n const GLenum LOW_INT = 0x8DF3;\n const GLenum MEDIUM_INT = 0x8DF4;\n const GLenum HIGH_INT = 0x8DF5;\n\n /* Framebuffer Object. */\n const GLenum FRAMEBUFFER = 0x8D40;\n const GLenum RENDERBUFFER = 0x8D41;\n\n const GLenum RGBA4 = 0x8056;\n const GLenum RGB5_A1 = 0x8057;\n const GLenum RGB565 = 0x8D62;\n const GLenum DEPTH_COMPONENT16 = 0x81A5;\n const GLenum STENCIL_INDEX8 = 0x8D48;\n const GLenum DEPTH_STENCIL = 0x84F9;\n\n const GLenum RENDERBUFFER_WIDTH = 0x8D42;\n const GLenum RENDERBUFFER_HEIGHT = 0x8D43;\n const GLenum RENDERBUFFER_INTERNAL_FORMAT = 0x8D44;\n const GLenum RENDERBUFFER_RED_SIZE = 0x8D50;\n const GLenum RENDERBUFFER_GREEN_SIZE = 0x8D51;\n const GLenum RENDERBUFFER_BLUE_SIZE = 0x8D52;\n const GLenum RENDERBUFFER_ALPHA_SIZE = 0x8D53;\n const GLenum RENDERBUFFER_DEPTH_SIZE = 0x8D54;\n const GLenum RENDERBUFFER_STENCIL_SIZE = 0x8D55;\n\n const GLenum FRAMEBUFFER_ATTACHMENT_OBJECT_TYPE = 0x8CD0;\n const GLenum FRAMEBUFFER_ATTACHMENT_OBJECT_NAME = 0x8CD1;\n const GLenum FRAMEBUFFER_ATTACHMENT_TEXTURE_LEVEL = 0x8CD2;\n const GLenum FRAMEBUFFER_ATTACHMENT_TEXTURE_CUBE_MAP_FACE = 0x8CD3;\n\n const GLenum COLOR_ATTACHMENT0 = 0x8CE0;\n const GLenum DEPTH_ATTACHMENT = 0x8D00;\n const GLenum STENCIL_ATTACHMENT = 0x8D20;\n const GLenum DEPTH_STENCIL_ATTACHMENT = 0x821A;\n\n const GLenum NONE = 0;\n\n const GLenum FRAMEBUFFER_COMPLETE = 0x8CD5;\n const GLenum FRAMEBUFFER_INCOMPLETE_ATTACHMENT = 0x8CD6;\n const GLenum FRAMEBUFFER_INCOMPLETE_MISSING_ATTACHMENT = 0x8CD7;\n const GLenum FRAMEBUFFER_INCOMPLETE_DIMENSIONS = 0x8CD9;\n const GLenum FRAMEBUFFER_UNSUPPORTED = 0x8CDD;\n\n const GLenum FRAMEBUFFER_BINDING = 0x8CA6;\n const GLenum RENDERBUFFER_BINDING = 0x8CA7;\n const GLenum MAX_RENDERBUFFER_SIZE = 0x84E8;\n\n const GLenum INVALID_FRAMEBUFFER_OPERATION = 0x0506;\n\n /* WebGL-specific enums */\n const GLenum UNPACK_FLIP_Y_WEBGL = 0x9240;\n const GLenum UNPACK_PREMULTIPLY_ALPHA_WEBGL = 0x9241;\n const GLenum CONTEXT_LOST_WEBGL = 0x9242;\n const GLenum UNPACK_COLORSPACE_CONVERSION_WEBGL = 0x9243;\n const GLenum BROWSER_DEFAULT_WEBGL = 0x9244;\n\n [Exposed=Window] readonly attribute HTMLCanvasElement canvas;\n readonly attribute GLsizei drawingBufferWidth;\n readonly attribute GLsizei drawingBufferHeight;\n\n [WebGLHandlesContextLoss] WebGLContextAttributes? getContextAttributes();\n [WebGLHandlesContextLoss] boolean isContextLost();\n\n sequence<DOMString>? getSupportedExtensions();\n object? getExtension(DOMString name);\n\n void activeTexture(GLenum texture);\n void attachShader(WebGLProgram program, WebGLShader shader);\n void bindAttribLocation(WebGLProgram program, GLuint index, DOMString name);\n void bindBuffer(GLenum target, WebGLBuffer? buffer);\n void bindFramebuffer(GLenum target, WebGLFramebuffer? framebuffer);\n void bindRenderbuffer(GLenum target, WebGLRenderbuffer? renderbuffer);\n void bindTexture(GLenum target, WebGLTexture? texture);\n void blendColor(GLclampf red, GLclampf green, GLclampf blue, GLclampf alpha);\n void blendEquation(GLenum mode);\n void blendEquationSeparate(GLenum modeRGB, GLenum modeAlpha);\n void blendFunc(GLenum sfactor, GLenum dfactor);\n void blendFuncSeparate(GLenum srcRGB, GLenum dstRGB,\n GLenum srcAlpha, GLenum dstAlpha);\n\n void bufferData(GLenum target, GLsizeiptr size, GLenum usage);\n void bufferData(GLenum target, [AllowShared] BufferSource? data, GLenum usage);\n void bufferSubData(GLenum target, GLintptr offset, [AllowShared] BufferSource data);\n\n [WebGLHandlesContextLoss] GLenum checkFramebufferStatus(GLenum target);\n void clear(GLbitfield mask);\n void clearColor(GLclampf red, GLclampf green, GLclampf blue, GLclampf alpha);\n void clearDepth(GLclampf depth);\n void clearStencil(GLint s);\n void colorMask(GLboolean red, GLboolean green, GLboolean blue, GLboolean alpha);\n void compileShader(WebGLShader shader);\n\n void compressedTexImage2D(GLenum target, GLint level, GLenum internalformat,\n GLsizei width, GLsizei height, GLint border,\n [AllowShared] ArrayBufferView data);\n void compressedTexSubImage2D(GLenum target, GLint level,\n GLint xoffset, GLint yoffset,\n GLsizei width, GLsizei height, GLenum format,\n [AllowShared] ArrayBufferView data);\n\n void copyTexImage2D(GLenum target, GLint level, GLenum internalformat,\n GLint x, GLint y, GLsizei width, GLsizei height,\n GLint border);\n void copyTexSubImage2D(GLenum target, GLint level, GLint xoffset, GLint yoffset,\n GLint x, GLint y, GLsizei width, GLsizei height);\n\n WebGLBuffer? createBuffer();\n WebGLFramebuffer? createFramebuffer();\n WebGLProgram? createProgram();\n WebGLRenderbuffer? createRenderbuffer();\n WebGLShader? createShader(GLenum type);\n WebGLTexture? createTexture();\n\n void cullFace(GLenum mode);\n\n void deleteBuffer(WebGLBuffer? buffer);\n void deleteFramebuffer(WebGLFramebuffer? framebuffer);\n void deleteProgram(WebGLProgram? program);\n void deleteRenderbuffer(WebGLRenderbuffer? renderbuffer);\n void deleteShader(WebGLShader? shader);\n void deleteTexture(WebGLTexture? texture);\n\n void depthFunc(GLenum func);\n void depthMask(GLboolean flag);\n void depthRange(GLclampf zNear, GLclampf zFar);\n void detachShader(WebGLProgram program, WebGLShader shader);\n void disable(GLenum cap);\n void disableVertexAttribArray(GLuint index);\n void drawArrays(GLenum mode, GLint first, GLsizei count);\n void drawElements(GLenum mode, GLsizei count, GLenum type, GLintptr offset);\n\n void enable(GLenum cap);\n void enableVertexAttribArray(GLuint index);\n void finish();\n void flush();\n void framebufferRenderbuffer(GLenum target, GLenum attachment,\n GLenum renderbuffertarget,\n WebGLRenderbuffer? renderbuffer);\n void framebufferTexture2D(GLenum target, GLenum attachment, GLenum textarget,\n WebGLTexture? texture, GLint level);\n void frontFace(GLenum mode);\n\n void generateMipmap(GLenum target);\n\n WebGLActiveInfo? getActiveAttrib(WebGLProgram program, GLuint index);\n WebGLActiveInfo? getActiveUniform(WebGLProgram program, GLuint index);\n sequence<WebGLShader>? getAttachedShaders(WebGLProgram program);\n\n [WebGLHandlesContextLoss] GLint getAttribLocation(WebGLProgram program, DOMString name);\n\n any getBufferParameter(GLenum target, GLenum pname);\n any getParameter(GLenum pname);\n\n [WebGLHandlesContextLoss] GLenum getError();\n\n any getFramebufferAttachmentParameter(GLenum target, GLenum attachment,\n GLenum pname);\n any getProgramParameter(WebGLProgram program, GLenum pname);\n DOMString? getProgramInfoLog(WebGLProgram program);\n any getRenderbufferParameter(GLenum target, GLenum pname);\n any getShaderParameter(WebGLShader shader, GLenum pname);\n WebGLShaderPrecisionFormat? getShaderPrecisionFormat(GLenum shadertype, GLenum precisiontype);\n DOMString? getShaderInfoLog(WebGLShader shader);\n\n DOMString? getShaderSource(WebGLShader shader);\n\n any getTexParameter(GLenum target, GLenum pname);\n\n any getUniform(WebGLProgram program, WebGLUniformLocation location);\n\n WebGLUniformLocation? getUniformLocation(WebGLProgram program, DOMString name);\n\n any getVertexAttrib(GLuint index, GLenum pname);\n\n [WebGLHandlesContextLoss] GLintptr getVertexAttribOffset(GLuint index, GLenum pname);\n\n void hint(GLenum target, GLenum mode);\n [WebGLHandlesContextLoss] GLboolean isBuffer(WebGLBuffer? buffer);\n [WebGLHandlesContextLoss] GLboolean isEnabled(GLenum cap);\n [WebGLHandlesContextLoss] GLboolean isFramebuffer(WebGLFramebuffer? framebuffer);\n [WebGLHandlesContextLoss] GLboolean isProgram(WebGLProgram? program);\n [WebGLHandlesContextLoss] GLboolean isRenderbuffer(WebGLRenderbuffer? renderbuffer);\n [WebGLHandlesContextLoss] GLboolean isShader(WebGLShader? shader);\n [WebGLHandlesContextLoss] GLboolean isTexture(WebGLTexture? texture);\n void lineWidth(GLfloat width);\n void linkProgram(WebGLProgram program);\n void pixelStorei(GLenum pname, GLint param);\n void polygonOffset(GLfloat factor, GLfloat units);\n\n void readPixels(GLint x, GLint y, GLsizei width, GLsizei height,\n GLenum format, GLenum type, [AllowShared] ArrayBufferView? pixels);\n\n void renderbufferStorage(GLenum target, GLenum internalformat,\n GLsizei width, GLsizei height);\n void sampleCoverage(GLclampf value, GLboolean invert);\n void scissor(GLint x, GLint y, GLsizei width, GLsizei height);\n\n void shaderSource(WebGLShader shader, DOMString source);\n\n void stencilFunc(GLenum func, GLint ref, GLuint mask);\n void stencilFuncSeparate(GLenum face, GLenum func, GLint ref, GLuint mask);\n void stencilMask(GLuint mask);\n void stencilMaskSeparate(GLenum face, GLuint mask);\n void stencilOp(GLenum fail, GLenum zfail, GLenum zpass);\n void stencilOpSeparate(GLenum face, GLenum fail, GLenum zfail, GLenum zpass);\n\n void texImage2D(GLenum target, GLint level, GLint internalformat,\n GLsizei width, GLsizei height, GLint border, GLenum format,\n GLenum type, [AllowShared] ArrayBufferView? pixels);\n void texImage2D(GLenum target, GLint level, GLint internalformat,\n GLenum format, GLenum type, TexImageSource source); // May throw DOMException\n\n void texParameterf(GLenum target, GLenum pname, GLfloat param);\n void texParameteri(GLenum target, GLenum pname, GLint param);\n\n void texSubImage2D(GLenum target, GLint level, GLint xoffset, GLint yoffset,\n GLsizei width, GLsizei height,\n GLenum format, GLenum type, [AllowShared] ArrayBufferView? pixels);\n void texSubImage2D(GLenum target, GLint level, GLint xoffset, GLint yoffset,\n GLenum format, GLenum type, TexImageSource source); // May throw DOMException\n\n void uniform1f(WebGLUniformLocation? location, GLfloat x);\n void uniform2f(WebGLUniformLocation? location, GLfloat x, GLfloat y);\n void uniform3f(WebGLUniformLocation? location, GLfloat x, GLfloat y, GLfloat z);\n void uniform4f(WebGLUniformLocation? location, GLfloat x, GLfloat y, GLfloat z, GLfloat w);\n\n void uniform1i(WebGLUniformLocation? location, GLint x);\n void uniform2i(WebGLUniformLocation? location, GLint x, GLint y);\n void uniform3i(WebGLUniformLocation? location, GLint x, GLint y, GLint z);\n void uniform4i(WebGLUniformLocation? location, GLint x, GLint y, GLint z, GLint w);\n\n void uniform1fv(WebGLUniformLocation? location, Float32List v);\n void uniform2fv(WebGLUniformLocation? location, Float32List v);\n void uniform3fv(WebGLUniformLocation? location, Float32List v);\n void uniform4fv(WebGLUniformLocation? location, Float32List v);\n\n void uniform1iv(WebGLUniformLocation? location, Int32List v);\n void uniform2iv(WebGLUniformLocation? location, Int32List v);\n void uniform3iv(WebGLUniformLocation? location, Int32List v);\n void uniform4iv(WebGLUniformLocation? location, Int32List v);\n\n void uniformMatrix2fv(WebGLUniformLocation? location, GLboolean transpose, Float32List value);\n void uniformMatrix3fv(WebGLUniformLocation? location, GLboolean transpose, Float32List value);\n void uniformMatrix4fv(WebGLUniformLocation? location, GLboolean transpose, Float32List value);\n\n void useProgram(WebGLProgram? program);\n void validateProgram(WebGLProgram program);\n\n void vertexAttrib1f(GLuint index, GLfloat x);\n void vertexAttrib2f(GLuint index, GLfloat x, GLfloat y);\n void vertexAttrib3f(GLuint index, GLfloat x, GLfloat y, GLfloat z);\n void vertexAttrib4f(GLuint index, GLfloat x, GLfloat y, GLfloat z, GLfloat w);\n\n void vertexAttrib1fv(GLuint index, Float32List values);\n void vertexAttrib2fv(GLuint index, Float32List values);\n void vertexAttrib3fv(GLuint index, Float32List values);\n void vertexAttrib4fv(GLuint index, Float32List values);\n\n void vertexAttribPointer(GLuint index, GLint size, GLenum type,\n GLboolean normalized, GLsizei stride, GLintptr offset);\n\n void viewport(GLint x, GLint y, GLsizei width, GLsizei height);\n};\n\n[Exposed=(Window,Worker)]\ninterface WebGLRenderingContext\n{\n};\nWebGLRenderingContext includes WebGLRenderingContextBase;\n\n\n[Exposed=(Window,Worker),\n Constructor(DOMString type,\n optional WebGLContextEventInit eventInit)]\ninterface WebGLContextEvent : Event {\n readonly attribute DOMString statusMessage;\n};\n\n// EventInit is defined in the DOM4 specification.\ndictionary WebGLContextEventInit : EventInit {\n DOMString statusMessage = \"\";\n};\n";Expand description
The contents of webgl.idl