@deck.gl/extensions 8.10.0-alpha.7 → 9.0.0-alpha.4

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (135) hide show
  1. package/dist/dist.dev.js +10070 -589
  2. package/dist/es5/brushing/brushing-extension.js +8 -5
  3. package/dist/es5/brushing/brushing-extension.js.map +1 -1
  4. package/dist/es5/clip/clip-extension.js.map +1 -1
  5. package/dist/es5/collision-filter/collision-filter-effect.js +44 -35
  6. package/dist/es5/collision-filter/collision-filter-effect.js.map +1 -1
  7. package/dist/es5/collision-filter/collision-filter-pass.js +6 -6
  8. package/dist/es5/collision-filter/collision-filter-pass.js.map +1 -1
  9. package/dist/es5/collision-filter/shader-module.js +1 -1
  10. package/dist/es5/collision-filter/shader-module.js.map +1 -1
  11. package/dist/es5/data-filter/aggregator.js +18 -11
  12. package/dist/es5/data-filter/aggregator.js.map +1 -1
  13. package/dist/es5/data-filter/data-filter-extension.js +27 -27
  14. package/dist/es5/data-filter/data-filter-extension.js.map +1 -1
  15. package/dist/es5/fill-style/fill-style-extension.js +4 -6
  16. package/dist/es5/fill-style/fill-style-extension.js.map +1 -1
  17. package/dist/es5/fill-style/shaders.glsl.js.map +1 -1
  18. package/dist/es5/mask/mask-effect.js +5 -7
  19. package/dist/es5/mask/mask-effect.js.map +1 -1
  20. package/dist/es5/mask/mask-pass.js +20 -14
  21. package/dist/es5/mask/mask-pass.js.map +1 -1
  22. package/dist/es5/mask/shader-module.js.map +1 -1
  23. package/dist/es5/path-style/path-style-extension.js +11 -8
  24. package/dist/es5/path-style/path-style-extension.js.map +1 -1
  25. package/dist/es5/terrain/height-map-builder.js +7 -11
  26. package/dist/es5/terrain/height-map-builder.js.map +1 -1
  27. package/dist/es5/terrain/shader-module.js.map +1 -1
  28. package/dist/es5/terrain/terrain-cover.js +6 -6
  29. package/dist/es5/terrain/terrain-cover.js.map +1 -1
  30. package/dist/es5/terrain/terrain-effect.js +11 -13
  31. package/dist/es5/terrain/terrain-effect.js.map +1 -1
  32. package/dist/es5/terrain/terrain-pass.js +7 -5
  33. package/dist/es5/terrain/terrain-pass.js.map +1 -1
  34. package/dist/es5/terrain/terrain-picking-pass.js +2 -2
  35. package/dist/es5/terrain/terrain-picking-pass.js.map +1 -1
  36. package/dist/es5/terrain/utils.js +12 -9
  37. package/dist/es5/terrain/utils.js.map +1 -1
  38. package/dist/es5/utils/debug.js +2 -2
  39. package/dist/es5/utils/debug.js.map +1 -1
  40. package/dist/esm/brushing/brushing-extension.js +8 -5
  41. package/dist/esm/brushing/brushing-extension.js.map +1 -1
  42. package/dist/esm/clip/clip-extension.js.map +1 -1
  43. package/dist/esm/collision-filter/collision-filter-effect.js +32 -33
  44. package/dist/esm/collision-filter/collision-filter-effect.js.map +1 -1
  45. package/dist/esm/collision-filter/collision-filter-pass.js +4 -4
  46. package/dist/esm/collision-filter/collision-filter-pass.js.map +1 -1
  47. package/dist/esm/collision-filter/shader-module.js +1 -1
  48. package/dist/esm/collision-filter/shader-module.js.map +1 -1
  49. package/dist/esm/data-filter/aggregator.js +19 -15
  50. package/dist/esm/data-filter/aggregator.js.map +1 -1
  51. package/dist/esm/data-filter/data-filter-extension.js +23 -30
  52. package/dist/esm/data-filter/data-filter-extension.js.map +1 -1
  53. package/dist/esm/fill-style/fill-style-extension.js +3 -6
  54. package/dist/esm/fill-style/fill-style-extension.js.map +1 -1
  55. package/dist/esm/fill-style/shaders.glsl.js.map +1 -1
  56. package/dist/esm/mask/mask-effect.js +3 -4
  57. package/dist/esm/mask/mask-effect.js.map +1 -1
  58. package/dist/esm/mask/mask-pass.js +16 -16
  59. package/dist/esm/mask/mask-pass.js.map +1 -1
  60. package/dist/esm/mask/shader-module.js.map +1 -1
  61. package/dist/esm/path-style/path-style-extension.js +11 -8
  62. package/dist/esm/path-style/path-style-extension.js.map +1 -1
  63. package/dist/esm/terrain/height-map-builder.js +7 -10
  64. package/dist/esm/terrain/height-map-builder.js.map +1 -1
  65. package/dist/esm/terrain/shader-module.js.map +1 -1
  66. package/dist/esm/terrain/terrain-cover.js +6 -6
  67. package/dist/esm/terrain/terrain-cover.js.map +1 -1
  68. package/dist/esm/terrain/terrain-effect.js +10 -11
  69. package/dist/esm/terrain/terrain-effect.js.map +1 -1
  70. package/dist/esm/terrain/terrain-pass.js +4 -3
  71. package/dist/esm/terrain/terrain-pass.js.map +1 -1
  72. package/dist/esm/terrain/terrain-picking-pass.js +2 -2
  73. package/dist/esm/terrain/terrain-picking-pass.js.map +1 -1
  74. package/dist/esm/terrain/utils.js +15 -17
  75. package/dist/esm/terrain/utils.js.map +1 -1
  76. package/dist/esm/utils/debug.js +1 -1
  77. package/dist/esm/utils/debug.js.map +1 -1
  78. package/dist.min.js +249 -51
  79. package/package.json +8 -5
  80. package/src/brushing/brushing-extension.ts +8 -6
  81. package/src/clip/clip-extension.ts +1 -2
  82. package/src/collision-filter/collision-filter-effect.ts +40 -32
  83. package/src/collision-filter/collision-filter-pass.ts +6 -7
  84. package/src/collision-filter/shader-module.ts +7 -5
  85. package/src/data-filter/aggregator.ts +18 -18
  86. package/src/data-filter/data-filter-extension.ts +37 -29
  87. package/src/fill-style/fill-style-extension.ts +6 -7
  88. package/src/fill-style/shaders.glsl.ts +2 -2
  89. package/src/mask/mask-effect.ts +11 -10
  90. package/src/mask/mask-pass.ts +21 -22
  91. package/src/mask/shader-module.ts +2 -2
  92. package/src/path-style/path-style-extension.ts +16 -11
  93. package/src/terrain/height-map-builder.ts +8 -8
  94. package/src/terrain/shader-module.ts +8 -6
  95. package/src/terrain/terrain-cover.ts +8 -6
  96. package/src/terrain/terrain-effect.ts +14 -13
  97. package/src/terrain/terrain-pass.ts +6 -7
  98. package/src/terrain/terrain-picking-pass.ts +3 -3
  99. package/src/terrain/utils.ts +13 -13
  100. package/src/utils/debug.ts +2 -1
  101. package/typed/brushing/brushing-extension.d.ts.map +1 -1
  102. package/typed/clip/clip-extension.d.ts.map +1 -1
  103. package/typed/collision-filter/collision-filter-effect.d.ts +4 -4
  104. package/typed/collision-filter/collision-filter-effect.d.ts.map +1 -1
  105. package/typed/collision-filter/collision-filter-pass.d.ts.map +1 -1
  106. package/typed/collision-filter/shader-module.d.ts +7 -1
  107. package/typed/collision-filter/shader-module.d.ts.map +1 -1
  108. package/typed/data-filter/aggregator.d.ts +10 -8
  109. package/typed/data-filter/aggregator.d.ts.map +1 -1
  110. package/typed/data-filter/data-filter-extension.d.ts +1 -1
  111. package/typed/data-filter/data-filter-extension.d.ts.map +1 -1
  112. package/typed/fill-style/fill-style-extension.d.ts +3 -3
  113. package/typed/fill-style/fill-style-extension.d.ts.map +1 -1
  114. package/typed/fill-style/shaders.glsl.d.ts +2 -2
  115. package/typed/fill-style/shaders.glsl.d.ts.map +1 -1
  116. package/typed/mask/mask-effect.d.ts +3 -3
  117. package/typed/mask/mask-effect.d.ts.map +1 -1
  118. package/typed/mask/mask-pass.d.ts +3 -3
  119. package/typed/mask/mask-pass.d.ts.map +1 -1
  120. package/typed/mask/shader-module.d.ts +2 -2
  121. package/typed/mask/shader-module.d.ts.map +1 -1
  122. package/typed/path-style/path-style-extension.d.ts.map +1 -1
  123. package/typed/terrain/height-map-builder.d.ts +4 -4
  124. package/typed/terrain/height-map-builder.d.ts.map +1 -1
  125. package/typed/terrain/shader-module.d.ts +3 -3
  126. package/typed/terrain/shader-module.d.ts.map +1 -1
  127. package/typed/terrain/terrain-cover.d.ts.map +1 -1
  128. package/typed/terrain/terrain-effect.d.ts +4 -3
  129. package/typed/terrain/terrain-effect.d.ts.map +1 -1
  130. package/typed/terrain/terrain-pass.d.ts.map +1 -1
  131. package/typed/terrain/utils.d.ts +3 -2
  132. package/typed/terrain/utils.d.ts.map +1 -1
  133. package/typed/utils/debug.d.ts +1 -0
  134. package/typed/utils/debug.d.ts.map +1 -1
  135. package/LICENSE +0 -19
package/dist.min.js CHANGED
@@ -4,7 +4,7 @@
4
4
  else if (typeof define === 'function' && define.amd) define([], factory);
5
5
  else if (typeof exports === 'object') exports['deck'] = factory();
6
6
  else root['deck'] = factory();})(globalThis, function () {
7
- "use strict";var __exports__=(()=>{var or=Object.create;var J=Object.defineProperty;var ir=Object.getOwnPropertyDescriptor;var ar=Object.getOwnPropertyNames;var sr=Object.getPrototypeOf,fr=Object.prototype.hasOwnProperty;var yt=(e,t)=>()=>(t||e((t={exports:{}}).exports,t),t.exports),gt=(e,t)=>{for(var n in t)J(e,n,{get:t[n],enumerable:!0})},X=(e,t,n,r)=>{if(t&&typeof t=="object"||typeof t=="function")for(let o of ar(t))!fr.call(e,o)&&o!==n&&J(e,o,{get:()=>t[o],enumerable:!(r=ir(t,o))||r.enumerable});return e},S=(e,t,n)=>(X(e,t,"default"),n&&X(n,t,"default")),m=(e,t,n)=>(n=e!=null?or(sr(e)):{},X(t||!e||!e.__esModule?J(n,"default",{value:e,enumerable:!0}):n,e)),ur=e=>X(J({},"__esModule",{value:!0}),e);var g=yt((Ga,bt)=>{bt.exports=globalThis.deck});var O=yt((Za,Lt)=>{Lt.exports=globalThis.luma});var $={};gt($,{BrushingExtension:()=>te,ClipExtension:()=>Oe,CollisionFilterExtension:()=>Fe,DataFilterExtension:()=>ae,FillStyleExtension:()=>ge,Fp64Extension:()=>nt,MaskExtension:()=>Ce,PathStyleExtension:()=>me,_TerrainExtension:()=>We,project64:()=>ce});var x={},Pt=m(g());S(x,m(g()));if(!Pt.Layer)throw new Error("@deck.gl/core is not found");S($,x);var Et=m(g());var Ot=m(g()),lr=`
7
+ "use strict";var __exports__=(()=>{var Qs=Object.create;var pt=Object.defineProperty;var Js=Object.getOwnPropertyDescriptor;var ea=Object.getOwnPropertyNames;var ta=Object.getPrototypeOf,ra=Object.prototype.hasOwnProperty;var Ln=(e,t)=>()=>(t||e((t={exports:{}}).exports,t),t.exports),Xn=(e,t)=>{for(var r in t)pt(e,r,{get:t[r],enumerable:!0})},Rt=(e,t,r,n)=>{if(t&&typeof t=="object"||typeof t=="function")for(let o of ea(t))!ra.call(e,o)&&o!==r&&pt(e,o,{get:()=>t[o],enumerable:!(n=Js(t,o))||n.enumerable});return e},le=(e,t,r)=>(Rt(e,t,"default"),r&&Rt(r,t,"default")),A=(e,t,r)=>(r=e!=null?Qs(ta(e)):{},Rt(t||!e||!e.__esModule?pt(r,"default",{value:e,enumerable:!0}):r,e)),na=e=>Rt(pt({},"__esModule",{value:!0}),e);var N=Ln((_E,Hn)=>{Hn.exports=globalThis.deck});var g=Ln((dE,zn)=>{zn.exports=globalThis.luma});var dt={};Xn(dt,{BrushingExtension:()=>ht,ClipExtension:()=>cr,CollisionFilterExtension:()=>Sr,DataFilterExtension:()=>$t,FillStyleExtension:()=>fr,Fp64Extension:()=>On,MaskExtension:()=>br,PathStyleExtension:()=>sr,_TerrainExtension:()=>Dr,project64:()=>tr});var Q={},Vn=A(N());le(Q,A(N()));if(!Vn.Layer)throw new Error("@deck.gl/core is not found");le(dt,Q);var Kn=A(N());var Wn=A(N()),ia=`
8
8
  uniform bool brushing_enabled;
9
9
  uniform int brushing_target;
10
10
  uniform vec2 brushing_mousePos;
@@ -36,10 +36,10 @@
36
36
  void brushing_setVisible(bool visible) {
37
37
  brushing_isVisible = float(visible);
38
38
  }
39
- `,cr=`
39
+ `,oa=`
40
40
  uniform bool brushing_enabled;
41
41
  varying float brushing_isVisible;
42
- `,pr={source:0,target:1,custom:2,source_target:3},_r={"vs:DECKGL_FILTER_GL_POSITION":`
42
+ `,sa={source:0,target:1,custom:2,source_target:3},aa={"vs:DECKGL_FILTER_GL_POSITION":`
43
43
  vec2 brushingTarget;
44
44
  vec2 brushingSource;
45
45
  if (brushing_target == 3) {
@@ -67,7 +67,10 @@
67
67
  if (brushing_enabled && brushing_isVisible < 0.5) {
68
68
  discard;
69
69
  }
70
- `},xt={name:"brushing",dependencies:[Ot.project],vs:lr,fs:cr,inject:_r,getUniforms:function(t){if(!t||!("viewport"in t))return{};var n=t.brushingEnabled,r=n===void 0?!0:n,o=t.brushingRadius,i=o===void 0?1e4:o,a=t.brushingTarget,s=a===void 0?"source":a,f=t.mousePosition,u=t.viewport;return{brushing_enabled:Boolean(r&&f&&u.containsPixel(f)),brushing_radius:i,brushing_target:pr[s]||0,brushing_mousePos:f?u.unproject([f.x-u.x,f.y-u.y]):[0,0]}}};function Q(e){return typeof Symbol=="function"&&typeof Symbol.iterator=="symbol"?Q=function(n){return typeof n}:Q=function(n){return n&&typeof Symbol=="function"&&n.constructor===Symbol&&n!==Symbol.prototype?"symbol":typeof n},Q(e)}function dr(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}function vr(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&&Ke(e,t)}function Ke(e,t){return Ke=Object.setPrototypeOf||function(r,o){return r.__proto__=o,r},Ke(e,t)}function mr(e){var t=gr();return function(){var r=ee(e),o;if(t){var i=ee(this).constructor;o=Reflect.construct(r,arguments,i)}else o=r.apply(this,arguments);return hr(this,o)}}function hr(e,t){if(t&&(Q(t)==="object"||typeof t=="function"))return t;if(t!==void 0)throw new TypeError("Derived constructors may only return object or undefined");return yr(e)}function yr(e){if(e===void 0)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return e}function gr(){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 ee(e){return ee=Object.setPrototypeOf?Object.getPrototypeOf:function(n){return n.__proto__||Object.getPrototypeOf(n)},ee(e)}var br={getBrushingTarget:{type:"accessor",value:[0,0]},brushingTarget:"source",brushingEnabled:!0,brushingRadius:1e4},te=function(e){vr(n,e);var t=mr(n);function n(){return dr(this,n),t.apply(this,arguments)}var r=n.prototype;return r.getShaders=function(){return{modules:[xt]}},r.initializeState=function(i,a){var s=this,f=this.getAttributeManager();f&&f.add({brushingTargets:{size:2,accessor:"getBrushingTarget",shaderAttributes:{brushingTargets:{divisor:0},instanceBrushingTargets:{divisor:1}}}}),this.state.onMouseMove=function(){var u;(u=s.getCurrentLayer())===null||u===void 0||u.setNeedsRedraw()},i.deck&&i.deck.eventManager.on({pointermove:this.state.onMouseMove,pointerleave:this.state.onMouseMove})},r.finalizeState=function(i,a){i.deck&&i.deck.eventManager.off({pointermove:this.state.onMouseMove,pointerleave:this.state.onMouseMove})},n}(Et.LayerExtension);te.defaultProps=br;te.extensionName="BrushingExtension";var Ut=m(g());function wt(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter(function(o){return Object.getOwnPropertyDescriptor(e,o).enumerable})),n.push.apply(n,r)}return n}function Tt(e){for(var t=1;t<arguments.length;t++){var n=arguments[t]!=null?arguments[t]:{};t%2?wt(Object(n),!0).forEach(function(r){Pr(e,r,n[r])}):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):wt(Object(n)).forEach(function(r){Object.defineProperty(e,r,Object.getOwnPropertyDescriptor(n,r))})}return e}function Pr(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}var St=`
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=`
71
74
  uniform DATAFILTER_TYPE filter_min;
72
75
  uniform DATAFILTER_TYPE filter_softMin;
73
76
  uniform DATAFILTER_TYPE filter_softMax;
@@ -122,10 +125,10 @@ void dataFilter_setValue(DATAFILTER_TYPE valueFromMin, DATAFILTER_TYPE valueFrom
122
125
  dataFilter_value = 1.0;
123
126
  }
124
127
  }
125
- `,Rt=`
128
+ `,ao=`
126
129
  uniform bool filter_transformColor;
127
130
  varying float dataFilter_value;
128
- `;function Mt(e){if(!e||!("extensions"in e))return{};var t=e.filterRange,n=t===void 0?[-1,1]:t,r=e.filterEnabled,o=r===void 0?!0:r,i=e.filterTransformSize,a=i===void 0?!0:i,s=e.filterTransformColor,f=s===void 0?!0:s,u=e.filterSoftRange||n;return Tt(Tt({},Number.isFinite(n[0])?{filter_min:n[0],filter_softMin:u[0],filter_softMax:u[1],filter_max:n[1]}:{filter_min:n.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:n.map(function(l){return l[1]})}),{},{filter_enabled:o,filter_useSoftMargin:Boolean(e.filterSoftRange),filter_transformSize:o&&a,filter_transformColor:o&&f})}function Or(e){if(!e||!("extensions"in e))return{};var t=Mt(e);if(Number.isFinite(t.filter_min)){var n=Math.fround(t.filter_min);t.filter_min-=n,t.filter_softMin-=n,t.filter_min64High=n;var r=Math.fround(t.filter_max);t.filter_max-=r,t.filter_softMax-=r,t.filter_max64High=r}else{var o=t.filter_min.map(Math.fround);t.filter_min=t.filter_min.map(function(a,s){return a-o[s]}),t.filter_softMin=t.filter_softMin.map(function(a,s){return a-o[s]}),t.filter_min64High=o;var i=t.filter_max.map(Math.fround);t.filter_max=t.filter_max.map(function(a,s){return a-i[s]}),t.filter_softMax=t.filter_softMax.map(function(a,s){return a-i[s]}),t.filter_max64High=i}return t}var At={"vs:#main-start":`
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
132
  #ifdef DATAFILTER_DOUBLE
130
133
  dataFilter_setValue(
131
134
  DATAFILTER_ATTRIB - filter_min64High + DATAFILTER_ATTRIB_64LOW,
@@ -147,7 +150,134 @@ varying float dataFilter_value;
147
150
  if (filter_transformColor) {
148
151
  color.a *= dataFilter_value;
149
152
  }
150
- `},Ft={name:"data-filter",vs:St,fs:Rt,inject:At,getUniforms:Mt},It={name:"data-filter-fp64",vs:St,fs:Rt,inject:At,getUniforms:Or};var w=m(O());function Ct(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter(function(o){return Object.getOwnPropertyDescriptor(e,o).enumerable})),n.push.apply(n,r)}return n}function xr(e){for(var t=1;t<arguments.length;t++){var n=arguments[t]!=null?arguments[t]:{};t%2?Ct(Object(n),!0).forEach(function(r){kt(e,r,n[r])}):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):Ct(Object(n)).forEach(function(r){Object.defineProperty(e,r,Object.getOwnPropertyDescriptor(n,r))})}return e}function kt(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}var Er=`#define SHADER_NAME data-filter-vertex-shader
153
+ `},uo={name:"data-filter",vs:so,fs:ao,inject:fo,getUniforms:_o},lo={name:"data-filter-fp64",vs:so,fs:ao,inject:fo,getUniforms:mf};var W=A(g(),1),Lo=A(g(),1);var U=e=>`${e}`;function Z(e,t){if(!e)throw new Error(t||"shadertools: assertion failed.")}var fn={number:{type:"number",validate(e,t){return Number.isFinite(e)&&typeof t=="object"&&(t.max===void 0||e<=t.max)&&(t.min===void 0||e>=t.min)}},array:{type:"array",validate(e,t){return Array.isArray(e)||ArrayBuffer.isView(e)}}};function Eo(e){let t={};for(let[r,n]of Object.entries(e))t[r]=Sf(n);return t}function Ro(e,t,r){let n={};for(let[o,s]of Object.entries(t))e&&o in e&&!s.private?(s.validate&&Z(s.validate(e[o],s),`${r}: invalid ${o}`),n[o]=e[o]):n[o]=s.value;return n}function Sf(e){let t=co(e);if(t!=="object")return{value:e,...fn[t],type:t};if(typeof e=="object")return e?e.type!==void 0?{...e,...fn[e.type],type:e.type}:e.value===void 0?{type:"object",value:e}:(t=co(e.value),{...e,...fn[t],type:t}):{type:"object",value:null};throw new Error("props")}function co(e){return Array.isArray(e)||ArrayBuffer.isView(e)?"array":typeof e}var po=U`\
154
+ #ifdef MODULE_LOGDEPTH
155
+ logdepth_adjustPosition(gl_Position);
156
+ #endif
157
+ `,To=U`\
158
+ #ifdef MODULE_MATERIAL
159
+ gl_FragColor = material_filterColor(gl_FragColor);
160
+ #endif
161
+
162
+ #ifdef MODULE_LIGHTING
163
+ gl_FragColor = lighting_filterColor(gl_FragColor);
164
+ #endif
165
+
166
+ #ifdef MODULE_FOG
167
+ gl_FragColor = fog_filterColor(gl_FragColor);
168
+ #endif
169
+
170
+ #ifdef MODULE_PICKING
171
+ gl_FragColor = picking_filterHighlightColor(gl_FragColor);
172
+ gl_FragColor = picking_filterPickingColor(gl_FragColor);
173
+ #endif
174
+
175
+ #ifdef MODULE_LOGDEPTH
176
+ logdepth_setFragDepth();
177
+ #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(`
179
+ `)}
180
+ `;switch(s){case"vs:#decl":o&&(e=e.replace(ot,_));break;case"vs:#main-start":o&&(e=e.replace(Ao,f=>f+_));break;case"vs:#main-end":o&&(e=e.replace(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}
182
+
183
+ `}getUniforms(t,r){return this.getModuleUniforms?this.getModuleUniforms(t,r):Ro(t,this.uniforms,this.name)}getDefines(){return this.defines}checkDeprecations(t,r){this.deprecations.forEach(n=>{var o;(o=n.regex)!==null&&o!==void 0&&o.test(t)&&(n.deprecated?r.deprecated(n.old,n.new)():r.removed(n.old,n.new)())})}_parseDeprecationDefinitions(t){return t.forEach(r=>{switch(r.type){case"function":r.regex=new RegExp(`\\b${r.old}\\(`);break;default:r.regex=new RegExp(`${r.type} ${r.old};`)}}),t}_defaultGetUniforms(){let t=arguments.length>0&&arguments[0]!==void 0?arguments[0]:{},r={},n=this.uniforms;for(let o in n){let s=n[o];o in t&&!s.private?(s.validate&&Z(s.validate(t[o],s),`${this.name}: invalid ${o}`),r[o]=t[o]):r[o]=s.value}return r}};function So(e){let t=_e.instantiateModules(e);return bf(t)}function bf(e){let t={},r={};return go({modules:e,level:0,moduleMap:t,moduleDepth:r}),Object.keys(r).sort((n,o)=>r[o]-r[n]).map(n=>t[n])}function go(e){let{modules:t,level:r,moduleMap:n,moduleDepth:o}=e;if(r>=5)throw new Error("Possible loop in shader dependency graph");for(let s of t)n[s.name]=s,(o[s.name]===void 0||o[s.name]<r)&&(o[s.name]=r);for(let s of t)s.dependencies&&go({modules:s.dependencies,level:r+1,moduleMap:n,moduleDepth:o})}function Oo(e){switch(e?.gpu.toLowerCase()){case"apple":return U`\
184
+ #define APPLE_GPU
185
+ // Apple optimizes away the calculation necessary for emulated fp64
186
+ #define LUMA_FP64_CODE_ELIMINATION_WORKAROUND 1
187
+ #define LUMA_FP32_TAN_PRECISION_WORKAROUND 1
188
+ // Intel GPU doesn't have full 32 bits precision in same cases, causes overflow
189
+ #define LUMA_FP64_HIGH_BITS_OVERFLOW_WORKAROUND 1
190
+ `;case"nvidia":return U`\
191
+ #define NVIDIA_GPU
192
+ // Nvidia optimizes away the calculation necessary for emulated fp64
193
+ #define LUMA_FP64_CODE_ELIMINATION_WORKAROUND 1
194
+ `;case"intel":return U`\
195
+ #define INTEL_GPU
196
+ // Intel optimizes away the calculation necessary for emulated fp64
197
+ #define LUMA_FP64_CODE_ELIMINATION_WORKAROUND 1
198
+ // Intel's built-in 'tan' function doesn't have acceptable precision
199
+ #define LUMA_FP32_TAN_PRECISION_WORKAROUND 1
200
+ // Intel GPU doesn't have full 32 bits precision in same cases, causes overflow
201
+ #define LUMA_FP64_HIGH_BITS_OVERFLOW_WORKAROUND 1
202
+ `;case"amd":return U`\
203
+ #define AMD_GPU
204
+ `;default:return U`\
205
+ #define DEFAULT_GPU
206
+ // Prevent driver from optimizing away the calculation necessary for emulated fp64
207
+ #define LUMA_FP64_CODE_ELIMINATION_WORKAROUND 1
208
+ // Headless Chrome's software shader 'tan' function doesn't have acceptable precision
209
+ #define LUMA_FP32_TAN_PRECISION_WORKAROUND 1
210
+ // If the GPU doesn't have full 32 bits precision, will causes overflow
211
+ #define LUMA_FP64_HIGH_BITS_OVERFLOW_WORKAROUND 1
212
+ `}}function bo(e){let t=U`\
213
+ #if (__VERSION__ > 120)
214
+ # define FEATURE_GLSL_DERIVATIVES
215
+ # define FEATURE_GLSL_DRAW_BUFFERS
216
+ # define FEATURE_GLSL_FRAG_DEPTH
217
+ # define FEATURE_GLSL_TEXTURE_LOD
218
+ #endif // __VERSION
219
+ `;return!e.features.has("webgl2")&&e.features.has("glsl-frag-depth")&&(t+=U`\
220
+
221
+ // FRAG_DEPTH => gl_FragDepth is available
222
+ #ifdef GL_EXT_frag_depth
223
+ # extension GL_EXT_frag_depth : enable
224
+ # define FEATURE_GLSL_FRAG_DEPTH
225
+ # define FRAG_DEPTH
226
+ # define gl_FragDepth gl_FragDepthEXT
227
+ #endif
228
+ `),!e.features.has("webgl2")&&e!==null&&e!==void 0&&e.features.has("glsl-derivatives")&&(t+=U`\
229
+
230
+ // DERIVATIVES => dxdF, dxdY and fwidth are available
231
+ #if defined(GL_OES_standard_derivatives) || defined(FEATURE_GLSL_DERIVATIVES)
232
+ # extension GL_OES_standard_derivatives : enable
233
+ # define FEATURE_GLSL_DERIVATIVES
234
+ # define DERIVATIVES
235
+ #endif
236
+ `),!e.features.has("webgl2")&&e!==null&&e!==void 0&&e.features.has("glsl-frag-data")&&(t+=U`\
237
+
238
+ // DRAW_BUFFERS => gl_FragData[] is available
239
+ #ifdef GL_EXT_draw_buffers
240
+ # extension GL_EXT_draw_buffers : require
241
+ # define FEATURE_GLSL_DRAW_BUFFERS
242
+ # define DRAW_BUFFERS
243
+ #endif
244
+ `),!e.features.has("webgl2")&&e!==null&&e!==void 0&&e.features.has("glsl-texture-lod")&&(t+=U`\
245
+ // TEXTURE_LOD => texture2DLod etc are available
246
+ #ifdef GL_EXT_shader_texture_lod
247
+ # extension GL_EXT_shader_texture_lod : enable
248
+ # define FEATURE_GLSL_TEXTURE_LOD
249
+ # define TEXTURE_LOD
250
+ #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`\
261
+ precision highp float;
262
+
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}
275
+
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
151
281
 
152
282
  #ifdef FLOAT_TARGET
153
283
  attribute float filterIndices;
@@ -177,7 +307,7 @@ void main() {
177
307
  #endif
178
308
  gl_PointSize = 1.0;
179
309
  }
180
- `,wr=`#define SHADER_NAME data-filter-fragment-shader
310
+ `,Hf=`#define SHADER_NAME data-filter-fragment-shader
181
311
  precision highp float;
182
312
 
183
313
  varying vec4 vColor;
@@ -188,7 +318,25 @@ void main() {
188
318
  }
189
319
  gl_FragColor = vColor;
190
320
  }
191
- `;function Nt(e){return Boolean(e.getExtension("EXT_float_blend")&&(e.getExtension("EXT_color_buffer_float")||e.getExtension("WEBGL_color_buffer_float")))}function Dt(e,t){return t?new w.Framebuffer(e,{width:1,height:1,attachments:kt({},36064,new w.Texture2D(e,{format:(0,w.isWebGL2)(e)?34836:6408,type:5126,mipmaps:!1}))}):new w.Framebuffer(e,{width:256,height:64,depth:!1})}function jt(e,t,n){return t.defines.NON_INSTANCED_MODEL=1,n&&(t.defines.FLOAT_TARGET=1),new w.Model(e,xr({id:"data-filter-aggregation-model",vertexCount:1,isInstanced:!1,drawMode:0,vs:Er,fs:wr},t))}var Bt={blend:!0,blendFunc:[1,1,1,1],blendEquation:[32774,32774],depthTest:!1};var ie=m(O());function re(e){return typeof Symbol=="function"&&typeof Symbol.iterator=="symbol"?re=function(n){return typeof n}:re=function(n){return n&&typeof Symbol=="function"&&n.constructor===Symbol&&n!==Symbol.prototype?"symbol":typeof n},re(e)}function Vt(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter(function(o){return Object.getOwnPropertyDescriptor(e,o).enumerable})),n.push.apply(n,r)}return n}function ne(e){for(var t=1;t<arguments.length;t++){var n=arguments[t]!=null?arguments[t]:{};t%2?Vt(Object(n),!0).forEach(function(r){Sr(e,r,n[r])}):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):Vt(Object(n)).forEach(function(r){Object.defineProperty(e,r,Object.getOwnPropertyDescriptor(n,r))})}return e}function Sr(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function Rr(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}function Mr(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&&Ye(e,t)}function Ye(e,t){return Ye=Object.setPrototypeOf||function(r,o){return r.__proto__=o,r},Ye(e,t)}function Ar(e){var t=Lr();return function(){var r=oe(e),o;if(t){var i=oe(this).constructor;o=Reflect.construct(r,arguments,i)}else o=r.apply(this,arguments);return Fr(this,o)}}function Fr(e,t){if(t&&(re(t)==="object"||typeof t=="function"))return t;if(t!==void 0)throw new TypeError("Derived constructors may only return object or undefined");return Ir(e)}function Ir(e){if(e===void 0)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return e}function Lr(){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 oe(e){return oe=Object.setPrototypeOf?Object.getPrototypeOf:function(n){return n.__proto__||Object.getPrototypeOf(n)},oe(e)}var Cr={getFilterValue:{type:"accessor",value:0},onFilteredItemsChange:{type:"function",value:null,optional:!0},filterEnabled:!0,filterRange:[-1,1],filterSoftRange:null,filterTransformSize:!0,filterTransformColor:!0},zt={1:"float",2:"vec2",3:"vec3",4:"vec4"},ae=function(e){Mr(n,e);var t=Ar(n);function n(){var o=arguments.length>0&&arguments[0]!==void 0?arguments[0]:{},i=o.filterSize,a=i===void 0?1:i,s=o.fp64,f=s===void 0?!1:s,u=o.countItems,l=u===void 0?!1:u;if(Rr(this,n),!zt[a])throw new Error("filterSize out of range");return t.call(this,{filterSize:a,fp64:f,countItems:l})}var r=n.prototype;return r.getShaders=function(i){var a=i.opts,s=a.filterSize,f=a.fp64;return{modules:[f?It:Ft],defines:{DATAFILTER_TYPE:zt[s],DATAFILTER_DOUBLE:Boolean(f)}}},r.initializeState=function(i,a){var s=this.getAttributeManager();s&&s.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.gl;if(s&&a.opts.countItems){var u=Nt(f);s.add({filterIndices:{size:u?1:2,vertexOffset:1,type:5121,normalized:!0,accessor:function(_,d){var h=d.index,v=_&&_.__source?_.__source.index:h;return u?(v+1)%255:[(v+1)%255,Math.floor(v/255)%255]},shaderAttributes:{filterPrevIndices:{vertexOffset:0},filterIndices:{vertexOffset:1}}}});var l=Dt(f,u),c=jt(f,a.getShaders.call(this,a),u);this.setState({filterFBO:l,filterModel:c})}},r.updateState=function(i){var a=i.props,s=i.oldProps;if(this.state.filterModel){var f=this.getAttributeManager(),u=f.attributes.filterValues.needsUpdate()||a.filterEnabled!==s.filterEnabled||a.filterRange!==s.filterRange||a.filterSoftRange!==s.filterSoftRange;u&&this.setState({filterNeedsUpdate:u})}},r.draw=function(i,a){var s=this.state,f=s.filterFBO,u=s.filterModel,l=s.filterNeedsUpdate,c=this.props.onFilteredItemsChange;if(l&&c&&u){var p=this.getAttributeManager(),_=p.attributes,d=_.filterValues,h=_.filterIndices;u.setVertexCount(this.getNumInstances());var v=this.context.gl;(0,ie.clear)(v,{framebuffer:f,color:[0,0,0,0]}),u.updateModuleSettings(i.moduleParameters).setAttributes(ne(ne({},d.getShaderAttributes()),h&&h.getShaderAttributes())).draw({framebuffer:f,parameters:ne(ne({},Bt),{},{viewport:[0,0,f.width,f.height]})});for(var y=(0,ie.readPixelsToArray)(f),b=0,P=0;P<y.length;P++)b+=y[P];c({id:this.id,count:b}),this.state.filterNeedsUpdate=!1}},r.finalizeState=function(){var i=this.state,a=i.filterFBO,s=i.filterModel;a&&(a.color.delete(),a.delete(),s.delete())},n}(Ut.LayerExtension);ae.defaultProps=Cr;ae.extensionName="DataFilterExtension";var W=m(g());function se(e){var t=arguments.length>1&&arguments[1]!==void 0?arguments[1]:[],n=arguments.length>2&&arguments[2]!==void 0?arguments[2]:0,r=Math.fround(e),o=e-r;return t[n]=r,t[n+1]=o,t}function $e(e){return e-Math.fround(e)}function Ze(e){for(var t=new Float32Array(32),n=0;n<4;++n)for(var r=0;r<4;++r){var o=n*4+r;se(e[r*4+n],t,o*2)}return t}var qt=`uniform float ONE;
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`\
322
+ uniform float ONE;
323
+
324
+ /*
325
+ About LUMA_FP64_CODE_ELIMINATION_WORKAROUND
326
+
327
+ The purpose of this workaround is to prevent shader compilers from
328
+ optimizing away necessary arithmetic operations by swapping their sequences
329
+ or transform the equation to some 'equivalent' from.
330
+
331
+ The method is to multiply an artifical variable, ONE, which will be known to
332
+ the compiler to be 1 only at runtime. The whole expression is then represented
333
+ as a polynomial with respective to ONE. In the coefficients of all terms, only one a
334
+ and one b should appear
335
+
336
+ err = (a + b) * ONE^6 - a * ONE^5 - (a + b) * ONE^4 + a * ONE^3 - b - (a + b) * ONE^2 + a * ONE
337
+ */
338
+
339
+ // Divide float number to high and low floats to extend fraction bits
192
340
  vec2 split(float a) {
193
341
  const float SPLIT = 4097.0;
194
342
  float t = a * SPLIT;
@@ -201,11 +349,15 @@ vec2 split(float a) {
201
349
  #endif
202
350
  return vec2(a_hi, a_lo);
203
351
  }
352
+
353
+ // Divide float number again when high float uses too many fraction bits
204
354
  vec2 split2(vec2 a) {
205
355
  vec2 b = split(a.x);
206
356
  b.y += a.y;
207
357
  return b;
208
358
  }
359
+
360
+ // Special sum operation when a > b
209
361
  vec2 quickTwoSum(float a, float b) {
210
362
  #if defined(LUMA_FP64_CODE_ELIMINATION_WORKAROUND)
211
363
  float sum = (a + b) * ONE;
@@ -216,6 +368,8 @@ vec2 quickTwoSum(float a, float b) {
216
368
  #endif
217
369
  return vec2(sum, err);
218
370
  }
371
+
372
+ // General sum operation
219
373
  vec2 twoSum(float a, float b) {
220
374
  float s = (a + b);
221
375
  #if defined(LUMA_FP64_CODE_ELIMINATION_WORKAROUND)
@@ -285,6 +439,7 @@ vec2 sub_fp64(vec2 a, vec2 b) {
285
439
 
286
440
  vec2 mul_fp64(vec2 a, vec2 b) {
287
441
  vec2 prod = twoProd(a.x, b.x);
442
+ // y component is for the error
288
443
  prod.y += a.x * b.y;
289
444
  #if defined(LUMA_FP64_HIGH_BITS_OVERFLOW_WORKAROUND)
290
445
  prod = split2(prod);
@@ -329,7 +484,8 @@ vec2 sqrt_fp64(vec2 a) {
329
484
  return sum_fp64(vec2(yn, 0.0), prod);
330
485
  #endif
331
486
  }
332
- `;var Gt=`const vec2 E_FP64 = vec2(2.7182817459106445e+00, 8.254840366817007e-08);
487
+ `;var Go=Zt`\
488
+ const vec2 E_FP64 = vec2(2.7182817459106445e+00, 8.254840366817007e-08);
333
489
  const vec2 LOG2_FP64 = vec2(0.6931471824645996e+00, -1.9046542121259336e-09);
334
490
  const vec2 PI_FP64 = vec2(3.1415927410125732, -8.742278012618954e-8);
335
491
  const vec2 TWO_PI_FP64 = vec2(6.2831854820251465, -1.7484556025237907e-7);
@@ -350,14 +506,14 @@ const vec2 COS_TABLE_1_FP64 = vec2(0.9238795042037964, 2.8307490351764386e-8);
350
506
  const vec2 COS_TABLE_2_FP64 = vec2(0.8314695954322815, 1.6870263741530778e-8);
351
507
  const vec2 COS_TABLE_3_FP64 = vec2(0.7071067690849304, 1.2101617152815436e-8);
352
508
 
353
- const vec2 INVERSE_FACTORIAL_3_FP64 = vec2(1.666666716337204e-01, -4.967053879312289e-09);
354
- const vec2 INVERSE_FACTORIAL_4_FP64 = vec2(4.16666679084301e-02, -1.2417634698280722e-09);
355
- const vec2 INVERSE_FACTORIAL_5_FP64 = vec2(8.333333767950535e-03, -4.34617203337595e-10);
356
- const vec2 INVERSE_FACTORIAL_6_FP64 = vec2(1.3888889225199819e-03, -3.3631094437103215e-11);
357
- const vec2 INVERSE_FACTORIAL_7_FP64 = vec2(1.9841270113829523e-04, -2.725596874933456e-12);
358
- const vec2 INVERSE_FACTORIAL_8_FP64 = vec2(2.4801587642286904e-05, -3.406996025904184e-13);
359
- const vec2 INVERSE_FACTORIAL_9_FP64 = vec2(2.75573188446287533e-06, 3.7935713937038186e-14);
360
- const vec2 INVERSE_FACTORIAL_10_FP64 = vec2(2.755731998149713e-07, -7.575112367869873e-15);
509
+ const vec2 INVERSE_FACTORIAL_3_FP64 = vec2(1.666666716337204e-01, -4.967053879312289e-09); // 1/3!
510
+ const vec2 INVERSE_FACTORIAL_4_FP64 = vec2(4.16666679084301e-02, -1.2417634698280722e-09); // 1/4!
511
+ const vec2 INVERSE_FACTORIAL_5_FP64 = vec2(8.333333767950535e-03, -4.34617203337595e-10); // 1/5!
512
+ const vec2 INVERSE_FACTORIAL_6_FP64 = vec2(1.3888889225199819e-03, -3.3631094437103215e-11); // 1/6!
513
+ const vec2 INVERSE_FACTORIAL_7_FP64 = vec2(1.9841270113829523e-04, -2.725596874933456e-12); // 1/7!
514
+ const vec2 INVERSE_FACTORIAL_8_FP64 = vec2(2.4801587642286904e-05, -3.406996025904184e-13); // 1/8!
515
+ const vec2 INVERSE_FACTORIAL_9_FP64 = vec2(2.75573188446287533e-06, 3.7935713937038186e-14); // 1/9!
516
+ const vec2 INVERSE_FACTORIAL_10_FP64 = vec2(2.755731998149713e-07, -7.575112367869873e-15); // 1/10!
361
517
 
362
518
  float nint(float d) {
363
519
  if (d == floor(d)) return d;
@@ -381,8 +537,16 @@ vec2 nint_fp64(vec2 a) {
381
537
  return tmp;
382
538
  }
383
539
 
384
- vec2 exp_fp64(vec2 a) {
540
+ /* k_power controls how much range reduction we would like to have
541
+ Range reduction uses the following method:
542
+ assume a = k_power * r + m * log(2), k and m being integers.
543
+ Set k_power = 4 (we can choose other k to trade accuracy with performance.
544
+ we only need to calculate exp(r) and using exp(a) = 2^m * exp(r)^k_power;
545
+ */
385
546
 
547
+ vec2 exp_fp64(vec2 a) {
548
+ // We need to make sure these two numbers match
549
+ // as bit-wise shift is not available in GLSL 1.0
386
550
  const int k_power = 4;
387
551
  const float k = 16.0;
388
552
 
@@ -410,12 +574,18 @@ vec2 exp_fp64(vec2 a) {
410
574
  p = mul_fp64(p, r);
411
575
  t = mul_fp64(p, INVERSE_FACTORIAL_5_FP64);
412
576
 
577
+ // s = sum_fp64(s, t);
578
+ // p = mul_fp64(p, r);
579
+ // t = mul_fp64(p, INVERSE_FACTORIAL_6_FP64);
413
580
 
581
+ // s = sum_fp64(s, t);
582
+ // p = mul_fp64(p, r);
583
+ // t = mul_fp64(p, INVERSE_FACTORIAL_7_FP64);
414
584
 
585
+ s = sum_fp64(s, t);
415
586
 
416
587
 
417
-
418
- s = sum_fp64(s, t);
588
+ // At this point, s = exp(r) - 1; but after following 4 recursions, we will get exp(r) ^ 512 - 1.
419
589
  for (int i = 0; i < k_power; i++) {
420
590
  s = sum_fp64(s * 2.0, mul_fp64(s, s));
421
591
  }
@@ -427,6 +597,7 @@ vec2 exp_fp64(vec2 a) {
427
597
  #endif
428
598
 
429
599
  return s * pow(2.0, m);
600
+ // return r;
430
601
  }
431
602
 
432
603
  vec2 log_fp64(vec2 a)
@@ -464,10 +635,16 @@ vec2 sin_taylor_fp64(vec2 a) {
464
635
  t = mul_fp64(r, INVERSE_FACTORIAL_5_FP64);
465
636
  s = sum_fp64(s, t);
466
637
 
638
+ /* keep the following commented code in case we need them
639
+ for extra accuracy from the Taylor expansion*/
467
640
 
641
+ // r = mul_fp64(r, x);
642
+ // t = mul_fp64(r, INVERSE_FACTORIAL_7_FP64);
643
+ // s = sum_fp64(s, t);
468
644
 
469
-
470
-
645
+ // r = mul_fp64(r, x);
646
+ // t = mul_fp64(r, INVERSE_FACTORIAL_9_FP64);
647
+ // s = sum_fp64(s, t);
471
648
 
472
649
  return s;
473
650
  }
@@ -491,10 +668,16 @@ vec2 cos_taylor_fp64(vec2 a) {
491
668
  t = mul_fp64(r, INVERSE_FACTORIAL_6_FP64);
492
669
  s = sum_fp64(s, t);
493
670
 
671
+ /* keep the following commented code in case we need them
672
+ for extra accuracy from the Taylor expansion*/
494
673
 
674
+ // r = mul_fp64(r, x);
675
+ // t = mul_fp64(r, INVERSE_FACTORIAL_8_FP64);
676
+ // s = sum_fp64(s, t);
495
677
 
496
-
497
-
678
+ // r = mul_fp64(r, x);
679
+ // t = mul_fp64(r, INVERSE_FACTORIAL_10_FP64);
680
+ // s = sum_fp64(s, t);
498
681
 
499
682
  return s;
500
683
  }
@@ -513,6 +696,8 @@ vec2 sin_fp64(vec2 a) {
513
696
  if (a.x == 0.0 && a.y == 0.0) {
514
697
  return vec2(0.0, 0.0);
515
698
  }
699
+
700
+ // 2pi range reduction
516
701
  vec2 z = nint_fp64(div_fp64(a, TWO_PI_FP64));
517
702
  vec2 r = sub_fp64(a, mul_fp64(TWO_PI_FP64, z));
518
703
 
@@ -621,6 +806,8 @@ vec2 cos_fp64(vec2 a) {
621
806
  if (a.x == 0.0 && a.y == 0.0) {
622
807
  return vec2(1.0, 0.0);
623
808
  }
809
+
810
+ // 2pi range reduction
624
811
  vec2 z = nint_fp64(div_fp64(a, TWO_PI_FP64));
625
812
  vec2 r = sub_fp64(a, mul_fp64(TWO_PI_FP64, z));
626
813
 
@@ -730,6 +917,8 @@ vec2 tan_fp64(vec2 a) {
730
917
  if (a.x == 0.0 && a.y == 0.0) {
731
918
  return vec2(0.0, 0.0);
732
919
  }
920
+
921
+ // 2pi range reduction
733
922
  vec2 z = nint_fp64(div_fp64(a, TWO_PI_FP64));
734
923
  vec2 r = sub_fp64(a, mul_fp64(TWO_PI_FP64, z));
735
924
 
@@ -748,6 +937,8 @@ vec2 tan_fp64(vec2 a) {
748
937
  int k = int(q);
749
938
  int abs_k = int(abs(float(k)));
750
939
 
940
+ // We just can't get PI/16 * 3.0 very accurately.
941
+ // so let's just store it
751
942
  if (abs_k > 4) {
752
943
  return vec2(0.0 / 0.0, 0.0 / 0.0);
753
944
  } else {
@@ -829,6 +1020,8 @@ vec2 mix_fp64(vec2 a, vec2 b, float x) {
829
1020
  return sum_fp64(a, mul_fp64(range, vec2(x, 0.0)));
830
1021
  }
831
1022
 
1023
+ // Vector functions
1024
+ // vec2 functions
832
1025
  void vec2_sum_fp64(vec2 a[2], vec2 b[2], out vec2 out_val[2]) {
833
1026
  out_val[0] = sum_fp64(a[0], b[0]);
834
1027
  out_val[1] = sum_fp64(a[1], b[1]);
@@ -885,6 +1078,8 @@ vec2 vec2_dot_fp64(vec2 a[2], vec2 b[2]) {
885
1078
 
886
1079
  return sum_fp64(v[0], v[1]);
887
1080
  }
1081
+
1082
+ // vec3 functions
888
1083
  void vec3_sub_fp64(vec2 a[3], vec2 b[3], out vec2 out_val[3]) {
889
1084
  for (int i = 0; i < 3; i++) {
890
1085
  out_val[i] = sum_fp64(a[i], b[i]);
@@ -907,6 +1102,8 @@ vec2 vec3_distance_fp64(vec2 x[3], vec2 y[3]) {
907
1102
  vec3_sub_fp64(x, y, diff);
908
1103
  return vec3_length_fp64(diff);
909
1104
  }
1105
+
1106
+ // vec4 functions
910
1107
  void vec4_fp64(vec4 a, out vec2 out_val[4]) {
911
1108
  out_val[0].x = a[0];
912
1109
  out_val[0].y = 0.0;
@@ -957,7 +1154,7 @@ void mat4_vec4_mul_fp64(vec2 b[16], vec2 a[4], out vec2 out_val[4]) {
957
1154
  vec4_dot_fp64(a, tmp, out_val[i]);
958
1155
  }
959
1156
  }
960
- `;var kr={ONE:1};function Nr(){return kr}var Wt={name:"fp64-arithmetic",vs:qt,fs:null,getUniforms:Nr,fp64ify:se,fp64LowPart:$e,fp64ifyMatrix4:Ze},U={name:"fp64",vs:Gt,fs:null,dependencies:[Wt],fp64ify:se,fp64LowPart:$e,fp64ifyMatrix4:Ze};var as=1/Math.PI*180,ss=1/180*Math.PI,Dr={EPSILON:1e-12,debug:!1,precision:4,printTypes:!1,printDegrees:!1,printRowMajor:!0,_cartographicRadians:!1};globalThis.mathgl=globalThis.mathgl||{config:{...Dr}};var q=globalThis.mathgl.config;function Xe(e){return Array.isArray(e)||ArrayBuffer.isView(e)&&!(e instanceof DataView)}function M(e,t,n){let r=q.EPSILON;n&&(q.EPSILON=n);try{if(e===t)return!0;if(Xe(e)&&Xe(t)){if(e.length!==t.length)return!1;for(let o=0;o<e.length;++o)if(!M(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)<=q.EPSILON*Math.max(1,Math.abs(e),Math.abs(t)):!1}finally{q.EPSILON=r}}var G=typeof Float32Array<"u"?Float32Array:Array,Je=Math.random;function fe(e){return e>=0?Math.round(e):e%.5===0?Math.floor(e):Math.round(e)}var us=Math.PI/180;var ue={};gt(ue,{add:()=>qr,angle:()=>po,bezier:()=>oo,ceil:()=>Gr,clone:()=>Br,copy:()=>zr,create:()=>Ht,cross:()=>eo,dist:()=>Po,distance:()=>Xt,div:()=>bo,divide:()=>Zt,dot:()=>et,equals:()=>ho,exactEquals:()=>mo,floor:()=>Wr,forEach:()=>wo,fromValues:()=>Vr,hermite:()=>ro,inverse:()=>Jr,len:()=>xo,length:()=>Kt,lerp:()=>to,max:()=>Kr,min:()=>Hr,mul:()=>go,multiply:()=>$t,negate:()=>Xr,normalize:()=>Qr,random:()=>io,rotateX:()=>uo,rotateY:()=>lo,rotateZ:()=>co,round:()=>Yr,scale:()=>$r,scaleAndAdd:()=>Zr,set:()=>Ur,slerp:()=>no,sqrDist:()=>Oo,sqrLen:()=>Eo,squaredDistance:()=>Jt,squaredLength:()=>Qt,str:()=>vo,sub:()=>yo,subtract:()=>Yt,transformMat3:()=>so,transformMat4:()=>ao,transformQuat:()=>fo,zero:()=>_o});function Ht(){let e=new G(3);return G!=Float32Array&&(e[0]=0,e[1]=0,e[2]=0),e}function Br(e){let t=new G(3);return t[0]=e[0],t[1]=e[1],t[2]=e[2],t}function Kt(e){let t=e[0],n=e[1],r=e[2];return Math.sqrt(t*t+n*n+r*r)}function Vr(e,t,n){let r=new G(3);return r[0]=e,r[1]=t,r[2]=n,r}function zr(e,t){return e[0]=t[0],e[1]=t[1],e[2]=t[2],e}function Ur(e,t,n,r){return e[0]=t,e[1]=n,e[2]=r,e}function qr(e,t,n){return e[0]=t[0]+n[0],e[1]=t[1]+n[1],e[2]=t[2]+n[2],e}function Yt(e,t,n){return e[0]=t[0]-n[0],e[1]=t[1]-n[1],e[2]=t[2]-n[2],e}function $t(e,t,n){return e[0]=t[0]*n[0],e[1]=t[1]*n[1],e[2]=t[2]*n[2],e}function Zt(e,t,n){return e[0]=t[0]/n[0],e[1]=t[1]/n[1],e[2]=t[2]/n[2],e}function Gr(e,t){return e[0]=Math.ceil(t[0]),e[1]=Math.ceil(t[1]),e[2]=Math.ceil(t[2]),e}function Wr(e,t){return e[0]=Math.floor(t[0]),e[1]=Math.floor(t[1]),e[2]=Math.floor(t[2]),e}function Hr(e,t,n){return e[0]=Math.min(t[0],n[0]),e[1]=Math.min(t[1],n[1]),e[2]=Math.min(t[2],n[2]),e}function Kr(e,t,n){return e[0]=Math.max(t[0],n[0]),e[1]=Math.max(t[1],n[1]),e[2]=Math.max(t[2],n[2]),e}function Yr(e,t){return e[0]=fe(t[0]),e[1]=fe(t[1]),e[2]=fe(t[2]),e}function $r(e,t,n){return e[0]=t[0]*n,e[1]=t[1]*n,e[2]=t[2]*n,e}function Zr(e,t,n,r){return e[0]=t[0]+n[0]*r,e[1]=t[1]+n[1]*r,e[2]=t[2]+n[2]*r,e}function Xt(e,t){let n=t[0]-e[0],r=t[1]-e[1],o=t[2]-e[2];return Math.sqrt(n*n+r*r+o*o)}function Jt(e,t){let n=t[0]-e[0],r=t[1]-e[1],o=t[2]-e[2];return n*n+r*r+o*o}function Qt(e){let t=e[0],n=e[1],r=e[2];return t*t+n*n+r*r}function Xr(e,t){return e[0]=-t[0],e[1]=-t[1],e[2]=-t[2],e}function Jr(e,t){return e[0]=1/t[0],e[1]=1/t[1],e[2]=1/t[2],e}function Qr(e,t){let n=t[0],r=t[1],o=t[2],i=n*n+r*r+o*o;return i>0&&(i=1/Math.sqrt(i)),e[0]=t[0]*i,e[1]=t[1]*i,e[2]=t[2]*i,e}function et(e,t){return e[0]*t[0]+e[1]*t[1]+e[2]*t[2]}function eo(e,t,n){let r=t[0],o=t[1],i=t[2],a=n[0],s=n[1],f=n[2];return e[0]=o*f-i*s,e[1]=i*a-r*f,e[2]=r*s-o*a,e}function to(e,t,n,r){let o=t[0],i=t[1],a=t[2];return e[0]=o+r*(n[0]-o),e[1]=i+r*(n[1]-i),e[2]=a+r*(n[2]-a),e}function no(e,t,n,r){let o=Math.acos(Math.min(Math.max(et(t,n),-1),1)),i=Math.sin(o),a=Math.sin((1-r)*o)/i,s=Math.sin(r*o)/i;return e[0]=a*t[0]+s*n[0],e[1]=a*t[1]+s*n[1],e[2]=a*t[2]+s*n[2],e}function ro(e,t,n,r,o,i){let a=i*i,s=a*(2*i-3)+1,f=a*(i-2)+i,u=a*(i-1),l=a*(3-2*i);return e[0]=t[0]*s+n[0]*f+r[0]*u+o[0]*l,e[1]=t[1]*s+n[1]*f+r[1]*u+o[1]*l,e[2]=t[2]*s+n[2]*f+r[2]*u+o[2]*l,e}function oo(e,t,n,r,o,i){let a=1-i,s=a*a,f=i*i,u=s*a,l=3*i*s,c=3*f*a,p=f*i;return e[0]=t[0]*u+n[0]*l+r[0]*c+o[0]*p,e[1]=t[1]*u+n[1]*l+r[1]*c+o[1]*p,e[2]=t[2]*u+n[2]*l+r[2]*c+o[2]*p,e}function io(e,t){t=t===void 0?1:t;let n=Je()*2*Math.PI,r=Je()*2-1,o=Math.sqrt(1-r*r)*t;return e[0]=Math.cos(n)*o,e[1]=Math.sin(n)*o,e[2]=r*t,e}function ao(e,t,n){let r=t[0],o=t[1],i=t[2],a=n[3]*r+n[7]*o+n[11]*i+n[15];return a=a||1,e[0]=(n[0]*r+n[4]*o+n[8]*i+n[12])/a,e[1]=(n[1]*r+n[5]*o+n[9]*i+n[13])/a,e[2]=(n[2]*r+n[6]*o+n[10]*i+n[14])/a,e}function so(e,t,n){let r=t[0],o=t[1],i=t[2];return e[0]=r*n[0]+o*n[3]+i*n[6],e[1]=r*n[1]+o*n[4]+i*n[7],e[2]=r*n[2]+o*n[5]+i*n[8],e}function fo(e,t,n){let r=n[0],o=n[1],i=n[2],a=n[3],s=t[0],f=t[1],u=t[2],l=o*u-i*f,c=i*s-r*u,p=r*f-o*s,_=o*p-i*c,d=i*l-r*p,h=r*c-o*l,v=a*2;return l*=v,c*=v,p*=v,_*=2,d*=2,h*=2,e[0]=s+l+_,e[1]=f+c+d,e[2]=u+p+h,e}function uo(e,t,n,r){let o=[],i=[];return o[0]=t[0]-n[0],o[1]=t[1]-n[1],o[2]=t[2]-n[2],i[0]=o[0],i[1]=o[1]*Math.cos(r)-o[2]*Math.sin(r),i[2]=o[1]*Math.sin(r)+o[2]*Math.cos(r),e[0]=i[0]+n[0],e[1]=i[1]+n[1],e[2]=i[2]+n[2],e}function lo(e,t,n,r){let o=[],i=[];return o[0]=t[0]-n[0],o[1]=t[1]-n[1],o[2]=t[2]-n[2],i[0]=o[2]*Math.sin(r)+o[0]*Math.cos(r),i[1]=o[1],i[2]=o[2]*Math.cos(r)-o[0]*Math.sin(r),e[0]=i[0]+n[0],e[1]=i[1]+n[1],e[2]=i[2]+n[2],e}function co(e,t,n,r){let o=[],i=[];return o[0]=t[0]-n[0],o[1]=t[1]-n[1],o[2]=t[2]-n[2],i[0]=o[0]*Math.cos(r)-o[1]*Math.sin(r),i[1]=o[0]*Math.sin(r)+o[1]*Math.cos(r),i[2]=o[2],e[0]=i[0]+n[0],e[1]=i[1]+n[1],e[2]=i[2]+n[2],e}function po(e,t){let n=e[0],r=e[1],o=e[2],i=t[0],a=t[1],s=t[2],f=Math.sqrt((n*n+r*r+o*o)*(i*i+a*a+s*s)),u=f&&et(e,t)/f;return Math.acos(Math.min(Math.max(u,-1),1))}function _o(e){return e[0]=0,e[1]=0,e[2]=0,e}function vo(e){return"vec3(".concat(e[0],", ").concat(e[1],", ").concat(e[2],")")}function mo(e,t){return e[0]===t[0]&&e[1]===t[1]&&e[2]===t[2]}function ho(e,t){let n=e[0],r=e[1],o=e[2],i=t[0],a=t[1],s=t[2];return Math.abs(n-i)<=1e-6*Math.max(1,Math.abs(n),Math.abs(i))&&Math.abs(r-a)<=1e-6*Math.max(1,Math.abs(r),Math.abs(a))&&Math.abs(o-s)<=1e-6*Math.max(1,Math.abs(o),Math.abs(s))}var yo=Yt,go=$t,bo=Zt,Po=Xt,Oo=Jt,xo=Kt,Eo=Qt,wo=function(){let e=Ht();return function(t,n,r,o,i,a){let s,f;for(n||(n=3),r||(r=0),o?f=Math.min(o*n+r,t.length):f=t.length,s=r;s<f;s+=n)e[0]=t[s],e[1]=t[s+1],e[2]=t[s+2],i(e,e,a),t[s]=e[0],t[s+1]=e[1],t[s+2]=e[2];return t}}();var le=m(g());var en=`
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=`
961
1158
  const vec2 WORLD_SCALE_FP64 = vec2(81.4873275756836, 0.0000032873668232014097);
962
1159
 
963
1160
  uniform vec2 project_uViewProjectionMatrixFP64[16];
@@ -1031,7 +1228,7 @@ vec4 project_position_to_clipspace(
1031
1228
  position, position64xyLow, offset, commonPosition
1032
1229
  );
1033
1230
  }
1034
- `;var To=U.fp64ify,So=U.fp64ifyMatrix4,ce={name:"project64",dependencies:[le.project,U],vs:en,getUniforms:Mo},Ro=(0,le._memoize)(Ao);function Mo(e){if(e&&"viewport"in e){var t=e.viewport,n=t.viewProjectionMatrix,r=t.scale;return Ro({viewProjectionMatrix:n,scale:r})}return{}}function Ao(e){var t=e.viewProjectionMatrix,n=e.scale,r=So(t),o=To(n);return{project_uViewProjectionMatrixFP64:r,project64_uViewProjectionMatrix:r,project64_uScale:o}}function pe(e){return typeof Symbol=="function"&&typeof Symbol.iterator=="symbol"?pe=function(n){return typeof n}:pe=function(n){return n&&typeof Symbol=="function"&&n.constructor===Symbol&&n!==Symbol.prototype?"symbol":typeof n},pe(e)}function Fo(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}function Io(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&&tt(e,t)}function tt(e,t){return tt=Object.setPrototypeOf||function(r,o){return r.__proto__=o,r},tt(e,t)}function Lo(e){var t=No();return function(){var r=_e(e),o;if(t){var i=_e(this).constructor;o=Reflect.construct(r,arguments,i)}else o=r.apply(this,arguments);return Co(this,o)}}function Co(e,t){if(t&&(pe(t)==="object"||typeof t=="function"))return t;if(t!==void 0)throw new TypeError("Derived constructors may only return object or undefined");return ko(e)}function ko(e){if(e===void 0)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return e}function No(){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 _e(e){return _e=Object.setPrototypeOf?Object.getPrototypeOf:function(n){return n.__proto__||Object.getPrototypeOf(n)},_e(e)}var nt=function(e){Io(n,e);var t=Lo(n);function n(){return Fo(this,n),t.apply(this,arguments)}var r=n.prototype;return r.getShaders=function(){var i=this.props.coordinateSystem;if(i!==W.COORDINATE_SYSTEM.LNGLAT&&i!==W.COORDINATE_SYSTEM.DEFAULT)throw new Error("fp64: coordinateSystem must be LNGLAT");return{modules:[ce]}},n}(W.LayerExtension);nt.extensionName="Fp64Extension";var H=m(g());var tn={inject:{"vs:#decl":`
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":`
1035
1232
  attribute vec2 instanceDashArrays;
1036
1233
  attribute float instanceDashOffsets;
1037
1234
  varying vec2 vDashArray;
@@ -1084,7 +1281,7 @@ float round(float x) {
1084
1281
  }
1085
1282
  }
1086
1283
  }
1087
- `}},nn={inject:{"vs:#decl":`
1284
+ `}},ss={inject:{"vs:#decl":`
1088
1285
  attribute float instanceOffsets;
1089
1286
  `,"vs:DECKGL_FILTER_SIZE":`
1090
1287
  float offsetWidth = abs(instanceOffsets * 2.0) + 1.0;
@@ -1101,7 +1298,7 @@ attribute float instanceOffsets;
1101
1298
  if (isInside == 0.0) {
1102
1299
  discard;
1103
1300
  }
1104
- `}};function de(e){return typeof Symbol=="function"&&typeof Symbol.iterator=="symbol"?de=function(n){return typeof n}:de=function(n){return n&&typeof Symbol=="function"&&n.constructor===Symbol&&n!==Symbol.prototype?"symbol":typeof n},de(e)}function Do(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}function jo(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&&rt(e,t)}function rt(e,t){return rt=Object.setPrototypeOf||function(r,o){return r.__proto__=o,r},rt(e,t)}function Bo(e){var t=Uo();return function(){var r=ve(e),o;if(t){var i=ve(this).constructor;o=Reflect.construct(r,arguments,i)}else o=r.apply(this,arguments);return Vo(this,o)}}function Vo(e,t){if(t&&(de(t)==="object"||typeof t=="function"))return t;if(t!==void 0)throw new TypeError("Derived constructors may only return object or undefined");return zo(e)}function zo(e){if(e===void 0)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return e}function Uo(){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(n){return n.__proto__||Object.getPrototypeOf(n)},ve(e)}var qo={getDashArray:{type:"accessor",value:[0,0]},getOffset:{type:"accessor",value:0},dashJustified:!1,dashGapPickable:!1},me=function(e){jo(n,e);var t=Bo(n);function n(){var o=arguments.length>0&&arguments[0]!==void 0?arguments[0]:{},i=o.dash,a=i===void 0?!1:i,s=o.offset,f=s===void 0?!1:s,u=o.highPrecisionDash,l=u===void 0?!1:u;return Do(this,n),t.call(this,{dash:a||l,offset:f,highPrecisionDash:l})}var r=n.prototype;return r.isEnabled=function(i){return"pathTesselator"in i.state},r.getShaders=function(i){if(!i.isEnabled(this))return null;var a={};return i.opts.dash&&(a=(0,H._mergeShaders)(a,tn)),i.opts.offset&&(a=(0,H._mergeShaders)(a,nn)),a},r.initializeState=function(i,a){var s=this.getAttributeManager();!s||!a.isEnabled(this)||(a.opts.dash&&s.addInstanced({instanceDashArrays:{size:2,accessor:"getDashArray"}}),a.opts.highPrecisionDash&&s.addInstanced({instanceDashOffsets:{size:1,accessor:"getPath",transform:a.getDashOffsets.bind(this)}}),a.opts.offset&&s.addInstanced({instanceOffsets:{size:1,accessor:"getOffset"}}))},r.updateState=function(i,a){if(a.isEnabled(this)){var s={};a.opts.dash&&(s.dashAlignMode=this.props.dashJustified?1:0,s.dashGapPickable=Boolean(this.props.dashGapPickable)),this.state.model.setUniforms(s)}},r.getDashOffsets=function(i){for(var a=[0],s=this.props.positionFormat==="XY"?2:3,f=Array.isArray(i[0]),u=f?i.length:i.length/s,l,c,p=0;p<u-1;p++)l=f?i[p]:i.slice(p*s,p*s+s),l=this.projectPosition(l),p>0&&(a[p]=a[p-1]+ue.dist(c,l)),c=l;return a},n}(H.LayerExtension);me.defaultProps=qo;me.extensionName="PathStyleExtension";var on=m(g()),an=m(O());var K=m(g()),Go=`
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=`
1105
1302
  #ifdef NON_INSTANCED_MODEL
1106
1303
  #define FILL_PATTERN_FRAME_ATTRIB fillPatternFrames
1107
1304
  #define FILL_PATTERN_SCALE_ATTRIB fillPatternScales
@@ -1122,7 +1319,7 @@ uniform vec2 fill_patternTextureSize;
1122
1319
  varying vec2 fill_uv;
1123
1320
  varying vec4 fill_patternBounds;
1124
1321
  varying vec4 fill_patternPlacement;
1125
- `,Wo=`
1322
+ `,ol=`
1126
1323
  uniform bool fill_patternEnabled;
1127
1324
  uniform bool fill_patternMask;
1128
1325
  uniform sampler2D fill_patternTexture;
@@ -1134,7 +1331,7 @@ varying vec4 fill_patternPlacement;
1134
1331
  varying vec2 fill_uv;
1135
1332
 
1136
1333
  const float FILL_UV_SCALE = 512.0 / 40000000.0;
1137
- `,Ho={"vs:DECKGL_FILTER_GL_POSITION":`
1334
+ `,sl={"vs:DECKGL_FILTER_GL_POSITION":`
1138
1335
  fill_uv = geometry.position.xy;
1139
1336
  `,"vs:DECKGL_FILTER_COLOR":`
1140
1337
  if (fill_patternEnabled) {
@@ -1156,13 +1353,13 @@ const float FILL_UV_SCALE = 512.0 / 40000000.0;
1156
1353
  color.rgb = patternColor.rgb;
1157
1354
  }
1158
1355
  }
1159
- `};function Ko(e,t){if(!e)return{};if("fillPatternTexture"in e){var n=e.fillPatternTexture;return{fill_patternTexture:n,fill_patternTextureSize:[n.width,n.height]}}if("viewport"in e){var r=e.fillPatternMask,o=r===void 0?!0:r,i=e.fillPatternEnabled,a=i===void 0?!0:i,s=t,f=s.project_uCommonOrigin,u=[(0,K.fp64LowPart)(f[0]),(0,K.fp64LowPart)(f[1])];return{fill_uvCoordinateOrigin:f.slice(0,2),fill_uvCoordinateOrigin64Low:u,fill_patternMask:o,fill_patternEnabled:a}}return{}}var rn={name:"fill-pattern",vs:Go,fs:Wo,inject:Ho,dependencies:[K.project],getUniforms:Ko};function he(e){return typeof Symbol=="function"&&typeof Symbol.iterator=="symbol"?he=function(n){return typeof n}:he=function(n){return n&&typeof Symbol=="function"&&n.constructor===Symbol&&n!==Symbol.prototype?"symbol":typeof n},he(e)}function Yo(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}function $o(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&&ot(e,t)}function ot(e,t){return ot=Object.setPrototypeOf||function(r,o){return r.__proto__=o,r},ot(e,t)}function Zo(e){var t=Qo();return function(){var r=ye(e),o;if(t){var i=ye(this).constructor;o=Reflect.construct(r,arguments,i)}else o=r.apply(this,arguments);return Xo(this,o)}}function Xo(e,t){if(t&&(he(t)==="object"||typeof t=="function"))return t;if(t!==void 0)throw new TypeError("Derived constructors may only return object or undefined");return Jo(e)}function Jo(e){if(e===void 0)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return e}function Qo(){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 ye(e){return ye=Object.setPrototypeOf?Object.getPrototypeOf:function(n){return n.__proto__||Object.getPrototypeOf(n)},ye(e)}function ei(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}var ti={fillPatternEnabled:!0,fillPatternAtlas:{type:"image",value:null,async:!0,parameters:ei({},10241,9729)},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]}},ge=function(e){$o(n,e);var t=Zo(n);function n(){var o=arguments.length>0&&arguments[0]!==void 0?arguments[0]:{},i=o.pattern,a=i===void 0?!1:i;return Yo(this,n),t.call(this,{pattern:a})}var r=n.prototype;return r.isEnabled=function(i){return i.getAttributeManager()!==null&&!("pathTesselator"in i.state)},r.getShaders=function(i){return i.isEnabled(this)?{modules:[i.opts.pattern&&rn].filter(Boolean)}:null},r.initializeState=function(i,a){if(a.isEnabled(this)){var s=this.getAttributeManager();a.opts.pattern&&s.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:new an.Texture2D(this.context.gl,{data:new Uint8Array(4),width:1,height:1})})}},r.updateState=function(i,a){var s=i.props,f=i.oldProps;a.isEnabled(this)&&s.fillPatternMapping&&s.fillPatternMapping!==f.fillPatternMapping&&this.getAttributeManager().invalidate("getFillPattern")},r.draw=function(i,a){if(a.isEnabled(this)){var s=this.props.fillPatternAtlas;this.setModuleParameters({fillPatternTexture:s||this.state.emptyTexture})}},r.finalizeState=function(){var i=this.state.emptyTexture;i?.delete()},r.getPatternFrame=function(i){var a=this.getCurrentLayer().props.fillPatternMapping,s=a&&a[i];return s?[s.x,s.y,s.width,s.height]:[0,0,0,0]},n}(on.LayerExtension);ge.defaultProps=ti;ge.extensionName="FillStyleExtension";var sn=m(g());function be(e){return typeof Symbol=="function"&&typeof Symbol.iterator=="symbol"?be=function(n){return typeof n}:be=function(n){return n&&typeof Symbol=="function"&&n.constructor===Symbol&&n!==Symbol.prototype?"symbol":typeof n},be(e)}function ni(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}function ri(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&&it(e,t)}function it(e,t){return it=Object.setPrototypeOf||function(r,o){return r.__proto__=o,r},it(e,t)}function oi(e){var t=si();return function(){var r=Pe(e),o;if(t){var i=Pe(this).constructor;o=Reflect.construct(r,arguments,i)}else o=r.apply(this,arguments);return ii(this,o)}}function ii(e,t){if(t&&(be(t)==="object"||typeof t=="function"))return t;if(t!==void 0)throw new TypeError("Derived constructors may only return object or undefined");return ai(e)}function ai(e){if(e===void 0)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return e}function si(){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 Pe(e){return Pe=Object.setPrototypeOf?Object.getPrototypeOf:function(n){return n.__proto__||Object.getPrototypeOf(n)},Pe(e)}var fi={clipBounds:[0,0,1,1],clipByInstance:void 0},fn=`
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=`
1160
1357
  uniform vec4 clip_bounds;
1161
1358
 
1162
1359
  bool clip_isInBounds(vec2 position) {
1163
1360
  return position.x >= clip_bounds[0] && position.y >= clip_bounds[1] && position.x < clip_bounds[2] && position.y < clip_bounds[3];
1164
1361
  }
1165
- `,ui={name:"clip-vs",vs:fn},li={"vs:#decl":`
1362
+ `,gl={name:"clip-vs",vs:us},Ol={"vs:#decl":`
1166
1363
  varying float clip_isVisible;
1167
1364
  `,"vs:DECKGL_FILTER_GL_POSITION":`
1168
1365
  clip_isVisible = float(clip_isInBounds(geometry.worldPosition.xy));
@@ -1170,7 +1367,7 @@ varying float clip_isVisible;
1170
1367
  varying float clip_isVisible;
1171
1368
  `,"fs:DECKGL_FILTER_COLOR":`
1172
1369
  if (clip_isVisible < 0.5) discard;
1173
- `},ci={name:"clip-fs",fs:fn},pi={"vs:#decl":`
1370
+ `},bl={name:"clip-fs",fs:us},Nl={"vs:#decl":`
1174
1371
  varying vec2 clip_commonPosition;
1175
1372
  `,"vs:DECKGL_FILTER_GL_POSITION":`
1176
1373
  clip_commonPosition = geometry.position.xy;
@@ -1178,7 +1375,7 @@ varying vec2 clip_commonPosition;
1178
1375
  varying vec2 clip_commonPosition;
1179
1376
  `,"fs:DECKGL_FILTER_COLOR":`
1180
1377
  if (!clip_isInBounds(clip_commonPosition)) discard;
1181
- `},Oe=function(e){ri(n,e);var t=oi(n);function n(){return ni(this,n),t.apply(this,arguments)}var r=n.prototype;return r.getShaders=function(){var i="instancePositions"in this.getAttributeManager().attributes;return this.props.clipByInstance!==void 0&&(i=Boolean(this.props.clipByInstance)),this.state.clipByInstance=i,i?{modules:[ui],inject:li}:{modules:[ci],inject:pi}},r.draw=function(i){var a=i.uniforms,s=this.props.clipBounds;if(this.state.clipByInstance)a.clip_bounds=s;else{var f=this.projectPosition([s[0],s[1],0]),u=this.projectPosition([s[2],s[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])]}},n}(sn.LayerExtension);Oe.defaultProps=fi;Oe.extensionName="ClipExtension";var Sn=m(g());var un=m(g()),_i=`
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=`
1182
1379
  #ifdef NON_INSTANCED_MODEL
1183
1380
  attribute float collisionPriorities;
1184
1381
  #else
@@ -1227,7 +1424,7 @@ float collision_isVisible(vec2 texCoords, vec3 pickingColor) {
1227
1424
  float W = 2.0 * floatN + 1.0;
1228
1425
  return pow(accumulator / (W * W), 2.2);
1229
1426
  }
1230
- `,di={"vs:#decl":`
1427
+ `,Pl={"vs:#decl":`
1231
1428
  float collision_fade = 1.0;
1232
1429
  `,"vs:DECKGL_FILTER_GL_POSITION":`
1233
1430
  if (collision_sort) {
@@ -1250,17 +1447,18 @@ float collision_isVisible(vec2 texCoords, vec3 pickingColor) {
1250
1447
  }
1251
1448
  `,"vs:DECKGL_FILTER_COLOR":`
1252
1449
  color.a *= collision_fade;
1253
- `},vi=function(t,n){if(!t||!("dummyCollisionMap"in t))return{};var r=t.collisionFBO,o=t.drawToCollisionMap,i=t.dummyCollisionMap;return{collision_sort:Boolean(o),collision_texture:!o&&r?r:i}},ln={name:"collision",dependencies:[un.project],vs:_i,inject:di,getUniforms:vi};var T=m(O());var wn=m(g());var _n=m(O()),dn=m(g());function xe(e){return typeof Symbol=="function"&&typeof Symbol.iterator=="symbol"?xe=function(n){return typeof n}:xe=function(n){return n&&typeof Symbol=="function"&&n.constructor===Symbol&&n!==Symbol.prototype?"symbol":typeof n},xe(e)}function cn(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter(function(o){return Object.getOwnPropertyDescriptor(e,o).enumerable})),n.push.apply(n,r)}return n}function pn(e){for(var t=1;t<arguments.length;t++){var n=arguments[t]!=null?arguments[t]:{};t%2?cn(Object(n),!0).forEach(function(r){mi(e,r,n[r])}):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):cn(Object(n)).forEach(function(r){Object.defineProperty(e,r,Object.getOwnPropertyDescriptor(n,r))})}return e}function mi(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function hi(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}function yi(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&&at(e,t)}function at(e,t){return at=Object.setPrototypeOf||function(r,o){return r.__proto__=o,r},at(e,t)}function gi(e){var t=Oi();return function(){var r=Ee(e),o;if(t){var i=Ee(this).constructor;o=Reflect.construct(r,arguments,i)}else o=r.apply(this,arguments);return bi(this,o)}}function bi(e,t){if(t&&(xe(t)==="object"||typeof t=="function"))return t;if(t!==void 0)throw new TypeError("Derived constructors may only return object or undefined");return Pi(e)}function Pi(e){if(e===void 0)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return e}function Oi(){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 Ee(e){return Ee=Object.setPrototypeOf?Object.getPrototypeOf:function(n){return n.__proto__||Object.getPrototypeOf(n)},Ee(e)}var vn=function(e){yi(n,e);var t=gi(n);function n(){return hi(this,n),t.apply(this,arguments)}var r=n.prototype;return r.renderCollisionMap=function(i,a){var s=this,f=this.gl,u=1;return(0,_n.withParameters)(f,{scissorTest:!0,scissor:[u,u,i.width-2*u,i.height-2*u],clearColor:[0,0,0,0],blend:!1,depthTest:!0,depthRange:[0,1]},function(){return s.render(pn(pn({},a),{},{target:i,pass:"collision"}))})},r.getModuleParameters=function(){return{drawToCollisionMap:!0,pickingActive:1,pickingAttribute:!1,lightSources:{}}},n}(dn._LayersPass);var ft=m(g()),xn=m(O());var I=m(O()),yn=m(g());function we(e){return typeof Symbol=="function"&&typeof Symbol.iterator=="symbol"?we=function(n){return typeof n}:we=function(n){return n&&typeof Symbol=="function"&&n.constructor===Symbol&&n!==Symbol.prototype?"symbol":typeof n},we(e)}function mn(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter(function(o){return Object.getOwnPropertyDescriptor(e,o).enumerable})),n.push.apply(n,r)}return n}function hn(e){for(var t=1;t<arguments.length;t++){var n=arguments[t]!=null?arguments[t]:{};t%2?mn(Object(n),!0).forEach(function(r){A(e,r,n[r])}):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):mn(Object(n)).forEach(function(r){Object.defineProperty(e,r,Object.getOwnPropertyDescriptor(n,r))})}return e}function A(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function xi(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}function Te(e,t,n){return typeof Reflect<"u"&&Reflect.get?Te=Reflect.get:Te=function(o,i,a){var s=Ei(o,i);if(s){var f=Object.getOwnPropertyDescriptor(s,i);return f.get?f.get.call(a):f.value}},Te(e,t,n||e)}function Ei(e,t){for(;!Object.prototype.hasOwnProperty.call(e,t)&&(e=F(e),e!==null););return e}function wi(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&&st(e,t)}function st(e,t){return st=Object.setPrototypeOf||function(r,o){return r.__proto__=o,r},st(e,t)}function Ti(e){var t=Mi();return function(){var r=F(e),o;if(t){var i=F(this).constructor;o=Reflect.construct(r,arguments,i)}else o=r.apply(this,arguments);return Si(this,o)}}function Si(e,t){if(t&&(we(t)==="object"||typeof t=="function"))return t;if(t!==void 0)throw new TypeError("Derived constructors may only return object or undefined");return Ri(e)}function Ri(e){if(e===void 0)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return e}function Mi(){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 F(e){return F=Object.setPrototypeOf?Object.getPrototypeOf:function(n){return n.__proto__||Object.getPrototypeOf(n)},F(e)}var gn=function(e){wi(n,e);var t=Ti(n);function n(o,i){var a,s;xi(this,n),s=t.call(this,o,i),s.maskMap=void 0,s.fbo=void 0;var f=i.mapSize,u=f===void 0?2048:f;return s.maskMap=new I.Texture2D(o,{width:u,height:u,parameters:(a={},A(a,10241,9729),A(a,10240,9729),A(a,10242,33071),A(a,10243,33071),a)}),s.fbo=new I.Framebuffer(o,{id:"maskmap",width:u,height:u,attachments:A({},36064,s.maskMap)}),s}var r=n.prototype;return r.render=function(i){var a=this,s=this.gl,f=[!1,!1,!1,!1];return f[i.channel]=!0,(0,I.withParameters)(s,{clearColor:[255,255,255,255],blend:!0,blendFunc:[0,1],blendEquation:32778,colorMask:f,depthTest:!1},function(){return Te(F(n.prototype),"render",a).call(a,hn(hn({},i),{},{target:a.fbo,pass:"mask"}))})},r.shouldDrawLayer=function(i){return i.props.operation.includes("mask")},r.delete=function(){this.fbo.delete(),this.maskMap.delete()},n}(yn._LayersPass);var Se=m(g());function Ai(e,t){return Li(e)||Ii(e,t)||Pn(e,t)||Fi()}function Fi(){throw new TypeError(`Invalid attempt to destructure non-iterable instance.
1254
- In order to be iterable, non-array objects must have a [Symbol.iterator]() method.`)}function Ii(e,t){var n=e==null?null:typeof Symbol<"u"&&e[Symbol.iterator]||e["@@iterator"];if(n!=null){var r=[],o=!0,i=!1,a,s;try{for(n=n.call(e);!(o=(a=n.next()).done)&&(r.push(a.value),!(t&&r.length===t));o=!0);}catch(f){i=!0,s=f}finally{try{!o&&n.return!=null&&n.return()}finally{if(i)throw s}}return r}}function Li(e){if(Array.isArray(e))return e}function Ci(e,t){var n=typeof Symbol<"u"&&e[Symbol.iterator]||e["@@iterator"];if(!n){if(Array.isArray(e)||(n=Pn(e))||t&&e&&typeof e.length=="number"){n&&(e=n);var r=0,o=function(){};return{s:o,n:function(){return r>=e.length?{done:!0}:{done:!1,value:e[r++]}},e:function(u){throw u},f:o}}throw new TypeError(`Invalid attempt to iterate non-iterable instance.
1255
- In order to be iterable, non-array objects must have a [Symbol.iterator]() method.`)}var i=!0,a=!1,s;return{s:function(){n=n.call(e)},n:function(){var u=n.next();return i=u.done,u},e:function(u){a=!0,s=u},f:function(){try{!i&&n.return!=null&&n.return()}finally{if(a)throw s}}}}function Pn(e,t){if(e){if(typeof e=="string")return bn(e,t);var n=Object.prototype.toString.call(e).slice(8,-1);if(n==="Object"&&e.constructor&&(n=e.constructor.name),n==="Map"||n==="Set")return Array.from(e);if(n==="Arguments"||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n))return bn(e,t)}}function bn(e,t){(t==null||t>e.length)&&(t=e.length);for(var n=0,r=new Array(t);n<t;n++)r[n]=e[n];return r}function L(e,t){var n=[1/0,1/0,-1/0,-1/0],r=Ci(e),o;try{for(r.s();!(o=r.n()).done;){var i=o.value,a=i.getBounds();if(a){var s=i.projectPosition(a[0],{viewport:t,autoOffset:!1}),f=i.projectPosition(a[1],{viewport:t,autoOffset:!1});n[0]=Math.min(n[0],s[0]),n[1]=Math.min(n[1],s[1]),n[2]=Math.max(n[2],f[0]),n[3]=Math.max(n[3],f[1])}}}catch(u){r.e(u)}finally{r.f()}return Number.isFinite(n[0])?n:null}var ki=2048;function C(e){var t=e.bounds,n=e.viewport,r=e.border,o=r===void 0?0:r,i=n.isGeospatial;if(t[2]<=t[0]||t[3]<=t[1])return null;var a=n.unprojectPosition([(t[0]+t[2])/2,(t[1]+t[3])/2,0]),s=e.width,f=e.height,u=e.zoom;if(u===void 0){s=s-o*2,f=f-o*2;var l=Math.min(s/(t[2]-t[0]),f/(t[3]-t[1]));u=Math.min(Math.log2(l),20)}else if(!s||!f){var c=Math.pow(2,u);s=Math.round(Math.abs(t[2]-t[0])*c),f=Math.round(Math.abs(t[3]-t[1])*c);var p=ki-o*2;if(s>p||f>p){var _=p/Math.max(s,f);s=Math.round(s*_),f=Math.round(f*_),u+=Math.log2(_)}}return i?new Se.WebMercatorViewport({id:n.id,x:o,y:o,width:s,height:f,longitude:a[0],latitude:a[1],zoom:u,orthographic:!0}):new Se.OrthographicViewport({id:n.id,x:o,y:o,width:s,height:f,target:a,zoom:u,flipY:!1})}function Ni(e,t){var n;if(t&&t.length===2){var r=Ai(t,2),o=r[0],i=r[1],a=e.getBounds({z:o}),s=e.getBounds({z:i});n=[Math.min(a[0],s[0]),Math.min(a[1],s[1]),Math.max(a[2],s[2]),Math.max(a[3],s[3])]}else n=e.getBounds();var f=e.projectPosition(n.slice(0,2)),u=e.projectPosition(n.slice(2,4));return[f[0],f[1],u[0],u[1]]}function k(e,t,n){if(!e)return[0,0,1,1];var r=Ni(t,n),o=Di(r);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 Di(e){var t=e[2]-e[0],n=e[3]-e[1],r=(e[0]+e[2])/2,o=(e[1]+e[3])/2;return[r-t,o-n,r+t,o+n]}function ji(e,t){var n=typeof Symbol<"u"&&e[Symbol.iterator]||e["@@iterator"];if(!n){if(Array.isArray(e)||(n=Bi(e))||t&&e&&typeof e.length=="number"){n&&(e=n);var r=0,o=function(){};return{s:o,n:function(){return r>=e.length?{done:!0}:{done:!1,value:e[r++]}},e:function(u){throw u},f:o}}throw new TypeError(`Invalid attempt to iterate non-iterable instance.
1256
- In order to be iterable, non-array objects must have a [Symbol.iterator]() method.`)}var i=!0,a=!1,s;return{s:function(){n=n.call(e)},n:function(){var u=n.next();return i=u.done,u},e:function(u){a=!0,s=u},f:function(){try{!i&&n.return!=null&&n.return()}finally{if(a)throw s}}}}function Bi(e,t){if(e){if(typeof e=="string")return On(e,t);var n=Object.prototype.toString.call(e).slice(8,-1);if(n==="Object"&&e.constructor&&(n=e.constructor.name),n==="Map"||n==="Set")return Array.from(e);if(n==="Arguments"||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n))return On(e,t)}}function On(e,t){(t==null||t>e.length)&&(t=e.length);for(var n=0,r=new Array(t);n<t;n++)r[n]=e[n];return r}function Vi(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}var Re=function(){function e(){Vi(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(r,o){var i=o.layers,a=o.layerFilter,s=o.viewports,f=o.onViewportActive,u=o.views,l=o.isPicking,c=!1;if(this.dummyMaskMap||(this.dummyMaskMap=new xn.Texture2D(r,{width:1,height:1})),l)return{didRender:c};var p=i.filter(function(b){return b.props.visible&&b.props.operation.includes("mask")});if(p.length===0)return this.masks=null,this.channels.length=0,{didRender:c};this.masks={},this.maskPass||(this.maskPass=new gn(r,{id:"default-mask"}),this.maskMap=this.maskPass.maskMap);var _=this._sortMaskChannels(p),d=s[0],h=!this.lastViewport||!this.lastViewport.equals(d);if(d.resolution!==void 0)return ft.log.warn("MaskExtension is not supported in GlobeView")(),{didRender:c};for(var v in _){var y=this._renderChannel(_[v],{layerFilter:a,onViewportActive:f,views:u,viewport:d,viewportChanged:h});c||(c=y)}return{didRender:c}},t._renderChannel=function(r,o){var i=o.layerFilter,a=o.onViewportActive,s=o.views,f=o.viewport,u=o.viewportChanged,l=!1,c=this.channels[r.index];if(!c)return l;var p=r===c||r.layers.length!==c.layers.length||r.layers.some(function(y,b){return y!==c.layers[b]||y.props.transitions})||r.layerBounds.some(function(y,b){return y!==c.layerBounds[b]});if(r.bounds=c.bounds,r.maskBounds=c.maskBounds,this.channels[r.index]=r,p||u){this.lastViewport=f;var _=L(r.layers,f);if(r.bounds=_&&k(_,f),p||!M(r.bounds,c.bounds)){var d=this.maskPass,h=this.maskMap,v=_&&C({bounds:r.bounds,viewport:f,width:h.width,height:h.height,border:1});r.maskBounds=v?v.getBounds():[0,0,1,1],d.render({pass:"mask",channel:r.index,layers:r.layers,layerFilter:i,viewports:v?[v]:[],onViewportActive:a,views:s,moduleParameters:{devicePixelRatio:1}}),l=!0}}return this.masks[r.id]={index:r.index,bounds:r.maskBounds,coordinateOrigin:r.coordinateOrigin,coordinateSystem:r.coordinateSystem},l},t._sortMaskChannels=function(r){var o=this,i={},a=0,s=ji(r),f;try{var u=function(){var v=f.value,y=v.root.id,b=i[y];if(!b){if(++a>4)return ft.log.warn("Too many mask layers. The max supported is 4")(),"continue";b={id:y,index:o.channels.findIndex(function(P){return P?.id===y}),layers:[],layerBounds:[],coordinateOrigin:v.root.props.coordinateOrigin,coordinateSystem:v.root.props.coordinateSystem},i[y]=b}b.layers.push(v),b.layerBounds.push(v.getBounds())};for(s.s();!(f=s.n()).done;)var l=u()}catch(h){s.e(h)}finally{s.f()}for(var c=0;c<4;c++){var p=this.channels[c];(!p||!(p.id in i))&&(this.channels[c]=null)}for(var _ in i){var d=i[_];d.index<0&&(d.index=this.channels.findIndex(function(h){return!h}),this.channels[d.index]=d)}return i},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 N(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function zi(e,t){var n=typeof Symbol<"u"&&e[Symbol.iterator]||e["@@iterator"];if(!n){if(Array.isArray(e)||(n=Ui(e))||t&&e&&typeof e.length=="number"){n&&(e=n);var r=0,o=function(){};return{s:o,n:function(){return r>=e.length?{done:!0}:{done:!1,value:e[r++]}},e:function(u){throw u},f:o}}throw new TypeError(`Invalid attempt to iterate non-iterable instance.
1257
- In order to be iterable, non-array objects must have a [Symbol.iterator]() method.`)}var i=!0,a=!1,s;return{s:function(){n=n.call(e)},n:function(){var u=n.next();return i=u.done,u},e:function(u){a=!0,s=u},f:function(){try{!i&&n.return!=null&&n.return()}finally{if(a)throw s}}}}function Ui(e,t){if(e){if(typeof e=="string")return En(e,t);var n=Object.prototype.toString.call(e).slice(8,-1);if(n==="Object"&&e.constructor&&(n=e.constructor.name),n==="Map"||n==="Set")return Array.from(e);if(n==="Arguments"||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n))return En(e,t)}}function En(e,t){(t==null||t>e.length)&&(t=e.length);for(var n=0,r=new Array(t);n<t;n++)r[n]=e[n];return r}function qi(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}var ut=2,Tn=function(){function e(){qi(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(r,o){var i,a=o.effects,s=o.layers,f=o.layerFilter,u=o.viewports,l=o.onViewportActive,c=o.views,p=o.isPicking,_=o.preRenderStats,d=_===void 0?{}:_;if(this.dummyCollisionMap||(this.dummyCollisionMap=new T.Texture2D(r,{width:1,height:1})),!p){var h=s.filter(function(He){var ht=He.props,nr=ht.visible,rr=ht.collisionEnabled;return nr&&rr});if(h.length===0){this.channels={};return}this.collisionFilterPass||(this.collisionFilterPass=new vn(r,{id:"default-collision-filter"}));var v=a?.filter(function(He){return He.constructor===Re}),y=(i=d["mask-effect"])===null||i===void 0?void 0:i.didRender,b=this._groupByCollisionGroup(r,h),P=u[0],Z=!this.lastViewport||!this.lastViewport.equals(P)||y;for(var z in b){var er=this.collisionFBOs[z],tr=b[z];er.resize({width:r.canvas.width/ut,height:r.canvas.height/ut}),this._render(tr,{effects:v,layerFilter:f,onViewportActive:l,views:c,viewport:P,viewportChanged:Z})}}},t._render=function(r,o){var i=o.effects,a=o.layerFilter,s=o.onViewportActive,f=o.views,u=o.viewport,l=o.viewportChanged,c=r.collisionGroup,p=this.channels[c];if(p){var _=l||r===p||!(0,wn._deepEqual)(p.layers,r.layers,1)||r.layerBounds.some(function(h,v){return!M(h,p.layerBounds[v])})||r.allLayersLoaded!==p.allLayersLoaded||r.layers.some(function(h){return h.props.transitions});if(this.channels[c]=r,_){this.lastViewport=u;var d=this.collisionFBOs[c];this.collisionFilterPass.renderCollisionMap(d,{pass:"collision-filter",isPicking:!0,layers:r.layers,effects:i,layerFilter:a,viewports:u?[u]:[],onViewportActive:s,views:f,moduleParameters:{dummyCollisionMap:this.dummyCollisionMap,devicePixelRatio:(0,T.cssToDeviceRatio)(d.gl)/ut}})}}},t._groupByCollisionGroup=function(r,o){var i={},a=zi(o),s;try{for(a.s();!(s=a.n()).done;){var f=s.value,u=f.props.collisionGroup,l=i[u];l||(l={collisionGroup:u,layers:[],layerBounds:[],allLayersLoaded:!0},i[u]=l),l.layers.push(f),l.layerBounds.push(f.getBounds()),f.isLoaded||(l.allLayersLoaded=!1)}}catch(y){a.e(y)}finally{a.f()}for(var c=0,p=Object.keys(i);c<p.length;c++){var _=p[c];this.collisionFBOs[_]||this.createFBO(r,_),this.channels[_]||(this.channels[_]=i[_])}for(var d=0,h=Object.keys(this.collisionFBOs);d<h.length;d++){var v=h[d];i[v]||this.destroyFBO(v)}return i},t.getModuleParameters=function(r){var o=r.props.collisionGroup,i=this.collisionFBOs,a=this.dummyCollisionMap;return{collisionFBO:i[o],dummyCollisionMap:a}},t.cleanup=function(){this.dummyCollisionMap&&(this.dummyCollisionMap.delete(),this.dummyCollisionMap=void 0),this.channels={};for(var r=0,o=Object.keys(this.collisionFBOs);r<o.length;r++){var i=o[r];this.destroyFBO(i)}this.collisionFBOs={},this.lastViewport=void 0},t.createFBO=function(r,o){var i,a,s=r.canvas,f=s.width,u=s.height,l=new T.Texture2D(r,{width:f,height:u,parameters:(i={},N(i,10241,9728),N(i,10240,9728),N(i,10242,33071),N(i,10243,33071),i)}),c=new T.Renderbuffer(r,{format:33189,width:f,height:u});this.collisionFBOs[o]=new T.Framebuffer(r,{id:"Collision-".concat(o),width:f,height:u,attachments:(a={},N(a,36064,l),N(a,36096,c),a)})},t.destroyFBO=function(r){for(var o=this.collisionFBOs[r],i=0,a=Object.values(o.attachments);i<a.length;i++){var s=a[i];s.delete()}o.delete(),delete this.collisionFBOs[r]},e}();function Me(e){return typeof Symbol=="function"&&typeof Symbol.iterator=="symbol"?Me=function(n){return typeof n}:Me=function(n){return n&&typeof Symbol=="function"&&n.constructor===Symbol&&n!==Symbol.prototype?"symbol":typeof n},Me(e)}function Gi(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}function Wi(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&&lt(e,t)}function lt(e,t){return lt=Object.setPrototypeOf||function(r,o){return r.__proto__=o,r},lt(e,t)}function Hi(e){var t=$i();return function(){var r=Ae(e),o;if(t){var i=Ae(this).constructor;o=Reflect.construct(r,arguments,i)}else o=r.apply(this,arguments);return Ki(this,o)}}function Ki(e,t){if(t&&(Me(t)==="object"||typeof t=="function"))return t;if(t!==void 0)throw new TypeError("Derived constructors may only return object or undefined");return Yi(e)}function Yi(e){if(e===void 0)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return e}function $i(){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 Ae(e){return Ae=Object.setPrototypeOf?Object.getPrototypeOf:function(n){return n.__proto__||Object.getPrototypeOf(n)},Ae(e)}var Zi={getCollisionPriority:{type:"accessor",value:0},collisionEnabled:!0,collisionGroup:{type:"string",value:"default"},collisionTestProps:{}},Fe=function(e){Wi(n,e);var t=Hi(n);function n(){return Gi(this,n),t.apply(this,arguments)}var r=n.prototype;return r.getShaders=function(){return{modules:[ln]}},r.draw=function(i){var a=i.uniforms,s=i.context,f=i.moduleParameters,u=this.props.collisionEnabled,l=f.collisionFBO,c=f.drawToCollisionMap,p=u&&Boolean(l);a.collision_enabled=p,c&&(this.props=this.clone(this.props.collisionTestProps).props)},r.initializeState=function(i,a){var s;if(this.getAttributeManager()!==null){(s=this.context.deck)===null||s===void 0||s._addDefaultEffect(new Tn);var f=this.getAttributeManager();f.add({collisionPriorities:{size:1,accessor:"getCollisionPriority",shaderAttributes:{collisionPriorities:{divisor:0},instanceCollisionPriorities:{divisor:1}}}})}},r.getNeedsPickingBuffer=function(){return this.props.collisionEnabled},n}(Sn.LayerExtension);Fe.defaultProps=Zi;Fe.extensionName="CollisionFilterExtension";var R=m(g());var Rn=m(g()),Xi=`
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=`
1258
1456
  uniform vec4 mask_bounds;
1259
1457
  uniform bool mask_maskByInstance;
1260
1458
  vec2 mask_getCoords(vec4 position) {
1261
1459
  return (position.xy - mask_bounds.xy) / (mask_bounds.zw - mask_bounds.xy);
1262
1460
  }
1263
- `,Ji=`
1461
+ `,Rc=`
1264
1462
  uniform sampler2D mask_texture;
1265
1463
  uniform int mask_channel;
1266
1464
  uniform bool mask_enabled;
@@ -1287,7 +1485,7 @@ bool mask_isInBounds(vec2 texCoords) {
1287
1485
  return maskValue < 0.5;
1288
1486
  }
1289
1487
  }
1290
- `,Qi={"vs:#decl":`
1488
+ `,pc={"vs:#decl":`
1291
1489
  varying vec2 mask_texCoords;
1292
1490
  `,"vs:#main-end":`
1293
1491
  vec4 mask_common_position;
@@ -1309,13 +1507,13 @@ varying vec2 mask_texCoords;
1309
1507
 
1310
1508
  if (!mask) discard;
1311
1509
  }
1312
- `},ea=function(t){return t&&"maskMap"in t?{mask_texture:t.maskMap}:{}},Mn={name:"mask",dependencies:[Rn.project],vs:Xi,fs:Ji,inject:Qi,getUniforms:ea};function Ie(e){return typeof Symbol=="function"&&typeof Symbol.iterator=="symbol"?Ie=function(n){return typeof n}:Ie=function(n){return n&&typeof Symbol=="function"&&n.constructor===Symbol&&n!==Symbol.prototype?"symbol":typeof n},Ie(e)}function ta(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}function na(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&&ct(e,t)}function ct(e,t){return ct=Object.setPrototypeOf||function(r,o){return r.__proto__=o,r},ct(e,t)}function ra(e){var t=aa();return function(){var r=Le(e),o;if(t){var i=Le(this).constructor;o=Reflect.construct(r,arguments,i)}else o=r.apply(this,arguments);return oa(this,o)}}function oa(e,t){if(t&&(Ie(t)==="object"||typeof t=="function"))return t;if(t!==void 0)throw new TypeError("Derived constructors may only return object or undefined");return ia(e)}function ia(e){if(e===void 0)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return e}function aa(){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 Le(e){return Le=Object.setPrototypeOf?Object.getPrototypeOf:function(n){return n.__proto__||Object.getPrototypeOf(n)},Le(e)}var sa={maskId:"",maskByInstance:void 0,maskInverted:!1},Ce=function(e){na(n,e);var t=ra(n);function n(){return ta(this,n),t.apply(this,arguments)}var r=n.prototype;return r.initializeState=function(){var i;(i=this.context.deck)===null||i===void 0||i._addDefaultEffect(new Re)},r.getShaders=function(){var i="instancePositions"in this.getAttributeManager().attributes;return this.props.maskByInstance!==void 0&&(i=Boolean(this.props.maskByInstance)),this.state.maskByInstance=i,{modules:[Mn]}},r.draw=function(i){var a=i.uniforms,s=i.context,f=i.moduleParameters;a.mask_maskByInstance=this.state.maskByInstance;var u=this.props,l=u.maskId,c=u.maskInverted,p=f.maskChannels,_=s.viewport;if(p&&p[l]){var d=p[l],h=d.index,v=d.bounds,y=d.coordinateOrigin,b=p[l].coordinateSystem;a.mask_enabled=!0,a.mask_channel=h,a.mask_inverted=c,b===R.COORDINATE_SYSTEM.DEFAULT&&(b=_.isGeospatial?R.COORDINATE_SYSTEM.LNGLAT:R.COORDINATE_SYSTEM.CARTESIAN);var P={modelMatrix:null,fromCoordinateOrigin:y,fromCoordinateSystem:b},Z=this.projectPosition([v[0],v[1],0],P),z=this.projectPosition([v[2],v[3],0],P);a.mask_bounds=[Z[0],Z[1],z[0],z[1]]}else l&&R.log.warn("Could not find a mask layer with id: ".concat(l))(),a.mask_enabled=!1},n}(R.LayerExtension);Ce.defaultProps=sa;Ce.extensionName="MaskExtension";var Qn=m(g());var Ue=m(O()),Xn=m(g());var Fn=m(g()),E={NONE:0,WRITE_HEIGHT_MAP:1,USE_HEIGHT_MAP:2,USE_COVER:3,USE_COVER_ONLY:4,SKIP:5},An=Object.keys(E).map(function(e){return"const float TERRAIN_MODE_".concat(e," = ").concat(E[e],".0;")}).join(`
1313
- `),ke={name:"terrain",dependencies:[Fn.project],inject:{"vs:#decl":`
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":`
1314
1512
  uniform float terrain_mode;
1315
1513
  uniform sampler2D terrain_map;
1316
1514
  uniform vec4 terrain_bounds;
1317
1515
  varying vec3 commonPos;
1318
- `.concat(An,`
1516
+ `.concat(Ms,`
1319
1517
  `),"vs:#main-start":`
1320
1518
  if (terrain_mode == TERRAIN_MODE_SKIP) {
1321
1519
  gl_Position = vec4(0.0);
@@ -1344,7 +1542,7 @@ uniform float terrain_mode;
1344
1542
  uniform sampler2D terrain_map;
1345
1543
  uniform vec4 terrain_bounds;
1346
1544
  varying vec3 commonPos;
1347
- `.concat(An,`
1545
+ `.concat(Ms,`
1348
1546
  `),"fs:#main-start":`
1349
1547
  if (terrain_mode == TERRAIN_MODE_WRITE_HEIGHT_MAP) {
1350
1548
  gl_FragColor = vec4(commonPos.z, 0.0, 0.0, 1.0);
@@ -1362,9 +1560,9 @@ if ((terrain_mode == TERRAIN_MODE_USE_COVER) || (terrain_mode == TERRAIN_MODE_US
1362
1560
  }
1363
1561
  return;
1364
1562
  }
1365
- `},getUniforms:function(){var t=arguments.length>0&&arguments[0]!==void 0?arguments[0]:{},n=arguments.length>1?arguments[1]:void 0;if("dummyHeightMap"in t){var r=t.drawToTerrainHeightMap,o=t.heightMap,i=t.heightMapBounds,a=t.dummyHeightMap,s=t.terrainCover,f=t.useTerrainHeightMap,u=t.terrainSkipRender,l=n.project_uCommonOrigin,c=u?E.SKIP:E.NONE,p=a,_=null;if(r)c=E.WRITE_HEIGHT_MAP,_=i;else if(f&&o)c=E.USE_HEIGHT_MAP,p=o,_=i;else if(s){var d=t.pickingActive;p=d?s.getPickingFramebuffer():s.getRenderFramebuffer(),d&&(c=E.SKIP),p?(c=c===E.SKIP?E.USE_COVER_ONLY:E.USE_COVER,_=s.bounds):p=a}return{terrain_mode:c,terrain_map:p,terrain_bounds:_?[_[0]-l[0],_[1]-l[1],_[2]-_[0],_[3]-_[1]]:[0,0,0,0]}}return null}};var j=m(O());function In(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter(function(o){return Object.getOwnPropertyDescriptor(e,o).enumerable})),n.push.apply(n,r)}return n}function Ln(e){for(var t=1;t<arguments.length;t++){var n=arguments[t]!=null?arguments[t]:{};t%2?In(Object(n),!0).forEach(function(r){D(e,r,n[r])}):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):In(Object(n)).forEach(function(r){Object.defineProperty(e,r,Object.getOwnPropertyDescriptor(n,r))})}return e}function D(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function Y(e,t){var n;return new j.Framebuffer(e,{id:t.id,attachments:D({},36064,new j.Texture2D(e,Ln(Ln({},t.float&&{format:(0,j.isWebGL2)(e)?34836:6408,type:5126}),{},{mipmaps:!1,parameters:(n={},D(n,10241,9729),D(n,10240,9729),D(n,10242,33071),D(n,10243,33071),n)})))})}function fa(e,t){var n=typeof Symbol<"u"&&e[Symbol.iterator]||e["@@iterator"];if(!n){if(Array.isArray(e)||(n=ua(e))||t&&e&&typeof e.length=="number"){n&&(e=n);var r=0,o=function(){};return{s:o,n:function(){return r>=e.length?{done:!0}:{done:!1,value:e[r++]}},e:function(u){throw u},f:o}}throw new TypeError(`Invalid attempt to iterate non-iterable instance.
1366
- In order to be iterable, non-array objects must have a [Symbol.iterator]() method.`)}var i=!0,a=!1,s;return{s:function(){n=n.call(e)},n:function(){var u=n.next();return i=u.done,u},e:function(u){a=!0,s=u},f:function(){try{!i&&n.return!=null&&n.return()}finally{if(a)throw s}}}}function ua(e,t){if(e){if(typeof e=="string")return Cn(e,t);var n=Object.prototype.toString.call(e).slice(8,-1);if(n==="Object"&&e.constructor&&(n=e.constructor.name),n==="Map"||n==="Set")return Array.from(e);if(n==="Arguments"||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n))return Cn(e,t)}}function Cn(e,t){(t==null||t>e.length)&&(t=e.length);for(var n=0,r=new Array(t);n<t;n++)r[n]=e[n];return r}function la(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}function kn(e,t){for(var n=0;n<t.length;n++){var r=t[n];r.enumerable=r.enumerable||!1,r.configurable=!0,"value"in r&&(r.writable=!0),Object.defineProperty(e,r.key,r)}}function ca(e,t,n){return t&&kn(e.prototype,t),n&&kn(e,n),e}var Nn=function(){function e(n){la(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=n,this.tile=Dn(n)}var t=e.prototype;return t.shouldUpdate=function(r){var o=r.targetLayer,i=r.viewport,a=r.layers,s=r.layerNeedsRedraw;o&&(this.targetLayer=o);var f=i?this._updateViewport(i):!1,u=a?this._updateLayers(a):!1;if(s){var l=fa(this.layers),c;try{for(l.s();!(c=l.n()).done;){var p=c.value;if(s[p]){u=!0;break}}}catch(_){l.e(_)}finally{l.f()}}return u||f},t._updateLayers=function(r){var o=!1;if(r=this.tile?pa(this.tile,r):r,r.length!==this.layers.length)o=!0;else for(var i=0;i<r.length;i++){var a=r[i].id;if(a!==this.layers[i]){o=!0;break}}return o&&(this.layers=r.map(function(s){return s.id})),o},t._updateViewport=function(r){var o=this.targetLayer,i=!1;if(this.tile&&"boundingBox"in this.tile){if(!this.targetBounds){i=!0,this.targetBounds=this.tile.boundingBox;var a=r.projectPosition(this.targetBounds[0]),s=r.projectPosition(this.targetBounds[1]);this.targetBoundsCommon=[a[0],a[1],s[0],s[1]]}}else this.targetBounds!==o.getBounds()&&(i=!0,this.targetBounds=o.getBounds(),this.targetBoundsCommon=L([o],r));if(!this.targetBoundsCommon)return!1;var f=Math.ceil(r.zoom+.5);if(this.tile)this.bounds=this.targetBoundsCommon;else{var u,l=(u=this.renderViewport)===null||u===void 0?void 0:u.zoom;i=i||f!==l;var c=k(this.targetBoundsCommon,r),p=this.bounds;i=i||!p||c.some(function(_,d){return _!==p[d]}),this.bounds=c}return i&&(this.renderViewport=C({bounds:this.bounds,zoom:f,viewport:r})),i},t.getRenderFramebuffer=function(){return!this.renderViewport||this.layers.length===0?null:(this.fbo||(this.fbo=Y(this.targetLayer.context.gl,{id:this.id})),this.fbo)},t.getPickingFramebuffer=function(){return!this.renderViewport||this.layers.length===0&&!this.targetLayer.props.pickable?null:(this.pickingFbo||(this.pickingFbo=Y(this.targetLayer.context.gl,{id:"".concat(this.id,"-picking")})),this.pickingFbo)},t.filterLayers=function(r){var o=this;return r.filter(function(i){var a=i.id;return o.layers.includes(a)})},t.delete=function(){var r=this.fbo,o=this.pickingFbo;r&&(r.texture.delete(),r.delete()),o&&(o.texture.delete(),o.delete())},ca(e,[{key:"id",get:function(){return this.targetLayer.id}},{key:"isActive",get:function(){return Boolean(this.targetLayer.getCurrentLayer())}}]),e}();function pa(e,t){return t.filter(function(n){var r=Dn(n);return r?_a(e.boundingBox,r.boundingBox):!0})}function Dn(e){for(;e;){var t=e.props.tile;if(t)return t;e=e.parent}return null}function _a(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 _t=m(O()),Bn=m(g());function De(e){return typeof Symbol=="function"&&typeof Symbol.iterator=="symbol"?De=function(n){return typeof n}:De=function(n){return n&&typeof Symbol=="function"&&n.constructor===Symbol&&n!==Symbol.prototype?"symbol":typeof n},De(e)}function jn(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter(function(o){return Object.getOwnPropertyDescriptor(e,o).enumerable})),n.push.apply(n,r)}return n}function Ne(e){for(var t=1;t<arguments.length;t++){var n=arguments[t]!=null?arguments[t]:{};t%2?jn(Object(n),!0).forEach(function(r){da(e,r,n[r])}):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):jn(Object(n)).forEach(function(r){Object.defineProperty(e,r,Object.getOwnPropertyDescriptor(n,r))})}return e}function da(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function va(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}function ma(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&&pt(e,t)}function pt(e,t){return pt=Object.setPrototypeOf||function(r,o){return r.__proto__=o,r},pt(e,t)}function ha(e){var t=ba();return function(){var r=je(e),o;if(t){var i=je(this).constructor;o=Reflect.construct(r,arguments,i)}else o=r.apply(this,arguments);return ya(this,o)}}function ya(e,t){if(t&&(De(t)==="object"||typeof t=="function"))return t;if(t!==void 0)throw new TypeError("Derived constructors may only return object or undefined");return ga(e)}function ga(e){if(e===void 0)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return e}function ba(){if(typeof Reflect>"u"||!Reflect.construct||Reflect.construct.sham)return!1;if(typeof Proxy=="function")return!0;try{return Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],function(){})),!0}catch{return!1}}function je(e){return je=Object.setPrototypeOf?Object.getPrototypeOf:function(n){return n.__proto__||Object.getPrototypeOf(n)},je(e)}var Vn=function(e){ma(n,e);var t=ha(n);function n(){return va(this,n),t.apply(this,arguments)}var r=n.prototype;return r.getRenderableLayers=function(i,a){for(var s=a.layers,f=[],u=this._getDrawLayerParams(i,a,!0),l=0;l<s.length;l++){var c=s[l];!c.isComposite&&u[l].shouldDrawLayer&&f.push(c)}return f},r.renderHeightMap=function(i,a){var s=this,f=i.getRenderFramebuffer(),u=i.renderViewport;!f||!u||(f.resize(u),(0,_t.withParameters)(this.gl,{clearColor:[0,0,0,0],blend:!0,blendFunc:[1,1],blendEquation:32776,depthTest:!1},function(){return s.render(Ne(Ne({},a),{},{target:f,pass:"terrain-height-map",layers:a.layers,viewports:[u],effects:[]}))}))},r.renderTerrainCover=function(i,a){var s=this,f=i.getRenderFramebuffer(),u=i.renderViewport;if(!(!f||!u)){var l=i.filterLayers(a.layers);f.resize(u),(0,_t.withParameters)(this.gl,{clearColor:[0,0,0,0],depthTest:!1},function(){return s.render(Ne(Ne({},a),{},{target:f,pass:"terrain-cover-".concat(i.id),layers:l,effects:[],viewports:[u]}))})}},n}(Bn._LayersPass);var qn=m(g()),Gn=m(O());function Be(e){return typeof Symbol=="function"&&typeof Symbol.iterator=="symbol"?Be=function(n){return typeof n}:Be=function(n){return n&&typeof Symbol=="function"&&n.constructor===Symbol&&n!==Symbol.prototype?"symbol":typeof n},Be(e)}function zn(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter(function(o){return Object.getOwnPropertyDescriptor(e,o).enumerable})),n.push.apply(n,r)}return n}function Un(e){for(var t=1;t<arguments.length;t++){var n=arguments[t]!=null?arguments[t]:{};t%2?zn(Object(n),!0).forEach(function(r){Pa(e,r,n[r])}):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):zn(Object(n)).forEach(function(r){Object.defineProperty(e,r,Object.getOwnPropertyDescriptor(n,r))})}return e}function Pa(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function Oa(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}function Ve(e,t,n){return typeof Reflect<"u"&&Reflect.get?Ve=Reflect.get:Ve=function(o,i,a){var s=xa(o,i);if(s){var f=Object.getOwnPropertyDescriptor(s,i);return f.get?f.get.call(a):f.value}},Ve(e,t,n||e)}function xa(e,t){for(;!Object.prototype.hasOwnProperty.call(e,t)&&(e=B(e),e!==null););return e}function Ea(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&&dt(e,t)}function dt(e,t){return dt=Object.setPrototypeOf||function(r,o){return r.__proto__=o,r},dt(e,t)}function wa(e){var t=Ra();return function(){var r=B(e),o;if(t){var i=B(this).constructor;o=Reflect.construct(r,arguments,i)}else o=r.apply(this,arguments);return Ta(this,o)}}function Ta(e,t){if(t&&(Be(t)==="object"||typeof t=="function"))return t;if(t!==void 0)throw new TypeError("Derived constructors may only return object or undefined");return Sa(e)}function Sa(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 B(e){return B=Object.setPrototypeOf?Object.getPrototypeOf:function(n){return n.__proto__||Object.getPrototypeOf(n)},B(e)}var Wn=function(e){Ea(n,e);var t=wa(n);function n(){var o;Oa(this,n);for(var i=arguments.length,a=new Array(i),s=0;s<i;s++)a[s]=arguments[s];return o=t.call.apply(t,[this].concat(a)),o.drawParameters={},o}var r=n.prototype;return r.getRenderableLayers=function(i,a){var s=a.layers,f=[];this.drawParameters={},this._resetColorEncoder(a.pickZ);for(var u=this._getDrawLayerParams(i,a),l=0;l<s.length;l++){var c=s[l];!c.isComposite&&u[l].shouldDrawLayer&&(f.push(c),this.drawParameters[c.id]=u[l].layerParameters)}return f},r.renderTerrainCover=function(i,a){var s=this,f=i.getPickingFramebuffer(),u=i.renderViewport;if(!(!f||!u)){var l=i.filterLayers(a.layers),c=i.targetLayer;c.props.pickable&&l.unshift(c),f.resize(u),(0,Gn.withParameters)(this.gl,{depthTest:!1},function(){return s.render(Un(Un({},a),{},{pickingFBO:f,pass:"terrain-cover-picking-".concat(i.id),layers:l,effects:[],viewports:[u],cullRect:void 0,deviceRect:u,pickZ:!1}))})}},r.getLayerParameters=function(i,a,s){if(this.drawParameters[i.id])return this.drawParameters[i.id];var f=Ve(B(n.prototype),"getLayerParameters",this).call(this,i,a,s);return f.blend=!0,f},n}(qn._PickLayersPass);var Kn=m(O());function Ma(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}var Hn=2048,vt=function(){e.isSupported=function(r){return Kn.Framebuffer.isSupported(r,{colorBufferFloat:!0})};function e(n){Ma(this,e),this.renderViewport=null,this.bounds=null,this.fbo=void 0,this.gl=void 0,this.layers=[],this.layersBounds=[],this.layersBoundsCommon=null,this.lastViewport=null,this.gl=n}var t=e.prototype;return t.getRenderFramebuffer=function(){return this.renderViewport?(this.fbo||(this.fbo=Y(this.gl,{id:"height-map",float:!0})),this.fbo):null},t.shouldUpdate=function(r){var o=this,i=r.layers,a=r.viewport,s=i.length!==this.layers.length||i.some(function(_,d){return _!==o.layers[d]||_.props.transitions||_.getBounds()!==o.layersBounds[d]});s&&(this.layers=i,this.layersBounds=i.map(function(_){return _.getBounds()}),this.layersBoundsCommon=L(i,a));var f=!this.lastViewport||!a.equals(this.lastViewport);if(!this.layersBoundsCommon)this.renderViewport=null;else if(s||f){var u=k(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,p=(u[3]-u[1])*l;return this.renderViewport=c>0||p>0?C({bounds:[a.center[0]-1,a.center[1]-1,a.center[0]+1,a.center[1]+1],zoom:a.zoom,width:Math.min(c,Hn),height:Math.min(p,Hn),viewport:a}):null,!0}return!1},t.delete=function(){this.fbo&&(this.fbo.color.delete(),this.fbo.delete())},e}();function Aa(e,t){return La(e)||Ia(e,t)||Zn(e,t)||Fa()}function Fa(){throw new TypeError(`Invalid attempt to destructure non-iterable instance.
1367
- In order to be iterable, non-array objects must have a [Symbol.iterator]() method.`)}function Ia(e,t){var n=e==null?null:typeof Symbol<"u"&&e[Symbol.iterator]||e["@@iterator"];if(n!=null){var r=[],o=!0,i=!1,a,s;try{for(n=n.call(e);!(o=(a=n.next()).done)&&(r.push(a.value),!(t&&r.length===t));o=!0);}catch(f){i=!0,s=f}finally{try{!o&&n.return!=null&&n.return()}finally{if(i)throw s}}return r}}function La(e){if(Array.isArray(e))return e}function Yn(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter(function(o){return Object.getOwnPropertyDescriptor(e,o).enumerable})),n.push.apply(n,r)}return n}function ze(e){for(var t=1;t<arguments.length;t++){var n=arguments[t]!=null?arguments[t]:{};t%2?Yn(Object(n),!0).forEach(function(r){Ca(e,r,n[r])}):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):Yn(Object(n)).forEach(function(r){Object.defineProperty(e,r,Object.getOwnPropertyDescriptor(n,r))})}return e}function Ca(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function V(e,t){var n=typeof Symbol<"u"&&e[Symbol.iterator]||e["@@iterator"];if(!n){if(Array.isArray(e)||(n=Zn(e))||t&&e&&typeof e.length=="number"){n&&(e=n);var r=0,o=function(){};return{s:o,n:function(){return r>=e.length?{done:!0}:{done:!1,value:e[r++]}},e:function(u){throw u},f:o}}throw new TypeError(`Invalid attempt to iterate non-iterable instance.
1368
- In order to be iterable, non-array objects must have a [Symbol.iterator]() method.`)}var i=!0,a=!1,s;return{s:function(){n=n.call(e)},n:function(){var u=n.next();return i=u.done,u},e:function(u){a=!0,s=u},f:function(){try{!i&&n.return!=null&&n.return()}finally{if(a)throw s}}}}function Zn(e,t){if(e){if(typeof e=="string")return $n(e,t);var n=Object.prototype.toString.call(e).slice(8,-1);if(n==="Object"&&e.constructor&&(n=e.constructor.name),n==="Map"||n==="Set")return Array.from(e);if(n==="Arguments"||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n))return $n(e,t)}}function $n(e,t){(t==null||t>e.length)&&(t=e.length);for(var n=0,r=new Array(t);n<t;n++)r[n]=e[n];return r}function ka(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}var Jn=function(){function e(){ka(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(r){this.dummyHeightMap=new Ue.Texture2D(r,{width:1,height:1,data:new Uint8Array([0,0,0,0])}),this.terrainPass=new Vn(r,{id:"terrain"}),this.terrainPickingPass=new Wn(r,{id:"terrain-picking"}),vt.isSupported(r)?this.heightMap=new vt(r):Xn.log.warn("Terrain offset mode is not supported by this browser")(),Ue.ProgramManager.getDefaultProgramManager(r).addDefaultModule(ke)},t.preRender=function(r,o){if(!this.dummyHeightMap){this.initialize(r);var i=V(o.layers),a;try{for(i.s();!(a=i.n()).done;){var s=a.value;s.props.operation.includes("terrain")&&s.setChangeFlags({extensionsChanged:!0})}}catch(v){i.e(v)}finally{i.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],p=(l?this.terrainPickingPass:this.terrainPass).getRenderableLayers(c,o),_=p.filter(function(v){return v.props.operation.includes("terrain")});if(_.length!==0){if(!l){var d=p.filter(function(v){return v.state.terrainDrawMode==="offset"});d.length>0&&this._updateHeightMap(_,c,o)}var h=p.filter(function(v){return v.state.terrainDrawMode==="drape"});this._updateTerrainCovers(_,h,c,o)}},t.getModuleParameters=function(r){var o,i,a=r.state.terrainDrawMode;return{heightMap:(o=this.heightMap)===null||o===void 0?void 0:o.getRenderFramebuffer(),heightMapBounds:(i=this.heightMap)===null||i===void 0?void 0:i.bounds,dummyHeightMap:this.dummyHeightMap,terrainCover:this.isDrapingEnabled?this.terrainCovers.get(r.id):null,useTerrainHeightMap:a==="offset",terrainSkipRender:a==="drape"||!r.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 r=V(this.terrainCovers.values()),o;try{for(r.s();!(o=r.n()).done;){var i=o.value;i.delete()}}catch(a){r.e(a)}finally{r.f()}this.terrainCovers.clear()},t._updateHeightMap=function(r,o,i){if(this.heightMap){var a=this.heightMap.shouldUpdate({layers:r,viewport:o});a&&this.terrainPass.renderHeightMap(this.heightMap,ze(ze({},i),{},{layers:r,moduleParameters:{heightMapBounds:this.heightMap.bounds,dummyHeightMap:this.dummyHeightMap,devicePixelRatio:1,drawToTerrainHeightMap:!0}}))}},t._updateTerrainCovers=function(r,o,i,a){var s={},f=V(o),u;try{for(f.s();!(u=f.n()).done;){var l=u.value;l.state.terrainCoverNeedsRedraw&&(s[l.id]=!0,l.state.terrainCoverNeedsRedraw=!1)}}catch(y){f.e(y)}finally{f.f()}var c=V(this.terrainCovers.values()),p;try{for(c.s();!(p=c.n()).done;){var _=p.value;_.isDirty=_.isDirty||_.shouldUpdate({layerNeedsRedraw:s})}}catch(y){c.e(y)}finally{c.f()}var d=V(r),h;try{for(d.s();!(h=d.n()).done;){var v=h.value;this._updateTerrainCover(v,o,i,a)}}catch(y){d.e(y)}finally{d.f()}this.isPicking||this._pruneTerrainCovers()},t._updateTerrainCover=function(r,o,i,a){var s=this.isPicking?this.terrainPickingPass:this.terrainPass,f=this.terrainCovers.get(r.id);f||(f=new Nn(r),this.terrainCovers.set(r.id,f));try{var u=f.shouldUpdate({targetLayer:r,viewport:i,layers:o});(this.isPicking||f.isDirty||u)&&(s.renderTerrainCover(f,ze(ze({},a),{},{layers:o,moduleParameters:{dummyHeightMap:this.dummyHeightMap,terrainSkipRender:!1,devicePixelRatio:1}})),f.isDirty=!1)}catch(l){r.raiseError(l,"Error rendering terrain cover ".concat(f.id))}},t._pruneTerrainCovers=function(){var r=[],o=V(this.terrainCovers),i;try{for(o.s();!(i=o.n()).done;){var a=Aa(i.value,2),s=a[0],f=a[1];f.isActive||r.push(s)}}catch(p){o.e(p)}finally{o.f()}for(var u=0,l=r;u<l.length;u++){var c=l[u];this.terrainCovers.delete(c)}},e}();function qe(e){return typeof Symbol=="function"&&typeof Symbol.iterator=="symbol"?qe=function(n){return typeof n}:qe=function(n){return n&&typeof Symbol=="function"&&n.constructor===Symbol&&n!==Symbol.prototype?"symbol":typeof n},qe(e)}function Na(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}function Da(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&&mt(e,t)}function mt(e,t){return mt=Object.setPrototypeOf||function(r,o){return r.__proto__=o,r},mt(e,t)}function ja(e){var t=za();return function(){var r=Ge(e),o;if(t){var i=Ge(this).constructor;o=Reflect.construct(r,arguments,i)}else o=r.apply(this,arguments);return Ba(this,o)}}function Ba(e,t){if(t&&(qe(t)==="object"||typeof t=="function"))return t;if(t!==void 0)throw new TypeError("Derived constructors may only return object or undefined");return Va(e)}function Va(e){if(e===void 0)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return e}function za(){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 Ge(e){return Ge=Object.setPrototypeOf?Object.getPrototypeOf:function(n){return n.__proto__||Object.getPrototypeOf(n)},Ge(e)}var Ua={terrainDrawMode:void 0},We=function(e){Da(n,e);var t=ja(n);function n(){return Na(this,n),t.apply(this,arguments)}var r=n.prototype;return r.getShaders=function(){return{modules:[ke]}},r.initializeState=function(){var i;(i=this.context.deck)===null||i===void 0||i._addDefaultEffect(new Jn)},r.updateState=function(i){var a=i.props,s=i.oldProps;if(!(this.state.terrainDrawMode&&a.terrainDrawMode===s.terrainDrawMode&&a.extruded===s.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,p=c&&"instancePositions"in c;f=l||p?"offset":"drape"}this.setState({terrainDrawMode:f})}},r.onNeedsRedraw=function(){var i=this.state;i.terrainDrawMode==="drape"&&(i.terrainCoverNeedsRedraw=!0)},n}(Qn.LayerExtension);We.defaultProps=Ua;We.extensionName="TerrainExtension";return ur($);})();
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);})();
1369
1567
  return __exports__;
1370
1568
  });