@deck.gl/extensions 9.0.0-alpha.3 → 9.0.0-alpha.4
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 +2064 -2061
- package/dist/es5/collision-filter/collision-filter-effect.js +6 -9
- package/dist/es5/collision-filter/collision-filter-effect.js.map +1 -1
- package/dist/es5/collision-filter/collision-filter-pass.js +2 -1
- 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/mask/mask-pass.js +2 -1
- package/dist/es5/mask/mask-pass.js.map +1 -1
- package/dist/esm/collision-filter/collision-filter-effect.js +6 -8
- package/dist/esm/collision-filter/collision-filter-effect.js.map +1 -1
- package/dist/esm/collision-filter/collision-filter-pass.js +2 -1
- package/dist/esm/collision-filter/collision-filter-pass.js.map +1 -1
- package/dist/esm/collision-filter/shader-module.js +1 -1
- package/dist/esm/collision-filter/shader-module.js.map +1 -1
- package/dist/esm/mask/mask-pass.js +2 -1
- package/dist/esm/mask/mask-pass.js.map +1 -1
- package/dist.min.js +108 -108
- package/package.json +2 -2
- package/src/collision-filter/collision-filter-effect.ts +4 -7
- package/src/collision-filter/collision-filter-pass.ts +2 -2
- package/src/collision-filter/shader-module.ts +4 -3
- package/src/mask/mask-pass.ts +2 -2
- package/typed/collision-filter/collision-filter-effect.d.ts.map +1 -1
- package/typed/collision-filter/shader-module.d.ts +7 -1
- package/typed/collision-filter/shader-module.d.ts.map +1 -1
- package/LICENSE +0 -19
package/dist.min.js
CHANGED
|
@@ -4,7 +4,7 @@
|
|
|
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 Qs=Object.create;var pt=Object.defineProperty;var Js=Object.getOwnPropertyDescriptor;var ea=Object.getOwnPropertyNames;var ta=Object.getPrototypeOf,ra=Object.prototype.hasOwnProperty;var Ln=(e,t)=>()=>(t||e((t={exports:{}}).exports,t),t.exports),Xn=(e,t)=>{for(var r in t)pt(e,r,{get:t[r],enumerable:!0})},Rt=(e,t,r,n)=>{if(t&&typeof t=="object"||typeof t=="function")for(let o of ea(t))!ra.call(e,o)&&o!==r&&pt(e,o,{get:()=>t[o],enumerable:!(n=Js(t,o))||n.enumerable});return e},le=(e,t,r)=>(Rt(e,t,"default"),r&&Rt(r,t,"default")),A=(e,t,r)=>(r=e!=null?Qs(ta(e)):{},Rt(t||!e||!e.__esModule?pt(r,"default",{value:e,enumerable:!0}):r,e)),na=e=>Rt(pt({},"__esModule",{value:!0}),e);var N=Ln((_E,Hn)=>{Hn.exports=globalThis.deck});var g=Ln((dE,zn)=>{zn.exports=globalThis.luma});var dt={};Xn(dt,{BrushingExtension:()=>ht,ClipExtension:()=>cr,CollisionFilterExtension:()=>Sr,DataFilterExtension:()=>$t,FillStyleExtension:()=>fr,Fp64Extension:()=>On,MaskExtension:()=>br,PathStyleExtension:()=>sr,_TerrainExtension:()=>Dr,project64:()=>tr});var Q={},Vn=A(N());le(Q,A(N()));if(!Vn.Layer)throw new Error("@deck.gl/core is not found");le(dt,Q);var Kn=A(N());var Wn=A(N()),ia=`
|
|
8
8
|
uniform bool brushing_enabled;
|
|
9
9
|
uniform int brushing_target;
|
|
10
10
|
uniform vec2 brushing_mousePos;
|
|
@@ -36,10 +36,10 @@
|
|
|
36
36
|
void brushing_setVisible(bool visible) {
|
|
37
37
|
brushing_isVisible = float(visible);
|
|
38
38
|
}
|
|
39
|
-
`,
|
|
39
|
+
`,oa=`
|
|
40
40
|
uniform bool brushing_enabled;
|
|
41
41
|
varying float brushing_isVisible;
|
|
42
|
-
`,
|
|
42
|
+
`,sa={source:0,target:1,custom:2,source_target:3},aa={"vs:DECKGL_FILTER_GL_POSITION":`
|
|
43
43
|
vec2 brushingTarget;
|
|
44
44
|
vec2 brushingSource;
|
|
45
45
|
if (brushing_target == 3) {
|
|
@@ -67,10 +67,10 @@
|
|
|
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?
|
|
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
|
+
`},kn={name:"brushing",dependencies:[Wn.project],vs:ia,fs:oa,inject:aa,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:sa[_]||0,brushing_mousePos:f?u.unproject([f.x-u.x,f.y-u.y]):[0,0]}}};function Tt(e){return typeof Symbol=="function"&&typeof Symbol.iterator=="symbol"?Tt=function(r){return typeof r}:Tt=function(r){return r&&typeof Symbol=="function"&&r.constructor===Symbol&&r!==Symbol.prototype?"symbol":typeof r},Tt(e)}function _a(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}function fa(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(n,o){return n.__proto__=o,n},Ur(e,t)}function ua(e){var t=Ea();return function(){var n=At(e),o;if(t){var s=At(this).constructor;o=Reflect.construct(n,arguments,s)}else o=n.apply(this,arguments);return la(this,o)}}function la(e,t){if(t&&(Tt(t)==="object"||typeof t=="function"))return t;if(t!==void 0)throw new TypeError("Derived constructors may only return object or undefined");return ca(e)}function ca(e){if(e===void 0)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return e}function Ea(){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 At(e){return At=Object.setPrototypeOf?Object.getPrototypeOf:function(r){return r.__proto__||Object.getPrototypeOf(r)},At(e)}var da={getBrushingTarget:{type:"accessor",value:[0,0]},brushingTarget:"source",brushingEnabled:!0,brushingRadius:1e4},ht=function(e){fa(r,e);var t=ua(r);function r(){return _a(this,r),t.apply(this,arguments)}var n=r.prototype;return n.getShaders=function(){return{modules:[kn]}},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=da;ht.extensionName="BrushingExtension";var Ra="Failed to create WebGL context in Node.js, headless gl returned null",pa=" 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},wr=null;function jn(){return wr!==null}function Yn(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(!wr)throw new Error(pa);let s=wr(t,r,e);if(!s)throw new Error(Ra);return s}var C=A(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,hE=globalThis.window||globalThis.self||globalThis.global,mE=globalThis.document||{},SE=globalThis.process||{},gE=globalThis.console,Gn=globalThis.navigator||{};var Lr=globalThis;function mt(e){if(!e&&!Y())return"Node";if(je(e))return"Electron";let t=e||Gn.userAgent||"";if(t.indexOf("Edge")>-1)return"Edge";let r=t.indexOf("MSIE ")!==-1,n=t.indexOf("Trident/")!==-1;return r||n?"IE":Lr.chrome?"Chrome":Lr.safari?"Safari":Lr.mozInnerScreenX?"Firefox":"Unknown"}var ri=A(g(),1);var Ye={};function Aa(e){globalThis.console&&globalThis.console.error&&globalThis.console.error(e)}function ha(e){globalThis.console&&globalThis.console.log&&globalThis.console.log(e)}function ma(e,t){Ye[e]=!0,t!==void 0&&Aa(t)}function Sa(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,Sa(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",()=>{ha("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){ma(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 $n(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=A(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 Xr=A(g(),1),ga="Invalid WebGLRenderingContext";var Oa="Requires WebGL2";function ba(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 Hr(e){return S(e)?e:null}function Zn(e){return(0,Xr.assert)(ba(e),ga),e}function St(e){return(0,Xr.assert)(S(e),Oa),e}var qn="OES_element_index",Qn="WEBGL_draw_buffers",Na="EXT_disjoint_timer_query",Ia="EXT_disjoint_timer_query_webgl2",Pa="EXT_texture_filter_anisotropic",Jn="WEBGL_debug_renderer_info",va=35723,Fa=4352,Ca=36795,Ma=34047,ya=37445,xa=37446,I=e=>S(e)?void 0:0,Ba={[i.READ_BUFFER]:e=>S(e)?void 0:i.COLOR_ATTACHMENT0,[va]:e=>S(e)?void 0:Fa,[i.RASTERIZER_DISCARD]:I,[i.SAMPLES]:I,[Ca]:(e,t)=>{let r=S(e)?e.getExtension(Ia):e.getExtension(Na);return r&&r.GPU_DISJOINT_EXT?t(r.GPU_DISJOINT_EXT):0},[ya]:(e,t)=>{let r=e.getExtension(Jn);return t(r&&r.UNMASKED_VENDOR_WEBGL||i.VENDOR)},[xa]:(e,t)=>{let r=e.getExtension(Jn);return t(r&&r.UNMASKED_RENDERER_WEBGL||i.RENDERER)},[Ma]:(e,t)=>{var r;let n=((r=e.luma)===null||r===void 0||(r=r.extensions)===null||r===void 0?void 0:r[Pa])||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(qn)?2147483647:65535,[i.MAX_ELEMENTS_INDICES]:e=>e.getExtension(qn)?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 ei(e,t,r){let n=Ba[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 Da="OES_vertex_array_object",ti="ANGLE_instanced_arrays",Ua="WEBGL_draw_buffers",wa="EXT_disjoint_timer_query",La="EXT_texture_filter_anisotropic",Xa="VertexArray requires WebGL2 or OES_vertex_array_object extension";function Ha(e,t){return{webgl2:S(e),ext:e.getExtension(t)}}var Vr={[Da]:{meta:{suffix:"OES"},createVertexArray:()=>{(0,Se.assert)(!1,Xa)},deleteVertexArray:()=>{},bindVertexArray:()=>{},isVertexArray:()=>!1},[ti]:{meta:{suffix:"ANGLE"},vertexAttribDivisor(e,t){(0,Se.assert)(t===0,"WebGL instanced rendering not supported")},drawElementsInstanced:()=>{},drawArraysInstanced:()=>{}},[Ua]:{meta:{suffix:"WEBGL"},drawBuffers:()=>{(0,Se.assert)(!1)}},[wa]:{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}=Ha(e,ti),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[La];n=a&&a.TEXTURE_MAX_ANISOTROPY_EXT||i.TEXTURE_MAX_ANISOTROPY_EXT;break;default:}return t(r,n)},getParameter:ei,hint(e,t,r,n){return t(r,n)}};function ni(e){let t=ve(e);return t._polyfilled||($n(e),Va(e),Wa(e,Vr),Ka(e,{target:t,target2:e}),t._polyfilled=!0),e}function Va(e){let t=ve(e),r=e.getSupportedExtensions()||[];for(let n of r){let o=e.getExtension(n);t._extensions[n]=o}}function Wa(e,t){let r=ve(e);for(let n of Object.getOwnPropertyNames(t))n!=="overrides"&&ka(e,{extension:n,target:r,target2:e})}function ka(e,t){let{extension:r,target:n,target2:o}=t,s=Vr[r];(0,ri.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=A(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),ii=(e,t,r)=>e.hint(r,t),H=(e,t,r)=>e.pixelStorei(r,t),oi=(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 Wr(e){return Array.isArray(e)||ArrayBuffer.isView(e)&&!(e instanceof DataView)}var si={[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]:ii,[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]:oi,[i.READ_FRAMEBUFFER_BINDING]:oi,[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]:ii,[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=Wr(t)?t:[t,t];let[r,n]=t;e.stencilMaskSeparate(i.FRONT,r),e.stencilMaskSeparate(i.BACK,n)},stencilFunc:(e,t)=>{t=Wr(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=Wr(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 ai={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))},kr={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},_i=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(ja(t))return;let o={};for(let a in t){let _=Number(a),f=si[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 _=ai[a];_(n,t,s)}}function fi(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 ja(e){for(let t in e)return!1;return!0}function ui(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 jr=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?fi(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];ui(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 Yr(e,t){let{enable:r=!0,copyState:n}=t;if((0,$e.assert)(n!==void 0),!e.state){e.state=new jr(e,{copyState:n}),za(e);for(let s in kr){let a=kr[s];Ya(e,s,a)}li(e,"getParameter"),li(e,"isEnabled")}let o=ge(e);return o.enable=r,e}function Fe(e){let t=ge(e);t||(Yr(e,{copyState:!1}),t=ge(e)),t.push()}function Oe(e){let t=ge(e);(0,$e.assert)(t),t.pop()}function li(e,t){let r=e[t].bind(e);e[t]=function(o){if(o===void 0||_i.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 Ya(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 za(e){let t=e.useProgram.bind(e);e.useProgram=function(n){let o=ge(e);o.program!==n&&(t(n),o.program=n)}}var Ga={webgl2:!0,webgl1:!0,powerPreference:"high-performance",onContextLost:()=>console.error("WebGL context lost"),onContextRestored:()=>console.info("WebGL context restored")};function ci(e,t){t={...Ga,...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 Ei(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=$a(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 $a(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 di(){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 $r=A(g(),1);function bt(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 D="texture-compression-bc",O="texture-compression-astc",te="texture-compression-etc2",Za="texture-compression-etc1-webgl",Nt="texture-compression-pvrtc-webgl",zr="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",qa="WEBGL_compressed_texture_etc",Qa="WEBGL_compressed_texture_astc",Ja="WEBGL_compressed_texture_etc1",e_="WEBGL_compressed_texture_pvrtc",t_="WEBGL_compressed_texture_atc",Ri="EXT_sRGB",se="EXT_texture_norm16",r_="WEBGL_color_buffer_float",n_="EXT_color_buffer_float",z=(e,t)=>e.getExtension(t),be=(e,t)=>t.every(r=>e.getExtension(r)),Gr={"texture-blend-float-webgl1":e=>S(e)?!0:z(e,"EXT_float_blend"),"texture-formats-srgb-webgl1":e=>S(e)?!0:z(e,Ri),"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=>be(e,[Ze,qe,Ce,Qe]),"texture-compression-bc5-webgl":e=>be(e,[Ce]),"texture-compression-etc2":e=>be(e,[qa]),"texture-compression-astc":e=>be(e,[Qa]),"texture-compression-etc1-webgl":e=>be(e,[Ja]),"texture-compression-pvrtc-webgl":e=>be(e,[e_]),"texture-compression-atc-webgl":e=>be(e,[t_])};function i_(e,t){var r;return((r=Gr[t])===null||r===void 0?void 0:r.call(Gr,e))||!1}function pi(e){return Object.keys(Gr).filter(r=>i_(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:Ri,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:n_,gl1ext:r_,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:D},"bc1-rgb-unorm-srgb-webgl":{gl:i.COMPRESSED_SRGB_S3TC_DXT1_EXT,x:qe,f:D},"bc1-rgba-unorm":{gl:i.COMPRESSED_RGBA_S3TC_DXT1_EXT,x:Ze,f:D},"bc1-rgba-unorm-srgb":{gl:i.COMPRESSED_SRGB_S3TC_DXT1_EXT,x:qe,f:D},"bc2-rgba-unorm":{gl:i.COMPRESSED_RGBA_S3TC_DXT3_EXT,x:Ze,f:D},"bc2-rgba-unorm-srgb":{gl:i.COMPRESSED_SRGB_ALPHA_S3TC_DXT3_EXT,x:qe,f:D},"bc3-rgba-unorm":{gl:i.COMPRESSED_RGBA_S3TC_DXT5_EXT,x:Ze,f:D},"bc3-rgba-unorm-srgb":{gl:i.COMPRESSED_SRGB_ALPHA_S3TC_DXT5_EXT,x:qe,f:D},"bc4-r-unorm":{gl:i.COMPRESSED_RED_RGTC1_EXT,x:Ce,f:D},"bc4-r-snorm":{gl:i.COMPRESSED_SIGNED_RED_RGTC1_EXT,x:Ce,f:D},"bc5-rg-unorm":{gl:i.COMPRESSED_RED_GREEN_RGTC2_EXT,x:Ce,f:D},"bc5-rg-snorm":{gl:i.COMPRESSED_SIGNED_RED_GREEN_RGTC2_EXT,x:Ce,f:D},"bc6h-rgb-ufloat":{gl:i.COMPRESSED_RGB_BPTC_UNSIGNED_FLOAT_EXT,x:Qe,f:D},"bc6h-rgb-float":{gl:i.COMPRESSED_RGB_BPTC_SIGNED_FLOAT_EXT,x:Qe,f:D},"bc7-rgba-unorm":{gl:i.COMPRESSED_RGBA_BPTC_UNORM_EXT,x:Qe,f:D},"bc7-rgba-unorm-srgb":{gl:i.COMPRESSED_SRGB_ALPHA_BPTC_UNORM_EXT,x:Qe,f:D},"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:Nt},"pvrtc-rgba4unorm-webgl":{gl:i.COMPRESSED_RGBA_PVRTC_4BPPV1_IMG,f:Nt},"pvrtc-rbg2unorm-webgl":{gl:i.COMPRESSED_RGB_PVRTC_2BPPV1_IMG,f:Nt},"pvrtc-rgba2unorm-webgl":{gl:i.COMPRESSED_RGBA_PVRTC_2BPPV1_IMG,f:Nt},"etc1-rbg-unorm-webgl":{gl:i.COMPRESSED_RGB_ETC1_WEBGL,f:Za},"atc-rgb-unorm-webgl":{gl:i.COMPRESSED_RGB_ATC_WEBGL,f:zr},"atc-rgba-unorm-webgl":{gl:i.COMPRESSED_RGBA_ATC_EXPLICIT_ALPHA_WEBGL,f:zr},"atc-rgbai-unorm-webgl":{gl:i.COMPRESSED_RGBA_ATC_INTERPOLATED_ALPHA_WEBGL,f:zr}},o_={[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},s_={[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,$r.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 hi(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,$r.decodeTextureFormat)(r);return{format:n,dataFormat:a_(o.format,o.integer,o.normalized,n),type:o.dataType?bt(o.dataType):i.UNSIGNED_BYTE,compressed:o.compressed}}function mi(e){let t=Je[e];if(!(t!=null&&t.attachment))throw new Error(`${e} is not a depth stencil format`);return t.attachment}function Si(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=o_[n.dataFormat]||4,s=s_[n.type]||1;return o*s}function a_(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 gi(e){let t=__(e);for(let r of pi(e))t.add(r);return t}function __(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(Oi))f_(e,r)&&t.add(r);return t}function f_(e,t){let r=Oi[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)):Si(e);case"glsl-derivatives":return qr(e,s);case"glsl-frag-data":return qr(e,s,{behavior:"require"});case"glsl-frag-depth":return qr(e,s);default:return Boolean(e.getExtension(s))}}var Zr={};function qr(e,t){let r=arguments.length>2&&arguments[2]!==void 0?arguments[2]:{};if(!di(r))return!0;if(t in Zr)return Zr[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),Zr[t]=a,a}var Oi={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 bi(e){let t=Hr(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=Hr(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 Bi=A(g(),1);var xt=A(g(),1);var Ci=A(g(),1),y=A(g(),1);function F(e,t,r){let o=M.attach(e).gl;if(u_(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 u_(e){for(let t in e)return!1;return!0}var vt=A(g(),1);function Ii(e,t,r,n){if((0,vt.isObjectEmpty)(t))return n(e);Fe(e.gl);try{return l_(e,t),ce(e,r),n(e)}finally{Oe(e.gl)}}function l_(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(Jr("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(E_("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 Jr(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 Jr(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 c_(e,t){return`Illegal parameter ${t} for ${e}`}function Jr(e,t,r){if(!(t in r))throw new Error(c_(e,t));return r[t]}function E_(e,t){return t}function Ft(e){let t={};return e.addressModeU&&(t[i.TEXTURE_WRAP_S]=en(e.addressModeU)),e.addressModeV&&(t[i.TEXTURE_WRAP_T]=en(e.addressModeV)),e.addressModeW&&(t[i.TEXTURE_WRAP_R]=en(e.addressModeW)),e.magFilter&&(t[i.TEXTURE_MAG_FILTER]=Pi(e.magFilter)),(e.minFilter||e.mipmapFilter)&&(t[i.TEXTURE_MIN_FILTER]=d_(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 en(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 Pi(e){switch(e){case"nearest":return i.NEAREST;case"linear":return i.LINEAR}}function d_(e,t){if(!t)return Pi(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 vi(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=A(g(),1);var R_=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=p_(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,R_),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 p_(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 Fi=A(g(),1);var Ne=class extends Fi.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},B=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=h_(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(p=>this.initialize(Object.assign({},t,{pixels:p,data:p}))),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,T=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=T,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:T,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 Ne?(this.sampler=t,r=t.props):(this.sampler=new Ne(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 T=null;({data:f,dataType:T}=this._getDataType({data:f,compressed:d}));let p;if(F(this.gl,_,()=>{switch(T){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":p=this.device.assertWebGL2(),p.bindBuffer(i.PIXEL_UNPACK_BUFFER,f.handle||f),p.texImage2D(r,o,s,l,c,0,E,u,a),p.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:T={}}=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 p=o;o=p.data,_=p.shape[0],f=p.shape[1]}o instanceof k&&(o=o.handle),this.gl.bindTexture(this.target,this.handle),F(this.gl,T,()=>{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 p=this.device.assertWebGL2();p.bindBuffer(i.PIXEL_UNPACK_BUFFER,o),p.texSubImage2D(r,u,s,a,_,f,E,c,R),p.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(B.FACES.map(c=>{let E=u[c];return Promise.all(Array.isArray(E)?E:[E])}));this.bind(),B.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=vi(t)),!(0,Ci.isObjectEmpty)(t)){m_(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}};B.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 h_(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 m_(e){y.log.log(1,"texture sampler parameters",e)()}var xi=A(g(),1);var ae=A(g(),1);var Mi=A(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,Mi.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;Zn(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 yi;yi=Symbol.toStringTag;var $=class extends yt{get[yi](){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,xi.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(mi(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 ${g_(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 B)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 _=S_(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 S_(e){return e<i.TEXTURE_CUBE_MAP_POSITIVE_X?e+i.TEXTURE_CUBE_MAP_POSITIVE_X:e}function g_(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 Bi.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=A(g(),1),O_={spector:ne.log.get("spector")||ne.log.get("inspect")},b_="https://spectorcdn.babylonjs.com/spector.bundle.js",N_=1,X=null,Di=!1;async function Ui(e){if(!globalThis.SPECTOR)try{await(0,ne.loadScript)(b_)}catch(t){ne.log.warn(String(t))}}function wi(e){var t,r;if(e={...O_,...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(!Di){var n,o;Di=!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=A(g(),1);var I_="https://unpkg.com/webgl-debug@2.0.1/index.js";function Li(e){return e.luma=e.luma||{},e.luma}async function Xi(){Y()&&!globalThis.WebGLDebugUtils&&(globalThis.global=globalThis.global||globalThis,globalThis.global.module={},await(0,Ee.loadScript)(I_))}function Hi(e){let t=arguments.length>1&&arguments[1]!==void 0?arguments[1]:{};return e?t.debug?v_(e,t):P_(e):null}function P_(e){let t=Li(e);return t.realContext?t.realContext:e}function v_(e,t){if(!globalThis.WebGLDebugUtils)return Ee.log.warn("webgl-debug not loaded")(),e;let r=Li(e);if(r.debugContext)return r.debugContext;globalThis.WebGLDebugUtils.init({...i,...e});let n=globalThis.WebGLDebugUtils.makeDebugContext(e,F_.bind(null,t),C_.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 tn(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 F_(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 C_(e,t,r){let n="";if(Ee.log.level>=1&&(n=tn(t,r),Ee.log.log(1,n)()),e.break&&e.break.length>0&&(n=n||tn(t,r),e.break.every(s=>n.indexOf(s)!==-1)))debugger;for(let o of r)if(o===void 0){if(n=n||tn(t,r),e.throwOnError)throw new Error(`Undefined argument: ${n}`);Ee.log.error(`Undefined argument: ${n}`)();debugger}}var K=A(g(),1);var Dt=A(g(),1);var M_="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(M_)}}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 y_={offset:0,stride:0,type:i.FLOAT,size:1,divisor:0,normalized:!1,integer:!1},x_={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(y_,...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,x_),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 Vi=10,Wi={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"},ki={removedProps:{},replacedProps:{bytes:"byteLength"},deprecatedProps:Wi},B_={removedProps:Wi};function D_(e){return ArrayBuffer.isView(e)?{data:e}:typeof e=="number"?{byteLength:e}:(e=(0,K.checkProps)("Buffer",e,ki),{...e})}var Ut=class extends k{constructor(t){let r=arguments.length>1&&arguments[1]!==void 0?arguments[1]:{};if(super(M.attach(t),D_(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,ki),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,B_),"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(Vi,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,Vi),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=A(g(),1);function rn(e,t){return{name:U_(e,t),language:"glsl",version:w_(e)}}function U_(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 w_(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 L_=["warning","error","info"];function nn(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=L_.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:X_(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?nn(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?nn(s):[]).filter(c=>c.type==="error"),f=(0,Re.formatCompilerLog)(_,t,{showSourceCode:!0}),u=rn(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 X_(e){return rn(e.source).name||e.id||(0,Re.uid)(`unnamed ${e.stage}-shader`)}var Ki=A(g(),1);var H_=256,V_=1024,W_=16384,on=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|=W_,t.clearColor=this.props.clearColor),this.props.clearDepth!==!1&&(r|=H_,t.clearDepth=this.props.clearDepth),this.props.clearStencil!==!1&&(r|=V_,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(on,t,r);break;case Uint32Array:this.device.gl2.clearBufferuiv(on,t,r);break;case Float32Array:default:this.device.gl2.clearBufferfv(on,t,r);break}})}};var V=A(g(),1),qi=A(g(),1);function ji(e){return k_.includes(e)}var k_=[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],Yi={[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 sn(e){let t=Yi[e];if(!t)throw new Error("uniform");let[r,n,,o]=t;return{format:o,components:n,glType:r}}function zi(e){let t=Yi[e];if(!t)throw new Error("attribute");let[,r,,n,o]=t;return{attributeType:n,vertexFormat:o,components:r}}function Gi(e,t){let r={attributes:[],bindings:[]};r.attributes=K_(e,t);let n=z_(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=Y_(e,t),s=0;for(let _ of o)if(ji(_.type)){let{viewDimension:f,sampleType:u}=$_(_.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=j_(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}=zi(_),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 j_(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}=sn(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 Y_(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}=Z_(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 T={...E,name:R,location:c};r.push(T)}}return r}function z_(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:sn(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 G_={[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 $_(e){let t=G_[e];if(!t)throw new Error("sampler");let[r,n]=t;return{viewDimension:r,sampleType:n}}function Z_(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 $i(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 Zi=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=Gi(this.device.gl,this.handle),this.shaderLayout=(0,qi.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 B||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=q_(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 Ii(this.device,this.props.parameters,R.glParameters,()=>{if(u&&c){var T;(T=this.device.gl2)===null||T===void 0||T.drawElementsInstanced(f,s||0,l,_,a||0)}else if(u)this.device.gl.drawElements(f,s||0,l,_);else if(c){var p;(p=this.device.gl2)===null||p===void 0||p.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(Zi,`linkProgram for ${this.id}`)(),t.linkProgram(this.handle),V.log.timeEnd(Zi,`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 B||s instanceof re))throw new Error("texture");let f;if(s instanceof B)f=s;else if(s instanceof re&&s.colorAttachments[0]instanceof B)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&&$i(this.device.gl,o,s,_)}}};function q_(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 Ji=A(g(),1);var Vt=A(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":J_(this.device,r.options);break;case"copy-buffer-to-texture":ef(this.device,r.options);break;case"copy-texture-to-buffer":tf(this.device,r.options);break;case"copy-texture-to-texture":rf(this.device,r.options);break}}};function J_(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 ef(e,t){throw new Error("Not implemented")}function tf(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:T}=Qi(r);try{let p=u,h=s||R.width,m=a||R.height,b=i.RGBA,P=i.UNSIGNED_BYTE;d.bindBuffer(i.PIXEL_PACK_BUFFER,p.handle),d.bindFramebuffer(i.FRAMEBUFFER,R.handle),d.readPixels(f[0],f[1],h,m,b,P,l)}finally{d.bindBuffer(i.PIXEL_PACK_BUFFER,null),d.bindFramebuffer(i.FRAMEBUFFER,null),T&&R.destroy()}}function rf(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,T;if(o instanceof B)R=o,s=Number.isFinite(s)?s:R.width,a=Number.isFinite(a)?a:R.height,R.bind(0),T=R.destination;else throw new Error("whoops");return d||e.gl.copyTexImage2D(T,_,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 Ji.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=A(g(),1);var eo;eo=Symbol.toStringTag;var xe=class extends Be.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!==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=bt(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=nf(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||!of(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 nf(e){return Array.isArray(e)?new Float32Array(e):e}function of(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"||jn()}get features(){return this._features=this._features||gi(this.gl),this._features}get limits(){return this._limits=this._limits||bi(this.gl),this._limits}static attach(t){if(t instanceof M)return t;if(t?.device instanceof C.Device)return t.device;if(!sf(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 Xi();let{spector:r}=t;return(C.log.get("spector")||r)&&await Ui(),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()?ci(this.canvasContext.canvas,{...t,onContextLost:o}):null),s=s||(Y()?null:Yn({...t,onContextLost:o})),!s)throw new Error("WebGL context creation failed");this.handle=s,this.gl=this.handle,this.gl2=this.gl,this.isWebGL2=af(this.gl),this.isWebGL1=!this.isWebGL2,this.info=Ei(this.gl),this.gl.device=this,this.gl._version=this.isWebGL2?2:1,ni(this.gl);let{enable:a=!0,copyState:_=!1}=t;if(Yr(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=Hi(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=wi({...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 hi(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 B(this,t)}createExternalTexture(t){throw new Error("createExternalTexture() not implemented")}createSampler(t){return new Ne(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&&lf(n,r)&&C.log.info(1,`setConstantAttribute(${t}) could have been skipped, value unchanged`)(),this._constants[t]=r,r.constructor){case Float32Array:_f(this,t,r);break;case Int32Array:ff(this,t,r);break;case Uint32Array:uf(this,t,r);break;default:(0,C.assert)(!1)}}};M.type="webgl";function sf(e){return typeof WebGLRenderingContext<"u"&&e instanceof WebGLRenderingContext||typeof WebGL2RenderingContext<"u"&&e instanceof WebGL2RenderingContext?!0:Boolean(e&&Number.isFinite(e._version))}function af(e){return typeof WebGL2RenderingContext<"u"&&e instanceof WebGL2RenderingContext?!0:Boolean(e&&e._version===2)}function _f(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 ff(e,t,r){var n;e.assertWebGL2(),(n=e.gl2)===null||n===void 0||n.vertexAttribI4iv(t,r)}function uf(e,t,r){var n;e.assertWebGL2(),(n=e.gl2)===null||n===void 0||n.vertexAttribI4uiv(t,r)}function lf(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 to=A(g(),1);var cf=256,Ef=1024,df=16384;var Rf="clear: bad arguments";function an(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|=df,o!==!0&&(_.clearColor=o)),s&&(f|=cf,s!==!0&&(_.clearDepth=s)),a&&(f|=Ef,s!==!0&&(_.clearStencil=s)),(0,to.assert)(f!==0,Rf),F(r.gl,_,()=>{r.gl.clear(f)})}var it=A(g(),1);var ro=A(g(),1);function no(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,ro.assert)(!1),0}}function _n(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}=pf(e);(0,it.assert)(c);let{gl:d,handle:R}=c;f=f||c.width,u=u||c.height;let T=a-i.COLOR_ATTACHMENT0;l=l||((r=c.colorAttachments[T])===null||r===void 0?void 0:r.type)||i.UNSIGNED_BYTE,_=Af(_,l,s,f,u),l=l||ye(_);let p=d.bindFramebuffer(i.FRAMEBUFFER,R);return d.readPixels(n,o,f,u,s,l,_),d.bindFramebuffer(i.FRAMEBUFFER,p||null),E&&c.destroy(),_}function pf(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=no(r);return new s(n*o*a)}var Yo=A(N());function io(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 oo(e){for(var t=1;t<arguments.length;t++){var r=arguments[t]!=null?arguments[t]:{};t%2?io(Object(r),!0).forEach(function(n){hf(e,n,r[n])}):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(r)):io(Object(r)).forEach(function(n){Object.defineProperty(e,n,Object.getOwnPropertyDescriptor(r,n))})}return e}function hf(e,t,r){return t in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r,e}var so=`
|
|
74
74
|
uniform DATAFILTER_TYPE filter_min;
|
|
75
75
|
uniform DATAFILTER_TYPE filter_softMin;
|
|
76
76
|
uniform DATAFILTER_TYPE filter_softMax;
|
|
@@ -125,10 +125,10 @@ void dataFilter_setValue(DATAFILTER_TYPE valueFromMin, DATAFILTER_TYPE valueFrom
|
|
|
125
125
|
dataFilter_value = 1.0;
|
|
126
126
|
}
|
|
127
127
|
}
|
|
128
|
-
`,
|
|
128
|
+
`,ao=`
|
|
129
129
|
uniform bool filter_transformColor;
|
|
130
130
|
varying float dataFilter_value;
|
|
131
|
-
`;function
|
|
131
|
+
`;function _o(e){if(!e||!("extensions"in e))return{};var t=e.filterRange,r=t===void 0?[-1,1]:t,n=e.filterEnabled,o=n===void 0?!0:n,s=e.filterTransformSize,a=s===void 0?!0:s,_=e.filterTransformColor,f=_===void 0?!0:_,u=e.filterSoftRange||r;return oo(oo({},Number.isFinite(r[0])?{filter_min:r[0],filter_softMin:u[0],filter_softMax:u[1],filter_max:r[1]}:{filter_min:r.map(function(l){return l[0]}),filter_softMin:u.map(function(l){return l[0]}),filter_softMax:u.map(function(l){return l[1]}),filter_max:r.map(function(l){return l[1]})}),{},{filter_enabled:o,filter_useSoftMargin:Boolean(e.filterSoftRange),filter_transformSize:o&&a,filter_transformColor:o&&f})}function mf(e){if(!e||!("extensions"in e))return{};var t=_o(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 n=Math.fround(t.filter_max);t.filter_max-=n,t.filter_softMax-=n,t.filter_max64High=n}else{var o=t.filter_min.map(Math.fround);t.filter_min=t.filter_min.map(function(a,_){return a-o[_]}),t.filter_softMin=t.filter_softMin.map(function(a,_){return a-o[_]}),t.filter_min64High=o;var s=t.filter_max.map(Math.fround);t.filter_max=t.filter_max.map(function(a,_){return a-s[_]}),t.filter_softMax=t.filter_softMax.map(function(a,_){return a-s[_]}),t.filter_max64High=s}return t}var fo={"vs:#main-start":`
|
|
132
132
|
#ifdef DATAFILTER_DOUBLE
|
|
133
133
|
dataFilter_setValue(
|
|
134
134
|
DATAFILTER_ATTRIB - filter_min64High + DATAFILTER_ATTRIB_64LOW,
|
|
@@ -150,11 +150,11 @@ varying float dataFilter_value;
|
|
|
150
150
|
if (filter_transformColor) {
|
|
151
151
|
color.a *= dataFilter_value;
|
|
152
152
|
}
|
|
153
|
-
`},
|
|
153
|
+
`},uo={name:"data-filter",vs:so,fs:ao,inject:fo,getUniforms:_o},lo={name:"data-filter-fp64",vs:so,fs:ao,inject:fo,getUniforms:mf};var W=A(g(),1),Lo=A(g(),1);var U=e=>`${e}`;function Z(e,t){if(!e)throw new Error(t||"shadertools: assertion failed.")}var fn={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 Eo(e){let t={};for(let[r,n]of Object.entries(e))t[r]=Sf(n);return t}function Ro(e,t,r){let n={};for(let[o,s]of Object.entries(t))e&&o in e&&!s.private?(s.validate&&Z(s.validate(e[o],s),`${r}: invalid ${o}`),n[o]=e[o]):n[o]=s.value;return n}function Sf(e){let t=co(e);if(t!=="object")return{value:e,...fn[t],type:t};if(typeof e=="object")return e?e.type!==void 0?{...e,...fn[e.type],type:e.type}:e.value===void 0?{type:"object",value:e}:(t=co(e.value),{...e,...fn[t],type:t}):{type:"object",value:null};throw new Error("props")}function co(e){return Array.isArray(e)||ArrayBuffer.isView(e)?"array":typeof e}var po=U`\
|
|
154
154
|
#ifdef MODULE_LOGDEPTH
|
|
155
155
|
logdepth_adjustPosition(gl_Position);
|
|
156
156
|
#endif
|
|
157
|
-
`,To=
|
|
157
|
+
`,To=U`\
|
|
158
158
|
#ifdef MODULE_MATERIAL
|
|
159
159
|
gl_FragColor = material_filterColor(gl_FragColor);
|
|
160
160
|
#endif
|
|
@@ -175,23 +175,23 @@ varying float dataFilter_value;
|
|
|
175
175
|
#ifdef MODULE_LOGDEPTH
|
|
176
176
|
logdepth_setFragDepth();
|
|
177
177
|
#endif
|
|
178
|
-
`;var
|
|
178
|
+
`;var gf={vertex:po,fragment:To},Ao=/void\s+main\s*\([^)]*\)\s*\{\n?/,ho=/}\n?[^{}]*$/,un=[],ot="__LUMA_INJECT_DECLARATIONS__";function mo(e){let t={vertex:{},fragment:{}};for(let r in e){let n=e[r],o=Of(r);typeof n=="string"&&(n={order:0,injection:n}),t[o][r]=n}return t}function Of(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 n=arguments.length>3&&arguments[3]!==void 0?arguments[3]:!1,o=t==="vertex";for(let s in r){let a=r[s];a.sort((f,u)=>f.order-u.order),un.length=a.length;for(let f=0,u=a.length;f<u;++f)un[f]=a[f].injection;let _=`${un.join(`
|
|
179
179
|
`)}
|
|
180
|
-
`;switch(s){case"vs:#decl":o&&(e=e.replace(ot,_));break;case"vs:#main-start":o&&(e=e.replace(Ao,f=>f+_));break;case"vs:#main-end":o&&(e=e.replace(
|
|
180
|
+
`;switch(s){case"vs:#decl":o&&(e=e.replace(ot,_));break;case"vs:#main-start":o&&(e=e.replace(Ao,f=>f+_));break;case"vs:#main-end":o&&(e=e.replace(ho,f=>_+f));break;case"fs:#decl":o||(e=e.replace(ot,_));break;case"fs:#main-start":o||(e=e.replace(Ao,f=>f+_));break;case"fs:#main-end":o||(e=e.replace(ho,f=>_+f));break;default:e=e.replace(s,f=>f+_)}}return e=e.replace(ot,""),n&&(e=e.replace(/\}\s*$/,s=>s+gf[t])),e}var _e=class{static instantiateModules(t){return t.map(r=>{if(r instanceof _e)return r;Z(typeof r!="string",`Shader module use by name is deprecated. Import shader module '${r}' and use it directly.`),Z(r.name,"shader module has no name");let n=new _e(r);return n.dependencies=_e.instantiateModules(r.dependencies||[]),n})}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:n,fs:o,dependencies:s=[],uniformPropTypes:a={},getUniforms:_,deprecations:f=[],defines:u={},inject:l={}}=t;Z(typeof r=="string"),this.name=r,this.vs=n,this.fs=o,this.getModuleUniforms=_,this.dependencies=_e.instantiateModules(s),this.deprecations=this._parseDeprecationDefinitions(f),this.defines=u,this.injections=mo(l),a&&(this.uniforms=Eo(a))}getModuleSource(t){let r;switch(t){case"vertex":r=this.vs||"";break;case"fragment":r=this.fs||"";break;default:Z(!1)}return`#define MODULE_${this.name.toUpperCase().replace(/[^0-9a-z]/gi,"_")}
|
|
181
181
|
${r}// END MODULE_${this.name}
|
|
182
182
|
|
|
183
|
-
`}getUniforms(t,r){return this.getModuleUniforms?this.getModuleUniforms(t,r):
|
|
183
|
+
`}getUniforms(t,r){return this.getModuleUniforms?this.getModuleUniforms(t,r):Ro(t,this.uniforms,this.name)}getDefines(){return this.defines}checkDeprecations(t,r){this.deprecations.forEach(n=>{var o;(o=n.regex)!==null&&o!==void 0&&o.test(t)&&(n.deprecated?r.deprecated(n.old,n.new)():r.removed(n.old,n.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={},n=this.uniforms;for(let o in n){let s=n[o];o in t&&!s.private?(s.validate&&Z(s.validate(t[o],s),`${this.name}: invalid ${o}`),r[o]=t[o]):r[o]=s.value}return r}};function So(e){let t=_e.instantiateModules(e);return bf(t)}function bf(e){let t={},r={};return go({modules:e,level:0,moduleMap:t,moduleDepth:r}),Object.keys(r).sort((n,o)=>r[o]-r[n]).map(n=>t[n])}function go(e){let{modules:t,level:r,moduleMap:n,moduleDepth:o}=e;if(r>=5)throw new Error("Possible loop in shader dependency graph");for(let s of t)n[s.name]=s,(o[s.name]===void 0||o[s.name]<r)&&(o[s.name]=r);for(let s of t)s.dependencies&&go({modules:s.dependencies,level:r+1,moduleMap:n,moduleDepth:o})}function Oo(e){switch(e?.gpu.toLowerCase()){case"apple":return U`\
|
|
184
184
|
#define APPLE_GPU
|
|
185
185
|
// Apple optimizes away the calculation necessary for emulated fp64
|
|
186
186
|
#define LUMA_FP64_CODE_ELIMINATION_WORKAROUND 1
|
|
187
187
|
#define LUMA_FP32_TAN_PRECISION_WORKAROUND 1
|
|
188
188
|
// Intel GPU doesn't have full 32 bits precision in same cases, causes overflow
|
|
189
189
|
#define LUMA_FP64_HIGH_BITS_OVERFLOW_WORKAROUND 1
|
|
190
|
-
`;case"nvidia":return
|
|
190
|
+
`;case"nvidia":return U`\
|
|
191
191
|
#define NVIDIA_GPU
|
|
192
192
|
// Nvidia optimizes away the calculation necessary for emulated fp64
|
|
193
193
|
#define LUMA_FP64_CODE_ELIMINATION_WORKAROUND 1
|
|
194
|
-
`;case"intel":return
|
|
194
|
+
`;case"intel":return U`\
|
|
195
195
|
#define INTEL_GPU
|
|
196
196
|
// Intel optimizes away the calculation necessary for emulated fp64
|
|
197
197
|
#define LUMA_FP64_CODE_ELIMINATION_WORKAROUND 1
|
|
@@ -199,9 +199,9 @@ ${r}// END MODULE_${this.name}
|
|
|
199
199
|
#define LUMA_FP32_TAN_PRECISION_WORKAROUND 1
|
|
200
200
|
// Intel GPU doesn't have full 32 bits precision in same cases, causes overflow
|
|
201
201
|
#define LUMA_FP64_HIGH_BITS_OVERFLOW_WORKAROUND 1
|
|
202
|
-
`;case"amd":return
|
|
202
|
+
`;case"amd":return U`\
|
|
203
203
|
#define AMD_GPU
|
|
204
|
-
`;default:return
|
|
204
|
+
`;default:return U`\
|
|
205
205
|
#define DEFAULT_GPU
|
|
206
206
|
// Prevent driver from optimizing away the calculation necessary for emulated fp64
|
|
207
207
|
#define LUMA_FP64_CODE_ELIMINATION_WORKAROUND 1
|
|
@@ -209,14 +209,14 @@ ${r}// END MODULE_${this.name}
|
|
|
209
209
|
#define LUMA_FP32_TAN_PRECISION_WORKAROUND 1
|
|
210
210
|
// If the GPU doesn't have full 32 bits precision, will causes overflow
|
|
211
211
|
#define LUMA_FP64_HIGH_BITS_OVERFLOW_WORKAROUND 1
|
|
212
|
-
`}}function
|
|
212
|
+
`}}function bo(e){let t=U`\
|
|
213
213
|
#if (__VERSION__ > 120)
|
|
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
218
|
#endif // __VERSION
|
|
219
|
-
`;return!e.features.has("webgl2")&&e.features.has("glsl-frag-depth")&&(t+=
|
|
219
|
+
`;return!e.features.has("webgl2")&&e.features.has("glsl-frag-depth")&&(t+=U`\
|
|
220
220
|
|
|
221
221
|
// FRAG_DEPTH => gl_FragDepth is available
|
|
222
222
|
#ifdef GL_EXT_frag_depth
|
|
@@ -225,7 +225,7 @@ ${r}// END MODULE_${this.name}
|
|
|
225
225
|
# define FRAG_DEPTH
|
|
226
226
|
# define gl_FragDepth gl_FragDepthEXT
|
|
227
227
|
#endif
|
|
228
|
-
`),!e.features.has("webgl2")&&e!==null&&e!==void 0&&e.features.has("glsl-derivatives")&&(t+=
|
|
228
|
+
`),!e.features.has("webgl2")&&e!==null&&e!==void 0&&e.features.has("glsl-derivatives")&&(t+=U`\
|
|
229
229
|
|
|
230
230
|
// DERIVATIVES => dxdF, dxdY and fwidth are available
|
|
231
231
|
#if defined(GL_OES_standard_derivatives) || defined(FEATURE_GLSL_DERIVATIVES)
|
|
@@ -233,7 +233,7 @@ ${r}// END MODULE_${this.name}
|
|
|
233
233
|
# define FEATURE_GLSL_DERIVATIVES
|
|
234
234
|
# define DERIVATIVES
|
|
235
235
|
#endif
|
|
236
|
-
`),!e.features.has("webgl2")&&e!==null&&e!==void 0&&e.features.has("glsl-frag-data")&&(t+=
|
|
236
|
+
`),!e.features.has("webgl2")&&e!==null&&e!==void 0&&e.features.has("glsl-frag-data")&&(t+=U`\
|
|
237
237
|
|
|
238
238
|
// DRAW_BUFFERS => gl_FragData[] is available
|
|
239
239
|
#ifdef GL_EXT_draw_buffers
|
|
@@ -241,43 +241,84 @@ ${r}// END MODULE_${this.name}
|
|
|
241
241
|
# define FEATURE_GLSL_DRAW_BUFFERS
|
|
242
242
|
# define DRAW_BUFFERS
|
|
243
243
|
#endif
|
|
244
|
-
`),!e.features.has("webgl2")&&e!==null&&e!==void 0&&e.features.has("glsl-texture-lod")&&(t+=
|
|
244
|
+
`),!e.features.has("webgl2")&&e!==null&&e!==void 0&&e.features.has("glsl-texture-lod")&&(t+=U`\
|
|
245
245
|
// TEXTURE_LOD => texture2DLod etc are available
|
|
246
246
|
#ifdef GL_EXT_shader_texture_lod
|
|
247
247
|
# extension GL_EXT_shader_texture_lod : enable
|
|
248
248
|
# define FEATURE_GLSL_TEXTURE_LOD
|
|
249
249
|
# define TEXTURE_LOD
|
|
250
250
|
#endif
|
|
251
|
-
`),t}function No(e,t,r){switch(t){case 300:switch(r){case"vertex":return Kt(e,Nf);case"fragment":return
|
|
252
|
-
`],[/\btexture(2D|2DProj|Cube)Lod(EXT)?\(/g,"textureLod("],[/\btexture(2D|2DProj|Cube)(EXT)?\(/g,"texture("]],Nf=[...
|
|
253
|
-
${n}`).replace(new RegExp(`\\b${
|
|
251
|
+
`),t}function No(e,t,r){switch(t){case 300:switch(r){case"vertex":return Kt(e,Nf);case"fragment":return Cf(e);default:throw new Error(`unknown shader stage ${r}`)}case 100:switch(r){case"vertex":return Kt(e,Pf);case"fragment":return Mf(e);default:throw new Error(`unknown shader stage ${r}`)}default:throw new Error(`unknown GLSL version ${t}`)}}var Io=[[/^(#version[ \t]+(100|300[ \t]+es))?[ \t]*\n/,`#version 300 es
|
|
252
|
+
`],[/\btexture(2D|2DProj|Cube)Lod(EXT)?\(/g,"textureLod("],[/\btexture(2D|2DProj|Cube)(EXT)?\(/g,"texture("]],Nf=[...Io,[De("attribute"),"in $1"],[De("varying"),"out $1"]],If=[...Io,[De("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("]],Pf=[...Po,[De("in"),"attribute $1"],[De("out"),"varying $1"]],vf=[...Po,[De("in"),"varying $1"]],ln="gl_FragColor",cn=/\bout[ \t]+vec4[ \t]+(\w+)[ \t]*;\n?/,Ff=/void\s+main\s*\([^)]*\)\s*\{\n?/;function Kt(e,t){for(let[r,n]of t)e=e.replace(r,n);return e}function Cf(e){e=Kt(e,If);let t=cn.exec(e);if(t){let r=t[1];e=e.replace(new RegExp(`\\b${ln}\\b`,"g"),r)}else{let r="fragmentColor";e=e.replace(Ff,n=>`out vec4 ${r};
|
|
253
|
+
${n}`).replace(new RegExp(`\\b${ln}\\b`,"g"),r)}return e}function Mf(e){e=Kt(e,vf);let t=cn.exec(e);if(t){let r=t[1];e=e.replace(cn,"").replace(new RegExp(`\\b${r}\\b`,"g"),ln)}return e}function De(e){return new RegExp(`\\b${e}[ \\t]+(\\w+[ \\t]+\\w+(\\[\\w+\\])?;)`,"g")}function En(e,t){let r="";for(let n in e){let o=e[n];if(r+=`void ${o.signature} {
|
|
254
254
|
`,o.header&&(r+=` ${o.header}`),t[n]){let s=t[n];s.sort((a,_)=>a.order-_.order);for(let a of s)r+=` ${a.injection}
|
|
255
255
|
`}o.footer&&(r+=` ${o.footer}`),r+=`}
|
|
256
|
-
`}return r}function
|
|
256
|
+
`}return r}function dn(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 Mo=`
|
|
257
257
|
|
|
258
258
|
${ot}
|
|
259
259
|
|
|
260
|
-
`,
|
|
260
|
+
`,yf=U`\
|
|
261
261
|
precision highp float;
|
|
262
262
|
|
|
263
|
-
`;function
|
|
264
|
-
`),
|
|
265
|
-
`)):
|
|
266
|
-
${
|
|
263
|
+
`;function yo(e,t){let{vs:r,fs:n}=t,o=So(t.modules||[]);switch(e.shaderLanguage){case"glsl":return{vs:Fo(e,{...t,source:r,stage:"vertex",modules:o}),fs:Fo(e,{...t,source:n,stage:"fragment",modules:o}),getUniforms:Co(o)};case"wgsl":return{vs:vo(e,{...t,source:r,stage:"vertex",modules:o}),fs:vo(e,{...t,source:n,stage:"fragment",modules:o}),getUniforms:Co(o)}}}function vo(e,t){let{source:r,stage:n,modules:o,defines:s={},hookFunctions:a=[],inject:_={},log:f}=t;Z(typeof r=="string","shader source must be a string");let u=r,l={};o.forEach(p=>{Object.assign(l,p.getDefines())}),Object.assign(l,s);let c="",E=dn(a),d={},R={},T={};for(let p in _){let h=typeof _[p]=="string"?{injection:_[p],order:0}:_[p],m=/^(v|f)s:(#)?([\w-]+)$/.exec(p);if(m){let b=m[2],P=m[3];b?P==="decl"?R[p]=[h]:T[p]=[h]:d[p]=[h]}else T[p]=[h]}for(let p of o){f&&p.checkDeprecations(u,f);let h=p.getModuleSource(n,"wgsl");c+=h;let m=p.injections[n];for(let b in m){let P=/^(v|f)s:#([\w-]+)$/.exec(b);if(P){let j=P[2]==="decl"?R:T;j[b]=j[b]||[],j[b].push(m[b])}else d[b]=d[b]||[],d[b].push(m[b])}}return c+=Mo,c=st(c,n,R),c+=En(E[n],d),c+=u,c=st(c,n,T),c}function Fo(e,t){let r=t.source.includes("->"),{id:n,source:o,stage:s,language:a=r?"wgsl":"glsl",modules:_,defines:f={},hookFunctions:u=[],inject:l={},transpileToGLSL100:c=!1,prologue:E=!r,log:d}=t;Z(typeof o=="string","shader source must be a string");let R=o.split(`
|
|
264
|
+
`),T=100,p="",h=o;R[0].indexOf("#version ")===0?(T=300,p=R[0],h=R.slice(1).join(`
|
|
265
|
+
`)):p=`#version ${T}`;let m=c?100:T,b={};_.forEach(x=>{Object.assign(b,x.getDefines())}),Object.assign(b,f);let P="";switch(a){case"wgsl":break;case"glsl":P=E?`${p}
|
|
266
|
+
${xf({id:n,source:o,stage:s})}
|
|
267
267
|
${`#define SHADER_TYPE_${s.toUpperCase()}`}
|
|
268
|
-
${go(e)}
|
|
269
268
|
${Oo(e)}
|
|
270
|
-
${
|
|
271
|
-
${
|
|
272
|
-
|
|
273
|
-
|
|
269
|
+
${bo(e)}
|
|
270
|
+
${Bf(b)}
|
|
271
|
+
${s==="fragment"?yf:""}
|
|
272
|
+
`:`${p}
|
|
273
|
+
`;break}let fe=dn(u),j={},ke={},Pe={};for(let x in l){let ue=typeof l[x]=="string"?{injection:l[x],order:0}:l[x],oe=/^(v|f)s:(#)?([\w-]+)$/.exec(x);if(oe){let w=oe[2],he=oe[3];w?he==="decl"?ke[x]=[ue]:Pe[x]=[ue]:j[x]=[ue]}else Pe[x]=[ue]}for(let x of _){d&&x.checkDeprecations(h,d);let ue=x.getModuleSource(s);P+=ue;let oe=x.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+=Mo,P=st(P,s,ke),P+=En(fe[s],j),P+=h,P=st(P,s,Pe),P=No(P,m,s),P.trim()}function Co(e){return function(r){let n={};for(let o of e){let s=o.getUniforms(r,n);Object.assign(n,s)}return n}}function xf(e){let{id:t,source:r,stage:n}=e;return t&&r.indexOf("SHADER_NAME")===-1?`
|
|
274
274
|
#define SHADER_NAME ${t}_${n}
|
|
275
275
|
|
|
276
|
-
`:""}function
|
|
276
|
+
`:""}function Bf(){let e=arguments.length>0&&arguments[0]!==void 0?arguments[0]:{},t=0,r="";for(let n in e){t===0&&(r+=`
|
|
277
277
|
// APPLICATION DEFINES
|
|
278
278
|
`),t++;let o=e[n];(o||Number.isFinite(o))&&(r+=`#define ${n.toUpperCase()} ${e[n]}
|
|
279
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`\
|
|
280
|
+
`),r}function Bo(e,t){if(!t.vs)throw new Error("no vertex shader");let r=xo(e,t.vs),n;return t.fs&&(n=xo(e,t.fs)),{...t,vs:r,fs:n}}function xo(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=Bo(t,r);return yo(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;var Ie=A(g(),1),jt=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 Do(e,t){if(t instanceof jt)return t;let r=Df(e,t),{attributes:n,bufferLayout:o}=Uf(e,t);return new jt({topology:t.topology||"triangle-list",bufferLayout:o,vertexCount:t.vertexCount,indices:r,attributes:n})}function Df(e,t){if(!t.indices)return;let r=t.indices.value;return e.createBuffer({usage:Ie.Buffer.INDEX,data:r})}function Uf(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 Uo=A(g(),1),pe=class{static getDefaultPipelineFactory(t){return t._lumaData.defaultPipelineFactory=t._lumaData.defaultPipelineFactory||new pe(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={...pe.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]}};pe.defaultProps={...Uo.RenderPipeline.defaultProps,vs:void 0,fs:void 0};var Te=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={...Te.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||pe.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&&Do(this.device,t);return this.setTopology(r.topology||"triangle-list"),this.bufferLayout=wo(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?wo(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,Lo.getAttributeInfosFromLayouts)(this.pipeline.shaderLayout,this.bufferLayout)),this.pipeline}};Te.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 wo(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 Xo(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 wf(e){for(var t=1;t<arguments.length;t++){var r=arguments[t]!=null?arguments[t]:{};t%2?Xo(Object(r),!0).forEach(function(n){Lf(e,n,r[n])}):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(r)):Xo(Object(r)).forEach(function(n){Object.defineProperty(e,n,Object.getOwnPropertyDescriptor(r,n))})}return e}function Lf(e,t,r){return t in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r,e}var Xf=`#define SHADER_NAME data-filter-vertex-shader
|
|
281
|
+
|
|
282
|
+
#ifdef FLOAT_TARGET
|
|
283
|
+
attribute float filterIndices;
|
|
284
|
+
attribute float filterPrevIndices;
|
|
285
|
+
#else
|
|
286
|
+
attribute vec2 filterIndices;
|
|
287
|
+
attribute vec2 filterPrevIndices;
|
|
288
|
+
#endif
|
|
289
|
+
|
|
290
|
+
varying vec4 vColor;
|
|
291
|
+
const float component = 1.0 / 255.0;
|
|
292
|
+
|
|
293
|
+
void main() {
|
|
294
|
+
#ifdef FLOAT_TARGET
|
|
295
|
+
dataFilter_value *= float(filterIndices != filterPrevIndices);
|
|
296
|
+
gl_Position = vec4(0.0, 0.0, 0.0, 1.0);
|
|
297
|
+
vColor = vec4(0.0, 0.0, 0.0, 1.0);
|
|
298
|
+
#else
|
|
299
|
+
// Float texture is not supported: pack result into 4 channels x 256 px x 64px
|
|
300
|
+
dataFilter_value *= float(filterIndices.x != filterPrevIndices.x);
|
|
301
|
+
float col = filterIndices.x;
|
|
302
|
+
float row = filterIndices.y * 4.0;
|
|
303
|
+
float channel = floor(row);
|
|
304
|
+
row = fract(row);
|
|
305
|
+
vColor = component * vec4(bvec4(channel == 0.0, channel == 1.0, channel == 2.0, channel == 3.0));
|
|
306
|
+
gl_Position = vec4(col * 2.0 - 1.0, row * 2.0 - 1.0, 0.0, 1.0);
|
|
307
|
+
#endif
|
|
308
|
+
gl_PointSize = 1.0;
|
|
309
|
+
}
|
|
310
|
+
`,Hf=`#define SHADER_NAME data-filter-fragment-shader
|
|
311
|
+
precision highp float;
|
|
312
|
+
|
|
313
|
+
varying vec4 vColor;
|
|
314
|
+
|
|
315
|
+
void main() {
|
|
316
|
+
if (dataFilter_value < 0.5) {
|
|
317
|
+
discard;
|
|
318
|
+
}
|
|
319
|
+
gl_FragColor = vColor;
|
|
320
|
+
}
|
|
321
|
+
`;function Ho(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 Vo(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 Wo(e,t,r){return t.defines.NON_INSTANCED_MODEL=1,r&&(t.defines.FLOAT_TARGET=1),new Te(e,wf({id:"data-filter-aggregation-model",vertexCount:1,isInstanced:!1,drawMode:0,vs:Xf,fs:Hf},t))}var ko={blend:!0,blendFunc:[1,1,1,1],blendEquation:[32774,32774],depthTest:!1};function zt(e){return typeof Symbol=="function"&&typeof Symbol.iterator=="symbol"?zt=function(r){return typeof r}:zt=function(r){return r&&typeof Symbol=="function"&&r.constructor===Symbol&&r!==Symbol.prototype?"symbol":typeof r},zt(e)}function Ko(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 Yt(e){for(var t=1;t<arguments.length;t++){var r=arguments[t]!=null?arguments[t]:{};t%2?Ko(Object(r),!0).forEach(function(n){Wf(e,n,r[n])}):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(r)):Ko(Object(r)).forEach(function(n){Object.defineProperty(e,n,Object.getOwnPropertyDescriptor(r,n))})}return e}function Wf(e,t,r){return t in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r,e}function kf(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}function Kf(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&&Rn(e,t)}function Rn(e,t){return Rn=Object.setPrototypeOf||function(n,o){return n.__proto__=o,n},Rn(e,t)}function jf(e){var t=Gf();return function(){var n=Gt(e),o;if(t){var s=Gt(this).constructor;o=Reflect.construct(n,arguments,s)}else o=n.apply(this,arguments);return Yf(this,o)}}function Yf(e,t){if(t&&(zt(t)==="object"||typeof t=="function"))return t;if(t!==void 0)throw new TypeError("Derived constructors may only return object or undefined");return zf(e)}function zf(e){if(e===void 0)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return e}function Gf(){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 $f={getFilterValue:{type:"accessor",value:0},onFilteredItemsChange:{type:"function",value:null,optional:!0},filterEnabled:!0,filterRange:[-1,1],filterSoftRange:null,filterTransformSize:!0,filterTransformColor:!0},jo={1:"float",2:"vec2",3:"vec3",4:"vec4"},$t=function(e){Kf(r,e);var t=jf(r);function r(){var o=arguments.length>0&&arguments[0]!==void 0?arguments[0]:{},s=o.filterSize,a=s===void 0?1:s,_=o.fp64,f=_===void 0?!1:_,u=o.countItems,l=u===void 0?!1:u;if(kf(this,r),!jo[a])throw new Error("filterSize out of range");return t.call(this,{filterSize:a,fp64:f,countItems:l})}var n=r.prototype;return n.getShaders=function(s){var a=s.opts,_=a.filterSize,f=a.fp64;return{modules:[f?lo:uo],defines:{DATAFILTER_TYPE:jo[_],DATAFILTER_DOUBLE:Boolean(f)}}},n.initializeState=function(s,a){var _=this.getAttributeManager();_&&_.add({filterValues:{size:a.opts.filterSize,type:a.opts.fp64?5130:5126,accessor:"getFilterValue",shaderAttributes:{filterValues:{divisor:0},instanceFilterValues:{divisor:1}}}});var f=this.context.device;if(_&&a.opts.countItems){var u=Ho(f);_.add({filterIndices:{size:u?1:2,vertexOffset:1,type:5121,normalized:!0,accessor:function(d,R){var T=R.index,p=d&&d.__source?d.__source.index:T;return u?(p+1)%255:[(p+1)%255,Math.floor(p/255)%255]},shaderAttributes:{filterPrevIndices:{vertexOffset:0},filterIndices:{vertexOffset:1}}}});var l=Vo(f,u),c=Wo(f,a.getShaders.call(this,a),u);this.setState({filterFBO:l,filterModel:c})}},n.updateState=function(s){var a=s.props,_=s.oldProps;if(this.state.filterModel){var f=this.getAttributeManager(),u=f.attributes.filterValues.needsUpdate()||a.filterEnabled!==_.filterEnabled||a.filterRange!==_.filterRange||a.filterSoftRange!==_.filterSoftRange;u&&this.setState({filterNeedsUpdate:u})}},n.draw=function(s,a){var _=this,f=this.state.filterFBO,u=this.state.filterModel,l=this.state.filterNeedsUpdate,c=this.props.onFilteredItemsChange;if(l&&c&&u){var E=this.getAttributeManager(),d=E.attributes,R=d.filterValues,T=d.filterIndices;u.setVertexCount(this.getNumInstances()),an(this.context.device,{framebuffer:f,color:[0,0,0,0]}),u.updateModuleSettings(s.moduleParameters),u.setAttributes(Yt(Yt({},R.getValue()),T?.getValue())),F(u.device,Yt(Yt({framebuffer:f},ko),{},{viewport:[0,0,f.width,f.height]}),function(){u.draw(_.context.renderPass)});for(var p=_n(f),h=0,m=0;m<p.length;m++)h+=p[m];c({id:this.id,count:h}),this.state.filterNeedsUpdate=!1}},n.finalizeState=function(){var s=this.state.filterFBO,a=this.state.filterModel;s?.destroy(),a?.destroy()},r}(Yo.LayerExtension);$t.defaultProps=$f;$t.extensionName="DataFilterExtension";var ut=A(N());var Zt=e=>`${e}`;function qt(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 pn(e){return e-Math.fround(e)}function Tn(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;qt(e[n*4+r],t,o*2)}return t}var zo=Zt`\
|
|
281
322
|
uniform float ONE;
|
|
282
323
|
|
|
283
324
|
/*
|
|
@@ -443,7 +484,7 @@ vec2 sqrt_fp64(vec2 a) {
|
|
|
443
484
|
return sum_fp64(vec2(yn, 0.0), prod);
|
|
444
485
|
#endif
|
|
445
486
|
}
|
|
446
|
-
`;var
|
|
487
|
+
`;var Go=Zt`\
|
|
447
488
|
const vec2 E_FP64 = vec2(2.7182817459106445e+00, 8.254840366817007e-08);
|
|
448
489
|
const vec2 LOG2_FP64 = vec2(0.6931471824645996e+00, -1.9046542121259336e-09);
|
|
449
490
|
const vec2 PI_FP64 = vec2(3.1415927410125732, -8.742278012618954e-8);
|
|
@@ -1113,48 +1154,7 @@ void mat4_vec4_mul_fp64(vec2 b[16], vec2 a[4], out vec2 out_val[4]) {
|
|
|
1113
1154
|
vec4_dot_fp64(a, tmp, out_val[i]);
|
|
1114
1155
|
}
|
|
1115
1156
|
}
|
|
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
|
|
1117
|
-
|
|
1118
|
-
#ifdef FLOAT_TARGET
|
|
1119
|
-
attribute float filterIndices;
|
|
1120
|
-
attribute float filterPrevIndices;
|
|
1121
|
-
#else
|
|
1122
|
-
attribute vec2 filterIndices;
|
|
1123
|
-
attribute vec2 filterPrevIndices;
|
|
1124
|
-
#endif
|
|
1125
|
-
|
|
1126
|
-
varying vec4 vColor;
|
|
1127
|
-
const float component = 1.0 / 255.0;
|
|
1128
|
-
|
|
1129
|
-
void main() {
|
|
1130
|
-
#ifdef FLOAT_TARGET
|
|
1131
|
-
dataFilter_value *= float(filterIndices != filterPrevIndices);
|
|
1132
|
-
gl_Position = vec4(0.0, 0.0, 0.0, 1.0);
|
|
1133
|
-
vColor = vec4(0.0, 0.0, 0.0, 1.0);
|
|
1134
|
-
#else
|
|
1135
|
-
// Float texture is not supported: pack result into 4 channels x 256 px x 64px
|
|
1136
|
-
dataFilter_value *= float(filterIndices.x != filterPrevIndices.x);
|
|
1137
|
-
float col = filterIndices.x;
|
|
1138
|
-
float row = filterIndices.y * 4.0;
|
|
1139
|
-
float channel = floor(row);
|
|
1140
|
-
row = fract(row);
|
|
1141
|
-
vColor = component * vec4(bvec4(channel == 0.0, channel == 1.0, channel == 2.0, channel == 3.0));
|
|
1142
|
-
gl_Position = vec4(col * 2.0 - 1.0, row * 2.0 - 1.0, 0.0, 1.0);
|
|
1143
|
-
#endif
|
|
1144
|
-
gl_PointSize = 1.0;
|
|
1145
|
-
}
|
|
1146
|
-
`,Fu=`#define SHADER_NAME data-filter-fragment-shader
|
|
1147
|
-
precision highp float;
|
|
1148
|
-
|
|
1149
|
-
varying vec4 vColor;
|
|
1150
|
-
|
|
1151
|
-
void main() {
|
|
1152
|
-
if (dataFilter_value < 0.5) {
|
|
1153
|
-
discard;
|
|
1154
|
-
}
|
|
1155
|
-
gl_FragColor = vColor;
|
|
1156
|
-
}
|
|
1157
|
-
`;function Zo(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 qo(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 Qo(e,t,r){return t.defines.NON_INSTANCED_MODEL=1,r&&(t.defines.FLOAT_TARGET=1),new Ae(e,Iu({id:"data-filter-aggregation-model",vertexCount:1,isInstanced:!1,drawMode:0,vs:vu,fs:Fu},t))}var Jo={blend:!0,blendFunc:[1,1,1,1],blendEquation:[32774,32774],depthTest:!1};function Zt(e){return typeof Symbol=="function"&&typeof Symbol.iterator=="symbol"?Zt=function(r){return typeof r}:Zt=function(r){return r&&typeof Symbol=="function"&&r.constructor===Symbol&&r!==Symbol.prototype?"symbol":typeof r},Zt(e)}function es(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 $t(e){for(var t=1;t<arguments.length;t++){var r=arguments[t]!=null?arguments[t]:{};t%2?es(Object(r),!0).forEach(function(n){Mu(e,n,r[n])}):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(r)):es(Object(r)).forEach(function(n){Object.defineProperty(e,n,Object.getOwnPropertyDescriptor(r,n))})}return e}function Mu(e,t,r){return t in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r,e}function yu(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}function xu(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&&mn(e,t)}function mn(e,t){return mn=Object.setPrototypeOf||function(n,o){return n.__proto__=o,n},mn(e,t)}function Bu(e){var t=wu();return function(){var n=qt(e),o;if(t){var s=qt(this).constructor;o=Reflect.construct(n,arguments,s)}else o=n.apply(this,arguments);return Du(this,o)}}function Du(e,t){if(t&&(Zt(t)==="object"||typeof t=="function"))return t;if(t!==void 0)throw new TypeError("Derived constructors may only return object or undefined");return Uu(e)}function Uu(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 qt(e){return qt=Object.setPrototypeOf?Object.getPrototypeOf:function(r){return r.__proto__||Object.getPrototypeOf(r)},qt(e)}var Lu={getFilterValue:{type:"accessor",value:0},onFilteredItemsChange:{type:"function",value:null,optional:!0},filterEnabled:!0,filterRange:[-1,1],filterSoftRange:null,filterTransformSize:!0,filterTransformColor:!0},ts={1:"float",2:"vec2",3:"vec3",4:"vec4"},Qt=function(e){xu(r,e);var t=Bu(r);function r(){var o=arguments.length>0&&arguments[0]!==void 0?arguments[0]:{},s=o.filterSize,a=s===void 0?1:s,_=o.fp64,f=_===void 0?!1:_,u=o.countItems,l=u===void 0?!1:u;if(yu(this,r),!ts[a])throw new Error("filterSize out of range");return t.call(this,{filterSize:a,fp64:f,countItems:l})}var n=r.prototype;return n.getShaders=function(s){var a=s.opts,_=a.filterSize,f=a.fp64;return{modules:[f?uo:fo],defines:{DATAFILTER_TYPE:ts[_],DATAFILTER_DOUBLE:Boolean(f)}}},n.initializeState=function(s,a){var _=this.getAttributeManager();_&&_.add({filterValues:{size:a.opts.filterSize,type:a.opts.fp64?5130:5126,accessor:"getFilterValue",shaderAttributes:{filterValues:{divisor:0},instanceFilterValues:{divisor:1}}}});var f=this.context.device;if(_&&a.opts.countItems){var u=Zo(f);_.add({filterIndices:{size:u?1:2,vertexOffset:1,type:5121,normalized:!0,accessor:function(d,R){var A=R.index,T=d&&d.__source?d.__source.index:A;return u?(T+1)%255:[(T+1)%255,Math.floor(T/255)%255]},shaderAttributes:{filterPrevIndices:{vertexOffset:0},filterIndices:{vertexOffset:1}}}});var l=qo(f,u),c=Qo(f,a.getShaders.call(this,a),u);this.setState({filterFBO:l,filterModel:c})}},n.updateState=function(s){var a=s.props,_=s.oldProps;if(this.state.filterModel){var f=this.getAttributeManager(),u=f.attributes.filterValues.needsUpdate()||a.filterEnabled!==_.filterEnabled||a.filterRange!==_.filterRange||a.filterSoftRange!==_.filterSoftRange;u&&this.setState({filterNeedsUpdate:u})}},n.draw=function(s,a){var _=this,f=this.state.filterFBO,u=this.state.filterModel,l=this.state.filterNeedsUpdate,c=this.props.onFilteredItemsChange;if(l&&c&&u){var E=this.getAttributeManager(),d=E.attributes,R=d.filterValues,A=d.filterIndices;u.setVertexCount(this.getNumInstances()),sn(this.context.device,{framebuffer:f,color:[0,0,0,0]}),u.updateModuleSettings(s.moduleParameters),u.setAttributes($t($t({},R.getValue()),A?.getValue())),F(u.device,$t($t({framebuffer:f},Jo),{},{viewport:[0,0,f.width,f.height]}),function(){u.draw(_.context.renderPass)});for(var T=an(f),h=0,m=0;m<T.length;m++)h+=T[m];c({id:this.id,count:h}),this.state.filterNeedsUpdate=!1}},n.finalizeState=function(){var s=this.state.filterFBO,a=this.state.filterModel;s?.destroy(),a?.destroy()},r}(rs.LayerExtension);Qt.defaultProps=Lu;Qt.extensionName="DataFilterExtension";var ut=p(b());var Jt=p(b());var ns=`
|
|
1157
|
+
`;var Zf={ONE:1};function qf(){return Zf}var $o={name:"fp64-arithmetic",vs:zo,getUniforms:qf,fp64ify:qt,fp64LowPart:pn,fp64ifyMatrix4:Tn},at={name:"fp64",vs:Go,dependencies:[$o],fp64ify:qt,fp64LowPart:pn,fp64ifyMatrix4:Tn};var QT=1/Math.PI*180,JT=1/180*Math.PI,Qf={EPSILON:1e-12,debug:!1,precision:4,printTypes:!1,printDegrees:!1,printRowMajor:!0,_cartographicRadians:!1};globalThis.mathgl=globalThis.mathgl||{config:{...Qf}};var _t=globalThis.mathgl.config;function An(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(An(e)&&An(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,hn=Math.random;function Qt(e){return e>=0?Math.round(e):e%.5===0?Math.floor(e):Math.round(e)}var tA=Math.PI/180;var Jt={};Xn(Jt,{add:()=>iu,angle:()=>Pu,bezier:()=>hu,ceil:()=>ou,clone:()=>eu,copy:()=>ru,create:()=>Zo,cross:()=>Ru,dist:()=>Du,distance:()=>ts,div:()=>Bu,divide:()=>es,dot:()=>Sn,equals:()=>Mu,exactEquals:()=>Cu,floor:()=>su,forEach:()=>Xu,fromValues:()=>tu,hermite:()=>Au,inverse:()=>Eu,len:()=>wu,length:()=>qo,lerp:()=>pu,max:()=>_u,min:()=>au,mul:()=>xu,multiply:()=>Jo,negate:()=>cu,normalize:()=>du,random:()=>mu,rotateX:()=>bu,rotateY:()=>Nu,rotateZ:()=>Iu,round:()=>fu,scale:()=>uu,scaleAndAdd:()=>lu,set:()=>nu,slerp:()=>Tu,sqrDist:()=>Uu,sqrLen:()=>Lu,squaredDistance:()=>rs,squaredLength:()=>ns,str:()=>Fu,sub:()=>yu,subtract:()=>Qo,transformMat3:()=>gu,transformMat4:()=>Su,transformQuat:()=>Ou,zero:()=>vu});function Zo(){let e=new ft(3);return ft!=Float32Array&&(e[0]=0,e[1]=0,e[2]=0),e}function eu(e){let t=new ft(3);return t[0]=e[0],t[1]=e[1],t[2]=e[2],t}function qo(e){let t=e[0],r=e[1],n=e[2];return Math.sqrt(t*t+r*r+n*n)}function tu(e,t,r){let n=new ft(3);return n[0]=e,n[1]=t,n[2]=r,n}function ru(e,t){return e[0]=t[0],e[1]=t[1],e[2]=t[2],e}function nu(e,t,r,n){return e[0]=t,e[1]=r,e[2]=n,e}function iu(e,t,r){return e[0]=t[0]+r[0],e[1]=t[1]+r[1],e[2]=t[2]+r[2],e}function Qo(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 es(e,t,r){return e[0]=t[0]/r[0],e[1]=t[1]/r[1],e[2]=t[2]/r[2],e}function ou(e,t){return e[0]=Math.ceil(t[0]),e[1]=Math.ceil(t[1]),e[2]=Math.ceil(t[2]),e}function su(e,t){return e[0]=Math.floor(t[0]),e[1]=Math.floor(t[1]),e[2]=Math.floor(t[2]),e}function au(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 _u(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 fu(e,t){return e[0]=Qt(t[0]),e[1]=Qt(t[1]),e[2]=Qt(t[2]),e}function uu(e,t,r){return e[0]=t[0]*r,e[1]=t[1]*r,e[2]=t[2]*r,e}function lu(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 ts(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 rs(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 ns(e){let t=e[0],r=e[1],n=e[2];return t*t+r*r+n*n}function cu(e,t){return e[0]=-t[0],e[1]=-t[1],e[2]=-t[2],e}function Eu(e,t){return e[0]=1/t[0],e[1]=1/t[1],e[2]=1/t[2],e}function du(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 Sn(e,t){return e[0]*t[0]+e[1]*t[1]+e[2]*t[2]}function Ru(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 pu(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(Sn(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 Au(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 hu(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 mu(e,t){t=t===void 0?1:t;let r=hn()*2*Math.PI,n=hn()*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 Su(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 gu(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 Ou(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,T=n*c-o*l,p=a*2;return l*=p,c*=p,E*=p,d*=2,R*=2,T*=2,e[0]=_+l+d,e[1]=f+c+R,e[2]=u+E+T,e}function bu(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 Nu(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 Iu(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 Pu(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&&Sn(e,t)/f;return Math.acos(Math.min(Math.max(u,-1),1))}function vu(e){return e[0]=0,e[1]=0,e[2]=0,e}function Fu(e){return"vec3(".concat(e[0],", ").concat(e[1],", ").concat(e[2],")")}function Cu(e,t){return e[0]===t[0]&&e[1]===t[1]&&e[2]===t[2]}function Mu(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 yu=Qo,xu=Jo,Bu=es,Du=ts,Uu=rs,wu=qo,Lu=ns,Xu=function(){let e=Zo();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 er=A(N());var is=`
|
|
1158
1158
|
const vec2 WORLD_SCALE_FP64 = vec2(81.4873275756836, 0.0000032873668232014097);
|
|
1159
1159
|
|
|
1160
1160
|
uniform vec2 project_uViewProjectionMatrixFP64[16];
|
|
@@ -1228,7 +1228,7 @@ vec4 project_position_to_clipspace(
|
|
|
1228
1228
|
position, position64xyLow, offset, commonPosition
|
|
1229
1229
|
);
|
|
1230
1230
|
}
|
|
1231
|
-
`;var
|
|
1231
|
+
`;var Hu=at.fp64ify,Vu=at.fp64ifyMatrix4,tr={name:"project64",dependencies:[er.project,at],vs:is,getUniforms:ku},Wu=(0,er._memoize)(Ku);function ku(e){if(e&&"viewport"in e){var t=e.viewport,r=t.viewProjectionMatrix,n=t.scale;return Wu({viewProjectionMatrix:r,scale:n})}return{}}function Ku(e){var t=e.viewProjectionMatrix,r=e.scale,n=Vu(t),o=Hu(r);return{project_uViewProjectionMatrixFP64:n,project64_uViewProjectionMatrix:n,project64_uScale:o}}function rr(e){return typeof Symbol=="function"&&typeof Symbol.iterator=="symbol"?rr=function(r){return typeof r}:rr=function(r){return r&&typeof Symbol=="function"&&r.constructor===Symbol&&r!==Symbol.prototype?"symbol":typeof r},rr(e)}function ju(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}function Yu(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&&gn(e,t)}function gn(e,t){return gn=Object.setPrototypeOf||function(n,o){return n.__proto__=o,n},gn(e,t)}function zu(e){var t=Zu();return function(){var n=nr(e),o;if(t){var s=nr(this).constructor;o=Reflect.construct(n,arguments,s)}else o=n.apply(this,arguments);return Gu(this,o)}}function Gu(e,t){if(t&&(rr(t)==="object"||typeof t=="function"))return t;if(t!==void 0)throw new TypeError("Derived constructors may only return object or undefined");return $u(e)}function $u(e){if(e===void 0)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return e}function Zu(){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 On=function(e){Yu(r,e);var t=zu(r);function r(){return ju(this,r),t.apply(this,arguments)}var n=r.prototype;return n.getShaders=function(){var s=this.props.coordinateSystem;if(s!==ut.COORDINATE_SYSTEM.LNGLAT&&s!==ut.COORDINATE_SYSTEM.DEFAULT)throw new Error("fp64: coordinateSystem must be LNGLAT");return{modules:[tr]}},r}(ut.LayerExtension);On.extensionName="Fp64Extension";var lt=A(N());var os={inject:{"vs:#decl":`
|
|
1232
1232
|
attribute vec2 instanceDashArrays;
|
|
1233
1233
|
attribute float instanceDashOffsets;
|
|
1234
1234
|
varying vec2 vDashArray;
|
|
@@ -1281,7 +1281,7 @@ float round(float x) {
|
|
|
1281
1281
|
}
|
|
1282
1282
|
}
|
|
1283
1283
|
}
|
|
1284
|
-
`}},
|
|
1284
|
+
`}},ss={inject:{"vs:#decl":`
|
|
1285
1285
|
attribute float instanceOffsets;
|
|
1286
1286
|
`,"vs:DECKGL_FILTER_SIZE":`
|
|
1287
1287
|
float offsetWidth = abs(instanceOffsets * 2.0) + 1.0;
|
|
@@ -1298,7 +1298,7 @@ attribute float instanceOffsets;
|
|
|
1298
1298
|
if (isInside == 0.0) {
|
|
1299
1299
|
discard;
|
|
1300
1300
|
}
|
|
1301
|
-
`}};function
|
|
1301
|
+
`}};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 qu(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}function Qu(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&&bn(e,t)}function bn(e,t){return bn=Object.setPrototypeOf||function(n,o){return n.__proto__=o,n},bn(e,t)}function Ju(e){var t=rl();return function(){var n=or(e),o;if(t){var s=or(this).constructor;o=Reflect.construct(n,arguments,s)}else o=n.apply(this,arguments);return el(this,o)}}function el(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 tl(e)}function tl(e){if(e===void 0)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return e}function rl(){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 or(e){return or=Object.setPrototypeOf?Object.getPrototypeOf:function(r){return r.__proto__||Object.getPrototypeOf(r)},or(e)}var nl={getDashArray:{type:"accessor",value:[0,0]},getOffset:{type:"accessor",value:0},dashJustified:!1,dashGapPickable:!1},sr=function(e){Qu(r,e);var t=Ju(r);function r(){var o=arguments.length>0&&arguments[0]!==void 0?arguments[0]:{},s=o.dash,a=s===void 0?!1:s,_=o.offset,f=_===void 0?!1:_,u=o.highPrecisionDash,l=u===void 0?!1:u;return qu(this,r),t.call(this,{dash:a||l,offset:f,highPrecisionDash:l})}var n=r.prototype;return n.isEnabled=function(s){return"pathTesselator"in s.state},n.getShaders=function(s){if(!s.isEnabled(this))return null;var a={};return s.opts.dash&&(a=(0,lt._mergeShaders)(a,os)),s.opts.offset&&(a=(0,lt._mergeShaders)(a,ss)),a},n.initializeState=function(s,a){var _=this.getAttributeManager();!_||!a.isEnabled(this)||(a.opts.dash&&_.addInstanced({instanceDashArrays:{size:2,accessor:"getDashArray"},instanceDashOffsets:a.opts.highPrecisionDash?{size:1,accessor:"getPath",transform:a.getDashOffsets.bind(this)}:{size:1,update:function(u){u.constant=!0,u.value=[0]}}}),a.opts.offset&&_.addInstanced({instanceOffsets:{size:1,accessor:"getOffset"}}))},n.updateState=function(s,a){var _;if(a.isEnabled(this)){var f={};a.opts.dash&&(f.dashAlignMode=this.props.dashJustified?1:0,f.dashGapPickable=Boolean(this.props.dashGapPickable)),(_=this.state.model)===null||_===void 0||_.setUniforms(f)}},n.getDashOffsets=function(s){for(var a=[0],_=this.props.positionFormat==="XY"?2:3,f=Array.isArray(s[0]),u=f?s.length:s.length/_,l,c,E=0;E<u-1;E++)l=f?s[E]:s.slice(E*_,E*_+_),l=this.projectPosition(l),E>0&&(a[E]=a[E-1]+Jt.dist(c,l)),c=l;return a},r}(lt.LayerExtension);sr.defaultProps=nl;sr.extensionName="PathStyleExtension";var _s=A(N());var ct=A(N()),il=`
|
|
1302
1302
|
#ifdef NON_INSTANCED_MODEL
|
|
1303
1303
|
#define FILL_PATTERN_FRAME_ATTRIB fillPatternFrames
|
|
1304
1304
|
#define FILL_PATTERN_SCALE_ATTRIB fillPatternScales
|
|
@@ -1319,7 +1319,7 @@ uniform vec2 fill_patternTextureSize;
|
|
|
1319
1319
|
varying vec2 fill_uv;
|
|
1320
1320
|
varying vec4 fill_patternBounds;
|
|
1321
1321
|
varying vec4 fill_patternPlacement;
|
|
1322
|
-
`,
|
|
1322
|
+
`,ol=`
|
|
1323
1323
|
uniform bool fill_patternEnabled;
|
|
1324
1324
|
uniform bool fill_patternMask;
|
|
1325
1325
|
uniform sampler2D fill_patternTexture;
|
|
@@ -1331,7 +1331,7 @@ varying vec4 fill_patternPlacement;
|
|
|
1331
1331
|
varying vec2 fill_uv;
|
|
1332
1332
|
|
|
1333
1333
|
const float FILL_UV_SCALE = 512.0 / 40000000.0;
|
|
1334
|
-
`,
|
|
1334
|
+
`,sl={"vs:DECKGL_FILTER_GL_POSITION":`
|
|
1335
1335
|
fill_uv = geometry.position.xy;
|
|
1336
1336
|
`,"vs:DECKGL_FILTER_COLOR":`
|
|
1337
1337
|
if (fill_patternEnabled) {
|
|
@@ -1353,13 +1353,13 @@ const float FILL_UV_SCALE = 512.0 / 40000000.0;
|
|
|
1353
1353
|
color.rgb = patternColor.rgb;
|
|
1354
1354
|
}
|
|
1355
1355
|
}
|
|
1356
|
-
`};function
|
|
1356
|
+
`};function al(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 n=e.fillPatternMask,o=n===void 0?!0:n,s=e.fillPatternEnabled,a=s===void 0?!0:s,_=t,f=_.project_uCommonOrigin,u=[(0,ct.fp64LowPart)(f[0]),(0,ct.fp64LowPart)(f[1])];return{fill_uvCoordinateOrigin:f.slice(0,2),fill_uvCoordinateOrigin64Low:u,fill_patternMask:o,fill_patternEnabled:a}}return{}}var as={name:"fill-pattern",vs:il,fs:ol,inject:sl,dependencies:[ct.project],getUniforms:al};function ar(e){return typeof Symbol=="function"&&typeof Symbol.iterator=="symbol"?ar=function(r){return typeof r}:ar=function(r){return r&&typeof Symbol=="function"&&r.constructor===Symbol&&r!==Symbol.prototype?"symbol":typeof r},ar(e)}function _l(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}function fl(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&&Nn(e,t)}function Nn(e,t){return Nn=Object.setPrototypeOf||function(n,o){return n.__proto__=o,n},Nn(e,t)}function ul(e){var t=El();return function(){var n=_r(e),o;if(t){var s=_r(this).constructor;o=Reflect.construct(n,arguments,s)}else o=n.apply(this,arguments);return ll(this,o)}}function ll(e,t){if(t&&(ar(t)==="object"||typeof t=="function"))return t;if(t!==void 0)throw new TypeError("Derived constructors may only return object or undefined");return cl(e)}function cl(e){if(e===void 0)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return e}function El(){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 dl={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]}},fr=function(e){fl(r,e);var t=ul(r);function r(){var o=arguments.length>0&&arguments[0]!==void 0?arguments[0]:{},s=o.pattern,a=s===void 0?!1:s;return _l(this,r),t.call(this,{pattern:a})}var n=r.prototype;return n.isEnabled=function(s){return s.getAttributeManager()!==null&&!("pathTesselator"in s.state)},n.getShaders=function(s){return s.isEnabled(this)?{modules:[s.opts.pattern&&as].filter(Boolean)}:null},n.initializeState=function(s,a){if(a.isEnabled(this)){var _=this.getAttributeManager();a.opts.pattern&&_.add({fillPatternFrames:{size:4,accessor:"getFillPattern",transform:a.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})})}},n.updateState=function(s,a){var _=s.props,f=s.oldProps;a.isEnabled(this)&&_.fillPatternMapping&&_.fillPatternMapping!==f.fillPatternMapping&&this.getAttributeManager().invalidate("getFillPattern")},n.draw=function(s,a){if(a.isEnabled(this)){var _=this.props.fillPatternAtlas;this.setModuleParameters({fillPatternTexture:_||this.state.emptyTexture})}},n.finalizeState=function(){var s=this.state.emptyTexture;s?.delete()},n.getPatternFrame=function(s){var a=this.getCurrentLayer().props.fillPatternMapping,_=a&&a[s];return _?[_.x,_.y,_.width,_.height]:[0,0,0,0]},r}(_s.LayerExtension);fr.defaultProps=dl;fr.extensionName="FillStyleExtension";var fs=A(N());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 Rl(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}function pl(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&&In(e,t)}function In(e,t){return In=Object.setPrototypeOf||function(n,o){return n.__proto__=o,n},In(e,t)}function Tl(e){var t=ml();return function(){var n=lr(e),o;if(t){var s=lr(this).constructor;o=Reflect.construct(n,arguments,s)}else o=n.apply(this,arguments);return Al(this,o)}}function Al(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 hl(e)}function hl(e){if(e===void 0)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return e}function ml(){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 Sl={clipBounds:[0,0,1,1],clipByInstance:void 0},us=`
|
|
1357
1357
|
uniform vec4 clip_bounds;
|
|
1358
1358
|
|
|
1359
1359
|
bool clip_isInBounds(vec2 position) {
|
|
1360
1360
|
return position.x >= clip_bounds[0] && position.y >= clip_bounds[1] && position.x < clip_bounds[2] && position.y < clip_bounds[3];
|
|
1361
1361
|
}
|
|
1362
|
-
`,
|
|
1362
|
+
`,gl={name:"clip-vs",vs:us},Ol={"vs:#decl":`
|
|
1363
1363
|
varying float clip_isVisible;
|
|
1364
1364
|
`,"vs:DECKGL_FILTER_GL_POSITION":`
|
|
1365
1365
|
clip_isVisible = float(clip_isInBounds(geometry.worldPosition.xy));
|
|
@@ -1367,7 +1367,7 @@ varying float clip_isVisible;
|
|
|
1367
1367
|
varying float clip_isVisible;
|
|
1368
1368
|
`,"fs:DECKGL_FILTER_COLOR":`
|
|
1369
1369
|
if (clip_isVisible < 0.5) discard;
|
|
1370
|
-
`},
|
|
1370
|
+
`},bl={name:"clip-fs",fs:us},Nl={"vs:#decl":`
|
|
1371
1371
|
varying vec2 clip_commonPosition;
|
|
1372
1372
|
`,"vs:DECKGL_FILTER_GL_POSITION":`
|
|
1373
1373
|
clip_commonPosition = geometry.position.xy;
|
|
@@ -1375,7 +1375,7 @@ varying vec2 clip_commonPosition;
|
|
|
1375
1375
|
varying vec2 clip_commonPosition;
|
|
1376
1376
|
`,"fs:DECKGL_FILTER_COLOR":`
|
|
1377
1377
|
if (!clip_isInBounds(clip_commonPosition)) discard;
|
|
1378
|
-
`},
|
|
1378
|
+
`},cr=function(e){pl(r,e);var t=Tl(r);function r(){return Rl(this,r),t.apply(this,arguments)}var n=r.prototype;return n.getShaders=function(){var s="instancePositions"in this.getAttributeManager().attributes;return this.props.clipByInstance!==void 0&&(s=Boolean(this.props.clipByInstance)),this.state.clipByInstance=s,s?{modules:[gl],inject:Ol}:{modules:[bl],inject:Nl}},n.draw=function(s){var a=s.uniforms,_=this.props.clipBounds;if(this.state.clipByInstance)a.clip_bounds=_;else{var f=this.projectPosition([_[0],_[1],0]),u=this.projectPosition([_[2],_[3],0]);a.clip_bounds=[Math.min(f[0],u[0]),Math.min(f[1],u[1]),Math.max(f[0],u[0]),Math.max(f[1],u[1])]}},r}(fs.LayerExtension);cr.defaultProps=Sl;cr.extensionName="ClipExtension";var vs=A(N());var ls=A(N()),Il=`
|
|
1379
1379
|
#ifdef NON_INSTANCED_MODEL
|
|
1380
1380
|
attribute float collisionPriorities;
|
|
1381
1381
|
#else
|
|
@@ -1424,7 +1424,7 @@ float collision_isVisible(vec2 texCoords, vec3 pickingColor) {
|
|
|
1424
1424
|
float W = 2.0 * floatN + 1.0;
|
|
1425
1425
|
return pow(accumulator / (W * W), 2.2);
|
|
1426
1426
|
}
|
|
1427
|
-
`,
|
|
1427
|
+
`,Pl={"vs:#decl":`
|
|
1428
1428
|
float collision_fade = 1.0;
|
|
1429
1429
|
`,"vs:DECKGL_FILTER_GL_POSITION":`
|
|
1430
1430
|
if (collision_sort) {
|
|
@@ -1447,18 +1447,18 @@ float collision_isVisible(vec2 texCoords, vec3 pickingColor) {
|
|
|
1447
1447
|
}
|
|
1448
1448
|
`,"vs:DECKGL_FILTER_COLOR":`
|
|
1449
1449
|
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 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
|
|
1453
|
-
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
|
|
1454
|
-
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
|
|
1455
|
-
In order to be iterable, non-array objects must have a [Symbol.iterator]() method.`)}function Ns(e,t){if(e){if(typeof e=="string")return
|
|
1450
|
+
`},vl=function(t,r){if(!t||!("dummyCollisionMap"in t))return{};var n=t.collisionFBO,o=t.drawToCollisionMap,s=t.dummyCollisionMap;return{collision_sort:Boolean(o),collision_texture:!o&&n?n.colorAttachments[0]:s}},cs={name:"collision",dependencies:[ls.project],vs:Il,inject:Pl,getUniforms:vl};var Is=A(N());var Rs=A(N());function Er(e){return typeof Symbol=="function"&&typeof Symbol.iterator=="symbol"?Er=function(r){return typeof r}:Er=function(r){return r&&typeof Symbol=="function"&&r.constructor===Symbol&&r!==Symbol.prototype?"symbol":typeof r},Er(e)}function Es(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 ds(e){for(var t=1;t<arguments.length;t++){var r=arguments[t]!=null?arguments[t]:{};t%2?Es(Object(r),!0).forEach(function(n){Fl(e,n,r[n])}):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(r)):Es(Object(r)).forEach(function(n){Object.defineProperty(e,n,Object.getOwnPropertyDescriptor(r,n))})}return e}function Fl(e,t,r){return t in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r,e}function Cl(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}function Ml(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&&Pn(e,t)}function Pn(e,t){return Pn=Object.setPrototypeOf||function(n,o){return n.__proto__=o,n},Pn(e,t)}function yl(e){var t=Dl();return function(){var n=dr(e),o;if(t){var s=dr(this).constructor;o=Reflect.construct(n,arguments,s)}else o=n.apply(this,arguments);return xl(this,o)}}function xl(e,t){if(t&&(Er(t)==="object"||typeof t=="function"))return t;if(t!==void 0)throw new TypeError("Derived constructors may only return object or undefined");return Bl(e)}function Bl(e){if(e===void 0)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return e}function Dl(){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 ps=function(e){Ml(r,e);var t=yl(r);function r(){return Cl(this,r),t.apply(this,arguments)}var n=r.prototype;return n.renderCollisionMap=function(s,a){var _=this,f=1,u=[0,0,0,0];return F(this.device,{scissorTest:!0,scissor:[f,f,s.width-2*f,s.height-2*f],blend:!1,depthTest:!0,depthRange:[0,1]},function(){return _.render(ds(ds({},a),{},{clearColor:u,target:s,pass:"collision"}))})},n.getModuleParameters=function(){return{drawToCollisionMap:!0,pickingActive:1,pickingAttribute:!1,lightSources:{}}},r}(Rs._LayersPass);var Fn=A(N());var hs=A(N());function Rr(e){return typeof Symbol=="function"&&typeof Symbol.iterator=="symbol"?Rr=function(r){return typeof r}:Rr=function(r){return r&&typeof Symbol=="function"&&r.constructor===Symbol&&r!==Symbol.prototype?"symbol":typeof r},Rr(e)}function Ts(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 As(e){for(var t=1;t<arguments.length;t++){var r=arguments[t]!=null?arguments[t]:{};t%2?Ts(Object(r),!0).forEach(function(n){Ul(e,n,r[n])}):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(r)):Ts(Object(r)).forEach(function(n){Object.defineProperty(e,n,Object.getOwnPropertyDescriptor(r,n))})}return e}function Ul(e,t,r){return t in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r,e}function wl(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}function pr(e,t,r){return typeof Reflect<"u"&&Reflect.get?pr=Reflect.get:pr=function(o,s,a){var _=Ll(o,s);if(_){var f=Object.getOwnPropertyDescriptor(_,s);return f.get?f.get.call(a):f.value}},pr(e,t,r||e)}function Ll(e,t){for(;!Object.prototype.hasOwnProperty.call(e,t)&&(e=we(e),e!==null););return e}function Xl(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&&vn(e,t)}function vn(e,t){return vn=Object.setPrototypeOf||function(n,o){return n.__proto__=o,n},vn(e,t)}function Hl(e){var t=kl();return function(){var n=we(e),o;if(t){var s=we(this).constructor;o=Reflect.construct(n,arguments,s)}else o=n.apply(this,arguments);return Vl(this,o)}}function Vl(e,t){if(t&&(Rr(t)==="object"||typeof t=="function"))return t;if(t!==void 0)throw new TypeError("Derived constructors may only return object or undefined");return Wl(e)}function Wl(e){if(e===void 0)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return e}function kl(){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 ms=function(e){Xl(r,e);var t=Hl(r);function r(o,s){var a;wl(this,r),a=t.call(this,o,s),a.maskMap=void 0,a.fbo=void 0;var _=s.mapSize,f=_===void 0?2048:_;return a.maskMap=o.createTexture({format:"rgba8unorm",width:f,height:f,sampler:{minFilter:"linear",magFilter:"linear",addressModeU:"clamp-to-edge",addressModeV:"clamp-to-edge"}}),a.fbo=o.createFramebuffer({id:"maskmap",width:f,height:f,colorAttachments:[a.maskMap]}),a}var n=r.prototype;return n.render=function(s){var a=this,_=[!1,!1,!1,!1];_[s.channel]=!0;var f=[255,255,255,255];return F(this.device,{blend:!0,blendFunc:[0,1],blendEquation:32778,colorMask:_,depthTest:!1},function(){return pr(we(r.prototype),"render",a).call(a,As(As({},s),{},{clearColor:f,target:a.fbo,pass:"mask"}))})},n.shouldDrawLayer=function(s){return s.props.operation.includes("mask")},n.delete=function(){this.fbo.delete(),this.maskMap.delete()},r}(hs._LayersPass);var Tr=A(N());function Kl(e,t){return zl(e)||Yl(e,t)||gs(e,t)||jl()}function jl(){throw new TypeError(`Invalid attempt to destructure non-iterable instance.
|
|
1451
|
+
In order to be iterable, non-array objects must have a [Symbol.iterator]() method.`)}function Yl(e,t){var r=e==null?null:typeof Symbol<"u"&&e[Symbol.iterator]||e["@@iterator"];if(r!=null){var n=[],o=!0,s=!1,a,_;try{for(r=r.call(e);!(o=(a=r.next()).done)&&(n.push(a.value),!(t&&n.length===t));o=!0);}catch(f){s=!0,_=f}finally{try{!o&&r.return!=null&&r.return()}finally{if(s)throw _}}return n}}function zl(e){if(Array.isArray(e))return e}function Gl(e,t){var r=typeof Symbol<"u"&&e[Symbol.iterator]||e["@@iterator"];if(!r){if(Array.isArray(e)||(r=gs(e))||t&&e&&typeof e.length=="number"){r&&(e=r);var n=0,o=function(){};return{s:o,n:function(){return n>=e.length?{done:!0}:{done:!1,value:e[n++]}},e:function(u){throw u},f:o}}throw new TypeError(`Invalid attempt to iterate non-iterable instance.
|
|
1452
|
+
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 gs(e,t){if(e){if(typeof e=="string")return Ss(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 Ss(e,t)}}function Ss(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 Le(e,t){var r=[1/0,1/0,-1/0,-1/0],n=Gl(e),o;try{for(n.s();!(o=n.n()).done;){var s=o.value,a=s.getBounds();if(a){var _=s.projectPosition(a[0],{viewport:t,autoOffset:!1}),f=s.projectPosition(a[1],{viewport:t,autoOffset:!1});r[0]=Math.min(r[0],_[0]),r[1]=Math.min(r[1],_[1]),r[2]=Math.max(r[2],f[0]),r[3]=Math.max(r[3],f[1])}}}catch(u){n.e(u)}finally{n.f()}return Number.isFinite(r[0])?r:null}var $l=2048;function Xe(e){var t=e.bounds,r=e.viewport,n=e.border,o=n===void 0?0:n,s=r.isGeospatial;if(t[2]<=t[0]||t[3]<=t[1])return null;var a=r.unprojectPosition([(t[0]+t[2])/2,(t[1]+t[3])/2,0]),_=e.width,f=e.height,u=e.zoom;if(u===void 0){_=_-o*2,f=f-o*2;var l=Math.min(_/(t[2]-t[0]),f/(t[3]-t[1]));u=Math.min(Math.log2(l),20)}else if(!_||!f){var c=Math.pow(2,u);_=Math.round(Math.abs(t[2]-t[0])*c),f=Math.round(Math.abs(t[3]-t[1])*c);var E=$l-o*2;if(_>E||f>E){var d=E/Math.max(_,f);_=Math.round(_*d),f=Math.round(f*d),u+=Math.log2(d)}}return s?new Tr.WebMercatorViewport({id:r.id,x:o,y:o,width:_,height:f,longitude:a[0],latitude:a[1],zoom:u,orthographic:!0}):new Tr.OrthographicViewport({id:r.id,x:o,y:o,width:_,height:f,target:a,zoom:u,flipY:!1})}function Zl(e,t){var r;if(t&&t.length===2){var n=Kl(t,2),o=n[0],s=n[1],a=e.getBounds({z:o}),_=e.getBounds({z:s});r=[Math.min(a[0],_[0]),Math.min(a[1],_[1]),Math.max(a[2],_[2]),Math.max(a[3],_[3])]}else r=e.getBounds();var f=e.projectPosition(r.slice(0,2)),u=e.projectPosition(r.slice(2,4));return[f[0],f[1],u[0],u[1]]}function He(e,t,r){if(!e)return[0,0,1,1];var n=Zl(t,r),o=ql(n);return e[2]-e[0]<=o[2]-o[0]&&e[3]-e[1]<=o[3]-o[1]?e:[Math.max(e[0],o[0]),Math.max(e[1],o[1]),Math.min(e[2],o[2]),Math.min(e[3],o[3])]}function ql(e){var t=e[2]-e[0],r=e[3]-e[1],n=(e[0]+e[2])/2,o=(e[1]+e[3])/2;return[n-t,o-r,n+t,o+r]}function Ql(e,t){var r=typeof Symbol<"u"&&e[Symbol.iterator]||e["@@iterator"];if(!r){if(Array.isArray(e)||(r=Jl(e))||t&&e&&typeof e.length=="number"){r&&(e=r);var n=0,o=function(){};return{s:o,n:function(){return n>=e.length?{done:!0}:{done:!1,value:e[n++]}},e:function(u){throw u},f:o}}throw new TypeError(`Invalid attempt to iterate non-iterable instance.
|
|
1453
|
+
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 Jl(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,n=new Array(t);r<t;r++)n[r]=e[r];return n}function ec(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}var Ar=function(){function e(){ec(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(n,o){var s=o.layers,a=o.layerFilter,_=o.viewports,f=o.onViewportActive,u=o.views,l=o.isPicking,c=!1;if(this.dummyMaskMap||(this.dummyMaskMap=n.createTexture({width:1,height:1})),l)return{didRender:c};var E=s.filter(function(m){return m.props.visible&&m.props.operation.includes("mask")});if(E.length===0)return this.masks=null,this.channels.length=0,{didRender:c};this.masks={},this.maskPass||(this.maskPass=new ms(n,{id:"default-mask"}),this.maskMap=this.maskPass.maskMap);var d=this._sortMaskChannels(E),R=_[0],T=!this.lastViewport||!this.lastViewport.equals(R);if(R.resolution!==void 0)return Fn.log.warn("MaskExtension is not supported in GlobeView")(),{didRender:c};for(var p in d){var h=this._renderChannel(d[p],{layerFilter:a,onViewportActive:f,views:u,viewport:R,viewportChanged:T});c||(c=h)}return{didRender:c}},t._renderChannel=function(n,o){var s=o.layerFilter,a=o.onViewportActive,_=o.views,f=o.viewport,u=o.viewportChanged,l=!1,c=this.channels[n.index];if(!c)return l;var E=n===c||n.layers.length!==c.layers.length||n.layers.some(function(h,m){return h!==c.layers[m]||h.props.transitions})||n.layerBounds.some(function(h,m){return h!==c.layerBounds[m]});if(n.bounds=c.bounds,n.maskBounds=c.maskBounds,this.channels[n.index]=n,E||u){this.lastViewport=f;var d=Le(n.layers,f);if(n.bounds=d&&He(d,f),E||!Ue(n.bounds,c.bounds)){var R=this.maskPass,T=this.maskMap,p=d&&Xe({bounds:n.bounds,viewport:f,width:T.width,height:T.height,border:1});n.maskBounds=p?p.getBounds():[0,0,1,1],R.render({pass:"mask",channel:n.index,layers:n.layers,layerFilter:s,viewports:p?[p]:[],onViewportActive:a,views:_,moduleParameters:{devicePixelRatio:1}}),l=!0}}return this.masks[n.id]={index:n.index,bounds:n.maskBounds,coordinateOrigin:n.coordinateOrigin,coordinateSystem:n.coordinateSystem},l},t._sortMaskChannels=function(n){var o=this,s={},a=0,_=Ql(n),f;try{var u=function(){var p=f.value,h=p.root.id,m=s[h];if(!m){if(++a>4)return Fn.log.warn("Too many mask layers. The max supported is 4")(),"continue";m={id:h,index:o.channels.findIndex(function(b){return b?.id===h}),layers:[],layerBounds:[],coordinateOrigin:p.root.props.coordinateOrigin,coordinateSystem:p.root.props.coordinateSystem},s[h]=m}m.layers.push(p),m.layerBounds.push(p.getBounds())};for(_.s();!(f=_.n()).done;)var l=u()}catch(T){_.e(T)}finally{_.f()}for(var c=0;c<4;c++){var E=this.channels[c];(!E||!(E.id in s))&&(this.channels[c]=null)}for(var d in s){var R=s[d];R.index<0&&(R.index=this.channels.findIndex(function(T){return!T}),this.channels[R.index]=R)}return s},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 tc(e,t){var r=typeof Symbol<"u"&&e[Symbol.iterator]||e["@@iterator"];if(!r){if(Array.isArray(e)||(r=Ns(e))||t&&e&&typeof e.length=="number"){r&&(e=r);var n=0,o=function(){};return{s:o,n:function(){return n>=e.length?{done:!0}:{done:!1,value:e[n++]}},e:function(u){throw u},f:o}}throw new TypeError(`Invalid attempt to iterate non-iterable instance.
|
|
1454
|
+
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 rc(e,t){return oc(e)||ic(e,t)||Ns(e,t)||nc()}function nc(){throw new TypeError(`Invalid attempt to destructure non-iterable instance.
|
|
1455
|
+
In order to be iterable, non-array objects must have a [Symbol.iterator]() method.`)}function Ns(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 ic(e,t){var r=e==null?null:typeof Symbol<"u"&&e[Symbol.iterator]||e["@@iterator"];if(r!=null){var n=[],o=!0,s=!1,a,_;try{for(r=r.call(e);!(o=(a=r.next()).done)&&(n.push(a.value),!(t&&n.length===t));o=!0);}catch(f){s=!0,_=f}finally{try{!o&&r.return!=null&&r.return()}finally{if(s)throw _}}return n}}function oc(e){if(Array.isArray(e))return e}function sc(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}var Cn=2,Ps=function(){function e(){sc(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(n,o){var s,a=o.effects,_=o.layers,f=o.layerFilter,u=o.viewports,l=o.onViewportActive,c=o.views,E=o.isPicking,d=o.preRenderStats,R=d===void 0?{}:d;if(this.dummyCollisionMap||(this.dummyCollisionMap=n.createTexture({width:1,height:1})),!E){var T=_.filter(function(w){var he=w.props,wn=he.visible,Ke=he.collisionEnabled;return wn&&Ke});if(T.length===0){this.channels={};return}this.collisionFilterPass||(this.collisionFilterPass=new ps(n,{id:"default-collision-filter"}));var p=a?.filter(function(w){return w.constructor===Ar}),h=(s=R["mask-effect"])===null||s===void 0?void 0:s.didRender,m=this._groupByCollisionGroup(n,T),b=u[0],P=!this.lastViewport||!this.lastViewport.equals(b)||h;for(var fe in m){var j=this.collisionFBOs[fe],ke=m[fe],Pe=n.canvasContext.getPixelSize(),x=rc(Pe,2),ue=x[0],oe=x[1];j.resize({width:ue/Cn,height:oe/Cn}),this._render(ke,{effects:p,layerFilter:f,onViewportActive:l,views:c,viewport:b,viewportChanged:P})}}},t._render=function(n,o){var s=o.effects,a=o.layerFilter,_=o.onViewportActive,f=o.views,u=o.viewport,l=o.viewportChanged,c=n.collisionGroup,E=this.channels[c];if(E){var d=l||n===E||!(0,Is._deepEqual)(E.layers,n.layers,1)||n.layerBounds.some(function(T,p){return!Ue(T,E.layerBounds[p])})||n.allLayersLoaded!==E.allLayersLoaded||n.layers.some(function(T){return T.props.transitions});if(this.channels[c]=n,d){this.lastViewport=u;var R=this.collisionFBOs[c];this.collisionFilterPass.renderCollisionMap(R,{pass:"collision-filter",isPicking:!0,layers:n.layers,effects:s,layerFilter:a,viewports:u?[u]:[],onViewportActive:_,views:f,moduleParameters:{dummyCollisionMap:this.dummyCollisionMap,devicePixelRatio:R.device.canvasContext.getDevicePixelRatio()/Cn}})}}},t._groupByCollisionGroup=function(n,o){var s={},a=tc(o),_;try{for(a.s();!(_=a.n()).done;){var f=_.value,u=f.props.collisionGroup,l=s[u];l||(l={collisionGroup:u,layers:[],layerBounds:[],allLayersLoaded:!0},s[u]=l),l.layers.push(f),l.layerBounds.push(f.getBounds()),f.isLoaded||(l.allLayersLoaded=!1)}}catch(h){a.e(h)}finally{a.f()}for(var c=0,E=Object.keys(s);c<E.length;c++){var d=E[c];this.collisionFBOs[d]||this.createFBO(n,d),this.channels[d]||(this.channels[d]=s[d])}for(var R=0,T=Object.keys(this.collisionFBOs);R<T.length;R++){var p=T[R];s[p]||this.destroyFBO(p)}return s},t.getModuleParameters=function(n){var o=n.props.collisionGroup,s=this.collisionFBOs,a=this.dummyCollisionMap;return{collisionFBO:s[o],dummyCollisionMap:a}},t.cleanup=function(){this.dummyCollisionMap&&(this.dummyCollisionMap.delete(),this.dummyCollisionMap=void 0),this.channels={};for(var n=0,o=Object.keys(this.collisionFBOs);n<o.length;n++){var s=o[n];this.destroyFBO(s)}this.collisionFBOs={},this.lastViewport=void 0},t.createFBO=function(n,o){var s=n.gl.canvas,a=s.width,_=s.height,f=n.createTexture({format:"rgba8unorm",width:a,height:_,sampler:{minFilter:"nearest",magFilter:"nearest",addressModeU:"clamp-to-edge",addressModeV:"clamp-to-edge"}}),u=new $(n,{format:"depth16unorm",width:a,height:_});this.collisionFBOs[o]=n.createFramebuffer({id:"collision-".concat(o),width:a,height:_,colorAttachments:[f],depthStencilAttachment:u})},t.destroyFBO=function(n){var o,s,a=this.collisionFBOs[n];(o=a.colorAttachments[0])===null||o===void 0||o.destroy(),(s=a.depthStencilAttachment)===null||s===void 0||s.destroy(),a.destroy(),delete this.collisionFBOs[n]},e}();function hr(e){return typeof Symbol=="function"&&typeof Symbol.iterator=="symbol"?hr=function(r){return typeof r}:hr=function(r){return r&&typeof Symbol=="function"&&r.constructor===Symbol&&r!==Symbol.prototype?"symbol":typeof r},hr(e)}function ac(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}function _c(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&&Mn(e,t)}function Mn(e,t){return Mn=Object.setPrototypeOf||function(n,o){return n.__proto__=o,n},Mn(e,t)}function fc(e){var t=cc();return function(){var n=mr(e),o;if(t){var s=mr(this).constructor;o=Reflect.construct(n,arguments,s)}else o=n.apply(this,arguments);return uc(this,o)}}function uc(e,t){if(t&&(hr(t)==="object"||typeof t=="function"))return t;if(t!==void 0)throw new TypeError("Derived constructors may only return object or undefined");return lc(e)}function lc(e){if(e===void 0)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return e}function cc(){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 mr(e){return mr=Object.setPrototypeOf?Object.getPrototypeOf:function(r){return r.__proto__||Object.getPrototypeOf(r)},mr(e)}var Ec={getCollisionPriority:{type:"accessor",value:0},collisionEnabled:!0,collisionGroup:{type:"string",value:"default"},collisionTestProps:{}},Sr=function(e){_c(r,e);var t=fc(r);function r(){return ac(this,r),t.apply(this,arguments)}var n=r.prototype;return n.getShaders=function(){return{modules:[cs]}},n.draw=function(s){var a=s.uniforms,_=s.context,f=s.moduleParameters,u=this.props.collisionEnabled,l=f.collisionFBO,c=f.drawToCollisionMap,E=u&&Boolean(l);a.collision_enabled=E,c&&(this.props=this.clone(this.props.collisionTestProps).props)},n.initializeState=function(s,a){var _;if(this.getAttributeManager()!==null){(_=this.context.deck)===null||_===void 0||_._addDefaultEffect(new Ps);var f=this.getAttributeManager();f.add({collisionPriorities:{size:1,accessor:"getCollisionPriority",shaderAttributes:{collisionPriorities:{divisor:0},instanceCollisionPriorities:{divisor:1}}}})}},n.getNeedsPickingBuffer=function(){return this.props.collisionEnabled},r}(vs.LayerExtension);Sr.defaultProps=Ec;Sr.extensionName="CollisionFilterExtension";var Ae=A(N());var Fs=A(N()),dc=`
|
|
1456
1456
|
uniform vec4 mask_bounds;
|
|
1457
1457
|
uniform bool mask_maskByInstance;
|
|
1458
1458
|
vec2 mask_getCoords(vec4 position) {
|
|
1459
1459
|
return (position.xy - mask_bounds.xy) / (mask_bounds.zw - mask_bounds.xy);
|
|
1460
1460
|
}
|
|
1461
|
-
`,
|
|
1461
|
+
`,Rc=`
|
|
1462
1462
|
uniform sampler2D mask_texture;
|
|
1463
1463
|
uniform int mask_channel;
|
|
1464
1464
|
uniform bool mask_enabled;
|
|
@@ -1485,7 +1485,7 @@ bool mask_isInBounds(vec2 texCoords) {
|
|
|
1485
1485
|
return maskValue < 0.5;
|
|
1486
1486
|
}
|
|
1487
1487
|
}
|
|
1488
|
-
`,
|
|
1488
|
+
`,pc={"vs:#decl":`
|
|
1489
1489
|
varying vec2 mask_texCoords;
|
|
1490
1490
|
`,"vs:#main-end":`
|
|
1491
1491
|
vec4 mask_common_position;
|
|
@@ -1507,13 +1507,13 @@ varying vec2 mask_texCoords;
|
|
|
1507
1507
|
|
|
1508
1508
|
if (!mask) discard;
|
|
1509
1509
|
}
|
|
1510
|
-
`},Tc=function(t){return t&&"maskMap"in t?{mask_texture:t.maskMap}:{}},
|
|
1511
|
-
`),Nr={name:"terrain",dependencies:[
|
|
1510
|
+
`},Tc=function(t){return t&&"maskMap"in t?{mask_texture:t.maskMap}:{}},Cs={name:"mask",dependencies:[Fs.project],vs:dc,fs:Rc,inject:pc,getUniforms:Tc};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 Ac(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}function hc(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 mc(e){var t=Oc();return function(){var n=Or(e),o;if(t){var s=Or(this).constructor;o=Reflect.construct(n,arguments,s)}else o=n.apply(this,arguments);return Sc(this,o)}}function Sc(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 gc(e)}function gc(e){if(e===void 0)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return e}function Oc(){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 Or(e){return Or=Object.setPrototypeOf?Object.getPrototypeOf:function(r){return r.__proto__||Object.getPrototypeOf(r)},Or(e)}var bc={maskId:"",maskByInstance:void 0,maskInverted:!1},br=function(e){hc(r,e);var t=mc(r);function r(){return Ac(this,r),t.apply(this,arguments)}var n=r.prototype;return n.initializeState=function(){var s;(s=this.context.deck)===null||s===void 0||s._addDefaultEffect(new Ar)},n.getShaders=function(){var s="instancePositions"in this.getAttributeManager().attributes;return this.props.maskByInstance!==void 0&&(s=Boolean(this.props.maskByInstance)),this.state.maskByInstance=s,{modules:[Cs]}},n.draw=function(s){var a=s.uniforms,_=s.context,f=s.moduleParameters;a.mask_maskByInstance=this.state.maskByInstance;var u=this.props,l=u.maskId,c=u.maskInverted,E=f.maskChannels,d=_.viewport;if(E&&E[l]){var R=E[l],T=R.index,p=R.bounds,h=R.coordinateOrigin,m=E[l].coordinateSystem;a.mask_enabled=!0,a.mask_channel=T,a.mask_inverted=c,m===Ae.COORDINATE_SYSTEM.DEFAULT&&(m=d.isGeospatial?Ae.COORDINATE_SYSTEM.LNGLAT:Ae.COORDINATE_SYSTEM.CARTESIAN);var b={modelMatrix:null,fromCoordinateOrigin:h,fromCoordinateSystem:m},P=this.projectPosition([p[0],p[1],0],b),fe=this.projectPosition([p[2],p[3],0],b);a.mask_bounds=[P[0],P[1],fe[0],fe[1]]}else l&&Ae.log.warn("Could not find a mask layer with id: ".concat(l))(),a.mask_enabled=!1},r}(Ae.LayerExtension);br.defaultProps=bc;br.extensionName="MaskExtension";var qs=A(N());var yr=A(N());var ys=A(N()),ie={NONE:0,WRITE_HEIGHT_MAP:1,USE_HEIGHT_MAP:2,USE_COVER:3,USE_COVER_ONLY:4,SKIP:5},Ms=Object.keys(ie).map(function(e){return"const float TERRAIN_MODE_".concat(e," = ").concat(ie[e],".0;")}).join(`
|
|
1511
|
+
`),Nr={name:"terrain",dependencies:[ys.project],inject:{"vs:#decl":`
|
|
1512
1512
|
uniform float terrain_mode;
|
|
1513
1513
|
uniform sampler2D terrain_map;
|
|
1514
1514
|
uniform vec4 terrain_bounds;
|
|
1515
1515
|
varying vec3 commonPos;
|
|
1516
|
-
`.concat(
|
|
1516
|
+
`.concat(Ms,`
|
|
1517
1517
|
`),"vs:#main-start":`
|
|
1518
1518
|
if (terrain_mode == TERRAIN_MODE_SKIP) {
|
|
1519
1519
|
gl_Position = vec4(0.0);
|
|
@@ -1542,7 +1542,7 @@ uniform float terrain_mode;
|
|
|
1542
1542
|
uniform sampler2D terrain_map;
|
|
1543
1543
|
uniform vec4 terrain_bounds;
|
|
1544
1544
|
varying vec3 commonPos;
|
|
1545
|
-
`.concat(
|
|
1545
|
+
`.concat(Ms,`
|
|
1546
1546
|
`),"fs:#main-start":`
|
|
1547
1547
|
if (terrain_mode == TERRAIN_MODE_WRITE_HEIGHT_MAP) {
|
|
1548
1548
|
gl_FragColor = vec4(commonPos.z, 0.0, 0.0, 1.0);
|
|
@@ -1560,9 +1560,9 @@ if ((terrain_mode == TERRAIN_MODE_USE_COVER) || (terrain_mode == TERRAIN_MODE_US
|
|
|
1560
1560
|
}
|
|
1561
1561
|
return;
|
|
1562
1562
|
}
|
|
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 n=t.drawToTerrainHeightMap,o=t.heightMap,s=t.heightMapBounds,a=t.dummyHeightMap,_=t.terrainCover,f=t.useTerrainHeightMap,u=t.terrainSkipRender,l=r.project_uCommonOrigin,c=u?ie.SKIP:ie.NONE,E=a,d=null;if(n)c=ie.WRITE_HEIGHT_MAP,d=s;else if(f&&o)c=ie.USE_HEIGHT_MAP,E=o,d=s;else if(_){var R=t.pickingActive;E=R?_.getPickingFramebuffer():_.getRenderFramebuffer(),R&&(c=ie.SKIP),E?(c=c===ie.SKIP?ie.USE_COVER_ONLY:ie.USE_COVER,d=_.bounds):E=a}return{terrain_mode:c,terrain_map:E,terrain_bounds:d?[d[0]-l[0],d[1]-l[1],d[2]-d[0],d[3]-d[1]]:[0,0,0,0]}}return null}};function
|
|
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 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
|
|
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 n=t.drawToTerrainHeightMap,o=t.heightMap,s=t.heightMapBounds,a=t.dummyHeightMap,_=t.terrainCover,f=t.useTerrainHeightMap,u=t.terrainSkipRender,l=r.project_uCommonOrigin,c=u?ie.SKIP:ie.NONE,E=a,d=null;if(n)c=ie.WRITE_HEIGHT_MAP,d=s;else if(f&&o)c=ie.USE_HEIGHT_MAP,E=o,d=s;else if(_){var R=t.pickingActive;E=R?_.getPickingFramebuffer():_.getRenderFramebuffer(),R&&(c=ie.SKIP),E?(c=c===ie.SKIP?ie.USE_COVER_ONLY:ie.USE_COVER,d=_.bounds):E=a}return{terrain_mode:c,terrain_map:E,terrain_bounds:d?[d[0]-l[0],d[1]-l[1],d[2]-d[0],d[3]-d[1]]:[0,0,0,0]}}return null}};function xs(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 Bs(e){for(var t=1;t<arguments.length;t++){var r=arguments[t]!=null?arguments[t]:{};t%2?xs(Object(r),!0).forEach(function(n){Nc(e,n,r[n])}):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(r)):xs(Object(r)).forEach(function(n){Object.defineProperty(e,n,Object.getOwnPropertyDescriptor(r,n))})}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 Et(e,t){return e.createFramebuffer({id:t.id,colorAttachments:[e.createTexture(Bs(Bs({},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 Ic(e,t){var r=typeof Symbol<"u"&&e[Symbol.iterator]||e["@@iterator"];if(!r){if(Array.isArray(e)||(r=Pc(e))||t&&e&&typeof e.length=="number"){r&&(e=r);var n=0,o=function(){};return{s:o,n:function(){return n>=e.length?{done:!0}:{done:!1,value:e[n++]}},e:function(u){throw u},f:o}}throw new TypeError(`Invalid attempt to iterate non-iterable instance.
|
|
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 Pc(e,t){if(e){if(typeof e=="string")return Ds(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 Ds(e,t)}}function Ds(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 vc(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}function Us(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 Fc(e,t,r){return t&&Us(e.prototype,t),r&&Us(e,r),e}var ws=function(){function e(r){vc(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(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=Ic(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?Cc(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())},Fc(e,[{key:"id",get:function(){return this.targetLayer.id}},{key:"isActive",get:function(){return Boolean(this.targetLayer.getCurrentLayer())}}]),e}();function Cc(e,t){return t.filter(function(r){var n=Ls(r);return n?Mc(e.boundingBox,n.boundingBox):!0})}function Ls(e){for(;e;){var t=e.props.tile;if(t)return t;e=e.parent}return null}function Mc(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 Hs=A(N());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 Xs(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 Ir(e){for(var t=1;t<arguments.length;t++){var r=arguments[t]!=null?arguments[t]:{};t%2?Xs(Object(r),!0).forEach(function(n){yc(e,n,r[n])}):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(r)):Xs(Object(r)).forEach(function(n){Object.defineProperty(e,n,Object.getOwnPropertyDescriptor(r,n))})}return e}function yc(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 Bc(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 Dc(e){var t=Lc();return function(){var n=vr(e),o;if(t){var s=vr(this).constructor;o=Reflect.construct(n,arguments,s)}else o=n.apply(this,arguments);return Uc(this,o)}}function Uc(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 wc(e)}function wc(e){if(e===void 0)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return e}function Lc(){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 vr(e){return vr=Object.setPrototypeOf?Object.getPrototypeOf:function(r){return r.__proto__||Object.getPrototypeOf(r)},vr(e)}var Vs=function(e){Bc(r,e);var t=Dc(r);function r(){return xc(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(Ir(Ir({},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(Ir(Ir({},a),{},{target:f,pass:"terrain-cover-".concat(s.id),layers:l,effects:[],viewports:[u]}))})}},r}(Hs._LayersPass);var Ks=A(N());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 Ws(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 ks(e){for(var t=1;t<arguments.length;t++){var r=arguments[t]!=null?arguments[t]:{};t%2?Ws(Object(r),!0).forEach(function(n){Xc(e,n,r[n])}):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(r)):Ws(Object(r)).forEach(function(n){Object.defineProperty(e,n,Object.getOwnPropertyDescriptor(r,n))})}return e}function Xc(e,t,r){return t in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r,e}function Hc(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(o,s,a){var _=Vc(o,s);if(_){var f=Object.getOwnPropertyDescriptor(_,s);return f.get?f.get.call(a):f.value}},Cr(e,t,r||e)}function Vc(e,t){for(;!Object.prototype.hasOwnProperty.call(e,t)&&(e=Ve(e),e!==null););return e}function Wc(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&&Bn(e,t)}function Bn(e,t){return Bn=Object.setPrototypeOf||function(n,o){return n.__proto__=o,n},Bn(e,t)}function kc(e){var t=Yc();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&&(Fr(t)==="object"||typeof t=="function"))return t;if(t!==void 0)throw new TypeError("Derived constructors may only return object or undefined");return jc(e)}function jc(e){if(e===void 0)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return e}function Yc(){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 js=function(e){Wc(r,e);var t=kc(r);function r(){var o;Hc(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(ks(ks({},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=Cr(Ve(r.prototype),"getLayerParameters",this).call(this,s,a,_);return f.blend=!0,f},r}(Ks._PickLayersPass);function zc(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}var Ys=2048,Dn=function(){e.isSupported=function(n){return n.isTextureFormatRenderable("rgba32float")};function e(r){zc(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,Ys),height:Math.min(E,Ys),viewport:a}):null,!0}return!1},t.delete=function(){this.fbo&&(this.fbo.colorAttachments[0].delete(),this.fbo.delete())},e}();function Gc(e,t){return qc(e)||Zc(e,t)||$s(e,t)||$c()}function $c(){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 Zc(e,t){var r=e==null?null:typeof Symbol<"u"&&e[Symbol.iterator]||e["@@iterator"];if(r!=null){var n=[],o=!0,s=!1,a,_;try{for(r=r.call(e);!(o=(a=r.next()).done)&&(n.push(a.value),!(t&&n.length===t));o=!0);}catch(f){s=!0,_=f}finally{try{!o&&r.return!=null&&r.return()}finally{if(s)throw _}}return n}}function qc(e){if(Array.isArray(e))return e}function zs(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 Mr(e){for(var t=1;t<arguments.length;t++){var r=arguments[t]!=null?arguments[t]:{};t%2?zs(Object(r),!0).forEach(function(n){Qc(e,n,r[n])}):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(r)):zs(Object(r)).forEach(function(n){Object.defineProperty(e,n,Object.getOwnPropertyDescriptor(r,n))})}return e}function Qc(e,t,r){return t in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r,e}function We(e,t){var r=typeof Symbol<"u"&&e[Symbol.iterator]||e["@@iterator"];if(!r){if(Array.isArray(e)||(r=$s(e))||t&&e&&typeof e.length=="number"){r&&(e=r);var n=0,o=function(){};return{s:o,n:function(){return n>=e.length?{done:!0}:{done:!1,value:e[n++]}},e:function(u){throw u},f:o}}throw new TypeError(`Invalid attempt to iterate non-iterable instance.
|
|
1566
|
+
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 $s(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,n=new Array(t);r<t;r++)n[r]=e[r];return n}function Jc(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}var Zs=function(){function e(){Jc(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(n){this.dummyHeightMap=n.createTexture({width:1,height:1,data:new Uint8Array([0,0,0,0])}),this.terrainPass=new Vs(n,{id:"terrain"}),this.terrainPickingPass=new js(n,{id:"terrain-picking"}),Dn.isSupported(n)?this.heightMap=new Dn(n):yr.log.warn("Terrain offset mode is not supported by this browser")(),(0,yr.getShaderAssembler)().addDefaultModule(Nr)},t.preRender=function(n,o){if(!this.dummyHeightMap){this.initialize(n);var s=We(o.layers),a;try{for(s.s();!(a=s.n()).done;){var _=a.value;_.props.operation.includes("terrain")&&_.setChangeFlags({extensionsChanged:!0})}}catch(p){s.e(p)}finally{s.f()}}if(o.pickZ){this.isDrapingEnabled=!1;return}var f=o.viewports,u=o.isPicking,l=u===void 0?!1:u;this.isPicking=l,this.isDrapingEnabled=!0;var c=f[0],E=(l?this.terrainPickingPass:this.terrainPass).getRenderableLayers(c,o),d=E.filter(function(p){return p.props.operation.includes("terrain")});if(d.length!==0){if(!l){var R=E.filter(function(p){return p.state.terrainDrawMode==="offset"});R.length>0&&this._updateHeightMap(d,c,o)}var T=E.filter(function(p){return p.state.terrainDrawMode==="drape"});this._updateTerrainCovers(d,T,c,o)}},t.getModuleParameters=function(n){var o,s,a=n.state.terrainDrawMode;return{heightMap:(o=this.heightMap)===null||o===void 0?void 0:o.getRenderFramebuffer(),heightMapBounds:(s=this.heightMap)===null||s===void 0?void 0:s.bounds,dummyHeightMap:this.dummyHeightMap,terrainCover:this.isDrapingEnabled?this.terrainCovers.get(n.id):null,useTerrainHeightMap:a==="offset",terrainSkipRender:a==="drape"||!n.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 n=We(this.terrainCovers.values()),o;try{for(n.s();!(o=n.n()).done;){var s=o.value;s.delete()}}catch(a){n.e(a)}finally{n.f()}this.terrainCovers.clear()},t._updateHeightMap=function(n,o,s){if(this.heightMap){var a=this.heightMap.shouldUpdate({layers:n,viewport:o});a&&this.terrainPass.renderHeightMap(this.heightMap,Mr(Mr({},s),{},{layers:n,moduleParameters:{heightMapBounds:this.heightMap.bounds,dummyHeightMap:this.dummyHeightMap,devicePixelRatio:1,drawToTerrainHeightMap:!0}}))}},t._updateTerrainCovers=function(n,o,s,a){var _={},f=We(o),u;try{for(f.s();!(u=f.n()).done;){var l=u.value;l.state.terrainCoverNeedsRedraw&&(_[l.id]=!0,l.state.terrainCoverNeedsRedraw=!1)}}catch(h){f.e(h)}finally{f.f()}var c=We(this.terrainCovers.values()),E;try{for(c.s();!(E=c.n()).done;){var d=E.value;d.isDirty=d.isDirty||d.shouldUpdate({layerNeedsRedraw:_})}}catch(h){c.e(h)}finally{c.f()}var R=We(n),T;try{for(R.s();!(T=R.n()).done;){var p=T.value;this._updateTerrainCover(p,o,s,a)}}catch(h){R.e(h)}finally{R.f()}this.isPicking||this._pruneTerrainCovers()},t._updateTerrainCover=function(n,o,s,a){var _=this.isPicking?this.terrainPickingPass:this.terrainPass,f=this.terrainCovers.get(n.id);f||(f=new ws(n),this.terrainCovers.set(n.id,f));try{var u=f.shouldUpdate({targetLayer:n,viewport:s,layers:o});(this.isPicking||f.isDirty||u)&&(_.renderTerrainCover(f,Mr(Mr({},a),{},{layers:o,moduleParameters:{dummyHeightMap:this.dummyHeightMap,terrainSkipRender:!1,devicePixelRatio:1}})),f.isDirty=!1)}catch(l){n.raiseError(l,"Error rendering terrain cover ".concat(f.id))}},t._pruneTerrainCovers=function(){var n=[],o=We(this.terrainCovers),s;try{for(o.s();!(s=o.n()).done;){var a=Gc(s.value,2),_=a[0],f=a[1];f.isActive||n.push(_)}}catch(E){o.e(E)}finally{o.f()}for(var u=0,l=n;u<l.length;u++){var c=l[u];this.terrainCovers.delete(c)}},e}();function xr(e){return typeof Symbol=="function"&&typeof Symbol.iterator=="symbol"?xr=function(r){return typeof r}:xr=function(r){return r&&typeof Symbol=="function"&&r.constructor===Symbol&&r!==Symbol.prototype?"symbol":typeof r},xr(e)}function eE(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}function tE(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&&Un(e,t)}function Un(e,t){return Un=Object.setPrototypeOf||function(n,o){return n.__proto__=o,n},Un(e,t)}function rE(e){var t=oE();return function(){var n=Br(e),o;if(t){var s=Br(this).constructor;o=Reflect.construct(n,arguments,s)}else o=n.apply(this,arguments);return nE(this,o)}}function nE(e,t){if(t&&(xr(t)==="object"||typeof t=="function"))return t;if(t!==void 0)throw new TypeError("Derived constructors may only return object or undefined");return iE(e)}function iE(e){if(e===void 0)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return e}function oE(){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 Br(e){return Br=Object.setPrototypeOf?Object.getPrototypeOf:function(r){return r.__proto__||Object.getPrototypeOf(r)},Br(e)}var sE={terrainDrawMode:void 0},Dr=function(e){tE(r,e);var t=rE(r);function r(){return eE(this,r),t.apply(this,arguments)}var n=r.prototype;return n.getShaders=function(){return{modules:[Nr]}},n.initializeState=function(){var s;(s=this.context.deck)===null||s===void 0||s._addDefaultEffect(new Zs)},n.updateState=function(s){var a=s.props,_=s.oldProps;if(!(this.state.terrainDrawMode&&a.terrainDrawMode===_.terrainDrawMode&&a.extruded===_.extruded)){var f=a.terrainDrawMode;if(!f){var u,l=this.props.extruded,c=(u=this.getAttributeManager())===null||u===void 0?void 0:u.attributes,E=c&&"instancePositions"in c;f=l||E?"offset":"drape"}this.setState({terrainDrawMode:f})}},n.onNeedsRedraw=function(){var s=this.state;s.terrainDrawMode==="drape"&&(s.terrainCoverNeedsRedraw=!0)},r}(qs.LayerExtension);Dr.defaultProps=sE;Dr.extensionName="TerrainExtension";return na(dt);})();
|
|
1567
1567
|
return __exports__;
|
|
1568
1568
|
});
|