@luma.gl/webgl 9.1.0-alpha.17 → 9.1.0-alpha.18
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.
- package/dist/adapter/resources/webgl-render-pass.d.ts.map +1 -1
- package/dist/adapter/resources/webgl-render-pass.js +3 -9
- package/dist/dist.dev.js +3 -7
- package/dist/dist.min.js +1 -1
- package/dist/index.cjs +3 -7
- package/dist/index.cjs.map +2 -2
- package/package.json +4 -4
- package/src/adapter/resources/webgl-render-pass.ts +3 -11
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"webgl-render-pass.d.ts","sourceRoot":"","sources":["../../../src/adapter/resources/webgl-render-pass.ts"],"names":[],"mappings":"AAIA,OAAO,EAAC,YAAY,EAAe,MAAM,gBAAgB,CAAC;AAC1D,OAAO,EAAC,UAAU,EAAE,eAAe,EAAE,oBAAoB,EAAC,MAAM,eAAe,CAAC;AAChF,OAAO,EAAC,WAAW,EAAC,2BAAwB;AAC5C,OAAO,EAAK,YAAY,EAAC,MAAM,oBAAoB,CAAC;AAOpD,qBAAa,eAAgB,SAAQ,UAAU;IAC7C,QAAQ,CAAC,MAAM,EAAE,WAAW,CAAC;IAE7B,8DAA8D;IAC9D,YAAY,EAAE,YAAY,CAAC;gBAEf,MAAM,EAAE,WAAW,EAAE,KAAK,EAAE,eAAe;IAoCvD,GAAG,IAAI,IAAI;IAKX,cAAc,CAAC,UAAU,EAAE,MAAM,GAAG,IAAI;IACxC,aAAa,IAAI,IAAI;IACrB,iBAAiB,CAAC,WAAW,EAAE,MAAM,GAAG,IAAI;IAO5C;;OAEG;IACH,aAAa,CAAC,UAAU,GAAE,oBAAyB,GAAG,IAAI;IAmD1D,mBAAmB,CAAC,UAAU,EAAE,MAAM,GAAG,IAAI;IAKpC,iBAAiB,IAAI,IAAI;IAOlC;;OAEG;IACH,SAAS,CAAC,KAAK,IAAI,IAAI;
|
|
1
|
+
{"version":3,"file":"webgl-render-pass.d.ts","sourceRoot":"","sources":["../../../src/adapter/resources/webgl-render-pass.ts"],"names":[],"mappings":"AAIA,OAAO,EAAC,YAAY,EAAe,MAAM,gBAAgB,CAAC;AAC1D,OAAO,EAAC,UAAU,EAAE,eAAe,EAAE,oBAAoB,EAAC,MAAM,eAAe,CAAC;AAChF,OAAO,EAAC,WAAW,EAAC,2BAAwB;AAC5C,OAAO,EAAK,YAAY,EAAC,MAAM,oBAAoB,CAAC;AAOpD,qBAAa,eAAgB,SAAQ,UAAU;IAC7C,QAAQ,CAAC,MAAM,EAAE,WAAW,CAAC;IAE7B,8DAA8D;IAC9D,YAAY,EAAE,YAAY,CAAC;gBAEf,MAAM,EAAE,WAAW,EAAE,KAAK,EAAE,eAAe;IAoCvD,GAAG,IAAI,IAAI;IAKX,cAAc,CAAC,UAAU,EAAE,MAAM,GAAG,IAAI;IACxC,aAAa,IAAI,IAAI;IACrB,iBAAiB,CAAC,WAAW,EAAE,MAAM,GAAG,IAAI;IAO5C;;OAEG;IACH,aAAa,CAAC,UAAU,GAAE,oBAAyB,GAAG,IAAI;IAmD1D,mBAAmB,CAAC,UAAU,EAAE,MAAM,GAAG,IAAI;IAKpC,iBAAiB,IAAI,IAAI;IAOlC;;OAEG;IACH,SAAS,CAAC,KAAK,IAAI,IAAI;IAkCvB;;OAEG;IACH,SAAS,CAAC,gBAAgB,CAAC,UAAU,GAAE,MAAU,EAAE,KAAK,GAAE,YAA2B;CA8CtF"}
|
|
@@ -108,9 +108,6 @@ export class WEBGLRenderPass extends RenderPass {
|
|
|
108
108
|
* Optionally clears depth, color and stencil buffers based on parameters
|
|
109
109
|
*/
|
|
110
110
|
clear() {
|
|
111
|
-
const DEFAULT_CLEAR_COLOR = [0, 0, 0, 1];
|
|
112
|
-
const DEFAULT_CLEAR_DEPTH = 1;
|
|
113
|
-
const DEFAULT_CLEAR_STENCIL = 0;
|
|
114
111
|
const glParameters = { ...this.glParameters };
|
|
115
112
|
let clearMask = 0;
|
|
116
113
|
if (this.props.clearColors) {
|
|
@@ -122,18 +119,15 @@ export class WEBGLRenderPass extends RenderPass {
|
|
|
122
119
|
}
|
|
123
120
|
if (this.props.clearColor !== false && this.props.clearColors === undefined) {
|
|
124
121
|
clearMask |= 16384;
|
|
125
|
-
|
|
126
|
-
glParameters.clearColor = clearColor;
|
|
122
|
+
glParameters.clearColor = this.props.clearColor;
|
|
127
123
|
}
|
|
128
124
|
if (this.props.clearDepth !== false) {
|
|
129
125
|
clearMask |= 256;
|
|
130
|
-
glParameters.clearDepth =
|
|
131
|
-
this.props.clearDepth === true ? DEFAULT_CLEAR_DEPTH : this.props.clearDepth;
|
|
126
|
+
glParameters.clearDepth = this.props.clearDepth;
|
|
132
127
|
}
|
|
133
128
|
if (this.props.clearStencil !== false) {
|
|
134
129
|
clearMask |= 1024;
|
|
135
|
-
glParameters.clearStencil =
|
|
136
|
-
this.props.clearStencil === true ? DEFAULT_CLEAR_STENCIL : this.props.clearStencil;
|
|
130
|
+
glParameters.clearStencil = this.props.clearStencil;
|
|
137
131
|
}
|
|
138
132
|
if (clearMask !== 0) {
|
|
139
133
|
// Temporarily set any clear "colors" and call clear
|
package/dist/dist.dev.js
CHANGED
|
@@ -3983,9 +3983,6 @@ ${source}`;
|
|
|
3983
3983
|
* Optionally clears depth, color and stencil buffers based on parameters
|
|
3984
3984
|
*/
|
|
3985
3985
|
clear() {
|
|
3986
|
-
const DEFAULT_CLEAR_COLOR = [0, 0, 0, 1];
|
|
3987
|
-
const DEFAULT_CLEAR_DEPTH = 1;
|
|
3988
|
-
const DEFAULT_CLEAR_STENCIL = 0;
|
|
3989
3986
|
const glParameters = { ...this.glParameters };
|
|
3990
3987
|
let clearMask = 0;
|
|
3991
3988
|
if (this.props.clearColors) {
|
|
@@ -3997,16 +3994,15 @@ ${source}`;
|
|
|
3997
3994
|
}
|
|
3998
3995
|
if (this.props.clearColor !== false && this.props.clearColors === void 0) {
|
|
3999
3996
|
clearMask |= 16384 /* COLOR_BUFFER_BIT */;
|
|
4000
|
-
|
|
4001
|
-
glParameters.clearColor = clearColor;
|
|
3997
|
+
glParameters.clearColor = this.props.clearColor;
|
|
4002
3998
|
}
|
|
4003
3999
|
if (this.props.clearDepth !== false) {
|
|
4004
4000
|
clearMask |= 256 /* DEPTH_BUFFER_BIT */;
|
|
4005
|
-
glParameters.clearDepth = this.props.clearDepth
|
|
4001
|
+
glParameters.clearDepth = this.props.clearDepth;
|
|
4006
4002
|
}
|
|
4007
4003
|
if (this.props.clearStencil !== false) {
|
|
4008
4004
|
clearMask |= 1024 /* STENCIL_BUFFER_BIT */;
|
|
4009
|
-
glParameters.clearStencil = this.props.clearStencil
|
|
4005
|
+
glParameters.clearStencil = this.props.clearStencil;
|
|
4010
4006
|
}
|
|
4011
4007
|
if (clearMask !== 0) {
|
|
4012
4008
|
withGLParameters(this.device.gl, glParameters, () => {
|
package/dist/dist.min.js
CHANGED
|
@@ -5,6 +5,6 @@
|
|
|
5
5
|
else if (typeof exports === 'object') exports['luma'] = factory();
|
|
6
6
|
else root['luma'] = factory();})(globalThis, function () {
|
|
7
7
|
var __exports__=(()=>{var ur=Object.create;var Se=Object.defineProperty;var Dr=Object.getOwnPropertyDescriptor;var xr=Object.getOwnPropertyNames;var Ur=Object.getPrototypeOf,yr=Object.prototype.hasOwnProperty;var wr=(e,t)=>()=>(t||e((t={exports:{}}).exports,t),t.exports),Xr=(e,t)=>{for(var r in t)Se(e,r,{get:t[r],enumerable:!0})},de=(e,t,r,i)=>{if(t&&typeof t=="object"||typeof t=="function")for(let s of xr(t))!yr.call(e,s)&&s!==r&&Se(e,s,{get:()=>t[s],enumerable:!(i=Dr(t,s))||i.enumerable});return e},Ee=(e,t,r)=>(de(e,t,"default"),r&&de(r,t,"default")),E=(e,t,r)=>(r=e!=null?ur(Ur(e)):{},de(t||!e||!e.__esModule?Se(r,"default",{value:e,enumerable:!0}):r,e)),vr=e=>de(Se({},"__esModule",{value:!0}),e);var S=wr((Qi,nt)=>{nt.exports=globalThis.luma});var Ae={};Xr(Ae,{Accessor:()=>$,WEBGLBuffer:()=>D,WEBGLCommandEncoder:()=>se,WEBGLFramebuffer:()=>u,WEBGLRenderPass:()=>re,WEBGLRenderPipeline:()=>ie,WEBGLSampler:()=>W,WEBGLShader:()=>te,WEBGLTexture:()=>x,WEBGLTransformFeedback:()=>oe,WEBGLVertexArray:()=>m,WebGLCanvasContext:()=>ee,WebGLDevice:()=>k,WebGLStateTracker:()=>M,_TEXTURE_FORMATS:()=>z,getGLParameters:()=>q,getShaderLayout:()=>we,resetGLParameters:()=>he,setDeviceParameters:()=>xe,setGLParameters:()=>F,webgl2Adapter:()=>Or,withDeviceParameters:()=>Zt,withGLParameters:()=>P});Ee(Ae,E(S(),1));var U=E(S(),1);var V=E(S(),1);var K;(function(e){e[e.DEPTH_BUFFER_BIT=256]="DEPTH_BUFFER_BIT",e[e.STENCIL_BUFFER_BIT=1024]="STENCIL_BUFFER_BIT",e[e.COLOR_BUFFER_BIT=16384]="COLOR_BUFFER_BIT",e[e.POINTS=0]="POINTS",e[e.LINES=1]="LINES",e[e.LINE_LOOP=2]="LINE_LOOP",e[e.LINE_STRIP=3]="LINE_STRIP",e[e.TRIANGLES=4]="TRIANGLES",e[e.TRIANGLE_STRIP=5]="TRIANGLE_STRIP",e[e.TRIANGLE_FAN=6]="TRIANGLE_FAN",e[e.ZERO=0]="ZERO",e[e.ONE=1]="ONE",e[e.SRC_COLOR=768]="SRC_COLOR",e[e.ONE_MINUS_SRC_COLOR=769]="ONE_MINUS_SRC_COLOR",e[e.SRC_ALPHA=770]="SRC_ALPHA",e[e.ONE_MINUS_SRC_ALPHA=771]="ONE_MINUS_SRC_ALPHA",e[e.DST_ALPHA=772]="DST_ALPHA",e[e.ONE_MINUS_DST_ALPHA=773]="ONE_MINUS_DST_ALPHA",e[e.DST_COLOR=774]="DST_COLOR",e[e.ONE_MINUS_DST_COLOR=775]="ONE_MINUS_DST_COLOR",e[e.SRC_ALPHA_SATURATE=776]="SRC_ALPHA_SATURATE",e[e.CONSTANT_COLOR=32769]="CONSTANT_COLOR",e[e.ONE_MINUS_CONSTANT_COLOR=32770]="ONE_MINUS_CONSTANT_COLOR",e[e.CONSTANT_ALPHA=32771]="CONSTANT_ALPHA",e[e.ONE_MINUS_CONSTANT_ALPHA=32772]="ONE_MINUS_CONSTANT_ALPHA",e[e.FUNC_ADD=32774]="FUNC_ADD",e[e.FUNC_SUBTRACT=32778]="FUNC_SUBTRACT",e[e.FUNC_REVERSE_SUBTRACT=32779]="FUNC_REVERSE_SUBTRACT",e[e.BLEND_EQUATION=32777]="BLEND_EQUATION",e[e.BLEND_EQUATION_RGB=32777]="BLEND_EQUATION_RGB",e[e.BLEND_EQUATION_ALPHA=34877]="BLEND_EQUATION_ALPHA",e[e.BLEND_DST_RGB=32968]="BLEND_DST_RGB",e[e.BLEND_SRC_RGB=32969]="BLEND_SRC_RGB",e[e.BLEND_DST_ALPHA=32970]="BLEND_DST_ALPHA",e[e.BLEND_SRC_ALPHA=32971]="BLEND_SRC_ALPHA",e[e.BLEND_COLOR=32773]="BLEND_COLOR",e[e.ARRAY_BUFFER_BINDING=34964]="ARRAY_BUFFER_BINDING",e[e.ELEMENT_ARRAY_BUFFER_BINDING=34965]="ELEMENT_ARRAY_BUFFER_BINDING",e[e.LINE_WIDTH=2849]="LINE_WIDTH",e[e.ALIASED_POINT_SIZE_RANGE=33901]="ALIASED_POINT_SIZE_RANGE",e[e.ALIASED_LINE_WIDTH_RANGE=33902]="ALIASED_LINE_WIDTH_RANGE",e[e.CULL_FACE_MODE=2885]="CULL_FACE_MODE",e[e.FRONT_FACE=2886]="FRONT_FACE",e[e.DEPTH_RANGE=2928]="DEPTH_RANGE",e[e.DEPTH_WRITEMASK=2930]="DEPTH_WRITEMASK",e[e.DEPTH_CLEAR_VALUE=2931]="DEPTH_CLEAR_VALUE",e[e.DEPTH_FUNC=2932]="DEPTH_FUNC",e[e.STENCIL_CLEAR_VALUE=2961]="STENCIL_CLEAR_VALUE",e[e.STENCIL_FUNC=2962]="STENCIL_FUNC",e[e.STENCIL_FAIL=2964]="STENCIL_FAIL",e[e.STENCIL_PASS_DEPTH_FAIL=2965]="STENCIL_PASS_DEPTH_FAIL",e[e.STENCIL_PASS_DEPTH_PASS=2966]="STENCIL_PASS_DEPTH_PASS",e[e.STENCIL_REF=2967]="STENCIL_REF",e[e.STENCIL_VALUE_MASK=2963]="STENCIL_VALUE_MASK",e[e.STENCIL_WRITEMASK=2968]="STENCIL_WRITEMASK",e[e.STENCIL_BACK_FUNC=34816]="STENCIL_BACK_FUNC",e[e.STENCIL_BACK_FAIL=34817]="STENCIL_BACK_FAIL",e[e.STENCIL_BACK_PASS_DEPTH_FAIL=34818]="STENCIL_BACK_PASS_DEPTH_FAIL",e[e.STENCIL_BACK_PASS_DEPTH_PASS=34819]="STENCIL_BACK_PASS_DEPTH_PASS",e[e.STENCIL_BACK_REF=36003]="STENCIL_BACK_REF",e[e.STENCIL_BACK_VALUE_MASK=36004]="STENCIL_BACK_VALUE_MASK",e[e.STENCIL_BACK_WRITEMASK=36005]="STENCIL_BACK_WRITEMASK",e[e.VIEWPORT=2978]="VIEWPORT",e[e.SCISSOR_BOX=3088]="SCISSOR_BOX",e[e.COLOR_CLEAR_VALUE=3106]="COLOR_CLEAR_VALUE",e[e.COLOR_WRITEMASK=3107]="COLOR_WRITEMASK",e[e.UNPACK_ALIGNMENT=3317]="UNPACK_ALIGNMENT",e[e.PACK_ALIGNMENT=3333]="PACK_ALIGNMENT",e[e.MAX_TEXTURE_SIZE=3379]="MAX_TEXTURE_SIZE",e[e.MAX_VIEWPORT_DIMS=3386]="MAX_VIEWPORT_DIMS",e[e.SUBPIXEL_BITS=3408]="SUBPIXEL_BITS",e[e.RED_BITS=3410]="RED_BITS",e[e.GREEN_BITS=3411]="GREEN_BITS",e[e.BLUE_BITS=3412]="BLUE_BITS",e[e.ALPHA_BITS=3413]="ALPHA_BITS",e[e.DEPTH_BITS=3414]="DEPTH_BITS",e[e.STENCIL_BITS=3415]="STENCIL_BITS",e[e.POLYGON_OFFSET_UNITS=10752]="POLYGON_OFFSET_UNITS",e[e.POLYGON_OFFSET_FACTOR=32824]="POLYGON_OFFSET_FACTOR",e[e.TEXTURE_BINDING_2D=32873]="TEXTURE_BINDING_2D",e[e.SAMPLE_BUFFERS=32936]="SAMPLE_BUFFERS",e[e.SAMPLES=32937]="SAMPLES",e[e.SAMPLE_COVERAGE_VALUE=32938]="SAMPLE_COVERAGE_VALUE",e[e.SAMPLE_COVERAGE_INVERT=32939]="SAMPLE_COVERAGE_INVERT",e[e.COMPRESSED_TEXTURE_FORMATS=34467]="COMPRESSED_TEXTURE_FORMATS",e[e.VENDOR=7936]="VENDOR",e[e.RENDERER=7937]="RENDERER",e[e.VERSION=7938]="VERSION",e[e.IMPLEMENTATION_COLOR_READ_TYPE=35738]="IMPLEMENTATION_COLOR_READ_TYPE",e[e.IMPLEMENTATION_COLOR_READ_FORMAT=35739]="IMPLEMENTATION_COLOR_READ_FORMAT",e[e.BROWSER_DEFAULT_WEBGL=37444]="BROWSER_DEFAULT_WEBGL",e[e.STATIC_DRAW=35044]="STATIC_DRAW",e[e.STREAM_DRAW=35040]="STREAM_DRAW",e[e.DYNAMIC_DRAW=35048]="DYNAMIC_DRAW",e[e.ARRAY_BUFFER=34962]="ARRAY_BUFFER",e[e.ELEMENT_ARRAY_BUFFER=34963]="ELEMENT_ARRAY_BUFFER",e[e.BUFFER_SIZE=34660]="BUFFER_SIZE",e[e.BUFFER_USAGE=34661]="BUFFER_USAGE",e[e.CURRENT_VERTEX_ATTRIB=34342]="CURRENT_VERTEX_ATTRIB",e[e.VERTEX_ATTRIB_ARRAY_ENABLED=34338]="VERTEX_ATTRIB_ARRAY_ENABLED",e[e.VERTEX_ATTRIB_ARRAY_SIZE=34339]="VERTEX_ATTRIB_ARRAY_SIZE",e[e.VERTEX_ATTRIB_ARRAY_STRIDE=34340]="VERTEX_ATTRIB_ARRAY_STRIDE",e[e.VERTEX_ATTRIB_ARRAY_TYPE=34341]="VERTEX_ATTRIB_ARRAY_TYPE",e[e.VERTEX_ATTRIB_ARRAY_NORMALIZED=34922]="VERTEX_ATTRIB_ARRAY_NORMALIZED",e[e.VERTEX_ATTRIB_ARRAY_POINTER=34373]="VERTEX_ATTRIB_ARRAY_POINTER",e[e.VERTEX_ATTRIB_ARRAY_BUFFER_BINDING=34975]="VERTEX_ATTRIB_ARRAY_BUFFER_BINDING",e[e.CULL_FACE=2884]="CULL_FACE",e[e.FRONT=1028]="FRONT",e[e.BACK=1029]="BACK",e[e.FRONT_AND_BACK=1032]="FRONT_AND_BACK",e[e.BLEND=3042]="BLEND",e[e.DEPTH_TEST=2929]="DEPTH_TEST",e[e.DITHER=3024]="DITHER",e[e.POLYGON_OFFSET_FILL=32823]="POLYGON_OFFSET_FILL",e[e.SAMPLE_ALPHA_TO_COVERAGE=32926]="SAMPLE_ALPHA_TO_COVERAGE",e[e.SAMPLE_COVERAGE=32928]="SAMPLE_COVERAGE",e[e.SCISSOR_TEST=3089]="SCISSOR_TEST",e[e.STENCIL_TEST=2960]="STENCIL_TEST",e[e.NO_ERROR=0]="NO_ERROR",e[e.INVALID_ENUM=1280]="INVALID_ENUM",e[e.INVALID_VALUE=1281]="INVALID_VALUE",e[e.INVALID_OPERATION=1282]="INVALID_OPERATION",e[e.OUT_OF_MEMORY=1285]="OUT_OF_MEMORY",e[e.CONTEXT_LOST_WEBGL=37442]="CONTEXT_LOST_WEBGL",e[e.CW=2304]="CW",e[e.CCW=2305]="CCW",e[e.DONT_CARE=4352]="DONT_CARE",e[e.FASTEST=4353]="FASTEST",e[e.NICEST=4354]="NICEST",e[e.GENERATE_MIPMAP_HINT=33170]="GENERATE_MIPMAP_HINT",e[e.BYTE=5120]="BYTE",e[e.UNSIGNED_BYTE=5121]="UNSIGNED_BYTE",e[e.SHORT=5122]="SHORT",e[e.UNSIGNED_SHORT=5123]="UNSIGNED_SHORT",e[e.INT=5124]="INT",e[e.UNSIGNED_INT=5125]="UNSIGNED_INT",e[e.FLOAT=5126]="FLOAT",e[e.DOUBLE=5130]="DOUBLE",e[e.DEPTH_COMPONENT=6402]="DEPTH_COMPONENT",e[e.ALPHA=6406]="ALPHA",e[e.RGB=6407]="RGB",e[e.RGBA=6408]="RGBA",e[e.LUMINANCE=6409]="LUMINANCE",e[e.LUMINANCE_ALPHA=6410]="LUMINANCE_ALPHA",e[e.UNSIGNED_SHORT_4_4_4_4=32819]="UNSIGNED_SHORT_4_4_4_4",e[e.UNSIGNED_SHORT_5_5_5_1=32820]="UNSIGNED_SHORT_5_5_5_1",e[e.UNSIGNED_SHORT_5_6_5=33635]="UNSIGNED_SHORT_5_6_5",e[e.FRAGMENT_SHADER=35632]="FRAGMENT_SHADER",e[e.VERTEX_SHADER=35633]="VERTEX_SHADER",e[e.COMPILE_STATUS=35713]="COMPILE_STATUS",e[e.DELETE_STATUS=35712]="DELETE_STATUS",e[e.LINK_STATUS=35714]="LINK_STATUS",e[e.VALIDATE_STATUS=35715]="VALIDATE_STATUS",e[e.ATTACHED_SHADERS=35717]="ATTACHED_SHADERS",e[e.ACTIVE_ATTRIBUTES=35721]="ACTIVE_ATTRIBUTES",e[e.ACTIVE_UNIFORMS=35718]="ACTIVE_UNIFORMS",e[e.MAX_VERTEX_ATTRIBS=34921]="MAX_VERTEX_ATTRIBS",e[e.MAX_VERTEX_UNIFORM_VECTORS=36347]="MAX_VERTEX_UNIFORM_VECTORS",e[e.MAX_VARYING_VECTORS=36348]="MAX_VARYING_VECTORS",e[e.MAX_COMBINED_TEXTURE_IMAGE_UNITS=35661]="MAX_COMBINED_TEXTURE_IMAGE_UNITS",e[e.MAX_VERTEX_TEXTURE_IMAGE_UNITS=35660]="MAX_VERTEX_TEXTURE_IMAGE_UNITS",e[e.MAX_TEXTURE_IMAGE_UNITS=34930]="MAX_TEXTURE_IMAGE_UNITS",e[e.MAX_FRAGMENT_UNIFORM_VECTORS=36349]="MAX_FRAGMENT_UNIFORM_VECTORS",e[e.SHADER_TYPE=35663]="SHADER_TYPE",e[e.SHADING_LANGUAGE_VERSION=35724]="SHADING_LANGUAGE_VERSION",e[e.CURRENT_PROGRAM=35725]="CURRENT_PROGRAM",e[e.NEVER=512]="NEVER",e[e.LESS=513]="LESS",e[e.EQUAL=514]="EQUAL",e[e.LEQUAL=515]="LEQUAL",e[e.GREATER=516]="GREATER",e[e.NOTEQUAL=517]="NOTEQUAL",e[e.GEQUAL=518]="GEQUAL",e[e.ALWAYS=519]="ALWAYS",e[e.KEEP=7680]="KEEP",e[e.REPLACE=7681]="REPLACE",e[e.INCR=7682]="INCR",e[e.DECR=7683]="DECR",e[e.INVERT=5386]="INVERT",e[e.INCR_WRAP=34055]="INCR_WRAP",e[e.DECR_WRAP=34056]="DECR_WRAP",e[e.NEAREST=9728]="NEAREST",e[e.LINEAR=9729]="LINEAR",e[e.NEAREST_MIPMAP_NEAREST=9984]="NEAREST_MIPMAP_NEAREST",e[e.LINEAR_MIPMAP_NEAREST=9985]="LINEAR_MIPMAP_NEAREST",e[e.NEAREST_MIPMAP_LINEAR=9986]="NEAREST_MIPMAP_LINEAR",e[e.LINEAR_MIPMAP_LINEAR=9987]="LINEAR_MIPMAP_LINEAR",e[e.TEXTURE_MAG_FILTER=10240]="TEXTURE_MAG_FILTER",e[e.TEXTURE_MIN_FILTER=10241]="TEXTURE_MIN_FILTER",e[e.TEXTURE_WRAP_S=10242]="TEXTURE_WRAP_S",e[e.TEXTURE_WRAP_T=10243]="TEXTURE_WRAP_T",e[e.TEXTURE_2D=3553]="TEXTURE_2D",e[e.TEXTURE=5890]="TEXTURE",e[e.TEXTURE_CUBE_MAP=34067]="TEXTURE_CUBE_MAP",e[e.TEXTURE_BINDING_CUBE_MAP=34068]="TEXTURE_BINDING_CUBE_MAP",e[e.TEXTURE_CUBE_MAP_POSITIVE_X=34069]="TEXTURE_CUBE_MAP_POSITIVE_X",e[e.TEXTURE_CUBE_MAP_NEGATIVE_X=34070]="TEXTURE_CUBE_MAP_NEGATIVE_X",e[e.TEXTURE_CUBE_MAP_POSITIVE_Y=34071]="TEXTURE_CUBE_MAP_POSITIVE_Y",e[e.TEXTURE_CUBE_MAP_NEGATIVE_Y=34072]="TEXTURE_CUBE_MAP_NEGATIVE_Y",e[e.TEXTURE_CUBE_MAP_POSITIVE_Z=34073]="TEXTURE_CUBE_MAP_POSITIVE_Z",e[e.TEXTURE_CUBE_MAP_NEGATIVE_Z=34074]="TEXTURE_CUBE_MAP_NEGATIVE_Z",e[e.MAX_CUBE_MAP_TEXTURE_SIZE=34076]="MAX_CUBE_MAP_TEXTURE_SIZE",e[e.TEXTURE0=33984]="TEXTURE0",e[e.ACTIVE_TEXTURE=34016]="ACTIVE_TEXTURE",e[e.REPEAT=10497]="REPEAT",e[e.CLAMP_TO_EDGE=33071]="CLAMP_TO_EDGE",e[e.MIRRORED_REPEAT=33648]="MIRRORED_REPEAT",e[e.TEXTURE_WIDTH=4096]="TEXTURE_WIDTH",e[e.TEXTURE_HEIGHT=4097]="TEXTURE_HEIGHT",e[e.FLOAT_VEC2=35664]="FLOAT_VEC2",e[e.FLOAT_VEC3=35665]="FLOAT_VEC3",e[e.FLOAT_VEC4=35666]="FLOAT_VEC4",e[e.INT_VEC2=35667]="INT_VEC2",e[e.INT_VEC3=35668]="INT_VEC3",e[e.INT_VEC4=35669]="INT_VEC4",e[e.BOOL=35670]="BOOL",e[e.BOOL_VEC2=35671]="BOOL_VEC2",e[e.BOOL_VEC3=35672]="BOOL_VEC3",e[e.BOOL_VEC4=35673]="BOOL_VEC4",e[e.FLOAT_MAT2=35674]="FLOAT_MAT2",e[e.FLOAT_MAT3=35675]="FLOAT_MAT3",e[e.FLOAT_MAT4=35676]="FLOAT_MAT4",e[e.SAMPLER_2D=35678]="SAMPLER_2D",e[e.SAMPLER_CUBE=35680]="SAMPLER_CUBE",e[e.LOW_FLOAT=36336]="LOW_FLOAT",e[e.MEDIUM_FLOAT=36337]="MEDIUM_FLOAT",e[e.HIGH_FLOAT=36338]="HIGH_FLOAT",e[e.LOW_INT=36339]="LOW_INT",e[e.MEDIUM_INT=36340]="MEDIUM_INT",e[e.HIGH_INT=36341]="HIGH_INT",e[e.FRAMEBUFFER=36160]="FRAMEBUFFER",e[e.RENDERBUFFER=36161]="RENDERBUFFER",e[e.RGBA4=32854]="RGBA4",e[e.RGB5_A1=32855]="RGB5_A1",e[e.RGB565=36194]="RGB565",e[e.DEPTH_COMPONENT16=33189]="DEPTH_COMPONENT16",e[e.STENCIL_INDEX=6401]="STENCIL_INDEX",e[e.STENCIL_INDEX8=36168]="STENCIL_INDEX8",e[e.DEPTH_STENCIL=34041]="DEPTH_STENCIL",e[e.RENDERBUFFER_WIDTH=36162]="RENDERBUFFER_WIDTH",e[e.RENDERBUFFER_HEIGHT=36163]="RENDERBUFFER_HEIGHT",e[e.RENDERBUFFER_INTERNAL_FORMAT=36164]="RENDERBUFFER_INTERNAL_FORMAT",e[e.RENDERBUFFER_RED_SIZE=36176]="RENDERBUFFER_RED_SIZE",e[e.RENDERBUFFER_GREEN_SIZE=36177]="RENDERBUFFER_GREEN_SIZE",e[e.RENDERBUFFER_BLUE_SIZE=36178]="RENDERBUFFER_BLUE_SIZE",e[e.RENDERBUFFER_ALPHA_SIZE=36179]="RENDERBUFFER_ALPHA_SIZE",e[e.RENDERBUFFER_DEPTH_SIZE=36180]="RENDERBUFFER_DEPTH_SIZE",e[e.RENDERBUFFER_STENCIL_SIZE=36181]="RENDERBUFFER_STENCIL_SIZE",e[e.FRAMEBUFFER_ATTACHMENT_OBJECT_TYPE=36048]="FRAMEBUFFER_ATTACHMENT_OBJECT_TYPE",e[e.FRAMEBUFFER_ATTACHMENT_OBJECT_NAME=36049]="FRAMEBUFFER_ATTACHMENT_OBJECT_NAME",e[e.FRAMEBUFFER_ATTACHMENT_TEXTURE_LEVEL=36050]="FRAMEBUFFER_ATTACHMENT_TEXTURE_LEVEL",e[e.FRAMEBUFFER_ATTACHMENT_TEXTURE_CUBE_MAP_FACE=36051]="FRAMEBUFFER_ATTACHMENT_TEXTURE_CUBE_MAP_FACE",e[e.COLOR_ATTACHMENT0=36064]="COLOR_ATTACHMENT0",e[e.DEPTH_ATTACHMENT=36096]="DEPTH_ATTACHMENT",e[e.STENCIL_ATTACHMENT=36128]="STENCIL_ATTACHMENT",e[e.DEPTH_STENCIL_ATTACHMENT=33306]="DEPTH_STENCIL_ATTACHMENT",e[e.NONE=0]="NONE",e[e.FRAMEBUFFER_COMPLETE=36053]="FRAMEBUFFER_COMPLETE",e[e.FRAMEBUFFER_INCOMPLETE_ATTACHMENT=36054]="FRAMEBUFFER_INCOMPLETE_ATTACHMENT",e[e.FRAMEBUFFER_INCOMPLETE_MISSING_ATTACHMENT=36055]="FRAMEBUFFER_INCOMPLETE_MISSING_ATTACHMENT",e[e.FRAMEBUFFER_INCOMPLETE_DIMENSIONS=36057]="FRAMEBUFFER_INCOMPLETE_DIMENSIONS",e[e.FRAMEBUFFER_UNSUPPORTED=36061]="FRAMEBUFFER_UNSUPPORTED",e[e.FRAMEBUFFER_BINDING=36006]="FRAMEBUFFER_BINDING",e[e.RENDERBUFFER_BINDING=36007]="RENDERBUFFER_BINDING",e[e.READ_FRAMEBUFFER=36008]="READ_FRAMEBUFFER",e[e.DRAW_FRAMEBUFFER=36009]="DRAW_FRAMEBUFFER",e[e.MAX_RENDERBUFFER_SIZE=34024]="MAX_RENDERBUFFER_SIZE",e[e.INVALID_FRAMEBUFFER_OPERATION=1286]="INVALID_FRAMEBUFFER_OPERATION",e[e.UNPACK_FLIP_Y_WEBGL=37440]="UNPACK_FLIP_Y_WEBGL",e[e.UNPACK_PREMULTIPLY_ALPHA_WEBGL=37441]="UNPACK_PREMULTIPLY_ALPHA_WEBGL",e[e.UNPACK_COLORSPACE_CONVERSION_WEBGL=37443]="UNPACK_COLORSPACE_CONVERSION_WEBGL",e[e.READ_BUFFER=3074]="READ_BUFFER",e[e.UNPACK_ROW_LENGTH=3314]="UNPACK_ROW_LENGTH",e[e.UNPACK_SKIP_ROWS=3315]="UNPACK_SKIP_ROWS",e[e.UNPACK_SKIP_PIXELS=3316]="UNPACK_SKIP_PIXELS",e[e.PACK_ROW_LENGTH=3330]="PACK_ROW_LENGTH",e[e.PACK_SKIP_ROWS=3331]="PACK_SKIP_ROWS",e[e.PACK_SKIP_PIXELS=3332]="PACK_SKIP_PIXELS",e[e.TEXTURE_BINDING_3D=32874]="TEXTURE_BINDING_3D",e[e.UNPACK_SKIP_IMAGES=32877]="UNPACK_SKIP_IMAGES",e[e.UNPACK_IMAGE_HEIGHT=32878]="UNPACK_IMAGE_HEIGHT",e[e.MAX_3D_TEXTURE_SIZE=32883]="MAX_3D_TEXTURE_SIZE",e[e.MAX_ELEMENTS_VERTICES=33e3]="MAX_ELEMENTS_VERTICES",e[e.MAX_ELEMENTS_INDICES=33001]="MAX_ELEMENTS_INDICES",e[e.MAX_TEXTURE_LOD_BIAS=34045]="MAX_TEXTURE_LOD_BIAS",e[e.MAX_FRAGMENT_UNIFORM_COMPONENTS=35657]="MAX_FRAGMENT_UNIFORM_COMPONENTS",e[e.MAX_VERTEX_UNIFORM_COMPONENTS=35658]="MAX_VERTEX_UNIFORM_COMPONENTS",e[e.MAX_ARRAY_TEXTURE_LAYERS=35071]="MAX_ARRAY_TEXTURE_LAYERS",e[e.MIN_PROGRAM_TEXEL_OFFSET=35076]="MIN_PROGRAM_TEXEL_OFFSET",e[e.MAX_PROGRAM_TEXEL_OFFSET=35077]="MAX_PROGRAM_TEXEL_OFFSET",e[e.MAX_VARYING_COMPONENTS=35659]="MAX_VARYING_COMPONENTS",e[e.FRAGMENT_SHADER_DERIVATIVE_HINT=35723]="FRAGMENT_SHADER_DERIVATIVE_HINT",e[e.RASTERIZER_DISCARD=35977]="RASTERIZER_DISCARD",e[e.VERTEX_ARRAY_BINDING=34229]="VERTEX_ARRAY_BINDING",e[e.MAX_VERTEX_OUTPUT_COMPONENTS=37154]="MAX_VERTEX_OUTPUT_COMPONENTS",e[e.MAX_FRAGMENT_INPUT_COMPONENTS=37157]="MAX_FRAGMENT_INPUT_COMPONENTS",e[e.MAX_SERVER_WAIT_TIMEOUT=37137]="MAX_SERVER_WAIT_TIMEOUT",e[e.MAX_ELEMENT_INDEX=36203]="MAX_ELEMENT_INDEX",e[e.RED=6403]="RED",e[e.RGB8=32849]="RGB8",e[e.RGBA8=32856]="RGBA8",e[e.RGB10_A2=32857]="RGB10_A2",e[e.TEXTURE_3D=32879]="TEXTURE_3D",e[e.TEXTURE_WRAP_R=32882]="TEXTURE_WRAP_R",e[e.TEXTURE_MIN_LOD=33082]="TEXTURE_MIN_LOD",e[e.TEXTURE_MAX_LOD=33083]="TEXTURE_MAX_LOD",e[e.TEXTURE_BASE_LEVEL=33084]="TEXTURE_BASE_LEVEL",e[e.TEXTURE_MAX_LEVEL=33085]="TEXTURE_MAX_LEVEL",e[e.TEXTURE_COMPARE_MODE=34892]="TEXTURE_COMPARE_MODE",e[e.TEXTURE_COMPARE_FUNC=34893]="TEXTURE_COMPARE_FUNC",e[e.SRGB=35904]="SRGB",e[e.SRGB8=35905]="SRGB8",e[e.SRGB8_ALPHA8=35907]="SRGB8_ALPHA8",e[e.COMPARE_REF_TO_TEXTURE=34894]="COMPARE_REF_TO_TEXTURE",e[e.RGBA32F=34836]="RGBA32F",e[e.RGB32F=34837]="RGB32F",e[e.RGBA16F=34842]="RGBA16F",e[e.RGB16F=34843]="RGB16F",e[e.TEXTURE_2D_ARRAY=35866]="TEXTURE_2D_ARRAY",e[e.TEXTURE_BINDING_2D_ARRAY=35869]="TEXTURE_BINDING_2D_ARRAY",e[e.R11F_G11F_B10F=35898]="R11F_G11F_B10F",e[e.RGB9_E5=35901]="RGB9_E5",e[e.RGBA32UI=36208]="RGBA32UI",e[e.RGB32UI=36209]="RGB32UI",e[e.RGBA16UI=36214]="RGBA16UI",e[e.RGB16UI=36215]="RGB16UI",e[e.RGBA8UI=36220]="RGBA8UI",e[e.RGB8UI=36221]="RGB8UI",e[e.RGBA32I=36226]="RGBA32I",e[e.RGB32I=36227]="RGB32I",e[e.RGBA16I=36232]="RGBA16I",e[e.RGB16I=36233]="RGB16I",e[e.RGBA8I=36238]="RGBA8I",e[e.RGB8I=36239]="RGB8I",e[e.RED_INTEGER=36244]="RED_INTEGER",e[e.RGB_INTEGER=36248]="RGB_INTEGER",e[e.RGBA_INTEGER=36249]="RGBA_INTEGER",e[e.R8=33321]="R8",e[e.RG8=33323]="RG8",e[e.R16F=33325]="R16F",e[e.R32F=33326]="R32F",e[e.RG16F=33327]="RG16F",e[e.RG32F=33328]="RG32F",e[e.R8I=33329]="R8I",e[e.R8UI=33330]="R8UI",e[e.R16I=33331]="R16I",e[e.R16UI=33332]="R16UI",e[e.R32I=33333]="R32I",e[e.R32UI=33334]="R32UI",e[e.RG8I=33335]="RG8I",e[e.RG8UI=33336]="RG8UI",e[e.RG16I=33337]="RG16I",e[e.RG16UI=33338]="RG16UI",e[e.RG32I=33339]="RG32I",e[e.RG32UI=33340]="RG32UI",e[e.R8_SNORM=36756]="R8_SNORM",e[e.RG8_SNORM=36757]="RG8_SNORM",e[e.RGB8_SNORM=36758]="RGB8_SNORM",e[e.RGBA8_SNORM=36759]="RGBA8_SNORM",e[e.RGB10_A2UI=36975]="RGB10_A2UI",e[e.TEXTURE_IMMUTABLE_FORMAT=37167]="TEXTURE_IMMUTABLE_FORMAT",e[e.TEXTURE_IMMUTABLE_LEVELS=33503]="TEXTURE_IMMUTABLE_LEVELS",e[e.UNSIGNED_INT_2_10_10_10_REV=33640]="UNSIGNED_INT_2_10_10_10_REV",e[e.UNSIGNED_INT_10F_11F_11F_REV=35899]="UNSIGNED_INT_10F_11F_11F_REV",e[e.UNSIGNED_INT_5_9_9_9_REV=35902]="UNSIGNED_INT_5_9_9_9_REV",e[e.FLOAT_32_UNSIGNED_INT_24_8_REV=36269]="FLOAT_32_UNSIGNED_INT_24_8_REV",e[e.UNSIGNED_INT_24_8=34042]="UNSIGNED_INT_24_8",e[e.HALF_FLOAT=5131]="HALF_FLOAT",e[e.RG=33319]="RG",e[e.RG_INTEGER=33320]="RG_INTEGER",e[e.INT_2_10_10_10_REV=36255]="INT_2_10_10_10_REV",e[e.CURRENT_QUERY=34917]="CURRENT_QUERY",e[e.QUERY_RESULT=34918]="QUERY_RESULT",e[e.QUERY_RESULT_AVAILABLE=34919]="QUERY_RESULT_AVAILABLE",e[e.ANY_SAMPLES_PASSED=35887]="ANY_SAMPLES_PASSED",e[e.ANY_SAMPLES_PASSED_CONSERVATIVE=36202]="ANY_SAMPLES_PASSED_CONSERVATIVE",e[e.MAX_DRAW_BUFFERS=34852]="MAX_DRAW_BUFFERS",e[e.DRAW_BUFFER0=34853]="DRAW_BUFFER0",e[e.DRAW_BUFFER1=34854]="DRAW_BUFFER1",e[e.DRAW_BUFFER2=34855]="DRAW_BUFFER2",e[e.DRAW_BUFFER3=34856]="DRAW_BUFFER3",e[e.DRAW_BUFFER4=34857]="DRAW_BUFFER4",e[e.DRAW_BUFFER5=34858]="DRAW_BUFFER5",e[e.DRAW_BUFFER6=34859]="DRAW_BUFFER6",e[e.DRAW_BUFFER7=34860]="DRAW_BUFFER7",e[e.DRAW_BUFFER8=34861]="DRAW_BUFFER8",e[e.DRAW_BUFFER9=34862]="DRAW_BUFFER9",e[e.DRAW_BUFFER10=34863]="DRAW_BUFFER10",e[e.DRAW_BUFFER11=34864]="DRAW_BUFFER11",e[e.DRAW_BUFFER12=34865]="DRAW_BUFFER12",e[e.DRAW_BUFFER13=34866]="DRAW_BUFFER13",e[e.DRAW_BUFFER14=34867]="DRAW_BUFFER14",e[e.DRAW_BUFFER15=34868]="DRAW_BUFFER15",e[e.MAX_COLOR_ATTACHMENTS=36063]="MAX_COLOR_ATTACHMENTS",e[e.COLOR_ATTACHMENT1=36065]="COLOR_ATTACHMENT1",e[e.COLOR_ATTACHMENT2=36066]="COLOR_ATTACHMENT2",e[e.COLOR_ATTACHMENT3=36067]="COLOR_ATTACHMENT3",e[e.COLOR_ATTACHMENT4=36068]="COLOR_ATTACHMENT4",e[e.COLOR_ATTACHMENT5=36069]="COLOR_ATTACHMENT5",e[e.COLOR_ATTACHMENT6=36070]="COLOR_ATTACHMENT6",e[e.COLOR_ATTACHMENT7=36071]="COLOR_ATTACHMENT7",e[e.COLOR_ATTACHMENT8=36072]="COLOR_ATTACHMENT8",e[e.COLOR_ATTACHMENT9=36073]="COLOR_ATTACHMENT9",e[e.COLOR_ATTACHMENT10=36074]="COLOR_ATTACHMENT10",e[e.COLOR_ATTACHMENT11=36075]="COLOR_ATTACHMENT11",e[e.COLOR_ATTACHMENT12=36076]="COLOR_ATTACHMENT12",e[e.COLOR_ATTACHMENT13=36077]="COLOR_ATTACHMENT13",e[e.COLOR_ATTACHMENT14=36078]="COLOR_ATTACHMENT14",e[e.COLOR_ATTACHMENT15=36079]="COLOR_ATTACHMENT15",e[e.SAMPLER_3D=35679]="SAMPLER_3D",e[e.SAMPLER_2D_SHADOW=35682]="SAMPLER_2D_SHADOW",e[e.SAMPLER_2D_ARRAY=36289]="SAMPLER_2D_ARRAY",e[e.SAMPLER_2D_ARRAY_SHADOW=36292]="SAMPLER_2D_ARRAY_SHADOW",e[e.SAMPLER_CUBE_SHADOW=36293]="SAMPLER_CUBE_SHADOW",e[e.INT_SAMPLER_2D=36298]="INT_SAMPLER_2D",e[e.INT_SAMPLER_3D=36299]="INT_SAMPLER_3D",e[e.INT_SAMPLER_CUBE=36300]="INT_SAMPLER_CUBE",e[e.INT_SAMPLER_2D_ARRAY=36303]="INT_SAMPLER_2D_ARRAY",e[e.UNSIGNED_INT_SAMPLER_2D=36306]="UNSIGNED_INT_SAMPLER_2D",e[e.UNSIGNED_INT_SAMPLER_3D=36307]="UNSIGNED_INT_SAMPLER_3D",e[e.UNSIGNED_INT_SAMPLER_CUBE=36308]="UNSIGNED_INT_SAMPLER_CUBE",e[e.UNSIGNED_INT_SAMPLER_2D_ARRAY=36311]="UNSIGNED_INT_SAMPLER_2D_ARRAY",e[e.MAX_SAMPLES=36183]="MAX_SAMPLES",e[e.SAMPLER_BINDING=35097]="SAMPLER_BINDING",e[e.PIXEL_PACK_BUFFER=35051]="PIXEL_PACK_BUFFER",e[e.PIXEL_UNPACK_BUFFER=35052]="PIXEL_UNPACK_BUFFER",e[e.PIXEL_PACK_BUFFER_BINDING=35053]="PIXEL_PACK_BUFFER_BINDING",e[e.PIXEL_UNPACK_BUFFER_BINDING=35055]="PIXEL_UNPACK_BUFFER_BINDING",e[e.COPY_READ_BUFFER=36662]="COPY_READ_BUFFER",e[e.COPY_WRITE_BUFFER=36663]="COPY_WRITE_BUFFER",e[e.COPY_READ_BUFFER_BINDING=36662]="COPY_READ_BUFFER_BINDING",e[e.COPY_WRITE_BUFFER_BINDING=36663]="COPY_WRITE_BUFFER_BINDING",e[e.FLOAT_MAT2x3=35685]="FLOAT_MAT2x3",e[e.FLOAT_MAT2x4=35686]="FLOAT_MAT2x4",e[e.FLOAT_MAT3x2=35687]="FLOAT_MAT3x2",e[e.FLOAT_MAT3x4=35688]="FLOAT_MAT3x4",e[e.FLOAT_MAT4x2=35689]="FLOAT_MAT4x2",e[e.FLOAT_MAT4x3=35690]="FLOAT_MAT4x3",e[e.UNSIGNED_INT_VEC2=36294]="UNSIGNED_INT_VEC2",e[e.UNSIGNED_INT_VEC3=36295]="UNSIGNED_INT_VEC3",e[e.UNSIGNED_INT_VEC4=36296]="UNSIGNED_INT_VEC4",e[e.UNSIGNED_NORMALIZED=35863]="UNSIGNED_NORMALIZED",e[e.SIGNED_NORMALIZED=36764]="SIGNED_NORMALIZED",e[e.VERTEX_ATTRIB_ARRAY_INTEGER=35069]="VERTEX_ATTRIB_ARRAY_INTEGER",e[e.VERTEX_ATTRIB_ARRAY_DIVISOR=35070]="VERTEX_ATTRIB_ARRAY_DIVISOR",e[e.TRANSFORM_FEEDBACK_BUFFER_MODE=35967]="TRANSFORM_FEEDBACK_BUFFER_MODE",e[e.MAX_TRANSFORM_FEEDBACK_SEPARATE_COMPONENTS=35968]="MAX_TRANSFORM_FEEDBACK_SEPARATE_COMPONENTS",e[e.TRANSFORM_FEEDBACK_VARYINGS=35971]="TRANSFORM_FEEDBACK_VARYINGS",e[e.TRANSFORM_FEEDBACK_BUFFER_START=35972]="TRANSFORM_FEEDBACK_BUFFER_START",e[e.TRANSFORM_FEEDBACK_BUFFER_SIZE=35973]="TRANSFORM_FEEDBACK_BUFFER_SIZE",e[e.TRANSFORM_FEEDBACK_PRIMITIVES_WRITTEN=35976]="TRANSFORM_FEEDBACK_PRIMITIVES_WRITTEN",e[e.MAX_TRANSFORM_FEEDBACK_INTERLEAVED_COMPONENTS=35978]="MAX_TRANSFORM_FEEDBACK_INTERLEAVED_COMPONENTS",e[e.MAX_TRANSFORM_FEEDBACK_SEPARATE_ATTRIBS=35979]="MAX_TRANSFORM_FEEDBACK_SEPARATE_ATTRIBS",e[e.INTERLEAVED_ATTRIBS=35980]="INTERLEAVED_ATTRIBS",e[e.SEPARATE_ATTRIBS=35981]="SEPARATE_ATTRIBS",e[e.TRANSFORM_FEEDBACK_BUFFER=35982]="TRANSFORM_FEEDBACK_BUFFER",e[e.TRANSFORM_FEEDBACK_BUFFER_BINDING=35983]="TRANSFORM_FEEDBACK_BUFFER_BINDING",e[e.TRANSFORM_FEEDBACK=36386]="TRANSFORM_FEEDBACK",e[e.TRANSFORM_FEEDBACK_PAUSED=36387]="TRANSFORM_FEEDBACK_PAUSED",e[e.TRANSFORM_FEEDBACK_ACTIVE=36388]="TRANSFORM_FEEDBACK_ACTIVE",e[e.TRANSFORM_FEEDBACK_BINDING=36389]="TRANSFORM_FEEDBACK_BINDING",e[e.FRAMEBUFFER_ATTACHMENT_COLOR_ENCODING=33296]="FRAMEBUFFER_ATTACHMENT_COLOR_ENCODING",e[e.FRAMEBUFFER_ATTACHMENT_COMPONENT_TYPE=33297]="FRAMEBUFFER_ATTACHMENT_COMPONENT_TYPE",e[e.FRAMEBUFFER_ATTACHMENT_RED_SIZE=33298]="FRAMEBUFFER_ATTACHMENT_RED_SIZE",e[e.FRAMEBUFFER_ATTACHMENT_GREEN_SIZE=33299]="FRAMEBUFFER_ATTACHMENT_GREEN_SIZE",e[e.FRAMEBUFFER_ATTACHMENT_BLUE_SIZE=33300]="FRAMEBUFFER_ATTACHMENT_BLUE_SIZE",e[e.FRAMEBUFFER_ATTACHMENT_ALPHA_SIZE=33301]="FRAMEBUFFER_ATTACHMENT_ALPHA_SIZE",e[e.FRAMEBUFFER_ATTACHMENT_DEPTH_SIZE=33302]="FRAMEBUFFER_ATTACHMENT_DEPTH_SIZE",e[e.FRAMEBUFFER_ATTACHMENT_STENCIL_SIZE=33303]="FRAMEBUFFER_ATTACHMENT_STENCIL_SIZE",e[e.FRAMEBUFFER_DEFAULT=33304]="FRAMEBUFFER_DEFAULT",e[e.DEPTH24_STENCIL8=35056]="DEPTH24_STENCIL8",e[e.DRAW_FRAMEBUFFER_BINDING=36006]="DRAW_FRAMEBUFFER_BINDING",e[e.READ_FRAMEBUFFER_BINDING=36010]="READ_FRAMEBUFFER_BINDING",e[e.RENDERBUFFER_SAMPLES=36011]="RENDERBUFFER_SAMPLES",e[e.FRAMEBUFFER_ATTACHMENT_TEXTURE_LAYER=36052]="FRAMEBUFFER_ATTACHMENT_TEXTURE_LAYER",e[e.FRAMEBUFFER_INCOMPLETE_MULTISAMPLE=36182]="FRAMEBUFFER_INCOMPLETE_MULTISAMPLE",e[e.UNIFORM_BUFFER=35345]="UNIFORM_BUFFER",e[e.UNIFORM_BUFFER_BINDING=35368]="UNIFORM_BUFFER_BINDING",e[e.UNIFORM_BUFFER_START=35369]="UNIFORM_BUFFER_START",e[e.UNIFORM_BUFFER_SIZE=35370]="UNIFORM_BUFFER_SIZE",e[e.MAX_VERTEX_UNIFORM_BLOCKS=35371]="MAX_VERTEX_UNIFORM_BLOCKS",e[e.MAX_FRAGMENT_UNIFORM_BLOCKS=35373]="MAX_FRAGMENT_UNIFORM_BLOCKS",e[e.MAX_COMBINED_UNIFORM_BLOCKS=35374]="MAX_COMBINED_UNIFORM_BLOCKS",e[e.MAX_UNIFORM_BUFFER_BINDINGS=35375]="MAX_UNIFORM_BUFFER_BINDINGS",e[e.MAX_UNIFORM_BLOCK_SIZE=35376]="MAX_UNIFORM_BLOCK_SIZE",e[e.MAX_COMBINED_VERTEX_UNIFORM_COMPONENTS=35377]="MAX_COMBINED_VERTEX_UNIFORM_COMPONENTS",e[e.MAX_COMBINED_FRAGMENT_UNIFORM_COMPONENTS=35379]="MAX_COMBINED_FRAGMENT_UNIFORM_COMPONENTS",e[e.UNIFORM_BUFFER_OFFSET_ALIGNMENT=35380]="UNIFORM_BUFFER_OFFSET_ALIGNMENT",e[e.ACTIVE_UNIFORM_BLOCKS=35382]="ACTIVE_UNIFORM_BLOCKS",e[e.UNIFORM_TYPE=35383]="UNIFORM_TYPE",e[e.UNIFORM_SIZE=35384]="UNIFORM_SIZE",e[e.UNIFORM_BLOCK_INDEX=35386]="UNIFORM_BLOCK_INDEX",e[e.UNIFORM_OFFSET=35387]="UNIFORM_OFFSET",e[e.UNIFORM_ARRAY_STRIDE=35388]="UNIFORM_ARRAY_STRIDE",e[e.UNIFORM_MATRIX_STRIDE=35389]="UNIFORM_MATRIX_STRIDE",e[e.UNIFORM_IS_ROW_MAJOR=35390]="UNIFORM_IS_ROW_MAJOR",e[e.UNIFORM_BLOCK_BINDING=35391]="UNIFORM_BLOCK_BINDING",e[e.UNIFORM_BLOCK_DATA_SIZE=35392]="UNIFORM_BLOCK_DATA_SIZE",e[e.UNIFORM_BLOCK_ACTIVE_UNIFORMS=35394]="UNIFORM_BLOCK_ACTIVE_UNIFORMS",e[e.UNIFORM_BLOCK_ACTIVE_UNIFORM_INDICES=35395]="UNIFORM_BLOCK_ACTIVE_UNIFORM_INDICES",e[e.UNIFORM_BLOCK_REFERENCED_BY_VERTEX_SHADER=35396]="UNIFORM_BLOCK_REFERENCED_BY_VERTEX_SHADER",e[e.UNIFORM_BLOCK_REFERENCED_BY_FRAGMENT_SHADER=35398]="UNIFORM_BLOCK_REFERENCED_BY_FRAGMENT_SHADER",e[e.OBJECT_TYPE=37138]="OBJECT_TYPE",e[e.SYNC_CONDITION=37139]="SYNC_CONDITION",e[e.SYNC_STATUS=37140]="SYNC_STATUS",e[e.SYNC_FLAGS=37141]="SYNC_FLAGS",e[e.SYNC_FENCE=37142]="SYNC_FENCE",e[e.SYNC_GPU_COMMANDS_COMPLETE=37143]="SYNC_GPU_COMMANDS_COMPLETE",e[e.UNSIGNALED=37144]="UNSIGNALED",e[e.SIGNALED=37145]="SIGNALED",e[e.ALREADY_SIGNALED=37146]="ALREADY_SIGNALED",e[e.TIMEOUT_EXPIRED=37147]="TIMEOUT_EXPIRED",e[e.CONDITION_SATISFIED=37148]="CONDITION_SATISFIED",e[e.WAIT_FAILED=37149]="WAIT_FAILED",e[e.SYNC_FLUSH_COMMANDS_BIT=1]="SYNC_FLUSH_COMMANDS_BIT",e[e.COLOR=6144]="COLOR",e[e.DEPTH=6145]="DEPTH",e[e.STENCIL=6146]="STENCIL",e[e.MIN=32775]="MIN",e[e.MAX=32776]="MAX",e[e.DEPTH_COMPONENT24=33190]="DEPTH_COMPONENT24",e[e.STREAM_READ=35041]="STREAM_READ",e[e.STREAM_COPY=35042]="STREAM_COPY",e[e.STATIC_READ=35045]="STATIC_READ",e[e.STATIC_COPY=35046]="STATIC_COPY",e[e.DYNAMIC_READ=35049]="DYNAMIC_READ",e[e.DYNAMIC_COPY=35050]="DYNAMIC_COPY",e[e.DEPTH_COMPONENT32F=36012]="DEPTH_COMPONENT32F",e[e.DEPTH32F_STENCIL8=36013]="DEPTH32F_STENCIL8",e[e.INVALID_INDEX=4294967295]="INVALID_INDEX",e[e.TIMEOUT_IGNORED=-1]="TIMEOUT_IGNORED",e[e.MAX_CLIENT_WAIT_TIMEOUT_WEBGL=37447]="MAX_CLIENT_WAIT_TIMEOUT_WEBGL",e[e.UNMASKED_VENDOR_WEBGL=37445]="UNMASKED_VENDOR_WEBGL",e[e.UNMASKED_RENDERER_WEBGL=37446]="UNMASKED_RENDERER_WEBGL",e[e.MAX_TEXTURE_MAX_ANISOTROPY_EXT=34047]="MAX_TEXTURE_MAX_ANISOTROPY_EXT",e[e.TEXTURE_MAX_ANISOTROPY_EXT=34046]="TEXTURE_MAX_ANISOTROPY_EXT",e[e.R16_EXT=33322]="R16_EXT",e[e.RG16_EXT=33324]="RG16_EXT",e[e.RGB16_EXT=32852]="RGB16_EXT",e[e.RGBA16_EXT=32859]="RGBA16_EXT",e[e.R16_SNORM_EXT=36760]="R16_SNORM_EXT",e[e.RG16_SNORM_EXT=36761]="RG16_SNORM_EXT",e[e.RGB16_SNORM_EXT=36762]="RGB16_SNORM_EXT",e[e.RGBA16_SNORM_EXT=36763]="RGBA16_SNORM_EXT",e[e.COMPRESSED_RGB_S3TC_DXT1_EXT=33776]="COMPRESSED_RGB_S3TC_DXT1_EXT",e[e.COMPRESSED_RGBA_S3TC_DXT1_EXT=33777]="COMPRESSED_RGBA_S3TC_DXT1_EXT",e[e.COMPRESSED_RGBA_S3TC_DXT3_EXT=33778]="COMPRESSED_RGBA_S3TC_DXT3_EXT",e[e.COMPRESSED_RGBA_S3TC_DXT5_EXT=33779]="COMPRESSED_RGBA_S3TC_DXT5_EXT",e[e.COMPRESSED_SRGB_S3TC_DXT1_EXT=35916]="COMPRESSED_SRGB_S3TC_DXT1_EXT",e[e.COMPRESSED_SRGB_ALPHA_S3TC_DXT1_EXT=35917]="COMPRESSED_SRGB_ALPHA_S3TC_DXT1_EXT",e[e.COMPRESSED_SRGB_ALPHA_S3TC_DXT3_EXT=35918]="COMPRESSED_SRGB_ALPHA_S3TC_DXT3_EXT",e[e.COMPRESSED_SRGB_ALPHA_S3TC_DXT5_EXT=35919]="COMPRESSED_SRGB_ALPHA_S3TC_DXT5_EXT",e[e.COMPRESSED_RED_RGTC1_EXT=36283]="COMPRESSED_RED_RGTC1_EXT",e[e.COMPRESSED_SIGNED_RED_RGTC1_EXT=36284]="COMPRESSED_SIGNED_RED_RGTC1_EXT",e[e.COMPRESSED_RED_GREEN_RGTC2_EXT=36285]="COMPRESSED_RED_GREEN_RGTC2_EXT",e[e.COMPRESSED_SIGNED_RED_GREEN_RGTC2_EXT=36286]="COMPRESSED_SIGNED_RED_GREEN_RGTC2_EXT",e[e.COMPRESSED_RGBA_BPTC_UNORM_EXT=36492]="COMPRESSED_RGBA_BPTC_UNORM_EXT",e[e.COMPRESSED_SRGB_ALPHA_BPTC_UNORM_EXT=36493]="COMPRESSED_SRGB_ALPHA_BPTC_UNORM_EXT",e[e.COMPRESSED_RGB_BPTC_SIGNED_FLOAT_EXT=36494]="COMPRESSED_RGB_BPTC_SIGNED_FLOAT_EXT",e[e.COMPRESSED_RGB_BPTC_UNSIGNED_FLOAT_EXT=36495]="COMPRESSED_RGB_BPTC_UNSIGNED_FLOAT_EXT",e[e.COMPRESSED_R11_EAC=37488]="COMPRESSED_R11_EAC",e[e.COMPRESSED_SIGNED_R11_EAC=37489]="COMPRESSED_SIGNED_R11_EAC",e[e.COMPRESSED_RG11_EAC=37490]="COMPRESSED_RG11_EAC",e[e.COMPRESSED_SIGNED_RG11_EAC=37491]="COMPRESSED_SIGNED_RG11_EAC",e[e.COMPRESSED_RGB8_ETC2=37492]="COMPRESSED_RGB8_ETC2",e[e.COMPRESSED_RGBA8_ETC2_EAC=37493]="COMPRESSED_RGBA8_ETC2_EAC",e[e.COMPRESSED_SRGB8_ETC2=37494]="COMPRESSED_SRGB8_ETC2",e[e.COMPRESSED_SRGB8_ALPHA8_ETC2_EAC=37495]="COMPRESSED_SRGB8_ALPHA8_ETC2_EAC",e[e.COMPRESSED_RGB8_PUNCHTHROUGH_ALPHA1_ETC2=37496]="COMPRESSED_RGB8_PUNCHTHROUGH_ALPHA1_ETC2",e[e.COMPRESSED_SRGB8_PUNCHTHROUGH_ALPHA1_ETC2=37497]="COMPRESSED_SRGB8_PUNCHTHROUGH_ALPHA1_ETC2",e[e.COMPRESSED_RGB_PVRTC_4BPPV1_IMG=35840]="COMPRESSED_RGB_PVRTC_4BPPV1_IMG",e[e.COMPRESSED_RGBA_PVRTC_4BPPV1_IMG=35842]="COMPRESSED_RGBA_PVRTC_4BPPV1_IMG",e[e.COMPRESSED_RGB_PVRTC_2BPPV1_IMG=35841]="COMPRESSED_RGB_PVRTC_2BPPV1_IMG",e[e.COMPRESSED_RGBA_PVRTC_2BPPV1_IMG=35843]="COMPRESSED_RGBA_PVRTC_2BPPV1_IMG",e[e.COMPRESSED_RGB_ETC1_WEBGL=36196]="COMPRESSED_RGB_ETC1_WEBGL",e[e.COMPRESSED_RGB_ATC_WEBGL=35986]="COMPRESSED_RGB_ATC_WEBGL",e[e.COMPRESSED_RGBA_ATC_EXPLICIT_ALPHA_WEBGL=35986]="COMPRESSED_RGBA_ATC_EXPLICIT_ALPHA_WEBGL",e[e.COMPRESSED_RGBA_ATC_INTERPOLATED_ALPHA_WEBGL=34798]="COMPRESSED_RGBA_ATC_INTERPOLATED_ALPHA_WEBGL",e[e.COMPRESSED_RGBA_ASTC_4x4_KHR=37808]="COMPRESSED_RGBA_ASTC_4x4_KHR",e[e.COMPRESSED_RGBA_ASTC_5x4_KHR=37809]="COMPRESSED_RGBA_ASTC_5x4_KHR",e[e.COMPRESSED_RGBA_ASTC_5x5_KHR=37810]="COMPRESSED_RGBA_ASTC_5x5_KHR",e[e.COMPRESSED_RGBA_ASTC_6x5_KHR=37811]="COMPRESSED_RGBA_ASTC_6x5_KHR",e[e.COMPRESSED_RGBA_ASTC_6x6_KHR=37812]="COMPRESSED_RGBA_ASTC_6x6_KHR",e[e.COMPRESSED_RGBA_ASTC_8x5_KHR=37813]="COMPRESSED_RGBA_ASTC_8x5_KHR",e[e.COMPRESSED_RGBA_ASTC_8x6_KHR=37814]="COMPRESSED_RGBA_ASTC_8x6_KHR",e[e.COMPRESSED_RGBA_ASTC_8x8_KHR=37815]="COMPRESSED_RGBA_ASTC_8x8_KHR",e[e.COMPRESSED_RGBA_ASTC_10x5_KHR=37816]="COMPRESSED_RGBA_ASTC_10x5_KHR",e[e.COMPRESSED_RGBA_ASTC_10x6_KHR=37817]="COMPRESSED_RGBA_ASTC_10x6_KHR",e[e.COMPRESSED_RGBA_ASTC_10x8_KHR=37818]="COMPRESSED_RGBA_ASTC_10x8_KHR",e[e.COMPRESSED_RGBA_ASTC_10x10_KHR=37819]="COMPRESSED_RGBA_ASTC_10x10_KHR",e[e.COMPRESSED_RGBA_ASTC_12x10_KHR=37820]="COMPRESSED_RGBA_ASTC_12x10_KHR",e[e.COMPRESSED_RGBA_ASTC_12x12_KHR=37821]="COMPRESSED_RGBA_ASTC_12x12_KHR",e[e.COMPRESSED_SRGB8_ALPHA8_ASTC_4x4_KHR=37840]="COMPRESSED_SRGB8_ALPHA8_ASTC_4x4_KHR",e[e.COMPRESSED_SRGB8_ALPHA8_ASTC_5x4_KHR=37841]="COMPRESSED_SRGB8_ALPHA8_ASTC_5x4_KHR",e[e.COMPRESSED_SRGB8_ALPHA8_ASTC_5x5_KHR=37842]="COMPRESSED_SRGB8_ALPHA8_ASTC_5x5_KHR",e[e.COMPRESSED_SRGB8_ALPHA8_ASTC_6x5_KHR=37843]="COMPRESSED_SRGB8_ALPHA8_ASTC_6x5_KHR",e[e.COMPRESSED_SRGB8_ALPHA8_ASTC_6x6_KHR=37844]="COMPRESSED_SRGB8_ALPHA8_ASTC_6x6_KHR",e[e.COMPRESSED_SRGB8_ALPHA8_ASTC_8x5_KHR=37845]="COMPRESSED_SRGB8_ALPHA8_ASTC_8x5_KHR",e[e.COMPRESSED_SRGB8_ALPHA8_ASTC_8x6_KHR=37846]="COMPRESSED_SRGB8_ALPHA8_ASTC_8x6_KHR",e[e.COMPRESSED_SRGB8_ALPHA8_ASTC_8x8_KHR=37847]="COMPRESSED_SRGB8_ALPHA8_ASTC_8x8_KHR",e[e.COMPRESSED_SRGB8_ALPHA8_ASTC_10x5_KHR=37848]="COMPRESSED_SRGB8_ALPHA8_ASTC_10x5_KHR",e[e.COMPRESSED_SRGB8_ALPHA8_ASTC_10x6_KHR=37849]="COMPRESSED_SRGB8_ALPHA8_ASTC_10x6_KHR",e[e.COMPRESSED_SRGB8_ALPHA8_ASTC_10x8_KHR=37850]="COMPRESSED_SRGB8_ALPHA8_ASTC_10x8_KHR",e[e.COMPRESSED_SRGB8_ALPHA8_ASTC_10x10_KHR=37851]="COMPRESSED_SRGB8_ALPHA8_ASTC_10x10_KHR",e[e.COMPRESSED_SRGB8_ALPHA8_ASTC_12x10_KHR=37852]="COMPRESSED_SRGB8_ALPHA8_ASTC_12x10_KHR",e[e.COMPRESSED_SRGB8_ALPHA8_ASTC_12x12_KHR=37853]="COMPRESSED_SRGB8_ALPHA8_ASTC_12x12_KHR",e[e.QUERY_COUNTER_BITS_EXT=34916]="QUERY_COUNTER_BITS_EXT",e[e.CURRENT_QUERY_EXT=34917]="CURRENT_QUERY_EXT",e[e.QUERY_RESULT_EXT=34918]="QUERY_RESULT_EXT",e[e.QUERY_RESULT_AVAILABLE_EXT=34919]="QUERY_RESULT_AVAILABLE_EXT",e[e.TIME_ELAPSED_EXT=35007]="TIME_ELAPSED_EXT",e[e.TIMESTAMP_EXT=36392]="TIMESTAMP_EXT",e[e.GPU_DISJOINT_EXT=36795]="GPU_DISJOINT_EXT",e[e.COMPLETION_STATUS_KHR=37297]="COMPLETION_STATUS_KHR",e[e.DEPTH_CLAMP_EXT=34383]="DEPTH_CLAMP_EXT",e[e.FIRST_VERTEX_CONVENTION_WEBGL=36429]="FIRST_VERTEX_CONVENTION_WEBGL",e[e.LAST_VERTEX_CONVENTION_WEBGL=36430]="LAST_VERTEX_CONVENTION_WEBGL",e[e.PROVOKING_VERTEX_WEBL=36431]="PROVOKING_VERTEX_WEBL",e[e.POLYGON_MODE_WEBGL=2880]="POLYGON_MODE_WEBGL",e[e.POLYGON_OFFSET_LINE_WEBGL=10754]="POLYGON_OFFSET_LINE_WEBGL",e[e.LINE_WEBGL=6913]="LINE_WEBGL",e[e.FILL_WEBGL=6914]="FILL_WEBGL",e[e.MAX_CLIP_DISTANCES_WEBGL=3378]="MAX_CLIP_DISTANCES_WEBGL",e[e.MAX_CULL_DISTANCES_WEBGL=33529]="MAX_CULL_DISTANCES_WEBGL",e[e.MAX_COMBINED_CLIP_AND_CULL_DISTANCES_WEBGL=33530]="MAX_COMBINED_CLIP_AND_CULL_DISTANCES_WEBGL",e[e.CLIP_DISTANCE0_WEBGL=12288]="CLIP_DISTANCE0_WEBGL",e[e.CLIP_DISTANCE1_WEBGL=12289]="CLIP_DISTANCE1_WEBGL",e[e.CLIP_DISTANCE2_WEBGL=12290]="CLIP_DISTANCE2_WEBGL",e[e.CLIP_DISTANCE3_WEBGL=12291]="CLIP_DISTANCE3_WEBGL",e[e.CLIP_DISTANCE4_WEBGL=12292]="CLIP_DISTANCE4_WEBGL",e[e.CLIP_DISTANCE5_WEBGL=12293]="CLIP_DISTANCE5_WEBGL",e[e.CLIP_DISTANCE6_WEBGL=12294]="CLIP_DISTANCE6_WEBGL",e[e.CLIP_DISTANCE7_WEBGL=12295]="CLIP_DISTANCE7_WEBGL",e[e.POLYGON_OFFSET_CLAMP_EXT=36379]="POLYGON_OFFSET_CLAMP_EXT",e[e.LOWER_LEFT_EXT=36001]="LOWER_LEFT_EXT",e[e.UPPER_LEFT_EXT=36002]="UPPER_LEFT_EXT",e[e.NEGATIVE_ONE_TO_ONE_EXT=37726]="NEGATIVE_ONE_TO_ONE_EXT",e[e.ZERO_TO_ONE_EXT=37727]="ZERO_TO_ONE_EXT",e[e.CLIP_ORIGIN_EXT=37724]="CLIP_ORIGIN_EXT",e[e.CLIP_DEPTH_MODE_EXT=37725]="CLIP_DEPTH_MODE_EXT",e[e.SRC1_COLOR_WEBGL=35065]="SRC1_COLOR_WEBGL",e[e.SRC1_ALPHA_WEBGL=34185]="SRC1_ALPHA_WEBGL",e[e.ONE_MINUS_SRC1_COLOR_WEBGL=35066]="ONE_MINUS_SRC1_COLOR_WEBGL",e[e.ONE_MINUS_SRC1_ALPHA_WEBGL=35067]="ONE_MINUS_SRC1_ALPHA_WEBGL",e[e.MAX_DUAL_SOURCE_DRAW_BUFFERS_WEBGL=35068]="MAX_DUAL_SOURCE_DRAW_BUFFERS_WEBGL",e[e.MIRROR_CLAMP_TO_EDGE_EXT=34627]="MIRROR_CLAMP_TO_EDGE_EXT"})(K||(K={}));var _e={[3042]:!1,[32773]:new Float32Array([0,0,0,0]),[32777]:32774,[34877]:32774,[32969]:1,[32968]:0,[32971]:1,[32970]:0,[3106]:new Float32Array([0,0,0,0]),[3107]:[!0,!0,!0,!0],[2884]:!1,[2885]:1029,[2929]:!1,[2931]:1,[2932]:513,[2928]:new Float32Array([0,1]),[2930]:!0,[3024]:!0,[35725]:null,[36006]:null,[36007]:null,[34229]:null,[34964]:null,[2886]:2305,[33170]:4352,[2849]:1,[32823]:!1,[32824]:0,[10752]:0,[32926]:!1,[32928]:!1,[32938]:1,[32939]:!1,[3089]:!1,[3088]:new Int32Array([0,0,1024,1024]),[2960]:!1,[2961]:0,[2968]:4294967295,[36005]:4294967295,[2962]:519,[2967]:0,[2963]:4294967295,[34816]:519,[36003]:0,[36004]:4294967295,[2964]:7680,[2965]:7680,[2966]:7680,[34817]:7680,[34818]:7680,[34819]:7680,[2978]:[0,0,1024,1024],[36389]:null,[36662]:null,[36663]:null,[35053]:null,[35055]:null,[35723]:4352,[36010]:null,[35977]:!1,[3333]:4,[3317]:4,[37440]:!1,[37441]:!1,[37443]:37444,[3330]:0,[3332]:0,[3331]:0,[3314]:0,[32878]:0,[3316]:0,[3315]:0,[32877]:0},b=(e,t,r)=>t?e.enable(r):e.disable(r),ct=(e,t,r)=>e.hint(r,t),O=(e,t,r)=>e.pixelStorei(r,t),lt=(e,t,r)=>{let i=r===36006?36009:36008;return e.bindFramebuffer(i,t)},ae=(e,t,r)=>{let s={[34964]:34962,[36662]:36662,[36663]:36663,[35053]:35051,[35055]:35052}[r];e.bindBuffer(s,t)};function Ke(e){return Array.isArray(e)||ArrayBuffer.isView(e)&&!(e instanceof DataView)}var ft={[3042]:b,[32773]:(e,t)=>e.blendColor(...t),[32777]:"blendEquation",[34877]:"blendEquation",[32969]:"blendFunc",[32968]:"blendFunc",[32971]:"blendFunc",[32970]:"blendFunc",[3106]:(e,t)=>e.clearColor(...t),[3107]:(e,t)=>e.colorMask(...t),[2884]:b,[2885]:(e,t)=>e.cullFace(t),[2929]:b,[2931]:(e,t)=>e.clearDepth(t),[2932]:(e,t)=>e.depthFunc(t),[2928]:(e,t)=>e.depthRange(...t),[2930]:(e,t)=>e.depthMask(t),[3024]:b,[35723]:ct,[35725]:(e,t)=>e.useProgram(t),[36007]:(e,t)=>e.bindRenderbuffer(36161,t),[36389]:(e,t)=>e.bindTransformFeedback?.(36386,t),[34229]:(e,t)=>e.bindVertexArray(t),[36006]:lt,[36010]:lt,[34964]:ae,[36662]:ae,[36663]:ae,[35053]:ae,[35055]:ae,[2886]:(e,t)=>e.frontFace(t),[33170]:ct,[2849]:(e,t)=>e.lineWidth(t),[32823]:b,[32824]:"polygonOffset",[10752]:"polygonOffset",[35977]:b,[32926]:b,[32928]:b,[32938]:"sampleCoverage",[32939]:"sampleCoverage",[3089]:b,[3088]:(e,t)=>e.scissor(...t),[2960]:b,[2961]:(e,t)=>e.clearStencil(t),[2968]:(e,t)=>e.stencilMaskSeparate(1028,t),[36005]:(e,t)=>e.stencilMaskSeparate(1029,t),[2962]:"stencilFuncFront",[2967]:"stencilFuncFront",[2963]:"stencilFuncFront",[34816]:"stencilFuncBack",[36003]:"stencilFuncBack",[36004]:"stencilFuncBack",[2964]:"stencilOpFront",[2965]:"stencilOpFront",[2966]:"stencilOpFront",[34817]:"stencilOpBack",[34818]:"stencilOpBack",[34819]:"stencilOpBack",[2978]:(e,t)=>e.viewport(...t),[34383]:b,[10754]:b,[12288]:b,[12289]:b,[12290]:b,[12291]:b,[12292]:b,[12293]:b,[12294]:b,[12295]:b,[3333]:O,[3317]:O,[37440]:O,[37441]:O,[37443]:O,[3330]:O,[3332]:O,[3331]:O,[3314]:O,[32878]:O,[3316]:O,[3315]:O,[32877]:O,framebuffer:(e,t)=>{let r=t&&"handle"in t?t.handle:t;return e.bindFramebuffer(36160,r)},blend:(e,t)=>t?e.enable(3042):e.disable(3042),blendColor:(e,t)=>e.blendColor(...t),blendEquation:(e,t)=>{let r=typeof t=="number"?[t,t]:t;e.blendEquationSeparate(...r)},blendFunc:(e,t)=>{let r=t?.length===2?[...t,...t]:t;e.blendFuncSeparate(...r)},clearColor:(e,t)=>e.clearColor(...t),clearDepth:(e,t)=>e.clearDepth(t),clearStencil:(e,t)=>e.clearStencil(t),colorMask:(e,t)=>e.colorMask(...t),cull:(e,t)=>t?e.enable(2884):e.disable(2884),cullFace:(e,t)=>e.cullFace(t),depthTest:(e,t)=>t?e.enable(2929):e.disable(2929),depthFunc:(e,t)=>e.depthFunc(t),depthMask:(e,t)=>e.depthMask(t),depthRange:(e,t)=>e.depthRange(...t),dither:(e,t)=>t?e.enable(3024):e.disable(3024),derivativeHint:(e,t)=>{e.hint(35723,t)},frontFace:(e,t)=>e.frontFace(t),mipmapHint:(e,t)=>e.hint(33170,t),lineWidth:(e,t)=>e.lineWidth(t),polygonOffsetFill:(e,t)=>t?e.enable(32823):e.disable(32823),polygonOffset:(e,t)=>e.polygonOffset(...t),sampleCoverage:(e,t)=>e.sampleCoverage(t[0],t[1]||!1),scissorTest:(e,t)=>t?e.enable(3089):e.disable(3089),scissor:(e,t)=>e.scissor(...t),stencilTest:(e,t)=>t?e.enable(2960):e.disable(2960),stencilMask:(e,t)=>{t=Ke(t)?t:[t,t];let[r,i]=t;e.stencilMaskSeparate(1028,r),e.stencilMaskSeparate(1029,i)},stencilFunc:(e,t)=>{t=Ke(t)&&t.length===3?[...t,...t]:t;let[r,i,s,o,a,_]=t;e.stencilFuncSeparate(1028,r,i,s),e.stencilFuncSeparate(1029,o,a,_)},stencilOp:(e,t)=>{t=Ke(t)&&t.length===3?[...t,...t]:t;let[r,i,s,o,a,_]=t;e.stencilOpSeparate(1028,r,i,s),e.stencilOpSeparate(1029,o,a,_)},viewport:(e,t)=>e.viewport(...t)};function g(e,t,r){return t[e]!==void 0?t[e]:r[e]}var Tt={blendEquation:(e,t,r)=>e.blendEquationSeparate(g(32777,t,r),g(34877,t,r)),blendFunc:(e,t,r)=>e.blendFuncSeparate(g(32969,t,r),g(32968,t,r),g(32971,t,r),g(32970,t,r)),polygonOffset:(e,t,r)=>e.polygonOffset(g(32824,t,r),g(10752,t,r)),sampleCoverage:(e,t,r)=>e.sampleCoverage(g(32938,t,r),g(32939,t,r)),stencilFuncFront:(e,t,r)=>e.stencilFuncSeparate(1028,g(2962,t,r),g(2967,t,r),g(2963,t,r)),stencilFuncBack:(e,t,r)=>e.stencilFuncSeparate(1029,g(34816,t,r),g(36003,t,r),g(36004,t,r)),stencilOpFront:(e,t,r)=>e.stencilOpSeparate(1028,g(2964,t,r),g(2965,t,r),g(2966,t,r)),stencilOpBack:(e,t,r)=>e.stencilOpSeparate(1029,g(34817,t,r),g(34818,t,r),g(34819,t,r))},Ye={enable:(e,t)=>e({[t]:!0}),disable:(e,t)=>e({[t]:!1}),pixelStorei:(e,t,r)=>e({[t]:r}),hint:(e,t,r)=>e({[t]:r}),useProgram:(e,t)=>e({[35725]:t}),bindRenderbuffer:(e,t,r)=>e({[36007]:r}),bindTransformFeedback:(e,t,r)=>e({[36389]:r}),bindVertexArray:(e,t)=>e({[34229]:t}),bindFramebuffer:(e,t,r)=>{switch(t){case 36160:return e({[36006]:r,[36010]:r});case 36009:return e({[36006]:r});case 36008:return e({[36010]:r});default:return null}},bindBuffer:(e,t,r)=>{let i={[34962]:[34964],[36662]:[36662],[36663]:[36663],[35051]:[35053],[35052]:[35055]}[t];return i?e({[i]:r}):{valueChanged:!0}},blendColor:(e,t,r,i,s)=>e({[32773]:new Float32Array([t,r,i,s])}),blendEquation:(e,t)=>e({[32777]:t,[34877]:t}),blendEquationSeparate:(e,t,r)=>e({[32777]:t,[34877]:r}),blendFunc:(e,t,r)=>e({[32969]:t,[32968]:r,[32971]:t,[32970]:r}),blendFuncSeparate:(e,t,r,i,s)=>e({[32969]:t,[32968]:r,[32971]:i,[32970]:s}),clearColor:(e,t,r,i,s)=>e({[3106]:new Float32Array([t,r,i,s])}),clearDepth:(e,t)=>e({[2931]:t}),clearStencil:(e,t)=>e({[2961]:t}),colorMask:(e,t,r,i,s)=>e({[3107]:[t,r,i,s]}),cullFace:(e,t)=>e({[2885]:t}),depthFunc:(e,t)=>e({[2932]:t}),depthRange:(e,t,r)=>e({[2928]:new Float32Array([t,r])}),depthMask:(e,t)=>e({[2930]:t}),frontFace:(e,t)=>e({[2886]:t}),lineWidth:(e,t)=>e({[2849]:t}),polygonOffset:(e,t,r)=>e({[32824]:t,[10752]:r}),sampleCoverage:(e,t,r)=>e({[32938]:t,[32939]:r}),scissor:(e,t,r,i,s)=>e({[3088]:new Int32Array([t,r,i,s])}),stencilMask:(e,t)=>e({[2968]:t,[36005]:t}),stencilMaskSeparate:(e,t,r)=>e({[t===1028?2968:36005]:r}),stencilFunc:(e,t,r,i)=>e({[2962]:t,[2967]:r,[2963]:i,[34816]:t,[36003]:r,[36004]:i}),stencilFuncSeparate:(e,t,r,i,s)=>e({[t===1028?2962:34816]:r,[t===1028?2967:36003]:i,[t===1028?2963:36004]:s}),stencilOp:(e,t,r,i)=>e({[2964]:t,[2965]:r,[2966]:i,[34817]:t,[34818]:r,[34819]:i}),stencilOpSeparate:(e,t,r,i,s)=>e({[t===1028?2964:34817]:r,[t===1028?2965:34818]:i,[t===1028?2966:34819]:s}),viewport:(e,t,r,i,s)=>e({[2978]:[t,r,i,s]})},y=(e,t)=>e.isEnabled(t),me={[3042]:y,[2884]:y,[2929]:y,[3024]:y,[32823]:y,[32926]:y,[32928]:y,[3089]:y,[2960]:y,[35977]:y},Rt=new Set([34016,36388,36387,35983,35368,34965,35739,35738,3074,34853,34854,34855,34856,34857,34858,34859,34860,34861,34862,34863,34864,34865,34866,34867,34868,35097,32873,35869,32874,34068]);function F(e,t){if(Hr(t))return;let r={};for(let s in t){let o=Number(s),a=ft[s];a&&(typeof a=="string"?r[a]=!0:a(e,t[s],o))}let i=e.state&&e.state.cache;if(i)for(let s in r){let o=Tt[s];o(e,t,i)}}function q(e,t=_e){if(typeof t=="number"){let s=t,o=me[s];return o?o(e,s):e.getParameter(s)}let r=Array.isArray(t)?t:Object.keys(t),i={};for(let s of r){let o=me[s];i[s]=o?o(e,Number(s)):e.getParameter(Number(s))}return i}function he(e){F(e,_e)}function Hr(e){for(let t in e)return!1;return!0}function At(e,t){if(e===t)return!0;let r=Array.isArray(e)||ArrayBuffer.isView(e),i=Array.isArray(t)||ArrayBuffer.isView(t);if(r&&i&&e.length===t.length){for(let s=0;s<e.length;++s)if(e[s]!==t[s])return!1;return!0}return!1}var M=class{static get(t){return t.state}gl;program=null;stateStack=[];enable=!0;cache=null;log;initialized=!1;constructor(t,r){this.gl=t,this.log=r?.log||(()=>{}),this._updateCache=this._updateCache.bind(this),Object.seal(this)}push(t={}){this.stateStack.push({})}pop(){let t=this.stateStack[this.stateStack.length-1];F(this.gl,t),this.stateStack.pop()}trackState(t,r){if(this.cache=r.copyState?q(t):Object.assign({},_e),this.initialized)throw new Error("WebGLStateTracker");this.initialized=!0,this.gl.state=this,Vr(t);for(let i in Ye){let s=Ye[i];Wr(t,i,s)}dt(t,"getParameter"),dt(t,"isEnabled")}_updateCache(t){let r=!1,i,s=this.stateStack.length>0?this.stateStack[this.stateStack.length-1]:null;for(let o in t){let a=t[o],_=this.cache[o];At(a,_)||(r=!0,i=_,s&&!(o in s)&&(s[o]=_),this.cache[o]=a)}return{valueChanged:r,oldValue:i}}};function dt(e,t){let r=e[t].bind(e);e[t]=function(s){if(s===void 0||Rt.has(s))return r(s);let o=M.get(e);return s in o.cache||(o.cache[s]=r(s)),o.enable?o.cache[s]:r(s)},Object.defineProperty(e[t],"name",{value:`${t}-from-cache`,configurable:!1})}function Wr(e,t,r){if(!e[t])return;let i=e[t].bind(e);e[t]=function(...o){let a=M.get(e),{valueChanged:_,oldValue:n}=r(a._updateCache,...o);return _&&i(...o),n},Object.defineProperty(e[t],"name",{value:`${t}-to-cache`,configurable:!1})}function Vr(e){let t=e.useProgram.bind(e);e.useProgram=function(i){let s=M.get(e);s.program!==i&&(t(i),s.program=i)}}function St(e,t,r){let i="",s={preserveDrawingBuffer:!0,...r},o=null;if(o||=e.getContext("webgl2",s),s.failIfMajorPerformanceCaveat&&(i||="Only software GPU is available. Set `failIfMajorPerformanceCaveat: false` to allow."),!o&&!r.failIfMajorPerformanceCaveat&&(s.failIfMajorPerformanceCaveat=!1,o=e.getContext("webgl2",s),o.luma||={},o.luma.softwareRenderer=!0),o||(o=e.getContext("webgl",{}),o&&(o=null,i||="Your browser only supports WebGL1")),!o)throw i||="Your browser does not support WebGL",new Error(`Failed to create WebGL context: ${i}`);let{onContextLost:a,onContextRestored:_}=t;return e.addEventListener("webglcontextlost",n=>a(n),!1),e.addEventListener("webglcontextrestored",n=>_(n),!1),o.luma||={},o}function w(e,t,r){return r[t]===void 0&&(r[t]=e.getExtension(t)||null),r[t]}function Et(e,t){let r=e.getParameter(7936),i=e.getParameter(7937);w(e,"WEBGL_debug_renderer_info",t);let s=t.WEBGL_debug_renderer_info,o=e.getParameter(s?s.UNMASKED_VENDOR_WEBGL:7936),a=e.getParameter(s?s.UNMASKED_RENDERER_WEBGL:7937),_=o||r,n=a||i,c=e.getParameter(7938),l=ht(_,n),f=kr(_,n),T=Kr(_,n);return{type:"webgl",gpu:l,gpuType:T,gpuBackend:f,vendor:_,renderer:n,version:c,shadingLanguage:"glsl",shadingLanguageVersion:300}}function ht(e,t){return/NVIDIA/i.exec(e)||/NVIDIA/i.exec(t)?"nvidia":/INTEL/i.exec(e)||/INTEL/i.exec(t)?"intel":/Apple/i.exec(e)||/Apple/i.exec(t)?"apple":/AMD/i.exec(e)||/AMD/i.exec(t)||/ATI/i.exec(e)||/ATI/i.exec(t)?"amd":/SwiftShader/i.exec(e)||/SwiftShader/i.exec(t)?"software":"unknown"}function kr(e,t){return/Metal/i.exec(e)||/Metal/i.exec(t)?"metal":/ANGLE/i.exec(e)||/ANGLE/i.exec(t)?"opengl":"unknown"}function Kr(e,t){if(/SwiftShader/i.exec(e)||/SwiftShader/i.exec(t))return"cpu";switch(ht(e,t)){case"intel":return"integrated";case"software":return"cpu";case"unknown":return"unknown";default:return"discrete"}}var Pt=E(S(),1);var je=E(S(),1);function ge(e){switch(e){case"uint8":return 5121;case"sint8":return 5120;case"unorm8":return 5121;case"snorm8":return 5120;case"uint16":return 5123;case"sint16":return 5122;case"unorm16":return 5123;case"snorm16":return 5122;case"uint32":return 5125;case"sint32":return 5124;case"float16":return 5131;case"float32":return 5126}throw new Error(String(e))}var I="texture-compression-bc",A="texture-compression-astc",X="texture-compression-etc2",Yr="texture-compression-etc1-webgl",be="texture-compression-pvrtc-webgl",$e="texture-compression-atc-webgl",pe="float32-renderable-webgl",ze="float16-renderable-webgl",mr="rgb9e5ufloat_renderable-webgl",Ze="snorm8-renderable-webgl",ne="norm16-renderable-webgl",Qe="snorm16-renderable-webgl",Ce="float32-filterable",gt="float16-filterable-webgl",ce="WEBGL_compressed_texture_s3tc",le="WEBGL_compressed_texture_s3tc_srgb",J="EXT_texture_compression_rgtc",L="EXT_texture_compression_bptc",$r="WEBGL_compressed_texture_etc",zr="WEBGL_compressed_texture_astc",Zr="WEBGL_compressed_texture_etc1",Qr="WEBGL_compressed_texture_pvrtc",jr="WEBGL_compressed_texture_atc",bt="EXT_texture_norm16",pt="EXT_render_snorm",qr="EXT_color_buffer_float",Ie={"float32-renderable-webgl":["EXT_color_buffer_float"],"float16-renderable-webgl":["EXT_color_buffer_half_float"],"rgb9e5ufloat_renderable-webgl":["WEBGL_render_shared_exponent"],"snorm8-renderable-webgl":[pt],"norm16-renderable-webgl":[bt],"snorm16-renderable-webgl":[bt,pt],"float32-filterable":["OES_texture_float_linear"],"float16-filterable-webgl":["OES_texture_half_float_linear"],"texture-filterable-anisotropic-webgl":["EXT_texture_filter_anisotropic"],"texture-blend-float-webgl":["EXT_float_blend"],"texture-compression-bc":[ce,le,J,L],"texture-compression-bc5-webgl":[J],"texture-compression-bc7-webgl":[L],"texture-compression-etc2":[$r],"texture-compression-astc":[zr],"texture-compression-etc1-webgl":[Zr],"texture-compression-pvrtc-webgl":[Qr],"texture-compression-atc-webgl":[jr]};function Ct(e){return e in Ie}function G(e,t,r){return(Ie[t]||[]).every(s=>w(e,s,r))}var z={r8unorm:{gl:33321,b:1,c:1,rb:!0},r8snorm:{gl:36756,b:1,c:1,render:Ze},r8uint:{gl:33330,b:1,c:1,rb:!0},r8sint:{gl:33329,b:1,c:1,rb:!0},rg8unorm:{gl:33323,b:2,c:2,rb:!0},rg8snorm:{gl:36757,b:2,c:2,render:Ze},rg8uint:{gl:33336,b:2,c:2,rb:!0},rg8sint:{gl:33335,b:2,c:2,rb:!0},r16uint:{gl:33332,b:2,c:1,rb:!0},r16sint:{gl:33331,b:2,c:1,rb:!0},r16float:{gl:33325,b:2,c:1,render:ze,filter:"float16-filterable-webgl",rb:!0},"r16unorm-webgl":{gl:33322,b:2,c:1,f:ne,rb:!0},"r16snorm-webgl":{gl:36760,b:2,c:1,f:Qe},"rgba4unorm-webgl":{gl:32854,b:2,c:4,wgpu:!1,rb:!0},"rgb565unorm-webgl":{gl:36194,b:2,c:4,wgpu:!1,rb:!0},"rgb5a1unorm-webgl":{gl:32855,b:2,c:4,wgpu:!1,rb:!0},"rgb8unorm-webgl":{gl:32849,b:3,c:3,wgpu:!1},"rgb8snorm-webgl":{gl:36758,b:3,c:3,wgpu:!1},rgba8unorm:{gl:32856,b:4,c:2,bpp:4},"rgba8unorm-srgb":{gl:35907,b:4,c:4,bpp:4},rgba8snorm:{gl:36759,b:4,c:4,render:Ze},rgba8uint:{gl:36220,b:4,c:4,bpp:4},rgba8sint:{gl:36238,b:4,c:4,bpp:4},bgra8unorm:{b:4,c:4},"bgra8unorm-srgb":{b:4,c:4},rg16uint:{gl:33338,b:4,c:1,bpp:4},rg16sint:{gl:33337,b:4,c:2,bpp:4},rg16float:{gl:33327,bpp:4,b:4,c:2,render:ze,filter:gt,rb:!0},"rg16unorm-webgl":{gl:33324,b:2,c:2,render:ne},"rg16snorm-webgl":{gl:36761,b:2,c:2,render:Qe},r32uint:{gl:33334,b:4,c:1,bpp:4,rb:!0},r32sint:{gl:33333,b:4,c:1,bpp:4,rb:!0},r32float:{gl:33326,bpp:4,b:4,c:1,render:pe,filter:Ce},rgb9e5ufloat:{gl:35901,b:4,c:3,p:1,render:mr},rg11b10ufloat:{gl:35898,b:4,c:3,p:1,render:pe,rb:!0},rgb10a2unorm:{gl:32857,b:4,c:4,p:1,rb:!0},"rgb10a2uint-webgl":{b:4,c:4,gl:36975,p:1,wgpu:!1,bpp:4,rb:!0},"rgb16unorm-webgl":{gl:32852,b:2,c:3,f:ne},"rgb16snorm-webgl":{gl:36762,b:2,c:3,f:ne},rg32uint:{gl:33340,b:8,c:2,rb:!0},rg32sint:{gl:33339,b:8,c:2,rb:!0},rg32float:{gl:33328,b:8,c:2,render:!1,filter:Ce,rb:!0},rgba16uint:{gl:36214,b:8,c:4,rb:!0},rgba16sint:{gl:36232,b:8,c:4,rb:!0},rgba16float:{gl:34842,b:8,c:4,render:ze,filter:gt},"rgba16unorm-webgl":{gl:32859,b:2,c:4,render:ne,rb:!0},"rgba16snorm-webgl":{gl:36763,b:2,c:4,render:Qe},"rgb32float-webgl":{gl:34837,render:pe,filter:Ce,gl2ext:qr,dataFormat:6407,types:[5126]},rgba32uint:{gl:36208,b:16,c:4,rb:!0},rgba32sint:{gl:36226,b:16,c:4,rb:!0},rgba32float:{gl:34836,b:16,c:4,render:pe,filter:Ce,rb:!0},stencil8:{gl:36168,b:1,c:1,attachment:36128,rb:!0},depth16unorm:{gl:33189,b:2,c:1,attachment:36096,dataFormat:6402,types:[5123],rb:!0},depth24plus:{gl:33190,b:3,c:1,attachment:36096,dataFormat:6402,types:[5125]},depth32float:{gl:36012,b:4,c:1,attachment:36096,dataFormat:6402,types:[5126],rb:!0},"depth24plus-stencil8":{gl:35056,b:4,c:2,p:1,attachment:33306,rb:!0,depthTexture:!0,dataFormat:34041,types:[34042]},"depth32float-stencil8":{gl:36013,b:5,c:2,p:1,attachment:33306,dataFormat:34041,types:[36269],rb:!0},"bc1-rgb-unorm-webgl":{gl:33776,x:ce,f:I},"bc1-rgb-unorm-srgb-webgl":{gl:35916,x:le,f:I},"bc1-rgba-unorm":{gl:33777,x:ce,f:I},"bc1-rgba-unorm-srgb":{gl:35916,x:le,f:I},"bc2-rgba-unorm":{gl:33778,x:ce,f:I},"bc2-rgba-unorm-srgb":{gl:35918,x:le,f:I},"bc3-rgba-unorm":{gl:33779,x:ce,f:I},"bc3-rgba-unorm-srgb":{gl:35919,x:le,f:I},"bc4-r-unorm":{gl:36283,x:J,f:I},"bc4-r-snorm":{gl:36284,x:J,f:I},"bc5-rg-unorm":{gl:36285,x:J,f:I},"bc5-rg-snorm":{gl:36286,x:J,f:I},"bc6h-rgb-ufloat":{gl:36495,x:L,f:I},"bc6h-rgb-float":{gl:36494,x:L,f:I},"bc7-rgba-unorm":{gl:36492,x:L,f:I},"bc7-rgba-unorm-srgb":{gl:36493,x:L,f:I},"etc2-rgb8unorm":{gl:37492,f:X},"etc2-rgb8unorm-srgb":{gl:37494,f:X},"etc2-rgb8a1unorm":{gl:37496,f:X},"etc2-rgb8a1unorm-srgb":{gl:37497,f:X},"etc2-rgba8unorm":{gl:37493,f:X},"etc2-rgba8unorm-srgb":{gl:37495,f:X},"eac-r11unorm":{gl:37488,f:X},"eac-r11snorm":{gl:37489,f:X},"eac-rg11unorm":{gl:37490,f:X},"eac-rg11snorm":{gl:37491,f:X},"astc-4x4-unorm":{gl:37808,f:A},"astc-4x4-unorm-srgb":{gl:37840,f:A},"astc-5x4-unorm":{gl:37809,f:A},"astc-5x4-unorm-srgb":{gl:37841,f:A},"astc-5x5-unorm":{gl:37810,f:A},"astc-5x5-unorm-srgb":{gl:37842,f:A},"astc-6x5-unorm":{gl:37811,f:A},"astc-6x5-unorm-srgb":{gl:37843,f:A},"astc-6x6-unorm":{gl:37812,f:A},"astc-6x6-unorm-srgb":{gl:37844,f:A},"astc-8x5-unorm":{gl:37813,f:A},"astc-8x5-unorm-srgb":{gl:37845,f:A},"astc-8x6-unorm":{gl:37814,f:A},"astc-8x6-unorm-srgb":{gl:37846,f:A},"astc-8x8-unorm":{gl:37815,f:A},"astc-8x8-unorm-srgb":{gl:37847,f:A},"astc-10x5-unorm":{gl:37819,f:A},"astc-10x5-unorm-srgb":{gl:37851,f:A},"astc-10x6-unorm":{gl:37817,f:A},"astc-10x6-unorm-srgb":{gl:37849,f:A},"astc-10x8-unorm":{gl:37818,f:A},"astc-10x8-unorm-srgb":{gl:37850,f:A},"astc-10x10-unorm":{gl:37819,f:A},"astc-10x10-unorm-srgb":{gl:37851,f:A},"astc-12x10-unorm":{gl:37820,f:A},"astc-12x10-unorm-srgb":{gl:37852,f:A},"astc-12x12-unorm":{gl:37821,f:A},"astc-12x12-unorm-srgb":{gl:37853,f:A},"pvrtc-rgb4unorm-webgl":{gl:35840,f:be},"pvrtc-rgba4unorm-webgl":{gl:35842,f:be},"pvrtc-rbg2unorm-webgl":{gl:35841,f:be},"pvrtc-rgba2unorm-webgl":{gl:35843,f:be},"etc1-rbg-unorm-webgl":{gl:36196,f:Yr},"atc-rgb-unorm-webgl":{gl:35986,f:$e},"atc-rgba-unorm-webgl":{gl:35986,f:$e},"atc-rgbai-unorm-webgl":{gl:34798,f:$e}};function It(e,t,r){let i=z[t];if(!i||i.gl===void 0)return!1;let s=i.f;if(s)return G(e,s,r);let o=i.x||i.gl2ext;return o?Boolean(w(e,o,r)):!0}function Nt(e,t,r){return Ft(e,t,r).filterable||!1}function Ot(e,t,r){return Ft(e,t,r).renderable||!1}function Ft(e,t,r){let i=(0,je.decodeTextureFormat)(t);if(!i)return{supported:!1};let s=z[t];if(!s)return{supported:!1};let o=s.gl!==void 0;o=o&&G(e,s.f,r);let a=t.startsWith("depth")||t.startsWith("stencil"),_=i?.signed,n=o&&!_&&s.render&&G(e,s.render,r),c=o&&!a&&!_&&s.filter&&G(e,s.filter,r);return{supported:o,renderable:n,filterable:c,blendable:!1,storable:!1}}function Ne(e){let t=z[e],r=Lr(e),i=(0,je.decodeTextureFormat)(e);return{internalFormat:r,format:t?.dataFormat||Jr(i.channels,i.integer,i.normalized,r),type:i.dataType?ge(i.dataType):t?.types?.[0]||5121,compressed:i.compressed||!1}}function Mt(e){let t=z[e];if(!t?.attachment)throw new Error(`${e} is not a depth stencil format`);return t.attachment}function Jr(e,t,r,i){if(i===6408||i===6407)return i;switch(e){case"r":return t&&!r?36244:6403;case"rg":return t&&!r?33320:33319;case"rgb":return t&&!r?36248:6407;case"rgba":return t&&!r?36249:6408;case"bgra":throw new Error("bgra pixels not supported by WebGL");default:return 6408}}function Lr(e){let r=z[e]?.gl;if(r===void 0)throw new Error(`Unsupported texture format ${e}`);return r}var Bt={"depth-clip-control":"EXT_depth_clamp","timer-query-webgl":"EXT_disjoint_timer_query_webgl2","compilation-status-async-webgl":"KHR_parallel_shader_compile","polygon-mode-webgl":"WEBGL_polygon_mode","provoking-vertex-webgl":"WEBGL_provoking_vertex","shader-clip-cull-distance-webgl":"WEBGL_clip_cull_distance","shader-noperspective-interpolation-webgl":"NV_shader_noperspective_interpolation","shader-conservative-depth-webgl":"EXT_conservative_depth"},Oe=class extends Pt.DeviceFeatures{gl;extensions;testedFeatures=new Set;constructor(t,r,i){super([],i),this.gl=t,this.extensions=r,w(t,"EXT_color_buffer_float",r)}*[Symbol.iterator](){let t=this.getFeatures();for(let r of t)this.has(r)&&(yield r);return[]}has(t){return this.disabledFeatures?.[t]?!1:(this.testedFeatures.has(t)||(this.testedFeatures.add(t),Ct(t)&&G(this.gl,t,this.extensions)&&this.features.add(t),this.getWebGLFeature(t)&&this.features.add(t)),this.features.has(t))}initializeFeatures(){let t=this.getFeatures().filter(r=>r!=="polygon-mode-webgl");for(let r of t)this.has(r)}getFeatures(){return[...Object.keys(Bt),...Object.keys(Ie)]}getWebGLFeature(t){let r=Bt[t];return Boolean(typeof r=="string"?w(this.gl,r,this.extensions):r)}};var ut=E(S(),1);var Fe=class extends ut.DeviceLimits{get maxTextureDimension1D(){return 0}get maxTextureDimension2D(){return this.getParameter(3379)}get maxTextureDimension3D(){return this.getParameter(32883)}get maxTextureArrayLayers(){return this.getParameter(35071)}get maxBindGroups(){return 0}get maxDynamicUniformBuffersPerPipelineLayout(){return 0}get maxDynamicStorageBuffersPerPipelineLayout(){return 0}get maxSampledTexturesPerShaderStage(){return this.getParameter(35660)}get maxSamplersPerShaderStage(){return this.getParameter(35661)}get maxStorageBuffersPerShaderStage(){return 0}get maxStorageTexturesPerShaderStage(){return 0}get maxUniformBuffersPerShaderStage(){return this.getParameter(35375)}get maxUniformBufferBindingSize(){return this.getParameter(35376)}get maxStorageBufferBindingSize(){return 0}get minUniformBufferOffsetAlignment(){return this.getParameter(35380)}get minStorageBufferOffsetAlignment(){return 0}get maxVertexBuffers(){return 16}get maxVertexAttributes(){return this.getParameter(34921)}get maxVertexBufferArrayStride(){return 2048}get maxInterStageShaderComponents(){return this.getParameter(35659)}get maxComputeWorkgroupStorageSize(){return 0}get maxComputeInvocationsPerWorkgroup(){return 0}get maxComputeWorkgroupSizeX(){return 0}get maxComputeWorkgroupSizeY(){return 0}get maxComputeWorkgroupSizeZ(){return 0}get maxComputeWorkgroupsPerDimension(){return 0}gl;limits={};constructor(t){super(),this.gl=t}getParameter(t){return this.limits[t]===void 0&&(this.limits[t]=this.gl.getParameter(t)),this.limits[t]||0}};var xt=E(S(),1);var Dt=E(S(),1);var u=class extends Dt.Framebuffer{device;gl;handle;colorAttachments=[];depthStencilAttachment=null;constructor(t,r){super(t,r);let i=r.handle===null;this.device=t,this.gl=t.gl,this.handle=this.props.handle||i?this.props.handle:this.gl.createFramebuffer(),i||(t.setSpectorMetadata(this.handle,{id:this.props.id,props:this.props}),this.autoCreateAttachmentTextures(),this.updateAttachments())}destroy(){super.destroy(),!this.destroyed&&this.handle!==null&&this.gl.deleteFramebuffer(this.handle)}updateAttachments(){let t=this.gl.bindFramebuffer(36160,this.handle);for(let r=0;r<this.colorAttachments.length;++r){let i=this.colorAttachments[r];if(i){let s=36064+r;this._attachTextureView(s,i)}}if(this.depthStencilAttachment){let r=Mt(this.depthStencilAttachment.props.format);this._attachTextureView(r,this.depthStencilAttachment)}if(this.device.props.debug){let r=this.gl.checkFramebufferStatus(36160);if(r!==36053)throw new Error(`Framebuffer ${ei(r)}`)}this.gl.bindFramebuffer(36160,t)}_attachTextureView(t,r){let{gl:i}=this.device,{texture:s}=r,o=r.props.baseMipLevel,a=r.props.baseArrayLayer;switch(i.bindTexture(s.glTarget,s.handle),s.glTarget){case 35866:case 32879:i.framebufferTextureLayer(36160,t,s.handle,o,a);break;case 34067:let _=Gr(a);i.framebufferTexture2D(36160,t,_,s.handle,o);break;case 3553:i.framebufferTexture2D(36160,t,3553,s.handle,o);break;default:throw new Error("Illegal texture type")}i.bindTexture(s.glTarget,null)}};function Gr(e){return e<34069?e+34069:e}function ei(e){switch(e){case 36053:return"success";case 36054:return"Mismatched attachments";case 36055:return"No attachments";case 36057:return"Height/width mismatch";case 36061:return"Unsupported or split attachments";case 36182:return"Samples mismatch";default:return`${e}`}}var ee=class extends xt.CanvasContext{device;format="rgba8unorm";depthStencilFormat="depth24plus";presentationSize;_framebuffer=null;constructor(t,r){super(r),this.device=t,this.presentationSize=[-1,-1],this._setAutoCreatedCanvasId(`${this.device.id}-canvas`),this.update()}getCurrentFramebuffer(){return this.update(),this._framebuffer=this._framebuffer||new u(this.device,{handle:null}),this._framebuffer}update(){let t=this.getPixelSize();(t[0]!==this.presentationSize[0]||t[1]!==this.presentationSize[1])&&(this.presentationSize=t,this.resize())}resize(t){if(this.device.gl&&this.canvas){let r=this.getDevicePixelRatio(t?.useDevicePixels);this.setDevicePixelRatio(r,t);return}}commit(){}};var Z=E(S(),1);async function Me(e,t){let r=document.getElementsByTagName("head")[0];if(!r)throw new Error("loadScript");let i=document.createElement("script");return i.setAttribute("type","text/javascript"),i.setAttribute("src",e),t&&(i.id=t),new Promise((s,o)=>{i.onload=s,i.onerror=a=>o(new Error(`Unable to load script '${e}': ${a}`)),r.appendChild(i)})}var ti=1,B=null,Ut=!1,Be={debugSpectorJS:Z.log.get("debug-spectorjs"),debugSpectorJSUrl:"https://cdn.jsdelivr.net/npm/spectorjs@0.9.30/dist/spector.bundle.js",gl:void 0};async function yt(e){if(!globalThis.SPECTOR)try{await Me(e.debugSpectorJSUrl||Be.debugSpectorJSUrl)}catch(t){Z.log.warn(String(t))}}function wt(e){if(e={...Be,...e},!e.debugSpectorJS)return null;if(!B&&globalThis.SPECTOR&&!globalThis.luma?.spector){Z.log.probe(ti,"SPECTOR found and initialized. Start with `luma.spector.displayUI()`")();let{Spector:t}=globalThis.SPECTOR;B=new t,globalThis.luma&&(globalThis.luma.spector=B)}if(!B)return null;if(Ut||(Ut=!0,B.spyCanvases(),B?.onCaptureStarted.add(t=>Z.log.info("Spector capture started:",t)()),B?.onCapture.add(t=>{Z.log.info("Spector capture complete:",t)(),B?.getResultUI(),B?.resultView.display(),B?.resultView.addCapture(t)})),e.gl){let t=e.gl,r=t.device;B?.startCapture(e.gl,500),t.device=r,new Promise(i=>setTimeout(i,2e3)).then(i=>{Z.log.info("Spector capture stopped after 2 seconds")(),B?.stopCapture()})}return B}var Te=E(S(),1);var Os=globalThis.document||{},Fs=globalThis.process||{},Ms=globalThis.console,Xt=globalThis.navigator||{};function Pe(e){if(typeof window<"u"&&window.process?.type==="renderer"||typeof process<"u"&&Boolean(process.versions?.electron))return!0;let t=typeof navigator<"u"&&navigator.userAgent,r=e||t;return Boolean(r&&r.indexOf("Electron")>=0)}function fe(){return!(typeof process=="object"&&String(process)==="[object process]"&&!process?.browser)||Pe()}function qe(e){return!e&&!fe()?"Node":Pe(e)?"Electron":(e||Xt.userAgent||"").indexOf("Edge")>-1?"Edge":globalThis.chrome?"Chrome":globalThis.safari?"Safari":globalThis.mozInnerScreenX?"Firefox":"Unknown"}var ri="https://unpkg.com/webgl-debug@2.0.1/index.js";function Ht(e){return e.luma=e.luma||{},e.luma}async function Wt(){fe()&&!globalThis.WebGLDebugUtils&&(globalThis.global=globalThis.global||globalThis,globalThis.global.module={},await Me(ri))}function Vt(e,t={}){return t.debugWebGL||t.traceWebGL?si(e,t):ii(e)}function ii(e){let t=Ht(e);return t.realContext?t.realContext:e}function si(e,t){if(!globalThis.WebGLDebugUtils)return Te.log.warn("webgl-debug not loaded")(),e;let r=Ht(e);if(r.debugContext)return r.debugContext;globalThis.WebGLDebugUtils.init({...K,...e});let i=globalThis.WebGLDebugUtils.makeDebugContext(e,oi.bind(null,t),ai.bind(null,t));for(let a in K)!(a in i)&&typeof K[a]=="number"&&(i[a]=K[a]);class s{}Object.setPrototypeOf(i,Object.getPrototypeOf(e)),Object.setPrototypeOf(s,i);let o=Object.create(s);return r.realContext=e,r.debugContext=o,o.debug=!0,o}function vt(e,t){t=Array.from(t).map(i=>i===void 0?"undefined":i);let r=globalThis.WebGLDebugUtils.glFunctionArgsToString(e,t);return r=`${r.slice(0,100)}${r.length>100?"...":""}`,`gl.${e}(${r})`}function oi(e,t,r,i){i=Array.from(i).map(_=>_===void 0?"undefined":_);let s=globalThis.WebGLDebugUtils.glEnumToString(t),o=globalThis.WebGLDebugUtils.glFunctionArgsToString(r,i),a=`${s} in gl.${r}(${o})`;Te.log.error(a)();debugger}function ai(e,t,r){let i="";Te.log.level>=1&&(i=vt(t,r),e.traceWebGL&&Te.log.log(1,i)());for(let s of r)if(s===void 0){i=i||vt(t,r);debugger}}var Je={};function kt(e="id"){Je[e]=Je[e]||1;let t=Je[e]++;return`${e}-${t}`}var Y=E(S(),1);var D=class extends Y.Buffer{device;gl;handle;glTarget;glUsage;glIndexType=5123;byteLength;bytesUsed;constructor(t,r={}){super(t,r),this.device=t,this.gl=this.device.gl;let i=typeof r=="object"?r.handle:void 0;this.handle=i||this.gl.createBuffer(),t.setSpectorMetadata(this.handle,{...this.props,data:typeof this.props.data}),this.glTarget=_i(this.props.usage),this.glUsage=ni(this.props.usage),this.glIndexType=this.props.indexType==="uint32"?5125:5123,r.data?this._initWithData(r.data,r.byteOffset,r.byteLength):this._initWithByteLength(r.byteLength||0)}_initWithData(t,r=0,i=t.byteLength+r){let s=this.glTarget;this.gl.bindBuffer(s,this.handle),this.gl.bufferData(s,i,this.glUsage),this.gl.bufferSubData(s,r,t),this.gl.bindBuffer(s,null),this.bytesUsed=i,this.byteLength=i,this._setDebugData(t,r,i),this.trackAllocatedMemory(i)}_initWithByteLength(t){let r=t;t===0&&(r=new Float32Array(0));let i=this.glTarget;return this.gl.bindBuffer(i,this.handle),this.gl.bufferData(i,r,this.glUsage),this.gl.bindBuffer(i,null),this.bytesUsed=t,this.byteLength=t,this._setDebugData(null,0,t),this.trackAllocatedMemory(t),this}destroy(){!this.destroyed&&this.handle&&(this.removeStats(),this.trackDeallocatedMemory(),this.gl.deleteBuffer(this.handle),this.destroyed=!0,this.handle=null)}write(t,r=0){this.gl.bindBuffer(36663,this.handle),this.gl.bufferSubData(36663,r,t),this.gl.bindBuffer(36663,null),this._setDebugData(t,r,t.byteLength)}async readAsync(t=0,r){return this.readSyncWebGL(t,r)}readSyncWebGL(t=0,r){r=r??this.byteLength-t;let i=new Uint8Array(r),s=0;return this.gl.bindBuffer(36662,this.handle),this.gl.getBufferSubData(36662,t,i,s,r),this.gl.bindBuffer(36662,null),this._setDebugData(i,t,r),i}};function _i(e){return e&Y.Buffer.INDEX?34963:e&Y.Buffer.VERTEX?34962:e&Y.Buffer.UNIFORM?35345:34962}function ni(e){return e&Y.Buffer.INDEX||e&Y.Buffer.VERTEX?35044:e&Y.Buffer.UNIFORM?35048:35044}var Re=E(S(),1);function Yt(e){let t=e.split(/\r?\n/),r=[];for(let i of t){if(i.length<=1)continue;let s=i.split(":");if(s.length===2){let[f,T]=s;r.push({message:T.trim(),type:Kt(f),lineNum:0,linePos:0});continue}let[o,a,_,...n]=s,c=parseInt(_,10);isNaN(c)&&(c=0);let l=parseInt(a,10);isNaN(l)&&(l=0),r.push({message:n.join(":").trim(),type:Kt(o),lineNum:c,linePos:l})}return r}function Kt(e){let t=["warning","error","info"],r=e.toLowerCase();return t.includes(r)?r:"info"}var te=class extends Re.Shader{device;handle;constructor(t,r){switch(super(t,r),this.device=t,this.props.stage){case"vertex":this.handle=this.props.handle||this.device.gl.createShader(35633);break;case"fragment":this.handle=this.props.handle||this.device.gl.createShader(35632);break;default:throw new Error(this.props.stage)}this._compile(this.source)}destroy(){this.handle&&(this.removeStats(),this.device.gl.deleteShader(this.handle),this.destroyed=!0)}get asyncCompilationStatus(){return this._waitForCompilationComplete().then(()=>this.compilationStatus)}async getCompilationInfo(){return await this._waitForCompilationComplete(),this.getCompilationInfoSync()}getCompilationInfoSync(){let t=this.device.gl.getShaderInfoLog(this.handle);return t?Yt(t):[]}getTranslatedSource(){return this.device.getExtension("WEBGL_debug_shaders").WEBGL_debug_shaders?.getTranslatedShaderSource(this.handle)||null}async _compile(t){t=t.startsWith("#version ")?t:`#version 300 es
|
|
8
|
-
${t}`;let{gl:r}=this.device;if(r.shaderSource(this.handle,t),r.compileShader(this.handle),!this.device.props.debug){this.compilationStatus="pending";return}if(!this.device.features.has("compilation-status-async-webgl")){if(this._getCompilationStatus(),this.debugShader(),this.compilationStatus==="error")throw new Error(`GLSL compilation errors in ${this.props.stage} shader ${this.props.id}`);return}Re.log.once(1,"Shader compilation is asynchronous")(),await this._waitForCompilationComplete(),Re.log.info(2,`Shader ${this.id} - async compilation complete: ${this.compilationStatus}`)(),this._getCompilationStatus(),this.debugShader()}async _waitForCompilationComplete(){let t=async s=>await new Promise(o=>setTimeout(o,s));if(!this.device.features.has("compilation-status-async-webgl")){await t(10);return}let{gl:i}=this.device;for(;;){if(i.getShaderParameter(this.handle,37297))return;await t(10)}}_getCompilationStatus(){this.compilationStatus=this.device.gl.getShaderParameter(this.handle,35713)?"success":"error"}};var jt=E(S(),1);var $t=E(S(),1);function zt(e,t,r,i){if(Qt(t))return i(e);let s=e;s.pushState();try{return xe(e,t),F(s.gl,r),i(e)}finally{s.popState()}}function Zt(e,t,r){if(Qt(t))return r(e);let i=e;i.pushState();try{return xe(e,t),r(e)}finally{i.popState()}}function xe(e,t){let r=e,{gl:i}=r;if(t.cullMode)switch(t.cullMode){case"none":i.disable(2884);break;case"front":i.enable(2884),i.cullFace(1028);break;case"back":i.enable(2884),i.cullFace(1029);break}if(t.frontFace&&i.frontFace(Q("frontFace",t.frontFace,{ccw:2305,cw:2304})),t.unclippedDepth&&e.features.has("depth-clip-control")&&i.enable(34383),t.depthBias!==void 0&&(i.enable(32823),i.polygonOffset(t.depthBias,t.depthBiasSlopeScale||0)),t.provokingVertex&&e.features.has("provoking-vertex-webgl")){let o=r.getExtension("WEBGL_provoking_vertex").WEBGL_provoking_vertex,a=Q("provokingVertex",t.provokingVertex,{first:36429,last:36430});o?.provokingVertexWEBGL(a)}if((t.polygonMode||t.polygonOffsetLine)&&e.features.has("polygon-mode-webgl")){if(t.polygonMode){let o=r.getExtension("WEBGL_polygon_mode").WEBGL_polygon_mode,a=Q("polygonMode",t.polygonMode,{fill:6914,line:6913});o?.polygonModeWEBGL(1028,a),o?.polygonModeWEBGL(1029,a)}t.polygonOffsetLine&&i.enable(10754)}if(e.features.has("shader-clip-cull-distance-webgl")&&(t.clipDistance0&&i.enable(12288),t.clipDistance1&&i.enable(12289),t.clipDistance2&&i.enable(12290),t.clipDistance3&&i.enable(12291),t.clipDistance4&&i.enable(12292),t.clipDistance5&&i.enable(12293),t.clipDistance6&&i.enable(12294),t.clipDistance7&&i.enable(12295)),t.depthWriteEnabled!==void 0&&i.depthMask(li("depthWriteEnabled",t.depthWriteEnabled)),t.depthCompare&&(t.depthCompare!=="always"?i.enable(2929):i.disable(2929),i.depthFunc(De("depthCompare",t.depthCompare))),t.stencilWriteMask){let s=t.stencilWriteMask;i.stencilMaskSeparate(1028,s),i.stencilMaskSeparate(1029,s)}if(t.stencilReadMask&&$t.log.warn("stencilReadMask not supported under WebGL"),t.stencilCompare){let s=t.stencilReadMask||4294967295,o=De("depthCompare",t.stencilCompare);t.stencilCompare!=="always"?i.enable(2960):i.disable(2960),i.stencilFuncSeparate(1028,o,0,s),i.stencilFuncSeparate(1029,o,0,s)}if(t.stencilPassOperation&&t.stencilFailOperation&&t.stencilDepthFailOperation){let s=Le("stencilPassOperation",t.stencilPassOperation),o=Le("stencilFailOperation",t.stencilFailOperation),a=Le("stencilDepthFailOperation",t.stencilDepthFailOperation);i.stencilOpSeparate(1028,o,a,s),i.stencilOpSeparate(1029,o,a,s)}switch(t.blend){case!0:i.enable(3042);break;case!1:i.disable(3042);break;default:}if(t.blendColorOperation||t.blendAlphaOperation){let s=mt("blendColorOperation",t.blendColorOperation||"add"),o=mt("blendAlphaOperation",t.blendAlphaOperation||"add");i.blendEquationSeparate(s,o);let a=ue("blendColorSrcFactor",t.blendColorSrcFactor||"one"),_=ue("blendColorDstFactor",t.blendColorDstFactor||"zero"),n=ue("blendAlphaSrcFactor",t.blendAlphaSrcFactor||"one"),c=ue("blendAlphaDstFactor",t.blendAlphaDstFactor||"zero");i.blendFuncSeparate(a,_,n,c)}}function De(e,t){return Q(e,t,{never:512,less:513,equal:514,"less-equal":515,greater:516,"not-equal":517,"greater-equal":518,always:519})}function Le(e,t){return Q(e,t,{keep:7680,zero:0,replace:7681,invert:5386,"increment-clamp":7682,"decrement-clamp":7683,"increment-wrap":34055,"decrement-wrap":34056})}function mt(e,t){return Q(e,t,{add:32774,subtract:32778,"reverse-subtract":32779,min:32775,max:32776})}function ue(e,t){return Q(e,t,{one:1,zero:0,"src-color":768,"one-minus-src-color":769,"dst-color":774,"one-minus-dst-color":775,"src-alpha":770,"one-minus-src-alpha":771,"dst-alpha":772,"one-minus-dst-alpha":773,"src-alpha-saturated":776,"constant-color":32769,"one-minus-constant-color":32770,"constant-alpha":32771,"one-minus-constant-alpha":32772})}function ci(e,t){return`Illegal parameter ${t} for ${e}`}function Q(e,t,r){if(!(t in r))throw new Error(ci(e,t));return r[t]}function li(e,t){return t}function Qt(e){let t=!0;for(let r in e){t=!1;break}return t}function Ue(e){let t={};return e.addressModeU&&(t[10242]=Ge(e.addressModeU)),e.addressModeV&&(t[10243]=Ge(e.addressModeV)),e.addressModeW&&(t[32882]=Ge(e.addressModeW)),e.magFilter&&(t[10240]=et(e.magFilter)),(e.minFilter||e.mipmapFilter)&&(t[10241]=fi(e.minFilter||"linear",e.mipmapFilter)),e.lodMinClamp!==void 0&&(t[33082]=e.lodMinClamp),e.lodMaxClamp!==void 0&&(t[33083]=e.lodMaxClamp),e.type==="comparison-sampler"&&(t[34892]=34894),e.compare&&(t[34893]=De("compare",e.compare)),e.maxAnisotropy&&(t[34046]=e.maxAnisotropy),t}function Ge(e){switch(e){case"clamp-to-edge":return 33071;case"repeat":return 10497;case"mirror-repeat":return 33648}}function et(e){switch(e){case"nearest":return 9728;case"linear":return 9729}}function fi(e,t="none"){if(!t)return et(e);switch(t){case"none":return et(e);case"nearest":return e==="nearest"?9984:9986;case"linear":return e==="nearest"?9985:9987}}var W=class extends jt.Sampler{device;handle;parameters;constructor(t,r){super(t,r),this.device=t,this.parameters=Ue(r),this.handle=this.handle||this.device.gl.createSampler(),this._setSamplerParameters(this.parameters)}destroy(){this.handle&&(this.device.gl.deleteSampler(this.handle),this.handle=void 0)}toString(){return`Sampler(${this.id},${JSON.stringify(this.props)})`}_setSamplerParameters(t){for(let[r,i]of Object.entries(t)){let s=Number(r);switch(s){case 33082:case 33083:this.device.gl.samplerParameterf(this.handle,s,i);break;default:this.device.gl.samplerParameteri(this.handle,s,i);break}}}};var C=E(S(),1);function P(e,t,r){if(Ti(t))return r(e);let{nocatch:i=!0}=t,s=M.get(e);s.push(),F(e,t);let o;if(i)o=r(e),s.pop();else try{o=r(e)}finally{s.pop()}return o}function Ti(e){for(let t in e)return!1;return!0}var ye=E(S(),1),v=class extends ye.TextureView{device;gl;handle;texture;constructor(t,r){super(t,{...ye.Texture.defaultProps,...r}),this.device=t,this.gl=this.device.gl,this.handle=null,this.texture=r.texture}};var Gt=E(S(),1);var Ri="Failed to deduce GL constant from typed array";function qt(e){switch(ArrayBuffer.isView(e)?e.constructor:e){case Float32Array:return 5126;case Uint16Array:return 5123;case Uint32Array:return 5125;case Uint8Array:return 5121;case Uint8ClampedArray:return 5121;case Int8Array:return 5120;case Int16Array:return 5122;case Int32Array:return 5124;default:throw new Error(Ri)}}function Jt(e,t){let{clamped:r=!0}=t||{};switch(e){case 5126:return Float32Array;case 5123:case 33635:case 32819:case 32820:return Uint16Array;case 5125:return Uint32Array;case 5121:return r?Uint8ClampedArray:Uint8Array;case 5120:return Int8Array;case 5122:return Int16Array;case 5124:return Int32Array;default:throw new Error("Failed to deduce typed array type from GL constant")}}function tt(e){switch(e){case 6406:case 33326:case 6403:case 36244:return 1;case 33339:case 33340:case 33328:case 33320:case 33319:return 2;case 6407:case 36248:case 34837:return 3;case 6408:case 36249:case 34836:return 4;default:return 0}}function Lt(e){switch(e){case 5121:return 1;case 33635:case 32819:case 32820:return 2;case 5126:return 4;default:return 0}}function er(e,t,r){let{dimension:i,width:s,height:o,depth:a=0}=r,{glInternalFormat:_}=r,n=r.glTarget;switch(i){case"2d-array":case"3d":e.texStorage3D(n,t,_,s,o,a);break;default:e.texStorage2D(n,t,_,s,o)}}function rt(e,t,r,i){let{width:s,height:o}=i,{dimension:a,depth:_=0,mipLevel:n=0}=i,{x:c=0,y:l=0,z:f=0}=i,{glFormat:T,glType:R}=i,d=rr(i.glTarget,a,_),h=i.flipY?{[37440]:!0}:{};P(e,h,()=>{switch(a){case"2d-array":case"3d":e.bindTexture(d,t),e.texSubImage3D(d,n,c,l,f,s,o,_,T,R,r),e.bindTexture(d,null);break;case"2d":case"cube":e.bindTexture(d,t),e.texSubImage2D(d,n,c,l,s,o,T,R,r),e.bindTexture(d,null);break;default:throw new Error(a)}})}function it(e,t,r){let{dimension:i,width:s,height:o,depth:a=0,mipLevel:_=0,byteOffset:n=0}=r,{x:c=0,y:l=0,z:f=0}=r,{glFormat:T,glType:R,compressed:d}=r,h=rr(r.glTarget,i,a);switch(i){case"2d-array":case"3d":d?e.compressedTexSubImage3D(h,_,c,l,f,s,o,a,T,t,n):e.texSubImage3D(h,_,c,l,f,s,o,a,T,R,t,n);break;case"2d":case"cube":d?e.compressedTexSubImage2D(h,_,c,l,s,o,T,t,n):e.texSubImage2D(h,_,c,l,s,o,T,R,t,n);break;default:throw new Error(i)}}function tr(e){switch(e){case"1d":break;case"2d":return 3553;case"3d":return 32879;case"cube":return 34067;case"2d-array":return 35866;case"cube-array":break}throw new Error(e)}function rr(e,t,r){return t==="cube"?34069+r:e}function ir(e,t){let{sourceX:r=0,sourceY:i=0,sourceAttachment:s=0}=t||{},{target:o=null,sourceWidth:a,sourceHeight:_,sourceDepth:n,sourceFormat:c,sourceType:l}=t||{},{framebuffer:f,deleteFramebuffer:T}=or(e),{gl:R,handle:d}=f;a||=f.width,_||=f.height;let h=f.colorAttachments[s]?.texture;if(!h)throw new Error(`Invalid framebuffer attachment ${s}`);n=h?.depth||1,c||=h?.glFormat||6408,l||=h?.glType||5121,o=di(o,l,c,a,_,n),l=l||qt(o);let H=R.bindFramebuffer(36160,d);return R.readBuffer(36064+s),R.readPixels(r,i,a,_,c,l,o),R.readBuffer(36064),R.bindFramebuffer(36160,H||null),T&&f.destroy(),o}function sr(e,t){let{target:r,sourceX:i=0,sourceY:s=0,sourceFormat:o=6408,targetByteOffset:a=0}=t||{},{sourceWidth:_,sourceHeight:n,sourceType:c}=t||{},{framebuffer:l,deleteFramebuffer:f}=or(e);_=_||l.width,n=n||l.height;let T=l;c=c||5121;let R=r;if(!R){let h=tt(o),H=Lt(c),N=a+_*n*h*H;R=T.device.createBuffer({byteLength:N})}let d=e.device.createCommandEncoder();return d.copyTextureToBuffer({sourceTexture:e,width:_,height:n,origin:[i,s],destinationBuffer:R,byteOffset:a}),d.destroy(),f&&l.destroy(),R}function or(e){return e instanceof Gt.Framebuffer?{framebuffer:e,deleteFramebuffer:!1}:{framebuffer:Ai(e),deleteFramebuffer:!0}}function Ai(e,t){let{device:r,width:i,height:s,id:o}=e;return r.createFramebuffer({...t,id:`framebuffer-for-${o}`,width:i,height:s,colorAttachments:[e]})}function di(e,t,r,i,s,o){if(e)return e;t||=5121;let a=Jt(t,{clamped:!1}),_=tt(r);return new a(i*s*_)}var x=class extends C.Texture{device;gl;handle;sampler=void 0;view=void 0;mipmaps;compressed;glTarget;glFormat;glType;glInternalFormat;textureUnit=0;constructor(t,r){super(t,r);let i={...this.props};i.data=r.data,this.device=t,this.gl=this.device.gl,this.glTarget=tr(this.props.dimension);let s=Ne(this.props.format);this.glInternalFormat=s.internalFormat,this.glFormat=s.format,this.glType=s.type,this.compressed=s.compressed,this.mipmaps=Boolean(this.props.mipmaps),this._initialize(i),Object.seal(this)}_initialize(t){this.handle=this.props.handle||this.gl.createTexture(),this.device.setSpectorMetadata(this.handle,{...this.props,data:t.data});let{width:r,height:i}=t;if(!r||!i){let s=C.Texture.getTextureDataSize(t.data);r=s?.width||1,i=s?.height||1}if(this.width=r,this.height=i,this.depth=t.depth,this.setSampler(t.sampler),this.view=new v(this.device,{...this.props,texture:this}),this.bind(),er(this.gl,this.mipLevels,this),t.data)switch(t.dimension){case"1d":this.setTexture1DData(t.data);break;case"2d":this.setTexture2DData(t.data);break;case"3d":this.setTexture3DData(t.data);break;case"cube":this.setTextureCubeData(t.data);break;case"2d-array":this.setTextureArrayData(t.data);break;case"cube-array":this.setTextureCubeArrayData(t.data);break;default:throw new Error(t.dimension)}this.mipmaps&&this.generateMipmap()}destroy(){this.handle&&(this.gl.deleteTexture(this.handle),this.removeStats(),this.trackDeallocatedMemory("Texture"),this.destroyed=!0)}createView(t){return new v(this.device,{...t,texture:this})}setSampler(t={}){let r;t instanceof W?(this.sampler=t,r=t.props):(this.sampler=new W(this.device,t),r=t);let i=Ue(r);this._setSamplerParameters(i)}generateMipmap(t={}){(!this.device.isTextureFormatRenderable(this.props.format)||!this.device.isTextureFormatFilterable(this.props.format))&&C.log.warn(`${this} is not renderable or filterable, may not be able to generate mipmaps`)();try{this.gl.bindTexture(this.glTarget,this.handle),P(this.gl,t,()=>{this.gl.generateMipmap(this.glTarget)})}catch(r){C.log.warn(`Error generating mipmap for ${this}: ${r.message}`)()}finally{this.gl.bindTexture(this.glTarget,null)}}copyExternalImage(t){let r=C.Texture.getExternalImageSize(t.image),i={...C.Texture.defaultCopyExternalImageOptions,...r,...t},{image:s,depth:o,mipLevel:a,x:_,y:n,z:c,flipY:l}=i,{width:f,height:T}=i,{dimension:R,glTarget:d,glFormat:h,glInternalFormat:H,glType:N}=this;if(f=Math.min(f,r.width-_),T=Math.min(T,r.height-n),t.sourceX||t.sourceY)throw new Error("WebGL does not support sourceX/sourceY)");return rt(this.device.gl,this.handle,s,{dimension:R,mipLevel:a,x:_,y:n,z:c,width:f,height:T,depth:o,glFormat:h,glInternalFormat:H,glType:N,glTarget:d,flipY:l}),{width:i.width,height:i.height}}setTexture1DData(t){throw new Error("setTexture1DData not supported in WebGL.")}setTexture2DData(t,r=0){this.bind();let i=C.Texture.normalizeTextureData(t,this);i.length>1&&this.props.mipmaps!==!1&&C.log.warn(`Texture ${this.id} mipmap and multiple LODs.`)();for(let s=0;s<i.length;s++){let o=i[s];this._setMipLevel(r,s,o)}this.unbind()}setTexture3DData(t){if(this.props.dimension!=="3d")throw new Error(this.id);ArrayBuffer.isView(t)&&(this.bind(),it(this.device.gl,t,this),this.unbind())}setTextureCubeData(t,r=0){if(this.props.dimension!=="cube")throw new Error(this.id);for(let i of C.Texture.CubeFaces)this.setTextureCubeFaceData(t[i],i)}setTextureArrayData(t){throw this.props.dimension!=="2d-array"?new Error(this.id):new Error("setTextureArrayData not implemented.")}setTextureCubeArrayData(t){throw new Error("setTextureCubeArrayData not supported in WebGL2.")}setTextureCubeFaceData(t,r,i=0){Array.isArray(t)&&t.length>1&&this.props.mipmaps!==!1&&C.log.warn(`${this.id} has mipmap and multiple LODs.`)();let s=C.Texture.CubeFaces.indexOf(r);this.setTexture2DData(t,s)}update(){throw new Error("Texture.update() not implemented. Use ExternalTexture")}setImageDataForFace(t){let{face:r,width:i,height:s,pixels:o,data:a,format:_=6408,type:n=5121}=t,{gl:c}=this,l=o||a;this.bind(),l instanceof Promise?l.then(f=>this.setImageDataForFace(Object.assign({},t,{face:r,data:f,pixels:f}))):this.width||this.height?c.texImage2D(r,0,_,i,s,0,_,n,l):c.texImage2D(r,0,_,_,n,l)}_getImageDataMap(t){for(let r=0;r<C.Texture.CubeFaces.length;++r){let i=C.Texture.CubeFaces[r];t[i]&&(t[34069+r]=t[i],delete t[i])}return t}_setSamplerParameters(t){C.log.log(1,`${this.id} sampler parameters`,this.device.getGLKeys(t))(),this.gl.bindTexture(this.glTarget,this.handle);for(let[r,i]of Object.entries(t)){let s=Number(r),o=i;switch(s){case 33082:case 33083:this.gl.texParameterf(this.glTarget,s,o);break;case 10241:this.gl.texParameteri(this.glTarget,s,o);break;case 10242:case 10243:this.gl.texParameteri(this.glTarget,s,o);break;case 34046:this.device.features.has("texture-filterable-anisotropic-webgl")&&this.gl.texParameteri(this.glTarget,s,o);break;default:this.gl.texParameteri(this.glTarget,s,o);break}}this.gl.bindTexture(this.glTarget,null)}_setMipLevel(t,r,i,s=this.glTarget){if(C.Texture.isExternalImage(i)){rt(this.device.gl,this.handle,i,{...this,depth:t,mipLevel:r,glTarget:s,flipY:this.props.flipY});return}if(C.Texture.isTextureLevelData(i)){it(this.device.gl,i.data,{...this,depth:t,mipLevel:r,glTarget:s});return}throw new Error("Texture: invalid image data")}getActiveUnit(){return this.gl.getParameter(34016)-33984}bind(t){let{gl:r}=this;return t!==void 0&&(this.textureUnit=t,r.activeTexture(33984+t)),r.bindTexture(this.glTarget,this.handle),t}unbind(t){let{gl:r}=this;return t!==void 0&&(this.textureUnit=t,r.activeTexture(33984+t)),r.bindTexture(this.glTarget,null),t}};var ar=E(S(),1);var Si=[1,2,4,8],re=class extends ar.RenderPass{device;glParameters;constructor(t,r){super(t,r),this.device=t;let i;if(!r?.parameters?.viewport)if(r?.framebuffer){let{width:s,height:o}=r.framebuffer;i=[0,0,s,o]}else{let[s,o]=t.getCanvasContext().getDrawingBufferSize();i=[0,0,s,o]}if(this.device.pushState(),this.setParameters({viewport:i,...this.props.parameters}),this.props.framebuffer){let s=this.props.framebuffer.colorAttachments.map((o,a)=>36064+a);this.device.gl.drawBuffers(s)}else this.device.gl.drawBuffers([1029]);this.clear()}end(){this.device.popState()}pushDebugGroup(t){}popDebugGroup(){}insertDebugMarker(t){}setParameters(t={}){let r={...this.glParameters};r.framebuffer=this.props.framebuffer||null,this.props.depthReadOnly&&(r.depthMask=!this.props.depthReadOnly),r.stencilMask=this.props.stencilReadOnly?0:1,r[35977]=this.props.discard,t.viewport&&(t.viewport.length>=6?(r.viewport=t.viewport.slice(0,4),r.depthRange=[t.viewport[4],t.viewport[5]]):r.viewport=t.viewport),t.scissorRect&&(r.scissorTest=!0,r.scissor=t.scissorRect),t.blendConstant&&(r.blendColor=t.blendConstant),t.stencilReference&&(console.warn("RenderPassParameters.stencilReference not yet implemented in WebGL"),t[2967]=t.stencilReference),t.colorMask&&(r.colorMask=Si.map(i=>Boolean(i&t.colorMask))),this.glParameters=r,F(this.device.gl,r)}beginOcclusionQuery(t){this.props.occlusionQuerySet?.beginOcclusionQuery()}endOcclusionQuery(){this.props.occlusionQuerySet?.endOcclusionQuery()}clear(){let t=[0,0,0,1],r=1,i=0,s={...this.glParameters},o=0;if(this.props.clearColors&&this.props.clearColors.forEach((a,_)=>{a&&this.clearColorBuffer(_,a)}),this.props.clearColor!==!1&&this.props.clearColors===void 0){o|=16384;let a=this.props.clearColor===!0?t:this.props.clearColor;s.clearColor=a}this.props.clearDepth!==!1&&(o|=256,s.clearDepth=this.props.clearDepth===!0?r:this.props.clearDepth),this.props.clearStencil!==!1&&(o|=1024,s.clearStencil=this.props.clearStencil===!0?i:this.props.clearStencil),o!==0&&P(this.device.gl,s,()=>{this.device.gl.clear(o)})}clearColorBuffer(t=0,r=[0,0,0,0]){P(this.device.gl,{framebuffer:this.props.framebuffer},()=>{switch(r.constructor){case Int8Array:case Int16Array:case Int32Array:this.device.gl.clearBufferiv(6144,t,r);break;case Uint8Array:case Uint8ClampedArray:case Uint16Array:case Uint32Array:this.device.gl.clearBufferuiv(6144,t,r);break;case Float32Array:this.device.gl.clearBufferfv(6144,t,r);break;default:throw new Error("clearColorBuffer: color must be typed array")}})}};var p=E(S(),1);function _r(e){return Ei.includes(e)}var Ei=[35678,35680,35679,35682,36289,36292,36293,36298,36299,36300,36303,36306,36307,36308,36311],nr={[5126]:[5126,1,"float","f32","float32"],[35664]:[5126,2,"vec2","vec2<f32>","float32x2"],[35665]:[5126,3,"vec3","vec3<f32>","float32x3"],[35666]:[5126,4,"vec4","vec4<f32>","float32x4"],[5124]:[5124,1,"int","i32","sint32"],[35667]:[5124,2,"ivec2","vec2<i32>","sint32x2"],[35668]:[5124,3,"ivec3","vec3<i32>","sint32x3"],[35669]:[5124,4,"ivec4","vec4<i32>","sint32x4"],[5125]:[5125,1,"uint","u32","uint32"],[36294]:[5125,2,"uvec2","vec2<u32>","uint32x2"],[36295]:[5125,3,"uvec3","vec3<u32>","uint32x3"],[36296]:[5125,4,"uvec4","vec4<u32>","uint32x4"],[35670]:[5126,1,"bool","f32","float32"],[35671]:[5126,2,"bvec2","vec2<f32>","float32x2"],[35672]:[5126,3,"bvec3","vec3<f32>","float32x3"],[35673]:[5126,4,"bvec4","vec4<f32>","float32x4"],[35674]:[5126,8,"mat2","mat2x2<f32>"],[35685]:[5126,8,"mat2x3","mat2x3<f32>"],[35686]:[5126,8,"mat2x4","mat2x4<f32>"],[35687]:[5126,12,"mat3x2","mat3x2<f32>"],[35675]:[5126,12,"mat3","mat3x3<f32>"],[35688]:[5126,12,"mat3x4","mat3x4<f32>"],[35689]:[5126,16,"mat4x2","mat4x2<f32>"],[35690]:[5126,16,"mat4x3","mat4x3<f32>"],[35676]:[5126,16,"mat4","mat4x4<f32>"]};function st(e){let t=nr[e];if(!t)throw new Error("uniform");let[r,i,,s]=t;return{format:s,components:i,glType:r}}function cr(e){let t=nr[e];if(!t)throw new Error("attribute");let[,r,,i,s]=t;return{attributeType:i,vertexFormat:s,components:r}}function we(e,t){let r={attributes:[],bindings:[]};r.attributes=hi(e,t);let i=pi(e,t);for(let _ of i){let n=_.uniforms.map(c=>({name:c.name,format:c.format,byteOffset:c.byteOffset,byteStride:c.byteStride,arrayLength:c.arrayLength}));r.bindings.push({type:"uniform",name:_.name,location:_.location,visibility:(_.vertex?1:0)&(_.fragment?2:0),minBindingSize:_.byteLength,uniforms:n})}let s=bi(e,t),o=0;for(let _ of s)if(_r(_.type)){let{viewDimension:n,sampleType:c}=Ii(_.type);r.bindings.push({type:"texture",name:_.name,location:o,viewDimension:n,sampleType:c}),_.textureUnit=o,o+=1}s.length&&(r.uniforms=s);let a=gi(e,t);return a?.length&&(r.varyings=a),r}function hi(e,t){let r=[],i=e.getProgramParameter(t,35721);for(let s=0;s<i;s++){let o=e.getActiveAttrib(t,s);if(!o)throw new Error("activeInfo");let{name:a,type:_}=o,n=e.getAttribLocation(t,a);if(n>=0){let{attributeType:c}=cr(_),l=/instance/i.test(a)?"instance":"vertex";r.push({name:a,location:n,stepMode:l,type:c})}}return r.sort((s,o)=>s.location-o.location),r}function gi(e,t){let r=[],i=e.getProgramParameter(t,35971);for(let s=0;s<i;s++){let o=e.getTransformFeedbackVarying(t,s);if(!o)throw new Error("activeInfo");let{name:a,type:_,size:n}=o,{glType:c,components:l}=st(_),f={location:s,name:a,type:c,size:n*l};r.push(f)}return r.sort((s,o)=>s.location-o.location),r}function bi(e,t){let r=[],i=e.getProgramParameter(t,35718);for(let s=0;s<i;s++){let o=e.getActiveUniform(t,s);if(!o)throw new Error("activeInfo");let{name:a,size:_,type:n}=o,{name:c,isArray:l}=Ni(a),f=e.getUniformLocation(t,c),T={location:f,name:c,size:_,type:n,isArray:l};if(r.push(T),T.size>1)for(let R=0;R<T.size;R++){let d=`${c}[${R}]`;f=e.getUniformLocation(t,d);let h={...T,name:d,location:f};r.push(h)}}return r}function pi(e,t){let r=(o,a)=>e.getActiveUniformBlockParameter(t,o,a),i=[],s=e.getProgramParameter(t,35382);for(let o=0;o<s;o++){let a={name:e.getActiveUniformBlockName(t,o)||"",location:r(o,35391),byteLength:r(o,35392),vertex:r(o,35396),fragment:r(o,35398),uniformCount:r(o,35394),uniforms:[]},_=r(o,35395)||[],n=e.getActiveUniforms(t,_,35383),c=e.getActiveUniforms(t,_,35384),l=e.getActiveUniforms(t,_,35387),f=e.getActiveUniforms(t,_,35388);for(let T=0;T<a.uniformCount;++T){let R=e.getActiveUniform(t,_[T]);if(!R)throw new Error("activeInfo");a.uniforms.push({name:R.name,format:st(n[T]).format,type:n[T],arrayLength:c[T],byteOffset:l[T],byteStride:f[T]})}i.push(a)}return i.sort((o,a)=>o.location-a.location),i}var Ci={[35678]:["2d","float"],[35680]:["cube","float"],[35679]:["3d","float"],[35682]:["3d","depth"],[36289]:["2d-array","float"],[36292]:["2d-array","depth"],[36293]:["cube","float"],[36298]:["2d","sint"],[36299]:["3d","sint"],[36300]:["cube","sint"],[36303]:["2d-array","uint"],[36306]:["2d","uint"],[36307]:["3d","uint"],[36308]:["cube","uint"],[36311]:["2d-array","uint"]};function Ii(e){let t=Ci[e];if(!t)throw new Error("sampler");let[r,i]=t;return{viewDimension:r,sampleType:i}}function Ni(e){if(e[e.length-1]!=="]")return{name:e,length:1,isArray:!1};let r=/([^[]*)(\[[0-9]+\])?/.exec(e);if(!r||r.length<2)throw new Error(`Failed to parse GLSL uniform name ${e}`);return{name:r[1],length:r[2]?1:0,isArray:Boolean(r[2])}}function lr(e,t,r,i){let s=e,o=i;o===!0&&(o=1),o===!1&&(o=0);let a=typeof o=="number"?[o]:o;switch(r){case 35678:case 35680:case 35679:case 35682:case 36289:case 36292:case 36293:case 36298:case 36299:case 36300:case 36303:case 36306:case 36307:case 36308:case 36311:if(typeof i!="number")throw new Error("samplers must be set to integers");return e.uniform1i(t,i);case 5126:return e.uniform1fv(t,a);case 35664:return e.uniform2fv(t,a);case 35665:return e.uniform3fv(t,a);case 35666:return e.uniform4fv(t,a);case 5124:return e.uniform1iv(t,a);case 35667:return e.uniform2iv(t,a);case 35668:return e.uniform3iv(t,a);case 35669:return e.uniform4iv(t,a);case 35670:return e.uniform1iv(t,a);case 35671:return e.uniform2iv(t,a);case 35672:return e.uniform3iv(t,a);case 35673:return e.uniform4iv(t,a);case 5125:return s.uniform1uiv(t,a,1);case 36294:return s.uniform2uiv(t,a,2);case 36295:return s.uniform3uiv(t,a,3);case 36296:return s.uniform4uiv(t,a,4);case 35674:return e.uniformMatrix2fv(t,!1,a);case 35675:return e.uniformMatrix3fv(t,!1,a);case 35676:return e.uniformMatrix4fv(t,!1,a);case 35685:return s.uniformMatrix2x3fv(t,!1,a);case 35686:return s.uniformMatrix2x4fv(t,!1,a);case 35687:return s.uniformMatrix3x2fv(t,!1,a);case 35688:return s.uniformMatrix3x4fv(t,!1,a);case 35689:return s.uniformMatrix4x2fv(t,!1,a);case 35690:return s.uniformMatrix4x3fv(t,!1,a)}throw new Error("Illegal uniform")}function fr(e){return ArrayBuffer.isView(e)&&!(e instanceof DataView)}function Tr(e){return Array.isArray(e)?e.length===0||typeof e[0]=="number":!1}function ot(e){return fr(e)||Tr(e)}function Oi(e){return ot(e)!==null||typeof e=="number"||typeof e=="boolean"}function Rr(e){let t={bindings:{},uniforms:{}};return Object.keys(e).forEach(r=>{let i=e[r];Oi(i)?t.uniforms[r]=i:t.bindings[r]=i}),t}function Ar(e){switch(e){case"point-list":return 0;case"line-list":return 1;case"line-strip":return 3;case"triangle-list":return 4;case"triangle-strip":return 5;default:throw new Error(e)}}function dr(e){switch(e){case"point-list":return 0;case"line-list":return 1;case"line-strip":return 1;case"triangle-list":return 4;case"triangle-strip":return 4;default:throw new Error(e)}}var Sr=4,ie=class extends p.RenderPipeline{device;handle;vs;fs;introspectedLayout;uniforms={};bindings={};varyings=null;_uniformCount=0;_uniformSetters={};constructor(t,r){super(t,r),this.device=t,this.handle=this.props.handle||this.device.gl.createProgram(),this.device.setSpectorMetadata(this.handle,{id:this.props.id}),this.vs=r.vs,this.fs=r.fs;let{varyings:i,bufferMode:s=35981}=r;i&&i.length>0&&(this.varyings=i,this.device.gl.transformFeedbackVaryings(this.handle,i,s)),this._linkShaders(),p.log.time(1,`RenderPipeline ${this.id} - shaderLayout introspection`)(),this.introspectedLayout=we(this.device.gl,this.handle),p.log.timeEnd(1,`RenderPipeline ${this.id} - shaderLayout introspection`)(),this.shaderLayout=Fi(this.introspectedLayout,r.shaderLayout)}destroy(){this.handle&&(this.device.gl.deleteProgram(this.handle),this.destroyed=!0)}setBindings(t,r){for(let[i,s]of Object.entries(t)){let o=this.shaderLayout.bindings.find(a=>a.name===i)||this.shaderLayout.bindings.find(a=>a.name===`${i}Uniforms`);if(!o){let a=this.shaderLayout.bindings.map(_=>`"${_.name}"`).join(", ");r?.disableWarnings||p.log.warn(`No binding "${i}" in render pipeline "${this.id}", expected one of ${a}`,s)();continue}switch(s||p.log.warn(`Unsetting binding "${i}" in render pipeline "${this.id}"`)(),o.type){case"uniform":if(!(s instanceof D)&&!(s.buffer instanceof D))throw new Error("buffer value");break;case"texture":if(!(s instanceof v||s instanceof x||s instanceof u))throw new Error("texture value");break;case"sampler":p.log.warn(`Ignoring sampler ${i}`)();break;default:throw new Error(o.type)}this.bindings[i]=s}}draw(t){let{renderPass:r,parameters:i=this.props.parameters,topology:s=this.props.topology,vertexArray:o,vertexCount:a,instanceCount:_,isInstanced:n=!1,firstVertex:c=0,transformFeedback:l}=t,f=Ar(s),T=Boolean(o.indexBuffer),R=o.indexBuffer?.glIndexType;if(this.linkStatus!=="success")return p.log.info(2,`RenderPipeline:${this.id}.draw() aborted - waiting for shader linking`)(),!1;if(!this._areTexturesRenderable())return p.log.info(2,`RenderPipeline:${this.id}.draw() aborted - textures not yet loaded`)(),!1;this.device.gl.useProgram(this.handle),o.bindBeforeRender(r),l&&l.begin(this.props.topology),this._applyBindings(),this._applyUniforms();let d=r;return zt(this.device,i,d.glParameters,()=>{T&&n?this.device.gl.drawElementsInstanced(f,a||0,R,c,_||0):T?this.device.gl.drawElements(f,a||0,R,c):n?this.device.gl.drawArraysInstanced(f,c,a||0,_||0):this.device.gl.drawArrays(f,c,a||0),l&&l.end()}),o.unbindAfterRender(r),!0}setUniformsWebGL(t){let{bindings:r}=Rr(t);Object.keys(r).forEach(i=>{p.log.warn(`Unsupported value "${JSON.stringify(r[i])}" used in setUniforms() for key ${i}. Use setBindings() instead?`)()}),Object.assign(this.uniforms,t)}async _linkShaders(){let{gl:t}=this.device;if(t.attachShader(this.handle,this.vs.handle),t.attachShader(this.handle,this.fs.handle),p.log.time(Sr,`linkProgram for ${this.id}`)(),t.linkProgram(this.handle),p.log.timeEnd(Sr,`linkProgram for ${this.id}`)(),p.log.level,!this.device.features.has("compilation-status-async-webgl")){let i=this._getLinkStatus();this._reportLinkStatus(i);return}p.log.once(1,"RenderPipeline linking is asynchronous")(),await this._waitForLinkComplete(),p.log.info(2,`RenderPipeline ${this.id} - async linking complete: ${this.linkStatus}`)();let r=this._getLinkStatus();this._reportLinkStatus(r)}async _reportLinkStatus(t){switch(t){case"success":return;default:switch(this.vs.compilationStatus){case"error":throw this.vs.debugShader(),new Error(`Error during compilation of shader ${this.vs.id}`);case"pending":this.vs.asyncCompilationStatus.then(()=>this.vs.debugShader());break;case"success":break}switch(this.fs?.compilationStatus){case"error":throw this.fs.debugShader(),new Error(`Error during compilation of shader ${this.fs.id}`);case"pending":this.fs.asyncCompilationStatus.then(()=>this.fs.debugShader());break;case"success":break}let r=this.device.gl.getProgramInfoLog(this.handle);throw new Error(`Error during ${t}: ${r}`)}}_getLinkStatus(){let{gl:t}=this.device;return t.getProgramParameter(this.handle,35714)?(t.validateProgram(this.handle),t.getProgramParameter(this.handle,35715)?(this.linkStatus="success","success"):(this.linkStatus="error","validation")):(this.linkStatus="error","linking")}async _waitForLinkComplete(){let t=async s=>await new Promise(o=>setTimeout(o,s));if(!this.device.features.has("compilation-status-async-webgl")){await t(10);return}let{gl:i}=this.device;for(;;){if(i.getProgramParameter(this.handle,37297))return;await t(10)}}_areTexturesRenderable(){let t=!0;for(let r of this.shaderLayout.bindings)!this.bindings[r.name]&&!this.bindings[r.name.replace(/Uniforms$/,"")]&&(p.log.warn(`Binding ${r.name} not found in ${this.id}`)(),t=!1);return t}_applyBindings(){if(this.linkStatus!=="success")return;let{gl:t}=this.device;t.useProgram(this.handle);let r=0,i=0;for(let s of this.shaderLayout.bindings){let o=this.bindings[s.name]||this.bindings[s.name.replace(/Uniforms$/,"")];if(!o)throw new Error(`No value for binding ${s.name} in ${this.id}`);switch(s.type){case"uniform":let{name:a}=s,_=t.getUniformBlockIndex(this.handle,a);if(_===4294967295)throw new Error(`Invalid uniform block name ${a}`);t.uniformBlockBinding(this.handle,i,_),o instanceof D?t.bindBufferBase(35345,i,o.handle):t.bindBufferRange(35345,i,o.buffer.handle,o.offset||0,o.size||o.buffer.byteLength-o.offset),i+=1;break;case"texture":if(!(o instanceof v||o instanceof x||o instanceof u))throw new Error("texture");let n;if(o instanceof v)n=o.texture;else if(o instanceof x)n=o;else if(o instanceof u&&o.colorAttachments[0]instanceof v)p.log.warn("Passing framebuffer in texture binding may be deprecated. Use fbo.colorAttachments[0] instead")(),n=o.colorAttachments[0].texture;else throw new Error("No texture");t.activeTexture(33984+r),t.bindTexture(n.glTarget,n.handle),r+=1;break;case"sampler":break;case"storage":case"read-only-storage":throw new Error(`binding type '${s.type}' not supported in WebGL`)}}}_applyUniforms(){for(let t of this.shaderLayout.uniforms||[]){let{name:r,location:i,type:s,textureUnit:o}=t,a=this.uniforms[r]??o;a!==void 0&&lr(this.device.gl,i,s,a)}}};function Fi(e,t){let r={...e,attributes:e.attributes.map(i=>({...i}))};for(let i of t?.attributes||[]){let s=r.attributes.find(o=>o.name===i.name);s?(s.type=i.type||s.type,s.stepMode=i.stepMode||s.stepMode):p.log.warn(`shader layout attribute ${i.name} not present in shader`)}return r}var hr=E(S(),1);var ve=E(S(),1);var Xe=class extends ve.CommandBuffer{device;commands=[];constructor(t){super(t,{}),this.device=t}submitCommands(t=this.commands){for(let r of t)switch(r.name){case"copy-buffer-to-buffer":Mi(this.device,r.options);break;case"copy-buffer-to-texture":Bi(this.device,r.options);break;case"copy-texture-to-buffer":Pi(this.device,r.options);break;case"copy-texture-to-texture":ui(this.device,r.options);break;default:throw new Error(r.name)}}};function Mi(e,t){let r=t.sourceBuffer,i=t.destinationBuffer;e.gl.bindBuffer(36662,r.handle),e.gl.bindBuffer(36663,i.handle),e.gl.copyBufferSubData(36662,36663,t.sourceOffset??0,t.destinationOffset??0,t.size),e.gl.bindBuffer(36662,null),e.gl.bindBuffer(36663,null)}function Bi(e,t){throw new Error("Not implemented")}function Pi(e,t){let{sourceTexture:r,mipLevel:i=0,aspect:s="all",width:o=t.sourceTexture.width,height:a=t.sourceTexture.height,depthOrArrayLayers:_=0,origin:n=[0,0],destinationBuffer:c,byteOffset:l=0,bytesPerRow:f,rowsPerImage:T}=t;if(s!=="all")throw new Error("aspect not supported in WebGL");if(i!==0||_!==0||f||T)throw new Error("not implemented");let{framebuffer:R,destroyFramebuffer:d}=Er(r),h;try{let H=c,N=o||R.width,j=a||R.height,_t=Ne(R.colorAttachments[0].texture.props.format),Br=_t.format,Pr=_t.type;e.gl.bindBuffer(35051,H.handle),h=e.gl.bindFramebuffer(36160,R.handle),e.gl.readPixels(n[0],n[1],N,j,Br,Pr,l)}finally{e.gl.bindBuffer(35051,null),h!==void 0&&e.gl.bindFramebuffer(36160,h),d&&R.destroy()}}function ui(e,t){let{sourceTexture:r,destinationMipLevel:i=0,origin:s=[0,0],destinationOrigin:o=[0,0],destinationTexture:a}=t,{width:_=t.destinationTexture.width,height:n=t.destinationTexture.height}=t,{framebuffer:c,destroyFramebuffer:l}=Er(r),[f,T]=s,[R,d,h]=o,H=e.gl.bindFramebuffer(36160,c.handle),N=null,j;if(a instanceof x)N=a,_=Number.isFinite(_)?_:N.width,n=Number.isFinite(n)?n:N.height,N.bind(0),j=N.glTarget;else throw new Error("invalid destination");switch(j){case 3553:case 34067:e.gl.copyTexSubImage2D(j,i,R,d,f,T,_,n);break;case 35866:case 32879:e.gl.copyTexSubImage3D(j,i,R,d,h,f,T,_,n);break;default:}N&&N.unbind(),e.gl.bindFramebuffer(36160,H),l&&c.destroy()}function Er(e){if(e instanceof ve.Texture){let{width:t,height:r,id:i}=e;return{framebuffer:e.device.createFramebuffer({id:`framebuffer-for-${i}`,width:t,height:r,colorAttachments:[e]}),destroyFramebuffer:!0}}return{framebuffer:e,destroyFramebuffer:!1}}var se=class extends hr.CommandEncoder{device;commandBuffer;constructor(t,r){super(t,r),this.device=t,this.commandBuffer=new Xe(t)}destroy(){}finish(){this.commandBuffer.submitCommands()}copyBufferToBuffer(t){this.commandBuffer.commands.push({name:"copy-buffer-to-buffer",options:t})}copyBufferToTexture(t){this.commandBuffer.commands.push({name:"copy-buffer-to-texture",options:t})}copyTextureToBuffer(t){this.commandBuffer.commands.push({name:"copy-texture-to-buffer",options:t})}copyTextureToTexture(t){this.commandBuffer.commands.push({name:"copy-texture-to-texture",options:t})}pushDebugGroup(t){}popDebugGroup(){}insertDebugMarker(t){}resolveQuerySet(t,r,i){}};var He=E(S(),1);function gr(e){let{target:t,source:r,start:i=0,count:s=1}=e,o=r.length,a=s*o,_=0;for(let n=i;_<o;_++)t[n++]=r[_];for(;_<a;)_<a-_?(t.copyWithin(i+_,i,i+_),_*=2):(t.copyWithin(i+_,i,i+a-_),_=a);return e.target}var m=class extends He.VertexArray{get[Symbol.toStringTag](){return"VertexArray"}device;handle;buffer=null;bufferValue=null;static isConstantAttributeZeroSupported(t){return qe()==="Chrome"}constructor(t,r){super(t,r),this.device=t,this.handle=this.device.gl.createVertexArray()}destroy(){super.destroy(),this.buffer&&this.buffer?.destroy(),this.handle&&(this.device.gl.deleteVertexArray(this.handle),this.handle=void 0)}setIndexBuffer(t){let r=t;if(r&&r.glTarget!==34963)throw new Error("Use .setBuffer()");this.device.gl.bindVertexArray(this.handle),this.device.gl.bindBuffer(34963,r?r.handle:null),this.indexBuffer=r,this.device.gl.bindVertexArray(null)}setBuffer(t,r){let i=r;if(i.glTarget===34963)throw new Error("Use .setIndexBuffer()");let{size:s,type:o,stride:a,offset:_,normalized:n,integer:c,divisor:l}=this._getAccessor(t);this.device.gl.bindVertexArray(this.handle),this.device.gl.bindBuffer(34962,i.handle),c?this.device.gl.vertexAttribIPointer(t,s,o,a,_):this.device.gl.vertexAttribPointer(t,s,o,n,a,_),this.device.gl.bindBuffer(34962,null),this.device.gl.enableVertexAttribArray(t),this.device.gl.vertexAttribDivisor(t,l||0),this.attributes[t]=i,this.device.gl.bindVertexArray(null)}setConstantWebGL(t,r){this._enable(t,!1),this.attributes[t]=r}bindBeforeRender(){this.device.gl.bindVertexArray(this.handle),this._applyConstantAttributes()}unbindAfterRender(){this.device.gl.bindVertexArray(null)}_applyConstantAttributes(){for(let t=0;t<this.maxVertexAttributes;++t){let r=this.attributes[t];ArrayBuffer.isView(r)&&this.device.setConstantAttributeWebGL(t,r)}}_getAccessor(t){let r=this.attributeInfos[t];if(!r)throw new Error(`Unknown attribute location ${t}`);let i=ge(r.bufferDataType);return{size:r.bufferComponents,type:i,stride:r.byteStride,offset:r.byteOffset,normalized:r.normalized,integer:r.integer,divisor:r.stepMode==="instance"?1:0}}_enable(t,r=!0){let s=m.isConstantAttributeZeroSupported(this.device)||t!==0;(r||s)&&(t=Number(t),this.device.gl.bindVertexArray(this.handle),r?this.device.gl.enableVertexAttribArray(t):this.device.gl.disableVertexAttribArray(t),this.device.gl.bindVertexArray(null))}getConstantBuffer(t,r){let i=Di(r),s=i.byteLength*t,o=i.length*t;if(this.buffer&&s!==this.buffer.byteLength)throw new Error(`Buffer size is immutable, byte length ${s} !== ${this.buffer.byteLength}.`);let a=!this.buffer;if(this.buffer=this.buffer||this.device.createBuffer({byteLength:s}),a=a||!xi(i,this.bufferValue),a){let _=(0,He.getScratchArray)(r.constructor,o);gr({target:_,source:i,start:0,count:o}),this.buffer.write(_),this.bufferValue=r}return this.buffer}};function Di(e){return Array.isArray(e)?new Float32Array(e):e}function xi(e,t){if(!e||!t||e.length!==t.length||e.constructor!==t.constructor)return!1;for(let r=0;r<e.length;++r)if(e[r]!==t[r])return!1;return!0}var We=E(S(),1);var oe=class extends We.TransformFeedback{device;gl;handle;layout;buffers={};unusedBuffers={};bindOnUse=!0;_bound=!1;constructor(t,r){super(t,r),this.device=t,this.gl=t.gl,this.handle=this.props.handle||this.gl.createTransformFeedback(),this.layout=this.props.layout,r.buffers&&this.setBuffers(r.buffers),Object.seal(this)}destroy(){this.gl.deleteTransformFeedback(this.handle),super.destroy()}begin(t="point-list"){this.gl.bindTransformFeedback(36386,this.handle),this.bindOnUse&&this._bindBuffers(),this.gl.beginTransformFeedback(dr(t))}end(){this.gl.endTransformFeedback(),this.bindOnUse&&this._unbindBuffers(),this.gl.bindTransformFeedback(36386,null)}setBuffers(t){this.buffers={},this.unusedBuffers={},this.bind(()=>{for(let r in t)this.setBuffer(r,t[r])})}setBuffer(t,r){let i=this._getVaryingIndex(t),{buffer:s,byteLength:o,byteOffset:a}=this._getBufferRange(r);if(i<0){this.unusedBuffers[t]=s,We.log.warn(`${this.id} unusedBuffers varying buffer ${t}`)();return}this.buffers[i]={buffer:s,byteLength:o,byteOffset:a},this.bindOnUse||this._bindBuffer(i,s,a,o)}getBuffer(t){if(br(t))return this.buffers[t]||null;let r=this._getVaryingIndex(t);return r>=0?this.buffers[r]:null}bind(t=this.handle){if(typeof t!="function")return this.gl.bindTransformFeedback(36386,t),this;let r;return this._bound?r=t():(this.gl.bindTransformFeedback(36386,this.handle),this._bound=!0,r=t(),this._bound=!1,this.gl.bindTransformFeedback(36386,null)),r}unbind(){this.bind(null)}_getBufferRange(t){if(t instanceof D)return{buffer:t,byteOffset:0,byteLength:t.byteLength};let{buffer:r,byteOffset:i=0,byteLength:s=t.buffer.byteLength}=t;return{buffer:r,byteOffset:i,byteLength:s}}_getVaryingIndex(t){if(br(t))return Number(t);for(let r of this.layout.varyings)if(t===r.name)return r.location;return-1}_bindBuffers(){for(let t in this.buffers){let{buffer:r,byteLength:i,byteOffset:s}=this._getBufferRange(this.buffers[t]);this._bindBuffer(Number(t),r,s,i)}}_unbindBuffers(){for(let t in this.buffers)this.gl.bindBufferBase(35982,Number(t),null)}_bindBuffer(t,r,i=0,s){let o=r&&r.handle;!o||s===void 0?this.gl.bindBufferBase(35982,t,o):this.gl.bindBufferRange(35982,t,o,i,s)}};function br(e){return typeof e=="number"?Number.isInteger(e):/^\d+$/.test(e)}var pr=E(S(),1);var Ve=class extends pr.QuerySet{device;handle;target=null;_queryPending=!1;_pollingPromise=null;get[Symbol.toStringTag](){return"Query"}constructor(t,r){if(super(t,r),this.device=t,r.count>1)throw new Error("WebGL QuerySet can only have one value");this.handle=this.device.gl.createQuery(),Object.seal(this)}destroy(){this.device.gl.deleteQuery(this.handle)}beginTimestampQuery(){return this._begin(35007)}endTimestampQuery(){this._end()}beginOcclusionQuery(t){return this._begin(t?.conservative?36202:35887)}endOcclusionQuery(){this._end()}beginTransformFeedbackQuery(){return this._begin(35976)}endTransformFeedbackQuery(){this._end()}async resolveQuery(){return[await this.pollQuery()]}_begin(t){this._queryPending||(this.target=t,this.device.gl.beginQuery(this.target,this.handle))}_end(){this._queryPending||this.target&&(this.device.gl.endQuery(this.target),this.target=null,this._queryPending=!0)}isResultAvailable(){if(!this._queryPending)return!1;let t=this.device.gl.getQueryParameter(this.handle,34919);return t&&(this._queryPending=!1),t}isTimerDisjoint(){return this.device.gl.getParameter(36795)}getResult(){return this.device.gl.getQueryParameter(this.handle,34918)}getTimerMilliseconds(){return this.getResult()/1e6}pollQuery(t=Number.POSITIVE_INFINITY){if(this._pollingPromise)return this._pollingPromise;let r=0;return this._pollingPromise=new Promise((i,s)=>{let o=()=>{this.isResultAvailable()?(i(this.getResult()),this._pollingPromise=null):r++>t?(s("Timed out"),this._pollingPromise=null):requestAnimationFrame(o)};requestAnimationFrame(o)}),this._pollingPromise}};var Cr=E(S(),1);var Ui=256,yi=1024,wi=16384;function Ir(e,t){Cr.log.warn("clear will be removed in next minor release");let{framebuffer:r=null,color:i=null,depth:s=null,stencil:o=null}=t||{},a={};r&&(a.framebuffer=r);let _=0;i&&(_|=wi,i!==!0&&(a.clearColor=i)),s&&(_|=Ui,s!==!0&&(a.clearDepth=s)),o&&(_|=yi,s!==!0&&(a.clearStencil=s));let n=e.gl;P(n,a,()=>{n.clear(_)})}var k=class extends V.Device{type="webgl";handle;features;limits;info;canvasContext;lost;_resolveContextLost;gl;debug=!1;_canvasSizeInfo={clientWidth:0,clientHeight:0,devicePixelRatio:1};_extensions={};_polyfilled=!1;spectorJS;constructor(t){if(super({...t,id:t.id||kt("webgl-device")}),!t.createCanvasContext)throw new Error("WebGLDevice requires props.createCanvasContext to be set");let r=t.createCanvasContext===!0?{}:t.createCanvasContext,i=r.canvas?.gl?.device;if(i)throw new Error(`WebGL context already attached to device ${i.id}`);this.canvasContext=new ee(this,r),this.lost=new Promise(c=>{this._resolveContextLost=c});let s={...t.webgl};r.alphaMode==="premultiplied"&&(s.premultipliedAlpha=!0),t.powerPreference!==void 0&&(s.powerPreference=t.powerPreference);let o=St(this.canvasContext.canvas,{onContextLost:c=>this._resolveContextLost?.({reason:"destroyed",message:"Entered sleep mode, or too many apps or browser tabs are using the GPU."}),onContextRestored:c=>console.log("WebGL context restored")},s);if(!o)throw new Error("WebGL context creation failed");if(i=o.device,i)throw new Error(`WebGL context already attached to device ${i.id}`);this.handle=o,this.gl=o,this.spectorJS=wt({...this.props,gl:this.handle}),this.gl.device=this,this.gl._version=2,this.info=Et(this.gl,this._extensions),this.limits=new Fe(this.gl),this.features=new Oe(this.gl,this._extensions,this.props._disabledFeatures),this.props._initializeFeatures&&this.features.initializeFeatures(),this.canvasContext.resize(),new M(this.gl,{log:(...c)=>V.log.log(1,...c)()}).trackState(this.gl,{copyState:!1});let _=t.debugWebGL||t.debug,n=t.debugWebGL;_&&(this.gl=Vt(this.gl,{debugWebGL:_,traceWebGL:n}),V.log.warn("WebGL debug mode activated. Performance reduced.")(),t.debugWebGL&&(V.log.level=Math.max(V.log.level,1)))}destroy(){}get isLost(){return this.gl.isContextLost()}isTextureFormatSupported(t){return It(this.gl,t,this._extensions)}isTextureFormatFilterable(t){return Nt(this.gl,t,this._extensions)}isTextureFormatRenderable(t){return Ot(this.gl,t,this._extensions)}createCanvasContext(t){throw new Error("WebGL only supports a single canvas")}createBuffer(t){let r=this._normalizeBufferProps(t);return new D(this,r)}createTexture(t){return new x(this,t)}createExternalTexture(t){throw new Error("createExternalTexture() not implemented")}createSampler(t){return new W(this,t)}createShader(t){return new te(this,t)}createFramebuffer(t){return new u(this,t)}createVertexArray(t){return new m(this,t)}createTransformFeedback(t){return new oe(this,t)}createQuerySet(t){return new Ve(this,t)}createRenderPipeline(t){return new ie(this,t)}beginRenderPass(t){return new re(this,t)}createComputePipeline(t){throw new Error("ComputePipeline not supported in WebGL")}beginComputePass(t){throw new Error("ComputePass not supported in WebGL")}renderPass=null;createCommandEncoder(t={}){return new se(this,t)}submit(){this.renderPass?.end(),this.renderPass=null}readPixelsToArrayWebGL(t,r){return ir(t,r)}readPixelsToBufferWebGL(t,r){return sr(t,r)}setParametersWebGL(t){F(this.gl,t)}getParametersWebGL(t){return q(this.gl,t)}withParametersWebGL(t,r){return P(this.gl,t,r)}clearWebGL(t){Ir(this,t)}resetWebGL(){V.log.warn("WebGLDevice.resetWebGL is deprecated, use only for debugging")(),he(this.gl)}loseDevice(){let t=!1,i=this.getExtension("WEBGL_lose_context").WEBGL_lose_context;return i&&(t=!0,i.loseContext()),this._resolveContextLost?.({reason:"destroyed",message:"Application triggered context loss"}),t}pushState(){M.get(this.gl).push()}popState(){M.get(this.gl).pop()}setSpectorMetadata(t,r){t.__SPECTOR_Metadata=r}getGLKey(t,r){let i=Number(t);for(let s in this.gl)if(this.gl[s]===i)return`GL.${s}`;return r?.emptyIfUnknown?"":String(t)}getGLKeys(t){let r={emptyIfUnknown:!0};return Object.entries(t).reduce((i,[s,o])=>(i[`${s}:${this.getGLKey(s,r)}`]=`${o}:${this.getGLKey(o,r)}`,i),{})}_constants;setConstantAttributeWebGL(t,r){let i=this.limits.maxVertexAttributes;this._constants=this._constants||new Array(i).fill(null);let s=this._constants[t];switch(s&&Wi(s,r)&&V.log.info(1,`setConstantAttributeWebGL(${t}) could have been skipped, value unchanged`)(),this._constants[t]=r,r.constructor){case Float32Array:Xi(this,t,r);break;case Int32Array:vi(this,t,r);break;case Uint32Array:Hi(this,t,r);break;default:throw new Error("constant")}}getExtension(t){return w(this.gl,t,this._extensions),this._extensions}};function Xi(e,t,r){switch(r.length){case 1:e.gl.vertexAttrib1fv(t,r);break;case 2:e.gl.vertexAttrib2fv(t,r);break;case 3:e.gl.vertexAttrib3fv(t,r);break;case 4:e.gl.vertexAttrib4fv(t,r);break;default:}}function vi(e,t,r){e.gl.vertexAttribI4iv(t,r)}function Hi(e,t,r){e.gl.vertexAttribI4uiv(t,r)}function Wi(e,t){if(!e||!t||e.length!==t.length||e.constructor!==t.constructor)return!1;for(let r=0;r<e.length;++r)if(e[r]!==t[r])return!1;return!0}var Vi={WEBGL_depth_texture:{UNSIGNED_INT_24_8_WEBGL:34042},OES_element_index_uint:{},OES_texture_float:{},OES_texture_half_float:{HALF_FLOAT_OES:5131},EXT_color_buffer_float:{},OES_standard_derivatives:{FRAGMENT_SHADER_DERIVATIVE_HINT_OES:35723},EXT_frag_depth:{},EXT_blend_minmax:{MIN_EXT:32775,MAX_EXT:32776},EXT_shader_texture_lod:{}},ki=e=>({drawBuffersWEBGL(t){return e.drawBuffers(t)},COLOR_ATTACHMENT0_WEBGL:36064,COLOR_ATTACHMENT1_WEBGL:36065,COLOR_ATTACHMENT2_WEBGL:36066,COLOR_ATTACHMENT3_WEBGL:36067}),Ki=e=>({VERTEX_ARRAY_BINDING_OES:34229,createVertexArrayOES(){return e.createVertexArray()},deleteVertexArrayOES(t){return e.deleteVertexArray(t)},isVertexArrayOES(t){return e.isVertexArray(t)},bindVertexArrayOES(t){return e.bindVertexArray(t)}}),Yi=e=>({VERTEX_ATTRIB_ARRAY_DIVISOR_ANGLE:35070,drawArraysInstancedANGLE(...t){return e.drawArraysInstanced(...t)},drawElementsInstancedANGLE(...t){return e.drawElementsInstanced(...t)},vertexAttribDivisorANGLE(...t){return e.vertexAttribDivisor(...t)}});function Nr(e=!0){let t=HTMLCanvasElement.prototype;if(!e&&t.originalGetContext){t.getContext=t.originalGetContext,t.originalGetContext=void 0;return}t.originalGetContext=t.getContext,t.getContext=function(r,i){if(r==="webgl"||r==="experimental-webgl"){let s=this.originalGetContext("webgl2",i);return s instanceof HTMLElement&&mi(s),s}return this.originalGetContext(r,i)}}function mi(e){e.getExtension("EXT_color_buffer_float");let t={...Vi,WEBGL_disjoint_timer_query:e.getExtension("EXT_disjoint_timer_query_webgl2"),WEBGL_draw_buffers:ki(e),OES_vertex_array_object:Ki(e),ANGLE_instanced_arrays:Yi(e)},r=e.getExtension;e.getExtension=function(s){let o=r.call(e,s);return o||(s in t?t[s]:null)};let i=e.getSupportedExtensions;e.getSupportedExtensions=function(){return(i.apply(e)||[])?.concat(Object.keys(t))}}var ke=1,at=class extends U.Adapter{type="webgl";constructor(){super(),U.Device.defaultProps={...U.Device.defaultProps,...Be},k.adapter=this}isSupported(){return typeof WebGL2RenderingContext<"u"}enforceWebGL2(t){Nr(t)}async attach(t){if(t instanceof k)return t;if(t?.device instanceof U.Device)return t.device;if(!$i(t))throw new Error("Invalid WebGL2RenderingContext");return new k({_handle:t})}async create(t={}){U.log.groupCollapsed(ke,"WebGLDevice created")();let r=[];(t.debugWebGL||t.debug)&&r.push(Wt()),t.debugSpectorJS&&r.push(yt(t));let i=await Promise.allSettled(r);for(let a of i)a.status==="rejected"&&U.log.error(`Failed to initialize debug libraries ${a.reason}`)();let s=new k(t),o=`Created ${s.type}${s.debug?" debug":""} context: ${s.info.vendor}, ${s.info.renderer} for canvas: ${s.canvasContext.id}`;return U.log.probe(ke,o)(),U.log.table(ke,s.info)(),U.log.groupEnd(ke)(),s}};function $i(e){return typeof WebGL2RenderingContext<"u"&&e instanceof WebGL2RenderingContext?!0:Boolean(e&&Number.isFinite(e._version))}var Or=new at;var Mr=E(S(),1);var zi={offset:0,stride:0,type:5126,size:1,divisor:0,normalized:!1,integer:!1},$=class{offset;stride;type;size;divisor;normalized;integer;buffer;index;static getBytesPerElement(t){return Fr(t.type||5126).BYTES_PER_ELEMENT}static getBytesPerVertex(t){return Fr(t.type||5126).BYTES_PER_ELEMENT*t.size}static resolve(...t){return new $(zi,...t)}constructor(...t){Mr.log.warn("Accessor will be removed in next minor release"),t.forEach(r=>this._assign(r)),Object.freeze(this)}toString(){return JSON.stringify(this)}get BYTES_PER_ELEMENT(){return $.getBytesPerElement(this)}get BYTES_PER_VERTEX(){return $.getBytesPerVertex(this)}_assign(t={}){return t.type!==void 0&&(this.type=t.type,(t.type===5124||t.type===5125)&&(this.integer=!0)),t.size!==void 0&&(this.size=t.size),t.offset!==void 0&&(this.offset=t.offset),t.stride!==void 0&&(this.stride=t.stride),t.normalize!==void 0&&(this.normalized=t.normalize),t.normalized!==void 0&&(this.normalized=t.normalized),t.integer!==void 0&&(this.integer=t.integer),t.divisor!==void 0&&(this.divisor=t.divisor),t.buffer!==void 0&&(this.buffer=t.buffer),t.index!==void 0&&(typeof t.index=="boolean"?this.index=t.index?1:0:this.index=t.index),t.instanced!==void 0&&(this.divisor=t.instanced?1:0),t.isInstanced!==void 0&&(this.divisor=t.isInstanced?1:0),this.offset===void 0&&delete this.offset,this.stride===void 0&&delete this.stride,this.type===void 0&&delete this.type,this.size===void 0&&delete this.size,this.divisor===void 0&&delete this.divisor,this.normalized===void 0&&delete this.normalized,this.integer===void 0&&delete this.integer,this.buffer===void 0&&delete this.buffer,this.index===void 0&&delete this.index,this}};function Fr(e,t){let{clamped:r=!0}=t||{};switch(e){case 5126:return Float32Array;case 5123:case 33635:case 32819:case 32820:return Uint16Array;case 5125:return Uint32Array;case 5121:return r?Uint8ClampedArray:Uint8Array;case 5120:return Int8Array;case 5122:return Int16Array;case 5124:return Int32Array;default:throw new Error("Failed to deduce typed array type from GL constant")}}return vr(Ae);})();
|
|
8
|
+
${t}`;let{gl:r}=this.device;if(r.shaderSource(this.handle,t),r.compileShader(this.handle),!this.device.props.debug){this.compilationStatus="pending";return}if(!this.device.features.has("compilation-status-async-webgl")){if(this._getCompilationStatus(),this.debugShader(),this.compilationStatus==="error")throw new Error(`GLSL compilation errors in ${this.props.stage} shader ${this.props.id}`);return}Re.log.once(1,"Shader compilation is asynchronous")(),await this._waitForCompilationComplete(),Re.log.info(2,`Shader ${this.id} - async compilation complete: ${this.compilationStatus}`)(),this._getCompilationStatus(),this.debugShader()}async _waitForCompilationComplete(){let t=async s=>await new Promise(o=>setTimeout(o,s));if(!this.device.features.has("compilation-status-async-webgl")){await t(10);return}let{gl:i}=this.device;for(;;){if(i.getShaderParameter(this.handle,37297))return;await t(10)}}_getCompilationStatus(){this.compilationStatus=this.device.gl.getShaderParameter(this.handle,35713)?"success":"error"}};var jt=E(S(),1);var $t=E(S(),1);function zt(e,t,r,i){if(Qt(t))return i(e);let s=e;s.pushState();try{return xe(e,t),F(s.gl,r),i(e)}finally{s.popState()}}function Zt(e,t,r){if(Qt(t))return r(e);let i=e;i.pushState();try{return xe(e,t),r(e)}finally{i.popState()}}function xe(e,t){let r=e,{gl:i}=r;if(t.cullMode)switch(t.cullMode){case"none":i.disable(2884);break;case"front":i.enable(2884),i.cullFace(1028);break;case"back":i.enable(2884),i.cullFace(1029);break}if(t.frontFace&&i.frontFace(Q("frontFace",t.frontFace,{ccw:2305,cw:2304})),t.unclippedDepth&&e.features.has("depth-clip-control")&&i.enable(34383),t.depthBias!==void 0&&(i.enable(32823),i.polygonOffset(t.depthBias,t.depthBiasSlopeScale||0)),t.provokingVertex&&e.features.has("provoking-vertex-webgl")){let o=r.getExtension("WEBGL_provoking_vertex").WEBGL_provoking_vertex,a=Q("provokingVertex",t.provokingVertex,{first:36429,last:36430});o?.provokingVertexWEBGL(a)}if((t.polygonMode||t.polygonOffsetLine)&&e.features.has("polygon-mode-webgl")){if(t.polygonMode){let o=r.getExtension("WEBGL_polygon_mode").WEBGL_polygon_mode,a=Q("polygonMode",t.polygonMode,{fill:6914,line:6913});o?.polygonModeWEBGL(1028,a),o?.polygonModeWEBGL(1029,a)}t.polygonOffsetLine&&i.enable(10754)}if(e.features.has("shader-clip-cull-distance-webgl")&&(t.clipDistance0&&i.enable(12288),t.clipDistance1&&i.enable(12289),t.clipDistance2&&i.enable(12290),t.clipDistance3&&i.enable(12291),t.clipDistance4&&i.enable(12292),t.clipDistance5&&i.enable(12293),t.clipDistance6&&i.enable(12294),t.clipDistance7&&i.enable(12295)),t.depthWriteEnabled!==void 0&&i.depthMask(li("depthWriteEnabled",t.depthWriteEnabled)),t.depthCompare&&(t.depthCompare!=="always"?i.enable(2929):i.disable(2929),i.depthFunc(De("depthCompare",t.depthCompare))),t.stencilWriteMask){let s=t.stencilWriteMask;i.stencilMaskSeparate(1028,s),i.stencilMaskSeparate(1029,s)}if(t.stencilReadMask&&$t.log.warn("stencilReadMask not supported under WebGL"),t.stencilCompare){let s=t.stencilReadMask||4294967295,o=De("depthCompare",t.stencilCompare);t.stencilCompare!=="always"?i.enable(2960):i.disable(2960),i.stencilFuncSeparate(1028,o,0,s),i.stencilFuncSeparate(1029,o,0,s)}if(t.stencilPassOperation&&t.stencilFailOperation&&t.stencilDepthFailOperation){let s=Le("stencilPassOperation",t.stencilPassOperation),o=Le("stencilFailOperation",t.stencilFailOperation),a=Le("stencilDepthFailOperation",t.stencilDepthFailOperation);i.stencilOpSeparate(1028,o,a,s),i.stencilOpSeparate(1029,o,a,s)}switch(t.blend){case!0:i.enable(3042);break;case!1:i.disable(3042);break;default:}if(t.blendColorOperation||t.blendAlphaOperation){let s=mt("blendColorOperation",t.blendColorOperation||"add"),o=mt("blendAlphaOperation",t.blendAlphaOperation||"add");i.blendEquationSeparate(s,o);let a=ue("blendColorSrcFactor",t.blendColorSrcFactor||"one"),_=ue("blendColorDstFactor",t.blendColorDstFactor||"zero"),n=ue("blendAlphaSrcFactor",t.blendAlphaSrcFactor||"one"),c=ue("blendAlphaDstFactor",t.blendAlphaDstFactor||"zero");i.blendFuncSeparate(a,_,n,c)}}function De(e,t){return Q(e,t,{never:512,less:513,equal:514,"less-equal":515,greater:516,"not-equal":517,"greater-equal":518,always:519})}function Le(e,t){return Q(e,t,{keep:7680,zero:0,replace:7681,invert:5386,"increment-clamp":7682,"decrement-clamp":7683,"increment-wrap":34055,"decrement-wrap":34056})}function mt(e,t){return Q(e,t,{add:32774,subtract:32778,"reverse-subtract":32779,min:32775,max:32776})}function ue(e,t){return Q(e,t,{one:1,zero:0,"src-color":768,"one-minus-src-color":769,"dst-color":774,"one-minus-dst-color":775,"src-alpha":770,"one-minus-src-alpha":771,"dst-alpha":772,"one-minus-dst-alpha":773,"src-alpha-saturated":776,"constant-color":32769,"one-minus-constant-color":32770,"constant-alpha":32771,"one-minus-constant-alpha":32772})}function ci(e,t){return`Illegal parameter ${t} for ${e}`}function Q(e,t,r){if(!(t in r))throw new Error(ci(e,t));return r[t]}function li(e,t){return t}function Qt(e){let t=!0;for(let r in e){t=!1;break}return t}function Ue(e){let t={};return e.addressModeU&&(t[10242]=Ge(e.addressModeU)),e.addressModeV&&(t[10243]=Ge(e.addressModeV)),e.addressModeW&&(t[32882]=Ge(e.addressModeW)),e.magFilter&&(t[10240]=et(e.magFilter)),(e.minFilter||e.mipmapFilter)&&(t[10241]=fi(e.minFilter||"linear",e.mipmapFilter)),e.lodMinClamp!==void 0&&(t[33082]=e.lodMinClamp),e.lodMaxClamp!==void 0&&(t[33083]=e.lodMaxClamp),e.type==="comparison-sampler"&&(t[34892]=34894),e.compare&&(t[34893]=De("compare",e.compare)),e.maxAnisotropy&&(t[34046]=e.maxAnisotropy),t}function Ge(e){switch(e){case"clamp-to-edge":return 33071;case"repeat":return 10497;case"mirror-repeat":return 33648}}function et(e){switch(e){case"nearest":return 9728;case"linear":return 9729}}function fi(e,t="none"){if(!t)return et(e);switch(t){case"none":return et(e);case"nearest":return e==="nearest"?9984:9986;case"linear":return e==="nearest"?9985:9987}}var W=class extends jt.Sampler{device;handle;parameters;constructor(t,r){super(t,r),this.device=t,this.parameters=Ue(r),this.handle=this.handle||this.device.gl.createSampler(),this._setSamplerParameters(this.parameters)}destroy(){this.handle&&(this.device.gl.deleteSampler(this.handle),this.handle=void 0)}toString(){return`Sampler(${this.id},${JSON.stringify(this.props)})`}_setSamplerParameters(t){for(let[r,i]of Object.entries(t)){let s=Number(r);switch(s){case 33082:case 33083:this.device.gl.samplerParameterf(this.handle,s,i);break;default:this.device.gl.samplerParameteri(this.handle,s,i);break}}}};var C=E(S(),1);function P(e,t,r){if(Ti(t))return r(e);let{nocatch:i=!0}=t,s=M.get(e);s.push(),F(e,t);let o;if(i)o=r(e),s.pop();else try{o=r(e)}finally{s.pop()}return o}function Ti(e){for(let t in e)return!1;return!0}var ye=E(S(),1),v=class extends ye.TextureView{device;gl;handle;texture;constructor(t,r){super(t,{...ye.Texture.defaultProps,...r}),this.device=t,this.gl=this.device.gl,this.handle=null,this.texture=r.texture}};var Gt=E(S(),1);var Ri="Failed to deduce GL constant from typed array";function qt(e){switch(ArrayBuffer.isView(e)?e.constructor:e){case Float32Array:return 5126;case Uint16Array:return 5123;case Uint32Array:return 5125;case Uint8Array:return 5121;case Uint8ClampedArray:return 5121;case Int8Array:return 5120;case Int16Array:return 5122;case Int32Array:return 5124;default:throw new Error(Ri)}}function Jt(e,t){let{clamped:r=!0}=t||{};switch(e){case 5126:return Float32Array;case 5123:case 33635:case 32819:case 32820:return Uint16Array;case 5125:return Uint32Array;case 5121:return r?Uint8ClampedArray:Uint8Array;case 5120:return Int8Array;case 5122:return Int16Array;case 5124:return Int32Array;default:throw new Error("Failed to deduce typed array type from GL constant")}}function tt(e){switch(e){case 6406:case 33326:case 6403:case 36244:return 1;case 33339:case 33340:case 33328:case 33320:case 33319:return 2;case 6407:case 36248:case 34837:return 3;case 6408:case 36249:case 34836:return 4;default:return 0}}function Lt(e){switch(e){case 5121:return 1;case 33635:case 32819:case 32820:return 2;case 5126:return 4;default:return 0}}function er(e,t,r){let{dimension:i,width:s,height:o,depth:a=0}=r,{glInternalFormat:_}=r,n=r.glTarget;switch(i){case"2d-array":case"3d":e.texStorage3D(n,t,_,s,o,a);break;default:e.texStorage2D(n,t,_,s,o)}}function rt(e,t,r,i){let{width:s,height:o}=i,{dimension:a,depth:_=0,mipLevel:n=0}=i,{x:c=0,y:l=0,z:f=0}=i,{glFormat:T,glType:R}=i,d=rr(i.glTarget,a,_),h=i.flipY?{[37440]:!0}:{};P(e,h,()=>{switch(a){case"2d-array":case"3d":e.bindTexture(d,t),e.texSubImage3D(d,n,c,l,f,s,o,_,T,R,r),e.bindTexture(d,null);break;case"2d":case"cube":e.bindTexture(d,t),e.texSubImage2D(d,n,c,l,s,o,T,R,r),e.bindTexture(d,null);break;default:throw new Error(a)}})}function it(e,t,r){let{dimension:i,width:s,height:o,depth:a=0,mipLevel:_=0,byteOffset:n=0}=r,{x:c=0,y:l=0,z:f=0}=r,{glFormat:T,glType:R,compressed:d}=r,h=rr(r.glTarget,i,a);switch(i){case"2d-array":case"3d":d?e.compressedTexSubImage3D(h,_,c,l,f,s,o,a,T,t,n):e.texSubImage3D(h,_,c,l,f,s,o,a,T,R,t,n);break;case"2d":case"cube":d?e.compressedTexSubImage2D(h,_,c,l,s,o,T,t,n):e.texSubImage2D(h,_,c,l,s,o,T,R,t,n);break;default:throw new Error(i)}}function tr(e){switch(e){case"1d":break;case"2d":return 3553;case"3d":return 32879;case"cube":return 34067;case"2d-array":return 35866;case"cube-array":break}throw new Error(e)}function rr(e,t,r){return t==="cube"?34069+r:e}function ir(e,t){let{sourceX:r=0,sourceY:i=0,sourceAttachment:s=0}=t||{},{target:o=null,sourceWidth:a,sourceHeight:_,sourceDepth:n,sourceFormat:c,sourceType:l}=t||{},{framebuffer:f,deleteFramebuffer:T}=or(e),{gl:R,handle:d}=f;a||=f.width,_||=f.height;let h=f.colorAttachments[s]?.texture;if(!h)throw new Error(`Invalid framebuffer attachment ${s}`);n=h?.depth||1,c||=h?.glFormat||6408,l||=h?.glType||5121,o=di(o,l,c,a,_,n),l=l||qt(o);let H=R.bindFramebuffer(36160,d);return R.readBuffer(36064+s),R.readPixels(r,i,a,_,c,l,o),R.readBuffer(36064),R.bindFramebuffer(36160,H||null),T&&f.destroy(),o}function sr(e,t){let{target:r,sourceX:i=0,sourceY:s=0,sourceFormat:o=6408,targetByteOffset:a=0}=t||{},{sourceWidth:_,sourceHeight:n,sourceType:c}=t||{},{framebuffer:l,deleteFramebuffer:f}=or(e);_=_||l.width,n=n||l.height;let T=l;c=c||5121;let R=r;if(!R){let h=tt(o),H=Lt(c),N=a+_*n*h*H;R=T.device.createBuffer({byteLength:N})}let d=e.device.createCommandEncoder();return d.copyTextureToBuffer({sourceTexture:e,width:_,height:n,origin:[i,s],destinationBuffer:R,byteOffset:a}),d.destroy(),f&&l.destroy(),R}function or(e){return e instanceof Gt.Framebuffer?{framebuffer:e,deleteFramebuffer:!1}:{framebuffer:Ai(e),deleteFramebuffer:!0}}function Ai(e,t){let{device:r,width:i,height:s,id:o}=e;return r.createFramebuffer({...t,id:`framebuffer-for-${o}`,width:i,height:s,colorAttachments:[e]})}function di(e,t,r,i,s,o){if(e)return e;t||=5121;let a=Jt(t,{clamped:!1}),_=tt(r);return new a(i*s*_)}var x=class extends C.Texture{device;gl;handle;sampler=void 0;view=void 0;mipmaps;compressed;glTarget;glFormat;glType;glInternalFormat;textureUnit=0;constructor(t,r){super(t,r);let i={...this.props};i.data=r.data,this.device=t,this.gl=this.device.gl,this.glTarget=tr(this.props.dimension);let s=Ne(this.props.format);this.glInternalFormat=s.internalFormat,this.glFormat=s.format,this.glType=s.type,this.compressed=s.compressed,this.mipmaps=Boolean(this.props.mipmaps),this._initialize(i),Object.seal(this)}_initialize(t){this.handle=this.props.handle||this.gl.createTexture(),this.device.setSpectorMetadata(this.handle,{...this.props,data:t.data});let{width:r,height:i}=t;if(!r||!i){let s=C.Texture.getTextureDataSize(t.data);r=s?.width||1,i=s?.height||1}if(this.width=r,this.height=i,this.depth=t.depth,this.setSampler(t.sampler),this.view=new v(this.device,{...this.props,texture:this}),this.bind(),er(this.gl,this.mipLevels,this),t.data)switch(t.dimension){case"1d":this.setTexture1DData(t.data);break;case"2d":this.setTexture2DData(t.data);break;case"3d":this.setTexture3DData(t.data);break;case"cube":this.setTextureCubeData(t.data);break;case"2d-array":this.setTextureArrayData(t.data);break;case"cube-array":this.setTextureCubeArrayData(t.data);break;default:throw new Error(t.dimension)}this.mipmaps&&this.generateMipmap()}destroy(){this.handle&&(this.gl.deleteTexture(this.handle),this.removeStats(),this.trackDeallocatedMemory("Texture"),this.destroyed=!0)}createView(t){return new v(this.device,{...t,texture:this})}setSampler(t={}){let r;t instanceof W?(this.sampler=t,r=t.props):(this.sampler=new W(this.device,t),r=t);let i=Ue(r);this._setSamplerParameters(i)}generateMipmap(t={}){(!this.device.isTextureFormatRenderable(this.props.format)||!this.device.isTextureFormatFilterable(this.props.format))&&C.log.warn(`${this} is not renderable or filterable, may not be able to generate mipmaps`)();try{this.gl.bindTexture(this.glTarget,this.handle),P(this.gl,t,()=>{this.gl.generateMipmap(this.glTarget)})}catch(r){C.log.warn(`Error generating mipmap for ${this}: ${r.message}`)()}finally{this.gl.bindTexture(this.glTarget,null)}}copyExternalImage(t){let r=C.Texture.getExternalImageSize(t.image),i={...C.Texture.defaultCopyExternalImageOptions,...r,...t},{image:s,depth:o,mipLevel:a,x:_,y:n,z:c,flipY:l}=i,{width:f,height:T}=i,{dimension:R,glTarget:d,glFormat:h,glInternalFormat:H,glType:N}=this;if(f=Math.min(f,r.width-_),T=Math.min(T,r.height-n),t.sourceX||t.sourceY)throw new Error("WebGL does not support sourceX/sourceY)");return rt(this.device.gl,this.handle,s,{dimension:R,mipLevel:a,x:_,y:n,z:c,width:f,height:T,depth:o,glFormat:h,glInternalFormat:H,glType:N,glTarget:d,flipY:l}),{width:i.width,height:i.height}}setTexture1DData(t){throw new Error("setTexture1DData not supported in WebGL.")}setTexture2DData(t,r=0){this.bind();let i=C.Texture.normalizeTextureData(t,this);i.length>1&&this.props.mipmaps!==!1&&C.log.warn(`Texture ${this.id} mipmap and multiple LODs.`)();for(let s=0;s<i.length;s++){let o=i[s];this._setMipLevel(r,s,o)}this.unbind()}setTexture3DData(t){if(this.props.dimension!=="3d")throw new Error(this.id);ArrayBuffer.isView(t)&&(this.bind(),it(this.device.gl,t,this),this.unbind())}setTextureCubeData(t,r=0){if(this.props.dimension!=="cube")throw new Error(this.id);for(let i of C.Texture.CubeFaces)this.setTextureCubeFaceData(t[i],i)}setTextureArrayData(t){throw this.props.dimension!=="2d-array"?new Error(this.id):new Error("setTextureArrayData not implemented.")}setTextureCubeArrayData(t){throw new Error("setTextureCubeArrayData not supported in WebGL2.")}setTextureCubeFaceData(t,r,i=0){Array.isArray(t)&&t.length>1&&this.props.mipmaps!==!1&&C.log.warn(`${this.id} has mipmap and multiple LODs.`)();let s=C.Texture.CubeFaces.indexOf(r);this.setTexture2DData(t,s)}update(){throw new Error("Texture.update() not implemented. Use ExternalTexture")}setImageDataForFace(t){let{face:r,width:i,height:s,pixels:o,data:a,format:_=6408,type:n=5121}=t,{gl:c}=this,l=o||a;this.bind(),l instanceof Promise?l.then(f=>this.setImageDataForFace(Object.assign({},t,{face:r,data:f,pixels:f}))):this.width||this.height?c.texImage2D(r,0,_,i,s,0,_,n,l):c.texImage2D(r,0,_,_,n,l)}_getImageDataMap(t){for(let r=0;r<C.Texture.CubeFaces.length;++r){let i=C.Texture.CubeFaces[r];t[i]&&(t[34069+r]=t[i],delete t[i])}return t}_setSamplerParameters(t){C.log.log(1,`${this.id} sampler parameters`,this.device.getGLKeys(t))(),this.gl.bindTexture(this.glTarget,this.handle);for(let[r,i]of Object.entries(t)){let s=Number(r),o=i;switch(s){case 33082:case 33083:this.gl.texParameterf(this.glTarget,s,o);break;case 10241:this.gl.texParameteri(this.glTarget,s,o);break;case 10242:case 10243:this.gl.texParameteri(this.glTarget,s,o);break;case 34046:this.device.features.has("texture-filterable-anisotropic-webgl")&&this.gl.texParameteri(this.glTarget,s,o);break;default:this.gl.texParameteri(this.glTarget,s,o);break}}this.gl.bindTexture(this.glTarget,null)}_setMipLevel(t,r,i,s=this.glTarget){if(C.Texture.isExternalImage(i)){rt(this.device.gl,this.handle,i,{...this,depth:t,mipLevel:r,glTarget:s,flipY:this.props.flipY});return}if(C.Texture.isTextureLevelData(i)){it(this.device.gl,i.data,{...this,depth:t,mipLevel:r,glTarget:s});return}throw new Error("Texture: invalid image data")}getActiveUnit(){return this.gl.getParameter(34016)-33984}bind(t){let{gl:r}=this;return t!==void 0&&(this.textureUnit=t,r.activeTexture(33984+t)),r.bindTexture(this.glTarget,this.handle),t}unbind(t){let{gl:r}=this;return t!==void 0&&(this.textureUnit=t,r.activeTexture(33984+t)),r.bindTexture(this.glTarget,null),t}};var ar=E(S(),1);var Si=[1,2,4,8],re=class extends ar.RenderPass{device;glParameters;constructor(t,r){super(t,r),this.device=t;let i;if(!r?.parameters?.viewport)if(r?.framebuffer){let{width:s,height:o}=r.framebuffer;i=[0,0,s,o]}else{let[s,o]=t.getCanvasContext().getDrawingBufferSize();i=[0,0,s,o]}if(this.device.pushState(),this.setParameters({viewport:i,...this.props.parameters}),this.props.framebuffer){let s=this.props.framebuffer.colorAttachments.map((o,a)=>36064+a);this.device.gl.drawBuffers(s)}else this.device.gl.drawBuffers([1029]);this.clear()}end(){this.device.popState()}pushDebugGroup(t){}popDebugGroup(){}insertDebugMarker(t){}setParameters(t={}){let r={...this.glParameters};r.framebuffer=this.props.framebuffer||null,this.props.depthReadOnly&&(r.depthMask=!this.props.depthReadOnly),r.stencilMask=this.props.stencilReadOnly?0:1,r[35977]=this.props.discard,t.viewport&&(t.viewport.length>=6?(r.viewport=t.viewport.slice(0,4),r.depthRange=[t.viewport[4],t.viewport[5]]):r.viewport=t.viewport),t.scissorRect&&(r.scissorTest=!0,r.scissor=t.scissorRect),t.blendConstant&&(r.blendColor=t.blendConstant),t.stencilReference&&(console.warn("RenderPassParameters.stencilReference not yet implemented in WebGL"),t[2967]=t.stencilReference),t.colorMask&&(r.colorMask=Si.map(i=>Boolean(i&t.colorMask))),this.glParameters=r,F(this.device.gl,r)}beginOcclusionQuery(t){this.props.occlusionQuerySet?.beginOcclusionQuery()}endOcclusionQuery(){this.props.occlusionQuerySet?.endOcclusionQuery()}clear(){let t={...this.glParameters},r=0;this.props.clearColors&&this.props.clearColors.forEach((i,s)=>{i&&this.clearColorBuffer(s,i)}),this.props.clearColor!==!1&&this.props.clearColors===void 0&&(r|=16384,t.clearColor=this.props.clearColor),this.props.clearDepth!==!1&&(r|=256,t.clearDepth=this.props.clearDepth),this.props.clearStencil!==!1&&(r|=1024,t.clearStencil=this.props.clearStencil),r!==0&&P(this.device.gl,t,()=>{this.device.gl.clear(r)})}clearColorBuffer(t=0,r=[0,0,0,0]){P(this.device.gl,{framebuffer:this.props.framebuffer},()=>{switch(r.constructor){case Int8Array:case Int16Array:case Int32Array:this.device.gl.clearBufferiv(6144,t,r);break;case Uint8Array:case Uint8ClampedArray:case Uint16Array:case Uint32Array:this.device.gl.clearBufferuiv(6144,t,r);break;case Float32Array:this.device.gl.clearBufferfv(6144,t,r);break;default:throw new Error("clearColorBuffer: color must be typed array")}})}};var p=E(S(),1);function _r(e){return Ei.includes(e)}var Ei=[35678,35680,35679,35682,36289,36292,36293,36298,36299,36300,36303,36306,36307,36308,36311],nr={[5126]:[5126,1,"float","f32","float32"],[35664]:[5126,2,"vec2","vec2<f32>","float32x2"],[35665]:[5126,3,"vec3","vec3<f32>","float32x3"],[35666]:[5126,4,"vec4","vec4<f32>","float32x4"],[5124]:[5124,1,"int","i32","sint32"],[35667]:[5124,2,"ivec2","vec2<i32>","sint32x2"],[35668]:[5124,3,"ivec3","vec3<i32>","sint32x3"],[35669]:[5124,4,"ivec4","vec4<i32>","sint32x4"],[5125]:[5125,1,"uint","u32","uint32"],[36294]:[5125,2,"uvec2","vec2<u32>","uint32x2"],[36295]:[5125,3,"uvec3","vec3<u32>","uint32x3"],[36296]:[5125,4,"uvec4","vec4<u32>","uint32x4"],[35670]:[5126,1,"bool","f32","float32"],[35671]:[5126,2,"bvec2","vec2<f32>","float32x2"],[35672]:[5126,3,"bvec3","vec3<f32>","float32x3"],[35673]:[5126,4,"bvec4","vec4<f32>","float32x4"],[35674]:[5126,8,"mat2","mat2x2<f32>"],[35685]:[5126,8,"mat2x3","mat2x3<f32>"],[35686]:[5126,8,"mat2x4","mat2x4<f32>"],[35687]:[5126,12,"mat3x2","mat3x2<f32>"],[35675]:[5126,12,"mat3","mat3x3<f32>"],[35688]:[5126,12,"mat3x4","mat3x4<f32>"],[35689]:[5126,16,"mat4x2","mat4x2<f32>"],[35690]:[5126,16,"mat4x3","mat4x3<f32>"],[35676]:[5126,16,"mat4","mat4x4<f32>"]};function st(e){let t=nr[e];if(!t)throw new Error("uniform");let[r,i,,s]=t;return{format:s,components:i,glType:r}}function cr(e){let t=nr[e];if(!t)throw new Error("attribute");let[,r,,i,s]=t;return{attributeType:i,vertexFormat:s,components:r}}function we(e,t){let r={attributes:[],bindings:[]};r.attributes=hi(e,t);let i=pi(e,t);for(let _ of i){let n=_.uniforms.map(c=>({name:c.name,format:c.format,byteOffset:c.byteOffset,byteStride:c.byteStride,arrayLength:c.arrayLength}));r.bindings.push({type:"uniform",name:_.name,location:_.location,visibility:(_.vertex?1:0)&(_.fragment?2:0),minBindingSize:_.byteLength,uniforms:n})}let s=bi(e,t),o=0;for(let _ of s)if(_r(_.type)){let{viewDimension:n,sampleType:c}=Ii(_.type);r.bindings.push({type:"texture",name:_.name,location:o,viewDimension:n,sampleType:c}),_.textureUnit=o,o+=1}s.length&&(r.uniforms=s);let a=gi(e,t);return a?.length&&(r.varyings=a),r}function hi(e,t){let r=[],i=e.getProgramParameter(t,35721);for(let s=0;s<i;s++){let o=e.getActiveAttrib(t,s);if(!o)throw new Error("activeInfo");let{name:a,type:_}=o,n=e.getAttribLocation(t,a);if(n>=0){let{attributeType:c}=cr(_),l=/instance/i.test(a)?"instance":"vertex";r.push({name:a,location:n,stepMode:l,type:c})}}return r.sort((s,o)=>s.location-o.location),r}function gi(e,t){let r=[],i=e.getProgramParameter(t,35971);for(let s=0;s<i;s++){let o=e.getTransformFeedbackVarying(t,s);if(!o)throw new Error("activeInfo");let{name:a,type:_,size:n}=o,{glType:c,components:l}=st(_),f={location:s,name:a,type:c,size:n*l};r.push(f)}return r.sort((s,o)=>s.location-o.location),r}function bi(e,t){let r=[],i=e.getProgramParameter(t,35718);for(let s=0;s<i;s++){let o=e.getActiveUniform(t,s);if(!o)throw new Error("activeInfo");let{name:a,size:_,type:n}=o,{name:c,isArray:l}=Ni(a),f=e.getUniformLocation(t,c),T={location:f,name:c,size:_,type:n,isArray:l};if(r.push(T),T.size>1)for(let R=0;R<T.size;R++){let d=`${c}[${R}]`;f=e.getUniformLocation(t,d);let h={...T,name:d,location:f};r.push(h)}}return r}function pi(e,t){let r=(o,a)=>e.getActiveUniformBlockParameter(t,o,a),i=[],s=e.getProgramParameter(t,35382);for(let o=0;o<s;o++){let a={name:e.getActiveUniformBlockName(t,o)||"",location:r(o,35391),byteLength:r(o,35392),vertex:r(o,35396),fragment:r(o,35398),uniformCount:r(o,35394),uniforms:[]},_=r(o,35395)||[],n=e.getActiveUniforms(t,_,35383),c=e.getActiveUniforms(t,_,35384),l=e.getActiveUniforms(t,_,35387),f=e.getActiveUniforms(t,_,35388);for(let T=0;T<a.uniformCount;++T){let R=e.getActiveUniform(t,_[T]);if(!R)throw new Error("activeInfo");a.uniforms.push({name:R.name,format:st(n[T]).format,type:n[T],arrayLength:c[T],byteOffset:l[T],byteStride:f[T]})}i.push(a)}return i.sort((o,a)=>o.location-a.location),i}var Ci={[35678]:["2d","float"],[35680]:["cube","float"],[35679]:["3d","float"],[35682]:["3d","depth"],[36289]:["2d-array","float"],[36292]:["2d-array","depth"],[36293]:["cube","float"],[36298]:["2d","sint"],[36299]:["3d","sint"],[36300]:["cube","sint"],[36303]:["2d-array","uint"],[36306]:["2d","uint"],[36307]:["3d","uint"],[36308]:["cube","uint"],[36311]:["2d-array","uint"]};function Ii(e){let t=Ci[e];if(!t)throw new Error("sampler");let[r,i]=t;return{viewDimension:r,sampleType:i}}function Ni(e){if(e[e.length-1]!=="]")return{name:e,length:1,isArray:!1};let r=/([^[]*)(\[[0-9]+\])?/.exec(e);if(!r||r.length<2)throw new Error(`Failed to parse GLSL uniform name ${e}`);return{name:r[1],length:r[2]?1:0,isArray:Boolean(r[2])}}function lr(e,t,r,i){let s=e,o=i;o===!0&&(o=1),o===!1&&(o=0);let a=typeof o=="number"?[o]:o;switch(r){case 35678:case 35680:case 35679:case 35682:case 36289:case 36292:case 36293:case 36298:case 36299:case 36300:case 36303:case 36306:case 36307:case 36308:case 36311:if(typeof i!="number")throw new Error("samplers must be set to integers");return e.uniform1i(t,i);case 5126:return e.uniform1fv(t,a);case 35664:return e.uniform2fv(t,a);case 35665:return e.uniform3fv(t,a);case 35666:return e.uniform4fv(t,a);case 5124:return e.uniform1iv(t,a);case 35667:return e.uniform2iv(t,a);case 35668:return e.uniform3iv(t,a);case 35669:return e.uniform4iv(t,a);case 35670:return e.uniform1iv(t,a);case 35671:return e.uniform2iv(t,a);case 35672:return e.uniform3iv(t,a);case 35673:return e.uniform4iv(t,a);case 5125:return s.uniform1uiv(t,a,1);case 36294:return s.uniform2uiv(t,a,2);case 36295:return s.uniform3uiv(t,a,3);case 36296:return s.uniform4uiv(t,a,4);case 35674:return e.uniformMatrix2fv(t,!1,a);case 35675:return e.uniformMatrix3fv(t,!1,a);case 35676:return e.uniformMatrix4fv(t,!1,a);case 35685:return s.uniformMatrix2x3fv(t,!1,a);case 35686:return s.uniformMatrix2x4fv(t,!1,a);case 35687:return s.uniformMatrix3x2fv(t,!1,a);case 35688:return s.uniformMatrix3x4fv(t,!1,a);case 35689:return s.uniformMatrix4x2fv(t,!1,a);case 35690:return s.uniformMatrix4x3fv(t,!1,a)}throw new Error("Illegal uniform")}function fr(e){return ArrayBuffer.isView(e)&&!(e instanceof DataView)}function Tr(e){return Array.isArray(e)?e.length===0||typeof e[0]=="number":!1}function ot(e){return fr(e)||Tr(e)}function Oi(e){return ot(e)!==null||typeof e=="number"||typeof e=="boolean"}function Rr(e){let t={bindings:{},uniforms:{}};return Object.keys(e).forEach(r=>{let i=e[r];Oi(i)?t.uniforms[r]=i:t.bindings[r]=i}),t}function Ar(e){switch(e){case"point-list":return 0;case"line-list":return 1;case"line-strip":return 3;case"triangle-list":return 4;case"triangle-strip":return 5;default:throw new Error(e)}}function dr(e){switch(e){case"point-list":return 0;case"line-list":return 1;case"line-strip":return 1;case"triangle-list":return 4;case"triangle-strip":return 4;default:throw new Error(e)}}var Sr=4,ie=class extends p.RenderPipeline{device;handle;vs;fs;introspectedLayout;uniforms={};bindings={};varyings=null;_uniformCount=0;_uniformSetters={};constructor(t,r){super(t,r),this.device=t,this.handle=this.props.handle||this.device.gl.createProgram(),this.device.setSpectorMetadata(this.handle,{id:this.props.id}),this.vs=r.vs,this.fs=r.fs;let{varyings:i,bufferMode:s=35981}=r;i&&i.length>0&&(this.varyings=i,this.device.gl.transformFeedbackVaryings(this.handle,i,s)),this._linkShaders(),p.log.time(1,`RenderPipeline ${this.id} - shaderLayout introspection`)(),this.introspectedLayout=we(this.device.gl,this.handle),p.log.timeEnd(1,`RenderPipeline ${this.id} - shaderLayout introspection`)(),this.shaderLayout=Fi(this.introspectedLayout,r.shaderLayout)}destroy(){this.handle&&(this.device.gl.deleteProgram(this.handle),this.destroyed=!0)}setBindings(t,r){for(let[i,s]of Object.entries(t)){let o=this.shaderLayout.bindings.find(a=>a.name===i)||this.shaderLayout.bindings.find(a=>a.name===`${i}Uniforms`);if(!o){let a=this.shaderLayout.bindings.map(_=>`"${_.name}"`).join(", ");r?.disableWarnings||p.log.warn(`No binding "${i}" in render pipeline "${this.id}", expected one of ${a}`,s)();continue}switch(s||p.log.warn(`Unsetting binding "${i}" in render pipeline "${this.id}"`)(),o.type){case"uniform":if(!(s instanceof D)&&!(s.buffer instanceof D))throw new Error("buffer value");break;case"texture":if(!(s instanceof v||s instanceof x||s instanceof u))throw new Error("texture value");break;case"sampler":p.log.warn(`Ignoring sampler ${i}`)();break;default:throw new Error(o.type)}this.bindings[i]=s}}draw(t){let{renderPass:r,parameters:i=this.props.parameters,topology:s=this.props.topology,vertexArray:o,vertexCount:a,instanceCount:_,isInstanced:n=!1,firstVertex:c=0,transformFeedback:l}=t,f=Ar(s),T=Boolean(o.indexBuffer),R=o.indexBuffer?.glIndexType;if(this.linkStatus!=="success")return p.log.info(2,`RenderPipeline:${this.id}.draw() aborted - waiting for shader linking`)(),!1;if(!this._areTexturesRenderable())return p.log.info(2,`RenderPipeline:${this.id}.draw() aborted - textures not yet loaded`)(),!1;this.device.gl.useProgram(this.handle),o.bindBeforeRender(r),l&&l.begin(this.props.topology),this._applyBindings(),this._applyUniforms();let d=r;return zt(this.device,i,d.glParameters,()=>{T&&n?this.device.gl.drawElementsInstanced(f,a||0,R,c,_||0):T?this.device.gl.drawElements(f,a||0,R,c):n?this.device.gl.drawArraysInstanced(f,c,a||0,_||0):this.device.gl.drawArrays(f,c,a||0),l&&l.end()}),o.unbindAfterRender(r),!0}setUniformsWebGL(t){let{bindings:r}=Rr(t);Object.keys(r).forEach(i=>{p.log.warn(`Unsupported value "${JSON.stringify(r[i])}" used in setUniforms() for key ${i}. Use setBindings() instead?`)()}),Object.assign(this.uniforms,t)}async _linkShaders(){let{gl:t}=this.device;if(t.attachShader(this.handle,this.vs.handle),t.attachShader(this.handle,this.fs.handle),p.log.time(Sr,`linkProgram for ${this.id}`)(),t.linkProgram(this.handle),p.log.timeEnd(Sr,`linkProgram for ${this.id}`)(),p.log.level,!this.device.features.has("compilation-status-async-webgl")){let i=this._getLinkStatus();this._reportLinkStatus(i);return}p.log.once(1,"RenderPipeline linking is asynchronous")(),await this._waitForLinkComplete(),p.log.info(2,`RenderPipeline ${this.id} - async linking complete: ${this.linkStatus}`)();let r=this._getLinkStatus();this._reportLinkStatus(r)}async _reportLinkStatus(t){switch(t){case"success":return;default:switch(this.vs.compilationStatus){case"error":throw this.vs.debugShader(),new Error(`Error during compilation of shader ${this.vs.id}`);case"pending":this.vs.asyncCompilationStatus.then(()=>this.vs.debugShader());break;case"success":break}switch(this.fs?.compilationStatus){case"error":throw this.fs.debugShader(),new Error(`Error during compilation of shader ${this.fs.id}`);case"pending":this.fs.asyncCompilationStatus.then(()=>this.fs.debugShader());break;case"success":break}let r=this.device.gl.getProgramInfoLog(this.handle);throw new Error(`Error during ${t}: ${r}`)}}_getLinkStatus(){let{gl:t}=this.device;return t.getProgramParameter(this.handle,35714)?(t.validateProgram(this.handle),t.getProgramParameter(this.handle,35715)?(this.linkStatus="success","success"):(this.linkStatus="error","validation")):(this.linkStatus="error","linking")}async _waitForLinkComplete(){let t=async s=>await new Promise(o=>setTimeout(o,s));if(!this.device.features.has("compilation-status-async-webgl")){await t(10);return}let{gl:i}=this.device;for(;;){if(i.getProgramParameter(this.handle,37297))return;await t(10)}}_areTexturesRenderable(){let t=!0;for(let r of this.shaderLayout.bindings)!this.bindings[r.name]&&!this.bindings[r.name.replace(/Uniforms$/,"")]&&(p.log.warn(`Binding ${r.name} not found in ${this.id}`)(),t=!1);return t}_applyBindings(){if(this.linkStatus!=="success")return;let{gl:t}=this.device;t.useProgram(this.handle);let r=0,i=0;for(let s of this.shaderLayout.bindings){let o=this.bindings[s.name]||this.bindings[s.name.replace(/Uniforms$/,"")];if(!o)throw new Error(`No value for binding ${s.name} in ${this.id}`);switch(s.type){case"uniform":let{name:a}=s,_=t.getUniformBlockIndex(this.handle,a);if(_===4294967295)throw new Error(`Invalid uniform block name ${a}`);t.uniformBlockBinding(this.handle,i,_),o instanceof D?t.bindBufferBase(35345,i,o.handle):t.bindBufferRange(35345,i,o.buffer.handle,o.offset||0,o.size||o.buffer.byteLength-o.offset),i+=1;break;case"texture":if(!(o instanceof v||o instanceof x||o instanceof u))throw new Error("texture");let n;if(o instanceof v)n=o.texture;else if(o instanceof x)n=o;else if(o instanceof u&&o.colorAttachments[0]instanceof v)p.log.warn("Passing framebuffer in texture binding may be deprecated. Use fbo.colorAttachments[0] instead")(),n=o.colorAttachments[0].texture;else throw new Error("No texture");t.activeTexture(33984+r),t.bindTexture(n.glTarget,n.handle),r+=1;break;case"sampler":break;case"storage":case"read-only-storage":throw new Error(`binding type '${s.type}' not supported in WebGL`)}}}_applyUniforms(){for(let t of this.shaderLayout.uniforms||[]){let{name:r,location:i,type:s,textureUnit:o}=t,a=this.uniforms[r]??o;a!==void 0&&lr(this.device.gl,i,s,a)}}};function Fi(e,t){let r={...e,attributes:e.attributes.map(i=>({...i}))};for(let i of t?.attributes||[]){let s=r.attributes.find(o=>o.name===i.name);s?(s.type=i.type||s.type,s.stepMode=i.stepMode||s.stepMode):p.log.warn(`shader layout attribute ${i.name} not present in shader`)}return r}var hr=E(S(),1);var ve=E(S(),1);var Xe=class extends ve.CommandBuffer{device;commands=[];constructor(t){super(t,{}),this.device=t}submitCommands(t=this.commands){for(let r of t)switch(r.name){case"copy-buffer-to-buffer":Mi(this.device,r.options);break;case"copy-buffer-to-texture":Bi(this.device,r.options);break;case"copy-texture-to-buffer":Pi(this.device,r.options);break;case"copy-texture-to-texture":ui(this.device,r.options);break;default:throw new Error(r.name)}}};function Mi(e,t){let r=t.sourceBuffer,i=t.destinationBuffer;e.gl.bindBuffer(36662,r.handle),e.gl.bindBuffer(36663,i.handle),e.gl.copyBufferSubData(36662,36663,t.sourceOffset??0,t.destinationOffset??0,t.size),e.gl.bindBuffer(36662,null),e.gl.bindBuffer(36663,null)}function Bi(e,t){throw new Error("Not implemented")}function Pi(e,t){let{sourceTexture:r,mipLevel:i=0,aspect:s="all",width:o=t.sourceTexture.width,height:a=t.sourceTexture.height,depthOrArrayLayers:_=0,origin:n=[0,0],destinationBuffer:c,byteOffset:l=0,bytesPerRow:f,rowsPerImage:T}=t;if(s!=="all")throw new Error("aspect not supported in WebGL");if(i!==0||_!==0||f||T)throw new Error("not implemented");let{framebuffer:R,destroyFramebuffer:d}=Er(r),h;try{let H=c,N=o||R.width,j=a||R.height,_t=Ne(R.colorAttachments[0].texture.props.format),Br=_t.format,Pr=_t.type;e.gl.bindBuffer(35051,H.handle),h=e.gl.bindFramebuffer(36160,R.handle),e.gl.readPixels(n[0],n[1],N,j,Br,Pr,l)}finally{e.gl.bindBuffer(35051,null),h!==void 0&&e.gl.bindFramebuffer(36160,h),d&&R.destroy()}}function ui(e,t){let{sourceTexture:r,destinationMipLevel:i=0,origin:s=[0,0],destinationOrigin:o=[0,0],destinationTexture:a}=t,{width:_=t.destinationTexture.width,height:n=t.destinationTexture.height}=t,{framebuffer:c,destroyFramebuffer:l}=Er(r),[f,T]=s,[R,d,h]=o,H=e.gl.bindFramebuffer(36160,c.handle),N=null,j;if(a instanceof x)N=a,_=Number.isFinite(_)?_:N.width,n=Number.isFinite(n)?n:N.height,N.bind(0),j=N.glTarget;else throw new Error("invalid destination");switch(j){case 3553:case 34067:e.gl.copyTexSubImage2D(j,i,R,d,f,T,_,n);break;case 35866:case 32879:e.gl.copyTexSubImage3D(j,i,R,d,h,f,T,_,n);break;default:}N&&N.unbind(),e.gl.bindFramebuffer(36160,H),l&&c.destroy()}function Er(e){if(e instanceof ve.Texture){let{width:t,height:r,id:i}=e;return{framebuffer:e.device.createFramebuffer({id:`framebuffer-for-${i}`,width:t,height:r,colorAttachments:[e]}),destroyFramebuffer:!0}}return{framebuffer:e,destroyFramebuffer:!1}}var se=class extends hr.CommandEncoder{device;commandBuffer;constructor(t,r){super(t,r),this.device=t,this.commandBuffer=new Xe(t)}destroy(){}finish(){this.commandBuffer.submitCommands()}copyBufferToBuffer(t){this.commandBuffer.commands.push({name:"copy-buffer-to-buffer",options:t})}copyBufferToTexture(t){this.commandBuffer.commands.push({name:"copy-buffer-to-texture",options:t})}copyTextureToBuffer(t){this.commandBuffer.commands.push({name:"copy-texture-to-buffer",options:t})}copyTextureToTexture(t){this.commandBuffer.commands.push({name:"copy-texture-to-texture",options:t})}pushDebugGroup(t){}popDebugGroup(){}insertDebugMarker(t){}resolveQuerySet(t,r,i){}};var He=E(S(),1);function gr(e){let{target:t,source:r,start:i=0,count:s=1}=e,o=r.length,a=s*o,_=0;for(let n=i;_<o;_++)t[n++]=r[_];for(;_<a;)_<a-_?(t.copyWithin(i+_,i,i+_),_*=2):(t.copyWithin(i+_,i,i+a-_),_=a);return e.target}var m=class extends He.VertexArray{get[Symbol.toStringTag](){return"VertexArray"}device;handle;buffer=null;bufferValue=null;static isConstantAttributeZeroSupported(t){return qe()==="Chrome"}constructor(t,r){super(t,r),this.device=t,this.handle=this.device.gl.createVertexArray()}destroy(){super.destroy(),this.buffer&&this.buffer?.destroy(),this.handle&&(this.device.gl.deleteVertexArray(this.handle),this.handle=void 0)}setIndexBuffer(t){let r=t;if(r&&r.glTarget!==34963)throw new Error("Use .setBuffer()");this.device.gl.bindVertexArray(this.handle),this.device.gl.bindBuffer(34963,r?r.handle:null),this.indexBuffer=r,this.device.gl.bindVertexArray(null)}setBuffer(t,r){let i=r;if(i.glTarget===34963)throw new Error("Use .setIndexBuffer()");let{size:s,type:o,stride:a,offset:_,normalized:n,integer:c,divisor:l}=this._getAccessor(t);this.device.gl.bindVertexArray(this.handle),this.device.gl.bindBuffer(34962,i.handle),c?this.device.gl.vertexAttribIPointer(t,s,o,a,_):this.device.gl.vertexAttribPointer(t,s,o,n,a,_),this.device.gl.bindBuffer(34962,null),this.device.gl.enableVertexAttribArray(t),this.device.gl.vertexAttribDivisor(t,l||0),this.attributes[t]=i,this.device.gl.bindVertexArray(null)}setConstantWebGL(t,r){this._enable(t,!1),this.attributes[t]=r}bindBeforeRender(){this.device.gl.bindVertexArray(this.handle),this._applyConstantAttributes()}unbindAfterRender(){this.device.gl.bindVertexArray(null)}_applyConstantAttributes(){for(let t=0;t<this.maxVertexAttributes;++t){let r=this.attributes[t];ArrayBuffer.isView(r)&&this.device.setConstantAttributeWebGL(t,r)}}_getAccessor(t){let r=this.attributeInfos[t];if(!r)throw new Error(`Unknown attribute location ${t}`);let i=ge(r.bufferDataType);return{size:r.bufferComponents,type:i,stride:r.byteStride,offset:r.byteOffset,normalized:r.normalized,integer:r.integer,divisor:r.stepMode==="instance"?1:0}}_enable(t,r=!0){let s=m.isConstantAttributeZeroSupported(this.device)||t!==0;(r||s)&&(t=Number(t),this.device.gl.bindVertexArray(this.handle),r?this.device.gl.enableVertexAttribArray(t):this.device.gl.disableVertexAttribArray(t),this.device.gl.bindVertexArray(null))}getConstantBuffer(t,r){let i=Di(r),s=i.byteLength*t,o=i.length*t;if(this.buffer&&s!==this.buffer.byteLength)throw new Error(`Buffer size is immutable, byte length ${s} !== ${this.buffer.byteLength}.`);let a=!this.buffer;if(this.buffer=this.buffer||this.device.createBuffer({byteLength:s}),a=a||!xi(i,this.bufferValue),a){let _=(0,He.getScratchArray)(r.constructor,o);gr({target:_,source:i,start:0,count:o}),this.buffer.write(_),this.bufferValue=r}return this.buffer}};function Di(e){return Array.isArray(e)?new Float32Array(e):e}function xi(e,t){if(!e||!t||e.length!==t.length||e.constructor!==t.constructor)return!1;for(let r=0;r<e.length;++r)if(e[r]!==t[r])return!1;return!0}var We=E(S(),1);var oe=class extends We.TransformFeedback{device;gl;handle;layout;buffers={};unusedBuffers={};bindOnUse=!0;_bound=!1;constructor(t,r){super(t,r),this.device=t,this.gl=t.gl,this.handle=this.props.handle||this.gl.createTransformFeedback(),this.layout=this.props.layout,r.buffers&&this.setBuffers(r.buffers),Object.seal(this)}destroy(){this.gl.deleteTransformFeedback(this.handle),super.destroy()}begin(t="point-list"){this.gl.bindTransformFeedback(36386,this.handle),this.bindOnUse&&this._bindBuffers(),this.gl.beginTransformFeedback(dr(t))}end(){this.gl.endTransformFeedback(),this.bindOnUse&&this._unbindBuffers(),this.gl.bindTransformFeedback(36386,null)}setBuffers(t){this.buffers={},this.unusedBuffers={},this.bind(()=>{for(let r in t)this.setBuffer(r,t[r])})}setBuffer(t,r){let i=this._getVaryingIndex(t),{buffer:s,byteLength:o,byteOffset:a}=this._getBufferRange(r);if(i<0){this.unusedBuffers[t]=s,We.log.warn(`${this.id} unusedBuffers varying buffer ${t}`)();return}this.buffers[i]={buffer:s,byteLength:o,byteOffset:a},this.bindOnUse||this._bindBuffer(i,s,a,o)}getBuffer(t){if(br(t))return this.buffers[t]||null;let r=this._getVaryingIndex(t);return r>=0?this.buffers[r]:null}bind(t=this.handle){if(typeof t!="function")return this.gl.bindTransformFeedback(36386,t),this;let r;return this._bound?r=t():(this.gl.bindTransformFeedback(36386,this.handle),this._bound=!0,r=t(),this._bound=!1,this.gl.bindTransformFeedback(36386,null)),r}unbind(){this.bind(null)}_getBufferRange(t){if(t instanceof D)return{buffer:t,byteOffset:0,byteLength:t.byteLength};let{buffer:r,byteOffset:i=0,byteLength:s=t.buffer.byteLength}=t;return{buffer:r,byteOffset:i,byteLength:s}}_getVaryingIndex(t){if(br(t))return Number(t);for(let r of this.layout.varyings)if(t===r.name)return r.location;return-1}_bindBuffers(){for(let t in this.buffers){let{buffer:r,byteLength:i,byteOffset:s}=this._getBufferRange(this.buffers[t]);this._bindBuffer(Number(t),r,s,i)}}_unbindBuffers(){for(let t in this.buffers)this.gl.bindBufferBase(35982,Number(t),null)}_bindBuffer(t,r,i=0,s){let o=r&&r.handle;!o||s===void 0?this.gl.bindBufferBase(35982,t,o):this.gl.bindBufferRange(35982,t,o,i,s)}};function br(e){return typeof e=="number"?Number.isInteger(e):/^\d+$/.test(e)}var pr=E(S(),1);var Ve=class extends pr.QuerySet{device;handle;target=null;_queryPending=!1;_pollingPromise=null;get[Symbol.toStringTag](){return"Query"}constructor(t,r){if(super(t,r),this.device=t,r.count>1)throw new Error("WebGL QuerySet can only have one value");this.handle=this.device.gl.createQuery(),Object.seal(this)}destroy(){this.device.gl.deleteQuery(this.handle)}beginTimestampQuery(){return this._begin(35007)}endTimestampQuery(){this._end()}beginOcclusionQuery(t){return this._begin(t?.conservative?36202:35887)}endOcclusionQuery(){this._end()}beginTransformFeedbackQuery(){return this._begin(35976)}endTransformFeedbackQuery(){this._end()}async resolveQuery(){return[await this.pollQuery()]}_begin(t){this._queryPending||(this.target=t,this.device.gl.beginQuery(this.target,this.handle))}_end(){this._queryPending||this.target&&(this.device.gl.endQuery(this.target),this.target=null,this._queryPending=!0)}isResultAvailable(){if(!this._queryPending)return!1;let t=this.device.gl.getQueryParameter(this.handle,34919);return t&&(this._queryPending=!1),t}isTimerDisjoint(){return this.device.gl.getParameter(36795)}getResult(){return this.device.gl.getQueryParameter(this.handle,34918)}getTimerMilliseconds(){return this.getResult()/1e6}pollQuery(t=Number.POSITIVE_INFINITY){if(this._pollingPromise)return this._pollingPromise;let r=0;return this._pollingPromise=new Promise((i,s)=>{let o=()=>{this.isResultAvailable()?(i(this.getResult()),this._pollingPromise=null):r++>t?(s("Timed out"),this._pollingPromise=null):requestAnimationFrame(o)};requestAnimationFrame(o)}),this._pollingPromise}};var Cr=E(S(),1);var Ui=256,yi=1024,wi=16384;function Ir(e,t){Cr.log.warn("clear will be removed in next minor release");let{framebuffer:r=null,color:i=null,depth:s=null,stencil:o=null}=t||{},a={};r&&(a.framebuffer=r);let _=0;i&&(_|=wi,i!==!0&&(a.clearColor=i)),s&&(_|=Ui,s!==!0&&(a.clearDepth=s)),o&&(_|=yi,s!==!0&&(a.clearStencil=s));let n=e.gl;P(n,a,()=>{n.clear(_)})}var k=class extends V.Device{type="webgl";handle;features;limits;info;canvasContext;lost;_resolveContextLost;gl;debug=!1;_canvasSizeInfo={clientWidth:0,clientHeight:0,devicePixelRatio:1};_extensions={};_polyfilled=!1;spectorJS;constructor(t){if(super({...t,id:t.id||kt("webgl-device")}),!t.createCanvasContext)throw new Error("WebGLDevice requires props.createCanvasContext to be set");let r=t.createCanvasContext===!0?{}:t.createCanvasContext,i=r.canvas?.gl?.device;if(i)throw new Error(`WebGL context already attached to device ${i.id}`);this.canvasContext=new ee(this,r),this.lost=new Promise(c=>{this._resolveContextLost=c});let s={...t.webgl};r.alphaMode==="premultiplied"&&(s.premultipliedAlpha=!0),t.powerPreference!==void 0&&(s.powerPreference=t.powerPreference);let o=St(this.canvasContext.canvas,{onContextLost:c=>this._resolveContextLost?.({reason:"destroyed",message:"Entered sleep mode, or too many apps or browser tabs are using the GPU."}),onContextRestored:c=>console.log("WebGL context restored")},s);if(!o)throw new Error("WebGL context creation failed");if(i=o.device,i)throw new Error(`WebGL context already attached to device ${i.id}`);this.handle=o,this.gl=o,this.spectorJS=wt({...this.props,gl:this.handle}),this.gl.device=this,this.gl._version=2,this.info=Et(this.gl,this._extensions),this.limits=new Fe(this.gl),this.features=new Oe(this.gl,this._extensions,this.props._disabledFeatures),this.props._initializeFeatures&&this.features.initializeFeatures(),this.canvasContext.resize(),new M(this.gl,{log:(...c)=>V.log.log(1,...c)()}).trackState(this.gl,{copyState:!1});let _=t.debugWebGL||t.debug,n=t.debugWebGL;_&&(this.gl=Vt(this.gl,{debugWebGL:_,traceWebGL:n}),V.log.warn("WebGL debug mode activated. Performance reduced.")(),t.debugWebGL&&(V.log.level=Math.max(V.log.level,1)))}destroy(){}get isLost(){return this.gl.isContextLost()}isTextureFormatSupported(t){return It(this.gl,t,this._extensions)}isTextureFormatFilterable(t){return Nt(this.gl,t,this._extensions)}isTextureFormatRenderable(t){return Ot(this.gl,t,this._extensions)}createCanvasContext(t){throw new Error("WebGL only supports a single canvas")}createBuffer(t){let r=this._normalizeBufferProps(t);return new D(this,r)}createTexture(t){return new x(this,t)}createExternalTexture(t){throw new Error("createExternalTexture() not implemented")}createSampler(t){return new W(this,t)}createShader(t){return new te(this,t)}createFramebuffer(t){return new u(this,t)}createVertexArray(t){return new m(this,t)}createTransformFeedback(t){return new oe(this,t)}createQuerySet(t){return new Ve(this,t)}createRenderPipeline(t){return new ie(this,t)}beginRenderPass(t){return new re(this,t)}createComputePipeline(t){throw new Error("ComputePipeline not supported in WebGL")}beginComputePass(t){throw new Error("ComputePass not supported in WebGL")}renderPass=null;createCommandEncoder(t={}){return new se(this,t)}submit(){this.renderPass?.end(),this.renderPass=null}readPixelsToArrayWebGL(t,r){return ir(t,r)}readPixelsToBufferWebGL(t,r){return sr(t,r)}setParametersWebGL(t){F(this.gl,t)}getParametersWebGL(t){return q(this.gl,t)}withParametersWebGL(t,r){return P(this.gl,t,r)}clearWebGL(t){Ir(this,t)}resetWebGL(){V.log.warn("WebGLDevice.resetWebGL is deprecated, use only for debugging")(),he(this.gl)}loseDevice(){let t=!1,i=this.getExtension("WEBGL_lose_context").WEBGL_lose_context;return i&&(t=!0,i.loseContext()),this._resolveContextLost?.({reason:"destroyed",message:"Application triggered context loss"}),t}pushState(){M.get(this.gl).push()}popState(){M.get(this.gl).pop()}setSpectorMetadata(t,r){t.__SPECTOR_Metadata=r}getGLKey(t,r){let i=Number(t);for(let s in this.gl)if(this.gl[s]===i)return`GL.${s}`;return r?.emptyIfUnknown?"":String(t)}getGLKeys(t){let r={emptyIfUnknown:!0};return Object.entries(t).reduce((i,[s,o])=>(i[`${s}:${this.getGLKey(s,r)}`]=`${o}:${this.getGLKey(o,r)}`,i),{})}_constants;setConstantAttributeWebGL(t,r){let i=this.limits.maxVertexAttributes;this._constants=this._constants||new Array(i).fill(null);let s=this._constants[t];switch(s&&Wi(s,r)&&V.log.info(1,`setConstantAttributeWebGL(${t}) could have been skipped, value unchanged`)(),this._constants[t]=r,r.constructor){case Float32Array:Xi(this,t,r);break;case Int32Array:vi(this,t,r);break;case Uint32Array:Hi(this,t,r);break;default:throw new Error("constant")}}getExtension(t){return w(this.gl,t,this._extensions),this._extensions}};function Xi(e,t,r){switch(r.length){case 1:e.gl.vertexAttrib1fv(t,r);break;case 2:e.gl.vertexAttrib2fv(t,r);break;case 3:e.gl.vertexAttrib3fv(t,r);break;case 4:e.gl.vertexAttrib4fv(t,r);break;default:}}function vi(e,t,r){e.gl.vertexAttribI4iv(t,r)}function Hi(e,t,r){e.gl.vertexAttribI4uiv(t,r)}function Wi(e,t){if(!e||!t||e.length!==t.length||e.constructor!==t.constructor)return!1;for(let r=0;r<e.length;++r)if(e[r]!==t[r])return!1;return!0}var Vi={WEBGL_depth_texture:{UNSIGNED_INT_24_8_WEBGL:34042},OES_element_index_uint:{},OES_texture_float:{},OES_texture_half_float:{HALF_FLOAT_OES:5131},EXT_color_buffer_float:{},OES_standard_derivatives:{FRAGMENT_SHADER_DERIVATIVE_HINT_OES:35723},EXT_frag_depth:{},EXT_blend_minmax:{MIN_EXT:32775,MAX_EXT:32776},EXT_shader_texture_lod:{}},ki=e=>({drawBuffersWEBGL(t){return e.drawBuffers(t)},COLOR_ATTACHMENT0_WEBGL:36064,COLOR_ATTACHMENT1_WEBGL:36065,COLOR_ATTACHMENT2_WEBGL:36066,COLOR_ATTACHMENT3_WEBGL:36067}),Ki=e=>({VERTEX_ARRAY_BINDING_OES:34229,createVertexArrayOES(){return e.createVertexArray()},deleteVertexArrayOES(t){return e.deleteVertexArray(t)},isVertexArrayOES(t){return e.isVertexArray(t)},bindVertexArrayOES(t){return e.bindVertexArray(t)}}),Yi=e=>({VERTEX_ATTRIB_ARRAY_DIVISOR_ANGLE:35070,drawArraysInstancedANGLE(...t){return e.drawArraysInstanced(...t)},drawElementsInstancedANGLE(...t){return e.drawElementsInstanced(...t)},vertexAttribDivisorANGLE(...t){return e.vertexAttribDivisor(...t)}});function Nr(e=!0){let t=HTMLCanvasElement.prototype;if(!e&&t.originalGetContext){t.getContext=t.originalGetContext,t.originalGetContext=void 0;return}t.originalGetContext=t.getContext,t.getContext=function(r,i){if(r==="webgl"||r==="experimental-webgl"){let s=this.originalGetContext("webgl2",i);return s instanceof HTMLElement&&mi(s),s}return this.originalGetContext(r,i)}}function mi(e){e.getExtension("EXT_color_buffer_float");let t={...Vi,WEBGL_disjoint_timer_query:e.getExtension("EXT_disjoint_timer_query_webgl2"),WEBGL_draw_buffers:ki(e),OES_vertex_array_object:Ki(e),ANGLE_instanced_arrays:Yi(e)},r=e.getExtension;e.getExtension=function(s){let o=r.call(e,s);return o||(s in t?t[s]:null)};let i=e.getSupportedExtensions;e.getSupportedExtensions=function(){return(i.apply(e)||[])?.concat(Object.keys(t))}}var ke=1,at=class extends U.Adapter{type="webgl";constructor(){super(),U.Device.defaultProps={...U.Device.defaultProps,...Be},k.adapter=this}isSupported(){return typeof WebGL2RenderingContext<"u"}enforceWebGL2(t){Nr(t)}async attach(t){if(t instanceof k)return t;if(t?.device instanceof U.Device)return t.device;if(!$i(t))throw new Error("Invalid WebGL2RenderingContext");return new k({_handle:t})}async create(t={}){U.log.groupCollapsed(ke,"WebGLDevice created")();let r=[];(t.debugWebGL||t.debug)&&r.push(Wt()),t.debugSpectorJS&&r.push(yt(t));let i=await Promise.allSettled(r);for(let a of i)a.status==="rejected"&&U.log.error(`Failed to initialize debug libraries ${a.reason}`)();let s=new k(t),o=`Created ${s.type}${s.debug?" debug":""} context: ${s.info.vendor}, ${s.info.renderer} for canvas: ${s.canvasContext.id}`;return U.log.probe(ke,o)(),U.log.table(ke,s.info)(),U.log.groupEnd(ke)(),s}};function $i(e){return typeof WebGL2RenderingContext<"u"&&e instanceof WebGL2RenderingContext?!0:Boolean(e&&Number.isFinite(e._version))}var Or=new at;var Mr=E(S(),1);var zi={offset:0,stride:0,type:5126,size:1,divisor:0,normalized:!1,integer:!1},$=class{offset;stride;type;size;divisor;normalized;integer;buffer;index;static getBytesPerElement(t){return Fr(t.type||5126).BYTES_PER_ELEMENT}static getBytesPerVertex(t){return Fr(t.type||5126).BYTES_PER_ELEMENT*t.size}static resolve(...t){return new $(zi,...t)}constructor(...t){Mr.log.warn("Accessor will be removed in next minor release"),t.forEach(r=>this._assign(r)),Object.freeze(this)}toString(){return JSON.stringify(this)}get BYTES_PER_ELEMENT(){return $.getBytesPerElement(this)}get BYTES_PER_VERTEX(){return $.getBytesPerVertex(this)}_assign(t={}){return t.type!==void 0&&(this.type=t.type,(t.type===5124||t.type===5125)&&(this.integer=!0)),t.size!==void 0&&(this.size=t.size),t.offset!==void 0&&(this.offset=t.offset),t.stride!==void 0&&(this.stride=t.stride),t.normalize!==void 0&&(this.normalized=t.normalize),t.normalized!==void 0&&(this.normalized=t.normalized),t.integer!==void 0&&(this.integer=t.integer),t.divisor!==void 0&&(this.divisor=t.divisor),t.buffer!==void 0&&(this.buffer=t.buffer),t.index!==void 0&&(typeof t.index=="boolean"?this.index=t.index?1:0:this.index=t.index),t.instanced!==void 0&&(this.divisor=t.instanced?1:0),t.isInstanced!==void 0&&(this.divisor=t.isInstanced?1:0),this.offset===void 0&&delete this.offset,this.stride===void 0&&delete this.stride,this.type===void 0&&delete this.type,this.size===void 0&&delete this.size,this.divisor===void 0&&delete this.divisor,this.normalized===void 0&&delete this.normalized,this.integer===void 0&&delete this.integer,this.buffer===void 0&&delete this.buffer,this.index===void 0&&delete this.index,this}};function Fr(e,t){let{clamped:r=!0}=t||{};switch(e){case 5126:return Float32Array;case 5123:case 33635:case 32819:case 32820:return Uint16Array;case 5125:return Uint32Array;case 5121:return r?Uint8ClampedArray:Uint8Array;case 5120:return Int8Array;case 5122:return Int16Array;case 5124:return Int32Array;default:throw new Error("Failed to deduce typed array type from GL constant")}}return vr(Ae);})();
|
|
9
9
|
return __exports__;
|
|
10
10
|
});
|
package/dist/index.cjs
CHANGED
|
@@ -3153,9 +3153,6 @@ var WEBGLRenderPass = class extends import_core15.RenderPass {
|
|
|
3153
3153
|
* Optionally clears depth, color and stencil buffers based on parameters
|
|
3154
3154
|
*/
|
|
3155
3155
|
clear() {
|
|
3156
|
-
const DEFAULT_CLEAR_COLOR = [0, 0, 0, 1];
|
|
3157
|
-
const DEFAULT_CLEAR_DEPTH = 1;
|
|
3158
|
-
const DEFAULT_CLEAR_STENCIL = 0;
|
|
3159
3156
|
const glParameters = { ...this.glParameters };
|
|
3160
3157
|
let clearMask = 0;
|
|
3161
3158
|
if (this.props.clearColors) {
|
|
@@ -3167,16 +3164,15 @@ var WEBGLRenderPass = class extends import_core15.RenderPass {
|
|
|
3167
3164
|
}
|
|
3168
3165
|
if (this.props.clearColor !== false && this.props.clearColors === void 0) {
|
|
3169
3166
|
clearMask |= 16384;
|
|
3170
|
-
|
|
3171
|
-
glParameters.clearColor = clearColor;
|
|
3167
|
+
glParameters.clearColor = this.props.clearColor;
|
|
3172
3168
|
}
|
|
3173
3169
|
if (this.props.clearDepth !== false) {
|
|
3174
3170
|
clearMask |= 256;
|
|
3175
|
-
glParameters.clearDepth = this.props.clearDepth
|
|
3171
|
+
glParameters.clearDepth = this.props.clearDepth;
|
|
3176
3172
|
}
|
|
3177
3173
|
if (this.props.clearStencil !== false) {
|
|
3178
3174
|
clearMask |= 1024;
|
|
3179
|
-
glParameters.clearStencil = this.props.clearStencil
|
|
3175
|
+
glParameters.clearStencil = this.props.clearStencil;
|
|
3180
3176
|
}
|
|
3181
3177
|
if (clearMask !== 0) {
|
|
3182
3178
|
withGLParameters(this.device.gl, glParameters, () => {
|