michael@0: /* -*- Mode: IDL; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */ michael@0: /* This Source Code Form is subject to the terms of the Mozilla Public michael@0: * License, v. 2.0. If a copy of the MPL was not distributed with this file, michael@0: * You can obtain one at http://mozilla.org/MPL/2.0/. michael@0: * michael@0: * This IDL depends on WebGLRenderingContext.webidl michael@0: */ michael@0: michael@0: [Pref="webgl.enable-prototype-webgl2"] michael@0: interface WebGLQuery { michael@0: }; michael@0: michael@0: [Pref="webgl.enable-prototype-webgl2"] michael@0: interface WebGL2RenderingContext : WebGLRenderingContext { michael@0: michael@0: /* depth textures */ michael@0: const GLenum UNSIGNED_INT_24_8 = 0x84FA; michael@0: michael@0: michael@0: /* draw buffers */ michael@0: const GLenum COLOR_ATTACHMENT1 = 0x8CE1; michael@0: const GLenum COLOR_ATTACHMENT2 = 0x8CE2; michael@0: const GLenum COLOR_ATTACHMENT3 = 0x8CE3; michael@0: const GLenum COLOR_ATTACHMENT4 = 0x8CE4; michael@0: const GLenum COLOR_ATTACHMENT5 = 0x8CE5; michael@0: const GLenum COLOR_ATTACHMENT6 = 0x8CE6; michael@0: const GLenum COLOR_ATTACHMENT7 = 0x8CE7; michael@0: const GLenum COLOR_ATTACHMENT8 = 0x8CE8; michael@0: const GLenum COLOR_ATTACHMENT9 = 0x8CE9; michael@0: const GLenum COLOR_ATTACHMENT10 = 0x8CEA; michael@0: const GLenum COLOR_ATTACHMENT11 = 0x8CEB; michael@0: const GLenum COLOR_ATTACHMENT12 = 0x8CEC; michael@0: const GLenum COLOR_ATTACHMENT13 = 0x8CED; michael@0: const GLenum COLOR_ATTACHMENT14 = 0x8CEE; michael@0: const GLenum COLOR_ATTACHMENT15 = 0x8CEF; michael@0: michael@0: const GLenum DRAW_BUFFER0 = 0x8825; michael@0: const GLenum DRAW_BUFFER1 = 0x8826; michael@0: const GLenum DRAW_BUFFER2 = 0x8827; michael@0: const GLenum DRAW_BUFFER3 = 0x8828; michael@0: const GLenum DRAW_BUFFER4 = 0x8829; michael@0: const GLenum DRAW_BUFFER5 = 0x882A; michael@0: const GLenum DRAW_BUFFER6 = 0x882B; michael@0: const GLenum DRAW_BUFFER7 = 0x882C; michael@0: const GLenum DRAW_BUFFER8 = 0x882D; michael@0: const GLenum DRAW_BUFFER9 = 0x882E; michael@0: const GLenum DRAW_BUFFER10 = 0x882F; michael@0: const GLenum DRAW_BUFFER11 = 0x8830; michael@0: const GLenum DRAW_BUFFER12 = 0x8831; michael@0: const GLenum DRAW_BUFFER13 = 0x8832; michael@0: const GLenum DRAW_BUFFER14 = 0x8833; michael@0: const GLenum DRAW_BUFFER15 = 0x8834; michael@0: michael@0: const GLenum MAX_COLOR_ATTACHMENTS = 0x8CDF; michael@0: const GLenum MAX_DRAW_BUFFERS = 0x8824; michael@0: michael@0: void drawBuffers(sequence buffers); michael@0: michael@0: michael@0: /* draw instanced */ michael@0: void drawArraysInstanced(GLenum mode, GLint first, GLsizei count, GLsizei primcount); michael@0: void drawElementsInstanced(GLenum mode, GLsizei count, GLenum type, GLintptr offset, GLsizei primcount); michael@0: michael@0: michael@0: /* instanced array */ michael@0: const GLenum VERTEX_ATTRIB_ARRAY_DIVISOR = 0x88FE; michael@0: michael@0: void vertexAttribDivisor(GLuint index, GLuint divisor); michael@0: michael@0: michael@0: /* blend equations */ michael@0: const GLenum MIN = 0x8007; michael@0: const GLenum MAX = 0x8008; michael@0: michael@0: michael@0: /* transform feedback */ michael@0: const GLenum RASTERIZER_DISCARD = 0x8C89; michael@0: const GLenum TRANSFORM_FEEDBACK_BUFFER = 0x8C8E; michael@0: const GLenum TRANSFORM_FEEDBACK_BUFFER_BINDING = 0x8C8F; michael@0: const GLenum TRANSFORM_FEEDBACK_BUFFER_START = 0x8C84; michael@0: const GLenum TRANSFORM_FEEDBACK_BUFFER_SIZE = 0x8C85; michael@0: const GLenum MAX_TRANSFORM_FEEDBACK_SEPARATE_ATTRIBS = 0x8C8B; michael@0: michael@0: michael@0: /* query objects */ michael@0: const GLenum CURRENT_QUERY = 0x8865; michael@0: const GLenum QUERY_RESULT = 0x8866; michael@0: const GLenum QUERY_RESULT_AVAILABLE = 0x8867; michael@0: michael@0: void beginQuery(GLenum target, WebGLQuery? queryObject); michael@0: WebGLQuery? createQuery(); michael@0: void deleteQuery(WebGLQuery? queryObject); michael@0: void endQuery(GLenum target); michael@0: WebGLQuery? getQuery(GLenum target, GLenum pname); michael@0: any getQueryObject(WebGLQuery? queryObject, GLenum pname); michael@0: [WebGLHandlesContextLoss] GLboolean isQuery(WebGLQuery? queryObject); michael@0: michael@0: michael@0: /* occlusion queries */ michael@0: const GLenum ANY_SAMPLES_PASSED = 0x8C2F; michael@0: const GLenum ANY_SAMPLES_PASSED_CONSERVATIVE = 0x8D6A; michael@0: michael@0: michael@0: /* transform feedback queries */ michael@0: const GLenum TRANSFORM_FEEDBACK_PRIMITIVES_WRITTEN = 0x8C88; michael@0: michael@0: michael@0: /* buffer objects */ michael@0: void bindBufferBase(GLenum target, GLuint index, WebGLBuffer? buffer); michael@0: void bindBufferRange(GLenum target, GLuint index, WebGLBuffer? buffer, michael@0: GLintptr offset, GLsizeiptr size); michael@0: michael@0: michael@0: /* standart derivatives */ michael@0: const GLenum FRAGMENT_SHADER_DERIVATIVE_HINT = 0x8B8B; michael@0: michael@0: michael@0: /* state requests */ michael@0: any getParameterIndexed(GLenum pname, GLuint index); michael@0: michael@0: michael@0: /* vertex array objects */ michael@0: const GLenum VERTEX_ARRAY_BINDING = 0x85B5; michael@0: michael@0: void bindVertexArray(WebGLVertexArray? arrayObject); michael@0: WebGLVertexArray? createVertexArray(); michael@0: void deleteVertexArray(WebGLVertexArray? arrayObject); michael@0: [WebGLHandlesContextLoss] GLboolean isVertexArray(WebGLVertexArray? arrayObject); michael@0: michael@0: }; michael@0: