@deck.gl/extensions 9.0.0-alpha.6 → 9.0.0-beta.1
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/dist.dev.js +2680 -2548
- package/dist/es5/brushing/shader-module.js +2 -2
- package/dist/es5/brushing/shader-module.js.map +1 -1
- package/dist/es5/clip/clip-extension.js +4 -4
- package/dist/es5/clip/clip-extension.js.map +1 -1
- package/dist/es5/collision-filter/collision-filter-pass.js +4 -2
- package/dist/es5/collision-filter/collision-filter-pass.js.map +1 -1
- package/dist/es5/collision-filter/shader-module.js +1 -1
- package/dist/es5/collision-filter/shader-module.js.map +1 -1
- package/dist/es5/data-filter/aggregator.js +2 -2
- package/dist/es5/data-filter/aggregator.js.map +1 -1
- package/dist/es5/data-filter/shader-module.js +2 -2
- package/dist/es5/data-filter/shader-module.js.map +1 -1
- package/dist/es5/fill-style/shaders.glsl.js +3 -3
- package/dist/es5/fill-style/shaders.glsl.js.map +1 -1
- package/dist/es5/fp64/project64.js.map +1 -1
- package/dist/es5/mask/shader-module.js +4 -4
- package/dist/es5/mask/shader-module.js.map +1 -1
- package/dist/es5/path-style/shaders.glsl.js +4 -4
- package/dist/es5/path-style/shaders.glsl.js.map +1 -1
- package/dist/es5/terrain/shader-module.js +8 -6
- package/dist/es5/terrain/shader-module.js.map +1 -1
- package/dist/esm/brushing/shader-module.js +4 -4
- package/dist/esm/brushing/shader-module.js.map +1 -1
- package/dist/esm/clip/clip-extension.js +4 -4
- package/dist/esm/clip/clip-extension.js.map +1 -1
- package/dist/esm/collision-filter/collision-filter-pass.js +4 -2
- package/dist/esm/collision-filter/collision-filter-pass.js.map +1 -1
- package/dist/esm/collision-filter/shader-module.js +3 -3
- package/dist/esm/collision-filter/shader-module.js.map +1 -1
- package/dist/esm/data-filter/aggregator.js +11 -7
- package/dist/esm/data-filter/aggregator.js.map +1 -1
- package/dist/esm/data-filter/shader-module.js +4 -4
- package/dist/esm/data-filter/shader-module.js.map +1 -1
- package/dist/esm/fill-style/shaders.glsl.js +10 -10
- package/dist/esm/fill-style/shaders.glsl.js.map +1 -1
- package/dist/esm/fp64/project64.js.map +1 -1
- package/dist/esm/mask/shader-module.js +5 -5
- package/dist/esm/mask/shader-module.js.map +1 -1
- package/dist/esm/path-style/shaders.glsl.js +9 -13
- package/dist/esm/path-style/shaders.glsl.js.map +1 -1
- package/dist/esm/terrain/shader-module.js +8 -6
- package/dist/esm/terrain/shader-module.js.map +1 -1
- package/dist.min.js +140 -143
- package/package.json +8 -8
- package/src/brushing/shader-module.ts +6 -5
- package/src/clip/clip-extension.ts +6 -5
- package/src/collision-filter/collision-filter-pass.ts +4 -2
- package/src/collision-filter/shader-module.ts +4 -4
- package/src/data-filter/aggregator.ts +11 -7
- package/src/data-filter/shader-module.ts +5 -6
- package/src/fill-style/shaders.glsl.ts +12 -11
- package/src/fp64/project64.ts +2 -1
- package/src/mask/shader-module.ts +6 -6
- package/src/path-style/shaders.glsl.ts +9 -13
- package/src/terrain/shader-module.ts +8 -8
- package/typed/brushing/brushing-extension.d.ts +1 -1
- package/typed/brushing/brushing-extension.d.ts.map +1 -1
- package/typed/brushing/shader-module.d.ts +3 -2
- package/typed/brushing/shader-module.d.ts.map +1 -1
- package/typed/clip/clip-extension.d.ts +4 -3
- package/typed/clip/clip-extension.d.ts.map +1 -1
- package/typed/collision-filter/collision-filter-extension.d.ts +1 -1
- package/typed/collision-filter/collision-filter-extension.d.ts.map +1 -1
- package/typed/collision-filter/collision-filter-pass.d.ts +5 -3
- package/typed/collision-filter/collision-filter-pass.d.ts.map +1 -1
- package/typed/collision-filter/shader-module.d.ts +2 -2
- package/typed/collision-filter/shader-module.d.ts.map +1 -1
- package/typed/data-filter/aggregator.d.ts.map +1 -1
- package/typed/data-filter/data-filter-extension.d.ts +2 -2
- package/typed/data-filter/data-filter-extension.d.ts.map +1 -1
- package/typed/data-filter/shader-module.d.ts +2 -2
- package/typed/data-filter/shader-module.d.ts.map +1 -1
- package/typed/fill-style/fill-style-extension.d.ts +2 -2
- package/typed/fill-style/fill-style-extension.d.ts.map +1 -1
- package/typed/fill-style/shaders.glsl.d.ts +3 -2
- package/typed/fill-style/shaders.glsl.d.ts.map +1 -1
- package/typed/fp64/project64.d.ts +3 -2
- package/typed/fp64/project64.d.ts.map +1 -1
- package/typed/mask/mask-effect.d.ts +2 -2
- package/typed/mask/mask-effect.d.ts.map +1 -1
- package/typed/mask/mask-extension.d.ts +1 -1
- package/typed/mask/mask-extension.d.ts.map +1 -1
- package/typed/mask/mask-pass.d.ts +1 -1
- package/typed/mask/mask-pass.d.ts.map +1 -1
- package/typed/mask/shader-module.d.ts +2 -2
- package/typed/mask/shader-module.d.ts.map +1 -1
- package/typed/path-style/path-style-extension.d.ts +2 -2
- package/typed/path-style/path-style-extension.d.ts.map +1 -1
- package/typed/path-style/shaders.glsl.d.ts.map +1 -1
- package/typed/terrain/shader-module.d.ts +5 -3
- package/typed/terrain/shader-module.d.ts.map +1 -1
- package/typed/terrain/terrain-extension.d.ts +1 -1
- package/typed/terrain/terrain-extension.d.ts.map +1 -1
- package/typed/terrain/terrain-pass.d.ts +1 -1
- package/typed/terrain/terrain-pass.d.ts.map +1 -1
- package/typed/terrain/terrain-picking-pass.d.ts +1 -1
- package/typed/terrain/terrain-picking-pass.d.ts.map +1 -1
- package/typed/utils/projection-utils.d.ts +1 -1
- package/typed/utils/projection-utils.d.ts.map +1 -1
package/dist.min.js
CHANGED
|
@@ -4,19 +4,19 @@
|
|
|
4
4
|
else if (typeof define === 'function' && define.amd) define([], factory);
|
|
5
5
|
else if (typeof exports === 'object') exports['deck'] = factory();
|
|
6
6
|
else root['deck'] = factory();})(globalThis, function () {
|
|
7
|
-
"use strict";var __exports__=(()=>{var
|
|
7
|
+
"use strict";var __exports__=(()=>{var oa=Object.create;var Rt=Object.defineProperty;var sa=Object.getOwnPropertyDescriptor;var aa=Object.getOwnPropertyNames;var fa=Object.getPrototypeOf,la=Object.prototype.hasOwnProperty;var Mi=(e,t)=>()=>(t||e((t={exports:{}}).exports,t),t.exports),Ni=(e,t)=>{for(var r in t)Rt(e,r,{get:t[r],enumerable:!0})},At=(e,t,r,i)=>{if(t&&typeof t=="object"||typeof t=="function")for(let n of aa(t))!la.call(e,n)&&n!==r&&Rt(e,n,{get:()=>t[n],enumerable:!(i=sa(t,n))||i.enumerable});return e},ue=(e,t,r)=>(At(e,t,"default"),r&&At(r,t,"default")),T=(e,t,r)=>(r=e!=null?oa(fa(e)):{},At(t||!e||!e.__esModule?Rt(r,"default",{value:e,enumerable:!0}):r,e)),ca=e=>At(Rt({},"__esModule",{value:!0}),e);var S=Mi((ld,Bi)=>{Bi.exports=globalThis.deck});var E=Mi((hd,Hi)=>{Hi.exports=globalThis.luma});var gt={};Ni(gt,{BrushingExtension:()=>vt,ClipExtension:()=>dr,CollisionFilterExtension:()=>vr,DataFilterExtension:()=>er,FillStyleExtension:()=>cr,Fp64Extension:()=>Ai,MaskExtension:()=>yr,PathStyleExtension:()=>ar,_TerrainExtension:()=>wr,project64:()=>rr});var Z={},Di=T(S());ue(Z,T(S()));if(!Di.Layer)throw new Error("@deck.gl/core is not found");ue(gt,Z);var Vi=T(S());var wi=T(S()),ua=`
|
|
8
8
|
uniform bool brushing_enabled;
|
|
9
9
|
uniform int brushing_target;
|
|
10
10
|
uniform vec2 brushing_mousePos;
|
|
11
11
|
uniform float brushing_radius;
|
|
12
12
|
|
|
13
13
|
#ifdef NON_INSTANCED_MODEL
|
|
14
|
-
|
|
14
|
+
in vec2 brushingTargets;
|
|
15
15
|
#else
|
|
16
|
-
|
|
16
|
+
in vec2 instanceBrushingTargets;
|
|
17
17
|
#endif
|
|
18
18
|
|
|
19
|
-
|
|
19
|
+
out float brushing_isVisible;
|
|
20
20
|
|
|
21
21
|
bool brushing_isPointInRange(vec2 position) {
|
|
22
22
|
if (!brushing_enabled) {
|
|
@@ -36,10 +36,10 @@
|
|
|
36
36
|
void brushing_setVisible(bool visible) {
|
|
37
37
|
brushing_isVisible = float(visible);
|
|
38
38
|
}
|
|
39
|
-
`,
|
|
39
|
+
`,_a=`
|
|
40
40
|
uniform bool brushing_enabled;
|
|
41
|
-
|
|
42
|
-
`,
|
|
41
|
+
in float brushing_isVisible;
|
|
42
|
+
`,da={source:0,target:1,custom:2,source_target:3},pa={"vs:DECKGL_FILTER_GL_POSITION":`
|
|
43
43
|
vec2 brushingTarget;
|
|
44
44
|
vec2 brushingSource;
|
|
45
45
|
if (brushing_target == 3) {
|
|
@@ -67,10 +67,9 @@
|
|
|
67
67
|
if (brushing_enabled && brushing_isVisible < 0.5) {
|
|
68
68
|
discard;
|
|
69
69
|
}
|
|
70
|
-
`},Wn={name:"brushing",dependencies:[Vn.project],vs:na,fs:ia,inject:sa,getUniforms:function(t){if(!t||!("viewport"in t))return{};var r=t.brushingEnabled,n=r===void 0?!0:r,o=t.brushingRadius,s=o===void 0?1e4:o,a=t.brushingTarget,_=a===void 0?"source":a,f=t.mousePosition,u=t.viewport;return{brushing_enabled:Boolean(n&&f&&u.containsPixel(f)),brushing_radius:s,brushing_target:oa[_]||0,brushing_mousePos:f?u.unproject([f.x-u.x,f.y-u.y]):[0,0]}}};function At(e){return typeof Symbol=="function"&&typeof Symbol.iterator=="symbol"?At=function(r){return typeof r}:At=function(r){return r&&typeof Symbol=="function"&&r.constructor===Symbol&&r!==Symbol.prototype?"symbol":typeof r},At(e)}function aa(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}function _a(e,t){if(typeof t!="function"&&t!==null)throw new TypeError("Super expression must either be null or a function");e.prototype=Object.create(t&&t.prototype,{constructor:{value:e,writable:!0,configurable:!0}}),t&&Dr(e,t)}function Dr(e,t){return Dr=Object.setPrototypeOf||function(n,o){return n.__proto__=o,n},Dr(e,t)}function fa(e){var t=ca();return function(){var n=pt(e),o;if(t){var s=pt(this).constructor;o=Reflect.construct(n,arguments,s)}else o=n.apply(this,arguments);return ua(this,o)}}function ua(e,t){if(t&&(At(t)==="object"||typeof t=="function"))return t;if(t!==void 0)throw new TypeError("Derived constructors may only return object or undefined");return la(e)}function la(e){if(e===void 0)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return e}function ca(){if(typeof Reflect>"u"||!Reflect.construct||Reflect.construct.sham)return!1;if(typeof Proxy=="function")return!0;try{return Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],function(){})),!0}catch{return!1}}function pt(e){return pt=Object.setPrototypeOf?Object.getPrototypeOf:function(r){return r.__proto__||Object.getPrototypeOf(r)},pt(e)}var Ea={getBrushingTarget:{type:"accessor",value:[0,0]},brushingTarget:"source",brushingEnabled:!0,brushingRadius:1e4},ht=function(e){_a(r,e);var t=fa(r);function r(){return aa(this,r),t.apply(this,arguments)}var n=r.prototype;return n.getShaders=function(){return{modules:[Wn]}},n.initializeState=function(s,a){var _=this,f=this.getAttributeManager();f&&f.add({brushingTargets:{size:2,accessor:"getBrushingTarget",shaderAttributes:{brushingTargets:{divisor:0},instanceBrushingTargets:{divisor:1}}}});var u=function(){var c;(c=_.getCurrentLayer())===null||c===void 0||c.setNeedsRedraw()};this.state.onMouseMove=u,s.deck&&s.deck.eventManager.on({pointermove:u,pointerleave:u})},n.finalizeState=function(s,a){if(s.deck){var _=this.state.onMouseMove;s.deck.eventManager.off({pointermove:_,pointerleave:_})}},r}(kn.LayerExtension);ht.defaultProps=Ea;ht.extensionName="BrushingExtension";var da="Failed to create WebGL context in Node.js, headless gl returned null",Ra=" luma.gl: loaded under Node.js without headless gl installed, meaning that WebGL contexts can not be created. This may not be an error. For example, this is a typical configuration for isorender applications running on the server.",Ta={width:1,height:1,debug:!0,throwOnError:!1},Ur=null;function Kn(){return Ur!==null}function jn(e){e={...Ta,...e};let{width:t,height:r,webgl1:n,webgl2:o}=e;if(o&&!n)throw new Error("headless-gl does not support WebGL2");if(!Ur)throw new Error(Ra);let s=Ur(t,r,e);if(!s)throw new Error(da);return s}var C=p(g(),1);function je(e){if(typeof window<"u"&&typeof window.process=="object"&&window.process.type==="renderer"||typeof process<"u"&&typeof process.versions=="object"&&Boolean(process.versions.electron))return!0;let t=typeof navigator=="object"&&typeof navigator.userAgent=="string"&&navigator.userAgent,r=e||t;return!!(r&&r.indexOf("Electron")>=0)}function Y(){return!(typeof process=="object"&&String(process)==="[object process]"&&!process.browser)||je()}var AE=globalThis.self||globalThis.window||globalThis.global,pE=globalThis.window||globalThis.self||globalThis.global,hE=globalThis.document||{},mE=globalThis.process||{},SE=globalThis.console,zn=globalThis.navigator||{};var wr=globalThis;function mt(e){if(!e&&!Y())return"Node";if(je(e))return"Electron";let t=e||zn.userAgent||"";if(t.indexOf("Edge")>-1)return"Edge";let r=t.indexOf("MSIE ")!==-1,n=t.indexOf("Trident/")!==-1;return r||n?"IE":wr.chrome?"Chrome":wr.safari?"Safari":wr.mozInnerScreenX?"Firefox":"Unknown"}var ti=p(g(),1);var Ye={};function Aa(e){globalThis.console&&globalThis.console.error&&globalThis.console.error(e)}function pa(e){globalThis.console&&globalThis.console.log&&globalThis.console.log(e)}function ha(e,t){Ye[e]=!0,t!==void 0&&Aa(t)}function ma(e){let t=e.getError;e.getError=function(){let n;do n=t.apply(e),n!==e.NO_ERROR&&(Ye[n]=!0);while(n!==e.NO_ERROR);for(n in Ye)if(Ye[n])return delete Ye[n],parseInt(n,10);return e.NO_ERROR}}var ze=function e(t){let r=t.gl;this.ext=t,this.isAlive=!0,this.hasBeenBound=!1,this.elementArrayBuffer=null,this.attribs=new Array(t.maxVertexAttribs);for(let n=0;n<this.attribs.length;n++){let o=new e.VertexAttrib(r);this.attribs[n]=o}this.maxAttrib=0};ze.VertexAttrib=function(t){this.enabled=!1,this.buffer=null,this.size=4,this.type=t.FLOAT,this.normalized=!1,this.stride=16,this.offset=0,this.cached="",this.recache()};ze.VertexAttrib.prototype.recache=function(){this.cached=[this.size,this.type,this.normalized,this.stride,this.offset].join(":")};var me=function(t){let r=this;this.gl=t,ma(t);let n=this.original={getParameter:t.getParameter,enableVertexAttribArray:t.enableVertexAttribArray,disableVertexAttribArray:t.disableVertexAttribArray,bindBuffer:t.bindBuffer,getVertexAttrib:t.getVertexAttrib,vertexAttribPointer:t.vertexAttribPointer};t.getParameter=function(s){return s===r.VERTEX_ARRAY_BINDING_OES?r.currentVertexArrayObject===r.defaultVertexArrayObject?null:r.currentVertexArrayObject:n.getParameter.apply(this,arguments)},t.enableVertexAttribArray=function(s){let a=r.currentVertexArrayObject;a.maxAttrib=Math.max(a.maxAttrib,s);let _=a.attribs[s];return _.enabled=!0,n.enableVertexAttribArray.apply(this,arguments)},t.disableVertexAttribArray=function(s){let a=r.currentVertexArrayObject;a.maxAttrib=Math.max(a.maxAttrib,s);let _=a.attribs[s];return _.enabled=!1,n.disableVertexAttribArray.apply(this,arguments)},t.bindBuffer=function(s,a){switch(s){case t.ARRAY_BUFFER:r.currentArrayBuffer=a;break;case t.ELEMENT_ARRAY_BUFFER:r.currentVertexArrayObject.elementArrayBuffer=a;break;default:}return n.bindBuffer.apply(this,arguments)},t.getVertexAttrib=function(s,a){let f=r.currentVertexArrayObject.attribs[s];switch(a){case t.VERTEX_ATTRIB_ARRAY_BUFFER_BINDING:return f.buffer;case t.VERTEX_ATTRIB_ARRAY_ENABLED:return f.enabled;case t.VERTEX_ATTRIB_ARRAY_SIZE:return f.size;case t.VERTEX_ATTRIB_ARRAY_STRIDE:return f.stride;case t.VERTEX_ATTRIB_ARRAY_TYPE:return f.type;case t.VERTEX_ATTRIB_ARRAY_NORMALIZED:return f.normalized;default:return n.getVertexAttrib.apply(this,arguments)}},t.vertexAttribPointer=function(s,a,_,f,u,l){let c=r.currentVertexArrayObject;c.maxAttrib=Math.max(c.maxAttrib,s);let E=c.attribs[s];return E.buffer=r.currentArrayBuffer,E.size=a,E.type=_,E.normalized=f,E.stride=u,E.offset=l,E.recache(),n.vertexAttribPointer.apply(this,arguments)},t.instrumentExtension&&t.instrumentExtension(this,"OES_vertex_array_object"),t.canvas&&t.canvas.addEventListener("webglcontextrestored",()=>{pa("OESVertexArrayObject emulation library context restored"),r.reset_()},!0),this.reset_()};me.prototype.VERTEX_ARRAY_BINDING_OES=34229;me.prototype.reset_=function(){if(this.vertexArrayObjects!==void 0)for(let n=0;n<this.vertexArrayObjects.length;++n)this.vertexArrayObjects.isAlive=!1;let r=this.gl;this.maxVertexAttribs=r.getParameter(r.MAX_VERTEX_ATTRIBS),this.defaultVertexArrayObject=new ze(this),this.currentVertexArrayObject=null,this.currentArrayBuffer=null,this.vertexArrayObjects=[this.defaultVertexArrayObject],this.bindVertexArrayOES(null)};me.prototype.createVertexArrayOES=function(){let t=new ze(this);return this.vertexArrayObjects.push(t),t};me.prototype.deleteVertexArrayOES=function(t){t.isAlive=!1,this.vertexArrayObjects.splice(this.vertexArrayObjects.indexOf(t),1),this.currentVertexArrayObject===t&&this.bindVertexArrayOES(null)};me.prototype.isVertexArrayOES=function(t){return!!(t&&t instanceof ze&&t.hasBeenBound&&t.ext===this)};me.prototype.bindVertexArrayOES=function(t){let r=this.gl;if(t&&!t.isAlive){ha(r.INVALID_OPERATION,"bindVertexArrayOES: attempt to bind deleted arrayObject");return}let n=this.original,o=this.currentVertexArrayObject;this.currentVertexArrayObject=t||this.defaultVertexArrayObject,this.currentVertexArrayObject.hasBeenBound=!0;let s=this.currentVertexArrayObject;if(o===s)return;(!o||s.elementArrayBuffer!==o.elementArrayBuffer)&&n.bindBuffer.call(r,r.ELEMENT_ARRAY_BUFFER,s.elementArrayBuffer);let a=this.currentArrayBuffer,_=Math.max(o?o.maxAttrib:0,s.maxAttrib);for(let f=0;f<=_;f++){let u=s.attribs[f],l=o?o.attribs[f]:null;if((!o||u.enabled!==l.enabled)&&(u.enabled?n.enableVertexAttribArray.call(r,f):n.disableVertexAttribArray.call(r,f)),u.enabled){let c=!1;(!o||u.buffer!==l.buffer)&&(a!==u.buffer&&(n.bindBuffer.call(r,r.ARRAY_BUFFER,u.buffer),a=u.buffer),c=!0),(c||u.cached!==l.cached)&&n.vertexAttribPointer.call(r,f,u.size,u.type,u.normalized,u.stride,u.offset)}}this.currentArrayBuffer!==a&&n.bindBuffer.call(r,r.ARRAY_BUFFER,this.currentArrayBuffer)};function Gn(e){if(typeof e.createVertexArray=="function")return;let t=e.getSupportedExtensions;e.getSupportedExtensions=function(){let o=t.call(this)||[];return o.indexOf("OES_vertex_array_object")<0&&o.push("OES_vertex_array_object"),o};let r=e.getExtension;e.getExtension=function(o){let s=r.call(this,o);return s||(o!=="OES_vertex_array_object"?null:(e.__OESVertexArrayObject||(this.__OESVertexArrayObject=new me(this)),this.__OESVertexArrayObject))}}var Se=p(g(),1);var i=function(e){return 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.VERTEX_ATTRIB_ARRAY_DIVISOR_ANGLE=35070]="VERTEX_ATTRIB_ARRAY_DIVISOR_ANGLE",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.SRGB_EXT=35904]="SRGB_EXT",e[e.SRGB_ALPHA_EXT=35906]="SRGB_ALPHA_EXT",e[e.SRGB8_ALPHA8_EXT=35907]="SRGB8_ALPHA8_EXT",e[e.FRAMEBUFFER_ATTACHMENT_COLOR_ENCODING_EXT=33296]="FRAMEBUFFER_ATTACHMENT_COLOR_ENCODING_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.UNSIGNED_INT_24_8_WEBGL=34042]="UNSIGNED_INT_24_8_WEBGL",e[e.HALF_FLOAT_OES=36193]="HALF_FLOAT_OES",e[e.RGBA32F_EXT=34836]="RGBA32F_EXT",e[e.RGB32F_EXT=34837]="RGB32F_EXT",e[e.FRAMEBUFFER_ATTACHMENT_COMPONENT_TYPE_EXT=33297]="FRAMEBUFFER_ATTACHMENT_COMPONENT_TYPE_EXT",e[e.UNSIGNED_NORMALIZED_EXT=35863]="UNSIGNED_NORMALIZED_EXT",e[e.MIN_EXT=32775]="MIN_EXT",e[e.MAX_EXT=32776]="MAX_EXT",e[e.FRAGMENT_SHADER_DERIVATIVE_HINT_OES=35723]="FRAGMENT_SHADER_DERIVATIVE_HINT_OES",e[e.COLOR_ATTACHMENT0_WEBGL=36064]="COLOR_ATTACHMENT0_WEBGL",e[e.COLOR_ATTACHMENT1_WEBGL=36065]="COLOR_ATTACHMENT1_WEBGL",e[e.COLOR_ATTACHMENT2_WEBGL=36066]="COLOR_ATTACHMENT2_WEBGL",e[e.COLOR_ATTACHMENT3_WEBGL=36067]="COLOR_ATTACHMENT3_WEBGL",e[e.COLOR_ATTACHMENT4_WEBGL=36068]="COLOR_ATTACHMENT4_WEBGL",e[e.COLOR_ATTACHMENT5_WEBGL=36069]="COLOR_ATTACHMENT5_WEBGL",e[e.COLOR_ATTACHMENT6_WEBGL=36070]="COLOR_ATTACHMENT6_WEBGL",e[e.COLOR_ATTACHMENT7_WEBGL=36071]="COLOR_ATTACHMENT7_WEBGL",e[e.COLOR_ATTACHMENT8_WEBGL=36072]="COLOR_ATTACHMENT8_WEBGL",e[e.COLOR_ATTACHMENT9_WEBGL=36073]="COLOR_ATTACHMENT9_WEBGL",e[e.COLOR_ATTACHMENT10_WEBGL=36074]="COLOR_ATTACHMENT10_WEBGL",e[e.COLOR_ATTACHMENT11_WEBGL=36075]="COLOR_ATTACHMENT11_WEBGL",e[e.COLOR_ATTACHMENT12_WEBGL=36076]="COLOR_ATTACHMENT12_WEBGL",e[e.COLOR_ATTACHMENT13_WEBGL=36077]="COLOR_ATTACHMENT13_WEBGL",e[e.COLOR_ATTACHMENT14_WEBGL=36078]="COLOR_ATTACHMENT14_WEBGL",e[e.COLOR_ATTACHMENT15_WEBGL=36079]="COLOR_ATTACHMENT15_WEBGL",e[e.DRAW_BUFFER0_WEBGL=34853]="DRAW_BUFFER0_WEBGL",e[e.DRAW_BUFFER1_WEBGL=34854]="DRAW_BUFFER1_WEBGL",e[e.DRAW_BUFFER2_WEBGL=34855]="DRAW_BUFFER2_WEBGL",e[e.DRAW_BUFFER3_WEBGL=34856]="DRAW_BUFFER3_WEBGL",e[e.DRAW_BUFFER4_WEBGL=34857]="DRAW_BUFFER4_WEBGL",e[e.DRAW_BUFFER5_WEBGL=34858]="DRAW_BUFFER5_WEBGL",e[e.DRAW_BUFFER6_WEBGL=34859]="DRAW_BUFFER6_WEBGL",e[e.DRAW_BUFFER7_WEBGL=34860]="DRAW_BUFFER7_WEBGL",e[e.DRAW_BUFFER8_WEBGL=34861]="DRAW_BUFFER8_WEBGL",e[e.DRAW_BUFFER9_WEBGL=34862]="DRAW_BUFFER9_WEBGL",e[e.DRAW_BUFFER10_WEBGL=34863]="DRAW_BUFFER10_WEBGL",e[e.DRAW_BUFFER11_WEBGL=34864]="DRAW_BUFFER11_WEBGL",e[e.DRAW_BUFFER12_WEBGL=34865]="DRAW_BUFFER12_WEBGL",e[e.DRAW_BUFFER13_WEBGL=34866]="DRAW_BUFFER13_WEBGL",e[e.DRAW_BUFFER14_WEBGL=34867]="DRAW_BUFFER14_WEBGL",e[e.DRAW_BUFFER15_WEBGL=34868]="DRAW_BUFFER15_WEBGL",e[e.MAX_COLOR_ATTACHMENTS_WEBGL=36063]="MAX_COLOR_ATTACHMENTS_WEBGL",e[e.MAX_DRAW_BUFFERS_WEBGL=34852]="MAX_DRAW_BUFFERS_WEBGL",e[e.VERTEX_ARRAY_BINDING_OES=34229]="VERTEX_ARRAY_BINDING_OES",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}({});var Lr=p(g(),1),Sa="Invalid WebGLRenderingContext";var ga="Requires WebGL2";function Oa(e){return typeof WebGLRenderingContext<"u"&&e instanceof WebGLRenderingContext||typeof WebGL2RenderingContext<"u"&&e instanceof WebGL2RenderingContext?!0:Boolean(e&&Number.isFinite(e._version))}function S(e){return typeof WebGL2RenderingContext<"u"&&e instanceof WebGL2RenderingContext?!0:Boolean(e&&e._version===2)}function Xr(e){return S(e)?e:null}function $n(e){return(0,Lr.assert)(Oa(e),Sa),e}function St(e){return(0,Lr.assert)(S(e),ga),e}var Zn="OES_element_index",qn="WEBGL_draw_buffers",Na="EXT_disjoint_timer_query",ba="EXT_disjoint_timer_query_webgl2",Ia="EXT_texture_filter_anisotropic",Qn="WEBGL_debug_renderer_info",Pa=35723,va=4352,Fa=36795,Ca=34047,Ma=37445,ya=37446,I=e=>S(e)?void 0:0,xa={[i.READ_BUFFER]:e=>S(e)?void 0:i.COLOR_ATTACHMENT0,[Pa]:e=>S(e)?void 0:va,[i.RASTERIZER_DISCARD]:I,[i.SAMPLES]:I,[Fa]:(e,t)=>{let r=S(e)?e.getExtension(ba):e.getExtension(Na);return r&&r.GPU_DISJOINT_EXT?t(r.GPU_DISJOINT_EXT):0},[Ma]:(e,t)=>{let r=e.getExtension(Qn);return t(r&&r.UNMASKED_VENDOR_WEBGL||i.VENDOR)},[ya]:(e,t)=>{let r=e.getExtension(Qn);return t(r&&r.UNMASKED_RENDERER_WEBGL||i.RENDERER)},[Ca]:(e,t)=>{var r;let n=((r=e.luma)===null||r===void 0||(r=r.extensions)===null||r===void 0?void 0:r[Ia])||e.getExtension("EXT_texture_filter_anisotropic");return n?t(n.MAX_TEXTURE_MAX_ANISOTROPY_EXT):1},[i.MAX_3D_TEXTURE_SIZE]:I,[i.MAX_ARRAY_TEXTURE_LAYERS]:I,[i.MAX_CLIENT_WAIT_TIMEOUT_WEBGL]:I,[i.MAX_COLOR_ATTACHMENTS]:(e,t)=>{if(!S(e)){let r=e.getExtension(qn);return r?t(r.MAX_COLOR_ATTACHMENTS_WEBGL):0}},[i.MAX_COMBINED_FRAGMENT_UNIFORM_COMPONENTS]:I,[i.MAX_COMBINED_UNIFORM_BLOCKS]:I,[i.MAX_COMBINED_VERTEX_UNIFORM_COMPONENTS]:I,[i.MAX_DRAW_BUFFERS]:e=>{if(!S(e)){let t=e.getExtension(qn);return t?t.MAX_DRAW_BUFFERS_WEBGL:0}},[i.MAX_ELEMENT_INDEX]:e=>e.getExtension(Zn)?2147483647:65535,[i.MAX_ELEMENTS_INDICES]:e=>e.getExtension(Zn)?16777216:65535,[i.MAX_ELEMENTS_VERTICES]:e=>16777216,[i.MAX_FRAGMENT_INPUT_COMPONENTS]:I,[i.MAX_FRAGMENT_UNIFORM_BLOCKS]:I,[i.MAX_FRAGMENT_UNIFORM_COMPONENTS]:I,[i.MAX_SAMPLES]:I,[i.MAX_SERVER_WAIT_TIMEOUT]:I,[i.MAX_TEXTURE_LOD_BIAS]:I,[i.MAX_TRANSFORM_FEEDBACK_INTERLEAVED_COMPONENTS]:I,[i.MAX_TRANSFORM_FEEDBACK_SEPARATE_ATTRIBS]:I,[i.MAX_TRANSFORM_FEEDBACK_SEPARATE_COMPONENTS]:I,[i.MAX_UNIFORM_BLOCK_SIZE]:I,[i.MAX_UNIFORM_BUFFER_BINDINGS]:I,[i.MAX_VARYING_COMPONENTS]:I,[i.MAX_VERTEX_OUTPUT_COMPONENTS]:I,[i.MAX_VERTEX_UNIFORM_BLOCKS]:I,[i.MAX_VERTEX_UNIFORM_COMPONENTS]:I,[i.MIN_PROGRAM_TEXEL_OFFSET]:I,[i.MAX_PROGRAM_TEXEL_OFFSET]:I,[i.UNIFORM_BUFFER_OFFSET_ALIGNMENT]:I};function Jn(e,t,r){let n=xa[r],o=typeof n=="function"?n(e,t,r):n;return o!==void 0?o:t(r)}function ve(e){if(!e.luma){let r={_polyfilled:!1,_extensions:{}};e.luma=r}return e.luma}var Ba="OES_vertex_array_object",ei="ANGLE_instanced_arrays",Da="WEBGL_draw_buffers",Ua="EXT_disjoint_timer_query",wa="EXT_texture_filter_anisotropic",La="VertexArray requires WebGL2 or OES_vertex_array_object extension";function Xa(e,t){return{webgl2:S(e),ext:e.getExtension(t)}}var Hr={[Ba]:{meta:{suffix:"OES"},createVertexArray:()=>{(0,Se.assert)(!1,La)},deleteVertexArray:()=>{},bindVertexArray:()=>{},isVertexArray:()=>!1},[ei]:{meta:{suffix:"ANGLE"},vertexAttribDivisor(e,t){(0,Se.assert)(t===0,"WebGL instanced rendering not supported")},drawElementsInstanced:()=>{},drawArraysInstanced:()=>{}},[Da]:{meta:{suffix:"WEBGL"},drawBuffers:()=>{(0,Se.assert)(!1)}},[Ua]:{meta:{suffix:"EXT"},createQuery:()=>{(0,Se.assert)(!1)},deleteQuery:()=>{(0,Se.assert)(!1)},beginQuery:()=>{(0,Se.assert)(!1)},endQuery:()=>{},getQuery(e,t){return this.getQueryObject(e,t)},getQueryParameter(e,t){return this.getQueryObject(e,t)},getQueryObject:(e,t)=>{}}},gt={readBuffer:(e,t,r)=>{S(e)&&t(r)},getVertexAttrib:(e,t,r,n)=>{let{webgl2:o,ext:s}=Xa(e,ei),a;switch(n){case i.VERTEX_ATTRIB_ARRAY_INTEGER:a=o?void 0:!1;break;case i.VERTEX_ATTRIB_ARRAY_DIVISOR:a=!o&&!s?0:void 0;break;default:}return a!==void 0?a:t(r,n)},getProgramParameter:(e,t,r,n)=>{if(!S(e))switch(n){case i.TRANSFORM_FEEDBACK_BUFFER_MODE:return i.SEPARATE_ATTRIBS;case i.TRANSFORM_FEEDBACK_VARYINGS:return 0;case i.ACTIVE_UNIFORM_BLOCKS:return 0;default:}return t(r,n)},getInternalformatParameter:(e,t,r,n,o)=>{if(!S(e))switch(o){case i.SAMPLES:return new Int32Array([0]);default:}return e.getInternalformatParameter(r,n,o)},getTexParameter(e,t,r,n){switch(n){case i.TEXTURE_MAX_ANISOTROPY_EXT:let o=ve(e),{_extensions:s}=o,a=s[wa];n=a&&a.TEXTURE_MAX_ANISOTROPY_EXT||i.TEXTURE_MAX_ANISOTROPY_EXT;break;default:}return t(r,n)},getParameter:Jn,hint(e,t,r,n){return t(r,n)}};function ri(e){let t=ve(e);return t._polyfilled||(Gn(e),Ha(e),Va(e,Hr),ka(e,{target:t,target2:e}),t._polyfilled=!0),e}function Ha(e){let t=ve(e),r=e.getSupportedExtensions()||[];for(let n of r){let o=e.getExtension(n);t._extensions[n]=o}}function Va(e,t){let r=ve(e);for(let n of Object.getOwnPropertyNames(t))n!=="overrides"&&Wa(e,{extension:n,target:r,target2:e})}function Wa(e,t){let{extension:r,target:n,target2:o}=t,s=Hr[r];(0,ti.assert)(s);let{meta:a={}}=s,{suffix:_=""}=a,f=e.getExtension(r);for(let u of Object.keys(s)){let l=`${u}${_}`,c=null;u==="meta"||typeof e[u]=="function"||(f&&typeof f[l]=="function"?c=function(){return f[l](...arguments)}:typeof s[u]=="function"&&(c=s[u].bind(n))),c&&(n[u]=c,o[u]=c)}}function ka(e,t){let{target:r,target2:n}=t;Object.keys(gt).forEach(o=>{if(typeof gt[o]=="function"){let s=e[o]?e[o].bind(e):()=>{},a=gt[o].bind(null,e,s);r[o]=a,n[o]=a}})}var $e=p(g(),1);var Ot={[i.BLEND]:!1,[i.BLEND_COLOR]:new Float32Array([0,0,0,0]),[i.BLEND_EQUATION_RGB]:i.FUNC_ADD,[i.BLEND_EQUATION_ALPHA]:i.FUNC_ADD,[i.BLEND_SRC_RGB]:i.ONE,[i.BLEND_DST_RGB]:i.ZERO,[i.BLEND_SRC_ALPHA]:i.ONE,[i.BLEND_DST_ALPHA]:i.ZERO,[i.COLOR_CLEAR_VALUE]:new Float32Array([0,0,0,0]),[i.COLOR_WRITEMASK]:[!0,!0,!0,!0],[i.CULL_FACE]:!1,[i.CULL_FACE_MODE]:i.BACK,[i.DEPTH_TEST]:!1,[i.DEPTH_CLEAR_VALUE]:1,[i.DEPTH_FUNC]:i.LESS,[i.DEPTH_RANGE]:new Float32Array([0,1]),[i.DEPTH_WRITEMASK]:!0,[i.DITHER]:!0,[i.CURRENT_PROGRAM]:null,[i.FRAMEBUFFER_BINDING]:null,[i.RENDERBUFFER_BINDING]:null,[i.VERTEX_ARRAY_BINDING]:null,[i.ARRAY_BUFFER_BINDING]:null,[i.FRONT_FACE]:i.CCW,[i.GENERATE_MIPMAP_HINT]:i.DONT_CARE,[i.LINE_WIDTH]:1,[i.POLYGON_OFFSET_FILL]:!1,[i.POLYGON_OFFSET_FACTOR]:0,[i.POLYGON_OFFSET_UNITS]:0,[i.SAMPLE_ALPHA_TO_COVERAGE]:!1,[i.SAMPLE_COVERAGE]:!1,[i.SAMPLE_COVERAGE_VALUE]:1,[i.SAMPLE_COVERAGE_INVERT]:!1,[i.SCISSOR_TEST]:!1,[i.SCISSOR_BOX]:new Int32Array([0,0,1024,1024]),[i.STENCIL_TEST]:!1,[i.STENCIL_CLEAR_VALUE]:0,[i.STENCIL_WRITEMASK]:4294967295,[i.STENCIL_BACK_WRITEMASK]:4294967295,[i.STENCIL_FUNC]:i.ALWAYS,[i.STENCIL_REF]:0,[i.STENCIL_VALUE_MASK]:4294967295,[i.STENCIL_BACK_FUNC]:i.ALWAYS,[i.STENCIL_BACK_REF]:0,[i.STENCIL_BACK_VALUE_MASK]:4294967295,[i.STENCIL_FAIL]:i.KEEP,[i.STENCIL_PASS_DEPTH_FAIL]:i.KEEP,[i.STENCIL_PASS_DEPTH_PASS]:i.KEEP,[i.STENCIL_BACK_FAIL]:i.KEEP,[i.STENCIL_BACK_PASS_DEPTH_FAIL]:i.KEEP,[i.STENCIL_BACK_PASS_DEPTH_PASS]:i.KEEP,[i.VIEWPORT]:[0,0,1024,1024],[i.PACK_ALIGNMENT]:4,[i.UNPACK_ALIGNMENT]:4,[i.UNPACK_FLIP_Y_WEBGL]:!1,[i.UNPACK_PREMULTIPLY_ALPHA_WEBGL]:!1,[i.UNPACK_COLORSPACE_CONVERSION_WEBGL]:i.BROWSER_DEFAULT_WEBGL,[i.TRANSFORM_FEEDBACK_BINDING]:null,[i.COPY_READ_BUFFER_BINDING]:null,[i.COPY_WRITE_BUFFER_BINDING]:null,[i.PIXEL_PACK_BUFFER_BINDING]:null,[i.PIXEL_UNPACK_BUFFER_BINDING]:null,[i.FRAGMENT_SHADER_DERIVATIVE_HINT]:i.DONT_CARE,[i.READ_FRAMEBUFFER_BINDING]:null,[i.RASTERIZER_DISCARD]:!1,[i.PACK_ROW_LENGTH]:0,[i.PACK_SKIP_PIXELS]:0,[i.PACK_SKIP_ROWS]:0,[i.UNPACK_ROW_LENGTH]:0,[i.UNPACK_IMAGE_HEIGHT]:0,[i.UNPACK_SKIP_PIXELS]:0,[i.UNPACK_SKIP_ROWS]:0,[i.UNPACK_SKIP_IMAGES]:0},J=(e,t,r)=>t?e.enable(r):e.disable(r),ni=(e,t,r)=>e.hint(r,t),H=(e,t,r)=>e.pixelStorei(r,t),ii=(e,t,r)=>{let n;return r===i.FRAMEBUFFER_BINDING?n=S(e)?i.DRAW_FRAMEBUFFER:i.FRAMEBUFFER:n=i.READ_FRAMEBUFFER,e.bindFramebuffer(n,t)},Ge=(e,t,r)=>{let o={[i.ARRAY_BUFFER_BINDING]:i.ARRAY_BUFFER,[i.COPY_READ_BUFFER_BINDING]:i.COPY_READ_BUFFER,[i.COPY_WRITE_BUFFER_BINDING]:i.COPY_WRITE_BUFFER,[i.PIXEL_PACK_BUFFER_BINDING]:i.PIXEL_PACK_BUFFER,[i.PIXEL_UNPACK_BUFFER_BINDING]:i.PIXEL_UNPACK_BUFFER}[r];e.bindBuffer(o,t)};function Vr(e){return Array.isArray(e)||ArrayBuffer.isView(e)&&!(e instanceof DataView)}var oi={[i.BLEND]:J,[i.BLEND_COLOR]:(e,t)=>e.blendColor(...t),[i.BLEND_EQUATION_RGB]:"blendEquation",[i.BLEND_EQUATION_ALPHA]:"blendEquation",[i.BLEND_SRC_RGB]:"blendFunc",[i.BLEND_DST_RGB]:"blendFunc",[i.BLEND_SRC_ALPHA]:"blendFunc",[i.BLEND_DST_ALPHA]:"blendFunc",[i.COLOR_CLEAR_VALUE]:(e,t)=>e.clearColor(...t),[i.COLOR_WRITEMASK]:(e,t)=>e.colorMask(...t),[i.CULL_FACE]:J,[i.CULL_FACE_MODE]:(e,t)=>e.cullFace(t),[i.DEPTH_TEST]:J,[i.DEPTH_CLEAR_VALUE]:(e,t)=>e.clearDepth(t),[i.DEPTH_FUNC]:(e,t)=>e.depthFunc(t),[i.DEPTH_RANGE]:(e,t)=>e.depthRange(...t),[i.DEPTH_WRITEMASK]:(e,t)=>e.depthMask(t),[i.DITHER]:J,[i.FRAGMENT_SHADER_DERIVATIVE_HINT]:ni,[i.CURRENT_PROGRAM]:(e,t)=>e.useProgram(t),[i.RENDERBUFFER_BINDING]:(e,t)=>e.bindRenderbuffer(i.RENDERBUFFER,t),[i.TRANSFORM_FEEDBACK_BINDING]:(e,t)=>{var r,n;return(r=(n=e).bindTransformFeedback)===null||r===void 0?void 0:r.call(n,i.TRANSFORM_FEEDBACK,t)},[i.VERTEX_ARRAY_BINDING]:(e,t)=>e.bindVertexArray(t),[i.FRAMEBUFFER_BINDING]:ii,[i.READ_FRAMEBUFFER_BINDING]:ii,[i.ARRAY_BUFFER_BINDING]:Ge,[i.COPY_READ_BUFFER_BINDING]:Ge,[i.COPY_WRITE_BUFFER_BINDING]:Ge,[i.PIXEL_PACK_BUFFER_BINDING]:Ge,[i.PIXEL_UNPACK_BUFFER_BINDING]:Ge,[i.FRONT_FACE]:(e,t)=>e.frontFace(t),[i.GENERATE_MIPMAP_HINT]:ni,[i.LINE_WIDTH]:(e,t)=>e.lineWidth(t),[i.POLYGON_OFFSET_FILL]:J,[i.POLYGON_OFFSET_FACTOR]:"polygonOffset",[i.POLYGON_OFFSET_UNITS]:"polygonOffset",[i.RASTERIZER_DISCARD]:J,[i.SAMPLE_ALPHA_TO_COVERAGE]:J,[i.SAMPLE_COVERAGE]:J,[i.SAMPLE_COVERAGE_VALUE]:"sampleCoverage",[i.SAMPLE_COVERAGE_INVERT]:"sampleCoverage",[i.SCISSOR_TEST]:J,[i.SCISSOR_BOX]:(e,t)=>e.scissor(...t),[i.STENCIL_TEST]:J,[i.STENCIL_CLEAR_VALUE]:(e,t)=>e.clearStencil(t),[i.STENCIL_WRITEMASK]:(e,t)=>e.stencilMaskSeparate(i.FRONT,t),[i.STENCIL_BACK_WRITEMASK]:(e,t)=>e.stencilMaskSeparate(i.BACK,t),[i.STENCIL_FUNC]:"stencilFuncFront",[i.STENCIL_REF]:"stencilFuncFront",[i.STENCIL_VALUE_MASK]:"stencilFuncFront",[i.STENCIL_BACK_FUNC]:"stencilFuncBack",[i.STENCIL_BACK_REF]:"stencilFuncBack",[i.STENCIL_BACK_VALUE_MASK]:"stencilFuncBack",[i.STENCIL_FAIL]:"stencilOpFront",[i.STENCIL_PASS_DEPTH_FAIL]:"stencilOpFront",[i.STENCIL_PASS_DEPTH_PASS]:"stencilOpFront",[i.STENCIL_BACK_FAIL]:"stencilOpBack",[i.STENCIL_BACK_PASS_DEPTH_FAIL]:"stencilOpBack",[i.STENCIL_BACK_PASS_DEPTH_PASS]:"stencilOpBack",[i.VIEWPORT]:(e,t)=>e.viewport(...t),[i.PACK_ALIGNMENT]:H,[i.UNPACK_ALIGNMENT]:H,[i.UNPACK_FLIP_Y_WEBGL]:H,[i.UNPACK_PREMULTIPLY_ALPHA_WEBGL]:H,[i.UNPACK_COLORSPACE_CONVERSION_WEBGL]:H,[i.PACK_ROW_LENGTH]:H,[i.PACK_SKIP_PIXELS]:H,[i.PACK_SKIP_ROWS]:H,[i.UNPACK_ROW_LENGTH]:H,[i.UNPACK_IMAGE_HEIGHT]:H,[i.UNPACK_SKIP_PIXELS]:H,[i.UNPACK_SKIP_ROWS]:H,[i.UNPACK_SKIP_IMAGES]:H,framebuffer:(e,t)=>{let r=t&&"handle"in t?t.handle:t;return e.bindFramebuffer(i.FRAMEBUFFER,r)},blend:(e,t)=>t?e.enable(i.BLEND):e.disable(i.BLEND),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(i.CULL_FACE):e.disable(i.CULL_FACE),cullFace:(e,t)=>e.cullFace(t),depthTest:(e,t)=>t?e.enable(i.DEPTH_TEST):e.disable(i.DEPTH_TEST),depthFunc:(e,t)=>e.depthFunc(t),depthMask:(e,t)=>e.depthMask(t),depthRange:(e,t)=>e.depthRange(...t),dither:(e,t)=>t?e.enable(i.DITHER):e.disable(i.DITHER),derivativeHint:(e,t)=>{e.hint(i.FRAGMENT_SHADER_DERIVATIVE_HINT,t)},frontFace:(e,t)=>e.frontFace(t),mipmapHint:(e,t)=>e.hint(i.GENERATE_MIPMAP_HINT,t),lineWidth:(e,t)=>e.lineWidth(t),polygonOffsetFill:(e,t)=>t?e.enable(i.POLYGON_OFFSET_FILL):e.disable(i.POLYGON_OFFSET_FILL),polygonOffset:(e,t)=>e.polygonOffset(...t),sampleCoverage:(e,t)=>e.sampleCoverage(...t),scissorTest:(e,t)=>t?e.enable(i.SCISSOR_TEST):e.disable(i.SCISSOR_TEST),scissor:(e,t)=>e.scissor(...t),stencilTest:(e,t)=>t?e.enable(i.STENCIL_TEST):e.disable(i.STENCIL_TEST),stencilMask:(e,t)=>{t=Vr(t)?t:[t,t];let[r,n]=t;e.stencilMaskSeparate(i.FRONT,r),e.stencilMaskSeparate(i.BACK,n)},stencilFunc:(e,t)=>{t=Vr(t)&&t.length===3?[...t,...t]:t;let[r,n,o,s,a,_]=t;e.stencilFuncSeparate(i.FRONT,r,n,o),e.stencilFuncSeparate(i.BACK,s,a,_)},stencilOp:(e,t)=>{t=Vr(t)&&t.length===3?[...t,...t]:t;let[r,n,o,s,a,_]=t;e.stencilOpSeparate(i.FRONT,r,n,o),e.stencilOpSeparate(i.BACK,s,a,_)},viewport:(e,t)=>e.viewport(...t)};function v(e,t,r){return t[e]!==void 0?t[e]:r[e]}var si={blendEquation:(e,t,r)=>e.blendEquationSeparate(v(i.BLEND_EQUATION_RGB,t,r),v(i.BLEND_EQUATION_ALPHA,t,r)),blendFunc:(e,t,r)=>e.blendFuncSeparate(v(i.BLEND_SRC_RGB,t,r),v(i.BLEND_DST_RGB,t,r),v(i.BLEND_SRC_ALPHA,t,r),v(i.BLEND_DST_ALPHA,t,r)),polygonOffset:(e,t,r)=>e.polygonOffset(v(i.POLYGON_OFFSET_FACTOR,t,r),v(i.POLYGON_OFFSET_UNITS,t,r)),sampleCoverage:(e,t,r)=>e.sampleCoverage(v(i.SAMPLE_COVERAGE_VALUE,t,r),v(i.SAMPLE_COVERAGE_INVERT,t,r)),stencilFuncFront:(e,t,r)=>e.stencilFuncSeparate(i.FRONT,v(i.STENCIL_FUNC,t,r),v(i.STENCIL_REF,t,r),v(i.STENCIL_VALUE_MASK,t,r)),stencilFuncBack:(e,t,r)=>e.stencilFuncSeparate(i.BACK,v(i.STENCIL_BACK_FUNC,t,r),v(i.STENCIL_BACK_REF,t,r),v(i.STENCIL_BACK_VALUE_MASK,t,r)),stencilOpFront:(e,t,r)=>e.stencilOpSeparate(i.FRONT,v(i.STENCIL_FAIL,t,r),v(i.STENCIL_PASS_DEPTH_FAIL,t,r),v(i.STENCIL_PASS_DEPTH_PASS,t,r)),stencilOpBack:(e,t,r)=>e.stencilOpSeparate(i.BACK,v(i.STENCIL_BACK_FAIL,t,r),v(i.STENCIL_BACK_PASS_DEPTH_FAIL,t,r),v(i.STENCIL_BACK_PASS_DEPTH_PASS,t,r))},Wr={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({[i.CURRENT_PROGRAM]:t}),bindRenderbuffer:(e,t,r)=>e({[i.RENDERBUFFER_BINDING]:r}),bindTransformFeedback:(e,t,r)=>e({[i.TRANSFORM_FEEDBACK_BINDING]:r}),bindVertexArray:(e,t)=>e({[i.VERTEX_ARRAY_BINDING]:t}),bindFramebuffer:(e,t,r)=>{switch(t){case i.FRAMEBUFFER:return e({[i.DRAW_FRAMEBUFFER_BINDING]:r,[i.READ_FRAMEBUFFER_BINDING]:r});case i.DRAW_FRAMEBUFFER:return e({[i.DRAW_FRAMEBUFFER_BINDING]:r});case i.READ_FRAMEBUFFER:return e({[i.READ_FRAMEBUFFER_BINDING]:r});default:return null}},bindBuffer:(e,t,r)=>{let n={[i.ARRAY_BUFFER]:[i.ARRAY_BUFFER_BINDING],[i.COPY_READ_BUFFER]:[i.COPY_READ_BUFFER_BINDING],[i.COPY_WRITE_BUFFER]:[i.COPY_WRITE_BUFFER_BINDING],[i.PIXEL_PACK_BUFFER]:[i.PIXEL_PACK_BUFFER_BINDING],[i.PIXEL_UNPACK_BUFFER]:[i.PIXEL_UNPACK_BUFFER_BINDING]}[t];return n?e({[n]:r}):{valueChanged:!0}},blendColor:(e,t,r,n,o)=>e({[i.BLEND_COLOR]:new Float32Array([t,r,n,o])}),blendEquation:(e,t)=>e({[i.BLEND_EQUATION_RGB]:t,[i.BLEND_EQUATION_ALPHA]:t}),blendEquationSeparate:(e,t,r)=>e({[i.BLEND_EQUATION_RGB]:t,[i.BLEND_EQUATION_ALPHA]:r}),blendFunc:(e,t,r)=>e({[i.BLEND_SRC_RGB]:t,[i.BLEND_DST_RGB]:r,[i.BLEND_SRC_ALPHA]:t,[i.BLEND_DST_ALPHA]:r}),blendFuncSeparate:(e,t,r,n,o)=>e({[i.BLEND_SRC_RGB]:t,[i.BLEND_DST_RGB]:r,[i.BLEND_SRC_ALPHA]:n,[i.BLEND_DST_ALPHA]:o}),clearColor:(e,t,r,n,o)=>e({[i.COLOR_CLEAR_VALUE]:new Float32Array([t,r,n,o])}),clearDepth:(e,t)=>e({[i.DEPTH_CLEAR_VALUE]:t}),clearStencil:(e,t)=>e({[i.STENCIL_CLEAR_VALUE]:t}),colorMask:(e,t,r,n,o)=>e({[i.COLOR_WRITEMASK]:[t,r,n,o]}),cullFace:(e,t)=>e({[i.CULL_FACE_MODE]:t}),depthFunc:(e,t)=>e({[i.DEPTH_FUNC]:t}),depthRange:(e,t,r)=>e({[i.DEPTH_RANGE]:new Float32Array([t,r])}),depthMask:(e,t)=>e({[i.DEPTH_WRITEMASK]:t}),frontFace:(e,t)=>e({[i.FRONT_FACE]:t}),lineWidth:(e,t)=>e({[i.LINE_WIDTH]:t}),polygonOffset:(e,t,r)=>e({[i.POLYGON_OFFSET_FACTOR]:t,[i.POLYGON_OFFSET_UNITS]:r}),sampleCoverage:(e,t,r)=>e({[i.SAMPLE_COVERAGE_VALUE]:t,[i.SAMPLE_COVERAGE_INVERT]:r}),scissor:(e,t,r,n,o)=>e({[i.SCISSOR_BOX]:new Int32Array([t,r,n,o])}),stencilMask:(e,t)=>e({[i.STENCIL_WRITEMASK]:t,[i.STENCIL_BACK_WRITEMASK]:t}),stencilMaskSeparate:(e,t,r)=>e({[t===i.FRONT?i.STENCIL_WRITEMASK:i.STENCIL_BACK_WRITEMASK]:r}),stencilFunc:(e,t,r,n)=>e({[i.STENCIL_FUNC]:t,[i.STENCIL_REF]:r,[i.STENCIL_VALUE_MASK]:n,[i.STENCIL_BACK_FUNC]:t,[i.STENCIL_BACK_REF]:r,[i.STENCIL_BACK_VALUE_MASK]:n}),stencilFuncSeparate:(e,t,r,n,o)=>e({[t===i.FRONT?i.STENCIL_FUNC:i.STENCIL_BACK_FUNC]:r,[t===i.FRONT?i.STENCIL_REF:i.STENCIL_BACK_REF]:n,[t===i.FRONT?i.STENCIL_VALUE_MASK:i.STENCIL_BACK_VALUE_MASK]:o}),stencilOp:(e,t,r,n)=>e({[i.STENCIL_FAIL]:t,[i.STENCIL_PASS_DEPTH_FAIL]:r,[i.STENCIL_PASS_DEPTH_PASS]:n,[i.STENCIL_BACK_FAIL]:t,[i.STENCIL_BACK_PASS_DEPTH_FAIL]:r,[i.STENCIL_BACK_PASS_DEPTH_PASS]:n}),stencilOpSeparate:(e,t,r,n,o)=>e({[t===i.FRONT?i.STENCIL_FAIL:i.STENCIL_BACK_FAIL]:r,[t===i.FRONT?i.STENCIL_PASS_DEPTH_FAIL:i.STENCIL_BACK_PASS_DEPTH_FAIL]:n,[t===i.FRONT?i.STENCIL_PASS_DEPTH_PASS:i.STENCIL_BACK_PASS_DEPTH_PASS]:o}),viewport:(e,t,r,n,o)=>e({[i.VIEWPORT]:[t,r,n,o]})},ee=(e,t)=>e.isEnabled(t),kr={[i.BLEND]:ee,[i.CULL_FACE]:ee,[i.DEPTH_TEST]:ee,[i.DITHER]:ee,[i.POLYGON_OFFSET_FILL]:ee,[i.SAMPLE_ALPHA_TO_COVERAGE]:ee,[i.SAMPLE_COVERAGE]:ee,[i.SCISSOR_TEST]:ee,[i.STENCIL_TEST]:ee,[i.RASTERIZER_DISCARD]:ee},ai=new Set([i.ACTIVE_TEXTURE,i.TRANSFORM_FEEDBACK_ACTIVE,i.TRANSFORM_FEEDBACK_PAUSED,i.TRANSFORM_FEEDBACK_BUFFER_BINDING,i.UNIFORM_BUFFER_BINDING,i.ELEMENT_ARRAY_BUFFER_BINDING,i.IMPLEMENTATION_COLOR_READ_FORMAT,i.IMPLEMENTATION_COLOR_READ_TYPE,i.READ_BUFFER,i.DRAW_BUFFER0,i.DRAW_BUFFER1,i.DRAW_BUFFER2,i.DRAW_BUFFER3,i.DRAW_BUFFER4,i.DRAW_BUFFER5,i.DRAW_BUFFER6,i.DRAW_BUFFER7,i.DRAW_BUFFER8,i.DRAW_BUFFER9,i.DRAW_BUFFER10,i.DRAW_BUFFER11,i.DRAW_BUFFER12,i.DRAW_BUFFER13,i.DRAW_BUFFER14,i.DRAW_BUFFER15,i.SAMPLER_BINDING,i.TEXTURE_BINDING_2D,i.TEXTURE_BINDING_2D_ARRAY,i.TEXTURE_BINDING_3D,i.TEXTURE_BINDING_CUBE_MAP]);function ce(e,t){let n=M.attach(e).gl;if(Ka(t))return;let o={};for(let a in t){let _=Number(a),f=oi[a];f&&(typeof f=="string"?o[f]=!0:f(n,t[a],_))}let s=n.state&&n.state.cache;if(s)for(let a in o){let _=si[a];_(n,t,s)}}function _i(e){let t=arguments.length>1&&arguments[1]!==void 0?arguments[1]:Ot,n=M.attach(e).gl;if(typeof t=="number"){let a=t,_=kr[a];return _?_(n,a):n.getParameter(a)}let o=Array.isArray(t)?t:Object.keys(t),s={};for(let a of o){let _=kr[a];s[a]=_?_(n,Number(a)):n.getParameter(Number(a))}return s}function Ka(e){for(let t in e)return!1;return!0}function fi(e,t){if(e===t)return!0;let r=Array.isArray(e)||ArrayBuffer.isView(e),n=Array.isArray(t)||ArrayBuffer.isView(t);if(r&&n&&e.length===t.length){for(let o=0;o<e.length;++o)if(e[o]!==t[o])return!1;return!0}return!1}var Kr=class{constructor(t){let{copyState:r=!1,log:n=()=>{}}=arguments.length>1&&arguments[1]!==void 0?arguments[1]:{};this.gl=void 0,this.program=null,this.stateStack=[],this.enable=!0,this.cache=void 0,this.log=void 0,this.gl=t,this.cache=r?_i(t):Object.assign({},Ot),this.log=n,this._updateCache=this._updateCache.bind(this),Object.seal(this)}push(){let t=arguments.length>0&&arguments[0]!==void 0?arguments[0]:{};this.stateStack.push({})}pop(){(0,$e.assert)(this.stateStack.length>0);let t=this.stateStack[this.stateStack.length-1];ce(this.gl,t),this.stateStack.pop()}_updateCache(t){let r=!1,n,o=this.stateStack.length>0?this.stateStack[this.stateStack.length-1]:null;for(let s in t){(0,$e.assert)(s!==void 0);let a=t[s],_=this.cache[s];fi(a,_)||(r=!0,n=_,o&&!(s in o)&&(o[s]=_),this.cache[s]=a)}return{valueChanged:r,oldValue:n}}};function ge(e){return e.state}function jr(e,t){let{enable:r=!0,copyState:n}=t;if((0,$e.assert)(n!==void 0),!e.state){e.state=new Kr(e,{copyState:n}),Ya(e);for(let s in Wr){let a=Wr[s];ja(e,s,a)}ui(e,"getParameter"),ui(e,"isEnabled")}let o=ge(e);return o.enable=r,e}function Fe(e){let t=ge(e);t||(jr(e,{copyState:!1}),t=ge(e)),t.push()}function Oe(e){let t=ge(e);(0,$e.assert)(t),t.pop()}function ui(e,t){let r=e[t].bind(e);e[t]=function(o){if(o===void 0||ai.has(o))return r(o);let s=ge(e);return o in s.cache||(s.cache[o]=r(o)),s.enable?s.cache[o]:r(o)},Object.defineProperty(e[t],"name",{value:`${t}-from-cache`,configurable:!1})}function ja(e,t,r){if(!e[t])return;let n=e[t].bind(e);e[t]=function(){let s=ge(e);for(var a=arguments.length,_=new Array(a),f=0;f<a;f++)_[f]=arguments[f];let{valueChanged:u,oldValue:l}=r(s._updateCache,..._);return u&&n(..._),l},Object.defineProperty(e[t],"name",{value:`${t}-to-cache`,configurable:!1})}function Ya(e){let t=e.useProgram.bind(e);e.useProgram=function(n){let o=ge(e);o.program!==n&&(t(n),o.program=n)}}var za={webgl2:!0,webgl1:!0,powerPreference:"high-performance",onContextLost:()=>console.error("WebGL context lost"),onContextRestored:()=>console.info("WebGL context restored")};function li(e,t){t={...za,...t};let r=null,n=s=>r=s.statusMessage||r;e.addEventListener("webglcontextcreationerror",n,!1);let o=null;if(t.type==="webgl2"&&(t={...t,webgl1:!1}),t.type==="webgl1"&&(t={...t,webgl2:!1}),!o&&t.webgl2&&(o=e.getContext("webgl2",t)),!o&&t.webgl1&&(o=e.getContext("webgl",t)),e.removeEventListener("webglcontextcreationerror",n,!1),!o)throw new Error(`Failed to create ${t.webgl2&&!t.webgl1?"WebGL2":"WebGL"} context: ${r||"Unknown error"}`);if(t.onContextLost){let{onContextLost:s}=t;e.addEventListener("webglcontextlost",a=>s(a),!1)}if(t.onContextRestored){let{onContextRestored:s}=t;e.addEventListener("webglcontextrestored",a=>s(a),!1)}return o}function ci(e){let t=e.getParameter(i.VENDOR),r=e.getParameter(i.RENDERER),n=e.getExtension("WEBGL_debug_renderer_info"),o=e.getParameter(n?n.UNMASKED_VENDOR_WEBGL:i.VENDOR),s=e.getParameter(n?n.UNMASKED_RENDERER_WEBGL:i.RENDERER),f=Ga(o||t,s||r);return{type:S(e)?"webgl2":"webgl",gpu:f,vendor:o||t,renderer:s||r,version:e.getParameter(i.VERSION),shadingLanguages:["glsl"],shadingLanguageVersions:{glsl:e.getParameter(i.SHADING_LANGUAGE_VERSION)}}}function Ga(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 Ei(){let e=arguments.length>0&&arguments[0]!==void 0?arguments[0]:{},t=typeof window<"u"?window.navigator||{}:{},r=e.userAgent||t.userAgent||"",n=r.indexOf("MSIE ")!==-1,o=r.indexOf("Trident/")!==-1;return n||o}var Gr=p(g(),1);function Nt(e){switch(e){case"uint8":return i.UNSIGNED_BYTE;case"sint8":return i.BYTE;case"unorm8":return i.UNSIGNED_BYTE;case"snorm8":return i.BYTE;case"uint16":return i.UNSIGNED_SHORT;case"sint16":return i.SHORT;case"unorm16":return i.UNSIGNED_SHORT;case"snorm16":return i.SHORT;case"uint32":return i.UNSIGNED_INT;case"sint32":return i.INT;case"float16":return i.HALF_FLOAT;case"float32":return i.FLOAT}throw new Error(String(e))}var U="texture-compression-bc",O="texture-compression-astc",te="texture-compression-etc2",$a="texture-compression-etc1-webgl",bt="texture-compression-pvrtc-webgl",Yr="texture-compression-atc-webgl",Ze="WEBGL_compressed_texture_s3tc",qe="WEBGL_compressed_texture_s3tc_srgb",Ce="EXT_texture_compression_rgtc",Qe="EXT_texture_compression_bptc",Za="WEBGL_compressed_texture_etc",qa="WEBGL_compressed_texture_astc",Qa="WEBGL_compressed_texture_etc1",Ja="WEBGL_compressed_texture_pvrtc",e_="WEBGL_compressed_texture_atc",di="EXT_sRGB",se="EXT_texture_norm16",t_="WEBGL_color_buffer_float",r_="EXT_color_buffer_float",z=(e,t)=>e.getExtension(t),Ne=(e,t)=>t.every(r=>e.getExtension(r)),zr={"texture-blend-float-webgl1":e=>S(e)?!0:z(e,"EXT_float_blend"),"texture-formats-srgb-webgl1":e=>S(e)?!0:z(e,di),"texture-formats-depth-webgl1":e=>S(e)?!0:z(e,"WEBGL_depth_texture"),"texture-formats-float32-webgl1":e=>S(e)?!0:z(e,"OES_texture_float"),"texture-formats-float16-webgl1":e=>S(e)?!0:z(e,"OES_texture_half_float"),"texture-formats-norm16-webgl":e=>S(e)?z(e,se):!1,"texture-filter-linear-float32-webgl":e=>z(e,"OES_texture_float_linear"),"texture-filter-linear-float16-webgl":e=>z(e,"OES_texture_half_float_linear"),"texture-filter-anisotropic-webgl":e=>z(e,"EXT_texture_filter_anisotropic"),"texture-renderable-float32-webgl":e=>z(e,"EXT_color_buffer_float"),"texture-renderable-float16-webgl":e=>z(e,"EXT_color_buffer_half_float"),"texture-compression-bc":e=>Ne(e,[Ze,qe,Ce,Qe]),"texture-compression-bc5-webgl":e=>Ne(e,[Ce]),"texture-compression-etc2":e=>Ne(e,[Za]),"texture-compression-astc":e=>Ne(e,[qa]),"texture-compression-etc1-webgl":e=>Ne(e,[Qa]),"texture-compression-pvrtc-webgl":e=>Ne(e,[Ja]),"texture-compression-atc-webgl":e=>Ne(e,[e_])};function n_(e,t){var r;return((r=zr[t])===null||r===void 0?void 0:r.call(zr,e))||!1}function Ri(e){return Object.keys(zr).filter(r=>n_(e,r))}var Je={"rgb8unorm-unsized":{gl:i.RGB,gl1:i.RGB,b:4,c:2,bpp:4,dataFormat:i.RGB,types:[i.UNSIGNED_BYTE,i.UNSIGNED_SHORT_5_6_5]},"rgba8unorm-unsized":{gl:i.RGBA,gl1:i.RGBA,b:4,c:2,bpp:4,dataFormat:i.RGBA,types:[i.UNSIGNED_BYTE,i.UNSIGNED_SHORT_4_4_4_4,i.UNSIGNED_SHORT_5_5_5_1]},r8unorm:{gl:i.R8,b:1,c:1,renderbuffer:!0},r8snorm:{gl:i.R8_SNORM,b:1,c:1},r8uint:{gl:i.R8UI,b:1,c:1,renderbuffer:!0},r8sint:{gl:i.R8I,b:1,c:1,renderbuffer:!0},rg8unorm:{gl:i.RG8,b:2,c:2,renderbuffer:!0},rg8snorm:{gl:i.RG8_SNORM,b:2,c:2},rg8uint:{gl:i.RG8UI,b:2,c:2,renderbuffer:!0},rg8sint:{gl:i.RG8I,b:2,c:2,renderbuffer:!0},r16uint:{gl:i.R16UI,b:2,c:1,renderbuffer:!0},r16sint:{gl:i.R16I,b:2,c:1,renderbuffer:!0},r16float:{gl:i.R16F,b:2,c:1,render:"texture-renderable-float16-webgl",filter:"texture-filter-linear-float16-webgl",renderbuffer:!0},"r16unorm-webgl":{gl:i.R16_EXT,b:2,c:1,f:"texture-formats-norm16-webgl",renderbuffer:!0,x:se},"r16snorm-webgl":{gl:i.R16_SNORM_EXT,b:2,c:1,f:"texture-formats-norm16-webgl",x:se},"rgba4unorm-webgl":{gl:i.RGBA4,b:2,c:4,wgpu:!1,renderbuffer:!0},"rgb565unorm-webgl":{gl:i.RGB565,b:2,c:4,wgpu:!1,renderbuffer:!0},"rgb5a1unorm-webgl":{gl:i.RGB5_A1,b:2,c:4,wgpu:!1,renderbuffer:!0},"rgb8unorm-webgl":{gl:i.RGB8,b:3,c:3,wgpu:!1},"rgb8snorm-webgl":{gl:i.RGB8_SNORM,b:3,c:3,wgpu:!1},rgba8unorm:{gl:i.RGBA8,gl1:i.RGBA,b:4,c:2,bpp:4},"rgba8unorm-srgb":{gl:i.SRGB8_ALPHA8,gl1:i.SRGB_ALPHA_EXT,b:4,c:4,gl1ext:di,bpp:4},rgba8snorm:{gl:i.RGBA8_SNORM,b:4,c:4},rgba8uint:{gl:i.RGBA8UI,b:4,c:4,bpp:4},rgba8sint:{gl:i.RGBA8I,b:4,c:4,bpp:4},bgra8unorm:{b:4,c:4},"bgra8unorm-srgb":{b:4,c:4},rg16uint:{gl:i.RG16UI,b:4,c:1,bpp:4},rg16sint:{gl:i.RG16I,b:4,c:2,bpp:4},rg16float:{gl:i.RG16F,bpp:4,b:4,c:2,render:"texture-renderable-float16-webgl",filter:"texture-filter-linear-float16-webgl",renderbuffer:!0},"rg16unorm-webgl":{gl:i.RG16_EXT,b:2,c:2,f:"texture-formats-norm16-webgl",x:se},"rg16snorm-webgl":{gl:i.RG16_SNORM_EXT,b:2,c:2,f:"texture-formats-norm16-webgl",x:se},r32uint:{gl:i.R32UI,b:4,c:1,bpp:4,renderbuffer:!0},r32sint:{gl:i.R32I,b:4,c:1,bpp:4,renderbuffer:!0},r32float:{gl:i.R32F,bpp:4,b:4,c:1,render:"texture-renderable-float32-webgl",filter:"texture-filter-linear-float32-webgl"},rgb9e5ufloat:{gl:i.RGB9_E5,b:4,c:3,p:1,render:"texture-renderable-float16-webgl",filter:"texture-filter-linear-float16-webgl"},rg11b10ufloat:{gl:i.R11F_G11F_B10F,b:4,c:3,p:1,render:"texture-renderable-float32-webgl",renderbuffer:!0},rgb10a2unorm:{gl:i.RGB10_A2,b:4,c:4,p:1,renderbuffer:!0},"rgb10a2unorm-webgl":{b:4,c:4,gl:i.RGB10_A2UI,p:1,wgpu:!1,bpp:4,renderbuffer:!0},"rgb16unorm-webgl":{gl:i.RGB16_EXT,b:2,c:3,f:"texture-formats-norm16-webgl",x:se},"rgb16snorm-webgl":{gl:i.RGB16_SNORM_EXT,b:2,c:3,f:"texture-formats-norm16-webgl",x:se},rg32uint:{gl:i.RG32UI,b:8,c:2,renderbuffer:!0},rg32sint:{gl:i.RG32I,b:8,c:2,renderbuffer:!0},rg32float:{gl:i.RG32F,b:8,c:2,render:"texture-renderable-float32-webgl",filter:"texture-filter-linear-float32-webgl",renderbuffer:!0},rgba16uint:{gl:i.RGBA16UI,b:8,c:4,renderbuffer:!0},rgba16sint:{gl:i.RGBA16I,b:8,c:4,renderbuffer:!0},rgba16float:{gl:i.RGBA16F,gl1:i.RGBA,b:8,c:4,render:"texture-renderable-float16-webgl",filter:"texture-filter-linear-float16-webgl"},"rgba16unorm-webgl":{gl:i.RGBA16_EXT,b:2,c:4,f:"texture-formats-norm16-webgl",renderbuffer:!0,x:se},"rgba16snorm-webgl":{gl:i.RGBA16_SNORM_EXT,b:2,c:4,f:"texture-formats-norm16-webgl",x:se},"rgb32float-webgl":{gl:i.RGB32F,gl1:i.RGB,render:"texture-renderable-float32-webgl",filter:"texture-filter-linear-float32-webgl",gl2ext:r_,gl1ext:t_,dataFormat:i.RGB,types:[i.FLOAT]},rgba32uint:{gl:i.RGBA32UI,b:16,c:4,renderbuffer:!0},rgba32sint:{gl:i.RGBA32I,b:16,c:4,renderbuffer:!0},rgba32float:{gl:i.RGBA32F,b:16,c:4,render:"texture-renderable-float32-webgl",filter:"texture-filter-linear-float32-webgl",renderbuffer:!0},stencil8:{gl:i.STENCIL_INDEX8,gl1:i.STENCIL_INDEX8,b:1,c:1,attachment:i.STENCIL_ATTACHMENT,renderbuffer:!0},depth16unorm:{gl:i.DEPTH_COMPONENT16,gl1:i.DEPTH_COMPONENT16,b:2,c:1,attachment:i.DEPTH_ATTACHMENT,renderbuffer:!0},depth24plus:{gl:i.DEPTH_COMPONENT24,b:3,c:1,attachment:i.DEPTH_ATTACHMENT},depth32float:{gl:i.DEPTH_COMPONENT32F,b:4,c:1,attachment:i.DEPTH_ATTACHMENT,renderbuffer:!0},"depth24plus-stencil8":{gl:i.DEPTH_STENCIL,gl1:i.DEPTH_STENCIL,b:4,c:2,p:1,attachment:i.DEPTH_STENCIL_ATTACHMENT,renderbuffer:!0,depthTexture:!0},"depth24unorm-stencil8":{gl:i.DEPTH24_STENCIL8,b:4,c:2,p:1,attachment:i.DEPTH_STENCIL_ATTACHMENT,renderbuffer:!0},"depth32float-stencil8":{gl:i.DEPTH32F_STENCIL8,b:5,c:2,p:1,attachment:i.DEPTH_STENCIL_ATTACHMENT,renderbuffer:!0},"bc1-rgb-unorm-webgl":{gl:i.COMPRESSED_RGB_S3TC_DXT1_EXT,x:Ze,f:U},"bc1-rgb-unorm-srgb-webgl":{gl:i.COMPRESSED_SRGB_S3TC_DXT1_EXT,x:qe,f:U},"bc1-rgba-unorm":{gl:i.COMPRESSED_RGBA_S3TC_DXT1_EXT,x:Ze,f:U},"bc1-rgba-unorm-srgb":{gl:i.COMPRESSED_SRGB_S3TC_DXT1_EXT,x:qe,f:U},"bc2-rgba-unorm":{gl:i.COMPRESSED_RGBA_S3TC_DXT3_EXT,x:Ze,f:U},"bc2-rgba-unorm-srgb":{gl:i.COMPRESSED_SRGB_ALPHA_S3TC_DXT3_EXT,x:qe,f:U},"bc3-rgba-unorm":{gl:i.COMPRESSED_RGBA_S3TC_DXT5_EXT,x:Ze,f:U},"bc3-rgba-unorm-srgb":{gl:i.COMPRESSED_SRGB_ALPHA_S3TC_DXT5_EXT,x:qe,f:U},"bc4-r-unorm":{gl:i.COMPRESSED_RED_RGTC1_EXT,x:Ce,f:U},"bc4-r-snorm":{gl:i.COMPRESSED_SIGNED_RED_RGTC1_EXT,x:Ce,f:U},"bc5-rg-unorm":{gl:i.COMPRESSED_RED_GREEN_RGTC2_EXT,x:Ce,f:U},"bc5-rg-snorm":{gl:i.COMPRESSED_SIGNED_RED_GREEN_RGTC2_EXT,x:Ce,f:U},"bc6h-rgb-ufloat":{gl:i.COMPRESSED_RGB_BPTC_UNSIGNED_FLOAT_EXT,x:Qe,f:U},"bc6h-rgb-float":{gl:i.COMPRESSED_RGB_BPTC_SIGNED_FLOAT_EXT,x:Qe,f:U},"bc7-rgba-unorm":{gl:i.COMPRESSED_RGBA_BPTC_UNORM_EXT,x:Qe,f:U},"bc7-rgba-unorm-srgb":{gl:i.COMPRESSED_SRGB_ALPHA_BPTC_UNORM_EXT,x:Qe,f:U},"etc2-rgb8unorm":{gl:i.COMPRESSED_RGB8_ETC2,f:te},"etc2-rgb8unorm-srgb":{gl:i.COMPRESSED_SRGB8_ETC2,f:te},"etc2-rgb8a1unorm":{gl:i.COMPRESSED_RGB8_PUNCHTHROUGH_ALPHA1_ETC2,f:te},"etc2-rgb8a1unorm-srgb":{gl:i.COMPRESSED_SRGB8_PUNCHTHROUGH_ALPHA1_ETC2,f:te},"etc2-rgba8unorm":{gl:i.COMPRESSED_RGBA8_ETC2_EAC,f:te},"etc2-rgba8unorm-srgb":{gl:i.COMPRESSED_SRGB8_ALPHA8_ETC2_EAC,f:te},"eac-r11unorm":{gl:i.COMPRESSED_R11_EAC,f:te},"eac-r11snorm":{gl:i.COMPRESSED_SIGNED_R11_EAC,f:te},"eac-rg11unorm":{gl:i.COMPRESSED_RG11_EAC,f:te},"eac-rg11snorm":{gl:i.COMPRESSED_SIGNED_RG11_EAC,f:te},"astc-4x4-unorm":{gl:i.COMPRESSED_RGBA_ASTC_4x4_KHR,f:O},"astc-4x4-unorm-srgb":{gl:i.COMPRESSED_SRGB8_ALPHA8_ASTC_4x4_KHR,f:O},"astc-5x4-unorm":{gl:i.COMPRESSED_RGBA_ASTC_5x4_KHR,f:O},"astc-5x4-unorm-srgb":{gl:i.COMPRESSED_SRGB8_ALPHA8_ASTC_5x4_KHR,f:O},"astc-5x5-unorm":{gl:i.COMPRESSED_RGBA_ASTC_5x5_KHR,f:O},"astc-5x5-unorm-srgb":{gl:i.COMPRESSED_SRGB8_ALPHA8_ASTC_5x5_KHR,f:O},"astc-6x5-unorm":{gl:i.COMPRESSED_RGBA_ASTC_6x5_KHR,f:O},"astc-6x5-unorm-srgb":{gl:i.COMPRESSED_SRGB8_ALPHA8_ASTC_6x5_KHR,f:O},"astc-6x6-unorm":{gl:i.COMPRESSED_RGBA_ASTC_6x6_KHR,f:O},"astc-6x6-unorm-srgb":{gl:i.COMPRESSED_SRGB8_ALPHA8_ASTC_6x6_KHR,f:O},"astc-8x5-unorm":{gl:i.COMPRESSED_RGBA_ASTC_8x5_KHR,f:O},"astc-8x5-unorm-srgb":{gl:i.COMPRESSED_SRGB8_ALPHA8_ASTC_8x5_KHR,f:O},"astc-8x6-unorm":{gl:i.COMPRESSED_RGBA_ASTC_8x6_KHR,f:O},"astc-8x6-unorm-srgb":{gl:i.COMPRESSED_SRGB8_ALPHA8_ASTC_8x6_KHR,f:O},"astc-8x8-unorm":{gl:i.COMPRESSED_RGBA_ASTC_8x8_KHR,f:O},"astc-8x8-unorm-srgb":{gl:i.COMPRESSED_SRGB8_ALPHA8_ASTC_8x8_KHR,f:O},"astc-10x5-unorm":{gl:i.COMPRESSED_RGBA_ASTC_10x10_KHR,f:O},"astc-10x5-unorm-srgb":{gl:i.COMPRESSED_SRGB8_ALPHA8_ASTC_10x10_KHR,f:O},"astc-10x6-unorm":{gl:i.COMPRESSED_RGBA_ASTC_10x6_KHR,f:O},"astc-10x6-unorm-srgb":{gl:i.COMPRESSED_SRGB8_ALPHA8_ASTC_10x6_KHR,f:O},"astc-10x8-unorm":{gl:i.COMPRESSED_RGBA_ASTC_10x8_KHR,f:O},"astc-10x8-unorm-srgb":{gl:i.COMPRESSED_SRGB8_ALPHA8_ASTC_10x8_KHR,f:O},"astc-10x10-unorm":{gl:i.COMPRESSED_RGBA_ASTC_10x10_KHR,f:O},"astc-10x10-unorm-srgb":{gl:i.COMPRESSED_SRGB8_ALPHA8_ASTC_10x10_KHR,f:O},"astc-12x10-unorm":{gl:i.COMPRESSED_RGBA_ASTC_12x10_KHR,f:O},"astc-12x10-unorm-srgb":{gl:i.COMPRESSED_SRGB8_ALPHA8_ASTC_12x10_KHR,f:O},"astc-12x12-unorm":{gl:i.COMPRESSED_RGBA_ASTC_12x12_KHR,f:O},"astc-12x12-unorm-srgb":{gl:i.COMPRESSED_SRGB8_ALPHA8_ASTC_12x12_KHR,f:O},"pvrtc-rgb4unorm-webgl":{gl:i.COMPRESSED_RGB_PVRTC_4BPPV1_IMG,f:bt},"pvrtc-rgba4unorm-webgl":{gl:i.COMPRESSED_RGBA_PVRTC_4BPPV1_IMG,f:bt},"pvrtc-rbg2unorm-webgl":{gl:i.COMPRESSED_RGB_PVRTC_2BPPV1_IMG,f:bt},"pvrtc-rgba2unorm-webgl":{gl:i.COMPRESSED_RGBA_PVRTC_2BPPV1_IMG,f:bt},"etc1-rbg-unorm-webgl":{gl:i.COMPRESSED_RGB_ETC1_WEBGL,f:$a},"atc-rgb-unorm-webgl":{gl:i.COMPRESSED_RGB_ATC_WEBGL,f:Yr},"atc-rgba-unorm-webgl":{gl:i.COMPRESSED_RGBA_ATC_EXPLICIT_ALPHA_WEBGL,f:Yr},"atc-rgbai-unorm-webgl":{gl:i.COMPRESSED_RGBA_ATC_INTERPOLATED_ALPHA_WEBGL,f:Yr}},i_={[i.RED]:1,[i.RED_INTEGER]:1,[i.RG]:2,[i.RG_INTEGER]:2,[i.RGB]:3,[i.RGB_INTEGER]:3,[i.RGBA]:4,[i.RGBA_INTEGER]:4,[i.DEPTH_COMPONENT]:1,[i.DEPTH_STENCIL]:1,[i.ALPHA]:1,[i.LUMINANCE]:1,[i.LUMINANCE_ALPHA]:2},o_={[i.FLOAT]:4,[i.UNSIGNED_INT]:4,[i.INT]:4,[i.UNSIGNED_SHORT]:2,[i.SHORT]:2,[i.HALF_FLOAT]:2,[i.BYTE]:1,[i.UNSIGNED_BYTE]:1};function et(e,t){let r=tt(t),n=Je[r];if(!n||(S(e)?n.gl===void 0:n.gl1===void 0))return!1;let o=n.x||S(e)&&n.gl2ext||n.gl1ext;return o?Boolean(e.getExtension(o)):!0}function Ti(e,t){var r;return et(e,t)&&((r=Je[t])===null||r===void 0?void 0:r.renderbuffer)}function tt(e){if(typeof e=="string")return e;let t=Object.entries(Je).find(r=>{let[,n]=r;return n.gl===e||n.gl1===e});if(!t)throw new Error(`Unknown texture format ${e}`);return t[0]}function rt(e,t){let r=Je[e],n=t?r?.gl:r?.gl1;if(n===void 0)throw new Error(`Unsupported texture format ${e}`);return n}function Ai(e,t){let r=tt(t);if(!et(e,r))return!1;try{if((0,Gr.decodeTextureFormat)(r).signed)return!1}catch{return!1}return r.endsWith("32float")?Boolean(e.getExtension("OES_texture_float_linear")):r.endsWith("16float")?Boolean(e.getExtension("OES_texture_half_float_linear")):!0}function pi(e,t){let r=tt(t);return!(!et(e,r)||typeof r=="number")}function It(e,t){let r=tt(e),n=rt(r,t),o=(0,Gr.decodeTextureFormat)(r);return{format:n,dataFormat:s_(o.format,o.integer,o.normalized,n),type:o.dataType?Nt(o.dataType):i.UNSIGNED_BYTE,compressed:o.compressed}}function hi(e){let t=Je[e];if(!(t!=null&&t.attachment))throw new Error(`${e} is not a depth stencil format`);return t.attachment}function mi(e){let t=arguments.length>1&&arguments[1]!==void 0?arguments[1]:e.RGBA,r=arguments.length>2&&arguments[2]!==void 0?arguments[2]:i.RGBA,n=arguments.length>3&&arguments[3]!==void 0?arguments[3]:i.UNSIGNED_BYTE,o=null,s=null;try{o=e.createTexture(),e.bindTexture(i.TEXTURE_2D,o);let a=0,_=1,f=1,u=0,l=new Uint8Array([0,0,255,255]);e.texImage2D(e.TEXTURE_2D,a,t,_,f,u,r,n,l),s=e.createFramebuffer(),e.bindFramebuffer(i.FRAMEBUFFER,s),e.framebufferTexture2D(i.FRAMEBUFFER,i.COLOR_ATTACHMENT0,i.TEXTURE_2D,o,0);let c=e.checkFramebufferStatus(i.FRAMEBUFFER)===i.FRAMEBUFFER_COMPLETE;return e.bindTexture(i.TEXTURE_2D,null),c}finally{e.deleteTexture(o),e.deleteFramebuffer(s)}}function nt(e,t){let r=tt(e),n=It(r,t),o=i_[n.dataFormat]||4,s=o_[n.type]||1;return o*s}function s_(e,t,r,n){if(n===i.RGBA||n===i.RGB)return n;switch(e){case"r":return t&&!r?i.RED_INTEGER:i.RED;case"rg":return t&&!r?i.RG_INTEGER:i.RG;case"rgb":return t&&!r?i.RGB_INTEGER:i.RGB;case"rgba":return t&&!r?i.RGBA_INTEGER:i.RGBA;default:return i.RGBA}}function Si(e){let t=a_(e);for(let r of Ri(e))t.add(r);return t}function a_(e){e.getExtension("EXT_color_buffer_float"),e.getExtension("WEBGL_color_buffer_float"),e.getExtension("EXT_float_blend");let t=new Set;for(let r of Object.keys(gi))__(e,r)&&t.add(r);return t}function __(e,t){let r=gi[t];if(!r)return!1;let[n,o]=r||[],s=S(e)?o:n;if(typeof s=="boolean")return s;switch(t){case"texture-renderable-rgba32float-webgl":return S(e)?Boolean(e.getExtension(s)):mi(e);case"glsl-derivatives":return Zr(e,s);case"glsl-frag-data":return Zr(e,s,{behavior:"require"});case"glsl-frag-depth":return Zr(e,s);default:return Boolean(e.getExtension(s))}}var $r={};function Zr(e,t){let r=arguments.length>2&&arguments[2]!==void 0?arguments[2]:{};if(!Ei(r))return!0;if(t in $r)return $r[t];let n=r.behavior||"enable",o=`#extension GL_${t} : ${n}
|
|
71
|
-
void main(void) {}`,s=e.createShader(e.VERTEX_SHADER);if(!s)throw new Error("shader");e.shaderSource(s,o),e.compileShader(s);let a=e.getShaderParameter(s,e.COMPILE_STATUS);return e.deleteShader(s),$r[t]=a,a}var gi={webgl:[!0,!0],webgl2:[!1,!0],"timer-query-webgl":["EXT_disjoint_timer_query","EXT_disjoint_timer_query_webgl2"],"vertex-array-object-webgl1":["OES_vertex_array_object",!0],"instanced-rendering-webgl1":["ANGLE_instanced_arrays",!0],"multiple-render-targets-webgl1":["WEBGL_draw_buffers",!0],"index-uint32-webgl1":["OES_element_index_uint",!0],"blend-minmax-webgl1":["EXT_blend_minmax",!0],"texture-blend-float-webgl1":["EXT_float_blend","EXT_float_blend"],"texture-formats-srgb-webgl1":["EXT_sRGB",!0],"texture-formats-depth-webgl1":["WEBGL_depth_texture",!0],"texture-formats-float32-webgl1":["OES_texture_float",!0],"texture-formats-float16-webgl1":["OES_texture_half_float",!0],"texture-filter-linear-float32-webgl":["OES_texture_float_linear","OES_texture_float_linear"],"texture-filter-linear-float16-webgl":["OES_texture_half_float_linear","OES_texture_half_float_linear"],"texture-filter-anisotropic-webgl":["EXT_texture_filter_anisotropic","EXT_texture_filter_anisotropic"],"texture-renderable-rgba32float-webgl":["WEBGL_color_buffer_float","EXT_color_buffer_float"],"texture-renderable-float32-webgl":[!1,"EXT_color_buffer_float"],"texture-renderable-float16-webgl":["EXT_color_buffer_half_float","EXT_color_buffer_half_float"],"glsl-frag-data":["WEBGL_draw_buffers",!0],"glsl-frag-depth":["EXT_frag_depth",!0],"glsl-derivatives":["OES_standard_derivatives",!0],"glsl-texture-lod":["EXT_shader_texture_lod",!0]};function Oi(e){let t=Xr(e);return{maxTextureDimension1D:0,maxTextureDimension2D:e.getParameter(i.MAX_TEXTURE_SIZE),maxTextureDimension3D:t?t.getParameter(i.MAX_3D_TEXTURE_SIZE):0,maxTextureArrayLayers:t?t.getParameter(i.MAX_ARRAY_TEXTURE_LAYERS):0,maxBindGroups:1,maxDynamicUniformBuffersPerPipelineLayout:0,maxDynamicStorageBuffersPerPipelineLayout:0,maxSampledTexturesPerShaderStage:e.getParameter(i.MAX_VERTEX_TEXTURE_IMAGE_UNITS),maxSamplersPerShaderStage:e.getParameter(i.MAX_COMBINED_TEXTURE_IMAGE_UNITS),maxStorageBuffersPerShaderStage:0,maxStorageTexturesPerShaderStage:0,maxUniformBuffersPerShaderStage:t?t.getParameter(i.MAX_UNIFORM_BUFFER_BINDINGS):0,maxUniformBufferBindingSize:t?t.getParameter(i.MAX_UNIFORM_BLOCK_SIZE):0,maxStorageBufferBindingSize:0,minUniformBufferOffsetAlignment:t?t.getParameter(i.UNIFORM_BUFFER_OFFSET_ALIGNMENT):0,minStorageBufferOffsetAlignment:0,maxVertexBuffers:0,maxVertexAttributes:e.getParameter(i.MAX_VERTEX_ATTRIBS),maxVertexBufferArrayStride:2048,maxInterStageShaderComponents:t?t.getParameter(i.MAX_VARYING_COMPONENTS):0,maxComputeWorkgroupStorageSize:0,maxComputeInvocationsPerWorkgroup:0,maxComputeWorkgroupSizeX:0,maxComputeWorkgroupSizeY:0,maxComputeWorkgroupSizeZ:0,maxComputeWorkgroupsPerDimension:0}}function Ni(e){let t=Xr(e);function r(o){return e.getParameter(o)}function n(o,s){return t?t.getParameter(o):s||0}return{[i.ALIASED_LINE_WIDTH_RANGE]:r(i.ALIASED_LINE_WIDTH_RANGE),[i.ALIASED_POINT_SIZE_RANGE]:r(i.ALIASED_POINT_SIZE_RANGE),[i.MAX_TEXTURE_SIZE]:r(i.MAX_TEXTURE_SIZE),[i.MAX_CUBE_MAP_TEXTURE_SIZE]:r(i.MAX_CUBE_MAP_TEXTURE_SIZE),[i.MAX_TEXTURE_IMAGE_UNITS]:r(i.MAX_TEXTURE_IMAGE_UNITS),[i.MAX_COMBINED_TEXTURE_IMAGE_UNITS]:r(i.MAX_COMBINED_TEXTURE_IMAGE_UNITS),[i.MAX_VERTEX_TEXTURE_IMAGE_UNITS]:r(i.MAX_VERTEX_TEXTURE_IMAGE_UNITS),[i.MAX_RENDERBUFFER_SIZE]:r(i.MAX_RENDERBUFFER_SIZE),[i.MAX_VARYING_VECTORS]:r(i.MAX_VARYING_VECTORS),[i.MAX_VERTEX_ATTRIBS]:r(i.MAX_VERTEX_ATTRIBS),[i.MAX_VERTEX_UNIFORM_VECTORS]:r(i.MAX_VERTEX_UNIFORM_VECTORS),[i.MAX_FRAGMENT_UNIFORM_VECTORS]:r(i.MAX_FRAGMENT_UNIFORM_VECTORS),[i.MAX_VIEWPORT_DIMS]:r(i.MAX_VIEWPORT_DIMS),[i.MAX_TEXTURE_MAX_ANISOTROPY_EXT]:r(i.MAX_TEXTURE_MAX_ANISOTROPY_EXT),[i.MAX_3D_TEXTURE_SIZE]:n(i.MAX_3D_TEXTURE_SIZE),[i.MAX_ARRAY_TEXTURE_LAYERS]:n(i.MAX_ARRAY_TEXTURE_LAYERS),[i.MAX_CLIENT_WAIT_TIMEOUT_WEBGL]:n(i.MAX_CLIENT_WAIT_TIMEOUT_WEBGL),[i.MAX_COLOR_ATTACHMENTS]:n(i.MAX_COLOR_ATTACHMENTS),[i.MAX_COMBINED_FRAGMENT_UNIFORM_COMPONENTS]:n(i.MAX_COMBINED_FRAGMENT_UNIFORM_COMPONENTS),[i.MAX_COMBINED_UNIFORM_BLOCKS]:n(i.MAX_COMBINED_UNIFORM_BLOCKS),[i.MAX_COMBINED_VERTEX_UNIFORM_COMPONENTS]:n(i.MAX_COMBINED_VERTEX_UNIFORM_COMPONENTS),[i.MAX_DRAW_BUFFERS]:n(i.MAX_DRAW_BUFFERS),[i.MAX_ELEMENT_INDEX]:n(i.MAX_ELEMENT_INDEX),[i.MAX_ELEMENTS_INDICES]:n(i.MAX_ELEMENTS_INDICES),[i.MAX_ELEMENTS_VERTICES]:n(i.MAX_ELEMENTS_VERTICES),[i.MAX_FRAGMENT_INPUT_COMPONENTS]:n(i.MAX_FRAGMENT_INPUT_COMPONENTS),[i.MAX_FRAGMENT_UNIFORM_BLOCKS]:n(i.MAX_FRAGMENT_UNIFORM_BLOCKS),[i.MAX_FRAGMENT_UNIFORM_COMPONENTS]:n(i.MAX_FRAGMENT_UNIFORM_COMPONENTS),[i.MAX_SAMPLES]:n(i.MAX_SAMPLES),[i.MAX_SERVER_WAIT_TIMEOUT]:n(i.MAX_SERVER_WAIT_TIMEOUT),[i.MAX_TEXTURE_LOD_BIAS]:n(i.MAX_TEXTURE_LOD_BIAS),[i.MAX_TRANSFORM_FEEDBACK_INTERLEAVED_COMPONENTS]:n(i.MAX_TRANSFORM_FEEDBACK_INTERLEAVED_COMPONENTS),[i.MAX_TRANSFORM_FEEDBACK_SEPARATE_ATTRIBS]:n(i.MAX_TRANSFORM_FEEDBACK_SEPARATE_ATTRIBS),[i.MAX_TRANSFORM_FEEDBACK_SEPARATE_COMPONENTS]:n(i.MAX_TRANSFORM_FEEDBACK_SEPARATE_COMPONENTS),[i.MAX_UNIFORM_BLOCK_SIZE]:n(i.MAX_UNIFORM_BLOCK_SIZE),[i.MAX_UNIFORM_BUFFER_BINDINGS]:n(i.MAX_UNIFORM_BUFFER_BINDINGS),[i.MAX_VARYING_COMPONENTS]:n(i.MAX_VARYING_COMPONENTS),[i.MAX_VERTEX_OUTPUT_COMPONENTS]:n(i.MAX_VERTEX_OUTPUT_COMPONENTS),[i.MAX_VERTEX_UNIFORM_BLOCKS]:n(i.MAX_VERTEX_UNIFORM_BLOCKS),[i.MAX_VERTEX_UNIFORM_COMPONENTS]:n(i.MAX_VERTEX_UNIFORM_COMPONENTS),[i.MIN_PROGRAM_TEXEL_OFFSET]:n(i.MIN_PROGRAM_TEXEL_OFFSET),[i.MAX_PROGRAM_TEXEL_OFFSET]:n(i.MAX_PROGRAM_TEXEL_OFFSET),[i.UNIFORM_BUFFER_OFFSET_ALIGNMENT]:n(i.UNIFORM_BUFFER_OFFSET_ALIGNMENT)}}var xi=p(g(),1);var xt=p(g(),1);var Fi=p(g(),1),y=p(g(),1);function F(e,t,r){let o=M.attach(e).gl;if(f_(t))return r(e);let{nocatch:s=!0}=t;Fe(o),ce(o,t);let a;if(s)a=r(o),Oe(o);else try{a=r(o)}finally{Oe(o)}return a}function f_(e){for(let t in e)return!1;return!0}var vt=p(g(),1);function bi(e,t,r,n){if((0,vt.isObjectEmpty)(t))return n(e);Fe(e.gl);try{return u_(e,t),ce(e,r),n(e)}finally{Oe(e.gl)}}function u_(e,t){let r=M.attach(e),{gl:n}=r;if(t.cullMode)switch(t.cullMode){case"none":n.disable(i.CULL_FACE);break;case"front":n.enable(i.CULL_FACE),n.cullFace(i.FRONT);break;case"back":n.enable(i.CULL_FACE),n.cullFace(i.BACK);break}if(t.frontFace&&n.frontFace(Qr("frontFace",t.frontFace,{ccw:i.CCW,cw:i.CW})),t.depthBias!==void 0&&n.polygonOffset(t.depthBias,t.depthBiasSlopeScale||0),t.depthWriteEnabled!==void 0&&n.depthMask(c_("depthWriteEnabled",t.depthWriteEnabled)),t.depthCompare&&(t.depthCompare!=="always"?n.enable(i.DEPTH_TEST):n.disable(i.DEPTH_TEST),n.depthFunc(Pt("depthCompare",t.depthCompare))),t.stencilWriteMask){let o=t.stencilWriteMask;n.stencilMaskSeparate(i.FRONT,o),n.stencilMaskSeparate(i.BACK,o)}if(t.stencilReadMask&&vt.log.warn("stencilReadMask not supported under WebGL"),t.stencilCompare){let o=t.stencilReadMask||4294967295,s=Pt("depthCompare",t.stencilCompare);t.stencilCompare!=="always"?n.enable(i.STENCIL_TEST):n.disable(i.STENCIL_TEST),n.stencilFuncSeparate(i.FRONT,s,0,o),n.stencilFuncSeparate(i.BACK,s,0,o)}if(t.stencilPassOperation&&t.stencilFailOperation&&t.stencilDepthFailOperation){let o=qr("stencilPassOperation",t.stencilPassOperation),s=qr("stencilFailOperation",t.stencilFailOperation),a=qr("stencilDepthFailOperation",t.stencilDepthFailOperation);n.stencilOpSeparate(i.FRONT,s,a,o),n.stencilOpSeparate(i.BACK,s,a,o)}}function Pt(e,t){return Qr(e,t,{never:i.NEVER,less:i.LESS,equal:i.EQUAL,"less-equal":i.LEQUAL,greater:i.GREATER,"not-equal":i.NOTEQUAL,"greater-equal":i.GEQUAL,always:i.ALWAYS})}function qr(e,t){return Qr(e,t,{keep:i.KEEP,zero:i.ZERO,replace:i.REPLACE,invert:i.INVERT,"increment-clamp":i.INCR,"decrement-clamp":i.DECR,"increment-wrap":i.INCR_WRAP,"decrement-wrap":i.DECR_WRAP})}function l_(e,t){return`Illegal parameter ${t} for ${e}`}function Qr(e,t,r){if(!(t in r))throw new Error(l_(e,t));return r[t]}function c_(e,t){return t}function Ft(e){let t={};return e.addressModeU&&(t[i.TEXTURE_WRAP_S]=Jr(e.addressModeU)),e.addressModeV&&(t[i.TEXTURE_WRAP_T]=Jr(e.addressModeV)),e.addressModeW&&(t[i.TEXTURE_WRAP_R]=Jr(e.addressModeW)),e.magFilter&&(t[i.TEXTURE_MAG_FILTER]=Ii(e.magFilter)),(e.minFilter||e.mipmapFilter)&&(t[i.TEXTURE_MIN_FILTER]=E_(e.minFilter||"linear",e.mipmapFilter)),e.lodMinClamp!==void 0&&(t[i.TEXTURE_MIN_LOD]=e.lodMinClamp),e.lodMaxClamp!==void 0&&(t[i.TEXTURE_MAX_LOD]=e.lodMaxClamp),e.type==="comparison-sampler"&&(t[i.TEXTURE_COMPARE_MODE]=i.COMPARE_REF_TO_TEXTURE),e.compare&&(t[i.TEXTURE_COMPARE_FUNC]=Pt("compare",e.compare)),e.maxAnisotropy&&(t[i.TEXTURE_MAX_ANISOTROPY_EXT]=e.maxAnisotropy),t}function Jr(e){switch(e){case"clamp-to-edge":return i.CLAMP_TO_EDGE;case"repeat":return i.REPEAT;case"mirror-repeat":return i.MIRRORED_REPEAT}}function Ii(e){switch(e){case"nearest":return i.NEAREST;case"linear":return i.LINEAR}}function E_(e,t){if(!t)return Ii(e);switch(e){case"nearest":return t==="nearest"?i.NEAREST_MIPMAP_NEAREST:i.NEAREST_MIPMAP_LINEAR;case"linear":return t==="nearest"?i.LINEAR_MIPMAP_NEAREST:i.LINEAR_MIPMAP_LINEAR}}function Pi(e){let t={...e};return e[i.TEXTURE_MIN_FILTER]!==i.NEAREST&&(t[i.TEXTURE_MIN_FILTER]=i.LINEAR),t[i.TEXTURE_WRAP_S]=i.CLAMP_TO_EDGE,t[i.TEXTURE_WRAP_T]=i.CLAMP_TO_EDGE,t}var G=p(g(),1);var d_=10,k=class extends G.Buffer{constructor(t){let r=arguments.length>1&&arguments[1]!==void 0?arguments[1]:{};super(t,r),this.device=void 0,this.gl=void 0,this.gl2=void 0,this.handle=void 0,this.glTarget=void 0,this.glUsage=void 0,this.glIndexType=i.UNSIGNED_SHORT,this.byteLength=void 0,this.bytesUsed=void 0,this.debugData=null,this.device=t,this.gl=this.device.gl,this.gl2=this.device.gl2;let n=typeof r=="object"?r.handle:void 0;this.handle=n||this.gl.createBuffer(),t.setSpectorMetadata(this.handle,{...this.props,data:typeof this.props.data}),this.glTarget=R_(this.props.usage),this.glUsage=T_(this.props.usage),this.glIndexType=this.props.indexType==="uint32"?i.UNSIGNED_INT:i.UNSIGNED_SHORT,this.debugData=null,r.data?this._initWithData(r.data,r.byteOffset,r.byteLength):this._initWithByteLength(r.byteLength||0)}_initWithData(t){let r=arguments.length>1&&arguments[1]!==void 0?arguments[1]:0,n=arguments.length>2&&arguments[2]!==void 0?arguments[2]:t.byteLength+r;(0,G.assert)(ArrayBuffer.isView(t));let o=this._getWriteTarget();return this.gl.bindBuffer(o,this.handle),this.gl.bufferData(o,n,this.glUsage),this.gl.bufferSubData(o,r,t),this.gl.bindBuffer(o,null),this.debugData=t.slice(0,d_),this.bytesUsed=n,this.byteLength=n,this.trackAllocatedMemory(n),this}_initWithByteLength(t){(0,G.assert)(t>=0);let r=t;t===0&&(r=new Float32Array(0));let n=this._getWriteTarget();return this.gl.bindBuffer(n,this.handle),this.gl.bufferData(n,r,this.glUsage),this.gl.bindBuffer(n,null),this.debugData=null,this.bytesUsed=t,this.byteLength=t,this}destroy(){!this.destroyed&&this.handle&&(this.removeStats(),this.trackDeallocatedMemory(),this.gl.deleteBuffer(this.handle),this.destroyed=!0,this.handle=null)}write(t){let r=arguments.length>1&&arguments[1]!==void 0?arguments[1]:0,n=0,o=void 0,s=this.device.isWebGL2?i.COPY_WRITE_BUFFER:this.glTarget;this.gl.bindBuffer(s,this.handle),n!==0||o!==void 0?(this.device.assertWebGL2(),this.gl2.bufferSubData(s,r,t,n,o)):this.gl.bufferSubData(s,r,t),this.gl.bindBuffer(s,null)}async readAsync(){let t=arguments.length>0&&arguments[0]!==void 0?arguments[0]:0,r=arguments.length>1?arguments[1]:void 0;this.device.assertWebGL2();let n=new Uint8Array(r),o=0;return this.gl.bindBuffer(i.COPY_READ_BUFFER,this.handle),this.gl2.getBufferSubData(i.COPY_READ_BUFFER,t,n,o,r),this.gl.bindBuffer(i.COPY_READ_BUFFER,null),n}_invalidateDebugData(){this.debugData=null}_getWriteTarget(){return this.glTarget}_getReadTarget(){return this.glTarget}};function R_(e){return e&G.Buffer.INDEX?i.ELEMENT_ARRAY_BUFFER:e&G.Buffer.VERTEX?i.ARRAY_BUFFER:e&G.Buffer.UNIFORM?i.UNIFORM_BUFFER:i.ARRAY_BUFFER}function T_(e){return e&G.Buffer.INDEX?i.STATIC_DRAW:e&G.Buffer.VERTEX?i.STATIC_DRAW:e&G.Buffer.UNIFORM?i.DYNAMIC_DRAW:i.STATIC_DRAW}var vi=p(g(),1);var be=class extends vi.Sampler{constructor(t,r){super(t,r),this.device=void 0,this.handle=void 0,this.parameters=void 0,this.device=t,this.parameters=Ft(r),this.device.isWebGL2&&(this.handle=this.handle||this.device.gl2.createSampler(),this._setSamplerParameters(this.parameters))}destroy(){this.handle&&(this.device.gl2.deleteSampler(this.handle),this.handle=void 0)}toString(){return`Sampler(${this.id},${JSON.stringify(this.props)})`}_setSamplerParameters(t){for(let[r,n]of Object.entries(t)){let o=Number(r);switch(o){case i.TEXTURE_MIN_LOD:case i.TEXTURE_MAX_LOD:this.device.gl2.samplerParameterf(this.handle,o,n);break;default:this.device.gl2.samplerParameteri(this.handle,o,n);break}}}};var A_={parameters:{},pixelStore:{},pixels:null,border:0,dataFormat:void 0,textureUnit:void 0,target:void 0},D=class extends y.Texture{constructor(t,r){var n;super(t,{...A_,format:"rgba8unorm",...r}),this.MAX_ATTRIBUTES=void 0,this.device=void 0,this.gl=void 0,this.gl2=void 0,this.handle=void 0,this.sampler=void 0,this.glFormat=void 0,this.type=void 0,this.dataFormat=void 0,this.mipmaps=void 0,this.target=void 0,this.textureUnit=void 0,this.loaded=!1,this._video=void 0,this.device=(0,y.cast)(t),this.gl=this.device.gl,this.gl2=this.device.gl2,this.handle=this.props.handle||this.gl.createTexture(),this.device.setSpectorMetadata(this.handle,{...this.props,data:typeof this.props.data}),this.glFormat=i.RGBA,this.target=p_(this.props),this.loaded=!1,typeof((n=this.props)===null||n===void 0?void 0:n.data)=="string"&&Object.assign(this.props,{data:(0,y.loadImage)(this.props.data)}),this.initialize(this.props),Object.seal(this)}destroy(){this.handle&&(this.gl.deleteTexture(this.handle),this.removeStats(),this.trackDeallocatedMemory("Texture"),this.destroyed=!0)}toString(){return`Texture(${this.id},${this.width}x${this.height})`}initialize(){let t=arguments.length>0&&arguments[0]!==void 0?arguments[0]:{};if(this.props.dimension==="cube")return this.initializeCube(t);let r=t.data;if(r instanceof Promise)return r.then(T=>this.initialize(Object.assign({},t,{pixels:T,data:T}))),this;let n=typeof HTMLVideoElement<"u"&&r instanceof HTMLVideoElement;if(n&&r.readyState<HTMLVideoElement.HAVE_METADATA)return this._video=null,r.addEventListener("loadeddata",()=>this.initialize(t)),this;let{parameters:o={}}=t,{pixels:s=null,pixelStore:a={},textureUnit:_=void 0}=t;r||(r=s);let{width:f,height:u,dataFormat:l,type:c,compressed:E=!1,mipmaps:d=!0}=t,{depth:R=0}=t,A=rt(t.format,this.device.isWebGL2);return{width:f,height:u,compressed:E,dataFormat:l,type:c}=this._deduceParameters({format:t.format,type:c,dataFormat:l,compressed:E,data:r,width:f,height:u}),this.width=f,this.height=u,this.glFormat=A,this.type=c,this.dataFormat=l,this.textureUnit=_,Number.isFinite(this.textureUnit)&&(this.gl.activeTexture(i.TEXTURE0+this.textureUnit),this.gl.bindTexture(this.target,this.handle)),d&&this.device.isWebGL1&&Ct(this.width,this.height)&&(y.log.warn(`texture: ${this} is Non-Power-Of-Two, disabling mipmaps`)(),d=!1),this.mipmaps=d,this.setImageData({data:r,width:f,height:u,depth:R,format:A,type:c,dataFormat:l,parameters:a,compressed:E}),this.setSampler(t.sampler),this._setSamplerParameters(o),d&&this.generateMipmap(),n&&(this._video={video:r,parameters:o,lastTime:r.readyState>=HTMLVideoElement.HAVE_CURRENT_DATA?r.currentTime:-1}),this}initializeCube(t){let{mipmaps:r=!0,parameters:n={}}=t;return this.setCubeMapImageData(t).then(()=>{this.loaded=!0,r&&this.generateMipmap(t),this.setSampler(t.sampler),this._setSamplerParameters(n)}),this}setSampler(){let t=arguments.length>0&&arguments[0]!==void 0?arguments[0]:{},r;t instanceof be?(this.sampler=t,r=t.props):(this.sampler=new be(this.device,t),r=t);let n=Ft(r);return this._setSamplerParameters(n),this}resize(t){let{height:r,width:n,mipmaps:o=!1}=t;return n!==this.width||r!==this.height?this.initialize({width:n,height:r,format:this.format,type:this.type,dataFormat:this.dataFormat,mipmaps:o}):this}update(){if(this._video){let{video:t,parameters:r,lastTime:n}=this._video;if(n===t.currentTime||t.readyState<HTMLVideoElement.HAVE_CURRENT_DATA)return;this.setSubImageData({data:t,parameters:r}),this.mipmaps&&this.generateMipmap(),this._video.lastTime=t.currentTime}}generateMipmap(){let t=arguments.length>0&&arguments[0]!==void 0?arguments[0]:{};return this.device.isWebGL1&&Ct(this.width,this.height)?(y.log.warn(`texture: ${this} is Non-Power-Of-Two, disabling mipmaping`)(),this):(this.mipmaps=!0,this.gl.bindTexture(this.target,this.handle),F(this.gl,t,()=>{this.gl.generateMipmap(this.target)}),this.gl.bindTexture(this.target,null),this)}setImageData(t){if(this.props.dimension==="3d"||this.props.dimension==="2d-array")return this.setImageData3D(t);this.trackDeallocatedMemory("Texture");let{target:r=this.target,pixels:n=null,level:o=0,glFormat:s=this.glFormat,offset:a=0,parameters:_={}}=t,{data:f=null,type:u=this.type,width:l=this.width,height:c=this.height,dataFormat:E=this.dataFormat,compressed:d=!1}=t;f||(f=n),{type:u,dataFormat:E,compressed:d,width:l,height:c}=this._deduceParameters({format:this.props.format,type:u,dataFormat:E,compressed:d,data:f,width:l,height:c});let{gl:R}=this;R.bindTexture(this.target,this.handle);let A=null;({data:f,dataType:A}=this._getDataType({data:f,compressed:d}));let T;if(F(this.gl,_,()=>{switch(A){case"null":R.texImage2D(r,o,s,l,c,0,E,u,f);break;case"typed-array":R.texImage2D(r,o,s,l,c,0,E,u,f,a);break;case"buffer":T=this.device.assertWebGL2(),T.bindBuffer(i.PIXEL_UNPACK_BUFFER,f.handle||f),T.texImage2D(r,o,s,l,c,0,E,u,a),T.bindBuffer(i.PIXEL_UNPACK_BUFFER,null);break;case"browser-object":this.device.isWebGL2?R.texImage2D(r,o,s,l,c,0,E,u,f):R.texImage2D(r,o,s,E,u,f);break;case"compressed":for(let[h,m]of f.entries())R.compressedTexImage2D(r,h,m.format,m.width,m.height,0,m.data);break;default:(0,y.assert)(!1,"Unknown image data type")}}),f&&f.byteLength)this.trackAllocatedMemory(f.byteLength,"Texture");else{let h=nt(this.props.format,this.device.isWebGL2);this.trackAllocatedMemory(this.width*this.height*h,"Texture")}return this.loaded=!0,this}setSubImageData(t){let{target:r=this.target,pixels:n=null,data:o=null,x:s=0,y:a=0,width:_=this.width,height:f=this.height,level:u=0,glFormat:l=this.glFormat,type:c=this.type,dataFormat:E=this.dataFormat,compressed:d=!1,offset:R=0,parameters:A={}}=t;if({type:c,dataFormat:E,compressed:d,width:_,height:f}=this._deduceParameters({format:this.props.format,type:c,dataFormat:E,compressed:d,data:o,width:_,height:f}),(0,y.assert)(this.depth===1,"texSubImage not supported for 3D textures"),o||(o=n),o&&o.data){let T=o;o=T.data,_=T.shape[0],f=T.shape[1]}o instanceof k&&(o=o.handle),this.gl.bindTexture(this.target,this.handle),F(this.gl,A,()=>{if(d)this.gl.compressedTexSubImage2D(r,u,s,a,_,f,l,o);else if(o===null)this.gl.texSubImage2D(r,u,s,a,_,f,E,c,null);else if(ArrayBuffer.isView(o))this.gl.texSubImage2D(r,u,s,a,_,f,E,c,o,R);else if(typeof WebGLBuffer<"u"&&o instanceof WebGLBuffer){let T=this.device.assertWebGL2();T.bindBuffer(i.PIXEL_UNPACK_BUFFER,o),T.texSubImage2D(r,u,s,a,_,f,E,c,R),T.bindBuffer(i.PIXEL_UNPACK_BUFFER,null)}else this.device.isWebGL2?this.device.assertWebGL2().texSubImage2D(r,u,s,a,_,f,E,c,o):this.gl.texSubImage2D(r,u,s,a,E,c,o)}),this.gl.bindTexture(this.target,null)}copyFramebuffer(){let t=arguments.length>0&&arguments[0]!==void 0?arguments[0]:{};return y.log.error("Texture.copyFramebuffer({...}) is no logner supported, use copyToTexture(source, target, opts})")(),null}getActiveUnit(){return this.gl.getParameter(i.ACTIVE_TEXTURE)-i.TEXTURE0}bind(){let t=arguments.length>0&&arguments[0]!==void 0?arguments[0]:this.textureUnit,{gl:r}=this;return t!==void 0&&(this.textureUnit=t,r.activeTexture(r.TEXTURE0+t)),r.bindTexture(this.target,this.handle),t}unbind(){let t=arguments.length>0&&arguments[0]!==void 0?arguments[0]:this.textureUnit,{gl:r}=this;return t!==void 0&&(this.textureUnit=t,r.activeTexture(r.TEXTURE0+t)),r.bindTexture(this.target,null),t}_getDataType(t){let{data:r,compressed:n=!1}=t;return n?{data:r,dataType:"compressed"}:r===null?{data:r,dataType:"null"}:ArrayBuffer.isView(r)?{data:r,dataType:"typed-array"}:r instanceof k?{data:r.handle,dataType:"buffer"}:typeof WebGLBuffer<"u"&&r instanceof WebGLBuffer?{data:r,dataType:"buffer"}:{data:r,dataType:"browser-object"}}_deduceParameters(t){let{format:r,data:n}=t,{width:o,height:s,dataFormat:a,type:_,compressed:f}=t,u=It(r,this.device.isWebGL2);return a=a||u.dataFormat,_=_||u.type,f=f||u.compressed,{width:o,height:s}=this._deduceImageSize(n,o,s),{dataFormat:a,type:_,compressed:f,width:o,height:s,format:r,data:n}}_deduceImageSize(t,r,n){let o;return typeof ImageData<"u"&&t instanceof ImageData?o={width:t.width,height:t.height}:typeof HTMLImageElement<"u"&&t instanceof HTMLImageElement?o={width:t.naturalWidth,height:t.naturalHeight}:typeof HTMLCanvasElement<"u"&&t instanceof HTMLCanvasElement?o={width:t.width,height:t.height}:typeof ImageBitmap<"u"&&t instanceof ImageBitmap?o={width:t.width,height:t.height}:typeof HTMLVideoElement<"u"&&t instanceof HTMLVideoElement?o={width:t.videoWidth,height:t.videoHeight}:t?o={width:r,height:n}:o={width:r>=0?r:1,height:n>=0?n:1},(0,y.assert)(o,"Could not deduced texture size"),(0,y.assert)(r===void 0||o.width===r,"Deduced texture width does not match supplied width"),(0,y.assert)(n===void 0||o.height===n,"Deduced texture height does not match supplied height"),o}async setCubeMapImageData(t){let{gl:r}=this,{width:n,height:o,pixels:s,data:a,format:_=i.RGBA,type:f=i.UNSIGNED_BYTE}=t,u=s||a,l=await Promise.all(D.FACES.map(c=>{let E=u[c];return Promise.all(Array.isArray(E)?E:[E])}));this.bind(),D.FACES.forEach((c,E)=>{l[E].length>1&&this.props.mipmaps!==!1&&y.log.warn(`${this.id} has mipmap and multiple LODs.`)(),l[E].forEach((d,R)=>{n&&o?r.texImage2D(c,R,_,n,o,0,_,f,d):r.texImage2D(c,R,_,_,f,d)})}),this.unbind()}setImageDataForFace(t){let{face:r,width:n,height:o,pixels:s,data:a,format:_=i.RGBA,type:f=i.UNSIGNED_BYTE}=t,{gl:u}=this,l=s||a;return this.bind(),l instanceof Promise?l.then(c=>this.setImageDataForFace(Object.assign({},t,{face:r,data:c,pixels:c}))):this.width||this.height?u.texImage2D(r,0,_,n,o,0,_,f,l):u.texImage2D(r,0,_,_,f,l),this}setImageData3D(t){let{level:r=0,dataFormat:n,format:o,type:s,width:a,height:_,depth:f=1,offset:u=0,data:l,parameters:c={}}=t;this.trackDeallocatedMemory("Texture"),this.gl.bindTexture(this.target,this.handle);let E=It(o,this.device.isWebGL2);if(F(this.gl,c,()=>{ArrayBuffer.isView(l)&&this.gl.texImage3D(this.target,r,E.format,a,_,f,0,E.dataFormat,E.type,l),l instanceof k&&(this.gl.bindBuffer(i.PIXEL_UNPACK_BUFFER,l.handle),this.gl.texImage3D(this.target,r,n,a,_,f,0,o,s,u))}),l&&l.byteLength)this.trackAllocatedMemory(l.byteLength,"Texture");else{let d=nt(this.props.format,this.device.isWebGL2);this.trackAllocatedMemory(this.width*this.height*this.depth*d,"Texture")}return this.loaded=!0,this}_setSamplerParameters(t){if(this.device.isWebGL1&&Ct(this.width,this.height)&&(t=Pi(t)),!(0,Fi.isObjectEmpty)(t)){h_(t),this.gl.bindTexture(this.target,this.handle);for(let[r,n]of Object.entries(t)){let o=Number(r),s=n;switch(o){case i.TEXTURE_MIN_LOD:case i.TEXTURE_MAX_LOD:this.gl.texParameterf(this.target,o,s);break;default:this.gl.texParameteri(this.target,o,s);break}}this.gl.bindTexture(this.target,null)}}_getWebGL1NPOTParameterOverride(t,r){if(this.device.isWebGL1&&Ct(this.width,this.height))switch(t){case i.TEXTURE_MIN_FILTER:if(r!==i.LINEAR&&r!==i.NEAREST)return i.LINEAR;break;case i.TEXTURE_WRAP_S:case i.TEXTURE_WRAP_T:return i.CLAMP_TO_EDGE;default:break}return r}};D.FACES=[i.TEXTURE_CUBE_MAP_POSITIVE_X,i.TEXTURE_CUBE_MAP_NEGATIVE_X,i.TEXTURE_CUBE_MAP_POSITIVE_Y,i.TEXTURE_CUBE_MAP_NEGATIVE_Y,i.TEXTURE_CUBE_MAP_POSITIVE_Z,i.TEXTURE_CUBE_MAP_NEGATIVE_Z];function p_(e){switch(e.dimension){case"2d":return i.TEXTURE_2D;case"cube":return i.TEXTURE_CUBE_MAP;case"2d-array":return i.TEXTURE_2D_ARRAY;case"3d":return i.TEXTURE_3D;case"1d":case"cube-array":default:throw new Error(e.dimension)}}function Ct(e,t){return!e||!t?!1:!(0,y.isPowerOfTwo)(e)||!(0,y.isPowerOfTwo)(t)}function h_(e){y.log.log(1,"texture sampler parameters",e)()}var yi=p(g(),1);var ae=p(g(),1);var Ci=p(g(),1);function Mt(e,t){if(typeof t!="string")return t;let r=Number(t);if(!isNaN(r))return r;t=t.replace(/^.*\./,"");let n=e[t];return(0,Ci.assert)(n!==void 0,`Accessing undefined constant GL.${t}`),n}var Me="Resource subclass must define virtual methods",yt=class extends ae.Resource{constructor(t,r,n){super(t,r,n),this.device=void 0,this.gl=void 0,this.gl2=void 0,this._handle=void 0,this._bound=!1,this.byteLength=0,this.device=M.attach(t);let o=this.device.gl;$n(o);let{id:s}=r||{};this.gl=o,this.gl2=o,this.id=s||(0,ae.uid)(this.constructor.name),this._handle=r?.handle,this._handle===void 0&&(this._handle=this._createHandle()),this.byteLength=0}toString(){return`${this.constructor.name}(${this.id})`}get handle(){return this._handle}delete(){let{deleteChildren:t=!1}=arguments.length>0&&arguments[0]!==void 0?arguments[0]:{},r=this._handle&&this._deleteHandle(this._handle);return this._handle&&this.removeStats(),this._handle=null,r&&t&&r.filter(Boolean).forEach(n=>n.destroy()),this}bind(){let t=arguments.length>0&&arguments[0]!==void 0?arguments[0]:this.handle;if(typeof t!="function")return this._bindHandle(t),this;let r;return this._bound?r=t():(this._bindHandle(this.handle),this._bound=!0,r=t(),this._bound=!1,this._bindHandle(null)),r}unbind(){this.bind(null)}getParameter(t){let r=arguments.length>1&&arguments[1]!==void 0?arguments[1]:{};t=Mt(this.gl,t),(0,ae.assert)(t);let o=(this.constructor.PARAMETERS||{})[t];if(o){let s=S(this.gl);if(!((!("webgl2"in o)||s)&&(!("extension"in o)||this.gl.getExtension(o.extension)))){let _=o.webgl1,f="webgl2"in o?o.webgl2:o.webgl1;return s?f:_}}return this._getParameter(t,r)}getParameters(){let t=arguments.length>0&&arguments[0]!==void 0?arguments[0]:{},{parameters:r,keys:n}=t,o=this.constructor.PARAMETERS||{},s=S(this.gl),a={},_=r||Object.keys(o);for(let f of _){let u=o[f];if(u&&(!("webgl2"in u)||s)&&(!("extension"in u)||this.gl.getExtension(u.extension))){let c=n?this.device.getGLKey(f):f;a[c]=this.getParameter(f,t),n&&u.type==="GLenum"&&(a[c]=this.device.getGLKey(a[c]))}}return a}setParameter(t,r){t=Mt(this.gl,t),(0,ae.assert)(t);let o=(this.constructor.PARAMETERS||{})[t];if(o){let s=S(this.gl);if(!((!("webgl2"in o)||s)&&(!("extension"in o)||this.gl.getExtension(o.extension))))throw new Error("Parameter not available on this platform");o.type==="GLenum"&&(r=Mt(r))}return this._setParameter(t,r),this}setParameters(t){for(let r in t)this.setParameter(r,t[r]);return this}stubRemovedMethods(t,r,n){return(0,ae.stubRemovedMethods)(this,t,r,n)}initialize(t){}_createHandle(){throw new Error(Me)}_deleteHandle(){throw new Error(Me)}_bindHandle(t){throw new Error(Me)}_getOptsFromHandle(){throw new Error(Me)}_getParameter(t,r){throw new Error(Me)}_setParameter(t,r){throw new Error(Me)}};var Mi;Mi=Symbol.toStringTag;var $=class extends yt{get[Mi](){return"Renderbuffer"}get width(){return this.props.width}get height(){return this.props.height}get format(){return this.props.format}get samples(){return this.props.samples}get attachment(){}static isTextureFormatSupported(t,r){return Ti(t.gl,r)}constructor(t,r){if(typeof r.format=="number")throw new Error("Renderbuffer");super(t,r,$.defaultProps),this.glFormat=void 0,this.glFormat=rt(this.props.format,t.isWebGL2),this._initialize(this.props)}resize(t){(t.width!==this.width||t.height!==this.height)&&(Object.assign(this.props,{...t,format:this.format,samples:this.samples}),this._initialize(this.props))}_initialize(t){let{format:r,width:n,height:o,samples:s}=t;(0,yi.assert)(r,"Needs format"),this.trackDeallocatedMemory(),this.gl.bindRenderbuffer(i.RENDERBUFFER,this.handle),s!==0&&this.device.isWebGL2?this.gl2.renderbufferStorageMultisample(i.RENDERBUFFER,s,this.glFormat,n,o):this.gl.renderbufferStorage(i.RENDERBUFFER,this.glFormat,n,o),this.gl.bindRenderbuffer(i.RENDERBUFFER,null),this.trackAllocatedMemory(n*o*(s||1)*nt(this.glFormat,this.device.isWebGL2))}_createHandle(){return this.gl.createRenderbuffer()}_deleteHandle(){this.gl.deleteRenderbuffer(this.handle),this.trackDeallocatedMemory()}_bindHandle(t){this.gl.bindRenderbuffer(i.RENDERBUFFER,t)}};$.defaultProps={id:void 0,handle:void 0,userData:void 0,format:void 0,width:1,height:1,samples:0};var re=class extends xt.Framebuffer{get texture(){return this.colorAttachments[0]}constructor(t,r){super(t,r),this.device=void 0,this.gl=void 0,this.handle=void 0;let n=r.handle===null;if(this.device=t,this.gl=t.gl,this.handle=this.props.handle||n?this.props.handle:this.gl.createFramebuffer(),!n){t.setSpectorMetadata(this.handle,{id:this.props.id,props:this.props}),this.autoCreateAttachmentTextures(),this.gl.bindFramebuffer(i.FRAMEBUFFER,this.handle);for(let o=0;o<this.colorAttachments.length;++o){let s=this.colorAttachments[o],a=i.COLOR_ATTACHMENT0+o;s&&this._attachOne(a,s)}this.depthStencilAttachment&&this._attachOne(hi(this.depthStencilAttachment.format),this.depthStencilAttachment),this.gl.bindFramebuffer(i.FRAMEBUFFER,null)}r.check!==!1&&this._checkStatus()}destroy(){super.destroy(),!this.destroyed&&this.handle!==null&&this.gl.deleteFramebuffer(this.handle)}_checkStatus(){let{gl:t}=this,r=t.bindFramebuffer(i.FRAMEBUFFER,this.handle),n=t.checkFramebufferStatus(i.FRAMEBUFFER);if(t.bindFramebuffer(i.FRAMEBUFFER,r||null),n!==t.FRAMEBUFFER_COMPLETE)throw new Error(`Framebuffer ${S_(n)}`)}createDepthStencilTexture(t){return new $(this.device,{id:`${this.id}-depth-stencil`,format:t,width:this.width,height:this.height})}resizeAttachments(t,r){if(this.handle===null)return this.width=this.gl.drawingBufferWidth,this.height=this.gl.drawingBufferHeight,this;t===void 0&&(t=this.gl.drawingBufferWidth),r===void 0&&(r=this.gl.drawingBufferHeight);for(let n of this.colorAttachments)n.resize({width:t,height:r});return this.depthStencilAttachment&&this.depthStencilAttachment.resize({width:t,height:r}),this}_attachOne(t,r){if(r instanceof $)return this._attachWEBGLRenderbuffer(t,r),r;if(Array.isArray(r)){let[n,o=0,s=0]=r;return this._attachTexture(t,n,o,s),n}else if(r instanceof D)return this._attachTexture(t,r,0,0),r;throw new Error("attach")}_attachWEBGLRenderbuffer(t,r){this.gl.framebufferRenderbuffer(i.FRAMEBUFFER,t,i.RENDERBUFFER,r.handle)}_attachTexture(t,r,n,o){let{gl:s,gl2:a}=this.device;switch(s.bindTexture(r.target,r.handle),r.target){case i.TEXTURE_2D_ARRAY:case i.TEXTURE_3D:this.device.assertWebGL2(),a?.framebufferTextureLayer(i.FRAMEBUFFER,t,r.target,o,n);break;case i.TEXTURE_CUBE_MAP:let _=m_(n);s.framebufferTexture2D(i.FRAMEBUFFER,t,_,r.handle,o);break;case i.TEXTURE_2D:s.framebufferTexture2D(i.FRAMEBUFFER,t,i.TEXTURE_2D,r.handle,o);break;default:(0,xt.assert)(!1,"Illegal texture type")}s.bindTexture(r.target,null)}};function m_(e){return e<i.TEXTURE_CUBE_MAP_POSITIVE_X?e+i.TEXTURE_CUBE_MAP_POSITIVE_X:e}function S_(e){switch(e){case i.FRAMEBUFFER_COMPLETE:return"success";case i.FRAMEBUFFER_INCOMPLETE_ATTACHMENT:return"Mismatched attachments";case i.FRAMEBUFFER_INCOMPLETE_MISSING_ATTACHMENT:return"No attachments";case i.FRAMEBUFFER_INCOMPLETE_DIMENSIONS:return"Height/width mismatch";case i.FRAMEBUFFER_UNSUPPORTED:return"Unsupported or split attachments";case i.FRAMEBUFFER_INCOMPLETE_MULTISAMPLE:return"Samples mismatch";default:return`${e}`}}var Bt=class extends xi.CanvasContext{constructor(t,r){super(r),this.device=void 0,this.presentationSize=void 0,this._framebuffer=null,this.device=t,this.presentationSize=[-1,-1],this._setAutoCreatedCanvasId(`${this.device.id}-canvas`),this.update()}getCurrentFramebuffer(){return this.update(),this._framebuffer=this._framebuffer||new re(this.device,{handle:null}),this._framebuffer}update(){let t=this.getPixelSize();(t[0]!==this.presentationSize[0]||t[1]!==this.presentationSize[1])&&(this.presentationSize=t)}resize(t){if(this.canvas){let n=this.getDevicePixelRatio(t?.useDevicePixels);this.setDevicePixelRatio(n,t);return}let r=this.device.gl.getExtension("STACKGL_resize_drawingbuffer");r&&t&&"width"in t&&"height"in t&&r.resize(t.width,t.height)}commit(){}};var ne=p(g(),1),g_={spector:ne.log.get("spector")||ne.log.get("inspect")},O_="https://spectorcdn.babylonjs.com/spector.bundle.js",N_=1,X=null,Bi=!1;async function Di(e){if(!globalThis.SPECTOR)try{await(0,ne.loadScript)(O_)}catch(t){ne.log.warn(String(t))}}function Ui(e){var t,r;if(e={...g_,...e},!((t=e)!==null&&t!==void 0&&t.spector)||(!X&&globalThis.SPECTOR&&(ne.log.probe(N_,"SPECTOR found and initialized")(),X=new globalThis.SPECTOR.Spector,globalThis.luma&&(globalThis.luma.spector=X)),!X))return null;if(!Bi){var n,o;Bi=!0,X.spyCanvases(),(n=X)===null||n===void 0||n.onCaptureStarted.add(_=>ne.log.info("Spector capture started:",_)()),(o=X)===null||o===void 0||o.onCapture.add(_=>{var f,u,l;ne.log.info("Spector capture complete:",_)(),(f=X)===null||f===void 0||f.getResultUI(),(u=X)===null||u===void 0||u.resultView.display(),(l=X)===null||l===void 0||l.resultView.addCapture(_)})}if((r=e)!==null&&r!==void 0&&r.canvas){var s,a;if(typeof e.spector=="string"&&e.spector!==e.canvas.id)return X;(s=X)===null||s===void 0||s.startCapture((a=e)===null||a===void 0?void 0:a.canvas,500),new Promise(_=>setTimeout(_,2e3)).then(_=>{var f;ne.log.info("Spector capture stopped after 2 seconds")(),(f=X)===null||f===void 0||f.stopCapture()})}return X}var Ee=p(g(),1);var b_="https://unpkg.com/webgl-debug@2.0.1/index.js";function wi(e){return e.luma=e.luma||{},e.luma}async function Li(){Y()&&!globalThis.WebGLDebugUtils&&(globalThis.global=globalThis.global||globalThis,globalThis.global.module={},await(0,Ee.loadScript)(b_))}function Xi(e){let t=arguments.length>1&&arguments[1]!==void 0?arguments[1]:{};return e?t.debug?P_(e,t):I_(e):null}function I_(e){let t=wi(e);return t.realContext?t.realContext:e}function P_(e,t){if(!globalThis.WebGLDebugUtils)return Ee.log.warn("webgl-debug not loaded")(),e;let r=wi(e);if(r.debugContext)return r.debugContext;globalThis.WebGLDebugUtils.init({...i,...e});let n=globalThis.WebGLDebugUtils.makeDebugContext(e,v_.bind(null,t),F_.bind(null,t));for(let a in i)!(a in n)&&typeof i[a]=="number"&&(n[a]=i[a]);class o{}Object.setPrototypeOf(n,Object.getPrototypeOf(e)),Object.setPrototypeOf(o,n);let s=Object.create(o);return r.realContext=e,r.debugContext=s,s.debug=!0,s}function en(e,t){t=Array.from(t).map(n=>n===void 0?"undefined":n);let r=globalThis.WebGLDebugUtils.glFunctionArgsToString(e,t);return r=`${r.slice(0,100)}${r.length>100?"...":""}`,`gl.${e}(${r})`}function v_(e,t,r,n){n=Array.from(n).map(f=>f===void 0?"undefined":f);let o=globalThis.WebGLDebugUtils.glEnumToString(t),s=globalThis.WebGLDebugUtils.glFunctionArgsToString(r,n),a=e.webgl2?"gl2":"gl1",_=`${o} in ${a}.${r}(${s})`;Ee.log.error(_)();debugger;if(e.throwOnError)throw new Error(_)}function F_(e,t,r){let n="";if(Ee.log.level>=1&&(n=en(t,r),Ee.log.log(1,n)()),e.break&&e.break.length>0&&(n=n||en(t,r),e.break.every(s=>n.indexOf(s)!==-1)))debugger;for(let o of r)if(o===void 0){if(n=n||en(t,r),e.throwOnError)throw new Error(`Undefined argument: ${n}`);Ee.log.error(`Undefined argument: ${n}`)();debugger}}var K=p(g(),1);var Dt=p(g(),1);var C_="Failed to deduce GL constant from typed array";function ye(e){switch(ArrayBuffer.isView(e)?e.constructor:e){case Float32Array:return i.FLOAT;case Uint16Array:return i.UNSIGNED_SHORT;case Uint32Array:return i.UNSIGNED_INT;case Uint8Array:return i.UNSIGNED_BYTE;case Uint8ClampedArray:return i.UNSIGNED_BYTE;case Int8Array:return i.BYTE;case Int16Array:return i.SHORT;case Int32Array:return i.INT;default:throw new Error(C_)}}function de(e,t){let{clamped:r=!0}=t||{};switch(e){case i.FLOAT:return Float32Array;case i.UNSIGNED_SHORT:case i.UNSIGNED_SHORT_5_6_5:case i.UNSIGNED_SHORT_4_4_4_4:case i.UNSIGNED_SHORT_5_5_5_1:return Uint16Array;case i.UNSIGNED_INT:return Uint32Array;case i.UNSIGNED_BYTE:return r?Uint8ClampedArray:Uint8Array;case i.BYTE:return Int8Array;case i.SHORT:return Int16Array;case i.INT:return Int32Array;default:throw new Error("Failed to deduce typed array type from GL constant")}}var M_={offset:0,stride:0,type:i.FLOAT,size:1,divisor:0,normalized:!1,integer:!1},y_={deprecatedProps:{instanced:"divisor",isInstanced:"divisor"}},L=class{static getBytesPerElement(t){return de(t.type||i.FLOAT).BYTES_PER_ELEMENT}static getBytesPerVertex(t){return(0,Dt.assert)(t.size),de(t.type||i.FLOAT).BYTES_PER_ELEMENT*t.size}static resolve(){for(var t=arguments.length,r=new Array(t),n=0;n<t;n++)r[n]=arguments[n];return new L(M_,...r)}constructor(){this.offset=void 0,this.stride=void 0,this.type=void 0,this.size=void 0,this.divisor=void 0,this.normalized=void 0,this.integer=void 0,this.buffer=void 0,this.index=void 0;for(var t=arguments.length,r=new Array(t),n=0;n<t;n++)r[n]=arguments[n];r.forEach(o=>this._assign(o)),Object.freeze(this)}toString(){return JSON.stringify(this)}get BYTES_PER_ELEMENT(){return L.getBytesPerElement(this)}get BYTES_PER_VERTEX(){return L.getBytesPerVertex(this)}_assign(){let t=arguments.length>0&&arguments[0]!==void 0?arguments[0]:{};return t=(0,Dt.checkProps)("Accessor",t,y_),t.type!==void 0&&(this.type=t.type,(t.type===i.INT||t.type===i.UNSIGNED_INT)&&(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}};var Hi=10,Vi={offset:"accessor.offset",stride:"accessor.stride",type:"accessor.type",size:"accessor.size",divisor:"accessor.divisor",normalized:"accessor.normalized",integer:"accessor.integer",instanced:"accessor.divisor",isInstanced:"accessor.divisor"},Wi={removedProps:{},replacedProps:{bytes:"byteLength"},deprecatedProps:Vi},x_={removedProps:Vi};function B_(e){return ArrayBuffer.isView(e)?{data:e}:typeof e=="number"?{byteLength:e}:(e=(0,K.checkProps)("Buffer",e,Wi),{...e})}var Ut=class extends k{constructor(t){let r=arguments.length>1&&arguments[1]!==void 0?arguments[1]:{};if(super(M.attach(t),B_(r)),this.accessor=void 0,this.setAccessor(Object.assign({},r,r.accessor)),this.props.data){let n=ye(this.props.data);(0,K.assert)(n),this.setAccessor(new L(this.accessor,{type:n}))}Object.seal(this)}getElementCount(){let t=arguments.length>0&&arguments[0]!==void 0?arguments[0]:this.accessor;return Math.round(this.byteLength/L.getBytesPerElement(t))}getVertexCount(){let t=arguments.length>0&&arguments[0]!==void 0?arguments[0]:this.accessor;return Math.round(this.byteLength/L.getBytesPerVertex(t))}initialize(){let t=arguments.length>0&&arguments[0]!==void 0?arguments[0]:{};return ArrayBuffer.isView(t)&&(t={data:t}),Number.isFinite(t)&&(t={byteLength:t}),t=(0,K.checkProps)("Buffer",t,Wi),this.glUsage=t.glUsage||i.STATIC_DRAW,this.debugData=null,this.setAccessor(Object.assign({},t,t.accessor)),t.data?this._setData(t.data,t.byteOffset,t.byteLength):this._setByteLength(t.byteLength||0),this}setProps(t){return t=(0,K.checkProps)("Buffer",t,x_),"accessor"in t&&this.setAccessor(t.accessor),this}setAccessor(t){return t=Object.assign({},t),delete t.buffer,this.accessor=new L(t),this}reallocate(t){return t>this.byteLength?(this._setByteLength(t),!0):(this.bytesUsed=t,!1)}setData(t){return this.initialize(t)}subData(t){ArrayBuffer.isView(t)&&(t={data:t});let{data:r,offset:n=0,srcOffset:o=0}=t,s=t.byteLength||t.length;(0,K.assert)(r);let a=this.gl.webgl2?i.COPY_WRITE_BUFFER:this.glTarget;return this.gl.bindBuffer(a,this.handle),o!==0||s!==void 0?(St(this.gl),this.gl.bufferSubData(this.glTarget,n,r,o,s)):this.gl.bufferSubData(a,n,r),this.gl.bindBuffer(a,null),this.debugData=null,this._inferType(r),this}copyData(t){let{sourceBuffer:r,readOffset:n=0,writeOffset:o=0,size:s}=t,{gl:a,gl2:_}=this;return St(a),a.bindBuffer(i.COPY_READ_BUFFER,r.handle),a.bindBuffer(i.COPY_WRITE_BUFFER,this.handle),_?.copyBufferSubData(i.COPY_READ_BUFFER,i.COPY_WRITE_BUFFER,n,o,s),a.bindBuffer(i.COPY_READ_BUFFER,null),a.bindBuffer(i.COPY_WRITE_BUFFER,null),this.debugData=null,this}getData(t){var r;let{dstData:n=null,length:o=0}=t||{},{srcByteOffset:s=0,dstOffset:a=0}=t||{};St(this.gl);let _=de(this.accessor.type||i.FLOAT,{clamped:!1}),f=this._getAvailableElementCount(s),u=a,l,c;n?(c=n.length,l=c-u):(l=Math.min(f,o||f),c=u+l);let E=Math.min(f,l);return o=o||E,(0,K.assert)(o<=E),n=n||new _(c),this.gl.bindBuffer(i.COPY_READ_BUFFER,this.handle),(r=this.gl2)===null||r===void 0||r.getBufferSubData(i.COPY_READ_BUFFER,s,n,a,o),this.gl.bindBuffer(i.COPY_READ_BUFFER,null),n}bind(t){let{glTarget:r=this.glTarget,index:n=this.accessor&&this.accessor.index,offset:o=0,size:s}=t||{};if(r===i.UNIFORM_BUFFER||r===i.TRANSFORM_FEEDBACK_BUFFER)if(s!==void 0){var a;(a=this.gl2)===null||a===void 0||a.bindBufferRange(r,n,this.handle,o,s)}else{var _;(0,K.assert)(o===0),(_=this.gl2)===null||_===void 0||_.bindBufferBase(r,n,this.handle)}else this.gl.bindBuffer(r,this.handle);return this}unbind(t){let{glTarget:r=this.glTarget,index:n=this.accessor&&this.accessor.index}=t||{};if(r===i.UNIFORM_BUFFER||r===i.TRANSFORM_FEEDBACK_BUFFER){var s;(s=this.gl2)===null||s===void 0||s.bindBufferBase(r,n,null)}else this.gl.bindBuffer(r,null);return this}getDebugData(){return this.debugData?{data:this.debugData,changed:!1}:(this.debugData=this.getData({length:Math.min(Hi,this.byteLength)}),{data:this.debugData,changed:!0})}invalidateDebugData(){this.debugData=null}_setData(t){let r=arguments.length>1&&arguments[1]!==void 0?arguments[1]:0,n=arguments.length>2&&arguments[2]!==void 0?arguments[2]:t.byteLength+r;(0,K.assert)(ArrayBuffer.isView(t)),this.trackDeallocatedMemory();let o=this._getTarget();this.gl.bindBuffer(o,this.handle),this.gl.bufferData(o,n,this.glUsage),this.gl.bufferSubData(o,r,t),this.gl.bindBuffer(o,null),this.debugData=t.slice(0,Hi),this.bytesUsed=n,this.byteLength=n,this.trackAllocatedMemory(n);let s=ye(t);return(0,K.assert)(s),this.setAccessor(new L(this.accessor,{type:s})),this}_setByteLength(t){(0,K.assert)(t>=0),this.trackDeallocatedMemory();let r=t;t===0&&(r=new Float32Array(0));let n=this._getTarget();return this.gl.bindBuffer(n,this.handle),this.gl.bufferData(n,r,this.glUsage),this.gl.bindBuffer(n,null),this.debugData=null,this.bytesUsed=t,this.byteLength=t,this.trackAllocatedMemory(t),this}_getTarget(){return this.gl.webgl2?i.COPY_WRITE_BUFFER:this.glTarget}_getAvailableElementCount(t){let r=de(this.accessor.type||i.FLOAT,{clamped:!1}),n=t/r.BYTES_PER_ELEMENT;return this.getElementCount()-n}_inferType(t){this.accessor.type||this.setAccessor(new L(this.accessor,{type:ye(t)}))}getParameter(t){this.gl.bindBuffer(this.glTarget,this.handle);let r=this.gl.getBufferParameter(this.glTarget,t);return this.gl.bindBuffer(this.glTarget,null),r}get type(){return this.accessor.type}};var Re=p(g(),1);function tn(e,t){return{name:D_(e,t),language:"glsl",version:U_(e)}}function D_(e){let t=arguments.length>1&&arguments[1]!==void 0?arguments[1]:"unnamed",n=/#define[\s*]SHADER_NAME[\s*]([A-Za-z0-9_-]+)[\s*]/.exec(e);return n?n[1]:t}function U_(e){let t=100,r=e.match(/[^\s]+/g);if(r&&r.length>=2&&r[0]==="#version"){let n=parseInt(r[1],10);Number.isFinite(n)&&(t=n)}return t}var w_=["warning","error","info"];function rn(e){let t=e.split(/\r?\n/),r=[];for(let n of t){if(n.length<=1)continue;let o=n.split(":"),[s,a,_,...f]=o,u=parseInt(_,10);isNaN(u)&&(u=0);let l=parseInt(a,10);isNaN(l)&&(l=0);let c=s.toLowerCase(),E=w_.includes(c)?c:"info";r.push({message:f.join(":").trim(),type:E,lineNum:u,linePos:l})}return r}var wt=class extends Re.Shader{constructor(t,r){switch(super(t,{id:L_(r),...r}),this.device=void 0,this.handle=void 0,this.device=t,this.props.stage){case"vertex":this.handle=this.props.handle||this.device.gl.createShader(i.VERTEX_SHADER);break;case"fragment":this.handle=this.props.handle||this.device.gl.createShader(i.FRAGMENT_SHADER);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)}async compilationInfo(){let t=this.device.gl.getShaderInfoLog(this.handle);return t?rn(t):[]}_compile(t){t=(s=>s.startsWith("#version ")?s:`#version 100
|
|
72
|
-
${s}`)(t);let{gl:n}=this.device;if(n.shaderSource(this.handle,t),n.compileShader(this.handle),!n.getShaderParameter(this.handle,i.COMPILE_STATUS)){let s=n.getShaderInfoLog(this.handle),_=(s?rn(s):[]).filter(c=>c.type==="error"),f=(0,Re.formatCompilerLog)(_,t,{showSourceCode:!0}),u=tn(t).name,l=`${this.stage} shader ${u}`;throw Re.log.error(`GLSL compilation errors in ${l}
|
|
73
|
-
${f}`)(),new Error(`GLSL compilation errors in ${u}`)}}};function L_(e){return tn(e.source).name||e.id||(0,Re.uid)(`unnamed ${e.stage}-shader`)}var ki=p(g(),1);var X_=256,H_=1024,V_=16384,nn=6144,Lt=class extends ki.RenderPass{constructor(t,r){super(t,r),this.device=void 0,this.glParameters=void 0,this.device=t,this.setParameters(this.props.parameters),this.clear()}end(){}pushDebugGroup(t){}popDebugGroup(){}insertDebugMarker(t){}setParameters(){let t=arguments.length>0&&arguments[0]!==void 0?arguments[0]:{},r={};this.props.framebuffer&&(r.framebuffer=this.props.framebuffer),this.props.depthReadOnly&&(r.depthMask=!this.props.depthReadOnly),r.stencilMask=this.props.stencilReadOnly?0:1,r[i.RASTERIZER_DISCARD]=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),r.scissorTest=Boolean(t.scissorRect),t.scissorRect&&(r.scissor=t.scissorRect),t.blendConstant&&(r.blendColor=t.blendConstant),t.stencilReference&&(console.warn("RenderPassParameters.stencilReference not yet implemented in WebGL"),t[i.STENCIL_REF]=t.stencilReference),this.glParameters=r,ce(this.device,r)}clear(){let t={...this.glParameters},r=0;this.props.clearColor!==!1&&(r|=V_,t.clearColor=this.props.clearColor),this.props.clearDepth!==!1&&(r|=X_,t.clearDepth=this.props.clearDepth),this.props.clearStencil!==!1&&(r|=H_,t.clearStencil=this.props.clearStencil),r!==0&&F(this.device,t,()=>{this.device.gl.clear(r)})}clearColorBuffer(){let t=arguments.length>0&&arguments[0]!==void 0?arguments[0]:0,r=arguments.length>1&&arguments[1]!==void 0?arguments[1]:[0,0,0,0];F(this.device.gl2,{framebuffer:this.props.framebuffer},()=>{switch(r.constructor){case Int32Array:this.device.gl2.clearBufferiv(nn,t,r);break;case Uint32Array:this.device.gl2.clearBufferuiv(nn,t,r);break;case Float32Array:default:this.device.gl2.clearBufferfv(nn,t,r);break}})}};var V=p(g(),1),Zi=p(g(),1);function Ki(e){return W_.includes(e)}var W_=[i.SAMPLER_2D,i.SAMPLER_CUBE,i.SAMPLER_3D,i.SAMPLER_2D_SHADOW,i.SAMPLER_2D_ARRAY,i.SAMPLER_2D_ARRAY_SHADOW,i.SAMPLER_CUBE_SHADOW,i.INT_SAMPLER_2D,i.INT_SAMPLER_3D,i.INT_SAMPLER_CUBE,i.INT_SAMPLER_2D_ARRAY,i.UNSIGNED_INT_SAMPLER_2D,i.UNSIGNED_INT_SAMPLER_3D,i.UNSIGNED_INT_SAMPLER_CUBE,i.UNSIGNED_INT_SAMPLER_2D_ARRAY],ji={[i.FLOAT]:[i.FLOAT,1,"float","f32","float32"],[i.FLOAT_VEC2]:[i.FLOAT,2,"vec2","vec2<f32>","float32x2"],[i.FLOAT_VEC3]:[i.FLOAT,3,"vec3","vec3<f32>","float32x3"],[i.FLOAT_VEC4]:[i.FLOAT,4,"vec4","vec4<f32>","float32x4"],[i.INT]:[i.INT,1,"int","i32","sint32"],[i.INT_VEC2]:[i.INT,2,"ivec2","vec2<i32>","sint32x2"],[i.INT_VEC3]:[i.INT,3,"ivec3","vec3<i32>","sint32x3"],[i.INT_VEC4]:[i.INT,4,"ivec4","vec4<i32>","sint32x4"],[i.UNSIGNED_INT]:[i.UNSIGNED_INT,1,"uint","u32","uint32"],[i.UNSIGNED_INT_VEC2]:[i.UNSIGNED_INT,2,"uvec2","vec2<u32>","uint32x2"],[i.UNSIGNED_INT_VEC3]:[i.UNSIGNED_INT,3,"uvec3","vec3<u32>","uint32x3"],[i.UNSIGNED_INT_VEC4]:[i.UNSIGNED_INT,4,"uvec4","vec4<u32>","uint32x4"],[i.BOOL]:[i.FLOAT,1,"bool","f32","float32"],[i.BOOL_VEC2]:[i.FLOAT,2,"bvec2","vec2<f32>","float32x2"],[i.BOOL_VEC3]:[i.FLOAT,3,"bvec3","vec3<f32>","float32x3"],[i.BOOL_VEC4]:[i.FLOAT,4,"bvec4","vec4<f32>","float32x4"],[i.FLOAT_MAT2]:[i.FLOAT,8,"mat2","mat2x2<f32>"],[i.FLOAT_MAT2x3]:[i.FLOAT,8,"mat2x3","mat2x3<f32>"],[i.FLOAT_MAT2x4]:[i.FLOAT,8,"mat2x4","mat2x4<f32>"],[i.FLOAT_MAT3x2]:[i.FLOAT,12,"mat3x2","mat3x2<f32>"],[i.FLOAT_MAT3]:[i.FLOAT,12,"mat3","mat3x3<f32>"],[i.FLOAT_MAT3x4]:[i.FLOAT,12,"mat3x4","mat3x4<f32>"],[i.FLOAT_MAT4x2]:[i.FLOAT,16,"mat4x2","mat4x2<f32>"],[i.FLOAT_MAT4x3]:[i.FLOAT,16,"mat4x3","mat4x3<f32>"],[i.FLOAT_MAT4]:[i.FLOAT,16,"mat4","mat4x4<f32>"]};function on(e){let t=ji[e];if(!t)throw new Error("uniform");let[r,n,,o]=t;return{format:o,components:n,glType:r}}function Yi(e){let t=ji[e];if(!t)throw new Error("attribute");let[,r,,n,o]=t;return{attributeType:n,vertexFormat:o,components:r}}function zi(e,t){let r={attributes:[],bindings:[]};r.attributes=k_(e,t);let n=Y_(e,t);for(let _ of n){let f=_.uniforms.map(u=>({name:u.name,format:u.format,byteOffset:u.byteOffset,byteStride:u.byteStride,arrayLength:u.arrayLength}));r.bindings.push({type:"uniform",name:_.name,location:_.location,visibility:(_.vertex?1:0)&(_.fragment?2:0),minBindingSize:_.byteLength,uniforms:f})}let o=j_(e,t),s=0;for(let _ of o)if(Ki(_.type)){let{viewDimension:f,sampleType:u}=G_(_.type);r.bindings.push({type:"texture",name:_.name,location:s,viewDimension:f,sampleType:u}),_.textureUnit=s,s+=1}o.length&&(r.uniforms=o);let a=K_(e,t);return a!=null&&a.length&&(r.varyings=a),r}function k_(e,t){let r=[],n=e.getProgramParameter(t,e.ACTIVE_ATTRIBUTES);for(let o=0;o<n;o++){let s=e.getActiveAttrib(t,o);if(!s)throw new Error("activeInfo");let{name:a,type:_}=s,f=e.getAttribLocation(t,a);if(f>=0){let{attributeType:u}=Yi(_),l=/instance/i.test(a)?"instance":"vertex";r.push({name:a,location:f,stepMode:l,type:u})}}return r.sort((o,s)=>o.location-s.location),r}function K_(e,t){if(!S(e))return[];let r=e,n=[],o=e.getProgramParameter(t,i.TRANSFORM_FEEDBACK_VARYINGS);for(let s=0;s<o;s++){let a=r.getTransformFeedbackVarying(t,s);if(!a)throw new Error("activeInfo");let{name:_,type:f,size:u}=a,{glType:l,components:c}=on(f),E=new L({type:l,size:u*c}),d={location:s,name:_,accessor:E};n.push(d)}return n.sort((s,a)=>s.location-a.location),n}function j_(e,t){let r=[],n=e.getProgramParameter(t,i.ACTIVE_UNIFORMS);for(let o=0;o<n;o++){let s=e.getActiveUniform(t,o);if(!s)throw new Error("activeInfo");let{name:a,size:_,type:f}=s,{name:u,isArray:l}=$_(a),c=e.getUniformLocation(t,u),E={location:c,name:u,size:_,type:f,isArray:l};if(r.push(E),E.size>1)for(let d=0;d<E.size;d++){let R=`${u}[${d}]`;c=e.getUniformLocation(t,R);let A={...E,name:R,location:c};r.push(A)}}return r}function Y_(e,t){if(!S(e))return[];let r=e,n=(a,_)=>r.getActiveUniformBlockParameter(t,a,_),o=[],s=r.getProgramParameter(t,i.ACTIVE_UNIFORM_BLOCKS);for(let a=0;a<s;a++){let _={name:r.getActiveUniformBlockName(t,a)||"",location:n(a,i.UNIFORM_BLOCK_BINDING),byteLength:n(a,i.UNIFORM_BLOCK_DATA_SIZE),vertex:n(a,i.UNIFORM_BLOCK_REFERENCED_BY_VERTEX_SHADER),fragment:n(a,i.UNIFORM_BLOCK_REFERENCED_BY_FRAGMENT_SHADER),uniformCount:n(a,i.UNIFORM_BLOCK_ACTIVE_UNIFORMS),uniforms:[]},f=n(a,i.UNIFORM_BLOCK_ACTIVE_UNIFORM_INDICES)||[],u=r.getActiveUniforms(t,f,i.UNIFORM_TYPE),l=r.getActiveUniforms(t,f,i.UNIFORM_SIZE),c=r.getActiveUniforms(t,f,i.UNIFORM_OFFSET),E=r.getActiveUniforms(t,f,i.UNIFORM_ARRAY_STRIDE);for(let d=0;d<_.uniformCount;++d){let R=r.getActiveUniform(t,f[d]);if(!R)throw new Error("activeInfo");_.uniforms.push({name:R.name,format:on(u[d]).format,type:u[d],arrayLength:l[d],byteOffset:c[d],byteStride:E[d]})}o.push(_)}return o.sort((a,_)=>a.location-_.location),o}var z_={[i.SAMPLER_2D]:["2d","float"],[i.SAMPLER_CUBE]:["cube","float"],[i.SAMPLER_3D]:["3d","float"],[i.SAMPLER_2D_SHADOW]:["3d","depth"],[i.SAMPLER_2D_ARRAY]:["2d-array","float"],[i.SAMPLER_2D_ARRAY_SHADOW]:["2d-array","depth"],[i.SAMPLER_CUBE_SHADOW]:["cube","float"],[i.INT_SAMPLER_2D]:["2d","sint"],[i.INT_SAMPLER_3D]:["3d","sint"],[i.INT_SAMPLER_CUBE]:["cube","sint"],[i.INT_SAMPLER_2D_ARRAY]:["2d-array","uint"],[i.UNSIGNED_INT_SAMPLER_2D]:["2d","uint"],[i.UNSIGNED_INT_SAMPLER_3D]:["3d","uint"],[i.UNSIGNED_INT_SAMPLER_CUBE]:["cube","uint"],[i.UNSIGNED_INT_SAMPLER_2D_ARRAY]:["2d-array","uint"]};function G_(e){let t=z_[e];if(!t)throw new Error("sampler");let[r,n]=t;return{viewDimension:r,sampleType:n}}function $_(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 Gi(e,t,r,n){let o=e,s=n;s===!0&&(s=1),s===!1&&(s=0);let a=typeof s=="number"?[s]:s;switch(r){case i.SAMPLER_2D:case i.SAMPLER_CUBE:case i.SAMPLER_3D:case i.SAMPLER_2D_SHADOW:case i.SAMPLER_2D_ARRAY:case i.SAMPLER_2D_ARRAY_SHADOW:case i.SAMPLER_CUBE_SHADOW:case i.INT_SAMPLER_2D:case i.INT_SAMPLER_3D:case i.INT_SAMPLER_CUBE:case i.INT_SAMPLER_2D_ARRAY:case i.UNSIGNED_INT_SAMPLER_2D:case i.UNSIGNED_INT_SAMPLER_3D:case i.UNSIGNED_INT_SAMPLER_CUBE:case i.UNSIGNED_INT_SAMPLER_2D_ARRAY:if(typeof n!="number")throw new Error("samplers must be set to integers");return e.uniform1i(t,n);case i.FLOAT:return e.uniform1fv(t,a);case i.FLOAT_VEC2:return e.uniform2fv(t,a);case i.FLOAT_VEC3:return e.uniform3fv(t,a);case i.FLOAT_VEC4:return e.uniform4fv(t,a);case i.INT:return e.uniform1iv(t,a);case i.INT_VEC2:return e.uniform2iv(t,a);case i.INT_VEC3:return e.uniform3iv(t,a);case i.INT_VEC4:return e.uniform4iv(t,a);case i.BOOL:return e.uniform1iv(t,a);case i.BOOL_VEC2:return e.uniform2iv(t,a);case i.BOOL_VEC3:return e.uniform3iv(t,a);case i.BOOL_VEC4:return e.uniform4iv(t,a);case i.UNSIGNED_INT:return o.uniform1uiv(t,a,1);case i.UNSIGNED_INT_VEC2:return o.uniform2uiv(t,a,2);case i.UNSIGNED_INT_VEC3:return o.uniform3uiv(t,a,3);case i.UNSIGNED_INT_VEC4:return o.uniform4uiv(t,a,4);case i.FLOAT_MAT2:return e.uniformMatrix2fv(t,!1,a);case i.FLOAT_MAT3:return e.uniformMatrix3fv(t,!1,a);case i.FLOAT_MAT4:return e.uniformMatrix4fv(t,!1,a);case i.FLOAT_MAT2x3:return o.uniformMatrix2x3fv(t,!1,a);case i.FLOAT_MAT2x4:return o.uniformMatrix2x4fv(t,!1,a);case i.FLOAT_MAT3x2:return o.uniformMatrix3x2fv(t,!1,a);case i.FLOAT_MAT3x4:return o.uniformMatrix3x4fv(t,!1,a);case i.FLOAT_MAT4x2:return o.uniformMatrix4x2fv(t,!1,a);case i.FLOAT_MAT4x3:return o.uniformMatrix4x3fv(t,!1,a)}throw new Error("Illegal uniform")}var $i=4,Xt=class extends V.RenderPipeline{constructor(t,r){super(t,r),this.device=void 0,this.handle=void 0,this.vs=void 0,this.fs=void 0,this.introspectedLayout=void 0,this.uniforms={},this.bindings={},this.varyings=null,this._textureUniforms={},this._textureIndexCounter=0,this._uniformCount=0,this._uniformSetters={},this.device=t,this.handle=this.props.handle||this.device.gl.createProgram(),this.device.setSpectorMetadata(this.handle,{id:this.props.id}),this.vs=(0,V.cast)(r.vs),this.fs=(0,V.cast)(r.fs);let{varyings:n,bufferMode:o=i.SEPARATE_ATTRIBS}=r;if(n&&n.length>0){var s;this.device.assertWebGL2(),this.varyings=n,(s=this.device.gl2)===null||s===void 0||s.transformFeedbackVaryings(this.handle,n,o)}this._compileAndLink(),this.introspectedLayout=zi(this.device.gl,this.handle),this.shaderLayout=(0,Zi.mergeShaderLayout)(this.introspectedLayout,r.shaderLayout)}destroy(){this.handle&&(this.device.gl.deleteProgram(this.handle),this.destroyed=!0)}setBindings(t){for(let[r,n]of Object.entries(t)){let o=this.shaderLayout.bindings.find(s=>s.name===r);if(!o){let s=this.shaderLayout.bindings.map(a=>`"${a.name}"`).join(", ");V.log.warn(`Unknown binding "${r}" in render pipeline "${this.id}", expected one of ${s}`)();continue}switch(n||V.log.warn(`Unsetting binding "${r}" in render pipeline "${this.id}"`)(),o.type){case"uniform":if(!(n instanceof k)&&!(n.buffer instanceof k))throw new Error("buffer value");break;case"texture":if(!(n instanceof D||n instanceof re))throw new Error("texture value");break;case"sampler":V.log.warn(`Ignoring sampler ${r}`)();break;default:throw new Error(o.type)}this.bindings[r]=n}}setUniforms(t){Object.assign(this.uniforms,t)}draw(t){var r;let{renderPass:n,vertexArray:o,vertexCount:s,instanceCount:a,firstVertex:_=0}=t,f=Z_(this.props.topology),u=Boolean(o.indexBuffer),l=(r=o.indexBuffer)===null||r===void 0?void 0:r.glIndexType,c=Number(a)>0;if(!this._areTexturesRenderable()||s===0)return!1;this.device.gl.useProgram(this.handle),o.bindBeforeRender(n);let E=q_(this.props.topology),d=null;d&&d.begin(E),this._applyBindings(),this._applyUniforms();let R=n;return bi(this.device,this.props.parameters,R.glParameters,()=>{if(u&&c){var A;(A=this.device.gl2)===null||A===void 0||A.drawElementsInstanced(f,s||0,l,_,a||0)}else if(u)this.device.gl.drawElements(f,s||0,l,_);else if(c){var T;(T=this.device.gl2)===null||T===void 0||T.drawArraysInstanced(f,_,s||0,a||0)}else this.device.gl.drawArrays(f,_,s||0);d&&d.end()}),o.unbindAfterRender(n),!0}_compileAndLink(){let{gl:t}=this.device;if(t.attachShader(this.handle,this.vs.handle),t.attachShader(this.handle,this.fs.handle),V.log.time($i,`linkProgram for ${this.id}`)(),t.linkProgram(this.handle),V.log.timeEnd($i,`linkProgram for ${this.id}`)(),!t.debug&&V.log.level,!t.getProgramParameter(this.handle,t.LINK_STATUS))throw new Error(`Error linking: ${t.getProgramInfoLog(this.handle)}`);if(t.validateProgram(this.handle),!t.getProgramParameter(this.handle,t.VALIDATE_STATUS))throw new Error(`Error validating: ${t.getProgramInfoLog(this.handle)}`)}_areTexturesRenderable(){let t=!0;for(let[,r]of Object.entries(this._textureUniforms))r.update(),t=t&&r.loaded;for(let[,r]of Object.entries(this.bindings))r.loaded!==void 0&&(t=t&&r.loaded);return t}_applyBindings(){this.device.gl.useProgram(this.handle);let{gl2:t}=this.device;if(!t)throw new Error("bindings");let r=0,n=0;for(let o of this.shaderLayout.bindings){let s=this.bindings[o.name];if(!s)throw new Error(`No value for binding ${o.name} in ${this.id}`);switch(o.type){case"uniform":let{name:a}=o,_=t.getUniformBlockIndex(this.handle,a);if(_===i.INVALID_INDEX)throw new Error(`Invalid uniform block name ${a}`);t.uniformBlockBinding(this.handle,n,_),s instanceof k?t.bindBufferBase(i.UNIFORM_BUFFER,n,s.handle):t.bindBufferRange(i.UNIFORM_BUFFER,n,s.buffer.handle,s.offset||0,s.size||s.buffer.byteLength-s.offset),n+=1;break;case"texture":if(!(s instanceof D||s instanceof re))throw new Error("texture");let f;if(s instanceof D)f=s;else if(s instanceof re&&s.colorAttachments[0]instanceof D)V.log.warn("Passing framebuffer in texture binding may be deprecated. Use fbo.colorAttachments[0] instead")(),f=s.colorAttachments[0];else throw new Error("No texture");t.activeTexture(i.TEXTURE0+r),t.bindTexture(f.target,f.handle),r+=1;break;case"sampler":break;case"storage":case"read-only-storage":throw new Error(`binding type '${o.type}' not supported in WebGL`)}}}_applyUniforms(){for(let r of this.shaderLayout.uniforms||[]){var t;let{name:n,location:o,type:s,textureUnit:a}=r,_=(t=this.uniforms[n])!==null&&t!==void 0?t:a;_!==void 0&&Gi(this.device.gl,o,s,_)}}};function Z_(e){switch(e){case"point-list":return i.POINTS;case"line-list":return i.LINES;case"line-strip":return i.LINE_STRIP;case"line-loop-webgl":return i.LINE_LOOP;case"triangle-list":return i.TRIANGLES;case"triangle-strip":return i.TRIANGLE_STRIP;case"triangle-fan-webgl":return i.TRIANGLE_FAN;default:throw new Error(e)}}function q_(e){switch(e){case"point-list":return i.POINTS;case"line-list":return i.LINES;case"line-strip":return i.LINES;case"line-loop-webgl":return i.LINES;case"triangle-list":return i.TRIANGLES;case"triangle-strip":return i.TRIANGLES;case"triangle-fan-webgl":return i.TRIANGLES;default:throw new Error(e)}}var Qi=p(g(),1);var Vt=p(g(),1);var Ht=class extends Vt.CommandBuffer{constructor(t){super({}),this.device=void 0,this.commands=[],this.device=t}submitCommands(){let t=arguments.length>0&&arguments[0]!==void 0?arguments[0]:this.commands;for(let r of t)switch(r.name){case"copy-buffer-to-buffer":Q_(this.device,r.options);break;case"copy-buffer-to-texture":J_(this.device,r.options);break;case"copy-texture-to-buffer":ef(this.device,r.options);break;case"copy-texture-to-texture":tf(this.device,r.options);break}}};function Q_(e,t){let r=t.source,n=t.destination,o=e.assertWebGL2();if(o){var s,a;o.bindBuffer(i.COPY_READ_BUFFER,r.handle),o.bindBuffer(i.COPY_WRITE_BUFFER,n.handle),o.copyBufferSubData(i.COPY_READ_BUFFER,i.COPY_WRITE_BUFFER,(s=t.sourceOffset)!==null&&s!==void 0?s:0,(a=t.destinationOffset)!==null&&a!==void 0?a:0,t.size),o.bindBuffer(i.COPY_READ_BUFFER,null),o.bindBuffer(i.COPY_WRITE_BUFFER,null)}else throw new Error("copyBufferToBuffer not implemented in WebGL1")}function J_(e,t){throw new Error("Not implemented")}function ef(e,t){let{source:r,mipLevel:n=0,aspect:o="all",width:s=t.source.width,height:a=t.source.height,depthOrArrayLayers:_=0,origin:f=[0,0],destination:u,byteOffset:l=0,bytesPerRow:c,rowsPerImage:E}=t;if(o!=="all")throw new Error("not supported");if(n!==0||_!==void 0||c||E)throw new Error("not implemented");let d=e.assertWebGL2(),{framebuffer:R,destroyFramebuffer:A}=qi(r);try{let T=u,h=s||R.width,m=a||R.height,N=i.RGBA,P=i.UNSIGNED_BYTE;d.bindBuffer(i.PIXEL_PACK_BUFFER,T.handle),d.bindFramebuffer(i.FRAMEBUFFER,R.handle),d.readPixels(f[0],f[1],h,m,N,P,l)}finally{d.bindBuffer(i.PIXEL_PACK_BUFFER,null),d.bindFramebuffer(i.FRAMEBUFFER,null),A&&R.destroy()}}function tf(e,t){let{source:r,origin:n=[0,0],destination:o}=t,{width:s=t.destination.width,height:a=t.destination.width}=t,_=0,f=i.RGBA,{framebuffer:u,destroyFramebuffer:l}=qi(r),[c,E]=n,d=!1;e.gl.bindFramebuffer(i.FRAMEBUFFER,u.handle);let R=null,A;if(o instanceof D)R=o,s=Number.isFinite(s)?s:R.width,a=Number.isFinite(a)?a:R.height,R.bind(0),A=R.destination;else throw new Error("whoops");return d||e.gl.copyTexImage2D(A,_,f,c,E,s,a,0),R&&R.unbind(),l&&u.destroy(),R}function qi(e){if(e instanceof Vt.Texture){let{width:t,height:r,id:n}=e;return{framebuffer:e.device.createFramebuffer({id:`framebuffer-for-${n}`,width:t,height:r,colorAttachments:[e]}),destroyFramebuffer:!0}}return{framebuffer:e,destroyFramebuffer:!1}}var Wt=class extends Qi.CommandEncoder{constructor(t,r){super(t,r),this.device=void 0,this.commandBuffer=void 0,this.device=t,this.commandBuffer=new Ht(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){}};var Be=p(g(),1);var Ji;Ji=Symbol.toStringTag;var xe=class extends Be.VertexArray{get[Ji](){return"VertexArray"}static isConstantAttributeZeroSupported(t){return t.info.type==="webgl2"||mt()==="Chrome"}constructor(t,r){super(t,r),this.device=void 0,this.handle=void 0,this.buffer=null,this.bufferValue=null,this.init=!1,this.device=t,this.handle=this.device.gl2.createVertexArray()}destroy(){if(super.destroy(),this.buffer){var t;(t=this.buffer)===null||t===void 0||t.destroy()}this.handle&&(this.device.gl2.deleteVertexArray(this.handle),this.handle=void 0)}setIndexBuffer(t){let r=t;if(r&&r.glTarget!==i.ELEMENT_ARRAY_BUFFER)throw new Error("Use .setBuffer()");this.device.gl2.bindVertexArray(this.handle),this.device.gl2.bindBuffer(i.ELEMENT_ARRAY_BUFFER,r?r.handle:null),this.indexBuffer=r}setBuffer(t,r){let n=r;if(n.glTarget===i.ELEMENT_ARRAY_BUFFER)throw new Error("Use .setIndexBuffer()");let{size:o,type:s,stride:a,offset:_,normalized:f,integer:u,divisor:l}=this._getAccessor(t);this.device.gl2.bindVertexArray(this.handle),this.device.gl.bindBuffer(i.ARRAY_BUFFER,n.handle),u?(this.device.assertWebGL2(),this.device.gl2.vertexAttribIPointer(t,o,s,a,_)):this.device.gl.vertexAttribPointer(t,o,s,f,a,_),this.device.gl.enableVertexAttribArray(t),this.device.gl2.vertexAttribDivisor(t,l||0),this.attributes[t]=n}setConstant(t,r){this._enable(t,!1),this.attributes[t]=r}bindBeforeRender(){if(this.device.gl2.bindVertexArray(this.handle),!this.init){let t=this.indexBuffer;this.device.gl2.bindBuffer(i.ELEMENT_ARRAY_BUFFER,t?.handle||null),this.init=!0}this._applyConstantAttributes()}unbindAfterRender(){this.device.gl2.bindVertexArray(null)}_applyConstantAttributes(){for(let t=0;t<this.maxVertexAttributes;++t){let r=this.attributes[t];ArrayBuffer.isView(r)&&this.device.setConstantAttribute(t,r)}}_getAccessor(t){let r=this.attributeInfos[t];if(!r)throw new Error(`Unknown attribute location ${t}`);let n=Nt(r.bufferDataType);return{size:r.bufferComponents,type:n,stride:r.byteStride,offset:r.byteOffset,normalized:r.normalized,integer:r.integer,divisor:r.stepMode==="instance"?1:0}}_enable(t){let r=arguments.length>1&&arguments[1]!==void 0?arguments[1]:!0,o=xe.isConstantAttributeZeroSupported(this.device)||t!==0;(r||o)&&(t=Number(t),this.device.gl2.bindVertexArray(this.handle),r?this.device.gl.enableVertexAttribArray(t):this.device.gl.disableVertexAttribArray(t),this.device.gl2.bindVertexArray(null))}getConstantBuffer(t,r){let n=rf(r),o=n.byteLength*t,s=n.length*t,a=!this.buffer;if(this.buffer=this.buffer||this.device.createBuffer({byteLength:o}),a=a||this.buffer.reallocate(o),a=a||!nf(n,this.bufferValue),a){let _=(0,Be.getScratchArray)(r.constructor,s);(0,Be.fillArray)({target:_,source:n,start:0,count:s}),this.buffer.subData(_),this.bufferValue=r}return this.buffer}};function rf(e){return Array.isArray(e)?new Float32Array(e):e}function nf(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 kt=1,M=class extends C.Device{static isSupported(){return typeof WebGLRenderingContext<"u"||Kn()}get features(){return this._features=this._features||Si(this.gl),this._features}get limits(){return this._limits=this._limits||Oi(this.gl),this._limits}static attach(t){if(t instanceof M)return t;if(t?.device instanceof C.Device)return t.device;if(!of(t))throw new Error("Invalid WebGLRenderingContext");return new M({gl:t})}static async create(){let t=arguments.length>0&&arguments[0]!==void 0?arguments[0]:{};C.log.groupCollapsed(kt,"WebGLDevice created"),typeof t.canvas=="string"&&await C.CanvasContext.pageLoaded,(C.log.get("debug")||t.debug)&&await Li();let{spector:r}=t;return(C.log.get("spector")||r)&&await Di(),C.log.probe(kt+1,"DOM is loaded")(),t.gl&&t.gl.device?M.attach(t.gl):new M(t)}constructor(t){var r;super({...t,id:t.id||(0,C.uid)("webgl-device")}),this.info=void 0,this.canvasContext=void 0,this.handle=void 0,this.lost=void 0,this._resolveContextLost=void 0,this._features=void 0,this._limits=void 0,this.renderPass=null,this.gl=void 0,this.gl2=null,this.debug=!1,this.isWebGL1=void 0,this.isWebGL2=void 0,this._canvasSizeInfo={clientWidth:0,clientHeight:0,devicePixelRatio:1},this._extensions={},this._polyfilled=!1,this.spector=void 0,this._webglLimits=void 0,this._constants=void 0;let n=(r=t.gl)===null||r===void 0?void 0:r.device;if(n)throw new Error(`WebGL context already attached to device ${n.id}`);this.canvasContext=new Bt(this,t),this.lost=new Promise(u=>{this._resolveContextLost=u});let o=u=>{var l;return(l=this._resolveContextLost)===null||l===void 0?void 0:l.call(this,{reason:"destroyed",message:"Computer entered sleep mode, or too many apps or browser tabs are using the GPU."})},s=t.gl||null;if(s=s||(Y()?li(this.canvasContext.canvas,{...t,onContextLost:o}):null),s=s||(Y()?null:jn({...t,onContextLost:o})),!s)throw new Error("WebGL context creation failed");this.handle=s,this.gl=this.handle,this.gl2=this.gl,this.isWebGL2=sf(this.gl),this.isWebGL1=!this.isWebGL2,this.info=ci(this.gl),this.gl.device=this,this.gl._version=this.isWebGL2?2:1,ri(this.gl);let{enable:a=!0,copyState:_=!1}=t;if(jr(this.gl,{enable:a,copyState:_,log:function(){for(var u=arguments.length,l=new Array(u),c=0;c<u;c++)l[c]=arguments[c];return C.log.log(1,...l)()}}),Y()&&t.debug&&(this.gl=Xi(this.gl,{...t,webgl2:this.isWebGL2,throwOnError:!0}),this.gl2=this.gl,this.debug=!0,C.log.level=Math.max(C.log.level,1),C.log.warn("WebGL debug mode activated. Performance reduced.")()),Y()&&t.spector){let u=this.handle.canvas||t.canvas;this.spector=Ui({...this.props,canvas:u})}let f=`Created ${this.info.type}${this.debug?" debug":""} context: ${this.info.vendor}, ${this.info.renderer} for canvas: ${this.canvasContext.id}`;C.log.probe(kt,f)(),C.log.groupEnd(kt)()}destroy(){let t=this.gl.getExtension("STACKGL_destroy_context");t&&t.destroy()}get isLost(){return this.gl.isContextLost()}getSize(){return[this.gl.drawingBufferWidth,this.gl.drawingBufferHeight]}isTextureFormatSupported(t){return et(this.gl,t)}isTextureFormatFilterable(t){return Ai(this.gl,t)}isTextureFormatRenderable(t){return pi(this.gl,t)}assertWebGL2(){if(!this.gl2)throw new Error("Requires WebGL2");return this.gl2}createCanvasContext(t){throw new Error("WebGL only supports a single canvas")}createBuffer(t){let r=this._getBufferProps(t);return new Ut(this,r)}_createTexture(t){return new D(this,t)}createExternalTexture(t){throw new Error("createExternalTexture() not implemented")}createSampler(t){return new be(this,t)}createShader(t){return new wt(this,t)}createFramebuffer(t){return new re(this,t)}createRenderPipeline(t){return new Xt(this,t)}createVertexArray(t){return new xe(this,t)}beginRenderPass(t){return new Lt(this,t)}createComputePipeline(t){throw new Error("ComputePipeline not supported in WebGL")}beginComputePass(t){throw new Error("compute shaders not supported in WebGL")}getDefaultRenderPass(){return this.renderPass=this.renderPass||this.beginRenderPass({framebuffer:this.canvasContext.getCurrentFramebuffer()}),this.renderPass}createCommandEncoder(t){return new Wt(this,t)}submit(){var t;(t=this.renderPass)===null||t===void 0||t.end(),this.renderPass=null}get webglLimits(){return this._webglLimits=this._webglLimits||Ni(this.gl),this._webglLimits}loseDevice(){var t;let r=!1,n=this.gl.getExtension("WEBGL_lose_context");return n&&(r=!0,n.loseContext()),(t=this._resolveContextLost)===null||t===void 0||t.call(this,{reason:"destroyed",message:"Application triggered context loss"}),r}pushState(){Fe(this.gl)}popState(){Oe(this.gl)}setSpectorMetadata(t,r){t.__SPECTOR_Metadata=r}getGLKey(t,r){r=r||this.gl2||this.gl;let n=Number(t);for(let o in r)if(r[o]===n)return`GL.${o}`;return String(t)}setConstantAttribute(t,r){this._constants=this._constants||new Array(this.limits.maxVertexAttributes).fill(null);let n=this._constants[t];switch(n&&uf(n,r)&&C.log.info(1,`setConstantAttribute(${t}) could have been skipped, value unchanged`)(),this._constants[t]=r,r.constructor){case Float32Array:af(this,t,r);break;case Int32Array:_f(this,t,r);break;case Uint32Array:ff(this,t,r);break;default:(0,C.assert)(!1)}}};M.type="webgl";function of(e){return typeof WebGLRenderingContext<"u"&&e instanceof WebGLRenderingContext||typeof WebGL2RenderingContext<"u"&&e instanceof WebGL2RenderingContext?!0:Boolean(e&&Number.isFinite(e._version))}function sf(e){return typeof WebGL2RenderingContext<"u"&&e instanceof WebGL2RenderingContext?!0:Boolean(e&&e._version===2)}function af(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:(0,C.assert)(!1)}}function _f(e,t,r){var n;e.assertWebGL2(),(n=e.gl2)===null||n===void 0||n.vertexAttribI4iv(t,r)}function ff(e,t,r){var n;e.assertWebGL2(),(n=e.gl2)===null||n===void 0||n.vertexAttribI4uiv(t,r)}function uf(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 eo=p(g(),1);var lf=256,cf=1024,Ef=16384;var df="clear: bad arguments";function sn(e,t){let r=M.attach(e),{framebuffer:n=null,color:o=null,depth:s=null,stencil:a=null}=t||{},_={};n&&(_.framebuffer=n);let f=0;o&&(f|=Ef,o!==!0&&(_.clearColor=o)),s&&(f|=lf,s!==!0&&(_.clearDepth=s)),a&&(f|=cf,s!==!0&&(_.clearStencil=s)),(0,eo.assert)(f!==0,df),F(r.gl,_,()=>{r.gl.clear(f)})}var it=p(g(),1);var to=p(g(),1);function ro(e){switch(e){case i.ALPHA:case i.R32F:case i.RED:return 1;case i.RG32F:case i.RG:return 2;case i.RGB:case i.RGB32F:return 3;case i.RGBA:case i.RGBA32F:return 4;default:return(0,to.assert)(!1),0}}function an(e,t){var r;let{sourceX:n=0,sourceY:o=0,sourceFormat:s=i.RGBA,sourceAttachment:a=i.COLOR_ATTACHMENT0}=t||{},{target:_=null,sourceWidth:f,sourceHeight:u,sourceType:l}=t||{},{framebuffer:c,deleteFramebuffer:E}=Rf(e);(0,it.assert)(c);let{gl:d,handle:R}=c;f=f||c.width,u=u||c.height;let A=a-i.COLOR_ATTACHMENT0;l=l||((r=c.colorAttachments[A])===null||r===void 0?void 0:r.type)||i.UNSIGNED_BYTE,_=Af(_,l,s,f,u),l=l||ye(_);let T=d.bindFramebuffer(i.FRAMEBUFFER,R);return d.readPixels(n,o,f,u,s,l,_),d.bindFramebuffer(i.FRAMEBUFFER,T||null),E&&c.destroy(),_}function Rf(e){return e instanceof it.Framebuffer?{framebuffer:e,deleteFramebuffer:!1}:{framebuffer:Tf(e),deleteFramebuffer:!0}}function Tf(e,t){let{device:r,width:n,height:o,id:s}=e;return r.createFramebuffer({...t,id:`framebuffer-for-${s}`,width:n,height:o,colorAttachments:[e]})}function Af(e,t,r,n,o){if(e)return e;t=t||i.UNSIGNED_BYTE;let s=de(t,{clamped:!1}),a=ro(r);return new s(n*o*a)}var rs=p(b());function no(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter(function(o){return Object.getOwnPropertyDescriptor(e,o).enumerable})),r.push.apply(r,n)}return r}function io(e){for(var t=1;t<arguments.length;t++){var r=arguments[t]!=null?arguments[t]:{};t%2?no(Object(r),!0).forEach(function(n){pf(e,n,r[n])}):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(r)):no(Object(r)).forEach(function(n){Object.defineProperty(e,n,Object.getOwnPropertyDescriptor(r,n))})}return e}function pf(e,t,r){return t in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r,e}var oo=`
|
|
70
|
+
`},Ui={name:"brushing",dependencies:[wi.project],vs:ua,fs:_a,inject:pa,getUniforms:function(t){if(!t||!("viewport"in t))return{};var r=t.brushingEnabled,i=r===void 0?!0:r,n=t.brushingRadius,o=n===void 0?1e4:n,s=t.brushingTarget,a=s===void 0?"source":s,f=t.mousePosition,l=t.viewport;return{brushing_enabled:Boolean(i&&f&&l.containsPixel(f)),brushing_radius:o,brushing_target:da[a]||0,brushing_mousePos:f?l.unproject([f.x-l.x,f.y-l.y]):[0,0]}}};function bt(e){return typeof Symbol=="function"&&typeof Symbol.iterator=="symbol"?bt=function(r){return typeof r}:bt=function(r){return r&&typeof Symbol=="function"&&r.constructor===Symbol&&r!==Symbol.prototype?"symbol":typeof r},bt(e)}function ha(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}function ga(e,t){if(typeof t!="function"&&t!==null)throw new TypeError("Super expression must either be null or a function");e.prototype=Object.create(t&&t.prototype,{constructor:{value:e,writable:!0,configurable:!0}}),t&&Ur(e,t)}function Ur(e,t){return Ur=Object.setPrototypeOf||function(i,n){return i.__proto__=n,i},Ur(e,t)}function Ta(e){var t=ba();return function(){var i=Et(e),n;if(t){var o=Et(this).constructor;n=Reflect.construct(i,arguments,o)}else n=i.apply(this,arguments);return Aa(this,n)}}function Aa(e,t){if(t&&(bt(t)==="object"||typeof t=="function"))return t;if(t!==void 0)throw new TypeError("Derived constructors may only return object or undefined");return Ra(e)}function Ra(e){if(e===void 0)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return e}function ba(){if(typeof Reflect>"u"||!Reflect.construct||Reflect.construct.sham)return!1;if(typeof Proxy=="function")return!0;try{return Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],function(){})),!0}catch{return!1}}function Et(e){return Et=Object.setPrototypeOf?Object.getPrototypeOf:function(r){return r.__proto__||Object.getPrototypeOf(r)},Et(e)}var Ea={getBrushingTarget:{type:"accessor",value:[0,0]},brushingTarget:"source",brushingEnabled:!0,brushingRadius:1e4},vt=function(e){ga(r,e);var t=Ta(r);function r(){return ha(this,r),t.apply(this,arguments)}var i=r.prototype;return i.getShaders=function(){return{modules:[Ui]}},i.initializeState=function(o,s){var a=this,f=this.getAttributeManager();f&&f.add({brushingTargets:{size:2,accessor:"getBrushingTarget",shaderAttributes:{brushingTargets:{divisor:0},instanceBrushingTargets:{divisor:1}}}});var l=function(){var u;(u=a.getCurrentLayer())===null||u===void 0||u.setNeedsRedraw()};this.state.onMouseMove=l,o.deck&&o.deck.eventManager.on({pointermove:l,pointerleave:l})},i.finalizeState=function(o,s){if(o.deck){var a=this.state.onMouseMove;o.deck.eventManager.off({pointermove:a,pointerleave:a})}},r}(Vi.LayerExtension);vt.defaultProps=Ea;vt.extensionName="BrushingExtension";var va="Failed to create WebGL context in Node.js, headless gl returned null",ma=" luma.gl: loaded under Node.js without headless gl installed, meaning that WebGL contexts can not be created. This may not be an error. For example, this is a typical configuration for isorender applications running on the server.",Sa={width:1,height:1,debug:!0,throwOnError:!1},Vr=null;function ki(){return Vr!==null}function Wi(e){e={...Sa,...e};let{width:t,height:r,webgl1:i,webgl2:n}=e;if(n&&!i)throw new Error("headless-gl does not support WebGL2");if(!Vr)throw new Error(ma);let o=Vr(t,r,e);if(!o)throw new Error(va);return o}var O=T(E(),1);function Xe(e){if(typeof window<"u"&&typeof window.process=="object"&&window.process.type==="renderer"||typeof process<"u"&&typeof process.versions=="object"&&Boolean(process.versions.electron))return!0;let t=typeof navigator=="object"&&typeof navigator.userAgent=="string"&&navigator.userAgent,r=e||t;return!!(r&&r.indexOf("Electron")>=0)}function L(){return!(typeof process=="object"&&String(process)==="[object process]"&&!process.browser)||Xe()}var Rd=globalThis.self||globalThis.window||globalThis.global,bd=globalThis.window||globalThis.self||globalThis.global,Ed=globalThis.document||{},vd=globalThis.process||{},md=globalThis.console,Xi=globalThis.navigator||{};var kr=globalThis;function mt(e){if(!e&&!L())return"Node";if(Xe(e))return"Electron";let t=e||Xi.userAgent||"";if(t.indexOf("Edge")>-1)return"Edge";let r=t.indexOf("MSIE ")!==-1,i=t.indexOf("Trident/")!==-1;return r||i?"IE":kr.chrome?"Chrome":kr.safari?"Safari":kr.mozInnerScreenX?"Firefox":"Unknown"}var Qi=T(E(),1);var Le={};function ya(e){globalThis.console&&globalThis.console.error&&globalThis.console.error(e)}function Oa(e){globalThis.console&&globalThis.console.log&&globalThis.console.log(e)}function xa(e,t){Le[e]=!0,t!==void 0&&ya(t)}function Pa(e){let t=e.getError;e.getError=function(){let i;do i=t.apply(e),i!==0&&(Le[i]=!0);while(i!==0);for(i in Le)if(Le[i])return delete Le[i],parseInt(i,10);return 0}}var je=function e(t){let r=t.gl;this.ext=t,this.isAlive=!0,this.hasBeenBound=!1,this.elementArrayBuffer=null,this.attribs=new Array(t.maxVertexAttribs);for(let i=0;i<this.attribs.length;i++){let n=new e.VertexAttrib(r);this.attribs[i]=n}this.maxAttrib=0};je.VertexAttrib=function(t){this.enabled=!1,this.buffer=null,this.size=4,this.type=5126,this.normalized=!1,this.stride=16,this.offset=0,this.cached="",this.recache()};je.VertexAttrib.prototype.recache=function(){this.cached=[this.size,this.type,this.normalized,this.stride,this.offset].join(":")};var Re=function(t){let r=this;this.gl=t,Pa(t);let i=this.original={getParameter:t.getParameter,enableVertexAttribArray:t.enableVertexAttribArray,disableVertexAttribArray:t.disableVertexAttribArray,bindBuffer:t.bindBuffer,getVertexAttrib:t.getVertexAttrib,vertexAttribPointer:t.vertexAttribPointer};t.getParameter=function(o){return o===r.VERTEX_ARRAY_BINDING_OES?r.currentVertexArrayObject===r.defaultVertexArrayObject?null:r.currentVertexArrayObject:i.getParameter.apply(this,arguments)},t.enableVertexAttribArray=function(o){let s=r.currentVertexArrayObject;s.maxAttrib=Math.max(s.maxAttrib,o);let a=s.attribs[o];return a.enabled=!0,i.enableVertexAttribArray.apply(this,arguments)},t.disableVertexAttribArray=function(o){let s=r.currentVertexArrayObject;s.maxAttrib=Math.max(s.maxAttrib,o);let a=s.attribs[o];return a.enabled=!1,i.disableVertexAttribArray.apply(this,arguments)},t.bindBuffer=function(o,s){switch(o){case 34962:r.currentArrayBuffer=s;break;case 34963:r.currentVertexArrayObject.elementArrayBuffer=s;break;default:}return i.bindBuffer.apply(this,arguments)},t.getVertexAttrib=function(o,s){let f=r.currentVertexArrayObject.attribs[o];switch(s){case 34975:return f.buffer;case 34338:return f.enabled;case 34339:return f.size;case 34340:return f.stride;case 34341:return f.type;case 34922:return f.normalized;default:return i.getVertexAttrib.apply(this,arguments)}},t.vertexAttribPointer=function(o,s,a,f,l,c){let u=r.currentVertexArrayObject;u.maxAttrib=Math.max(u.maxAttrib,o);let _=u.attribs[o];return _.buffer=r.currentArrayBuffer,_.size=s,_.type=a,_.normalized=f,_.stride=l,_.offset=c,_.recache(),i.vertexAttribPointer.apply(this,arguments)},t.instrumentExtension&&t.instrumentExtension(this,"OES_vertex_array_object"),t.canvas&&t.canvas.addEventListener("webglcontextrestored",()=>{Oa("OESVertexArrayObject emulation library context restored"),r.reset_()},!0),this.reset_()};Re.prototype.VERTEX_ARRAY_BINDING_OES=34229;Re.prototype.reset_=function(){if(this.vertexArrayObjects!==void 0)for(let i=0;i<this.vertexArrayObjects.length;++i)this.vertexArrayObjects.isAlive=!1;let r=this.gl;this.maxVertexAttribs=r.getParameter(34921),this.defaultVertexArrayObject=new je(this),this.currentVertexArrayObject=null,this.currentArrayBuffer=null,this.vertexArrayObjects=[this.defaultVertexArrayObject],this.bindVertexArrayOES(null)};Re.prototype.createVertexArrayOES=function(){let t=new je(this);return this.vertexArrayObjects.push(t),t};Re.prototype.deleteVertexArrayOES=function(t){t.isAlive=!1,this.vertexArrayObjects.splice(this.vertexArrayObjects.indexOf(t),1),this.currentVertexArrayObject===t&&this.bindVertexArrayOES(null)};Re.prototype.isVertexArrayOES=function(t){return!!(t&&t instanceof je&&t.hasBeenBound&&t.ext===this)};Re.prototype.bindVertexArrayOES=function(t){let r=this.gl;if(t&&!t.isAlive){xa(1282,"bindVertexArrayOES: attempt to bind deleted arrayObject");return}let i=this.original,n=this.currentVertexArrayObject;this.currentVertexArrayObject=t||this.defaultVertexArrayObject,this.currentVertexArrayObject.hasBeenBound=!0;let o=this.currentVertexArrayObject;if(n===o)return;(!n||o.elementArrayBuffer!==n.elementArrayBuffer)&&i.bindBuffer.call(r,34963,o.elementArrayBuffer);let s=this.currentArrayBuffer,a=Math.max(n?n.maxAttrib:0,o.maxAttrib);for(let f=0;f<=a;f++){let l=o.attribs[f],c=n?n.attribs[f]:null;if((!n||l.enabled!==c.enabled)&&(l.enabled?i.enableVertexAttribArray.call(r,f):i.disableVertexAttribArray.call(r,f)),l.enabled){let u=!1;(!n||l.buffer!==c.buffer)&&(s!==l.buffer&&(i.bindBuffer.call(r,34962,l.buffer),s=l.buffer),u=!0),(u||l.cached!==c.cached)&&i.vertexAttribPointer.call(r,f,l.size,l.type,l.normalized,l.stride,l.offset)}}this.currentArrayBuffer!==s&&i.bindBuffer.call(r,34962,this.currentArrayBuffer)};function Li(e){if(typeof e.createVertexArray=="function")return;let t=e.getSupportedExtensions;e.getSupportedExtensions=function(){let n=t.call(this)||[];return n.indexOf("OES_vertex_array_object")<0&&n.push("OES_vertex_array_object"),n};let r=e.getExtension;e.getExtension=function(n){let o=r.call(this,n);return o||(n!=="OES_vertex_array_object"?null:(e.__OESVertexArrayObject||(this.__OESVertexArrayObject=new Re(this)),this.__OESVertexArrayObject))}}var be=T(E(),1);var ji=T(E(),1),Ia="Invalid WebGLRenderingContext";function Fa(e){return typeof WebGLRenderingContext<"u"&&e instanceof WebGLRenderingContext||typeof WebGL2RenderingContext<"u"&&e instanceof WebGL2RenderingContext?!0:Boolean(e&&Number.isFinite(e._version))}function b(e){return typeof WebGL2RenderingContext<"u"&&e instanceof WebGL2RenderingContext?!0:Boolean(e&&e._version===2)}function Wr(e){return b(e)?e:null}function Ki(e){return(0,ji.assert)(Fa(e),Ia),e}var zi="OES_element_index",Yi="WEBGL_draw_buffers",Ca="EXT_disjoint_timer_query",Ma="EXT_disjoint_timer_query_webgl2",Na="EXT_texture_filter_anisotropic",$i="WEBGL_debug_renderer_info",Ba=35723,Da=4352,wa=36795,Ua=34047,Va=37445,ka=37446,y=e=>b(e)?void 0:0,Wa={[3074]:e=>b(e)?void 0:36064,[Ba]:e=>b(e)?void 0:Da,[35977]:y,[32937]:y,[wa]:(e,t)=>{let r=b(e)?e.getExtension(Ma):e.getExtension(Ca);return r&&r.GPU_DISJOINT_EXT?t(r.GPU_DISJOINT_EXT):0},[Va]:(e,t)=>{let r=e.getExtension($i);return t(r&&r.UNMASKED_VENDOR_WEBGL||7936)},[ka]:(e,t)=>{let r=e.getExtension($i);return t(r&&r.UNMASKED_RENDERER_WEBGL||7937)},[Ua]:(e,t)=>{var r;let i=((r=e.luma)===null||r===void 0||(r=r.extensions)===null||r===void 0?void 0:r[Na])||e.getExtension("EXT_texture_filter_anisotropic");return i?t(i.MAX_TEXTURE_MAX_ANISOTROPY_EXT):1},[32883]:y,[35071]:y,[37447]:y,[36063]:(e,t)=>{if(!b(e)){let r=e.getExtension(Yi);return r?t(r.MAX_COLOR_ATTACHMENTS_WEBGL):0}},[35379]:y,[35374]:y,[35377]:y,[34852]:e=>{if(!b(e)){let t=e.getExtension(Yi);return t?t.MAX_DRAW_BUFFERS_WEBGL:0}},[36203]:e=>e.getExtension(zi)?2147483647:65535,[33001]:e=>e.getExtension(zi)?16777216:65535,[33e3]:e=>16777216,[37157]:y,[35373]:y,[35657]:y,[36183]:y,[37137]:y,[34045]:y,[35978]:y,[35979]:y,[35968]:y,[35376]:y,[35375]:y,[35659]:y,[37154]:y,[35371]:y,[35658]:y,[35076]:y,[35077]:y,[35380]:y};function qi(e,t,r){let i=Wa[r],n=typeof i=="function"?i(e,t,r):i;return n!==void 0?n:t(r)}function xe(e){if(!e.luma){let r={_polyfilled:!1,_extensions:{}};e.luma=r}return e.luma}var Ha="OES_vertex_array_object",Zi="ANGLE_instanced_arrays",Xa="WEBGL_draw_buffers",La="EXT_disjoint_timer_query",ja="EXT_texture_filter_anisotropic",Ka="VertexArray requires WebGL2 or OES_vertex_array_object extension";function za(e,t){return{webgl2:b(e),ext:e.getExtension(t)}}var Hr={[Ha]:{meta:{suffix:"OES"},createVertexArray:()=>{(0,be.assert)(!1,Ka)},deleteVertexArray:()=>{},bindVertexArray:()=>{},isVertexArray:()=>!1},[Zi]:{meta:{suffix:"ANGLE"},vertexAttribDivisor(e,t){(0,be.assert)(t===0,"WebGL instanced rendering not supported")},drawElementsInstanced:()=>{},drawArraysInstanced:()=>{}},[Xa]:{meta:{suffix:"WEBGL"},drawBuffers:()=>{(0,be.assert)(!1)}},[La]:{meta:{suffix:"EXT"},createQuery:()=>{(0,be.assert)(!1)},deleteQuery:()=>{(0,be.assert)(!1)},beginQuery:()=>{(0,be.assert)(!1)},endQuery:()=>{},getQuery(e,t){return this.getQueryObject(e,t)},getQueryParameter(e,t){return this.getQueryObject(e,t)},getQueryObject:(e,t)=>{}}},St={readBuffer:(e,t,r)=>{b(e)&&t(r)},getVertexAttrib:(e,t,r,i)=>{let{webgl2:n,ext:o}=za(e,Zi),s;switch(i){case 35069:s=n?void 0:!1;break;case 35070:s=!n&&!o?0:void 0;break;default:}return s!==void 0?s:t(r,i)},getProgramParameter:(e,t,r,i)=>{if(!b(e))switch(i){case 35967:return 35981;case 35971:return 0;case 35382:return 0;default:}return t(r,i)},getInternalformatParameter:(e,t,r,i,n)=>{if(!b(e))switch(n){case 32937:return new Int32Array([0]);default:}return e.getInternalformatParameter(r,i,n)},getTexParameter(e,t,r,i){switch(i){case 34046:let n=xe(e),{_extensions:o}=n,s=o[ja];i=s&&s.TEXTURE_MAX_ANISOTROPY_EXT||34046;break;default:}return t(r,i)},getParameter:qi,hint(e,t,r,i){return t(r,i)}};function Ji(e){let t=xe(e);return t._polyfilled||(Li(e),Ya(e),$a(e,Hr),Za(e,{target:t,target2:e}),t._polyfilled=!0),e}function Ya(e){let t=xe(e),r=e.getSupportedExtensions()||[],i=["WEBGL_polygon_mode"];for(let n of r)if(!i.includes(n)){let o=e.getExtension(n);t._extensions[n]=o}}function $a(e,t){let r=xe(e);for(let i of Object.getOwnPropertyNames(t))i!=="overrides"&&qa(e,{extension:i,target:r,target2:e})}function qa(e,t){let{extension:r,target:i,target2:n}=t,o=Hr[r];(0,Qi.assert)(o);let{meta:s={}}=o,{suffix:a=""}=s,f=e.getExtension(r);for(let l of Object.keys(o)){let c=`${l}${a}`,u=null;l==="meta"||typeof e[l]=="function"||(f&&typeof f[c]=="function"?u=function(){return f[c](...arguments)}:typeof o[l]=="function"&&(u=o[l].bind(i))),u&&(i[l]=u,n[l]=u)}}function Za(e,t){let{target:r,target2:i}=t;Object.keys(St).forEach(n=>{if(typeof St[n]=="function"){let o=e[n]?e[n].bind(e):()=>{},s=St[n].bind(null,e,o);r[n]=s,i[n]=s}})}var ze=T(E(),1);var yt={[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],[3333]:4,[3317]:4,[37440]:!1,[37441]:!1,[37443]:37444,[36389]:null,[36662]:null,[36663]:null,[35053]:null,[35055]:null,[35723]:4352,[36010]:null,[35977]:!1,[3330]:0,[3332]:0,[3331]:0,[3314]:0,[32878]:0,[3316]:0,[3315]:0,[32877]:0},Q=(e,t,r)=>t?e.enable(r):e.disable(r),Gi=(e,t,r)=>e.hint(r,t),H=(e,t,r)=>e.pixelStorei(r,t),en=(e,t,r)=>{let i;return r===36006?i=b(e)?36009:36160:i=36008,e.bindFramebuffer(i,t)},Ke=(e,t,r)=>{let n={[34964]:34962,[36662]:36662,[36663]:36663,[35053]:35051,[35055]:35052}[r];e.bindBuffer(n,t)};function Xr(e){return Array.isArray(e)||ArrayBuffer.isView(e)&&!(e instanceof DataView)}var tn={[3042]:Q,[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]:Q,[2885]:(e,t)=>e.cullFace(t),[2929]:Q,[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]:Q,[35723]:Gi,[35725]:(e,t)=>e.useProgram(t),[36007]:(e,t)=>e.bindRenderbuffer(36161,t),[36389]:(e,t)=>{var r,i;return(r=(i=e).bindTransformFeedback)===null||r===void 0?void 0:r.call(i,36386,t)},[34229]:(e,t)=>e.bindVertexArray(t),[36006]:en,[36010]:en,[34964]:Ke,[36662]:Ke,[36663]:Ke,[35053]:Ke,[35055]:Ke,[2886]:(e,t)=>e.frontFace(t),[33170]:Gi,[2849]:(e,t)=>e.lineWidth(t),[32823]:Q,[32824]:"polygonOffset",[10752]:"polygonOffset",[35977]:Q,[32926]:Q,[32928]:Q,[32938]:"sampleCoverage",[32939]:"sampleCoverage",[3089]:Q,[3088]:(e,t)=>e.scissor(...t),[2960]:Q,[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),[3333]:H,[3317]:H,[37440]:H,[37441]:H,[37443]:H,[3330]:H,[3332]:H,[3331]:H,[3314]:H,[32878]:H,[3316]:H,[3315]:H,[32877]:H,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),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=Xr(t)?t:[t,t];let[r,i]=t;e.stencilMaskSeparate(1028,r),e.stencilMaskSeparate(1029,i)},stencilFunc:(e,t)=>{t=Xr(t)&&t.length===3?[...t,...t]:t;let[r,i,n,o,s,a]=t;e.stencilFuncSeparate(1028,r,i,n),e.stencilFuncSeparate(1029,o,s,a)},stencilOp:(e,t)=>{t=Xr(t)&&t.length===3?[...t,...t]:t;let[r,i,n,o,s,a]=t;e.stencilOpSeparate(1028,r,i,n),e.stencilOpSeparate(1029,o,s,a)},viewport:(e,t)=>e.viewport(...t)};function x(e,t,r){return t[e]!==void 0?t[e]:r[e]}var rn={blendEquation:(e,t,r)=>e.blendEquationSeparate(x(32777,t,r),x(34877,t,r)),blendFunc:(e,t,r)=>e.blendFuncSeparate(x(32969,t,r),x(32968,t,r),x(32971,t,r),x(32970,t,r)),polygonOffset:(e,t,r)=>e.polygonOffset(x(32824,t,r),x(10752,t,r)),sampleCoverage:(e,t,r)=>e.sampleCoverage(x(32938,t,r),x(32939,t,r)),stencilFuncFront:(e,t,r)=>e.stencilFuncSeparate(1028,x(2962,t,r),x(2967,t,r),x(2963,t,r)),stencilFuncBack:(e,t,r)=>e.stencilFuncSeparate(1029,x(34816,t,r),x(36003,t,r),x(36004,t,r)),stencilOpFront:(e,t,r)=>e.stencilOpSeparate(1028,x(2964,t,r),x(2965,t,r),x(2966,t,r)),stencilOpBack:(e,t,r)=>e.stencilOpSeparate(1029,x(34817,t,r),x(34818,t,r),x(34819,t,r))},Lr={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,n)=>e({[32773]:new Float32Array([t,r,i,n])}),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,n)=>e({[32969]:t,[32968]:r,[32971]:i,[32970]:n}),clearColor:(e,t,r,i,n)=>e({[3106]:new Float32Array([t,r,i,n])}),clearDepth:(e,t)=>e({[2931]:t}),clearStencil:(e,t)=>e({[2961]:t}),colorMask:(e,t,r,i,n)=>e({[3107]:[t,r,i,n]}),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,n)=>e({[3088]:new Int32Array([t,r,i,n])}),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,n)=>e({[t===1028?2962:34816]:r,[t===1028?2967:36003]:i,[t===1028?2963:36004]:n}),stencilOp:(e,t,r,i)=>e({[2964]:t,[2965]:r,[2966]:i,[34817]:t,[34818]:r,[34819]:i}),stencilOpSeparate:(e,t,r,i,n)=>e({[t===1028?2964:34817]:r,[t===1028?2965:34818]:i,[t===1028?2966:34819]:n}),viewport:(e,t,r,i,n)=>e({[2978]:[t,r,i,n]})},J=(e,t)=>e.isEnabled(t),jr={[3042]:J,[2884]:J,[2929]:J,[3024]:J,[32823]:J,[32926]:J,[32928]:J,[3089]:J,[2960]:J,[35977]:J},nn=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 oe(e,t){let i=M.attach(e).gl;if(Qa(t))return;let n={};for(let s in t){let a=Number(s),f=tn[s];f&&(typeof f=="string"?n[f]=!0:f(i,t[s],a))}let o=i.state&&i.state.cache;if(o)for(let s in n){let a=rn[s];a(i,t,o)}}function on(e){let t=arguments.length>1&&arguments[1]!==void 0?arguments[1]:yt,i=M.attach(e).gl;if(typeof t=="number"){let s=t,a=jr[s];return a?a(i,s):i.getParameter(s)}let n=Array.isArray(t)?t:Object.keys(t),o={};for(let s of n){let a=jr[s];o[s]=a?a(i,Number(s)):i.getParameter(Number(s))}return o}function Qa(e){for(let t in e)return!1;return!0}function sn(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 n=0;n<e.length;++n)if(e[n]!==t[n])return!1;return!0}return!1}var Kr=class{constructor(t){let{copyState:r=!1,log:i=()=>{}}=arguments.length>1&&arguments[1]!==void 0?arguments[1]:{};this.gl=void 0,this.program=null,this.stateStack=[],this.enable=!0,this.cache=void 0,this.log=void 0,this.gl=t,this.cache=r?on(t):Object.assign({},yt),this.log=i,this._updateCache=this._updateCache.bind(this),Object.seal(this)}push(){let t=arguments.length>0&&arguments[0]!==void 0?arguments[0]:{};this.stateStack.push({})}pop(){(0,ze.assert)(this.stateStack.length>0);let t=this.stateStack[this.stateStack.length-1];oe(this.gl,t),this.stateStack.pop()}_updateCache(t){let r=!1,i,n=this.stateStack.length>0?this.stateStack[this.stateStack.length-1]:null;for(let o in t){(0,ze.assert)(o!==void 0);let s=t[o],a=this.cache[o];sn(s,a)||(r=!0,i=a,n&&!(o in n)&&(n[o]=a),this.cache[o]=s)}return{valueChanged:r,oldValue:i}}};function Ee(e){return e.state}function zr(e,t){let{enable:r=!0,copyState:i}=t;if((0,ze.assert)(i!==void 0),!e.state){e.state=new Kr(e,{copyState:i}),Ga(e);for(let o in Lr){let s=Lr[o];Ja(e,o,s)}an(e,"getParameter"),an(e,"isEnabled")}let n=Ee(e);return n.enable=r,e}function _e(e){let t=Ee(e);t||(zr(e,{copyState:!1}),t=Ee(e)),t.push()}function se(e){let t=Ee(e);(0,ze.assert)(t),t.pop()}function an(e,t){let r=e[t].bind(e);e[t]=function(n){if(n===void 0||nn.has(n))return r(n);let o=Ee(e);return n in o.cache||(o.cache[n]=r(n)),o.enable?o.cache[n]:r(n)},Object.defineProperty(e[t],"name",{value:`${t}-from-cache`,configurable:!1})}function Ja(e,t,r){if(!e[t])return;let i=e[t].bind(e);e[t]=function(){let o=Ee(e);for(var s=arguments.length,a=new Array(s),f=0;f<s;f++)a[f]=arguments[f];let{valueChanged:l,oldValue:c}=r(o._updateCache,...a);return l&&i(...a),c},Object.defineProperty(e[t],"name",{value:`${t}-to-cache`,configurable:!1})}function Ga(e){let t=e.useProgram.bind(e);e.useProgram=function(i){let n=Ee(e);n.program!==i&&(t(i),n.program=i)}}var ef={webgl2:!0,webgl1:!0,powerPreference:"high-performance",onContextLost:()=>console.error("WebGL context lost"),onContextRestored:()=>console.info("WebGL context restored")};function fn(e,t){t={...ef,...t};let r=null,i=o=>r=o.statusMessage||r;e.addEventListener("webglcontextcreationerror",i,!1);let n=null;if(t.type==="webgl2"&&(t={...t,webgl1:!1}),t.type==="webgl1"&&(t={...t,webgl2:!1}),!n&&t.webgl2&&(n=e.getContext("webgl2",t)),!n&&t.webgl1&&(n=e.getContext("webgl",t)),e.removeEventListener("webglcontextcreationerror",i,!1),!n)throw new Error(`Failed to create ${t.webgl2&&!t.webgl1?"WebGL2":"WebGL"} context: ${r||"Unknown error"}`);if(t.onContextLost){let{onContextLost:o}=t;e.addEventListener("webglcontextlost",s=>o(s),!1)}if(t.onContextRestored){let{onContextRestored:o}=t;e.addEventListener("webglcontextrestored",s=>o(s),!1)}return n}function ln(e){let t=e.getParameter(7936),r=e.getParameter(7937),i=e.getExtension("WEBGL_debug_renderer_info"),n=e.getParameter(i?i.UNMASKED_VENDOR_WEBGL:7936),o=e.getParameter(i?i.UNMASKED_RENDERER_WEBGL:7937),s=n||t,a=o||r,f=e.getParameter(7938),l=cn(s,a),c=tf(s,a),u=rf(s,a),_="glsl",d=b(e)?300:100;return{type:b(e)?"webgl2":"webgl",gpu:l,gpuType:u,gpuBackend:c,vendor:s,renderer:a,version:f,shadingLanguage:_,shadingLanguageVersion:d}}function cn(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 tf(e,t){return/Metal/i.exec(e)||/Metal/i.exec(t)?"metal":/ANGLE/i.exec(e)||/ANGLE/i.exec(t)?"opengl":"unknown"}function rf(e,t){if(/SwiftShader/i.exec(e)||/SwiftShader/i.exec(t))return"cpu";switch(cn(e,t)){case"intel":return"integrated";case"software":return"cpu";case"unknown":return"unknown";default:return"discrete"}}function un(){let e=arguments.length>0&&arguments[0]!==void 0?arguments[0]:{},t=typeof window<"u"?window.navigator||{}:{},r=e.userAgent||t.userAgent||"",i=r.indexOf("MSIE ")!==-1,n=r.indexOf("Trident/")!==-1;return i||n}var qr=T(E(),1);function Ot(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 w="texture-compression-bc",v="texture-compression-astc",G="texture-compression-etc2",nf="texture-compression-etc1-webgl",xt="texture-compression-pvrtc-webgl",Yr="texture-compression-atc-webgl",Ye="WEBGL_compressed_texture_s3tc",$e="WEBGL_compressed_texture_s3tc_srgb",Pe="EXT_texture_compression_rgtc",qe="EXT_texture_compression_bptc",of="WEBGL_compressed_texture_etc",sf="WEBGL_compressed_texture_astc",af="WEBGL_compressed_texture_etc1",ff="WEBGL_compressed_texture_pvrtc",lf="WEBGL_compressed_texture_atc",_n="EXT_sRGB",ae="EXT_texture_norm16",cf="WEBGL_color_buffer_float",uf="EXT_color_buffer_float",j=(e,t)=>e.getExtension(t),ve=(e,t)=>t.every(r=>e.getExtension(r)),$r={"texture-blend-float-webgl1":e=>b(e)?!0:j(e,"EXT_float_blend"),"texture-formats-srgb-webgl1":e=>b(e)?!0:j(e,_n),"texture-formats-depth-webgl1":e=>b(e)?!0:j(e,"WEBGL_depth_texture"),"texture-formats-float32-webgl1":e=>b(e)?!0:j(e,"OES_texture_float"),"texture-formats-float16-webgl1":e=>b(e)?!0:j(e,"OES_texture_half_float"),"texture-formats-norm16-webgl":e=>b(e)?j(e,ae):!1,"texture-filter-linear-float32-webgl":e=>j(e,"OES_texture_float_linear"),"texture-filter-linear-float16-webgl":e=>j(e,"OES_texture_half_float_linear"),"texture-filter-anisotropic-webgl":e=>j(e,"EXT_texture_filter_anisotropic"),"texture-renderable-float32-webgl":e=>j(e,"EXT_color_buffer_float"),"texture-renderable-float16-webgl":e=>j(e,"EXT_color_buffer_half_float"),"texture-compression-bc":e=>ve(e,[Ye,$e,Pe,qe]),"texture-compression-bc5-webgl":e=>ve(e,[Pe]),"texture-compression-etc2":e=>ve(e,[of]),"texture-compression-astc":e=>ve(e,[sf]),"texture-compression-etc1-webgl":e=>ve(e,[af]),"texture-compression-pvrtc-webgl":e=>ve(e,[ff]),"texture-compression-atc-webgl":e=>ve(e,[lf])};function _f(e,t){var r;return((r=$r[t])===null||r===void 0?void 0:r.call($r,e))||!1}function dn(e){return Object.keys($r).filter(r=>_f(e,r))}var Ze={"rgb8unorm-unsized":{gl:6407,gl1:6407,b:4,c:2,bpp:4,dataFormat:6407,types:[5121,33635]},"rgba8unorm-unsized":{gl:6408,gl1:6408,b:4,c:2,bpp:4,dataFormat:6408,types:[5121,32819,32820]},r8unorm:{gl:33321,b:1,c:1,renderbuffer:!0},r8snorm:{gl:36756,b:1,c:1},r8uint:{gl:33330,b:1,c:1,renderbuffer:!0},r8sint:{gl:33329,b:1,c:1,renderbuffer:!0},rg8unorm:{gl:33323,b:2,c:2,renderbuffer:!0},rg8snorm:{gl:36757,b:2,c:2},rg8uint:{gl:33336,b:2,c:2,renderbuffer:!0},rg8sint:{gl:33335,b:2,c:2,renderbuffer:!0},r16uint:{gl:33332,b:2,c:1,renderbuffer:!0},r16sint:{gl:33331,b:2,c:1,renderbuffer:!0},r16float:{gl:33325,b:2,c:1,render:"texture-renderable-float16-webgl",filter:"texture-filter-linear-float16-webgl",renderbuffer:!0},"r16unorm-webgl":{gl:33322,b:2,c:1,f:"texture-formats-norm16-webgl",renderbuffer:!0,x:ae},"r16snorm-webgl":{gl:36760,b:2,c:1,f:"texture-formats-norm16-webgl",x:ae},"rgba4unorm-webgl":{gl:32854,b:2,c:4,wgpu:!1,renderbuffer:!0},"rgb565unorm-webgl":{gl:36194,b:2,c:4,wgpu:!1,renderbuffer:!0},"rgb5a1unorm-webgl":{gl:32855,b:2,c:4,wgpu:!1,renderbuffer:!0},"rgb8unorm-webgl":{gl:32849,b:3,c:3,wgpu:!1},"rgb8snorm-webgl":{gl:36758,b:3,c:3,wgpu:!1},rgba8unorm:{gl:32856,gl1:6408,b:4,c:2,bpp:4},"rgba8unorm-srgb":{gl:35907,gl1:35906,b:4,c:4,gl1ext:_n,bpp:4},rgba8snorm:{gl:36759,b:4,c:4},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:"texture-renderable-float16-webgl",filter:"texture-filter-linear-float16-webgl",renderbuffer:!0},"rg16unorm-webgl":{gl:33324,b:2,c:2,f:"texture-formats-norm16-webgl",x:ae},"rg16snorm-webgl":{gl:36761,b:2,c:2,f:"texture-formats-norm16-webgl",x:ae},r32uint:{gl:33334,b:4,c:1,bpp:4,renderbuffer:!0},r32sint:{gl:33333,b:4,c:1,bpp:4,renderbuffer:!0},r32float:{gl:33326,bpp:4,b:4,c:1,render:"texture-renderable-float32-webgl",filter:"texture-filter-linear-float32-webgl"},rgb9e5ufloat:{gl:35901,b:4,c:3,p:1,render:"texture-renderable-float16-webgl",filter:"texture-filter-linear-float16-webgl"},rg11b10ufloat:{gl:35898,b:4,c:3,p:1,render:"texture-renderable-float32-webgl",renderbuffer:!0},rgb10a2unorm:{gl:32857,b:4,c:4,p:1,renderbuffer:!0},"rgb10a2unorm-webgl":{b:4,c:4,gl:36975,p:1,wgpu:!1,bpp:4,renderbuffer:!0},"rgb16unorm-webgl":{gl:32852,b:2,c:3,f:"texture-formats-norm16-webgl",x:ae},"rgb16snorm-webgl":{gl:36762,b:2,c:3,f:"texture-formats-norm16-webgl",x:ae},rg32uint:{gl:33340,b:8,c:2,renderbuffer:!0},rg32sint:{gl:33339,b:8,c:2,renderbuffer:!0},rg32float:{gl:33328,b:8,c:2,render:"texture-renderable-float32-webgl",filter:"texture-filter-linear-float32-webgl",renderbuffer:!0},rgba16uint:{gl:36214,b:8,c:4,renderbuffer:!0},rgba16sint:{gl:36232,b:8,c:4,renderbuffer:!0},rgba16float:{gl:34842,gl1:6408,b:8,c:4,render:"texture-renderable-float16-webgl",filter:"texture-filter-linear-float16-webgl"},"rgba16unorm-webgl":{gl:32859,b:2,c:4,f:"texture-formats-norm16-webgl",renderbuffer:!0,x:ae},"rgba16snorm-webgl":{gl:36763,b:2,c:4,f:"texture-formats-norm16-webgl",x:ae},"rgb32float-webgl":{gl:34837,gl1:6407,render:"texture-renderable-float32-webgl",filter:"texture-filter-linear-float32-webgl",gl2ext:uf,gl1ext:cf,dataFormat:6407,types:[5126]},rgba32uint:{gl:36208,b:16,c:4,renderbuffer:!0},rgba32sint:{gl:36226,b:16,c:4,renderbuffer:!0},rgba32float:{gl:34836,b:16,c:4,render:"texture-renderable-float32-webgl",filter:"texture-filter-linear-float32-webgl",renderbuffer:!0},stencil8:{gl:36168,gl1:36168,b:1,c:1,attachment:36128,renderbuffer:!0},depth16unorm:{gl:33189,gl1:33189,b:2,c:1,attachment:36096,renderbuffer:!0},depth24plus:{gl:33190,b:3,c:1,attachment:36096},depth32float:{gl:36012,b:4,c:1,attachment:36096,renderbuffer:!0},"depth24plus-stencil8":{gl:34041,gl1:34041,b:4,c:2,p:1,attachment:33306,renderbuffer:!0,depthTexture:!0},"depth24unorm-stencil8":{gl:35056,b:4,c:2,p:1,attachment:33306,renderbuffer:!0},"depth32float-stencil8":{gl:36013,b:5,c:2,p:1,attachment:33306,renderbuffer:!0},"bc1-rgb-unorm-webgl":{gl:33776,x:Ye,f:w},"bc1-rgb-unorm-srgb-webgl":{gl:35916,x:$e,f:w},"bc1-rgba-unorm":{gl:33777,x:Ye,f:w},"bc1-rgba-unorm-srgb":{gl:35916,x:$e,f:w},"bc2-rgba-unorm":{gl:33778,x:Ye,f:w},"bc2-rgba-unorm-srgb":{gl:35918,x:$e,f:w},"bc3-rgba-unorm":{gl:33779,x:Ye,f:w},"bc3-rgba-unorm-srgb":{gl:35919,x:$e,f:w},"bc4-r-unorm":{gl:36283,x:Pe,f:w},"bc4-r-snorm":{gl:36284,x:Pe,f:w},"bc5-rg-unorm":{gl:36285,x:Pe,f:w},"bc5-rg-snorm":{gl:36286,x:Pe,f:w},"bc6h-rgb-ufloat":{gl:36495,x:qe,f:w},"bc6h-rgb-float":{gl:36494,x:qe,f:w},"bc7-rgba-unorm":{gl:36492,x:qe,f:w},"bc7-rgba-unorm-srgb":{gl:36493,x:qe,f:w},"etc2-rgb8unorm":{gl:37492,f:G},"etc2-rgb8unorm-srgb":{gl:37494,f:G},"etc2-rgb8a1unorm":{gl:37496,f:G},"etc2-rgb8a1unorm-srgb":{gl:37497,f:G},"etc2-rgba8unorm":{gl:37493,f:G},"etc2-rgba8unorm-srgb":{gl:37495,f:G},"eac-r11unorm":{gl:37488,f:G},"eac-r11snorm":{gl:37489,f:G},"eac-rg11unorm":{gl:37490,f:G},"eac-rg11snorm":{gl:37491,f:G},"astc-4x4-unorm":{gl:37808,f:v},"astc-4x4-unorm-srgb":{gl:37840,f:v},"astc-5x4-unorm":{gl:37809,f:v},"astc-5x4-unorm-srgb":{gl:37841,f:v},"astc-5x5-unorm":{gl:37810,f:v},"astc-5x5-unorm-srgb":{gl:37842,f:v},"astc-6x5-unorm":{gl:37811,f:v},"astc-6x5-unorm-srgb":{gl:37843,f:v},"astc-6x6-unorm":{gl:37812,f:v},"astc-6x6-unorm-srgb":{gl:37844,f:v},"astc-8x5-unorm":{gl:37813,f:v},"astc-8x5-unorm-srgb":{gl:37845,f:v},"astc-8x6-unorm":{gl:37814,f:v},"astc-8x6-unorm-srgb":{gl:37846,f:v},"astc-8x8-unorm":{gl:37815,f:v},"astc-8x8-unorm-srgb":{gl:37847,f:v},"astc-10x5-unorm":{gl:37819,f:v},"astc-10x5-unorm-srgb":{gl:37851,f:v},"astc-10x6-unorm":{gl:37817,f:v},"astc-10x6-unorm-srgb":{gl:37849,f:v},"astc-10x8-unorm":{gl:37818,f:v},"astc-10x8-unorm-srgb":{gl:37850,f:v},"astc-10x10-unorm":{gl:37819,f:v},"astc-10x10-unorm-srgb":{gl:37851,f:v},"astc-12x10-unorm":{gl:37820,f:v},"astc-12x10-unorm-srgb":{gl:37852,f:v},"astc-12x12-unorm":{gl:37821,f:v},"astc-12x12-unorm-srgb":{gl:37853,f:v},"pvrtc-rgb4unorm-webgl":{gl:35840,f:xt},"pvrtc-rgba4unorm-webgl":{gl:35842,f:xt},"pvrtc-rbg2unorm-webgl":{gl:35841,f:xt},"pvrtc-rgba2unorm-webgl":{gl:35843,f:xt},"etc1-rbg-unorm-webgl":{gl:36196,f:nf},"atc-rgb-unorm-webgl":{gl:35986,f:Yr},"atc-rgba-unorm-webgl":{gl:35986,f:Yr},"atc-rgbai-unorm-webgl":{gl:34798,f:Yr}},df={[6403]:1,[36244]:1,[33319]:2,[33320]:2,[6407]:3,[36248]:3,[6408]:4,[36249]:4,[6402]:1,[34041]:1,[6406]:1,[6409]:1,[6410]:2},pf={[5126]:4,[5125]:4,[5124]:4,[5123]:2,[5122]:2,[5131]:2,[5120]:1,[5121]:1};function Qe(e,t){let r=Je(t),i=Ze[r];if(!i||(b(e)?i.gl===void 0:i.gl1===void 0))return!1;let n=i.x||b(e)&&i.gl2ext||i.gl1ext;return n?Boolean(e.getExtension(n)):!0}function pn(e,t){var r;return Qe(e,t)&&((r=Ze[t])===null||r===void 0?void 0:r.renderbuffer)}function Je(e){if(typeof e=="string")return e;let t=Object.entries(Ze).find(r=>{let[,i]=r;return i.gl===e||i.gl1===e});if(!t)throw new Error(`Unknown texture format ${e}`);return t[0]}function Ge(e,t){let r=Ze[e],i=t?r?.gl:r?.gl1;if(i===void 0)throw new Error(`Unsupported texture format ${e}`);return i}function hn(e,t){let r=Je(t);if(!Qe(e,r))return!1;try{if((0,qr.decodeTextureFormat)(r).signed)return!1}catch{return!1}return r.endsWith("32float")?Boolean(e.getExtension("OES_texture_float_linear")):r.endsWith("16float")?Boolean(e.getExtension("OES_texture_half_float_linear")):!0}function gn(e,t){let r=Je(t);return!(!Qe(e,r)||typeof r=="number")}function Ie(e,t){let r=Je(e),i=Ge(r,t),n=(0,qr.decodeTextureFormat)(r);return{format:i,dataFormat:hf(n.format,n.integer,n.normalized,i),type:n.dataType?Ot(n.dataType):5121,compressed:n.compressed}}function Tn(e){let t=Ze[e];if(!(t!=null&&t.attachment))throw new Error(`${e} is not a depth stencil format`);return t.attachment}function An(e){let t=arguments.length>1&&arguments[1]!==void 0?arguments[1]:6408,r=arguments.length>2&&arguments[2]!==void 0?arguments[2]:6408,i=arguments.length>3&&arguments[3]!==void 0?arguments[3]:5121,n=null,o=null;try{n=e.createTexture(),e.bindTexture(3553,n);let s=0,a=1,f=1,l=0,c=new Uint8Array([0,0,255,255]);e.texImage2D(3553,s,t,a,f,l,r,i,c),o=e.createFramebuffer(),e.bindFramebuffer(36160,o),e.framebufferTexture2D(36160,36064,3553,n,0);let u=e.checkFramebufferStatus(36160)===36053;return e.bindTexture(3553,null),u}finally{e.deleteTexture(n),e.deleteFramebuffer(o)}}function et(e,t){let r=Je(e),i=Ie(r,t),n=df[i.dataFormat]||4,o=pf[i.type]||1;return n*o}function hf(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;default:return 6408}}function Rn(e){let t=gf(e);for(let r of dn(e))t.add(r);return t}function gf(e){e.getExtension("EXT_color_buffer_float"),e.getExtension("WEBGL_color_buffer_float"),e.getExtension("EXT_float_blend");let t=new Set;for(let r of Object.keys(bn))Tf(e,r)&&t.add(r);return t}function Tf(e,t){let r=bn[t];if(!r)return!1;let[i,n]=r||[],o=b(e)?n:i;if(typeof o=="boolean")return o;switch(t){case"texture-renderable-rgba32float-webgl":return b(e)?Boolean(e.getExtension(o)):An(e);case"glsl-derivatives":return Qr(e,o);case"glsl-frag-data":return Qr(e,o,{behavior:"require"});case"glsl-frag-depth":return Qr(e,o);default:return Boolean(e.getExtension(o))}}var Zr={};function Qr(e,t){let r=arguments.length>2&&arguments[2]!==void 0?arguments[2]:{};if(!un(r))return!0;if(t in Zr)return Zr[t];let i=r.behavior||"enable",n=`#extension GL_${t} : ${i}
|
|
71
|
+
void main(void) {}`,o=e.createShader(35633);if(!o)throw new Error("shader");e.shaderSource(o,n),e.compileShader(o);let s=e.getShaderParameter(o,35713);return e.deleteShader(o),Zr[t]=s,s}var bn={webgl:[!0,!0],webgl2:[!1,!0],"timer-query-webgl":["EXT_disjoint_timer_query","EXT_disjoint_timer_query_webgl2"],"transform-feedback-webgl2":[!1,!0],"vertex-array-object-webgl1":["OES_vertex_array_object",!0],"instanced-rendering-webgl1":["ANGLE_instanced_arrays",!0],"multiple-render-targets-webgl1":["WEBGL_draw_buffers",!0],"index-uint32-webgl1":["OES_element_index_uint",!0],"blend-minmax-webgl1":["EXT_blend_minmax",!0],"texture-blend-float-webgl1":["EXT_float_blend","EXT_float_blend"],"texture-formats-srgb-webgl1":["EXT_sRGB",!0],"texture-formats-depth-webgl1":["WEBGL_depth_texture",!0],"texture-formats-float32-webgl1":["OES_texture_float",!0],"texture-formats-float16-webgl1":["OES_texture_half_float",!0],"texture-filter-linear-float32-webgl":["OES_texture_float_linear","OES_texture_float_linear"],"texture-filter-linear-float16-webgl":["OES_texture_half_float_linear","OES_texture_half_float_linear"],"texture-filter-anisotropic-webgl":["EXT_texture_filter_anisotropic","EXT_texture_filter_anisotropic"],"texture-renderable-rgba32float-webgl":["WEBGL_color_buffer_float","EXT_color_buffer_float"],"texture-renderable-float32-webgl":[!1,"EXT_color_buffer_float"],"texture-renderable-float16-webgl":["EXT_color_buffer_half_float","EXT_color_buffer_half_float"],"glsl-frag-data":["WEBGL_draw_buffers",!0],"glsl-frag-depth":["EXT_frag_depth",!0],"glsl-derivatives":["OES_standard_derivatives",!0],"glsl-texture-lod":["EXT_shader_texture_lod",!0]};function En(e){let t=Wr(e);return{maxTextureDimension1D:0,maxTextureDimension2D:e.getParameter(3379),maxTextureDimension3D:t?t.getParameter(32883):0,maxTextureArrayLayers:t?t.getParameter(35071):0,maxBindGroups:1,maxDynamicUniformBuffersPerPipelineLayout:0,maxDynamicStorageBuffersPerPipelineLayout:0,maxSampledTexturesPerShaderStage:e.getParameter(35660),maxSamplersPerShaderStage:e.getParameter(35661),maxStorageBuffersPerShaderStage:0,maxStorageTexturesPerShaderStage:0,maxUniformBuffersPerShaderStage:t?t.getParameter(35375):0,maxUniformBufferBindingSize:t?t.getParameter(35376):0,maxStorageBufferBindingSize:0,minUniformBufferOffsetAlignment:t?t.getParameter(35380):0,minStorageBufferOffsetAlignment:0,maxVertexBuffers:0,maxVertexAttributes:e.getParameter(34921),maxVertexBufferArrayStride:2048,maxInterStageShaderComponents:t?t.getParameter(35659):0,maxComputeWorkgroupStorageSize:0,maxComputeInvocationsPerWorkgroup:0,maxComputeWorkgroupSizeX:0,maxComputeWorkgroupSizeY:0,maxComputeWorkgroupSizeZ:0,maxComputeWorkgroupsPerDimension:0}}function vn(e){let t=Wr(e);function r(n){return e.getParameter(n)}function i(n,o){return t?t.getParameter(n):o||0}return{[33902]:r(33902),[33901]:r(33901),[3379]:r(3379),[34076]:r(34076),[34930]:r(34930),[35661]:r(35661),[35660]:r(35660),[34024]:r(34024),[36348]:r(36348),[34921]:r(34921),[36347]:r(36347),[36349]:r(36349),[3386]:r(3386),[34047]:r(34047),[32883]:i(32883),[35071]:i(35071),[37447]:i(37447),[36063]:i(36063),[35379]:i(35379),[35374]:i(35374),[35377]:i(35377),[34852]:i(34852),[36203]:i(36203),[33001]:i(33001),[33e3]:i(33e3),[37157]:i(37157),[35373]:i(35373),[35657]:i(35657),[36183]:i(36183),[37137]:i(37137),[34045]:i(34045),[35978]:i(35978),[35979]:i(35979),[35968]:i(35968),[35376]:i(35376),[35375]:i(35375),[35659]:i(35659),[37154]:i(37154),[35371]:i(35371),[35658]:i(35658),[35076]:i(35076),[35077]:i(35077),[35380]:i(35380)}}var Cn=T(E(),1);var Dt=T(E(),1);var F=T(E(),1);function P(e,t,r){let n=M.attach(e).gl;if(Af(t))return r(e);let{nocatch:o=!0}=t;_e(n),oe(n,t);let s;if(o)s=r(n),se(n);else try{s=r(n)}finally{se(n)}return s}function Af(e){for(let t in e)return!1;return!0}var Ft=T(E(),1);function Sn(e,t,r,i){if((0,Ft.isObjectEmpty)(t))return i(e);_e(e.gl);try{return Rf(e,t),oe(e,r),i(e)}finally{se(e.gl)}}function Rf(e,t){let r=M.attach(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(tt("frontFace",t.frontFace,{ccw:2305,cw:2304})),t.depthBias!==void 0&&i.polygonOffset(t.depthBias,t.depthBiasSlopeScale||0),t.depthWriteEnabled!==void 0&&i.depthMask(Ef("depthWriteEnabled",t.depthWriteEnabled)),t.depthCompare&&(t.depthCompare!=="always"?i.enable(2929):i.disable(2929),i.depthFunc(It("depthCompare",t.depthCompare))),t.stencilWriteMask){let n=t.stencilWriteMask;i.stencilMaskSeparate(1028,n),i.stencilMaskSeparate(1029,n)}if(t.stencilReadMask&&Ft.log.warn("stencilReadMask not supported under WebGL"),t.stencilCompare){let n=t.stencilReadMask||4294967295,o=It("depthCompare",t.stencilCompare);t.stencilCompare!=="always"?i.enable(2960):i.disable(2960),i.stencilFuncSeparate(1028,o,0,n),i.stencilFuncSeparate(1029,o,0,n)}if(t.stencilPassOperation&&t.stencilFailOperation&&t.stencilDepthFailOperation){let n=Jr("stencilPassOperation",t.stencilPassOperation),o=Jr("stencilFailOperation",t.stencilFailOperation),s=Jr("stencilDepthFailOperation",t.stencilDepthFailOperation);i.stencilOpSeparate(1028,o,s,n),i.stencilOpSeparate(1029,o,s,n)}if(t.blendColorOperation||t.blendAlphaOperation){i.enable(3042);let n=mn("blendColorOperation",t.blendColorOperation||"add"),o=mn("blendAlphaOperation",t.blendAlphaOperation||"add");i.blendEquationSeparate(n,o);let s=Pt("blendColorSrcFactor",t.blendColorSrcFactor||"one"),a=Pt("blendColorDstFactor",t.blendColorDstFactor||"zero"),f=Pt("blendAlphaSrcFactor",t.blendAlphaSrcFactor||"one"),l=Pt("blendAlphaDstFactor",t.blendAlphaDstFactor||"zero");i.blendFuncSeparate(s,a,f,l)}}function It(e,t){return tt(e,t,{never:512,less:513,equal:514,"less-equal":515,greater:516,"not-equal":517,"greater-equal":518,always:519})}function Jr(e,t){return tt(e,t,{keep:7680,zero:0,replace:7681,invert:5386,"increment-clamp":7682,"decrement-clamp":7683,"increment-wrap":34055,"decrement-wrap":34056})}function mn(e,t){return tt(e,t,{add:32774,subtract:32778,"reverse-subtract":32779,min:32775,max:32776})}function Pt(e,t){return tt(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})}function bf(e,t){return`Illegal parameter ${t} for ${e}`}function tt(e,t,r){if(!(t in r))throw new Error(bf(e,t));return r[t]}function Ef(e,t){return t}function Ct(e){let t={};return e.addressModeU&&(t[10242]=Gr(e.addressModeU)),e.addressModeV&&(t[10243]=Gr(e.addressModeV)),e.addressModeW&&(t[32882]=Gr(e.addressModeW)),e.magFilter&&(t[10240]=On(e.magFilter)),(e.minFilter||e.mipmapFilter)&&(t[10241]=vf(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]=It("compare",e.compare)),e.maxAnisotropy&&(t[34046]=e.maxAnisotropy),t}function yn(e){let t={...e};return e[10241]!==9728&&(t[10241]=9729),t[10242]=33071,t[10243]=33071,t}function Gr(e){switch(e){case"clamp-to-edge":return 33071;case"repeat":return 10497;case"mirror-repeat":return 33648}}function On(e){switch(e){case"nearest":return 9728;case"linear":return 9729}}function vf(e,t){if(!t)return On(e);switch(e){case"nearest":return t==="nearest"?9984:9986;case"linear":return t==="nearest"?9985:9987}}var ee=T(E(),1),V=class extends ee.Buffer{constructor(t){let r=arguments.length>1&&arguments[1]!==void 0?arguments[1]:{};super(t,r),this.device=void 0,this.gl=void 0,this.gl2=void 0,this.handle=void 0,this.glTarget=void 0,this.glUsage=void 0,this.glIndexType=5123,this.byteLength=void 0,this.bytesUsed=void 0,this.device=t,this.gl=this.device.gl,this.gl2=this.device.gl2;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=mf(this.props.usage),this.glUsage=Sf(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){let r=arguments.length>1&&arguments[1]!==void 0?arguments[1]:0,i=arguments.length>2&&arguments[2]!==void 0?arguments[2]:t.byteLength+r,n=this.glTarget;this.gl.bindBuffer(n,this.handle),this.gl.bufferData(n,i,this.glUsage),this.gl.bufferSubData(n,r,t),this.gl.bindBuffer(n,null),this.bytesUsed=i,this.byteLength=i,this._setDebugData(t,r,i),this.trackAllocatedMemory(i)}_initWithByteLength(t){(0,ee.assert)(t>=0);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){let r=arguments.length>1&&arguments[1]!==void 0?arguments[1]:0,i=0,n=void 0,o=this.device.isWebGL2?36663:this.glTarget;this.gl.bindBuffer(o,this.handle),i!==0||n!==void 0?(this.device.assertWebGL2(),this.gl2.bufferSubData(o,r,t,i,n)):this.gl.bufferSubData(o,r,t),this.gl.bindBuffer(o,null),this._setDebugData(t,r,t.byteLength)}async readAsync(){let t=arguments.length>0&&arguments[0]!==void 0?arguments[0]:0,r=arguments.length>1?arguments[1]:void 0;return this.readSyncWebGL2(t,r)}readSyncWebGL2(){var t;let r=arguments.length>0&&arguments[0]!==void 0?arguments[0]:0,i=arguments.length>1?arguments[1]:void 0;this.device.assertWebGL2(),i=(t=i)!==null&&t!==void 0?t:this.byteLength-r;let n=new Uint8Array(i),o=0;return this.gl.bindBuffer(36662,this.handle),this.gl2.getBufferSubData(36662,r,n,o,i),this.gl.bindBuffer(36662,null),this._setDebugData(n,r,i),n}};function mf(e){return e&ee.Buffer.INDEX?34963:e&ee.Buffer.VERTEX?34962:e&ee.Buffer.UNIFORM?35345:34962}function Sf(e){return e&ee.Buffer.INDEX||e&ee.Buffer.VERTEX?35044:e&ee.Buffer.UNIFORM?35048:35044}var xn=T(E(),1);var me=class extends xn.Sampler{constructor(t,r){super(t,r),this.device=void 0,this.handle=void 0,this.parameters=void 0,this.device=t,this.parameters=Ct(r),this.device.isWebGL2&&(this.handle=this.handle||this.device.gl2.createSampler(),this._setSamplerParameters(this.parameters))}destroy(){this.handle&&(this.device.gl2.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 n=Number(r);switch(n){case 33082:case 33083:this.device.gl2.samplerParameterf(this.handle,n,i);break;default:this.device.gl2.samplerParameteri(this.handle,n,i);break}}}};var yf={parameters:{},pixelStore:{},pixels:null,border:0,dataFormat:void 0,textureUnit:void 0,target:void 0},N=class extends F.Texture{constructor(t,r){var i;super(t,{...yf,format:"rgba8unorm",...r}),this.MAX_ATTRIBUTES=void 0,this.device=void 0,this.gl=void 0,this.gl2=void 0,this.handle=void 0,this.sampler=void 0,this.glFormat=void 0,this.type=void 0,this.dataFormat=void 0,this.mipmaps=void 0,this.target=void 0,this.textureUnit=void 0,this.loaded=!1,this._video=void 0,this.device=t,this.gl=this.device.gl,this.gl2=this.device.gl2,this.handle=this.props.handle||this.gl.createTexture(),this.device.setSpectorMetadata(this.handle,{...this.props,data:typeof this.props.data}),this.glFormat=6408,this.target=Of(this.props),this.loaded=!1,typeof((i=this.props)===null||i===void 0?void 0:i.data)=="string"&&Object.assign(this.props,{data:(0,F.loadImage)(this.props.data)}),this.initialize(this.props),Object.seal(this)}destroy(){this.handle&&(this.gl.deleteTexture(this.handle),this.removeStats(),this.trackDeallocatedMemory("Texture"),this.destroyed=!0)}toString(){return`Texture(${this.id},${this.width}x${this.height})`}initialize(){let t=arguments.length>0&&arguments[0]!==void 0?arguments[0]:{};if(this.props.dimension==="cube")return this.initializeCube(t);let r=t.data;if(r instanceof Promise)return r.then(h=>this.initialize(Object.assign({},t,{pixels:h,data:h}))),this;let i=typeof HTMLVideoElement<"u"&&r instanceof HTMLVideoElement;if(i&&r.readyState<HTMLVideoElement.HAVE_METADATA)return this._video=null,r.addEventListener("loadeddata",()=>this.initialize(t)),this;let{parameters:n={}}=t,{pixels:o=null,pixelStore:s={},textureUnit:a=void 0}=t;r||(r=o);let{width:f,height:l,dataFormat:c,type:u,compressed:_=!1,mipmaps:d=!0}=t,{depth:p=0}=t,g=Ge(t.format,this.device.isWebGL2);return{width:f,height:l,compressed:_,dataFormat:c,type:u}=this._deduceParameters({format:t.format,type:u,dataFormat:c,compressed:_,data:r,width:f,height:l}),this.width=f,this.height=l,this.glFormat=g,this.type=u,this.dataFormat=c,this.textureUnit=a,Number.isFinite(this.textureUnit)&&(this.gl.activeTexture(33984+this.textureUnit),this.gl.bindTexture(this.target,this.handle)),d&&this.device.isWebGL1&&Mt(this.width,this.height)&&(F.log.warn(`texture: ${this} is Non-Power-Of-Two, disabling mipmaps`)(),d=!1),this.mipmaps=d,this.setImageData({data:r,width:f,height:l,depth:p,format:g,type:u,dataFormat:c,parameters:s,compressed:_}),this.setSampler(t.sampler),this._setSamplerParameters(n),d&&this.generateMipmap(),i&&(this._video={video:r,parameters:n,lastTime:r.readyState>=HTMLVideoElement.HAVE_CURRENT_DATA?r.currentTime:-1}),this}initializeCube(t){let{mipmaps:r=!0,parameters:i={}}=t;return this.setCubeMapImageData(t).then(()=>{this.loaded=!0,r&&this.generateMipmap(t),this.setSampler(t.sampler),this._setSamplerParameters(i)}),this}setSampler(){let t=arguments.length>0&&arguments[0]!==void 0?arguments[0]:{},r;t instanceof me?(this.sampler=t,r=t.props):(this.sampler=new me(this.device,t),r=t);let i=Ct(r);return this._setSamplerParameters(i),this}resize(t){let{height:r,width:i,mipmaps:n=!1}=t;return i!==this.width||r!==this.height?this.initialize({width:i,height:r,format:this.format,type:this.type,dataFormat:this.dataFormat,mipmaps:n}):this}update(){if(this._video){let{video:t,parameters:r,lastTime:i}=this._video;if(i===t.currentTime||t.readyState<HTMLVideoElement.HAVE_CURRENT_DATA)return;this.setSubImageData({data:t,parameters:r}),this.mipmaps&&this.generateMipmap(),this._video.lastTime=t.currentTime}}generateMipmap(){let t=arguments.length>0&&arguments[0]!==void 0?arguments[0]:{};return this.device.isWebGL1&&Mt(this.width,this.height)?(F.log.warn(`texture: ${this} is Non-Power-Of-Two, disabling mipmaping`)(),this):(this.mipmaps=!0,this.gl.bindTexture(this.target,this.handle),P(this.gl,t,()=>{this.gl.generateMipmap(this.target)}),this.gl.bindTexture(this.target,null),this)}setImageData(t){if(this.props.dimension==="3d"||this.props.dimension==="2d-array")return this.setImageData3D(t);this.trackDeallocatedMemory("Texture");let{target:r=this.target,pixels:i=null,level:n=0,glFormat:o=this.glFormat,offset:s=0,parameters:a={}}=t,{data:f=null,type:l=this.type,width:c=this.width,height:u=this.height,dataFormat:_=this.dataFormat,compressed:d=!1}=t;f||(f=i),{type:l,dataFormat:_,compressed:d,width:c,height:u}=this._deduceParameters({format:this.props.format,type:l,dataFormat:_,compressed:d,data:f,width:c,height:u});let{gl:p}=this;p.bindTexture(this.target,this.handle);let g=null;({data:f,dataType:g}=this._getDataType({data:f,compressed:d}));let h;if(P(this.gl,a,()=>{switch(g){case"null":p.texImage2D(r,n,o,c,u,0,_,l,f);break;case"typed-array":p.texImage2D(r,n,o,c,u,0,_,l,f,s);break;case"buffer":h=this.device.assertWebGL2(),h.bindBuffer(35052,f.handle||f),h.texImage2D(r,n,o,c,u,0,_,l,s),h.bindBuffer(35052,null);break;case"browser-object":this.device.isWebGL2?p.texImage2D(r,n,o,c,u,0,_,l,f):p.texImage2D(r,n,o,_,l,f);break;case"compressed":for(let[R,A]of f.entries())p.compressedTexImage2D(r,R,A.format,A.width,A.height,0,A.data);break;default:(0,F.assert)(!1,"Unknown image data type")}}),f&&f.byteLength)this.trackAllocatedMemory(f.byteLength,"Texture");else{let R=et(this.props.format,this.device.isWebGL2);this.trackAllocatedMemory(this.width*this.height*R,"Texture")}return this.loaded=!0,this}setSubImageData(t){let{target:r=this.target,pixels:i=null,data:n=null,x:o=0,y:s=0,width:a=this.width,height:f=this.height,level:l=0,glFormat:c=this.glFormat,type:u=this.type,dataFormat:_=this.dataFormat,compressed:d=!1,offset:p=0,parameters:g={}}=t;if({type:u,dataFormat:_,compressed:d,width:a,height:f}=this._deduceParameters({format:this.props.format,type:u,dataFormat:_,compressed:d,data:n,width:a,height:f}),(0,F.assert)(this.depth===1,"texSubImage not supported for 3D textures"),n||(n=i),n&&n.data){let h=n;n=h.data,a=h.shape[0],f=h.shape[1]}n instanceof V&&(n=n.handle),this.gl.bindTexture(this.target,this.handle),P(this.gl,g,()=>{if(d)this.gl.compressedTexSubImage2D(r,l,o,s,a,f,c,n);else if(n===null)this.gl.texSubImage2D(r,l,o,s,a,f,_,u,null);else if(ArrayBuffer.isView(n))this.gl.texSubImage2D(r,l,o,s,a,f,_,u,n,p);else if(typeof WebGLBuffer<"u"&&n instanceof WebGLBuffer){let h=this.device.assertWebGL2();h.bindBuffer(35052,n),h.texSubImage2D(r,l,o,s,a,f,_,u,p),h.bindBuffer(35052,null)}else this.device.isWebGL2?this.device.assertWebGL2().texSubImage2D(r,l,o,s,a,f,_,u,n):this.gl.texSubImage2D(r,l,o,s,_,u,n)}),this.gl.bindTexture(this.target,null)}copyFramebuffer(){let t=arguments.length>0&&arguments[0]!==void 0?arguments[0]:{};return F.log.error("Texture.copyFramebuffer({...}) is no logner supported, use copyToTexture(source, target, opts})")(),null}getActiveUnit(){return this.gl.getParameter(34016)-33984}bind(){let t=arguments.length>0&&arguments[0]!==void 0?arguments[0]:this.textureUnit,{gl:r}=this;return t!==void 0&&(this.textureUnit=t,r.activeTexture(33984+t)),r.bindTexture(this.target,this.handle),t}unbind(){let t=arguments.length>0&&arguments[0]!==void 0?arguments[0]:this.textureUnit,{gl:r}=this;return t!==void 0&&(this.textureUnit=t,r.activeTexture(33984+t)),r.bindTexture(this.target,null),t}_getDataType(t){let{data:r,compressed:i=!1}=t;return i?{data:r,dataType:"compressed"}:r===null?{data:r,dataType:"null"}:ArrayBuffer.isView(r)?{data:r,dataType:"typed-array"}:r instanceof V?{data:r.handle,dataType:"buffer"}:typeof WebGLBuffer<"u"&&r instanceof WebGLBuffer?{data:r,dataType:"buffer"}:{data:r,dataType:"browser-object"}}_deduceParameters(t){let{format:r,data:i}=t,{width:n,height:o,dataFormat:s,type:a,compressed:f}=t,l=Ie(r,this.device.isWebGL2);return s=s||l.dataFormat,a=a||l.type,f=f||l.compressed,{width:n,height:o}=this._deduceImageSize(i,n,o),{dataFormat:s,type:a,compressed:f,width:n,height:o,format:r,data:i}}_deduceImageSize(t,r,i){let n;return typeof ImageData<"u"&&t instanceof ImageData?n={width:t.width,height:t.height}:typeof HTMLImageElement<"u"&&t instanceof HTMLImageElement?n={width:t.naturalWidth,height:t.naturalHeight}:typeof HTMLCanvasElement<"u"&&t instanceof HTMLCanvasElement?n={width:t.width,height:t.height}:typeof ImageBitmap<"u"&&t instanceof ImageBitmap?n={width:t.width,height:t.height}:typeof HTMLVideoElement<"u"&&t instanceof HTMLVideoElement?n={width:t.videoWidth,height:t.videoHeight}:t?n={width:r,height:i}:n={width:r>=0?r:1,height:i>=0?i:1},(0,F.assert)(n,"Could not deduced texture size"),(0,F.assert)(r===void 0||n.width===r,"Deduced texture width does not match supplied width"),(0,F.assert)(i===void 0||n.height===i,"Deduced texture height does not match supplied height"),n}async setCubeMapImageData(t){let{gl:r}=this,{width:i,height:n,pixels:o,data:s,format:a=6408,type:f=5121}=t,l=o||s,c=await Promise.all(N.FACES.map(u=>{let _=l[u];return Promise.all(Array.isArray(_)?_:[_])}));this.bind(),N.FACES.forEach((u,_)=>{c[_].length>1&&this.props.mipmaps!==!1&&F.log.warn(`${this.id} has mipmap and multiple LODs.`)(),c[_].forEach((d,p)=>{i&&n?r.texImage2D(u,p,a,i,n,0,a,f,d):r.texImage2D(u,p,a,a,f,d)})}),this.unbind()}setImageDataForFace(t){let{face:r,width:i,height:n,pixels:o,data:s,format:a=6408,type:f=5121}=t,{gl:l}=this,c=o||s;return this.bind(),c instanceof Promise?c.then(u=>this.setImageDataForFace(Object.assign({},t,{face:r,data:u,pixels:u}))):this.width||this.height?l.texImage2D(r,0,a,i,n,0,a,f,c):l.texImage2D(r,0,a,a,f,c),this}setImageData3D(t){let{level:r=0,dataFormat:i,format:n,type:o,width:s,height:a,depth:f=1,offset:l=0,data:c,parameters:u={}}=t;this.trackDeallocatedMemory("Texture"),this.gl.bindTexture(this.target,this.handle);let _=Ie(n,this.device.isWebGL2);if(P(this.gl,u,()=>{ArrayBuffer.isView(c)&&this.gl.texImage3D(this.target,r,_.format,s,a,f,0,_.dataFormat,_.type,c),c instanceof V&&(this.gl.bindBuffer(35052,c.handle),this.gl.texImage3D(this.target,r,i,s,a,f,0,n,o,l))}),c&&c.byteLength)this.trackAllocatedMemory(c.byteLength,"Texture");else{let d=et(this.props.format,this.device.isWebGL2);this.trackAllocatedMemory(this.width*this.height*this.depth*d,"Texture")}return this.loaded=!0,this}_setSamplerParameters(t){if(this.device.isWebGL1&&Mt(this.width,this.height)&&(t=yn(t)),!(0,F.isObjectEmpty)(t)){xf(t),this.gl.bindTexture(this.target,this.handle);for(let[r,i]of Object.entries(t)){let n=Number(r),o=i;switch(n){case 33082:case 33083:this.gl.texParameterf(this.target,n,o);break;default:this.gl.texParameteri(this.target,n,o);break}}this.gl.bindTexture(this.target,null)}}_getWebGL1NPOTParameterOverride(t,r){if(this.device.isWebGL1&&Mt(this.width,this.height))switch(t){case 10241:if(r!==9729&&r!==9728)return 9729;break;case 10242:case 10243:return 33071;default:break}return r}};N.FACES=[34069,34070,34071,34072,34073,34074];function Of(e){switch(e.dimension){case"2d":return 3553;case"cube":return 34067;case"2d-array":return 35866;case"3d":return 32879;case"1d":case"cube-array":default:throw new Error(e.dimension)}}function Mt(e,t){return!e||!t?!1:!(0,F.isPowerOfTwo)(e)||!(0,F.isPowerOfTwo)(t)}function xf(e){F.log.log(1,"texture sampler parameters",e)()}var Fn=T(E(),1);var fe=T(E(),1);var Pn=T(E(),1);function Nt(e,t){if(typeof t!="string")return t;let r=Number(t);if(!isNaN(r))return r;t=t.replace(/^.*\./,"");let i=e[t];return(0,Pn.assert)(i!==void 0,`Accessing undefined constant GL.${t}`),i}var Fe="Resource subclass must define virtual methods",Bt=class extends fe.Resource{constructor(t,r,i){super(t,r,i),this.device=void 0,this.gl=void 0,this.gl2=void 0,this._handle=void 0,this._bound=!1,this.byteLength=0,this.device=M.attach(t);let n=this.device.gl;Ki(n);let{id:o}=r||{};this.gl=n,this.gl2=n,this.id=o||(0,fe.uid)(this.constructor.name),this._handle=r?.handle,this._handle===void 0&&(this._handle=this._createHandle()),this.byteLength=0}toString(){return`${this.constructor.name}(${this.id})`}get handle(){return this._handle}delete(){let{deleteChildren:t=!1}=arguments.length>0&&arguments[0]!==void 0?arguments[0]:{},r=this._handle&&this._deleteHandle(this._handle);return this._handle&&this.removeStats(),this._handle=null,r&&t&&r.filter(Boolean).forEach(i=>i.destroy()),this}bind(){let t=arguments.length>0&&arguments[0]!==void 0?arguments[0]:this.handle;if(typeof t!="function")return this._bindHandle(t),this;let r;return this._bound?r=t():(this._bindHandle(this.handle),this._bound=!0,r=t(),this._bound=!1,this._bindHandle(null)),r}unbind(){this.bind(null)}getParameter(t){let r=arguments.length>1&&arguments[1]!==void 0?arguments[1]:{};t=Nt(this.gl,t),(0,fe.assert)(t);let n=(this.constructor.PARAMETERS||{})[t];if(n){let o=b(this.gl);if(!((!("webgl2"in n)||o)&&(!("extension"in n)||this.gl.getExtension(n.extension)))){let a=n.webgl1,f="webgl2"in n?n.webgl2:n.webgl1;return o?f:a}}return this._getParameter(t,r)}getParameters(){let t=arguments.length>0&&arguments[0]!==void 0?arguments[0]:{},{parameters:r,keys:i}=t,n=this.constructor.PARAMETERS||{},o=b(this.gl),s={},a=r||Object.keys(n);for(let f of a){let l=n[f];if(l&&(!("webgl2"in l)||o)&&(!("extension"in l)||this.gl.getExtension(l.extension))){let u=i?this.device.getGLKey(f):f;s[u]=this.getParameter(f,t),i&&l.type==="GLenum"&&(s[u]=this.device.getGLKey(s[u]))}}return s}setParameter(t,r){t=Nt(this.gl,t),(0,fe.assert)(t);let n=(this.constructor.PARAMETERS||{})[t];if(n){let o=b(this.gl);if(!((!("webgl2"in n)||o)&&(!("extension"in n)||this.gl.getExtension(n.extension))))throw new Error("Parameter not available on this platform");n.type==="GLenum"&&(r=Nt(r))}return this._setParameter(t,r),this}setParameters(t){for(let r in t)this.setParameter(r,t[r]);return this}stubRemovedMethods(t,r,i){return(0,fe.stubRemovedMethods)(this,t,r,i)}initialize(t){}_createHandle(){throw new Error(Fe)}_deleteHandle(){throw new Error(Fe)}_bindHandle(t){throw new Error(Fe)}_getOptsFromHandle(){throw new Error(Fe)}_getParameter(t,r){throw new Error(Fe)}_setParameter(t,r){throw new Error(Fe)}};var In;In=Symbol.toStringTag;var K=class extends Bt{get[In](){return"Renderbuffer"}get width(){return this.props.width}get height(){return this.props.height}get format(){return this.props.format}get samples(){return this.props.samples}get attachment(){}static isTextureFormatSupported(t,r){return pn(t.gl,r)}constructor(t,r){if(typeof r.format=="number")throw new Error("Renderbuffer");super(t,r,K.defaultProps),this.glFormat=void 0,this.glFormat=Ge(this.props.format,t.isWebGL2),this._initialize(this.props)}resize(t){(t.width!==this.width||t.height!==this.height)&&(Object.assign(this.props,{...t,format:this.format,samples:this.samples}),this._initialize(this.props))}_initialize(t){let{format:r,width:i,height:n,samples:o}=t;(0,Fn.assert)(r,"Needs format"),this.trackDeallocatedMemory(),this.gl.bindRenderbuffer(36161,this.handle),o!==0&&this.device.isWebGL2?this.gl2.renderbufferStorageMultisample(36161,o,this.glFormat,i,n):this.gl.renderbufferStorage(36161,this.glFormat,i,n),this.gl.bindRenderbuffer(36161,null),this.trackAllocatedMemory(i*n*(o||1)*et(this.glFormat,this.device.isWebGL2))}_createHandle(){return this.gl.createRenderbuffer()}_deleteHandle(){this.gl.deleteRenderbuffer(this.handle),this.trackDeallocatedMemory()}_bindHandle(t){this.gl.bindRenderbuffer(36161,t)}};K.defaultProps={id:void 0,handle:void 0,userData:void 0,format:void 0,width:1,height:1,samples:0};var te=class extends Dt.Framebuffer{get texture(){return this.colorAttachments[0]}constructor(t,r){super(t,r),this.device=void 0,this.gl=void 0,this.handle=void 0;let i=r.handle===null;if(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.gl.bindFramebuffer(36160,this.handle);for(let n=0;n<this.colorAttachments.length;++n){let o=this.colorAttachments[n],s=36064+n;o&&this._attachOne(s,o)}this.depthStencilAttachment&&this._attachOne(Tn(this.depthStencilAttachment.format),this.depthStencilAttachment),this.gl.bindFramebuffer(36160,null)}r.check!==!1&&this._checkStatus()}destroy(){super.destroy(),!this.destroyed&&this.handle!==null&&this.gl.deleteFramebuffer(this.handle)}_checkStatus(){let{gl:t}=this,r=t.bindFramebuffer(36160,this.handle),i=t.checkFramebufferStatus(36160);if(t.bindFramebuffer(36160,r||null),i!==36053)throw new Error(`Framebuffer ${If(i)}`)}createDepthStencilTexture(t){return new K(this.device,{id:`${this.id}-depth-stencil`,format:t,width:this.width,height:this.height})}resizeAttachments(t,r){if(this.handle===null)return this.width=this.gl.drawingBufferWidth,this.height=this.gl.drawingBufferHeight,this;t===void 0&&(t=this.gl.drawingBufferWidth),r===void 0&&(r=this.gl.drawingBufferHeight);for(let i of this.colorAttachments)i.resize({width:t,height:r});return this.depthStencilAttachment&&this.depthStencilAttachment.resize({width:t,height:r}),this}_attachOne(t,r){if(r instanceof K)return this._attachWEBGLRenderbuffer(t,r),r;if(Array.isArray(r)){let[i,n=0,o=0]=r;return this._attachTexture(t,i,n,o),i}else if(r instanceof N)return this._attachTexture(t,r,0,0),r;throw new Error("attach")}_attachWEBGLRenderbuffer(t,r){this.gl.framebufferRenderbuffer(36160,t,36161,r.handle)}_attachTexture(t,r,i,n){let{gl:o,gl2:s}=this.device;switch(o.bindTexture(r.target,r.handle),r.target){case 35866:case 32879:this.device.assertWebGL2(),s?.framebufferTextureLayer(36160,t,r.target,n,i);break;case 34067:let a=Pf(i);o.framebufferTexture2D(36160,t,a,r.handle,n);break;case 3553:o.framebufferTexture2D(36160,t,3553,r.handle,n);break;default:(0,Dt.assert)(!1,"Illegal texture type")}o.bindTexture(r.target,null)}};function Pf(e){return e<34069?e+34069:e}function If(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 wt=class extends Cn.CanvasContext{constructor(t,r){super(r),this.device=void 0,this.presentationSize=void 0,this._framebuffer=null,this.device=t,this.presentationSize=[-1,-1],this._setAutoCreatedCanvasId(`${this.device.id}-canvas`),this.update()}getCurrentFramebuffer(){return this.update(),this._framebuffer=this._framebuffer||new te(this.device,{handle:null}),this._framebuffer}update(){let t=this.getPixelSize();(t[0]!==this.presentationSize[0]||t[1]!==this.presentationSize[1])&&(this.presentationSize=t)}resize(t){if(this.canvas){let i=this.getDevicePixelRatio(t?.useDevicePixels);this.setDevicePixelRatio(i,t);return}let r=this.device.gl.getExtension("STACKGL_resize_drawingbuffer");r&&t&&"width"in t&&"height"in t&&r.resize(t.width,t.height)}commit(){}};var re=T(E(),1),Ff={spector:re.log.get("spector")||re.log.get("inspect")},Cf="https://spectorcdn.babylonjs.com/spector.bundle.js",Mf=1,k=null,Mn=!1;async function Nn(e){if(!globalThis.SPECTOR)try{await(0,re.loadScript)(Cf)}catch(t){re.log.warn(String(t))}}function Bn(e){var t,r;if(e={...Ff,...e},!((t=e)!==null&&t!==void 0&&t.spector)||(!k&&globalThis.SPECTOR&&(re.log.probe(Mf,"SPECTOR found and initialized")(),k=new globalThis.SPECTOR.Spector,globalThis.luma&&(globalThis.luma.spector=k)),!k))return null;if(!Mn){var i,n;Mn=!0,k.spyCanvases(),(i=k)===null||i===void 0||i.onCaptureStarted.add(a=>re.log.info("Spector capture started:",a)()),(n=k)===null||n===void 0||n.onCapture.add(a=>{var f,l,c;re.log.info("Spector capture complete:",a)(),(f=k)===null||f===void 0||f.getResultUI(),(l=k)===null||l===void 0||l.resultView.display(),(c=k)===null||c===void 0||c.resultView.addCapture(a)})}if((r=e)!==null&&r!==void 0&&r.canvas){var o,s;if(typeof e.spector=="string"&&e.spector!==e.canvas.id)return k;(o=k)===null||o===void 0||o.startCapture((s=e)===null||s===void 0?void 0:s.canvas,500),new Promise(a=>setTimeout(a,2e3)).then(a=>{var f;re.log.info("Spector capture stopped after 2 seconds")(),(f=k)===null||f===void 0||f.stopCapture()})}return k}var de=T(E(),1);var Se=function(e){return 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.VERTEX_ATTRIB_ARRAY_DIVISOR_ANGLE=35070]="VERTEX_ATTRIB_ARRAY_DIVISOR_ANGLE",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.SRGB_EXT=35904]="SRGB_EXT",e[e.SRGB_ALPHA_EXT=35906]="SRGB_ALPHA_EXT",e[e.SRGB8_ALPHA8_EXT=35907]="SRGB8_ALPHA8_EXT",e[e.FRAMEBUFFER_ATTACHMENT_COLOR_ENCODING_EXT=33296]="FRAMEBUFFER_ATTACHMENT_COLOR_ENCODING_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.UNSIGNED_INT_24_8_WEBGL=34042]="UNSIGNED_INT_24_8_WEBGL",e[e.HALF_FLOAT_OES=36193]="HALF_FLOAT_OES",e[e.RGBA32F_EXT=34836]="RGBA32F_EXT",e[e.RGB32F_EXT=34837]="RGB32F_EXT",e[e.FRAMEBUFFER_ATTACHMENT_COMPONENT_TYPE_EXT=33297]="FRAMEBUFFER_ATTACHMENT_COMPONENT_TYPE_EXT",e[e.UNSIGNED_NORMALIZED_EXT=35863]="UNSIGNED_NORMALIZED_EXT",e[e.MIN_EXT=32775]="MIN_EXT",e[e.MAX_EXT=32776]="MAX_EXT",e[e.FRAGMENT_SHADER_DERIVATIVE_HINT_OES=35723]="FRAGMENT_SHADER_DERIVATIVE_HINT_OES",e[e.COLOR_ATTACHMENT0_WEBGL=36064]="COLOR_ATTACHMENT0_WEBGL",e[e.COLOR_ATTACHMENT1_WEBGL=36065]="COLOR_ATTACHMENT1_WEBGL",e[e.COLOR_ATTACHMENT2_WEBGL=36066]="COLOR_ATTACHMENT2_WEBGL",e[e.COLOR_ATTACHMENT3_WEBGL=36067]="COLOR_ATTACHMENT3_WEBGL",e[e.COLOR_ATTACHMENT4_WEBGL=36068]="COLOR_ATTACHMENT4_WEBGL",e[e.COLOR_ATTACHMENT5_WEBGL=36069]="COLOR_ATTACHMENT5_WEBGL",e[e.COLOR_ATTACHMENT6_WEBGL=36070]="COLOR_ATTACHMENT6_WEBGL",e[e.COLOR_ATTACHMENT7_WEBGL=36071]="COLOR_ATTACHMENT7_WEBGL",e[e.COLOR_ATTACHMENT8_WEBGL=36072]="COLOR_ATTACHMENT8_WEBGL",e[e.COLOR_ATTACHMENT9_WEBGL=36073]="COLOR_ATTACHMENT9_WEBGL",e[e.COLOR_ATTACHMENT10_WEBGL=36074]="COLOR_ATTACHMENT10_WEBGL",e[e.COLOR_ATTACHMENT11_WEBGL=36075]="COLOR_ATTACHMENT11_WEBGL",e[e.COLOR_ATTACHMENT12_WEBGL=36076]="COLOR_ATTACHMENT12_WEBGL",e[e.COLOR_ATTACHMENT13_WEBGL=36077]="COLOR_ATTACHMENT13_WEBGL",e[e.COLOR_ATTACHMENT14_WEBGL=36078]="COLOR_ATTACHMENT14_WEBGL",e[e.COLOR_ATTACHMENT15_WEBGL=36079]="COLOR_ATTACHMENT15_WEBGL",e[e.DRAW_BUFFER0_WEBGL=34853]="DRAW_BUFFER0_WEBGL",e[e.DRAW_BUFFER1_WEBGL=34854]="DRAW_BUFFER1_WEBGL",e[e.DRAW_BUFFER2_WEBGL=34855]="DRAW_BUFFER2_WEBGL",e[e.DRAW_BUFFER3_WEBGL=34856]="DRAW_BUFFER3_WEBGL",e[e.DRAW_BUFFER4_WEBGL=34857]="DRAW_BUFFER4_WEBGL",e[e.DRAW_BUFFER5_WEBGL=34858]="DRAW_BUFFER5_WEBGL",e[e.DRAW_BUFFER6_WEBGL=34859]="DRAW_BUFFER6_WEBGL",e[e.DRAW_BUFFER7_WEBGL=34860]="DRAW_BUFFER7_WEBGL",e[e.DRAW_BUFFER8_WEBGL=34861]="DRAW_BUFFER8_WEBGL",e[e.DRAW_BUFFER9_WEBGL=34862]="DRAW_BUFFER9_WEBGL",e[e.DRAW_BUFFER10_WEBGL=34863]="DRAW_BUFFER10_WEBGL",e[e.DRAW_BUFFER11_WEBGL=34864]="DRAW_BUFFER11_WEBGL",e[e.DRAW_BUFFER12_WEBGL=34865]="DRAW_BUFFER12_WEBGL",e[e.DRAW_BUFFER13_WEBGL=34866]="DRAW_BUFFER13_WEBGL",e[e.DRAW_BUFFER14_WEBGL=34867]="DRAW_BUFFER14_WEBGL",e[e.DRAW_BUFFER15_WEBGL=34868]="DRAW_BUFFER15_WEBGL",e[e.MAX_COLOR_ATTACHMENTS_WEBGL=36063]="MAX_COLOR_ATTACHMENTS_WEBGL",e[e.MAX_DRAW_BUFFERS_WEBGL=34852]="MAX_DRAW_BUFFERS_WEBGL",e[e.VERTEX_ARRAY_BINDING_OES=34229]="VERTEX_ARRAY_BINDING_OES",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}(Se||{});var Nf="https://unpkg.com/webgl-debug@2.0.1/index.js";function Dn(e){return e.luma=e.luma||{},e.luma}async function wn(){L()&&!globalThis.WebGLDebugUtils&&(globalThis.global=globalThis.global||globalThis,globalThis.global.module={},await(0,de.loadScript)(Nf))}function Un(e){let t=arguments.length>1&&arguments[1]!==void 0?arguments[1]:{};return e?t.debug?Df(e,t):Bf(e):null}function Bf(e){let t=Dn(e);return t.realContext?t.realContext:e}function Df(e,t){if(!globalThis.WebGLDebugUtils)return de.log.warn("webgl-debug not loaded")(),e;let r=Dn(e);if(r.debugContext)return r.debugContext;globalThis.WebGLDebugUtils.init({...Se,...e});let i=globalThis.WebGLDebugUtils.makeDebugContext(e,wf.bind(null,t),Uf.bind(null,t));for(let s in Se)!(s in i)&&typeof Se[s]=="number"&&(i[s]=Se[s]);class n{}Object.setPrototypeOf(i,Object.getPrototypeOf(e)),Object.setPrototypeOf(n,i);let o=Object.create(n);return r.realContext=e,r.debugContext=o,o.debug=!0,o}function ei(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 wf(e,t,r,i){i=Array.from(i).map(f=>f===void 0?"undefined":f);let n=globalThis.WebGLDebugUtils.glEnumToString(t),o=globalThis.WebGLDebugUtils.glFunctionArgsToString(r,i),s=e.webgl2?"gl2":"gl1",a=`${n} in ${s}.${r}(${o})`;de.log.error(a)();debugger;if(e.throwOnError)throw new Error(a)}function Uf(e,t,r){let i="";if(de.log.level>=1&&(i=ei(t,r),de.log.log(1,i)()),e.break&&e.break.length>0&&(i=i||ei(t,r),e.break.every(o=>i.indexOf(o)!==-1)))debugger;for(let n of r)if(n===void 0){if(i=i||ei(t,r),e.throwOnError)throw new Error(`Undefined argument: ${i}`);de.log.error(`Undefined argument: ${i}`)();debugger}}var Wn=T(E(),1);function kn(e){let t=e.split(/\r?\n/),r=[];for(let i of t){if(i.length<=1)continue;let n=i.split(":");if(n.length===2){let[u,_]=n;r.push({message:_.trim(),type:Vn(u),lineNum:0,linePos:0});continue}let[o,s,a,...f]=n,l=parseInt(a,10);isNaN(l)&&(l=0);let c=parseInt(s,10);isNaN(c)&&(c=0),r.push({message:f.join(":").trim(),type:Vn(o),lineNum:l,linePos:c})}return r}function Vn(e){let t=["warning","error","info"],r=e.toLowerCase();return t.includes(r)?r:"info"}var Ut=class extends Wn.Shader{constructor(t,r){switch(super(t,r),this.device=void 0,this.handle=void 0,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)}async getCompilationInfo(){return this.getCompilationInfoSync()}getCompilationInfoSync(){let t=this.device.gl.getShaderInfoLog(this.handle);return kn(t)}_compile(t){t=(n=>n.startsWith("#version ")?n:`#version 100
|
|
72
|
+
${n}`)(t);let{gl:i}=this.device;if(i.shaderSource(this.handle,t),i.compileShader(this.handle),this.compilationStatus=i.getShaderParameter(this.handle,35713)?"success":"error",this.debugShader(),this.compilationStatus==="error")throw new Error(`GLSL compilation errors in ${this.props.stage} shader ${this.props.id}`)}};var Hn=T(E(),1);var Vf=256,kf=1024,Wf=16384,ti=6144,Vt=class extends Hn.RenderPass{constructor(t,r){super(t,r),this.device=void 0,this.glParameters=void 0,this.device=t,_e(this.device.gl),this.setParameters(this.props.parameters),this.clear()}end(){se(this.device.gl),this.props.framebuffer&&oe(this.device,{framebuffer:null})}pushDebugGroup(t){}popDebugGroup(){}insertDebugMarker(t){}setParameters(){let t=arguments.length>0&&arguments[0]!==void 0?arguments[0]:{},r={};this.props.framebuffer&&(r.framebuffer=this.props.framebuffer),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),r.scissorTest=Boolean(t.scissorRect),t.scissorRect&&(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),this.glParameters=r,oe(this.device,r)}clear(){let t={...this.glParameters},r=0;this.props.clearColor!==!1&&(r|=Wf,t.clearColor=this.props.clearColor),this.props.clearDepth!==!1&&(r|=Vf,t.clearDepth=this.props.clearDepth),this.props.clearStencil!==!1&&(r|=kf,t.clearStencil=this.props.clearStencil),r!==0&&P(this.device,t,()=>{this.device.gl.clear(r)})}clearColorBuffer(){let t=arguments.length>0&&arguments[0]!==void 0?arguments[0]:0,r=arguments.length>1&&arguments[1]!==void 0?arguments[1]:[0,0,0,0];P(this.device.gl2,{framebuffer:this.props.framebuffer},()=>{switch(r.constructor){case Int32Array:this.device.gl2.clearBufferiv(ti,t,r);break;case Uint32Array:this.device.gl2.clearBufferuiv(ti,t,r);break;case Float32Array:default:this.device.gl2.clearBufferfv(ti,t,r);break}})}};var U=T(E(),1),Qn=T(E(),1);var kt=T(E(),1);var Hf="Failed to deduce GL constant from typed array";function Xn(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(Hf)}}function rt(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")}}var Xf={offset:0,stride:0,type:5126,size:1,divisor:0,normalized:!1,integer:!1},Lf={deprecatedProps:{instanced:"divisor",isInstanced:"divisor"}},pe=class{static getBytesPerElement(t){return rt(t.type||5126).BYTES_PER_ELEMENT}static getBytesPerVertex(t){return(0,kt.assert)(t.size),rt(t.type||5126).BYTES_PER_ELEMENT*t.size}static resolve(){for(var t=arguments.length,r=new Array(t),i=0;i<t;i++)r[i]=arguments[i];return new pe(Xf,...r)}constructor(){this.offset=void 0,this.stride=void 0,this.type=void 0,this.size=void 0,this.divisor=void 0,this.normalized=void 0,this.integer=void 0,this.buffer=void 0,this.index=void 0;for(var t=arguments.length,r=new Array(t),i=0;i<t;i++)r[i]=arguments[i];r.forEach(n=>this._assign(n)),Object.freeze(this)}toString(){return JSON.stringify(this)}get BYTES_PER_ELEMENT(){return pe.getBytesPerElement(this)}get BYTES_PER_VERTEX(){return pe.getBytesPerVertex(this)}_assign(){let t=arguments.length>0&&arguments[0]!==void 0?arguments[0]:{};return t=(0,kt.checkProps)("Accessor",t,Lf),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 Ln(e){return jf.includes(e)}var jf=[35678,35680,35679,35682,36289,36292,36293,36298,36299,36300,36303,36306,36307,36308,36311],jn={[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 ri(e){let t=jn[e];if(!t)throw new Error("uniform");let[r,i,,n]=t;return{format:n,components:i,glType:r}}function Kn(e){let t=jn[e];if(!t)throw new Error("attribute");let[,r,,i,n]=t;return{attributeType:i,vertexFormat:n,components:r}}function zn(e,t){let r={attributes:[],bindings:[]};r.attributes=Kf(e,t);let i=$f(e,t);for(let a of i){let f=a.uniforms.map(l=>({name:l.name,format:l.format,byteOffset:l.byteOffset,byteStride:l.byteStride,arrayLength:l.arrayLength}));r.bindings.push({type:"uniform",name:a.name,location:a.location,visibility:(a.vertex?1:0)&(a.fragment?2:0),minBindingSize:a.byteLength,uniforms:f})}let n=Yf(e,t),o=0;for(let a of n)if(Ln(a.type)){let{viewDimension:f,sampleType:l}=Zf(a.type);r.bindings.push({type:"texture",name:a.name,location:o,viewDimension:f,sampleType:l}),a.textureUnit=o,o+=1}n.length&&(r.uniforms=n);let s=zf(e,t);return s!=null&&s.length&&(r.varyings=s),r}function Kf(e,t){let r=[],i=e.getProgramParameter(t,35721);for(let n=0;n<i;n++){let o=e.getActiveAttrib(t,n);if(!o)throw new Error("activeInfo");let{name:s,type:a}=o,f=e.getAttribLocation(t,s);if(f>=0){let{attributeType:l}=Kn(a),c=/instance/i.test(s)?"instance":"vertex";r.push({name:s,location:f,stepMode:c,type:l})}}return r.sort((n,o)=>n.location-o.location),r}function zf(e,t){if(!b(e))return[];let r=e,i=[],n=e.getProgramParameter(t,35971);for(let o=0;o<n;o++){let s=r.getTransformFeedbackVarying(t,o);if(!s)throw new Error("activeInfo");let{name:a,type:f,size:l}=s,{glType:c,components:u}=ri(f),_=new pe({type:c,size:l*u}),d={location:o,name:a,accessor:_};i.push(d)}return i.sort((o,s)=>o.location-s.location),i}function Yf(e,t){let r=[],i=e.getProgramParameter(t,35718);for(let n=0;n<i;n++){let o=e.getActiveUniform(t,n);if(!o)throw new Error("activeInfo");let{name:s,size:a,type:f}=o,{name:l,isArray:c}=Qf(s),u=e.getUniformLocation(t,l),_={location:u,name:l,size:a,type:f,isArray:c};if(r.push(_),_.size>1)for(let d=0;d<_.size;d++){let p=`${l}[${d}]`;u=e.getUniformLocation(t,p);let g={..._,name:p,location:u};r.push(g)}}return r}function $f(e,t){if(!b(e))return[];let r=e,i=(s,a)=>r.getActiveUniformBlockParameter(t,s,a),n=[],o=r.getProgramParameter(t,35382);for(let s=0;s<o;s++){let a={name:r.getActiveUniformBlockName(t,s)||"",location:i(s,35391),byteLength:i(s,35392),vertex:i(s,35396),fragment:i(s,35398),uniformCount:i(s,35394),uniforms:[]},f=i(s,35395)||[],l=r.getActiveUniforms(t,f,35383),c=r.getActiveUniforms(t,f,35384),u=r.getActiveUniforms(t,f,35387),_=r.getActiveUniforms(t,f,35388);for(let d=0;d<a.uniformCount;++d){let p=r.getActiveUniform(t,f[d]);if(!p)throw new Error("activeInfo");a.uniforms.push({name:p.name,format:ri(l[d]).format,type:l[d],arrayLength:c[d],byteOffset:u[d],byteStride:_[d]})}n.push(a)}return n.sort((s,a)=>s.location-a.location),n}var qf={[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 Zf(e){let t=qf[e];if(!t)throw new Error("sampler");let[r,i]=t;return{viewDimension:r,sampleType:i}}function Qf(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 Yn(e,t,r,i){let n=e,o=i;o===!0&&(o=1),o===!1&&(o=0);let s=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,s);case 35664:return e.uniform2fv(t,s);case 35665:return e.uniform3fv(t,s);case 35666:return e.uniform4fv(t,s);case 5124:return e.uniform1iv(t,s);case 35667:return e.uniform2iv(t,s);case 35668:return e.uniform3iv(t,s);case 35669:return e.uniform4iv(t,s);case 35670:return e.uniform1iv(t,s);case 35671:return e.uniform2iv(t,s);case 35672:return e.uniform3iv(t,s);case 35673:return e.uniform4iv(t,s);case 5125:return n.uniform1uiv(t,s,1);case 36294:return n.uniform2uiv(t,s,2);case 36295:return n.uniform3uiv(t,s,3);case 36296:return n.uniform4uiv(t,s,4);case 35674:return e.uniformMatrix2fv(t,!1,s);case 35675:return e.uniformMatrix3fv(t,!1,s);case 35676:return e.uniformMatrix4fv(t,!1,s);case 35685:return n.uniformMatrix2x3fv(t,!1,s);case 35686:return n.uniformMatrix2x4fv(t,!1,s);case 35687:return n.uniformMatrix3x2fv(t,!1,s);case 35688:return n.uniformMatrix3x4fv(t,!1,s);case 35689:return n.uniformMatrix4x2fv(t,!1,s);case 35690:return n.uniformMatrix4x3fv(t,!1,s)}throw new Error("Illegal uniform")}function $n(e){switch(e){case"point-list":return 0;case"line-list":return 1;case"line-strip":return 3;case"line-loop-webgl":return 2;case"triangle-list":return 4;case"triangle-strip":return 5;case"triangle-fan-webgl":return 6;default:throw new Error(e)}}function qn(e){switch(e){case"point-list":return 0;case"line-list":return 1;case"line-strip":return 1;case"line-loop-webgl":return 1;case"triangle-list":return 4;case"triangle-strip":return 4;case"triangle-fan-webgl":return 4;default:throw new Error(e)}}var Zn=4,Wt=class extends U.RenderPipeline{constructor(t,r){super(t,r),this.device=void 0,this.handle=void 0,this.vs=void 0,this.fs=void 0,this.introspectedLayout=void 0,this.uniforms={},this.bindings={},this.varyings=null,this._uniformCount=0,this._uniformSetters={},this.device=t,this.handle=this.props.handle||this.device.gl.createProgram(),this.device.setSpectorMetadata(this.handle,{id:this.props.id}),this.vs=(0,U.cast)(r.vs),this.fs=(0,U.cast)(r.fs);let{varyings:i,bufferMode:n=35981}=r;if(i&&i.length>0){var o;this.device.assertWebGL2(),this.varyings=i,(o=this.device.gl2)===null||o===void 0||o.transformFeedbackVaryings(this.handle,i,n)}this._compileAndLink(),this.introspectedLayout=zn(this.device.gl,this.handle),this.shaderLayout=(0,Qn.mergeShaderLayout)(this.introspectedLayout,r.shaderLayout)}destroy(){this.handle&&(this.device.gl.deleteProgram(this.handle),this.destroyed=!0)}setBindings(t){for(let[r,i]of Object.entries(t)){let n=this.shaderLayout.bindings.find(o=>o.name===r)||this.shaderLayout.bindings.find(o=>o.name===`${r}Uniforms`);if(!n){let o=this.shaderLayout.bindings.map(s=>`"${s.name}"`).join(", ");U.log.warn(`Unknown binding "${r}" in render pipeline "${this.id}", expected one of ${o}`)();continue}switch(i||U.log.warn(`Unsetting binding "${r}" in render pipeline "${this.id}"`)(),n.type){case"uniform":if(!(i instanceof V)&&!(i.buffer instanceof V))throw new Error("buffer value");break;case"texture":if(!(i instanceof N||i instanceof te))throw new Error("texture value");break;case"sampler":U.log.warn(`Ignoring sampler ${r}`)();break;default:throw new Error(n.type)}this.bindings[r]=i}}setUniforms(t){let{bindings:r}=(0,U.splitUniformsAndBindings)(t);Object.keys(r).forEach(i=>{U.log.warn(`Unsupported value "${JSON.stringify(r[i])}" used in setUniforms() for key ${i}. Use setBindings() instead?`)()}),Object.assign(this.uniforms,t)}draw(t){var r;let{renderPass:i,vertexArray:n,vertexCount:o,instanceCount:s,firstVertex:a=0,transformFeedback:f}=t,l=$n(this.props.topology),c=Boolean(n.indexBuffer),u=(r=n.indexBuffer)===null||r===void 0?void 0:r.glIndexType,_=Number(s)>0;if(!this._areTexturesRenderable()||o===0)return!1;this.device.gl.useProgram(this.handle),n.bindBeforeRender(i),f&&f.begin(this.props.topology),this._applyBindings(),this._applyUniforms();let d=i;return Sn(this.device,this.props.parameters,d.glParameters,()=>{if(c&&_){var p;(p=this.device.gl2)===null||p===void 0||p.drawElementsInstanced(l,o||0,u,a,s||0)}else if(c)this.device.gl.drawElements(l,o||0,u,a);else if(_){var g;(g=this.device.gl2)===null||g===void 0||g.drawArraysInstanced(l,a,o||0,s||0)}else this.device.gl.drawArrays(l,a,o||0);f&&f.end()}),n.unbindAfterRender(i),!0}_compileAndLink(){let{gl:t}=this.device;if(t.attachShader(this.handle,this.vs.handle),t.attachShader(this.handle,this.fs.handle),U.log.time(Zn,`linkProgram for ${this.id}`)(),t.linkProgram(this.handle),U.log.timeEnd(Zn,`linkProgram for ${this.id}`)(),!t.debug&&U.log.level,!t.getProgramParameter(this.handle,35714))throw new Error(`Error linking: ${t.getProgramInfoLog(this.handle)}`);if(t.validateProgram(this.handle),!t.getProgramParameter(this.handle,35715))throw new Error(`Error validating: ${t.getProgramInfoLog(this.handle)}`)}_areTexturesRenderable(){let t=!0;for(let[,r]of Object.entries(this.bindings))r instanceof N&&(r.update(),t=t&&r.loaded);return t}_applyBindings(){this.device.gl.useProgram(this.handle);let{gl2:t}=this.device;if(!t)throw new Error("bindings");let r=0,i=0;for(let n of this.shaderLayout.bindings){let o=this.bindings[n.name]||this.bindings[n.name.replace(/Uniforms$/,"")];if(!o)throw new Error(`No value for binding ${n.name} in ${this.id}`);switch(n.type){case"uniform":let{name:s}=n,a=t.getUniformBlockIndex(this.handle,s);if(a===4294967295)throw new Error(`Invalid uniform block name ${s}`);t.uniformBlockBinding(this.handle,i,a),o instanceof V?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 N||o instanceof te))throw new Error("texture");let f;if(o instanceof N)f=o;else if(o instanceof te&&o.colorAttachments[0]instanceof N)U.log.warn("Passing framebuffer in texture binding may be deprecated. Use fbo.colorAttachments[0] instead")(),f=o.colorAttachments[0];else throw new Error("No texture");t.activeTexture(33984+r),t.bindTexture(f.target,f.handle),r+=1;break;case"sampler":break;case"storage":case"read-only-storage":throw new Error(`binding type '${n.type}' not supported in WebGL`)}}}_applyUniforms(){for(let r of this.shaderLayout.uniforms||[]){var t;let{name:i,location:n,type:o,textureUnit:s}=r,a=(t=this.uniforms[i])!==null&&t!==void 0?t:s;a!==void 0&&Yn(this.device.gl,n,o,a)}}};var Gn=T(E(),1);var Xt=T(E(),1);var Ht=class extends Xt.CommandBuffer{constructor(t){super(t,{}),this.device=void 0,this.commands=[],this.device=t}submitCommands(){let t=arguments.length>0&&arguments[0]!==void 0?arguments[0]:this.commands;for(let r of t)switch(r.name){case"copy-buffer-to-buffer":Jf(this.device,r.options);break;case"copy-buffer-to-texture":Gf(this.device,r.options);break;case"copy-texture-to-buffer":el(this.device,r.options);break;case"copy-texture-to-texture":tl(this.device,r.options);break}}};function Jf(e,t){let r=t.source,i=t.destination,n=e.assertWebGL2();if(n){var o,s;n.bindBuffer(36662,r.handle),n.bindBuffer(36663,i.handle),n.copyBufferSubData(36662,36663,(o=t.sourceOffset)!==null&&o!==void 0?o:0,(s=t.destinationOffset)!==null&&s!==void 0?s:0,t.size),n.bindBuffer(36662,null),n.bindBuffer(36663,null)}else throw new Error("copyBufferToBuffer not implemented in WebGL1")}function Gf(e,t){throw new Error("Not implemented")}function el(e,t){let{source:r,mipLevel:i=0,aspect:n="all",width:o=t.source.width,height:s=t.source.height,depthOrArrayLayers:a=0,origin:f=[0,0],destination:l,byteOffset:c=0,bytesPerRow:u,rowsPerImage:_}=t;if(n!=="all")throw new Error("not supported");if(i!==0||a!==0||u||_)throw new Error("not implemented");let d=e.assertWebGL2(),{framebuffer:p,destroyFramebuffer:g}=Jn(r);try{let h=l,R=o||p.width,A=s||p.height,m=Ie(p.texture.format,!0),B=m.dataFormat,X=m.type;d.bindBuffer(35051,h.handle),d.bindFramebuffer(36160,p.handle),d.readPixels(f[0],f[1],R,A,B,X,c)}finally{d.bindBuffer(35051,null),d.bindFramebuffer(36160,null),g&&p.destroy()}}function tl(e,t){let{source:r,origin:i=[0,0],destination:n}=t,{width:o=t.destination.width,height:s=t.destination.width}=t,a=0,f=6408,{framebuffer:l,destroyFramebuffer:c}=Jn(r),[u,_]=i,d=!1;e.gl.bindFramebuffer(36160,l.handle);let p=null,g;if(n instanceof N)p=n,o=Number.isFinite(o)?o:p.width,s=Number.isFinite(s)?s:p.height,p.bind(0),g=p.destination;else throw new Error("whoops");return d||e.gl.copyTexImage2D(g,a,f,u,_,o,s,0),p&&p.unbind(),c&&l.destroy(),p}function Jn(e){if(e instanceof Xt.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 Lt=class extends Gn.CommandEncoder{constructor(t,r){super(t,r),this.device=void 0,this.commandBuffer=void 0,this.device=t,this.commandBuffer=new Ht(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){}};var Me=T(E(),1);var eo;eo=Symbol.toStringTag;var Ce=class extends Me.VertexArray{get[eo](){return"VertexArray"}static isConstantAttributeZeroSupported(t){return t.info.type==="webgl2"||mt()==="Chrome"}constructor(t,r){super(t,r),this.device=void 0,this.handle=void 0,this.buffer=null,this.bufferValue=null,this.init=!1,this.device=t,this.handle=this.device.gl2.createVertexArray()}destroy(){if(super.destroy(),this.buffer){var t;(t=this.buffer)===null||t===void 0||t.destroy()}this.handle&&(this.device.gl2.deleteVertexArray(this.handle),this.handle=void 0)}setIndexBuffer(t){let r=t;if(r&&r.glTarget!==34963)throw new Error("Use .setBuffer()");this.device.gl2.bindVertexArray(this.handle),this.device.gl2.bindBuffer(34963,r?r.handle:null),this.indexBuffer=r}setBuffer(t,r){let i=r;if(i.glTarget===34963)throw new Error("Use .setIndexBuffer()");let{size:n,type:o,stride:s,offset:a,normalized:f,integer:l,divisor:c}=this._getAccessor(t);this.device.gl2.bindVertexArray(this.handle),this.device.gl.bindBuffer(34962,i.handle),l?(this.device.assertWebGL2(),this.device.gl2.vertexAttribIPointer(t,n,o,s,a)):this.device.gl.vertexAttribPointer(t,n,o,f,s,a),this.device.gl.enableVertexAttribArray(t),this.device.gl2.vertexAttribDivisor(t,c||0),this.attributes[t]=i}setConstant(t,r){this._enable(t,!1),this.attributes[t]=r}bindBeforeRender(){if(this.device.gl2.bindVertexArray(this.handle),!this.init){let t=this.indexBuffer;this.device.gl2.bindBuffer(34963,t?.handle||null),this.init=!0}this._applyConstantAttributes()}unbindAfterRender(){this.device.gl2.bindVertexArray(null)}_applyConstantAttributes(){for(let t=0;t<this.maxVertexAttributes;++t){let r=this.attributes[t];ArrayBuffer.isView(r)&&this.device.setConstantAttribute(t,r)}}_getAccessor(t){let r=this.attributeInfos[t];if(!r)throw new Error(`Unknown attribute location ${t}`);let i=Ot(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){let r=arguments.length>1&&arguments[1]!==void 0?arguments[1]:!0,n=Ce.isConstantAttributeZeroSupported(this.device)||t!==0;(r||n)&&(t=Number(t),this.device.gl2.bindVertexArray(this.handle),r?this.device.gl.enableVertexAttribArray(t):this.device.gl.disableVertexAttribArray(t),this.device.gl2.bindVertexArray(null))}getConstantBuffer(t,r){let i=rl(r),n=i.byteLength*t,o=i.length*t;if(this.buffer&&n!==this.buffer.byteLength)throw new Error(`Buffer size is immutable, byte length ${n} !== ${this.buffer.byteLength}.`);let s=!this.buffer;if(this.buffer=this.buffer||this.device.createBuffer({byteLength:n}),s=s||!il(i,this.bufferValue),s){let a=(0,Me.getScratchArray)(r.constructor,o);(0,Me.fillArray)({target:a,source:i,start:0,count:o}),this.buffer.write(a),this.bufferValue=r}return this.buffer}};function rl(e){return Array.isArray(e)?new Float32Array(e):e}function il(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 Kt=T(E(),1);var jt=class extends Kt.TransformFeedback{constructor(t,r){super(t,r),this.device=void 0,this.gl2=void 0,this.handle=void 0,this.layout=void 0,this.buffers={},this.unusedBuffers={},this.bindOnUse=!0,this._bound=!1,t.assertWebGL2(),this.device=t,this.gl2=t.gl2,this.handle=this.props.handle||this.gl2.createTransformFeedback(),this.layout=this.props.layout,r.buffers&&this.setBuffers(r.buffers),Object.seal(this)}destroy(){this.gl2.deleteTransformFeedback(this.handle),super.destroy()}begin(){let t=arguments.length>0&&arguments[0]!==void 0?arguments[0]:"point-list";this.gl2.bindTransformFeedback(36386,this.handle),this.bindOnUse&&this._bindBuffers(),this.gl2.beginTransformFeedback(qn(t))}end(){this.gl2.endTransformFeedback(),this.bindOnUse||this._unbindBuffers(),this.gl2.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:n,byteLength:o,byteOffset:s}=this._getBufferRange(r);if(i<0){this.unusedBuffers[t]=n,Kt.log.warn(`${this.id} unusedBuffers varying buffer ${t}`)();return}this.buffers[i]={buffer:n,byteLength:o,byteOffset:s},this.bindOnUse||this._bindBuffer(i,n,s,o)}getBuffer(t){if(to(t))return this.buffers[t]||null;let r=this._getVaryingIndex(t);return r>=0?this.buffers[r]:null}bind(){let t=arguments.length>0&&arguments[0]!==void 0?arguments[0]:this.handle;if(typeof t!="function")return this.gl2.bindTransformFeedback(36386,t),this;let r;return this._bound?r=t():(this.gl2.bindTransformFeedback(36386,this.handle),this._bound=!0,r=t(),this._bound=!1,this.gl2.bindTransformFeedback(36386,null)),r}unbind(){this.bind(null)}_getBufferRange(t){if(t instanceof V)return{buffer:t,byteOffset:0,byteLength:t.byteLength};let{buffer:r,byteOffset:i=0,byteLength:n=t.buffer.byteLength}=t;return{buffer:r,byteOffset:i,byteLength:n}}_getVaryingIndex(t){if(to(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:n}=this._getBufferRange(this.buffers[t]);this._bindBuffer(Number(t),r,n,i)}}_unbindBuffers(){for(let t in this.buffers)this.gl2.bindBufferBase(35982,Number(t),null)}_bindBuffer(t,r){let i=arguments.length>2&&arguments[2]!==void 0?arguments[2]:0,n=arguments.length>3?arguments[3]:void 0,o=r&&r.handle;!o||n===void 0?this.gl2.bindBufferBase(35982,t,o):this.gl2.bindBufferRange(35982,t,o,i,n)}};function to(e){return typeof e=="number"?Number.isInteger(e):/^\d+$/.test(e)}var it=1,M=class extends O.Device{static isSupported(){return typeof WebGLRenderingContext<"u"||ki()}get features(){return this._features=this._features||Rn(this.gl),this._features}get limits(){return this._limits=this._limits||En(this.gl),this._limits}static attach(t){if(t instanceof M)return t;if(t?.device instanceof O.Device)return t.device;if(!nl(t))throw new Error("Invalid WebGLRenderingContext");return new M({gl:t})}static async create(){let t=arguments.length>0&&arguments[0]!==void 0?arguments[0]:{};O.log.groupCollapsed(it,"WebGLDevice created")(),typeof t.canvas=="string"&&await O.CanvasContext.pageLoaded,(O.log.get("debug")||t.debug)&&await wn();let{spector:r}=t;if((O.log.get("spector")||r)&&await Nn(),O.log.probe(it+1,"DOM is loaded")(),t.gl&&t.gl.device)return M.attach(t.gl);let i=new M(t),n=`Created ${i.info.type}${i.debug?" debug":""} context: ${i.info.vendor}, ${i.info.renderer} for canvas: ${i.canvasContext.id}`;return O.log.probe(it,n)(),O.log.table(it,i.info)(),O.log.groupEnd(it)(),i}constructor(t){var r;super({...t,id:t.id||(0,O.uid)("webgl-device")}),this.info=void 0,this.canvasContext=void 0,this.handle=void 0,this.lost=void 0,this._resolveContextLost=void 0,this._features=void 0,this._limits=void 0,this.renderPass=null,this.gl=void 0,this.gl2=null,this.debug=!1,this.isWebGL1=void 0,this.isWebGL2=void 0,this._canvasSizeInfo={clientWidth:0,clientHeight:0,devicePixelRatio:1},this._extensions={},this._polyfilled=!1,this.spector=void 0,this._webglLimits=void 0,this._constants=void 0;let i=(r=t.gl)===null||r===void 0?void 0:r.device;if(i)throw new Error(`WebGL context already attached to device ${i.id}`);this.canvasContext=new wt(this,t),this.lost=new Promise(f=>{this._resolveContextLost=f});let n=f=>{var l;return(l=this._resolveContextLost)===null||l===void 0?void 0:l.call(this,{reason:"destroyed",message:"Computer entered sleep mode, or too many apps or browser tabs are using the GPU."})},o=t.gl||null;if(o=o||(L()?fn(this.canvasContext.canvas,{...t,onContextLost:n}):null),o=o||(L()?null:Wi({...t,onContextLost:n})),!o)throw new Error("WebGL context creation failed");this.handle=o,this.gl=this.handle,this.gl2=this.gl,this.isWebGL2=ol(this.gl),this.isWebGL1=!this.isWebGL2,this.info=ln(this.gl),this.gl.device=this,this.gl._version=this.isWebGL2?2:1,Ji(this.gl);let{enable:s=!0,copyState:a=!1}=t;if(zr(this.gl,{enable:s,copyState:a,log:function(){for(var f=arguments.length,l=new Array(f),c=0;c<f;c++)l[c]=arguments[c];return O.log.log(1,...l)()}}),L()&&t.debug&&(this.gl=Un(this.gl,{...t,webgl2:this.isWebGL2,throwOnError:!0}),this.gl2=this.gl,this.debug=!0,O.log.level=Math.max(O.log.level,1),O.log.warn("WebGL debug mode activated. Performance reduced.")()),L()&&t.spector){let f=this.handle.canvas||t.canvas;this.spector=Bn({...this.props,canvas:f})}}destroy(){let t=this.gl.getExtension("STACKGL_destroy_context");t&&t.destroy()}get isLost(){return this.gl.isContextLost()}getSize(){return[this.gl.drawingBufferWidth,this.gl.drawingBufferHeight]}isTextureFormatSupported(t){return Qe(this.gl,t)}isTextureFormatFilterable(t){return hn(this.gl,t)}isTextureFormatRenderable(t){return gn(this.gl,t)}assertWebGL2(){if(!this.gl2)throw new Error("Requires WebGL2");return this.gl2}createCanvasContext(t){throw new Error("WebGL only supports a single canvas")}createBuffer(t){let r=this._getBufferProps(t);return new V(this,r)}_createTexture(t){return new N(this,t)}createExternalTexture(t){throw new Error("createExternalTexture() not implemented")}createSampler(t){return new me(this,t)}createShader(t){return new Ut(this,t)}createFramebuffer(t){return new te(this,t)}createRenderPipeline(t){return new Wt(this,t)}createVertexArray(t){return new Ce(this,t)}beginRenderPass(t){return new Vt(this,t)}createComputePipeline(t){throw new Error("ComputePipeline not supported in WebGL")}beginComputePass(t){throw new Error("ComputePass not supported in WebGL")}createTransformFeedback(t){return new jt(this,t)}getDefaultRenderPass(){return this.renderPass=this.renderPass||this.beginRenderPass({framebuffer:this.canvasContext.getCurrentFramebuffer()}),this.renderPass}createCommandEncoder(t){return new Lt(this,t)}submit(){var t;(t=this.renderPass)===null||t===void 0||t.end(),this.renderPass=null}get webglLimits(){return this._webglLimits=this._webglLimits||vn(this.gl),this._webglLimits}loseDevice(){var t;let r=!1,i=this.gl.getExtension("WEBGL_lose_context");return i&&(r=!0,i.loseContext()),(t=this._resolveContextLost)===null||t===void 0||t.call(this,{reason:"destroyed",message:"Application triggered context loss"}),r}pushState(){_e(this.gl)}popState(){se(this.gl)}setSpectorMetadata(t,r){t.__SPECTOR_Metadata=r}getGLKey(t,r){r=r||this.gl2||this.gl;let i=Number(t);for(let n in r)if(r[n]===i)return`GL.${n}`;return String(t)}setConstantAttribute(t,r){this._constants=this._constants||new Array(this.limits.maxVertexAttributes).fill(null);let i=this._constants[t];switch(i&&ll(i,r)&&O.log.info(1,`setConstantAttribute(${t}) could have been skipped, value unchanged`)(),this._constants[t]=r,r.constructor){case Float32Array:sl(this,t,r);break;case Int32Array:al(this,t,r);break;case Uint32Array:fl(this,t,r);break;default:(0,O.assert)(!1)}}};M.type="webgl";function nl(e){return typeof WebGLRenderingContext<"u"&&e instanceof WebGLRenderingContext||typeof WebGL2RenderingContext<"u"&&e instanceof WebGL2RenderingContext?!0:Boolean(e&&Number.isFinite(e._version))}function ol(e){return typeof WebGL2RenderingContext<"u"&&e instanceof WebGL2RenderingContext?!0:Boolean(e&&e._version===2)}function sl(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:(0,O.assert)(!1)}}function al(e,t,r){var i;e.assertWebGL2(),(i=e.gl2)===null||i===void 0||i.vertexAttribI4iv(t,r)}function fl(e,t,r){var i;e.assertWebGL2(),(i=e.gl2)===null||i===void 0||i.vertexAttribI4uiv(t,r)}function ll(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 ro=T(E(),1);var cl=256,ul=1024,_l=16384;var dl="clear: bad arguments";function ii(e,t){let r=M.attach(e),{framebuffer:i=null,color:n=null,depth:o=null,stencil:s=null}=t||{},a={};i&&(a.framebuffer=i);let f=0;n&&(f|=_l,n!==!0&&(a.clearColor=n)),o&&(f|=cl,o!==!0&&(a.clearDepth=o)),s&&(f|=ul,o!==!0&&(a.clearStencil=o)),(0,ro.assert)(f!==0,dl),P(r.gl,a,()=>{r.gl.clear(f)})}var nt=T(E(),1);var io=T(E(),1);function no(e){switch(e){case 6406:case 33326:case 6403:return 1;case 33328:case 33319:return 2;case 6407:case 34837:return 3;case 6408:case 34836:return 4;default:return(0,io.assert)(!1),0}}function ni(e,t){var r;let{sourceX:i=0,sourceY:n=0,sourceFormat:o=6408,sourceAttachment:s=36064}=t||{},{target:a=null,sourceWidth:f,sourceHeight:l,sourceType:c}=t||{},{framebuffer:u,deleteFramebuffer:_}=pl(e);(0,nt.assert)(u);let{gl:d,handle:p}=u;f=f||u.width,l=l||u.height;let g=s-36064;c=c||((r=u.colorAttachments[g])===null||r===void 0?void 0:r.type)||5121,a=gl(a,c,o,f,l),c=c||Xn(a);let h=d.bindFramebuffer(36160,p);return d.readPixels(i,n,f,l,o,c,a),d.bindFramebuffer(36160,h||null),_&&u.destroy(),a}function pl(e){return e instanceof nt.Framebuffer?{framebuffer:e,deleteFramebuffer:!1}:{framebuffer:hl(e),deleteFramebuffer:!0}}function hl(e,t){let{device:r,width:i,height:n,id:o}=e;return r.createFramebuffer({...t,id:`framebuffer-for-${o}`,width:i,height:n,colorAttachments:[e]})}function gl(e,t,r,i,n){if(e)return e;t=t||5121;let o=rt(t,{clamped:!1}),s=no(r);return new o(i*n*s)}var fs=T(S());function oo(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var i=Object.getOwnPropertySymbols(e);t&&(i=i.filter(function(n){return Object.getOwnPropertyDescriptor(e,n).enumerable})),r.push.apply(r,i)}return r}function so(e){for(var t=1;t<arguments.length;t++){var r=arguments[t]!=null?arguments[t]:{};t%2?oo(Object(r),!0).forEach(function(i){Tl(e,i,r[i])}):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(r)):oo(Object(r)).forEach(function(i){Object.defineProperty(e,i,Object.getOwnPropertyDescriptor(r,i))})}return e}function Tl(e,t,r){return t in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r,e}var ao=`
|
|
74
73
|
uniform DATAFILTER_TYPE filter_min;
|
|
75
74
|
uniform DATAFILTER_TYPE filter_softMin;
|
|
76
75
|
uniform DATAFILTER_TYPE filter_softMax;
|
|
@@ -87,15 +86,15 @@ uniform bool filter_transformSize;
|
|
|
87
86
|
#define DATAFILTER_ATTRIB_64LOW instanceFilterValues64Low
|
|
88
87
|
#endif
|
|
89
88
|
|
|
90
|
-
|
|
89
|
+
in DATAFILTER_TYPE DATAFILTER_ATTRIB;
|
|
91
90
|
#ifdef DATAFILTER_DOUBLE
|
|
92
|
-
|
|
91
|
+
in DATAFILTER_TYPE DATAFILTER_ATTRIB_64LOW;
|
|
93
92
|
|
|
94
93
|
uniform DATAFILTER_TYPE filter_min64High;
|
|
95
94
|
uniform DATAFILTER_TYPE filter_max64High;
|
|
96
95
|
#endif
|
|
97
96
|
|
|
98
|
-
|
|
97
|
+
out float dataFilter_value;
|
|
99
98
|
|
|
100
99
|
float dataFilter_reduceValue(float value) {
|
|
101
100
|
return value;
|
|
@@ -125,10 +124,10 @@ void dataFilter_setValue(DATAFILTER_TYPE valueFromMin, DATAFILTER_TYPE valueFrom
|
|
|
125
124
|
dataFilter_value = 1.0;
|
|
126
125
|
}
|
|
127
126
|
}
|
|
128
|
-
`,
|
|
127
|
+
`,fo=`
|
|
129
128
|
uniform bool filter_transformColor;
|
|
130
|
-
|
|
131
|
-
`;function
|
|
129
|
+
in float dataFilter_value;
|
|
130
|
+
`;function lo(e){if(!e||!("extensions"in e))return{};var t=e.filterRange,r=t===void 0?[-1,1]:t,i=e.filterEnabled,n=i===void 0?!0:i,o=e.filterTransformSize,s=o===void 0?!0:o,a=e.filterTransformColor,f=a===void 0?!0:a,l=e.filterSoftRange||r;return so(so({},Number.isFinite(r[0])?{filter_min:r[0],filter_softMin:l[0],filter_softMax:l[1],filter_max:r[1]}:{filter_min:r.map(function(c){return c[0]}),filter_softMin:l.map(function(c){return c[0]}),filter_softMax:l.map(function(c){return c[1]}),filter_max:r.map(function(c){return c[1]})}),{},{filter_enabled:n,filter_useSoftMargin:Boolean(e.filterSoftRange),filter_transformSize:n&&s,filter_transformColor:n&&f})}function Al(e){if(!e||!("extensions"in e))return{};var t=lo(e);if(Number.isFinite(t.filter_min)){var r=Math.fround(t.filter_min);t.filter_min-=r,t.filter_softMin-=r,t.filter_min64High=r;var i=Math.fround(t.filter_max);t.filter_max-=i,t.filter_softMax-=i,t.filter_max64High=i}else{var n=t.filter_min.map(Math.fround);t.filter_min=t.filter_min.map(function(s,a){return s-n[a]}),t.filter_softMin=t.filter_softMin.map(function(s,a){return s-n[a]}),t.filter_min64High=n;var o=t.filter_max.map(Math.fround);t.filter_max=t.filter_max.map(function(s,a){return s-o[a]}),t.filter_softMax=t.filter_softMax.map(function(s,a){return s-o[a]}),t.filter_max64High=o}return t}var co={"vs:#main-start":`
|
|
132
131
|
#ifdef DATAFILTER_DOUBLE
|
|
133
132
|
dataFilter_setValue(
|
|
134
133
|
DATAFILTER_ATTRIB - filter_min64High + DATAFILTER_ATTRIB_64LOW,
|
|
@@ -150,11 +149,11 @@ varying float dataFilter_value;
|
|
|
150
149
|
if (filter_transformColor) {
|
|
151
150
|
color.a *= dataFilter_value;
|
|
152
151
|
}
|
|
153
|
-
`},
|
|
152
|
+
`},uo={name:"data-filter",vs:ao,fs:fo,inject:co,getUniforms:lo},_o={name:"data-filter-fp64",vs:ao,fs:fo,inject:co,getUniforms:Al};var Te=T(E(),1),I=T(E(),1),es=T(E(),1);var C=e=>`${e}`;function ie(e,t){if(!e)throw new Error(t||"shadertools: assertion failed.")}var oi={number:{type:"number",validate(e,t){return Number.isFinite(e)&&typeof t=="object"&&(t.max===void 0||e<=t.max)&&(t.min===void 0||e>=t.min)}},array:{type:"array",validate(e,t){return Array.isArray(e)||ArrayBuffer.isView(e)}}};function ho(e){let t={};for(let[r,i]of Object.entries(e))t[r]=Rl(i);return t}function go(e,t,r){let i={};for(let[n,o]of Object.entries(t))e&&n in e&&!o.private?(o.validate&&ie(o.validate(e[n],o),`${r}: invalid ${n}`),i[n]=e[n]):i[n]=o.value;return i}function Rl(e){let t=po(e);if(t!=="object")return{value:e,...oi[t],type:t};if(typeof e=="object")return e?e.type!==void 0?{...e,...oi[e.type],type:e.type}:e.value===void 0?{type:"object",value:e}:(t=po(e.value),{...e,...oi[t],type:t}):{type:"object",value:null};throw new Error("props")}function po(e){return Array.isArray(e)||ArrayBuffer.isView(e)?"array":typeof e}var To=C`\
|
|
154
153
|
#ifdef MODULE_LOGDEPTH
|
|
155
154
|
logdepth_adjustPosition(gl_Position);
|
|
156
155
|
#endif
|
|
157
|
-
`,
|
|
156
|
+
`,Ao=C`\
|
|
158
157
|
#ifdef MODULE_MATERIAL
|
|
159
158
|
gl_FragColor = material_filterColor(gl_FragColor);
|
|
160
159
|
#endif
|
|
@@ -175,23 +174,25 @@ varying float dataFilter_value;
|
|
|
175
174
|
#ifdef MODULE_LOGDEPTH
|
|
176
175
|
logdepth_setFragDepth();
|
|
177
176
|
#endif
|
|
178
|
-
`;var
|
|
177
|
+
`;var bl={vertex:To,fragment:Ao},Ro=/void\s+main\s*\([^)]*\)\s*\{\n?/,bo=/}\n?[^{}]*$/,si=[],ot="__LUMA_INJECT_DECLARATIONS__";function Eo(e){let t={vertex:{},fragment:{}};for(let r in e){let i=e[r],n=El(r);typeof i=="string"&&(i={order:0,injection:i}),t[n][r]=i}return t}function El(e){let t=e.slice(0,2);switch(t){case"vs":return"vertex";case"fs":return"fragment";default:throw new Error(t)}}function st(e,t,r){let i=arguments.length>3&&arguments[3]!==void 0?arguments[3]:!1,n=t==="vertex";for(let o in r){let s=r[o];s.sort((f,l)=>f.order-l.order),si.length=s.length;for(let f=0,l=s.length;f<l;++f)si[f]=s[f].injection;let a=`${si.join(`
|
|
179
178
|
`)}
|
|
180
|
-
`;switch(
|
|
181
|
-
${r}// END MODULE_${this.name}
|
|
179
|
+
`;switch(o){case"vs:#decl":n&&(e=e.replace(ot,a));break;case"vs:#main-start":n&&(e=e.replace(Ro,f=>f+a));break;case"vs:#main-end":n&&(e=e.replace(bo,f=>a+f));break;case"fs:#decl":n||(e=e.replace(ot,a));break;case"fs:#main-start":n||(e=e.replace(Ro,f=>f+a));break;case"fs:#main-end":n||(e=e.replace(bo,f=>a+f));break;default:e=e.replace(o,f=>f+a)}}return e=e.replace(ot,""),i&&(e=e.replace(/\}\s*$/,o=>o+bl[t])),e}var vl=1,z=class{static instantiateModules(t){return t.map(r=>{if(r instanceof z)return r;ie(typeof r!="string",`Shader module use by name is deprecated. Import shader module '${JSON.stringify(r)}' and use it directly.`),r.name||(console.warn("shader module has no name"),r.name=`shader-module-${vl++}`);let i=new z(r);return i.dependencies=z.instantiateModules(r.dependencies||[]),i})}constructor(t){this.name=void 0,this.vs=void 0,this.fs=void 0,this.getModuleUniforms=void 0,this.dependencies=void 0,this.deprecations=void 0,this.defines=void 0,this.injections=void 0,this.uniforms={},this.uniformTypes={};let{name:r,vs:i,fs:n,dependencies:o=[],uniformPropTypes:s={},getUniforms:a,deprecations:f=[],defines:l={},inject:c={}}=t;ie(typeof r=="string"),this.name=r,this.vs=i,this.fs=n,this.getModuleUniforms=a,this.dependencies=z.instantiateModules(o),this.deprecations=this._parseDeprecationDefinitions(f),this.defines=l,this.injections=Eo(c),s&&(this.uniforms=ho(s))}getModuleSource(t){let r;switch(t){case"vertex":r=this.vs||"";break;case"fragment":r=this.fs||"";break;default:ie(!1)}let i=this.name.toUpperCase().replace(/[^0-9a-z]/gi,"_");return`// ----- MODULE ${this.name} ---------------
|
|
182
180
|
|
|
183
|
-
|
|
181
|
+
#define MODULE_${i}
|
|
182
|
+
${r}
|
|
183
|
+
|
|
184
|
+
`}getUniforms(t,r){return this.getModuleUniforms?this.getModuleUniforms(t,r):go(t,this.uniforms,this.name)}getDefines(){return this.defines}checkDeprecations(t,r){this.deprecations.forEach(i=>{var n;(n=i.regex)!==null&&n!==void 0&&n.test(t)&&(i.deprecated?r.deprecated(i.old,i.new)():r.removed(i.old,i.new)())})}_parseDeprecationDefinitions(t){return t.forEach(r=>{switch(r.type){case"function":r.regex=new RegExp(`\\b${r.old}\\(`);break;default:r.regex=new RegExp(`${r.type} ${r.old};`)}}),t}_defaultGetUniforms(){let t=arguments.length>0&&arguments[0]!==void 0?arguments[0]:{},r={},i=this.uniforms;for(let n in i){let o=i[n];n in t&&!o.private?(o.validate&&ie(o.validate(t[n],o),`${this.name}: invalid ${n}`),r[n]=t[n]):r[n]=o.value}return r}};function at(e){let t=z.instantiateModules(e);return ml(t)}function ml(e){let t={},r={};return vo({modules:e,level:0,moduleMap:t,moduleDepth:r}),Object.keys(r).sort((i,n)=>r[n]-r[i]).map(i=>t[i])}function vo(e){let{modules:t,level:r,moduleMap:i,moduleDepth:n}=e;if(r>=5)throw new Error("Possible loop in shader dependency graph");for(let o of t)i[o.name]=o,(n[o.name]===void 0||n[o.name]<r)&&(n[o.name]=r);for(let o of t)o.dependencies&&vo({modules:o.dependencies,level:r+1,moduleMap:i,moduleDepth:n})}function mo(e){switch(e?.gpu.toLowerCase()){case"apple":return C`\
|
|
184
185
|
#define APPLE_GPU
|
|
185
186
|
// Apple optimizes away the calculation necessary for emulated fp64
|
|
186
187
|
#define LUMA_FP64_CODE_ELIMINATION_WORKAROUND 1
|
|
187
188
|
#define LUMA_FP32_TAN_PRECISION_WORKAROUND 1
|
|
188
189
|
// Intel GPU doesn't have full 32 bits precision in same cases, causes overflow
|
|
189
190
|
#define LUMA_FP64_HIGH_BITS_OVERFLOW_WORKAROUND 1
|
|
190
|
-
`;case"nvidia":return
|
|
191
|
+
`;case"nvidia":return C`\
|
|
191
192
|
#define NVIDIA_GPU
|
|
192
193
|
// Nvidia optimizes away the calculation necessary for emulated fp64
|
|
193
194
|
#define LUMA_FP64_CODE_ELIMINATION_WORKAROUND 1
|
|
194
|
-
`;case"intel":return
|
|
195
|
+
`;case"intel":return C`\
|
|
195
196
|
#define INTEL_GPU
|
|
196
197
|
// Intel optimizes away the calculation necessary for emulated fp64
|
|
197
198
|
#define LUMA_FP64_CODE_ELIMINATION_WORKAROUND 1
|
|
@@ -199,9 +200,9 @@ ${r}// END MODULE_${this.name}
|
|
|
199
200
|
#define LUMA_FP32_TAN_PRECISION_WORKAROUND 1
|
|
200
201
|
// Intel GPU doesn't have full 32 bits precision in same cases, causes overflow
|
|
201
202
|
#define LUMA_FP64_HIGH_BITS_OVERFLOW_WORKAROUND 1
|
|
202
|
-
`;case"amd":return
|
|
203
|
+
`;case"amd":return C`\
|
|
203
204
|
#define AMD_GPU
|
|
204
|
-
`;default:return
|
|
205
|
+
`;default:return C`\
|
|
205
206
|
#define DEFAULT_GPU
|
|
206
207
|
// Prevent driver from optimizing away the calculation necessary for emulated fp64
|
|
207
208
|
#define LUMA_FP64_CODE_ELIMINATION_WORKAROUND 1
|
|
@@ -209,75 +210,71 @@ ${r}// END MODULE_${this.name}
|
|
|
209
210
|
#define LUMA_FP32_TAN_PRECISION_WORKAROUND 1
|
|
210
211
|
// If the GPU doesn't have full 32 bits precision, will causes overflow
|
|
211
212
|
#define LUMA_FP64_HIGH_BITS_OVERFLOW_WORKAROUND 1
|
|
212
|
-
`}}function
|
|
213
|
-
#if (__VERSION__ > 120)
|
|
213
|
+
`}}function So(e){let t="";return e.features.has("webgl2")&&(t+=C`\
|
|
214
214
|
# define FEATURE_GLSL_DERIVATIVES
|
|
215
215
|
# define FEATURE_GLSL_DRAW_BUFFERS
|
|
216
216
|
# define FEATURE_GLSL_FRAG_DEPTH
|
|
217
217
|
# define FEATURE_GLSL_TEXTURE_LOD
|
|
218
|
-
|
|
219
|
-
`;return!e.features.has("webgl2")&&e.features.has("glsl-frag-depth")&&(t+=x`\
|
|
218
|
+
`),e.features.has("webgl2")||(e.features.has("glsl-frag-depth")&&(t+=C`\
|
|
220
219
|
|
|
221
|
-
//
|
|
220
|
+
// FEATURE_GLSL_FRAG_DEPTH => gl_FragDepth is available
|
|
222
221
|
#ifdef GL_EXT_frag_depth
|
|
223
222
|
# extension GL_EXT_frag_depth : enable
|
|
224
223
|
# define FEATURE_GLSL_FRAG_DEPTH
|
|
225
224
|
# define FRAG_DEPTH
|
|
226
225
|
# define gl_FragDepth gl_FragDepthEXT
|
|
227
226
|
#endif
|
|
228
|
-
`)
|
|
227
|
+
`),e!=null&&e.features.has("glsl-derivatives")&&(t+=C`\
|
|
229
228
|
|
|
230
|
-
//
|
|
229
|
+
// FEATURE_GLSL_DERIVATIVES => dxdF, dxdY and fwidth are available
|
|
231
230
|
#if defined(GL_OES_standard_derivatives) || defined(FEATURE_GLSL_DERIVATIVES)
|
|
232
231
|
# extension GL_OES_standard_derivatives : enable
|
|
233
232
|
# define FEATURE_GLSL_DERIVATIVES
|
|
234
|
-
# define DERIVATIVES
|
|
235
233
|
#endif
|
|
236
|
-
`)
|
|
234
|
+
`),e!=null&&e.features.has("glsl-frag-data")&&(t+=C`\
|
|
237
235
|
|
|
238
|
-
//
|
|
236
|
+
// FEATURE_GLSL_DRAW_BUFFERS => gl_FragData[] is available
|
|
239
237
|
#ifdef GL_EXT_draw_buffers
|
|
240
238
|
# extension GL_EXT_draw_buffers : require
|
|
241
239
|
# define FEATURE_GLSL_DRAW_BUFFERS
|
|
242
|
-
# define DRAW_BUFFERS
|
|
243
240
|
#endif
|
|
244
|
-
`)
|
|
241
|
+
`),e!=null&&e.features.has("glsl-texture-lod")&&(t+=C`\
|
|
245
242
|
// TEXTURE_LOD => texture2DLod etc are available
|
|
246
243
|
#ifdef GL_EXT_shader_texture_lod
|
|
247
244
|
# extension GL_EXT_shader_texture_lod : enable
|
|
248
245
|
# define FEATURE_GLSL_TEXTURE_LOD
|
|
249
246
|
# define TEXTURE_LOD
|
|
250
247
|
#endif
|
|
251
|
-
`),t}function
|
|
252
|
-
`],[/\btexture(2D|2DProj|Cube)Lod(EXT)?\(/g,"textureLod("],[/\btexture(2D|2DProj|Cube)(EXT)?\(/g,"texture("]],
|
|
253
|
-
|
|
254
|
-
|
|
255
|
-
`}o.
|
|
256
|
-
`}return r}function En(e){let t={vertex:{},fragment:{}};for(let r of e){let n,o;typeof r!="string"?(n=r,o=n.hook):(n={},o=r),o=o.trim();let[s,a]=o.split(":"),_=o.replace(/\(.+/,""),f=Object.assign(n,{signature:a});switch(s){case"vs":t.vertex[_]=f;break;case"fs":t.fragment[_]=f;break;default:throw new Error(s)}}return t}var Co=`
|
|
248
|
+
`)),t}function Oo(e,t,r){var i;if(Number(((i=e.match(/^#version[ \t]+(\d+)/m))===null||i===void 0?void 0:i[1])||100)!==300)throw new Error("luma.gl v9 only supports GLSL 3.00 shader sources");switch(t){case 300:switch(r){case"vertex":return e=ft(e,Sl),e;case"fragment":return e=ft(e,yl),e;default:throw new Error(r)}case 100:switch(r){case"vertex":return e=ft(e,Ol),e;case"fragment":return e=ft(e,Io),e=Pl(e),e;default:throw new Error(r)}default:throw new Error(String(t))}}var xo=[[/^(#version[ \t]+(100|300[ \t]+es))?[ \t]*\n/,`#version 300 es
|
|
249
|
+
`],[/\btexture(2D|2DProj|Cube)Lod(EXT)?\(/g,"textureLod("],[/\btexture(2D|2DProj|Cube)(EXT)?\(/g,"texture("]],Sl=[...xo,[Ne("attribute"),"in $1"],[Ne("varying"),"out $1"]],yl=[...xo,[Ne("varying"),"in $1"]],Po=[[/^#version[ \t]+300[ \t]+es/,"#version 100"],[/\btexture(2D|2DProj|Cube)Lod\(/g,"texture$1LodEXT("],[/\btexture\(/g,"texture2D("],[/\btextureLod\(/g,"texture2DLodEXT("]],Ol=[...Po,[Ne("in"),"attribute $1"],[Ne("out"),"varying $1"]],Io=[...Po,[Ne("in"),"varying $1"]],xl="gl_FragColor",yo=/\bout[ \t]+vec4[ \t]+(\w+)[ \t]*;\n?/;function ft(e,t){for(let[r,i]of t)e=e.replace(r,i);return e}function Pl(e){e=ft(e,Io);let t=yo.exec(e);if(t){let r=t[1];e=e.replace(yo,"").replace(new RegExp(`\\b${r}\\b`,"g"),xl)}return e}function Ne(e){return new RegExp(`\\b${e}[ \\t]+(\\w+[ \\t]+\\w+(\\[\\w+\\])?;)`,"g")}function ai(e,t){let r="";for(let i in e){let n=e[i];if(r+=`void ${n.signature} {
|
|
250
|
+
`,n.header&&(r+=` ${n.header}`),t[i]){let o=t[i];o.sort((s,a)=>s.order-a.order);for(let s of o)r+=` ${s.injection}
|
|
251
|
+
`}n.footer&&(r+=` ${n.footer}`),r+=`}
|
|
252
|
+
`}return r}function fi(e){let t={vertex:{},fragment:{}};for(let r of e){let i,n;typeof r!="string"?(i=r,n=i.hook):(i={},n=r),n=n.trim();let[o,s]=n.split(":"),a=n.replace(/\(.+/,""),f=Object.assign(i,{signature:s});switch(o){case"vs":t.vertex[a]=f;break;case"fs":t.fragment[a]=f;break;default:throw new Error(o)}}return t}function Fo(e,t){return{name:Il(e,t),language:"glsl",version:Fl(e)}}function Il(e){let t=arguments.length>1&&arguments[1]!==void 0?arguments[1]:"unnamed",i=/#define[\s*]SHADER_NAME[\s*]([A-Za-z0-9_-]+)[\s*]/.exec(e);return i?i[1]:t}function Fl(e){let t=100,r=e.match(/[^\s]+/g);if(r&&r.length>=2&&r[0]==="#version"){let i=parseInt(r[1],10);Number.isFinite(i)&&(t=i)}if(t!==100&&t!==300)throw new Error(`Invalid GLSL version ${t}`);return t}var Bo=`
|
|
257
253
|
|
|
258
254
|
${ot}
|
|
259
|
-
|
|
260
|
-
`,Mf=x`\
|
|
255
|
+
`,Cl=C`\
|
|
261
256
|
precision highp float;
|
|
257
|
+
`;function Do(e){let{vs:t,fs:r}=e,i=at(e.modules||[]);switch(e.platformInfo.shaderLanguage){case"glsl":return{vs:Mo(e.platformInfo,{...e,source:t,stage:"vertex",modules:i}),fs:Mo(e.platformInfo,{...e,source:r,stage:"fragment",modules:i}),getUniforms:No(i)};case"wgsl":return{vs:Co(e.platformInfo,{...e,source:t,stage:"vertex",modules:i}),fs:Co(e.platformInfo,{...e,source:r,stage:"fragment",modules:i}),getUniforms:No(i)}}}function Co(e,t){let{source:r,stage:i,modules:n,defines:o={},hookFunctions:s=[],inject:a={},log:f}=t;ie(typeof r=="string","shader source must be a string");let l=r,c={};n.forEach(h=>{Object.assign(c,h.getDefines())}),Object.assign(c,o);let u="",_=fi(s),d={},p={},g={};for(let h in a){let R=typeof a[h]=="string"?{injection:a[h],order:0}:a[h],A=/^(v|f)s:(#)?([\w-]+)$/.exec(h);if(A){let m=A[2],B=A[3];m?B==="decl"?p[h]=[R]:g[h]=[R]:d[h]=[R]}else g[h]=[R]}for(let h of n){f&&h.checkDeprecations(l,f);let R=h.getModuleSource(i,"wgsl");u+=R;let A=h.injections[i];for(let m in A){let B=/^(v|f)s:#([\w-]+)$/.exec(m);if(B){let $=B[2]==="decl"?p:g;$[m]=$[m]||[],$[m].push(A[m])}else d[m]=d[m]||[],d[m].push(A[m])}}return u+=Bo,u=st(u,i,p),u+=ai(_[i],d),u+=l,u=st(u,i,g),u}function Mo(e,t){let{id:r,source:i,stage:n,language:o="glsl",modules:s,defines:a={},hookFunctions:f=[],inject:l={},prologue:c=!0,log:u}=t;ie(typeof i=="string","shader source must be a string");let _=o==="glsl"?Fo(i).version:-1,d=e.shaderLanguageVersion,p=_===100?"#version 100":"#version 300 es",h=i.split(`
|
|
258
|
+
`).slice(1).join(`
|
|
259
|
+
`),R={};s.forEach(D=>{Object.assign(R,D.getDefines())}),Object.assign(R,a);let A="";switch(o){case"wgsl":break;case"glsl":A=c?`${p}
|
|
260
|
+
|
|
261
|
+
// ----- PROLOGUE -------------------------
|
|
262
|
+
${Ml({id:r,source:i,stage:n})}
|
|
263
|
+
${`#define SHADER_TYPE_${n.toUpperCase()}`}
|
|
264
|
+
${mo(e)}
|
|
265
|
+
${So(e)}
|
|
266
|
+
${n==="fragment"?Cl:""}
|
|
267
|
+
|
|
268
|
+
// ----- APPLICATION DEFINES -------------------------
|
|
269
|
+
|
|
270
|
+
${Nl(R)}
|
|
262
271
|
|
|
263
|
-
|
|
264
|
-
|
|
265
|
-
|
|
266
|
-
|
|
267
|
-
|
|
268
|
-
|
|
269
|
-
${Oo(e)}
|
|
270
|
-
${xf(N)}
|
|
271
|
-
${s==="fragment"?Mf:""}
|
|
272
|
-
`:`${T}
|
|
273
|
-
`;break}let fe=En(u),j={},ke={},Pe={};for(let B in l){let ue=typeof l[B]=="string"?{injection:l[B],order:0}:l[B],oe=/^(v|f)s:(#)?([\w-]+)$/.exec(B);if(oe){let w=oe[2],he=oe[3];w?he==="decl"?ke[B]=[ue]:Pe[B]=[ue]:j[B]=[ue]}else Pe[B]=[ue]}for(let B of _){d&&B.checkDeprecations(h,d);let ue=B.getModuleSource(s);P+=ue;let oe=B.injections[s];for(let w in oe){let he=/^(v|f)s:#([\w-]+)$/.exec(w);if(he){let Ke=he[2]==="decl"?ke:Pe;Ke[w]=Ke[w]||[],Ke[w].push(oe[w])}else j[w]=j[w]||[],j[w].push(oe[w])}}return P+=Co,P=st(P,s,ke),P+=cn(fe[s],j),P+=h,P=st(P,s,Pe),P=No(P,m,s),P.trim()}function Fo(e){return function(r){let n={};for(let o of e){let s=o.getUniforms(r,n);Object.assign(n,s)}return n}}function yf(e){let{id:t,source:r,stage:n}=e;return t&&r.indexOf("SHADER_NAME")===-1?`
|
|
274
|
-
#define SHADER_NAME ${t}_${n}
|
|
275
|
-
|
|
276
|
-
`:""}function xf(){let e=arguments.length>0&&arguments[0]!==void 0?arguments[0]:{},t=0,r="";for(let n in e){t===0&&(r+=`
|
|
277
|
-
// APPLICATION DEFINES
|
|
278
|
-
`),t++;let o=e[n];(o||Number.isFinite(o))&&(r+=`#define ${n.toUpperCase()} ${e[n]}
|
|
279
|
-
`)}return t===0&&(r+=`
|
|
280
|
-
`),r}function xo(e,t){if(!t.vs)throw new Error("no vertex shader");let r=yo(e,t.vs),n;return t.fs&&(n=yo(e,t.fs)),{...t,vs:r,fs:n}}function yo(e,t){if(typeof t=="string")return t;switch(e.type){case"webgpu":if(t!=null&&t.wgsl)return t.wgsl;throw new Error("WebGPU does not support GLSL shaders");default:if(t!=null&&t.glsl)return t.glsl;throw new Error("WebGL does not support WGSL shaders")}}var q=class{constructor(){this._hookFunctions=[],this._defaultModules=[]}static getDefaultShaderAssembler(){return q.defaultShaderAssembler=q.defaultShaderAssembler||new q,q.defaultShaderAssembler}addDefaultModule(t){this._defaultModules.find(r=>r.name===(typeof t=="string"?t:t.name))||this._defaultModules.push(t)}removeDefaultModule(t){let r=typeof t=="string"?t:t.name;this._defaultModules=this._defaultModules.filter(n=>n.name!==r)}addShaderHook(t,r){r&&(t=Object.assign(r,{hook:t})),this._hookFunctions.push(t)}assembleShaders(t,r){let n=this._getModuleList(r.modules),o=this._hookFunctions,s=xo(t,r);return Mo(t,{...s,modules:n,hookFunctions:o})}_getModuleList(){let t=arguments.length>0&&arguments[0]!==void 0?arguments[0]:[],r=new Array(this._defaultModules.length+t.length),n={},o=0;for(let s=0,a=this._defaultModules.length;s<a;++s){let _=this._defaultModules[s],f=_.name;r[o++]=_,n[f]=!0}for(let s=0,a=t.length;s<a;++s){let _=t[s],f=_.name;n[f]||(r[o++]=_,n[f]=!0)}return r.length=o,r}};q.defaultShaderAssembler=void 0;function jt(e){let t=arguments.length>1&&arguments[1]!==void 0?arguments[1]:[],r=arguments.length>2&&arguments[2]!==void 0?arguments[2]:0,n=Math.fround(e),o=e-n;return t[r]=n,t[r+1]=o,t}function dn(e){return e-Math.fround(e)}function Rn(e){let t=new Float32Array(32);for(let r=0;r<4;++r)for(let n=0;n<4;++n){let o=r*4+n;jt(e[n*4+r],t,o*2)}return t}var Bo=x`\
|
|
272
|
+
`:`${p}
|
|
273
|
+
`;break}let m=fi(f),B={},X={},$={};for(let D in l){let ce=typeof l[D]=="string"?{injection:l[D],order:0}:l[D],q=/^(v|f)s:(#)?([\w-]+)$/.exec(D);if(q){let W=q[2],ye=q[3];W?ye==="decl"?X[D]=[ce]:$[D]=[ce]:B[D]=[ce]}else $[D]=[ce]}for(let D of s){u&&D.checkDeprecations(h,u);let ce=D.getModuleSource(n);A+=ce;let q=D.injections[n];for(let W in q){let ye=/^(v|f)s:#([\w-]+)$/.exec(W);if(ye){let Oe=ye[2]==="decl"?X:$;Oe[W]=Oe[W]||[],Oe[W].push(q[W])}else B[W]=B[W]||[],B[W].push(q[W])}}return A+="// ----- MAIN SHADER SOURCE -------------------------",A+=Bo,A=st(A,n,X),A+=ai(m[n],B),A+=h,A=st(A,n,$),o==="glsl"&&_!==d&&(A=Oo(A,d,n)),A.trim()}function No(e){return function(r){let i={};for(let n of e){let o=n.getUniforms(r,i);Object.assign(i,o)}return i}}function Ml(e){let{id:t,source:r,stage:i}=e;return t&&r.indexOf("SHADER_NAME")===-1?`
|
|
274
|
+
#define SHADER_NAME ${t}_${i}
|
|
275
|
+
|
|
276
|
+
`:""}function Nl(){let e=arguments.length>0&&arguments[0]!==void 0?arguments[0]:{},t="";for(let r in e){let i=e[r];(i||Number.isFinite(i))&&(t+=`#define ${r.toUpperCase()} ${e[r]}
|
|
277
|
+
`)}return t}function Uo(e){if(!e.vs)throw new Error("no vertex shader");let t=wo(e.platformInfo,e.vs),r;return e.fs&&(r=wo(e.platformInfo,e.fs)),{...e,vs:t,fs:r}}function wo(e,t){if(typeof t=="string")return t;switch(e.type){case"webgpu":if(t!=null&&t.wgsl)return t.wgsl;throw new Error("WebGPU does not support GLSL shaders");default:if(t!=null&&t.glsl)return t.glsl;throw new Error("WebGL does not support WGSL shaders")}}var Y=class{constructor(){this._hookFunctions=[],this._defaultModules=[]}static getDefaultShaderAssembler(){return Y.defaultShaderAssembler=Y.defaultShaderAssembler||new Y,Y.defaultShaderAssembler}addDefaultModule(t){this._defaultModules.find(r=>r.name===(typeof t=="string"?t:t.name))||this._defaultModules.push(t)}removeDefaultModule(t){let r=typeof t=="string"?t:t.name;this._defaultModules=this._defaultModules.filter(i=>i.name!==r)}addShaderHook(t,r){r&&(t=Object.assign(r,{hook:t})),this._hookFunctions.push(t)}assembleShaders(t){let r=this._getModuleList(t.modules),i=this._hookFunctions,n=Uo(t);return{...Do({platformInfo:t.platformInfo,...n,modules:r,hookFunctions:i}),modules:r}}_getModuleList(){let t=arguments.length>0&&arguments[0]!==void 0?arguments[0]:[],r=new Array(this._defaultModules.length+t.length),i={},n=0;for(let o=0,s=this._defaultModules.length;o<s;++o){let a=this._defaultModules[o],f=a.name;r[n++]=a,i[f]=!0}for(let o=0,s=t.length;o<s;++o){let a=t[o],f=a.name;i[f]||(r[n++]=a,i[f]=!0)}return r.length=n,z.instantiateModules(r)}};Y.defaultShaderAssembler=void 0;function zt(e){let t=arguments.length>1&&arguments[1]!==void 0?arguments[1]:[],r=arguments.length>2&&arguments[2]!==void 0?arguments[2]:0,i=Math.fround(e),n=e-i;return t[r]=i,t[r+1]=n,t}function li(e){return e-Math.fround(e)}function ci(e){let t=new Float32Array(32);for(let r=0;r<4;++r)for(let i=0;i<4;++i){let n=r*4+i;zt(e[i*4+r],t,n*2)}return t}var Vo=C`\
|
|
281
278
|
uniform float ONE;
|
|
282
279
|
|
|
283
280
|
/*
|
|
@@ -285,7 +282,7 @@ About LUMA_FP64_CODE_ELIMINATION_WORKAROUND
|
|
|
285
282
|
|
|
286
283
|
The purpose of this workaround is to prevent shader compilers from
|
|
287
284
|
optimizing away necessary arithmetic operations by swapping their sequences
|
|
288
|
-
or transform the equation to some 'equivalent'
|
|
285
|
+
or transform the equation to some 'equivalent' form.
|
|
289
286
|
|
|
290
287
|
The method is to multiply an artifical variable, ONE, which will be known to
|
|
291
288
|
the compiler to be 1 only at runtime. The whole expression is then represented
|
|
@@ -443,7 +440,7 @@ vec2 sqrt_fp64(vec2 a) {
|
|
|
443
440
|
return sum_fp64(vec2(yn, 0.0), prod);
|
|
444
441
|
#endif
|
|
445
442
|
}
|
|
446
|
-
`;var
|
|
443
|
+
`;var ko=C`\
|
|
447
444
|
const vec2 E_FP64 = vec2(2.7182817459106445e+00, 8.254840366817007e-08);
|
|
448
445
|
const vec2 LOG2_FP64 = vec2(0.6931471824645996e+00, -1.9046542121259336e-09);
|
|
449
446
|
const vec2 PI_FP64 = vec2(3.1415927410125732, -8.742278012618954e-8);
|
|
@@ -1113,17 +1110,18 @@ void mat4_vec4_mul_fp64(vec2 b[16], vec2 a[4], out vec2 out_val[4]) {
|
|
|
1113
1110
|
vec4_dot_fp64(a, tmp, out_val[i]);
|
|
1114
1111
|
}
|
|
1115
1112
|
}
|
|
1116
|
-
`;var Bf={ONE:1};function Df(){return Bf}var Uo={name:"fp64-arithmetic",vs:Bo,getUniforms:Df,fp64ify:jt,fp64LowPart:dn,fp64ifyMatrix4:Rn},at={name:"fp64",vs:Do,dependencies:[Uo],fp64ify:jt,fp64LowPart:dn,fp64ifyMatrix4:Rn};var UA=1/Math.PI*180,wA=1/180*Math.PI,Uf={EPSILON:1e-12,debug:!1,precision:4,printTypes:!1,printDegrees:!1,printRowMajor:!0,_cartographicRadians:!1};globalThis.mathgl=globalThis.mathgl||{config:{...Uf}};var _t=globalThis.mathgl.config;function Tn(e){return Array.isArray(e)||ArrayBuffer.isView(e)&&!(e instanceof DataView)}function Ue(e,t,r){let n=_t.EPSILON;r&&(_t.EPSILON=r);try{if(e===t)return!0;if(Tn(e)&&Tn(t)){if(e.length!==t.length)return!1;for(let o=0;o<e.length;++o)if(!Ue(e[o],t[o]))return!1;return!0}return e&&e.equals?e.equals(t):t&&t.equals?t.equals(e):typeof e=="number"&&typeof t=="number"?Math.abs(e-t)<=_t.EPSILON*Math.max(1,Math.abs(e),Math.abs(t)):!1}finally{_t.EPSILON=n}}var ft=typeof Float32Array<"u"?Float32Array:Array,An=Math.random;function Yt(e){return e>=0?Math.round(e):e%.5===0?Math.floor(e):Math.round(e)}var XA=Math.PI/180;var zt={};Ln(zt,{add:()=>Wf,angle:()=>lu,bezier:()=>nu,ceil:()=>kf,clone:()=>Lf,copy:()=>Hf,create:()=>wo,cross:()=>Jf,dist:()=>hu,distance:()=>Wo,div:()=>pu,divide:()=>Vo,dot:()=>hn,equals:()=>Ru,exactEquals:()=>du,floor:()=>Kf,forEach:()=>Ou,fromValues:()=>Xf,hermite:()=>ru,inverse:()=>qf,len:()=>Su,length:()=>Lo,lerp:()=>eu,max:()=>Yf,min:()=>jf,mul:()=>Au,multiply:()=>Ho,negate:()=>Zf,normalize:()=>Qf,random:()=>iu,rotateX:()=>_u,rotateY:()=>fu,rotateZ:()=>uu,round:()=>zf,scale:()=>Gf,scaleAndAdd:()=>$f,set:()=>Vf,slerp:()=>tu,sqrDist:()=>mu,sqrLen:()=>gu,squaredDistance:()=>ko,squaredLength:()=>Ko,str:()=>Eu,sub:()=>Tu,subtract:()=>Xo,transformMat3:()=>su,transformMat4:()=>ou,transformQuat:()=>au,zero:()=>cu});function wo(){let e=new ft(3);return ft!=Float32Array&&(e[0]=0,e[1]=0,e[2]=0),e}function Lf(e){let t=new ft(3);return t[0]=e[0],t[1]=e[1],t[2]=e[2],t}function Lo(e){let t=e[0],r=e[1],n=e[2];return Math.sqrt(t*t+r*r+n*n)}function Xf(e,t,r){let n=new ft(3);return n[0]=e,n[1]=t,n[2]=r,n}function Hf(e,t){return e[0]=t[0],e[1]=t[1],e[2]=t[2],e}function Vf(e,t,r,n){return e[0]=t,e[1]=r,e[2]=n,e}function Wf(e,t,r){return e[0]=t[0]+r[0],e[1]=t[1]+r[1],e[2]=t[2]+r[2],e}function Xo(e,t,r){return e[0]=t[0]-r[0],e[1]=t[1]-r[1],e[2]=t[2]-r[2],e}function Ho(e,t,r){return e[0]=t[0]*r[0],e[1]=t[1]*r[1],e[2]=t[2]*r[2],e}function Vo(e,t,r){return e[0]=t[0]/r[0],e[1]=t[1]/r[1],e[2]=t[2]/r[2],e}function kf(e,t){return e[0]=Math.ceil(t[0]),e[1]=Math.ceil(t[1]),e[2]=Math.ceil(t[2]),e}function Kf(e,t){return e[0]=Math.floor(t[0]),e[1]=Math.floor(t[1]),e[2]=Math.floor(t[2]),e}function jf(e,t,r){return e[0]=Math.min(t[0],r[0]),e[1]=Math.min(t[1],r[1]),e[2]=Math.min(t[2],r[2]),e}function Yf(e,t,r){return e[0]=Math.max(t[0],r[0]),e[1]=Math.max(t[1],r[1]),e[2]=Math.max(t[2],r[2]),e}function zf(e,t){return e[0]=Yt(t[0]),e[1]=Yt(t[1]),e[2]=Yt(t[2]),e}function Gf(e,t,r){return e[0]=t[0]*r,e[1]=t[1]*r,e[2]=t[2]*r,e}function $f(e,t,r,n){return e[0]=t[0]+r[0]*n,e[1]=t[1]+r[1]*n,e[2]=t[2]+r[2]*n,e}function Wo(e,t){let r=t[0]-e[0],n=t[1]-e[1],o=t[2]-e[2];return Math.sqrt(r*r+n*n+o*o)}function ko(e,t){let r=t[0]-e[0],n=t[1]-e[1],o=t[2]-e[2];return r*r+n*n+o*o}function Ko(e){let t=e[0],r=e[1],n=e[2];return t*t+r*r+n*n}function Zf(e,t){return e[0]=-t[0],e[1]=-t[1],e[2]=-t[2],e}function qf(e,t){return e[0]=1/t[0],e[1]=1/t[1],e[2]=1/t[2],e}function Qf(e,t){let r=t[0],n=t[1],o=t[2],s=r*r+n*n+o*o;return s>0&&(s=1/Math.sqrt(s)),e[0]=t[0]*s,e[1]=t[1]*s,e[2]=t[2]*s,e}function hn(e,t){return e[0]*t[0]+e[1]*t[1]+e[2]*t[2]}function Jf(e,t,r){let n=t[0],o=t[1],s=t[2],a=r[0],_=r[1],f=r[2];return e[0]=o*f-s*_,e[1]=s*a-n*f,e[2]=n*_-o*a,e}function eu(e,t,r,n){let o=t[0],s=t[1],a=t[2];return e[0]=o+n*(r[0]-o),e[1]=s+n*(r[1]-s),e[2]=a+n*(r[2]-a),e}function tu(e,t,r,n){let o=Math.acos(Math.min(Math.max(hn(t,r),-1),1)),s=Math.sin(o),a=Math.sin((1-n)*o)/s,_=Math.sin(n*o)/s;return e[0]=a*t[0]+_*r[0],e[1]=a*t[1]+_*r[1],e[2]=a*t[2]+_*r[2],e}function ru(e,t,r,n,o,s){let a=s*s,_=a*(2*s-3)+1,f=a*(s-2)+s,u=a*(s-1),l=a*(3-2*s);return e[0]=t[0]*_+r[0]*f+n[0]*u+o[0]*l,e[1]=t[1]*_+r[1]*f+n[1]*u+o[1]*l,e[2]=t[2]*_+r[2]*f+n[2]*u+o[2]*l,e}function nu(e,t,r,n,o,s){let a=1-s,_=a*a,f=s*s,u=_*a,l=3*s*_,c=3*f*a,E=f*s;return e[0]=t[0]*u+r[0]*l+n[0]*c+o[0]*E,e[1]=t[1]*u+r[1]*l+n[1]*c+o[1]*E,e[2]=t[2]*u+r[2]*l+n[2]*c+o[2]*E,e}function iu(e,t){t=t===void 0?1:t;let r=An()*2*Math.PI,n=An()*2-1,o=Math.sqrt(1-n*n)*t;return e[0]=Math.cos(r)*o,e[1]=Math.sin(r)*o,e[2]=n*t,e}function ou(e,t,r){let n=t[0],o=t[1],s=t[2],a=r[3]*n+r[7]*o+r[11]*s+r[15];return a=a||1,e[0]=(r[0]*n+r[4]*o+r[8]*s+r[12])/a,e[1]=(r[1]*n+r[5]*o+r[9]*s+r[13])/a,e[2]=(r[2]*n+r[6]*o+r[10]*s+r[14])/a,e}function su(e,t,r){let n=t[0],o=t[1],s=t[2];return e[0]=n*r[0]+o*r[3]+s*r[6],e[1]=n*r[1]+o*r[4]+s*r[7],e[2]=n*r[2]+o*r[5]+s*r[8],e}function au(e,t,r){let n=r[0],o=r[1],s=r[2],a=r[3],_=t[0],f=t[1],u=t[2],l=o*u-s*f,c=s*_-n*u,E=n*f-o*_,d=o*E-s*c,R=s*l-n*E,A=n*c-o*l,T=a*2;return l*=T,c*=T,E*=T,d*=2,R*=2,A*=2,e[0]=_+l+d,e[1]=f+c+R,e[2]=u+E+A,e}function _u(e,t,r,n){let o=[],s=[];return o[0]=t[0]-r[0],o[1]=t[1]-r[1],o[2]=t[2]-r[2],s[0]=o[0],s[1]=o[1]*Math.cos(n)-o[2]*Math.sin(n),s[2]=o[1]*Math.sin(n)+o[2]*Math.cos(n),e[0]=s[0]+r[0],e[1]=s[1]+r[1],e[2]=s[2]+r[2],e}function fu(e,t,r,n){let o=[],s=[];return o[0]=t[0]-r[0],o[1]=t[1]-r[1],o[2]=t[2]-r[2],s[0]=o[2]*Math.sin(n)+o[0]*Math.cos(n),s[1]=o[1],s[2]=o[2]*Math.cos(n)-o[0]*Math.sin(n),e[0]=s[0]+r[0],e[1]=s[1]+r[1],e[2]=s[2]+r[2],e}function uu(e,t,r,n){let o=[],s=[];return o[0]=t[0]-r[0],o[1]=t[1]-r[1],o[2]=t[2]-r[2],s[0]=o[0]*Math.cos(n)-o[1]*Math.sin(n),s[1]=o[0]*Math.sin(n)+o[1]*Math.cos(n),s[2]=o[2],e[0]=s[0]+r[0],e[1]=s[1]+r[1],e[2]=s[2]+r[2],e}function lu(e,t){let r=e[0],n=e[1],o=e[2],s=t[0],a=t[1],_=t[2],f=Math.sqrt((r*r+n*n+o*o)*(s*s+a*a+_*_)),u=f&&hn(e,t)/f;return Math.acos(Math.min(Math.max(u,-1),1))}function cu(e){return e[0]=0,e[1]=0,e[2]=0,e}function Eu(e){return"vec3(".concat(e[0],", ").concat(e[1],", ").concat(e[2],")")}function du(e,t){return e[0]===t[0]&&e[1]===t[1]&&e[2]===t[2]}function Ru(e,t){let r=e[0],n=e[1],o=e[2],s=t[0],a=t[1],_=t[2];return Math.abs(r-s)<=1e-6*Math.max(1,Math.abs(r),Math.abs(s))&&Math.abs(n-a)<=1e-6*Math.max(1,Math.abs(n),Math.abs(a))&&Math.abs(o-_)<=1e-6*Math.max(1,Math.abs(o),Math.abs(_))}var Tu=Xo,Au=Ho,pu=Vo,hu=Wo,mu=ko,Su=Lo,gu=Ko,Ou=function(){let e=wo();return function(t,r,n,o,s,a){let _,f;for(r||(r=3),n||(n=0),o?f=Math.min(o*r+n,t.length):f=t.length,_=n;_<f;_+=r)e[0]=t[_],e[1]=t[_+1],e[2]=t[_+2],s(e,e,a),t[_]=e[0],t[_+1]=e[1],t[_+2]=e[2];return t}}();var Ie=p(g(),1),Gt=class{constructor(t){this.id=void 0,this.userData={},this.topology=void 0,this.bufferLayout=[],this.vertexCount=void 0,this.indices=void 0,this.attributes=void 0,this.id=t.id||(0,Ie.uid)("geometry"),this.topology=t.topology,this.indices=t.indices||null,this.attributes=t.attributes,this.vertexCount=t.vertexCount,this.bufferLayout=t.bufferLayout||[],this.indices&&(0,Ie.assert)(this.indices.usage===Ie.Buffer.INDEX)}destroy(){var t;this.indices.destroy(),this.attributes.positions.destroy(),this.attributes.normals.destroy(),this.attributes.texCoords.destroy(),(t=this.attributes.colors)===null||t===void 0||t.destroy()}getVertexCount(){return this.vertexCount}getAttributes(){return this.attributes}getIndexes(){return this.indices}_calculateVertexCount(t){return t.byteLength/12}};function jo(e,t){if(t instanceof Gt)return t;let r=Nu(e,t),{attributes:n,bufferLayout:o}=bu(e,t);return new Gt({topology:t.topology||"triangle-list",bufferLayout:o,vertexCount:t.vertexCount,indices:r,attributes:n})}function Nu(e,t){if(!t.indices)return;let r=t.indices.value;return e.createBuffer({usage:Ie.Buffer.INDEX,data:r})}function bu(e,t){let r=[],n={};for(let[s,a]of Object.entries(t.attributes)){let _=s;switch(s){case"POSITION":_="positions";break;case"NORMAL":_="normals";break;case"TEXCOORD_0":_="texCoords";break}n[_]=e.createBuffer({data:a.value,id:`${s}-buffer`}),r.push({name:_,format:`float32x${a.size}`})}let o=t._calculateVertexCount(t.attributes,t.indices);return{attributes:n,bufferLayout:r,vertexCount:o}}var Yo=p(g(),1),Te=class{static getDefaultPipelineFactory(t){return t._lumaData.defaultPipelineFactory=t._lumaData.defaultPipelineFactory||new Te(t),t._lumaData.defaultPipelineFactory}constructor(t){this.device=void 0,this._hashCounter=0,this._hashes={},this._useCounts={},this._pipelineCache={},this.device=t}createRenderPipeline(t){let r={...Te.defaultProps,...t},n=this._hashRenderPipeline({...r});if(!this._pipelineCache[n]){let o=this.device.createRenderPipeline({...r,vs:this.device.createShader({stage:"vertex",source:r.vs}),fs:r.fs?this.device.createShader({stage:"fragment",source:r.fs}):null});o.hash=n,this._pipelineCache[n]=o,this._useCounts[n]=0}return this._useCounts[n]++,this._pipelineCache[n]}release(t){let r=t.hash;this._useCounts[r]--,this._useCounts[r]===0&&(this._pipelineCache[r].destroy(),delete this._pipelineCache[r],delete this._useCounts[r])}_createRenderPipeline(t){if(!t.fs)throw new Error("fs");return this.device.createRenderPipeline({...t,vs:this.device.createShader({stage:"vertex",source:t.vs}),fs:t.fs?this.device.createShader({stage:"fragment",source:t.fs}):null})}_hashRenderPipeline(t){let r=this._getHash(t.vs),n=t.fs?this._getHash(t.fs):0,o="-";switch(this.device.info.type){case"webgpu":let s=this._getHash(JSON.stringify(t.parameters)),a=this._getHash(JSON.stringify(t.bufferLayout));return`${r}/${n}V${o}T${t.topology}P${s}BL${a}}`;default:return`${r}/${n}V${o}`}}_getHash(t){return this._hashes[t]===void 0&&(this._hashes[t]=this._hashCounter++),this._hashes[t]}};Te.defaultProps={...Yo.RenderPipeline.defaultProps,vs:void 0,fs:void 0};var Ae=class{constructor(t,r){this.device=void 0,this.id=void 0,this.vs=void 0,this.fs=void 0,this.pipelineFactory=void 0,this.userData={},this.parameters=void 0,this.topology=void 0,this.bufferLayout=void 0,this.vertexCount=void 0,this.instanceCount=0,this.indexBuffer=null,this.bufferAttributes={},this.constantAttributes={},this.bindings={},this.uniforms={},this.pipeline=void 0,this.vertexArray=void 0,this._pipelineNeedsUpdate="newly created",this._attributeInfos={},this._gpuGeometry=null,this._getModuleUniforms=void 0,this.props=void 0,this.props={...Ae.defaultProps,...r},r=this.props,this.id=r.id||(0,W.uid)("model"),this.device=t,Object.assign(this.userData,r.userData);let n={type:t.info.type,shaderLanguage:t.info.shadingLanguages[0],gpu:t.info.gpu,features:t.features},{vs:o,fs:s,getUniforms:a}=this.props.shaderAssembler.assembleShaders(n,this.props);if(this.vs=o,this.fs=s,this._getModuleUniforms=a,this.vertexCount=this.props.vertexCount,this.instanceCount=this.props.instanceCount,this.topology=this.props.topology,this.bufferLayout=this.props.bufferLayout,this.parameters=this.props.parameters,r.geometry&&(this._gpuGeometry=this.setGeometry(r.geometry)),this.pipelineFactory=r.pipelineFactory||Te.getDefaultPipelineFactory(this.device),this.pipeline=this._updatePipeline(),this.vertexArray=t.createVertexArray({renderPipeline:this.pipeline}),this._gpuGeometry&&this._setGeometryAttributes(this._gpuGeometry),r.vertexCount&&this.setVertexCount(r.vertexCount),r.instanceCount&&this.setInstanceCount(r.instanceCount),r.indices)throw new Error("Model.props.indices removed. Use props.indexBuffer");r.indexBuffer&&this.setIndexBuffer(r.indexBuffer),r.attributes&&this.setAttributes(r.attributes),r.constantAttributes&&this.setConstantAttributes(r.constantAttributes),r.bindings&&this.setBindings(r.bindings),r.uniforms&&this.setUniforms(r.uniforms),r.moduleSettings&&this.updateModuleSettings(r.moduleSettings),this.setUniforms(this._getModuleUniforms()),Object.seal(this)}destroy(){this.pipelineFactory.release(this.pipeline)}draw(t){this.pipeline=this._updatePipeline(),this.pipeline.setBindings(this.bindings),this.pipeline.setUniforms(this.uniforms),this.pipeline.draw({renderPass:t,vertexArray:this.vertexArray,vertexCount:this.vertexCount,instanceCount:this.instanceCount})}setGeometry(t){let r=t&&jo(this.device,t);return this.setTopology(r.topology||"triangle-list"),this.bufferLayout=zo(this.bufferLayout,r.bufferLayout),this.vertexArray&&this._setGeometryAttributes(r),r}_setGeometryAttributes(t){this.vertexCount=t.vertexCount,this.setAttributes(t.attributes),this.setIndexBuffer(t.indices)}setTopology(t){t!==this.topology&&(this.topology=t,this._setPipelineNeedsUpdate("topology"))}setBufferLayout(t){this.bufferLayout=this._gpuGeometry?zo(t,this._gpuGeometry.bufferLayout):t,this._setPipelineNeedsUpdate("bufferLayout"),this.pipeline=this._updatePipeline(),this.vertexArray=this.device.createVertexArray({renderPipeline:this.pipeline}),this._gpuGeometry&&this._setGeometryAttributes(this._gpuGeometry)}setParameters(t){(0,W.deepEqual)(t,this.parameters,2)||(this.parameters=t,this._setPipelineNeedsUpdate("parameters"))}setVertexCount(t){this.vertexCount=t}setInstanceCount(t){this.instanceCount=t}setShaderModuleProps(t){let r=this._getModuleUniforms(t),n=Object.keys(r).filter(s=>{let a=r[s];return!(0,W.isNumberArray)(a)&&typeof a!="number"&&typeof a!="boolean"}),o={};for(let s of n)o[s]=r[s],delete r[s];Object.assign(this.uniforms,r),Object.assign(this.bindings,o)}updateModuleSettings(t){this.setShaderModuleProps(t)}setBindings(t){Object.assign(this.bindings,t)}setUniforms(t){this.pipeline.setUniforms(t),Object.assign(this.uniforms,t)}setIndexBuffer(t){this.vertexArray.setIndexBuffer(t)}setAttributes(t){t.indices&&W.log.warn(`Model:${this.id} setAttributes() - indexBuffer should be set using setIndexBuffer()`);for(let[n,o]of Object.entries(t)){var r;let s=this.bufferLayout.find(f=>f.name===n);if(!s)continue;let a=s.attributes?(r=s.attributes)===null||r===void 0?void 0:r.map(f=>f.attribute):[s.name],_=!1;for(let f of a){let u=this._attributeInfos[f];u&&(this.vertexArray.setBuffer(u.location,o),_=!0)}_||W.log.warn(`Model(${this.id}): Ignoring buffer "${o.id}" for unknown attribute "${n}"`)()}}setConstantAttributes(t){for(let[r,n]of Object.entries(t)){let o=this._attributeInfos[r];o?this.vertexArray.setConstant(o.location,n):W.log.warn(`Model "${this.id}: Ignoring constant supplied for unknown attribute "${r}"`)()}}_setPipelineNeedsUpdate(t){this._pipelineNeedsUpdate=this._pipelineNeedsUpdate||t}_updatePipeline(){return this._pipelineNeedsUpdate&&(this.pipeline&&W.log.log(1,`Model ${this.id}: Recreating pipeline because "${this._pipelineNeedsUpdate}".`)(),this._pipelineNeedsUpdate=!1,this.pipeline=this.device.createRenderPipeline({...this.props,bufferLayout:this.bufferLayout,topology:this.topology,parameters:this.parameters,vs:this.device.createShader({id:"{$this.id}-vertex",stage:"vertex",source:this.vs}),fs:this.fs?this.device.createShader({id:"{$this.id}-fragment",stage:"fragment",source:this.fs}):null}),this._attributeInfos=(0,Go.getAttributeInfosFromLayouts)(this.pipeline.shaderLayout,this.bufferLayout)),this.pipeline}};Ae.defaultProps={...W.RenderPipeline.defaultProps,vs:null,fs:null,id:"unnamed",handle:void 0,userData:{},defines:{},modules:[],moduleSettings:{},geometry:null,indexBuffer:null,attributes:{},constantAttributes:{},pipelineFactory:void 0,shaderAssembler:q.getDefaultShaderAssembler()};function zo(e,t){let r=[...e];for(let n of t){let o=r.findIndex(s=>s.name===n.name);o<0?r.push(n):r[o]=n}return r}function $o(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter(function(o){return Object.getOwnPropertyDescriptor(e,o).enumerable})),r.push.apply(r,n)}return r}function Iu(e){for(var t=1;t<arguments.length;t++){var r=arguments[t]!=null?arguments[t]:{};t%2?$o(Object(r),!0).forEach(function(n){Pu(e,n,r[n])}):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(r)):$o(Object(r)).forEach(function(n){Object.defineProperty(e,n,Object.getOwnPropertyDescriptor(r,n))})}return e}function Pu(e,t,r){return t in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r,e}var vu=`#define SHADER_NAME data-filter-vertex-shader
|
|
1113
|
+
`;var Bl={ONE:1};function Dl(){return Bl}var Wo={name:"fp64-arithmetic",vs:Vo,getUniforms:Dl,fp64ify:zt,fp64LowPart:li,fp64ifyMatrix4:ci},lt={name:"fp64",vs:ko,dependencies:[Wo],fp64ify:zt,fp64LowPart:li,fp64ifyMatrix4:ci};var pT=1/Math.PI*180,hT=1/180*Math.PI,wl={EPSILON:1e-12,debug:!1,precision:4,printTypes:!1,printDegrees:!1,printRowMajor:!0,_cartographicRadians:!1};globalThis.mathgl=globalThis.mathgl||{config:{...wl}};var ct=globalThis.mathgl.config;function ui(e){return Array.isArray(e)||ArrayBuffer.isView(e)&&!(e instanceof DataView)}function Be(e,t,r){let i=ct.EPSILON;r&&(ct.EPSILON=r);try{if(e===t)return!0;if(ui(e)&&ui(t)){if(e.length!==t.length)return!1;for(let n=0;n<e.length;++n)if(!Be(e[n],t[n]))return!1;return!0}return e&&e.equals?e.equals(t):t&&t.equals?t.equals(e):typeof e=="number"&&typeof t=="number"?Math.abs(e-t)<=ct.EPSILON*Math.max(1,Math.abs(e),Math.abs(t)):!1}finally{ct.EPSILON=i}}var ut=typeof Float32Array<"u"?Float32Array:Array,_i=Math.random;function Yt(e){return e>=0?Math.round(e):e%.5===0?Math.floor(e):Math.round(e)}var TT=Math.PI/180;var $t={};Ni($t,{add:()=>Xl,angle:()=>uc,bezier:()=>ic,ceil:()=>Ll,clone:()=>Vl,copy:()=>Wl,create:()=>Ho,cross:()=>Gl,dist:()=>Rc,distance:()=>zo,div:()=>Ac,divide:()=>Ko,dot:()=>pi,equals:()=>hc,exactEquals:()=>pc,floor:()=>jl,forEach:()=>mc,fromValues:()=>kl,hermite:()=>rc,inverse:()=>Ql,len:()=>Ec,length:()=>Xo,lerp:()=>ec,max:()=>zl,min:()=>Kl,mul:()=>Tc,multiply:()=>jo,negate:()=>Zl,normalize:()=>Jl,random:()=>nc,rotateX:()=>fc,rotateY:()=>lc,rotateZ:()=>cc,round:()=>Yl,scale:()=>$l,scaleAndAdd:()=>ql,set:()=>Hl,slerp:()=>tc,sqrDist:()=>bc,sqrLen:()=>vc,squaredDistance:()=>Yo,squaredLength:()=>$o,str:()=>dc,sub:()=>gc,subtract:()=>Lo,transformMat3:()=>sc,transformMat4:()=>oc,transformQuat:()=>ac,zero:()=>_c});function Ho(){let e=new ut(3);return ut!=Float32Array&&(e[0]=0,e[1]=0,e[2]=0),e}function Vl(e){let t=new ut(3);return t[0]=e[0],t[1]=e[1],t[2]=e[2],t}function Xo(e){let t=e[0],r=e[1],i=e[2];return Math.sqrt(t*t+r*r+i*i)}function kl(e,t,r){let i=new ut(3);return i[0]=e,i[1]=t,i[2]=r,i}function Wl(e,t){return e[0]=t[0],e[1]=t[1],e[2]=t[2],e}function Hl(e,t,r,i){return e[0]=t,e[1]=r,e[2]=i,e}function Xl(e,t,r){return e[0]=t[0]+r[0],e[1]=t[1]+r[1],e[2]=t[2]+r[2],e}function Lo(e,t,r){return e[0]=t[0]-r[0],e[1]=t[1]-r[1],e[2]=t[2]-r[2],e}function jo(e,t,r){return e[0]=t[0]*r[0],e[1]=t[1]*r[1],e[2]=t[2]*r[2],e}function Ko(e,t,r){return e[0]=t[0]/r[0],e[1]=t[1]/r[1],e[2]=t[2]/r[2],e}function Ll(e,t){return e[0]=Math.ceil(t[0]),e[1]=Math.ceil(t[1]),e[2]=Math.ceil(t[2]),e}function jl(e,t){return e[0]=Math.floor(t[0]),e[1]=Math.floor(t[1]),e[2]=Math.floor(t[2]),e}function Kl(e,t,r){return e[0]=Math.min(t[0],r[0]),e[1]=Math.min(t[1],r[1]),e[2]=Math.min(t[2],r[2]),e}function zl(e,t,r){return e[0]=Math.max(t[0],r[0]),e[1]=Math.max(t[1],r[1]),e[2]=Math.max(t[2],r[2]),e}function Yl(e,t){return e[0]=Yt(t[0]),e[1]=Yt(t[1]),e[2]=Yt(t[2]),e}function $l(e,t,r){return e[0]=t[0]*r,e[1]=t[1]*r,e[2]=t[2]*r,e}function ql(e,t,r,i){return e[0]=t[0]+r[0]*i,e[1]=t[1]+r[1]*i,e[2]=t[2]+r[2]*i,e}function zo(e,t){let r=t[0]-e[0],i=t[1]-e[1],n=t[2]-e[2];return Math.sqrt(r*r+i*i+n*n)}function Yo(e,t){let r=t[0]-e[0],i=t[1]-e[1],n=t[2]-e[2];return r*r+i*i+n*n}function $o(e){let t=e[0],r=e[1],i=e[2];return t*t+r*r+i*i}function Zl(e,t){return e[0]=-t[0],e[1]=-t[1],e[2]=-t[2],e}function Ql(e,t){return e[0]=1/t[0],e[1]=1/t[1],e[2]=1/t[2],e}function Jl(e,t){let r=t[0],i=t[1],n=t[2],o=r*r+i*i+n*n;return o>0&&(o=1/Math.sqrt(o)),e[0]=t[0]*o,e[1]=t[1]*o,e[2]=t[2]*o,e}function pi(e,t){return e[0]*t[0]+e[1]*t[1]+e[2]*t[2]}function Gl(e,t,r){let i=t[0],n=t[1],o=t[2],s=r[0],a=r[1],f=r[2];return e[0]=n*f-o*a,e[1]=o*s-i*f,e[2]=i*a-n*s,e}function ec(e,t,r,i){let n=t[0],o=t[1],s=t[2];return e[0]=n+i*(r[0]-n),e[1]=o+i*(r[1]-o),e[2]=s+i*(r[2]-s),e}function tc(e,t,r,i){let n=Math.acos(Math.min(Math.max(pi(t,r),-1),1)),o=Math.sin(n),s=Math.sin((1-i)*n)/o,a=Math.sin(i*n)/o;return e[0]=s*t[0]+a*r[0],e[1]=s*t[1]+a*r[1],e[2]=s*t[2]+a*r[2],e}function rc(e,t,r,i,n,o){let s=o*o,a=s*(2*o-3)+1,f=s*(o-2)+o,l=s*(o-1),c=s*(3-2*o);return e[0]=t[0]*a+r[0]*f+i[0]*l+n[0]*c,e[1]=t[1]*a+r[1]*f+i[1]*l+n[1]*c,e[2]=t[2]*a+r[2]*f+i[2]*l+n[2]*c,e}function ic(e,t,r,i,n,o){let s=1-o,a=s*s,f=o*o,l=a*s,c=3*o*a,u=3*f*s,_=f*o;return e[0]=t[0]*l+r[0]*c+i[0]*u+n[0]*_,e[1]=t[1]*l+r[1]*c+i[1]*u+n[1]*_,e[2]=t[2]*l+r[2]*c+i[2]*u+n[2]*_,e}function nc(e,t){t=t===void 0?1:t;let r=_i()*2*Math.PI,i=_i()*2-1,n=Math.sqrt(1-i*i)*t;return e[0]=Math.cos(r)*n,e[1]=Math.sin(r)*n,e[2]=i*t,e}function oc(e,t,r){let i=t[0],n=t[1],o=t[2],s=r[3]*i+r[7]*n+r[11]*o+r[15];return s=s||1,e[0]=(r[0]*i+r[4]*n+r[8]*o+r[12])/s,e[1]=(r[1]*i+r[5]*n+r[9]*o+r[13])/s,e[2]=(r[2]*i+r[6]*n+r[10]*o+r[14])/s,e}function sc(e,t,r){let i=t[0],n=t[1],o=t[2];return e[0]=i*r[0]+n*r[3]+o*r[6],e[1]=i*r[1]+n*r[4]+o*r[7],e[2]=i*r[2]+n*r[5]+o*r[8],e}function ac(e,t,r){let i=r[0],n=r[1],o=r[2],s=r[3],a=t[0],f=t[1],l=t[2],c=n*l-o*f,u=o*a-i*l,_=i*f-n*a,d=n*_-o*u,p=o*c-i*_,g=i*u-n*c,h=s*2;return c*=h,u*=h,_*=h,d*=2,p*=2,g*=2,e[0]=a+c+d,e[1]=f+u+p,e[2]=l+_+g,e}function fc(e,t,r,i){let n=[],o=[];return n[0]=t[0]-r[0],n[1]=t[1]-r[1],n[2]=t[2]-r[2],o[0]=n[0],o[1]=n[1]*Math.cos(i)-n[2]*Math.sin(i),o[2]=n[1]*Math.sin(i)+n[2]*Math.cos(i),e[0]=o[0]+r[0],e[1]=o[1]+r[1],e[2]=o[2]+r[2],e}function lc(e,t,r,i){let n=[],o=[];return n[0]=t[0]-r[0],n[1]=t[1]-r[1],n[2]=t[2]-r[2],o[0]=n[2]*Math.sin(i)+n[0]*Math.cos(i),o[1]=n[1],o[2]=n[2]*Math.cos(i)-n[0]*Math.sin(i),e[0]=o[0]+r[0],e[1]=o[1]+r[1],e[2]=o[2]+r[2],e}function cc(e,t,r,i){let n=[],o=[];return n[0]=t[0]-r[0],n[1]=t[1]-r[1],n[2]=t[2]-r[2],o[0]=n[0]*Math.cos(i)-n[1]*Math.sin(i),o[1]=n[0]*Math.sin(i)+n[1]*Math.cos(i),o[2]=n[2],e[0]=o[0]+r[0],e[1]=o[1]+r[1],e[2]=o[2]+r[2],e}function uc(e,t){let r=e[0],i=e[1],n=e[2],o=t[0],s=t[1],a=t[2],f=Math.sqrt((r*r+i*i+n*n)*(o*o+s*s+a*a)),l=f&&pi(e,t)/f;return Math.acos(Math.min(Math.max(l,-1),1))}function _c(e){return e[0]=0,e[1]=0,e[2]=0,e}function dc(e){return"vec3(".concat(e[0],", ").concat(e[1],", ").concat(e[2],")")}function pc(e,t){return e[0]===t[0]&&e[1]===t[1]&&e[2]===t[2]}function hc(e,t){let r=e[0],i=e[1],n=e[2],o=t[0],s=t[1],a=t[2];return Math.abs(r-o)<=1e-6*Math.max(1,Math.abs(r),Math.abs(o))&&Math.abs(i-s)<=1e-6*Math.max(1,Math.abs(i),Math.abs(s))&&Math.abs(n-a)<=1e-6*Math.max(1,Math.abs(n),Math.abs(a))}var gc=Lo,Tc=jo,Ac=Ko,Rc=zo,bc=Yo,Ec=Xo,vc=$o,mc=function(){let e=Ho();return function(t,r,i,n,o,s){let a,f;for(r||(r=3),i||(i=0),n?f=Math.min(n*r+i,t.length):f=t.length,a=i;a<f;a+=r)e[0]=t[a],e[1]=t[a+1],e[2]=t[a+2],o(e,e,s),t[a]=e[0],t[a+1]=e[1],t[a+2]=e[2];return t}}();var hi=T(E(),1);var qt=class{constructor(t){this.modules=void 0,this.moduleUniforms=void 0,this.moduleBindings=void 0,this.moduleUniformsChanged=void 0;let r=at(Object.values(t));hi.log.log(1,"Creating ShaderInputs with modules",r.map(i=>i.name))(),this.modules=t,this.moduleUniforms={},this.moduleBindings={};for(let[i,n]of Object.entries(t)){let o=i;this.moduleUniforms[o]=n.defaultUniforms||{},this.moduleBindings[o]={}}}destroy(){}setProps(t){for(let i of Object.keys(t)){var r;let n=i,o=t[n],s=this.modules[n];if(!s){hi.log.warn(`Module ${i} not found`)();continue}let a=this.moduleUniforms[n],f=((r=s.getUniforms)===null||r===void 0?void 0:r.call(s,o,this.moduleUniforms[n]))||o;this.moduleUniforms[n]={...a,...f}}}getModules(){return Object.values(this.modules)}getUniformValues(){return this.moduleUniforms}getBindings(){let t={};for(let r of Object.values(this.moduleBindings))Object.assign(t,r);return t}getDebugTable(){let t={};for(let[i,n]of Object.entries(this.moduleUniforms))for(let[o,s]of Object.entries(n)){var r;t[`${i}.${o}`]={type:(r=this.modules[i].uniformTypes)===null||r===void 0?void 0:r[o],value:String(s)}}return t}};var le=T(E(),1),Zt=class{constructor(t){this.id=void 0,this.userData={},this.topology=void 0,this.bufferLayout=[],this.vertexCount=void 0,this.indices=void 0,this.attributes=void 0,this.id=t.id||(0,le.uid)("geometry"),this.topology=t.topology,this.indices=t.indices||null,this.attributes=t.attributes,this.vertexCount=t.vertexCount,this.bufferLayout=t.bufferLayout||[],this.indices&&(0,le.assert)(this.indices.usage===le.Buffer.INDEX)}destroy(){var t;this.indices.destroy(),this.attributes.positions.destroy(),this.attributes.normals.destroy(),this.attributes.texCoords.destroy(),(t=this.attributes.colors)===null||t===void 0||t.destroy()}getVertexCount(){return this.vertexCount}getAttributes(){return this.attributes}getIndexes(){return this.indices}_calculateVertexCount(t){return t.byteLength/12}};function qo(e,t){if(t instanceof Zt)return t;let r=Sc(e,t),{attributes:i,bufferLayout:n}=yc(e,t);return new Zt({topology:t.topology||"triangle-list",bufferLayout:n,vertexCount:t.vertexCount,indices:r,attributes:i})}function Sc(e,t){if(!t.indices)return;let r=t.indices.value;return e.createBuffer({usage:le.Buffer.INDEX,data:r})}function yc(e,t){let r=[],i={};for(let[o,s]of Object.entries(t.attributes)){let a=o;switch(o){case"POSITION":a="positions";break;case"NORMAL":a="normals";break;case"TEXCOORD_0":a="texCoords";break;case"COLOR_0":a="colors";break}i[a]=e.createBuffer({data:s.value,id:`${o}-buffer`});let{value:f,size:l,normalized:c}=s;r.push({name:a,format:(0,le.getVertexFormatFromAttribute)(f,l,c)})}let n=t._calculateVertexCount(t.attributes,t.indices);return{attributes:i,bufferLayout:r,vertexCount:n}}var Zo=T(E(),1),he=class{static getDefaultPipelineFactory(t){return t._lumaData.defaultPipelineFactory=t._lumaData.defaultPipelineFactory||new he(t),t._lumaData.defaultPipelineFactory}constructor(t){this.device=void 0,this._hashCounter=0,this._hashes={},this._useCounts={},this._pipelineCache={},this.device=t}createRenderPipeline(t){let r={...he.defaultProps,...t},i=this._hashRenderPipeline({...r});if(!this._pipelineCache[i]){let n=this.device.createRenderPipeline({...r,vs:this.device.createShader({stage:"vertex",source:r.vs}),fs:r.fs?this.device.createShader({stage:"fragment",source:r.fs}):null});n.hash=i,this._pipelineCache[i]=n,this._useCounts[i]=0}return this._useCounts[i]++,this._pipelineCache[i]}release(t){let r=t.hash;this._useCounts[r]--,this._useCounts[r]===0&&(this._pipelineCache[r].destroy(),delete this._pipelineCache[r],delete this._useCounts[r])}_createRenderPipeline(t){if(!t.fs)throw new Error("fs");return this.device.createRenderPipeline({...t,vs:this.device.createShader({stage:"vertex",source:t.vs}),fs:t.fs?this.device.createShader({stage:"fragment",source:t.fs}):null})}_hashRenderPipeline(t){let r=this._getHash(t.vs),i=t.fs?this._getHash(t.fs):0,n="-";switch(this.device.info.type){case"webgpu":let o=this._getHash(JSON.stringify(t.parameters)),s=this._getHash(JSON.stringify(t.bufferLayout));return`${r}/${i}V${n}T${t.topology}P${o}BL${s}}`;default:return`${r}/${i}V${n}`}}_getHash(t){return this._hashes[t]===void 0&&(this._hashes[t]=this._hashCounter++),this._hashes[t]}};he.defaultProps={...Zo.RenderPipeline.defaultProps,vs:void 0,fs:void 0};function Qo(e){let t=arguments.length>1&&arguments[1]!==void 0?arguments[1]:"",r={},i=`Shader Layout for ${t}`;for(let n of e.attributes)if(n){let o=`${n.location} ${n.name}: ${n.type}`;r[`in ${o}`]={[i]:n.stepMode||"vertex"}}for(let n of e.varyings||[]){let o=`${n.location} ${n.name}`;r[`out ${o}`]={[i]:JSON.stringify(n.accessor)}}return r}var De=2,Oc=1e4,ge=class{constructor(t,r){var i,n,o;this.device=void 0,this.id=void 0,this.vs=void 0,this.fs=void 0,this.pipelineFactory=void 0,this.userData={},this.parameters=void 0,this.topology=void 0,this.bufferLayout=void 0,this.vertexCount=void 0,this.instanceCount=0,this.indexBuffer=null,this.bufferAttributes={},this.constantAttributes={},this.bindings={},this.uniforms={},this.vertexArray=void 0,this.transformFeedback=null,this.pipeline=void 0,this.shaderInputs=void 0,this._uniformStore=void 0,this._pipelineNeedsUpdate="newly created",this._attributeInfos={},this._gpuGeometry=null,this._getModuleUniforms=void 0,this.props=void 0,this._lastLogTime=0,this._logOpen=!1,this.props={...ge.defaultProps,...r},r=this.props,this.id=r.id||(0,I.uid)("model"),this.device=t,Object.assign(this.userData,r.userData);let s=Object.fromEntries(((i=this.props.modules)===null||i===void 0?void 0:i.map(_=>[_.name,_]))||[]);this.setShaderInputs(r.shaderInputs||new qt(s));let a=xc(t),f=(((n=this.props.modules)===null||n===void 0?void 0:n.length)>0?this.props.modules:(o=this.shaderInputs)===null||o===void 0?void 0:o.getModules())||[],{vs:l,fs:c,getUniforms:u}=this.props.shaderAssembler.assembleShaders({platformInfo:a,...this.props,modules:f});if(this.vs=l,this.fs=c,this._getModuleUniforms=u,this.vertexCount=this.props.vertexCount,this.instanceCount=this.props.instanceCount,this.topology=this.props.topology,this.bufferLayout=this.props.bufferLayout,this.parameters=this.props.parameters,r.geometry&&(this._gpuGeometry=this.setGeometry(r.geometry)),this.pipelineFactory=r.pipelineFactory||he.getDefaultPipelineFactory(this.device),this.pipeline=this._updatePipeline(),this.vertexArray=t.createVertexArray({renderPipeline:this.pipeline}),this._gpuGeometry&&this._setGeometryAttributes(this._gpuGeometry),r.vertexCount&&this.setVertexCount(r.vertexCount),r.instanceCount&&this.setInstanceCount(r.instanceCount),r.indices)throw new Error("Model.props.indices removed. Use props.indexBuffer");r.indexBuffer&&this.setIndexBuffer(r.indexBuffer),r.attributes&&this.setAttributes(r.attributes),r.constantAttributes&&this.setConstantAttributes(r.constantAttributes),r.bindings&&this.setBindings(r.bindings),r.uniforms&&this.setUniforms(r.uniforms),r.moduleSettings&&(I.log.warn("Model.props.moduleSettings is deprecated. Use Model.shaderInputs.setProps()")(),this.updateModuleSettings(r.moduleSettings)),r.transformFeedback&&(this.transformFeedback=r.transformFeedback),Object.seal(this)}destroy(){this.pipelineFactory.release(this.pipeline),this._uniformStore.destroy()}predraw(){this.updateShaderInputs()}draw(t){this.predraw();try{this._logDrawCallStart(),this.pipeline=this._updatePipeline(),this.pipeline.setBindings(this.bindings),this.pipeline.setUniforms(this.uniforms),this.pipeline.draw({renderPass:t,vertexArray:this.vertexArray,vertexCount:this.vertexCount,instanceCount:this.instanceCount,transformFeedback:this.transformFeedback})}finally{this._logDrawCallEnd()}}setGeometry(t){let r=t&&qo(this.device,t);return this.setTopology(r.topology||"triangle-list"),this.bufferLayout=Jo(this.bufferLayout,r.bufferLayout),this.vertexArray&&this._setGeometryAttributes(r),r}_setGeometryAttributes(t){this.vertexCount=t.vertexCount,this.setAttributes(t.attributes,"ignore-unknown"),this.setIndexBuffer(t.indices)}setTopology(t){t!==this.topology&&(this.topology=t,this._setPipelineNeedsUpdate("topology"))}setBufferLayout(t){this.bufferLayout=this._gpuGeometry?Jo(t,this._gpuGeometry.bufferLayout):t,this._setPipelineNeedsUpdate("bufferLayout"),this.pipeline=this._updatePipeline(),this.vertexArray=this.device.createVertexArray({renderPipeline:this.pipeline}),this._gpuGeometry&&this._setGeometryAttributes(this._gpuGeometry)}setParameters(t){(0,I.deepEqual)(t,this.parameters,2)||(this.parameters=t,this._setPipelineNeedsUpdate("parameters"))}setVertexCount(t){this.vertexCount=t}setInstanceCount(t){this.instanceCount=t}setShaderInputs(t){this.shaderInputs=t,this._uniformStore=new Te.UniformStore(this.shaderInputs.modules);for(let r of Object.keys(this.shaderInputs.modules)){let i=this._uniformStore.getManagedUniformBuffer(this.device,r);this.bindings[`${r}Uniforms`]=i}}updateShaderInputs(){this._uniformStore.setUniforms(this.shaderInputs.getUniformValues())}updateModuleSettings(t){I.log.warn("Model.updateModuleSettings is deprecated. Use Model.shaderInputs.setProps()")();let{bindings:r,uniforms:i}=(0,I.splitUniformsAndBindings)(this._getModuleUniforms(t));Object.assign(this.bindings,r),Object.assign(this.uniforms,i)}setBindings(t){Object.assign(this.bindings,t)}setUniforms(t){this.pipeline.setUniforms(t),Object.assign(this.uniforms,t)}setIndexBuffer(t){this.vertexArray.setIndexBuffer(t)}setTransformFeedback(t){this.transformFeedback=t}setAttributes(t,r){t.indices&&I.log.warn(`Model:${this.id} setAttributes() - indexBuffer should be set using setIndexBuffer()`)();for(let[i,n]of Object.entries(t)){let o=this.bufferLayout.find(f=>Go(f).includes(i));if(!o){I.log.warn(`Model(${this.id}): Missing layout for buffer "${i}".`)();continue}let s=Go(o),a=!1;for(let f of s){let l=this._attributeInfos[f];l&&(this.vertexArray.setBuffer(l.location,n),a=!0)}!a&&r!=="ignore-unknown"&&I.log.warn(`Model(${this.id}): Ignoring buffer "${n.id}" for unknown attribute "${i}"`)()}}setConstantAttributes(t){for(let[r,i]of Object.entries(t)){let n=this._attributeInfos[r];n?this.vertexArray.setConstant(n.location,i):I.log.warn(`Model "${this.id}: Ignoring constant supplied for unknown attribute "${r}"`)()}}_setPipelineNeedsUpdate(t){this._pipelineNeedsUpdate=this._pipelineNeedsUpdate||t}_updatePipeline(){return this._pipelineNeedsUpdate&&(this.pipeline&&I.log.log(1,`Model ${this.id}: Recreating pipeline because "${this._pipelineNeedsUpdate}".`)(),this._pipelineNeedsUpdate=!1,this.pipeline=this.device.createRenderPipeline({...this.props,bufferLayout:this.bufferLayout,topology:this.topology,parameters:this.parameters,vs:this.device.createShader({id:"{$this.id}-vertex",stage:"vertex",source:this.vs}),fs:this.fs?this.device.createShader({id:"{$this.id}-fragment",stage:"fragment",source:this.fs}):null}),this._attributeInfos=(0,es.getAttributeInfosFromLayouts)(this.pipeline.shaderLayout,this.bufferLayout)),this.pipeline}_logDrawCallStart(){let t=I.log.level>3?0:Oc;Date.now()-this._lastLogTime<t||(this._lastLogTime=Date.now(),this._logOpen=!0,I.log.group(De,`>>> DRAWING MODEL ${this.id}`,{collapsed:I.log.level<=2})())}_logDrawCallEnd(){if(this._logOpen){let t=Qo(this.pipeline.shaderLayout);I.log.table(De,t)();let r=this.shaderInputs.getDebugTable();for(let[n,o]of Object.entries(this.uniforms))r[n]={value:o};I.log.table(De,r)();let i=this._getAttributeDebugTable();I.log.table(De,this._attributeInfos)(),I.log.table(De,i)(),I.log.groupEnd(De)(),this._logOpen=!1}}_getAttributeDebugTable(){let t={};for(let[r,i]of Object.entries(this._attributeInfos))t[i.location]={name:r,type:i.shaderType,values:this._getBufferOrConstantValues(this.vertexArray.attributes[i.location],i.bufferDataType)};if(this.vertexArray.indexBuffer){let{indexBuffer:r}=this.vertexArray,i=r.indexType==="uint32"?new Uint32Array(r.debugData):new Uint16Array(r.debugData);t.indices={name:"indices",type:r.indexType,values:i.toString()}}return t}_getBufferOrConstantValues(t,r){let i=(0,Te.getTypedArrayFromDataType)(r);return(t instanceof Te.Buffer?new i(t.debugData):t).toString()}};ge.defaultProps={...Te.RenderPipeline.defaultProps,vs:null,fs:null,id:"unnamed",handle:void 0,userData:{},defines:{},modules:[],moduleSettings:void 0,geometry:null,indexBuffer:null,attributes:{},constantAttributes:{},varyings:[],shaderInputs:void 0,pipelineFactory:void 0,transformFeedback:void 0,shaderAssembler:Y.getDefaultShaderAssembler()};function Jo(e,t){let r=[...e];for(let i of t){let n=r.findIndex(o=>o.name===i.name);n<0?r.push(i):r[n]=i}return r}function xc(e){return{type:e.info.type,shaderLanguage:e.info.shadingLanguage,shaderLanguageVersion:e.info.shadingLanguageVersion,gpu:e.info.gpu,features:e.features}}function Go(e){var t;return e.attributes?(t=e.attributes)===null||t===void 0?void 0:t.map(r=>r.attribute):[e.name]}function ts(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var i=Object.getOwnPropertySymbols(e);t&&(i=i.filter(function(n){return Object.getOwnPropertyDescriptor(e,n).enumerable})),r.push.apply(r,i)}return r}function Pc(e){for(var t=1;t<arguments.length;t++){var r=arguments[t]!=null?arguments[t]:{};t%2?ts(Object(r),!0).forEach(function(i){Ic(e,i,r[i])}):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(r)):ts(Object(r)).forEach(function(i){Object.defineProperty(e,i,Object.getOwnPropertyDescriptor(r,i))})}return e}function Ic(e,t,r){return t in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r,e}var Fc=`#version 300 es
|
|
1114
|
+
#define SHADER_NAME data-filter-vertex-shader
|
|
1117
1115
|
|
|
1118
1116
|
#ifdef FLOAT_TARGET
|
|
1119
|
-
|
|
1120
|
-
|
|
1117
|
+
in float filterIndices;
|
|
1118
|
+
in float filterPrevIndices;
|
|
1121
1119
|
#else
|
|
1122
|
-
|
|
1123
|
-
|
|
1120
|
+
in vec2 filterIndices;
|
|
1121
|
+
in vec2 filterPrevIndices;
|
|
1124
1122
|
#endif
|
|
1125
1123
|
|
|
1126
|
-
|
|
1124
|
+
out vec4 vColor;
|
|
1127
1125
|
const float component = 1.0 / 255.0;
|
|
1128
1126
|
|
|
1129
1127
|
void main() {
|
|
@@ -1143,18 +1141,21 @@ void main() {
|
|
|
1143
1141
|
#endif
|
|
1144
1142
|
gl_PointSize = 1.0;
|
|
1145
1143
|
}
|
|
1146
|
-
`,
|
|
1144
|
+
`,Cc=`#version 300 es
|
|
1145
|
+
#define SHADER_NAME data-filter-fragment-shader
|
|
1147
1146
|
precision highp float;
|
|
1148
1147
|
|
|
1149
|
-
|
|
1148
|
+
in vec4 vColor;
|
|
1149
|
+
|
|
1150
|
+
out vec4 fragColor;
|
|
1150
1151
|
|
|
1151
1152
|
void main() {
|
|
1152
1153
|
if (dataFilter_value < 0.5) {
|
|
1153
1154
|
discard;
|
|
1154
1155
|
}
|
|
1155
|
-
|
|
1156
|
+
fragColor = vColor;
|
|
1156
1157
|
}
|
|
1157
|
-
`;function
|
|
1158
|
+
`;function rs(e){var t=e.gl;return Boolean(t.getExtension("EXT_float_blend")&&(t.getExtension("EXT_color_buffer_float")||t.getExtension("WEBGL_color_buffer_float")))}function is(e,t){return t?e.createFramebuffer({width:1,height:1,colorAttachments:[e.createTexture({format:e.info.type==="webgl2"?"rgba32float":"rgba8unorm",type:5126,mipmaps:!1})]}):e.createFramebuffer({width:256,height:64,colorAttachments:[e.createTexture({format:"rgba8unorm",type:5126,mipmaps:!1})]})}function ns(e,t,r){return t.defines.NON_INSTANCED_MODEL=1,r&&(t.defines.FLOAT_TARGET=1),new ge(e,Pc({id:"data-filter-aggregation-model",vertexCount:1,isInstanced:!1,drawMode:0,vs:Fc,fs:Cc},t))}var os={blend:!0,blendFunc:[1,1,1,1],blendEquation:[32774,32774],depthTest:!1};function Jt(e){return typeof Symbol=="function"&&typeof Symbol.iterator=="symbol"?Jt=function(r){return typeof r}:Jt=function(r){return r&&typeof Symbol=="function"&&r.constructor===Symbol&&r!==Symbol.prototype?"symbol":typeof r},Jt(e)}function ss(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var i=Object.getOwnPropertySymbols(e);t&&(i=i.filter(function(n){return Object.getOwnPropertyDescriptor(e,n).enumerable})),r.push.apply(r,i)}return r}function Qt(e){for(var t=1;t<arguments.length;t++){var r=arguments[t]!=null?arguments[t]:{};t%2?ss(Object(r),!0).forEach(function(i){Nc(e,i,r[i])}):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(r)):ss(Object(r)).forEach(function(i){Object.defineProperty(e,i,Object.getOwnPropertyDescriptor(r,i))})}return e}function Nc(e,t,r){return t in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r,e}function Bc(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}function Dc(e,t){if(typeof t!="function"&&t!==null)throw new TypeError("Super expression must either be null or a function");e.prototype=Object.create(t&&t.prototype,{constructor:{value:e,writable:!0,configurable:!0}}),t&&gi(e,t)}function gi(e,t){return gi=Object.setPrototypeOf||function(i,n){return i.__proto__=n,i},gi(e,t)}function wc(e){var t=kc();return function(){var i=Gt(e),n;if(t){var o=Gt(this).constructor;n=Reflect.construct(i,arguments,o)}else n=i.apply(this,arguments);return Uc(this,n)}}function Uc(e,t){if(t&&(Jt(t)==="object"||typeof t=="function"))return t;if(t!==void 0)throw new TypeError("Derived constructors may only return object or undefined");return Vc(e)}function Vc(e){if(e===void 0)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return e}function kc(){if(typeof Reflect>"u"||!Reflect.construct||Reflect.construct.sham)return!1;if(typeof Proxy=="function")return!0;try{return Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],function(){})),!0}catch{return!1}}function Gt(e){return Gt=Object.setPrototypeOf?Object.getPrototypeOf:function(r){return r.__proto__||Object.getPrototypeOf(r)},Gt(e)}var Wc={getFilterValue:{type:"accessor",value:0},onFilteredItemsChange:{type:"function",value:null,optional:!0},filterEnabled:!0,filterRange:[-1,1],filterSoftRange:null,filterTransformSize:!0,filterTransformColor:!0},as={1:"float",2:"vec2",3:"vec3",4:"vec4"},er=function(e){Dc(r,e);var t=wc(r);function r(){var n=arguments.length>0&&arguments[0]!==void 0?arguments[0]:{},o=n.filterSize,s=o===void 0?1:o,a=n.fp64,f=a===void 0?!1:a,l=n.countItems,c=l===void 0?!1:l;if(Bc(this,r),!as[s])throw new Error("filterSize out of range");return t.call(this,{filterSize:s,fp64:f,countItems:c})}var i=r.prototype;return i.getShaders=function(o){var s=o.opts,a=s.filterSize,f=s.fp64;return{modules:[f?_o:uo],defines:{DATAFILTER_TYPE:as[a],DATAFILTER_DOUBLE:Boolean(f)}}},i.initializeState=function(o,s){var a=this.getAttributeManager();a&&a.add({filterValues:{size:s.opts.filterSize,type:s.opts.fp64?5130:5126,accessor:"getFilterValue",shaderAttributes:{filterValues:{divisor:0},instanceFilterValues:{divisor:1}}}});var f=this.context.device;if(a&&s.opts.countItems){var l=rs(f);a.add({filterIndices:{size:l?1:2,vertexOffset:1,type:5121,normalized:!0,accessor:function(d,p){var g=p.index,h=d&&d.__source?d.__source.index:g;return l?(h+1)%255:[(h+1)%255,Math.floor(h/255)%255]},shaderAttributes:{filterPrevIndices:{vertexOffset:0},filterIndices:{vertexOffset:1}}}});var c=is(f,l),u=ns(f,s.getShaders.call(this,s),l);this.setState({filterFBO:c,filterModel:u})}},i.updateState=function(o){var s=o.props,a=o.oldProps;if(this.state.filterModel){var f=this.getAttributeManager(),l=f.attributes.filterValues.needsUpdate()||s.filterEnabled!==a.filterEnabled||s.filterRange!==a.filterRange||s.filterSoftRange!==a.filterSoftRange;l&&this.setState({filterNeedsUpdate:l})}},i.draw=function(o,s){var a=this,f=this.state.filterFBO,l=this.state.filterModel,c=this.state.filterNeedsUpdate,u=this.props.onFilteredItemsChange;if(c&&u&&l){var _=this.getAttributeManager(),d=_.attributes,p=d.filterValues,g=d.filterIndices;l.setVertexCount(this.getNumInstances()),ii(this.context.device,{framebuffer:f,color:[0,0,0,0]}),l.updateModuleSettings(o.moduleParameters),l.setAttributes(Qt(Qt({},p.getValue()),g?.getValue())),P(l.device,Qt(Qt({framebuffer:f},os),{},{viewport:[0,0,f.width,f.height]}),function(){l.draw(a.context.renderPass)});for(var h=ni(f),R=0,A=0;A<h.length;A++)R+=h[A];u({id:this.id,count:R}),this.state.filterNeedsUpdate=!1}},i.finalizeState=function(){var o=this.state.filterFBO,s=this.state.filterModel;o?.destroy(),s?.destroy()},r}(fs.LayerExtension);er.defaultProps=Wc;er.extensionName="DataFilterExtension";var _t=T(S());var tr=T(S());var ls=`
|
|
1158
1159
|
const vec2 WORLD_SCALE_FP64 = vec2(81.4873275756836, 0.0000032873668232014097);
|
|
1159
1160
|
|
|
1160
1161
|
uniform vec2 project_uViewProjectionMatrixFP64[16];
|
|
@@ -1228,11 +1229,11 @@ vec4 project_position_to_clipspace(
|
|
|
1228
1229
|
position, position64xyLow, offset, commonPosition
|
|
1229
1230
|
);
|
|
1230
1231
|
}
|
|
1231
|
-
`;var
|
|
1232
|
-
|
|
1233
|
-
|
|
1234
|
-
|
|
1235
|
-
|
|
1232
|
+
`;var Hc=lt.fp64ify,Xc=lt.fp64ifyMatrix4,rr={name:"project64",dependencies:[tr.project,lt],vs:ls,getUniforms:jc},Lc=(0,tr._memoize)(Kc);function jc(e){if(e&&"viewport"in e){var t=e.viewport,r=t.viewProjectionMatrix,i=t.scale;return Lc({viewProjectionMatrix:r,scale:i})}return{}}function Kc(e){var t=e.viewProjectionMatrix,r=e.scale,i=Xc(t),n=Hc(r);return{project_uViewProjectionMatrixFP64:i,project64_uViewProjectionMatrix:i,project64_uScale:n}}function ir(e){return typeof Symbol=="function"&&typeof Symbol.iterator=="symbol"?ir=function(r){return typeof r}:ir=function(r){return r&&typeof Symbol=="function"&&r.constructor===Symbol&&r!==Symbol.prototype?"symbol":typeof r},ir(e)}function zc(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}function Yc(e,t){if(typeof t!="function"&&t!==null)throw new TypeError("Super expression must either be null or a function");e.prototype=Object.create(t&&t.prototype,{constructor:{value:e,writable:!0,configurable:!0}}),t&&Ti(e,t)}function Ti(e,t){return Ti=Object.setPrototypeOf||function(i,n){return i.__proto__=n,i},Ti(e,t)}function $c(e){var t=Qc();return function(){var i=nr(e),n;if(t){var o=nr(this).constructor;n=Reflect.construct(i,arguments,o)}else n=i.apply(this,arguments);return qc(this,n)}}function qc(e,t){if(t&&(ir(t)==="object"||typeof t=="function"))return t;if(t!==void 0)throw new TypeError("Derived constructors may only return object or undefined");return Zc(e)}function Zc(e){if(e===void 0)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return e}function Qc(){if(typeof Reflect>"u"||!Reflect.construct||Reflect.construct.sham)return!1;if(typeof Proxy=="function")return!0;try{return Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],function(){})),!0}catch{return!1}}function nr(e){return nr=Object.setPrototypeOf?Object.getPrototypeOf:function(r){return r.__proto__||Object.getPrototypeOf(r)},nr(e)}var Ai=function(e){Yc(r,e);var t=$c(r);function r(){return zc(this,r),t.apply(this,arguments)}var i=r.prototype;return i.getShaders=function(){var o=this.props.coordinateSystem;if(o!==_t.COORDINATE_SYSTEM.LNGLAT&&o!==_t.COORDINATE_SYSTEM.DEFAULT)throw new Error("fp64: coordinateSystem must be LNGLAT");return{modules:[rr]}},r}(_t.LayerExtension);Ai.extensionName="Fp64Extension";var dt=T(S());var cs={inject:{"vs:#decl":`
|
|
1233
|
+
in vec2 instanceDashArrays;
|
|
1234
|
+
in float instanceDashOffsets;
|
|
1235
|
+
out vec2 vDashArray;
|
|
1236
|
+
out float vDashOffset;
|
|
1236
1237
|
`,"vs:#main-end":`
|
|
1237
1238
|
vDashArray = instanceDashArrays;
|
|
1238
1239
|
vDashOffset = instanceDashOffsets / width.x;
|
|
@@ -1240,12 +1241,8 @@ vDashOffset = instanceDashOffsets / width.x;
|
|
|
1240
1241
|
uniform float dashAlignMode;
|
|
1241
1242
|
uniform float capType;
|
|
1242
1243
|
uniform bool dashGapPickable;
|
|
1243
|
-
|
|
1244
|
-
|
|
1245
|
-
|
|
1246
|
-
float round(float x) {
|
|
1247
|
-
return floor(x + 0.5);
|
|
1248
|
-
}
|
|
1244
|
+
in vec2 vDashArray;
|
|
1245
|
+
in float vDashOffset;
|
|
1249
1246
|
`,"fs:#main-start":`
|
|
1250
1247
|
float solidLength = vDashArray.x;
|
|
1251
1248
|
float gapLength = vDashArray.y;
|
|
@@ -1265,7 +1262,7 @@ float round(float x) {
|
|
|
1265
1262
|
|
|
1266
1263
|
if (gapLength > 0.0 && unitOffset > solidLength) {
|
|
1267
1264
|
if (capType <= 0.5) {
|
|
1268
|
-
if (!(dashGapPickable &&
|
|
1265
|
+
if (!(dashGapPickable && bool(picking.isActive))) {
|
|
1269
1266
|
discard;
|
|
1270
1267
|
}
|
|
1271
1268
|
} else {
|
|
@@ -1274,15 +1271,15 @@ float round(float x) {
|
|
|
1274
1271
|
vPathPosition.x
|
|
1275
1272
|
));
|
|
1276
1273
|
if (distToEnd > 1.0) {
|
|
1277
|
-
if (!(dashGapPickable &&
|
|
1274
|
+
if (!(dashGapPickable && bool(picking.isActive))) {
|
|
1278
1275
|
discard;
|
|
1279
1276
|
}
|
|
1280
1277
|
}
|
|
1281
1278
|
}
|
|
1282
1279
|
}
|
|
1283
1280
|
}
|
|
1284
|
-
`}},
|
|
1285
|
-
|
|
1281
|
+
`}},us={inject:{"vs:#decl":`
|
|
1282
|
+
in float instanceOffsets;
|
|
1286
1283
|
`,"vs:DECKGL_FILTER_SIZE":`
|
|
1287
1284
|
float offsetWidth = abs(instanceOffsets * 2.0) + 1.0;
|
|
1288
1285
|
size *= offsetWidth;
|
|
@@ -1298,7 +1295,7 @@ attribute float instanceOffsets;
|
|
|
1298
1295
|
if (isInside == 0.0) {
|
|
1299
1296
|
discard;
|
|
1300
1297
|
}
|
|
1301
|
-
`}};function
|
|
1298
|
+
`}};function or(e){return typeof Symbol=="function"&&typeof Symbol.iterator=="symbol"?or=function(r){return typeof r}:or=function(r){return r&&typeof Symbol=="function"&&r.constructor===Symbol&&r!==Symbol.prototype?"symbol":typeof r},or(e)}function Jc(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}function Gc(e,t){if(typeof t!="function"&&t!==null)throw new TypeError("Super expression must either be null or a function");e.prototype=Object.create(t&&t.prototype,{constructor:{value:e,writable:!0,configurable:!0}}),t&&Ri(e,t)}function Ri(e,t){return Ri=Object.setPrototypeOf||function(i,n){return i.__proto__=n,i},Ri(e,t)}function eu(e){var t=iu();return function(){var i=sr(e),n;if(t){var o=sr(this).constructor;n=Reflect.construct(i,arguments,o)}else n=i.apply(this,arguments);return tu(this,n)}}function tu(e,t){if(t&&(or(t)==="object"||typeof t=="function"))return t;if(t!==void 0)throw new TypeError("Derived constructors may only return object or undefined");return ru(e)}function ru(e){if(e===void 0)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return e}function iu(){if(typeof Reflect>"u"||!Reflect.construct||Reflect.construct.sham)return!1;if(typeof Proxy=="function")return!0;try{return Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],function(){})),!0}catch{return!1}}function sr(e){return sr=Object.setPrototypeOf?Object.getPrototypeOf:function(r){return r.__proto__||Object.getPrototypeOf(r)},sr(e)}var nu={getDashArray:{type:"accessor",value:[0,0]},getOffset:{type:"accessor",value:0},dashJustified:!1,dashGapPickable:!1},ar=function(e){Gc(r,e);var t=eu(r);function r(){var n=arguments.length>0&&arguments[0]!==void 0?arguments[0]:{},o=n.dash,s=o===void 0?!1:o,a=n.offset,f=a===void 0?!1:a,l=n.highPrecisionDash,c=l===void 0?!1:l;return Jc(this,r),t.call(this,{dash:s||c,offset:f,highPrecisionDash:c})}var i=r.prototype;return i.isEnabled=function(o){return"pathTesselator"in o.state},i.getShaders=function(o){if(!o.isEnabled(this))return null;var s={};return o.opts.dash&&(s=(0,dt._mergeShaders)(s,cs)),o.opts.offset&&(s=(0,dt._mergeShaders)(s,us)),s},i.initializeState=function(o,s){var a=this.getAttributeManager();!a||!s.isEnabled(this)||(s.opts.dash&&a.addInstanced({instanceDashArrays:{size:2,accessor:"getDashArray"},instanceDashOffsets:s.opts.highPrecisionDash?{size:1,accessor:"getPath",transform:s.getDashOffsets.bind(this)}:{size:1,update:function(l){l.constant=!0,l.value=[0]}}}),s.opts.offset&&a.addInstanced({instanceOffsets:{size:1,accessor:"getOffset"}}))},i.updateState=function(o,s){var a;if(s.isEnabled(this)){var f={};s.opts.dash&&(f.dashAlignMode=this.props.dashJustified?1:0,f.dashGapPickable=Boolean(this.props.dashGapPickable)),(a=this.state.model)===null||a===void 0||a.setUniforms(f)}},i.getDashOffsets=function(o){for(var s=[0],a=this.props.positionFormat==="XY"?2:3,f=Array.isArray(o[0]),l=f?o.length:o.length/a,c,u,_=0;_<l-1;_++)c=f?o[_]:o.slice(_*a,_*a+a),c=this.projectPosition(c),_>0&&(s[_]=s[_-1]+$t.dist(u,c)),u=c;return s},r}(dt.LayerExtension);ar.defaultProps=nu;ar.extensionName="PathStyleExtension";var ds=T(S());var pt=T(S()),ou=`
|
|
1302
1299
|
#ifdef NON_INSTANCED_MODEL
|
|
1303
1300
|
#define FILL_PATTERN_FRAME_ATTRIB fillPatternFrames
|
|
1304
1301
|
#define FILL_PATTERN_SCALE_ATTRIB fillPatternScales
|
|
@@ -1309,29 +1306,29 @@ attribute float instanceOffsets;
|
|
|
1309
1306
|
#define FILL_PATTERN_OFFSET_ATTRIB instanceFillPatternOffsets
|
|
1310
1307
|
#endif
|
|
1311
1308
|
|
|
1312
|
-
|
|
1313
|
-
|
|
1314
|
-
|
|
1309
|
+
in vec4 FILL_PATTERN_FRAME_ATTRIB;
|
|
1310
|
+
in float FILL_PATTERN_SCALE_ATTRIB;
|
|
1311
|
+
in vec2 FILL_PATTERN_OFFSET_ATTRIB;
|
|
1315
1312
|
|
|
1316
1313
|
uniform bool fill_patternEnabled;
|
|
1317
1314
|
uniform vec2 fill_patternTextureSize;
|
|
1318
1315
|
|
|
1319
|
-
|
|
1320
|
-
|
|
1321
|
-
|
|
1322
|
-
`,
|
|
1316
|
+
out vec2 fill_uv;
|
|
1317
|
+
out vec4 fill_patternBounds;
|
|
1318
|
+
out vec4 fill_patternPlacement;
|
|
1319
|
+
`,su=`
|
|
1323
1320
|
uniform bool fill_patternEnabled;
|
|
1324
1321
|
uniform bool fill_patternMask;
|
|
1325
1322
|
uniform sampler2D fill_patternTexture;
|
|
1326
1323
|
uniform vec2 fill_uvCoordinateOrigin;
|
|
1327
1324
|
uniform vec2 fill_uvCoordinateOrigin64Low;
|
|
1328
1325
|
|
|
1329
|
-
|
|
1330
|
-
|
|
1331
|
-
|
|
1326
|
+
in vec4 fill_patternBounds;
|
|
1327
|
+
in vec4 fill_patternPlacement;
|
|
1328
|
+
in vec2 fill_uv;
|
|
1332
1329
|
|
|
1333
1330
|
const float FILL_UV_SCALE = 512.0 / 40000000.0;
|
|
1334
|
-
`,
|
|
1331
|
+
`,au={"vs:DECKGL_FILTER_GL_POSITION":`
|
|
1335
1332
|
fill_uv = geometry.position.xy;
|
|
1336
1333
|
`,"vs:DECKGL_FILTER_COLOR":`
|
|
1337
1334
|
if (fill_patternEnabled) {
|
|
@@ -1347,39 +1344,39 @@ const float FILL_UV_SCALE = 512.0 / 40000000.0;
|
|
|
1347
1344
|
|
|
1348
1345
|
vec2 texCoords = fill_patternBounds.xy + fill_patternBounds.zw * patternUV;
|
|
1349
1346
|
|
|
1350
|
-
vec4 patternColor =
|
|
1347
|
+
vec4 patternColor = texture(fill_patternTexture, texCoords);
|
|
1351
1348
|
color.a *= patternColor.a;
|
|
1352
1349
|
if (!fill_patternMask) {
|
|
1353
1350
|
color.rgb = patternColor.rgb;
|
|
1354
1351
|
}
|
|
1355
1352
|
}
|
|
1356
|
-
`};function
|
|
1353
|
+
`};function fu(e,t){if(!e)return{};if("fillPatternTexture"in e){var r=e.fillPatternTexture;return{fill_patternTexture:r,fill_patternTextureSize:[r.width,r.height]}}if("viewport"in e){var i=e.fillPatternMask,n=i===void 0?!0:i,o=e.fillPatternEnabled,s=o===void 0?!0:o,a=t,f=a.project_uCommonOrigin,l=[(0,pt.fp64LowPart)(f[0]),(0,pt.fp64LowPart)(f[1])];return{fill_uvCoordinateOrigin:f.slice(0,2),fill_uvCoordinateOrigin64Low:l,fill_patternMask:n,fill_patternEnabled:s}}return{}}var _s={name:"fill-pattern",vs:ou,fs:su,inject:au,dependencies:[pt.project],getUniforms:fu};function fr(e){return typeof Symbol=="function"&&typeof Symbol.iterator=="symbol"?fr=function(r){return typeof r}:fr=function(r){return r&&typeof Symbol=="function"&&r.constructor===Symbol&&r!==Symbol.prototype?"symbol":typeof r},fr(e)}function lu(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}function cu(e,t){if(typeof t!="function"&&t!==null)throw new TypeError("Super expression must either be null or a function");e.prototype=Object.create(t&&t.prototype,{constructor:{value:e,writable:!0,configurable:!0}}),t&&bi(e,t)}function bi(e,t){return bi=Object.setPrototypeOf||function(i,n){return i.__proto__=n,i},bi(e,t)}function uu(e){var t=pu();return function(){var i=lr(e),n;if(t){var o=lr(this).constructor;n=Reflect.construct(i,arguments,o)}else n=i.apply(this,arguments);return _u(this,n)}}function _u(e,t){if(t&&(fr(t)==="object"||typeof t=="function"))return t;if(t!==void 0)throw new TypeError("Derived constructors may only return object or undefined");return du(e)}function du(e){if(e===void 0)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return e}function pu(){if(typeof Reflect>"u"||!Reflect.construct||Reflect.construct.sham)return!1;if(typeof Proxy=="function")return!0;try{return Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],function(){})),!0}catch{return!1}}function lr(e){return lr=Object.setPrototypeOf?Object.getPrototypeOf:function(r){return r.__proto__||Object.getPrototypeOf(r)},lr(e)}var hu={fillPatternEnabled:!0,fillPatternAtlas:{type:"image",value:null,async:!0,parameters:{minFilter:"linear"}},fillPatternMapping:{type:"object",value:{},async:!0},fillPatternMask:!0,getFillPattern:{type:"accessor",value:function(t){return t.pattern}},getFillPatternScale:{type:"accessor",value:1},getFillPatternOffset:{type:"accessor",value:[0,0]}},cr=function(e){cu(r,e);var t=uu(r);function r(){var n=arguments.length>0&&arguments[0]!==void 0?arguments[0]:{},o=n.pattern,s=o===void 0?!1:o;return lu(this,r),t.call(this,{pattern:s})}var i=r.prototype;return i.isEnabled=function(o){return o.getAttributeManager()!==null&&!("pathTesselator"in o.state)},i.getShaders=function(o){return o.isEnabled(this)?{modules:[o.opts.pattern&&_s].filter(Boolean)}:null},i.initializeState=function(o,s){if(s.isEnabled(this)){var a=this.getAttributeManager();s.opts.pattern&&a.add({fillPatternFrames:{size:4,accessor:"getFillPattern",transform:s.getPatternFrame.bind(this),shaderAttributes:{fillPatternFrames:{divisor:0},instanceFillPatternFrames:{divisor:1}}},fillPatternScales:{size:1,accessor:"getFillPatternScale",defaultValue:1,shaderAttributes:{fillPatternScales:{divisor:0},instanceFillPatternScales:{divisor:1}}},fillPatternOffsets:{size:2,accessor:"getFillPatternOffset",shaderAttributes:{fillPatternOffsets:{divisor:0},instanceFillPatternOffsets:{divisor:1}}}}),this.setState({emptyTexture:this.context.device.createTexture({data:new Uint8Array(4),width:1,height:1})})}},i.updateState=function(o,s){var a=o.props,f=o.oldProps;s.isEnabled(this)&&a.fillPatternMapping&&a.fillPatternMapping!==f.fillPatternMapping&&this.getAttributeManager().invalidate("getFillPattern")},i.draw=function(o,s){if(s.isEnabled(this)){var a=this.props.fillPatternAtlas;this.setModuleParameters({fillPatternTexture:a||this.state.emptyTexture})}},i.finalizeState=function(){var o=this.state.emptyTexture;o?.delete()},i.getPatternFrame=function(o){var s=this.getCurrentLayer().props.fillPatternMapping,a=s&&s[o];return a?[a.x,a.y,a.width,a.height]:[0,0,0,0]},r}(ds.LayerExtension);cr.defaultProps=hu;cr.extensionName="FillStyleExtension";var ps=T(S());function ur(e){return typeof Symbol=="function"&&typeof Symbol.iterator=="symbol"?ur=function(r){return typeof r}:ur=function(r){return r&&typeof Symbol=="function"&&r.constructor===Symbol&&r!==Symbol.prototype?"symbol":typeof r},ur(e)}function gu(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}function Tu(e,t){if(typeof t!="function"&&t!==null)throw new TypeError("Super expression must either be null or a function");e.prototype=Object.create(t&&t.prototype,{constructor:{value:e,writable:!0,configurable:!0}}),t&&Ei(e,t)}function Ei(e,t){return Ei=Object.setPrototypeOf||function(i,n){return i.__proto__=n,i},Ei(e,t)}function Au(e){var t=Eu();return function(){var i=_r(e),n;if(t){var o=_r(this).constructor;n=Reflect.construct(i,arguments,o)}else n=i.apply(this,arguments);return Ru(this,n)}}function Ru(e,t){if(t&&(ur(t)==="object"||typeof t=="function"))return t;if(t!==void 0)throw new TypeError("Derived constructors may only return object or undefined");return bu(e)}function bu(e){if(e===void 0)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return e}function Eu(){if(typeof Reflect>"u"||!Reflect.construct||Reflect.construct.sham)return!1;if(typeof Proxy=="function")return!0;try{return Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],function(){})),!0}catch{return!1}}function _r(e){return _r=Object.setPrototypeOf?Object.getPrototypeOf:function(r){return r.__proto__||Object.getPrototypeOf(r)},_r(e)}var vu={clipBounds:[0,0,1,1],clipByInstance:void 0},hs=`
|
|
1357
1354
|
uniform vec4 clip_bounds;
|
|
1358
1355
|
|
|
1359
1356
|
bool clip_isInBounds(vec2 position) {
|
|
1360
1357
|
return position.x >= clip_bounds[0] && position.y >= clip_bounds[1] && position.x < clip_bounds[2] && position.y < clip_bounds[3];
|
|
1361
1358
|
}
|
|
1362
|
-
`,
|
|
1363
|
-
|
|
1359
|
+
`,mu={name:"clip-vs",vs:hs},Su={"vs:#decl":`
|
|
1360
|
+
out float clip_isVisible;
|
|
1364
1361
|
`,"vs:DECKGL_FILTER_GL_POSITION":`
|
|
1365
1362
|
clip_isVisible = float(clip_isInBounds(geometry.worldPosition.xy));
|
|
1366
1363
|
`,"fs:#decl":`
|
|
1367
|
-
|
|
1364
|
+
in float clip_isVisible;
|
|
1368
1365
|
`,"fs:DECKGL_FILTER_COLOR":`
|
|
1369
1366
|
if (clip_isVisible < 0.5) discard;
|
|
1370
|
-
`},
|
|
1371
|
-
|
|
1367
|
+
`},yu={name:"clip-fs",fs:hs},Ou={"vs:#decl":`
|
|
1368
|
+
out vec2 clip_commonPosition;
|
|
1372
1369
|
`,"vs:DECKGL_FILTER_GL_POSITION":`
|
|
1373
1370
|
clip_commonPosition = geometry.position.xy;
|
|
1374
1371
|
`,"fs:#decl":`
|
|
1375
|
-
|
|
1372
|
+
in vec2 clip_commonPosition;
|
|
1376
1373
|
`,"fs:DECKGL_FILTER_COLOR":`
|
|
1377
1374
|
if (!clip_isInBounds(clip_commonPosition)) discard;
|
|
1378
|
-
`},
|
|
1375
|
+
`},dr=function(e){Tu(r,e);var t=Au(r);function r(){return gu(this,r),t.apply(this,arguments)}var i=r.prototype;return i.getShaders=function(){var o="instancePositions"in this.getAttributeManager().attributes;return this.props.clipByInstance!==void 0&&(o=Boolean(this.props.clipByInstance)),this.state.clipByInstance=o,o?{modules:[mu],inject:Su}:{modules:[yu],inject:Ou}},i.draw=function(o){var s=o.uniforms,a=this.props.clipBounds;if(this.state.clipByInstance)s.clip_bounds=a;else{var f=this.projectPosition([a[0],a[1],0]),l=this.projectPosition([a[2],a[3],0]);s.clip_bounds=[Math.min(f[0],l[0]),Math.min(f[1],l[1]),Math.max(f[0],l[0]),Math.max(f[1],l[1])]}},r}(ps.LayerExtension);dr.defaultProps=vu;dr.extensionName="ClipExtension";var Ns=T(S());var gs=T(S()),xu=`
|
|
1379
1376
|
#ifdef NON_INSTANCED_MODEL
|
|
1380
|
-
|
|
1377
|
+
in float collisionPriorities;
|
|
1381
1378
|
#else
|
|
1382
|
-
|
|
1379
|
+
in float instanceCollisionPriorities;
|
|
1383
1380
|
#endif
|
|
1384
1381
|
|
|
1385
1382
|
uniform sampler2D collision_texture;
|
|
@@ -1392,7 +1389,7 @@ vec2 collision_getCoords(vec4 position) {
|
|
|
1392
1389
|
}
|
|
1393
1390
|
|
|
1394
1391
|
float collision_match(vec2 tex, vec3 pickingColor) {
|
|
1395
|
-
vec4 collision_pickingColor =
|
|
1392
|
+
vec4 collision_pickingColor = texture(collision_texture, tex);
|
|
1396
1393
|
float delta = dot(abs(collision_pickingColor.rgb - pickingColor), vec3(1.0));
|
|
1397
1394
|
float e = 0.001;
|
|
1398
1395
|
return step(delta, e);
|
|
@@ -1424,7 +1421,7 @@ float collision_isVisible(vec2 texCoords, vec3 pickingColor) {
|
|
|
1424
1421
|
float W = 2.0 * floatN + 1.0;
|
|
1425
1422
|
return pow(accumulator / (W * W), 2.2);
|
|
1426
1423
|
}
|
|
1427
|
-
`,
|
|
1424
|
+
`,Pu={"vs:#decl":`
|
|
1428
1425
|
float collision_fade = 1.0;
|
|
1429
1426
|
`,"vs:DECKGL_FILTER_GL_POSITION":`
|
|
1430
1427
|
if (collision_sort) {
|
|
@@ -1447,18 +1444,18 @@ float collision_isVisible(vec2 texCoords, vec3 pickingColor) {
|
|
|
1447
1444
|
}
|
|
1448
1445
|
`,"vs:DECKGL_FILTER_COLOR":`
|
|
1449
1446
|
color.a *= collision_fade;
|
|
1450
|
-
`},
|
|
1451
|
-
In order to be iterable, non-array objects must have a [Symbol.iterator]() method.`)}function
|
|
1452
|
-
In order to be iterable, non-array objects must have a [Symbol.iterator]() method.`)}var
|
|
1453
|
-
In order to be iterable, non-array objects must have a [Symbol.iterator]() method.`)}var
|
|
1454
|
-
In order to be iterable, non-array objects must have a [Symbol.iterator]() method.`)}var
|
|
1455
|
-
In order to be iterable, non-array objects must have a [Symbol.iterator]() method.`)}function
|
|
1447
|
+
`},Iu=function(t,r){if(!t||!("dummyCollisionMap"in t))return{};var i=t.collisionFBO,n=t.drawToCollisionMap,o=t.dummyCollisionMap;return{collision_sort:Boolean(n),collision_texture:!n&&i?i.colorAttachments[0]:o}},Ts={name:"collision",dependencies:[gs.project],vs:xu,inject:Pu,getUniforms:Iu};var Cs=T(S());var bs=T(S());function pr(e){return typeof Symbol=="function"&&typeof Symbol.iterator=="symbol"?pr=function(r){return typeof r}:pr=function(r){return r&&typeof Symbol=="function"&&r.constructor===Symbol&&r!==Symbol.prototype?"symbol":typeof r},pr(e)}function As(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var i=Object.getOwnPropertySymbols(e);t&&(i=i.filter(function(n){return Object.getOwnPropertyDescriptor(e,n).enumerable})),r.push.apply(r,i)}return r}function Rs(e){for(var t=1;t<arguments.length;t++){var r=arguments[t]!=null?arguments[t]:{};t%2?As(Object(r),!0).forEach(function(i){Fu(e,i,r[i])}):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(r)):As(Object(r)).forEach(function(i){Object.defineProperty(e,i,Object.getOwnPropertyDescriptor(r,i))})}return e}function Fu(e,t,r){return t in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r,e}function Cu(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}function Mu(e,t){if(typeof t!="function"&&t!==null)throw new TypeError("Super expression must either be null or a function");e.prototype=Object.create(t&&t.prototype,{constructor:{value:e,writable:!0,configurable:!0}}),t&&vi(e,t)}function vi(e,t){return vi=Object.setPrototypeOf||function(i,n){return i.__proto__=n,i},vi(e,t)}function Nu(e){var t=wu();return function(){var i=hr(e),n;if(t){var o=hr(this).constructor;n=Reflect.construct(i,arguments,o)}else n=i.apply(this,arguments);return Bu(this,n)}}function Bu(e,t){if(t&&(pr(t)==="object"||typeof t=="function"))return t;if(t!==void 0)throw new TypeError("Derived constructors may only return object or undefined");return Du(e)}function Du(e){if(e===void 0)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return e}function wu(){if(typeof Reflect>"u"||!Reflect.construct||Reflect.construct.sham)return!1;if(typeof Proxy=="function")return!0;try{return Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],function(){})),!0}catch{return!1}}function hr(e){return hr=Object.setPrototypeOf?Object.getPrototypeOf:function(r){return r.__proto__||Object.getPrototypeOf(r)},hr(e)}var Es=function(e){Mu(r,e);var t=Nu(r);function r(){return Cu(this,r),t.apply(this,arguments)}var i=r.prototype;return i.renderCollisionMap=function(o,s){var a=this,f=1,l=[0,0,0,0];return P(this.device,{scissorTest:!0,scissor:[f,f,o.width-2*f,o.height-2*f],blend:!1,depthTest:!0,depthRange:[0,1]},function(){return a.render(Rs(Rs({},s),{},{clearColor:l,target:o,pass:"collision"}))})},i.getModuleParameters=function(){return{drawToCollisionMap:!0,picking:{isActive:1,isAttribute:!1},lightSources:{}}},r}(bs._LayersPass);var Si=T(S());var Ss=T(S());function gr(e){return typeof Symbol=="function"&&typeof Symbol.iterator=="symbol"?gr=function(r){return typeof r}:gr=function(r){return r&&typeof Symbol=="function"&&r.constructor===Symbol&&r!==Symbol.prototype?"symbol":typeof r},gr(e)}function vs(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var i=Object.getOwnPropertySymbols(e);t&&(i=i.filter(function(n){return Object.getOwnPropertyDescriptor(e,n).enumerable})),r.push.apply(r,i)}return r}function ms(e){for(var t=1;t<arguments.length;t++){var r=arguments[t]!=null?arguments[t]:{};t%2?vs(Object(r),!0).forEach(function(i){Uu(e,i,r[i])}):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(r)):vs(Object(r)).forEach(function(i){Object.defineProperty(e,i,Object.getOwnPropertyDescriptor(r,i))})}return e}function Uu(e,t,r){return t in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r,e}function Vu(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}function Tr(e,t,r){return typeof Reflect<"u"&&Reflect.get?Tr=Reflect.get:Tr=function(n,o,s){var a=ku(n,o);if(a){var f=Object.getOwnPropertyDescriptor(a,o);return f.get?f.get.call(s):f.value}},Tr(e,t,r||e)}function ku(e,t){for(;!Object.prototype.hasOwnProperty.call(e,t)&&(e=we(e),e!==null););return e}function Wu(e,t){if(typeof t!="function"&&t!==null)throw new TypeError("Super expression must either be null or a function");e.prototype=Object.create(t&&t.prototype,{constructor:{value:e,writable:!0,configurable:!0}}),t&&mi(e,t)}function mi(e,t){return mi=Object.setPrototypeOf||function(i,n){return i.__proto__=n,i},mi(e,t)}function Hu(e){var t=ju();return function(){var i=we(e),n;if(t){var o=we(this).constructor;n=Reflect.construct(i,arguments,o)}else n=i.apply(this,arguments);return Xu(this,n)}}function Xu(e,t){if(t&&(gr(t)==="object"||typeof t=="function"))return t;if(t!==void 0)throw new TypeError("Derived constructors may only return object or undefined");return Lu(e)}function Lu(e){if(e===void 0)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return e}function ju(){if(typeof Reflect>"u"||!Reflect.construct||Reflect.construct.sham)return!1;if(typeof Proxy=="function")return!0;try{return Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],function(){})),!0}catch{return!1}}function we(e){return we=Object.setPrototypeOf?Object.getPrototypeOf:function(r){return r.__proto__||Object.getPrototypeOf(r)},we(e)}var ys=function(e){Wu(r,e);var t=Hu(r);function r(n,o){var s;Vu(this,r),s=t.call(this,n,o),s.maskMap=void 0,s.fbo=void 0;var a=o.mapSize,f=a===void 0?2048:a;return s.maskMap=n.createTexture({format:"rgba8unorm",width:f,height:f,sampler:{minFilter:"linear",magFilter:"linear",addressModeU:"clamp-to-edge",addressModeV:"clamp-to-edge"}}),s.fbo=n.createFramebuffer({id:"maskmap",width:f,height:f,colorAttachments:[s.maskMap]}),s}var i=r.prototype;return i.render=function(o){var s=this,a=[!1,!1,!1,!1];a[o.channel]=!0;var f=[255,255,255,255];return P(this.device,{blend:!0,blendFunc:[0,1],blendEquation:32778,colorMask:a,depthTest:!1},function(){return Tr(we(r.prototype),"render",s).call(s,ms(ms({},o),{},{clearColor:f,target:s.fbo,pass:"mask"}))})},i.shouldDrawLayer=function(o){return o.props.operation.includes("mask")},i.delete=function(){this.fbo.delete(),this.maskMap.delete()},r}(Ss._LayersPass);var Ar=T(S());function Ku(e,t){return $u(e)||Yu(e,t)||xs(e,t)||zu()}function zu(){throw new TypeError(`Invalid attempt to destructure non-iterable instance.
|
|
1448
|
+
In order to be iterable, non-array objects must have a [Symbol.iterator]() method.`)}function Yu(e,t){var r=e==null?null:typeof Symbol<"u"&&e[Symbol.iterator]||e["@@iterator"];if(r!=null){var i=[],n=!0,o=!1,s,a;try{for(r=r.call(e);!(n=(s=r.next()).done)&&(i.push(s.value),!(t&&i.length===t));n=!0);}catch(f){o=!0,a=f}finally{try{!n&&r.return!=null&&r.return()}finally{if(o)throw a}}return i}}function $u(e){if(Array.isArray(e))return e}function qu(e,t){var r=typeof Symbol<"u"&&e[Symbol.iterator]||e["@@iterator"];if(!r){if(Array.isArray(e)||(r=xs(e))||t&&e&&typeof e.length=="number"){r&&(e=r);var i=0,n=function(){};return{s:n,n:function(){return i>=e.length?{done:!0}:{done:!1,value:e[i++]}},e:function(l){throw l},f:n}}throw new TypeError(`Invalid attempt to iterate non-iterable instance.
|
|
1449
|
+
In order to be iterable, non-array objects must have a [Symbol.iterator]() method.`)}var o=!0,s=!1,a;return{s:function(){r=r.call(e)},n:function(){var l=r.next();return o=l.done,l},e:function(l){s=!0,a=l},f:function(){try{!o&&r.return!=null&&r.return()}finally{if(s)throw a}}}}function xs(e,t){if(e){if(typeof e=="string")return Os(e,t);var r=Object.prototype.toString.call(e).slice(8,-1);if(r==="Object"&&e.constructor&&(r=e.constructor.name),r==="Map"||r==="Set")return Array.from(e);if(r==="Arguments"||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(r))return Os(e,t)}}function Os(e,t){(t==null||t>e.length)&&(t=e.length);for(var r=0,i=new Array(t);r<t;r++)i[r]=e[r];return i}function Ue(e,t){var r=[1/0,1/0,-1/0,-1/0],i=qu(e),n;try{for(i.s();!(n=i.n()).done;){var o=n.value,s=o.getBounds();if(s){var a=o.projectPosition(s[0],{viewport:t,autoOffset:!1}),f=o.projectPosition(s[1],{viewport:t,autoOffset:!1});r[0]=Math.min(r[0],a[0]),r[1]=Math.min(r[1],a[1]),r[2]=Math.max(r[2],f[0]),r[3]=Math.max(r[3],f[1])}}}catch(l){i.e(l)}finally{i.f()}return Number.isFinite(r[0])?r:null}var Zu=2048;function Ve(e){var t=e.bounds,r=e.viewport,i=e.border,n=i===void 0?0:i,o=r.isGeospatial;if(t[2]<=t[0]||t[3]<=t[1])return null;var s=r.unprojectPosition([(t[0]+t[2])/2,(t[1]+t[3])/2,0]),a=e.width,f=e.height,l=e.zoom;if(l===void 0){a=a-n*2,f=f-n*2;var c=Math.min(a/(t[2]-t[0]),f/(t[3]-t[1]));l=Math.min(Math.log2(c),20)}else if(!a||!f){var u=Math.pow(2,l);a=Math.round(Math.abs(t[2]-t[0])*u),f=Math.round(Math.abs(t[3]-t[1])*u);var _=Zu-n*2;if(a>_||f>_){var d=_/Math.max(a,f);a=Math.round(a*d),f=Math.round(f*d),l+=Math.log2(d)}}return o?new Ar.WebMercatorViewport({id:r.id,x:n,y:n,width:a,height:f,longitude:s[0],latitude:s[1],zoom:l,orthographic:!0}):new Ar.OrthographicViewport({id:r.id,x:n,y:n,width:a,height:f,target:s,zoom:l,flipY:!1})}function Qu(e,t){var r;if(t&&t.length===2){var i=Ku(t,2),n=i[0],o=i[1],s=e.getBounds({z:n}),a=e.getBounds({z:o});r=[Math.min(s[0],a[0]),Math.min(s[1],a[1]),Math.max(s[2],a[2]),Math.max(s[3],a[3])]}else r=e.getBounds();var f=e.projectPosition(r.slice(0,2)),l=e.projectPosition(r.slice(2,4));return[f[0],f[1],l[0],l[1]]}function ke(e,t,r){if(!e)return[0,0,1,1];var i=Qu(t,r),n=Ju(i);return e[2]-e[0]<=n[2]-n[0]&&e[3]-e[1]<=n[3]-n[1]?e:[Math.max(e[0],n[0]),Math.max(e[1],n[1]),Math.min(e[2],n[2]),Math.min(e[3],n[3])]}function Ju(e){var t=e[2]-e[0],r=e[3]-e[1],i=(e[0]+e[2])/2,n=(e[1]+e[3])/2;return[i-t,n-r,i+t,n+r]}function Gu(e,t){var r=typeof Symbol<"u"&&e[Symbol.iterator]||e["@@iterator"];if(!r){if(Array.isArray(e)||(r=e_(e))||t&&e&&typeof e.length=="number"){r&&(e=r);var i=0,n=function(){};return{s:n,n:function(){return i>=e.length?{done:!0}:{done:!1,value:e[i++]}},e:function(l){throw l},f:n}}throw new TypeError(`Invalid attempt to iterate non-iterable instance.
|
|
1450
|
+
In order to be iterable, non-array objects must have a [Symbol.iterator]() method.`)}var o=!0,s=!1,a;return{s:function(){r=r.call(e)},n:function(){var l=r.next();return o=l.done,l},e:function(l){s=!0,a=l},f:function(){try{!o&&r.return!=null&&r.return()}finally{if(s)throw a}}}}function e_(e,t){if(e){if(typeof e=="string")return Ps(e,t);var r=Object.prototype.toString.call(e).slice(8,-1);if(r==="Object"&&e.constructor&&(r=e.constructor.name),r==="Map"||r==="Set")return Array.from(e);if(r==="Arguments"||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(r))return Ps(e,t)}}function Ps(e,t){(t==null||t>e.length)&&(t=e.length);for(var r=0,i=new Array(t);r<t;r++)i[r]=e[r];return i}function t_(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}var Rr=function(){function e(){t_(this,e),this.id="mask-effect",this.props=null,this.useInPicking=!0,this.order=0,this.dummyMaskMap=void 0,this.channels=[],this.masks=null,this.maskPass=void 0,this.maskMap=void 0,this.lastViewport=void 0}var t=e.prototype;return t.preRender=function(i,n){var o=n.layers,s=n.layerFilter,a=n.viewports,f=n.onViewportActive,l=n.views,c=n.isPicking,u=!1;if(this.dummyMaskMap||(this.dummyMaskMap=i.createTexture({width:1,height:1})),c)return{didRender:u};var _=o.filter(function(A){return A.props.visible&&A.props.operation.includes("mask")});if(_.length===0)return this.masks=null,this.channels.length=0,{didRender:u};this.masks={},this.maskPass||(this.maskPass=new ys(i,{id:"default-mask"}),this.maskMap=this.maskPass.maskMap);var d=this._sortMaskChannels(_),p=a[0],g=!this.lastViewport||!this.lastViewport.equals(p);if(p.resolution!==void 0)return Si.log.warn("MaskExtension is not supported in GlobeView")(),{didRender:u};for(var h in d){var R=this._renderChannel(d[h],{layerFilter:s,onViewportActive:f,views:l,viewport:p,viewportChanged:g});u||(u=R)}return{didRender:u}},t._renderChannel=function(i,n){var o=n.layerFilter,s=n.onViewportActive,a=n.views,f=n.viewport,l=n.viewportChanged,c=!1,u=this.channels[i.index];if(!u)return c;var _=i===u||i.layers.length!==u.layers.length||i.layers.some(function(R,A){return R!==u.layers[A]||R.props.transitions})||i.layerBounds.some(function(R,A){return R!==u.layerBounds[A]});if(i.bounds=u.bounds,i.maskBounds=u.maskBounds,this.channels[i.index]=i,_||l){this.lastViewport=f;var d=Ue(i.layers,f);if(i.bounds=d&&ke(d,f),_||!Be(i.bounds,u.bounds)){var p=this.maskPass,g=this.maskMap,h=d&&Ve({bounds:i.bounds,viewport:f,width:g.width,height:g.height,border:1});i.maskBounds=h?h.getBounds():[0,0,1,1],p.render({pass:"mask",channel:i.index,layers:i.layers,layerFilter:o,viewports:h?[h]:[],onViewportActive:s,views:a,moduleParameters:{devicePixelRatio:1}}),c=!0}}return this.masks[i.id]={index:i.index,bounds:i.maskBounds,coordinateOrigin:i.coordinateOrigin,coordinateSystem:i.coordinateSystem},c},t._sortMaskChannels=function(i){var n=this,o={},s=0,a=Gu(i),f;try{var l=function(){var h=f.value,R=h.root.id,A=o[R];if(!A){if(++s>4)return Si.log.warn("Too many mask layers. The max supported is 4")(),"continue";A={id:R,index:n.channels.findIndex(function(m){return m?.id===R}),layers:[],layerBounds:[],coordinateOrigin:h.root.props.coordinateOrigin,coordinateSystem:h.root.props.coordinateSystem},o[R]=A}A.layers.push(h),A.layerBounds.push(h.getBounds())};for(a.s();!(f=a.n()).done;)var c=l()}catch(g){a.e(g)}finally{a.f()}for(var u=0;u<4;u++){var _=this.channels[u];(!_||!(_.id in o))&&(this.channels[u]=null)}for(var d in o){var p=o[d];p.index<0&&(p.index=this.channels.findIndex(function(g){return!g}),this.channels[p.index]=p)}return o},t.getModuleParameters=function(){return{maskMap:this.masks?this.maskMap:this.dummyMaskMap,maskChannels:this.masks}},t.cleanup=function(){this.dummyMaskMap&&(this.dummyMaskMap.delete(),this.dummyMaskMap=void 0),this.maskPass&&(this.maskPass.delete(),this.maskPass=void 0,this.maskMap=void 0),this.lastViewport=void 0,this.masks=null,this.channels.length=0},e}();function r_(e,t){var r=typeof Symbol<"u"&&e[Symbol.iterator]||e["@@iterator"];if(!r){if(Array.isArray(e)||(r=Fs(e))||t&&e&&typeof e.length=="number"){r&&(e=r);var i=0,n=function(){};return{s:n,n:function(){return i>=e.length?{done:!0}:{done:!1,value:e[i++]}},e:function(l){throw l},f:n}}throw new TypeError(`Invalid attempt to iterate non-iterable instance.
|
|
1451
|
+
In order to be iterable, non-array objects must have a [Symbol.iterator]() method.`)}var o=!0,s=!1,a;return{s:function(){r=r.call(e)},n:function(){var l=r.next();return o=l.done,l},e:function(l){s=!0,a=l},f:function(){try{!o&&r.return!=null&&r.return()}finally{if(s)throw a}}}}function i_(e,t){return s_(e)||o_(e,t)||Fs(e,t)||n_()}function n_(){throw new TypeError(`Invalid attempt to destructure non-iterable instance.
|
|
1452
|
+
In order to be iterable, non-array objects must have a [Symbol.iterator]() method.`)}function Fs(e,t){if(e){if(typeof e=="string")return Is(e,t);var r=Object.prototype.toString.call(e).slice(8,-1);if(r==="Object"&&e.constructor&&(r=e.constructor.name),r==="Map"||r==="Set")return Array.from(e);if(r==="Arguments"||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(r))return Is(e,t)}}function Is(e,t){(t==null||t>e.length)&&(t=e.length);for(var r=0,i=new Array(t);r<t;r++)i[r]=e[r];return i}function o_(e,t){var r=e==null?null:typeof Symbol<"u"&&e[Symbol.iterator]||e["@@iterator"];if(r!=null){var i=[],n=!0,o=!1,s,a;try{for(r=r.call(e);!(n=(s=r.next()).done)&&(i.push(s.value),!(t&&i.length===t));n=!0);}catch(f){o=!0,a=f}finally{try{!n&&r.return!=null&&r.return()}finally{if(o)throw a}}return i}}function s_(e){if(Array.isArray(e))return e}function a_(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}var yi=2,Ms=function(){function e(){a_(this,e),this.id="collision-filter-effect",this.props=null,this.useInPicking=!0,this.order=1,this.channels={},this.collisionFilterPass=void 0,this.collisionFBOs={},this.dummyCollisionMap=void 0,this.lastViewport=void 0}var t=e.prototype;return t.preRender=function(i,n){var o,s=n.effects,a=n.layers,f=n.layerFilter,l=n.viewports,c=n.onViewportActive,u=n.views,_=n.isPicking,d=n.preRenderStats,p=d===void 0?{}:d;if(this.dummyCollisionMap||(this.dummyCollisionMap=i.createTexture({width:1,height:1})),!_){var g=a.filter(function(Tt){var Oe=Tt.props,ia=Oe.visible,na=Oe.collisionEnabled;return ia&&na});if(g.length===0){this.channels={};return}this.collisionFilterPass||(this.collisionFilterPass=new Es(i,{id:"default-collision-filter"}));var h=s?.filter(function(Tt){return Tt.constructor===Rr}),R=(o=p["mask-effect"])===null||o===void 0?void 0:o.didRender,A=this._groupByCollisionGroup(i,g),m=l[0],B=!this.lastViewport||!this.lastViewport.equals(m)||R;for(var X in A){var $=this.collisionFBOs[X],D=A[X],ce=i.canvasContext.getPixelSize(),q=i_(ce,2),W=q[0],ye=q[1];$.resize({width:W/yi,height:ye/yi}),this._render(D,{effects:h,layerFilter:f,onViewportActive:c,views:u,viewport:m,viewportChanged:B})}}},t._render=function(i,n){var o=n.effects,s=n.layerFilter,a=n.onViewportActive,f=n.views,l=n.viewport,c=n.viewportChanged,u=i.collisionGroup,_=this.channels[u];if(_){var d=c||i===_||!(0,Cs._deepEqual)(_.layers,i.layers,1)||i.layerBounds.some(function(g,h){return!Be(g,_.layerBounds[h])})||i.allLayersLoaded!==_.allLayersLoaded||i.layers.some(function(g){return g.props.transitions});if(this.channels[u]=i,d){this.lastViewport=l;var p=this.collisionFBOs[u];this.collisionFilterPass.renderCollisionMap(p,{pass:"collision-filter",isPicking:!0,layers:i.layers,effects:o,layerFilter:s,viewports:l?[l]:[],onViewportActive:a,views:f,moduleParameters:{dummyCollisionMap:this.dummyCollisionMap,devicePixelRatio:p.device.canvasContext.getDevicePixelRatio()/yi}})}}},t._groupByCollisionGroup=function(i,n){var o={},s=r_(n),a;try{for(s.s();!(a=s.n()).done;){var f=a.value,l=f.props.collisionGroup,c=o[l];c||(c={collisionGroup:l,layers:[],layerBounds:[],allLayersLoaded:!0},o[l]=c),c.layers.push(f),c.layerBounds.push(f.getBounds()),f.isLoaded||(c.allLayersLoaded=!1)}}catch(R){s.e(R)}finally{s.f()}for(var u=0,_=Object.keys(o);u<_.length;u++){var d=_[u];this.collisionFBOs[d]||this.createFBO(i,d),this.channels[d]||(this.channels[d]=o[d])}for(var p=0,g=Object.keys(this.collisionFBOs);p<g.length;p++){var h=g[p];o[h]||this.destroyFBO(h)}return o},t.getModuleParameters=function(i){var n=i.props.collisionGroup,o=this.collisionFBOs,s=this.dummyCollisionMap;return{collisionFBO:o[n],dummyCollisionMap:s}},t.cleanup=function(){this.dummyCollisionMap&&(this.dummyCollisionMap.delete(),this.dummyCollisionMap=void 0),this.channels={};for(var i=0,n=Object.keys(this.collisionFBOs);i<n.length;i++){var o=n[i];this.destroyFBO(o)}this.collisionFBOs={},this.lastViewport=void 0},t.createFBO=function(i,n){var o=i.gl.canvas,s=o.width,a=o.height,f=i.createTexture({format:"rgba8unorm",width:s,height:a,sampler:{minFilter:"nearest",magFilter:"nearest",addressModeU:"clamp-to-edge",addressModeV:"clamp-to-edge"}}),l=new K(i,{format:"depth16unorm",width:s,height:a});this.collisionFBOs[n]=i.createFramebuffer({id:"collision-".concat(n),width:s,height:a,colorAttachments:[f],depthStencilAttachment:l})},t.destroyFBO=function(i){var n,o,s=this.collisionFBOs[i];(n=s.colorAttachments[0])===null||n===void 0||n.destroy(),(o=s.depthStencilAttachment)===null||o===void 0||o.destroy(),s.destroy(),delete this.collisionFBOs[i]},e}();function br(e){return typeof Symbol=="function"&&typeof Symbol.iterator=="symbol"?br=function(r){return typeof r}:br=function(r){return r&&typeof Symbol=="function"&&r.constructor===Symbol&&r!==Symbol.prototype?"symbol":typeof r},br(e)}function f_(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}function l_(e,t){if(typeof t!="function"&&t!==null)throw new TypeError("Super expression must either be null or a function");e.prototype=Object.create(t&&t.prototype,{constructor:{value:e,writable:!0,configurable:!0}}),t&&Oi(e,t)}function Oi(e,t){return Oi=Object.setPrototypeOf||function(i,n){return i.__proto__=n,i},Oi(e,t)}function c_(e){var t=d_();return function(){var i=Er(e),n;if(t){var o=Er(this).constructor;n=Reflect.construct(i,arguments,o)}else n=i.apply(this,arguments);return u_(this,n)}}function u_(e,t){if(t&&(br(t)==="object"||typeof t=="function"))return t;if(t!==void 0)throw new TypeError("Derived constructors may only return object or undefined");return __(e)}function __(e){if(e===void 0)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return e}function d_(){if(typeof Reflect>"u"||!Reflect.construct||Reflect.construct.sham)return!1;if(typeof Proxy=="function")return!0;try{return Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],function(){})),!0}catch{return!1}}function Er(e){return Er=Object.setPrototypeOf?Object.getPrototypeOf:function(r){return r.__proto__||Object.getPrototypeOf(r)},Er(e)}var p_={getCollisionPriority:{type:"accessor",value:0},collisionEnabled:!0,collisionGroup:{type:"string",value:"default"},collisionTestProps:{}},vr=function(e){l_(r,e);var t=c_(r);function r(){return f_(this,r),t.apply(this,arguments)}var i=r.prototype;return i.getShaders=function(){return{modules:[Ts]}},i.draw=function(o){var s=o.uniforms,a=o.context,f=o.moduleParameters,l=this.props.collisionEnabled,c=f.collisionFBO,u=f.drawToCollisionMap,_=l&&Boolean(c);s.collision_enabled=_,u&&(this.props=this.clone(this.props.collisionTestProps).props)},i.initializeState=function(o,s){var a;if(this.getAttributeManager()!==null){(a=this.context.deck)===null||a===void 0||a._addDefaultEffect(new Ms);var f=this.getAttributeManager();f.add({collisionPriorities:{size:1,accessor:"getCollisionPriority",shaderAttributes:{collisionPriorities:{divisor:0},instanceCollisionPriorities:{divisor:1}}}})}},i.getNeedsPickingBuffer=function(){return this.props.collisionEnabled},r}(Ns.LayerExtension);vr.defaultProps=p_;vr.extensionName="CollisionFilterExtension";var Ae=T(S());var Bs=T(S()),h_=`
|
|
1456
1453
|
uniform vec4 mask_bounds;
|
|
1457
1454
|
uniform bool mask_maskByInstance;
|
|
1458
1455
|
vec2 mask_getCoords(vec4 position) {
|
|
1459
1456
|
return (position.xy - mask_bounds.xy) / (mask_bounds.zw - mask_bounds.xy);
|
|
1460
1457
|
}
|
|
1461
|
-
`,
|
|
1458
|
+
`,g_=`
|
|
1462
1459
|
uniform sampler2D mask_texture;
|
|
1463
1460
|
uniform int mask_channel;
|
|
1464
1461
|
uniform bool mask_enabled;
|
|
@@ -1467,7 +1464,7 @@ bool mask_isInBounds(vec2 texCoords) {
|
|
|
1467
1464
|
if (!mask_enabled) {
|
|
1468
1465
|
return true;
|
|
1469
1466
|
}
|
|
1470
|
-
vec4 maskColor =
|
|
1467
|
+
vec4 maskColor = texture(mask_texture, texCoords);
|
|
1471
1468
|
float maskValue = 1.0;
|
|
1472
1469
|
if (mask_channel == 0) {
|
|
1473
1470
|
maskValue = maskColor.r;
|
|
@@ -1485,8 +1482,8 @@ bool mask_isInBounds(vec2 texCoords) {
|
|
|
1485
1482
|
return maskValue < 0.5;
|
|
1486
1483
|
}
|
|
1487
1484
|
}
|
|
1488
|
-
`,
|
|
1489
|
-
|
|
1485
|
+
`,T_={"vs:#decl":`
|
|
1486
|
+
out vec2 mask_texCoords;
|
|
1490
1487
|
`,"vs:#main-end":`
|
|
1491
1488
|
vec4 mask_common_position;
|
|
1492
1489
|
if (mask_maskByInstance) {
|
|
@@ -1496,24 +1493,24 @@ varying vec2 mask_texCoords;
|
|
|
1496
1493
|
}
|
|
1497
1494
|
mask_texCoords = mask_getCoords(mask_common_position);
|
|
1498
1495
|
`,"fs:#decl":`
|
|
1499
|
-
|
|
1496
|
+
in vec2 mask_texCoords;
|
|
1500
1497
|
`,"fs:#main-start":`
|
|
1501
1498
|
if (mask_enabled) {
|
|
1502
1499
|
bool mask = mask_isInBounds(mask_texCoords);
|
|
1503
1500
|
|
|
1504
1501
|
// Debug: show extent of render target
|
|
1505
|
-
//
|
|
1506
|
-
|
|
1502
|
+
// fragColor = vec4(mask_texCoords, 0.0, 1.0);
|
|
1503
|
+
fragColor = texture(mask_texture, mask_texCoords);
|
|
1507
1504
|
|
|
1508
1505
|
if (!mask) discard;
|
|
1509
1506
|
}
|
|
1510
|
-
`},
|
|
1511
|
-
`),
|
|
1507
|
+
`},A_=function(t){return t&&"maskMap"in t?{mask_texture:t.maskMap}:{}},Ds={name:"mask",dependencies:[Bs.project],vs:h_,fs:g_,inject:T_,getUniforms:A_};function mr(e){return typeof Symbol=="function"&&typeof Symbol.iterator=="symbol"?mr=function(r){return typeof r}:mr=function(r){return r&&typeof Symbol=="function"&&r.constructor===Symbol&&r!==Symbol.prototype?"symbol":typeof r},mr(e)}function R_(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}function b_(e,t){if(typeof t!="function"&&t!==null)throw new TypeError("Super expression must either be null or a function");e.prototype=Object.create(t&&t.prototype,{constructor:{value:e,writable:!0,configurable:!0}}),t&&xi(e,t)}function xi(e,t){return xi=Object.setPrototypeOf||function(i,n){return i.__proto__=n,i},xi(e,t)}function E_(e){var t=S_();return function(){var i=Sr(e),n;if(t){var o=Sr(this).constructor;n=Reflect.construct(i,arguments,o)}else n=i.apply(this,arguments);return v_(this,n)}}function v_(e,t){if(t&&(mr(t)==="object"||typeof t=="function"))return t;if(t!==void 0)throw new TypeError("Derived constructors may only return object or undefined");return m_(e)}function m_(e){if(e===void 0)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return e}function S_(){if(typeof Reflect>"u"||!Reflect.construct||Reflect.construct.sham)return!1;if(typeof Proxy=="function")return!0;try{return Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],function(){})),!0}catch{return!1}}function Sr(e){return Sr=Object.setPrototypeOf?Object.getPrototypeOf:function(r){return r.__proto__||Object.getPrototypeOf(r)},Sr(e)}var y_={maskId:"",maskByInstance:void 0,maskInverted:!1},yr=function(e){b_(r,e);var t=E_(r);function r(){return R_(this,r),t.apply(this,arguments)}var i=r.prototype;return i.initializeState=function(){var o;(o=this.context.deck)===null||o===void 0||o._addDefaultEffect(new Rr)},i.getShaders=function(){var o="instancePositions"in this.getAttributeManager().attributes;return this.props.maskByInstance!==void 0&&(o=Boolean(this.props.maskByInstance)),this.state.maskByInstance=o,{modules:[Ds]}},i.draw=function(o){var s=o.uniforms,a=o.context,f=o.moduleParameters;s.mask_maskByInstance=this.state.maskByInstance;var l=this.props,c=l.maskId,u=l.maskInverted,_=f.maskChannels,d=a.viewport;if(_&&_[c]){var p=_[c],g=p.index,h=p.bounds,R=p.coordinateOrigin,A=_[c].coordinateSystem;s.mask_enabled=!0,s.mask_channel=g,s.mask_inverted=u,A===Ae.COORDINATE_SYSTEM.DEFAULT&&(A=d.isGeospatial?Ae.COORDINATE_SYSTEM.LNGLAT:Ae.COORDINATE_SYSTEM.CARTESIAN);var m={modelMatrix:null,fromCoordinateOrigin:R,fromCoordinateSystem:A},B=this.projectPosition([h[0],h[1],0],m),X=this.projectPosition([h[2],h[3],0],m);s.mask_bounds=[B[0],B[1],X[0],X[1]]}else c&&Ae.log.warn("Could not find a mask layer with id: ".concat(c))(),s.mask_enabled=!1},r}(Ae.LayerExtension);yr.defaultProps=y_;yr.extensionName="MaskExtension";var ra=T(S());var Nr=T(S());var Us=T(S()),ne={NONE:0,WRITE_HEIGHT_MAP:1,USE_HEIGHT_MAP:2,USE_COVER:3,USE_COVER_ONLY:4,SKIP:5},ws=Object.keys(ne).map(function(e){return"const float TERRAIN_MODE_".concat(e," = ").concat(ne[e],".0;")}).join(`
|
|
1508
|
+
`),Or={name:"terrain",dependencies:[Us.project],inject:{"vs:#decl":`
|
|
1512
1509
|
uniform float terrain_mode;
|
|
1513
1510
|
uniform sampler2D terrain_map;
|
|
1514
1511
|
uniform vec4 terrain_bounds;
|
|
1515
|
-
|
|
1516
|
-
`.concat(
|
|
1512
|
+
out vec3 commonPos;
|
|
1513
|
+
`.concat(ws,`
|
|
1517
1514
|
`),"vs:#main-start":`
|
|
1518
1515
|
if (terrain_mode == TERRAIN_MODE_SKIP) {
|
|
1519
1516
|
gl_Position = vec4(0.0);
|
|
@@ -1532,7 +1529,7 @@ if (terrain_mode == TERRAIN_MODE_USE_HEIGHT_MAP) {
|
|
|
1532
1529
|
vec3 anchorCommon = project_position(anchor);
|
|
1533
1530
|
vec2 texCoords = (anchorCommon.xy - terrain_bounds.xy) / terrain_bounds.zw;
|
|
1534
1531
|
if (texCoords.x >= 0.0 && texCoords.y >= 0.0 && texCoords.x <= 1.0 && texCoords.y <= 1.0) {
|
|
1535
|
-
float terrainZ =
|
|
1532
|
+
float terrainZ = texture(terrain_map, texCoords).r;
|
|
1536
1533
|
geometry.position.z += terrainZ;
|
|
1537
1534
|
position = project_common_position_to_clipspace(geometry.position);
|
|
1538
1535
|
}
|
|
@@ -1541,17 +1538,17 @@ if (terrain_mode == TERRAIN_MODE_USE_HEIGHT_MAP) {
|
|
|
1541
1538
|
uniform float terrain_mode;
|
|
1542
1539
|
uniform sampler2D terrain_map;
|
|
1543
1540
|
uniform vec4 terrain_bounds;
|
|
1544
|
-
|
|
1545
|
-
`.concat(
|
|
1541
|
+
in vec3 commonPos;
|
|
1542
|
+
`.concat(ws,`
|
|
1546
1543
|
`),"fs:#main-start":`
|
|
1547
1544
|
if (terrain_mode == TERRAIN_MODE_WRITE_HEIGHT_MAP) {
|
|
1548
|
-
|
|
1545
|
+
fragColor = vec4(commonPos.z, 0.0, 0.0, 1.0);
|
|
1549
1546
|
return;
|
|
1550
1547
|
}
|
|
1551
1548
|
`,"fs:DECKGL_FILTER_COLOR":`
|
|
1552
1549
|
if ((terrain_mode == TERRAIN_MODE_USE_COVER) || (terrain_mode == TERRAIN_MODE_USE_COVER_ONLY)) {
|
|
1553
1550
|
vec2 texCoords = (commonPos.xy - terrain_bounds.xy) / terrain_bounds.zw;
|
|
1554
|
-
vec4 pixel =
|
|
1551
|
+
vec4 pixel = texture(terrain_map, texCoords);
|
|
1555
1552
|
if (terrain_mode == TERRAIN_MODE_USE_COVER_ONLY) {
|
|
1556
1553
|
color = pixel;
|
|
1557
1554
|
} else {
|
|
@@ -1560,9 +1557,9 @@ if ((terrain_mode == TERRAIN_MODE_USE_COVER) || (terrain_mode == TERRAIN_MODE_US
|
|
|
1560
1557
|
}
|
|
1561
1558
|
return;
|
|
1562
1559
|
}
|
|
1563
|
-
`},getUniforms:function(){var t=arguments.length>0&&arguments[0]!==void 0?arguments[0]:{},r=arguments.length>1?arguments[1]:void 0;if("dummyHeightMap"in t){var
|
|
1564
|
-
In order to be iterable, non-array objects must have a [Symbol.iterator]() method.`)}var s=!0,a=!1,_;return{s:function(){r=r.call(e)},n:function(){var u=r.next();return s=u.done,u},e:function(u){a=!0,_=u},f:function(){try{!s&&r.return!=null&&r.return()}finally{if(a)throw _}}}}function Ic(e,t){if(e){if(typeof e=="string")return Bs(e,t);var r=Object.prototype.toString.call(e).slice(8,-1);if(r==="Object"&&e.constructor&&(r=e.constructor.name),r==="Map"||r==="Set")return Array.from(e);if(r==="Arguments"||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(r))return Bs(e,t)}}function Bs(e,t){(t==null||t>e.length)&&(t=e.length);for(var r=0,n=new Array(t);r<t;r++)n[r]=e[r];return n}function Pc(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}function Ds(e,t){for(var r=0;r<t.length;r++){var n=t[r];n.enumerable=n.enumerable||!1,n.configurable=!0,"value"in n&&(n.writable=!0),Object.defineProperty(e,n.key,n)}}function vc(e,t,r){return t&&Ds(e.prototype,t),r&&Ds(e,r),e}var Us=function(){function e(r){Pc(this,e),this.isDirty=!0,this.targetLayer=void 0,this.renderViewport=null,this.bounds=null,this.fbo=void 0,this.pickingFbo=void 0,this.layers=[],this.tile=void 0,this.targetBounds=null,this.targetBoundsCommon=null,this.targetLayer=r,this.tile=ws(r)}var t=e.prototype;return t.shouldUpdate=function(n){var o=n.targetLayer,s=n.viewport,a=n.layers,_=n.layerNeedsRedraw;o&&(this.targetLayer=o);var f=s?this._updateViewport(s):!1,u=a?this._updateLayers(a):!1;if(_){var l=bc(this.layers),c;try{for(l.s();!(c=l.n()).done;){var E=c.value;if(_[E]){u=!0;break}}}catch(d){l.e(d)}finally{l.f()}}return u||f},t._updateLayers=function(n){var o=!1;if(n=this.tile?Fc(this.tile,n):n,n.length!==this.layers.length)o=!0;else for(var s=0;s<n.length;s++){var a=n[s].id;if(a!==this.layers[s]){o=!0;break}}return o&&(this.layers=n.map(function(_){return _.id})),o},t._updateViewport=function(n){var o=this.targetLayer,s=!1;if(this.tile&&"boundingBox"in this.tile){if(!this.targetBounds){s=!0,this.targetBounds=this.tile.boundingBox;var a=n.projectPosition(this.targetBounds[0]),_=n.projectPosition(this.targetBounds[1]);this.targetBoundsCommon=[a[0],a[1],_[0],_[1]]}}else this.targetBounds!==o.getBounds()&&(s=!0,this.targetBounds=o.getBounds(),this.targetBoundsCommon=Le([o],n));if(!this.targetBoundsCommon)return!1;var f=Math.ceil(n.zoom+.5);if(this.tile)this.bounds=this.targetBoundsCommon;else{var u,l=(u=this.renderViewport)===null||u===void 0?void 0:u.zoom;s=s||f!==l;var c=He(this.targetBoundsCommon,n),E=this.bounds;s=s||!E||c.some(function(d,R){return d!==E[R]}),this.bounds=c}return s&&(this.renderViewport=Xe({bounds:this.bounds,zoom:f,viewport:n})),s},t.getRenderFramebuffer=function(){return!this.renderViewport||this.layers.length===0?null:(this.fbo||(this.fbo=Et(this.targetLayer.context.device,{id:this.id})),this.fbo)},t.getPickingFramebuffer=function(){return!this.renderViewport||this.layers.length===0&&!this.targetLayer.props.pickable?null:(this.pickingFbo||(this.pickingFbo=Et(this.targetLayer.context.device,{id:"".concat(this.id,"-picking")})),this.pickingFbo)},t.filterLayers=function(n){var o=this;return n.filter(function(s){var a=s.id;return o.layers.includes(a)})},t.delete=function(){var n=this.fbo,o=this.pickingFbo;n&&(n.colorAttachments[0].destroy(),n.destroy()),o&&(o.colorAttachments[0].destroy(),o.destroy())},vc(e,[{key:"id",get:function(){return this.targetLayer.id}},{key:"isActive",get:function(){return Boolean(this.targetLayer.getCurrentLayer())}}]),e}();function Fc(e,t){return t.filter(function(r){var n=ws(r);return n?Cc(e.boundingBox,n.boundingBox):!0})}function ws(e){for(;e;){var t=e.props.tile;if(t)return t;e=e.parent}return null}function Cc(e,t){return e&&t?e[0][0]<t[1][0]&&t[0][0]<e[1][0]&&e[0][1]<t[1][1]&&t[0][1]<e[1][1]:!1}var Xs=p(b());function Ir(e){return typeof Symbol=="function"&&typeof Symbol.iterator=="symbol"?Ir=function(r){return typeof r}:Ir=function(r){return r&&typeof Symbol=="function"&&r.constructor===Symbol&&r!==Symbol.prototype?"symbol":typeof r},Ir(e)}function Ls(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter(function(o){return Object.getOwnPropertyDescriptor(e,o).enumerable})),r.push.apply(r,n)}return r}function br(e){for(var t=1;t<arguments.length;t++){var r=arguments[t]!=null?arguments[t]:{};t%2?Ls(Object(r),!0).forEach(function(n){Mc(e,n,r[n])}):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(r)):Ls(Object(r)).forEach(function(n){Object.defineProperty(e,n,Object.getOwnPropertyDescriptor(r,n))})}return e}function Mc(e,t,r){return t in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r,e}function yc(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}function xc(e,t){if(typeof t!="function"&&t!==null)throw new TypeError("Super expression must either be null or a function");e.prototype=Object.create(t&&t.prototype,{constructor:{value:e,writable:!0,configurable:!0}}),t&&yn(e,t)}function yn(e,t){return yn=Object.setPrototypeOf||function(n,o){return n.__proto__=o,n},yn(e,t)}function Bc(e){var t=wc();return function(){var n=Pr(e),o;if(t){var s=Pr(this).constructor;o=Reflect.construct(n,arguments,s)}else o=n.apply(this,arguments);return Dc(this,o)}}function Dc(e,t){if(t&&(Ir(t)==="object"||typeof t=="function"))return t;if(t!==void 0)throw new TypeError("Derived constructors may only return object or undefined");return Uc(e)}function Uc(e){if(e===void 0)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return e}function wc(){if(typeof Reflect>"u"||!Reflect.construct||Reflect.construct.sham)return!1;if(typeof Proxy=="function")return!0;try{return Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],function(){})),!0}catch{return!1}}function Pr(e){return Pr=Object.setPrototypeOf?Object.getPrototypeOf:function(r){return r.__proto__||Object.getPrototypeOf(r)},Pr(e)}var Hs=function(e){xc(r,e);var t=Bc(r);function r(){return yc(this,r),t.apply(this,arguments)}var n=r.prototype;return n.getRenderableLayers=function(s,a){for(var _=a.layers,f=[],u=this._getDrawLayerParams(s,a,!0),l=0;l<_.length;l++){var c=_[l];!c.isComposite&&u[l].shouldDrawLayer&&f.push(c)}return f},n.renderHeightMap=function(s,a){var _=this,f=s.getRenderFramebuffer(),u=s.renderViewport;!f||!u||(f.resize(u),F(this.device,{clearColor:[0,0,0,0],blend:!0,blendFunc:[1,1],blendEquation:32776,depthTest:!1},function(){return _.render(br(br({},a),{},{target:f,pass:"terrain-height-map",layers:a.layers,viewports:[u],effects:[]}))}))},n.renderTerrainCover=function(s,a){var _=this,f=s.getRenderFramebuffer(),u=s.renderViewport;if(!(!f||!u)){var l=s.filterLayers(a.layers);f.resize(u),F(this.device,{clearColor:[0,0,0,0],depthTest:!1},function(){return _.render(br(br({},a),{},{target:f,pass:"terrain-cover-".concat(s.id),layers:l,effects:[],viewports:[u]}))})}},r}(Xs._LayersPass);var ks=p(b());function vr(e){return typeof Symbol=="function"&&typeof Symbol.iterator=="symbol"?vr=function(r){return typeof r}:vr=function(r){return r&&typeof Symbol=="function"&&r.constructor===Symbol&&r!==Symbol.prototype?"symbol":typeof r},vr(e)}function Vs(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter(function(o){return Object.getOwnPropertyDescriptor(e,o).enumerable})),r.push.apply(r,n)}return r}function Ws(e){for(var t=1;t<arguments.length;t++){var r=arguments[t]!=null?arguments[t]:{};t%2?Vs(Object(r),!0).forEach(function(n){Lc(e,n,r[n])}):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(r)):Vs(Object(r)).forEach(function(n){Object.defineProperty(e,n,Object.getOwnPropertyDescriptor(r,n))})}return e}function Lc(e,t,r){return t in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r,e}function Xc(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}function Fr(e,t,r){return typeof Reflect<"u"&&Reflect.get?Fr=Reflect.get:Fr=function(o,s,a){var _=Hc(o,s);if(_){var f=Object.getOwnPropertyDescriptor(_,s);return f.get?f.get.call(a):f.value}},Fr(e,t,r||e)}function Hc(e,t){for(;!Object.prototype.hasOwnProperty.call(e,t)&&(e=Ve(e),e!==null););return e}function Vc(e,t){if(typeof t!="function"&&t!==null)throw new TypeError("Super expression must either be null or a function");e.prototype=Object.create(t&&t.prototype,{constructor:{value:e,writable:!0,configurable:!0}}),t&&xn(e,t)}function xn(e,t){return xn=Object.setPrototypeOf||function(n,o){return n.__proto__=o,n},xn(e,t)}function Wc(e){var t=jc();return function(){var n=Ve(e),o;if(t){var s=Ve(this).constructor;o=Reflect.construct(n,arguments,s)}else o=n.apply(this,arguments);return kc(this,o)}}function kc(e,t){if(t&&(vr(t)==="object"||typeof t=="function"))return t;if(t!==void 0)throw new TypeError("Derived constructors may only return object or undefined");return Kc(e)}function Kc(e){if(e===void 0)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return e}function jc(){if(typeof Reflect>"u"||!Reflect.construct||Reflect.construct.sham)return!1;if(typeof Proxy=="function")return!0;try{return Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],function(){})),!0}catch{return!1}}function Ve(e){return Ve=Object.setPrototypeOf?Object.getPrototypeOf:function(r){return r.__proto__||Object.getPrototypeOf(r)},Ve(e)}var Ks=function(e){Vc(r,e);var t=Wc(r);function r(){var o;Xc(this,r);for(var s=arguments.length,a=new Array(s),_=0;_<s;_++)a[_]=arguments[_];return o=t.call.apply(t,[this].concat(a)),o.drawParameters={},o}var n=r.prototype;return n.getRenderableLayers=function(s,a){var _=a.layers,f=[];this.drawParameters={},this._resetColorEncoder(a.pickZ);for(var u=this._getDrawLayerParams(s,a),l=0;l<_.length;l++){var c=_[l];!c.isComposite&&u[l].shouldDrawLayer&&(f.push(c),this.drawParameters[c.id]=u[l].layerParameters)}return f},n.renderTerrainCover=function(s,a){var _=this,f=s.getPickingFramebuffer(),u=s.renderViewport;if(!(!f||!u)){var l=s.filterLayers(a.layers),c=s.targetLayer;c.props.pickable&&l.unshift(c),f.resize(u),F(this.device,{depthTest:!1},function(){return _.render(Ws(Ws({},a),{},{pickingFBO:f,pass:"terrain-cover-picking-".concat(s.id),layers:l,effects:[],viewports:[u],cullRect:void 0,deviceRect:u,pickZ:!1}))})}},n.getLayerParameters=function(s,a,_){if(this.drawParameters[s.id])return this.drawParameters[s.id];var f=Fr(Ve(r.prototype),"getLayerParameters",this).call(this,s,a,_);return f.blend=!0,f},r}(ks._PickLayersPass);function Yc(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}var js=2048,Bn=function(){e.isSupported=function(n){return n.isTextureFormatRenderable("rgba32float")};function e(r){Yc(this,e),this.renderViewport=null,this.bounds=null,this.fbo=void 0,this.device=void 0,this.layers=[],this.layersBounds=[],this.layersBoundsCommon=null,this.lastViewport=null,this.device=r}var t=e.prototype;return t.getRenderFramebuffer=function(){return this.renderViewport?(this.fbo||(this.fbo=Et(this.device,{id:"height-map",float:!0})),this.fbo):null},t.shouldUpdate=function(n){var o=this,s=n.layers,a=n.viewport,_=s.length!==this.layers.length||s.some(function(d,R){return d!==o.layers[R]||d.props.transitions||d.getBounds()!==o.layersBounds[R]});_&&(this.layers=s,this.layersBounds=s.map(function(d){return d.getBounds()}),this.layersBoundsCommon=Le(s,a));var f=!this.lastViewport||!a.equals(this.lastViewport);if(!this.layersBoundsCommon)this.renderViewport=null;else if(_||f){var u=He(this.layersBoundsCommon,a);if(u[2]<=u[0]||u[3]<=u[1])return this.renderViewport=null,!1;this.bounds=u,this.lastViewport=a;var l=a.scale,c=(u[2]-u[0])*l,E=(u[3]-u[1])*l;return this.renderViewport=c>0||E>0?Xe({bounds:[a.center[0]-1,a.center[1]-1,a.center[0]+1,a.center[1]+1],zoom:a.zoom,width:Math.min(c,js),height:Math.min(E,js),viewport:a}):null,!0}return!1},t.delete=function(){this.fbo&&(this.fbo.colorAttachments[0].delete(),this.fbo.delete())},e}();function zc(e,t){return Zc(e)||$c(e,t)||Gs(e,t)||Gc()}function Gc(){throw new TypeError(`Invalid attempt to destructure non-iterable instance.
|
|
1565
|
-
In order to be iterable, non-array objects must have a [Symbol.iterator]() method.`)}function
|
|
1566
|
-
In order to be iterable, non-array objects must have a [Symbol.iterator]() method.`)}var
|
|
1560
|
+
`},getUniforms:function(){var t=arguments.length>0&&arguments[0]!==void 0?arguments[0]:{},r=arguments.length>1?arguments[1]:void 0;if("dummyHeightMap"in t){var i=t.drawToTerrainHeightMap,n=t.heightMap,o=t.heightMapBounds,s=t.dummyHeightMap,a=t.terrainCover,f=t.useTerrainHeightMap,l=t.terrainSkipRender,c=r.project_uCommonOrigin,u=l?ne.SKIP:ne.NONE,_=s,d=null;if(i)u=ne.WRITE_HEIGHT_MAP,d=o;else if(f&&n)u=ne.USE_HEIGHT_MAP,_=n,d=o;else if(a){var p,g=(p=t.picking)===null||p===void 0?void 0:p.isActive;_=g?a.getPickingFramebuffer():a.getRenderFramebuffer(),g&&(u=ne.SKIP),_?(u=u===ne.SKIP?ne.USE_COVER_ONLY:ne.USE_COVER,d=a.bounds):_=s}return{terrain_mode:u,terrain_map:_,terrain_bounds:d?[d[0]-c[0],d[1]-c[1],d[2]-d[0],d[3]-d[1]]:[0,0,0,0]}}return null}};function Vs(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var i=Object.getOwnPropertySymbols(e);t&&(i=i.filter(function(n){return Object.getOwnPropertyDescriptor(e,n).enumerable})),r.push.apply(r,i)}return r}function ks(e){for(var t=1;t<arguments.length;t++){var r=arguments[t]!=null?arguments[t]:{};t%2?Vs(Object(r),!0).forEach(function(i){O_(e,i,r[i])}):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(r)):Vs(Object(r)).forEach(function(i){Object.defineProperty(e,i,Object.getOwnPropertyDescriptor(r,i))})}return e}function O_(e,t,r){return t in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r,e}function ht(e,t){return e.createFramebuffer({id:t.id,colorAttachments:[e.createTexture(ks(ks({},t.float&&{format:e.info.type==="webgl2"?"rgba32float":"rgba8unorm",type:5126}),{},{mipmaps:!1,sampler:{minFilter:"linear",magFilter:"linear",addressModeU:"clamp-to-edge",addressModeV:"clamp-to-edge"}}))]})}function x_(e,t){var r=typeof Symbol<"u"&&e[Symbol.iterator]||e["@@iterator"];if(!r){if(Array.isArray(e)||(r=P_(e))||t&&e&&typeof e.length=="number"){r&&(e=r);var i=0,n=function(){};return{s:n,n:function(){return i>=e.length?{done:!0}:{done:!1,value:e[i++]}},e:function(l){throw l},f:n}}throw new TypeError(`Invalid attempt to iterate non-iterable instance.
|
|
1561
|
+
In order to be iterable, non-array objects must have a [Symbol.iterator]() method.`)}var o=!0,s=!1,a;return{s:function(){r=r.call(e)},n:function(){var l=r.next();return o=l.done,l},e:function(l){s=!0,a=l},f:function(){try{!o&&r.return!=null&&r.return()}finally{if(s)throw a}}}}function P_(e,t){if(e){if(typeof e=="string")return Ws(e,t);var r=Object.prototype.toString.call(e).slice(8,-1);if(r==="Object"&&e.constructor&&(r=e.constructor.name),r==="Map"||r==="Set")return Array.from(e);if(r==="Arguments"||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(r))return Ws(e,t)}}function Ws(e,t){(t==null||t>e.length)&&(t=e.length);for(var r=0,i=new Array(t);r<t;r++)i[r]=e[r];return i}function I_(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}function Hs(e,t){for(var r=0;r<t.length;r++){var i=t[r];i.enumerable=i.enumerable||!1,i.configurable=!0,"value"in i&&(i.writable=!0),Object.defineProperty(e,i.key,i)}}function F_(e,t,r){return t&&Hs(e.prototype,t),r&&Hs(e,r),e}var Xs=function(){function e(r){I_(this,e),this.isDirty=!0,this.targetLayer=void 0,this.renderViewport=null,this.bounds=null,this.fbo=void 0,this.pickingFbo=void 0,this.layers=[],this.tile=void 0,this.targetBounds=null,this.targetBoundsCommon=null,this.targetLayer=r,this.tile=Ls(r)}var t=e.prototype;return t.shouldUpdate=function(i){var n=i.targetLayer,o=i.viewport,s=i.layers,a=i.layerNeedsRedraw;n&&(this.targetLayer=n);var f=o?this._updateViewport(o):!1,l=s?this._updateLayers(s):!1;if(a){var c=x_(this.layers),u;try{for(c.s();!(u=c.n()).done;){var _=u.value;if(a[_]){l=!0;break}}}catch(d){c.e(d)}finally{c.f()}}return l||f},t._updateLayers=function(i){var n=!1;if(i=this.tile?C_(this.tile,i):i,i.length!==this.layers.length)n=!0;else for(var o=0;o<i.length;o++){var s=i[o].id;if(s!==this.layers[o]){n=!0;break}}return n&&(this.layers=i.map(function(a){return a.id})),n},t._updateViewport=function(i){var n=this.targetLayer,o=!1;if(this.tile&&"boundingBox"in this.tile){if(!this.targetBounds){o=!0,this.targetBounds=this.tile.boundingBox;var s=i.projectPosition(this.targetBounds[0]),a=i.projectPosition(this.targetBounds[1]);this.targetBoundsCommon=[s[0],s[1],a[0],a[1]]}}else this.targetBounds!==n.getBounds()&&(o=!0,this.targetBounds=n.getBounds(),this.targetBoundsCommon=Ue([n],i));if(!this.targetBoundsCommon)return!1;var f=Math.ceil(i.zoom+.5);if(this.tile)this.bounds=this.targetBoundsCommon;else{var l,c=(l=this.renderViewport)===null||l===void 0?void 0:l.zoom;o=o||f!==c;var u=ke(this.targetBoundsCommon,i),_=this.bounds;o=o||!_||u.some(function(d,p){return d!==_[p]}),this.bounds=u}return o&&(this.renderViewport=Ve({bounds:this.bounds,zoom:f,viewport:i})),o},t.getRenderFramebuffer=function(){return!this.renderViewport||this.layers.length===0?null:(this.fbo||(this.fbo=ht(this.targetLayer.context.device,{id:this.id})),this.fbo)},t.getPickingFramebuffer=function(){return!this.renderViewport||this.layers.length===0&&!this.targetLayer.props.pickable?null:(this.pickingFbo||(this.pickingFbo=ht(this.targetLayer.context.device,{id:"".concat(this.id,"-picking")})),this.pickingFbo)},t.filterLayers=function(i){var n=this;return i.filter(function(o){var s=o.id;return n.layers.includes(s)})},t.delete=function(){var i=this.fbo,n=this.pickingFbo;i&&(i.colorAttachments[0].destroy(),i.destroy()),n&&(n.colorAttachments[0].destroy(),n.destroy())},F_(e,[{key:"id",get:function(){return this.targetLayer.id}},{key:"isActive",get:function(){return Boolean(this.targetLayer.getCurrentLayer())}}]),e}();function C_(e,t){return t.filter(function(r){var i=Ls(r);return i?M_(e.boundingBox,i.boundingBox):!0})}function Ls(e){for(;e;){var t=e.props.tile;if(t)return t;e=e.parent}return null}function M_(e,t){return e&&t?e[0][0]<t[1][0]&&t[0][0]<e[1][0]&&e[0][1]<t[1][1]&&t[0][1]<e[1][1]:!1}var Ks=T(S());function Pr(e){return typeof Symbol=="function"&&typeof Symbol.iterator=="symbol"?Pr=function(r){return typeof r}:Pr=function(r){return r&&typeof Symbol=="function"&&r.constructor===Symbol&&r!==Symbol.prototype?"symbol":typeof r},Pr(e)}function js(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var i=Object.getOwnPropertySymbols(e);t&&(i=i.filter(function(n){return Object.getOwnPropertyDescriptor(e,n).enumerable})),r.push.apply(r,i)}return r}function xr(e){for(var t=1;t<arguments.length;t++){var r=arguments[t]!=null?arguments[t]:{};t%2?js(Object(r),!0).forEach(function(i){N_(e,i,r[i])}):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(r)):js(Object(r)).forEach(function(i){Object.defineProperty(e,i,Object.getOwnPropertyDescriptor(r,i))})}return e}function N_(e,t,r){return t in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r,e}function B_(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}function D_(e,t){if(typeof t!="function"&&t!==null)throw new TypeError("Super expression must either be null or a function");e.prototype=Object.create(t&&t.prototype,{constructor:{value:e,writable:!0,configurable:!0}}),t&&Pi(e,t)}function Pi(e,t){return Pi=Object.setPrototypeOf||function(i,n){return i.__proto__=n,i},Pi(e,t)}function w_(e){var t=k_();return function(){var i=Ir(e),n;if(t){var o=Ir(this).constructor;n=Reflect.construct(i,arguments,o)}else n=i.apply(this,arguments);return U_(this,n)}}function U_(e,t){if(t&&(Pr(t)==="object"||typeof t=="function"))return t;if(t!==void 0)throw new TypeError("Derived constructors may only return object or undefined");return V_(e)}function V_(e){if(e===void 0)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return e}function k_(){if(typeof Reflect>"u"||!Reflect.construct||Reflect.construct.sham)return!1;if(typeof Proxy=="function")return!0;try{return Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],function(){})),!0}catch{return!1}}function Ir(e){return Ir=Object.setPrototypeOf?Object.getPrototypeOf:function(r){return r.__proto__||Object.getPrototypeOf(r)},Ir(e)}var zs=function(e){D_(r,e);var t=w_(r);function r(){return B_(this,r),t.apply(this,arguments)}var i=r.prototype;return i.getRenderableLayers=function(o,s){for(var a=s.layers,f=[],l=this._getDrawLayerParams(o,s,!0),c=0;c<a.length;c++){var u=a[c];!u.isComposite&&l[c].shouldDrawLayer&&f.push(u)}return f},i.renderHeightMap=function(o,s){var a=this,f=o.getRenderFramebuffer(),l=o.renderViewport;!f||!l||(f.resize(l),P(this.device,{clearColor:[0,0,0,0],blend:!0,blendFunc:[1,1],blendEquation:32776,depthTest:!1},function(){return a.render(xr(xr({},s),{},{target:f,pass:"terrain-height-map",layers:s.layers,viewports:[l],effects:[]}))}))},i.renderTerrainCover=function(o,s){var a=this,f=o.getRenderFramebuffer(),l=o.renderViewport;if(!(!f||!l)){var c=o.filterLayers(s.layers);f.resize(l),P(this.device,{clearColor:[0,0,0,0],depthTest:!1},function(){return a.render(xr(xr({},s),{},{target:f,pass:"terrain-cover-".concat(o.id),layers:c,effects:[],viewports:[l]}))})}},r}(Ks._LayersPass);var qs=T(S());function Fr(e){return typeof Symbol=="function"&&typeof Symbol.iterator=="symbol"?Fr=function(r){return typeof r}:Fr=function(r){return r&&typeof Symbol=="function"&&r.constructor===Symbol&&r!==Symbol.prototype?"symbol":typeof r},Fr(e)}function Ys(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var i=Object.getOwnPropertySymbols(e);t&&(i=i.filter(function(n){return Object.getOwnPropertyDescriptor(e,n).enumerable})),r.push.apply(r,i)}return r}function $s(e){for(var t=1;t<arguments.length;t++){var r=arguments[t]!=null?arguments[t]:{};t%2?Ys(Object(r),!0).forEach(function(i){W_(e,i,r[i])}):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(r)):Ys(Object(r)).forEach(function(i){Object.defineProperty(e,i,Object.getOwnPropertyDescriptor(r,i))})}return e}function W_(e,t,r){return t in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r,e}function H_(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}function Cr(e,t,r){return typeof Reflect<"u"&&Reflect.get?Cr=Reflect.get:Cr=function(n,o,s){var a=X_(n,o);if(a){var f=Object.getOwnPropertyDescriptor(a,o);return f.get?f.get.call(s):f.value}},Cr(e,t,r||e)}function X_(e,t){for(;!Object.prototype.hasOwnProperty.call(e,t)&&(e=We(e),e!==null););return e}function L_(e,t){if(typeof t!="function"&&t!==null)throw new TypeError("Super expression must either be null or a function");e.prototype=Object.create(t&&t.prototype,{constructor:{value:e,writable:!0,configurable:!0}}),t&&Ii(e,t)}function Ii(e,t){return Ii=Object.setPrototypeOf||function(i,n){return i.__proto__=n,i},Ii(e,t)}function j_(e){var t=Y_();return function(){var i=We(e),n;if(t){var o=We(this).constructor;n=Reflect.construct(i,arguments,o)}else n=i.apply(this,arguments);return K_(this,n)}}function K_(e,t){if(t&&(Fr(t)==="object"||typeof t=="function"))return t;if(t!==void 0)throw new TypeError("Derived constructors may only return object or undefined");return z_(e)}function z_(e){if(e===void 0)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return e}function Y_(){if(typeof Reflect>"u"||!Reflect.construct||Reflect.construct.sham)return!1;if(typeof Proxy=="function")return!0;try{return Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],function(){})),!0}catch{return!1}}function We(e){return We=Object.setPrototypeOf?Object.getPrototypeOf:function(r){return r.__proto__||Object.getPrototypeOf(r)},We(e)}var Zs=function(e){L_(r,e);var t=j_(r);function r(){var n;H_(this,r);for(var o=arguments.length,s=new Array(o),a=0;a<o;a++)s[a]=arguments[a];return n=t.call.apply(t,[this].concat(s)),n.drawParameters={},n}var i=r.prototype;return i.getRenderableLayers=function(o,s){var a=s.layers,f=[];this.drawParameters={},this._resetColorEncoder(s.pickZ);for(var l=this._getDrawLayerParams(o,s),c=0;c<a.length;c++){var u=a[c];!u.isComposite&&l[c].shouldDrawLayer&&(f.push(u),this.drawParameters[u.id]=l[c].layerParameters)}return f},i.renderTerrainCover=function(o,s){var a=this,f=o.getPickingFramebuffer(),l=o.renderViewport;if(!(!f||!l)){var c=o.filterLayers(s.layers),u=o.targetLayer;u.props.pickable&&c.unshift(u),f.resize(l),P(this.device,{depthTest:!1},function(){return a.render($s($s({},s),{},{pickingFBO:f,pass:"terrain-cover-picking-".concat(o.id),layers:c,effects:[],viewports:[l],cullRect:void 0,deviceRect:l,pickZ:!1}))})}},i.getLayerParameters=function(o,s,a){if(this.drawParameters[o.id])return this.drawParameters[o.id];var f=Cr(We(r.prototype),"getLayerParameters",this).call(this,o,s,a);return f.blend=!0,f},r}(qs._PickLayersPass);function $_(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}var Qs=2048,Fi=function(){e.isSupported=function(i){return i.isTextureFormatRenderable("rgba32float")};function e(r){$_(this,e),this.renderViewport=null,this.bounds=null,this.fbo=void 0,this.device=void 0,this.layers=[],this.layersBounds=[],this.layersBoundsCommon=null,this.lastViewport=null,this.device=r}var t=e.prototype;return t.getRenderFramebuffer=function(){return this.renderViewport?(this.fbo||(this.fbo=ht(this.device,{id:"height-map",float:!0})),this.fbo):null},t.shouldUpdate=function(i){var n=this,o=i.layers,s=i.viewport,a=o.length!==this.layers.length||o.some(function(d,p){return d!==n.layers[p]||d.props.transitions||d.getBounds()!==n.layersBounds[p]});a&&(this.layers=o,this.layersBounds=o.map(function(d){return d.getBounds()}),this.layersBoundsCommon=Ue(o,s));var f=!this.lastViewport||!s.equals(this.lastViewport);if(!this.layersBoundsCommon)this.renderViewport=null;else if(a||f){var l=ke(this.layersBoundsCommon,s);if(l[2]<=l[0]||l[3]<=l[1])return this.renderViewport=null,!1;this.bounds=l,this.lastViewport=s;var c=s.scale,u=(l[2]-l[0])*c,_=(l[3]-l[1])*c;return this.renderViewport=u>0||_>0?Ve({bounds:[s.center[0]-1,s.center[1]-1,s.center[0]+1,s.center[1]+1],zoom:s.zoom,width:Math.min(u,Qs),height:Math.min(_,Qs),viewport:s}):null,!0}return!1},t.delete=function(){this.fbo&&(this.fbo.colorAttachments[0].delete(),this.fbo.delete())},e}();function q_(e,t){return J_(e)||Q_(e,t)||ea(e,t)||Z_()}function Z_(){throw new TypeError(`Invalid attempt to destructure non-iterable instance.
|
|
1562
|
+
In order to be iterable, non-array objects must have a [Symbol.iterator]() method.`)}function Q_(e,t){var r=e==null?null:typeof Symbol<"u"&&e[Symbol.iterator]||e["@@iterator"];if(r!=null){var i=[],n=!0,o=!1,s,a;try{for(r=r.call(e);!(n=(s=r.next()).done)&&(i.push(s.value),!(t&&i.length===t));n=!0);}catch(f){o=!0,a=f}finally{try{!n&&r.return!=null&&r.return()}finally{if(o)throw a}}return i}}function J_(e){if(Array.isArray(e))return e}function Js(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var i=Object.getOwnPropertySymbols(e);t&&(i=i.filter(function(n){return Object.getOwnPropertyDescriptor(e,n).enumerable})),r.push.apply(r,i)}return r}function Mr(e){for(var t=1;t<arguments.length;t++){var r=arguments[t]!=null?arguments[t]:{};t%2?Js(Object(r),!0).forEach(function(i){G_(e,i,r[i])}):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(r)):Js(Object(r)).forEach(function(i){Object.defineProperty(e,i,Object.getOwnPropertyDescriptor(r,i))})}return e}function G_(e,t,r){return t in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r,e}function He(e,t){var r=typeof Symbol<"u"&&e[Symbol.iterator]||e["@@iterator"];if(!r){if(Array.isArray(e)||(r=ea(e))||t&&e&&typeof e.length=="number"){r&&(e=r);var i=0,n=function(){};return{s:n,n:function(){return i>=e.length?{done:!0}:{done:!1,value:e[i++]}},e:function(l){throw l},f:n}}throw new TypeError(`Invalid attempt to iterate non-iterable instance.
|
|
1563
|
+
In order to be iterable, non-array objects must have a [Symbol.iterator]() method.`)}var o=!0,s=!1,a;return{s:function(){r=r.call(e)},n:function(){var l=r.next();return o=l.done,l},e:function(l){s=!0,a=l},f:function(){try{!o&&r.return!=null&&r.return()}finally{if(s)throw a}}}}function ea(e,t){if(e){if(typeof e=="string")return Gs(e,t);var r=Object.prototype.toString.call(e).slice(8,-1);if(r==="Object"&&e.constructor&&(r=e.constructor.name),r==="Map"||r==="Set")return Array.from(e);if(r==="Arguments"||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(r))return Gs(e,t)}}function Gs(e,t){(t==null||t>e.length)&&(t=e.length);for(var r=0,i=new Array(t);r<t;r++)i[r]=e[r];return i}function ed(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}var ta=function(){function e(){ed(this,e),this.id="terrain-effect",this.props=null,this.useInPicking=!0,this.isPicking=!1,this.isDrapingEnabled=!1,this.dummyHeightMap=void 0,this.heightMap=void 0,this.terrainPass=void 0,this.terrainPickingPass=void 0,this.terrainCovers=new Map}var t=e.prototype;return t.initialize=function(i){this.dummyHeightMap=i.createTexture({width:1,height:1,data:new Uint8Array([0,0,0,0])}),this.terrainPass=new zs(i,{id:"terrain"}),this.terrainPickingPass=new Zs(i,{id:"terrain-picking"}),Fi.isSupported(i)?this.heightMap=new Fi(i):Nr.log.warn("Terrain offset mode is not supported by this browser")(),(0,Nr.getShaderAssembler)().addDefaultModule(Or)},t.preRender=function(i,n){if(!this.dummyHeightMap){this.initialize(i);var o=He(n.layers),s;try{for(o.s();!(s=o.n()).done;){var a=s.value;a.props.operation.includes("terrain")&&a.setChangeFlags({extensionsChanged:!0})}}catch(h){o.e(h)}finally{o.f()}}if(n.pickZ){this.isDrapingEnabled=!1;return}var f=n.viewports,l=n.isPicking,c=l===void 0?!1:l;this.isPicking=c,this.isDrapingEnabled=!0;var u=f[0],_=(c?this.terrainPickingPass:this.terrainPass).getRenderableLayers(u,n),d=_.filter(function(h){return h.props.operation.includes("terrain")});if(d.length!==0){if(!c){var p=_.filter(function(h){return h.state.terrainDrawMode==="offset"});p.length>0&&this._updateHeightMap(d,u,n)}var g=_.filter(function(h){return h.state.terrainDrawMode==="drape"});this._updateTerrainCovers(d,g,u,n)}},t.getModuleParameters=function(i){var n,o,s=i.state.terrainDrawMode;return{heightMap:(n=this.heightMap)===null||n===void 0?void 0:n.getRenderFramebuffer(),heightMapBounds:(o=this.heightMap)===null||o===void 0?void 0:o.bounds,dummyHeightMap:this.dummyHeightMap,terrainCover:this.isDrapingEnabled?this.terrainCovers.get(i.id):null,useTerrainHeightMap:s==="offset",terrainSkipRender:s==="drape"||!i.props.operation.includes("draw")}},t.cleanup=function(){this.dummyHeightMap&&(this.dummyHeightMap.delete(),this.dummyHeightMap=void 0),this.heightMap&&(this.heightMap.delete(),this.heightMap=void 0);var i=He(this.terrainCovers.values()),n;try{for(i.s();!(n=i.n()).done;){var o=n.value;o.delete()}}catch(s){i.e(s)}finally{i.f()}this.terrainCovers.clear()},t._updateHeightMap=function(i,n,o){if(this.heightMap){var s=this.heightMap.shouldUpdate({layers:i,viewport:n});s&&this.terrainPass.renderHeightMap(this.heightMap,Mr(Mr({},o),{},{layers:i,moduleParameters:{heightMapBounds:this.heightMap.bounds,dummyHeightMap:this.dummyHeightMap,devicePixelRatio:1,drawToTerrainHeightMap:!0}}))}},t._updateTerrainCovers=function(i,n,o,s){var a={},f=He(n),l;try{for(f.s();!(l=f.n()).done;){var c=l.value;c.state.terrainCoverNeedsRedraw&&(a[c.id]=!0,c.state.terrainCoverNeedsRedraw=!1)}}catch(R){f.e(R)}finally{f.f()}var u=He(this.terrainCovers.values()),_;try{for(u.s();!(_=u.n()).done;){var d=_.value;d.isDirty=d.isDirty||d.shouldUpdate({layerNeedsRedraw:a})}}catch(R){u.e(R)}finally{u.f()}var p=He(i),g;try{for(p.s();!(g=p.n()).done;){var h=g.value;this._updateTerrainCover(h,n,o,s)}}catch(R){p.e(R)}finally{p.f()}this.isPicking||this._pruneTerrainCovers()},t._updateTerrainCover=function(i,n,o,s){var a=this.isPicking?this.terrainPickingPass:this.terrainPass,f=this.terrainCovers.get(i.id);f||(f=new Xs(i),this.terrainCovers.set(i.id,f));try{var l=f.shouldUpdate({targetLayer:i,viewport:o,layers:n});(this.isPicking||f.isDirty||l)&&(a.renderTerrainCover(f,Mr(Mr({},s),{},{layers:n,moduleParameters:{dummyHeightMap:this.dummyHeightMap,terrainSkipRender:!1,devicePixelRatio:1}})),f.isDirty=!1)}catch(c){i.raiseError(c,"Error rendering terrain cover ".concat(f.id))}},t._pruneTerrainCovers=function(){var i=[],n=He(this.terrainCovers),o;try{for(n.s();!(o=n.n()).done;){var s=q_(o.value,2),a=s[0],f=s[1];f.isActive||i.push(a)}}catch(_){n.e(_)}finally{n.f()}for(var l=0,c=i;l<c.length;l++){var u=c[l];this.terrainCovers.delete(u)}},e}();function Br(e){return typeof Symbol=="function"&&typeof Symbol.iterator=="symbol"?Br=function(r){return typeof r}:Br=function(r){return r&&typeof Symbol=="function"&&r.constructor===Symbol&&r!==Symbol.prototype?"symbol":typeof r},Br(e)}function td(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}function rd(e,t){if(typeof t!="function"&&t!==null)throw new TypeError("Super expression must either be null or a function");e.prototype=Object.create(t&&t.prototype,{constructor:{value:e,writable:!0,configurable:!0}}),t&&Ci(e,t)}function Ci(e,t){return Ci=Object.setPrototypeOf||function(i,n){return i.__proto__=n,i},Ci(e,t)}function id(e){var t=sd();return function(){var i=Dr(e),n;if(t){var o=Dr(this).constructor;n=Reflect.construct(i,arguments,o)}else n=i.apply(this,arguments);return nd(this,n)}}function nd(e,t){if(t&&(Br(t)==="object"||typeof t=="function"))return t;if(t!==void 0)throw new TypeError("Derived constructors may only return object or undefined");return od(e)}function od(e){if(e===void 0)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return e}function sd(){if(typeof Reflect>"u"||!Reflect.construct||Reflect.construct.sham)return!1;if(typeof Proxy=="function")return!0;try{return Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],function(){})),!0}catch{return!1}}function Dr(e){return Dr=Object.setPrototypeOf?Object.getPrototypeOf:function(r){return r.__proto__||Object.getPrototypeOf(r)},Dr(e)}var ad={terrainDrawMode:void 0},wr=function(e){rd(r,e);var t=id(r);function r(){return td(this,r),t.apply(this,arguments)}var i=r.prototype;return i.getShaders=function(){return{modules:[Or]}},i.initializeState=function(){var o;(o=this.context.deck)===null||o===void 0||o._addDefaultEffect(new ta)},i.updateState=function(o){var s=o.props,a=o.oldProps;if(!(this.state.terrainDrawMode&&s.terrainDrawMode===a.terrainDrawMode&&s.extruded===a.extruded)){var f=s.terrainDrawMode;if(!f){var l,c=this.props.extruded,u=(l=this.getAttributeManager())===null||l===void 0?void 0:l.attributes,_=u&&"instancePositions"in u;f=c||_?"offset":"drape"}this.setState({terrainDrawMode:f})}},i.onNeedsRedraw=function(){var o=this.state;o.terrainDrawMode==="drape"&&(o.terrainCoverNeedsRedraw=!0)},r}(ra.LayerExtension);wr.defaultProps=ad;wr.extensionName="TerrainExtension";return ca(gt);})();
|
|
1567
1564
|
return __exports__;
|
|
1568
1565
|
});
|