@deck.gl/extensions 9.0.0-alpha.5 → 9.0.0-alpha.7

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.
Files changed (95) hide show
  1. package/dist/dist.dev.js +4744 -4644
  2. package/dist/es5/brushing/shader-module.js +2 -2
  3. package/dist/es5/brushing/shader-module.js.map +1 -1
  4. package/dist/es5/clip/clip-extension.js +4 -4
  5. package/dist/es5/clip/clip-extension.js.map +1 -1
  6. package/dist/es5/collision-filter/shader-module.js +1 -1
  7. package/dist/es5/collision-filter/shader-module.js.map +1 -1
  8. package/dist/es5/data-filter/aggregator.js +2 -2
  9. package/dist/es5/data-filter/aggregator.js.map +1 -1
  10. package/dist/es5/data-filter/shader-module.js +2 -2
  11. package/dist/es5/data-filter/shader-module.js.map +1 -1
  12. package/dist/es5/fill-style/shaders.glsl.js +3 -3
  13. package/dist/es5/fill-style/shaders.glsl.js.map +1 -1
  14. package/dist/es5/fp64/project64.js.map +1 -1
  15. package/dist/es5/mask/shader-module.js +4 -4
  16. package/dist/es5/mask/shader-module.js.map +1 -1
  17. package/dist/es5/path-style/shaders.glsl.js +4 -4
  18. package/dist/es5/path-style/shaders.glsl.js.map +1 -1
  19. package/dist/es5/terrain/shader-module.js +5 -5
  20. package/dist/es5/terrain/shader-module.js.map +1 -1
  21. package/dist/esm/brushing/shader-module.js +4 -4
  22. package/dist/esm/brushing/shader-module.js.map +1 -1
  23. package/dist/esm/clip/clip-extension.js +4 -4
  24. package/dist/esm/clip/clip-extension.js.map +1 -1
  25. package/dist/esm/collision-filter/shader-module.js +3 -3
  26. package/dist/esm/collision-filter/shader-module.js.map +1 -1
  27. package/dist/esm/data-filter/aggregator.js +11 -7
  28. package/dist/esm/data-filter/aggregator.js.map +1 -1
  29. package/dist/esm/data-filter/shader-module.js +4 -4
  30. package/dist/esm/data-filter/shader-module.js.map +1 -1
  31. package/dist/esm/fill-style/shaders.glsl.js +10 -10
  32. package/dist/esm/fill-style/shaders.glsl.js.map +1 -1
  33. package/dist/esm/fp64/project64.js.map +1 -1
  34. package/dist/esm/mask/shader-module.js +5 -5
  35. package/dist/esm/mask/shader-module.js.map +1 -1
  36. package/dist/esm/path-style/shaders.glsl.js +9 -13
  37. package/dist/esm/path-style/shaders.glsl.js.map +1 -1
  38. package/dist/esm/terrain/shader-module.js +5 -5
  39. package/dist/esm/terrain/shader-module.js.map +1 -1
  40. package/dist.min.js +170 -173
  41. package/package.json +8 -8
  42. package/src/brushing/shader-module.ts +6 -5
  43. package/src/clip/clip-extension.ts +6 -5
  44. package/src/collision-filter/shader-module.ts +4 -4
  45. package/src/data-filter/aggregator.ts +11 -7
  46. package/src/data-filter/shader-module.ts +5 -6
  47. package/src/fill-style/shaders.glsl.ts +12 -11
  48. package/src/fp64/project64.ts +2 -1
  49. package/src/mask/shader-module.ts +6 -6
  50. package/src/path-style/shaders.glsl.ts +9 -13
  51. package/src/terrain/shader-module.ts +6 -6
  52. package/typed/brushing/brushing-extension.d.ts +1 -1
  53. package/typed/brushing/brushing-extension.d.ts.map +1 -1
  54. package/typed/brushing/shader-module.d.ts +3 -2
  55. package/typed/brushing/shader-module.d.ts.map +1 -1
  56. package/typed/clip/clip-extension.d.ts +4 -3
  57. package/typed/clip/clip-extension.d.ts.map +1 -1
  58. package/typed/collision-filter/collision-filter-extension.d.ts +1 -1
  59. package/typed/collision-filter/collision-filter-extension.d.ts.map +1 -1
  60. package/typed/collision-filter/collision-filter-pass.d.ts +1 -1
  61. package/typed/collision-filter/collision-filter-pass.d.ts.map +1 -1
  62. package/typed/collision-filter/shader-module.d.ts +2 -2
  63. package/typed/collision-filter/shader-module.d.ts.map +1 -1
  64. package/typed/data-filter/aggregator.d.ts.map +1 -1
  65. package/typed/data-filter/data-filter-extension.d.ts +2 -2
  66. package/typed/data-filter/data-filter-extension.d.ts.map +1 -1
  67. package/typed/data-filter/shader-module.d.ts +2 -2
  68. package/typed/data-filter/shader-module.d.ts.map +1 -1
  69. package/typed/fill-style/fill-style-extension.d.ts +2 -2
  70. package/typed/fill-style/fill-style-extension.d.ts.map +1 -1
  71. package/typed/fill-style/shaders.glsl.d.ts +3 -2
  72. package/typed/fill-style/shaders.glsl.d.ts.map +1 -1
  73. package/typed/fp64/project64.d.ts +3 -2
  74. package/typed/fp64/project64.d.ts.map +1 -1
  75. package/typed/mask/mask-effect.d.ts +2 -2
  76. package/typed/mask/mask-effect.d.ts.map +1 -1
  77. package/typed/mask/mask-extension.d.ts +1 -1
  78. package/typed/mask/mask-extension.d.ts.map +1 -1
  79. package/typed/mask/mask-pass.d.ts +1 -1
  80. package/typed/mask/mask-pass.d.ts.map +1 -1
  81. package/typed/mask/shader-module.d.ts +2 -2
  82. package/typed/mask/shader-module.d.ts.map +1 -1
  83. package/typed/path-style/path-style-extension.d.ts +2 -2
  84. package/typed/path-style/path-style-extension.d.ts.map +1 -1
  85. package/typed/path-style/shaders.glsl.d.ts.map +1 -1
  86. package/typed/terrain/shader-module.d.ts +2 -2
  87. package/typed/terrain/shader-module.d.ts.map +1 -1
  88. package/typed/terrain/terrain-extension.d.ts +1 -1
  89. package/typed/terrain/terrain-extension.d.ts.map +1 -1
  90. package/typed/terrain/terrain-pass.d.ts +1 -1
  91. package/typed/terrain/terrain-pass.d.ts.map +1 -1
  92. package/typed/terrain/terrain-picking-pass.d.ts +1 -1
  93. package/typed/terrain/terrain-picking-pass.d.ts.map +1 -1
  94. package/typed/utils/projection-utils.d.ts +1 -1
  95. package/typed/utils/projection-utils.d.ts.map +1 -1
package/dist.min.js CHANGED
@@ -4,19 +4,19 @@
4
4
  else if (typeof define === 'function' && define.amd) define([], factory);
5
5
  else if (typeof exports === 'object') exports['deck'] = factory();
6
6
  else root['deck'] = factory();})(globalThis, function () {
7
- "use strict";var __exports__=(()=>{var 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=`
7
+ "use strict";var __exports__=(()=>{var na=Object.create;var Tt=Object.defineProperty;var oa=Object.getOwnPropertyDescriptor;var sa=Object.getOwnPropertyNames;var aa=Object.getPrototypeOf,fa=Object.prototype.hasOwnProperty;var Mi=(e,t)=>()=>(t||e((t={exports:{}}).exports,t),t.exports),Ni=(e,t)=>{for(var r in t)Tt(e,r,{get:t[r],enumerable:!0})},gt=(e,t,r,i)=>{if(t&&typeof t=="object"||typeof t=="function")for(let n of sa(t))!fa.call(e,n)&&n!==r&&Tt(e,n,{get:()=>t[n],enumerable:!(i=oa(t,n))||i.enumerable});return e},ue=(e,t,r)=>(gt(e,t,"default"),r&&gt(r,t,"default")),T=(e,t,r)=>(r=e!=null?na(aa(e)):{},gt(t||!e||!e.__esModule?Tt(r,"default",{value:e,enumerable:!0}):r,e)),la=e=>gt(Tt({},"__esModule",{value:!0}),e);var S=Mi((ld,Bi)=>{Bi.exports=globalThis.deck});var E=Mi((hd,Hi)=>{Hi.exports=globalThis.luma});var pt={};Ni(pt,{BrushingExtension:()=>bt,ClipExtension:()=>dr,CollisionFilterExtension:()=>vr,DataFilterExtension:()=>er,FillStyleExtension:()=>cr,Fp64Extension:()=>Ai,MaskExtension:()=>yr,PathStyleExtension:()=>ar,_TerrainExtension:()=>wr,project64:()=>rr});var Q={},Di=T(S());ue(Q,T(S()));if(!Di.Layer)throw new Error("@deck.gl/core is not found");ue(pt,Q);var Vi=T(S());var wi=T(S()),ca=`
8
8
  uniform bool brushing_enabled;
9
9
  uniform int brushing_target;
10
10
  uniform vec2 brushing_mousePos;
11
11
  uniform float brushing_radius;
12
12
 
13
13
  #ifdef NON_INSTANCED_MODEL
14
- attribute vec2 brushingTargets;
14
+ in vec2 brushingTargets;
15
15
  #else
16
- attribute vec2 instanceBrushingTargets;
16
+ in vec2 instanceBrushingTargets;
17
17
  #endif
18
18
 
19
- varying float brushing_isVisible;
19
+ out float brushing_isVisible;
20
20
 
21
21
  bool brushing_isPointInRange(vec2 position) {
22
22
  if (!brushing_enabled) {
@@ -36,10 +36,10 @@
36
36
  void brushing_setVisible(bool visible) {
37
37
  brushing_isVisible = float(visible);
38
38
  }
39
- `,oa=`
39
+ `,ua=`
40
40
  uniform bool brushing_enabled;
41
- varying float brushing_isVisible;
42
- `,sa={source:0,target:1,custom:2,source_target:3},aa={"vs:DECKGL_FILTER_GL_POSITION":`
41
+ in float brushing_isVisible;
42
+ `,_a={source:0,target:1,custom:2,source_target:3},da={"vs:DECKGL_FILTER_GL_POSITION":`
43
43
  vec2 brushingTarget;
44
44
  vec2 brushingSource;
45
45
  if (brushing_target == 3) {
@@ -67,10 +67,9 @@
67
67
  if (brushing_enabled && brushing_isVisible < 0.5) {
68
68
  discard;
69
69
  }
70
- `},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=`
70
+ `},Ui={name:"brushing",dependencies:[wi.project],vs:ca,fs:ua,inject:da,getUniforms:function(t){if(!t||!("viewport"in t))return{};var r=t.brushingEnabled,i=r===void 0?!0:r,n=t.brushingRadius,o=n===void 0?1e4:n,s=t.brushingTarget,a=s===void 0?"source":s,f=t.mousePosition,l=t.viewport;return{brushing_enabled:Boolean(i&&f&&l.containsPixel(f)),brushing_radius:o,brushing_target:_a[a]||0,brushing_mousePos:f?l.unproject([f.x-l.x,f.y-l.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 pa(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}function ha(e,t){if(typeof t!="function"&&t!==null)throw new TypeError("Super expression must either be null or a function");e.prototype=Object.create(t&&t.prototype,{constructor:{value:e,writable:!0,configurable:!0}}),t&&Ur(e,t)}function Ur(e,t){return Ur=Object.setPrototypeOf||function(i,n){return i.__proto__=n,i},Ur(e,t)}function ga(e){var t=Ra();return function(){var i=Rt(e),n;if(t){var o=Rt(this).constructor;n=Reflect.construct(i,arguments,o)}else n=i.apply(this,arguments);return Ta(this,n)}}function Ta(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 Aa(e)}function Aa(e){if(e===void 0)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return e}function Ra(){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 Rt(e){return Rt=Object.setPrototypeOf?Object.getPrototypeOf:function(r){return r.__proto__||Object.getPrototypeOf(r)},Rt(e)}var ba={getBrushingTarget:{type:"accessor",value:[0,0]},brushingTarget:"source",brushingEnabled:!0,brushingRadius:1e4},bt=function(e){ha(r,e);var t=ga(r);function r(){return pa(this,r),t.apply(this,arguments)}var i=r.prototype;return i.getShaders=function(){return{modules:[Ui]}},i.initializeState=function(o,s){var a=this,f=this.getAttributeManager();f&&f.add({brushingTargets:{size:2,accessor:"getBrushingTarget",shaderAttributes:{brushingTargets:{divisor:0},instanceBrushingTargets:{divisor:1}}}});var l=function(){var u;(u=a.getCurrentLayer())===null||u===void 0||u.setNeedsRedraw()};this.state.onMouseMove=l,o.deck&&o.deck.eventManager.on({pointermove:l,pointerleave:l})},i.finalizeState=function(o,s){if(o.deck){var a=this.state.onMouseMove;o.deck.eventManager.off({pointermove:a,pointerleave:a})}},r}(Vi.LayerExtension);bt.defaultProps=ba;bt.extensionName="BrushingExtension";var Ea="Failed to create WebGL context in Node.js, headless gl returned null",va=" 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.",ma={width:1,height:1,debug:!0,throwOnError:!1},Vr=null;function ki(){return Vr!==null}function Wi(e){e={...ma,...e};let{width:t,height:r,webgl1:i,webgl2:n}=e;if(n&&!i)throw new Error("headless-gl does not support WebGL2");if(!Vr)throw new Error(va);let o=Vr(t,r,e);if(!o)throw new Error(Ea);return o}var O=T(E(),1);function We(e){if(typeof window<"u"&&typeof window.process=="object"&&window.process.type==="renderer"||typeof process<"u"&&typeof process.versions=="object"&&Boolean(process.versions.electron))return!0;let t=typeof navigator=="object"&&typeof navigator.userAgent=="string"&&navigator.userAgent,r=e||t;return!!(r&&r.indexOf("Electron")>=0)}function L(){return!(typeof process=="object"&&String(process)==="[object process]"&&!process.browser)||We()}var Rd=globalThis.self||globalThis.window||globalThis.global,bd=globalThis.window||globalThis.self||globalThis.global,Ed=globalThis.document||{},vd=globalThis.process||{},md=globalThis.console,Xi=globalThis.navigator||{};var kr=globalThis;function Et(e){if(!e&&!L())return"Node";if(We(e))return"Electron";let t=e||Xi.userAgent||"";if(t.indexOf("Edge")>-1)return"Edge";let r=t.indexOf("MSIE ")!==-1,i=t.indexOf("Trident/")!==-1;return r||i?"IE":kr.chrome?"Chrome":kr.safari?"Safari":kr.mozInnerScreenX?"Firefox":"Unknown"}var Qi=T(E(),1);var He={};function Sa(e){globalThis.console&&globalThis.console.error&&globalThis.console.error(e)}function ya(e){globalThis.console&&globalThis.console.log&&globalThis.console.log(e)}function Oa(e,t){He[e]=!0,t!==void 0&&Sa(t)}function xa(e){let t=e.getError;e.getError=function(){let i;do i=t.apply(e),i!==0&&(He[i]=!0);while(i!==0);for(i in He)if(He[i])return delete He[i],parseInt(i,10);return 0}}var Xe=function e(t){let r=t.gl;this.ext=t,this.isAlive=!0,this.hasBeenBound=!1,this.elementArrayBuffer=null,this.attribs=new Array(t.maxVertexAttribs);for(let i=0;i<this.attribs.length;i++){let n=new e.VertexAttrib(r);this.attribs[i]=n}this.maxAttrib=0};Xe.VertexAttrib=function(t){this.enabled=!1,this.buffer=null,this.size=4,this.type=5126,this.normalized=!1,this.stride=16,this.offset=0,this.cached="",this.recache()};Xe.VertexAttrib.prototype.recache=function(){this.cached=[this.size,this.type,this.normalized,this.stride,this.offset].join(":")};var Ae=function(t){let r=this;this.gl=t,xa(t);let i=this.original={getParameter:t.getParameter,enableVertexAttribArray:t.enableVertexAttribArray,disableVertexAttribArray:t.disableVertexAttribArray,bindBuffer:t.bindBuffer,getVertexAttrib:t.getVertexAttrib,vertexAttribPointer:t.vertexAttribPointer};t.getParameter=function(o){return o===r.VERTEX_ARRAY_BINDING_OES?r.currentVertexArrayObject===r.defaultVertexArrayObject?null:r.currentVertexArrayObject:i.getParameter.apply(this,arguments)},t.enableVertexAttribArray=function(o){let s=r.currentVertexArrayObject;s.maxAttrib=Math.max(s.maxAttrib,o);let a=s.attribs[o];return a.enabled=!0,i.enableVertexAttribArray.apply(this,arguments)},t.disableVertexAttribArray=function(o){let s=r.currentVertexArrayObject;s.maxAttrib=Math.max(s.maxAttrib,o);let a=s.attribs[o];return a.enabled=!1,i.disableVertexAttribArray.apply(this,arguments)},t.bindBuffer=function(o,s){switch(o){case 34962:r.currentArrayBuffer=s;break;case 34963:r.currentVertexArrayObject.elementArrayBuffer=s;break;default:}return i.bindBuffer.apply(this,arguments)},t.getVertexAttrib=function(o,s){let f=r.currentVertexArrayObject.attribs[o];switch(s){case 34975:return f.buffer;case 34338:return f.enabled;case 34339:return f.size;case 34340:return f.stride;case 34341:return f.type;case 34922:return f.normalized;default:return i.getVertexAttrib.apply(this,arguments)}},t.vertexAttribPointer=function(o,s,a,f,l,c){let u=r.currentVertexArrayObject;u.maxAttrib=Math.max(u.maxAttrib,o);let _=u.attribs[o];return _.buffer=r.currentArrayBuffer,_.size=s,_.type=a,_.normalized=f,_.stride=l,_.offset=c,_.recache(),i.vertexAttribPointer.apply(this,arguments)},t.instrumentExtension&&t.instrumentExtension(this,"OES_vertex_array_object"),t.canvas&&t.canvas.addEventListener("webglcontextrestored",()=>{ya("OESVertexArrayObject emulation library context restored"),r.reset_()},!0),this.reset_()};Ae.prototype.VERTEX_ARRAY_BINDING_OES=34229;Ae.prototype.reset_=function(){if(this.vertexArrayObjects!==void 0)for(let i=0;i<this.vertexArrayObjects.length;++i)this.vertexArrayObjects.isAlive=!1;let r=this.gl;this.maxVertexAttribs=r.getParameter(34921),this.defaultVertexArrayObject=new Xe(this),this.currentVertexArrayObject=null,this.currentArrayBuffer=null,this.vertexArrayObjects=[this.defaultVertexArrayObject],this.bindVertexArrayOES(null)};Ae.prototype.createVertexArrayOES=function(){let t=new Xe(this);return this.vertexArrayObjects.push(t),t};Ae.prototype.deleteVertexArrayOES=function(t){t.isAlive=!1,this.vertexArrayObjects.splice(this.vertexArrayObjects.indexOf(t),1),this.currentVertexArrayObject===t&&this.bindVertexArrayOES(null)};Ae.prototype.isVertexArrayOES=function(t){return!!(t&&t instanceof Xe&&t.hasBeenBound&&t.ext===this)};Ae.prototype.bindVertexArrayOES=function(t){let r=this.gl;if(t&&!t.isAlive){Oa(1282,"bindVertexArrayOES: attempt to bind deleted arrayObject");return}let i=this.original,n=this.currentVertexArrayObject;this.currentVertexArrayObject=t||this.defaultVertexArrayObject,this.currentVertexArrayObject.hasBeenBound=!0;let o=this.currentVertexArrayObject;if(n===o)return;(!n||o.elementArrayBuffer!==n.elementArrayBuffer)&&i.bindBuffer.call(r,34963,o.elementArrayBuffer);let s=this.currentArrayBuffer,a=Math.max(n?n.maxAttrib:0,o.maxAttrib);for(let f=0;f<=a;f++){let l=o.attribs[f],c=n?n.attribs[f]:null;if((!n||l.enabled!==c.enabled)&&(l.enabled?i.enableVertexAttribArray.call(r,f):i.disableVertexAttribArray.call(r,f)),l.enabled){let u=!1;(!n||l.buffer!==c.buffer)&&(s!==l.buffer&&(i.bindBuffer.call(r,34962,l.buffer),s=l.buffer),u=!0),(u||l.cached!==c.cached)&&i.vertexAttribPointer.call(r,f,l.size,l.type,l.normalized,l.stride,l.offset)}}this.currentArrayBuffer!==s&&i.bindBuffer.call(r,34962,this.currentArrayBuffer)};function Li(e){if(typeof e.createVertexArray=="function")return;let t=e.getSupportedExtensions;e.getSupportedExtensions=function(){let n=t.call(this)||[];return n.indexOf("OES_vertex_array_object")<0&&n.push("OES_vertex_array_object"),n};let r=e.getExtension;e.getExtension=function(n){let o=r.call(this,n);return o||(n!=="OES_vertex_array_object"?null:(e.__OESVertexArrayObject||(this.__OESVertexArrayObject=new Ae(this)),this.__OESVertexArrayObject))}}var Re=T(E(),1);var ji=T(E(),1),Pa="Invalid WebGLRenderingContext";function Fa(e){return typeof WebGLRenderingContext<"u"&&e instanceof WebGLRenderingContext||typeof WebGL2RenderingContext<"u"&&e instanceof WebGL2RenderingContext?!0:Boolean(e&&Number.isFinite(e._version))}function b(e){return typeof WebGL2RenderingContext<"u"&&e instanceof WebGL2RenderingContext?!0:Boolean(e&&e._version===2)}function Wr(e){return b(e)?e:null}function Ki(e){return(0,ji.assert)(Fa(e),Pa),e}var zi="OES_element_index",Yi="WEBGL_draw_buffers",Ia="EXT_disjoint_timer_query",Ca="EXT_disjoint_timer_query_webgl2",Ma="EXT_texture_filter_anisotropic",$i="WEBGL_debug_renderer_info",Na=35723,Ba=4352,Da=36795,wa=34047,Ua=37445,Va=37446,y=e=>b(e)?void 0:0,ka={[3074]:e=>b(e)?void 0:36064,[Na]:e=>b(e)?void 0:Ba,[35977]:y,[32937]:y,[Da]:(e,t)=>{let r=b(e)?e.getExtension(Ca):e.getExtension(Ia);return r&&r.GPU_DISJOINT_EXT?t(r.GPU_DISJOINT_EXT):0},[Ua]:(e,t)=>{let r=e.getExtension($i);return t(r&&r.UNMASKED_VENDOR_WEBGL||7936)},[Va]:(e,t)=>{let r=e.getExtension($i);return t(r&&r.UNMASKED_RENDERER_WEBGL||7937)},[wa]:(e,t)=>{var r;let i=((r=e.luma)===null||r===void 0||(r=r.extensions)===null||r===void 0?void 0:r[Ma])||e.getExtension("EXT_texture_filter_anisotropic");return i?t(i.MAX_TEXTURE_MAX_ANISOTROPY_EXT):1},[32883]:y,[35071]:y,[37447]:y,[36063]:(e,t)=>{if(!b(e)){let r=e.getExtension(Yi);return r?t(r.MAX_COLOR_ATTACHMENTS_WEBGL):0}},[35379]:y,[35374]:y,[35377]:y,[34852]:e=>{if(!b(e)){let t=e.getExtension(Yi);return t?t.MAX_DRAW_BUFFERS_WEBGL:0}},[36203]:e=>e.getExtension(zi)?2147483647:65535,[33001]:e=>e.getExtension(zi)?16777216:65535,[33e3]:e=>16777216,[37157]:y,[35373]:y,[35657]:y,[36183]:y,[37137]:y,[34045]:y,[35978]:y,[35979]:y,[35968]:y,[35376]:y,[35375]:y,[35659]:y,[37154]:y,[35371]:y,[35658]:y,[35076]:y,[35077]:y,[35380]:y};function qi(e,t,r){let i=ka[r],n=typeof i=="function"?i(e,t,r):i;return n!==void 0?n:t(r)}function Oe(e){if(!e.luma){let r={_polyfilled:!1,_extensions:{}};e.luma=r}return e.luma}var Wa="OES_vertex_array_object",Zi="ANGLE_instanced_arrays",Ha="WEBGL_draw_buffers",Xa="EXT_disjoint_timer_query",La="EXT_texture_filter_anisotropic",ja="VertexArray requires WebGL2 or OES_vertex_array_object extension";function Ka(e,t){return{webgl2:b(e),ext:e.getExtension(t)}}var Hr={[Wa]:{meta:{suffix:"OES"},createVertexArray:()=>{(0,Re.assert)(!1,ja)},deleteVertexArray:()=>{},bindVertexArray:()=>{},isVertexArray:()=>!1},[Zi]:{meta:{suffix:"ANGLE"},vertexAttribDivisor(e,t){(0,Re.assert)(t===0,"WebGL instanced rendering not supported")},drawElementsInstanced:()=>{},drawArraysInstanced:()=>{}},[Ha]:{meta:{suffix:"WEBGL"},drawBuffers:()=>{(0,Re.assert)(!1)}},[Xa]:{meta:{suffix:"EXT"},createQuery:()=>{(0,Re.assert)(!1)},deleteQuery:()=>{(0,Re.assert)(!1)},beginQuery:()=>{(0,Re.assert)(!1)},endQuery:()=>{},getQuery(e,t){return this.getQueryObject(e,t)},getQueryParameter(e,t){return this.getQueryObject(e,t)},getQueryObject:(e,t)=>{}}},vt={readBuffer:(e,t,r)=>{b(e)&&t(r)},getVertexAttrib:(e,t,r,i)=>{let{webgl2:n,ext:o}=Ka(e,Zi),s;switch(i){case 35069:s=n?void 0:!1;break;case 35070:s=!n&&!o?0:void 0;break;default:}return s!==void 0?s:t(r,i)},getProgramParameter:(e,t,r,i)=>{if(!b(e))switch(i){case 35967:return 35981;case 35971:return 0;case 35382:return 0;default:}return t(r,i)},getInternalformatParameter:(e,t,r,i,n)=>{if(!b(e))switch(n){case 32937:return new Int32Array([0]);default:}return e.getInternalformatParameter(r,i,n)},getTexParameter(e,t,r,i){switch(i){case 34046:let n=Oe(e),{_extensions:o}=n,s=o[La];i=s&&s.TEXTURE_MAX_ANISOTROPY_EXT||34046;break;default:}return t(r,i)},getParameter:qi,hint(e,t,r,i){return t(r,i)}};function Ji(e){let t=Oe(e);return t._polyfilled||(Li(e),za(e),Ya(e,Hr),qa(e,{target:t,target2:e}),t._polyfilled=!0),e}function za(e){let t=Oe(e),r=e.getSupportedExtensions()||[],i=["WEBGL_polygon_mode"];for(let n of r)if(!i.includes(n)){let o=e.getExtension(n);t._extensions[n]=o}}function Ya(e,t){let r=Oe(e);for(let i of Object.getOwnPropertyNames(t))i!=="overrides"&&$a(e,{extension:i,target:r,target2:e})}function $a(e,t){let{extension:r,target:i,target2:n}=t,o=Hr[r];(0,Qi.assert)(o);let{meta:s={}}=o,{suffix:a=""}=s,f=e.getExtension(r);for(let l of Object.keys(o)){let c=`${l}${a}`,u=null;l==="meta"||typeof e[l]=="function"||(f&&typeof f[c]=="function"?u=function(){return f[c](...arguments)}:typeof o[l]=="function"&&(u=o[l].bind(i))),u&&(i[l]=u,n[l]=u)}}function qa(e,t){let{target:r,target2:i}=t;Object.keys(vt).forEach(n=>{if(typeof vt[n]=="function"){let o=e[n]?e[n].bind(e):()=>{},s=vt[n].bind(null,e,o);r[n]=s,i[n]=s}})}var je=T(E(),1);var mt={[3042]:!1,[32773]:new Float32Array([0,0,0,0]),[32777]:32774,[34877]:32774,[32969]:1,[32968]:0,[32971]:1,[32970]:0,[3106]:new Float32Array([0,0,0,0]),[3107]:[!0,!0,!0,!0],[2884]:!1,[2885]:1029,[2929]:!1,[2931]:1,[2932]:513,[2928]:new Float32Array([0,1]),[2930]:!0,[3024]:!0,[35725]:null,[36006]:null,[36007]:null,[34229]:null,[34964]:null,[2886]:2305,[33170]:4352,[2849]:1,[32823]:!1,[32824]:0,[10752]:0,[32926]:!1,[32928]:!1,[32938]:1,[32939]:!1,[3089]:!1,[3088]:new Int32Array([0,0,1024,1024]),[2960]:!1,[2961]:0,[2968]:4294967295,[36005]:4294967295,[2962]:519,[2967]:0,[2963]:4294967295,[34816]:519,[36003]:0,[36004]:4294967295,[2964]:7680,[2965]:7680,[2966]:7680,[34817]:7680,[34818]:7680,[34819]:7680,[2978]:[0,0,1024,1024],[3333]:4,[3317]:4,[37440]:!1,[37441]:!1,[37443]:37444,[36389]:null,[36662]:null,[36663]:null,[35053]:null,[35055]:null,[35723]:4352,[36010]:null,[35977]:!1,[3330]:0,[3332]:0,[3331]:0,[3314]:0,[32878]:0,[3316]:0,[3315]:0,[32877]:0},J=(e,t,r)=>t?e.enable(r):e.disable(r),Gi=(e,t,r)=>e.hint(r,t),H=(e,t,r)=>e.pixelStorei(r,t),en=(e,t,r)=>{let i;return r===36006?i=b(e)?36009:36160:i=36008,e.bindFramebuffer(i,t)},Le=(e,t,r)=>{let n={[34964]:34962,[36662]:36662,[36663]:36663,[35053]:35051,[35055]:35052}[r];e.bindBuffer(n,t)};function Xr(e){return Array.isArray(e)||ArrayBuffer.isView(e)&&!(e instanceof DataView)}var tn={[3042]:J,[32773]:(e,t)=>e.blendColor(...t),[32777]:"blendEquation",[34877]:"blendEquation",[32969]:"blendFunc",[32968]:"blendFunc",[32971]:"blendFunc",[32970]:"blendFunc",[3106]:(e,t)=>e.clearColor(...t),[3107]:(e,t)=>e.colorMask(...t),[2884]:J,[2885]:(e,t)=>e.cullFace(t),[2929]:J,[2931]:(e,t)=>e.clearDepth(t),[2932]:(e,t)=>e.depthFunc(t),[2928]:(e,t)=>e.depthRange(...t),[2930]:(e,t)=>e.depthMask(t),[3024]:J,[35723]:Gi,[35725]:(e,t)=>e.useProgram(t),[36007]:(e,t)=>e.bindRenderbuffer(36161,t),[36389]:(e,t)=>{var r,i;return(r=(i=e).bindTransformFeedback)===null||r===void 0?void 0:r.call(i,36386,t)},[34229]:(e,t)=>e.bindVertexArray(t),[36006]:en,[36010]:en,[34964]:Le,[36662]:Le,[36663]:Le,[35053]:Le,[35055]:Le,[2886]:(e,t)=>e.frontFace(t),[33170]:Gi,[2849]:(e,t)=>e.lineWidth(t),[32823]:J,[32824]:"polygonOffset",[10752]:"polygonOffset",[35977]:J,[32926]:J,[32928]:J,[32938]:"sampleCoverage",[32939]:"sampleCoverage",[3089]:J,[3088]:(e,t)=>e.scissor(...t),[2960]:J,[2961]:(e,t)=>e.clearStencil(t),[2968]:(e,t)=>e.stencilMaskSeparate(1028,t),[36005]:(e,t)=>e.stencilMaskSeparate(1029,t),[2962]:"stencilFuncFront",[2967]:"stencilFuncFront",[2963]:"stencilFuncFront",[34816]:"stencilFuncBack",[36003]:"stencilFuncBack",[36004]:"stencilFuncBack",[2964]:"stencilOpFront",[2965]:"stencilOpFront",[2966]:"stencilOpFront",[34817]:"stencilOpBack",[34818]:"stencilOpBack",[34819]:"stencilOpBack",[2978]:(e,t)=>e.viewport(...t),[3333]:H,[3317]:H,[37440]:H,[37441]:H,[37443]:H,[3330]:H,[3332]:H,[3331]:H,[3314]:H,[32878]:H,[3316]:H,[3315]:H,[32877]:H,framebuffer:(e,t)=>{let r=t&&"handle"in t?t.handle:t;return e.bindFramebuffer(36160,r)},blend:(e,t)=>t?e.enable(3042):e.disable(3042),blendColor:(e,t)=>e.blendColor(...t),blendEquation:(e,t)=>{let r=typeof t=="number"?[t,t]:t;e.blendEquationSeparate(...r)},blendFunc:(e,t)=>{let r=t?.length===2?[...t,...t]:t;e.blendFuncSeparate(...r)},clearColor:(e,t)=>e.clearColor(...t),clearDepth:(e,t)=>e.clearDepth(t),clearStencil:(e,t)=>e.clearStencil(t),colorMask:(e,t)=>e.colorMask(...t),cull:(e,t)=>t?e.enable(2884):e.disable(2884),cullFace:(e,t)=>e.cullFace(t),depthTest:(e,t)=>t?e.enable(2929):e.disable(2929),depthFunc:(e,t)=>e.depthFunc(t),depthMask:(e,t)=>e.depthMask(t),depthRange:(e,t)=>e.depthRange(...t),dither:(e,t)=>t?e.enable(3024):e.disable(3024),derivativeHint:(e,t)=>{e.hint(35723,t)},frontFace:(e,t)=>e.frontFace(t),mipmapHint:(e,t)=>e.hint(33170,t),lineWidth:(e,t)=>e.lineWidth(t),polygonOffsetFill:(e,t)=>t?e.enable(32823):e.disable(32823),polygonOffset:(e,t)=>e.polygonOffset(...t),sampleCoverage:(e,t)=>e.sampleCoverage(...t),scissorTest:(e,t)=>t?e.enable(3089):e.disable(3089),scissor:(e,t)=>e.scissor(...t),stencilTest:(e,t)=>t?e.enable(2960):e.disable(2960),stencilMask:(e,t)=>{t=Xr(t)?t:[t,t];let[r,i]=t;e.stencilMaskSeparate(1028,r),e.stencilMaskSeparate(1029,i)},stencilFunc:(e,t)=>{t=Xr(t)&&t.length===3?[...t,...t]:t;let[r,i,n,o,s,a]=t;e.stencilFuncSeparate(1028,r,i,n),e.stencilFuncSeparate(1029,o,s,a)},stencilOp:(e,t)=>{t=Xr(t)&&t.length===3?[...t,...t]:t;let[r,i,n,o,s,a]=t;e.stencilOpSeparate(1028,r,i,n),e.stencilOpSeparate(1029,o,s,a)},viewport:(e,t)=>e.viewport(...t)};function x(e,t,r){return t[e]!==void 0?t[e]:r[e]}var rn={blendEquation:(e,t,r)=>e.blendEquationSeparate(x(32777,t,r),x(34877,t,r)),blendFunc:(e,t,r)=>e.blendFuncSeparate(x(32969,t,r),x(32968,t,r),x(32971,t,r),x(32970,t,r)),polygonOffset:(e,t,r)=>e.polygonOffset(x(32824,t,r),x(10752,t,r)),sampleCoverage:(e,t,r)=>e.sampleCoverage(x(32938,t,r),x(32939,t,r)),stencilFuncFront:(e,t,r)=>e.stencilFuncSeparate(1028,x(2962,t,r),x(2967,t,r),x(2963,t,r)),stencilFuncBack:(e,t,r)=>e.stencilFuncSeparate(1029,x(34816,t,r),x(36003,t,r),x(36004,t,r)),stencilOpFront:(e,t,r)=>e.stencilOpSeparate(1028,x(2964,t,r),x(2965,t,r),x(2966,t,r)),stencilOpBack:(e,t,r)=>e.stencilOpSeparate(1029,x(34817,t,r),x(34818,t,r),x(34819,t,r))},Lr={enable:(e,t)=>e({[t]:!0}),disable:(e,t)=>e({[t]:!1}),pixelStorei:(e,t,r)=>e({[t]:r}),hint:(e,t,r)=>e({[t]:r}),useProgram:(e,t)=>e({[35725]:t}),bindRenderbuffer:(e,t,r)=>e({[36007]:r}),bindTransformFeedback:(e,t,r)=>e({[36389]:r}),bindVertexArray:(e,t)=>e({[34229]:t}),bindFramebuffer:(e,t,r)=>{switch(t){case 36160:return e({[36006]:r,[36010]:r});case 36009:return e({[36006]:r});case 36008:return e({[36010]:r});default:return null}},bindBuffer:(e,t,r)=>{let i={[34962]:[34964],[36662]:[36662],[36663]:[36663],[35051]:[35053],[35052]:[35055]}[t];return i?e({[i]:r}):{valueChanged:!0}},blendColor:(e,t,r,i,n)=>e({[32773]:new Float32Array([t,r,i,n])}),blendEquation:(e,t)=>e({[32777]:t,[34877]:t}),blendEquationSeparate:(e,t,r)=>e({[32777]:t,[34877]:r}),blendFunc:(e,t,r)=>e({[32969]:t,[32968]:r,[32971]:t,[32970]:r}),blendFuncSeparate:(e,t,r,i,n)=>e({[32969]:t,[32968]:r,[32971]:i,[32970]:n}),clearColor:(e,t,r,i,n)=>e({[3106]:new Float32Array([t,r,i,n])}),clearDepth:(e,t)=>e({[2931]:t}),clearStencil:(e,t)=>e({[2961]:t}),colorMask:(e,t,r,i,n)=>e({[3107]:[t,r,i,n]}),cullFace:(e,t)=>e({[2885]:t}),depthFunc:(e,t)=>e({[2932]:t}),depthRange:(e,t,r)=>e({[2928]:new Float32Array([t,r])}),depthMask:(e,t)=>e({[2930]:t}),frontFace:(e,t)=>e({[2886]:t}),lineWidth:(e,t)=>e({[2849]:t}),polygonOffset:(e,t,r)=>e({[32824]:t,[10752]:r}),sampleCoverage:(e,t,r)=>e({[32938]:t,[32939]:r}),scissor:(e,t,r,i,n)=>e({[3088]:new Int32Array([t,r,i,n])}),stencilMask:(e,t)=>e({[2968]:t,[36005]:t}),stencilMaskSeparate:(e,t,r)=>e({[t===1028?2968:36005]:r}),stencilFunc:(e,t,r,i)=>e({[2962]:t,[2967]:r,[2963]:i,[34816]:t,[36003]:r,[36004]:i}),stencilFuncSeparate:(e,t,r,i,n)=>e({[t===1028?2962:34816]:r,[t===1028?2967:36003]:i,[t===1028?2963:36004]:n}),stencilOp:(e,t,r,i)=>e({[2964]:t,[2965]:r,[2966]:i,[34817]:t,[34818]:r,[34819]:i}),stencilOpSeparate:(e,t,r,i,n)=>e({[t===1028?2964:34817]:r,[t===1028?2965:34818]:i,[t===1028?2966:34819]:n}),viewport:(e,t,r,i,n)=>e({[2978]:[t,r,i,n]})},G=(e,t)=>e.isEnabled(t),jr={[3042]:G,[2884]:G,[2929]:G,[3024]:G,[32823]:G,[32926]:G,[32928]:G,[3089]:G,[2960]:G,[35977]:G},nn=new Set([34016,36388,36387,35983,35368,34965,35739,35738,3074,34853,34854,34855,34856,34857,34858,34859,34860,34861,34862,34863,34864,34865,34866,34867,34868,35097,32873,35869,32874,34068]);function oe(e,t){let i=M.attach(e).gl;if(Za(t))return;let n={};for(let s in t){let a=Number(s),f=tn[s];f&&(typeof f=="string"?n[f]=!0:f(i,t[s],a))}let o=i.state&&i.state.cache;if(o)for(let s in n){let a=rn[s];a(i,t,o)}}function on(e){let t=arguments.length>1&&arguments[1]!==void 0?arguments[1]:mt,i=M.attach(e).gl;if(typeof t=="number"){let s=t,a=jr[s];return a?a(i,s):i.getParameter(s)}let n=Array.isArray(t)?t:Object.keys(t),o={};for(let s of n){let a=jr[s];o[s]=a?a(i,Number(s)):i.getParameter(Number(s))}return o}function Za(e){for(let t in e)return!1;return!0}function sn(e,t){if(e===t)return!0;let r=Array.isArray(e)||ArrayBuffer.isView(e),i=Array.isArray(t)||ArrayBuffer.isView(t);if(r&&i&&e.length===t.length){for(let n=0;n<e.length;++n)if(e[n]!==t[n])return!1;return!0}return!1}var Kr=class{constructor(t){let{copyState:r=!1,log:i=()=>{}}=arguments.length>1&&arguments[1]!==void 0?arguments[1]:{};this.gl=void 0,this.program=null,this.stateStack=[],this.enable=!0,this.cache=void 0,this.log=void 0,this.gl=t,this.cache=r?on(t):Object.assign({},mt),this.log=i,this._updateCache=this._updateCache.bind(this),Object.seal(this)}push(){let t=arguments.length>0&&arguments[0]!==void 0?arguments[0]:{};this.stateStack.push({})}pop(){(0,je.assert)(this.stateStack.length>0);let t=this.stateStack[this.stateStack.length-1];oe(this.gl,t),this.stateStack.pop()}_updateCache(t){let r=!1,i,n=this.stateStack.length>0?this.stateStack[this.stateStack.length-1]:null;for(let o in t){(0,je.assert)(o!==void 0);let s=t[o],a=this.cache[o];sn(s,a)||(r=!0,i=a,n&&!(o in n)&&(n[o]=a),this.cache[o]=s)}return{valueChanged:r,oldValue:i}}};function be(e){return e.state}function zr(e,t){let{enable:r=!0,copyState:i}=t;if((0,je.assert)(i!==void 0),!e.state){e.state=new Kr(e,{copyState:i}),Ja(e);for(let o in Lr){let s=Lr[o];Qa(e,o,s)}an(e,"getParameter"),an(e,"isEnabled")}let n=be(e);return n.enable=r,e}function _e(e){let t=be(e);t||(zr(e,{copyState:!1}),t=be(e)),t.push()}function se(e){let t=be(e);(0,je.assert)(t),t.pop()}function an(e,t){let r=e[t].bind(e);e[t]=function(n){if(n===void 0||nn.has(n))return r(n);let o=be(e);return n in o.cache||(o.cache[n]=r(n)),o.enable?o.cache[n]:r(n)},Object.defineProperty(e[t],"name",{value:`${t}-from-cache`,configurable:!1})}function Qa(e,t,r){if(!e[t])return;let i=e[t].bind(e);e[t]=function(){let o=be(e);for(var s=arguments.length,a=new Array(s),f=0;f<s;f++)a[f]=arguments[f];let{valueChanged:l,oldValue:c}=r(o._updateCache,...a);return l&&i(...a),c},Object.defineProperty(e[t],"name",{value:`${t}-to-cache`,configurable:!1})}function Ja(e){let t=e.useProgram.bind(e);e.useProgram=function(i){let n=be(e);n.program!==i&&(t(i),n.program=i)}}var Ga={webgl2:!0,webgl1:!0,powerPreference:"high-performance",onContextLost:()=>console.error("WebGL context lost"),onContextRestored:()=>console.info("WebGL context restored")};function fn(e,t){t={...Ga,...t};let r=null,i=o=>r=o.statusMessage||r;e.addEventListener("webglcontextcreationerror",i,!1);let n=null;if(t.type==="webgl2"&&(t={...t,webgl1:!1}),t.type==="webgl1"&&(t={...t,webgl2:!1}),!n&&t.webgl2&&(n=e.getContext("webgl2",t)),!n&&t.webgl1&&(n=e.getContext("webgl",t)),e.removeEventListener("webglcontextcreationerror",i,!1),!n)throw new Error(`Failed to create ${t.webgl2&&!t.webgl1?"WebGL2":"WebGL"} context: ${r||"Unknown error"}`);if(t.onContextLost){let{onContextLost:o}=t;e.addEventListener("webglcontextlost",s=>o(s),!1)}if(t.onContextRestored){let{onContextRestored:o}=t;e.addEventListener("webglcontextrestored",s=>o(s),!1)}return n}function ln(e){let t=e.getParameter(7936),r=e.getParameter(7937),i=e.getExtension("WEBGL_debug_renderer_info"),n=e.getParameter(i?i.UNMASKED_VENDOR_WEBGL:7936),o=e.getParameter(i?i.UNMASKED_RENDERER_WEBGL:7937),s=n||t,a=o||r,f=e.getParameter(7938),l=cn(s,a),c=ef(s,a),u=tf(s,a),_="glsl",d=b(e)?300:100;return{type:b(e)?"webgl2":"webgl",gpu:l,gpuType:u,gpuBackend:c,vendor:s,renderer:a,version:f,shadingLanguage:_,shadingLanguageVersion:d}}function cn(e,t){return/NVIDIA/i.exec(e)||/NVIDIA/i.exec(t)?"nvidia":/INTEL/i.exec(e)||/INTEL/i.exec(t)?"intel":/Apple/i.exec(e)||/Apple/i.exec(t)?"apple":/AMD/i.exec(e)||/AMD/i.exec(t)||/ATI/i.exec(e)||/ATI/i.exec(t)?"amd":/SwiftShader/i.exec(e)||/SwiftShader/i.exec(t)?"software":"unknown"}function ef(e,t){return/Metal/i.exec(e)||/Metal/i.exec(t)?"metal":/ANGLE/i.exec(e)||/ANGLE/i.exec(t)?"opengl":"unknown"}function tf(e,t){if(/SwiftShader/i.exec(e)||/SwiftShader/i.exec(t))return"cpu";switch(cn(e,t)){case"intel":return"integrated";case"software":return"cpu";case"unknown":return"unknown";default:return"discrete"}}function un(){let e=arguments.length>0&&arguments[0]!==void 0?arguments[0]:{},t=typeof window<"u"?window.navigator||{}:{},r=e.userAgent||t.userAgent||"",i=r.indexOf("MSIE ")!==-1,n=r.indexOf("Trident/")!==-1;return i||n}var qr=T(E(),1);function St(e){switch(e){case"uint8":return 5121;case"sint8":return 5120;case"unorm8":return 5121;case"snorm8":return 5120;case"uint16":return 5123;case"sint16":return 5122;case"unorm16":return 5123;case"snorm16":return 5122;case"uint32":return 5125;case"sint32":return 5124;case"float16":return 5131;case"float32":return 5126}throw new Error(String(e))}var w="texture-compression-bc",v="texture-compression-astc",ee="texture-compression-etc2",rf="texture-compression-etc1-webgl",yt="texture-compression-pvrtc-webgl",Yr="texture-compression-atc-webgl",Ke="WEBGL_compressed_texture_s3tc",ze="WEBGL_compressed_texture_s3tc_srgb",xe="EXT_texture_compression_rgtc",Ye="EXT_texture_compression_bptc",nf="WEBGL_compressed_texture_etc",of="WEBGL_compressed_texture_astc",sf="WEBGL_compressed_texture_etc1",af="WEBGL_compressed_texture_pvrtc",ff="WEBGL_compressed_texture_atc",_n="EXT_sRGB",ae="EXT_texture_norm16",lf="WEBGL_color_buffer_float",cf="EXT_color_buffer_float",j=(e,t)=>e.getExtension(t),Ee=(e,t)=>t.every(r=>e.getExtension(r)),$r={"texture-blend-float-webgl1":e=>b(e)?!0:j(e,"EXT_float_blend"),"texture-formats-srgb-webgl1":e=>b(e)?!0:j(e,_n),"texture-formats-depth-webgl1":e=>b(e)?!0:j(e,"WEBGL_depth_texture"),"texture-formats-float32-webgl1":e=>b(e)?!0:j(e,"OES_texture_float"),"texture-formats-float16-webgl1":e=>b(e)?!0:j(e,"OES_texture_half_float"),"texture-formats-norm16-webgl":e=>b(e)?j(e,ae):!1,"texture-filter-linear-float32-webgl":e=>j(e,"OES_texture_float_linear"),"texture-filter-linear-float16-webgl":e=>j(e,"OES_texture_half_float_linear"),"texture-filter-anisotropic-webgl":e=>j(e,"EXT_texture_filter_anisotropic"),"texture-renderable-float32-webgl":e=>j(e,"EXT_color_buffer_float"),"texture-renderable-float16-webgl":e=>j(e,"EXT_color_buffer_half_float"),"texture-compression-bc":e=>Ee(e,[Ke,ze,xe,Ye]),"texture-compression-bc5-webgl":e=>Ee(e,[xe]),"texture-compression-etc2":e=>Ee(e,[nf]),"texture-compression-astc":e=>Ee(e,[of]),"texture-compression-etc1-webgl":e=>Ee(e,[sf]),"texture-compression-pvrtc-webgl":e=>Ee(e,[af]),"texture-compression-atc-webgl":e=>Ee(e,[ff])};function uf(e,t){var r;return((r=$r[t])===null||r===void 0?void 0:r.call($r,e))||!1}function dn(e){return Object.keys($r).filter(r=>uf(e,r))}var $e={"rgb8unorm-unsized":{gl:6407,gl1:6407,b:4,c:2,bpp:4,dataFormat:6407,types:[5121,33635]},"rgba8unorm-unsized":{gl:6408,gl1:6408,b:4,c:2,bpp:4,dataFormat:6408,types:[5121,32819,32820]},r8unorm:{gl:33321,b:1,c:1,renderbuffer:!0},r8snorm:{gl:36756,b:1,c:1},r8uint:{gl:33330,b:1,c:1,renderbuffer:!0},r8sint:{gl:33329,b:1,c:1,renderbuffer:!0},rg8unorm:{gl:33323,b:2,c:2,renderbuffer:!0},rg8snorm:{gl:36757,b:2,c:2},rg8uint:{gl:33336,b:2,c:2,renderbuffer:!0},rg8sint:{gl:33335,b:2,c:2,renderbuffer:!0},r16uint:{gl:33332,b:2,c:1,renderbuffer:!0},r16sint:{gl:33331,b:2,c:1,renderbuffer:!0},r16float:{gl:33325,b:2,c:1,render:"texture-renderable-float16-webgl",filter:"texture-filter-linear-float16-webgl",renderbuffer:!0},"r16unorm-webgl":{gl:33322,b:2,c:1,f:"texture-formats-norm16-webgl",renderbuffer:!0,x:ae},"r16snorm-webgl":{gl:36760,b:2,c:1,f:"texture-formats-norm16-webgl",x:ae},"rgba4unorm-webgl":{gl:32854,b:2,c:4,wgpu:!1,renderbuffer:!0},"rgb565unorm-webgl":{gl:36194,b:2,c:4,wgpu:!1,renderbuffer:!0},"rgb5a1unorm-webgl":{gl:32855,b:2,c:4,wgpu:!1,renderbuffer:!0},"rgb8unorm-webgl":{gl:32849,b:3,c:3,wgpu:!1},"rgb8snorm-webgl":{gl:36758,b:3,c:3,wgpu:!1},rgba8unorm:{gl:32856,gl1:6408,b:4,c:2,bpp:4},"rgba8unorm-srgb":{gl:35907,gl1:35906,b:4,c:4,gl1ext:_n,bpp:4},rgba8snorm:{gl:36759,b:4,c:4},rgba8uint:{gl:36220,b:4,c:4,bpp:4},rgba8sint:{gl:36238,b:4,c:4,bpp:4},bgra8unorm:{b:4,c:4},"bgra8unorm-srgb":{b:4,c:4},rg16uint:{gl:33338,b:4,c:1,bpp:4},rg16sint:{gl:33337,b:4,c:2,bpp:4},rg16float:{gl:33327,bpp:4,b:4,c:2,render:"texture-renderable-float16-webgl",filter:"texture-filter-linear-float16-webgl",renderbuffer:!0},"rg16unorm-webgl":{gl:33324,b:2,c:2,f:"texture-formats-norm16-webgl",x:ae},"rg16snorm-webgl":{gl:36761,b:2,c:2,f:"texture-formats-norm16-webgl",x:ae},r32uint:{gl:33334,b:4,c:1,bpp:4,renderbuffer:!0},r32sint:{gl:33333,b:4,c:1,bpp:4,renderbuffer:!0},r32float:{gl:33326,bpp:4,b:4,c:1,render:"texture-renderable-float32-webgl",filter:"texture-filter-linear-float32-webgl"},rgb9e5ufloat:{gl:35901,b:4,c:3,p:1,render:"texture-renderable-float16-webgl",filter:"texture-filter-linear-float16-webgl"},rg11b10ufloat:{gl:35898,b:4,c:3,p:1,render:"texture-renderable-float32-webgl",renderbuffer:!0},rgb10a2unorm:{gl:32857,b:4,c:4,p:1,renderbuffer:!0},"rgb10a2unorm-webgl":{b:4,c:4,gl:36975,p:1,wgpu:!1,bpp:4,renderbuffer:!0},"rgb16unorm-webgl":{gl:32852,b:2,c:3,f:"texture-formats-norm16-webgl",x:ae},"rgb16snorm-webgl":{gl:36762,b:2,c:3,f:"texture-formats-norm16-webgl",x:ae},rg32uint:{gl:33340,b:8,c:2,renderbuffer:!0},rg32sint:{gl:33339,b:8,c:2,renderbuffer:!0},rg32float:{gl:33328,b:8,c:2,render:"texture-renderable-float32-webgl",filter:"texture-filter-linear-float32-webgl",renderbuffer:!0},rgba16uint:{gl:36214,b:8,c:4,renderbuffer:!0},rgba16sint:{gl:36232,b:8,c:4,renderbuffer:!0},rgba16float:{gl:34842,gl1:6408,b:8,c:4,render:"texture-renderable-float16-webgl",filter:"texture-filter-linear-float16-webgl"},"rgba16unorm-webgl":{gl:32859,b:2,c:4,f:"texture-formats-norm16-webgl",renderbuffer:!0,x:ae},"rgba16snorm-webgl":{gl:36763,b:2,c:4,f:"texture-formats-norm16-webgl",x:ae},"rgb32float-webgl":{gl:34837,gl1:6407,render:"texture-renderable-float32-webgl",filter:"texture-filter-linear-float32-webgl",gl2ext:cf,gl1ext:lf,dataFormat:6407,types:[5126]},rgba32uint:{gl:36208,b:16,c:4,renderbuffer:!0},rgba32sint:{gl:36226,b:16,c:4,renderbuffer:!0},rgba32float:{gl:34836,b:16,c:4,render:"texture-renderable-float32-webgl",filter:"texture-filter-linear-float32-webgl",renderbuffer:!0},stencil8:{gl:36168,gl1:36168,b:1,c:1,attachment:36128,renderbuffer:!0},depth16unorm:{gl:33189,gl1:33189,b:2,c:1,attachment:36096,renderbuffer:!0},depth24plus:{gl:33190,b:3,c:1,attachment:36096},depth32float:{gl:36012,b:4,c:1,attachment:36096,renderbuffer:!0},"depth24plus-stencil8":{gl:34041,gl1:34041,b:4,c:2,p:1,attachment:33306,renderbuffer:!0,depthTexture:!0},"depth24unorm-stencil8":{gl:35056,b:4,c:2,p:1,attachment:33306,renderbuffer:!0},"depth32float-stencil8":{gl:36013,b:5,c:2,p:1,attachment:33306,renderbuffer:!0},"bc1-rgb-unorm-webgl":{gl:33776,x:Ke,f:w},"bc1-rgb-unorm-srgb-webgl":{gl:35916,x:ze,f:w},"bc1-rgba-unorm":{gl:33777,x:Ke,f:w},"bc1-rgba-unorm-srgb":{gl:35916,x:ze,f:w},"bc2-rgba-unorm":{gl:33778,x:Ke,f:w},"bc2-rgba-unorm-srgb":{gl:35918,x:ze,f:w},"bc3-rgba-unorm":{gl:33779,x:Ke,f:w},"bc3-rgba-unorm-srgb":{gl:35919,x:ze,f:w},"bc4-r-unorm":{gl:36283,x:xe,f:w},"bc4-r-snorm":{gl:36284,x:xe,f:w},"bc5-rg-unorm":{gl:36285,x:xe,f:w},"bc5-rg-snorm":{gl:36286,x:xe,f:w},"bc6h-rgb-ufloat":{gl:36495,x:Ye,f:w},"bc6h-rgb-float":{gl:36494,x:Ye,f:w},"bc7-rgba-unorm":{gl:36492,x:Ye,f:w},"bc7-rgba-unorm-srgb":{gl:36493,x:Ye,f:w},"etc2-rgb8unorm":{gl:37492,f:ee},"etc2-rgb8unorm-srgb":{gl:37494,f:ee},"etc2-rgb8a1unorm":{gl:37496,f:ee},"etc2-rgb8a1unorm-srgb":{gl:37497,f:ee},"etc2-rgba8unorm":{gl:37493,f:ee},"etc2-rgba8unorm-srgb":{gl:37495,f:ee},"eac-r11unorm":{gl:37488,f:ee},"eac-r11snorm":{gl:37489,f:ee},"eac-rg11unorm":{gl:37490,f:ee},"eac-rg11snorm":{gl:37491,f:ee},"astc-4x4-unorm":{gl:37808,f:v},"astc-4x4-unorm-srgb":{gl:37840,f:v},"astc-5x4-unorm":{gl:37809,f:v},"astc-5x4-unorm-srgb":{gl:37841,f:v},"astc-5x5-unorm":{gl:37810,f:v},"astc-5x5-unorm-srgb":{gl:37842,f:v},"astc-6x5-unorm":{gl:37811,f:v},"astc-6x5-unorm-srgb":{gl:37843,f:v},"astc-6x6-unorm":{gl:37812,f:v},"astc-6x6-unorm-srgb":{gl:37844,f:v},"astc-8x5-unorm":{gl:37813,f:v},"astc-8x5-unorm-srgb":{gl:37845,f:v},"astc-8x6-unorm":{gl:37814,f:v},"astc-8x6-unorm-srgb":{gl:37846,f:v},"astc-8x8-unorm":{gl:37815,f:v},"astc-8x8-unorm-srgb":{gl:37847,f:v},"astc-10x5-unorm":{gl:37819,f:v},"astc-10x5-unorm-srgb":{gl:37851,f:v},"astc-10x6-unorm":{gl:37817,f:v},"astc-10x6-unorm-srgb":{gl:37849,f:v},"astc-10x8-unorm":{gl:37818,f:v},"astc-10x8-unorm-srgb":{gl:37850,f:v},"astc-10x10-unorm":{gl:37819,f:v},"astc-10x10-unorm-srgb":{gl:37851,f:v},"astc-12x10-unorm":{gl:37820,f:v},"astc-12x10-unorm-srgb":{gl:37852,f:v},"astc-12x12-unorm":{gl:37821,f:v},"astc-12x12-unorm-srgb":{gl:37853,f:v},"pvrtc-rgb4unorm-webgl":{gl:35840,f:yt},"pvrtc-rgba4unorm-webgl":{gl:35842,f:yt},"pvrtc-rbg2unorm-webgl":{gl:35841,f:yt},"pvrtc-rgba2unorm-webgl":{gl:35843,f:yt},"etc1-rbg-unorm-webgl":{gl:36196,f:rf},"atc-rgb-unorm-webgl":{gl:35986,f:Yr},"atc-rgba-unorm-webgl":{gl:35986,f:Yr},"atc-rgbai-unorm-webgl":{gl:34798,f:Yr}},_f={[6403]:1,[36244]:1,[33319]:2,[33320]:2,[6407]:3,[36248]:3,[6408]:4,[36249]:4,[6402]:1,[34041]:1,[6406]:1,[6409]:1,[6410]:2},df={[5126]:4,[5125]:4,[5124]:4,[5123]:2,[5122]:2,[5131]:2,[5120]:1,[5121]:1};function qe(e,t){let r=Ze(t),i=$e[r];if(!i||(b(e)?i.gl===void 0:i.gl1===void 0))return!1;let n=i.x||b(e)&&i.gl2ext||i.gl1ext;return n?Boolean(e.getExtension(n)):!0}function pn(e,t){var r;return qe(e,t)&&((r=$e[t])===null||r===void 0?void 0:r.renderbuffer)}function Ze(e){if(typeof e=="string")return e;let t=Object.entries($e).find(r=>{let[,i]=r;return i.gl===e||i.gl1===e});if(!t)throw new Error(`Unknown texture format ${e}`);return t[0]}function Qe(e,t){let r=$e[e],i=t?r?.gl:r?.gl1;if(i===void 0)throw new Error(`Unsupported texture format ${e}`);return i}function hn(e,t){let r=Ze(t);if(!qe(e,r))return!1;try{if((0,qr.decodeTextureFormat)(r).signed)return!1}catch{return!1}return r.endsWith("32float")?Boolean(e.getExtension("OES_texture_float_linear")):r.endsWith("16float")?Boolean(e.getExtension("OES_texture_half_float_linear")):!0}function gn(e,t){let r=Ze(t);return!(!qe(e,r)||typeof r=="number")}function Pe(e,t){let r=Ze(e),i=Qe(r,t),n=(0,qr.decodeTextureFormat)(r);return{format:i,dataFormat:pf(n.format,n.integer,n.normalized,i),type:n.dataType?St(n.dataType):5121,compressed:n.compressed}}function Tn(e){let t=$e[e];if(!(t!=null&&t.attachment))throw new Error(`${e} is not a depth stencil format`);return t.attachment}function An(e){let t=arguments.length>1&&arguments[1]!==void 0?arguments[1]:6408,r=arguments.length>2&&arguments[2]!==void 0?arguments[2]:6408,i=arguments.length>3&&arguments[3]!==void 0?arguments[3]:5121,n=null,o=null;try{n=e.createTexture(),e.bindTexture(3553,n);let s=0,a=1,f=1,l=0,c=new Uint8Array([0,0,255,255]);e.texImage2D(3553,s,t,a,f,l,r,i,c),o=e.createFramebuffer(),e.bindFramebuffer(36160,o),e.framebufferTexture2D(36160,36064,3553,n,0);let u=e.checkFramebufferStatus(36160)===36053;return e.bindTexture(3553,null),u}finally{e.deleteTexture(n),e.deleteFramebuffer(o)}}function Je(e,t){let r=Ze(e),i=Pe(r,t),n=_f[i.dataFormat]||4,o=df[i.type]||1;return n*o}function pf(e,t,r,i){if(i===6408||i===6407)return i;switch(e){case"r":return t&&!r?36244:6403;case"rg":return t&&!r?33320:33319;case"rgb":return t&&!r?36248:6407;case"rgba":return t&&!r?36249:6408;default:return 6408}}function Rn(e){let t=hf(e);for(let r of dn(e))t.add(r);return t}function hf(e){e.getExtension("EXT_color_buffer_float"),e.getExtension("WEBGL_color_buffer_float"),e.getExtension("EXT_float_blend");let t=new Set;for(let r of Object.keys(bn))gf(e,r)&&t.add(r);return t}function gf(e,t){let r=bn[t];if(!r)return!1;let[i,n]=r||[],o=b(e)?n:i;if(typeof o=="boolean")return o;switch(t){case"texture-renderable-rgba32float-webgl":return b(e)?Boolean(e.getExtension(o)):An(e);case"glsl-derivatives":return Qr(e,o);case"glsl-frag-data":return Qr(e,o,{behavior:"require"});case"glsl-frag-depth":return Qr(e,o);default:return Boolean(e.getExtension(o))}}var Zr={};function Qr(e,t){let r=arguments.length>2&&arguments[2]!==void 0?arguments[2]:{};if(!un(r))return!0;if(t in Zr)return Zr[t];let i=r.behavior||"enable",n=`#extension GL_${t} : ${i}
71
+ void main(void) {}`,o=e.createShader(35633);if(!o)throw new Error("shader");e.shaderSource(o,n),e.compileShader(o);let s=e.getShaderParameter(o,35713);return e.deleteShader(o),Zr[t]=s,s}var bn={webgl:[!0,!0],webgl2:[!1,!0],"timer-query-webgl":["EXT_disjoint_timer_query","EXT_disjoint_timer_query_webgl2"],"transform-feedback-webgl2":[!1,!0],"vertex-array-object-webgl1":["OES_vertex_array_object",!0],"instanced-rendering-webgl1":["ANGLE_instanced_arrays",!0],"multiple-render-targets-webgl1":["WEBGL_draw_buffers",!0],"index-uint32-webgl1":["OES_element_index_uint",!0],"blend-minmax-webgl1":["EXT_blend_minmax",!0],"texture-blend-float-webgl1":["EXT_float_blend","EXT_float_blend"],"texture-formats-srgb-webgl1":["EXT_sRGB",!0],"texture-formats-depth-webgl1":["WEBGL_depth_texture",!0],"texture-formats-float32-webgl1":["OES_texture_float",!0],"texture-formats-float16-webgl1":["OES_texture_half_float",!0],"texture-filter-linear-float32-webgl":["OES_texture_float_linear","OES_texture_float_linear"],"texture-filter-linear-float16-webgl":["OES_texture_half_float_linear","OES_texture_half_float_linear"],"texture-filter-anisotropic-webgl":["EXT_texture_filter_anisotropic","EXT_texture_filter_anisotropic"],"texture-renderable-rgba32float-webgl":["WEBGL_color_buffer_float","EXT_color_buffer_float"],"texture-renderable-float32-webgl":[!1,"EXT_color_buffer_float"],"texture-renderable-float16-webgl":["EXT_color_buffer_half_float","EXT_color_buffer_half_float"],"glsl-frag-data":["WEBGL_draw_buffers",!0],"glsl-frag-depth":["EXT_frag_depth",!0],"glsl-derivatives":["OES_standard_derivatives",!0],"glsl-texture-lod":["EXT_shader_texture_lod",!0]};function En(e){let t=Wr(e);return{maxTextureDimension1D:0,maxTextureDimension2D:e.getParameter(3379),maxTextureDimension3D:t?t.getParameter(32883):0,maxTextureArrayLayers:t?t.getParameter(35071):0,maxBindGroups:1,maxDynamicUniformBuffersPerPipelineLayout:0,maxDynamicStorageBuffersPerPipelineLayout:0,maxSampledTexturesPerShaderStage:e.getParameter(35660),maxSamplersPerShaderStage:e.getParameter(35661),maxStorageBuffersPerShaderStage:0,maxStorageTexturesPerShaderStage:0,maxUniformBuffersPerShaderStage:t?t.getParameter(35375):0,maxUniformBufferBindingSize:t?t.getParameter(35376):0,maxStorageBufferBindingSize:0,minUniformBufferOffsetAlignment:t?t.getParameter(35380):0,minStorageBufferOffsetAlignment:0,maxVertexBuffers:0,maxVertexAttributes:e.getParameter(34921),maxVertexBufferArrayStride:2048,maxInterStageShaderComponents:t?t.getParameter(35659):0,maxComputeWorkgroupStorageSize:0,maxComputeInvocationsPerWorkgroup:0,maxComputeWorkgroupSizeX:0,maxComputeWorkgroupSizeY:0,maxComputeWorkgroupSizeZ:0,maxComputeWorkgroupsPerDimension:0}}function vn(e){let t=Wr(e);function r(n){return e.getParameter(n)}function i(n,o){return t?t.getParameter(n):o||0}return{[33902]:r(33902),[33901]:r(33901),[3379]:r(3379),[34076]:r(34076),[34930]:r(34930),[35661]:r(35661),[35660]:r(35660),[34024]:r(34024),[36348]:r(36348),[34921]:r(34921),[36347]:r(36347),[36349]:r(36349),[3386]:r(3386),[34047]:r(34047),[32883]:i(32883),[35071]:i(35071),[37447]:i(37447),[36063]:i(36063),[35379]:i(35379),[35374]:i(35374),[35377]:i(35377),[34852]:i(34852),[36203]:i(36203),[33001]:i(33001),[33e3]:i(33e3),[37157]:i(37157),[35373]:i(35373),[35657]:i(35657),[36183]:i(36183),[37137]:i(37137),[34045]:i(34045),[35978]:i(35978),[35979]:i(35979),[35968]:i(35968),[35376]:i(35376),[35375]:i(35375),[35659]:i(35659),[37154]:i(37154),[35371]:i(35371),[35658]:i(35658),[35076]:i(35076),[35077]:i(35077),[35380]:i(35380)}}var Cn=T(E(),1);var Nt=T(E(),1);var F=T(E(),1);function P(e,t,r){let n=M.attach(e).gl;if(Tf(t))return r(e);let{nocatch:o=!0}=t;_e(n),oe(n,t);let s;if(o)s=r(n),se(n);else try{s=r(n)}finally{se(n)}return s}function Tf(e){for(let t in e)return!1;return!0}var Pt=T(E(),1);function Sn(e,t,r,i){if((0,Pt.isObjectEmpty)(t))return i(e);_e(e.gl);try{return Af(e,t),oe(e,r),i(e)}finally{se(e.gl)}}function Af(e,t){let r=M.attach(e),{gl:i}=r;if(t.cullMode)switch(t.cullMode){case"none":i.disable(2884);break;case"front":i.enable(2884),i.cullFace(1028);break;case"back":i.enable(2884),i.cullFace(1029);break}if(t.frontFace&&i.frontFace(Ge("frontFace",t.frontFace,{ccw:2305,cw:2304})),t.depthBias!==void 0&&i.polygonOffset(t.depthBias,t.depthBiasSlopeScale||0),t.depthWriteEnabled!==void 0&&i.depthMask(bf("depthWriteEnabled",t.depthWriteEnabled)),t.depthCompare&&(t.depthCompare!=="always"?i.enable(2929):i.disable(2929),i.depthFunc(xt("depthCompare",t.depthCompare))),t.stencilWriteMask){let n=t.stencilWriteMask;i.stencilMaskSeparate(1028,n),i.stencilMaskSeparate(1029,n)}if(t.stencilReadMask&&Pt.log.warn("stencilReadMask not supported under WebGL"),t.stencilCompare){let n=t.stencilReadMask||4294967295,o=xt("depthCompare",t.stencilCompare);t.stencilCompare!=="always"?i.enable(2960):i.disable(2960),i.stencilFuncSeparate(1028,o,0,n),i.stencilFuncSeparate(1029,o,0,n)}if(t.stencilPassOperation&&t.stencilFailOperation&&t.stencilDepthFailOperation){let n=Jr("stencilPassOperation",t.stencilPassOperation),o=Jr("stencilFailOperation",t.stencilFailOperation),s=Jr("stencilDepthFailOperation",t.stencilDepthFailOperation);i.stencilOpSeparate(1028,o,s,n),i.stencilOpSeparate(1029,o,s,n)}if(t.blendColorOperation||t.blendAlphaOperation){i.enable(3042);let n=mn("blendColorOperation",t.blendColorOperation||"add"),o=mn("blendAlphaOperation",t.blendAlphaOperation||"add");i.blendEquationSeparate(n,o);let s=Ot("blendColorSrcFactor",t.blendColorSrcFactor||"one"),a=Ot("blendColorDstFactor",t.blendColorDstFactor||"zero"),f=Ot("blendAlphaSrcFactor",t.blendAlphaSrcFactor||"one"),l=Ot("blendAlphaDstFactor",t.blendAlphaDstFactor||"zero");i.blendFuncSeparate(s,a,f,l)}}function xt(e,t){return Ge(e,t,{never:512,less:513,equal:514,"less-equal":515,greater:516,"not-equal":517,"greater-equal":518,always:519})}function Jr(e,t){return Ge(e,t,{keep:7680,zero:0,replace:7681,invert:5386,"increment-clamp":7682,"decrement-clamp":7683,"increment-wrap":34055,"decrement-wrap":34056})}function mn(e,t){return Ge(e,t,{add:32774,subtract:32778,"reverse-subtract":32779,min:32775,max:32776})}function Ot(e,t){return Ge(e,t,{one:1,zero:0,"src-color":768,"one-minus-src-color":769,"dst-color":774,"one-minus-dst-color":775,"src-alpha":770,"one-minus-src-alpha":771,"dst-alpha":772,"one-minus-dst-alpha":773})}function Rf(e,t){return`Illegal parameter ${t} for ${e}`}function Ge(e,t,r){if(!(t in r))throw new Error(Rf(e,t));return r[t]}function bf(e,t){return t}function Ft(e){let t={};return e.addressModeU&&(t[10242]=Gr(e.addressModeU)),e.addressModeV&&(t[10243]=Gr(e.addressModeV)),e.addressModeW&&(t[32882]=Gr(e.addressModeW)),e.magFilter&&(t[10240]=On(e.magFilter)),(e.minFilter||e.mipmapFilter)&&(t[10241]=Ef(e.minFilter||"linear",e.mipmapFilter)),e.lodMinClamp!==void 0&&(t[33082]=e.lodMinClamp),e.lodMaxClamp!==void 0&&(t[33083]=e.lodMaxClamp),e.type==="comparison-sampler"&&(t[34892]=34894),e.compare&&(t[34893]=xt("compare",e.compare)),e.maxAnisotropy&&(t[34046]=e.maxAnisotropy),t}function yn(e){let t={...e};return e[10241]!==9728&&(t[10241]=9729),t[10242]=33071,t[10243]=33071,t}function Gr(e){switch(e){case"clamp-to-edge":return 33071;case"repeat":return 10497;case"mirror-repeat":return 33648}}function On(e){switch(e){case"nearest":return 9728;case"linear":return 9729}}function Ef(e,t){if(!t)return On(e);switch(e){case"nearest":return t==="nearest"?9984:9986;case"linear":return t==="nearest"?9985:9987}}var K=T(E(),1),vf=10,V=class extends K.Buffer{constructor(t){let r=arguments.length>1&&arguments[1]!==void 0?arguments[1]:{};super(t,r),this.device=void 0,this.gl=void 0,this.gl2=void 0,this.handle=void 0,this.glTarget=void 0,this.glUsage=void 0,this.glIndexType=5123,this.byteLength=void 0,this.bytesUsed=void 0,this.debugData=null,this.device=t,this.gl=this.device.gl,this.gl2=this.device.gl2;let i=typeof r=="object"?r.handle:void 0;this.handle=i||this.gl.createBuffer(),t.setSpectorMetadata(this.handle,{...this.props,data:typeof this.props.data}),this.glTarget=mf(this.props.usage),this.glUsage=Sf(this.props.usage),this.glIndexType=this.props.indexType==="uint32"?5125:5123,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,i=arguments.length>2&&arguments[2]!==void 0?arguments[2]:t.byteLength+r;(0,K.assert)(ArrayBuffer.isView(t));let n=this._getWriteTarget();return this.gl.bindBuffer(n,this.handle),this.gl.bufferData(n,i,this.glUsage),this.gl.bufferSubData(n,r,t),this.gl.bindBuffer(n,null),this.debugData=t.slice(0,vf),this.bytesUsed=i,this.byteLength=i,this.trackAllocatedMemory(i),this}_initWithByteLength(t){(0,K.assert)(t>=0);let r=t;t===0&&(r=new Float32Array(0));let i=this._getWriteTarget();return this.gl.bindBuffer(i,this.handle),this.gl.bufferData(i,r,this.glUsage),this.gl.bindBuffer(i,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,i=0,n=void 0,o=this.device.isWebGL2?36663:this.glTarget;this.gl.bindBuffer(o,this.handle),i!==0||n!==void 0?(this.device.assertWebGL2(),this.gl2.bufferSubData(o,r,t,i,n)):this.gl.bufferSubData(o,r,t),this.gl.bindBuffer(o,null)}async readAsync(){var t;let r=arguments.length>0&&arguments[0]!==void 0?arguments[0]:0,i=arguments.length>1?arguments[1]:void 0;this.device.assertWebGL2(),i=(t=i)!==null&&t!==void 0?t:this.byteLength;let n=new Uint8Array(i),o=0;return this.gl.bindBuffer(36662,this.handle),this.gl2.getBufferSubData(36662,r,n,o,i),this.gl.bindBuffer(36662,null),n}_invalidateDebugData(){this.debugData=null}_getWriteTarget(){return this.glTarget}_getReadTarget(){return this.glTarget}};function mf(e){return e&K.Buffer.INDEX?34963:e&K.Buffer.VERTEX?34962:e&K.Buffer.UNIFORM?35345:34962}function Sf(e){return e&K.Buffer.INDEX||e&K.Buffer.VERTEX?35044:e&K.Buffer.UNIFORM?35048:35044}var xn=T(E(),1);var ve=class extends xn.Sampler{constructor(t,r){super(t,r),this.device=void 0,this.handle=void 0,this.parameters=void 0,this.device=t,this.parameters=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,i]of Object.entries(t)){let n=Number(r);switch(n){case 33082:case 33083:this.device.gl2.samplerParameterf(this.handle,n,i);break;default:this.device.gl2.samplerParameteri(this.handle,n,i);break}}}};var yf={parameters:{},pixelStore:{},pixels:null,border:0,dataFormat:void 0,textureUnit:void 0,target:void 0},N=class extends F.Texture{constructor(t,r){var i;super(t,{...yf,format:"rgba8unorm",...r}),this.MAX_ATTRIBUTES=void 0,this.device=void 0,this.gl=void 0,this.gl2=void 0,this.handle=void 0,this.sampler=void 0,this.glFormat=void 0,this.type=void 0,this.dataFormat=void 0,this.mipmaps=void 0,this.target=void 0,this.textureUnit=void 0,this.loaded=!1,this._video=void 0,this.device=t,this.gl=this.device.gl,this.gl2=this.device.gl2,this.handle=this.props.handle||this.gl.createTexture(),this.device.setSpectorMetadata(this.handle,{...this.props,data:typeof this.props.data}),this.glFormat=6408,this.target=Of(this.props),this.loaded=!1,typeof((i=this.props)===null||i===void 0?void 0:i.data)=="string"&&Object.assign(this.props,{data:(0,F.loadImage)(this.props.data)}),this.initialize(this.props),Object.seal(this)}destroy(){this.handle&&(this.gl.deleteTexture(this.handle),this.removeStats(),this.trackDeallocatedMemory("Texture"),this.destroyed=!0)}toString(){return`Texture(${this.id},${this.width}x${this.height})`}initialize(){let t=arguments.length>0&&arguments[0]!==void 0?arguments[0]:{};if(this.props.dimension==="cube")return this.initializeCube(t);let r=t.data;if(r instanceof Promise)return r.then(h=>this.initialize(Object.assign({},t,{pixels:h,data:h}))),this;let i=typeof HTMLVideoElement<"u"&&r instanceof HTMLVideoElement;if(i&&r.readyState<HTMLVideoElement.HAVE_METADATA)return this._video=null,r.addEventListener("loadeddata",()=>this.initialize(t)),this;let{parameters:n={}}=t,{pixels:o=null,pixelStore:s={},textureUnit:a=void 0}=t;r||(r=o);let{width:f,height:l,dataFormat:c,type:u,compressed:_=!1,mipmaps:d=!0}=t,{depth:p=0}=t,g=Qe(t.format,this.device.isWebGL2);return{width:f,height:l,compressed:_,dataFormat:c,type:u}=this._deduceParameters({format:t.format,type:u,dataFormat:c,compressed:_,data:r,width:f,height:l}),this.width=f,this.height=l,this.glFormat=g,this.type=u,this.dataFormat=c,this.textureUnit=a,Number.isFinite(this.textureUnit)&&(this.gl.activeTexture(33984+this.textureUnit),this.gl.bindTexture(this.target,this.handle)),d&&this.device.isWebGL1&&It(this.width,this.height)&&(F.log.warn(`texture: ${this} is Non-Power-Of-Two, disabling mipmaps`)(),d=!1),this.mipmaps=d,this.setImageData({data:r,width:f,height:l,depth:p,format:g,type:u,dataFormat:c,parameters:s,compressed:_}),this.setSampler(t.sampler),this._setSamplerParameters(n),d&&this.generateMipmap(),i&&(this._video={video:r,parameters:n,lastTime:r.readyState>=HTMLVideoElement.HAVE_CURRENT_DATA?r.currentTime:-1}),this}initializeCube(t){let{mipmaps:r=!0,parameters:i={}}=t;return this.setCubeMapImageData(t).then(()=>{this.loaded=!0,r&&this.generateMipmap(t),this.setSampler(t.sampler),this._setSamplerParameters(i)}),this}setSampler(){let t=arguments.length>0&&arguments[0]!==void 0?arguments[0]:{},r;t instanceof ve?(this.sampler=t,r=t.props):(this.sampler=new ve(this.device,t),r=t);let i=Ft(r);return this._setSamplerParameters(i),this}resize(t){let{height:r,width:i,mipmaps:n=!1}=t;return i!==this.width||r!==this.height?this.initialize({width:i,height:r,format:this.format,type:this.type,dataFormat:this.dataFormat,mipmaps:n}):this}update(){if(this._video){let{video:t,parameters:r,lastTime:i}=this._video;if(i===t.currentTime||t.readyState<HTMLVideoElement.HAVE_CURRENT_DATA)return;this.setSubImageData({data:t,parameters:r}),this.mipmaps&&this.generateMipmap(),this._video.lastTime=t.currentTime}}generateMipmap(){let t=arguments.length>0&&arguments[0]!==void 0?arguments[0]:{};return this.device.isWebGL1&&It(this.width,this.height)?(F.log.warn(`texture: ${this} is Non-Power-Of-Two, disabling mipmaping`)(),this):(this.mipmaps=!0,this.gl.bindTexture(this.target,this.handle),P(this.gl,t,()=>{this.gl.generateMipmap(this.target)}),this.gl.bindTexture(this.target,null),this)}setImageData(t){if(this.props.dimension==="3d"||this.props.dimension==="2d-array")return this.setImageData3D(t);this.trackDeallocatedMemory("Texture");let{target:r=this.target,pixels:i=null,level:n=0,glFormat:o=this.glFormat,offset:s=0,parameters:a={}}=t,{data:f=null,type:l=this.type,width:c=this.width,height:u=this.height,dataFormat:_=this.dataFormat,compressed:d=!1}=t;f||(f=i),{type:l,dataFormat:_,compressed:d,width:c,height:u}=this._deduceParameters({format:this.props.format,type:l,dataFormat:_,compressed:d,data:f,width:c,height:u});let{gl:p}=this;p.bindTexture(this.target,this.handle);let g=null;({data:f,dataType:g}=this._getDataType({data:f,compressed:d}));let h;if(P(this.gl,a,()=>{switch(g){case"null":p.texImage2D(r,n,o,c,u,0,_,l,f);break;case"typed-array":p.texImage2D(r,n,o,c,u,0,_,l,f,s);break;case"buffer":h=this.device.assertWebGL2(),h.bindBuffer(35052,f.handle||f),h.texImage2D(r,n,o,c,u,0,_,l,s),h.bindBuffer(35052,null);break;case"browser-object":this.device.isWebGL2?p.texImage2D(r,n,o,c,u,0,_,l,f):p.texImage2D(r,n,o,_,l,f);break;case"compressed":for(let[R,A]of f.entries())p.compressedTexImage2D(r,R,A.format,A.width,A.height,0,A.data);break;default:(0,F.assert)(!1,"Unknown image data type")}}),f&&f.byteLength)this.trackAllocatedMemory(f.byteLength,"Texture");else{let R=Je(this.props.format,this.device.isWebGL2);this.trackAllocatedMemory(this.width*this.height*R,"Texture")}return this.loaded=!0,this}setSubImageData(t){let{target:r=this.target,pixels:i=null,data:n=null,x:o=0,y:s=0,width:a=this.width,height:f=this.height,level:l=0,glFormat:c=this.glFormat,type:u=this.type,dataFormat:_=this.dataFormat,compressed:d=!1,offset:p=0,parameters:g={}}=t;if({type:u,dataFormat:_,compressed:d,width:a,height:f}=this._deduceParameters({format:this.props.format,type:u,dataFormat:_,compressed:d,data:n,width:a,height:f}),(0,F.assert)(this.depth===1,"texSubImage not supported for 3D textures"),n||(n=i),n&&n.data){let h=n;n=h.data,a=h.shape[0],f=h.shape[1]}n instanceof V&&(n=n.handle),this.gl.bindTexture(this.target,this.handle),P(this.gl,g,()=>{if(d)this.gl.compressedTexSubImage2D(r,l,o,s,a,f,c,n);else if(n===null)this.gl.texSubImage2D(r,l,o,s,a,f,_,u,null);else if(ArrayBuffer.isView(n))this.gl.texSubImage2D(r,l,o,s,a,f,_,u,n,p);else if(typeof WebGLBuffer<"u"&&n instanceof WebGLBuffer){let h=this.device.assertWebGL2();h.bindBuffer(35052,n),h.texSubImage2D(r,l,o,s,a,f,_,u,p),h.bindBuffer(35052,null)}else this.device.isWebGL2?this.device.assertWebGL2().texSubImage2D(r,l,o,s,a,f,_,u,n):this.gl.texSubImage2D(r,l,o,s,_,u,n)}),this.gl.bindTexture(this.target,null)}copyFramebuffer(){let t=arguments.length>0&&arguments[0]!==void 0?arguments[0]:{};return F.log.error("Texture.copyFramebuffer({...}) is no logner supported, use copyToTexture(source, target, opts})")(),null}getActiveUnit(){return this.gl.getParameter(34016)-33984}bind(){let t=arguments.length>0&&arguments[0]!==void 0?arguments[0]:this.textureUnit,{gl:r}=this;return t!==void 0&&(this.textureUnit=t,r.activeTexture(33984+t)),r.bindTexture(this.target,this.handle),t}unbind(){let t=arguments.length>0&&arguments[0]!==void 0?arguments[0]:this.textureUnit,{gl:r}=this;return t!==void 0&&(this.textureUnit=t,r.activeTexture(33984+t)),r.bindTexture(this.target,null),t}_getDataType(t){let{data:r,compressed:i=!1}=t;return i?{data:r,dataType:"compressed"}:r===null?{data:r,dataType:"null"}:ArrayBuffer.isView(r)?{data:r,dataType:"typed-array"}:r instanceof V?{data:r.handle,dataType:"buffer"}:typeof WebGLBuffer<"u"&&r instanceof WebGLBuffer?{data:r,dataType:"buffer"}:{data:r,dataType:"browser-object"}}_deduceParameters(t){let{format:r,data:i}=t,{width:n,height:o,dataFormat:s,type:a,compressed:f}=t,l=Pe(r,this.device.isWebGL2);return s=s||l.dataFormat,a=a||l.type,f=f||l.compressed,{width:n,height:o}=this._deduceImageSize(i,n,o),{dataFormat:s,type:a,compressed:f,width:n,height:o,format:r,data:i}}_deduceImageSize(t,r,i){let n;return typeof ImageData<"u"&&t instanceof ImageData?n={width:t.width,height:t.height}:typeof HTMLImageElement<"u"&&t instanceof HTMLImageElement?n={width:t.naturalWidth,height:t.naturalHeight}:typeof HTMLCanvasElement<"u"&&t instanceof HTMLCanvasElement?n={width:t.width,height:t.height}:typeof ImageBitmap<"u"&&t instanceof ImageBitmap?n={width:t.width,height:t.height}:typeof HTMLVideoElement<"u"&&t instanceof HTMLVideoElement?n={width:t.videoWidth,height:t.videoHeight}:t?n={width:r,height:i}:n={width:r>=0?r:1,height:i>=0?i:1},(0,F.assert)(n,"Could not deduced texture size"),(0,F.assert)(r===void 0||n.width===r,"Deduced texture width does not match supplied width"),(0,F.assert)(i===void 0||n.height===i,"Deduced texture height does not match supplied height"),n}async setCubeMapImageData(t){let{gl:r}=this,{width:i,height:n,pixels:o,data:s,format:a=6408,type:f=5121}=t,l=o||s,c=await Promise.all(N.FACES.map(u=>{let _=l[u];return Promise.all(Array.isArray(_)?_:[_])}));this.bind(),N.FACES.forEach((u,_)=>{c[_].length>1&&this.props.mipmaps!==!1&&F.log.warn(`${this.id} has mipmap and multiple LODs.`)(),c[_].forEach((d,p)=>{i&&n?r.texImage2D(u,p,a,i,n,0,a,f,d):r.texImage2D(u,p,a,a,f,d)})}),this.unbind()}setImageDataForFace(t){let{face:r,width:i,height:n,pixels:o,data:s,format:a=6408,type:f=5121}=t,{gl:l}=this,c=o||s;return this.bind(),c instanceof Promise?c.then(u=>this.setImageDataForFace(Object.assign({},t,{face:r,data:u,pixels:u}))):this.width||this.height?l.texImage2D(r,0,a,i,n,0,a,f,c):l.texImage2D(r,0,a,a,f,c),this}setImageData3D(t){let{level:r=0,dataFormat:i,format:n,type:o,width:s,height:a,depth:f=1,offset:l=0,data:c,parameters:u={}}=t;this.trackDeallocatedMemory("Texture"),this.gl.bindTexture(this.target,this.handle);let _=Pe(n,this.device.isWebGL2);if(P(this.gl,u,()=>{ArrayBuffer.isView(c)&&this.gl.texImage3D(this.target,r,_.format,s,a,f,0,_.dataFormat,_.type,c),c instanceof V&&(this.gl.bindBuffer(35052,c.handle),this.gl.texImage3D(this.target,r,i,s,a,f,0,n,o,l))}),c&&c.byteLength)this.trackAllocatedMemory(c.byteLength,"Texture");else{let d=Je(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&&It(this.width,this.height)&&(t=yn(t)),!(0,F.isObjectEmpty)(t)){xf(t),this.gl.bindTexture(this.target,this.handle);for(let[r,i]of Object.entries(t)){let n=Number(r),o=i;switch(n){case 33082:case 33083:this.gl.texParameterf(this.target,n,o);break;default:this.gl.texParameteri(this.target,n,o);break}}this.gl.bindTexture(this.target,null)}}_getWebGL1NPOTParameterOverride(t,r){if(this.device.isWebGL1&&It(this.width,this.height))switch(t){case 10241:if(r!==9729&&r!==9728)return 9729;break;case 10242:case 10243:return 33071;default:break}return r}};N.FACES=[34069,34070,34071,34072,34073,34074];function Of(e){switch(e.dimension){case"2d":return 3553;case"cube":return 34067;case"2d-array":return 35866;case"3d":return 32879;case"1d":case"cube-array":default:throw new Error(e.dimension)}}function It(e,t){return!e||!t?!1:!(0,F.isPowerOfTwo)(e)||!(0,F.isPowerOfTwo)(t)}function xf(e){F.log.log(1,"texture sampler parameters",e)()}var In=T(E(),1);var fe=T(E(),1);var Pn=T(E(),1);function Ct(e,t){if(typeof t!="string")return t;let r=Number(t);if(!isNaN(r))return r;t=t.replace(/^.*\./,"");let i=e[t];return(0,Pn.assert)(i!==void 0,`Accessing undefined constant GL.${t}`),i}var Fe="Resource subclass must define virtual methods",Mt=class extends fe.Resource{constructor(t,r,i){super(t,r,i),this.device=void 0,this.gl=void 0,this.gl2=void 0,this._handle=void 0,this._bound=!1,this.byteLength=0,this.device=M.attach(t);let n=this.device.gl;Ki(n);let{id:o}=r||{};this.gl=n,this.gl2=n,this.id=o||(0,fe.uid)(this.constructor.name),this._handle=r?.handle,this._handle===void 0&&(this._handle=this._createHandle()),this.byteLength=0}toString(){return`${this.constructor.name}(${this.id})`}get handle(){return this._handle}delete(){let{deleteChildren:t=!1}=arguments.length>0&&arguments[0]!==void 0?arguments[0]:{},r=this._handle&&this._deleteHandle(this._handle);return this._handle&&this.removeStats(),this._handle=null,r&&t&&r.filter(Boolean).forEach(i=>i.destroy()),this}bind(){let t=arguments.length>0&&arguments[0]!==void 0?arguments[0]:this.handle;if(typeof t!="function")return this._bindHandle(t),this;let r;return this._bound?r=t():(this._bindHandle(this.handle),this._bound=!0,r=t(),this._bound=!1,this._bindHandle(null)),r}unbind(){this.bind(null)}getParameter(t){let r=arguments.length>1&&arguments[1]!==void 0?arguments[1]:{};t=Ct(this.gl,t),(0,fe.assert)(t);let n=(this.constructor.PARAMETERS||{})[t];if(n){let o=b(this.gl);if(!((!("webgl2"in n)||o)&&(!("extension"in n)||this.gl.getExtension(n.extension)))){let a=n.webgl1,f="webgl2"in n?n.webgl2:n.webgl1;return o?f:a}}return this._getParameter(t,r)}getParameters(){let t=arguments.length>0&&arguments[0]!==void 0?arguments[0]:{},{parameters:r,keys:i}=t,n=this.constructor.PARAMETERS||{},o=b(this.gl),s={},a=r||Object.keys(n);for(let f of a){let l=n[f];if(l&&(!("webgl2"in l)||o)&&(!("extension"in l)||this.gl.getExtension(l.extension))){let u=i?this.device.getGLKey(f):f;s[u]=this.getParameter(f,t),i&&l.type==="GLenum"&&(s[u]=this.device.getGLKey(s[u]))}}return s}setParameter(t,r){t=Ct(this.gl,t),(0,fe.assert)(t);let n=(this.constructor.PARAMETERS||{})[t];if(n){let o=b(this.gl);if(!((!("webgl2"in n)||o)&&(!("extension"in n)||this.gl.getExtension(n.extension))))throw new Error("Parameter not available on this platform");n.type==="GLenum"&&(r=Ct(r))}return this._setParameter(t,r),this}setParameters(t){for(let r in t)this.setParameter(r,t[r]);return this}stubRemovedMethods(t,r,i){return(0,fe.stubRemovedMethods)(this,t,r,i)}initialize(t){}_createHandle(){throw new Error(Fe)}_deleteHandle(){throw new Error(Fe)}_bindHandle(t){throw new Error(Fe)}_getOptsFromHandle(){throw new Error(Fe)}_getParameter(t,r){throw new Error(Fe)}_setParameter(t,r){throw new Error(Fe)}};var Fn;Fn=Symbol.toStringTag;var z=class extends Mt{get[Fn](){return"Renderbuffer"}get width(){return this.props.width}get height(){return this.props.height}get format(){return this.props.format}get samples(){return this.props.samples}get attachment(){}static isTextureFormatSupported(t,r){return pn(t.gl,r)}constructor(t,r){if(typeof r.format=="number")throw new Error("Renderbuffer");super(t,r,z.defaultProps),this.glFormat=void 0,this.glFormat=Qe(this.props.format,t.isWebGL2),this._initialize(this.props)}resize(t){(t.width!==this.width||t.height!==this.height)&&(Object.assign(this.props,{...t,format:this.format,samples:this.samples}),this._initialize(this.props))}_initialize(t){let{format:r,width:i,height:n,samples:o}=t;(0,In.assert)(r,"Needs format"),this.trackDeallocatedMemory(),this.gl.bindRenderbuffer(36161,this.handle),o!==0&&this.device.isWebGL2?this.gl2.renderbufferStorageMultisample(36161,o,this.glFormat,i,n):this.gl.renderbufferStorage(36161,this.glFormat,i,n),this.gl.bindRenderbuffer(36161,null),this.trackAllocatedMemory(i*n*(o||1)*Je(this.glFormat,this.device.isWebGL2))}_createHandle(){return this.gl.createRenderbuffer()}_deleteHandle(){this.gl.deleteRenderbuffer(this.handle),this.trackDeallocatedMemory()}_bindHandle(t){this.gl.bindRenderbuffer(36161,t)}};z.defaultProps={id:void 0,handle:void 0,userData:void 0,format:void 0,width:1,height:1,samples:0};var te=class extends Nt.Framebuffer{get texture(){return this.colorAttachments[0]}constructor(t,r){super(t,r),this.device=void 0,this.gl=void 0,this.handle=void 0;let i=r.handle===null;if(this.device=t,this.gl=t.gl,this.handle=this.props.handle||i?this.props.handle:this.gl.createFramebuffer(),!i){t.setSpectorMetadata(this.handle,{id:this.props.id,props:this.props}),this.autoCreateAttachmentTextures(),this.gl.bindFramebuffer(36160,this.handle);for(let n=0;n<this.colorAttachments.length;++n){let o=this.colorAttachments[n],s=36064+n;o&&this._attachOne(s,o)}this.depthStencilAttachment&&this._attachOne(Tn(this.depthStencilAttachment.format),this.depthStencilAttachment),this.gl.bindFramebuffer(36160,null)}r.check!==!1&&this._checkStatus()}destroy(){super.destroy(),!this.destroyed&&this.handle!==null&&this.gl.deleteFramebuffer(this.handle)}_checkStatus(){let{gl:t}=this,r=t.bindFramebuffer(36160,this.handle),i=t.checkFramebufferStatus(36160);if(t.bindFramebuffer(36160,r||null),i!==36053)throw new Error(`Framebuffer ${Ff(i)}`)}createDepthStencilTexture(t){return new z(this.device,{id:`${this.id}-depth-stencil`,format:t,width:this.width,height:this.height})}resizeAttachments(t,r){if(this.handle===null)return this.width=this.gl.drawingBufferWidth,this.height=this.gl.drawingBufferHeight,this;t===void 0&&(t=this.gl.drawingBufferWidth),r===void 0&&(r=this.gl.drawingBufferHeight);for(let i of this.colorAttachments)i.resize({width:t,height:r});return this.depthStencilAttachment&&this.depthStencilAttachment.resize({width:t,height:r}),this}_attachOne(t,r){if(r instanceof z)return this._attachWEBGLRenderbuffer(t,r),r;if(Array.isArray(r)){let[i,n=0,o=0]=r;return this._attachTexture(t,i,n,o),i}else if(r instanceof N)return this._attachTexture(t,r,0,0),r;throw new Error("attach")}_attachWEBGLRenderbuffer(t,r){this.gl.framebufferRenderbuffer(36160,t,36161,r.handle)}_attachTexture(t,r,i,n){let{gl:o,gl2:s}=this.device;switch(o.bindTexture(r.target,r.handle),r.target){case 35866:case 32879:this.device.assertWebGL2(),s?.framebufferTextureLayer(36160,t,r.target,n,i);break;case 34067:let a=Pf(i);o.framebufferTexture2D(36160,t,a,r.handle,n);break;case 3553:o.framebufferTexture2D(36160,t,3553,r.handle,n);break;default:(0,Nt.assert)(!1,"Illegal texture type")}o.bindTexture(r.target,null)}};function Pf(e){return e<34069?e+34069:e}function Ff(e){switch(e){case 36053:return"success";case 36054:return"Mismatched attachments";case 36055:return"No attachments";case 36057:return"Height/width mismatch";case 36061:return"Unsupported or split attachments";case 36182:return"Samples mismatch";default:return`${e}`}}var Bt=class extends Cn.CanvasContext{constructor(t,r){super(r),this.device=void 0,this.presentationSize=void 0,this._framebuffer=null,this.device=t,this.presentationSize=[-1,-1],this._setAutoCreatedCanvasId(`${this.device.id}-canvas`),this.update()}getCurrentFramebuffer(){return this.update(),this._framebuffer=this._framebuffer||new te(this.device,{handle:null}),this._framebuffer}update(){let t=this.getPixelSize();(t[0]!==this.presentationSize[0]||t[1]!==this.presentationSize[1])&&(this.presentationSize=t)}resize(t){if(this.canvas){let i=this.getDevicePixelRatio(t?.useDevicePixels);this.setDevicePixelRatio(i,t);return}let r=this.device.gl.getExtension("STACKGL_resize_drawingbuffer");r&&t&&"width"in t&&"height"in t&&r.resize(t.width,t.height)}commit(){}};var re=T(E(),1),If={spector:re.log.get("spector")||re.log.get("inspect")},Cf="https://spectorcdn.babylonjs.com/spector.bundle.js",Mf=1,k=null,Mn=!1;async function Nn(e){if(!globalThis.SPECTOR)try{await(0,re.loadScript)(Cf)}catch(t){re.log.warn(String(t))}}function Bn(e){var t,r;if(e={...If,...e},!((t=e)!==null&&t!==void 0&&t.spector)||(!k&&globalThis.SPECTOR&&(re.log.probe(Mf,"SPECTOR found and initialized")(),k=new globalThis.SPECTOR.Spector,globalThis.luma&&(globalThis.luma.spector=k)),!k))return null;if(!Mn){var i,n;Mn=!0,k.spyCanvases(),(i=k)===null||i===void 0||i.onCaptureStarted.add(a=>re.log.info("Spector capture started:",a)()),(n=k)===null||n===void 0||n.onCapture.add(a=>{var f,l,c;re.log.info("Spector capture complete:",a)(),(f=k)===null||f===void 0||f.getResultUI(),(l=k)===null||l===void 0||l.resultView.display(),(c=k)===null||c===void 0||c.resultView.addCapture(a)})}if((r=e)!==null&&r!==void 0&&r.canvas){var o,s;if(typeof e.spector=="string"&&e.spector!==e.canvas.id)return k;(o=k)===null||o===void 0||o.startCapture((s=e)===null||s===void 0?void 0:s.canvas,500),new Promise(a=>setTimeout(a,2e3)).then(a=>{var f;re.log.info("Spector capture stopped after 2 seconds")(),(f=k)===null||f===void 0||f.stopCapture()})}return k}var de=T(E(),1);var me=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}(me||{});var Nf="https://unpkg.com/webgl-debug@2.0.1/index.js";function Dn(e){return e.luma=e.luma||{},e.luma}async function wn(){L()&&!globalThis.WebGLDebugUtils&&(globalThis.global=globalThis.global||globalThis,globalThis.global.module={},await(0,de.loadScript)(Nf))}function Un(e){let t=arguments.length>1&&arguments[1]!==void 0?arguments[1]:{};return e?t.debug?Df(e,t):Bf(e):null}function Bf(e){let t=Dn(e);return t.realContext?t.realContext:e}function Df(e,t){if(!globalThis.WebGLDebugUtils)return de.log.warn("webgl-debug not loaded")(),e;let r=Dn(e);if(r.debugContext)return r.debugContext;globalThis.WebGLDebugUtils.init({...me,...e});let i=globalThis.WebGLDebugUtils.makeDebugContext(e,wf.bind(null,t),Uf.bind(null,t));for(let s in me)!(s in i)&&typeof me[s]=="number"&&(i[s]=me[s]);class n{}Object.setPrototypeOf(i,Object.getPrototypeOf(e)),Object.setPrototypeOf(n,i);let o=Object.create(n);return r.realContext=e,r.debugContext=o,o.debug=!0,o}function ei(e,t){t=Array.from(t).map(i=>i===void 0?"undefined":i);let r=globalThis.WebGLDebugUtils.glFunctionArgsToString(e,t);return r=`${r.slice(0,100)}${r.length>100?"...":""}`,`gl.${e}(${r})`}function wf(e,t,r,i){i=Array.from(i).map(f=>f===void 0?"undefined":f);let n=globalThis.WebGLDebugUtils.glEnumToString(t),o=globalThis.WebGLDebugUtils.glFunctionArgsToString(r,i),s=e.webgl2?"gl2":"gl1",a=`${n} in ${s}.${r}(${o})`;de.log.error(a)();debugger;if(e.throwOnError)throw new Error(a)}function Uf(e,t,r){let i="";if(de.log.level>=1&&(i=ei(t,r),de.log.log(1,i)()),e.break&&e.break.length>0&&(i=i||ei(t,r),e.break.every(o=>i.indexOf(o)!==-1)))debugger;for(let n of r)if(n===void 0){if(i=i||ei(t,r),e.throwOnError)throw new Error(`Undefined argument: ${i}`);de.log.error(`Undefined argument: ${i}`)();debugger}}var Wn=T(E(),1);function kn(e){let t=e.split(/\r?\n/),r=[];for(let i of t){if(i.length<=1)continue;let n=i.split(":");if(n.length===2){let[u,_]=n;r.push({message:_.trim(),type:Vn(u),lineNum:0,linePos:0});continue}let[o,s,a,...f]=n,l=parseInt(a,10);isNaN(l)&&(l=0);let c=parseInt(s,10);isNaN(c)&&(c=0),r.push({message:f.join(":").trim(),type:Vn(o),lineNum:l,linePos:c})}return r}function Vn(e){let t=["warning","error","info"],r=e.toLowerCase();return t.includes(r)?r:"info"}var Dt=class extends Wn.Shader{constructor(t,r){switch(super(t,r),this.device=void 0,this.handle=void 0,this.device=t,this.props.stage){case"vertex":this.handle=this.props.handle||this.device.gl.createShader(35633);break;case"fragment":this.handle=this.props.handle||this.device.gl.createShader(35632);break;default:throw new Error(this.props.stage)}this._compile(this.source)}destroy(){this.handle&&(this.removeStats(),this.device.gl.deleteShader(this.handle),this.destroyed=!0)}async getCompilationInfo(){return this.getCompilationInfoSync()}getCompilationInfoSync(){let t=this.device.gl.getShaderInfoLog(this.handle);return kn(t)}_compile(t){t=(n=>n.startsWith("#version ")?n:`#version 100
72
+ ${n}`)(t);let{gl:i}=this.device;if(i.shaderSource(this.handle,t),i.compileShader(this.handle),this.compilationStatus=i.getShaderParameter(this.handle,35713)?"success":"error",this.debugShader(),this.compilationStatus==="error")throw new Error(`GLSL compilation errors in ${this.props.stage} shader ${this.props.id}`)}};var Hn=T(E(),1);var Vf=256,kf=1024,Wf=16384,ti=6144,wt=class extends Hn.RenderPass{constructor(t,r){super(t,r),this.device=void 0,this.glParameters=void 0,this.device=t,_e(this.device.gl),this.setParameters(this.props.parameters),this.clear()}end(){se(this.device.gl),this.props.framebuffer&&oe(this.device,{framebuffer:null})}pushDebugGroup(t){}popDebugGroup(){}insertDebugMarker(t){}setParameters(){let t=arguments.length>0&&arguments[0]!==void 0?arguments[0]:{},r={};this.props.framebuffer&&(r.framebuffer=this.props.framebuffer),this.props.depthReadOnly&&(r.depthMask=!this.props.depthReadOnly),r.stencilMask=this.props.stencilReadOnly?0:1,r[35977]=this.props.discard,t.viewport&&(t.viewport.length>=6?(r.viewport=t.viewport.slice(0,4),r.depthRange=[t.viewport[4],t.viewport[5]]):r.viewport=t.viewport),r.scissorTest=Boolean(t.scissorRect),t.scissorRect&&(r.scissor=t.scissorRect),t.blendConstant&&(r.blendColor=t.blendConstant),t.stencilReference&&(console.warn("RenderPassParameters.stencilReference not yet implemented in WebGL"),t[2967]=t.stencilReference),this.glParameters=r,oe(this.device,r)}clear(){let t={...this.glParameters},r=0;this.props.clearColor!==!1&&(r|=Wf,t.clearColor=this.props.clearColor),this.props.clearDepth!==!1&&(r|=Vf,t.clearDepth=this.props.clearDepth),this.props.clearStencil!==!1&&(r|=kf,t.clearStencil=this.props.clearStencil),r!==0&&P(this.device,t,()=>{this.device.gl.clear(r)})}clearColorBuffer(){let t=arguments.length>0&&arguments[0]!==void 0?arguments[0]:0,r=arguments.length>1&&arguments[1]!==void 0?arguments[1]:[0,0,0,0];P(this.device.gl2,{framebuffer:this.props.framebuffer},()=>{switch(r.constructor){case Int32Array:this.device.gl2.clearBufferiv(ti,t,r);break;case Uint32Array:this.device.gl2.clearBufferuiv(ti,t,r);break;case Float32Array:default:this.device.gl2.clearBufferfv(ti,t,r);break}})}};var U=T(E(),1),Qn=T(E(),1);var Ut=T(E(),1);var Hf="Failed to deduce GL constant from typed array";function Xn(e){switch(ArrayBuffer.isView(e)?e.constructor:e){case Float32Array:return 5126;case Uint16Array:return 5123;case Uint32Array:return 5125;case Uint8Array:return 5121;case Uint8ClampedArray:return 5121;case Int8Array:return 5120;case Int16Array:return 5122;case Int32Array:return 5124;default:throw new Error(Hf)}}function et(e,t){let{clamped:r=!0}=t||{};switch(e){case 5126:return Float32Array;case 5123:case 33635:case 32819:case 32820:return Uint16Array;case 5125:return Uint32Array;case 5121:return r?Uint8ClampedArray:Uint8Array;case 5120:return Int8Array;case 5122:return Int16Array;case 5124:return Int32Array;default:throw new Error("Failed to deduce typed array type from GL constant")}}var Xf={offset:0,stride:0,type:5126,size:1,divisor:0,normalized:!1,integer:!1},Lf={deprecatedProps:{instanced:"divisor",isInstanced:"divisor"}},pe=class{static getBytesPerElement(t){return et(t.type||5126).BYTES_PER_ELEMENT}static getBytesPerVertex(t){return(0,Ut.assert)(t.size),et(t.type||5126).BYTES_PER_ELEMENT*t.size}static resolve(){for(var t=arguments.length,r=new Array(t),i=0;i<t;i++)r[i]=arguments[i];return new pe(Xf,...r)}constructor(){this.offset=void 0,this.stride=void 0,this.type=void 0,this.size=void 0,this.divisor=void 0,this.normalized=void 0,this.integer=void 0,this.buffer=void 0,this.index=void 0;for(var t=arguments.length,r=new Array(t),i=0;i<t;i++)r[i]=arguments[i];r.forEach(n=>this._assign(n)),Object.freeze(this)}toString(){return JSON.stringify(this)}get BYTES_PER_ELEMENT(){return pe.getBytesPerElement(this)}get BYTES_PER_VERTEX(){return pe.getBytesPerVertex(this)}_assign(){let t=arguments.length>0&&arguments[0]!==void 0?arguments[0]:{};return t=(0,Ut.checkProps)("Accessor",t,Lf),t.type!==void 0&&(this.type=t.type,(t.type===5124||t.type===5125)&&(this.integer=!0)),t.size!==void 0&&(this.size=t.size),t.offset!==void 0&&(this.offset=t.offset),t.stride!==void 0&&(this.stride=t.stride),t.normalize!==void 0&&(this.normalized=t.normalize),t.normalized!==void 0&&(this.normalized=t.normalized),t.integer!==void 0&&(this.integer=t.integer),t.divisor!==void 0&&(this.divisor=t.divisor),t.buffer!==void 0&&(this.buffer=t.buffer),t.index!==void 0&&(typeof t.index=="boolean"?this.index=t.index?1:0:this.index=t.index),t.instanced!==void 0&&(this.divisor=t.instanced?1:0),t.isInstanced!==void 0&&(this.divisor=t.isInstanced?1:0),this.offset===void 0&&delete this.offset,this.stride===void 0&&delete this.stride,this.type===void 0&&delete this.type,this.size===void 0&&delete this.size,this.divisor===void 0&&delete this.divisor,this.normalized===void 0&&delete this.normalized,this.integer===void 0&&delete this.integer,this.buffer===void 0&&delete this.buffer,this.index===void 0&&delete this.index,this}};function Ln(e){return jf.includes(e)}var jf=[35678,35680,35679,35682,36289,36292,36293,36298,36299,36300,36303,36306,36307,36308,36311],jn={[5126]:[5126,1,"float","f32","float32"],[35664]:[5126,2,"vec2","vec2<f32>","float32x2"],[35665]:[5126,3,"vec3","vec3<f32>","float32x3"],[35666]:[5126,4,"vec4","vec4<f32>","float32x4"],[5124]:[5124,1,"int","i32","sint32"],[35667]:[5124,2,"ivec2","vec2<i32>","sint32x2"],[35668]:[5124,3,"ivec3","vec3<i32>","sint32x3"],[35669]:[5124,4,"ivec4","vec4<i32>","sint32x4"],[5125]:[5125,1,"uint","u32","uint32"],[36294]:[5125,2,"uvec2","vec2<u32>","uint32x2"],[36295]:[5125,3,"uvec3","vec3<u32>","uint32x3"],[36296]:[5125,4,"uvec4","vec4<u32>","uint32x4"],[35670]:[5126,1,"bool","f32","float32"],[35671]:[5126,2,"bvec2","vec2<f32>","float32x2"],[35672]:[5126,3,"bvec3","vec3<f32>","float32x3"],[35673]:[5126,4,"bvec4","vec4<f32>","float32x4"],[35674]:[5126,8,"mat2","mat2x2<f32>"],[35685]:[5126,8,"mat2x3","mat2x3<f32>"],[35686]:[5126,8,"mat2x4","mat2x4<f32>"],[35687]:[5126,12,"mat3x2","mat3x2<f32>"],[35675]:[5126,12,"mat3","mat3x3<f32>"],[35688]:[5126,12,"mat3x4","mat3x4<f32>"],[35689]:[5126,16,"mat4x2","mat4x2<f32>"],[35690]:[5126,16,"mat4x3","mat4x3<f32>"],[35676]:[5126,16,"mat4","mat4x4<f32>"]};function ri(e){let t=jn[e];if(!t)throw new Error("uniform");let[r,i,,n]=t;return{format:n,components:i,glType:r}}function Kn(e){let t=jn[e];if(!t)throw new Error("attribute");let[,r,,i,n]=t;return{attributeType:i,vertexFormat:n,components:r}}function zn(e,t){let r={attributes:[],bindings:[]};r.attributes=Kf(e,t);let i=$f(e,t);for(let a of i){let f=a.uniforms.map(l=>({name:l.name,format:l.format,byteOffset:l.byteOffset,byteStride:l.byteStride,arrayLength:l.arrayLength}));r.bindings.push({type:"uniform",name:a.name,location:a.location,visibility:(a.vertex?1:0)&(a.fragment?2:0),minBindingSize:a.byteLength,uniforms:f})}let n=Yf(e,t),o=0;for(let a of n)if(Ln(a.type)){let{viewDimension:f,sampleType:l}=Zf(a.type);r.bindings.push({type:"texture",name:a.name,location:o,viewDimension:f,sampleType:l}),a.textureUnit=o,o+=1}n.length&&(r.uniforms=n);let s=zf(e,t);return s!=null&&s.length&&(r.varyings=s),r}function Kf(e,t){let r=[],i=e.getProgramParameter(t,35721);for(let n=0;n<i;n++){let o=e.getActiveAttrib(t,n);if(!o)throw new Error("activeInfo");let{name:s,type:a}=o,f=e.getAttribLocation(t,s);if(f>=0){let{attributeType:l}=Kn(a),c=/instance/i.test(s)?"instance":"vertex";r.push({name:s,location:f,stepMode:c,type:l})}}return r.sort((n,o)=>n.location-o.location),r}function zf(e,t){if(!b(e))return[];let r=e,i=[],n=e.getProgramParameter(t,35971);for(let o=0;o<n;o++){let s=r.getTransformFeedbackVarying(t,o);if(!s)throw new Error("activeInfo");let{name:a,type:f,size:l}=s,{glType:c,components:u}=ri(f),_=new pe({type:c,size:l*u}),d={location:o,name:a,accessor:_};i.push(d)}return i.sort((o,s)=>o.location-s.location),i}function Yf(e,t){let r=[],i=e.getProgramParameter(t,35718);for(let n=0;n<i;n++){let o=e.getActiveUniform(t,n);if(!o)throw new Error("activeInfo");let{name:s,size:a,type:f}=o,{name:l,isArray:c}=Qf(s),u=e.getUniformLocation(t,l),_={location:u,name:l,size:a,type:f,isArray:c};if(r.push(_),_.size>1)for(let d=0;d<_.size;d++){let p=`${l}[${d}]`;u=e.getUniformLocation(t,p);let g={..._,name:p,location:u};r.push(g)}}return r}function $f(e,t){if(!b(e))return[];let r=e,i=(s,a)=>r.getActiveUniformBlockParameter(t,s,a),n=[],o=r.getProgramParameter(t,35382);for(let s=0;s<o;s++){let a={name:r.getActiveUniformBlockName(t,s)||"",location:i(s,35391),byteLength:i(s,35392),vertex:i(s,35396),fragment:i(s,35398),uniformCount:i(s,35394),uniforms:[]},f=i(s,35395)||[],l=r.getActiveUniforms(t,f,35383),c=r.getActiveUniforms(t,f,35384),u=r.getActiveUniforms(t,f,35387),_=r.getActiveUniforms(t,f,35388);for(let d=0;d<a.uniformCount;++d){let p=r.getActiveUniform(t,f[d]);if(!p)throw new Error("activeInfo");a.uniforms.push({name:p.name,format:ri(l[d]).format,type:l[d],arrayLength:c[d],byteOffset:u[d],byteStride:_[d]})}n.push(a)}return n.sort((s,a)=>s.location-a.location),n}var qf={[35678]:["2d","float"],[35680]:["cube","float"],[35679]:["3d","float"],[35682]:["3d","depth"],[36289]:["2d-array","float"],[36292]:["2d-array","depth"],[36293]:["cube","float"],[36298]:["2d","sint"],[36299]:["3d","sint"],[36300]:["cube","sint"],[36303]:["2d-array","uint"],[36306]:["2d","uint"],[36307]:["3d","uint"],[36308]:["cube","uint"],[36311]:["2d-array","uint"]};function Zf(e){let t=qf[e];if(!t)throw new Error("sampler");let[r,i]=t;return{viewDimension:r,sampleType:i}}function Qf(e){if(e[e.length-1]!=="]")return{name:e,length:1,isArray:!1};let r=/([^[]*)(\[[0-9]+\])?/.exec(e);if(!r||r.length<2)throw new Error(`Failed to parse GLSL uniform name ${e}`);return{name:r[1],length:r[2]?1:0,isArray:Boolean(r[2])}}function Yn(e,t,r,i){let n=e,o=i;o===!0&&(o=1),o===!1&&(o=0);let s=typeof o=="number"?[o]:o;switch(r){case 35678:case 35680:case 35679:case 35682:case 36289:case 36292:case 36293:case 36298:case 36299:case 36300:case 36303:case 36306:case 36307:case 36308:case 36311:if(typeof i!="number")throw new Error("samplers must be set to integers");return e.uniform1i(t,i);case 5126:return e.uniform1fv(t,s);case 35664:return e.uniform2fv(t,s);case 35665:return e.uniform3fv(t,s);case 35666:return e.uniform4fv(t,s);case 5124:return e.uniform1iv(t,s);case 35667:return e.uniform2iv(t,s);case 35668:return e.uniform3iv(t,s);case 35669:return e.uniform4iv(t,s);case 35670:return e.uniform1iv(t,s);case 35671:return e.uniform2iv(t,s);case 35672:return e.uniform3iv(t,s);case 35673:return e.uniform4iv(t,s);case 5125:return n.uniform1uiv(t,s,1);case 36294:return n.uniform2uiv(t,s,2);case 36295:return n.uniform3uiv(t,s,3);case 36296:return n.uniform4uiv(t,s,4);case 35674:return e.uniformMatrix2fv(t,!1,s);case 35675:return e.uniformMatrix3fv(t,!1,s);case 35676:return e.uniformMatrix4fv(t,!1,s);case 35685:return n.uniformMatrix2x3fv(t,!1,s);case 35686:return n.uniformMatrix2x4fv(t,!1,s);case 35687:return n.uniformMatrix3x2fv(t,!1,s);case 35688:return n.uniformMatrix3x4fv(t,!1,s);case 35689:return n.uniformMatrix4x2fv(t,!1,s);case 35690:return n.uniformMatrix4x3fv(t,!1,s)}throw new Error("Illegal uniform")}function $n(e){switch(e){case"point-list":return 0;case"line-list":return 1;case"line-strip":return 3;case"line-loop-webgl":return 2;case"triangle-list":return 4;case"triangle-strip":return 5;case"triangle-fan-webgl":return 6;default:throw new Error(e)}}function qn(e){switch(e){case"point-list":return 0;case"line-list":return 1;case"line-strip":return 1;case"line-loop-webgl":return 1;case"triangle-list":return 4;case"triangle-strip":return 4;case"triangle-fan-webgl":return 4;default:throw new Error(e)}}var Zn=4,Vt=class extends U.RenderPipeline{constructor(t,r){super(t,r),this.device=void 0,this.handle=void 0,this.vs=void 0,this.fs=void 0,this.introspectedLayout=void 0,this.uniforms={},this.bindings={},this.varyings=null,this._uniformCount=0,this._uniformSetters={},this.device=t,this.handle=this.props.handle||this.device.gl.createProgram(),this.device.setSpectorMetadata(this.handle,{id:this.props.id}),this.vs=(0,U.cast)(r.vs),this.fs=(0,U.cast)(r.fs);let{varyings:i,bufferMode:n=35981}=r;if(i&&i.length>0){var o;this.device.assertWebGL2(),this.varyings=i,(o=this.device.gl2)===null||o===void 0||o.transformFeedbackVaryings(this.handle,i,n)}this._compileAndLink(),this.introspectedLayout=zn(this.device.gl,this.handle),this.shaderLayout=(0,Qn.mergeShaderLayout)(this.introspectedLayout,r.shaderLayout)}destroy(){this.handle&&(this.device.gl.deleteProgram(this.handle),this.destroyed=!0)}setBindings(t){for(let[r,i]of Object.entries(t)){let n=this.shaderLayout.bindings.find(o=>o.name===r)||this.shaderLayout.bindings.find(o=>o.name===`${r}Uniforms`);if(!n){let o=this.shaderLayout.bindings.map(s=>`"${s.name}"`).join(", ");U.log.warn(`Unknown binding "${r}" in render pipeline "${this.id}", expected one of ${o}`)();continue}switch(i||U.log.warn(`Unsetting binding "${r}" in render pipeline "${this.id}"`)(),n.type){case"uniform":if(!(i instanceof V)&&!(i.buffer instanceof V))throw new Error("buffer value");break;case"texture":if(!(i instanceof N||i instanceof te))throw new Error("texture value");break;case"sampler":U.log.warn(`Ignoring sampler ${r}`)();break;default:throw new Error(n.type)}this.bindings[r]=i}}setUniforms(t){let{bindings:r}=(0,U.splitUniformsAndBindings)(t);Object.keys(r).forEach(i=>{U.log.warn(`Unsupported value "${JSON.stringify(r[i])}" used in setUniforms() for key ${i}. Use setBindings() instead?`)()}),Object.assign(this.uniforms,t)}draw(t){var r;let{renderPass:i,vertexArray:n,vertexCount:o,instanceCount:s,firstVertex:a=0,transformFeedback:f}=t,l=$n(this.props.topology),c=Boolean(n.indexBuffer),u=(r=n.indexBuffer)===null||r===void 0?void 0:r.glIndexType,_=Number(s)>0;if(!this._areTexturesRenderable()||o===0)return!1;this.device.gl.useProgram(this.handle),n.bindBeforeRender(i),f&&f.begin(this.props.topology),this._applyBindings(),this._applyUniforms();let d=i;return Sn(this.device,this.props.parameters,d.glParameters,()=>{if(c&&_){var p;(p=this.device.gl2)===null||p===void 0||p.drawElementsInstanced(l,o||0,u,a,s||0)}else if(c)this.device.gl.drawElements(l,o||0,u,a);else if(_){var g;(g=this.device.gl2)===null||g===void 0||g.drawArraysInstanced(l,a,o||0,s||0)}else this.device.gl.drawArrays(l,a,o||0);f&&f.end()}),n.unbindAfterRender(i),!0}_compileAndLink(){let{gl:t}=this.device;if(t.attachShader(this.handle,this.vs.handle),t.attachShader(this.handle,this.fs.handle),U.log.time(Zn,`linkProgram for ${this.id}`)(),t.linkProgram(this.handle),U.log.timeEnd(Zn,`linkProgram for ${this.id}`)(),!t.debug&&U.log.level,!t.getProgramParameter(this.handle,35714))throw new Error(`Error linking: ${t.getProgramInfoLog(this.handle)}`);if(t.validateProgram(this.handle),!t.getProgramParameter(this.handle,35715))throw new Error(`Error validating: ${t.getProgramInfoLog(this.handle)}`)}_areTexturesRenderable(){let t=!0;for(let[,r]of Object.entries(this.bindings))r instanceof N&&(r.update(),t=t&&r.loaded);return t}_applyBindings(){this.device.gl.useProgram(this.handle);let{gl2:t}=this.device;if(!t)throw new Error("bindings");let r=0,i=0;for(let n of this.shaderLayout.bindings){let o=this.bindings[n.name]||this.bindings[n.name.replace(/Uniforms$/,"")];if(!o)throw new Error(`No value for binding ${n.name} in ${this.id}`);switch(n.type){case"uniform":let{name:s}=n,a=t.getUniformBlockIndex(this.handle,s);if(a===4294967295)throw new Error(`Invalid uniform block name ${s}`);t.uniformBlockBinding(this.handle,i,a),o instanceof V?t.bindBufferBase(35345,i,o.handle):t.bindBufferRange(35345,i,o.buffer.handle,o.offset||0,o.size||o.buffer.byteLength-o.offset),i+=1;break;case"texture":if(!(o instanceof N||o instanceof te))throw new Error("texture");let f;if(o instanceof N)f=o;else if(o instanceof te&&o.colorAttachments[0]instanceof N)U.log.warn("Passing framebuffer in texture binding may be deprecated. Use fbo.colorAttachments[0] instead")(),f=o.colorAttachments[0];else throw new Error("No texture");t.activeTexture(33984+r),t.bindTexture(f.target,f.handle),r+=1;break;case"sampler":break;case"storage":case"read-only-storage":throw new Error(`binding type '${n.type}' not supported in WebGL`)}}}_applyUniforms(){for(let r of this.shaderLayout.uniforms||[]){var t;let{name:i,location:n,type:o,textureUnit:s}=r,a=(t=this.uniforms[i])!==null&&t!==void 0?t:s;a!==void 0&&Yn(this.device.gl,n,o,a)}}};var Gn=T(E(),1);var Wt=T(E(),1);var kt=class extends Wt.CommandBuffer{constructor(t){super(t,{}),this.device=void 0,this.commands=[],this.device=t}submitCommands(){let t=arguments.length>0&&arguments[0]!==void 0?arguments[0]:this.commands;for(let r of t)switch(r.name){case"copy-buffer-to-buffer":Jf(this.device,r.options);break;case"copy-buffer-to-texture":Gf(this.device,r.options);break;case"copy-texture-to-buffer":el(this.device,r.options);break;case"copy-texture-to-texture":tl(this.device,r.options);break}}};function Jf(e,t){let r=t.source,i=t.destination,n=e.assertWebGL2();if(n){var o,s;n.bindBuffer(36662,r.handle),n.bindBuffer(36663,i.handle),n.copyBufferSubData(36662,36663,(o=t.sourceOffset)!==null&&o!==void 0?o:0,(s=t.destinationOffset)!==null&&s!==void 0?s:0,t.size),n.bindBuffer(36662,null),n.bindBuffer(36663,null)}else throw new Error("copyBufferToBuffer not implemented in WebGL1")}function Gf(e,t){throw new Error("Not implemented")}function el(e,t){let{source:r,mipLevel:i=0,aspect:n="all",width:o=t.source.width,height:s=t.source.height,depthOrArrayLayers:a=0,origin:f=[0,0],destination:l,byteOffset:c=0,bytesPerRow:u,rowsPerImage:_}=t;if(n!=="all")throw new Error("not supported");if(i!==0||a!==0||u||_)throw new Error("not implemented");let d=e.assertWebGL2(),{framebuffer:p,destroyFramebuffer:g}=Jn(r);try{let h=l,R=o||p.width,A=s||p.height,m=Pe(p.texture.format,!0),B=m.dataFormat,X=m.type;d.bindBuffer(35051,h.handle),d.bindFramebuffer(36160,p.handle),d.readPixels(f[0],f[1],R,A,B,X,c)}finally{d.bindBuffer(35051,null),d.bindFramebuffer(36160,null),g&&p.destroy()}}function tl(e,t){let{source:r,origin:i=[0,0],destination:n}=t,{width:o=t.destination.width,height:s=t.destination.width}=t,a=0,f=6408,{framebuffer:l,destroyFramebuffer:c}=Jn(r),[u,_]=i,d=!1;e.gl.bindFramebuffer(36160,l.handle);let p=null,g;if(n instanceof N)p=n,o=Number.isFinite(o)?o:p.width,s=Number.isFinite(s)?s:p.height,p.bind(0),g=p.destination;else throw new Error("whoops");return d||e.gl.copyTexImage2D(g,a,f,u,_,o,s,0),p&&p.unbind(),c&&l.destroy(),p}function Jn(e){if(e instanceof Wt.Texture){let{width:t,height:r,id:i}=e;return{framebuffer:e.device.createFramebuffer({id:`framebuffer-for-${i}`,width:t,height:r,colorAttachments:[e]}),destroyFramebuffer:!0}}return{framebuffer:e,destroyFramebuffer:!1}}var Ht=class extends Gn.CommandEncoder{constructor(t,r){super(t,r),this.device=void 0,this.commandBuffer=void 0,this.device=t,this.commandBuffer=new kt(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 Ce=T(E(),1);var eo;eo=Symbol.toStringTag;var Ie=class extends Ce.VertexArray{get[eo](){return"VertexArray"}static isConstantAttributeZeroSupported(t){return t.info.type==="webgl2"||Et()==="Chrome"}constructor(t,r){super(t,r),this.device=void 0,this.handle=void 0,this.buffer=null,this.bufferValue=null,this.init=!1,this.device=t,this.handle=this.device.gl2.createVertexArray()}destroy(){if(super.destroy(),this.buffer){var t;(t=this.buffer)===null||t===void 0||t.destroy()}this.handle&&(this.device.gl2.deleteVertexArray(this.handle),this.handle=void 0)}setIndexBuffer(t){let r=t;if(r&&r.glTarget!==34963)throw new Error("Use .setBuffer()");this.device.gl2.bindVertexArray(this.handle),this.device.gl2.bindBuffer(34963,r?r.handle:null),this.indexBuffer=r}setBuffer(t,r){let i=r;if(i.glTarget===34963)throw new Error("Use .setIndexBuffer()");let{size:n,type:o,stride:s,offset:a,normalized:f,integer:l,divisor:c}=this._getAccessor(t);this.device.gl2.bindVertexArray(this.handle),this.device.gl.bindBuffer(34962,i.handle),l?(this.device.assertWebGL2(),this.device.gl2.vertexAttribIPointer(t,n,o,s,a)):this.device.gl.vertexAttribPointer(t,n,o,f,s,a),this.device.gl.enableVertexAttribArray(t),this.device.gl2.vertexAttribDivisor(t,c||0),this.attributes[t]=i}setConstant(t,r){this._enable(t,!1),this.attributes[t]=r}bindBeforeRender(){if(this.device.gl2.bindVertexArray(this.handle),!this.init){let t=this.indexBuffer;this.device.gl2.bindBuffer(34963,t?.handle||null),this.init=!0}this._applyConstantAttributes()}unbindAfterRender(){this.device.gl2.bindVertexArray(null)}_applyConstantAttributes(){for(let t=0;t<this.maxVertexAttributes;++t){let r=this.attributes[t];ArrayBuffer.isView(r)&&this.device.setConstantAttribute(t,r)}}_getAccessor(t){let r=this.attributeInfos[t];if(!r)throw new Error(`Unknown attribute location ${t}`);let i=St(r.bufferDataType);return{size:r.bufferComponents,type:i,stride:r.byteStride,offset:r.byteOffset,normalized:r.normalized,integer:r.integer,divisor:r.stepMode==="instance"?1:0}}_enable(t){let r=arguments.length>1&&arguments[1]!==void 0?arguments[1]:!0,n=Ie.isConstantAttributeZeroSupported(this.device)||t!==0;(r||n)&&(t=Number(t),this.device.gl2.bindVertexArray(this.handle),r?this.device.gl.enableVertexAttribArray(t):this.device.gl.disableVertexAttribArray(t),this.device.gl2.bindVertexArray(null))}getConstantBuffer(t,r){let i=rl(r),n=i.byteLength*t,o=i.length*t;if(this.buffer&&n!==this.buffer.byteLength)throw new Error(`Buffer size is immutable, byte length ${n} !== ${this.buffer.byteLength}.`);let s=!this.buffer;if(this.buffer=this.buffer||this.device.createBuffer({byteLength:n}),s=s||!il(i,this.bufferValue),s){let a=(0,Ce.getScratchArray)(r.constructor,o);(0,Ce.fillArray)({target:a,source:i,start:0,count:o}),this.buffer.write(a),this.bufferValue=r}return this.buffer}};function rl(e){return Array.isArray(e)?new Float32Array(e):e}function il(e,t){if(!e||!t||e.length!==t.length||e.constructor!==t.constructor)return!1;for(let r=0;r<e.length;++r)if(e[r]!==t[r])return!1;return!0}var Lt=T(E(),1);var Xt=class extends Lt.TransformFeedback{constructor(t,r){super(t,r),this.device=void 0,this.gl2=void 0,this.handle=void 0,this.layout=void 0,this.buffers={},this.unusedBuffers={},this.bindOnUse=!0,this._bound=!1,t.assertWebGL2(),this.device=t,this.gl2=t.gl2,this.handle=this.props.handle||this.gl2.createTransformFeedback(),this.layout=this.props.layout,r.buffers&&this.setBuffers(r.buffers),Object.seal(this)}destroy(){this.gl2.deleteTransformFeedback(this.handle),super.destroy()}begin(){let t=arguments.length>0&&arguments[0]!==void 0?arguments[0]:"point-list";this.gl2.bindTransformFeedback(36386,this.handle),this.bindOnUse&&this._bindBuffers(),this.gl2.beginTransformFeedback(qn(t))}end(){this.gl2.endTransformFeedback(),this.bindOnUse||this._unbindBuffers(),this.gl2.bindTransformFeedback(36386,null)}setBuffers(t){this.buffers={},this.unusedBuffers={},this.bind(()=>{for(let r in t)this.setBuffer(r,t[r])})}setBuffer(t,r){let i=this._getVaryingIndex(t),{buffer:n,byteLength:o,byteOffset:s}=this._getBufferRange(r);if(i<0){this.unusedBuffers[t]=n,Lt.log.warn(`${this.id} unusedBuffers varying buffer ${t}`)();return}this.buffers[i]={buffer:n,byteLength:o,byteOffset:s},this.bindOnUse||this._bindBuffer(i,n,s,o)}getBuffer(t){if(to(t))return this.buffers[t]||null;let r=this._getVaryingIndex(t);return r>=0?this.buffers[r]:null}bind(){let t=arguments.length>0&&arguments[0]!==void 0?arguments[0]:this.handle;if(typeof t!="function")return this.gl2.bindTransformFeedback(36386,t),this;let r;return this._bound?r=t():(this.gl2.bindTransformFeedback(36386,this.handle),this._bound=!0,r=t(),this._bound=!1,this.gl2.bindTransformFeedback(36386,null)),r}unbind(){this.bind(null)}_getBufferRange(t){if(t instanceof V)return{buffer:t,byteOffset:0,byteLength:t.byteLength};let{buffer:r,byteOffset:i=0,byteLength:n=t.buffer.byteLength}=t;return{buffer:r,byteOffset:i,byteLength:n}}_getVaryingIndex(t){if(to(t))return Number(t);for(let r of this.layout.varyings)if(t===r.name)return r.location;return-1}_bindBuffers(){for(let t in this.buffers){let{buffer:r,byteLength:i,byteOffset:n}=this._getBufferRange(this.buffers[t]);this._bindBuffer(Number(t),r,n,i)}}_unbindBuffers(){for(let t in this.buffers)this.gl2.bindBufferBase(35982,Number(t),null)}_bindBuffer(t,r){let i=arguments.length>2&&arguments[2]!==void 0?arguments[2]:0,n=arguments.length>3?arguments[3]:void 0,o=r&&r.handle;!o||n===void 0?this.gl2.bindBufferBase(35982,t,o):this.gl2.bindBufferRange(35982,t,o,i,n)}};function to(e){return typeof e=="number"?Number.isInteger(e):/^\d+$/.test(e)}var tt=1,M=class extends O.Device{static isSupported(){return typeof WebGLRenderingContext<"u"||ki()}get features(){return this._features=this._features||Rn(this.gl),this._features}get limits(){return this._limits=this._limits||En(this.gl),this._limits}static attach(t){if(t instanceof M)return t;if(t?.device instanceof O.Device)return t.device;if(!nl(t))throw new Error("Invalid WebGLRenderingContext");return new M({gl:t})}static async create(){let t=arguments.length>0&&arguments[0]!==void 0?arguments[0]:{};O.log.groupCollapsed(tt,"WebGLDevice created")(),typeof t.canvas=="string"&&await O.CanvasContext.pageLoaded,(O.log.get("debug")||t.debug)&&await wn();let{spector:r}=t;if((O.log.get("spector")||r)&&await Nn(),O.log.probe(tt+1,"DOM is loaded")(),t.gl&&t.gl.device)return M.attach(t.gl);let i=new M(t),n=`Created ${i.info.type}${i.debug?" debug":""} context: ${i.info.vendor}, ${i.info.renderer} for canvas: ${i.canvasContext.id}`;return O.log.probe(tt,n)(),O.log.table(tt,i.info)(),O.log.groupEnd(tt)(),i}constructor(t){var r;super({...t,id:t.id||(0,O.uid)("webgl-device")}),this.info=void 0,this.canvasContext=void 0,this.handle=void 0,this.lost=void 0,this._resolveContextLost=void 0,this._features=void 0,this._limits=void 0,this.renderPass=null,this.gl=void 0,this.gl2=null,this.debug=!1,this.isWebGL1=void 0,this.isWebGL2=void 0,this._canvasSizeInfo={clientWidth:0,clientHeight:0,devicePixelRatio:1},this._extensions={},this._polyfilled=!1,this.spector=void 0,this._webglLimits=void 0,this._constants=void 0;let i=(r=t.gl)===null||r===void 0?void 0:r.device;if(i)throw new Error(`WebGL context already attached to device ${i.id}`);this.canvasContext=new Bt(this,t),this.lost=new Promise(f=>{this._resolveContextLost=f});let n=f=>{var l;return(l=this._resolveContextLost)===null||l===void 0?void 0:l.call(this,{reason:"destroyed",message:"Computer entered sleep mode, or too many apps or browser tabs are using the GPU."})},o=t.gl||null;if(o=o||(L()?fn(this.canvasContext.canvas,{...t,onContextLost:n}):null),o=o||(L()?null:Wi({...t,onContextLost:n})),!o)throw new Error("WebGL context creation failed");this.handle=o,this.gl=this.handle,this.gl2=this.gl,this.isWebGL2=ol(this.gl),this.isWebGL1=!this.isWebGL2,this.info=ln(this.gl),this.gl.device=this,this.gl._version=this.isWebGL2?2:1,Ji(this.gl);let{enable:s=!0,copyState:a=!1}=t;if(zr(this.gl,{enable:s,copyState:a,log:function(){for(var f=arguments.length,l=new Array(f),c=0;c<f;c++)l[c]=arguments[c];return O.log.log(1,...l)()}}),L()&&t.debug&&(this.gl=Un(this.gl,{...t,webgl2:this.isWebGL2,throwOnError:!0}),this.gl2=this.gl,this.debug=!0,O.log.level=Math.max(O.log.level,1),O.log.warn("WebGL debug mode activated. Performance reduced.")()),L()&&t.spector){let f=this.handle.canvas||t.canvas;this.spector=Bn({...this.props,canvas:f})}}destroy(){let t=this.gl.getExtension("STACKGL_destroy_context");t&&t.destroy()}get isLost(){return this.gl.isContextLost()}getSize(){return[this.gl.drawingBufferWidth,this.gl.drawingBufferHeight]}isTextureFormatSupported(t){return qe(this.gl,t)}isTextureFormatFilterable(t){return hn(this.gl,t)}isTextureFormatRenderable(t){return gn(this.gl,t)}assertWebGL2(){if(!this.gl2)throw new Error("Requires WebGL2");return this.gl2}createCanvasContext(t){throw new Error("WebGL only supports a single canvas")}createBuffer(t){let r=this._getBufferProps(t);return new V(this,r)}_createTexture(t){return new N(this,t)}createExternalTexture(t){throw new Error("createExternalTexture() not implemented")}createSampler(t){return new ve(this,t)}createShader(t){return new Dt(this,t)}createFramebuffer(t){return new te(this,t)}createRenderPipeline(t){return new Vt(this,t)}createVertexArray(t){return new Ie(this,t)}beginRenderPass(t){return new wt(this,t)}createComputePipeline(t){throw new Error("ComputePipeline not supported in WebGL")}beginComputePass(t){throw new Error("ComputePass not supported in WebGL")}createTransformFeedback(t){return new Xt(this,t)}getDefaultRenderPass(){return this.renderPass=this.renderPass||this.beginRenderPass({framebuffer:this.canvasContext.getCurrentFramebuffer()}),this.renderPass}createCommandEncoder(t){return new Ht(this,t)}submit(){var t;(t=this.renderPass)===null||t===void 0||t.end(),this.renderPass=null}get webglLimits(){return this._webglLimits=this._webglLimits||vn(this.gl),this._webglLimits}loseDevice(){var t;let r=!1,i=this.gl.getExtension("WEBGL_lose_context");return i&&(r=!0,i.loseContext()),(t=this._resolveContextLost)===null||t===void 0||t.call(this,{reason:"destroyed",message:"Application triggered context loss"}),r}pushState(){_e(this.gl)}popState(){se(this.gl)}setSpectorMetadata(t,r){t.__SPECTOR_Metadata=r}getGLKey(t,r){r=r||this.gl2||this.gl;let i=Number(t);for(let n in r)if(r[n]===i)return`GL.${n}`;return String(t)}setConstantAttribute(t,r){this._constants=this._constants||new Array(this.limits.maxVertexAttributes).fill(null);let i=this._constants[t];switch(i&&ll(i,r)&&O.log.info(1,`setConstantAttribute(${t}) could have been skipped, value unchanged`)(),this._constants[t]=r,r.constructor){case Float32Array:sl(this,t,r);break;case Int32Array:al(this,t,r);break;case Uint32Array:fl(this,t,r);break;default:(0,O.assert)(!1)}}};M.type="webgl";function nl(e){return typeof WebGLRenderingContext<"u"&&e instanceof WebGLRenderingContext||typeof WebGL2RenderingContext<"u"&&e instanceof WebGL2RenderingContext?!0:Boolean(e&&Number.isFinite(e._version))}function ol(e){return typeof WebGL2RenderingContext<"u"&&e instanceof WebGL2RenderingContext?!0:Boolean(e&&e._version===2)}function sl(e,t,r){switch(r.length){case 1:e.gl.vertexAttrib1fv(t,r);break;case 2:e.gl.vertexAttrib2fv(t,r);break;case 3:e.gl.vertexAttrib3fv(t,r);break;case 4:e.gl.vertexAttrib4fv(t,r);break;default:(0,O.assert)(!1)}}function al(e,t,r){var i;e.assertWebGL2(),(i=e.gl2)===null||i===void 0||i.vertexAttribI4iv(t,r)}function fl(e,t,r){var i;e.assertWebGL2(),(i=e.gl2)===null||i===void 0||i.vertexAttribI4uiv(t,r)}function ll(e,t){if(!e||!t||e.length!==t.length||e.constructor!==t.constructor)return!1;for(let r=0;r<e.length;++r)if(e[r]!==t[r])return!1;return!0}var ro=T(E(),1);var cl=256,ul=1024,_l=16384;var dl="clear: bad arguments";function ii(e,t){let r=M.attach(e),{framebuffer:i=null,color:n=null,depth:o=null,stencil:s=null}=t||{},a={};i&&(a.framebuffer=i);let f=0;n&&(f|=_l,n!==!0&&(a.clearColor=n)),o&&(f|=cl,o!==!0&&(a.clearDepth=o)),s&&(f|=ul,o!==!0&&(a.clearStencil=o)),(0,ro.assert)(f!==0,dl),P(r.gl,a,()=>{r.gl.clear(f)})}var rt=T(E(),1);var io=T(E(),1);function no(e){switch(e){case 6406:case 33326:case 6403:return 1;case 33328:case 33319:return 2;case 6407:case 34837:return 3;case 6408:case 34836:return 4;default:return(0,io.assert)(!1),0}}function ni(e,t){var r;let{sourceX:i=0,sourceY:n=0,sourceFormat:o=6408,sourceAttachment:s=36064}=t||{},{target:a=null,sourceWidth:f,sourceHeight:l,sourceType:c}=t||{},{framebuffer:u,deleteFramebuffer:_}=pl(e);(0,rt.assert)(u);let{gl:d,handle:p}=u;f=f||u.width,l=l||u.height;let g=s-36064;c=c||((r=u.colorAttachments[g])===null||r===void 0?void 0:r.type)||5121,a=gl(a,c,o,f,l),c=c||Xn(a);let h=d.bindFramebuffer(36160,p);return d.readPixels(i,n,f,l,o,c,a),d.bindFramebuffer(36160,h||null),_&&u.destroy(),a}function pl(e){return e instanceof rt.Framebuffer?{framebuffer:e,deleteFramebuffer:!1}:{framebuffer:hl(e),deleteFramebuffer:!0}}function hl(e,t){let{device:r,width:i,height:n,id:o}=e;return r.createFramebuffer({...t,id:`framebuffer-for-${o}`,width:i,height:n,colorAttachments:[e]})}function gl(e,t,r,i,n){if(e)return e;t=t||5121;let o=et(t,{clamped:!1}),s=no(r);return new o(i*n*s)}var as=T(S());function oo(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var i=Object.getOwnPropertySymbols(e);t&&(i=i.filter(function(n){return Object.getOwnPropertyDescriptor(e,n).enumerable})),r.push.apply(r,i)}return r}function so(e){for(var t=1;t<arguments.length;t++){var r=arguments[t]!=null?arguments[t]:{};t%2?oo(Object(r),!0).forEach(function(i){Tl(e,i,r[i])}):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(r)):oo(Object(r)).forEach(function(i){Object.defineProperty(e,i,Object.getOwnPropertyDescriptor(r,i))})}return e}function Tl(e,t,r){return t in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r,e}var ao=`
74
73
  uniform DATAFILTER_TYPE filter_min;
75
74
  uniform DATAFILTER_TYPE filter_softMin;
76
75
  uniform DATAFILTER_TYPE filter_softMax;
@@ -87,15 +86,15 @@ uniform bool filter_transformSize;
87
86
  #define DATAFILTER_ATTRIB_64LOW instanceFilterValues64Low
88
87
  #endif
89
88
 
90
- attribute DATAFILTER_TYPE DATAFILTER_ATTRIB;
89
+ in DATAFILTER_TYPE DATAFILTER_ATTRIB;
91
90
  #ifdef DATAFILTER_DOUBLE
92
- attribute DATAFILTER_TYPE DATAFILTER_ATTRIB_64LOW;
91
+ in DATAFILTER_TYPE DATAFILTER_ATTRIB_64LOW;
93
92
 
94
93
  uniform DATAFILTER_TYPE filter_min64High;
95
94
  uniform DATAFILTER_TYPE filter_max64High;
96
95
  #endif
97
96
 
98
- varying float dataFilter_value;
97
+ out float dataFilter_value;
99
98
 
100
99
  float dataFilter_reduceValue(float value) {
101
100
  return value;
@@ -125,10 +124,10 @@ void dataFilter_setValue(DATAFILTER_TYPE valueFromMin, DATAFILTER_TYPE valueFrom
125
124
  dataFilter_value = 1.0;
126
125
  }
127
126
  }
128
- `,ao=`
127
+ `,fo=`
129
128
  uniform bool filter_transformColor;
130
- varying float dataFilter_value;
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":`
129
+ in float dataFilter_value;
130
+ `;function lo(e){if(!e||!("extensions"in e))return{};var t=e.filterRange,r=t===void 0?[-1,1]:t,i=e.filterEnabled,n=i===void 0?!0:i,o=e.filterTransformSize,s=o===void 0?!0:o,a=e.filterTransformColor,f=a===void 0?!0:a,l=e.filterSoftRange||r;return so(so({},Number.isFinite(r[0])?{filter_min:r[0],filter_softMin:l[0],filter_softMax:l[1],filter_max:r[1]}:{filter_min:r.map(function(c){return c[0]}),filter_softMin:l.map(function(c){return c[0]}),filter_softMax:l.map(function(c){return c[1]}),filter_max:r.map(function(c){return c[1]})}),{},{filter_enabled:n,filter_useSoftMargin:Boolean(e.filterSoftRange),filter_transformSize:n&&s,filter_transformColor:n&&f})}function Al(e){if(!e||!("extensions"in e))return{};var t=lo(e);if(Number.isFinite(t.filter_min)){var r=Math.fround(t.filter_min);t.filter_min-=r,t.filter_softMin-=r,t.filter_min64High=r;var i=Math.fround(t.filter_max);t.filter_max-=i,t.filter_softMax-=i,t.filter_max64High=i}else{var n=t.filter_min.map(Math.fround);t.filter_min=t.filter_min.map(function(s,a){return s-n[a]}),t.filter_softMin=t.filter_softMin.map(function(s,a){return s-n[a]}),t.filter_min64High=n;var o=t.filter_max.map(Math.fround);t.filter_max=t.filter_max.map(function(s,a){return s-o[a]}),t.filter_softMax=t.filter_softMax.map(function(s,a){return s-o[a]}),t.filter_max64High=o}return t}var co={"vs:#main-start":`
132
131
  #ifdef DATAFILTER_DOUBLE
133
132
  dataFilter_setValue(
134
133
  DATAFILTER_ATTRIB - filter_min64High + DATAFILTER_ATTRIB_64LOW,
@@ -150,11 +149,11 @@ varying float dataFilter_value;
150
149
  if (filter_transformColor) {
151
150
  color.a *= dataFilter_value;
152
151
  }
153
- `},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`\
152
+ `},uo={name:"data-filter",vs:ao,fs:fo,inject:co,getUniforms:lo},_o={name:"data-filter-fp64",vs:ao,fs:fo,inject:co,getUniforms:Al};var Zt=T(E(),1),C=T(E(),1),Go=T(E(),1);var I=e=>`${e}`;function ie(e,t){if(!e)throw new Error(t||"shadertools: assertion failed.")}var oi={number:{type:"number",validate(e,t){return Number.isFinite(e)&&typeof t=="object"&&(t.max===void 0||e<=t.max)&&(t.min===void 0||e>=t.min)}},array:{type:"array",validate(e,t){return Array.isArray(e)||ArrayBuffer.isView(e)}}};function ho(e){let t={};for(let[r,i]of Object.entries(e))t[r]=Rl(i);return t}function go(e,t,r){let i={};for(let[n,o]of Object.entries(t))e&&n in e&&!o.private?(o.validate&&ie(o.validate(e[n],o),`${r}: invalid ${n}`),i[n]=e[n]):i[n]=o.value;return i}function Rl(e){let t=po(e);if(t!=="object")return{value:e,...oi[t],type:t};if(typeof e=="object")return e?e.type!==void 0?{...e,...oi[e.type],type:e.type}:e.value===void 0?{type:"object",value:e}:(t=po(e.value),{...e,...oi[t],type:t}):{type:"object",value:null};throw new Error("props")}function po(e){return Array.isArray(e)||ArrayBuffer.isView(e)?"array":typeof e}var To=I`\
154
153
  #ifdef MODULE_LOGDEPTH
155
154
  logdepth_adjustPosition(gl_Position);
156
155
  #endif
157
- `,To=U`\
156
+ `,Ao=I`\
158
157
  #ifdef MODULE_MATERIAL
159
158
  gl_FragColor = material_filterColor(gl_FragColor);
160
159
  #endif
@@ -175,23 +174,25 @@ varying float dataFilter_value;
175
174
  #ifdef MODULE_LOGDEPTH
176
175
  logdepth_setFragDepth();
177
176
  #endif
178
- `;var 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(`
177
+ `;var bl={vertex:To,fragment:Ao},Ro=/void\s+main\s*\([^)]*\)\s*\{\n?/,bo=/}\n?[^{}]*$/,si=[],it="__LUMA_INJECT_DECLARATIONS__";function Eo(e){let t={vertex:{},fragment:{}};for(let r in e){let i=e[r],n=El(r);typeof i=="string"&&(i={order:0,injection:i}),t[n][r]=i}return t}function El(e){let t=e.slice(0,2);switch(t){case"vs":return"vertex";case"fs":return"fragment";default:throw new Error(t)}}function nt(e,t,r){let i=arguments.length>3&&arguments[3]!==void 0?arguments[3]:!1,n=t==="vertex";for(let o in r){let s=r[o];s.sort((f,l)=>f.order-l.order),si.length=s.length;for(let f=0,l=s.length;f<l;++f)si[f]=s[f].injection;let a=`${si.join(`
179
178
  `)}
180
- `;switch(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
- ${r}// END MODULE_${this.name}
179
+ `;switch(o){case"vs:#decl":n&&(e=e.replace(it,a));break;case"vs:#main-start":n&&(e=e.replace(Ro,f=>f+a));break;case"vs:#main-end":n&&(e=e.replace(bo,f=>a+f));break;case"fs:#decl":n||(e=e.replace(it,a));break;case"fs:#main-start":n||(e=e.replace(Ro,f=>f+a));break;case"fs:#main-end":n||(e=e.replace(bo,f=>a+f));break;default:e=e.replace(o,f=>f+a)}}return e=e.replace(it,""),i&&(e=e.replace(/\}\s*$/,o=>o+bl[t])),e}var vl=1,Y=class{static instantiateModules(t){return t.map(r=>{if(r instanceof Y)return r;ie(typeof r!="string",`Shader module use by name is deprecated. Import shader module '${JSON.stringify(r)}' and use it directly.`),r.name||(console.warn("shader module has no name"),r.name=`shader-module-${vl++}`);let i=new Y(r);return i.dependencies=Y.instantiateModules(r.dependencies||[]),i})}constructor(t){this.name=void 0,this.vs=void 0,this.fs=void 0,this.getModuleUniforms=void 0,this.dependencies=void 0,this.deprecations=void 0,this.defines=void 0,this.injections=void 0,this.uniforms={},this.uniformTypes={};let{name:r,vs:i,fs:n,dependencies:o=[],uniformPropTypes:s={},getUniforms:a,deprecations:f=[],defines:l={},inject:c={}}=t;ie(typeof r=="string"),this.name=r,this.vs=i,this.fs=n,this.getModuleUniforms=a,this.dependencies=Y.instantiateModules(o),this.deprecations=this._parseDeprecationDefinitions(f),this.defines=l,this.injections=Eo(c),s&&(this.uniforms=ho(s))}getModuleSource(t){let r;switch(t){case"vertex":r=this.vs||"";break;case"fragment":r=this.fs||"";break;default:ie(!1)}let i=this.name.toUpperCase().replace(/[^0-9a-z]/gi,"_");return`// ----- MODULE ${this.name} ---------------
182
180
 
183
- `}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`\
181
+ #define MODULE_${i}
182
+ ${r}
183
+
184
+ `}getUniforms(t,r){return this.getModuleUniforms?this.getModuleUniforms(t,r):go(t,this.uniforms,this.name)}getDefines(){return this.defines}checkDeprecations(t,r){this.deprecations.forEach(i=>{var n;(n=i.regex)!==null&&n!==void 0&&n.test(t)&&(i.deprecated?r.deprecated(i.old,i.new)():r.removed(i.old,i.new)())})}_parseDeprecationDefinitions(t){return t.forEach(r=>{switch(r.type){case"function":r.regex=new RegExp(`\\b${r.old}\\(`);break;default:r.regex=new RegExp(`${r.type} ${r.old};`)}}),t}_defaultGetUniforms(){let t=arguments.length>0&&arguments[0]!==void 0?arguments[0]:{},r={},i=this.uniforms;for(let n in i){let o=i[n];n in t&&!o.private?(o.validate&&ie(o.validate(t[n],o),`${this.name}: invalid ${n}`),r[n]=t[n]):r[n]=o.value}return r}};function ot(e){let t=Y.instantiateModules(e);return ml(t)}function ml(e){let t={},r={};return vo({modules:e,level:0,moduleMap:t,moduleDepth:r}),Object.keys(r).sort((i,n)=>r[n]-r[i]).map(i=>t[i])}function vo(e){let{modules:t,level:r,moduleMap:i,moduleDepth:n}=e;if(r>=5)throw new Error("Possible loop in shader dependency graph");for(let o of t)i[o.name]=o,(n[o.name]===void 0||n[o.name]<r)&&(n[o.name]=r);for(let o of t)o.dependencies&&vo({modules:o.dependencies,level:r+1,moduleMap:i,moduleDepth:n})}function mo(e){switch(e?.gpu.toLowerCase()){case"apple":return I`\
184
185
  #define APPLE_GPU
185
186
  // Apple optimizes away the calculation necessary for emulated fp64
186
187
  #define LUMA_FP64_CODE_ELIMINATION_WORKAROUND 1
187
188
  #define LUMA_FP32_TAN_PRECISION_WORKAROUND 1
188
189
  // Intel GPU doesn't have full 32 bits precision in same cases, causes overflow
189
190
  #define LUMA_FP64_HIGH_BITS_OVERFLOW_WORKAROUND 1
190
- `;case"nvidia":return U`\
191
+ `;case"nvidia":return I`\
191
192
  #define NVIDIA_GPU
192
193
  // Nvidia optimizes away the calculation necessary for emulated fp64
193
194
  #define LUMA_FP64_CODE_ELIMINATION_WORKAROUND 1
194
- `;case"intel":return U`\
195
+ `;case"intel":return I`\
195
196
  #define INTEL_GPU
196
197
  // Intel optimizes away the calculation necessary for emulated fp64
197
198
  #define LUMA_FP64_CODE_ELIMINATION_WORKAROUND 1
@@ -199,9 +200,9 @@ ${r}// END MODULE_${this.name}
199
200
  #define LUMA_FP32_TAN_PRECISION_WORKAROUND 1
200
201
  // Intel GPU doesn't have full 32 bits precision in same cases, causes overflow
201
202
  #define LUMA_FP64_HIGH_BITS_OVERFLOW_WORKAROUND 1
202
- `;case"amd":return U`\
203
+ `;case"amd":return I`\
203
204
  #define AMD_GPU
204
- `;default:return U`\
205
+ `;default:return I`\
205
206
  #define DEFAULT_GPU
206
207
  // Prevent driver from optimizing away the calculation necessary for emulated fp64
207
208
  #define LUMA_FP64_CODE_ELIMINATION_WORKAROUND 1
@@ -209,116 +210,71 @@ ${r}// END MODULE_${this.name}
209
210
  #define LUMA_FP32_TAN_PRECISION_WORKAROUND 1
210
211
  // If the GPU doesn't have full 32 bits precision, will causes overflow
211
212
  #define LUMA_FP64_HIGH_BITS_OVERFLOW_WORKAROUND 1
212
- `}}function bo(e){let t=U`\
213
- #if (__VERSION__ > 120)
213
+ `}}function So(e){let t="";return e.features.has("webgl2")&&(t+=I`\
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
- #endif // __VERSION
219
- `;return!e.features.has("webgl2")&&e.features.has("glsl-frag-depth")&&(t+=U`\
218
+ `),e.features.has("webgl2")||(e.features.has("glsl-frag-depth")&&(t+=I`\
220
219
 
221
- // FRAG_DEPTH => gl_FragDepth is available
220
+ // FEATURE_GLSL_FRAG_DEPTH => gl_FragDepth is available
222
221
  #ifdef GL_EXT_frag_depth
223
222
  # extension GL_EXT_frag_depth : enable
224
223
  # define FEATURE_GLSL_FRAG_DEPTH
225
224
  # define FRAG_DEPTH
226
225
  # define gl_FragDepth gl_FragDepthEXT
227
226
  #endif
228
- `),!e.features.has("webgl2")&&e!==null&&e!==void 0&&e.features.has("glsl-derivatives")&&(t+=U`\
227
+ `),e!=null&&e.features.has("glsl-derivatives")&&(t+=I`\
229
228
 
230
- // DERIVATIVES => dxdF, dxdY and fwidth are available
229
+ // FEATURE_GLSL_DERIVATIVES => dxdF, dxdY and fwidth are available
231
230
  #if defined(GL_OES_standard_derivatives) || defined(FEATURE_GLSL_DERIVATIVES)
232
231
  # extension GL_OES_standard_derivatives : enable
233
232
  # define FEATURE_GLSL_DERIVATIVES
234
- # define DERIVATIVES
235
233
  #endif
236
- `),!e.features.has("webgl2")&&e!==null&&e!==void 0&&e.features.has("glsl-frag-data")&&(t+=U`\
234
+ `),e!=null&&e.features.has("glsl-frag-data")&&(t+=I`\
237
235
 
238
- // DRAW_BUFFERS => gl_FragData[] is available
236
+ // FEATURE_GLSL_DRAW_BUFFERS => gl_FragData[] is available
239
237
  #ifdef GL_EXT_draw_buffers
240
238
  # extension GL_EXT_draw_buffers : require
241
239
  # define FEATURE_GLSL_DRAW_BUFFERS
242
- # define DRAW_BUFFERS
243
240
  #endif
244
- `),!e.features.has("webgl2")&&e!==null&&e!==void 0&&e.features.has("glsl-texture-lod")&&(t+=U`\
241
+ `),e!=null&&e.features.has("glsl-texture-lod")&&(t+=I`\
245
242
  // TEXTURE_LOD => texture2DLod etc are available
246
243
  #ifdef GL_EXT_shader_texture_lod
247
244
  # extension GL_EXT_shader_texture_lod : enable
248
245
  # define FEATURE_GLSL_TEXTURE_LOD
249
246
  # define TEXTURE_LOD
250
247
  #endif
251
- `),t}function 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
- `,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
- `}o.footer&&(r+=` ${o.footer}`),r+=`}
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
-
258
- ${ot}
259
-
260
- `,yf=U`\
248
+ `)),t}function Oo(e,t,r){var i;if(Number(((i=e.match(/^#version[ \t]+(\d+)/m))===null||i===void 0?void 0:i[1])||100)!==300)throw new Error("luma.gl v9 only supports GLSL 3.00 shader sources");switch(t){case 300:switch(r){case"vertex":return e=st(e,Sl),e;case"fragment":return e=st(e,yl),e;default:throw new Error(r)}case 100:switch(r){case"vertex":return e=st(e,Ol),e;case"fragment":return e=st(e,Fo),e=Pl(e),e;default:throw new Error(r)}default:throw new Error(String(t))}}var xo=[[/^(#version[ \t]+(100|300[ \t]+es))?[ \t]*\n/,`#version 300 es
249
+ `],[/\btexture(2D|2DProj|Cube)Lod(EXT)?\(/g,"textureLod("],[/\btexture(2D|2DProj|Cube)(EXT)?\(/g,"texture("]],Sl=[...xo,[Me("attribute"),"in $1"],[Me("varying"),"out $1"]],yl=[...xo,[Me("varying"),"in $1"]],Po=[[/^#version[ \t]+300[ \t]+es/,"#version 100"],[/\btexture(2D|2DProj|Cube)Lod\(/g,"texture$1LodEXT("],[/\btexture\(/g,"texture2D("],[/\btextureLod\(/g,"texture2DLodEXT("]],Ol=[...Po,[Me("in"),"attribute $1"],[Me("out"),"varying $1"]],Fo=[...Po,[Me("in"),"varying $1"]],xl="gl_FragColor",yo=/\bout[ \t]+vec4[ \t]+(\w+)[ \t]*;\n?/;function st(e,t){for(let[r,i]of t)e=e.replace(r,i);return e}function Pl(e){e=st(e,Fo);let t=yo.exec(e);if(t){let r=t[1];e=e.replace(yo,"").replace(new RegExp(`\\b${r}\\b`,"g"),xl)}return e}function Me(e){return new RegExp(`\\b${e}[ \\t]+(\\w+[ \\t]+\\w+(\\[\\w+\\])?;)`,"g")}function ai(e,t){let r="";for(let i in e){let n=e[i];if(r+=`void ${n.signature} {
250
+ `,n.header&&(r+=` ${n.header}`),t[i]){let o=t[i];o.sort((s,a)=>s.order-a.order);for(let s of o)r+=` ${s.injection}
251
+ `}n.footer&&(r+=` ${n.footer}`),r+=`}
252
+ `}return r}function fi(e){let t={vertex:{},fragment:{}};for(let r of e){let i,n;typeof r!="string"?(i=r,n=i.hook):(i={},n=r),n=n.trim();let[o,s]=n.split(":"),a=n.replace(/\(.+/,""),f=Object.assign(i,{signature:s});switch(o){case"vs":t.vertex[a]=f;break;case"fs":t.fragment[a]=f;break;default:throw new Error(o)}}return t}function Io(e,t){return{name:Fl(e,t),language:"glsl",version:Il(e)}}function Fl(e){let t=arguments.length>1&&arguments[1]!==void 0?arguments[1]:"unnamed",i=/#define[\s*]SHADER_NAME[\s*]([A-Za-z0-9_-]+)[\s*]/.exec(e);return i?i[1]:t}function Il(e){let t=100,r=e.match(/[^\s]+/g);if(r&&r.length>=2&&r[0]==="#version"){let i=parseInt(r[1],10);Number.isFinite(i)&&(t=i)}if(t!==100&&t!==300)throw new Error(`Invalid GLSL version ${t}`);return t}var Bo=`
253
+
254
+ ${it}
255
+ `,Cl=I`\
261
256
  precision highp float;
257
+ `;function Do(e){let{vs:t,fs:r}=e,i=ot(e.modules||[]);switch(e.platformInfo.shaderLanguage){case"glsl":return{vs:Mo(e.platformInfo,{...e,source:t,stage:"vertex",modules:i}),fs:Mo(e.platformInfo,{...e,source:r,stage:"fragment",modules:i}),getUniforms:No(i)};case"wgsl":return{vs:Co(e.platformInfo,{...e,source:t,stage:"vertex",modules:i}),fs:Co(e.platformInfo,{...e,source:r,stage:"fragment",modules:i}),getUniforms:No(i)}}}function Co(e,t){let{source:r,stage:i,modules:n,defines:o={},hookFunctions:s=[],inject:a={},log:f}=t;ie(typeof r=="string","shader source must be a string");let l=r,c={};n.forEach(h=>{Object.assign(c,h.getDefines())}),Object.assign(c,o);let u="",_=fi(s),d={},p={},g={};for(let h in a){let R=typeof a[h]=="string"?{injection:a[h],order:0}:a[h],A=/^(v|f)s:(#)?([\w-]+)$/.exec(h);if(A){let m=A[2],B=A[3];m?B==="decl"?p[h]=[R]:g[h]=[R]:d[h]=[R]}else g[h]=[R]}for(let h of n){f&&h.checkDeprecations(l,f);let R=h.getModuleSource(i,"wgsl");u+=R;let A=h.injections[i];for(let m in A){let B=/^(v|f)s:#([\w-]+)$/.exec(m);if(B){let q=B[2]==="decl"?p:g;q[m]=q[m]||[],q[m].push(A[m])}else d[m]=d[m]||[],d[m].push(A[m])}}return u+=Bo,u=nt(u,i,p),u+=ai(_[i],d),u+=l,u=nt(u,i,g),u}function Mo(e,t){let{id:r,source:i,stage:n,language:o="glsl",modules:s,defines:a={},hookFunctions:f=[],inject:l={},prologue:c=!0,log:u}=t;ie(typeof i=="string","shader source must be a string");let _=o==="glsl"?Io(i).version:-1,d=e.shaderLanguageVersion,p=_===100?"#version 100":"#version 300 es",h=i.split(`
258
+ `).slice(1).join(`
259
+ `),R={};s.forEach(D=>{Object.assign(R,D.getDefines())}),Object.assign(R,a);let A="";switch(o){case"wgsl":break;case"glsl":A=c?`${p}
262
260
 
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
- ${`#define SHADER_TYPE_${s.toUpperCase()}`}
268
- ${Oo(e)}
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
- #define SHADER_NAME ${t}_${n}
261
+ // ----- PROLOGUE -------------------------
262
+ ${Ml({id:r,source:i,stage:n})}
263
+ ${`#define SHADER_TYPE_${n.toUpperCase()}`}
264
+ ${mo(e)}
265
+ ${So(e)}
266
+ ${n==="fragment"?Cl:""}
275
267
 
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
- // APPLICATION DEFINES
278
- `),t++;let o=e[n];(o||Number.isFinite(o))&&(r+=`#define ${n.toUpperCase()} ${e[n]}
279
- `)}return t===0&&(r+=`
280
- `),r}function 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
268
+ // ----- APPLICATION DEFINES -------------------------
281
269
 
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;
270
+ ${Nl(R)}
292
271
 
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;
272
+ `:`${p}
273
+ `;break}let m=fi(f),B={},X={},q={};for(let D in l){let ce=typeof l[D]=="string"?{injection:l[D],order:0}:l[D],Z=/^(v|f)s:(#)?([\w-]+)$/.exec(D);if(Z){let W=Z[2],Se=Z[3];W?Se==="decl"?X[D]=[ce]:q[D]=[ce]:B[D]=[ce]}else q[D]=[ce]}for(let D of s){u&&D.checkDeprecations(h,u);let ce=D.getModuleSource(n);A+=ce;let Z=D.injections[n];for(let W in Z){let Se=/^(v|f)s:#([\w-]+)$/.exec(W);if(Se){let ye=Se[2]==="decl"?X:q;ye[W]=ye[W]||[],ye[W].push(Z[W])}else B[W]=B[W]||[],B[W].push(Z[W])}}return A+="// ----- MAIN SHADER SOURCE -------------------------",A+=Bo,A=nt(A,n,X),A+=ai(m[n],B),A+=h,A=nt(A,n,q),o==="glsl"&&_!==d&&(A=Oo(A,d,n)),A.trim()}function No(e){return function(r){let i={};for(let n of e){let o=n.getUniforms(r,i);Object.assign(i,o)}return i}}function Ml(e){let{id:t,source:r,stage:i}=e;return t&&r.indexOf("SHADER_NAME")===-1?`
274
+ #define SHADER_NAME ${t}_${i}
314
275
 
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`\
276
+ `:""}function Nl(){let e=arguments.length>0&&arguments[0]!==void 0?arguments[0]:{},t="";for(let r in e){let i=e[r];(i||Number.isFinite(i))&&(t+=`#define ${r.toUpperCase()} ${e[r]}
277
+ `)}return t}function Uo(e){if(!e.vs)throw new Error("no vertex shader");let t=wo(e.platformInfo,e.vs),r;return e.fs&&(r=wo(e.platformInfo,e.fs)),{...e,vs:t,fs:r}}function wo(e,t){if(typeof t=="string")return t;switch(e.type){case"webgpu":if(t!=null&&t.wgsl)return t.wgsl;throw new Error("WebGPU does not support GLSL shaders");default:if(t!=null&&t.glsl)return t.glsl;throw new Error("WebGL does not support WGSL shaders")}}var $=class{constructor(){this._hookFunctions=[],this._defaultModules=[]}static getDefaultShaderAssembler(){return $.defaultShaderAssembler=$.defaultShaderAssembler||new $,$.defaultShaderAssembler}addDefaultModule(t){this._defaultModules.find(r=>r.name===(typeof t=="string"?t:t.name))||this._defaultModules.push(t)}removeDefaultModule(t){let r=typeof t=="string"?t:t.name;this._defaultModules=this._defaultModules.filter(i=>i.name!==r)}addShaderHook(t,r){r&&(t=Object.assign(r,{hook:t})),this._hookFunctions.push(t)}assembleShaders(t){let r=this._getModuleList(t.modules),i=this._hookFunctions,n=Uo(t);return{...Do({platformInfo:t.platformInfo,...n,modules:r,hookFunctions:i}),modules:r}}_getModuleList(){let t=arguments.length>0&&arguments[0]!==void 0?arguments[0]:[],r=new Array(this._defaultModules.length+t.length),i={},n=0;for(let o=0,s=this._defaultModules.length;o<s;++o){let a=this._defaultModules[o],f=a.name;r[n++]=a,i[f]=!0}for(let o=0,s=t.length;o<s;++o){let a=t[o],f=a.name;i[f]||(r[n++]=a,i[f]=!0)}return r.length=n,Y.instantiateModules(r)}};$.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,i=Math.fround(e),n=e-i;return t[r]=i,t[r+1]=n,t}function li(e){return e-Math.fround(e)}function ci(e){let t=new Float32Array(32);for(let r=0;r<4;++r)for(let i=0;i<4;++i){let n=r*4+i;jt(e[i*4+r],t,n*2)}return t}var Vo=I`\
322
278
  uniform float ONE;
323
279
 
324
280
  /*
@@ -326,7 +282,7 @@ About LUMA_FP64_CODE_ELIMINATION_WORKAROUND
326
282
 
327
283
  The purpose of this workaround is to prevent shader compilers from
328
284
  optimizing away necessary arithmetic operations by swapping their sequences
329
- or transform the equation to some 'equivalent' from.
285
+ or transform the equation to some 'equivalent' form.
330
286
 
331
287
  The method is to multiply an artifical variable, ONE, which will be known to
332
288
  the compiler to be 1 only at runtime. The whole expression is then represented
@@ -484,7 +440,7 @@ vec2 sqrt_fp64(vec2 a) {
484
440
  return sum_fp64(vec2(yn, 0.0), prod);
485
441
  #endif
486
442
  }
487
- `;var Go=Zt`\
443
+ `;var ko=I`\
488
444
  const vec2 E_FP64 = vec2(2.7182817459106445e+00, 8.254840366817007e-08);
489
445
  const vec2 LOG2_FP64 = vec2(0.6931471824645996e+00, -1.9046542121259336e-09);
490
446
  const vec2 PI_FP64 = vec2(3.1415927410125732, -8.742278012618954e-8);
@@ -1154,7 +1110,52 @@ void mat4_vec4_mul_fp64(vec2 b[16], vec2 a[4], out vec2 out_val[4]) {
1154
1110
  vec4_dot_fp64(a, tmp, out_val[i]);
1155
1111
  }
1156
1112
  }
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=`
1113
+ `;var Bl={ONE:1};function Dl(){return Bl}var Wo={name:"fp64-arithmetic",vs:Vo,getUniforms:Dl,fp64ify:jt,fp64LowPart:li,fp64ifyMatrix4:ci},at={name:"fp64",vs:ko,dependencies:[Wo],fp64ify:jt,fp64LowPart:li,fp64ifyMatrix4:ci};var pT=1/Math.PI*180,hT=1/180*Math.PI,wl={EPSILON:1e-12,debug:!1,precision:4,printTypes:!1,printDegrees:!1,printRowMajor:!0,_cartographicRadians:!1};globalThis.mathgl=globalThis.mathgl||{config:{...wl}};var ft=globalThis.mathgl.config;function ui(e){return Array.isArray(e)||ArrayBuffer.isView(e)&&!(e instanceof DataView)}function Ne(e,t,r){let i=ft.EPSILON;r&&(ft.EPSILON=r);try{if(e===t)return!0;if(ui(e)&&ui(t)){if(e.length!==t.length)return!1;for(let n=0;n<e.length;++n)if(!Ne(e[n],t[n]))return!1;return!0}return e&&e.equals?e.equals(t):t&&t.equals?t.equals(e):typeof e=="number"&&typeof t=="number"?Math.abs(e-t)<=ft.EPSILON*Math.max(1,Math.abs(e),Math.abs(t)):!1}finally{ft.EPSILON=i}}var lt=typeof Float32Array<"u"?Float32Array:Array,_i=Math.random;function Kt(e){return e>=0?Math.round(e):e%.5===0?Math.floor(e):Math.round(e)}var TT=Math.PI/180;var zt={};Ni(zt,{add:()=>Xl,angle:()=>uc,bezier:()=>ic,ceil:()=>Ll,clone:()=>Vl,copy:()=>Wl,create:()=>Ho,cross:()=>Gl,dist:()=>Rc,distance:()=>zo,div:()=>Ac,divide:()=>Ko,dot:()=>pi,equals:()=>hc,exactEquals:()=>pc,floor:()=>jl,forEach:()=>mc,fromValues:()=>kl,hermite:()=>rc,inverse:()=>Ql,len:()=>Ec,length:()=>Xo,lerp:()=>ec,max:()=>zl,min:()=>Kl,mul:()=>Tc,multiply:()=>jo,negate:()=>Zl,normalize:()=>Jl,random:()=>nc,rotateX:()=>fc,rotateY:()=>lc,rotateZ:()=>cc,round:()=>Yl,scale:()=>$l,scaleAndAdd:()=>ql,set:()=>Hl,slerp:()=>tc,sqrDist:()=>bc,sqrLen:()=>vc,squaredDistance:()=>Yo,squaredLength:()=>$o,str:()=>dc,sub:()=>gc,subtract:()=>Lo,transformMat3:()=>sc,transformMat4:()=>oc,transformQuat:()=>ac,zero:()=>_c});function Ho(){let e=new lt(3);return lt!=Float32Array&&(e[0]=0,e[1]=0,e[2]=0),e}function Vl(e){let t=new lt(3);return t[0]=e[0],t[1]=e[1],t[2]=e[2],t}function Xo(e){let t=e[0],r=e[1],i=e[2];return Math.sqrt(t*t+r*r+i*i)}function kl(e,t,r){let i=new lt(3);return i[0]=e,i[1]=t,i[2]=r,i}function Wl(e,t){return e[0]=t[0],e[1]=t[1],e[2]=t[2],e}function Hl(e,t,r,i){return e[0]=t,e[1]=r,e[2]=i,e}function Xl(e,t,r){return e[0]=t[0]+r[0],e[1]=t[1]+r[1],e[2]=t[2]+r[2],e}function Lo(e,t,r){return e[0]=t[0]-r[0],e[1]=t[1]-r[1],e[2]=t[2]-r[2],e}function jo(e,t,r){return e[0]=t[0]*r[0],e[1]=t[1]*r[1],e[2]=t[2]*r[2],e}function Ko(e,t,r){return e[0]=t[0]/r[0],e[1]=t[1]/r[1],e[2]=t[2]/r[2],e}function Ll(e,t){return e[0]=Math.ceil(t[0]),e[1]=Math.ceil(t[1]),e[2]=Math.ceil(t[2]),e}function jl(e,t){return e[0]=Math.floor(t[0]),e[1]=Math.floor(t[1]),e[2]=Math.floor(t[2]),e}function Kl(e,t,r){return e[0]=Math.min(t[0],r[0]),e[1]=Math.min(t[1],r[1]),e[2]=Math.min(t[2],r[2]),e}function zl(e,t,r){return e[0]=Math.max(t[0],r[0]),e[1]=Math.max(t[1],r[1]),e[2]=Math.max(t[2],r[2]),e}function Yl(e,t){return e[0]=Kt(t[0]),e[1]=Kt(t[1]),e[2]=Kt(t[2]),e}function $l(e,t,r){return e[0]=t[0]*r,e[1]=t[1]*r,e[2]=t[2]*r,e}function ql(e,t,r,i){return e[0]=t[0]+r[0]*i,e[1]=t[1]+r[1]*i,e[2]=t[2]+r[2]*i,e}function zo(e,t){let r=t[0]-e[0],i=t[1]-e[1],n=t[2]-e[2];return Math.sqrt(r*r+i*i+n*n)}function Yo(e,t){let r=t[0]-e[0],i=t[1]-e[1],n=t[2]-e[2];return r*r+i*i+n*n}function $o(e){let t=e[0],r=e[1],i=e[2];return t*t+r*r+i*i}function Zl(e,t){return e[0]=-t[0],e[1]=-t[1],e[2]=-t[2],e}function Ql(e,t){return e[0]=1/t[0],e[1]=1/t[1],e[2]=1/t[2],e}function Jl(e,t){let r=t[0],i=t[1],n=t[2],o=r*r+i*i+n*n;return o>0&&(o=1/Math.sqrt(o)),e[0]=t[0]*o,e[1]=t[1]*o,e[2]=t[2]*o,e}function pi(e,t){return e[0]*t[0]+e[1]*t[1]+e[2]*t[2]}function Gl(e,t,r){let i=t[0],n=t[1],o=t[2],s=r[0],a=r[1],f=r[2];return e[0]=n*f-o*a,e[1]=o*s-i*f,e[2]=i*a-n*s,e}function ec(e,t,r,i){let n=t[0],o=t[1],s=t[2];return e[0]=n+i*(r[0]-n),e[1]=o+i*(r[1]-o),e[2]=s+i*(r[2]-s),e}function tc(e,t,r,i){let n=Math.acos(Math.min(Math.max(pi(t,r),-1),1)),o=Math.sin(n),s=Math.sin((1-i)*n)/o,a=Math.sin(i*n)/o;return e[0]=s*t[0]+a*r[0],e[1]=s*t[1]+a*r[1],e[2]=s*t[2]+a*r[2],e}function rc(e,t,r,i,n,o){let s=o*o,a=s*(2*o-3)+1,f=s*(o-2)+o,l=s*(o-1),c=s*(3-2*o);return e[0]=t[0]*a+r[0]*f+i[0]*l+n[0]*c,e[1]=t[1]*a+r[1]*f+i[1]*l+n[1]*c,e[2]=t[2]*a+r[2]*f+i[2]*l+n[2]*c,e}function ic(e,t,r,i,n,o){let s=1-o,a=s*s,f=o*o,l=a*s,c=3*o*a,u=3*f*s,_=f*o;return e[0]=t[0]*l+r[0]*c+i[0]*u+n[0]*_,e[1]=t[1]*l+r[1]*c+i[1]*u+n[1]*_,e[2]=t[2]*l+r[2]*c+i[2]*u+n[2]*_,e}function nc(e,t){t=t===void 0?1:t;let r=_i()*2*Math.PI,i=_i()*2-1,n=Math.sqrt(1-i*i)*t;return e[0]=Math.cos(r)*n,e[1]=Math.sin(r)*n,e[2]=i*t,e}function oc(e,t,r){let i=t[0],n=t[1],o=t[2],s=r[3]*i+r[7]*n+r[11]*o+r[15];return s=s||1,e[0]=(r[0]*i+r[4]*n+r[8]*o+r[12])/s,e[1]=(r[1]*i+r[5]*n+r[9]*o+r[13])/s,e[2]=(r[2]*i+r[6]*n+r[10]*o+r[14])/s,e}function sc(e,t,r){let i=t[0],n=t[1],o=t[2];return e[0]=i*r[0]+n*r[3]+o*r[6],e[1]=i*r[1]+n*r[4]+o*r[7],e[2]=i*r[2]+n*r[5]+o*r[8],e}function ac(e,t,r){let i=r[0],n=r[1],o=r[2],s=r[3],a=t[0],f=t[1],l=t[2],c=n*l-o*f,u=o*a-i*l,_=i*f-n*a,d=n*_-o*u,p=o*c-i*_,g=i*u-n*c,h=s*2;return c*=h,u*=h,_*=h,d*=2,p*=2,g*=2,e[0]=a+c+d,e[1]=f+u+p,e[2]=l+_+g,e}function fc(e,t,r,i){let n=[],o=[];return n[0]=t[0]-r[0],n[1]=t[1]-r[1],n[2]=t[2]-r[2],o[0]=n[0],o[1]=n[1]*Math.cos(i)-n[2]*Math.sin(i),o[2]=n[1]*Math.sin(i)+n[2]*Math.cos(i),e[0]=o[0]+r[0],e[1]=o[1]+r[1],e[2]=o[2]+r[2],e}function lc(e,t,r,i){let n=[],o=[];return n[0]=t[0]-r[0],n[1]=t[1]-r[1],n[2]=t[2]-r[2],o[0]=n[2]*Math.sin(i)+n[0]*Math.cos(i),o[1]=n[1],o[2]=n[2]*Math.cos(i)-n[0]*Math.sin(i),e[0]=o[0]+r[0],e[1]=o[1]+r[1],e[2]=o[2]+r[2],e}function cc(e,t,r,i){let n=[],o=[];return n[0]=t[0]-r[0],n[1]=t[1]-r[1],n[2]=t[2]-r[2],o[0]=n[0]*Math.cos(i)-n[1]*Math.sin(i),o[1]=n[0]*Math.sin(i)+n[1]*Math.cos(i),o[2]=n[2],e[0]=o[0]+r[0],e[1]=o[1]+r[1],e[2]=o[2]+r[2],e}function uc(e,t){let r=e[0],i=e[1],n=e[2],o=t[0],s=t[1],a=t[2],f=Math.sqrt((r*r+i*i+n*n)*(o*o+s*s+a*a)),l=f&&pi(e,t)/f;return Math.acos(Math.min(Math.max(l,-1),1))}function _c(e){return e[0]=0,e[1]=0,e[2]=0,e}function dc(e){return"vec3(".concat(e[0],", ").concat(e[1],", ").concat(e[2],")")}function pc(e,t){return e[0]===t[0]&&e[1]===t[1]&&e[2]===t[2]}function hc(e,t){let r=e[0],i=e[1],n=e[2],o=t[0],s=t[1],a=t[2];return Math.abs(r-o)<=1e-6*Math.max(1,Math.abs(r),Math.abs(o))&&Math.abs(i-s)<=1e-6*Math.max(1,Math.abs(i),Math.abs(s))&&Math.abs(n-a)<=1e-6*Math.max(1,Math.abs(n),Math.abs(a))}var gc=Lo,Tc=jo,Ac=Ko,Rc=zo,bc=Yo,Ec=Xo,vc=$o,mc=function(){let e=Ho();return function(t,r,i,n,o,s){let a,f;for(r||(r=3),i||(i=0),n?f=Math.min(n*r+i,t.length):f=t.length,a=i;a<f;a+=r)e[0]=t[a],e[1]=t[a+1],e[2]=t[a+2],o(e,e,s),t[a]=e[0],t[a+1]=e[1],t[a+2]=e[2];return t}}();var hi=T(E(),1);var Yt=class{constructor(t){this.modules=void 0,this.moduleUniforms=void 0,this.moduleBindings=void 0,this.moduleUniformsChanged=void 0;let r=ot(Object.values(t));hi.log.log(1,"Creating ShaderInputs with modules",r.map(i=>i.name))(),this.modules=t,this.moduleUniforms={},this.moduleBindings={};for(let[i,n]of Object.entries(t)){let o=i;this.moduleUniforms[o]=n.defaultUniforms||{},this.moduleBindings[o]={}}}destroy(){}setProps(t){for(let i of Object.keys(t)){var r;let n=i,o=t[n],s=this.modules[n];if(!s){hi.log.warn(`Module ${i} not found`)();continue}let a=this.moduleUniforms[n],f=((r=s.getUniforms)===null||r===void 0?void 0:r.call(s,o,this.moduleUniforms[n]))||o;this.moduleUniforms[n]={...a,...f}}}getModules(){return Object.values(this.modules)}getUniformValues(){return this.moduleUniforms}getBindings(){let t={};for(let r of Object.values(this.moduleBindings))Object.assign(t,r);return t}getDebugTable(){let t={};for(let[i,n]of Object.entries(this.moduleUniforms))for(let[o,s]of Object.entries(n)){var r;t[`${i}.${o}`]={type:(r=this.modules[i].uniformTypes)===null||r===void 0?void 0:r[o],value:String(s)}}return t}};var le=T(E(),1),$t=class{constructor(t){this.id=void 0,this.userData={},this.topology=void 0,this.bufferLayout=[],this.vertexCount=void 0,this.indices=void 0,this.attributes=void 0,this.id=t.id||(0,le.uid)("geometry"),this.topology=t.topology,this.indices=t.indices||null,this.attributes=t.attributes,this.vertexCount=t.vertexCount,this.bufferLayout=t.bufferLayout||[],this.indices&&(0,le.assert)(this.indices.usage===le.Buffer.INDEX)}destroy(){var t;this.indices.destroy(),this.attributes.positions.destroy(),this.attributes.normals.destroy(),this.attributes.texCoords.destroy(),(t=this.attributes.colors)===null||t===void 0||t.destroy()}getVertexCount(){return this.vertexCount}getAttributes(){return this.attributes}getIndexes(){return this.indices}_calculateVertexCount(t){return t.byteLength/12}};function qo(e,t){if(t instanceof $t)return t;let r=Sc(e,t),{attributes:i,bufferLayout:n}=yc(e,t);return new $t({topology:t.topology||"triangle-list",bufferLayout:n,vertexCount:t.vertexCount,indices:r,attributes:i})}function Sc(e,t){if(!t.indices)return;let r=t.indices.value;return e.createBuffer({usage:le.Buffer.INDEX,data:r})}function yc(e,t){let r=[],i={};for(let[o,s]of Object.entries(t.attributes)){let a=o;switch(o){case"POSITION":a="positions";break;case"NORMAL":a="normals";break;case"TEXCOORD_0":a="texCoords";break;case"COLOR_0":a="colors";break}i[a]=e.createBuffer({data:s.value,id:`${o}-buffer`});let{value:f,size:l,normalized:c}=s;r.push({name:a,format:(0,le.getVertexFormatFromAttribute)(f,l,c)})}let n=t._calculateVertexCount(t.attributes,t.indices);return{attributes:i,bufferLayout:r,vertexCount:n}}var Zo=T(E(),1),he=class{static getDefaultPipelineFactory(t){return t._lumaData.defaultPipelineFactory=t._lumaData.defaultPipelineFactory||new he(t),t._lumaData.defaultPipelineFactory}constructor(t){this.device=void 0,this._hashCounter=0,this._hashes={},this._useCounts={},this._pipelineCache={},this.device=t}createRenderPipeline(t){let r={...he.defaultProps,...t},i=this._hashRenderPipeline({...r});if(!this._pipelineCache[i]){let n=this.device.createRenderPipeline({...r,vs:this.device.createShader({stage:"vertex",source:r.vs}),fs:r.fs?this.device.createShader({stage:"fragment",source:r.fs}):null});n.hash=i,this._pipelineCache[i]=n,this._useCounts[i]=0}return this._useCounts[i]++,this._pipelineCache[i]}release(t){let r=t.hash;this._useCounts[r]--,this._useCounts[r]===0&&(this._pipelineCache[r].destroy(),delete this._pipelineCache[r],delete this._useCounts[r])}_createRenderPipeline(t){if(!t.fs)throw new Error("fs");return this.device.createRenderPipeline({...t,vs:this.device.createShader({stage:"vertex",source:t.vs}),fs:t.fs?this.device.createShader({stage:"fragment",source:t.fs}):null})}_hashRenderPipeline(t){let r=this._getHash(t.vs),i=t.fs?this._getHash(t.fs):0,n="-";switch(this.device.info.type){case"webgpu":let o=this._getHash(JSON.stringify(t.parameters)),s=this._getHash(JSON.stringify(t.bufferLayout));return`${r}/${i}V${n}T${t.topology}P${o}BL${s}}`;default:return`${r}/${i}V${n}`}}_getHash(t){return this._hashes[t]===void 0&&(this._hashes[t]=this._hashCounter++),this._hashes[t]}};he.defaultProps={...Zo.RenderPipeline.defaultProps,vs:void 0,fs:void 0};function Qo(e){let t=arguments.length>1&&arguments[1]!==void 0?arguments[1]:"",r={},i=`Shader Layout for ${t}`;for(let n of e.attributes)if(n){let o=`${n.location} ${n.name}: ${n.type}`;r[`in ${o}`]={[i]:n.stepMode||"vertex"}}for(let n of e.varyings||[]){let o=`${n.location} ${n.name}`;r[`out ${o}`]={[i]:JSON.stringify(n.accessor)}}return r}var qt=2,Oc=1e4,ge=class{constructor(t,r){var i,n,o;this.device=void 0,this.id=void 0,this.vs=void 0,this.fs=void 0,this.pipelineFactory=void 0,this.userData={},this.parameters=void 0,this.topology=void 0,this.bufferLayout=void 0,this.vertexCount=void 0,this.instanceCount=0,this.indexBuffer=null,this.bufferAttributes={},this.constantAttributes={},this.bindings={},this.uniforms={},this.vertexArray=void 0,this.transformFeedback=null,this.pipeline=void 0,this.shaderInputs=void 0,this._uniformStore=void 0,this._pipelineNeedsUpdate="newly created",this._attributeInfos={},this._gpuGeometry=null,this._getModuleUniforms=void 0,this.props=void 0,this._lastLogTime=0,this._logOpen=!1,this.props={...ge.defaultProps,...r},r=this.props,this.id=r.id||(0,C.uid)("model"),this.device=t,Object.assign(this.userData,r.userData);let s=Object.fromEntries(((i=this.props.modules)===null||i===void 0?void 0:i.map(_=>[_.name,_]))||[]);this.setShaderInputs(r.shaderInputs||new Yt(s));let a=xc(t),f=(((n=this.props.modules)===null||n===void 0?void 0:n.length)>0?this.props.modules:(o=this.shaderInputs)===null||o===void 0?void 0:o.getModules())||[],{vs:l,fs:c,getUniforms:u}=this.props.shaderAssembler.assembleShaders({platformInfo:a,...this.props,modules:f});if(this.vs=l,this.fs=c,this._getModuleUniforms=u,this.vertexCount=this.props.vertexCount,this.instanceCount=this.props.instanceCount,this.topology=this.props.topology,this.bufferLayout=this.props.bufferLayout,this.parameters=this.props.parameters,r.geometry&&(this._gpuGeometry=this.setGeometry(r.geometry)),this.pipelineFactory=r.pipelineFactory||he.getDefaultPipelineFactory(this.device),this.pipeline=this._updatePipeline(),this.vertexArray=t.createVertexArray({renderPipeline:this.pipeline}),this._gpuGeometry&&this._setGeometryAttributes(this._gpuGeometry),r.vertexCount&&this.setVertexCount(r.vertexCount),r.instanceCount&&this.setInstanceCount(r.instanceCount),r.indices)throw new Error("Model.props.indices removed. Use props.indexBuffer");r.indexBuffer&&this.setIndexBuffer(r.indexBuffer),r.attributes&&this.setAttributes(r.attributes),r.constantAttributes&&this.setConstantAttributes(r.constantAttributes),r.bindings&&this.setBindings(r.bindings),r.uniforms&&this.setUniforms(r.uniforms),r.moduleSettings&&(C.log.warn("Model.props.moduleSettings is deprecated. Use Model.shaderInputs.setProps()")(),this.updateModuleSettings(r.moduleSettings)),r.transformFeedback&&(this.transformFeedback=r.transformFeedback),Object.seal(this)}destroy(){this.pipelineFactory.release(this.pipeline),this._uniformStore.destroy()}predraw(){this.updateShaderInputs()}draw(t){this.predraw();try{this._logDrawCallStart(),this.pipeline=this._updatePipeline(),this.pipeline.setBindings(this.bindings),this.pipeline.setUniforms(this.uniforms),this.pipeline.draw({renderPass:t,vertexArray:this.vertexArray,vertexCount:this.vertexCount,instanceCount:this.instanceCount,transformFeedback:this.transformFeedback})}finally{this._logDrawCallEnd()}}setGeometry(t){let r=t&&qo(this.device,t);return this.setTopology(r.topology||"triangle-list"),this.bufferLayout=Jo(this.bufferLayout,r.bufferLayout),this.vertexArray&&this._setGeometryAttributes(r),r}_setGeometryAttributes(t){this.vertexCount=t.vertexCount,this.setAttributes(t.attributes,"ignore-unknown"),this.setIndexBuffer(t.indices)}setTopology(t){t!==this.topology&&(this.topology=t,this._setPipelineNeedsUpdate("topology"))}setBufferLayout(t){this.bufferLayout=this._gpuGeometry?Jo(t,this._gpuGeometry.bufferLayout):t,this._setPipelineNeedsUpdate("bufferLayout"),this.pipeline=this._updatePipeline(),this.vertexArray=this.device.createVertexArray({renderPipeline:this.pipeline}),this._gpuGeometry&&this._setGeometryAttributes(this._gpuGeometry)}setParameters(t){(0,C.deepEqual)(t,this.parameters,2)||(this.parameters=t,this._setPipelineNeedsUpdate("parameters"))}setVertexCount(t){this.vertexCount=t}setInstanceCount(t){this.instanceCount=t}setShaderInputs(t){this.shaderInputs=t,this._uniformStore=new Zt.UniformStore(this.shaderInputs.modules);for(let r of Object.keys(this.shaderInputs.modules)){let i=this._uniformStore.getManagedUniformBuffer(this.device,r);this.bindings[`${r}Uniforms`]=i}}updateShaderInputs(){this._uniformStore.setUniforms(this.shaderInputs.getUniformValues())}updateModuleSettings(t){C.log.warn("Model.updateModuleSettings is deprecated. Use Model.shaderInputs.setProps()")();let{bindings:r,uniforms:i}=(0,C.splitUniformsAndBindings)(this._getModuleUniforms(t));Object.assign(this.bindings,r),Object.assign(this.uniforms,i)}setBindings(t){Object.assign(this.bindings,t)}setUniforms(t){this.pipeline.setUniforms(t),Object.assign(this.uniforms,t)}setIndexBuffer(t){this.vertexArray.setIndexBuffer(t)}setTransformFeedback(t){this.transformFeedback=t}setAttributes(t,r){t.indices&&C.log.warn(`Model:${this.id} setAttributes() - indexBuffer should be set using setIndexBuffer()`)();for(let[n,o]of Object.entries(t)){var i;let s=this.bufferLayout.find(l=>l.name===n);if(!s){C.log.warn(`Model(${this.id}): Missing layout for buffer "${n}".`)();continue}let a=s.attributes?(i=s.attributes)===null||i===void 0?void 0:i.map(l=>l.attribute):[s.name],f=!1;for(let l of a){let c=this._attributeInfos[l];c&&(this.vertexArray.setBuffer(c.location,o),f=!0)}!f&&r!=="ignore-unknown"&&C.log.warn(`Model(${this.id}): Ignoring buffer "${o.id}" for unknown attribute "${n}"`)()}}setConstantAttributes(t){for(let[r,i]of Object.entries(t)){let n=this._attributeInfos[r];n?this.vertexArray.setConstant(n.location,i):C.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&&C.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}_logDrawCallStart(){let t=C.log.level>3?0:Oc;Date.now()-this._lastLogTime<t||(this._lastLogTime=Date.now(),this._logOpen=!0,C.log.group(qt,`>>> DRAWING MODEL ${this.id}`,{collapsed:C.log.level<=2})())}_logDrawCallEnd(){if(this._logOpen){let t=Qo(this.pipeline.shaderLayout);C.log.table(qt,t)();let r=this.shaderInputs.getDebugTable();for(let[i,n]of Object.entries(this.uniforms))r[i]={value:n};C.log.table(qt,r)(),C.log.groupEnd(qt)(),this._logOpen=!1}}};ge.defaultProps={...Zt.RenderPipeline.defaultProps,vs:null,fs:null,id:"unnamed",handle:void 0,userData:{},defines:{},modules:[],moduleSettings:void 0,geometry:null,indexBuffer:null,attributes:{},constantAttributes:{},varyings:[],shaderInputs:void 0,pipelineFactory:void 0,transformFeedback:void 0,shaderAssembler:$.getDefaultShaderAssembler()};function Jo(e,t){let r=[...e];for(let i of t){let n=r.findIndex(o=>o.name===i.name);n<0?r.push(i):r[n]=i}return r}function xc(e){return{type:e.info.type,shaderLanguage:e.info.shadingLanguage,shaderLanguageVersion:e.info.shadingLanguageVersion,gpu:e.info.gpu,features:e.features}}function es(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var i=Object.getOwnPropertySymbols(e);t&&(i=i.filter(function(n){return Object.getOwnPropertyDescriptor(e,n).enumerable})),r.push.apply(r,i)}return r}function Pc(e){for(var t=1;t<arguments.length;t++){var r=arguments[t]!=null?arguments[t]:{};t%2?es(Object(r),!0).forEach(function(i){Fc(e,i,r[i])}):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(r)):es(Object(r)).forEach(function(i){Object.defineProperty(e,i,Object.getOwnPropertyDescriptor(r,i))})}return e}function Fc(e,t,r){return t in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r,e}var Ic=`#version 300 es
1114
+ #define SHADER_NAME data-filter-vertex-shader
1115
+
1116
+ #ifdef FLOAT_TARGET
1117
+ in float filterIndices;
1118
+ in float filterPrevIndices;
1119
+ #else
1120
+ in vec2 filterIndices;
1121
+ in vec2 filterPrevIndices;
1122
+ #endif
1123
+
1124
+ out vec4 vColor;
1125
+ const float component = 1.0 / 255.0;
1126
+
1127
+ void main() {
1128
+ #ifdef FLOAT_TARGET
1129
+ dataFilter_value *= float(filterIndices != filterPrevIndices);
1130
+ gl_Position = vec4(0.0, 0.0, 0.0, 1.0);
1131
+ vColor = vec4(0.0, 0.0, 0.0, 1.0);
1132
+ #else
1133
+ // Float texture is not supported: pack result into 4 channels x 256 px x 64px
1134
+ dataFilter_value *= float(filterIndices.x != filterPrevIndices.x);
1135
+ float col = filterIndices.x;
1136
+ float row = filterIndices.y * 4.0;
1137
+ float channel = floor(row);
1138
+ row = fract(row);
1139
+ vColor = component * vec4(bvec4(channel == 0.0, channel == 1.0, channel == 2.0, channel == 3.0));
1140
+ gl_Position = vec4(col * 2.0 - 1.0, row * 2.0 - 1.0, 0.0, 1.0);
1141
+ #endif
1142
+ gl_PointSize = 1.0;
1143
+ }
1144
+ `,Cc=`#version 300 es
1145
+ #define SHADER_NAME data-filter-fragment-shader
1146
+ precision highp float;
1147
+
1148
+ in vec4 vColor;
1149
+
1150
+ out vec4 fragColor;
1151
+
1152
+ void main() {
1153
+ if (dataFilter_value < 0.5) {
1154
+ discard;
1155
+ }
1156
+ fragColor = vColor;
1157
+ }
1158
+ `;function ts(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 rs(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 is(e,t,r){return t.defines.NON_INSTANCED_MODEL=1,r&&(t.defines.FLOAT_TARGET=1),new ge(e,Pc({id:"data-filter-aggregation-model",vertexCount:1,isInstanced:!1,drawMode:0,vs:Ic,fs:Cc},t))}var ns={blend:!0,blendFunc:[1,1,1,1],blendEquation:[32774,32774],depthTest:!1};function Jt(e){return typeof Symbol=="function"&&typeof Symbol.iterator=="symbol"?Jt=function(r){return typeof r}:Jt=function(r){return r&&typeof Symbol=="function"&&r.constructor===Symbol&&r!==Symbol.prototype?"symbol":typeof r},Jt(e)}function os(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var i=Object.getOwnPropertySymbols(e);t&&(i=i.filter(function(n){return Object.getOwnPropertyDescriptor(e,n).enumerable})),r.push.apply(r,i)}return r}function Qt(e){for(var t=1;t<arguments.length;t++){var r=arguments[t]!=null?arguments[t]:{};t%2?os(Object(r),!0).forEach(function(i){Nc(e,i,r[i])}):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(r)):os(Object(r)).forEach(function(i){Object.defineProperty(e,i,Object.getOwnPropertyDescriptor(r,i))})}return e}function Nc(e,t,r){return t in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r,e}function Bc(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}function Dc(e,t){if(typeof t!="function"&&t!==null)throw new TypeError("Super expression must either be null or a function");e.prototype=Object.create(t&&t.prototype,{constructor:{value:e,writable:!0,configurable:!0}}),t&&gi(e,t)}function gi(e,t){return gi=Object.setPrototypeOf||function(i,n){return i.__proto__=n,i},gi(e,t)}function wc(e){var t=kc();return function(){var i=Gt(e),n;if(t){var o=Gt(this).constructor;n=Reflect.construct(i,arguments,o)}else n=i.apply(this,arguments);return Uc(this,n)}}function Uc(e,t){if(t&&(Jt(t)==="object"||typeof t=="function"))return t;if(t!==void 0)throw new TypeError("Derived constructors may only return object or undefined");return Vc(e)}function Vc(e){if(e===void 0)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return e}function kc(){if(typeof Reflect>"u"||!Reflect.construct||Reflect.construct.sham)return!1;if(typeof Proxy=="function")return!0;try{return Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],function(){})),!0}catch{return!1}}function Gt(e){return Gt=Object.setPrototypeOf?Object.getPrototypeOf:function(r){return r.__proto__||Object.getPrototypeOf(r)},Gt(e)}var Wc={getFilterValue:{type:"accessor",value:0},onFilteredItemsChange:{type:"function",value:null,optional:!0},filterEnabled:!0,filterRange:[-1,1],filterSoftRange:null,filterTransformSize:!0,filterTransformColor:!0},ss={1:"float",2:"vec2",3:"vec3",4:"vec4"},er=function(e){Dc(r,e);var t=wc(r);function r(){var n=arguments.length>0&&arguments[0]!==void 0?arguments[0]:{},o=n.filterSize,s=o===void 0?1:o,a=n.fp64,f=a===void 0?!1:a,l=n.countItems,c=l===void 0?!1:l;if(Bc(this,r),!ss[s])throw new Error("filterSize out of range");return t.call(this,{filterSize:s,fp64:f,countItems:c})}var i=r.prototype;return i.getShaders=function(o){var s=o.opts,a=s.filterSize,f=s.fp64;return{modules:[f?_o:uo],defines:{DATAFILTER_TYPE:ss[a],DATAFILTER_DOUBLE:Boolean(f)}}},i.initializeState=function(o,s){var a=this.getAttributeManager();a&&a.add({filterValues:{size:s.opts.filterSize,type:s.opts.fp64?5130:5126,accessor:"getFilterValue",shaderAttributes:{filterValues:{divisor:0},instanceFilterValues:{divisor:1}}}});var f=this.context.device;if(a&&s.opts.countItems){var l=ts(f);a.add({filterIndices:{size:l?1:2,vertexOffset:1,type:5121,normalized:!0,accessor:function(d,p){var g=p.index,h=d&&d.__source?d.__source.index:g;return l?(h+1)%255:[(h+1)%255,Math.floor(h/255)%255]},shaderAttributes:{filterPrevIndices:{vertexOffset:0},filterIndices:{vertexOffset:1}}}});var c=rs(f,l),u=is(f,s.getShaders.call(this,s),l);this.setState({filterFBO:c,filterModel:u})}},i.updateState=function(o){var s=o.props,a=o.oldProps;if(this.state.filterModel){var f=this.getAttributeManager(),l=f.attributes.filterValues.needsUpdate()||s.filterEnabled!==a.filterEnabled||s.filterRange!==a.filterRange||s.filterSoftRange!==a.filterSoftRange;l&&this.setState({filterNeedsUpdate:l})}},i.draw=function(o,s){var a=this,f=this.state.filterFBO,l=this.state.filterModel,c=this.state.filterNeedsUpdate,u=this.props.onFilteredItemsChange;if(c&&u&&l){var _=this.getAttributeManager(),d=_.attributes,p=d.filterValues,g=d.filterIndices;l.setVertexCount(this.getNumInstances()),ii(this.context.device,{framebuffer:f,color:[0,0,0,0]}),l.updateModuleSettings(o.moduleParameters),l.setAttributes(Qt(Qt({},p.getValue()),g?.getValue())),P(l.device,Qt(Qt({framebuffer:f},ns),{},{viewport:[0,0,f.width,f.height]}),function(){l.draw(a.context.renderPass)});for(var h=ni(f),R=0,A=0;A<h.length;A++)R+=h[A];u({id:this.id,count:R}),this.state.filterNeedsUpdate=!1}},i.finalizeState=function(){var o=this.state.filterFBO,s=this.state.filterModel;o?.destroy(),s?.destroy()},r}(as.LayerExtension);er.defaultProps=Wc;er.extensionName="DataFilterExtension";var ct=T(S());var tr=T(S());var fs=`
1158
1159
  const vec2 WORLD_SCALE_FP64 = vec2(81.4873275756836, 0.0000032873668232014097);
1159
1160
 
1160
1161
  uniform vec2 project_uViewProjectionMatrixFP64[16];
@@ -1228,11 +1229,11 @@ vec4 project_position_to_clipspace(
1228
1229
  position, position64xyLow, offset, commonPosition
1229
1230
  );
1230
1231
  }
1231
- `;var 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
- attribute vec2 instanceDashArrays;
1233
- attribute float instanceDashOffsets;
1234
- varying vec2 vDashArray;
1235
- varying float vDashOffset;
1232
+ `;var Hc=at.fp64ify,Xc=at.fp64ifyMatrix4,rr={name:"project64",dependencies:[tr.project,at],vs:fs,getUniforms:jc},Lc=(0,tr._memoize)(Kc);function jc(e){if(e&&"viewport"in e){var t=e.viewport,r=t.viewProjectionMatrix,i=t.scale;return Lc({viewProjectionMatrix:r,scale:i})}return{}}function Kc(e){var t=e.viewProjectionMatrix,r=e.scale,i=Xc(t),n=Hc(r);return{project_uViewProjectionMatrixFP64:i,project64_uViewProjectionMatrix:i,project64_uScale:n}}function ir(e){return typeof Symbol=="function"&&typeof Symbol.iterator=="symbol"?ir=function(r){return typeof r}:ir=function(r){return r&&typeof Symbol=="function"&&r.constructor===Symbol&&r!==Symbol.prototype?"symbol":typeof r},ir(e)}function zc(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}function Yc(e,t){if(typeof t!="function"&&t!==null)throw new TypeError("Super expression must either be null or a function");e.prototype=Object.create(t&&t.prototype,{constructor:{value:e,writable:!0,configurable:!0}}),t&&Ti(e,t)}function Ti(e,t){return Ti=Object.setPrototypeOf||function(i,n){return i.__proto__=n,i},Ti(e,t)}function $c(e){var t=Qc();return function(){var i=nr(e),n;if(t){var o=nr(this).constructor;n=Reflect.construct(i,arguments,o)}else n=i.apply(this,arguments);return qc(this,n)}}function qc(e,t){if(t&&(ir(t)==="object"||typeof t=="function"))return t;if(t!==void 0)throw new TypeError("Derived constructors may only return object or undefined");return Zc(e)}function Zc(e){if(e===void 0)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return e}function Qc(){if(typeof Reflect>"u"||!Reflect.construct||Reflect.construct.sham)return!1;if(typeof Proxy=="function")return!0;try{return Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],function(){})),!0}catch{return!1}}function nr(e){return nr=Object.setPrototypeOf?Object.getPrototypeOf:function(r){return r.__proto__||Object.getPrototypeOf(r)},nr(e)}var Ai=function(e){Yc(r,e);var t=$c(r);function r(){return zc(this,r),t.apply(this,arguments)}var i=r.prototype;return i.getShaders=function(){var o=this.props.coordinateSystem;if(o!==ct.COORDINATE_SYSTEM.LNGLAT&&o!==ct.COORDINATE_SYSTEM.DEFAULT)throw new Error("fp64: coordinateSystem must be LNGLAT");return{modules:[rr]}},r}(ct.LayerExtension);Ai.extensionName="Fp64Extension";var ut=T(S());var ls={inject:{"vs:#decl":`
1233
+ in vec2 instanceDashArrays;
1234
+ in float instanceDashOffsets;
1235
+ out vec2 vDashArray;
1236
+ out float vDashOffset;
1236
1237
  `,"vs:#main-end":`
1237
1238
  vDashArray = instanceDashArrays;
1238
1239
  vDashOffset = instanceDashOffsets / width.x;
@@ -1240,12 +1241,8 @@ vDashOffset = instanceDashOffsets / width.x;
1240
1241
  uniform float dashAlignMode;
1241
1242
  uniform float capType;
1242
1243
  uniform bool dashGapPickable;
1243
- varying vec2 vDashArray;
1244
- varying float vDashOffset;
1245
-
1246
- float round(float x) {
1247
- return floor(x + 0.5);
1248
- }
1244
+ in vec2 vDashArray;
1245
+ in float vDashOffset;
1249
1246
  `,"fs:#main-start":`
1250
1247
  float solidLength = vDashArray.x;
1251
1248
  float gapLength = vDashArray.y;
@@ -1265,7 +1262,7 @@ float round(float x) {
1265
1262
 
1266
1263
  if (gapLength > 0.0 && unitOffset > solidLength) {
1267
1264
  if (capType <= 0.5) {
1268
- if (!(dashGapPickable && picking_uActive)) {
1265
+ if (!(dashGapPickable && bool(picking.isActive))) {
1269
1266
  discard;
1270
1267
  }
1271
1268
  } else {
@@ -1274,15 +1271,15 @@ float round(float x) {
1274
1271
  vPathPosition.x
1275
1272
  ));
1276
1273
  if (distToEnd > 1.0) {
1277
- if (!(dashGapPickable && picking_uActive)) {
1274
+ if (!(dashGapPickable && bool(picking.isActive))) {
1278
1275
  discard;
1279
1276
  }
1280
1277
  }
1281
1278
  }
1282
1279
  }
1283
1280
  }
1284
- `}},ss={inject:{"vs:#decl":`
1285
- attribute float instanceOffsets;
1281
+ `}},cs={inject:{"vs:#decl":`
1282
+ in float instanceOffsets;
1286
1283
  `,"vs:DECKGL_FILTER_SIZE":`
1287
1284
  float offsetWidth = abs(instanceOffsets * 2.0) + 1.0;
1288
1285
  size *= offsetWidth;
@@ -1298,7 +1295,7 @@ attribute float instanceOffsets;
1298
1295
  if (isInside == 0.0) {
1299
1296
  discard;
1300
1297
  }
1301
- `}};function 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=`
1298
+ `}};function or(e){return typeof Symbol=="function"&&typeof Symbol.iterator=="symbol"?or=function(r){return typeof r}:or=function(r){return r&&typeof Symbol=="function"&&r.constructor===Symbol&&r!==Symbol.prototype?"symbol":typeof r},or(e)}function Jc(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}function Gc(e,t){if(typeof t!="function"&&t!==null)throw new TypeError("Super expression must either be null or a function");e.prototype=Object.create(t&&t.prototype,{constructor:{value:e,writable:!0,configurable:!0}}),t&&Ri(e,t)}function Ri(e,t){return Ri=Object.setPrototypeOf||function(i,n){return i.__proto__=n,i},Ri(e,t)}function eu(e){var t=iu();return function(){var i=sr(e),n;if(t){var o=sr(this).constructor;n=Reflect.construct(i,arguments,o)}else n=i.apply(this,arguments);return tu(this,n)}}function tu(e,t){if(t&&(or(t)==="object"||typeof t=="function"))return t;if(t!==void 0)throw new TypeError("Derived constructors may only return object or undefined");return ru(e)}function ru(e){if(e===void 0)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return e}function iu(){if(typeof Reflect>"u"||!Reflect.construct||Reflect.construct.sham)return!1;if(typeof Proxy=="function")return!0;try{return Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],function(){})),!0}catch{return!1}}function sr(e){return sr=Object.setPrototypeOf?Object.getPrototypeOf:function(r){return r.__proto__||Object.getPrototypeOf(r)},sr(e)}var nu={getDashArray:{type:"accessor",value:[0,0]},getOffset:{type:"accessor",value:0},dashJustified:!1,dashGapPickable:!1},ar=function(e){Gc(r,e);var t=eu(r);function r(){var n=arguments.length>0&&arguments[0]!==void 0?arguments[0]:{},o=n.dash,s=o===void 0?!1:o,a=n.offset,f=a===void 0?!1:a,l=n.highPrecisionDash,c=l===void 0?!1:l;return Jc(this,r),t.call(this,{dash:s||c,offset:f,highPrecisionDash:c})}var i=r.prototype;return i.isEnabled=function(o){return"pathTesselator"in o.state},i.getShaders=function(o){if(!o.isEnabled(this))return null;var s={};return o.opts.dash&&(s=(0,ut._mergeShaders)(s,ls)),o.opts.offset&&(s=(0,ut._mergeShaders)(s,cs)),s},i.initializeState=function(o,s){var a=this.getAttributeManager();!a||!s.isEnabled(this)||(s.opts.dash&&a.addInstanced({instanceDashArrays:{size:2,accessor:"getDashArray"},instanceDashOffsets:s.opts.highPrecisionDash?{size:1,accessor:"getPath",transform:s.getDashOffsets.bind(this)}:{size:1,update:function(l){l.constant=!0,l.value=[0]}}}),s.opts.offset&&a.addInstanced({instanceOffsets:{size:1,accessor:"getOffset"}}))},i.updateState=function(o,s){var a;if(s.isEnabled(this)){var f={};s.opts.dash&&(f.dashAlignMode=this.props.dashJustified?1:0,f.dashGapPickable=Boolean(this.props.dashGapPickable)),(a=this.state.model)===null||a===void 0||a.setUniforms(f)}},i.getDashOffsets=function(o){for(var s=[0],a=this.props.positionFormat==="XY"?2:3,f=Array.isArray(o[0]),l=f?o.length:o.length/a,c,u,_=0;_<l-1;_++)c=f?o[_]:o.slice(_*a,_*a+a),c=this.projectPosition(c),_>0&&(s[_]=s[_-1]+zt.dist(u,c)),u=c;return s},r}(ut.LayerExtension);ar.defaultProps=nu;ar.extensionName="PathStyleExtension";var _s=T(S());var _t=T(S()),ou=`
1302
1299
  #ifdef NON_INSTANCED_MODEL
1303
1300
  #define FILL_PATTERN_FRAME_ATTRIB fillPatternFrames
1304
1301
  #define FILL_PATTERN_SCALE_ATTRIB fillPatternScales
@@ -1309,29 +1306,29 @@ attribute float instanceOffsets;
1309
1306
  #define FILL_PATTERN_OFFSET_ATTRIB instanceFillPatternOffsets
1310
1307
  #endif
1311
1308
 
1312
- attribute vec4 FILL_PATTERN_FRAME_ATTRIB;
1313
- attribute float FILL_PATTERN_SCALE_ATTRIB;
1314
- attribute vec2 FILL_PATTERN_OFFSET_ATTRIB;
1309
+ in vec4 FILL_PATTERN_FRAME_ATTRIB;
1310
+ in float FILL_PATTERN_SCALE_ATTRIB;
1311
+ in vec2 FILL_PATTERN_OFFSET_ATTRIB;
1315
1312
 
1316
1313
  uniform bool fill_patternEnabled;
1317
1314
  uniform vec2 fill_patternTextureSize;
1318
1315
 
1319
- varying vec2 fill_uv;
1320
- varying vec4 fill_patternBounds;
1321
- varying vec4 fill_patternPlacement;
1322
- `,ol=`
1316
+ out vec2 fill_uv;
1317
+ out vec4 fill_patternBounds;
1318
+ out vec4 fill_patternPlacement;
1319
+ `,su=`
1323
1320
  uniform bool fill_patternEnabled;
1324
1321
  uniform bool fill_patternMask;
1325
1322
  uniform sampler2D fill_patternTexture;
1326
1323
  uniform vec2 fill_uvCoordinateOrigin;
1327
1324
  uniform vec2 fill_uvCoordinateOrigin64Low;
1328
1325
 
1329
- varying vec4 fill_patternBounds;
1330
- varying vec4 fill_patternPlacement;
1331
- varying vec2 fill_uv;
1326
+ in vec4 fill_patternBounds;
1327
+ in vec4 fill_patternPlacement;
1328
+ in vec2 fill_uv;
1332
1329
 
1333
1330
  const float FILL_UV_SCALE = 512.0 / 40000000.0;
1334
- `,sl={"vs:DECKGL_FILTER_GL_POSITION":`
1331
+ `,au={"vs:DECKGL_FILTER_GL_POSITION":`
1335
1332
  fill_uv = geometry.position.xy;
1336
1333
  `,"vs:DECKGL_FILTER_COLOR":`
1337
1334
  if (fill_patternEnabled) {
@@ -1347,39 +1344,39 @@ const float FILL_UV_SCALE = 512.0 / 40000000.0;
1347
1344
 
1348
1345
  vec2 texCoords = fill_patternBounds.xy + fill_patternBounds.zw * patternUV;
1349
1346
 
1350
- vec4 patternColor = texture2D(fill_patternTexture, texCoords);
1347
+ vec4 patternColor = texture(fill_patternTexture, texCoords);
1351
1348
  color.a *= patternColor.a;
1352
1349
  if (!fill_patternMask) {
1353
1350
  color.rgb = patternColor.rgb;
1354
1351
  }
1355
1352
  }
1356
- `};function 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=`
1353
+ `};function fu(e,t){if(!e)return{};if("fillPatternTexture"in e){var r=e.fillPatternTexture;return{fill_patternTexture:r,fill_patternTextureSize:[r.width,r.height]}}if("viewport"in e){var i=e.fillPatternMask,n=i===void 0?!0:i,o=e.fillPatternEnabled,s=o===void 0?!0:o,a=t,f=a.project_uCommonOrigin,l=[(0,_t.fp64LowPart)(f[0]),(0,_t.fp64LowPart)(f[1])];return{fill_uvCoordinateOrigin:f.slice(0,2),fill_uvCoordinateOrigin64Low:l,fill_patternMask:n,fill_patternEnabled:s}}return{}}var us={name:"fill-pattern",vs:ou,fs:su,inject:au,dependencies:[_t.project],getUniforms:fu};function fr(e){return typeof Symbol=="function"&&typeof Symbol.iterator=="symbol"?fr=function(r){return typeof r}:fr=function(r){return r&&typeof Symbol=="function"&&r.constructor===Symbol&&r!==Symbol.prototype?"symbol":typeof r},fr(e)}function lu(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}function cu(e,t){if(typeof t!="function"&&t!==null)throw new TypeError("Super expression must either be null or a function");e.prototype=Object.create(t&&t.prototype,{constructor:{value:e,writable:!0,configurable:!0}}),t&&bi(e,t)}function bi(e,t){return bi=Object.setPrototypeOf||function(i,n){return i.__proto__=n,i},bi(e,t)}function uu(e){var t=pu();return function(){var i=lr(e),n;if(t){var o=lr(this).constructor;n=Reflect.construct(i,arguments,o)}else n=i.apply(this,arguments);return _u(this,n)}}function _u(e,t){if(t&&(fr(t)==="object"||typeof t=="function"))return t;if(t!==void 0)throw new TypeError("Derived constructors may only return object or undefined");return du(e)}function du(e){if(e===void 0)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return e}function pu(){if(typeof Reflect>"u"||!Reflect.construct||Reflect.construct.sham)return!1;if(typeof Proxy=="function")return!0;try{return Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],function(){})),!0}catch{return!1}}function lr(e){return lr=Object.setPrototypeOf?Object.getPrototypeOf:function(r){return r.__proto__||Object.getPrototypeOf(r)},lr(e)}var hu={fillPatternEnabled:!0,fillPatternAtlas:{type:"image",value:null,async:!0,parameters:{minFilter:"linear"}},fillPatternMapping:{type:"object",value:{},async:!0},fillPatternMask:!0,getFillPattern:{type:"accessor",value:function(t){return t.pattern}},getFillPatternScale:{type:"accessor",value:1},getFillPatternOffset:{type:"accessor",value:[0,0]}},cr=function(e){cu(r,e);var t=uu(r);function r(){var n=arguments.length>0&&arguments[0]!==void 0?arguments[0]:{},o=n.pattern,s=o===void 0?!1:o;return lu(this,r),t.call(this,{pattern:s})}var i=r.prototype;return i.isEnabled=function(o){return o.getAttributeManager()!==null&&!("pathTesselator"in o.state)},i.getShaders=function(o){return o.isEnabled(this)?{modules:[o.opts.pattern&&us].filter(Boolean)}:null},i.initializeState=function(o,s){if(s.isEnabled(this)){var a=this.getAttributeManager();s.opts.pattern&&a.add({fillPatternFrames:{size:4,accessor:"getFillPattern",transform:s.getPatternFrame.bind(this),shaderAttributes:{fillPatternFrames:{divisor:0},instanceFillPatternFrames:{divisor:1}}},fillPatternScales:{size:1,accessor:"getFillPatternScale",defaultValue:1,shaderAttributes:{fillPatternScales:{divisor:0},instanceFillPatternScales:{divisor:1}}},fillPatternOffsets:{size:2,accessor:"getFillPatternOffset",shaderAttributes:{fillPatternOffsets:{divisor:0},instanceFillPatternOffsets:{divisor:1}}}}),this.setState({emptyTexture:this.context.device.createTexture({data:new Uint8Array(4),width:1,height:1})})}},i.updateState=function(o,s){var a=o.props,f=o.oldProps;s.isEnabled(this)&&a.fillPatternMapping&&a.fillPatternMapping!==f.fillPatternMapping&&this.getAttributeManager().invalidate("getFillPattern")},i.draw=function(o,s){if(s.isEnabled(this)){var a=this.props.fillPatternAtlas;this.setModuleParameters({fillPatternTexture:a||this.state.emptyTexture})}},i.finalizeState=function(){var o=this.state.emptyTexture;o?.delete()},i.getPatternFrame=function(o){var s=this.getCurrentLayer().props.fillPatternMapping,a=s&&s[o];return a?[a.x,a.y,a.width,a.height]:[0,0,0,0]},r}(_s.LayerExtension);cr.defaultProps=hu;cr.extensionName="FillStyleExtension";var ds=T(S());function ur(e){return typeof Symbol=="function"&&typeof Symbol.iterator=="symbol"?ur=function(r){return typeof r}:ur=function(r){return r&&typeof Symbol=="function"&&r.constructor===Symbol&&r!==Symbol.prototype?"symbol":typeof r},ur(e)}function gu(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}function Tu(e,t){if(typeof t!="function"&&t!==null)throw new TypeError("Super expression must either be null or a function");e.prototype=Object.create(t&&t.prototype,{constructor:{value:e,writable:!0,configurable:!0}}),t&&Ei(e,t)}function Ei(e,t){return Ei=Object.setPrototypeOf||function(i,n){return i.__proto__=n,i},Ei(e,t)}function Au(e){var t=Eu();return function(){var i=_r(e),n;if(t){var o=_r(this).constructor;n=Reflect.construct(i,arguments,o)}else n=i.apply(this,arguments);return Ru(this,n)}}function Ru(e,t){if(t&&(ur(t)==="object"||typeof t=="function"))return t;if(t!==void 0)throw new TypeError("Derived constructors may only return object or undefined");return bu(e)}function bu(e){if(e===void 0)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return e}function Eu(){if(typeof Reflect>"u"||!Reflect.construct||Reflect.construct.sham)return!1;if(typeof Proxy=="function")return!0;try{return Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],function(){})),!0}catch{return!1}}function _r(e){return _r=Object.setPrototypeOf?Object.getPrototypeOf:function(r){return r.__proto__||Object.getPrototypeOf(r)},_r(e)}var vu={clipBounds:[0,0,1,1],clipByInstance:void 0},ps=`
1357
1354
  uniform vec4 clip_bounds;
1358
1355
 
1359
1356
  bool clip_isInBounds(vec2 position) {
1360
1357
  return position.x >= clip_bounds[0] && position.y >= clip_bounds[1] && position.x < clip_bounds[2] && position.y < clip_bounds[3];
1361
1358
  }
1362
- `,gl={name:"clip-vs",vs:us},Ol={"vs:#decl":`
1363
- varying float clip_isVisible;
1359
+ `,mu={name:"clip-vs",vs:ps},Su={"vs:#decl":`
1360
+ out float clip_isVisible;
1364
1361
  `,"vs:DECKGL_FILTER_GL_POSITION":`
1365
1362
  clip_isVisible = float(clip_isInBounds(geometry.worldPosition.xy));
1366
1363
  `,"fs:#decl":`
1367
- varying float clip_isVisible;
1364
+ in float clip_isVisible;
1368
1365
  `,"fs:DECKGL_FILTER_COLOR":`
1369
1366
  if (clip_isVisible < 0.5) discard;
1370
- `},bl={name:"clip-fs",fs:us},Nl={"vs:#decl":`
1371
- varying vec2 clip_commonPosition;
1367
+ `},yu={name:"clip-fs",fs:ps},Ou={"vs:#decl":`
1368
+ out vec2 clip_commonPosition;
1372
1369
  `,"vs:DECKGL_FILTER_GL_POSITION":`
1373
1370
  clip_commonPosition = geometry.position.xy;
1374
1371
  `,"fs:#decl":`
1375
- varying vec2 clip_commonPosition;
1372
+ in vec2 clip_commonPosition;
1376
1373
  `,"fs:DECKGL_FILTER_COLOR":`
1377
1374
  if (!clip_isInBounds(clip_commonPosition)) discard;
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=`
1375
+ `},dr=function(e){Tu(r,e);var t=Au(r);function r(){return gu(this,r),t.apply(this,arguments)}var i=r.prototype;return i.getShaders=function(){var o="instancePositions"in this.getAttributeManager().attributes;return this.props.clipByInstance!==void 0&&(o=Boolean(this.props.clipByInstance)),this.state.clipByInstance=o,o?{modules:[mu],inject:Su}:{modules:[yu],inject:Ou}},i.draw=function(o){var s=o.uniforms,a=this.props.clipBounds;if(this.state.clipByInstance)s.clip_bounds=a;else{var f=this.projectPosition([a[0],a[1],0]),l=this.projectPosition([a[2],a[3],0]);s.clip_bounds=[Math.min(f[0],l[0]),Math.min(f[1],l[1]),Math.max(f[0],l[0]),Math.max(f[1],l[1])]}},r}(ds.LayerExtension);dr.defaultProps=vu;dr.extensionName="ClipExtension";var Ms=T(S());var hs=T(S()),xu=`
1379
1376
  #ifdef NON_INSTANCED_MODEL
1380
- attribute float collisionPriorities;
1377
+ in float collisionPriorities;
1381
1378
  #else
1382
- attribute float instanceCollisionPriorities;
1379
+ in float instanceCollisionPriorities;
1383
1380
  #endif
1384
1381
 
1385
1382
  uniform sampler2D collision_texture;
@@ -1392,7 +1389,7 @@ vec2 collision_getCoords(vec4 position) {
1392
1389
  }
1393
1390
 
1394
1391
  float collision_match(vec2 tex, vec3 pickingColor) {
1395
- vec4 collision_pickingColor = texture2D(collision_texture, tex);
1392
+ vec4 collision_pickingColor = texture(collision_texture, tex);
1396
1393
  float delta = dot(abs(collision_pickingColor.rgb - pickingColor), vec3(1.0));
1397
1394
  float e = 0.001;
1398
1395
  return step(delta, e);
@@ -1424,7 +1421,7 @@ float collision_isVisible(vec2 texCoords, vec3 pickingColor) {
1424
1421
  float W = 2.0 * floatN + 1.0;
1425
1422
  return pow(accumulator / (W * W), 2.2);
1426
1423
  }
1427
- `,Pl={"vs:#decl":`
1424
+ `,Pu={"vs:#decl":`
1428
1425
  float collision_fade = 1.0;
1429
1426
  `,"vs:DECKGL_FILTER_GL_POSITION":`
1430
1427
  if (collision_sort) {
@@ -1447,18 +1444,18 @@ float collision_isVisible(vec2 texCoords, vec3 pickingColor) {
1447
1444
  }
1448
1445
  `,"vs:DECKGL_FILTER_COLOR":`
1449
1446
  color.a *= collision_fade;
1450
- `},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=`
1447
+ `},Fu=function(t,r){if(!t||!("dummyCollisionMap"in t))return{};var i=t.collisionFBO,n=t.drawToCollisionMap,o=t.dummyCollisionMap;return{collision_sort:Boolean(n),collision_texture:!n&&i?i.colorAttachments[0]:o}},gs={name:"collision",dependencies:[hs.project],vs:xu,inject:Pu,getUniforms:Fu};var Is=T(S());var Rs=T(S());function pr(e){return typeof Symbol=="function"&&typeof Symbol.iterator=="symbol"?pr=function(r){return typeof r}:pr=function(r){return r&&typeof Symbol=="function"&&r.constructor===Symbol&&r!==Symbol.prototype?"symbol":typeof r},pr(e)}function Ts(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var i=Object.getOwnPropertySymbols(e);t&&(i=i.filter(function(n){return Object.getOwnPropertyDescriptor(e,n).enumerable})),r.push.apply(r,i)}return r}function 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(i){Iu(e,i,r[i])}):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(r)):Ts(Object(r)).forEach(function(i){Object.defineProperty(e,i,Object.getOwnPropertyDescriptor(r,i))})}return e}function Iu(e,t,r){return t in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r,e}function Cu(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}function Mu(e,t){if(typeof t!="function"&&t!==null)throw new TypeError("Super expression must either be null or a function");e.prototype=Object.create(t&&t.prototype,{constructor:{value:e,writable:!0,configurable:!0}}),t&&vi(e,t)}function vi(e,t){return vi=Object.setPrototypeOf||function(i,n){return i.__proto__=n,i},vi(e,t)}function Nu(e){var t=wu();return function(){var i=hr(e),n;if(t){var o=hr(this).constructor;n=Reflect.construct(i,arguments,o)}else n=i.apply(this,arguments);return Bu(this,n)}}function Bu(e,t){if(t&&(pr(t)==="object"||typeof t=="function"))return t;if(t!==void 0)throw new TypeError("Derived constructors may only return object or undefined");return Du(e)}function Du(e){if(e===void 0)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return e}function wu(){if(typeof Reflect>"u"||!Reflect.construct||Reflect.construct.sham)return!1;if(typeof Proxy=="function")return!0;try{return Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],function(){})),!0}catch{return!1}}function hr(e){return hr=Object.setPrototypeOf?Object.getPrototypeOf:function(r){return r.__proto__||Object.getPrototypeOf(r)},hr(e)}var bs=function(e){Mu(r,e);var t=Nu(r);function r(){return Cu(this,r),t.apply(this,arguments)}var i=r.prototype;return i.renderCollisionMap=function(o,s){var a=this,f=1,l=[0,0,0,0];return P(this.device,{scissorTest:!0,scissor:[f,f,o.width-2*f,o.height-2*f],blend:!1,depthTest:!0,depthRange:[0,1]},function(){return a.render(As(As({},s),{},{clearColor:l,target:o,pass:"collision"}))})},i.getModuleParameters=function(){return{drawToCollisionMap:!0,pickingActive:1,pickingAttribute:!1,lightSources:{}}},r}(Rs._LayersPass);var Si=T(S());var ms=T(S());function gr(e){return typeof Symbol=="function"&&typeof Symbol.iterator=="symbol"?gr=function(r){return typeof r}:gr=function(r){return r&&typeof Symbol=="function"&&r.constructor===Symbol&&r!==Symbol.prototype?"symbol":typeof r},gr(e)}function Es(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var i=Object.getOwnPropertySymbols(e);t&&(i=i.filter(function(n){return Object.getOwnPropertyDescriptor(e,n).enumerable})),r.push.apply(r,i)}return r}function vs(e){for(var t=1;t<arguments.length;t++){var r=arguments[t]!=null?arguments[t]:{};t%2?Es(Object(r),!0).forEach(function(i){Uu(e,i,r[i])}):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(r)):Es(Object(r)).forEach(function(i){Object.defineProperty(e,i,Object.getOwnPropertyDescriptor(r,i))})}return e}function Uu(e,t,r){return t in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r,e}function Vu(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}function Tr(e,t,r){return typeof Reflect<"u"&&Reflect.get?Tr=Reflect.get:Tr=function(n,o,s){var a=ku(n,o);if(a){var f=Object.getOwnPropertyDescriptor(a,o);return f.get?f.get.call(s):f.value}},Tr(e,t,r||e)}function ku(e,t){for(;!Object.prototype.hasOwnProperty.call(e,t)&&(e=Be(e),e!==null););return e}function Wu(e,t){if(typeof t!="function"&&t!==null)throw new TypeError("Super expression must either be null or a function");e.prototype=Object.create(t&&t.prototype,{constructor:{value:e,writable:!0,configurable:!0}}),t&&mi(e,t)}function mi(e,t){return mi=Object.setPrototypeOf||function(i,n){return i.__proto__=n,i},mi(e,t)}function Hu(e){var t=ju();return function(){var i=Be(e),n;if(t){var o=Be(this).constructor;n=Reflect.construct(i,arguments,o)}else n=i.apply(this,arguments);return Xu(this,n)}}function Xu(e,t){if(t&&(gr(t)==="object"||typeof t=="function"))return t;if(t!==void 0)throw new TypeError("Derived constructors may only return object or undefined");return Lu(e)}function Lu(e){if(e===void 0)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return e}function ju(){if(typeof Reflect>"u"||!Reflect.construct||Reflect.construct.sham)return!1;if(typeof Proxy=="function")return!0;try{return Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],function(){})),!0}catch{return!1}}function Be(e){return Be=Object.setPrototypeOf?Object.getPrototypeOf:function(r){return r.__proto__||Object.getPrototypeOf(r)},Be(e)}var Ss=function(e){Wu(r,e);var t=Hu(r);function r(n,o){var s;Vu(this,r),s=t.call(this,n,o),s.maskMap=void 0,s.fbo=void 0;var a=o.mapSize,f=a===void 0?2048:a;return s.maskMap=n.createTexture({format:"rgba8unorm",width:f,height:f,sampler:{minFilter:"linear",magFilter:"linear",addressModeU:"clamp-to-edge",addressModeV:"clamp-to-edge"}}),s.fbo=n.createFramebuffer({id:"maskmap",width:f,height:f,colorAttachments:[s.maskMap]}),s}var i=r.prototype;return i.render=function(o){var s=this,a=[!1,!1,!1,!1];a[o.channel]=!0;var f=[255,255,255,255];return P(this.device,{blend:!0,blendFunc:[0,1],blendEquation:32778,colorMask:a,depthTest:!1},function(){return Tr(Be(r.prototype),"render",s).call(s,vs(vs({},o),{},{clearColor:f,target:s.fbo,pass:"mask"}))})},i.shouldDrawLayer=function(o){return o.props.operation.includes("mask")},i.delete=function(){this.fbo.delete(),this.maskMap.delete()},r}(ms._LayersPass);var Ar=T(S());function Ku(e,t){return $u(e)||Yu(e,t)||Os(e,t)||zu()}function zu(){throw new TypeError(`Invalid attempt to destructure non-iterable instance.
1448
+ In order to be iterable, non-array objects must have a [Symbol.iterator]() method.`)}function Yu(e,t){var r=e==null?null:typeof Symbol<"u"&&e[Symbol.iterator]||e["@@iterator"];if(r!=null){var i=[],n=!0,o=!1,s,a;try{for(r=r.call(e);!(n=(s=r.next()).done)&&(i.push(s.value),!(t&&i.length===t));n=!0);}catch(f){o=!0,a=f}finally{try{!n&&r.return!=null&&r.return()}finally{if(o)throw a}}return i}}function $u(e){if(Array.isArray(e))return e}function qu(e,t){var r=typeof Symbol<"u"&&e[Symbol.iterator]||e["@@iterator"];if(!r){if(Array.isArray(e)||(r=Os(e))||t&&e&&typeof e.length=="number"){r&&(e=r);var i=0,n=function(){};return{s:n,n:function(){return i>=e.length?{done:!0}:{done:!1,value:e[i++]}},e:function(l){throw l},f:n}}throw new TypeError(`Invalid attempt to iterate non-iterable instance.
1449
+ In order to be iterable, non-array objects must have a [Symbol.iterator]() method.`)}var o=!0,s=!1,a;return{s:function(){r=r.call(e)},n:function(){var l=r.next();return o=l.done,l},e:function(l){s=!0,a=l},f:function(){try{!o&&r.return!=null&&r.return()}finally{if(s)throw a}}}}function Os(e,t){if(e){if(typeof e=="string")return ys(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 ys(e,t)}}function ys(e,t){(t==null||t>e.length)&&(t=e.length);for(var r=0,i=new Array(t);r<t;r++)i[r]=e[r];return i}function De(e,t){var r=[1/0,1/0,-1/0,-1/0],i=qu(e),n;try{for(i.s();!(n=i.n()).done;){var o=n.value,s=o.getBounds();if(s){var a=o.projectPosition(s[0],{viewport:t,autoOffset:!1}),f=o.projectPosition(s[1],{viewport:t,autoOffset:!1});r[0]=Math.min(r[0],a[0]),r[1]=Math.min(r[1],a[1]),r[2]=Math.max(r[2],f[0]),r[3]=Math.max(r[3],f[1])}}}catch(l){i.e(l)}finally{i.f()}return Number.isFinite(r[0])?r:null}var Zu=2048;function we(e){var t=e.bounds,r=e.viewport,i=e.border,n=i===void 0?0:i,o=r.isGeospatial;if(t[2]<=t[0]||t[3]<=t[1])return null;var s=r.unprojectPosition([(t[0]+t[2])/2,(t[1]+t[3])/2,0]),a=e.width,f=e.height,l=e.zoom;if(l===void 0){a=a-n*2,f=f-n*2;var c=Math.min(a/(t[2]-t[0]),f/(t[3]-t[1]));l=Math.min(Math.log2(c),20)}else if(!a||!f){var u=Math.pow(2,l);a=Math.round(Math.abs(t[2]-t[0])*u),f=Math.round(Math.abs(t[3]-t[1])*u);var _=Zu-n*2;if(a>_||f>_){var d=_/Math.max(a,f);a=Math.round(a*d),f=Math.round(f*d),l+=Math.log2(d)}}return o?new Ar.WebMercatorViewport({id:r.id,x:n,y:n,width:a,height:f,longitude:s[0],latitude:s[1],zoom:l,orthographic:!0}):new Ar.OrthographicViewport({id:r.id,x:n,y:n,width:a,height:f,target:s,zoom:l,flipY:!1})}function Qu(e,t){var r;if(t&&t.length===2){var i=Ku(t,2),n=i[0],o=i[1],s=e.getBounds({z:n}),a=e.getBounds({z:o});r=[Math.min(s[0],a[0]),Math.min(s[1],a[1]),Math.max(s[2],a[2]),Math.max(s[3],a[3])]}else r=e.getBounds();var f=e.projectPosition(r.slice(0,2)),l=e.projectPosition(r.slice(2,4));return[f[0],f[1],l[0],l[1]]}function Ue(e,t,r){if(!e)return[0,0,1,1];var i=Qu(t,r),n=Ju(i);return e[2]-e[0]<=n[2]-n[0]&&e[3]-e[1]<=n[3]-n[1]?e:[Math.max(e[0],n[0]),Math.max(e[1],n[1]),Math.min(e[2],n[2]),Math.min(e[3],n[3])]}function Ju(e){var t=e[2]-e[0],r=e[3]-e[1],i=(e[0]+e[2])/2,n=(e[1]+e[3])/2;return[i-t,n-r,i+t,n+r]}function Gu(e,t){var r=typeof Symbol<"u"&&e[Symbol.iterator]||e["@@iterator"];if(!r){if(Array.isArray(e)||(r=e_(e))||t&&e&&typeof e.length=="number"){r&&(e=r);var i=0,n=function(){};return{s:n,n:function(){return i>=e.length?{done:!0}:{done:!1,value:e[i++]}},e:function(l){throw l},f:n}}throw new TypeError(`Invalid attempt to iterate non-iterable instance.
1450
+ In order to be iterable, non-array objects must have a [Symbol.iterator]() method.`)}var o=!0,s=!1,a;return{s:function(){r=r.call(e)},n:function(){var l=r.next();return o=l.done,l},e:function(l){s=!0,a=l},f:function(){try{!o&&r.return!=null&&r.return()}finally{if(s)throw a}}}}function e_(e,t){if(e){if(typeof e=="string")return xs(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 xs(e,t)}}function xs(e,t){(t==null||t>e.length)&&(t=e.length);for(var r=0,i=new Array(t);r<t;r++)i[r]=e[r];return i}function t_(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}var Rr=function(){function e(){t_(this,e),this.id="mask-effect",this.props=null,this.useInPicking=!0,this.order=0,this.dummyMaskMap=void 0,this.channels=[],this.masks=null,this.maskPass=void 0,this.maskMap=void 0,this.lastViewport=void 0}var t=e.prototype;return t.preRender=function(i,n){var o=n.layers,s=n.layerFilter,a=n.viewports,f=n.onViewportActive,l=n.views,c=n.isPicking,u=!1;if(this.dummyMaskMap||(this.dummyMaskMap=i.createTexture({width:1,height:1})),c)return{didRender:u};var _=o.filter(function(A){return A.props.visible&&A.props.operation.includes("mask")});if(_.length===0)return this.masks=null,this.channels.length=0,{didRender:u};this.masks={},this.maskPass||(this.maskPass=new Ss(i,{id:"default-mask"}),this.maskMap=this.maskPass.maskMap);var d=this._sortMaskChannels(_),p=a[0],g=!this.lastViewport||!this.lastViewport.equals(p);if(p.resolution!==void 0)return Si.log.warn("MaskExtension is not supported in GlobeView")(),{didRender:u};for(var h in d){var R=this._renderChannel(d[h],{layerFilter:s,onViewportActive:f,views:l,viewport:p,viewportChanged:g});u||(u=R)}return{didRender:u}},t._renderChannel=function(i,n){var o=n.layerFilter,s=n.onViewportActive,a=n.views,f=n.viewport,l=n.viewportChanged,c=!1,u=this.channels[i.index];if(!u)return c;var _=i===u||i.layers.length!==u.layers.length||i.layers.some(function(R,A){return R!==u.layers[A]||R.props.transitions})||i.layerBounds.some(function(R,A){return R!==u.layerBounds[A]});if(i.bounds=u.bounds,i.maskBounds=u.maskBounds,this.channels[i.index]=i,_||l){this.lastViewport=f;var d=De(i.layers,f);if(i.bounds=d&&Ue(d,f),_||!Ne(i.bounds,u.bounds)){var p=this.maskPass,g=this.maskMap,h=d&&we({bounds:i.bounds,viewport:f,width:g.width,height:g.height,border:1});i.maskBounds=h?h.getBounds():[0,0,1,1],p.render({pass:"mask",channel:i.index,layers:i.layers,layerFilter:o,viewports:h?[h]:[],onViewportActive:s,views:a,moduleParameters:{devicePixelRatio:1}}),c=!0}}return this.masks[i.id]={index:i.index,bounds:i.maskBounds,coordinateOrigin:i.coordinateOrigin,coordinateSystem:i.coordinateSystem},c},t._sortMaskChannels=function(i){var n=this,o={},s=0,a=Gu(i),f;try{var l=function(){var h=f.value,R=h.root.id,A=o[R];if(!A){if(++s>4)return Si.log.warn("Too many mask layers. The max supported is 4")(),"continue";A={id:R,index:n.channels.findIndex(function(m){return m?.id===R}),layers:[],layerBounds:[],coordinateOrigin:h.root.props.coordinateOrigin,coordinateSystem:h.root.props.coordinateSystem},o[R]=A}A.layers.push(h),A.layerBounds.push(h.getBounds())};for(a.s();!(f=a.n()).done;)var c=l()}catch(g){a.e(g)}finally{a.f()}for(var u=0;u<4;u++){var _=this.channels[u];(!_||!(_.id in o))&&(this.channels[u]=null)}for(var d in o){var p=o[d];p.index<0&&(p.index=this.channels.findIndex(function(g){return!g}),this.channels[p.index]=p)}return o},t.getModuleParameters=function(){return{maskMap:this.masks?this.maskMap:this.dummyMaskMap,maskChannels:this.masks}},t.cleanup=function(){this.dummyMaskMap&&(this.dummyMaskMap.delete(),this.dummyMaskMap=void 0),this.maskPass&&(this.maskPass.delete(),this.maskPass=void 0,this.maskMap=void 0),this.lastViewport=void 0,this.masks=null,this.channels.length=0},e}();function r_(e,t){var r=typeof Symbol<"u"&&e[Symbol.iterator]||e["@@iterator"];if(!r){if(Array.isArray(e)||(r=Fs(e))||t&&e&&typeof e.length=="number"){r&&(e=r);var i=0,n=function(){};return{s:n,n:function(){return i>=e.length?{done:!0}:{done:!1,value:e[i++]}},e:function(l){throw l},f:n}}throw new TypeError(`Invalid attempt to iterate non-iterable instance.
1451
+ In order to be iterable, non-array objects must have a [Symbol.iterator]() method.`)}var o=!0,s=!1,a;return{s:function(){r=r.call(e)},n:function(){var l=r.next();return o=l.done,l},e:function(l){s=!0,a=l},f:function(){try{!o&&r.return!=null&&r.return()}finally{if(s)throw a}}}}function i_(e,t){return s_(e)||o_(e,t)||Fs(e,t)||n_()}function n_(){throw new TypeError(`Invalid attempt to destructure non-iterable instance.
1452
+ In order to be iterable, non-array objects must have a [Symbol.iterator]() method.`)}function Fs(e,t){if(e){if(typeof e=="string")return Ps(e,t);var r=Object.prototype.toString.call(e).slice(8,-1);if(r==="Object"&&e.constructor&&(r=e.constructor.name),r==="Map"||r==="Set")return Array.from(e);if(r==="Arguments"||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(r))return Ps(e,t)}}function Ps(e,t){(t==null||t>e.length)&&(t=e.length);for(var r=0,i=new Array(t);r<t;r++)i[r]=e[r];return i}function o_(e,t){var r=e==null?null:typeof Symbol<"u"&&e[Symbol.iterator]||e["@@iterator"];if(r!=null){var i=[],n=!0,o=!1,s,a;try{for(r=r.call(e);!(n=(s=r.next()).done)&&(i.push(s.value),!(t&&i.length===t));n=!0);}catch(f){o=!0,a=f}finally{try{!n&&r.return!=null&&r.return()}finally{if(o)throw a}}return i}}function s_(e){if(Array.isArray(e))return e}function a_(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}var yi=2,Cs=function(){function e(){a_(this,e),this.id="collision-filter-effect",this.props=null,this.useInPicking=!0,this.order=1,this.channels={},this.collisionFilterPass=void 0,this.collisionFBOs={},this.dummyCollisionMap=void 0,this.lastViewport=void 0}var t=e.prototype;return t.preRender=function(i,n){var o,s=n.effects,a=n.layers,f=n.layerFilter,l=n.viewports,c=n.onViewportActive,u=n.views,_=n.isPicking,d=n.preRenderStats,p=d===void 0?{}:d;if(this.dummyCollisionMap||(this.dummyCollisionMap=i.createTexture({width:1,height:1})),!_){var g=a.filter(function(ht){var ye=ht.props,ra=ye.visible,ia=ye.collisionEnabled;return ra&&ia});if(g.length===0){this.channels={};return}this.collisionFilterPass||(this.collisionFilterPass=new bs(i,{id:"default-collision-filter"}));var h=s?.filter(function(ht){return ht.constructor===Rr}),R=(o=p["mask-effect"])===null||o===void 0?void 0:o.didRender,A=this._groupByCollisionGroup(i,g),m=l[0],B=!this.lastViewport||!this.lastViewport.equals(m)||R;for(var X in A){var q=this.collisionFBOs[X],D=A[X],ce=i.canvasContext.getPixelSize(),Z=i_(ce,2),W=Z[0],Se=Z[1];q.resize({width:W/yi,height:Se/yi}),this._render(D,{effects:h,layerFilter:f,onViewportActive:c,views:u,viewport:m,viewportChanged:B})}}},t._render=function(i,n){var o=n.effects,s=n.layerFilter,a=n.onViewportActive,f=n.views,l=n.viewport,c=n.viewportChanged,u=i.collisionGroup,_=this.channels[u];if(_){var d=c||i===_||!(0,Is._deepEqual)(_.layers,i.layers,1)||i.layerBounds.some(function(g,h){return!Ne(g,_.layerBounds[h])})||i.allLayersLoaded!==_.allLayersLoaded||i.layers.some(function(g){return g.props.transitions});if(this.channels[u]=i,d){this.lastViewport=l;var p=this.collisionFBOs[u];this.collisionFilterPass.renderCollisionMap(p,{pass:"collision-filter",isPicking:!0,layers:i.layers,effects:o,layerFilter:s,viewports:l?[l]:[],onViewportActive:a,views:f,moduleParameters:{dummyCollisionMap:this.dummyCollisionMap,devicePixelRatio:p.device.canvasContext.getDevicePixelRatio()/yi}})}}},t._groupByCollisionGroup=function(i,n){var o={},s=r_(n),a;try{for(s.s();!(a=s.n()).done;){var f=a.value,l=f.props.collisionGroup,c=o[l];c||(c={collisionGroup:l,layers:[],layerBounds:[],allLayersLoaded:!0},o[l]=c),c.layers.push(f),c.layerBounds.push(f.getBounds()),f.isLoaded||(c.allLayersLoaded=!1)}}catch(R){s.e(R)}finally{s.f()}for(var u=0,_=Object.keys(o);u<_.length;u++){var d=_[u];this.collisionFBOs[d]||this.createFBO(i,d),this.channels[d]||(this.channels[d]=o[d])}for(var p=0,g=Object.keys(this.collisionFBOs);p<g.length;p++){var h=g[p];o[h]||this.destroyFBO(h)}return o},t.getModuleParameters=function(i){var n=i.props.collisionGroup,o=this.collisionFBOs,s=this.dummyCollisionMap;return{collisionFBO:o[n],dummyCollisionMap:s}},t.cleanup=function(){this.dummyCollisionMap&&(this.dummyCollisionMap.delete(),this.dummyCollisionMap=void 0),this.channels={};for(var i=0,n=Object.keys(this.collisionFBOs);i<n.length;i++){var o=n[i];this.destroyFBO(o)}this.collisionFBOs={},this.lastViewport=void 0},t.createFBO=function(i,n){var o=i.gl.canvas,s=o.width,a=o.height,f=i.createTexture({format:"rgba8unorm",width:s,height:a,sampler:{minFilter:"nearest",magFilter:"nearest",addressModeU:"clamp-to-edge",addressModeV:"clamp-to-edge"}}),l=new z(i,{format:"depth16unorm",width:s,height:a});this.collisionFBOs[n]=i.createFramebuffer({id:"collision-".concat(n),width:s,height:a,colorAttachments:[f],depthStencilAttachment:l})},t.destroyFBO=function(i){var n,o,s=this.collisionFBOs[i];(n=s.colorAttachments[0])===null||n===void 0||n.destroy(),(o=s.depthStencilAttachment)===null||o===void 0||o.destroy(),s.destroy(),delete this.collisionFBOs[i]},e}();function br(e){return typeof Symbol=="function"&&typeof Symbol.iterator=="symbol"?br=function(r){return typeof r}:br=function(r){return r&&typeof Symbol=="function"&&r.constructor===Symbol&&r!==Symbol.prototype?"symbol":typeof r},br(e)}function f_(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}function l_(e,t){if(typeof t!="function"&&t!==null)throw new TypeError("Super expression must either be null or a function");e.prototype=Object.create(t&&t.prototype,{constructor:{value:e,writable:!0,configurable:!0}}),t&&Oi(e,t)}function Oi(e,t){return Oi=Object.setPrototypeOf||function(i,n){return i.__proto__=n,i},Oi(e,t)}function c_(e){var t=d_();return function(){var i=Er(e),n;if(t){var o=Er(this).constructor;n=Reflect.construct(i,arguments,o)}else n=i.apply(this,arguments);return u_(this,n)}}function u_(e,t){if(t&&(br(t)==="object"||typeof t=="function"))return t;if(t!==void 0)throw new TypeError("Derived constructors may only return object or undefined");return __(e)}function __(e){if(e===void 0)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return e}function d_(){if(typeof Reflect>"u"||!Reflect.construct||Reflect.construct.sham)return!1;if(typeof Proxy=="function")return!0;try{return Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],function(){})),!0}catch{return!1}}function Er(e){return Er=Object.setPrototypeOf?Object.getPrototypeOf:function(r){return r.__proto__||Object.getPrototypeOf(r)},Er(e)}var p_={getCollisionPriority:{type:"accessor",value:0},collisionEnabled:!0,collisionGroup:{type:"string",value:"default"},collisionTestProps:{}},vr=function(e){l_(r,e);var t=c_(r);function r(){return f_(this,r),t.apply(this,arguments)}var i=r.prototype;return i.getShaders=function(){return{modules:[gs]}},i.draw=function(o){var s=o.uniforms,a=o.context,f=o.moduleParameters,l=this.props.collisionEnabled,c=f.collisionFBO,u=f.drawToCollisionMap,_=l&&Boolean(c);s.collision_enabled=_,u&&(this.props=this.clone(this.props.collisionTestProps).props)},i.initializeState=function(o,s){var a;if(this.getAttributeManager()!==null){(a=this.context.deck)===null||a===void 0||a._addDefaultEffect(new Cs);var f=this.getAttributeManager();f.add({collisionPriorities:{size:1,accessor:"getCollisionPriority",shaderAttributes:{collisionPriorities:{divisor:0},instanceCollisionPriorities:{divisor:1}}}})}},i.getNeedsPickingBuffer=function(){return this.props.collisionEnabled},r}(Ms.LayerExtension);vr.defaultProps=p_;vr.extensionName="CollisionFilterExtension";var Te=T(S());var Ns=T(S()),h_=`
1456
1453
  uniform vec4 mask_bounds;
1457
1454
  uniform bool mask_maskByInstance;
1458
1455
  vec2 mask_getCoords(vec4 position) {
1459
1456
  return (position.xy - mask_bounds.xy) / (mask_bounds.zw - mask_bounds.xy);
1460
1457
  }
1461
- `,Rc=`
1458
+ `,g_=`
1462
1459
  uniform sampler2D mask_texture;
1463
1460
  uniform int mask_channel;
1464
1461
  uniform bool mask_enabled;
@@ -1467,7 +1464,7 @@ bool mask_isInBounds(vec2 texCoords) {
1467
1464
  if (!mask_enabled) {
1468
1465
  return true;
1469
1466
  }
1470
- vec4 maskColor = texture2D(mask_texture, texCoords);
1467
+ vec4 maskColor = texture(mask_texture, texCoords);
1471
1468
  float maskValue = 1.0;
1472
1469
  if (mask_channel == 0) {
1473
1470
  maskValue = maskColor.r;
@@ -1485,8 +1482,8 @@ bool mask_isInBounds(vec2 texCoords) {
1485
1482
  return maskValue < 0.5;
1486
1483
  }
1487
1484
  }
1488
- `,pc={"vs:#decl":`
1489
- varying vec2 mask_texCoords;
1485
+ `,T_={"vs:#decl":`
1486
+ out vec2 mask_texCoords;
1490
1487
  `,"vs:#main-end":`
1491
1488
  vec4 mask_common_position;
1492
1489
  if (mask_maskByInstance) {
@@ -1496,24 +1493,24 @@ varying vec2 mask_texCoords;
1496
1493
  }
1497
1494
  mask_texCoords = mask_getCoords(mask_common_position);
1498
1495
  `,"fs:#decl":`
1499
- varying vec2 mask_texCoords;
1496
+ in vec2 mask_texCoords;
1500
1497
  `,"fs:#main-start":`
1501
1498
  if (mask_enabled) {
1502
1499
  bool mask = mask_isInBounds(mask_texCoords);
1503
1500
 
1504
1501
  // Debug: show extent of render target
1505
- // gl_FragColor = vec4(mask_texCoords, 0.0, 1.0);
1506
- gl_FragColor = texture2D(mask_texture, mask_texCoords);
1502
+ // fragColor = vec4(mask_texCoords, 0.0, 1.0);
1503
+ fragColor = texture(mask_texture, mask_texCoords);
1507
1504
 
1508
1505
  if (!mask) discard;
1509
1506
  }
1510
- `},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":`
1507
+ `},A_=function(t){return t&&"maskMap"in t?{mask_texture:t.maskMap}:{}},Bs={name:"mask",dependencies:[Ns.project],vs:h_,fs:g_,inject:T_,getUniforms:A_};function mr(e){return typeof Symbol=="function"&&typeof Symbol.iterator=="symbol"?mr=function(r){return typeof r}:mr=function(r){return r&&typeof Symbol=="function"&&r.constructor===Symbol&&r!==Symbol.prototype?"symbol":typeof r},mr(e)}function R_(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}function b_(e,t){if(typeof t!="function"&&t!==null)throw new TypeError("Super expression must either be null or a function");e.prototype=Object.create(t&&t.prototype,{constructor:{value:e,writable:!0,configurable:!0}}),t&&xi(e,t)}function xi(e,t){return xi=Object.setPrototypeOf||function(i,n){return i.__proto__=n,i},xi(e,t)}function E_(e){var t=S_();return function(){var i=Sr(e),n;if(t){var o=Sr(this).constructor;n=Reflect.construct(i,arguments,o)}else n=i.apply(this,arguments);return v_(this,n)}}function v_(e,t){if(t&&(mr(t)==="object"||typeof t=="function"))return t;if(t!==void 0)throw new TypeError("Derived constructors may only return object or undefined");return m_(e)}function m_(e){if(e===void 0)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return e}function S_(){if(typeof Reflect>"u"||!Reflect.construct||Reflect.construct.sham)return!1;if(typeof Proxy=="function")return!0;try{return Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],function(){})),!0}catch{return!1}}function Sr(e){return Sr=Object.setPrototypeOf?Object.getPrototypeOf:function(r){return r.__proto__||Object.getPrototypeOf(r)},Sr(e)}var y_={maskId:"",maskByInstance:void 0,maskInverted:!1},yr=function(e){b_(r,e);var t=E_(r);function r(){return R_(this,r),t.apply(this,arguments)}var i=r.prototype;return i.initializeState=function(){var o;(o=this.context.deck)===null||o===void 0||o._addDefaultEffect(new Rr)},i.getShaders=function(){var o="instancePositions"in this.getAttributeManager().attributes;return this.props.maskByInstance!==void 0&&(o=Boolean(this.props.maskByInstance)),this.state.maskByInstance=o,{modules:[Bs]}},i.draw=function(o){var s=o.uniforms,a=o.context,f=o.moduleParameters;s.mask_maskByInstance=this.state.maskByInstance;var l=this.props,c=l.maskId,u=l.maskInverted,_=f.maskChannels,d=a.viewport;if(_&&_[c]){var p=_[c],g=p.index,h=p.bounds,R=p.coordinateOrigin,A=_[c].coordinateSystem;s.mask_enabled=!0,s.mask_channel=g,s.mask_inverted=u,A===Te.COORDINATE_SYSTEM.DEFAULT&&(A=d.isGeospatial?Te.COORDINATE_SYSTEM.LNGLAT:Te.COORDINATE_SYSTEM.CARTESIAN);var m={modelMatrix:null,fromCoordinateOrigin:R,fromCoordinateSystem:A},B=this.projectPosition([h[0],h[1],0],m),X=this.projectPosition([h[2],h[3],0],m);s.mask_bounds=[B[0],B[1],X[0],X[1]]}else c&&Te.log.warn("Could not find a mask layer with id: ".concat(c))(),s.mask_enabled=!1},r}(Te.LayerExtension);yr.defaultProps=y_;yr.extensionName="MaskExtension";var ta=T(S());var Nr=T(S());var ws=T(S()),ne={NONE:0,WRITE_HEIGHT_MAP:1,USE_HEIGHT_MAP:2,USE_COVER:3,USE_COVER_ONLY:4,SKIP:5},Ds=Object.keys(ne).map(function(e){return"const float TERRAIN_MODE_".concat(e," = ").concat(ne[e],".0;")}).join(`
1508
+ `),Or={name:"terrain",dependencies:[ws.project],inject:{"vs:#decl":`
1512
1509
  uniform float terrain_mode;
1513
1510
  uniform sampler2D terrain_map;
1514
1511
  uniform vec4 terrain_bounds;
1515
- varying vec3 commonPos;
1516
- `.concat(Ms,`
1512
+ out vec3 commonPos;
1513
+ `.concat(Ds,`
1517
1514
  `),"vs:#main-start":`
1518
1515
  if (terrain_mode == TERRAIN_MODE_SKIP) {
1519
1516
  gl_Position = vec4(0.0);
@@ -1532,7 +1529,7 @@ if (terrain_mode == TERRAIN_MODE_USE_HEIGHT_MAP) {
1532
1529
  vec3 anchorCommon = project_position(anchor);
1533
1530
  vec2 texCoords = (anchorCommon.xy - terrain_bounds.xy) / terrain_bounds.zw;
1534
1531
  if (texCoords.x >= 0.0 && texCoords.y >= 0.0 && texCoords.x <= 1.0 && texCoords.y <= 1.0) {
1535
- float terrainZ = texture2D(terrain_map, texCoords).r;
1532
+ float terrainZ = texture(terrain_map, texCoords).r;
1536
1533
  geometry.position.z += terrainZ;
1537
1534
  position = project_common_position_to_clipspace(geometry.position);
1538
1535
  }
@@ -1541,17 +1538,17 @@ if (terrain_mode == TERRAIN_MODE_USE_HEIGHT_MAP) {
1541
1538
  uniform float terrain_mode;
1542
1539
  uniform sampler2D terrain_map;
1543
1540
  uniform vec4 terrain_bounds;
1544
- varying vec3 commonPos;
1545
- `.concat(Ms,`
1541
+ in vec3 commonPos;
1542
+ `.concat(Ds,`
1546
1543
  `),"fs:#main-start":`
1547
1544
  if (terrain_mode == TERRAIN_MODE_WRITE_HEIGHT_MAP) {
1548
- gl_FragColor = vec4(commonPos.z, 0.0, 0.0, 1.0);
1545
+ fragColor = vec4(commonPos.z, 0.0, 0.0, 1.0);
1549
1546
  return;
1550
1547
  }
1551
1548
  `,"fs:DECKGL_FILTER_COLOR":`
1552
1549
  if ((terrain_mode == TERRAIN_MODE_USE_COVER) || (terrain_mode == TERRAIN_MODE_USE_COVER_ONLY)) {
1553
1550
  vec2 texCoords = (commonPos.xy - terrain_bounds.xy) / terrain_bounds.zw;
1554
- vec4 pixel = texture2D(terrain_map, texCoords);
1551
+ vec4 pixel = texture(terrain_map, texCoords);
1555
1552
  if (terrain_mode == TERRAIN_MODE_USE_COVER_ONLY) {
1556
1553
  color = pixel;
1557
1554
  } else {
@@ -1560,9 +1557,9 @@ if ((terrain_mode == TERRAIN_MODE_USE_COVER) || (terrain_mode == TERRAIN_MODE_US
1560
1557
  }
1561
1558
  return;
1562
1559
  }
1563
- `},getUniforms:function(){var t=arguments.length>0&&arguments[0]!==void 0?arguments[0]:{},r=arguments.length>1?arguments[1]:void 0;if("dummyHeightMap"in t){var 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);})();
1560
+ `},getUniforms:function(){var t=arguments.length>0&&arguments[0]!==void 0?arguments[0]:{},r=arguments.length>1?arguments[1]:void 0;if("dummyHeightMap"in t){var i=t.drawToTerrainHeightMap,n=t.heightMap,o=t.heightMapBounds,s=t.dummyHeightMap,a=t.terrainCover,f=t.useTerrainHeightMap,l=t.terrainSkipRender,c=r.project_uCommonOrigin,u=l?ne.SKIP:ne.NONE,_=s,d=null;if(i)u=ne.WRITE_HEIGHT_MAP,d=o;else if(f&&n)u=ne.USE_HEIGHT_MAP,_=n,d=o;else if(a){var p=t.pickingActive;_=p?a.getPickingFramebuffer():a.getRenderFramebuffer(),p&&(u=ne.SKIP),_?(u=u===ne.SKIP?ne.USE_COVER_ONLY:ne.USE_COVER,d=a.bounds):_=s}return{terrain_mode:u,terrain_map:_,terrain_bounds:d?[d[0]-c[0],d[1]-c[1],d[2]-d[0],d[3]-d[1]]:[0,0,0,0]}}return null}};function Us(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var i=Object.getOwnPropertySymbols(e);t&&(i=i.filter(function(n){return Object.getOwnPropertyDescriptor(e,n).enumerable})),r.push.apply(r,i)}return r}function Vs(e){for(var t=1;t<arguments.length;t++){var r=arguments[t]!=null?arguments[t]:{};t%2?Us(Object(r),!0).forEach(function(i){O_(e,i,r[i])}):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(r)):Us(Object(r)).forEach(function(i){Object.defineProperty(e,i,Object.getOwnPropertyDescriptor(r,i))})}return e}function O_(e,t,r){return t in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r,e}function dt(e,t){return e.createFramebuffer({id:t.id,colorAttachments:[e.createTexture(Vs(Vs({},t.float&&{format:e.info.type==="webgl2"?"rgba32float":"rgba8unorm",type:5126}),{},{mipmaps:!1,sampler:{minFilter:"linear",magFilter:"linear",addressModeU:"clamp-to-edge",addressModeV:"clamp-to-edge"}}))]})}function x_(e,t){var r=typeof Symbol<"u"&&e[Symbol.iterator]||e["@@iterator"];if(!r){if(Array.isArray(e)||(r=P_(e))||t&&e&&typeof e.length=="number"){r&&(e=r);var i=0,n=function(){};return{s:n,n:function(){return i>=e.length?{done:!0}:{done:!1,value:e[i++]}},e:function(l){throw l},f:n}}throw new TypeError(`Invalid attempt to iterate non-iterable instance.
1561
+ In order to be iterable, non-array objects must have a [Symbol.iterator]() method.`)}var o=!0,s=!1,a;return{s:function(){r=r.call(e)},n:function(){var l=r.next();return o=l.done,l},e:function(l){s=!0,a=l},f:function(){try{!o&&r.return!=null&&r.return()}finally{if(s)throw a}}}}function P_(e,t){if(e){if(typeof e=="string")return ks(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 ks(e,t)}}function ks(e,t){(t==null||t>e.length)&&(t=e.length);for(var r=0,i=new Array(t);r<t;r++)i[r]=e[r];return i}function F_(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}function Ws(e,t){for(var r=0;r<t.length;r++){var i=t[r];i.enumerable=i.enumerable||!1,i.configurable=!0,"value"in i&&(i.writable=!0),Object.defineProperty(e,i.key,i)}}function I_(e,t,r){return t&&Ws(e.prototype,t),r&&Ws(e,r),e}var Hs=function(){function e(r){F_(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=Xs(r)}var t=e.prototype;return t.shouldUpdate=function(i){var n=i.targetLayer,o=i.viewport,s=i.layers,a=i.layerNeedsRedraw;n&&(this.targetLayer=n);var f=o?this._updateViewport(o):!1,l=s?this._updateLayers(s):!1;if(a){var c=x_(this.layers),u;try{for(c.s();!(u=c.n()).done;){var _=u.value;if(a[_]){l=!0;break}}}catch(d){c.e(d)}finally{c.f()}}return l||f},t._updateLayers=function(i){var n=!1;if(i=this.tile?C_(this.tile,i):i,i.length!==this.layers.length)n=!0;else for(var o=0;o<i.length;o++){var s=i[o].id;if(s!==this.layers[o]){n=!0;break}}return n&&(this.layers=i.map(function(a){return a.id})),n},t._updateViewport=function(i){var n=this.targetLayer,o=!1;if(this.tile&&"boundingBox"in this.tile){if(!this.targetBounds){o=!0,this.targetBounds=this.tile.boundingBox;var s=i.projectPosition(this.targetBounds[0]),a=i.projectPosition(this.targetBounds[1]);this.targetBoundsCommon=[s[0],s[1],a[0],a[1]]}}else this.targetBounds!==n.getBounds()&&(o=!0,this.targetBounds=n.getBounds(),this.targetBoundsCommon=De([n],i));if(!this.targetBoundsCommon)return!1;var f=Math.ceil(i.zoom+.5);if(this.tile)this.bounds=this.targetBoundsCommon;else{var l,c=(l=this.renderViewport)===null||l===void 0?void 0:l.zoom;o=o||f!==c;var u=Ue(this.targetBoundsCommon,i),_=this.bounds;o=o||!_||u.some(function(d,p){return d!==_[p]}),this.bounds=u}return o&&(this.renderViewport=we({bounds:this.bounds,zoom:f,viewport:i})),o},t.getRenderFramebuffer=function(){return!this.renderViewport||this.layers.length===0?null:(this.fbo||(this.fbo=dt(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=dt(this.targetLayer.context.device,{id:"".concat(this.id,"-picking")})),this.pickingFbo)},t.filterLayers=function(i){var n=this;return i.filter(function(o){var s=o.id;return n.layers.includes(s)})},t.delete=function(){var i=this.fbo,n=this.pickingFbo;i&&(i.colorAttachments[0].destroy(),i.destroy()),n&&(n.colorAttachments[0].destroy(),n.destroy())},I_(e,[{key:"id",get:function(){return this.targetLayer.id}},{key:"isActive",get:function(){return Boolean(this.targetLayer.getCurrentLayer())}}]),e}();function C_(e,t){return t.filter(function(r){var i=Xs(r);return i?M_(e.boundingBox,i.boundingBox):!0})}function Xs(e){for(;e;){var t=e.props.tile;if(t)return t;e=e.parent}return null}function M_(e,t){return e&&t?e[0][0]<t[1][0]&&t[0][0]<e[1][0]&&e[0][1]<t[1][1]&&t[0][1]<e[1][1]:!1}var js=T(S());function Pr(e){return typeof Symbol=="function"&&typeof Symbol.iterator=="symbol"?Pr=function(r){return typeof r}:Pr=function(r){return r&&typeof Symbol=="function"&&r.constructor===Symbol&&r!==Symbol.prototype?"symbol":typeof r},Pr(e)}function Ls(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var i=Object.getOwnPropertySymbols(e);t&&(i=i.filter(function(n){return Object.getOwnPropertyDescriptor(e,n).enumerable})),r.push.apply(r,i)}return r}function xr(e){for(var t=1;t<arguments.length;t++){var r=arguments[t]!=null?arguments[t]:{};t%2?Ls(Object(r),!0).forEach(function(i){N_(e,i,r[i])}):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(r)):Ls(Object(r)).forEach(function(i){Object.defineProperty(e,i,Object.getOwnPropertyDescriptor(r,i))})}return e}function N_(e,t,r){return t in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r,e}function B_(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}function D_(e,t){if(typeof t!="function"&&t!==null)throw new TypeError("Super expression must either be null or a function");e.prototype=Object.create(t&&t.prototype,{constructor:{value:e,writable:!0,configurable:!0}}),t&&Pi(e,t)}function Pi(e,t){return Pi=Object.setPrototypeOf||function(i,n){return i.__proto__=n,i},Pi(e,t)}function w_(e){var t=k_();return function(){var i=Fr(e),n;if(t){var o=Fr(this).constructor;n=Reflect.construct(i,arguments,o)}else n=i.apply(this,arguments);return U_(this,n)}}function U_(e,t){if(t&&(Pr(t)==="object"||typeof t=="function"))return t;if(t!==void 0)throw new TypeError("Derived constructors may only return object or undefined");return V_(e)}function V_(e){if(e===void 0)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return e}function k_(){if(typeof Reflect>"u"||!Reflect.construct||Reflect.construct.sham)return!1;if(typeof Proxy=="function")return!0;try{return Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],function(){})),!0}catch{return!1}}function Fr(e){return Fr=Object.setPrototypeOf?Object.getPrototypeOf:function(r){return r.__proto__||Object.getPrototypeOf(r)},Fr(e)}var Ks=function(e){D_(r,e);var t=w_(r);function r(){return B_(this,r),t.apply(this,arguments)}var i=r.prototype;return i.getRenderableLayers=function(o,s){for(var a=s.layers,f=[],l=this._getDrawLayerParams(o,s,!0),c=0;c<a.length;c++){var u=a[c];!u.isComposite&&l[c].shouldDrawLayer&&f.push(u)}return f},i.renderHeightMap=function(o,s){var a=this,f=o.getRenderFramebuffer(),l=o.renderViewport;!f||!l||(f.resize(l),P(this.device,{clearColor:[0,0,0,0],blend:!0,blendFunc:[1,1],blendEquation:32776,depthTest:!1},function(){return a.render(xr(xr({},s),{},{target:f,pass:"terrain-height-map",layers:s.layers,viewports:[l],effects:[]}))}))},i.renderTerrainCover=function(o,s){var a=this,f=o.getRenderFramebuffer(),l=o.renderViewport;if(!(!f||!l)){var c=o.filterLayers(s.layers);f.resize(l),P(this.device,{clearColor:[0,0,0,0],depthTest:!1},function(){return a.render(xr(xr({},s),{},{target:f,pass:"terrain-cover-".concat(o.id),layers:c,effects:[],viewports:[l]}))})}},r}(js._LayersPass);var $s=T(S());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 zs(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var i=Object.getOwnPropertySymbols(e);t&&(i=i.filter(function(n){return Object.getOwnPropertyDescriptor(e,n).enumerable})),r.push.apply(r,i)}return r}function Ys(e){for(var t=1;t<arguments.length;t++){var r=arguments[t]!=null?arguments[t]:{};t%2?zs(Object(r),!0).forEach(function(i){W_(e,i,r[i])}):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(r)):zs(Object(r)).forEach(function(i){Object.defineProperty(e,i,Object.getOwnPropertyDescriptor(r,i))})}return e}function W_(e,t,r){return t in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r,e}function H_(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}function Cr(e,t,r){return typeof Reflect<"u"&&Reflect.get?Cr=Reflect.get:Cr=function(n,o,s){var a=X_(n,o);if(a){var f=Object.getOwnPropertyDescriptor(a,o);return f.get?f.get.call(s):f.value}},Cr(e,t,r||e)}function X_(e,t){for(;!Object.prototype.hasOwnProperty.call(e,t)&&(e=Ve(e),e!==null););return e}function L_(e,t){if(typeof t!="function"&&t!==null)throw new TypeError("Super expression must either be null or a function");e.prototype=Object.create(t&&t.prototype,{constructor:{value:e,writable:!0,configurable:!0}}),t&&Fi(e,t)}function Fi(e,t){return Fi=Object.setPrototypeOf||function(i,n){return i.__proto__=n,i},Fi(e,t)}function j_(e){var t=Y_();return function(){var i=Ve(e),n;if(t){var o=Ve(this).constructor;n=Reflect.construct(i,arguments,o)}else n=i.apply(this,arguments);return K_(this,n)}}function K_(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 z_(e)}function z_(e){if(e===void 0)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return e}function Y_(){if(typeof Reflect>"u"||!Reflect.construct||Reflect.construct.sham)return!1;if(typeof Proxy=="function")return!0;try{return Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],function(){})),!0}catch{return!1}}function Ve(e){return Ve=Object.setPrototypeOf?Object.getPrototypeOf:function(r){return r.__proto__||Object.getPrototypeOf(r)},Ve(e)}var qs=function(e){L_(r,e);var t=j_(r);function r(){var n;H_(this,r);for(var o=arguments.length,s=new Array(o),a=0;a<o;a++)s[a]=arguments[a];return n=t.call.apply(t,[this].concat(s)),n.drawParameters={},n}var i=r.prototype;return i.getRenderableLayers=function(o,s){var a=s.layers,f=[];this.drawParameters={},this._resetColorEncoder(s.pickZ);for(var l=this._getDrawLayerParams(o,s),c=0;c<a.length;c++){var u=a[c];!u.isComposite&&l[c].shouldDrawLayer&&(f.push(u),this.drawParameters[u.id]=l[c].layerParameters)}return f},i.renderTerrainCover=function(o,s){var a=this,f=o.getPickingFramebuffer(),l=o.renderViewport;if(!(!f||!l)){var c=o.filterLayers(s.layers),u=o.targetLayer;u.props.pickable&&c.unshift(u),f.resize(l),P(this.device,{depthTest:!1},function(){return a.render(Ys(Ys({},s),{},{pickingFBO:f,pass:"terrain-cover-picking-".concat(o.id),layers:c,effects:[],viewports:[l],cullRect:void 0,deviceRect:l,pickZ:!1}))})}},i.getLayerParameters=function(o,s,a){if(this.drawParameters[o.id])return this.drawParameters[o.id];var f=Cr(Ve(r.prototype),"getLayerParameters",this).call(this,o,s,a);return f.blend=!0,f},r}($s._PickLayersPass);function $_(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}var Zs=2048,Ii=function(){e.isSupported=function(i){return i.isTextureFormatRenderable("rgba32float")};function e(r){$_(this,e),this.renderViewport=null,this.bounds=null,this.fbo=void 0,this.device=void 0,this.layers=[],this.layersBounds=[],this.layersBoundsCommon=null,this.lastViewport=null,this.device=r}var t=e.prototype;return t.getRenderFramebuffer=function(){return this.renderViewport?(this.fbo||(this.fbo=dt(this.device,{id:"height-map",float:!0})),this.fbo):null},t.shouldUpdate=function(i){var n=this,o=i.layers,s=i.viewport,a=o.length!==this.layers.length||o.some(function(d,p){return d!==n.layers[p]||d.props.transitions||d.getBounds()!==n.layersBounds[p]});a&&(this.layers=o,this.layersBounds=o.map(function(d){return d.getBounds()}),this.layersBoundsCommon=De(o,s));var f=!this.lastViewport||!s.equals(this.lastViewport);if(!this.layersBoundsCommon)this.renderViewport=null;else if(a||f){var l=Ue(this.layersBoundsCommon,s);if(l[2]<=l[0]||l[3]<=l[1])return this.renderViewport=null,!1;this.bounds=l,this.lastViewport=s;var c=s.scale,u=(l[2]-l[0])*c,_=(l[3]-l[1])*c;return this.renderViewport=u>0||_>0?we({bounds:[s.center[0]-1,s.center[1]-1,s.center[0]+1,s.center[1]+1],zoom:s.zoom,width:Math.min(u,Zs),height:Math.min(_,Zs),viewport:s}):null,!0}return!1},t.delete=function(){this.fbo&&(this.fbo.colorAttachments[0].delete(),this.fbo.delete())},e}();function q_(e,t){return J_(e)||Q_(e,t)||Gs(e,t)||Z_()}function Z_(){throw new TypeError(`Invalid attempt to destructure non-iterable instance.
1562
+ In order to be iterable, non-array objects must have a [Symbol.iterator]() method.`)}function Q_(e,t){var r=e==null?null:typeof Symbol<"u"&&e[Symbol.iterator]||e["@@iterator"];if(r!=null){var i=[],n=!0,o=!1,s,a;try{for(r=r.call(e);!(n=(s=r.next()).done)&&(i.push(s.value),!(t&&i.length===t));n=!0);}catch(f){o=!0,a=f}finally{try{!n&&r.return!=null&&r.return()}finally{if(o)throw a}}return i}}function J_(e){if(Array.isArray(e))return e}function Qs(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var i=Object.getOwnPropertySymbols(e);t&&(i=i.filter(function(n){return Object.getOwnPropertyDescriptor(e,n).enumerable})),r.push.apply(r,i)}return r}function Mr(e){for(var t=1;t<arguments.length;t++){var r=arguments[t]!=null?arguments[t]:{};t%2?Qs(Object(r),!0).forEach(function(i){G_(e,i,r[i])}):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(r)):Qs(Object(r)).forEach(function(i){Object.defineProperty(e,i,Object.getOwnPropertyDescriptor(r,i))})}return e}function G_(e,t,r){return t in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r,e}function ke(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 i=0,n=function(){};return{s:n,n:function(){return i>=e.length?{done:!0}:{done:!1,value:e[i++]}},e:function(l){throw l},f:n}}throw new TypeError(`Invalid attempt to iterate non-iterable instance.
1563
+ In order to be iterable, non-array objects must have a [Symbol.iterator]() method.`)}var o=!0,s=!1,a;return{s:function(){r=r.call(e)},n:function(){var l=r.next();return o=l.done,l},e:function(l){s=!0,a=l},f:function(){try{!o&&r.return!=null&&r.return()}finally{if(s)throw a}}}}function Gs(e,t){if(e){if(typeof e=="string")return Js(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 Js(e,t)}}function Js(e,t){(t==null||t>e.length)&&(t=e.length);for(var r=0,i=new Array(t);r<t;r++)i[r]=e[r];return i}function ed(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}var ea=function(){function e(){ed(this,e),this.id="terrain-effect",this.props=null,this.useInPicking=!0,this.isPicking=!1,this.isDrapingEnabled=!1,this.dummyHeightMap=void 0,this.heightMap=void 0,this.terrainPass=void 0,this.terrainPickingPass=void 0,this.terrainCovers=new Map}var t=e.prototype;return t.initialize=function(i){this.dummyHeightMap=i.createTexture({width:1,height:1,data:new Uint8Array([0,0,0,0])}),this.terrainPass=new Ks(i,{id:"terrain"}),this.terrainPickingPass=new qs(i,{id:"terrain-picking"}),Ii.isSupported(i)?this.heightMap=new Ii(i):Nr.log.warn("Terrain offset mode is not supported by this browser")(),(0,Nr.getShaderAssembler)().addDefaultModule(Or)},t.preRender=function(i,n){if(!this.dummyHeightMap){this.initialize(i);var o=ke(n.layers),s;try{for(o.s();!(s=o.n()).done;){var a=s.value;a.props.operation.includes("terrain")&&a.setChangeFlags({extensionsChanged:!0})}}catch(h){o.e(h)}finally{o.f()}}if(n.pickZ){this.isDrapingEnabled=!1;return}var f=n.viewports,l=n.isPicking,c=l===void 0?!1:l;this.isPicking=c,this.isDrapingEnabled=!0;var u=f[0],_=(c?this.terrainPickingPass:this.terrainPass).getRenderableLayers(u,n),d=_.filter(function(h){return h.props.operation.includes("terrain")});if(d.length!==0){if(!c){var p=_.filter(function(h){return h.state.terrainDrawMode==="offset"});p.length>0&&this._updateHeightMap(d,u,n)}var g=_.filter(function(h){return h.state.terrainDrawMode==="drape"});this._updateTerrainCovers(d,g,u,n)}},t.getModuleParameters=function(i){var n,o,s=i.state.terrainDrawMode;return{heightMap:(n=this.heightMap)===null||n===void 0?void 0:n.getRenderFramebuffer(),heightMapBounds:(o=this.heightMap)===null||o===void 0?void 0:o.bounds,dummyHeightMap:this.dummyHeightMap,terrainCover:this.isDrapingEnabled?this.terrainCovers.get(i.id):null,useTerrainHeightMap:s==="offset",terrainSkipRender:s==="drape"||!i.props.operation.includes("draw")}},t.cleanup=function(){this.dummyHeightMap&&(this.dummyHeightMap.delete(),this.dummyHeightMap=void 0),this.heightMap&&(this.heightMap.delete(),this.heightMap=void 0);var i=ke(this.terrainCovers.values()),n;try{for(i.s();!(n=i.n()).done;){var o=n.value;o.delete()}}catch(s){i.e(s)}finally{i.f()}this.terrainCovers.clear()},t._updateHeightMap=function(i,n,o){if(this.heightMap){var s=this.heightMap.shouldUpdate({layers:i,viewport:n});s&&this.terrainPass.renderHeightMap(this.heightMap,Mr(Mr({},o),{},{layers:i,moduleParameters:{heightMapBounds:this.heightMap.bounds,dummyHeightMap:this.dummyHeightMap,devicePixelRatio:1,drawToTerrainHeightMap:!0}}))}},t._updateTerrainCovers=function(i,n,o,s){var a={},f=ke(n),l;try{for(f.s();!(l=f.n()).done;){var c=l.value;c.state.terrainCoverNeedsRedraw&&(a[c.id]=!0,c.state.terrainCoverNeedsRedraw=!1)}}catch(R){f.e(R)}finally{f.f()}var u=ke(this.terrainCovers.values()),_;try{for(u.s();!(_=u.n()).done;){var d=_.value;d.isDirty=d.isDirty||d.shouldUpdate({layerNeedsRedraw:a})}}catch(R){u.e(R)}finally{u.f()}var p=ke(i),g;try{for(p.s();!(g=p.n()).done;){var h=g.value;this._updateTerrainCover(h,n,o,s)}}catch(R){p.e(R)}finally{p.f()}this.isPicking||this._pruneTerrainCovers()},t._updateTerrainCover=function(i,n,o,s){var a=this.isPicking?this.terrainPickingPass:this.terrainPass,f=this.terrainCovers.get(i.id);f||(f=new Hs(i),this.terrainCovers.set(i.id,f));try{var l=f.shouldUpdate({targetLayer:i,viewport:o,layers:n});(this.isPicking||f.isDirty||l)&&(a.renderTerrainCover(f,Mr(Mr({},s),{},{layers:n,moduleParameters:{dummyHeightMap:this.dummyHeightMap,terrainSkipRender:!1,devicePixelRatio:1}})),f.isDirty=!1)}catch(c){i.raiseError(c,"Error rendering terrain cover ".concat(f.id))}},t._pruneTerrainCovers=function(){var i=[],n=ke(this.terrainCovers),o;try{for(n.s();!(o=n.n()).done;){var s=q_(o.value,2),a=s[0],f=s[1];f.isActive||i.push(a)}}catch(_){n.e(_)}finally{n.f()}for(var l=0,c=i;l<c.length;l++){var u=c[l];this.terrainCovers.delete(u)}},e}();function Br(e){return typeof Symbol=="function"&&typeof Symbol.iterator=="symbol"?Br=function(r){return typeof r}:Br=function(r){return r&&typeof Symbol=="function"&&r.constructor===Symbol&&r!==Symbol.prototype?"symbol":typeof r},Br(e)}function td(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}function rd(e,t){if(typeof t!="function"&&t!==null)throw new TypeError("Super expression must either be null or a function");e.prototype=Object.create(t&&t.prototype,{constructor:{value:e,writable:!0,configurable:!0}}),t&&Ci(e,t)}function Ci(e,t){return Ci=Object.setPrototypeOf||function(i,n){return i.__proto__=n,i},Ci(e,t)}function id(e){var t=sd();return function(){var i=Dr(e),n;if(t){var o=Dr(this).constructor;n=Reflect.construct(i,arguments,o)}else n=i.apply(this,arguments);return nd(this,n)}}function nd(e,t){if(t&&(Br(t)==="object"||typeof t=="function"))return t;if(t!==void 0)throw new TypeError("Derived constructors may only return object or undefined");return od(e)}function od(e){if(e===void 0)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return e}function sd(){if(typeof Reflect>"u"||!Reflect.construct||Reflect.construct.sham)return!1;if(typeof Proxy=="function")return!0;try{return Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],function(){})),!0}catch{return!1}}function Dr(e){return Dr=Object.setPrototypeOf?Object.getPrototypeOf:function(r){return r.__proto__||Object.getPrototypeOf(r)},Dr(e)}var ad={terrainDrawMode:void 0},wr=function(e){rd(r,e);var t=id(r);function r(){return td(this,r),t.apply(this,arguments)}var i=r.prototype;return i.getShaders=function(){return{modules:[Or]}},i.initializeState=function(){var o;(o=this.context.deck)===null||o===void 0||o._addDefaultEffect(new ea)},i.updateState=function(o){var s=o.props,a=o.oldProps;if(!(this.state.terrainDrawMode&&s.terrainDrawMode===a.terrainDrawMode&&s.extruded===a.extruded)){var f=s.terrainDrawMode;if(!f){var l,c=this.props.extruded,u=(l=this.getAttributeManager())===null||l===void 0?void 0:l.attributes,_=u&&"instancePositions"in u;f=c||_?"offset":"drape"}this.setState({terrainDrawMode:f})}},i.onNeedsRedraw=function(){var o=this.state;o.terrainDrawMode==="drape"&&(o.terrainCoverNeedsRedraw=!0)},r}(ta.LayerExtension);wr.defaultProps=ad;wr.extensionName="TerrainExtension";return la(pt);})();
1567
1564
  return __exports__;
1568
1565
  });