| // Copyright (c) 2024, the Dart project authors. Please see the AUTHORS file |
| // for details. All rights reserved. Use of this source code is governed by a |
| // BSD-style license that can be found in the LICENSE file. |
| // |
| // API docs from [MDN Web Docs](https://developer.mozilla.org/en-US/docs/Web). |
| // Attributions and copyright licensing by Mozilla Contributors is licensed |
| // under [CC-BY-SA 2.5](https://creativecommons.org/licenses/by-sa/2.5/. |
| |
| // Generated from Web IDL definitions. |
| |
| @JS() |
| library; |
| |
| import 'dart:js_interop'; |
| |
| import 'dom.dart'; |
| import 'html.dart'; |
| import 'webidl.dart'; |
| |
| typedef GLenum = int; |
| typedef GLboolean = bool; |
| typedef GLbitfield = int; |
| typedef GLint = int; |
| typedef GLsizei = int; |
| typedef GLintptr = int; |
| typedef GLsizeiptr = int; |
| typedef GLuint = int; |
| typedef GLfloat = num; |
| typedef GLclampf = num; |
| typedef TexImageSource = JSObject; |
| typedef Float32List = JSObject; |
| typedef Int32List = JSObject; |
| typedef WebGLPowerPreference = String; |
| extension type WebGLContextAttributes._(JSObject _) implements JSObject { |
| external factory WebGLContextAttributes({ |
| bool alpha, |
| bool depth, |
| bool stencil, |
| bool antialias, |
| bool premultipliedAlpha, |
| bool preserveDrawingBuffer, |
| WebGLPowerPreference powerPreference, |
| bool failIfMajorPerformanceCaveat, |
| bool desynchronized, |
| bool xrCompatible, |
| }); |
| |
| external bool get alpha; |
| external set alpha(bool value); |
| external bool get depth; |
| external set depth(bool value); |
| external bool get stencil; |
| external set stencil(bool value); |
| external bool get antialias; |
| external set antialias(bool value); |
| external bool get premultipliedAlpha; |
| external set premultipliedAlpha(bool value); |
| external bool get preserveDrawingBuffer; |
| external set preserveDrawingBuffer(bool value); |
| external WebGLPowerPreference get powerPreference; |
| external set powerPreference(WebGLPowerPreference value); |
| external bool get failIfMajorPerformanceCaveat; |
| external set failIfMajorPerformanceCaveat(bool value); |
| external bool get desynchronized; |
| external set desynchronized(bool value); |
| external bool get xrCompatible; |
| external set xrCompatible(bool value); |
| } |
| |
| /// The **WebGLBuffer** interface is part of the |
| /// [WebGL API](https://developer.mozilla.org/en-US/docs/Web/API/WebGL_API) and |
| /// represents an opaque buffer object storing data such as vertices or colors. |
| /// |
| /// --- |
| /// |
| /// API documentation sourced from |
| /// [MDN Web Docs](https://developer.mozilla.org/en-US/docs/Web/API/WebGLBuffer). |
| extension type WebGLBuffer._(JSObject _) implements JSObject {} |
| |
| /// The **WebGLFramebuffer** interface is part of the |
| /// [WebGL API](https://developer.mozilla.org/en-US/docs/Web/API/WebGL_API) and |
| /// represents a collection of buffers that serve as a rendering destination. |
| /// |
| /// --- |
| /// |
| /// API documentation sourced from |
| /// [MDN Web Docs](https://developer.mozilla.org/en-US/docs/Web/API/WebGLFramebuffer). |
| extension type WebGLFramebuffer._(JSObject _) implements JSObject {} |
| |
| /// The **`WebGLProgram`** is part of the |
| /// [WebGL API](https://developer.mozilla.org/en-US/docs/Web/API/WebGL_API) and |
| /// is a combination of two compiled [WebGLShader]s consisting of a vertex |
| /// shader and a fragment shader (both written in GLSL). |
| /// |
| /// To create a `WebGLProgram`, call the GL context's |
| /// [WebGLRenderingContext.createProgram] function. After attaching the shader |
| /// programs using [WebGLRenderingContext.attachShader], you link them into a |
| /// usable program. This is shown in the code below. |
| /// |
| /// ```js |
| /// const program = gl.createProgram(); |
| /// |
| /// // Attach pre-existing shaders |
| /// gl.attachShader(program, vertexShader); |
| /// gl.attachShader(program, fragmentShader); |
| /// |
| /// gl.linkProgram(program); |
| /// |
| /// if (!gl.getProgramParameter(program, gl.LINK_STATUS)) { |
| /// const info = gl.getProgramInfoLog(program); |
| /// throw `Could not compile WebGL program. \n\n${info}`; |
| /// } |
| /// ``` |
| /// |
| /// See [WebGLShader] for information on creating the `vertexShader` and |
| /// `fragmentShader` in the above example. |
| /// |
| /// --- |
| /// |
| /// API documentation sourced from |
| /// [MDN Web Docs](https://developer.mozilla.org/en-US/docs/Web/API/WebGLProgram). |
| extension type WebGLProgram._(JSObject _) implements JSObject {} |
| |
| /// The **WebGLRenderbuffer** interface is part of the |
| /// [WebGL API](https://developer.mozilla.org/en-US/docs/Web/API/WebGL_API) and |
| /// represents a buffer that can contain an image, or that can be a source or |
| /// target of a rendering operation. |
| /// |
| /// --- |
| /// |
| /// API documentation sourced from |
| /// [MDN Web Docs](https://developer.mozilla.org/en-US/docs/Web/API/WebGLRenderbuffer). |
| extension type WebGLRenderbuffer._(JSObject _) implements JSObject {} |
| |
| /// The **WebGLShader** is part of the |
| /// [WebGL API](https://developer.mozilla.org/en-US/docs/Web/API/WebGL_API) and |
| /// can either be a vertex or a fragment shader. A [WebGLProgram] requires both |
| /// types of shaders. |
| /// |
| /// --- |
| /// |
| /// API documentation sourced from |
| /// [MDN Web Docs](https://developer.mozilla.org/en-US/docs/Web/API/WebGLShader). |
| extension type WebGLShader._(JSObject _) implements JSObject {} |
| |
| /// The **WebGLTexture** interface is part of the |
| /// [WebGL API](https://developer.mozilla.org/en-US/docs/Web/API/WebGL_API) and |
| /// represents an opaque texture object providing storage and state for |
| /// texturing operations. |
| /// |
| /// --- |
| /// |
| /// API documentation sourced from |
| /// [MDN Web Docs](https://developer.mozilla.org/en-US/docs/Web/API/WebGLTexture). |
| extension type WebGLTexture._(JSObject _) implements JSObject {} |
| |
| /// The **WebGLUniformLocation** interface is part of the |
| /// [WebGL API](https://developer.mozilla.org/en-US/docs/Web/API/WebGL_API) and |
| /// represents the location of a uniform variable in a shader program. |
| /// |
| /// --- |
| /// |
| /// API documentation sourced from |
| /// [MDN Web Docs](https://developer.mozilla.org/en-US/docs/Web/API/WebGLUniformLocation). |
| extension type WebGLUniformLocation._(JSObject _) implements JSObject {} |
| |
| /// The **WebGLActiveInfo** interface is part of the |
| /// [WebGL API](https://developer.mozilla.org/en-US/docs/Web/API/WebGL_API) and |
| /// represents the information returned by calling the |
| /// [WebGLRenderingContext.getActiveAttrib] and |
| /// [WebGLRenderingContext.getActiveUniform] methods. |
| /// |
| /// --- |
| /// |
| /// API documentation sourced from |
| /// [MDN Web Docs](https://developer.mozilla.org/en-US/docs/Web/API/WebGLActiveInfo). |
| extension type WebGLActiveInfo._(JSObject _) implements JSObject { |
| /// The read-only **`WebGLActiveInfo.size`** property is a `Number` |
| /// representing the size of the requested data returned by calling the |
| /// [WebGLRenderingContext.getActiveAttrib] or |
| /// [WebGLRenderingContext.getActiveUniform] methods. |
| external GLint get size; |
| |
| /// The read-only **`WebGLActiveInfo.type`** property represents the type of |
| /// the requested data returned by calling the |
| /// [WebGLRenderingContext.getActiveAttrib] or |
| /// [WebGLRenderingContext.getActiveUniform] methods. |
| external GLenum get type; |
| |
| /// The read-only **`WebGLActiveInfo.name`** property represents the name of |
| /// the requested data returned by calling the |
| /// [WebGLRenderingContext.getActiveAttrib] or |
| /// [WebGLRenderingContext.getActiveUniform] methods. |
| external String get name; |
| } |
| |
| /// The **WebGLShaderPrecisionFormat** interface is part of the |
| /// [WebGL API](https://developer.mozilla.org/en-US/docs/Web/API/WebGL_API) and |
| /// represents the information returned by calling the |
| /// [WebGLRenderingContext.getShaderPrecisionFormat] method. |
| /// |
| /// --- |
| /// |
| /// API documentation sourced from |
| /// [MDN Web Docs](https://developer.mozilla.org/en-US/docs/Web/API/WebGLShaderPrecisionFormat). |
| extension type WebGLShaderPrecisionFormat._(JSObject _) implements JSObject { |
| /// The read-only **`WebGLShaderPrecisionFormat.rangeMin`** property returns |
| /// the base 2 log of the absolute value of the minimum value that can be |
| /// represented. |
| external GLint get rangeMin; |
| |
| /// The read-only **`WebGLShaderPrecisionFormat.rangeMax`** property returns |
| /// the base 2 log of the absolute value of the maximum value that can be |
| /// represented. |
| external GLint get rangeMax; |
| |
| /// The read-only **`WebGLShaderPrecisionFormat.precision`** property returns |
| /// the number of bits of precision that can be represented. |
| /// |
| /// For integer formats this value is always 0. |
| external GLint get precision; |
| } |
| |
| /// The **`WebGLRenderingContext`** interface provides an interface to the |
| /// OpenGL ES 2.0 graphics rendering context for the drawing surface of an HTML |
| /// `canvas` element. |
| /// |
| /// To get an access to a WebGL context for 2D and/or 3D graphics rendering, |
| /// call [HTMLCanvasElement.getContext] on a `<canvas>` element, supplying |
| /// "webgl" as the argument: |
| /// |
| /// ```js |
| /// const canvas = document.getElementById("myCanvas"); |
| /// const gl = canvas.getContext("webgl"); |
| /// ``` |
| /// |
| /// Once you have the WebGL rendering context for a canvas, you can render |
| /// within it. The |
| /// [WebGL tutorial](https://developer.mozilla.org/en-US/docs/Web/API/WebGL_API/Tutorial) |
| /// has more information, examples, and resources on how to get started with |
| /// WebGL. |
| /// |
| /// If you require a WebGL 2.0 context, see [WebGL2RenderingContext]; this |
| /// supplies access to an implementation of OpenGL ES 3.0 graphics. |
| /// |
| /// --- |
| /// |
| /// API documentation sourced from |
| /// [MDN Web Docs](https://developer.mozilla.org/en-US/docs/Web/API/WebGLRenderingContext). |
| extension type WebGLRenderingContext._(JSObject _) implements JSObject { |
| external static GLenum get DEPTH_BUFFER_BIT; |
| external static GLenum get STENCIL_BUFFER_BIT; |
| external static GLenum get COLOR_BUFFER_BIT; |
| external static GLenum get POINTS; |
| external static GLenum get LINES; |
| external static GLenum get LINE_LOOP; |
| external static GLenum get LINE_STRIP; |
| external static GLenum get TRIANGLES; |
| external static GLenum get TRIANGLE_STRIP; |
| external static GLenum get TRIANGLE_FAN; |
| external static GLenum get ZERO; |
| external static GLenum get ONE; |
| external static GLenum get SRC_COLOR; |
| external static GLenum get ONE_MINUS_SRC_COLOR; |
| external static GLenum get SRC_ALPHA; |
| external static GLenum get ONE_MINUS_SRC_ALPHA; |
| external static GLenum get DST_ALPHA; |
| external static GLenum get ONE_MINUS_DST_ALPHA; |
| external static GLenum get DST_COLOR; |
| external static GLenum get ONE_MINUS_DST_COLOR; |
| external static GLenum get SRC_ALPHA_SATURATE; |
| external static GLenum get FUNC_ADD; |
| external static GLenum get BLEND_EQUATION; |
| external static GLenum get BLEND_EQUATION_RGB; |
| external static GLenum get BLEND_EQUATION_ALPHA; |
| external static GLenum get FUNC_SUBTRACT; |
| external static GLenum get FUNC_REVERSE_SUBTRACT; |
| external static GLenum get BLEND_DST_RGB; |
| external static GLenum get BLEND_SRC_RGB; |
| external static GLenum get BLEND_DST_ALPHA; |
| external static GLenum get BLEND_SRC_ALPHA; |
| external static GLenum get CONSTANT_COLOR; |
| external static GLenum get ONE_MINUS_CONSTANT_COLOR; |
| external static GLenum get CONSTANT_ALPHA; |
| external static GLenum get ONE_MINUS_CONSTANT_ALPHA; |
| external static GLenum get BLEND_COLOR; |
| external static GLenum get ARRAY_BUFFER; |
| external static GLenum get ELEMENT_ARRAY_BUFFER; |
| external static GLenum get ARRAY_BUFFER_BINDING; |
| external static GLenum get ELEMENT_ARRAY_BUFFER_BINDING; |
| external static GLenum get STREAM_DRAW; |
| external static GLenum get STATIC_DRAW; |
| external static GLenum get DYNAMIC_DRAW; |
| external static GLenum get BUFFER_SIZE; |
| external static GLenum get BUFFER_USAGE; |
| external static GLenum get CURRENT_VERTEX_ATTRIB; |
| external static GLenum get FRONT; |
| external static GLenum get BACK; |
| external static GLenum get FRONT_AND_BACK; |
| external static GLenum get CULL_FACE; |
| external static GLenum get BLEND; |
| external static GLenum get DITHER; |
| external static GLenum get STENCIL_TEST; |
| external static GLenum get DEPTH_TEST; |
| external static GLenum get SCISSOR_TEST; |
| external static GLenum get POLYGON_OFFSET_FILL; |
| external static GLenum get SAMPLE_ALPHA_TO_COVERAGE; |
| external static GLenum get SAMPLE_COVERAGE; |
| external static GLenum get NO_ERROR; |
| external static GLenum get INVALID_ENUM; |
| external static GLenum get INVALID_VALUE; |
| external static GLenum get INVALID_OPERATION; |
| external static GLenum get OUT_OF_MEMORY; |
| external static GLenum get CW; |
| external static GLenum get CCW; |
| external static GLenum get LINE_WIDTH; |
| external static GLenum get ALIASED_POINT_SIZE_RANGE; |
| external static GLenum get ALIASED_LINE_WIDTH_RANGE; |
| external static GLenum get CULL_FACE_MODE; |
| external static GLenum get FRONT_FACE; |
| external static GLenum get DEPTH_RANGE; |
| external static GLenum get DEPTH_WRITEMASK; |
| external static GLenum get DEPTH_CLEAR_VALUE; |
| external static GLenum get DEPTH_FUNC; |
| external static GLenum get STENCIL_CLEAR_VALUE; |
| external static GLenum get STENCIL_FUNC; |
| external static GLenum get STENCIL_FAIL; |
| external static GLenum get STENCIL_PASS_DEPTH_FAIL; |
| external static GLenum get STENCIL_PASS_DEPTH_PASS; |
| external static GLenum get STENCIL_REF; |
| external static GLenum get STENCIL_VALUE_MASK; |
| external static GLenum get STENCIL_WRITEMASK; |
| external static GLenum get STENCIL_BACK_FUNC; |
| external static GLenum get STENCIL_BACK_FAIL; |
| external static GLenum get STENCIL_BACK_PASS_DEPTH_FAIL; |
| external static GLenum get STENCIL_BACK_PASS_DEPTH_PASS; |
| external static GLenum get STENCIL_BACK_REF; |
| external static GLenum get STENCIL_BACK_VALUE_MASK; |
| external static GLenum get STENCIL_BACK_WRITEMASK; |
| external static GLenum get VIEWPORT; |
| external static GLenum get SCISSOR_BOX; |
| external static GLenum get COLOR_CLEAR_VALUE; |
| external static GLenum get COLOR_WRITEMASK; |
| external static GLenum get UNPACK_ALIGNMENT; |
| external static GLenum get PACK_ALIGNMENT; |
| external static GLenum get MAX_TEXTURE_SIZE; |
| external static GLenum get MAX_VIEWPORT_DIMS; |
| external static GLenum get SUBPIXEL_BITS; |
| external static GLenum get RED_BITS; |
| external static GLenum get GREEN_BITS; |
| external static GLenum get BLUE_BITS; |
| external static GLenum get ALPHA_BITS; |
| external static GLenum get DEPTH_BITS; |
| external static GLenum get STENCIL_BITS; |
| external static GLenum get POLYGON_OFFSET_UNITS; |
| external static GLenum get POLYGON_OFFSET_FACTOR; |
| external static GLenum get TEXTURE_BINDING_2D; |
| external static GLenum get SAMPLE_BUFFERS; |
| external static GLenum get SAMPLES; |
| external static GLenum get SAMPLE_COVERAGE_VALUE; |
| external static GLenum get SAMPLE_COVERAGE_INVERT; |
| external static GLenum get COMPRESSED_TEXTURE_FORMATS; |
| external static GLenum get DONT_CARE; |
| external static GLenum get FASTEST; |
| external static GLenum get NICEST; |
| external static GLenum get GENERATE_MIPMAP_HINT; |
| external static GLenum get BYTE; |
| external static GLenum get UNSIGNED_BYTE; |
| external static GLenum get SHORT; |
| external static GLenum get UNSIGNED_SHORT; |
| external static GLenum get INT; |
| external static GLenum get UNSIGNED_INT; |
| external static GLenum get FLOAT; |
| external static GLenum get DEPTH_COMPONENT; |
| external static GLenum get ALPHA; |
| external static GLenum get RGB; |
| external static GLenum get RGBA; |
| external static GLenum get LUMINANCE; |
| external static GLenum get LUMINANCE_ALPHA; |
| external static GLenum get UNSIGNED_SHORT_4_4_4_4; |
| external static GLenum get UNSIGNED_SHORT_5_5_5_1; |
| external static GLenum get UNSIGNED_SHORT_5_6_5; |
| external static GLenum get FRAGMENT_SHADER; |
| external static GLenum get VERTEX_SHADER; |
| external static GLenum get MAX_VERTEX_ATTRIBS; |
| external static GLenum get MAX_VERTEX_UNIFORM_VECTORS; |
| external static GLenum get MAX_VARYING_VECTORS; |
| external static GLenum get MAX_COMBINED_TEXTURE_IMAGE_UNITS; |
| external static GLenum get MAX_VERTEX_TEXTURE_IMAGE_UNITS; |
| external static GLenum get MAX_TEXTURE_IMAGE_UNITS; |
| external static GLenum get MAX_FRAGMENT_UNIFORM_VECTORS; |
| external static GLenum get SHADER_TYPE; |
| external static GLenum get DELETE_STATUS; |
| external static GLenum get LINK_STATUS; |
| external static GLenum get VALIDATE_STATUS; |
| external static GLenum get ATTACHED_SHADERS; |
| external static GLenum get ACTIVE_UNIFORMS; |
| external static GLenum get ACTIVE_ATTRIBUTES; |
| external static GLenum get SHADING_LANGUAGE_VERSION; |
| external static GLenum get CURRENT_PROGRAM; |
| external static GLenum get NEVER; |
| external static GLenum get LESS; |
| external static GLenum get EQUAL; |
| external static GLenum get LEQUAL; |
| external static GLenum get GREATER; |
| external static GLenum get NOTEQUAL; |
| external static GLenum get GEQUAL; |
| external static GLenum get ALWAYS; |
| external static GLenum get KEEP; |
| external static GLenum get REPLACE; |
| external static GLenum get INCR; |
| external static GLenum get DECR; |
| external static GLenum get INVERT; |
| external static GLenum get INCR_WRAP; |
| external static GLenum get DECR_WRAP; |
| external static GLenum get VENDOR; |
| external static GLenum get RENDERER; |
| external static GLenum get VERSION; |
| external static GLenum get NEAREST; |
| external static GLenum get LINEAR; |
| external static GLenum get NEAREST_MIPMAP_NEAREST; |
| external static GLenum get LINEAR_MIPMAP_NEAREST; |
| external static GLenum get NEAREST_MIPMAP_LINEAR; |
| external static GLenum get LINEAR_MIPMAP_LINEAR; |
| external static GLenum get TEXTURE_MAG_FILTER; |
| external static GLenum get TEXTURE_MIN_FILTER; |
| external static GLenum get TEXTURE_WRAP_S; |
| external static GLenum get TEXTURE_WRAP_T; |
| external static GLenum get TEXTURE_2D; |
| external static GLenum get TEXTURE; |
| external static GLenum get TEXTURE_CUBE_MAP; |
| external static GLenum get TEXTURE_BINDING_CUBE_MAP; |
| external static GLenum get TEXTURE_CUBE_MAP_POSITIVE_X; |
| external static GLenum get TEXTURE_CUBE_MAP_NEGATIVE_X; |
| external static GLenum get TEXTURE_CUBE_MAP_POSITIVE_Y; |
| external static GLenum get TEXTURE_CUBE_MAP_NEGATIVE_Y; |
| external static GLenum get TEXTURE_CUBE_MAP_POSITIVE_Z; |
| external static GLenum get TEXTURE_CUBE_MAP_NEGATIVE_Z; |
| external static GLenum get MAX_CUBE_MAP_TEXTURE_SIZE; |
| external static GLenum get TEXTURE0; |
| external static GLenum get TEXTURE1; |
| external static GLenum get TEXTURE2; |
| external static GLenum get TEXTURE3; |
| external static GLenum get TEXTURE4; |
| external static GLenum get TEXTURE5; |
| external static GLenum get TEXTURE6; |
| external static GLenum get TEXTURE7; |
| external static GLenum get TEXTURE8; |
| external static GLenum get TEXTURE9; |
| external static GLenum get TEXTURE10; |
| external static GLenum get TEXTURE11; |
| external static GLenum get TEXTURE12; |
| external static GLenum get TEXTURE13; |
| external static GLenum get TEXTURE14; |
| external static GLenum get TEXTURE15; |
| external static GLenum get TEXTURE16; |
| external static GLenum get TEXTURE17; |
| external static GLenum get TEXTURE18; |
| external static GLenum get TEXTURE19; |
| external static GLenum get TEXTURE20; |
| external static GLenum get TEXTURE21; |
| external static GLenum get TEXTURE22; |
| external static GLenum get TEXTURE23; |
| external static GLenum get TEXTURE24; |
| external static GLenum get TEXTURE25; |
| external static GLenum get TEXTURE26; |
| external static GLenum get TEXTURE27; |
| external static GLenum get TEXTURE28; |
| external static GLenum get TEXTURE29; |
| external static GLenum get TEXTURE30; |
| external static GLenum get TEXTURE31; |
| external static GLenum get ACTIVE_TEXTURE; |
| external static GLenum get REPEAT; |
| external static GLenum get CLAMP_TO_EDGE; |
| external static GLenum get MIRRORED_REPEAT; |
| external static GLenum get FLOAT_VEC2; |
| external static GLenum get FLOAT_VEC3; |
| external static GLenum get FLOAT_VEC4; |
| external static GLenum get INT_VEC2; |
| external static GLenum get INT_VEC3; |
| external static GLenum get INT_VEC4; |
| external static GLenum get BOOL; |
| external static GLenum get BOOL_VEC2; |
| external static GLenum get BOOL_VEC3; |
| external static GLenum get BOOL_VEC4; |
| external static GLenum get FLOAT_MAT2; |
| external static GLenum get FLOAT_MAT3; |
| external static GLenum get FLOAT_MAT4; |
| external static GLenum get SAMPLER_2D; |
| external static GLenum get SAMPLER_CUBE; |
| external static GLenum get VERTEX_ATTRIB_ARRAY_ENABLED; |
| external static GLenum get VERTEX_ATTRIB_ARRAY_SIZE; |
| external static GLenum get VERTEX_ATTRIB_ARRAY_STRIDE; |
| external static GLenum get VERTEX_ATTRIB_ARRAY_TYPE; |
| external static GLenum get VERTEX_ATTRIB_ARRAY_NORMALIZED; |
| external static GLenum get VERTEX_ATTRIB_ARRAY_POINTER; |
| external static GLenum get VERTEX_ATTRIB_ARRAY_BUFFER_BINDING; |
| external static GLenum get IMPLEMENTATION_COLOR_READ_TYPE; |
| external static GLenum get IMPLEMENTATION_COLOR_READ_FORMAT; |
| external static GLenum get COMPILE_STATUS; |
| external static GLenum get LOW_FLOAT; |
| external static GLenum get MEDIUM_FLOAT; |
| external static GLenum get HIGH_FLOAT; |
| external static GLenum get LOW_INT; |
| external static GLenum get MEDIUM_INT; |
| external static GLenum get HIGH_INT; |
| external static GLenum get FRAMEBUFFER; |
| external static GLenum get RENDERBUFFER; |
| external static GLenum get RGBA4; |
| external static GLenum get RGB5_A1; |
| external static GLenum get RGBA8; |
| external static GLenum get RGB565; |
| external static GLenum get DEPTH_COMPONENT16; |
| external static GLenum get STENCIL_INDEX8; |
| external static GLenum get DEPTH_STENCIL; |
| external static GLenum get RENDERBUFFER_WIDTH; |
| external static GLenum get RENDERBUFFER_HEIGHT; |
| external static GLenum get RENDERBUFFER_INTERNAL_FORMAT; |
| external static GLenum get RENDERBUFFER_RED_SIZE; |
| external static GLenum get RENDERBUFFER_GREEN_SIZE; |
| external static GLenum get RENDERBUFFER_BLUE_SIZE; |
| external static GLenum get RENDERBUFFER_ALPHA_SIZE; |
| external static GLenum get RENDERBUFFER_DEPTH_SIZE; |
| external static GLenum get RENDERBUFFER_STENCIL_SIZE; |
| external static GLenum get FRAMEBUFFER_ATTACHMENT_OBJECT_TYPE; |
| external static GLenum get FRAMEBUFFER_ATTACHMENT_OBJECT_NAME; |
| external static GLenum get FRAMEBUFFER_ATTACHMENT_TEXTURE_LEVEL; |
| external static GLenum get FRAMEBUFFER_ATTACHMENT_TEXTURE_CUBE_MAP_FACE; |
| external static GLenum get COLOR_ATTACHMENT0; |
| external static GLenum get DEPTH_ATTACHMENT; |
| external static GLenum get STENCIL_ATTACHMENT; |
| external static GLenum get DEPTH_STENCIL_ATTACHMENT; |
| external static GLenum get NONE; |
| external static GLenum get FRAMEBUFFER_COMPLETE; |
| external static GLenum get FRAMEBUFFER_INCOMPLETE_ATTACHMENT; |
| external static GLenum get FRAMEBUFFER_INCOMPLETE_MISSING_ATTACHMENT; |
| external static GLenum get FRAMEBUFFER_INCOMPLETE_DIMENSIONS; |
| external static GLenum get FRAMEBUFFER_UNSUPPORTED; |
| external static GLenum get FRAMEBUFFER_BINDING; |
| external static GLenum get RENDERBUFFER_BINDING; |
| external static GLenum get MAX_RENDERBUFFER_SIZE; |
| external static GLenum get INVALID_FRAMEBUFFER_OPERATION; |
| external static GLenum get UNPACK_FLIP_Y_WEBGL; |
| external static GLenum get UNPACK_PREMULTIPLY_ALPHA_WEBGL; |
| external static GLenum get CONTEXT_LOST_WEBGL; |
| external static GLenum get UNPACK_COLORSPACE_CONVERSION_WEBGL; |
| external static GLenum get BROWSER_DEFAULT_WEBGL; |
| |
| /// The **`WebGLRenderingContext.getContextAttributes()`** method |
| /// returns a `WebGLContextAttributes` object that contains the actual context |
| /// parameters. Might return |
| /// [`null`](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Operators/null), |
| /// if the context is lost. |
| external WebGLContextAttributes? getContextAttributes(); |
| |
| /// The |
| /// **`WebGLRenderingContext.isContextLost()`** method returns a |
| /// boolean value indicating whether or not the WebGL context has been lost |
| /// and |
| /// must be re-established before rendering can resume. |
| external bool isContextLost(); |
| |
| /// The **`WebGLRenderingContext.getSupportedExtensions()`** method |
| /// returns a list of all the supported |
| /// [WebGL](https://developer.mozilla.org/en-US/docs/Web/API/WebGL_API) |
| /// extensions. |
| external JSArray<JSString>? getSupportedExtensions(); |
| |
| /// The **`WebGLRenderingContext.getExtension()`** method enables a |
| /// [WebGL](https://developer.mozilla.org/en-US/docs/Web/API/WebGL_API) |
| /// extension. |
| external JSObject? getExtension(String name); |
| |
| /// The **`WebGLRenderingContext.activeTexture()`** method of the |
| /// [WebGL API](https://developer.mozilla.org/en-US/docs/Web/API/WebGL_API) |
| /// specifies which texture unit to |
| /// make active. |
| external void activeTexture(GLenum texture); |
| |
| /// The **WebGLRenderingContext.attachShader()** method of the |
| /// [WebGL API](https://developer.mozilla.org/en-US/docs/Web/API/WebGL_API) |
| /// attaches either a fragment or |
| /// vertex [WebGLShader] to a [WebGLProgram]. |
| external void attachShader( |
| WebGLProgram program, |
| WebGLShader shader, |
| ); |
| |
| /// The **`WebGLRenderingContext.bindAttribLocation()`** method of |
| /// the |
| /// [WebGL API](https://developer.mozilla.org/en-US/docs/Web/API/WebGL_API) |
| /// binds a generic vertex index |
| /// to an attribute variable. |
| external void bindAttribLocation( |
| WebGLProgram program, |
| GLuint index, |
| String name, |
| ); |
| |
| /// The **`WebGLRenderingContext.bindBuffer()`** method of the |
| /// [WebGL API](https://developer.mozilla.org/en-US/docs/Web/API/WebGL_API) |
| /// binds a given |
| /// [WebGLBuffer] to a target. |
| external void bindBuffer( |
| GLenum target, |
| WebGLBuffer? buffer, |
| ); |
| |
| /// The **`WebGLRenderingContext.bindFramebuffer()`** method of the |
| /// [WebGL API](https://developer.mozilla.org/en-US/docs/Web/API/WebGL_API) |
| /// binds to the specified target the provided [WebGLFramebuffer], or, if the |
| /// `framebuffer` argument is null, the default [WebGLFramebuffer], which is |
| /// associated with the canvas rendering context. |
| external void bindFramebuffer( |
| GLenum target, |
| WebGLFramebuffer? framebuffer, |
| ); |
| |
| /// The **`WebGLRenderingContext.bindRenderbuffer()`** method of |
| /// the |
| /// [WebGL API](https://developer.mozilla.org/en-US/docs/Web/API/WebGL_API) |
| /// binds a given |
| /// [WebGLRenderbuffer] to a target, which must be |
| /// `gl.RENDERBUFFER`. |
| external void bindRenderbuffer( |
| GLenum target, |
| WebGLRenderbuffer? renderbuffer, |
| ); |
| |
| /// The **`WebGLRenderingContext.bindTexture()`** method of the |
| /// [WebGL API](https://developer.mozilla.org/en-US/docs/Web/API/WebGL_API) |
| /// binds a given |
| /// [WebGLTexture] to a target (binding point). |
| external void bindTexture( |
| GLenum target, |
| WebGLTexture? texture, |
| ); |
| |
| /// The **`WebGLRenderingContext.blendColor()`** method of the |
| /// [WebGL API](https://developer.mozilla.org/en-US/docs/Web/API/WebGL_API) is |
| /// used to set the source and |
| /// destination blending factors. |
| external void blendColor( |
| GLclampf red, |
| GLclampf green, |
| GLclampf blue, |
| GLclampf alpha, |
| ); |
| |
| /// The **`WebGLRenderingContext.blendEquation()`** method of the |
| /// [WebGL API](https://developer.mozilla.org/en-US/docs/Web/API/WebGL_API) is |
| /// used to set both the RGB blend |
| /// equation and alpha blend equation to a single equation. |
| /// |
| /// The blend equation determines how a new pixel is combined with a pixel |
| /// already in the |
| /// [WebGLFramebuffer]. |
| external void blendEquation(GLenum mode); |
| |
| /// The **`WebGLRenderingContext.blendEquationSeparate()`** method |
| /// of the |
| /// [WebGL API](https://developer.mozilla.org/en-US/docs/Web/API/WebGL_API) is |
| /// used to set the RGB |
| /// blend equation and alpha blend equation separately. |
| /// |
| /// The blend equation determines how a new pixel is combined with a pixel |
| /// already in the |
| /// [WebGLFramebuffer]. |
| external void blendEquationSeparate( |
| GLenum modeRGB, |
| GLenum modeAlpha, |
| ); |
| |
| /// The **`WebGLRenderingContext.blendFunc()`** method of the |
| /// [WebGL API](https://developer.mozilla.org/en-US/docs/Web/API/WebGL_API) |
| /// defines which function is used for |
| /// blending pixel arithmetic. |
| external void blendFunc( |
| GLenum sfactor, |
| GLenum dfactor, |
| ); |
| |
| /// The **`WebGLRenderingContext.blendFuncSeparate()`** method of |
| /// the |
| /// [WebGL API](https://developer.mozilla.org/en-US/docs/Web/API/WebGL_API) |
| /// defines which function is used |
| /// for blending pixel arithmetic for RGB and alpha components separately. |
| external void blendFuncSeparate( |
| GLenum srcRGB, |
| GLenum dstRGB, |
| GLenum srcAlpha, |
| GLenum dstAlpha, |
| ); |
| |
| /// The **`WebGLRenderingContext.checkFramebufferStatus()`** method |
| /// of the |
| /// [WebGL API](https://developer.mozilla.org/en-US/docs/Web/API/WebGL_API) |
| /// returns the completeness |
| /// status of the [WebGLFramebuffer] object. |
| external GLenum checkFramebufferStatus(GLenum target); |
| |
| /// The **`WebGLRenderingContext.clear()`** method of the |
| /// [WebGL API](https://developer.mozilla.org/en-US/docs/Web/API/WebGL_API) |
| /// clears buffers to preset values. |
| /// |
| /// The preset values can be set by [WebGLRenderingContext.clearColor], |
| /// [WebGLRenderingContext.clearDepth] or |
| /// [WebGLRenderingContext.clearStencil]. |
| /// |
| /// The scissor box, dithering, and buffer writemasks can affect the `clear()` |
| /// method. |
| external void clear(GLbitfield mask); |
| |
| /// The **`WebGLRenderingContext.clearColor()`** method of the |
| /// [WebGL API](https://developer.mozilla.org/en-US/docs/Web/API/WebGL_API) |
| /// specifies the color values used |
| /// when clearing color buffers. |
| /// |
| /// This specifies what color values to use when calling the |
| /// [WebGLRenderingContext.clear] method. The values are clamped |
| /// between 0 and 1. |
| external void clearColor( |
| GLclampf red, |
| GLclampf green, |
| GLclampf blue, |
| GLclampf alpha, |
| ); |
| |
| /// The **`WebGLRenderingContext.clearDepth()`** method of the |
| /// [WebGL API](https://developer.mozilla.org/en-US/docs/Web/API/WebGL_API) |
| /// specifies the clear value for the |
| /// depth buffer. |
| /// |
| /// This specifies what depth value to use when calling the |
| /// [WebGLRenderingContext.clear] method. The value is clamped |
| /// between 0 and 1. |
| external void clearDepth(GLclampf depth); |
| |
| /// The **`WebGLRenderingContext.clearStencil()`** method of the |
| /// [WebGL API](https://developer.mozilla.org/en-US/docs/Web/API/WebGL_API) |
| /// specifies the clear value for the |
| /// stencil buffer. |
| /// |
| /// This specifies what stencil value to use when calling the |
| /// [WebGLRenderingContext.clear] method. |
| external void clearStencil(GLint s); |
| |
| /// The **`WebGLRenderingContext.colorMask()`** method of the |
| /// [WebGL API](https://developer.mozilla.org/en-US/docs/Web/API/WebGL_API) |
| /// sets which color components to |
| /// enable or to disable when drawing or rendering to a [WebGLFramebuffer]. |
| external void colorMask( |
| GLboolean red, |
| GLboolean green, |
| GLboolean blue, |
| GLboolean alpha, |
| ); |
| |
| /// The **WebGLRenderingContext.compileShader()** method of the |
| /// [WebGL API](https://developer.mozilla.org/en-US/docs/Web/API/WebGL_API) |
| /// compiles a GLSL shader into binary |
| /// data so that it can be used by a [WebGLProgram]. |
| external void compileShader(WebGLShader shader); |
| |
| /// The **`WebGLRenderingContext.copyTexImage2D()`** method of the |
| /// [WebGL API](https://developer.mozilla.org/en-US/docs/Web/API/WebGL_API) |
| /// copies pixels from the current |
| /// [WebGLFramebuffer] into a 2D texture image. |
| external void copyTexImage2D( |
| GLenum target, |
| GLint level, |
| GLenum internalformat, |
| GLint x, |
| GLint y, |
| GLsizei width, |
| GLsizei height, |
| GLint border, |
| ); |
| |
| /// The **`WebGLRenderingContext.copyTexSubImage2D()`** method of |
| /// the |
| /// [WebGL API](https://developer.mozilla.org/en-US/docs/Web/API/WebGL_API) |
| /// copies pixels from the current |
| /// [WebGLFramebuffer] into an existing 2D texture sub-image. |
| external void copyTexSubImage2D( |
| GLenum target, |
| GLint level, |
| GLint xoffset, |
| GLint yoffset, |
| GLint x, |
| GLint y, |
| GLsizei width, |
| GLsizei height, |
| ); |
| |
| /// The **`WebGLRenderingContext.createBuffer()`** method of the |
| /// [WebGL API](https://developer.mozilla.org/en-US/docs/Web/API/WebGL_API) |
| /// creates and initializes a |
| /// [WebGLBuffer] storing data such as vertices or colors. |
| external WebGLBuffer? createBuffer(); |
| |
| /// The **`WebGLRenderingContext.createFramebuffer()`** method of |
| /// the |
| /// [WebGL API](https://developer.mozilla.org/en-US/docs/Web/API/WebGL_API) |
| /// creates and initializes a |
| /// [WebGLFramebuffer] object. |
| external WebGLFramebuffer? createFramebuffer(); |
| |
| /// The **`WebGLRenderingContext.createProgram()`** method of the |
| /// [WebGL API](https://developer.mozilla.org/en-US/docs/Web/API/WebGL_API) |
| /// creates and initializes a |
| /// [WebGLProgram] object. |
| external WebGLProgram? createProgram(); |
| |
| /// The **`WebGLRenderingContext.createRenderbuffer()`** method of |
| /// the |
| /// [WebGL API](https://developer.mozilla.org/en-US/docs/Web/API/WebGL_API) |
| /// creates and initializes a |
| /// [WebGLRenderbuffer] object. |
| external WebGLRenderbuffer? createRenderbuffer(); |
| |
| /// The [WebGLRenderingContext] |
| /// method **`createShader()`** of the |
| /// [WebGL API](https://developer.mozilla.org/en-US/docs/Web/API/WebGL_API) |
| /// creates a |
| /// [WebGLShader] that can then be configured further using |
| /// [WebGLRenderingContext.shaderSource] and |
| /// [WebGLRenderingContext.compileShader]. |
| external WebGLShader? createShader(GLenum type); |
| |
| /// The **`WebGLRenderingContext.createTexture()`** method of the |
| /// [WebGL API](https://developer.mozilla.org/en-US/docs/Web/API/WebGL_API) |
| /// creates and initializes a |
| /// [WebGLTexture] object. |
| external WebGLTexture? createTexture(); |
| |
| /// The **`WebGLRenderingContext.cullFace()`** method of the |
| /// [WebGL API](https://developer.mozilla.org/en-US/docs/Web/API/WebGL_API) |
| /// specifies whether or not front- |
| /// and/or back-facing polygons can be culled. |
| external void cullFace(GLenum mode); |
| |
| /// The **`WebGLRenderingContext.deleteBuffer()`** method of the |
| /// [WebGL API](https://developer.mozilla.org/en-US/docs/Web/API/WebGL_API) |
| /// deletes a given |
| /// [WebGLBuffer]. This method has no effect if the buffer has already been |
| /// deleted. Normally you don't need to call this method yourself, when the |
| /// buffer object is dereferenced it will be marked as free. |
| external void deleteBuffer(WebGLBuffer? buffer); |
| |
| /// The **`WebGLRenderingContext.deleteFramebuffer()`** method of |
| /// the |
| /// [WebGL API](https://developer.mozilla.org/en-US/docs/Web/API/WebGL_API) |
| /// deletes a given |
| /// [WebGLFramebuffer] object. This method has no effect if the frame buffer |
| /// has already been deleted. |
| external void deleteFramebuffer(WebGLFramebuffer? framebuffer); |
| |
| /// The **`WebGLRenderingContext.deleteProgram()`** method of the |
| /// [WebGL API](https://developer.mozilla.org/en-US/docs/Web/API/WebGL_API) |
| /// deletes a given |
| /// [WebGLProgram] object. This method has no effect if the program has |
| /// already |
| /// been deleted. |
| external void deleteProgram(WebGLProgram? program); |
| |
| /// The **`WebGLRenderingContext.deleteRenderbuffer()`** method of |
| /// the |
| /// [WebGL API](https://developer.mozilla.org/en-US/docs/Web/API/WebGL_API) |
| /// deletes a given |
| /// [WebGLRenderbuffer] object. This method has no effect if the render buffer |
| /// has already been deleted. |
| external void deleteRenderbuffer(WebGLRenderbuffer? renderbuffer); |
| |
| /// The **`WebGLRenderingContext.deleteShader()`** method of the |
| /// [WebGL API](https://developer.mozilla.org/en-US/docs/Web/API/WebGL_API) |
| /// marks a given |
| /// [WebGLShader] object for deletion. It will then be deleted whenever the |
| /// shader is no longer in use. This method has no effect if the shader has |
| /// already been |
| /// deleted, and the [WebGLShader] is automatically marked for deletion when |
| /// it |
| /// is destroyed by the garbage collector. |
| external void deleteShader(WebGLShader? shader); |
| |
| /// The **`WebGLRenderingContext.deleteTexture()`** method of the |
| /// [WebGL API](https://developer.mozilla.org/en-US/docs/Web/API/WebGL_API) |
| /// deletes a given |
| /// [WebGLTexture] object. This method has no effect if the texture has |
| /// already |
| /// been deleted. |
| external void deleteTexture(WebGLTexture? texture); |
| |
| /// The **`WebGLRenderingContext.depthFunc()`** method of the |
| /// [WebGL API](https://developer.mozilla.org/en-US/docs/Web/API/WebGL_API) |
| /// specifies a function that compares |
| /// incoming pixel depth to the current depth buffer value. |
| external void depthFunc(GLenum func); |
| |
| /// The **`WebGLRenderingContext.depthMask()`** method of the |
| /// [WebGL API](https://developer.mozilla.org/en-US/docs/Web/API/WebGL_API) |
| /// sets whether writing into the depth |
| /// buffer is enabled or disabled. |
| external void depthMask(GLboolean flag); |
| |
| /// The **`WebGLRenderingContext.depthRange()`** method of the |
| /// [WebGL API](https://developer.mozilla.org/en-US/docs/Web/API/WebGL_API) |
| /// specifies the depth range mapping |
| /// from normalized device coordinates to window or viewport coordinates. |
| external void depthRange( |
| GLclampf zNear, |
| GLclampf zFar, |
| ); |
| |
| /// The **WebGLRenderingContext.detachShader()** method of the |
| /// [WebGL API](https://developer.mozilla.org/en-US/docs/Web/API/WebGL_API) |
| /// detaches a previously |
| /// attached [WebGLShader] from a [WebGLProgram]. |
| external void detachShader( |
| WebGLProgram program, |
| WebGLShader shader, |
| ); |
| |
| /// The **`WebGLRenderingContext.disable()`** method of the |
| /// [WebGL API](https://developer.mozilla.org/en-US/docs/Web/API/WebGL_API) |
| /// disables specific WebGL |
| /// capabilities for this context. |
| external void disable(GLenum cap); |
| |
| /// The **`WebGLRenderingContext.disableVertexAttribArray()`** |
| /// method of the |
| /// [WebGL API](https://developer.mozilla.org/en-US/docs/Web/API/WebGL_API) |
| /// turns the generic |
| /// vertex attribute array off at a given index position. |
| external void disableVertexAttribArray(GLuint index); |
| |
| /// The **`WebGLRenderingContext.drawArrays()`** method of the |
| /// [WebGL API](https://developer.mozilla.org/en-US/docs/Web/API/WebGL_API) |
| /// renders primitives from array data. |
| external void drawArrays( |
| GLenum mode, |
| GLint first, |
| GLsizei count, |
| ); |
| |
| /// The **`WebGLRenderingContext.drawElements()`** method of the |
| /// [WebGL API](https://developer.mozilla.org/en-US/docs/Web/API/WebGL_API) |
| /// renders primitives from array data. |
| external void drawElements( |
| GLenum mode, |
| GLsizei count, |
| GLenum type, |
| GLintptr offset, |
| ); |
| |
| /// The **`WebGLRenderingContext.enable()`** method of the |
| /// [WebGL API](https://developer.mozilla.org/en-US/docs/Web/API/WebGL_API) |
| /// enables specific WebGL capabilities |
| /// for this context. |
| external void enable(GLenum cap); |
| |
| /// The [WebGLRenderingContext] method |
| /// **`enableVertexAttribArray()`**, part of the |
| /// [WebGL API](https://developer.mozilla.org/en-US/docs/Web/API/WebGL_API), |
| /// turns on the generic vertex |
| /// attribute array at the specified index into the list of attribute arrays. |
| /// |
| /// > **Note:** You can disable the attribute array by calling |
| /// > [WebGLRenderingContext.disableVertexAttribArray]. |
| /// |
| /// In WebGL, values that apply to a specific vertex are stored in |
| /// [attributes](https://developer.mozilla.org/en-US/docs/Web/API/WebGL_API/Data#attributes). |
| /// These are only |
| /// available to the JavaScript code and the vertex shader. Attributes are |
| /// referenced by an |
| /// index number into the list of attributes maintained by the GPU. Some |
| /// vertex attribute |
| /// indices may have predefined purposes, depending on the platform and/or the |
| /// GPU. Others |
| /// are assigned by the WebGL layer when you create the attributes. |
| /// |
| /// Either way, since attributes cannot be used unless enabled, and are |
| /// disabled by |
| /// default, you need to call `enableVertexAttribArray()` to enable individual |
| /// attributes so that they can be used. Once that's been done, other methods |
| /// can be used to |
| /// access the attribute, including |
| /// [WebGLRenderingContext.vertexAttribPointer], |
| /// [WebGLRenderingContext.vertexAttrib], and |
| /// [WebGLRenderingContext.getVertexAttrib]. |
| external void enableVertexAttribArray(GLuint index); |
| |
| /// The **`WebGLRenderingContext.finish()`** method of the |
| /// [WebGL API](https://developer.mozilla.org/en-US/docs/Web/API/WebGL_API) |
| /// blocks execution until all |
| /// previously called commands are finished. |
| external void finish(); |
| |
| /// The **`WebGLRenderingContext.flush()`** method of the |
| /// [WebGL API](https://developer.mozilla.org/en-US/docs/Web/API/WebGL_API) |
| /// empties different buffer commands, |
| /// causing all commands to be executed as quickly as possible. |
| external void flush(); |
| |
| /// The **`WebGLRenderingContext.framebufferRenderbuffer()`** |
| /// method of the |
| /// [WebGL API](https://developer.mozilla.org/en-US/docs/Web/API/WebGL_API) |
| /// attaches a |
| /// [WebGLRenderbuffer] object to a [WebGLFramebuffer] object. |
| external void framebufferRenderbuffer( |
| GLenum target, |
| GLenum attachment, |
| GLenum renderbuffertarget, |
| WebGLRenderbuffer? renderbuffer, |
| ); |
| |
| /// The **`WebGLRenderingContext.framebufferTexture2D()`** method |
| /// of the |
| /// [WebGL API](https://developer.mozilla.org/en-US/docs/Web/API/WebGL_API) |
| /// attaches a texture to a |
| /// [WebGLFramebuffer]. |
| external void framebufferTexture2D( |
| GLenum target, |
| GLenum attachment, |
| GLenum textarget, |
| WebGLTexture? texture, |
| GLint level, |
| ); |
| |
| /// The **`WebGLRenderingContext.frontFace()`** method of the |
| /// [WebGL API](https://developer.mozilla.org/en-US/docs/Web/API/WebGL_API) |
| /// specifies whether polygons are |
| /// front- or back-facing by setting a winding orientation. |
| external void frontFace(GLenum mode); |
| |
| /// The **`WebGLRenderingContext.generateMipmap()`** method of the |
| /// [WebGL API](https://developer.mozilla.org/en-US/docs/Web/API/WebGL_API) |
| /// generates a set of mipmaps for a |
| /// [WebGLTexture] object. |
| /// |
| /// Mipmaps are used to create distance with objects. A higher-resolution |
| /// mipmap is used |
| /// for objects that are closer, and a lower-resolution mipmap is used for |
| /// objects that are |
| /// farther away. It starts with the resolution of the texture image and |
| /// halves the |
| /// resolution until a 1x1 dimension texture image is created. |
| external void generateMipmap(GLenum target); |
| |
| /// The **`WebGLRenderingContext.getActiveAttrib()`** method of the |
| /// [WebGL API](https://developer.mozilla.org/en-US/docs/Web/API/WebGL_API) |
| /// returns a |
| /// [WebGLActiveInfo] object containing size, type, and name of a vertex |
| /// attribute. It is generally used when querying unknown attributes either |
| /// for debugging or |
| /// generic library creation. |
| external WebGLActiveInfo? getActiveAttrib( |
| WebGLProgram program, |
| GLuint index, |
| ); |
| |
| /// The **`WebGLRenderingContext.getActiveUniform()`** method of |
| /// the |
| /// [WebGL API](https://developer.mozilla.org/en-US/docs/Web/API/WebGL_API) |
| /// returns a |
| /// [WebGLActiveInfo] object containing size, type, and name of a uniform |
| /// attribute. It is generally used when querying unknown uniforms either for |
| /// debugging or |
| /// generic library creation. |
| external WebGLActiveInfo? getActiveUniform( |
| WebGLProgram program, |
| GLuint index, |
| ); |
| |
| /// The **`WebGLRenderingContext.getAttachedShaders()`** method of |
| /// the |
| /// [WebGL API](https://developer.mozilla.org/en-US/docs/Web/API/WebGL_API) |
| /// returns a list of |
| /// [WebGLShader] objects attached to a [WebGLProgram]. |
| external JSArray<WebGLShader>? getAttachedShaders(WebGLProgram program); |
| |
| /// The **`WebGLRenderingContext.getAttribLocation()`** method of |
| /// the |
| /// [WebGL API](https://developer.mozilla.org/en-US/docs/Web/API/WebGL_API) |
| /// returns the location of an |
| /// attribute variable in a given [WebGLProgram]. |
| external GLint getAttribLocation( |
| WebGLProgram program, |
| String name, |
| ); |
| |
| /// The **`WebGLRenderingContext.getBufferParameter()`** method of |
| /// the |
| /// [WebGL API](https://developer.mozilla.org/en-US/docs/Web/API/WebGL_API) |
| /// returns information about the |
| /// buffer. |
| external JSAny? getBufferParameter( |
| GLenum target, |
| GLenum pname, |
| ); |
| |
| /// The **`WebGLRenderingContext.getParameter()`** method of the |
| /// [WebGL API](https://developer.mozilla.org/en-US/docs/Web/API/WebGL_API) |
| /// returns a value for the passed |
| /// parameter name. |
| external JSAny? getParameter(GLenum pname); |
| |
| /// The **`WebGLRenderingContext.getError()`** method of the |
| /// [WebGL API](https://developer.mozilla.org/en-US/docs/Web/API/WebGL_API) |
| /// returns error information. |
| external GLenum getError(); |
| |
| /// The |
| /// **`WebGLRenderingContext.getFramebufferAttachmentParameter()`** |
| /// method of the |
| /// [WebGL API](https://developer.mozilla.org/en-US/docs/Web/API/WebGL_API) |
| /// returns information |
| /// about a framebuffer's attachment. |
| external JSAny? getFramebufferAttachmentParameter( |
| GLenum target, |
| GLenum attachment, |
| GLenum pname, |
| ); |
| |
| /// The **`WebGLRenderingContext.getProgramParameter()`** method of |
| /// the |
| /// [WebGL API](https://developer.mozilla.org/en-US/docs/Web/API/WebGL_API) |
| /// returns information about the |
| /// given program. |
| external JSAny? getProgramParameter( |
| WebGLProgram program, |
| GLenum pname, |
| ); |
| |
| /// The **WebGLRenderingContext.getProgramInfoLog** returns the information |
| /// log for the specified [WebGLProgram] object. It contains errors that |
| /// occurred during failed linking or validation of `WebGLProgram` objects. |
| external String? getProgramInfoLog(WebGLProgram program); |
| |
| /// The **`WebGLRenderingContext.getRenderbufferParameter()`** |
| /// method of the |
| /// [WebGL API](https://developer.mozilla.org/en-US/docs/Web/API/WebGL_API) |
| /// returns information |
| /// about the renderbuffer. |
| external JSAny? getRenderbufferParameter( |
| GLenum target, |
| GLenum pname, |
| ); |
| |
| /// The **`WebGLRenderingContext.getShaderParameter()`** method of |
| /// the |
| /// [WebGL API](https://developer.mozilla.org/en-US/docs/Web/API/WebGL_API) |
| /// returns information about the |
| /// given shader. |
| external JSAny? getShaderParameter( |
| WebGLShader shader, |
| GLenum pname, |
| ); |
| |
| /// The |
| /// **`WebGLRenderingContext.getShaderPrecisionFormat()`** method of |
| /// the |
| /// [WebGL API](https://developer.mozilla.org/en-US/docs/Web/API/WebGL_API) |
| /// returns a new |
| /// [WebGLShaderPrecisionFormat] object describing the range and precision for |
| /// the specified shader numeric format. |
| external WebGLShaderPrecisionFormat? getShaderPrecisionFormat( |
| GLenum shadertype, |
| GLenum precisiontype, |
| ); |
| |
| /// The **WebGLRenderingContext.getShaderInfoLog** returns the information log |
| /// for the specified [WebGLShader] object. It contains warnings, debugging |
| /// and |
| /// compile information. |
| external String? getShaderInfoLog(WebGLShader shader); |
| |
| /// The **`WebGLRenderingContext.getShaderSource()`** method of the |
| /// [WebGL API](https://developer.mozilla.org/en-US/docs/Web/API/WebGL_API) |
| /// returns the source code of a |
| /// [WebGLShader] as a string. |
| external String? getShaderSource(WebGLShader shader); |
| |
| /// The **`WebGLRenderingContext.getTexParameter()`** method of the |
| /// [WebGL API](https://developer.mozilla.org/en-US/docs/Web/API/WebGL_API) |
| /// returns information about the |
| /// given texture. |
| external JSAny? getTexParameter( |
| GLenum target, |
| GLenum pname, |
| ); |
| |
| /// The **`WebGLRenderingContext.getUniform()`** method of the |
| /// [WebGL API](https://developer.mozilla.org/en-US/docs/Web/API/WebGL_API) |
| /// returns the value of a uniform |
| /// variable at a given location. |
| external JSAny? getUniform( |
| WebGLProgram program, |
| WebGLUniformLocation location, |
| ); |
| |
| /// Part of the |
| /// [WebGL API](https://developer.mozilla.org/en-US/docs/Web/API/WebGL_API), |
| /// the [WebGLRenderingContext] method |
| /// **`getUniformLocation()`** returns the location of a |
| /// specific **uniform** variable which is part of a given |
| /// [WebGLProgram]. |
| /// |
| /// The uniform variable is returned as a |
| /// [WebGLUniformLocation] object, which is an opaque identifier used to |
| /// specify where in the GPU's memory that uniform variable is located. |
| /// |
| /// Once you have the uniform's location, you can access the uniform itself |
| /// using one of |
| /// the other uniform access methods, passing in the uniform location as one |
| /// of the |
| /// inputs: |
| /// |
| /// - [WebGLRenderingContext.getUniform] |
| /// - : Returns the value of the uniform at the given location. |
| /// <!-- markdownlint-disable MD052 -- text in code block is misidentified as image --> |
| /// - [`WebGLRenderingContext.uniform[1234][fi][v]()`](/en-US/docs/Web/API/WebGLRenderingContext/uniform) |
| /// - : Sets the uniform's value to the specified value, which may be a single floating |
| /// point or integer number, or a 2-4 component vector specified either as a |
| /// list of |
| /// values or as a `Float32Array` or `Int32Array`. |
| /// <!-- markdownlint-disable MD052 — text in code block is misidentified as image --> |
| /// - [`WebGLRenderingContext.uniformMatrix[234][fv]()`](/en-US/docs/Web/API/WebGLRenderingContext/uniformMatrix) |
| /// - : Sets the uniform's value to the specified matrix, possibly with transposition. The |
| /// value is represented as a sequence of `GLfloat` values or as a |
| /// `Float32Array`. |
| /// |
| /// The uniform itself is declared in the shader program using GLSL. |
| external WebGLUniformLocation? getUniformLocation( |
| WebGLProgram program, |
| String name, |
| ); |
| |
| /// The **`WebGLRenderingContext.getVertexAttrib()`** method of the |
| /// [WebGL API](https://developer.mozilla.org/en-US/docs/Web/API/WebGL_API) |
| /// returns information about a vertex |
| /// attribute at a given position. |
| external JSAny? getVertexAttrib( |
| GLuint index, |
| GLenum pname, |
| ); |
| |
| /// The **`WebGLRenderingContext.getVertexAttribOffset()`** method |
| /// of the |
| /// [WebGL API](https://developer.mozilla.org/en-US/docs/Web/API/WebGL_API) |
| /// returns the address of a |
| /// specified vertex attribute. |
| external GLintptr getVertexAttribOffset( |
| GLuint index, |
| GLenum pname, |
| ); |
| |
| /// The **`WebGLRenderingContext.hint()`** method of the |
| /// [WebGL API](https://developer.mozilla.org/en-US/docs/Web/API/WebGL_API) |
| /// specifies hints for certain |
| /// behaviors. The interpretation of these hints depend on the implementation. |
| external void hint( |
| GLenum target, |
| GLenum mode, |
| ); |
| |
| /// The **`WebGLRenderingContext.isBuffer()`** method of the |
| /// [WebGL API](https://developer.mozilla.org/en-US/docs/Web/API/WebGL_API) |
| /// returns `true` if the |
| /// passed [WebGLBuffer] is valid and `false` otherwise. |
| external GLboolean isBuffer(WebGLBuffer? buffer); |
| |
| /// The **`WebGLRenderingContext.isEnabled()`** method of the |
| /// [WebGL API](https://developer.mozilla.org/en-US/docs/Web/API/WebGL_API) |
| /// tests whether a specific WebGL |
| /// capability is enabled or not for this context. |
| /// |
| /// By default, all capabilities except `gl.DITHER` are |
| /// **disabled**. |
| external GLboolean isEnabled(GLenum cap); |
| |
| /// The **`WebGLRenderingContext.isFramebuffer()`** method of the |
| /// [WebGL API](https://developer.mozilla.org/en-US/docs/Web/API/WebGL_API) |
| /// returns `true` if the |
| /// passed [WebGLFramebuffer] is valid and `false` otherwise. |
| external GLboolean isFramebuffer(WebGLFramebuffer? framebuffer); |
| |
| /// The **`WebGLRenderingContext.isProgram()`** method of the |
| /// [WebGL API](https://developer.mozilla.org/en-US/docs/Web/API/WebGL_API) |
| /// returns `true` if the |
| /// passed [WebGLProgram] is valid, `false` otherwise. |
| external GLboolean isProgram(WebGLProgram? program); |
| |
| /// The **`WebGLRenderingContext.isRenderbuffer()`** method of the |
| /// [WebGL API](https://developer.mozilla.org/en-US/docs/Web/API/WebGL_API) |
| /// returns `true` if the |
| /// passed [WebGLRenderbuffer] is valid and `false` otherwise. |
| external GLboolean isRenderbuffer(WebGLRenderbuffer? renderbuffer); |
| |
| /// The **`WebGLRenderingContext.isShader()`** method of the |
| /// [WebGL API](https://developer.mozilla.org/en-US/docs/Web/API/WebGL_API) |
| /// returns `true` if the |
| /// passed [WebGLShader] is valid, `false` otherwise. |
| external GLboolean isShader(WebGLShader? shader); |
| |
| /// The **`WebGLRenderingContext.isTexture()`** method of the |
| /// [WebGL API](https://developer.mozilla.org/en-US/docs/Web/API/WebGL_API) |
| /// returns `true` if the |
| /// passed [WebGLTexture] is valid and `false` otherwise. |
| external GLboolean isTexture(WebGLTexture? texture); |
| |
| /// The **`WebGLRenderingContext.lineWidth()`** method of the |
| /// [WebGL API](https://developer.mozilla.org/en-US/docs/Web/API/WebGL_API) |
| /// sets the line width of rasterized |
| /// lines. |
| /// |
| /// > **Warning:** The webgl spec, based on the OpenGL ES 2.0/3.0 specs points |
| /// > out that the minimum and |
| /// > maximum width for a line is implementation defined. The maximum minimum |
| /// > width is |
| /// > allowed to be 1.0. The minimum maximum width is also allowed to be 1.0. |
| /// > Because of |
| /// > these implementation defined limits it is not recommended to use line |
| /// > widths other |
| /// > than 1.0 since there is no guarantee any user's browser will display any |
| /// > other width. |
| /// > |
| /// > As of January 2017 most implementations of WebGL only support a minimum |
| /// > of 1 and a |
| /// > maximum of 1 as the technology they are based on has these same limits. |
| external void lineWidth(GLfloat width); |
| |
| /// The [WebGLRenderingContext] interface's |
| /// **`linkProgram()`** method links a given |
| /// [WebGLProgram], completing the process of preparing the GPU code for the |
| /// program's fragment and vertex shaders. |
| external void linkProgram(WebGLProgram program); |
| |
| /// The **`WebGLRenderingContext.pixelStorei()`** method of the |
| /// [WebGL API](https://developer.mozilla.org/en-US/docs/Web/API/WebGL_API) |
| /// specifies the pixel storage modes. |
| external void pixelStorei( |
| GLenum pname, |
| GLint param, |
| ); |
| |
| /// The **`WebGLRenderingContext.polygonOffset()`** method of the |
| /// [WebGL API](https://developer.mozilla.org/en-US/docs/Web/API/WebGL_API) |
| /// specifies the scale factors and |
| /// units to calculate depth values. |
| /// |
| /// The offset is added before the depth test is performed and before the |
| /// value is written |
| /// into the depth buffer. |
| external void polygonOffset( |
| GLfloat factor, |
| GLfloat units, |
| ); |
| |
| /// The **`WebGLRenderingContext.renderbufferStorage()`** method of |
| /// the |
| /// [WebGL API](https://developer.mozilla.org/en-US/docs/Web/API/WebGL_API) |
| /// creates and initializes a |
| /// renderbuffer object's data store. |
| external void renderbufferStorage( |
| GLenum target, |
| GLenum internalformat, |
| GLsizei width, |
| GLsizei height, |
| ); |
| |
| /// The **`WebGLRenderingContext.sampleCoverage()`** method of the |
| /// [WebGL API](https://developer.mozilla.org/en-US/docs/Web/API/WebGL_API) |
| /// specifies multi-sample coverage |
| /// parameters for anti-aliasing effects. |
| external void sampleCoverage( |
| GLclampf value, |
| GLboolean invert, |
| ); |
| |
| /// The **`WebGLRenderingContext.scissor()`** method of the |
| /// [WebGL API](https://developer.mozilla.org/en-US/docs/Web/API/WebGL_API) |
| /// sets a scissor box, which limits |
| /// the drawing to a specified rectangle. |
| external void scissor( |
| GLint x, |
| GLint y, |
| GLsizei width, |
| GLsizei height, |
| ); |
| |
| /// The **`WebGLRenderingContext.shaderSource()`** method of the |
| /// [WebGL API](https://developer.mozilla.org/en-US/docs/Web/API/WebGL_API) |
| /// sets the source code of a |
| /// [WebGLShader]. |
| external void shaderSource( |
| WebGLShader shader, |
| String source, |
| ); |
| |
| /// The **`WebGLRenderingContext.stencilFunc()`** method of the |
| /// [WebGL API](https://developer.mozilla.org/en-US/docs/Web/API/WebGL_API) |
| /// sets the front and back function |
| /// and reference value for stencil testing. |
| /// |
| /// Stenciling enables and disables drawing on a per-pixel basis. It is |
| /// typically used in |
| /// multipass rendering to achieve special effects. |
| external void stencilFunc( |
| GLenum func, |
| GLint ref, |
| GLuint mask, |
| ); |
| |
| /// The **`WebGLRenderingContext.stencilFuncSeparate()`** method of |
| /// the |
| /// [WebGL API](https://developer.mozilla.org/en-US/docs/Web/API/WebGL_API) |
| /// sets the front and/or back |
| /// function and reference value for stencil testing. |
| /// |
| /// Stencilling enables and disables drawing on a per-pixel basis. It is |
| /// typically used in |
| /// multipass rendering to achieve special effects. |
| external void stencilFuncSeparate( |
| GLenum face, |
| GLenum func, |
| GLint ref, |
| GLuint mask, |
| ); |
| |
| /// The **`WebGLRenderingContext.stencilMask()`** method of the |
| /// [WebGL API](https://developer.mozilla.org/en-US/docs/Web/API/WebGL_API) |
| /// controls enabling and disabling of |
| /// both the front and back writing of individual bits in the stencil planes. |
| /// |
| /// The [WebGLRenderingContext.stencilMaskSeparate] method can set front and |
| /// back stencil writemasks to different values. |
| external void stencilMask(GLuint mask); |
| |
| /// The **`WebGLRenderingContext.stencilMaskSeparate()`** method of |
| /// the |
| /// [WebGL API](https://developer.mozilla.org/en-US/docs/Web/API/WebGL_API) |
| /// controls enabling and |
| /// disabling of front and/or back writing of individual bits in the stencil |
| /// planes. |
| /// |
| /// The [WebGLRenderingContext.stencilMask] method can set both, the front |
| /// and back stencil writemasks to one value at the same time. |
| external void stencilMaskSeparate( |
| GLenum face, |
| GLuint mask, |
| ); |
| |
| /// The **`WebGLRenderingContext.stencilOp()`** method of the |
| /// [WebGL API](https://developer.mozilla.org/en-US/docs/Web/API/WebGL_API) |
| /// sets both the front and back-facing |
| /// stencil test actions. |
| external void stencilOp( |
| GLenum fail, |
| GLenum zfail, |
| GLenum zpass, |
| ); |
| |
| /// The **`WebGLRenderingContext.stencilOpSeparate()`** method of |
| /// the |
| /// [WebGL API](https://developer.mozilla.org/en-US/docs/Web/API/WebGL_API) |
| /// sets the front and/or |
| /// back-facing stencil test actions. |
| external void stencilOpSeparate( |
| GLenum face, |
| GLenum fail, |
| GLenum zfail, |
| GLenum zpass, |
| ); |
| external void texParameterf( |
| GLenum target, |
| GLenum pname, |
| GLfloat param, |
| ); |
| external void texParameteri( |
| GLenum target, |
| GLenum pname, |
| GLint param, |
| ); |
| external void uniform1f( |
| WebGLUniformLocation? location, |
| GLfloat x, |
| ); |
| external void uniform2f( |
| WebGLUniformLocation? location, |
| GLfloat x, |
| GLfloat y, |
| ); |
| external void uniform3f( |
| WebGLUniformLocation? location, |
| GLfloat x, |
| GLfloat y, |
| GLfloat z, |
| ); |
| external void uniform4f( |
| WebGLUniformLocation? location, |
| GLfloat x, |
| GLfloat y, |
| GLfloat z, |
| GLfloat w, |
| ); |
| external void uniform1i( |
| WebGLUniformLocation? location, |
| GLint x, |
| ); |
| external void uniform2i( |
| WebGLUniformLocation? location, |
| GLint x, |
| GLint y, |
| ); |
| external void uniform3i( |
| WebGLUniformLocation? location, |
| GLint x, |
| GLint y, |
| GLint z, |
| ); |
| external void uniform4i( |
| WebGLUniformLocation? location, |
| GLint x, |
| GLint y, |
| GLint z, |
| GLint w, |
| ); |
| |
| /// The **`WebGLRenderingContext.useProgram()`** method of the |
| /// [WebGL API](https://developer.mozilla.org/en-US/docs/Web/API/WebGL_API) |
| /// sets the specified |
| /// [WebGLProgram] as part of the current rendering state. |
| external void useProgram(WebGLProgram? program); |
| |
| /// The **`WebGLRenderingContext.validateProgram()`** method of the |
| /// [WebGL API](https://developer.mozilla.org/en-US/docs/Web/API/WebGL_API) |
| /// validates a |
| /// [WebGLProgram]. It checks if it is successfully linked and if it can be |
| /// used in the current WebGL state. |
| external void validateProgram(WebGLProgram program); |
| external void vertexAttrib1f( |
| GLuint index, |
| GLfloat x, |
| ); |
| external void vertexAttrib2f( |
| GLuint index, |
| GLfloat x, |
| GLfloat y, |
| ); |
| external void vertexAttrib3f( |
| GLuint index, |
| GLfloat x, |
| GLfloat y, |
| GLfloat z, |
| ); |
| external void vertexAttrib4f( |
| GLuint index, |
| GLfloat x, |
| GLfloat y, |
| GLfloat z, |
| GLfloat w, |
| ); |
| external void vertexAttrib1fv( |
| GLuint index, |
| Float32List values, |
| ); |
| external void vertexAttrib2fv( |
| GLuint index, |
| Float32List values, |
| ); |
| external void vertexAttrib3fv( |
| GLuint index, |
| Float32List values, |
| ); |
| external void vertexAttrib4fv( |
| GLuint index, |
| Float32List values, |
| ); |
| |
| /// The |
| /// **`WebGLRenderingContext.vertexAttribPointer()`** method of the |
| /// [WebGL API](https://developer.mozilla.org/en-US/docs/Web/API/WebGL_API) |
| /// binds the buffer currently bound |
| /// to `gl.ARRAY_BUFFER` to a generic vertex attribute of the current vertex |
| /// buffer object and specifies its layout. |
| external void vertexAttribPointer( |
| GLuint index, |
| GLint size, |
| GLenum type, |
| GLboolean normalized, |
| GLsizei stride, |
| GLintptr offset, |
| ); |
| |
| /// The **`WebGLRenderingContext.viewport()`** method of the |
| /// [WebGL API](https://developer.mozilla.org/en-US/docs/Web/API/WebGL_API) |
| /// sets the viewport, which specifies |
| /// the affine transformation of x and y from normalized device coordinates to |
| /// window |
| /// coordinates. |
| external void viewport( |
| GLint x, |
| GLint y, |
| GLsizei width, |
| GLsizei height, |
| ); |
| |
| /// The [WebGLRenderingContext] method |
| /// **`makeXRCompatible()`** ensures that the rendering context |
| /// described by the `WebGLRenderingContext` is ready to render the scene for |
| /// the |
| /// immersive |
| /// [WebXR](https://developer.mozilla.org/en-US/docs/Web/API/WebXR_Device_API) |
| /// device on which it |
| /// will be displayed. If necessary, the |
| /// [WebGL](https://developer.mozilla.org/en-US/docs/Web/API/WebGL_API) |
| /// layer may reconfigure the context to be ready to render to a different |
| /// device than it |
| /// originally was. |
| /// |
| /// This is useful if you have an application which can start out being |
| /// presented on a |
| /// standard 2D display but can then be transitioned to a 3D immersion system. |
| external JSPromise<JSAny?> makeXRCompatible(); |
| |
| /// The **`WebGLRenderingContext.bufferData()`** method of the |
| /// [WebGL API](https://developer.mozilla.org/en-US/docs/Web/API/WebGL_API) |
| /// initializes and creates the |
| /// buffer object's data store. |
| external void bufferData( |
| GLenum target, |
| JSAny dataOrSize, |
| GLenum usage, |
| ); |
| |
| /// The **`WebGLRenderingContext.bufferSubData()`** method of the |
| /// [WebGL API](https://developer.mozilla.org/en-US/docs/Web/API/WebGL_API) |
| /// updates a subset of a buffer |
| /// object's data store. |
| external void bufferSubData( |
| GLenum target, |
| GLintptr offset, |
| AllowSharedBufferSource data, |
| ); |
| |
| /// The **`WebGLRenderingContext.compressedTexImage2D()`** |
| /// and **`WebGL2RenderingContext.compressedTexImage3D()`** methods |
| /// of the |
| /// [WebGL API](https://developer.mozilla.org/en-US/docs/Web/API/WebGL_API) |
| /// specify a two- or |
| /// three-dimensional texture image in a compressed format. |
| /// |
| /// Compressed image formats must be enabled by |
| /// [WebGL extensions](https://developer.mozilla.org/en-US/docs/Web/API/WebGL_API/Using_Extensions) |
| /// before |
| /// using these methods. |
| external void compressedTexImage2D( |
| GLenum target, |
| GLint level, |
| GLenum internalformat, |
| GLsizei width, |
| GLsizei height, |
| GLint border, |
| ArrayBufferView data, |
| ); |
| |
| /// The **`WebGLRenderingContext.compressedTexSubImage2D()`** |
| /// method of the |
| /// [WebGL API](https://developer.mozilla.org/en-US/docs/Web/API/WebGL_API) |
| /// specifies a |
| /// two-dimensional sub-rectangle for a texture image in a compressed format. |
| /// |
| /// Compressed image formats must be enabled by |
| /// [WebGL extensions](https://developer.mozilla.org/en-US/docs/Web/API/WebGL_API/Using_Extensions) |
| /// before |
| /// using this method or a [WebGL2RenderingContext] must be used. |
| external void compressedTexSubImage2D( |
| GLenum target, |
| GLint level, |
| GLint xoffset, |
| GLint yoffset, |
| GLsizei width, |
| GLsizei height, |
| GLenum format, |
| ArrayBufferView data, |
| ); |
| |
| /// The **`WebGLRenderingContext.readPixels()`** method of the |
| /// [WebGL API](https://developer.mozilla.org/en-US/docs/Web/API/WebGL_API) |
| /// reads a block of pixels from a |
| /// specified rectangle of the current color framebuffer into a `TypedArray` |
| /// or a `DataView` object. |
| external void readPixels( |
| GLint x, |
| GLint y, |
| GLsizei width, |
| GLsizei height, |
| GLenum format, |
| GLenum type, |
| ArrayBufferView? pixels, |
| ); |
| |
| /// The **`WebGLRenderingContext.texImage2D()`** method of the |
| /// [WebGL API](https://developer.mozilla.org/en-US/docs/Web/API/WebGL_API) |
| /// specifies a two-dimensional texture |
| /// image. |
| external void texImage2D( |
| GLenum target, |
| GLint level, |
| GLint internalformat, |
| JSAny formatOrWidth, |
| JSAny heightOrType, |
| JSAny borderOrSource, [ |
| GLenum format, |
| GLenum type, |
| ArrayBufferView? pixels, |
| ]); |
| |
| /// The **`WebGLRenderingContext.texSubImage2D()`** method of the |
| /// [WebGL API](https://developer.mozilla.org/en-US/docs/Web/API/WebGL_API) |
| /// specifies a sub-rectangle of the |
| /// current texture. |
| external void texSubImage2D( |
| GLenum target, |
| GLint level, |
| GLint xoffset, |
| GLint yoffset, |
| JSAny formatOrWidth, |
| JSAny heightOrType, |
| JSAny formatOrSource, [ |
| GLenum type, |
| ArrayBufferView? pixels, |
| ]); |
| external void uniform1fv( |
| WebGLUniformLocation? location, |
| Float32List v, |
| ); |
| external void uniform2fv( |
| WebGLUniformLocation? location, |
| Float32List v, |
| ); |
| external void uniform3fv( |
| WebGLUniformLocation? location, |
| Float32List v, |
| ); |
| external void uniform4fv( |
| WebGLUniformLocation? location, |
| Float32List v, |
| ); |
| external void uniform1iv( |
| WebGLUniformLocation? location, |
| Int32List v, |
| ); |
| external void uniform2iv( |
| WebGLUniformLocation? location, |
| Int32List v, |
| ); |
| external void uniform3iv( |
| WebGLUniformLocation? location, |
| Int32List v, |
| ); |
| external void uniform4iv( |
| WebGLUniformLocation? location, |
| Int32List v, |
| ); |
| external void uniformMatrix2fv( |
| WebGLUniformLocation? location, |
| GLboolean transpose, |
| Float32List value, |
| ); |
| external void uniformMatrix3fv( |
| WebGLUniformLocation? location, |
| GLboolean transpose, |
| Float32List value, |
| ); |
| external void uniformMatrix4fv( |
| WebGLUniformLocation? location, |
| GLboolean transpose, |
| Float32List value, |
| ); |
| |
| /// The **`WebGLRenderingContext.canvas`** property is a read-only |
| /// reference to the [HTMLCanvasElement] or [OffscreenCanvas] |
| /// object that is associated with the context. It might be |
| /// [`null`](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Operators/null) |
| /// if it is not |
| /// associated with a `canvas` element or an [OffscreenCanvas] |
| /// object. |
| external JSObject get canvas; |
| |
| /// The read-only **`WebGLRenderingContext.drawingBufferWidth`** |
| /// property represents the actual width of the current drawing buffer. It |
| /// should match the |
| /// `width` attribute of the `canvas` element associated with |
| /// this context, but might differ if the implementation is not able to |
| /// provide the |
| /// requested width. |
| external GLsizei get drawingBufferWidth; |
| |
| /// The read-only **`WebGLRenderingContext.drawingBufferHeight`** |
| /// property represents the actual height of the current drawing buffer. It |
| /// should match the |
| /// `height` attribute of the `canvas` element associated with |
| /// this context, but might differ if the implementation is not able to |
| /// provide the |
| /// requested height. |
| external GLsizei get drawingBufferHeight; |
| |
| /// The **`WebGLRenderingContext.drawingBufferColorSpace`** property specifies |
| /// the color space of the WebGL drawing buffer. Along with the default |
| /// (`srgb`), the `display-p3` color space can be used. |
| /// |
| /// See |
| /// [`WebGLRenderingContext.unpackColorSpace`](https://developer.mozilla.org/en-US/docs/Web/API/WebGLRenderingContext/unpackColorSpace) |
| /// for specifying the color space for textures. |
| external PredefinedColorSpace get drawingBufferColorSpace; |
| external set drawingBufferColorSpace(PredefinedColorSpace value); |
| } |
| |
| /// The **WebContextEvent** interface is part of the |
| /// [WebGL API](https://developer.mozilla.org/en-US/docs/Web/API/WebGL_API) and |
| /// is an interface for an event that is generated in response to a status |
| /// change to the WebGL rendering context. |
| /// |
| /// --- |
| /// |
| /// API documentation sourced from |
| /// [MDN Web Docs](https://developer.mozilla.org/en-US/docs/Web/API/WebGLContextEvent). |
| extension type WebGLContextEvent._(JSObject _) implements Event, JSObject { |
| external factory WebGLContextEvent( |
| String type, [ |
| WebGLContextEventInit eventInit, |
| ]); |
| |
| /// The read-only **`WebGLContextEvent.statusMessage`** property contains |
| /// additional event status information, or is an empty string if no |
| /// additional information is available. |
| external String get statusMessage; |
| } |
| extension type WebGLContextEventInit._(JSObject _) |
| implements EventInit, JSObject { |
| external factory WebGLContextEventInit({ |
| bool bubbles, |
| bool cancelable, |
| bool composed, |
| String statusMessage, |
| }); |
| |
| external String get statusMessage; |
| external set statusMessage(String value); |
| } |