@luma.gl/constants 9.0.0-alpha.9 → 9.0.0-beta.10

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -0,0 +1,767 @@
1
+ // luma.gl
2
+ // SPDX-License-Identifier: MIT
3
+ // Copyright (c) vis.gl contributors
4
+
5
+ /* eslint-disable camelcase */
6
+ import {GL} from './webgl-constants';
7
+
8
+ /** Type covering all typed arrays and classic arrays consisting of numbers */
9
+ export type NumberArray = number[] | TypedArray;
10
+ /** Type covering all typed arrays and classic arrays consisting of numbers */
11
+ export type NumericArray = TypedArray | number[];
12
+
13
+ /** TypeScript type covering all typed arrays */
14
+
15
+ export type TypedArray =
16
+ | Int8Array
17
+ | Uint8Array
18
+ | Int16Array
19
+ | Uint16Array
20
+ | Int32Array
21
+ | Uint32Array
22
+ | Uint8ClampedArray
23
+ | Float32Array
24
+ | Float64Array;
25
+
26
+ /** type covering all typed arrays and classic arrays consisting of numbers */
27
+
28
+ /** We don't know the type of Framebuffer at this stage */
29
+ type Framebuffer = unknown;
30
+
31
+ /** All possible texture targets */
32
+ export type GLTextureTarget =
33
+ | GL.TEXTURE_2D
34
+ | GL.TEXTURE_CUBE_MAP
35
+ | GL.TEXTURE_2D_ARRAY
36
+ | GL.TEXTURE_3D;
37
+
38
+ /** All possible cube face targets for textImage2D */
39
+ export type GLTextureCubeMapTarget =
40
+ | GL.TEXTURE_CUBE_MAP_POSITIVE_X
41
+ | GL.TEXTURE_CUBE_MAP_NEGATIVE_X
42
+ | GL.TEXTURE_CUBE_MAP_POSITIVE_Y
43
+ | GL.TEXTURE_CUBE_MAP_NEGATIVE_Y
44
+ | GL.TEXTURE_CUBE_MAP_POSITIVE_Z
45
+ | GL.TEXTURE_CUBE_MAP_NEGATIVE_Z;
46
+
47
+ /** Rendering primitives. Constants passed to drawElements() or drawArrays() to specify what kind of primitive to render. */
48
+ export type GLPrimitiveTopology =
49
+ | GL.POINTS
50
+ | GL.LINES
51
+ | GL.LINE_STRIP
52
+ | GL.LINE_LOOP
53
+ | GL.TRIANGLES
54
+ | GL.TRIANGLE_STRIP
55
+ | GL.TRIANGLE_FAN;
56
+
57
+ /** Rendering primitives. Constants passed to transform feedback . */
58
+ export type GLPrimitive = GL.POINTS | GL.LINES | GL.TRIANGLES;
59
+
60
+ /** Data Type */
61
+ export type GLDataType =
62
+ | GL.FLOAT
63
+ | GL.UNSIGNED_SHORT
64
+ | GL.UNSIGNED_INT
65
+ | GL.UNSIGNED_BYTE
66
+ | GL.BYTE
67
+ | GL.SHORT
68
+ | GL.INT;
69
+
70
+ /** Pixel Data Type */
71
+ export type GLPixelType =
72
+ | GLDataType
73
+ | GL.UNSIGNED_SHORT_5_6_5
74
+ | GL.UNSIGNED_SHORT_4_4_4_4
75
+ | GL.UNSIGNED_SHORT_5_5_5_1;
76
+
77
+ /** Uniform Type */
78
+ export type GLUniformType = GLSamplerType | GLCompositeType;
79
+
80
+ /**
81
+ * Sampler uniform type
82
+ * @note These are all the valid sampler types used with `gl.uniform1i((location, value)`
83
+ */
84
+ export type GLSamplerType =
85
+ | GL.SAMPLER_2D
86
+ | GL.SAMPLER_CUBE
87
+ | GL.SAMPLER_3D
88
+ | GL.SAMPLER_2D_SHADOW
89
+ | GL.SAMPLER_2D_ARRAY
90
+ | GL.SAMPLER_2D_ARRAY_SHADOW
91
+ | GL.SAMPLER_CUBE_SHADOW
92
+ | GL.INT_SAMPLER_2D
93
+ | GL.INT_SAMPLER_3D
94
+ | GL.INT_SAMPLER_CUBE
95
+ | GL.INT_SAMPLER_2D_ARRAY
96
+ | GL.UNSIGNED_INT_SAMPLER_2D
97
+ | GL.UNSIGNED_INT_SAMPLER_3D
98
+ | GL.UNSIGNED_INT_SAMPLER_CUBE
99
+ | GL.UNSIGNED_INT_SAMPLER_2D_ARRAY;
100
+
101
+ /**
102
+ * Composite types table
103
+ * @note These are all the valid non-sampler uniform types,
104
+ * Different `gl.uniformXXX(location, value)` functions must be used depending on which composite type is being set.
105
+ */
106
+ export type GLCompositeType =
107
+ | GL.FLOAT
108
+ | GL.FLOAT_VEC2
109
+ | GL.FLOAT_VEC3
110
+ | GL.FLOAT_VEC4
111
+ | GL.INT
112
+ | GL.INT_VEC2
113
+ | GL.INT_VEC3
114
+ | GL.INT_VEC4
115
+ | GL.UNSIGNED_INT
116
+ | GL.UNSIGNED_INT_VEC2
117
+ | GL.UNSIGNED_INT_VEC3
118
+ | GL.UNSIGNED_INT_VEC4
119
+ | GL.BOOL
120
+ | GL.BOOL_VEC2
121
+ | GL.BOOL_VEC3
122
+ | GL.BOOL_VEC4
123
+ | GL.FLOAT_MAT2
124
+ | GL.FLOAT_MAT2x3
125
+ | GL.FLOAT_MAT2x4
126
+ | GL.FLOAT_MAT3x2
127
+ | GL.FLOAT_MAT3
128
+ | GL.FLOAT_MAT3x4
129
+ | GL.FLOAT_MAT4x2
130
+ | GL.FLOAT_MAT4x3
131
+ | GL.FLOAT_MAT4;
132
+
133
+ /**
134
+ * Depth or stencil tests
135
+ * Constants passed to WebGLRenderingContext.depthFunc() or WebGLRenderingContext.stencilFunc().
136
+ */
137
+ export type GLFunction =
138
+ | GL.NEVER
139
+ | GL.LESS
140
+ | GL.EQUAL
141
+ | GL.LEQUAL
142
+ | GL.GREATER
143
+ | GL.NOTEQUAL
144
+ | GL.GEQUAL
145
+ | GL.ALWAYS;
146
+
147
+ export type GLBlendEquation =
148
+ | GL.FUNC_ADD
149
+ | GL.FUNC_SUBTRACT
150
+ | GL.FUNC_REVERSE_SUBTRACT
151
+ | GL.MIN
152
+ | GL.MAX;
153
+
154
+ export type GLBlendFunction =
155
+ | GL.ZERO
156
+ | GL.ONE
157
+ | GL.SRC_COLOR
158
+ | GL.ONE_MINUS_SRC_COLOR
159
+ | GL.DST_COLOR
160
+ | GL.ONE_MINUS_DST_COLOR
161
+ | GL.SRC_ALPHA
162
+ | GL.ONE_MINUS_SRC_ALPHA
163
+ | GL.DST_ALPHA
164
+ | GL.ONE_MINUS_DST_ALPHA
165
+ | GL.CONSTANT_COLOR
166
+ | GL.ONE_MINUS_CONSTANT_COLOR
167
+ | GL.CONSTANT_ALPHA
168
+ | GL.ONE_MINUS_CONSTANT_ALPHA
169
+ | GL.SRC_ALPHA_SATURATE;
170
+
171
+ /**
172
+ * Stencil actions
173
+ * Constants passed to WebGLRenderingContext.stencilOp().
174
+ */
175
+ export type GLStencilOp =
176
+ | GL.KEEP
177
+ | GL.ZERO
178
+ | GL.REPLACE
179
+ | GL.INCR
180
+ | GL.INCR_WRAP
181
+ | GL.DECR
182
+ | GL.DECR_WRAP
183
+ | GL.INVERT;
184
+
185
+ /** Parameters for textures and samplers */
186
+ export type GLSamplerParameters = {
187
+ /** Sets the wrap parameter for texture coordinate to either GL_CLAMP_TO_EDGE, GL_MIRRORED_REPEAT, or GL_REPEAT. */
188
+ [GL.TEXTURE_WRAP_S]?: GL.CLAMP_TO_EDGE | GL.REPEAT | GL.MIRRORED_REPEAT;
189
+ /** Sets the wrap parameter for texture coordinate to either GL_CLAMP_TO_EDGE, GL_MIRRORED_REPEAT, or GL_REPEAT. */
190
+ [GL.TEXTURE_WRAP_T]?: GL.CLAMP_TO_EDGE | GL.REPEAT | GL.MIRRORED_REPEAT;
191
+ /** Sets the wrap parameter for texture coordinate to either GL_CLAMP_TO_EDGE, GL_MIRRORED_REPEAT, or GL_REPEAT. */
192
+ [GL.TEXTURE_WRAP_R]?: GL.CLAMP_TO_EDGE | GL.REPEAT | GL.MIRRORED_REPEAT;
193
+
194
+ /** The texture magnification function is used when the pixel being textured maps to an area less than or equal to one texture element. It sets the texture magnification function to either GL_NEAREST or GL_LINEAR (see below). GL_NEAREST is generally faster than GL_LINEAR, but it can produce textured images with sharper edges because the transition between texture elements is not as smooth. Default: GL_LINEAR. */
195
+ [GL.TEXTURE_MAG_FILTER]?: GL.NEAREST | GL.LINEAR;
196
+ /** The texture minifying function is used whenever the pixel being textured maps to an area greater than one texture element. There are six defined minifying functions. Two of them use the nearest one or nearest four texture elements to compute the texture value. The other four use mipmaps. Default: GL_NEAREST_MIPMAP_LINEAR */
197
+ [GL.TEXTURE_MIN_FILTER]?:
198
+ | GL.NEAREST
199
+ | GL.LINEAR
200
+ | GL.NEAREST_MIPMAP_NEAREST
201
+ | GL.NEAREST_MIPMAP_LINEAR
202
+ | GL.LINEAR_MIPMAP_NEAREST
203
+ | GL.LINEAR_MIPMAP_LINEAR;
204
+ /* A GLfloat indicating the minimum level-of-detail mipmap. */
205
+ [GL.TEXTURE_MIN_LOD]?: number;
206
+ /* A GLfloat indicating the minimum level-of-detail mipmap. */
207
+ [GL.TEXTURE_MAX_LOD]?: number;
208
+ /** Texture parameter TEXTURE_COMPARE_FUNC specifies the depth texture comparison function */
209
+ [GL.TEXTURE_COMPARE_FUNC]?: number; // COMPARE_FUNC);
210
+ /** Texture parameter TEXTURE_COMPARE_MODE specifies the depth texture comparison operands. */
211
+ [GL.TEXTURE_COMPARE_MODE]?: GL.COMPARE_REF_TO_TEXTURE;
212
+ /** Max anisotropy level */
213
+ [GL.TEXTURE_MAX_ANISOTROPY_EXT]?: number;
214
+ };
215
+
216
+ /**
217
+ * All global WebGL parameters
218
+ */
219
+ export type GLValueParameters = {
220
+ [GL.BLEND]?: boolean;
221
+ [GL.BLEND_COLOR]?: [number, number, number, number] | NumberArray;
222
+ [GL.BLEND_EQUATION_RGB]?: GLBlendEquation;
223
+ [GL.BLEND_EQUATION_ALPHA]?: GLBlendEquation;
224
+ [GL.BLEND_SRC_RGB]?: GLBlendFunction;
225
+ [GL.BLEND_DST_RGB]?: GLBlendFunction;
226
+ [GL.BLEND_SRC_ALPHA]?: GLBlendFunction;
227
+ [GL.BLEND_DST_ALPHA]?: GLBlendFunction;
228
+ [GL.COLOR_CLEAR_VALUE]?: [number, number, number, number] | NumberArray;
229
+ [GL.COLOR_WRITEMASK]?: [boolean, boolean, boolean, boolean] | boolean[];
230
+ [GL.CULL_FACE]?: boolean;
231
+ [GL.CULL_FACE_MODE]?: GL.FRONT | GL.BACK | GL.FRONT_AND_BACK;
232
+ [GL.DEPTH_TEST]?: boolean;
233
+ [GL.DEPTH_CLEAR_VALUE]?: number;
234
+ [GL.DEPTH_FUNC]?: GLFunction;
235
+ [GL.DEPTH_RANGE]?: [number, number] | NumberArray;
236
+ [GL.DEPTH_WRITEMASK]?: boolean;
237
+ [GL.DITHER]?: boolean;
238
+ [GL.FRAGMENT_SHADER_DERIVATIVE_HINT]?: GL.FASTEST | GL.NICEST | GL.DONT_CARE;
239
+ [GL.CURRENT_PROGRAM]?: WebGLProgram | null;
240
+ [GL.FRAMEBUFFER_BINDING]?: WebGLFramebuffer | null;
241
+ [GL.RENDERBUFFER_BINDING]?: WebGLRenderbuffer | null;
242
+ [GL.TRANSFORM_FEEDBACK_BINDING]?: WebGLTransformFeedback | null;
243
+ [GL.VERTEX_ARRAY_BINDING]?: WebGLVertexArrayObject | null;
244
+ [GL.ARRAY_BUFFER_BINDING]?: WebGLBuffer | null;
245
+ [GL.COPY_READ_BUFFER_BINDING]?: WebGLBuffer | null;
246
+ [GL.COPY_WRITE_BUFFER_BINDING]?: WebGLBuffer | null;
247
+ [GL.PIXEL_PACK_BUFFER_BINDING]?: WebGLBuffer | null;
248
+ [GL.PIXEL_UNPACK_BUFFER_BINDING]?: WebGLBuffer | null;
249
+ [GL.TEXTURE_BINDING_2D]?: WebGLTexture | null;
250
+ [GL.TEXTURE_BINDING_2D_ARRAY]?: WebGLTexture | null;
251
+ [GL.TEXTURE_BINDING_3D]?: WebGLTexture | null;
252
+ [GL.TEXTURE_BINDING_CUBE_MAP]?: WebGLTexture | null;
253
+ [GL.FRONT_FACE]?: GL.CW | GL.CCW;
254
+ [GL.GENERATE_MIPMAP_HINT]?: GL.FASTEST | GL.NICEST | GL.DONT_CARE;
255
+ [GL.LINE_WIDTH]?: number;
256
+ [GL.POLYGON_OFFSET_FILL]?: boolean;
257
+ [GL.POLYGON_OFFSET_FACTOR]?: number;
258
+ [GL.POLYGON_OFFSET_UNITS]?: number;
259
+ [GL.SAMPLE_ALPHA_TO_COVERAGE]?: boolean;
260
+ [GL.SAMPLE_COVERAGE]?: boolean;
261
+ [GL.RASTERIZER_DISCARD]?: boolean;
262
+ [GL.SAMPLE_COVERAGE_VALUE]?: number;
263
+ [GL.SAMPLE_COVERAGE_INVERT]?: boolean;
264
+ [GL.SCISSOR_TEST]?: boolean;
265
+ [GL.SCISSOR_BOX]?: [number, number, number, number] | NumberArray;
266
+ [GL.STENCIL_TEST]?: boolean;
267
+ [GL.STENCIL_CLEAR_VALUE]?: number;
268
+ [GL.STENCIL_WRITEMASK]?: number;
269
+ [GL.STENCIL_BACK_WRITEMASK]?: number;
270
+ [GL.STENCIL_FUNC]?: GLFunction;
271
+ [GL.STENCIL_REF]?: number;
272
+ [GL.STENCIL_VALUE_MASK]?: number;
273
+ [GL.STENCIL_BACK_FUNC]?: GLFunction;
274
+ [GL.STENCIL_BACK_REF]?: number;
275
+ [GL.STENCIL_BACK_VALUE_MASK]?: number;
276
+ [GL.STENCIL_FAIL]?: GLStencilOp;
277
+ [GL.STENCIL_PASS_DEPTH_FAIL]?: GLStencilOp;
278
+ [GL.STENCIL_PASS_DEPTH_PASS]?: GLStencilOp;
279
+ [GL.STENCIL_BACK_FAIL]?: GLStencilOp;
280
+ [GL.STENCIL_BACK_PASS_DEPTH_FAIL]?: GLStencilOp;
281
+ [GL.STENCIL_BACK_PASS_DEPTH_PASS]?: GLStencilOp;
282
+ [GL.VIEWPORT]?: [number, number, number, number] | NumberArray;
283
+
284
+ [GL.PACK_ALIGNMENT]?: number;
285
+ [GL.UNPACK_ALIGNMENT]?: number;
286
+ [GL.UNPACK_FLIP_Y_WEBGL]?: boolean;
287
+ [GL.UNPACK_PREMULTIPLY_ALPHA_WEBGL]?: boolean;
288
+ [GL.UNPACK_COLORSPACE_CONVERSION_WEBGL]?: GL.NONE | GL.BROWSER_DEFAULT_WEBGL;
289
+ [GL.PACK_ROW_LENGTH]?: number;
290
+ [GL.PACK_SKIP_PIXELS]?: number;
291
+ [GL.PACK_SKIP_ROWS]?: number;
292
+ [GL.READ_FRAMEBUFFER_BINDING]?: Framebuffer | null;
293
+ [GL.UNPACK_ROW_LENGTH]?: number;
294
+ [GL.UNPACK_IMAGE_HEIGHT]?: number;
295
+ [GL.UNPACK_SKIP_PIXELS]?: number;
296
+ [GL.UNPACK_SKIP_ROWS]?: number;
297
+ [GL.UNPACK_SKIP_IMAGES]?: number;
298
+ };
299
+
300
+ /**
301
+ * Function style WebGL parameters used by luma.gl
302
+ * @todo Should perhaps be defined in webgl module
303
+ */
304
+ export type GLFunctionParameters = {
305
+ // Function-style setters
306
+ framebuffer?: Framebuffer | null;
307
+ blend?: boolean;
308
+ blendColor?: [number, number, number, number] | NumberArray;
309
+ blendEquation?: GLBlendEquation | [GLBlendEquation, GLBlendEquation];
310
+ /* defines which function is used for blending pixel arithmetic. Defaults to one and zero */
311
+ blendFunc?:
312
+ | [GLBlendFunction, GLBlendFunction]
313
+ | [GLBlendFunction, GLBlendFunction, GLBlendFunction, GLBlendFunction];
314
+
315
+ clearColor?: [number, number, number, number] | NumberArray;
316
+ clearDepth?: number;
317
+ clearStencil?: number;
318
+
319
+ colorMask?: [boolean, boolean, boolean, boolean] | boolean[];
320
+
321
+ cull?: boolean;
322
+ cullFace?: GL.FRONT | GL.BACK | GL.FRONT_AND_BACK;
323
+
324
+ depthTest?: boolean;
325
+ depthFunc?: GLFunction;
326
+ /** Specifies whether writing into the depth buffer is enabled. Default true, i.e. writing is enabled. */
327
+ depthMask?: boolean;
328
+ depthRange?: [number, number] | NumberArray;
329
+
330
+ dither?: boolean;
331
+
332
+ derivativeHint?: GL.FASTEST | GL.NICEST | GL.DONT_CARE;
333
+
334
+ frontFace?: GL.CW | GL.CCW;
335
+
336
+ mipmapHint?: GL.FASTEST | GL.NICEST | GL.DONT_CARE;
337
+
338
+ lineWidth?: number;
339
+
340
+ polygonOffsetFill?: boolean;
341
+ polygonOffset?: [number, number];
342
+
343
+ sampleCoverage?: [number, boolean];
344
+
345
+ scissorTest?: boolean;
346
+ scissor?: [number, number, number, number] | NumberArray;
347
+
348
+ stencilTest?: boolean;
349
+ /** Bit mask to enable or disable writing of individual bits in the stencil planes. By default, the mask is all 1. */
350
+ stencilMask?: number | [number, number];
351
+ stencilFunc?:
352
+ | [GLFunction, number, number]
353
+ | [GLFunction, number, number, GLFunction, number, number];
354
+ stencilOp?:
355
+ | [GLStencilOp, GLStencilOp, GLStencilOp]
356
+ | [GLStencilOp, GLStencilOp, GLStencilOp, GLStencilOp, GLStencilOp, GLStencilOp];
357
+ viewport?: [number, number, number, number] | NumberArray;
358
+ };
359
+
360
+ /** WebGL style parameters object (with both GL constants and function style fields) */
361
+ export type GLParameters = GLValueParameters & GLFunctionParameters;
362
+
363
+ /** WebGL context limits */
364
+ export type GLLimits = {
365
+ [GL.ALIASED_LINE_WIDTH_RANGE]: [number, number];
366
+ [GL.ALIASED_POINT_SIZE_RANGE]: [number, number];
367
+ [GL.MAX_TEXTURE_SIZE]: number;
368
+ [GL.MAX_CUBE_MAP_TEXTURE_SIZE]: number;
369
+ [GL.MAX_TEXTURE_IMAGE_UNITS]: number;
370
+ [GL.MAX_COMBINED_TEXTURE_IMAGE_UNITS]: number;
371
+ [GL.MAX_VERTEX_TEXTURE_IMAGE_UNITS]: number;
372
+ [GL.MAX_RENDERBUFFER_SIZE]: number;
373
+ [GL.MAX_VARYING_VECTORS]: number;
374
+ [GL.MAX_VERTEX_ATTRIBS]: number;
375
+ [GL.MAX_VERTEX_UNIFORM_VECTORS]: number;
376
+ [GL.MAX_FRAGMENT_UNIFORM_VECTORS]: number;
377
+ [GL.MAX_VIEWPORT_DIMS]: [number, number];
378
+
379
+ // Extensions
380
+ [GL.MAX_TEXTURE_MAX_ANISOTROPY_EXT]: number;
381
+
382
+ // WebGL2 Limits
383
+ [GL.MAX_3D_TEXTURE_SIZE]: number;
384
+ [GL.MAX_ARRAY_TEXTURE_LAYERS]: number;
385
+ // [GL.MAX_CLIENT_WAIT_TIMEOUT_WEBGL]: number;
386
+ [GL.MAX_COLOR_ATTACHMENTS]: number;
387
+ [GL.MAX_COMBINED_FRAGMENT_UNIFORM_COMPONENTS]: number;
388
+ [GL.MAX_COMBINED_UNIFORM_BLOCKS]: number;
389
+ [GL.MAX_COMBINED_VERTEX_UNIFORM_COMPONENTS]: number;
390
+ [GL.MAX_DRAW_BUFFERS]: number;
391
+ [GL.MAX_ELEMENT_INDEX]: number;
392
+ [GL.MAX_ELEMENTS_INDICES]: number;
393
+ [GL.MAX_ELEMENTS_VERTICES]: number;
394
+ [GL.MAX_FRAGMENT_INPUT_COMPONENTS]: number;
395
+ [GL.MAX_FRAGMENT_UNIFORM_BLOCKS]: number;
396
+ [GL.MAX_FRAGMENT_UNIFORM_COMPONENTS]: number;
397
+ [GL.MAX_SAMPLES]: number;
398
+ // [GL.MAX_SERVER_WAIT_TIMEOUT]: number;
399
+ [GL.MAX_TEXTURE_LOD_BIAS]: number;
400
+ [GL.MAX_TRANSFORM_FEEDBACK_INTERLEAVED_COMPONENTS]: number;
401
+ [GL.MAX_TRANSFORM_FEEDBACK_SEPARATE_ATTRIBS]: number;
402
+ [GL.MAX_TRANSFORM_FEEDBACK_SEPARATE_COMPONENTS]: number;
403
+ [GL.MAX_UNIFORM_BLOCK_SIZE]: number;
404
+ [GL.MAX_UNIFORM_BUFFER_BINDINGS]: number;
405
+ [GL.MAX_VARYING_COMPONENTS]: number;
406
+ [GL.MAX_VERTEX_OUTPUT_COMPONENTS]: number;
407
+ [GL.MAX_VERTEX_UNIFORM_BLOCKS]: number;
408
+ [GL.MAX_VERTEX_UNIFORM_COMPONENTS]: number;
409
+ [GL.MIN_PROGRAM_TEXEL_OFFSET]: number;
410
+ [GL.MAX_PROGRAM_TEXEL_OFFSET]: number;
411
+ [GL.UNIFORM_BUFFER_OFFSET_ALIGNMENT]: number;
412
+
413
+ // EXTENSIONS
414
+ /** Max clip distances */
415
+ MAX_CLIP_DISTANCES_WEBGL: number;
416
+ /** Max cull distances */
417
+ MAX_CULL_DISTANCES_WEBGL: number;
418
+ /** Max clip and cull distances */
419
+ MAX_COMBINED_CLIP_AND_CULL_DISTANCES_WEBGL: number;
420
+ MAX_DUAL_SOURCE_DRAW_BUFFERS_WEBGL: number;
421
+ };
422
+
423
+ /** WebGL2 Extensions */
424
+ export type GLExtensions = {
425
+ /** https://registry.khronos.org/webgl/extensions/EXT_color_buffer_float */
426
+ EXT_color_buffer_float?: EXT_color_buffer_float | null;
427
+ /** https://registry.khronos.org/webgl/extensions/EXT_color_buffer_half_float */
428
+ EXT_color_buffer_half_float?: EXT_color_buffer_half_float | null;
429
+ /** https://registry.khronos.org/webgl/extensions/EXT_texture_compression_bptc */
430
+ EXT_texture_compression_bptc?: EXT_texture_compression_bptc | null;
431
+ /** https://registry.khronos.org/webgl/extensions/EXT_texture_compression_rgtc */
432
+ EXT_texture_compression_rgtc?: EXT_texture_compression_rgtc | null;
433
+ /** https://registry.khronos.org/webgl/extensions/EXT_texture_filter_anisotropic */
434
+ EXT_texture_filter_anisotropic?: EXT_texture_filter_anisotropic | null;
435
+ /** https://registry.khronos.org/webgl/extensions/KHR_parallel_shader_compile */
436
+ KHR_parallel_shader_compile?: KHR_parallel_shader_compile | null;
437
+ /** https://registry.khronos.org/webgl/extensions/OES_fbo_render_mipmap */
438
+ OES_fbo_render_mipmap?: OES_fbo_render_mipmap | null;
439
+ /** https://registry.khronos.org/webgl/extensions/OES_texture_float */
440
+ OES_texture_float?: OES_texture_float | null;
441
+ /** https://registry.khronos.org/webgl/extensions/OES_texture_float_linear */
442
+ OES_texture_float_linear?: OES_texture_float_linear | null;
443
+ /** https://registry.khronos.org/webgl/extensions/OES_texture_half_float */
444
+ OES_texture_half_float?: OES_texture_half_float | null;
445
+ /** https://registry.khronos.org/webgl/extensions/OES_texture_half_float_linear */
446
+ OES_texture_half_float_linear?: OES_texture_half_float_linear | null;
447
+ /** https://registry.khronos.org/webgl/extensions/OES_vertex_array_object */
448
+ OES_vertex_array_object?: OES_vertex_array_object | null;
449
+ /** https://registry.khronos.org/webgl/extensions/EXT_float_blend */
450
+ EXT_float_blend?: EXT_float_blend | null;
451
+ /** https://registry.khronos.org/webgl/extensions/OVR_multiview2 */
452
+ OVR_multiview2?: OVR_multiview2 | null;
453
+ /** https://registry.khronos.org/webgl/extensions/WEBGL_compressed_texture_astc */
454
+ WEBGL_compressed_texture_astc?: WEBGL_compressed_texture_astc | null;
455
+ /** https://registry.khronos.org/webgl/extensions/WEBGL_compressed_texture_etc */
456
+ WEBGL_compressed_texture_etc?: WEBGL_compressed_texture_etc | null;
457
+ /** https://registry.khronos.org/webgl/extensions/WEBGL_compressed_texture_etc1 */
458
+ WEBGL_compressed_texture_etc1?: WEBGL_compressed_texture_etc1 | null;
459
+ /** https://registry.khronos.org/webgl/extensions/WEBGL_compressed_texture_pvrtc */
460
+ WEBGL_compressed_texture_pvrtc?: WEBGL_compressed_texture_pvrtc | null;
461
+ /** https://registry.khronos.org/webgl/extensions/WEBGL_compressed_texture_s3tc */
462
+ WEBGL_compressed_texture_s3tc?: WEBGL_compressed_texture_s3tc | null;
463
+ /** https://registry.khronos.org/webgl/extensions/WEBGL_compressed_texture_s3tc_srgb */
464
+ WEBGL_compressed_texture_s3tc_srgb?: WEBGL_compressed_texture_s3tc_srgb | null;
465
+ /** https://registry.khronos.org/webgl/extensions/WEBGL_debug_renderer_info */
466
+ WEBGL_debug_renderer_info?: WEBGL_debug_renderer_info | null;
467
+ /** https://registry.khronos.org/webgl/extensions/WEBGL_debug_shaders */
468
+ WEBGL_debug_shaders?: WEBGL_debug_shaders | null;
469
+ /** https://registry.khronos.org/webgl/extensions/WEBGL_lose_context */
470
+ WEBGL_lose_context?: WEBGL_lose_context | null;
471
+
472
+ // Predefined typescript types not available for the following extensions
473
+
474
+ /** https://registry.khronos.org/webgl/extensions/EXT_norm16/ */
475
+ EXT_norm16?: EXT_norm16 | null;
476
+ /** https://registry.khronos.org/webgl/extensions/EXT_snorm/ */
477
+ EXT_snorm?: EXT_snorm | null;
478
+ /** https://registry.khronos.org/webgl/extensions/WEBGL_render_shared_exponent/ */
479
+ WEBGL_render_shared_exponent?: WEBGL_render_shared_exponent | null;
480
+
481
+ /** https://registry.khronos.org/webgl/extensions/EXT_depth_clamp/ */
482
+ EXT_depth_clamp?: EXT_depth_clamp | null;
483
+ /** https://registry.khronos.org/webgl/extensions/WEBGL_provoking_vertex/ */
484
+ WEBGL_provoking_vertex?: WEBGL_provoking_vertex | null;
485
+ /** https://registry.khronos.org/webgl/extensions/WEBGL_polygon_mode/ */
486
+ WEBGL_polygon_mode?: WEBGL_polygon_mode | null;
487
+
488
+ /** WEBGL_clip_cull_distance https://registry.khronos.org/webgl/extensions/WEBGL_clip_cull_distance/ */
489
+ WEBGL_clip_cull_distance?: WEBGL_clip_cull_distance | null;
490
+
491
+ /** NV_shader_noperspective_interpolation https://registry.khronos.org/webgl/extensions/NV_shader_noperspective_interpolation/ */
492
+ NV_shader_noperspective_interpolation?: NV_shader_noperspective_interpolation | null;
493
+
494
+ /** EXT_conservative_depth https://registry.khronos.org/webgl/extensions/EXT_conservative_depth/ */
495
+ EXT_conservative_depth?: EXT_conservative_depth | null;
496
+
497
+ /** OES_sample_variables https://registry.khronos.org/webgl/extensions/OES_sample_variables/ */
498
+ OES_sample_variables?: OES_sample_variables | null;
499
+
500
+ /** EXT_polygon_offset_clamp https://registry.khronos.org/webgl/extensions/EXT_polygon_offset_clamp/ */
501
+ EXT_polygon_offset_clamp?: EXT_polygon_offset_clamp | null;
502
+
503
+ /** EXT_clip_control https://registry.khronos.org/webgl/extensions/EXT_clip_control/ */
504
+ EXT_clip_control?: EXT_clip_control | null;
505
+
506
+ /** EXT_texture_mirror_clamp_to_edge https://registry.khronos.org/webgl/extensions/EXT_texture_mirror_clamp_to_edge/ */
507
+ EXT_texture_mirror_clamp_to_edge?: EXT_texture_mirror_clamp_to_edge | null;
508
+ /** EXT_texture_mirror_clamp_to_edge https://registry.khronos.org/webgl/extensions/EXT_texture_mirror_clamp_to_edge/ */
509
+ WEBGL_stencil_texturing?: WEBGL_stencil_texturing | null;
510
+
511
+ /** WEBGL_blend_func_extended https://registry.khronos.org/webgl/extensions/WEBGL_blend_func_extended/ */
512
+ WEBGL_blend_func_extended?: WEBGL_blend_func_extended | null;
513
+
514
+ /** OES_draw_buffers_indexed https://registry.khronos.org/webgl/extensions/OES_draw_buffers_indexed/ */
515
+ OES_draw_buffers_indexed?: OES_draw_buffers_indexed | null;
516
+
517
+ /** WEBGL_draw_instanced_base_vertex_base_instance https://registry.khronos.org/webgl/extensions/WEBGL_draw_instanced_base_vertex_base_instance/ */
518
+ WEBGL_draw_instanced_base_vertex_base_instance?: WEBGL_draw_instanced_base_vertex_base_instance | null;
519
+ /** WEBGL_multi_draw https://registry.khronos.org/webgl/extensions/WEBGL_multi_draw/ */
520
+ WEBGL_multi_draw?: WEBGL_multi_draw | null;
521
+ /** WEBGL_multi_draw_instanced_base_vertex_base_instance https://registry.khronos.org/webgl/extensions/WEBGL_multi_draw_instanced_base_vertex_base_instance/ */
522
+ WEBGL_multi_draw_instanced_base_vertex_base_instance?: WEBGL_multi_draw_instanced_base_vertex_base_instance | null;
523
+ /** WEBGL_shader_pixel_local_storage https://registry.khronos.org/webgl/extensions/WEBGL_shader_pixel_local_storage/ */
524
+ WEBGL_shader_pixel_local_storage?: WEBGL_shader_pixel_local_storage | null;
525
+
526
+ // WEBGL1 extensions (available as built-in WebGL 2 APIs)
527
+ // ANGLE_instanced_arrays?: ANGLE_instanced_arrays | null;
528
+ // EXT_blend_minmax?: EXT_blend_minmax | null;
529
+ // EXT_frag_depth?: EXT_frag_depth | null;
530
+ // EXT_sRGB?: EXT_sRGB | null;
531
+ // EXT_shader_texture_lod?: EXT_shader_texture_lod | null;
532
+ // OES_element_index_uint?: OES_element_index_uint | null;
533
+ // OES_standard_derivatives?: OES_standard_derivatives | null;
534
+ // WEBGL_color_buffer_float?: WEBGL_color_buffer_float | null;
535
+ // WEBGL_depth_texture?: WEBGL_depth_texture | null;
536
+ // WEBGL_draw_buffers?: WEBGL_draw_buffers | null;
537
+ // WEBGL_multi_draw?: WEBGL_multi_draw | null;
538
+ };
539
+
540
+ /** https://registry.khronos.org/webgl/extensions/EXT_norm16/ */
541
+ type EXT_norm16 = {
542
+ // Constants in GL enum
543
+ };
544
+
545
+ /** https://registry.khronos.org/webgl/extensions/EXT_snorm/ */
546
+ type EXT_snorm = {
547
+ // Constants in GL enum
548
+ };
549
+
550
+ /** https://registry.khronos.org/webgl/extensions/WEBGL_render_shared_exponent/ */
551
+ type WEBGL_render_shared_exponent = {
552
+ // Constants in GL enum
553
+ };
554
+
555
+ /** https://registry.khronos.org/webgl/extensions/EXT_depth_clamp/ */
556
+ type EXT_depth_clamp = {
557
+ // Constants in GL enum
558
+ };
559
+
560
+ /** https://registry.khronos.org/webgl/extensions/WEBGL_provoking_vertex/ */
561
+ type WEBGL_provoking_vertex = {
562
+ // Constants in GL enum
563
+ /** Set the provoking vertex */
564
+ provokingVertexWEBGL(
565
+ provokeMode: GL.FIRST_VERTEX_CONVENTION_WEBGL | GL.LAST_VERTEX_CONVENTION_WEBGL
566
+ ): void;
567
+ };
568
+
569
+ /** WEBGL_polygon_mode https://registry.khronos.org/webgl/extensions/WEBGL_polygon_mode/ */
570
+ type WEBGL_polygon_mode = {
571
+ /** Set polygon mode of face to fill or line */
572
+ polygonModeWEBGL(face: GL.FRONT | GL.BACK, mode: GL.LINE_WEBGL | GL.FILL_WEBGL): void;
573
+ };
574
+
575
+ /** WEBGL_clip_cull_distance https://registry.khronos.org/webgl/extensions/WEBGL_clip_cull_distance/ */
576
+ type WEBGL_clip_cull_distance = {
577
+ /** Max clip distances */
578
+ MAX_CLIP_DISTANCES_WEBGL: 0x0d32;
579
+ /** Max cull distances */
580
+ MAX_CULL_DISTANCES_WEBGL: 0x82f9;
581
+ /** Max clip and cull distances */
582
+ MAX_COMBINED_CLIP_AND_CULL_DISTANCES_WEBGL: 0x82fa;
583
+
584
+ /** Enable gl_ClipDistance[0] and gl_CullDistance[0] */
585
+ CLIP_DISTANCE0_WEBGL: 0x3000;
586
+ /** Enable gl_ClipDistance[1] and gl_CullDistance[1] */
587
+ CLIP_DISTANCE1_WEBGL: 0x3001;
588
+ /** Enable gl_ClipDistance[2] and gl_CullDistance[2] */
589
+ CLIP_DISTANCE2_WEBGL: 0x3002;
590
+ /** Enable gl_ClipDistance[3] and gl_CullDistance[3] */
591
+ CLIP_DISTANCE3_WEBGL: 0x3003;
592
+ /** Enable gl_ClipDistance[4] and gl_CullDistance[4] */
593
+ CLIP_DISTANCE4_WEBGL: 0x3004;
594
+ /** Enable gl_ClipDistance[5] and gl_CullDistance[5] */
595
+ CLIP_DISTANCE5_WEBGL: 0x3005;
596
+ /** Enable gl_ClipDistance[6] and gl_CullDistance[6] */
597
+ CLIP_DISTANCE6_WEBGL: 0x3006;
598
+ /** Enable gl_ClipDistance[7] and gl_CullDistance[7] */
599
+ CLIP_DISTANCE7_WEBGL: 0x3007;
600
+ };
601
+
602
+ /** NV_shader_noperspective_interpolation https://registry.khronos.org/webgl/extensions/NV_shader_noperspective_interpolation/ */
603
+ type NV_shader_noperspective_interpolation = {};
604
+
605
+ /** EXT_conservative_depth https://registry.khronos.org/webgl/extensions/EXT_conservative_depth/ */
606
+ type EXT_conservative_depth = {};
607
+
608
+ /** OES_sample_variables https://registry.khronos.org/webgl/extensions/OES_sample_variables/ */
609
+ type OES_sample_variables = {};
610
+
611
+ /** EXT_polygon_offset_clamp https://registry.khronos.org/webgl/extensions/EXT_polygon_offset_clamp/ */
612
+ type EXT_polygon_offset_clamp = {
613
+ POLYGON_OFFSET_CLAMP_EXT: 0x8e1b;
614
+
615
+ polygonOffsetClampEXT(factor: number, units: number, clamp: number): void;
616
+ };
617
+
618
+ /** EXT_clip_control https://registry.khronos.org/webgl/extensions/EXT_clip_control/ */
619
+ type EXT_clip_control = {
620
+ LOWER_LEFT_EXT: 0x8ca1;
621
+ UPPER_LEFT_EXT: 0x8ca2;
622
+
623
+ NEGATIVE_ONE_TO_ONE_EXT: 0x935e;
624
+ ZERO_TO_ONE_EXT: 0x935f;
625
+
626
+ CLIP_ORIGIN_EXT: 0x935c;
627
+ CLIP_DEPTH_MODE_EXT: 0x935d;
628
+
629
+ clipControlEXT(origin: GL, depth: GL): void;
630
+ };
631
+
632
+ /** WEBGL_blend_func_extended https://registry.khronos.org/webgl/extensions/WEBGL_blend_func_extended/ */
633
+ type WEBGL_blend_func_extended = {
634
+ SRC1_COLOR_WEBGL: 0x88f9;
635
+ SRC1_ALPHA_WEBGL: 0x8589;
636
+ ONE_MINUS_SRC1_COLOR_WEBGL: 0x88fa;
637
+ ONE_MINUS_SRC1_ALPHA_WEBGL: 0x88fb;
638
+ MAX_DUAL_SOURCE_DRAW_BUFFERS_WEBGL: 0x88fc;
639
+ };
640
+
641
+ /** OES_draw_buffers_indexed https://registry.khronos.org/webgl/extensions/OES_draw_buffers_indexed/ */
642
+ type OES_draw_buffers_indexed = {
643
+ /** Enables blending for an individual draw buffer */
644
+ enableiOES(target: GL, index: number): void;
645
+ /** Disables blending for an individual draw buffer */
646
+ disableiOES(target: GL, index: number): void;
647
+ /** Modifies blend equation for an individual draw buffer */
648
+ blendEquationiOES(buf: number, mode: GL): void;
649
+ /** Modifies blend equation for an individual draw buffer */
650
+ blendEquationSeparateiOES(buf: number, modeRGB: GL, modeAlpha: GL): void;
651
+ /** Modifies blend function for an individual draw buffer */
652
+ blendFunciOES(buf: number, src: GL, dst: GL): void;
653
+ /** Modifies blend function for an individual draw buffer */
654
+ blendFuncSeparateiOES(buf: number, srcRGB: GL, dstRGB: GL, srcAlpha: GL, dstAlpha: GL): void;
655
+ /** Modifies color mask for an individual draw buffer */
656
+ colorMaskiOES(buf: number, r: boolean, g: boolean, b: boolean, a: boolean): void;
657
+ };
658
+
659
+ /** EXT_texture_mirror_clamp_to_edge https://registry.khronos.org/webgl/extensions/EXT_texture_mirror_clamp_to_edge/ */
660
+ type EXT_texture_mirror_clamp_to_edge = {
661
+ MIRROR_CLAMP_TO_EDGE_EXT: 0x8743;
662
+ };
663
+
664
+ /** WEBGL_stencil_texturing https://registry.khronos.org/webgl/extensions/WEBGL_stencil_texturing/ */
665
+ type WEBGL_stencil_texturing = {
666
+ DEPTH_STENCIL_TEXTURE_MODE_WEBGL: 0x90ea;
667
+ STENCIL_INDEX_WEBGL: 0x1901;
668
+ };
669
+
670
+ /** WEBGL_draw_instanced_base_vertex_base_instance https://registry.khronos.org/webgl/extensions/WEBGL_draw_instanced_base_vertex_base_instance/ */
671
+ type WEBGL_draw_instanced_base_vertex_base_instance = {
672
+ // drawArraysInstancedBaseInstanceWEBGL(
673
+ // GLenum mode, GLint first, GLsizei count,
674
+ // GLsizei instanceCount, GLuint baseInstance);
675
+ // drawElementsInstancedBaseVertexBaseInstanceWEBGL(
676
+ // GLenum mode, GLsizei count, GLenum type, GLintptr offset,
677
+ // GLsizei instanceCount, GLint baseVertex, GLuint baseInstance);
678
+ };
679
+
680
+ /** WEBGL_multi_draw https://registry.khronos.org/webgl/extensions/WEBGL_multi_draw/ */
681
+ type WEBGL_multi_draw = {
682
+ // multiDrawArraysWEBGL(
683
+ // GLenum mode,
684
+ // ([AllowShared] Int32Array or sequence<GLint>) firstsList, unsigned long long firstsOffset,
685
+ // ([AllowShared] Int32Array or sequence<GLsizei>) countsList, unsigned long long countsOffset,
686
+ // GLsizei drawcount);
687
+ // multiDrawElementsWEBGL(
688
+ // GLenum mode,
689
+ // ([AllowShared] Int32Array or sequence<GLsizei>) countsList, unsigned long long countsOffset,
690
+ // GLenum type,
691
+ // ([AllowShared] Int32Array or sequence<GLsizei>) offsetsList, unsigned long long offsetsOffset,
692
+ // GLsizei drawcount);
693
+ // multiDrawArraysInstancedWEBGL(
694
+ // GLenum mode,
695
+ // ([AllowShared] Int32Array or sequence<GLint>) firstsList, unsigned long long firstsOffset,
696
+ // ([AllowShared] Int32Array or sequence<GLsizei>) countsList, unsigned long long countsOffset,
697
+ // ([AllowShared] Int32Array or sequence<GLsizei>) instanceCountsList, unsigned long long instanceCountsOffset,
698
+ // GLsizei drawcount);
699
+ // multiDrawElementsInstancedWEBGL(
700
+ // GLenum mode,
701
+ // ([AllowShared] Int32Array or sequence<GLsizei>) countsList, unsigned long long countsOffset,
702
+ // GLenum type,
703
+ // ([AllowShared] Int32Array or sequence<GLsizei>) offsetsList, unsigned long long offsetsOffset,
704
+ // ([AllowShared] Int32Array or sequence<GLsizei>) instanceCountsList, unsigned long long instanceCountsOffset,
705
+ // GLsizei drawcount);
706
+ };
707
+
708
+ /** WEBGL_multi_draw_instanced_base_vertex_base_instance https://registry.khronos.org/webgl/extensions/WEBGL_multi_draw_instanced_base_vertex_base_instance/ */
709
+ type WEBGL_multi_draw_instanced_base_vertex_base_instance = {
710
+ // multiDrawArraysInstancedBaseInstanceWEBGL(
711
+ // GLenum mode,
712
+ // ([AllowShared] Int32Array or sequence<GLint>) firstsList, unsigned long long firstsOffset,
713
+ // ([AllowShared] Int32Array or sequence<GLsizei>) countsList, unsigned long long countsOffset,
714
+ // ([AllowShared] Int32Array or sequence<GLsizei>) instanceCountsList, unsigned long long instanceCountsOffset,
715
+ // ([AllowShared] Uint32Array or sequence<GLuint>) baseInstancesList, unsigned long long baseInstancesOffset,
716
+ // GLsizei drawcount
717
+ // );
718
+ // multiDrawElementsInstancedBaseVertexBaseInstanceWEBGL(
719
+ // GLenum mode,
720
+ // ([AllowShared] Int32Array or sequence<GLsizei>) countsList, unsigned long long countsOffset,
721
+ // GLenum type,
722
+ // ([AllowShared] Int32Array or sequence<GLsizei>) offsetsList, unsigned long long offsetsOffset,
723
+ // ([AllowShared] Int32Array or sequence<GLsizei>) instanceCountsList, unsigned long long instanceCountsOffset,
724
+ // ([AllowShared] Int32Array or sequence<GLint>) baseVerticesList, unsigned long long baseVerticesOffset,
725
+ // ([AllowShared] Uint32Array or sequence<GLuint>) baseInstancesList, unsigned long long baseInstancesOffset,
726
+ // GLsizei drawcount
727
+ // );
728
+ };
729
+
730
+ /** WEBGL_shader_pixel_local_storage https://registry.khronos.org/webgl/extensions/WEBGL_shader_pixel_local_storage/ */
731
+ type WEBGL_shader_pixel_local_storage = {
732
+ MAX_PIXEL_LOCAL_STORAGE_PLANES_WEBGL: 0x96e0;
733
+ MAX_COLOR_ATTACHMENTS_WITH_ACTIVE_PIXEL_LOCAL_STORAGE_WEBGL: 0x96e1;
734
+ MAX_COMBINED_DRAW_BUFFERS_AND_PIXEL_LOCAL_STORAGE_PLANES_WEBGL: 0x96e2;
735
+ PIXEL_LOCAL_STORAGE_ACTIVE_PLANES_WEBGL: 0x96e3;
736
+ LOAD_OP_ZERO_WEBGL: 0x96e4;
737
+ LOAD_OP_CLEAR_WEBGL: 0x96e5;
738
+ LOAD_OP_LOAD_WEBGL: 0x96e6;
739
+ STORE_OP_STORE_WEBGL: 0x96e7;
740
+ PIXEL_LOCAL_FORMAT_WEBGL: 0x96e8;
741
+ PIXEL_LOCAL_TEXTURE_NAME_WEBGL: 0x96e9;
742
+ PIXEL_LOCAL_TEXTURE_LEVEL_WEBGL: 0x96ea;
743
+ PIXEL_LOCAL_TEXTURE_LAYER_WEBGL: 0x96eb;
744
+ PIXEL_LOCAL_CLEAR_VALUE_FLOAT_WEBGL: 0x96ec;
745
+ PIXEL_LOCAL_CLEAR_VALUE_INT_WEBGL: 0x96ed;
746
+ PIXEL_LOCAL_CLEAR_VALUE_UNSIGNED_INT_WEBGL: 0x96ee;
747
+ isCoherent(): boolean;
748
+ framebufferTexturePixelLocalStorageWEBGL(
749
+ plane: number,
750
+ texture: WebGLTexture,
751
+ level: number,
752
+ layer: number
753
+ ): void;
754
+ // framebufferPixelLocalClearValuefvWEBGL(plane: number,
755
+ // Float32List value,
756
+ // optional unsigned long long srcOffset = 0): void;
757
+ // framebufferPixelLocalClearValueivWEBGL(plane: number,
758
+ // Int32List value,
759
+ // optional unsigned long long srcOffset = 0): void;
760
+ // framebufferPixelLocalClearValueuivWEBGL(plane: number,
761
+ // Uint32List value,
762
+ // optional unsigned long long srcOffset = 0): void;
763
+ beginPixelLocalStorageWEBGL(loadops: GL[]): void;
764
+ endPixelLocalStorageWEBGL(storeops: GL[]): void;
765
+ pixelLocalStorageBarrierWEBGL(): void;
766
+ getFramebufferPixelLocalStorageParameterWEBGL(plane: number, pname: GL): any;
767
+ };