expo-gl
Version:
Provides GLView that acts as OpenGL ES render target and gives GL context object implementing WebGL 2.0 specification.
1,134 lines (1,094 loc) • 34.8 kB
text/typescript
// TODO: copy-paste from https://github.com/DefinitelyTyped/DefinitelyTyped/blob/5344bfc80508c53a23dae37b860fb0c905ff7b24/types/webgl2/index.d.ts
export default interface WebGL2RenderingCOntext extends WebGLRenderingContext {
readonly READ_BUFFER: number; // 0x0C02
readonly UNPACK_ROW_LENGTH: number; // 0x0CF2
readonly UNPACK_SKIP_ROWS: number; // 0x0CF3
readonly UNPACK_SKIP_PIXELS: number; // 0x0CF4
readonly PACK_ROW_LENGTH: number; // 0x0D02
readonly PACK_SKIP_ROWS: number; // 0x0D03
readonly PACK_SKIP_PIXELS: number; // 0x0D04
readonly COLOR: number; // 0x1800
readonly DEPTH: number; // 0x1801
readonly STENCIL: number; // 0x1802
readonly RED: number; // 0x1903
readonly RGB8: number; // 0x8051
readonly RGBA8: number; // 0x8058
readonly RGB10_A2: number; // 0x8059
readonly TEXTURE_BINDING_3D: number; // 0x806A
readonly UNPACK_SKIP_IMAGES: number; // 0x806D
readonly UNPACK_IMAGE_HEIGHT: number; // 0x806E
readonly TEXTURE_3D: number; // 0x806F
readonly TEXTURE_WRAP_R: number; // 0x8072
readonly MAX_3D_TEXTURE_SIZE: number; // 0x8073
readonly UNSIGNED_INT_2_10_10_10_REV: number; // 0x8368
readonly MAX_ELEMENTS_VERTICES: number; // 0x80E8
readonly MAX_ELEMENTS_INDICES: number; // 0x80E9
readonly TEXTURE_MIN_LOD: number; // 0x813A
readonly TEXTURE_MAX_LOD: number; // 0x813B
readonly TEXTURE_BASE_LEVEL: number; // 0x813C
readonly TEXTURE_MAX_LEVEL: number; // 0x813D
readonly MIN: number; // 0x8007
readonly MAX: number; // 0x8008
readonly DEPTH_COMPONENT24: number; // 0x81A6
readonly MAX_TEXTURE_LOD_BIAS: number; // 0x84FD
readonly TEXTURE_COMPARE_MODE: number; // 0x884C
readonly TEXTURE_COMPARE_FUNC: number; // 0x884D
readonly CURRENT_QUERY: number; // 0x8865
readonly QUERY_RESULT: number; // 0x8866
readonly QUERY_RESULT_AVAILABLE: number; // 0x8867
readonly STREAM_READ: number; // 0x88E1
readonly STREAM_COPY: number; // 0x88E2
readonly STATIC_READ: number; // 0x88E5
readonly STATIC_COPY: number; // 0x88E6
readonly DYNAMIC_READ: number; // 0x88E9
readonly DYNAMIC_COPY: number; // 0x88EA
readonly MAX_DRAW_BUFFERS: number; // 0x8824
readonly DRAW_BUFFER0: number; // 0x8825
readonly DRAW_BUFFER1: number; // 0x8826
readonly DRAW_BUFFER2: number; // 0x8827
readonly DRAW_BUFFER3: number; // 0x8828
readonly DRAW_BUFFER4: number; // 0x8829
readonly DRAW_BUFFER5: number; // 0x882A
readonly DRAW_BUFFER6: number; // 0x882B
readonly DRAW_BUFFER7: number; // 0x882C
readonly DRAW_BUFFER8: number; // 0x882D
readonly DRAW_BUFFER9: number; // 0x882E
readonly DRAW_BUFFER10: number; // 0x882F
readonly DRAW_BUFFER11: number; // 0x8830
readonly DRAW_BUFFER12: number; // 0x8831
readonly DRAW_BUFFER13: number; // 0x8832
readonly DRAW_BUFFER14: number; // 0x8833
readonly DRAW_BUFFER15: number; // 0x8834
readonly MAX_FRAGMENT_UNIFORM_COMPONENTS: number; // 0x8B49
readonly MAX_VERTEX_UNIFORM_COMPONENTS: number; // 0x8B4A
readonly SAMPLER_3D: number; // 0x8B5F
readonly SAMPLER_2D_SHADOW: number; // 0x8B62
readonly FRAGMENT_SHADER_DERIVATIVE_HINT: number; // 0x8B8B
readonly PIXEL_PACK_BUFFER: number; // 0x88EB
readonly PIXEL_UNPACK_BUFFER: number; // 0x88EC
readonly PIXEL_PACK_BUFFER_BINDING: number; // 0x88ED
readonly PIXEL_UNPACK_BUFFER_BINDING: number; // 0x88EF
readonly FLOAT_MAT2x3: number; // 0x8B65
readonly FLOAT_MAT2x4: number; // 0x8B66
readonly FLOAT_MAT3x2: number; // 0x8B67
readonly FLOAT_MAT3x4: number; // 0x8B68
readonly FLOAT_MAT4x2: number; // 0x8B69
readonly FLOAT_MAT4x3: number; // 0x8B6A
readonly SRGB: number; // 0x8C40
readonly SRGB8: number; // 0x8C41
readonly SRGB8_ALPHA8: number; // 0x8C43
readonly COMPARE_REF_TO_TEXTURE: number; // 0x884E
readonly RGBA32F: number; // 0x8814
readonly RGB32F: number; // 0x8815
readonly RGBA16F: number; // 0x881A
readonly RGB16F: number; // 0x881B
readonly VERTEX_ATTRIB_ARRAY_INTEGER: number; // 0x88FD
readonly MAX_ARRAY_TEXTURE_LAYERS: number; // 0x88FF
readonly MIN_PROGRAM_TEXEL_OFFSET: number; // 0x8904
readonly MAX_PROGRAM_TEXEL_OFFSET: number; // 0x8905
readonly MAX_VARYING_COMPONENTS: number; // 0x8B4B
readonly TEXTURE_2D_ARRAY: number; // 0x8C1A
readonly TEXTURE_BINDING_2D_ARRAY: number; // 0x8C1D
readonly R11F_G11F_B10F: number; // 0x8C3A
readonly UNSIGNED_INT_10F_11F_11F_REV: number; // 0x8C3B
readonly RGB9_E5: number; // 0x8C3D
readonly UNSIGNED_INT_5_9_9_9_REV: number; // 0x8C3E
readonly TRANSFORM_FEEDBACK_BUFFER_MODE: number; // 0x8C7F
readonly MAX_TRANSFORM_FEEDBACK_SEPARATE_COMPONENTS: number; // 0x8C80
readonly TRANSFORM_FEEDBACK_VARYINGS: number; // 0x8C83
readonly TRANSFORM_FEEDBACK_BUFFER_START: number; // 0x8C84
readonly TRANSFORM_FEEDBACK_BUFFER_SIZE: number; // 0x8C85
readonly TRANSFORM_FEEDBACK_PRIMITIVES_WRITTEN: number; // 0x8C88
readonly RASTERIZER_DISCARD: number; // 0x8C89
readonly MAX_TRANSFORM_FEEDBACK_INTERLEAVED_COMPONENTS: number; // 0x8C8A
readonly MAX_TRANSFORM_FEEDBACK_SEPARATE_ATTRIBS: number; // 0x8C8B
readonly INTERLEAVED_ATTRIBS: number; // 0x8C8C
readonly SEPARATE_ATTRIBS: number; // 0x8C8D
readonly TRANSFORM_FEEDBACK_BUFFER: number; // 0x8C8E
readonly TRANSFORM_FEEDBACK_BUFFER_BINDING: number; // 0x8C8F
readonly RGBA32UI: number; // 0x8D70
readonly RGB32UI: number; // 0x8D71
readonly RGBA16UI: number; // 0x8D76
readonly RGB16UI: number; // 0x8D77
readonly RGBA8UI: number; // 0x8D7C
readonly RGB8UI: number; // 0x8D7D
readonly RGBA32I: number; // 0x8D82
readonly RGB32I: number; // 0x8D83
readonly RGBA16I: number; // 0x8D88
readonly RGB16I: number; // 0x8D89
readonly RGBA8I: number; // 0x8D8E
readonly RGB8I: number; // 0x8D8F
readonly RED_INTEGER: number; // 0x8D94
readonly RGB_INTEGER: number; // 0x8D98
readonly RGBA_INTEGER: number; // 0x8D99
readonly SAMPLER_2D_ARRAY: number; // 0x8DC1
readonly SAMPLER_2D_ARRAY_SHADOW: number; // 0x8DC4
readonly SAMPLER_CUBE_SHADOW: number; // 0x8DC5
readonly UNSIGNED_INT_VEC2: number; // 0x8DC6
readonly UNSIGNED_INT_VEC3: number; // 0x8DC7
readonly UNSIGNED_INT_VEC4: number; // 0x8DC8
readonly INT_SAMPLER_2D: number; // 0x8DCA
readonly INT_SAMPLER_3D: number; // 0x8DCB
readonly INT_SAMPLER_CUBE: number; // 0x8DCC
readonly INT_SAMPLER_2D_ARRAY: number; // 0x8DCF
readonly UNSIGNED_INT_SAMPLER_2D: number; // 0x8DD2
readonly UNSIGNED_INT_SAMPLER_3D: number; // 0x8DD3
readonly UNSIGNED_INT_SAMPLER_CUBE: number; // 0x8DD4
readonly UNSIGNED_INT_SAMPLER_2D_ARRAY: number; // 0x8DD7
readonly DEPTH_COMPONENT32F: number; // 0x8CAC
readonly DEPTH32F_STENCIL8: number; // 0x8CAD
readonly FLOAT_32_UNSIGNED_INT_24_8_REV: number; // 0x8DAD
readonly FRAMEBUFFER_ATTACHMENT_COLOR_ENCODING: number; // 0x8210
readonly FRAMEBUFFER_ATTACHMENT_COMPONENT_TYPE: number; // 0x8211
readonly FRAMEBUFFER_ATTACHMENT_RED_SIZE: number; // 0x8212
readonly FRAMEBUFFER_ATTACHMENT_GREEN_SIZE: number; // 0x8213
readonly FRAMEBUFFER_ATTACHMENT_BLUE_SIZE: number; // 0x8214
readonly FRAMEBUFFER_ATTACHMENT_ALPHA_SIZE: number; // 0x8215
readonly FRAMEBUFFER_ATTACHMENT_DEPTH_SIZE: number; // 0x8216
readonly FRAMEBUFFER_ATTACHMENT_STENCIL_SIZE: number; // 0x8217
readonly FRAMEBUFFER_DEFAULT: number; // 0x8218
//readonly DEPTH_STENCIL_ATTACHMENT: number; // 0x821A /* Already defined in WebGL1 constants */
//readonly DEPTH_STENCIL: number; // 0x84F9 /* Already defined in WebGL1 constants */
readonly UNSIGNED_INT_24_8: number; // 0x84FA
readonly DEPTH24_STENCIL8: number; // 0x88F0
readonly UNSIGNED_NORMALIZED: number; // 0x8C17
readonly DRAW_FRAMEBUFFER_BINDING: number; // 0x8CA6 /* Same as FRAMEBUFFER_BINDING */
readonly READ_FRAMEBUFFER: number; // 0x8CA8
readonly DRAW_FRAMEBUFFER: number; // 0x8CA9
readonly READ_FRAMEBUFFER_BINDING: number; // 0x8CAA
readonly RENDERBUFFER_SAMPLES: number; // 0x8CAB
readonly FRAMEBUFFER_ATTACHMENT_TEXTURE_LAYER: number; // 0x8CD4
readonly MAX_COLOR_ATTACHMENTS: number; // 0x8CDF
readonly COLOR_ATTACHMENT1: number; // 0x8CE1
readonly COLOR_ATTACHMENT2: number; // 0x8CE2
readonly COLOR_ATTACHMENT3: number; // 0x8CE3
readonly COLOR_ATTACHMENT4: number; // 0x8CE4
readonly COLOR_ATTACHMENT5: number; // 0x8CE5
readonly COLOR_ATTACHMENT6: number; // 0x8CE6
readonly COLOR_ATTACHMENT7: number; // 0x8CE7
readonly COLOR_ATTACHMENT8: number; // 0x8CE8
readonly COLOR_ATTACHMENT9: number; // 0x8CE9
readonly COLOR_ATTACHMENT10: number; // 0x8CEA
readonly COLOR_ATTACHMENT11: number; // 0x8CEB
readonly COLOR_ATTACHMENT12: number; // 0x8CEC
readonly COLOR_ATTACHMENT13: number; // 0x8CED
readonly COLOR_ATTACHMENT14: number; // 0x8CEE
readonly COLOR_ATTACHMENT15: number; // 0x8CEF
readonly FRAMEBUFFER_INCOMPLETE_MULTISAMPLE: number; // 0x8D56
readonly MAX_SAMPLES: number; // 0x8D57
readonly HALF_FLOAT: number; // 0x140B
readonly RG: number; // 0x8227
readonly RG_INTEGER: number; // 0x8228
readonly R8: number; // 0x8229
readonly RG8: number; // 0x822B
readonly R16F: number; // 0x822D
readonly R32F: number; // 0x822E
readonly RG16F: number; // 0x822F
readonly RG32F: number; // 0x8230
readonly R8I: number; // 0x8231
readonly R8UI: number; // 0x8232
readonly R16I: number; // 0x8233
readonly R16UI: number; // 0x8234
readonly R32I: number; // 0x8235
readonly R32UI: number; // 0x8236
readonly RG8I: number; // 0x8237
readonly RG8UI: number; // 0x8238
readonly RG16I: number; // 0x8239
readonly RG16UI: number; // 0x823A
readonly RG32I: number; // 0x823B
readonly RG32UI: number; // 0x823C
readonly VERTEX_ARRAY_BINDING: number; // 0x85B5
readonly R8_SNORM: number; // 0x8F94
readonly RG8_SNORM: number; // 0x8F95
readonly RGB8_SNORM: number; // 0x8F96
readonly RGBA8_SNORM: number; // 0x8F97
readonly SIGNED_NORMALIZED: number; // 0x8F9C
readonly COPY_READ_BUFFER: number; // 0x8F36
readonly COPY_WRITE_BUFFER: number; // 0x8F37
readonly COPY_READ_BUFFER_BINDING: number; // 0x8F36 /* Same as COPY_READ_BUFFER */
readonly COPY_WRITE_BUFFER_BINDING: number; // 0x8F37 /* Same as COPY_WRITE_BUFFER */
readonly UNIFORM_BUFFER: number; // 0x8A11
readonly UNIFORM_BUFFER_BINDING: number; // 0x8A28
readonly UNIFORM_BUFFER_START: number; // 0x8A29
readonly UNIFORM_BUFFER_SIZE: number; // 0x8A2A
readonly MAX_VERTEX_UNIFORM_BLOCKS: number; // 0x8A2B
readonly MAX_FRAGMENT_UNIFORM_BLOCKS: number; // 0x8A2D
readonly MAX_COMBINED_UNIFORM_BLOCKS: number; // 0x8A2E
readonly MAX_UNIFORM_BUFFER_BINDINGS: number; // 0x8A2F
readonly MAX_UNIFORM_BLOCK_SIZE: number; // 0x8A30
readonly MAX_COMBINED_VERTEX_UNIFORM_COMPONENTS: number; // 0x8A31
readonly MAX_COMBINED_FRAGMENT_UNIFORM_COMPONENTS: number; // 0x8A33
readonly UNIFORM_BUFFER_OFFSET_ALIGNMENT: number; // 0x8A34
readonly ACTIVE_UNIFORM_BLOCKS: number; // 0x8A36
readonly UNIFORM_TYPE: number; // 0x8A37
readonly UNIFORM_SIZE: number; // 0x8A38
readonly UNIFORM_BLOCK_INDEX: number; // 0x8A3A
readonly UNIFORM_OFFSET: number; // 0x8A3B
readonly UNIFORM_ARRAY_STRIDE: number; // 0x8A3C
readonly UNIFORM_MATRIX_STRIDE: number; // 0x8A3D
readonly UNIFORM_IS_ROW_MAJOR: number; // 0x8A3E
readonly UNIFORM_BLOCK_BINDING: number; // 0x8A3F
readonly UNIFORM_BLOCK_DATA_SIZE: number; // 0x8A40
readonly UNIFORM_BLOCK_ACTIVE_UNIFORMS: number; // 0x8A42
readonly UNIFORM_BLOCK_ACTIVE_UNIFORM_INDICES: number; // 0x8A43
readonly UNIFORM_BLOCK_REFERENCED_BY_VERTEX_SHADER: number; // 0x8A44
readonly UNIFORM_BLOCK_REFERENCED_BY_FRAGMENT_SHADER: number; // 0x8A46
readonly INVALID_INDEX: number; // 0xFFFFFFFF
readonly MAX_VERTEX_OUTPUT_COMPONENTS: number; // 0x9122
readonly MAX_FRAGMENT_INPUT_COMPONENTS: number; // 0x9125
readonly MAX_SERVER_WAIT_TIMEOUT: number; // 0x9111
readonly OBJECT_TYPE: number; // 0x9112
readonly SYNC_CONDITION: number; // 0x9113
readonly SYNC_STATUS: number; // 0x9114
readonly SYNC_FLAGS: number; // 0x9115
readonly SYNC_FENCE: number; // 0x9116
readonly SYNC_GPU_COMMANDS_COMPLETE: number; // 0x9117
readonly UNSIGNALED: number; // 0x9118
readonly SIGNALED: number; // 0x9119
readonly ALREADY_SIGNALED: number; // 0x911A
readonly TIMEOUT_EXPIRED: number; // 0x911B
readonly CONDITION_SATISFIED: number; // 0x911C
readonly WAIT_FAILED: number; // 0x911D
readonly SYNC_FLUSH_COMMANDS_BIT: number; // 0x00000001
readonly VERTEX_ATTRIB_ARRAY_DIVISOR: number; // 0x88FE
readonly ANY_SAMPLES_PASSED: number; // 0x8C2F
readonly ANY_SAMPLES_PASSED_CONSERVATIVE: number; // 0x8D6A
readonly SAMPLER_BINDING: number; // 0x8919
readonly RGB10_A2UI: number; // 0x906F
readonly INT_2_10_10_10_REV: number; // 0x8D9F
readonly TRANSFORM_FEEDBACK: number; // 0x8E22
readonly TRANSFORM_FEEDBACK_PAUSED: number; // 0x8E23
readonly TRANSFORM_FEEDBACK_ACTIVE: number; // 0x8E24
readonly TRANSFORM_FEEDBACK_BINDING: number; // 0x8E25
readonly TEXTURE_IMMUTABLE_FORMAT: number; // 0x912F
readonly MAX_ELEMENT_INDEX: number; // 0x8D6B
readonly TEXTURE_IMMUTABLE_LEVELS: number; // 0x82DF
readonly TIMEOUT_IGNORED: number; // -1
/* WebGL-specific enums */
readonly MAX_CLIENT_WAIT_TIMEOUT_WEBGL: number; // 0x9247
/* Buffer objects */
// WebGL1:
bufferData(
target: number,
sizeOrData:
| number
| Int8Array
| Int16Array
| Int32Array
| Uint8Array
| Uint16Array
| Uint32Array
| Uint8ClampedArray
| Float32Array
| Float64Array
| DataView
| ArrayBuffer
| null,
usage: number
): void;
bufferSubData(
target: number,
dstByteOffset: number,
srcData:
| Int8Array
| Int16Array
| Int32Array
| Uint8Array
| Uint16Array
| Uint32Array
| Uint8ClampedArray
| Float32Array
| Float64Array
| DataView
| ArrayBuffer
| null
): void;
// For compatibility with WebGL 1 context in older Typescript versions.
bufferData(target: number, data: ArrayBufferView, usage: number): void;
bufferSubData(target: number, dstByteOffset: number, srcData: ArrayBufferView): void;
// WebGL2:
bufferData(
target: number,
srcData:
| Int8Array
| Int16Array
| Int32Array
| Uint8Array
| Uint16Array
| Uint32Array
| Uint8ClampedArray
| Float32Array
| Float64Array
| DataView
| ArrayBuffer
| null,
usage: number,
srcOffset: number,
length?: number
): void;
bufferSubData(
target: number,
dstByteOffset: number,
srcData: ArrayBufferView,
srcOffset: number,
length?: number
): void;
copyBufferSubData(
readTarget: number,
writeTarget: number,
readOffset: number,
writeOffset: number,
size: number
): void;
// MapBufferRange, in particular its read-only and write-only modes,
// can not be exposed safely to JavaScript. GetBufferSubData
// replaces it for the purpose of fetching data back from the GPU.
getBufferSubData(
target: number,
srcByteOffset: number,
dstBuffer: ArrayBufferView,
dstOffset?: number,
length?: number
): void;
/* Framebuffer objects */
blitFramebuffer(
srcX0: number,
srcY0: number,
srcX1: number,
srcY1: number,
dstX0: number,
dstY0: number,
dstX1: number,
dstY1: number,
mask: number,
filter: number
): void;
framebufferTextureLayer(
target: number,
attachment: number,
texture: WebGLTexture | null,
level: number,
layer: number
): void;
invalidateFramebuffer(target: number, attachments: number[]): void;
invalidateSubFramebuffer(
target: number,
attachments: number[],
x: number,
y: number,
width: number,
height: number
): void;
readBuffer(src: number): void;
/* Renderbuffer objects */
getInternalformatParameter(target: number, internalformat: number, pname: number): any;
renderbufferStorageMultisample(
target: number,
samples: number,
internalformat: number,
width: number,
height: number
): void;
/* Texture objects */
texStorage2D(
target: number,
levels: number,
internalformat: number,
width: number,
height: number
): void;
texStorage3D(
target: number,
levels: number,
internalformat: number,
width: number,
height: number,
depth: number
): void;
// WebGL1 legacy entrypoints:
texImage2D(
target: number,
level: number,
internalformat: number,
width: number,
height: number,
border: number,
format: number,
type: number,
pixels?: ArrayBufferView | null
): void;
texImage2D(
target: number,
level: number,
internalformat: number,
format: number,
type: number,
source: ImageData | HTMLImageElement | HTMLCanvasElement | HTMLVideoElement
): void; // May throw DOMException
texImage2D(
target: number,
level: number,
internalformat: number,
format: number,
type: number,
source: ImageBitmap | ImageData | HTMLImageElement | HTMLCanvasElement | HTMLVideoElement
): void; // May throw DOMException
texSubImage2D(
target: number,
level: number,
xoffset: number,
yoffset: number,
width: number,
height: number,
format: number,
type: number,
pixels?: ArrayBufferView | null
): void;
texSubImage2D(
target: number,
level: number,
xoffset: number,
yoffset: number,
format: number,
type: number,
source: ImageData | HTMLImageElement | HTMLCanvasElement | HTMLVideoElement
): void; // May throw DOMException
texSubImage2D(
target: number,
level: number,
xoffset: number,
yoffset: number,
format: number,
type: number,
source: ImageBitmap | ImageData | HTMLImageElement | HTMLCanvasElement | HTMLVideoElement
): void; // May throw DOMException
// WebGL2 entrypoints:
texImage2D(
target: number,
level: number,
internalformat: number,
width: number,
height: number,
border: number,
format: number,
type: number,
pboOffset: number
): void;
texImage2D(
target: number,
level: number,
internalformat: number,
width: number,
height: number,
border: number,
format: number,
type: number,
source: ImageBitmap | ImageData | HTMLImageElement | HTMLCanvasElement | HTMLVideoElement
): void; // May throw DOMException
texImage2D(
target: number,
level: number,
internalformat: number,
width: number,
height: number,
border: number,
format: number,
type: number,
srcData: ArrayBufferView,
srcOffset: number
): void;
texImage3D(
target: number,
level: number,
internalformat: number,
width: number,
height: number,
depth: number,
border: number,
format: number,
type: number,
pboOffset: number
): void;
texImage3D(
target: number,
level: number,
internalformat: number,
width: number,
height: number,
depth: number,
border: number,
format: number,
type: number,
source: ImageBitmap | ImageData | HTMLImageElement | HTMLCanvasElement | HTMLVideoElement
): void; // May throw DOMException
texImage3D(
target: number,
level: number,
internalformat: number,
width: number,
height: number,
depth: number,
border: number,
format: number,
type: number,
srcData: ArrayBufferView | null
): void;
texImage3D(
target: number,
level: number,
internalformat: number,
width: number,
height: number,
depth: number,
border: number,
format: number,
type: number,
srcData: ArrayBufferView,
srcOffset: number
): void;
texSubImage2D(
target: number,
level: number,
xoffset: number,
yoffset: number,
width: number,
height: number,
format: number,
type: number,
pboOffset: number
): void;
texSubImage2D(
target: number,
level: number,
xoffset: number,
yoffset: number,
width: number,
height: number,
format: number,
type: number,
source: ImageBitmap | ImageData | HTMLImageElement | HTMLCanvasElement | HTMLVideoElement
): void; // May throw DOMException
texSubImage2D(
target: number,
level: number,
xoffset: number,
yoffset: number,
width: number,
height: number,
format: number,
type: number,
srcData: ArrayBufferView,
srcOffset: number
): void;
texSubImage3D(
target: number,
level: number,
xoffset: number,
yoffset: number,
zoffset: number,
width: number,
height: number,
depth: number,
format: number,
type: number,
pboOffset: number
): void;
texSubImage3D(
target: number,
level: number,
xoffset: number,
yoffset: number,
zoffset: number,
width: number,
height: number,
depth: number,
format: number,
type: number,
source: ImageBitmap | ImageData | HTMLImageElement | HTMLCanvasElement | HTMLVideoElement
): void; // May throw DOMException
texSubImage3D(
target: number,
level: number,
xoffset: number,
yoffset: number,
zoffset: number,
width: number,
height: number,
depth: number,
format: number,
type: number,
srcData: ArrayBufferView | null,
srcOffset?: number
): void;
copyTexSubImage3D(
target: number,
level: number,
xoffset: number,
yoffset: number,
zoffset: number,
x: number,
y: number,
width: number,
height: number
): void;
compressedTexImage2D(
target: number,
level: number,
internalformat: number,
width: number,
height: number,
border: number,
imageSize: number,
offset: number
): void;
compressedTexImage2D(
target: number,
level: number,
internalformat: number,
width: number,
height: number,
border: number,
srcData:
| Int8Array
| Int16Array
| Int32Array
| Uint8Array
| Uint16Array
| Uint32Array
| Uint8ClampedArray
| Float32Array
| Float64Array
| DataView
| null,
srcOffset?: number,
srcLengthOverride?: number
): void;
// For compatibility with WebGL 1 context in older Typescript versions.
compressedTexImage2D(
target: number,
level: number,
internalformat: number,
width: number,
height: number,
border: number,
srcData: ArrayBufferView,
srcOffset?: number,
srcLengthOverride?: number
): void;
compressedTexImage3D(
target: number,
level: number,
internalformat: number,
width: number,
height: number,
depth: number,
border: number,
imageSize: number,
offset: number
): void;
compressedTexImage3D(
target: number,
level: number,
internalformat: number,
width: number,
height: number,
depth: number,
border: number,
srcData: ArrayBufferView,
srcOffset?: number,
srcLengthOverride?: number
): void;
compressedTexSubImage2D(
target: number,
level: number,
xoffset: number,
yoffset: number,
width: number,
height: number,
format: number,
imageSize: number,
offset: number
): void;
compressedTexSubImage2D(
target: number,
level: number,
xoffset: number,
yoffset: number,
width: number,
height: number,
format: number,
srcData:
| Int8Array
| Int16Array
| Int32Array
| Uint8Array
| Uint16Array
| Uint32Array
| Uint8ClampedArray
| Float32Array
| Float64Array
| DataView
| null,
srcOffset?: number,
srcLengthOverride?: number
): void;
// For compatibility with WebGL 1 context in older Typescript versions.
compressedTexSubImage2D(
target: number,
level: number,
xoffset: number,
yoffset: number,
width: number,
height: number,
format: number,
srcData: ArrayBufferView | null,
srcOffset?: number,
srcLengthOverride?: number
): void;
compressedTexSubImage3D(
target: number,
level: number,
xoffset: number,
yoffset: number,
zoffset: number,
width: number,
height: number,
depth: number,
format: number,
imageSize: number,
offset: number
): void;
compressedTexSubImage3D(
target: number,
level: number,
xoffset: number,
yoffset: number,
zoffset: number,
width: number,
height: number,
depth: number,
format: number,
srcData: ArrayBufferView,
srcOffset?: number,
srcLengthOverride?: number
): void;
/* Programs and shaders */
getFragDataLocation(program: WebGLProgram, name: string): number;
/* Uniforms */
uniform1ui(location: WebGLUniformLocation | null, v0: number): void;
uniform2ui(location: WebGLUniformLocation | null, v0: number, v1: number): void;
uniform3ui(location: WebGLUniformLocation | null, v0: number, v1: number, v2: number): void;
uniform4ui(
location: WebGLUniformLocation | null,
v0: number,
v1: number,
v2: number,
v3: number
): void;
uniform1fv(
location: WebGLUniformLocation | null,
data: Float32Array | ArrayLike<number>,
srcOffset?: number,
srcLength?: number
): void;
uniform2fv(
location: WebGLUniformLocation | null,
data: Float32Array | ArrayLike<number>,
srcOffset?: number,
srcLength?: number
): void;
uniform3fv(
location: WebGLUniformLocation | null,
data: Float32Array | ArrayLike<number>,
srcOffset?: number,
srcLength?: number
): void;
uniform4fv(
location: WebGLUniformLocation | null,
data: Float32Array | ArrayLike<number>,
srcOffset?: number,
srcLength?: number
): void;
uniform1iv(
location: WebGLUniformLocation | null,
data: Int32Array | ArrayLike<number>,
srcOffset?: number,
srcLength?: number
): void;
uniform2iv(
location: WebGLUniformLocation | null,
data: Int32Array | ArrayLike<number>,
srcOffset?: number,
srcLength?: number
): void;
uniform3iv(
location: WebGLUniformLocation | null,
data: Int32Array | ArrayLike<number>,
srcOffset?: number,
srcLength?: number
): void;
uniform4iv(
location: WebGLUniformLocation | null,
data: Int32Array | ArrayLike<number>,
srcOffset?: number,
srcLength?: number
): void;
uniform1uiv(
location: WebGLUniformLocation | null,
data: Uint32Array | ArrayLike<number>,
srcOffset?: number,
srcLength?: number
): void;
uniform2uiv(
location: WebGLUniformLocation | null,
data: Uint32Array | ArrayLike<number>,
srcOffset?: number,
srcLength?: number
): void;
uniform3uiv(
location: WebGLUniformLocation | null,
data: Uint32Array | ArrayLike<number>,
srcOffset?: number,
srcLength?: number
): void;
uniform4uiv(
location: WebGLUniformLocation | null,
data: Uint32Array | ArrayLike<number>,
srcOffset?: number,
srcLength?: number
): void;
uniformMatrix2fv(
location: WebGLUniformLocation | null,
transpose: boolean,
data: Float32Array | ArrayLike<number>,
srcOffset?: number,
srcLength?: number
): void;
uniformMatrix3x2fv(
location: WebGLUniformLocation | null,
transpose: boolean,
data: Float32Array | ArrayLike<number>,
srcOffset?: number,
srcLength?: number
): void;
uniformMatrix4x2fv(
location: WebGLUniformLocation | null,
transpose: boolean,
data: Float32Array | ArrayLike<number>,
srcOffset?: number,
srcLength?: number
): void;
uniformMatrix2x3fv(
location: WebGLUniformLocation | null,
transpose: boolean,
data: Float32Array | ArrayLike<number>,
srcOffset?: number,
srcLength?: number
): void;
uniformMatrix3fv(
location: WebGLUniformLocation | null,
transpose: boolean,
data: Float32Array | ArrayLike<number>,
srcOffset?: number,
srcLength?: number
): void;
uniformMatrix4x3fv(
location: WebGLUniformLocation | null,
transpose: boolean,
data: Float32Array | ArrayLike<number>,
srcOffset?: number,
srcLength?: number
): void;
uniformMatrix2x4fv(
location: WebGLUniformLocation | null,
transpose: boolean,
data: Float32Array | ArrayLike<number>,
srcOffset?: number,
srcLength?: number
): void;
uniformMatrix3x4fv(
location: WebGLUniformLocation | null,
transpose: boolean,
data: Float32Array | ArrayLike<number>,
srcOffset?: number,
srcLength?: number
): void;
uniformMatrix4fv(
location: WebGLUniformLocation | null,
transpose: boolean,
data: Float32Array | ArrayLike<number>,
srcOffset?: number,
srcLength?: number
): void;
/* Vertex attribs */
vertexAttribI4i(index: number, x: number, y: number, z: number, w: number): void;
vertexAttribI4iv(index: number, values: Int32Array | ArrayLike<number>): void;
vertexAttribI4ui(index: number, x: number, y: number, z: number, w: number): void;
vertexAttribI4uiv(index: number, values: Uint32Array | ArrayLike<number>): void;
vertexAttribIPointer(
index: number,
size: number,
type: number,
stride: number,
offset: number
): void;
/* Writing to the drawing buffer */
vertexAttribDivisor(index: number, divisor: number): void;
drawArraysInstanced(mode: number, first: number, count: number, instanceCount: number): void;
drawElementsInstanced(
mode: number,
count: number,
type: number,
offset: number,
instanceCount: number
): void;
drawRangeElements(
mode: number,
start: number,
end: number,
count: number,
type: number,
offset: number
): void;
/* Reading back pixels */
// WebGL1:
readPixels(
x: number,
y: number,
width: number,
height: number,
format: number,
type: number,
dstData:
| Int8Array
| Int16Array
| Int32Array
| Uint8Array
| Uint16Array
| Uint32Array
| Uint8ClampedArray
| Float32Array
| Float64Array
| DataView
| null
): void;
// For compatibility with WebGL 1 context in older Typescript versions.
readPixels(
x: number,
y: number,
width: number,
height: number,
format: number,
type: number,
dstData: ArrayBufferView | null
): void;
// WebGL2:
readPixels(
x: number,
y: number,
width: number,
height: number,
format: number,
type: number,
offset: number
): void;
readPixels(
x: number,
y: number,
width: number,
height: number,
format: number,
type: number,
dstData: ArrayBufferView,
dstOffset: number
): void;
/* Multiple Render Targets */
drawBuffers(buffers: number[]): void;
clearBufferfv(
buffer: number,
drawbuffer: number,
values: Float32Array | ArrayLike<number>,
srcOffset?: number
): void;
clearBufferiv(
buffer: number,
drawbuffer: number,
values: Int32Array | ArrayLike<number>,
srcOffset?: number
): void;
clearBufferuiv(
buffer: number,
drawbuffer: number,
values: Uint32Array | ArrayLike<number>,
srcOffset?: number
): void;
clearBufferfi(buffer: number, drawbuffer: number, depth: number, stencil: number): void;
/* Query Objects */
createQuery(): WebGLQuery | null;
deleteQuery(query: WebGLQuery | null): void;
isQuery(query: WebGLQuery | null): boolean; //[WebGLHandlesContextLoss]
beginQuery(target: number, query: WebGLQuery): void;
endQuery(target: number): void;
getQuery(target: number, pname: number): WebGLQuery | null;
getQueryParameter(query: WebGLQuery, pname: number): any;
/* Sampler Objects */
createSampler(): WebGLSampler | null;
deleteSampler(sampler: WebGLSampler | null): void;
isSampler(sampler: WebGLSampler | null): boolean; //[WebGLHandlesContextLoss]
bindSampler(unit: number, sampler: WebGLSampler | null): void;
samplerParameteri(sampler: WebGLSampler, pname: number, param: number): void;
samplerParameterf(sampler: WebGLSampler, pname: number, param: number): void;
getSamplerParameter(sampler: WebGLSampler, pname: number): any;
/* Sync objects */
fenceSync(condition: number, flags: number): WebGLSync | null;
isSync(sync: WebGLSync | null): boolean; //[WebGLHandlesContextLoss]
deleteSync(sync: WebGLSync | null): void;
clientWaitSync(sync: WebGLSync, flags: number, timeout: number): number;
waitSync(sync: WebGLSync, flags: number, timeout: number): void;
getSyncParameter(sync: WebGLSync, pname: number): any;
/* Transform Feedback */
createTransformFeedback(): WebGLTransformFeedback | null;
deleteTransformFeedback(tf: WebGLTransformFeedback | null): void;
isTransformFeedback(tf: WebGLTransformFeedback | null): boolean; //[WebGLHandlesContextLoss]
bindTransformFeedback(target: number, tf: WebGLTransformFeedback | null): void;
beginTransformFeedback(primitiveMode: number): void;
endTransformFeedback(): void;
transformFeedbackVaryings(program: WebGLProgram, varyings: string[], bufferMode: number): void;
getTransformFeedbackVarying(program: WebGLProgram, index: number): WebGLActiveInfo | null;
pauseTransformFeedback(): void;
resumeTransformFeedback(): void;
/* Uniform Buffer Objects and Transform Feedback Buffers */
bindBufferBase(target: number, index: number, buffer: WebGLBuffer | null): void;
bindBufferRange(
target: number,
index: number,
buffer: WebGLBuffer | null,
offset: number,
size: number
): void;
getIndexedParameter(target: number, index: number): any;
getUniformIndices(program: WebGLProgram, uniformNames: string[]): number[] | null;
getActiveUniforms(program: WebGLProgram, uniformIndices: number[], pname: number): any;
getUniformBlockIndex(program: WebGLProgram, uniformBlockName: string): number;
getActiveUniformBlockParameter(
program: WebGLProgram,
uniformBlockIndex: number,
pname: number
): any;
getActiveUniformBlockName(program: WebGLProgram, uniformBlockIndex: number): string | null;
uniformBlockBinding(
program: WebGLProgram,
uniformBlockIndex: number,
uniformBlockBinding: number
): void;
/* Vertex Array Objects */
createVertexArray(): WebGLVertexArrayObject | null;
deleteVertexArray(vertexArray: WebGLVertexArrayObject | null): void;
isVertexArray(vertexArray: WebGLVertexArrayObject | null): boolean; //[WebGLHandlesContextLoss]
bindVertexArray(array: WebGLVertexArrayObject | null): void;
}
interface WebGLQuery extends WebGLObject {}
interface WebGLSampler extends WebGLObject {}
interface WebGLSync extends WebGLObject {}
interface WebGLTransformFeedback extends WebGLObject {}
interface WebGLVertexArrayObject extends WebGLObject {}