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

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 (131) hide show
  1. package/dist/dist.dev.js +10098 -620
  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 +41 -29
  6. package/dist/es5/collision-filter/collision-filter-effect.js.map +1 -1
  7. package/dist/es5/collision-filter/collision-filter-pass.js +4 -5
  8. package/dist/es5/collision-filter/collision-filter-pass.js.map +1 -1
  9. package/dist/es5/collision-filter/shader-module.js.map +1 -1
  10. package/dist/es5/data-filter/aggregator.js +18 -11
  11. package/dist/es5/data-filter/aggregator.js.map +1 -1
  12. package/dist/es5/data-filter/data-filter-extension.js +27 -27
  13. package/dist/es5/data-filter/data-filter-extension.js.map +1 -1
  14. package/dist/es5/fill-style/fill-style-extension.js +4 -6
  15. package/dist/es5/fill-style/fill-style-extension.js.map +1 -1
  16. package/dist/es5/fill-style/shaders.glsl.js.map +1 -1
  17. package/dist/es5/mask/mask-effect.js +5 -7
  18. package/dist/es5/mask/mask-effect.js.map +1 -1
  19. package/dist/es5/mask/mask-pass.js +18 -13
  20. package/dist/es5/mask/mask-pass.js.map +1 -1
  21. package/dist/es5/mask/shader-module.js.map +1 -1
  22. package/dist/es5/path-style/path-style-extension.js +11 -8
  23. package/dist/es5/path-style/path-style-extension.js.map +1 -1
  24. package/dist/es5/terrain/height-map-builder.js +7 -11
  25. package/dist/es5/terrain/height-map-builder.js.map +1 -1
  26. package/dist/es5/terrain/shader-module.js.map +1 -1
  27. package/dist/es5/terrain/terrain-cover.js +6 -6
  28. package/dist/es5/terrain/terrain-cover.js.map +1 -1
  29. package/dist/es5/terrain/terrain-effect.js +11 -13
  30. package/dist/es5/terrain/terrain-effect.js.map +1 -1
  31. package/dist/es5/terrain/terrain-pass.js +7 -5
  32. package/dist/es5/terrain/terrain-pass.js.map +1 -1
  33. package/dist/es5/terrain/terrain-picking-pass.js +2 -2
  34. package/dist/es5/terrain/terrain-picking-pass.js.map +1 -1
  35. package/dist/es5/terrain/utils.js +12 -9
  36. package/dist/es5/terrain/utils.js.map +1 -1
  37. package/dist/es5/utils/debug.js +2 -2
  38. package/dist/es5/utils/debug.js.map +1 -1
  39. package/dist/esm/brushing/brushing-extension.js +8 -5
  40. package/dist/esm/brushing/brushing-extension.js.map +1 -1
  41. package/dist/esm/clip/clip-extension.js.map +1 -1
  42. package/dist/esm/collision-filter/collision-filter-effect.js +29 -28
  43. package/dist/esm/collision-filter/collision-filter-effect.js.map +1 -1
  44. package/dist/esm/collision-filter/collision-filter-pass.js +2 -3
  45. package/dist/esm/collision-filter/collision-filter-pass.js.map +1 -1
  46. package/dist/esm/collision-filter/shader-module.js.map +1 -1
  47. package/dist/esm/data-filter/aggregator.js +19 -15
  48. package/dist/esm/data-filter/aggregator.js.map +1 -1
  49. package/dist/esm/data-filter/data-filter-extension.js +23 -30
  50. package/dist/esm/data-filter/data-filter-extension.js.map +1 -1
  51. package/dist/esm/fill-style/fill-style-extension.js +3 -6
  52. package/dist/esm/fill-style/fill-style-extension.js.map +1 -1
  53. package/dist/esm/fill-style/shaders.glsl.js.map +1 -1
  54. package/dist/esm/mask/mask-effect.js +3 -4
  55. package/dist/esm/mask/mask-effect.js.map +1 -1
  56. package/dist/esm/mask/mask-pass.js +14 -15
  57. package/dist/esm/mask/mask-pass.js.map +1 -1
  58. package/dist/esm/mask/shader-module.js.map +1 -1
  59. package/dist/esm/path-style/path-style-extension.js +11 -8
  60. package/dist/esm/path-style/path-style-extension.js.map +1 -1
  61. package/dist/esm/terrain/height-map-builder.js +7 -10
  62. package/dist/esm/terrain/height-map-builder.js.map +1 -1
  63. package/dist/esm/terrain/shader-module.js.map +1 -1
  64. package/dist/esm/terrain/terrain-cover.js +6 -6
  65. package/dist/esm/terrain/terrain-cover.js.map +1 -1
  66. package/dist/esm/terrain/terrain-effect.js +10 -11
  67. package/dist/esm/terrain/terrain-effect.js.map +1 -1
  68. package/dist/esm/terrain/terrain-pass.js +4 -3
  69. package/dist/esm/terrain/terrain-pass.js.map +1 -1
  70. package/dist/esm/terrain/terrain-picking-pass.js +2 -2
  71. package/dist/esm/terrain/terrain-picking-pass.js.map +1 -1
  72. package/dist/esm/terrain/utils.js +15 -17
  73. package/dist/esm/terrain/utils.js.map +1 -1
  74. package/dist/esm/utils/debug.js +1 -1
  75. package/dist/esm/utils/debug.js.map +1 -1
  76. package/dist.min.js +282 -84
  77. package/package.json +8 -5
  78. package/src/brushing/brushing-extension.ts +8 -6
  79. package/src/clip/clip-extension.ts +1 -2
  80. package/src/collision-filter/collision-filter-effect.ts +40 -29
  81. package/src/collision-filter/collision-filter-pass.ts +4 -5
  82. package/src/collision-filter/shader-module.ts +4 -3
  83. package/src/data-filter/aggregator.ts +18 -18
  84. package/src/data-filter/data-filter-extension.ts +37 -29
  85. package/src/fill-style/fill-style-extension.ts +6 -7
  86. package/src/fill-style/shaders.glsl.ts +2 -2
  87. package/src/mask/mask-effect.ts +11 -10
  88. package/src/mask/mask-pass.ts +19 -20
  89. package/src/mask/shader-module.ts +2 -2
  90. package/src/path-style/path-style-extension.ts +16 -11
  91. package/src/terrain/height-map-builder.ts +8 -8
  92. package/src/terrain/shader-module.ts +8 -6
  93. package/src/terrain/terrain-cover.ts +8 -6
  94. package/src/terrain/terrain-effect.ts +14 -13
  95. package/src/terrain/terrain-pass.ts +6 -7
  96. package/src/terrain/terrain-picking-pass.ts +3 -3
  97. package/src/terrain/utils.ts +13 -13
  98. package/src/utils/debug.ts +2 -1
  99. package/typed/brushing/brushing-extension.d.ts.map +1 -1
  100. package/typed/clip/clip-extension.d.ts.map +1 -1
  101. package/typed/collision-filter/collision-filter-effect.d.ts +4 -4
  102. package/typed/collision-filter/collision-filter-effect.d.ts.map +1 -1
  103. package/typed/collision-filter/collision-filter-pass.d.ts.map +1 -1
  104. package/typed/collision-filter/shader-module.d.ts.map +1 -1
  105. package/typed/data-filter/aggregator.d.ts +10 -8
  106. package/typed/data-filter/aggregator.d.ts.map +1 -1
  107. package/typed/data-filter/data-filter-extension.d.ts +1 -1
  108. package/typed/data-filter/data-filter-extension.d.ts.map +1 -1
  109. package/typed/fill-style/fill-style-extension.d.ts +3 -3
  110. package/typed/fill-style/fill-style-extension.d.ts.map +1 -1
  111. package/typed/fill-style/shaders.glsl.d.ts +2 -2
  112. package/typed/fill-style/shaders.glsl.d.ts.map +1 -1
  113. package/typed/mask/mask-effect.d.ts +3 -3
  114. package/typed/mask/mask-effect.d.ts.map +1 -1
  115. package/typed/mask/mask-pass.d.ts +3 -3
  116. package/typed/mask/mask-pass.d.ts.map +1 -1
  117. package/typed/mask/shader-module.d.ts +2 -2
  118. package/typed/mask/shader-module.d.ts.map +1 -1
  119. package/typed/path-style/path-style-extension.d.ts.map +1 -1
  120. package/typed/terrain/height-map-builder.d.ts +4 -4
  121. package/typed/terrain/height-map-builder.d.ts.map +1 -1
  122. package/typed/terrain/shader-module.d.ts +3 -3
  123. package/typed/terrain/shader-module.d.ts.map +1 -1
  124. package/typed/terrain/terrain-cover.d.ts.map +1 -1
  125. package/typed/terrain/terrain-effect.d.ts +4 -3
  126. package/typed/terrain/terrain-effect.d.ts.map +1 -1
  127. package/typed/terrain/terrain-pass.d.ts.map +1 -1
  128. package/typed/terrain/utils.d.ts +3 -2
  129. package/typed/terrain/utils.d.ts.map +1 -1
  130. package/typed/utils/debug.d.ts +1 -0
  131. package/typed/utils/debug.d.ts.map +1 -1
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 Tt=Object.defineProperty;var Qs=Object.getOwnPropertyDescriptor;var Js=Object.getOwnPropertyNames;var ea=Object.getPrototypeOf,ta=Object.prototype.hasOwnProperty;var wn=(e,t)=>()=>(t||e((t={exports:{}}).exports,t),t.exports),Ln=(e,t)=>{for(var r in t)Tt(e,r,{get:t[r],enumerable:!0})},Rt=(e,t,r,n)=>{if(t&&typeof t=="object"||typeof t=="function")for(let o of Js(t))!ta.call(e,o)&&o!==r&&Tt(e,o,{get:()=>t[o],enumerable:!(n=Qs(t,o))||n.enumerable});return e},le=(e,t,r)=>(Rt(e,t,"default"),r&&Rt(r,t,"default")),p=(e,t,r)=>(r=e!=null?qs(ea(e)):{},Rt(t||!e||!e.__esModule?Tt(r,"default",{value:e,enumerable:!0}):r,e)),ra=e=>Rt(Tt({},"__esModule",{value:!0}),e);var b=wn((aE,Xn)=>{Xn.exports=globalThis.deck});var g=wn((EE,Yn)=>{Yn.exports=globalThis.luma});var dt={};Ln(dt,{BrushingExtension:()=>ht,ClipExtension:()=>lr,CollisionFilterExtension:()=>mr,DataFilterExtension:()=>Qt,FillStyleExtension:()=>_r,Fp64Extension:()=>gn,MaskExtension:()=>Or,PathStyleExtension:()=>or,_TerrainExtension:()=>Br,project64:()=>er});var Q={},Hn=p(b());le(Q,p(b()));if(!Hn.Layer)throw new Error("@deck.gl/core is not found");le(dt,Q);var kn=p(b());var Vn=p(b()),na=`
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
+ `,ia=`
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
+ `,oa={source:0,target:1,custom:2,source_target:3},sa={"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
+ `},Wn={name:"brushing",dependencies:[Vn.project],vs:na,fs:ia,inject:sa,getUniforms:function(t){if(!t||!("viewport"in t))return{};var r=t.brushingEnabled,n=r===void 0?!0:r,o=t.brushingRadius,s=o===void 0?1e4:o,a=t.brushingTarget,_=a===void 0?"source":a,f=t.mousePosition,u=t.viewport;return{brushing_enabled:Boolean(n&&f&&u.containsPixel(f)),brushing_radius:s,brushing_target:oa[_]||0,brushing_mousePos:f?u.unproject([f.x-u.x,f.y-u.y]):[0,0]}}};function At(e){return typeof Symbol=="function"&&typeof Symbol.iterator=="symbol"?At=function(r){return typeof r}:At=function(r){return r&&typeof Symbol=="function"&&r.constructor===Symbol&&r!==Symbol.prototype?"symbol":typeof r},At(e)}function aa(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}function _a(e,t){if(typeof t!="function"&&t!==null)throw new TypeError("Super expression must either be null or a function");e.prototype=Object.create(t&&t.prototype,{constructor:{value:e,writable:!0,configurable:!0}}),t&&Dr(e,t)}function Dr(e,t){return Dr=Object.setPrototypeOf||function(n,o){return n.__proto__=o,n},Dr(e,t)}function fa(e){var t=ca();return function(){var n=pt(e),o;if(t){var s=pt(this).constructor;o=Reflect.construct(n,arguments,s)}else o=n.apply(this,arguments);return ua(this,o)}}function ua(e,t){if(t&&(At(t)==="object"||typeof t=="function"))return t;if(t!==void 0)throw new TypeError("Derived constructors may only return object or undefined");return la(e)}function la(e){if(e===void 0)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return e}function ca(){if(typeof Reflect>"u"||!Reflect.construct||Reflect.construct.sham)return!1;if(typeof Proxy=="function")return!0;try{return Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],function(){})),!0}catch{return!1}}function pt(e){return pt=Object.setPrototypeOf?Object.getPrototypeOf:function(r){return r.__proto__||Object.getPrototypeOf(r)},pt(e)}var Ea={getBrushingTarget:{type:"accessor",value:[0,0]},brushingTarget:"source",brushingEnabled:!0,brushingRadius:1e4},ht=function(e){_a(r,e);var t=fa(r);function r(){return aa(this,r),t.apply(this,arguments)}var n=r.prototype;return n.getShaders=function(){return{modules:[Wn]}},n.initializeState=function(s,a){var _=this,f=this.getAttributeManager();f&&f.add({brushingTargets:{size:2,accessor:"getBrushingTarget",shaderAttributes:{brushingTargets:{divisor:0},instanceBrushingTargets:{divisor:1}}}});var u=function(){var c;(c=_.getCurrentLayer())===null||c===void 0||c.setNeedsRedraw()};this.state.onMouseMove=u,s.deck&&s.deck.eventManager.on({pointermove:u,pointerleave:u})},n.finalizeState=function(s,a){if(s.deck){var _=this.state.onMouseMove;s.deck.eventManager.off({pointermove:_,pointerleave:_})}},r}(kn.LayerExtension);ht.defaultProps=Ea;ht.extensionName="BrushingExtension";var da="Failed to create WebGL context in Node.js, headless gl returned null",Ra=" luma.gl: loaded under Node.js without headless gl installed, meaning that WebGL contexts can not be created. This may not be an error. For example, this is a typical configuration for isorender applications running on the server.",Ta={width:1,height:1,debug:!0,throwOnError:!1},Ur=null;function Kn(){return Ur!==null}function jn(e){e={...Ta,...e};let{width:t,height:r,webgl1:n,webgl2:o}=e;if(o&&!n)throw new Error("headless-gl does not support WebGL2");if(!Ur)throw new Error(Ra);let s=Ur(t,r,e);if(!s)throw new Error(da);return s}var C=p(g(),1);function je(e){if(typeof window<"u"&&typeof window.process=="object"&&window.process.type==="renderer"||typeof process<"u"&&typeof process.versions=="object"&&Boolean(process.versions.electron))return!0;let t=typeof navigator=="object"&&typeof navigator.userAgent=="string"&&navigator.userAgent,r=e||t;return!!(r&&r.indexOf("Electron")>=0)}function Y(){return!(typeof process=="object"&&String(process)==="[object process]"&&!process.browser)||je()}var AE=globalThis.self||globalThis.window||globalThis.global,pE=globalThis.window||globalThis.self||globalThis.global,hE=globalThis.document||{},mE=globalThis.process||{},SE=globalThis.console,zn=globalThis.navigator||{};var wr=globalThis;function mt(e){if(!e&&!Y())return"Node";if(je(e))return"Electron";let t=e||zn.userAgent||"";if(t.indexOf("Edge")>-1)return"Edge";let r=t.indexOf("MSIE ")!==-1,n=t.indexOf("Trident/")!==-1;return r||n?"IE":wr.chrome?"Chrome":wr.safari?"Safari":wr.mozInnerScreenX?"Firefox":"Unknown"}var ti=p(g(),1);var Ye={};function Aa(e){globalThis.console&&globalThis.console.error&&globalThis.console.error(e)}function pa(e){globalThis.console&&globalThis.console.log&&globalThis.console.log(e)}function ha(e,t){Ye[e]=!0,t!==void 0&&Aa(t)}function ma(e){let t=e.getError;e.getError=function(){let n;do n=t.apply(e),n!==e.NO_ERROR&&(Ye[n]=!0);while(n!==e.NO_ERROR);for(n in Ye)if(Ye[n])return delete Ye[n],parseInt(n,10);return e.NO_ERROR}}var ze=function e(t){let r=t.gl;this.ext=t,this.isAlive=!0,this.hasBeenBound=!1,this.elementArrayBuffer=null,this.attribs=new Array(t.maxVertexAttribs);for(let n=0;n<this.attribs.length;n++){let o=new e.VertexAttrib(r);this.attribs[n]=o}this.maxAttrib=0};ze.VertexAttrib=function(t){this.enabled=!1,this.buffer=null,this.size=4,this.type=t.FLOAT,this.normalized=!1,this.stride=16,this.offset=0,this.cached="",this.recache()};ze.VertexAttrib.prototype.recache=function(){this.cached=[this.size,this.type,this.normalized,this.stride,this.offset].join(":")};var me=function(t){let r=this;this.gl=t,ma(t);let n=this.original={getParameter:t.getParameter,enableVertexAttribArray:t.enableVertexAttribArray,disableVertexAttribArray:t.disableVertexAttribArray,bindBuffer:t.bindBuffer,getVertexAttrib:t.getVertexAttrib,vertexAttribPointer:t.vertexAttribPointer};t.getParameter=function(s){return s===r.VERTEX_ARRAY_BINDING_OES?r.currentVertexArrayObject===r.defaultVertexArrayObject?null:r.currentVertexArrayObject:n.getParameter.apply(this,arguments)},t.enableVertexAttribArray=function(s){let a=r.currentVertexArrayObject;a.maxAttrib=Math.max(a.maxAttrib,s);let _=a.attribs[s];return _.enabled=!0,n.enableVertexAttribArray.apply(this,arguments)},t.disableVertexAttribArray=function(s){let a=r.currentVertexArrayObject;a.maxAttrib=Math.max(a.maxAttrib,s);let _=a.attribs[s];return _.enabled=!1,n.disableVertexAttribArray.apply(this,arguments)},t.bindBuffer=function(s,a){switch(s){case t.ARRAY_BUFFER:r.currentArrayBuffer=a;break;case t.ELEMENT_ARRAY_BUFFER:r.currentVertexArrayObject.elementArrayBuffer=a;break;default:}return n.bindBuffer.apply(this,arguments)},t.getVertexAttrib=function(s,a){let f=r.currentVertexArrayObject.attribs[s];switch(a){case t.VERTEX_ATTRIB_ARRAY_BUFFER_BINDING:return f.buffer;case t.VERTEX_ATTRIB_ARRAY_ENABLED:return f.enabled;case t.VERTEX_ATTRIB_ARRAY_SIZE:return f.size;case t.VERTEX_ATTRIB_ARRAY_STRIDE:return f.stride;case t.VERTEX_ATTRIB_ARRAY_TYPE:return f.type;case t.VERTEX_ATTRIB_ARRAY_NORMALIZED:return f.normalized;default:return n.getVertexAttrib.apply(this,arguments)}},t.vertexAttribPointer=function(s,a,_,f,u,l){let c=r.currentVertexArrayObject;c.maxAttrib=Math.max(c.maxAttrib,s);let E=c.attribs[s];return E.buffer=r.currentArrayBuffer,E.size=a,E.type=_,E.normalized=f,E.stride=u,E.offset=l,E.recache(),n.vertexAttribPointer.apply(this,arguments)},t.instrumentExtension&&t.instrumentExtension(this,"OES_vertex_array_object"),t.canvas&&t.canvas.addEventListener("webglcontextrestored",()=>{pa("OESVertexArrayObject emulation library context restored"),r.reset_()},!0),this.reset_()};me.prototype.VERTEX_ARRAY_BINDING_OES=34229;me.prototype.reset_=function(){if(this.vertexArrayObjects!==void 0)for(let n=0;n<this.vertexArrayObjects.length;++n)this.vertexArrayObjects.isAlive=!1;let r=this.gl;this.maxVertexAttribs=r.getParameter(r.MAX_VERTEX_ATTRIBS),this.defaultVertexArrayObject=new ze(this),this.currentVertexArrayObject=null,this.currentArrayBuffer=null,this.vertexArrayObjects=[this.defaultVertexArrayObject],this.bindVertexArrayOES(null)};me.prototype.createVertexArrayOES=function(){let t=new ze(this);return this.vertexArrayObjects.push(t),t};me.prototype.deleteVertexArrayOES=function(t){t.isAlive=!1,this.vertexArrayObjects.splice(this.vertexArrayObjects.indexOf(t),1),this.currentVertexArrayObject===t&&this.bindVertexArrayOES(null)};me.prototype.isVertexArrayOES=function(t){return!!(t&&t instanceof ze&&t.hasBeenBound&&t.ext===this)};me.prototype.bindVertexArrayOES=function(t){let r=this.gl;if(t&&!t.isAlive){ha(r.INVALID_OPERATION,"bindVertexArrayOES: attempt to bind deleted arrayObject");return}let n=this.original,o=this.currentVertexArrayObject;this.currentVertexArrayObject=t||this.defaultVertexArrayObject,this.currentVertexArrayObject.hasBeenBound=!0;let s=this.currentVertexArrayObject;if(o===s)return;(!o||s.elementArrayBuffer!==o.elementArrayBuffer)&&n.bindBuffer.call(r,r.ELEMENT_ARRAY_BUFFER,s.elementArrayBuffer);let a=this.currentArrayBuffer,_=Math.max(o?o.maxAttrib:0,s.maxAttrib);for(let f=0;f<=_;f++){let u=s.attribs[f],l=o?o.attribs[f]:null;if((!o||u.enabled!==l.enabled)&&(u.enabled?n.enableVertexAttribArray.call(r,f):n.disableVertexAttribArray.call(r,f)),u.enabled){let c=!1;(!o||u.buffer!==l.buffer)&&(a!==u.buffer&&(n.bindBuffer.call(r,r.ARRAY_BUFFER,u.buffer),a=u.buffer),c=!0),(c||u.cached!==l.cached)&&n.vertexAttribPointer.call(r,f,u.size,u.type,u.normalized,u.stride,u.offset)}}this.currentArrayBuffer!==a&&n.bindBuffer.call(r,r.ARRAY_BUFFER,this.currentArrayBuffer)};function Gn(e){if(typeof e.createVertexArray=="function")return;let t=e.getSupportedExtensions;e.getSupportedExtensions=function(){let o=t.call(this)||[];return o.indexOf("OES_vertex_array_object")<0&&o.push("OES_vertex_array_object"),o};let r=e.getExtension;e.getExtension=function(o){let s=r.call(this,o);return s||(o!=="OES_vertex_array_object"?null:(e.__OESVertexArrayObject||(this.__OESVertexArrayObject=new me(this)),this.__OESVertexArrayObject))}}var Se=p(g(),1);var i=function(e){return e[e.DEPTH_BUFFER_BIT=256]="DEPTH_BUFFER_BIT",e[e.STENCIL_BUFFER_BIT=1024]="STENCIL_BUFFER_BIT",e[e.COLOR_BUFFER_BIT=16384]="COLOR_BUFFER_BIT",e[e.POINTS=0]="POINTS",e[e.LINES=1]="LINES",e[e.LINE_LOOP=2]="LINE_LOOP",e[e.LINE_STRIP=3]="LINE_STRIP",e[e.TRIANGLES=4]="TRIANGLES",e[e.TRIANGLE_STRIP=5]="TRIANGLE_STRIP",e[e.TRIANGLE_FAN=6]="TRIANGLE_FAN",e[e.ZERO=0]="ZERO",e[e.ONE=1]="ONE",e[e.SRC_COLOR=768]="SRC_COLOR",e[e.ONE_MINUS_SRC_COLOR=769]="ONE_MINUS_SRC_COLOR",e[e.SRC_ALPHA=770]="SRC_ALPHA",e[e.ONE_MINUS_SRC_ALPHA=771]="ONE_MINUS_SRC_ALPHA",e[e.DST_ALPHA=772]="DST_ALPHA",e[e.ONE_MINUS_DST_ALPHA=773]="ONE_MINUS_DST_ALPHA",e[e.DST_COLOR=774]="DST_COLOR",e[e.ONE_MINUS_DST_COLOR=775]="ONE_MINUS_DST_COLOR",e[e.SRC_ALPHA_SATURATE=776]="SRC_ALPHA_SATURATE",e[e.CONSTANT_COLOR=32769]="CONSTANT_COLOR",e[e.ONE_MINUS_CONSTANT_COLOR=32770]="ONE_MINUS_CONSTANT_COLOR",e[e.CONSTANT_ALPHA=32771]="CONSTANT_ALPHA",e[e.ONE_MINUS_CONSTANT_ALPHA=32772]="ONE_MINUS_CONSTANT_ALPHA",e[e.FUNC_ADD=32774]="FUNC_ADD",e[e.FUNC_SUBTRACT=32778]="FUNC_SUBTRACT",e[e.FUNC_REVERSE_SUBTRACT=32779]="FUNC_REVERSE_SUBTRACT",e[e.BLEND_EQUATION=32777]="BLEND_EQUATION",e[e.BLEND_EQUATION_RGB=32777]="BLEND_EQUATION_RGB",e[e.BLEND_EQUATION_ALPHA=34877]="BLEND_EQUATION_ALPHA",e[e.BLEND_DST_RGB=32968]="BLEND_DST_RGB",e[e.BLEND_SRC_RGB=32969]="BLEND_SRC_RGB",e[e.BLEND_DST_ALPHA=32970]="BLEND_DST_ALPHA",e[e.BLEND_SRC_ALPHA=32971]="BLEND_SRC_ALPHA",e[e.BLEND_COLOR=32773]="BLEND_COLOR",e[e.ARRAY_BUFFER_BINDING=34964]="ARRAY_BUFFER_BINDING",e[e.ELEMENT_ARRAY_BUFFER_BINDING=34965]="ELEMENT_ARRAY_BUFFER_BINDING",e[e.LINE_WIDTH=2849]="LINE_WIDTH",e[e.ALIASED_POINT_SIZE_RANGE=33901]="ALIASED_POINT_SIZE_RANGE",e[e.ALIASED_LINE_WIDTH_RANGE=33902]="ALIASED_LINE_WIDTH_RANGE",e[e.CULL_FACE_MODE=2885]="CULL_FACE_MODE",e[e.FRONT_FACE=2886]="FRONT_FACE",e[e.DEPTH_RANGE=2928]="DEPTH_RANGE",e[e.DEPTH_WRITEMASK=2930]="DEPTH_WRITEMASK",e[e.DEPTH_CLEAR_VALUE=2931]="DEPTH_CLEAR_VALUE",e[e.DEPTH_FUNC=2932]="DEPTH_FUNC",e[e.STENCIL_CLEAR_VALUE=2961]="STENCIL_CLEAR_VALUE",e[e.STENCIL_FUNC=2962]="STENCIL_FUNC",e[e.STENCIL_FAIL=2964]="STENCIL_FAIL",e[e.STENCIL_PASS_DEPTH_FAIL=2965]="STENCIL_PASS_DEPTH_FAIL",e[e.STENCIL_PASS_DEPTH_PASS=2966]="STENCIL_PASS_DEPTH_PASS",e[e.STENCIL_REF=2967]="STENCIL_REF",e[e.STENCIL_VALUE_MASK=2963]="STENCIL_VALUE_MASK",e[e.STENCIL_WRITEMASK=2968]="STENCIL_WRITEMASK",e[e.STENCIL_BACK_FUNC=34816]="STENCIL_BACK_FUNC",e[e.STENCIL_BACK_FAIL=34817]="STENCIL_BACK_FAIL",e[e.STENCIL_BACK_PASS_DEPTH_FAIL=34818]="STENCIL_BACK_PASS_DEPTH_FAIL",e[e.STENCIL_BACK_PASS_DEPTH_PASS=34819]="STENCIL_BACK_PASS_DEPTH_PASS",e[e.STENCIL_BACK_REF=36003]="STENCIL_BACK_REF",e[e.STENCIL_BACK_VALUE_MASK=36004]="STENCIL_BACK_VALUE_MASK",e[e.STENCIL_BACK_WRITEMASK=36005]="STENCIL_BACK_WRITEMASK",e[e.VIEWPORT=2978]="VIEWPORT",e[e.SCISSOR_BOX=3088]="SCISSOR_BOX",e[e.COLOR_CLEAR_VALUE=3106]="COLOR_CLEAR_VALUE",e[e.COLOR_WRITEMASK=3107]="COLOR_WRITEMASK",e[e.UNPACK_ALIGNMENT=3317]="UNPACK_ALIGNMENT",e[e.PACK_ALIGNMENT=3333]="PACK_ALIGNMENT",e[e.MAX_TEXTURE_SIZE=3379]="MAX_TEXTURE_SIZE",e[e.MAX_VIEWPORT_DIMS=3386]="MAX_VIEWPORT_DIMS",e[e.SUBPIXEL_BITS=3408]="SUBPIXEL_BITS",e[e.RED_BITS=3410]="RED_BITS",e[e.GREEN_BITS=3411]="GREEN_BITS",e[e.BLUE_BITS=3412]="BLUE_BITS",e[e.ALPHA_BITS=3413]="ALPHA_BITS",e[e.DEPTH_BITS=3414]="DEPTH_BITS",e[e.STENCIL_BITS=3415]="STENCIL_BITS",e[e.POLYGON_OFFSET_UNITS=10752]="POLYGON_OFFSET_UNITS",e[e.POLYGON_OFFSET_FACTOR=32824]="POLYGON_OFFSET_FACTOR",e[e.TEXTURE_BINDING_2D=32873]="TEXTURE_BINDING_2D",e[e.SAMPLE_BUFFERS=32936]="SAMPLE_BUFFERS",e[e.SAMPLES=32937]="SAMPLES",e[e.SAMPLE_COVERAGE_VALUE=32938]="SAMPLE_COVERAGE_VALUE",e[e.SAMPLE_COVERAGE_INVERT=32939]="SAMPLE_COVERAGE_INVERT",e[e.COMPRESSED_TEXTURE_FORMATS=34467]="COMPRESSED_TEXTURE_FORMATS",e[e.VENDOR=7936]="VENDOR",e[e.RENDERER=7937]="RENDERER",e[e.VERSION=7938]="VERSION",e[e.IMPLEMENTATION_COLOR_READ_TYPE=35738]="IMPLEMENTATION_COLOR_READ_TYPE",e[e.IMPLEMENTATION_COLOR_READ_FORMAT=35739]="IMPLEMENTATION_COLOR_READ_FORMAT",e[e.BROWSER_DEFAULT_WEBGL=37444]="BROWSER_DEFAULT_WEBGL",e[e.STATIC_DRAW=35044]="STATIC_DRAW",e[e.STREAM_DRAW=35040]="STREAM_DRAW",e[e.DYNAMIC_DRAW=35048]="DYNAMIC_DRAW",e[e.ARRAY_BUFFER=34962]="ARRAY_BUFFER",e[e.ELEMENT_ARRAY_BUFFER=34963]="ELEMENT_ARRAY_BUFFER",e[e.BUFFER_SIZE=34660]="BUFFER_SIZE",e[e.BUFFER_USAGE=34661]="BUFFER_USAGE",e[e.CURRENT_VERTEX_ATTRIB=34342]="CURRENT_VERTEX_ATTRIB",e[e.VERTEX_ATTRIB_ARRAY_ENABLED=34338]="VERTEX_ATTRIB_ARRAY_ENABLED",e[e.VERTEX_ATTRIB_ARRAY_SIZE=34339]="VERTEX_ATTRIB_ARRAY_SIZE",e[e.VERTEX_ATTRIB_ARRAY_STRIDE=34340]="VERTEX_ATTRIB_ARRAY_STRIDE",e[e.VERTEX_ATTRIB_ARRAY_TYPE=34341]="VERTEX_ATTRIB_ARRAY_TYPE",e[e.VERTEX_ATTRIB_ARRAY_NORMALIZED=34922]="VERTEX_ATTRIB_ARRAY_NORMALIZED",e[e.VERTEX_ATTRIB_ARRAY_POINTER=34373]="VERTEX_ATTRIB_ARRAY_POINTER",e[e.VERTEX_ATTRIB_ARRAY_BUFFER_BINDING=34975]="VERTEX_ATTRIB_ARRAY_BUFFER_BINDING",e[e.CULL_FACE=2884]="CULL_FACE",e[e.FRONT=1028]="FRONT",e[e.BACK=1029]="BACK",e[e.FRONT_AND_BACK=1032]="FRONT_AND_BACK",e[e.BLEND=3042]="BLEND",e[e.DEPTH_TEST=2929]="DEPTH_TEST",e[e.DITHER=3024]="DITHER",e[e.POLYGON_OFFSET_FILL=32823]="POLYGON_OFFSET_FILL",e[e.SAMPLE_ALPHA_TO_COVERAGE=32926]="SAMPLE_ALPHA_TO_COVERAGE",e[e.SAMPLE_COVERAGE=32928]="SAMPLE_COVERAGE",e[e.SCISSOR_TEST=3089]="SCISSOR_TEST",e[e.STENCIL_TEST=2960]="STENCIL_TEST",e[e.NO_ERROR=0]="NO_ERROR",e[e.INVALID_ENUM=1280]="INVALID_ENUM",e[e.INVALID_VALUE=1281]="INVALID_VALUE",e[e.INVALID_OPERATION=1282]="INVALID_OPERATION",e[e.OUT_OF_MEMORY=1285]="OUT_OF_MEMORY",e[e.CONTEXT_LOST_WEBGL=37442]="CONTEXT_LOST_WEBGL",e[e.CW=2304]="CW",e[e.CCW=2305]="CCW",e[e.DONT_CARE=4352]="DONT_CARE",e[e.FASTEST=4353]="FASTEST",e[e.NICEST=4354]="NICEST",e[e.GENERATE_MIPMAP_HINT=33170]="GENERATE_MIPMAP_HINT",e[e.BYTE=5120]="BYTE",e[e.UNSIGNED_BYTE=5121]="UNSIGNED_BYTE",e[e.SHORT=5122]="SHORT",e[e.UNSIGNED_SHORT=5123]="UNSIGNED_SHORT",e[e.INT=5124]="INT",e[e.UNSIGNED_INT=5125]="UNSIGNED_INT",e[e.FLOAT=5126]="FLOAT",e[e.DOUBLE=5130]="DOUBLE",e[e.DEPTH_COMPONENT=6402]="DEPTH_COMPONENT",e[e.ALPHA=6406]="ALPHA",e[e.RGB=6407]="RGB",e[e.RGBA=6408]="RGBA",e[e.LUMINANCE=6409]="LUMINANCE",e[e.LUMINANCE_ALPHA=6410]="LUMINANCE_ALPHA",e[e.UNSIGNED_SHORT_4_4_4_4=32819]="UNSIGNED_SHORT_4_4_4_4",e[e.UNSIGNED_SHORT_5_5_5_1=32820]="UNSIGNED_SHORT_5_5_5_1",e[e.UNSIGNED_SHORT_5_6_5=33635]="UNSIGNED_SHORT_5_6_5",e[e.FRAGMENT_SHADER=35632]="FRAGMENT_SHADER",e[e.VERTEX_SHADER=35633]="VERTEX_SHADER",e[e.COMPILE_STATUS=35713]="COMPILE_STATUS",e[e.DELETE_STATUS=35712]="DELETE_STATUS",e[e.LINK_STATUS=35714]="LINK_STATUS",e[e.VALIDATE_STATUS=35715]="VALIDATE_STATUS",e[e.ATTACHED_SHADERS=35717]="ATTACHED_SHADERS",e[e.ACTIVE_ATTRIBUTES=35721]="ACTIVE_ATTRIBUTES",e[e.ACTIVE_UNIFORMS=35718]="ACTIVE_UNIFORMS",e[e.MAX_VERTEX_ATTRIBS=34921]="MAX_VERTEX_ATTRIBS",e[e.MAX_VERTEX_UNIFORM_VECTORS=36347]="MAX_VERTEX_UNIFORM_VECTORS",e[e.MAX_VARYING_VECTORS=36348]="MAX_VARYING_VECTORS",e[e.MAX_COMBINED_TEXTURE_IMAGE_UNITS=35661]="MAX_COMBINED_TEXTURE_IMAGE_UNITS",e[e.MAX_VERTEX_TEXTURE_IMAGE_UNITS=35660]="MAX_VERTEX_TEXTURE_IMAGE_UNITS",e[e.MAX_TEXTURE_IMAGE_UNITS=34930]="MAX_TEXTURE_IMAGE_UNITS",e[e.MAX_FRAGMENT_UNIFORM_VECTORS=36349]="MAX_FRAGMENT_UNIFORM_VECTORS",e[e.SHADER_TYPE=35663]="SHADER_TYPE",e[e.SHADING_LANGUAGE_VERSION=35724]="SHADING_LANGUAGE_VERSION",e[e.CURRENT_PROGRAM=35725]="CURRENT_PROGRAM",e[e.NEVER=512]="NEVER",e[e.LESS=513]="LESS",e[e.EQUAL=514]="EQUAL",e[e.LEQUAL=515]="LEQUAL",e[e.GREATER=516]="GREATER",e[e.NOTEQUAL=517]="NOTEQUAL",e[e.GEQUAL=518]="GEQUAL",e[e.ALWAYS=519]="ALWAYS",e[e.KEEP=7680]="KEEP",e[e.REPLACE=7681]="REPLACE",e[e.INCR=7682]="INCR",e[e.DECR=7683]="DECR",e[e.INVERT=5386]="INVERT",e[e.INCR_WRAP=34055]="INCR_WRAP",e[e.DECR_WRAP=34056]="DECR_WRAP",e[e.NEAREST=9728]="NEAREST",e[e.LINEAR=9729]="LINEAR",e[e.NEAREST_MIPMAP_NEAREST=9984]="NEAREST_MIPMAP_NEAREST",e[e.LINEAR_MIPMAP_NEAREST=9985]="LINEAR_MIPMAP_NEAREST",e[e.NEAREST_MIPMAP_LINEAR=9986]="NEAREST_MIPMAP_LINEAR",e[e.LINEAR_MIPMAP_LINEAR=9987]="LINEAR_MIPMAP_LINEAR",e[e.TEXTURE_MAG_FILTER=10240]="TEXTURE_MAG_FILTER",e[e.TEXTURE_MIN_FILTER=10241]="TEXTURE_MIN_FILTER",e[e.TEXTURE_WRAP_S=10242]="TEXTURE_WRAP_S",e[e.TEXTURE_WRAP_T=10243]="TEXTURE_WRAP_T",e[e.TEXTURE_2D=3553]="TEXTURE_2D",e[e.TEXTURE=5890]="TEXTURE",e[e.TEXTURE_CUBE_MAP=34067]="TEXTURE_CUBE_MAP",e[e.TEXTURE_BINDING_CUBE_MAP=34068]="TEXTURE_BINDING_CUBE_MAP",e[e.TEXTURE_CUBE_MAP_POSITIVE_X=34069]="TEXTURE_CUBE_MAP_POSITIVE_X",e[e.TEXTURE_CUBE_MAP_NEGATIVE_X=34070]="TEXTURE_CUBE_MAP_NEGATIVE_X",e[e.TEXTURE_CUBE_MAP_POSITIVE_Y=34071]="TEXTURE_CUBE_MAP_POSITIVE_Y",e[e.TEXTURE_CUBE_MAP_NEGATIVE_Y=34072]="TEXTURE_CUBE_MAP_NEGATIVE_Y",e[e.TEXTURE_CUBE_MAP_POSITIVE_Z=34073]="TEXTURE_CUBE_MAP_POSITIVE_Z",e[e.TEXTURE_CUBE_MAP_NEGATIVE_Z=34074]="TEXTURE_CUBE_MAP_NEGATIVE_Z",e[e.MAX_CUBE_MAP_TEXTURE_SIZE=34076]="MAX_CUBE_MAP_TEXTURE_SIZE",e[e.TEXTURE0=33984]="TEXTURE0",e[e.ACTIVE_TEXTURE=34016]="ACTIVE_TEXTURE",e[e.REPEAT=10497]="REPEAT",e[e.CLAMP_TO_EDGE=33071]="CLAMP_TO_EDGE",e[e.MIRRORED_REPEAT=33648]="MIRRORED_REPEAT",e[e.TEXTURE_WIDTH=4096]="TEXTURE_WIDTH",e[e.TEXTURE_HEIGHT=4097]="TEXTURE_HEIGHT",e[e.FLOAT_VEC2=35664]="FLOAT_VEC2",e[e.FLOAT_VEC3=35665]="FLOAT_VEC3",e[e.FLOAT_VEC4=35666]="FLOAT_VEC4",e[e.INT_VEC2=35667]="INT_VEC2",e[e.INT_VEC3=35668]="INT_VEC3",e[e.INT_VEC4=35669]="INT_VEC4",e[e.BOOL=35670]="BOOL",e[e.BOOL_VEC2=35671]="BOOL_VEC2",e[e.BOOL_VEC3=35672]="BOOL_VEC3",e[e.BOOL_VEC4=35673]="BOOL_VEC4",e[e.FLOAT_MAT2=35674]="FLOAT_MAT2",e[e.FLOAT_MAT3=35675]="FLOAT_MAT3",e[e.FLOAT_MAT4=35676]="FLOAT_MAT4",e[e.SAMPLER_2D=35678]="SAMPLER_2D",e[e.SAMPLER_CUBE=35680]="SAMPLER_CUBE",e[e.LOW_FLOAT=36336]="LOW_FLOAT",e[e.MEDIUM_FLOAT=36337]="MEDIUM_FLOAT",e[e.HIGH_FLOAT=36338]="HIGH_FLOAT",e[e.LOW_INT=36339]="LOW_INT",e[e.MEDIUM_INT=36340]="MEDIUM_INT",e[e.HIGH_INT=36341]="HIGH_INT",e[e.FRAMEBUFFER=36160]="FRAMEBUFFER",e[e.RENDERBUFFER=36161]="RENDERBUFFER",e[e.RGBA4=32854]="RGBA4",e[e.RGB5_A1=32855]="RGB5_A1",e[e.RGB565=36194]="RGB565",e[e.DEPTH_COMPONENT16=33189]="DEPTH_COMPONENT16",e[e.STENCIL_INDEX=6401]="STENCIL_INDEX",e[e.STENCIL_INDEX8=36168]="STENCIL_INDEX8",e[e.DEPTH_STENCIL=34041]="DEPTH_STENCIL",e[e.RENDERBUFFER_WIDTH=36162]="RENDERBUFFER_WIDTH",e[e.RENDERBUFFER_HEIGHT=36163]="RENDERBUFFER_HEIGHT",e[e.RENDERBUFFER_INTERNAL_FORMAT=36164]="RENDERBUFFER_INTERNAL_FORMAT",e[e.RENDERBUFFER_RED_SIZE=36176]="RENDERBUFFER_RED_SIZE",e[e.RENDERBUFFER_GREEN_SIZE=36177]="RENDERBUFFER_GREEN_SIZE",e[e.RENDERBUFFER_BLUE_SIZE=36178]="RENDERBUFFER_BLUE_SIZE",e[e.RENDERBUFFER_ALPHA_SIZE=36179]="RENDERBUFFER_ALPHA_SIZE",e[e.RENDERBUFFER_DEPTH_SIZE=36180]="RENDERBUFFER_DEPTH_SIZE",e[e.RENDERBUFFER_STENCIL_SIZE=36181]="RENDERBUFFER_STENCIL_SIZE",e[e.FRAMEBUFFER_ATTACHMENT_OBJECT_TYPE=36048]="FRAMEBUFFER_ATTACHMENT_OBJECT_TYPE",e[e.FRAMEBUFFER_ATTACHMENT_OBJECT_NAME=36049]="FRAMEBUFFER_ATTACHMENT_OBJECT_NAME",e[e.FRAMEBUFFER_ATTACHMENT_TEXTURE_LEVEL=36050]="FRAMEBUFFER_ATTACHMENT_TEXTURE_LEVEL",e[e.FRAMEBUFFER_ATTACHMENT_TEXTURE_CUBE_MAP_FACE=36051]="FRAMEBUFFER_ATTACHMENT_TEXTURE_CUBE_MAP_FACE",e[e.COLOR_ATTACHMENT0=36064]="COLOR_ATTACHMENT0",e[e.DEPTH_ATTACHMENT=36096]="DEPTH_ATTACHMENT",e[e.STENCIL_ATTACHMENT=36128]="STENCIL_ATTACHMENT",e[e.DEPTH_STENCIL_ATTACHMENT=33306]="DEPTH_STENCIL_ATTACHMENT",e[e.NONE=0]="NONE",e[e.FRAMEBUFFER_COMPLETE=36053]="FRAMEBUFFER_COMPLETE",e[e.FRAMEBUFFER_INCOMPLETE_ATTACHMENT=36054]="FRAMEBUFFER_INCOMPLETE_ATTACHMENT",e[e.FRAMEBUFFER_INCOMPLETE_MISSING_ATTACHMENT=36055]="FRAMEBUFFER_INCOMPLETE_MISSING_ATTACHMENT",e[e.FRAMEBUFFER_INCOMPLETE_DIMENSIONS=36057]="FRAMEBUFFER_INCOMPLETE_DIMENSIONS",e[e.FRAMEBUFFER_UNSUPPORTED=36061]="FRAMEBUFFER_UNSUPPORTED",e[e.FRAMEBUFFER_BINDING=36006]="FRAMEBUFFER_BINDING",e[e.RENDERBUFFER_BINDING=36007]="RENDERBUFFER_BINDING",e[e.READ_FRAMEBUFFER=36008]="READ_FRAMEBUFFER",e[e.DRAW_FRAMEBUFFER=36009]="DRAW_FRAMEBUFFER",e[e.MAX_RENDERBUFFER_SIZE=34024]="MAX_RENDERBUFFER_SIZE",e[e.INVALID_FRAMEBUFFER_OPERATION=1286]="INVALID_FRAMEBUFFER_OPERATION",e[e.UNPACK_FLIP_Y_WEBGL=37440]="UNPACK_FLIP_Y_WEBGL",e[e.UNPACK_PREMULTIPLY_ALPHA_WEBGL=37441]="UNPACK_PREMULTIPLY_ALPHA_WEBGL",e[e.UNPACK_COLORSPACE_CONVERSION_WEBGL=37443]="UNPACK_COLORSPACE_CONVERSION_WEBGL",e[e.READ_BUFFER=3074]="READ_BUFFER",e[e.UNPACK_ROW_LENGTH=3314]="UNPACK_ROW_LENGTH",e[e.UNPACK_SKIP_ROWS=3315]="UNPACK_SKIP_ROWS",e[e.UNPACK_SKIP_PIXELS=3316]="UNPACK_SKIP_PIXELS",e[e.PACK_ROW_LENGTH=3330]="PACK_ROW_LENGTH",e[e.PACK_SKIP_ROWS=3331]="PACK_SKIP_ROWS",e[e.PACK_SKIP_PIXELS=3332]="PACK_SKIP_PIXELS",e[e.TEXTURE_BINDING_3D=32874]="TEXTURE_BINDING_3D",e[e.UNPACK_SKIP_IMAGES=32877]="UNPACK_SKIP_IMAGES",e[e.UNPACK_IMAGE_HEIGHT=32878]="UNPACK_IMAGE_HEIGHT",e[e.MAX_3D_TEXTURE_SIZE=32883]="MAX_3D_TEXTURE_SIZE",e[e.MAX_ELEMENTS_VERTICES=33e3]="MAX_ELEMENTS_VERTICES",e[e.MAX_ELEMENTS_INDICES=33001]="MAX_ELEMENTS_INDICES",e[e.MAX_TEXTURE_LOD_BIAS=34045]="MAX_TEXTURE_LOD_BIAS",e[e.MAX_FRAGMENT_UNIFORM_COMPONENTS=35657]="MAX_FRAGMENT_UNIFORM_COMPONENTS",e[e.MAX_VERTEX_UNIFORM_COMPONENTS=35658]="MAX_VERTEX_UNIFORM_COMPONENTS",e[e.MAX_ARRAY_TEXTURE_LAYERS=35071]="MAX_ARRAY_TEXTURE_LAYERS",e[e.MIN_PROGRAM_TEXEL_OFFSET=35076]="MIN_PROGRAM_TEXEL_OFFSET",e[e.MAX_PROGRAM_TEXEL_OFFSET=35077]="MAX_PROGRAM_TEXEL_OFFSET",e[e.MAX_VARYING_COMPONENTS=35659]="MAX_VARYING_COMPONENTS",e[e.FRAGMENT_SHADER_DERIVATIVE_HINT=35723]="FRAGMENT_SHADER_DERIVATIVE_HINT",e[e.RASTERIZER_DISCARD=35977]="RASTERIZER_DISCARD",e[e.VERTEX_ARRAY_BINDING=34229]="VERTEX_ARRAY_BINDING",e[e.MAX_VERTEX_OUTPUT_COMPONENTS=37154]="MAX_VERTEX_OUTPUT_COMPONENTS",e[e.MAX_FRAGMENT_INPUT_COMPONENTS=37157]="MAX_FRAGMENT_INPUT_COMPONENTS",e[e.MAX_SERVER_WAIT_TIMEOUT=37137]="MAX_SERVER_WAIT_TIMEOUT",e[e.MAX_ELEMENT_INDEX=36203]="MAX_ELEMENT_INDEX",e[e.RED=6403]="RED",e[e.RGB8=32849]="RGB8",e[e.RGBA8=32856]="RGBA8",e[e.RGB10_A2=32857]="RGB10_A2",e[e.TEXTURE_3D=32879]="TEXTURE_3D",e[e.TEXTURE_WRAP_R=32882]="TEXTURE_WRAP_R",e[e.TEXTURE_MIN_LOD=33082]="TEXTURE_MIN_LOD",e[e.TEXTURE_MAX_LOD=33083]="TEXTURE_MAX_LOD",e[e.TEXTURE_BASE_LEVEL=33084]="TEXTURE_BASE_LEVEL",e[e.TEXTURE_MAX_LEVEL=33085]="TEXTURE_MAX_LEVEL",e[e.TEXTURE_COMPARE_MODE=34892]="TEXTURE_COMPARE_MODE",e[e.TEXTURE_COMPARE_FUNC=34893]="TEXTURE_COMPARE_FUNC",e[e.SRGB=35904]="SRGB",e[e.SRGB8=35905]="SRGB8",e[e.SRGB8_ALPHA8=35907]="SRGB8_ALPHA8",e[e.COMPARE_REF_TO_TEXTURE=34894]="COMPARE_REF_TO_TEXTURE",e[e.RGBA32F=34836]="RGBA32F",e[e.RGB32F=34837]="RGB32F",e[e.RGBA16F=34842]="RGBA16F",e[e.RGB16F=34843]="RGB16F",e[e.TEXTURE_2D_ARRAY=35866]="TEXTURE_2D_ARRAY",e[e.TEXTURE_BINDING_2D_ARRAY=35869]="TEXTURE_BINDING_2D_ARRAY",e[e.R11F_G11F_B10F=35898]="R11F_G11F_B10F",e[e.RGB9_E5=35901]="RGB9_E5",e[e.RGBA32UI=36208]="RGBA32UI",e[e.RGB32UI=36209]="RGB32UI",e[e.RGBA16UI=36214]="RGBA16UI",e[e.RGB16UI=36215]="RGB16UI",e[e.RGBA8UI=36220]="RGBA8UI",e[e.RGB8UI=36221]="RGB8UI",e[e.RGBA32I=36226]="RGBA32I",e[e.RGB32I=36227]="RGB32I",e[e.RGBA16I=36232]="RGBA16I",e[e.RGB16I=36233]="RGB16I",e[e.RGBA8I=36238]="RGBA8I",e[e.RGB8I=36239]="RGB8I",e[e.RED_INTEGER=36244]="RED_INTEGER",e[e.RGB_INTEGER=36248]="RGB_INTEGER",e[e.RGBA_INTEGER=36249]="RGBA_INTEGER",e[e.R8=33321]="R8",e[e.RG8=33323]="RG8",e[e.R16F=33325]="R16F",e[e.R32F=33326]="R32F",e[e.RG16F=33327]="RG16F",e[e.RG32F=33328]="RG32F",e[e.R8I=33329]="R8I",e[e.R8UI=33330]="R8UI",e[e.R16I=33331]="R16I",e[e.R16UI=33332]="R16UI",e[e.R32I=33333]="R32I",e[e.R32UI=33334]="R32UI",e[e.RG8I=33335]="RG8I",e[e.RG8UI=33336]="RG8UI",e[e.RG16I=33337]="RG16I",e[e.RG16UI=33338]="RG16UI",e[e.RG32I=33339]="RG32I",e[e.RG32UI=33340]="RG32UI",e[e.R8_SNORM=36756]="R8_SNORM",e[e.RG8_SNORM=36757]="RG8_SNORM",e[e.RGB8_SNORM=36758]="RGB8_SNORM",e[e.RGBA8_SNORM=36759]="RGBA8_SNORM",e[e.RGB10_A2UI=36975]="RGB10_A2UI",e[e.TEXTURE_IMMUTABLE_FORMAT=37167]="TEXTURE_IMMUTABLE_FORMAT",e[e.TEXTURE_IMMUTABLE_LEVELS=33503]="TEXTURE_IMMUTABLE_LEVELS",e[e.UNSIGNED_INT_2_10_10_10_REV=33640]="UNSIGNED_INT_2_10_10_10_REV",e[e.UNSIGNED_INT_10F_11F_11F_REV=35899]="UNSIGNED_INT_10F_11F_11F_REV",e[e.UNSIGNED_INT_5_9_9_9_REV=35902]="UNSIGNED_INT_5_9_9_9_REV",e[e.FLOAT_32_UNSIGNED_INT_24_8_REV=36269]="FLOAT_32_UNSIGNED_INT_24_8_REV",e[e.UNSIGNED_INT_24_8=34042]="UNSIGNED_INT_24_8",e[e.HALF_FLOAT=5131]="HALF_FLOAT",e[e.RG=33319]="RG",e[e.RG_INTEGER=33320]="RG_INTEGER",e[e.INT_2_10_10_10_REV=36255]="INT_2_10_10_10_REV",e[e.CURRENT_QUERY=34917]="CURRENT_QUERY",e[e.QUERY_RESULT=34918]="QUERY_RESULT",e[e.QUERY_RESULT_AVAILABLE=34919]="QUERY_RESULT_AVAILABLE",e[e.ANY_SAMPLES_PASSED=35887]="ANY_SAMPLES_PASSED",e[e.ANY_SAMPLES_PASSED_CONSERVATIVE=36202]="ANY_SAMPLES_PASSED_CONSERVATIVE",e[e.MAX_DRAW_BUFFERS=34852]="MAX_DRAW_BUFFERS",e[e.DRAW_BUFFER0=34853]="DRAW_BUFFER0",e[e.DRAW_BUFFER1=34854]="DRAW_BUFFER1",e[e.DRAW_BUFFER2=34855]="DRAW_BUFFER2",e[e.DRAW_BUFFER3=34856]="DRAW_BUFFER3",e[e.DRAW_BUFFER4=34857]="DRAW_BUFFER4",e[e.DRAW_BUFFER5=34858]="DRAW_BUFFER5",e[e.DRAW_BUFFER6=34859]="DRAW_BUFFER6",e[e.DRAW_BUFFER7=34860]="DRAW_BUFFER7",e[e.DRAW_BUFFER8=34861]="DRAW_BUFFER8",e[e.DRAW_BUFFER9=34862]="DRAW_BUFFER9",e[e.DRAW_BUFFER10=34863]="DRAW_BUFFER10",e[e.DRAW_BUFFER11=34864]="DRAW_BUFFER11",e[e.DRAW_BUFFER12=34865]="DRAW_BUFFER12",e[e.DRAW_BUFFER13=34866]="DRAW_BUFFER13",e[e.DRAW_BUFFER14=34867]="DRAW_BUFFER14",e[e.DRAW_BUFFER15=34868]="DRAW_BUFFER15",e[e.MAX_COLOR_ATTACHMENTS=36063]="MAX_COLOR_ATTACHMENTS",e[e.COLOR_ATTACHMENT1=36065]="COLOR_ATTACHMENT1",e[e.COLOR_ATTACHMENT2=36066]="COLOR_ATTACHMENT2",e[e.COLOR_ATTACHMENT3=36067]="COLOR_ATTACHMENT3",e[e.COLOR_ATTACHMENT4=36068]="COLOR_ATTACHMENT4",e[e.COLOR_ATTACHMENT5=36069]="COLOR_ATTACHMENT5",e[e.COLOR_ATTACHMENT6=36070]="COLOR_ATTACHMENT6",e[e.COLOR_ATTACHMENT7=36071]="COLOR_ATTACHMENT7",e[e.COLOR_ATTACHMENT8=36072]="COLOR_ATTACHMENT8",e[e.COLOR_ATTACHMENT9=36073]="COLOR_ATTACHMENT9",e[e.COLOR_ATTACHMENT10=36074]="COLOR_ATTACHMENT10",e[e.COLOR_ATTACHMENT11=36075]="COLOR_ATTACHMENT11",e[e.COLOR_ATTACHMENT12=36076]="COLOR_ATTACHMENT12",e[e.COLOR_ATTACHMENT13=36077]="COLOR_ATTACHMENT13",e[e.COLOR_ATTACHMENT14=36078]="COLOR_ATTACHMENT14",e[e.COLOR_ATTACHMENT15=36079]="COLOR_ATTACHMENT15",e[e.SAMPLER_3D=35679]="SAMPLER_3D",e[e.SAMPLER_2D_SHADOW=35682]="SAMPLER_2D_SHADOW",e[e.SAMPLER_2D_ARRAY=36289]="SAMPLER_2D_ARRAY",e[e.SAMPLER_2D_ARRAY_SHADOW=36292]="SAMPLER_2D_ARRAY_SHADOW",e[e.SAMPLER_CUBE_SHADOW=36293]="SAMPLER_CUBE_SHADOW",e[e.INT_SAMPLER_2D=36298]="INT_SAMPLER_2D",e[e.INT_SAMPLER_3D=36299]="INT_SAMPLER_3D",e[e.INT_SAMPLER_CUBE=36300]="INT_SAMPLER_CUBE",e[e.INT_SAMPLER_2D_ARRAY=36303]="INT_SAMPLER_2D_ARRAY",e[e.UNSIGNED_INT_SAMPLER_2D=36306]="UNSIGNED_INT_SAMPLER_2D",e[e.UNSIGNED_INT_SAMPLER_3D=36307]="UNSIGNED_INT_SAMPLER_3D",e[e.UNSIGNED_INT_SAMPLER_CUBE=36308]="UNSIGNED_INT_SAMPLER_CUBE",e[e.UNSIGNED_INT_SAMPLER_2D_ARRAY=36311]="UNSIGNED_INT_SAMPLER_2D_ARRAY",e[e.MAX_SAMPLES=36183]="MAX_SAMPLES",e[e.SAMPLER_BINDING=35097]="SAMPLER_BINDING",e[e.PIXEL_PACK_BUFFER=35051]="PIXEL_PACK_BUFFER",e[e.PIXEL_UNPACK_BUFFER=35052]="PIXEL_UNPACK_BUFFER",e[e.PIXEL_PACK_BUFFER_BINDING=35053]="PIXEL_PACK_BUFFER_BINDING",e[e.PIXEL_UNPACK_BUFFER_BINDING=35055]="PIXEL_UNPACK_BUFFER_BINDING",e[e.COPY_READ_BUFFER=36662]="COPY_READ_BUFFER",e[e.COPY_WRITE_BUFFER=36663]="COPY_WRITE_BUFFER",e[e.COPY_READ_BUFFER_BINDING=36662]="COPY_READ_BUFFER_BINDING",e[e.COPY_WRITE_BUFFER_BINDING=36663]="COPY_WRITE_BUFFER_BINDING",e[e.FLOAT_MAT2x3=35685]="FLOAT_MAT2x3",e[e.FLOAT_MAT2x4=35686]="FLOAT_MAT2x4",e[e.FLOAT_MAT3x2=35687]="FLOAT_MAT3x2",e[e.FLOAT_MAT3x4=35688]="FLOAT_MAT3x4",e[e.FLOAT_MAT4x2=35689]="FLOAT_MAT4x2",e[e.FLOAT_MAT4x3=35690]="FLOAT_MAT4x3",e[e.UNSIGNED_INT_VEC2=36294]="UNSIGNED_INT_VEC2",e[e.UNSIGNED_INT_VEC3=36295]="UNSIGNED_INT_VEC3",e[e.UNSIGNED_INT_VEC4=36296]="UNSIGNED_INT_VEC4",e[e.UNSIGNED_NORMALIZED=35863]="UNSIGNED_NORMALIZED",e[e.SIGNED_NORMALIZED=36764]="SIGNED_NORMALIZED",e[e.VERTEX_ATTRIB_ARRAY_INTEGER=35069]="VERTEX_ATTRIB_ARRAY_INTEGER",e[e.VERTEX_ATTRIB_ARRAY_DIVISOR=35070]="VERTEX_ATTRIB_ARRAY_DIVISOR",e[e.TRANSFORM_FEEDBACK_BUFFER_MODE=35967]="TRANSFORM_FEEDBACK_BUFFER_MODE",e[e.MAX_TRANSFORM_FEEDBACK_SEPARATE_COMPONENTS=35968]="MAX_TRANSFORM_FEEDBACK_SEPARATE_COMPONENTS",e[e.TRANSFORM_FEEDBACK_VARYINGS=35971]="TRANSFORM_FEEDBACK_VARYINGS",e[e.TRANSFORM_FEEDBACK_BUFFER_START=35972]="TRANSFORM_FEEDBACK_BUFFER_START",e[e.TRANSFORM_FEEDBACK_BUFFER_SIZE=35973]="TRANSFORM_FEEDBACK_BUFFER_SIZE",e[e.TRANSFORM_FEEDBACK_PRIMITIVES_WRITTEN=35976]="TRANSFORM_FEEDBACK_PRIMITIVES_WRITTEN",e[e.MAX_TRANSFORM_FEEDBACK_INTERLEAVED_COMPONENTS=35978]="MAX_TRANSFORM_FEEDBACK_INTERLEAVED_COMPONENTS",e[e.MAX_TRANSFORM_FEEDBACK_SEPARATE_ATTRIBS=35979]="MAX_TRANSFORM_FEEDBACK_SEPARATE_ATTRIBS",e[e.INTERLEAVED_ATTRIBS=35980]="INTERLEAVED_ATTRIBS",e[e.SEPARATE_ATTRIBS=35981]="SEPARATE_ATTRIBS",e[e.TRANSFORM_FEEDBACK_BUFFER=35982]="TRANSFORM_FEEDBACK_BUFFER",e[e.TRANSFORM_FEEDBACK_BUFFER_BINDING=35983]="TRANSFORM_FEEDBACK_BUFFER_BINDING",e[e.TRANSFORM_FEEDBACK=36386]="TRANSFORM_FEEDBACK",e[e.TRANSFORM_FEEDBACK_PAUSED=36387]="TRANSFORM_FEEDBACK_PAUSED",e[e.TRANSFORM_FEEDBACK_ACTIVE=36388]="TRANSFORM_FEEDBACK_ACTIVE",e[e.TRANSFORM_FEEDBACK_BINDING=36389]="TRANSFORM_FEEDBACK_BINDING",e[e.FRAMEBUFFER_ATTACHMENT_COLOR_ENCODING=33296]="FRAMEBUFFER_ATTACHMENT_COLOR_ENCODING",e[e.FRAMEBUFFER_ATTACHMENT_COMPONENT_TYPE=33297]="FRAMEBUFFER_ATTACHMENT_COMPONENT_TYPE",e[e.FRAMEBUFFER_ATTACHMENT_RED_SIZE=33298]="FRAMEBUFFER_ATTACHMENT_RED_SIZE",e[e.FRAMEBUFFER_ATTACHMENT_GREEN_SIZE=33299]="FRAMEBUFFER_ATTACHMENT_GREEN_SIZE",e[e.FRAMEBUFFER_ATTACHMENT_BLUE_SIZE=33300]="FRAMEBUFFER_ATTACHMENT_BLUE_SIZE",e[e.FRAMEBUFFER_ATTACHMENT_ALPHA_SIZE=33301]="FRAMEBUFFER_ATTACHMENT_ALPHA_SIZE",e[e.FRAMEBUFFER_ATTACHMENT_DEPTH_SIZE=33302]="FRAMEBUFFER_ATTACHMENT_DEPTH_SIZE",e[e.FRAMEBUFFER_ATTACHMENT_STENCIL_SIZE=33303]="FRAMEBUFFER_ATTACHMENT_STENCIL_SIZE",e[e.FRAMEBUFFER_DEFAULT=33304]="FRAMEBUFFER_DEFAULT",e[e.DEPTH24_STENCIL8=35056]="DEPTH24_STENCIL8",e[e.DRAW_FRAMEBUFFER_BINDING=36006]="DRAW_FRAMEBUFFER_BINDING",e[e.READ_FRAMEBUFFER_BINDING=36010]="READ_FRAMEBUFFER_BINDING",e[e.RENDERBUFFER_SAMPLES=36011]="RENDERBUFFER_SAMPLES",e[e.FRAMEBUFFER_ATTACHMENT_TEXTURE_LAYER=36052]="FRAMEBUFFER_ATTACHMENT_TEXTURE_LAYER",e[e.FRAMEBUFFER_INCOMPLETE_MULTISAMPLE=36182]="FRAMEBUFFER_INCOMPLETE_MULTISAMPLE",e[e.UNIFORM_BUFFER=35345]="UNIFORM_BUFFER",e[e.UNIFORM_BUFFER_BINDING=35368]="UNIFORM_BUFFER_BINDING",e[e.UNIFORM_BUFFER_START=35369]="UNIFORM_BUFFER_START",e[e.UNIFORM_BUFFER_SIZE=35370]="UNIFORM_BUFFER_SIZE",e[e.MAX_VERTEX_UNIFORM_BLOCKS=35371]="MAX_VERTEX_UNIFORM_BLOCKS",e[e.MAX_FRAGMENT_UNIFORM_BLOCKS=35373]="MAX_FRAGMENT_UNIFORM_BLOCKS",e[e.MAX_COMBINED_UNIFORM_BLOCKS=35374]="MAX_COMBINED_UNIFORM_BLOCKS",e[e.MAX_UNIFORM_BUFFER_BINDINGS=35375]="MAX_UNIFORM_BUFFER_BINDINGS",e[e.MAX_UNIFORM_BLOCK_SIZE=35376]="MAX_UNIFORM_BLOCK_SIZE",e[e.MAX_COMBINED_VERTEX_UNIFORM_COMPONENTS=35377]="MAX_COMBINED_VERTEX_UNIFORM_COMPONENTS",e[e.MAX_COMBINED_FRAGMENT_UNIFORM_COMPONENTS=35379]="MAX_COMBINED_FRAGMENT_UNIFORM_COMPONENTS",e[e.UNIFORM_BUFFER_OFFSET_ALIGNMENT=35380]="UNIFORM_BUFFER_OFFSET_ALIGNMENT",e[e.ACTIVE_UNIFORM_BLOCKS=35382]="ACTIVE_UNIFORM_BLOCKS",e[e.UNIFORM_TYPE=35383]="UNIFORM_TYPE",e[e.UNIFORM_SIZE=35384]="UNIFORM_SIZE",e[e.UNIFORM_BLOCK_INDEX=35386]="UNIFORM_BLOCK_INDEX",e[e.UNIFORM_OFFSET=35387]="UNIFORM_OFFSET",e[e.UNIFORM_ARRAY_STRIDE=35388]="UNIFORM_ARRAY_STRIDE",e[e.UNIFORM_MATRIX_STRIDE=35389]="UNIFORM_MATRIX_STRIDE",e[e.UNIFORM_IS_ROW_MAJOR=35390]="UNIFORM_IS_ROW_MAJOR",e[e.UNIFORM_BLOCK_BINDING=35391]="UNIFORM_BLOCK_BINDING",e[e.UNIFORM_BLOCK_DATA_SIZE=35392]="UNIFORM_BLOCK_DATA_SIZE",e[e.UNIFORM_BLOCK_ACTIVE_UNIFORMS=35394]="UNIFORM_BLOCK_ACTIVE_UNIFORMS",e[e.UNIFORM_BLOCK_ACTIVE_UNIFORM_INDICES=35395]="UNIFORM_BLOCK_ACTIVE_UNIFORM_INDICES",e[e.UNIFORM_BLOCK_REFERENCED_BY_VERTEX_SHADER=35396]="UNIFORM_BLOCK_REFERENCED_BY_VERTEX_SHADER",e[e.UNIFORM_BLOCK_REFERENCED_BY_FRAGMENT_SHADER=35398]="UNIFORM_BLOCK_REFERENCED_BY_FRAGMENT_SHADER",e[e.OBJECT_TYPE=37138]="OBJECT_TYPE",e[e.SYNC_CONDITION=37139]="SYNC_CONDITION",e[e.SYNC_STATUS=37140]="SYNC_STATUS",e[e.SYNC_FLAGS=37141]="SYNC_FLAGS",e[e.SYNC_FENCE=37142]="SYNC_FENCE",e[e.SYNC_GPU_COMMANDS_COMPLETE=37143]="SYNC_GPU_COMMANDS_COMPLETE",e[e.UNSIGNALED=37144]="UNSIGNALED",e[e.SIGNALED=37145]="SIGNALED",e[e.ALREADY_SIGNALED=37146]="ALREADY_SIGNALED",e[e.TIMEOUT_EXPIRED=37147]="TIMEOUT_EXPIRED",e[e.CONDITION_SATISFIED=37148]="CONDITION_SATISFIED",e[e.WAIT_FAILED=37149]="WAIT_FAILED",e[e.SYNC_FLUSH_COMMANDS_BIT=1]="SYNC_FLUSH_COMMANDS_BIT",e[e.COLOR=6144]="COLOR",e[e.DEPTH=6145]="DEPTH",e[e.STENCIL=6146]="STENCIL",e[e.MIN=32775]="MIN",e[e.MAX=32776]="MAX",e[e.DEPTH_COMPONENT24=33190]="DEPTH_COMPONENT24",e[e.STREAM_READ=35041]="STREAM_READ",e[e.STREAM_COPY=35042]="STREAM_COPY",e[e.STATIC_READ=35045]="STATIC_READ",e[e.STATIC_COPY=35046]="STATIC_COPY",e[e.DYNAMIC_READ=35049]="DYNAMIC_READ",e[e.DYNAMIC_COPY=35050]="DYNAMIC_COPY",e[e.DEPTH_COMPONENT32F=36012]="DEPTH_COMPONENT32F",e[e.DEPTH32F_STENCIL8=36013]="DEPTH32F_STENCIL8",e[e.INVALID_INDEX=4294967295]="INVALID_INDEX",e[e.TIMEOUT_IGNORED=-1]="TIMEOUT_IGNORED",e[e.MAX_CLIENT_WAIT_TIMEOUT_WEBGL=37447]="MAX_CLIENT_WAIT_TIMEOUT_WEBGL",e[e.VERTEX_ATTRIB_ARRAY_DIVISOR_ANGLE=35070]="VERTEX_ATTRIB_ARRAY_DIVISOR_ANGLE",e[e.UNMASKED_VENDOR_WEBGL=37445]="UNMASKED_VENDOR_WEBGL",e[e.UNMASKED_RENDERER_WEBGL=37446]="UNMASKED_RENDERER_WEBGL",e[e.MAX_TEXTURE_MAX_ANISOTROPY_EXT=34047]="MAX_TEXTURE_MAX_ANISOTROPY_EXT",e[e.TEXTURE_MAX_ANISOTROPY_EXT=34046]="TEXTURE_MAX_ANISOTROPY_EXT",e[e.SRGB_EXT=35904]="SRGB_EXT",e[e.SRGB_ALPHA_EXT=35906]="SRGB_ALPHA_EXT",e[e.SRGB8_ALPHA8_EXT=35907]="SRGB8_ALPHA8_EXT",e[e.FRAMEBUFFER_ATTACHMENT_COLOR_ENCODING_EXT=33296]="FRAMEBUFFER_ATTACHMENT_COLOR_ENCODING_EXT",e[e.R16_EXT=33322]="R16_EXT",e[e.RG16_EXT=33324]="RG16_EXT",e[e.RGB16_EXT=32852]="RGB16_EXT",e[e.RGBA16_EXT=32859]="RGBA16_EXT",e[e.R16_SNORM_EXT=36760]="R16_SNORM_EXT",e[e.RG16_SNORM_EXT=36761]="RG16_SNORM_EXT",e[e.RGB16_SNORM_EXT=36762]="RGB16_SNORM_EXT",e[e.RGBA16_SNORM_EXT=36763]="RGBA16_SNORM_EXT",e[e.COMPRESSED_RGB_S3TC_DXT1_EXT=33776]="COMPRESSED_RGB_S3TC_DXT1_EXT",e[e.COMPRESSED_RGBA_S3TC_DXT1_EXT=33777]="COMPRESSED_RGBA_S3TC_DXT1_EXT",e[e.COMPRESSED_RGBA_S3TC_DXT3_EXT=33778]="COMPRESSED_RGBA_S3TC_DXT3_EXT",e[e.COMPRESSED_RGBA_S3TC_DXT5_EXT=33779]="COMPRESSED_RGBA_S3TC_DXT5_EXT",e[e.COMPRESSED_SRGB_S3TC_DXT1_EXT=35916]="COMPRESSED_SRGB_S3TC_DXT1_EXT",e[e.COMPRESSED_SRGB_ALPHA_S3TC_DXT1_EXT=35917]="COMPRESSED_SRGB_ALPHA_S3TC_DXT1_EXT",e[e.COMPRESSED_SRGB_ALPHA_S3TC_DXT3_EXT=35918]="COMPRESSED_SRGB_ALPHA_S3TC_DXT3_EXT",e[e.COMPRESSED_SRGB_ALPHA_S3TC_DXT5_EXT=35919]="COMPRESSED_SRGB_ALPHA_S3TC_DXT5_EXT",e[e.COMPRESSED_RED_RGTC1_EXT=36283]="COMPRESSED_RED_RGTC1_EXT",e[e.COMPRESSED_SIGNED_RED_RGTC1_EXT=36284]="COMPRESSED_SIGNED_RED_RGTC1_EXT",e[e.COMPRESSED_RED_GREEN_RGTC2_EXT=36285]="COMPRESSED_RED_GREEN_RGTC2_EXT",e[e.COMPRESSED_SIGNED_RED_GREEN_RGTC2_EXT=36286]="COMPRESSED_SIGNED_RED_GREEN_RGTC2_EXT",e[e.COMPRESSED_RGBA_BPTC_UNORM_EXT=36492]="COMPRESSED_RGBA_BPTC_UNORM_EXT",e[e.COMPRESSED_SRGB_ALPHA_BPTC_UNORM_EXT=36493]="COMPRESSED_SRGB_ALPHA_BPTC_UNORM_EXT",e[e.COMPRESSED_RGB_BPTC_SIGNED_FLOAT_EXT=36494]="COMPRESSED_RGB_BPTC_SIGNED_FLOAT_EXT",e[e.COMPRESSED_RGB_BPTC_UNSIGNED_FLOAT_EXT=36495]="COMPRESSED_RGB_BPTC_UNSIGNED_FLOAT_EXT",e[e.COMPRESSED_R11_EAC=37488]="COMPRESSED_R11_EAC",e[e.COMPRESSED_SIGNED_R11_EAC=37489]="COMPRESSED_SIGNED_R11_EAC",e[e.COMPRESSED_RG11_EAC=37490]="COMPRESSED_RG11_EAC",e[e.COMPRESSED_SIGNED_RG11_EAC=37491]="COMPRESSED_SIGNED_RG11_EAC",e[e.COMPRESSED_RGB8_ETC2=37492]="COMPRESSED_RGB8_ETC2",e[e.COMPRESSED_RGBA8_ETC2_EAC=37493]="COMPRESSED_RGBA8_ETC2_EAC",e[e.COMPRESSED_SRGB8_ETC2=37494]="COMPRESSED_SRGB8_ETC2",e[e.COMPRESSED_SRGB8_ALPHA8_ETC2_EAC=37495]="COMPRESSED_SRGB8_ALPHA8_ETC2_EAC",e[e.COMPRESSED_RGB8_PUNCHTHROUGH_ALPHA1_ETC2=37496]="COMPRESSED_RGB8_PUNCHTHROUGH_ALPHA1_ETC2",e[e.COMPRESSED_SRGB8_PUNCHTHROUGH_ALPHA1_ETC2=37497]="COMPRESSED_SRGB8_PUNCHTHROUGH_ALPHA1_ETC2",e[e.COMPRESSED_RGB_PVRTC_4BPPV1_IMG=35840]="COMPRESSED_RGB_PVRTC_4BPPV1_IMG",e[e.COMPRESSED_RGBA_PVRTC_4BPPV1_IMG=35842]="COMPRESSED_RGBA_PVRTC_4BPPV1_IMG",e[e.COMPRESSED_RGB_PVRTC_2BPPV1_IMG=35841]="COMPRESSED_RGB_PVRTC_2BPPV1_IMG",e[e.COMPRESSED_RGBA_PVRTC_2BPPV1_IMG=35843]="COMPRESSED_RGBA_PVRTC_2BPPV1_IMG",e[e.COMPRESSED_RGB_ETC1_WEBGL=36196]="COMPRESSED_RGB_ETC1_WEBGL",e[e.COMPRESSED_RGB_ATC_WEBGL=35986]="COMPRESSED_RGB_ATC_WEBGL",e[e.COMPRESSED_RGBA_ATC_EXPLICIT_ALPHA_WEBGL=35986]="COMPRESSED_RGBA_ATC_EXPLICIT_ALPHA_WEBGL",e[e.COMPRESSED_RGBA_ATC_INTERPOLATED_ALPHA_WEBGL=34798]="COMPRESSED_RGBA_ATC_INTERPOLATED_ALPHA_WEBGL",e[e.COMPRESSED_RGBA_ASTC_4x4_KHR=37808]="COMPRESSED_RGBA_ASTC_4x4_KHR",e[e.COMPRESSED_RGBA_ASTC_5x4_KHR=37809]="COMPRESSED_RGBA_ASTC_5x4_KHR",e[e.COMPRESSED_RGBA_ASTC_5x5_KHR=37810]="COMPRESSED_RGBA_ASTC_5x5_KHR",e[e.COMPRESSED_RGBA_ASTC_6x5_KHR=37811]="COMPRESSED_RGBA_ASTC_6x5_KHR",e[e.COMPRESSED_RGBA_ASTC_6x6_KHR=37812]="COMPRESSED_RGBA_ASTC_6x6_KHR",e[e.COMPRESSED_RGBA_ASTC_8x5_KHR=37813]="COMPRESSED_RGBA_ASTC_8x5_KHR",e[e.COMPRESSED_RGBA_ASTC_8x6_KHR=37814]="COMPRESSED_RGBA_ASTC_8x6_KHR",e[e.COMPRESSED_RGBA_ASTC_8x8_KHR=37815]="COMPRESSED_RGBA_ASTC_8x8_KHR",e[e.COMPRESSED_RGBA_ASTC_10x5_KHR=37816]="COMPRESSED_RGBA_ASTC_10x5_KHR",e[e.COMPRESSED_RGBA_ASTC_10x6_KHR=37817]="COMPRESSED_RGBA_ASTC_10x6_KHR",e[e.COMPRESSED_RGBA_ASTC_10x8_KHR=37818]="COMPRESSED_RGBA_ASTC_10x8_KHR",e[e.COMPRESSED_RGBA_ASTC_10x10_KHR=37819]="COMPRESSED_RGBA_ASTC_10x10_KHR",e[e.COMPRESSED_RGBA_ASTC_12x10_KHR=37820]="COMPRESSED_RGBA_ASTC_12x10_KHR",e[e.COMPRESSED_RGBA_ASTC_12x12_KHR=37821]="COMPRESSED_RGBA_ASTC_12x12_KHR",e[e.COMPRESSED_SRGB8_ALPHA8_ASTC_4x4_KHR=37840]="COMPRESSED_SRGB8_ALPHA8_ASTC_4x4_KHR",e[e.COMPRESSED_SRGB8_ALPHA8_ASTC_5x4_KHR=37841]="COMPRESSED_SRGB8_ALPHA8_ASTC_5x4_KHR",e[e.COMPRESSED_SRGB8_ALPHA8_ASTC_5x5_KHR=37842]="COMPRESSED_SRGB8_ALPHA8_ASTC_5x5_KHR",e[e.COMPRESSED_SRGB8_ALPHA8_ASTC_6x5_KHR=37843]="COMPRESSED_SRGB8_ALPHA8_ASTC_6x5_KHR",e[e.COMPRESSED_SRGB8_ALPHA8_ASTC_6x6_KHR=37844]="COMPRESSED_SRGB8_ALPHA8_ASTC_6x6_KHR",e[e.COMPRESSED_SRGB8_ALPHA8_ASTC_8x5_KHR=37845]="COMPRESSED_SRGB8_ALPHA8_ASTC_8x5_KHR",e[e.COMPRESSED_SRGB8_ALPHA8_ASTC_8x6_KHR=37846]="COMPRESSED_SRGB8_ALPHA8_ASTC_8x6_KHR",e[e.COMPRESSED_SRGB8_ALPHA8_ASTC_8x8_KHR=37847]="COMPRESSED_SRGB8_ALPHA8_ASTC_8x8_KHR",e[e.COMPRESSED_SRGB8_ALPHA8_ASTC_10x5_KHR=37848]="COMPRESSED_SRGB8_ALPHA8_ASTC_10x5_KHR",e[e.COMPRESSED_SRGB8_ALPHA8_ASTC_10x6_KHR=37849]="COMPRESSED_SRGB8_ALPHA8_ASTC_10x6_KHR",e[e.COMPRESSED_SRGB8_ALPHA8_ASTC_10x8_KHR=37850]="COMPRESSED_SRGB8_ALPHA8_ASTC_10x8_KHR",e[e.COMPRESSED_SRGB8_ALPHA8_ASTC_10x10_KHR=37851]="COMPRESSED_SRGB8_ALPHA8_ASTC_10x10_KHR",e[e.COMPRESSED_SRGB8_ALPHA8_ASTC_12x10_KHR=37852]="COMPRESSED_SRGB8_ALPHA8_ASTC_12x10_KHR",e[e.COMPRESSED_SRGB8_ALPHA8_ASTC_12x12_KHR=37853]="COMPRESSED_SRGB8_ALPHA8_ASTC_12x12_KHR",e[e.UNSIGNED_INT_24_8_WEBGL=34042]="UNSIGNED_INT_24_8_WEBGL",e[e.HALF_FLOAT_OES=36193]="HALF_FLOAT_OES",e[e.RGBA32F_EXT=34836]="RGBA32F_EXT",e[e.RGB32F_EXT=34837]="RGB32F_EXT",e[e.FRAMEBUFFER_ATTACHMENT_COMPONENT_TYPE_EXT=33297]="FRAMEBUFFER_ATTACHMENT_COMPONENT_TYPE_EXT",e[e.UNSIGNED_NORMALIZED_EXT=35863]="UNSIGNED_NORMALIZED_EXT",e[e.MIN_EXT=32775]="MIN_EXT",e[e.MAX_EXT=32776]="MAX_EXT",e[e.FRAGMENT_SHADER_DERIVATIVE_HINT_OES=35723]="FRAGMENT_SHADER_DERIVATIVE_HINT_OES",e[e.COLOR_ATTACHMENT0_WEBGL=36064]="COLOR_ATTACHMENT0_WEBGL",e[e.COLOR_ATTACHMENT1_WEBGL=36065]="COLOR_ATTACHMENT1_WEBGL",e[e.COLOR_ATTACHMENT2_WEBGL=36066]="COLOR_ATTACHMENT2_WEBGL",e[e.COLOR_ATTACHMENT3_WEBGL=36067]="COLOR_ATTACHMENT3_WEBGL",e[e.COLOR_ATTACHMENT4_WEBGL=36068]="COLOR_ATTACHMENT4_WEBGL",e[e.COLOR_ATTACHMENT5_WEBGL=36069]="COLOR_ATTACHMENT5_WEBGL",e[e.COLOR_ATTACHMENT6_WEBGL=36070]="COLOR_ATTACHMENT6_WEBGL",e[e.COLOR_ATTACHMENT7_WEBGL=36071]="COLOR_ATTACHMENT7_WEBGL",e[e.COLOR_ATTACHMENT8_WEBGL=36072]="COLOR_ATTACHMENT8_WEBGL",e[e.COLOR_ATTACHMENT9_WEBGL=36073]="COLOR_ATTACHMENT9_WEBGL",e[e.COLOR_ATTACHMENT10_WEBGL=36074]="COLOR_ATTACHMENT10_WEBGL",e[e.COLOR_ATTACHMENT11_WEBGL=36075]="COLOR_ATTACHMENT11_WEBGL",e[e.COLOR_ATTACHMENT12_WEBGL=36076]="COLOR_ATTACHMENT12_WEBGL",e[e.COLOR_ATTACHMENT13_WEBGL=36077]="COLOR_ATTACHMENT13_WEBGL",e[e.COLOR_ATTACHMENT14_WEBGL=36078]="COLOR_ATTACHMENT14_WEBGL",e[e.COLOR_ATTACHMENT15_WEBGL=36079]="COLOR_ATTACHMENT15_WEBGL",e[e.DRAW_BUFFER0_WEBGL=34853]="DRAW_BUFFER0_WEBGL",e[e.DRAW_BUFFER1_WEBGL=34854]="DRAW_BUFFER1_WEBGL",e[e.DRAW_BUFFER2_WEBGL=34855]="DRAW_BUFFER2_WEBGL",e[e.DRAW_BUFFER3_WEBGL=34856]="DRAW_BUFFER3_WEBGL",e[e.DRAW_BUFFER4_WEBGL=34857]="DRAW_BUFFER4_WEBGL",e[e.DRAW_BUFFER5_WEBGL=34858]="DRAW_BUFFER5_WEBGL",e[e.DRAW_BUFFER6_WEBGL=34859]="DRAW_BUFFER6_WEBGL",e[e.DRAW_BUFFER7_WEBGL=34860]="DRAW_BUFFER7_WEBGL",e[e.DRAW_BUFFER8_WEBGL=34861]="DRAW_BUFFER8_WEBGL",e[e.DRAW_BUFFER9_WEBGL=34862]="DRAW_BUFFER9_WEBGL",e[e.DRAW_BUFFER10_WEBGL=34863]="DRAW_BUFFER10_WEBGL",e[e.DRAW_BUFFER11_WEBGL=34864]="DRAW_BUFFER11_WEBGL",e[e.DRAW_BUFFER12_WEBGL=34865]="DRAW_BUFFER12_WEBGL",e[e.DRAW_BUFFER13_WEBGL=34866]="DRAW_BUFFER13_WEBGL",e[e.DRAW_BUFFER14_WEBGL=34867]="DRAW_BUFFER14_WEBGL",e[e.DRAW_BUFFER15_WEBGL=34868]="DRAW_BUFFER15_WEBGL",e[e.MAX_COLOR_ATTACHMENTS_WEBGL=36063]="MAX_COLOR_ATTACHMENTS_WEBGL",e[e.MAX_DRAW_BUFFERS_WEBGL=34852]="MAX_DRAW_BUFFERS_WEBGL",e[e.VERTEX_ARRAY_BINDING_OES=34229]="VERTEX_ARRAY_BINDING_OES",e[e.QUERY_COUNTER_BITS_EXT=34916]="QUERY_COUNTER_BITS_EXT",e[e.CURRENT_QUERY_EXT=34917]="CURRENT_QUERY_EXT",e[e.QUERY_RESULT_EXT=34918]="QUERY_RESULT_EXT",e[e.QUERY_RESULT_AVAILABLE_EXT=34919]="QUERY_RESULT_AVAILABLE_EXT",e[e.TIME_ELAPSED_EXT=35007]="TIME_ELAPSED_EXT",e[e.TIMESTAMP_EXT=36392]="TIMESTAMP_EXT",e[e.GPU_DISJOINT_EXT=36795]="GPU_DISJOINT_EXT",e}({});var Lr=p(g(),1),Sa="Invalid WebGLRenderingContext";var ga="Requires WebGL2";function Oa(e){return typeof WebGLRenderingContext<"u"&&e instanceof WebGLRenderingContext||typeof WebGL2RenderingContext<"u"&&e instanceof WebGL2RenderingContext?!0:Boolean(e&&Number.isFinite(e._version))}function S(e){return typeof WebGL2RenderingContext<"u"&&e instanceof WebGL2RenderingContext?!0:Boolean(e&&e._version===2)}function Xr(e){return S(e)?e:null}function $n(e){return(0,Lr.assert)(Oa(e),Sa),e}function St(e){return(0,Lr.assert)(S(e),ga),e}var Zn="OES_element_index",qn="WEBGL_draw_buffers",Na="EXT_disjoint_timer_query",ba="EXT_disjoint_timer_query_webgl2",Ia="EXT_texture_filter_anisotropic",Qn="WEBGL_debug_renderer_info",Pa=35723,va=4352,Fa=36795,Ca=34047,Ma=37445,ya=37446,I=e=>S(e)?void 0:0,xa={[i.READ_BUFFER]:e=>S(e)?void 0:i.COLOR_ATTACHMENT0,[Pa]:e=>S(e)?void 0:va,[i.RASTERIZER_DISCARD]:I,[i.SAMPLES]:I,[Fa]:(e,t)=>{let r=S(e)?e.getExtension(ba):e.getExtension(Na);return r&&r.GPU_DISJOINT_EXT?t(r.GPU_DISJOINT_EXT):0},[Ma]:(e,t)=>{let r=e.getExtension(Qn);return t(r&&r.UNMASKED_VENDOR_WEBGL||i.VENDOR)},[ya]:(e,t)=>{let r=e.getExtension(Qn);return t(r&&r.UNMASKED_RENDERER_WEBGL||i.RENDERER)},[Ca]:(e,t)=>{var r;let n=((r=e.luma)===null||r===void 0||(r=r.extensions)===null||r===void 0?void 0:r[Ia])||e.getExtension("EXT_texture_filter_anisotropic");return n?t(n.MAX_TEXTURE_MAX_ANISOTROPY_EXT):1},[i.MAX_3D_TEXTURE_SIZE]:I,[i.MAX_ARRAY_TEXTURE_LAYERS]:I,[i.MAX_CLIENT_WAIT_TIMEOUT_WEBGL]:I,[i.MAX_COLOR_ATTACHMENTS]:(e,t)=>{if(!S(e)){let r=e.getExtension(qn);return r?t(r.MAX_COLOR_ATTACHMENTS_WEBGL):0}},[i.MAX_COMBINED_FRAGMENT_UNIFORM_COMPONENTS]:I,[i.MAX_COMBINED_UNIFORM_BLOCKS]:I,[i.MAX_COMBINED_VERTEX_UNIFORM_COMPONENTS]:I,[i.MAX_DRAW_BUFFERS]:e=>{if(!S(e)){let t=e.getExtension(qn);return t?t.MAX_DRAW_BUFFERS_WEBGL:0}},[i.MAX_ELEMENT_INDEX]:e=>e.getExtension(Zn)?2147483647:65535,[i.MAX_ELEMENTS_INDICES]:e=>e.getExtension(Zn)?16777216:65535,[i.MAX_ELEMENTS_VERTICES]:e=>16777216,[i.MAX_FRAGMENT_INPUT_COMPONENTS]:I,[i.MAX_FRAGMENT_UNIFORM_BLOCKS]:I,[i.MAX_FRAGMENT_UNIFORM_COMPONENTS]:I,[i.MAX_SAMPLES]:I,[i.MAX_SERVER_WAIT_TIMEOUT]:I,[i.MAX_TEXTURE_LOD_BIAS]:I,[i.MAX_TRANSFORM_FEEDBACK_INTERLEAVED_COMPONENTS]:I,[i.MAX_TRANSFORM_FEEDBACK_SEPARATE_ATTRIBS]:I,[i.MAX_TRANSFORM_FEEDBACK_SEPARATE_COMPONENTS]:I,[i.MAX_UNIFORM_BLOCK_SIZE]:I,[i.MAX_UNIFORM_BUFFER_BINDINGS]:I,[i.MAX_VARYING_COMPONENTS]:I,[i.MAX_VERTEX_OUTPUT_COMPONENTS]:I,[i.MAX_VERTEX_UNIFORM_BLOCKS]:I,[i.MAX_VERTEX_UNIFORM_COMPONENTS]:I,[i.MIN_PROGRAM_TEXEL_OFFSET]:I,[i.MAX_PROGRAM_TEXEL_OFFSET]:I,[i.UNIFORM_BUFFER_OFFSET_ALIGNMENT]:I};function Jn(e,t,r){let n=xa[r],o=typeof n=="function"?n(e,t,r):n;return o!==void 0?o:t(r)}function ve(e){if(!e.luma){let r={_polyfilled:!1,_extensions:{}};e.luma=r}return e.luma}var Ba="OES_vertex_array_object",ei="ANGLE_instanced_arrays",Da="WEBGL_draw_buffers",Ua="EXT_disjoint_timer_query",wa="EXT_texture_filter_anisotropic",La="VertexArray requires WebGL2 or OES_vertex_array_object extension";function Xa(e,t){return{webgl2:S(e),ext:e.getExtension(t)}}var Hr={[Ba]:{meta:{suffix:"OES"},createVertexArray:()=>{(0,Se.assert)(!1,La)},deleteVertexArray:()=>{},bindVertexArray:()=>{},isVertexArray:()=>!1},[ei]:{meta:{suffix:"ANGLE"},vertexAttribDivisor(e,t){(0,Se.assert)(t===0,"WebGL instanced rendering not supported")},drawElementsInstanced:()=>{},drawArraysInstanced:()=>{}},[Da]:{meta:{suffix:"WEBGL"},drawBuffers:()=>{(0,Se.assert)(!1)}},[Ua]:{meta:{suffix:"EXT"},createQuery:()=>{(0,Se.assert)(!1)},deleteQuery:()=>{(0,Se.assert)(!1)},beginQuery:()=>{(0,Se.assert)(!1)},endQuery:()=>{},getQuery(e,t){return this.getQueryObject(e,t)},getQueryParameter(e,t){return this.getQueryObject(e,t)},getQueryObject:(e,t)=>{}}},gt={readBuffer:(e,t,r)=>{S(e)&&t(r)},getVertexAttrib:(e,t,r,n)=>{let{webgl2:o,ext:s}=Xa(e,ei),a;switch(n){case i.VERTEX_ATTRIB_ARRAY_INTEGER:a=o?void 0:!1;break;case i.VERTEX_ATTRIB_ARRAY_DIVISOR:a=!o&&!s?0:void 0;break;default:}return a!==void 0?a:t(r,n)},getProgramParameter:(e,t,r,n)=>{if(!S(e))switch(n){case i.TRANSFORM_FEEDBACK_BUFFER_MODE:return i.SEPARATE_ATTRIBS;case i.TRANSFORM_FEEDBACK_VARYINGS:return 0;case i.ACTIVE_UNIFORM_BLOCKS:return 0;default:}return t(r,n)},getInternalformatParameter:(e,t,r,n,o)=>{if(!S(e))switch(o){case i.SAMPLES:return new Int32Array([0]);default:}return e.getInternalformatParameter(r,n,o)},getTexParameter(e,t,r,n){switch(n){case i.TEXTURE_MAX_ANISOTROPY_EXT:let o=ve(e),{_extensions:s}=o,a=s[wa];n=a&&a.TEXTURE_MAX_ANISOTROPY_EXT||i.TEXTURE_MAX_ANISOTROPY_EXT;break;default:}return t(r,n)},getParameter:Jn,hint(e,t,r,n){return t(r,n)}};function ri(e){let t=ve(e);return t._polyfilled||(Gn(e),Ha(e),Va(e,Hr),ka(e,{target:t,target2:e}),t._polyfilled=!0),e}function Ha(e){let t=ve(e),r=e.getSupportedExtensions()||[];for(let n of r){let o=e.getExtension(n);t._extensions[n]=o}}function Va(e,t){let r=ve(e);for(let n of Object.getOwnPropertyNames(t))n!=="overrides"&&Wa(e,{extension:n,target:r,target2:e})}function Wa(e,t){let{extension:r,target:n,target2:o}=t,s=Hr[r];(0,ti.assert)(s);let{meta:a={}}=s,{suffix:_=""}=a,f=e.getExtension(r);for(let u of Object.keys(s)){let l=`${u}${_}`,c=null;u==="meta"||typeof e[u]=="function"||(f&&typeof f[l]=="function"?c=function(){return f[l](...arguments)}:typeof s[u]=="function"&&(c=s[u].bind(n))),c&&(n[u]=c,o[u]=c)}}function ka(e,t){let{target:r,target2:n}=t;Object.keys(gt).forEach(o=>{if(typeof gt[o]=="function"){let s=e[o]?e[o].bind(e):()=>{},a=gt[o].bind(null,e,s);r[o]=a,n[o]=a}})}var $e=p(g(),1);var Ot={[i.BLEND]:!1,[i.BLEND_COLOR]:new Float32Array([0,0,0,0]),[i.BLEND_EQUATION_RGB]:i.FUNC_ADD,[i.BLEND_EQUATION_ALPHA]:i.FUNC_ADD,[i.BLEND_SRC_RGB]:i.ONE,[i.BLEND_DST_RGB]:i.ZERO,[i.BLEND_SRC_ALPHA]:i.ONE,[i.BLEND_DST_ALPHA]:i.ZERO,[i.COLOR_CLEAR_VALUE]:new Float32Array([0,0,0,0]),[i.COLOR_WRITEMASK]:[!0,!0,!0,!0],[i.CULL_FACE]:!1,[i.CULL_FACE_MODE]:i.BACK,[i.DEPTH_TEST]:!1,[i.DEPTH_CLEAR_VALUE]:1,[i.DEPTH_FUNC]:i.LESS,[i.DEPTH_RANGE]:new Float32Array([0,1]),[i.DEPTH_WRITEMASK]:!0,[i.DITHER]:!0,[i.CURRENT_PROGRAM]:null,[i.FRAMEBUFFER_BINDING]:null,[i.RENDERBUFFER_BINDING]:null,[i.VERTEX_ARRAY_BINDING]:null,[i.ARRAY_BUFFER_BINDING]:null,[i.FRONT_FACE]:i.CCW,[i.GENERATE_MIPMAP_HINT]:i.DONT_CARE,[i.LINE_WIDTH]:1,[i.POLYGON_OFFSET_FILL]:!1,[i.POLYGON_OFFSET_FACTOR]:0,[i.POLYGON_OFFSET_UNITS]:0,[i.SAMPLE_ALPHA_TO_COVERAGE]:!1,[i.SAMPLE_COVERAGE]:!1,[i.SAMPLE_COVERAGE_VALUE]:1,[i.SAMPLE_COVERAGE_INVERT]:!1,[i.SCISSOR_TEST]:!1,[i.SCISSOR_BOX]:new Int32Array([0,0,1024,1024]),[i.STENCIL_TEST]:!1,[i.STENCIL_CLEAR_VALUE]:0,[i.STENCIL_WRITEMASK]:4294967295,[i.STENCIL_BACK_WRITEMASK]:4294967295,[i.STENCIL_FUNC]:i.ALWAYS,[i.STENCIL_REF]:0,[i.STENCIL_VALUE_MASK]:4294967295,[i.STENCIL_BACK_FUNC]:i.ALWAYS,[i.STENCIL_BACK_REF]:0,[i.STENCIL_BACK_VALUE_MASK]:4294967295,[i.STENCIL_FAIL]:i.KEEP,[i.STENCIL_PASS_DEPTH_FAIL]:i.KEEP,[i.STENCIL_PASS_DEPTH_PASS]:i.KEEP,[i.STENCIL_BACK_FAIL]:i.KEEP,[i.STENCIL_BACK_PASS_DEPTH_FAIL]:i.KEEP,[i.STENCIL_BACK_PASS_DEPTH_PASS]:i.KEEP,[i.VIEWPORT]:[0,0,1024,1024],[i.PACK_ALIGNMENT]:4,[i.UNPACK_ALIGNMENT]:4,[i.UNPACK_FLIP_Y_WEBGL]:!1,[i.UNPACK_PREMULTIPLY_ALPHA_WEBGL]:!1,[i.UNPACK_COLORSPACE_CONVERSION_WEBGL]:i.BROWSER_DEFAULT_WEBGL,[i.TRANSFORM_FEEDBACK_BINDING]:null,[i.COPY_READ_BUFFER_BINDING]:null,[i.COPY_WRITE_BUFFER_BINDING]:null,[i.PIXEL_PACK_BUFFER_BINDING]:null,[i.PIXEL_UNPACK_BUFFER_BINDING]:null,[i.FRAGMENT_SHADER_DERIVATIVE_HINT]:i.DONT_CARE,[i.READ_FRAMEBUFFER_BINDING]:null,[i.RASTERIZER_DISCARD]:!1,[i.PACK_ROW_LENGTH]:0,[i.PACK_SKIP_PIXELS]:0,[i.PACK_SKIP_ROWS]:0,[i.UNPACK_ROW_LENGTH]:0,[i.UNPACK_IMAGE_HEIGHT]:0,[i.UNPACK_SKIP_PIXELS]:0,[i.UNPACK_SKIP_ROWS]:0,[i.UNPACK_SKIP_IMAGES]:0},J=(e,t,r)=>t?e.enable(r):e.disable(r),ni=(e,t,r)=>e.hint(r,t),H=(e,t,r)=>e.pixelStorei(r,t),ii=(e,t,r)=>{let n;return r===i.FRAMEBUFFER_BINDING?n=S(e)?i.DRAW_FRAMEBUFFER:i.FRAMEBUFFER:n=i.READ_FRAMEBUFFER,e.bindFramebuffer(n,t)},Ge=(e,t,r)=>{let o={[i.ARRAY_BUFFER_BINDING]:i.ARRAY_BUFFER,[i.COPY_READ_BUFFER_BINDING]:i.COPY_READ_BUFFER,[i.COPY_WRITE_BUFFER_BINDING]:i.COPY_WRITE_BUFFER,[i.PIXEL_PACK_BUFFER_BINDING]:i.PIXEL_PACK_BUFFER,[i.PIXEL_UNPACK_BUFFER_BINDING]:i.PIXEL_UNPACK_BUFFER}[r];e.bindBuffer(o,t)};function Vr(e){return Array.isArray(e)||ArrayBuffer.isView(e)&&!(e instanceof DataView)}var oi={[i.BLEND]:J,[i.BLEND_COLOR]:(e,t)=>e.blendColor(...t),[i.BLEND_EQUATION_RGB]:"blendEquation",[i.BLEND_EQUATION_ALPHA]:"blendEquation",[i.BLEND_SRC_RGB]:"blendFunc",[i.BLEND_DST_RGB]:"blendFunc",[i.BLEND_SRC_ALPHA]:"blendFunc",[i.BLEND_DST_ALPHA]:"blendFunc",[i.COLOR_CLEAR_VALUE]:(e,t)=>e.clearColor(...t),[i.COLOR_WRITEMASK]:(e,t)=>e.colorMask(...t),[i.CULL_FACE]:J,[i.CULL_FACE_MODE]:(e,t)=>e.cullFace(t),[i.DEPTH_TEST]:J,[i.DEPTH_CLEAR_VALUE]:(e,t)=>e.clearDepth(t),[i.DEPTH_FUNC]:(e,t)=>e.depthFunc(t),[i.DEPTH_RANGE]:(e,t)=>e.depthRange(...t),[i.DEPTH_WRITEMASK]:(e,t)=>e.depthMask(t),[i.DITHER]:J,[i.FRAGMENT_SHADER_DERIVATIVE_HINT]:ni,[i.CURRENT_PROGRAM]:(e,t)=>e.useProgram(t),[i.RENDERBUFFER_BINDING]:(e,t)=>e.bindRenderbuffer(i.RENDERBUFFER,t),[i.TRANSFORM_FEEDBACK_BINDING]:(e,t)=>{var r,n;return(r=(n=e).bindTransformFeedback)===null||r===void 0?void 0:r.call(n,i.TRANSFORM_FEEDBACK,t)},[i.VERTEX_ARRAY_BINDING]:(e,t)=>e.bindVertexArray(t),[i.FRAMEBUFFER_BINDING]:ii,[i.READ_FRAMEBUFFER_BINDING]:ii,[i.ARRAY_BUFFER_BINDING]:Ge,[i.COPY_READ_BUFFER_BINDING]:Ge,[i.COPY_WRITE_BUFFER_BINDING]:Ge,[i.PIXEL_PACK_BUFFER_BINDING]:Ge,[i.PIXEL_UNPACK_BUFFER_BINDING]:Ge,[i.FRONT_FACE]:(e,t)=>e.frontFace(t),[i.GENERATE_MIPMAP_HINT]:ni,[i.LINE_WIDTH]:(e,t)=>e.lineWidth(t),[i.POLYGON_OFFSET_FILL]:J,[i.POLYGON_OFFSET_FACTOR]:"polygonOffset",[i.POLYGON_OFFSET_UNITS]:"polygonOffset",[i.RASTERIZER_DISCARD]:J,[i.SAMPLE_ALPHA_TO_COVERAGE]:J,[i.SAMPLE_COVERAGE]:J,[i.SAMPLE_COVERAGE_VALUE]:"sampleCoverage",[i.SAMPLE_COVERAGE_INVERT]:"sampleCoverage",[i.SCISSOR_TEST]:J,[i.SCISSOR_BOX]:(e,t)=>e.scissor(...t),[i.STENCIL_TEST]:J,[i.STENCIL_CLEAR_VALUE]:(e,t)=>e.clearStencil(t),[i.STENCIL_WRITEMASK]:(e,t)=>e.stencilMaskSeparate(i.FRONT,t),[i.STENCIL_BACK_WRITEMASK]:(e,t)=>e.stencilMaskSeparate(i.BACK,t),[i.STENCIL_FUNC]:"stencilFuncFront",[i.STENCIL_REF]:"stencilFuncFront",[i.STENCIL_VALUE_MASK]:"stencilFuncFront",[i.STENCIL_BACK_FUNC]:"stencilFuncBack",[i.STENCIL_BACK_REF]:"stencilFuncBack",[i.STENCIL_BACK_VALUE_MASK]:"stencilFuncBack",[i.STENCIL_FAIL]:"stencilOpFront",[i.STENCIL_PASS_DEPTH_FAIL]:"stencilOpFront",[i.STENCIL_PASS_DEPTH_PASS]:"stencilOpFront",[i.STENCIL_BACK_FAIL]:"stencilOpBack",[i.STENCIL_BACK_PASS_DEPTH_FAIL]:"stencilOpBack",[i.STENCIL_BACK_PASS_DEPTH_PASS]:"stencilOpBack",[i.VIEWPORT]:(e,t)=>e.viewport(...t),[i.PACK_ALIGNMENT]:H,[i.UNPACK_ALIGNMENT]:H,[i.UNPACK_FLIP_Y_WEBGL]:H,[i.UNPACK_PREMULTIPLY_ALPHA_WEBGL]:H,[i.UNPACK_COLORSPACE_CONVERSION_WEBGL]:H,[i.PACK_ROW_LENGTH]:H,[i.PACK_SKIP_PIXELS]:H,[i.PACK_SKIP_ROWS]:H,[i.UNPACK_ROW_LENGTH]:H,[i.UNPACK_IMAGE_HEIGHT]:H,[i.UNPACK_SKIP_PIXELS]:H,[i.UNPACK_SKIP_ROWS]:H,[i.UNPACK_SKIP_IMAGES]:H,framebuffer:(e,t)=>{let r=t&&"handle"in t?t.handle:t;return e.bindFramebuffer(i.FRAMEBUFFER,r)},blend:(e,t)=>t?e.enable(i.BLEND):e.disable(i.BLEND),blendColor:(e,t)=>e.blendColor(...t),blendEquation:(e,t)=>{let r=typeof t=="number"?[t,t]:t;e.blendEquationSeparate(...r)},blendFunc:(e,t)=>{let r=t?.length===2?[...t,...t]:t;e.blendFuncSeparate(...r)},clearColor:(e,t)=>e.clearColor(...t),clearDepth:(e,t)=>e.clearDepth(t),clearStencil:(e,t)=>e.clearStencil(t),colorMask:(e,t)=>e.colorMask(...t),cull:(e,t)=>t?e.enable(i.CULL_FACE):e.disable(i.CULL_FACE),cullFace:(e,t)=>e.cullFace(t),depthTest:(e,t)=>t?e.enable(i.DEPTH_TEST):e.disable(i.DEPTH_TEST),depthFunc:(e,t)=>e.depthFunc(t),depthMask:(e,t)=>e.depthMask(t),depthRange:(e,t)=>e.depthRange(...t),dither:(e,t)=>t?e.enable(i.DITHER):e.disable(i.DITHER),derivativeHint:(e,t)=>{e.hint(i.FRAGMENT_SHADER_DERIVATIVE_HINT,t)},frontFace:(e,t)=>e.frontFace(t),mipmapHint:(e,t)=>e.hint(i.GENERATE_MIPMAP_HINT,t),lineWidth:(e,t)=>e.lineWidth(t),polygonOffsetFill:(e,t)=>t?e.enable(i.POLYGON_OFFSET_FILL):e.disable(i.POLYGON_OFFSET_FILL),polygonOffset:(e,t)=>e.polygonOffset(...t),sampleCoverage:(e,t)=>e.sampleCoverage(...t),scissorTest:(e,t)=>t?e.enable(i.SCISSOR_TEST):e.disable(i.SCISSOR_TEST),scissor:(e,t)=>e.scissor(...t),stencilTest:(e,t)=>t?e.enable(i.STENCIL_TEST):e.disable(i.STENCIL_TEST),stencilMask:(e,t)=>{t=Vr(t)?t:[t,t];let[r,n]=t;e.stencilMaskSeparate(i.FRONT,r),e.stencilMaskSeparate(i.BACK,n)},stencilFunc:(e,t)=>{t=Vr(t)&&t.length===3?[...t,...t]:t;let[r,n,o,s,a,_]=t;e.stencilFuncSeparate(i.FRONT,r,n,o),e.stencilFuncSeparate(i.BACK,s,a,_)},stencilOp:(e,t)=>{t=Vr(t)&&t.length===3?[...t,...t]:t;let[r,n,o,s,a,_]=t;e.stencilOpSeparate(i.FRONT,r,n,o),e.stencilOpSeparate(i.BACK,s,a,_)},viewport:(e,t)=>e.viewport(...t)};function v(e,t,r){return t[e]!==void 0?t[e]:r[e]}var si={blendEquation:(e,t,r)=>e.blendEquationSeparate(v(i.BLEND_EQUATION_RGB,t,r),v(i.BLEND_EQUATION_ALPHA,t,r)),blendFunc:(e,t,r)=>e.blendFuncSeparate(v(i.BLEND_SRC_RGB,t,r),v(i.BLEND_DST_RGB,t,r),v(i.BLEND_SRC_ALPHA,t,r),v(i.BLEND_DST_ALPHA,t,r)),polygonOffset:(e,t,r)=>e.polygonOffset(v(i.POLYGON_OFFSET_FACTOR,t,r),v(i.POLYGON_OFFSET_UNITS,t,r)),sampleCoverage:(e,t,r)=>e.sampleCoverage(v(i.SAMPLE_COVERAGE_VALUE,t,r),v(i.SAMPLE_COVERAGE_INVERT,t,r)),stencilFuncFront:(e,t,r)=>e.stencilFuncSeparate(i.FRONT,v(i.STENCIL_FUNC,t,r),v(i.STENCIL_REF,t,r),v(i.STENCIL_VALUE_MASK,t,r)),stencilFuncBack:(e,t,r)=>e.stencilFuncSeparate(i.BACK,v(i.STENCIL_BACK_FUNC,t,r),v(i.STENCIL_BACK_REF,t,r),v(i.STENCIL_BACK_VALUE_MASK,t,r)),stencilOpFront:(e,t,r)=>e.stencilOpSeparate(i.FRONT,v(i.STENCIL_FAIL,t,r),v(i.STENCIL_PASS_DEPTH_FAIL,t,r),v(i.STENCIL_PASS_DEPTH_PASS,t,r)),stencilOpBack:(e,t,r)=>e.stencilOpSeparate(i.BACK,v(i.STENCIL_BACK_FAIL,t,r),v(i.STENCIL_BACK_PASS_DEPTH_FAIL,t,r),v(i.STENCIL_BACK_PASS_DEPTH_PASS,t,r))},Wr={enable:(e,t)=>e({[t]:!0}),disable:(e,t)=>e({[t]:!1}),pixelStorei:(e,t,r)=>e({[t]:r}),hint:(e,t,r)=>e({[t]:r}),useProgram:(e,t)=>e({[i.CURRENT_PROGRAM]:t}),bindRenderbuffer:(e,t,r)=>e({[i.RENDERBUFFER_BINDING]:r}),bindTransformFeedback:(e,t,r)=>e({[i.TRANSFORM_FEEDBACK_BINDING]:r}),bindVertexArray:(e,t)=>e({[i.VERTEX_ARRAY_BINDING]:t}),bindFramebuffer:(e,t,r)=>{switch(t){case i.FRAMEBUFFER:return e({[i.DRAW_FRAMEBUFFER_BINDING]:r,[i.READ_FRAMEBUFFER_BINDING]:r});case i.DRAW_FRAMEBUFFER:return e({[i.DRAW_FRAMEBUFFER_BINDING]:r});case i.READ_FRAMEBUFFER:return e({[i.READ_FRAMEBUFFER_BINDING]:r});default:return null}},bindBuffer:(e,t,r)=>{let n={[i.ARRAY_BUFFER]:[i.ARRAY_BUFFER_BINDING],[i.COPY_READ_BUFFER]:[i.COPY_READ_BUFFER_BINDING],[i.COPY_WRITE_BUFFER]:[i.COPY_WRITE_BUFFER_BINDING],[i.PIXEL_PACK_BUFFER]:[i.PIXEL_PACK_BUFFER_BINDING],[i.PIXEL_UNPACK_BUFFER]:[i.PIXEL_UNPACK_BUFFER_BINDING]}[t];return n?e({[n]:r}):{valueChanged:!0}},blendColor:(e,t,r,n,o)=>e({[i.BLEND_COLOR]:new Float32Array([t,r,n,o])}),blendEquation:(e,t)=>e({[i.BLEND_EQUATION_RGB]:t,[i.BLEND_EQUATION_ALPHA]:t}),blendEquationSeparate:(e,t,r)=>e({[i.BLEND_EQUATION_RGB]:t,[i.BLEND_EQUATION_ALPHA]:r}),blendFunc:(e,t,r)=>e({[i.BLEND_SRC_RGB]:t,[i.BLEND_DST_RGB]:r,[i.BLEND_SRC_ALPHA]:t,[i.BLEND_DST_ALPHA]:r}),blendFuncSeparate:(e,t,r,n,o)=>e({[i.BLEND_SRC_RGB]:t,[i.BLEND_DST_RGB]:r,[i.BLEND_SRC_ALPHA]:n,[i.BLEND_DST_ALPHA]:o}),clearColor:(e,t,r,n,o)=>e({[i.COLOR_CLEAR_VALUE]:new Float32Array([t,r,n,o])}),clearDepth:(e,t)=>e({[i.DEPTH_CLEAR_VALUE]:t}),clearStencil:(e,t)=>e({[i.STENCIL_CLEAR_VALUE]:t}),colorMask:(e,t,r,n,o)=>e({[i.COLOR_WRITEMASK]:[t,r,n,o]}),cullFace:(e,t)=>e({[i.CULL_FACE_MODE]:t}),depthFunc:(e,t)=>e({[i.DEPTH_FUNC]:t}),depthRange:(e,t,r)=>e({[i.DEPTH_RANGE]:new Float32Array([t,r])}),depthMask:(e,t)=>e({[i.DEPTH_WRITEMASK]:t}),frontFace:(e,t)=>e({[i.FRONT_FACE]:t}),lineWidth:(e,t)=>e({[i.LINE_WIDTH]:t}),polygonOffset:(e,t,r)=>e({[i.POLYGON_OFFSET_FACTOR]:t,[i.POLYGON_OFFSET_UNITS]:r}),sampleCoverage:(e,t,r)=>e({[i.SAMPLE_COVERAGE_VALUE]:t,[i.SAMPLE_COVERAGE_INVERT]:r}),scissor:(e,t,r,n,o)=>e({[i.SCISSOR_BOX]:new Int32Array([t,r,n,o])}),stencilMask:(e,t)=>e({[i.STENCIL_WRITEMASK]:t,[i.STENCIL_BACK_WRITEMASK]:t}),stencilMaskSeparate:(e,t,r)=>e({[t===i.FRONT?i.STENCIL_WRITEMASK:i.STENCIL_BACK_WRITEMASK]:r}),stencilFunc:(e,t,r,n)=>e({[i.STENCIL_FUNC]:t,[i.STENCIL_REF]:r,[i.STENCIL_VALUE_MASK]:n,[i.STENCIL_BACK_FUNC]:t,[i.STENCIL_BACK_REF]:r,[i.STENCIL_BACK_VALUE_MASK]:n}),stencilFuncSeparate:(e,t,r,n,o)=>e({[t===i.FRONT?i.STENCIL_FUNC:i.STENCIL_BACK_FUNC]:r,[t===i.FRONT?i.STENCIL_REF:i.STENCIL_BACK_REF]:n,[t===i.FRONT?i.STENCIL_VALUE_MASK:i.STENCIL_BACK_VALUE_MASK]:o}),stencilOp:(e,t,r,n)=>e({[i.STENCIL_FAIL]:t,[i.STENCIL_PASS_DEPTH_FAIL]:r,[i.STENCIL_PASS_DEPTH_PASS]:n,[i.STENCIL_BACK_FAIL]:t,[i.STENCIL_BACK_PASS_DEPTH_FAIL]:r,[i.STENCIL_BACK_PASS_DEPTH_PASS]:n}),stencilOpSeparate:(e,t,r,n,o)=>e({[t===i.FRONT?i.STENCIL_FAIL:i.STENCIL_BACK_FAIL]:r,[t===i.FRONT?i.STENCIL_PASS_DEPTH_FAIL:i.STENCIL_BACK_PASS_DEPTH_FAIL]:n,[t===i.FRONT?i.STENCIL_PASS_DEPTH_PASS:i.STENCIL_BACK_PASS_DEPTH_PASS]:o}),viewport:(e,t,r,n,o)=>e({[i.VIEWPORT]:[t,r,n,o]})},ee=(e,t)=>e.isEnabled(t),kr={[i.BLEND]:ee,[i.CULL_FACE]:ee,[i.DEPTH_TEST]:ee,[i.DITHER]:ee,[i.POLYGON_OFFSET_FILL]:ee,[i.SAMPLE_ALPHA_TO_COVERAGE]:ee,[i.SAMPLE_COVERAGE]:ee,[i.SCISSOR_TEST]:ee,[i.STENCIL_TEST]:ee,[i.RASTERIZER_DISCARD]:ee},ai=new Set([i.ACTIVE_TEXTURE,i.TRANSFORM_FEEDBACK_ACTIVE,i.TRANSFORM_FEEDBACK_PAUSED,i.TRANSFORM_FEEDBACK_BUFFER_BINDING,i.UNIFORM_BUFFER_BINDING,i.ELEMENT_ARRAY_BUFFER_BINDING,i.IMPLEMENTATION_COLOR_READ_FORMAT,i.IMPLEMENTATION_COLOR_READ_TYPE,i.READ_BUFFER,i.DRAW_BUFFER0,i.DRAW_BUFFER1,i.DRAW_BUFFER2,i.DRAW_BUFFER3,i.DRAW_BUFFER4,i.DRAW_BUFFER5,i.DRAW_BUFFER6,i.DRAW_BUFFER7,i.DRAW_BUFFER8,i.DRAW_BUFFER9,i.DRAW_BUFFER10,i.DRAW_BUFFER11,i.DRAW_BUFFER12,i.DRAW_BUFFER13,i.DRAW_BUFFER14,i.DRAW_BUFFER15,i.SAMPLER_BINDING,i.TEXTURE_BINDING_2D,i.TEXTURE_BINDING_2D_ARRAY,i.TEXTURE_BINDING_3D,i.TEXTURE_BINDING_CUBE_MAP]);function ce(e,t){let n=M.attach(e).gl;if(Ka(t))return;let o={};for(let a in t){let _=Number(a),f=oi[a];f&&(typeof f=="string"?o[f]=!0:f(n,t[a],_))}let s=n.state&&n.state.cache;if(s)for(let a in o){let _=si[a];_(n,t,s)}}function _i(e){let t=arguments.length>1&&arguments[1]!==void 0?arguments[1]:Ot,n=M.attach(e).gl;if(typeof t=="number"){let a=t,_=kr[a];return _?_(n,a):n.getParameter(a)}let o=Array.isArray(t)?t:Object.keys(t),s={};for(let a of o){let _=kr[a];s[a]=_?_(n,Number(a)):n.getParameter(Number(a))}return s}function Ka(e){for(let t in e)return!1;return!0}function fi(e,t){if(e===t)return!0;let r=Array.isArray(e)||ArrayBuffer.isView(e),n=Array.isArray(t)||ArrayBuffer.isView(t);if(r&&n&&e.length===t.length){for(let o=0;o<e.length;++o)if(e[o]!==t[o])return!1;return!0}return!1}var Kr=class{constructor(t){let{copyState:r=!1,log:n=()=>{}}=arguments.length>1&&arguments[1]!==void 0?arguments[1]:{};this.gl=void 0,this.program=null,this.stateStack=[],this.enable=!0,this.cache=void 0,this.log=void 0,this.gl=t,this.cache=r?_i(t):Object.assign({},Ot),this.log=n,this._updateCache=this._updateCache.bind(this),Object.seal(this)}push(){let t=arguments.length>0&&arguments[0]!==void 0?arguments[0]:{};this.stateStack.push({})}pop(){(0,$e.assert)(this.stateStack.length>0);let t=this.stateStack[this.stateStack.length-1];ce(this.gl,t),this.stateStack.pop()}_updateCache(t){let r=!1,n,o=this.stateStack.length>0?this.stateStack[this.stateStack.length-1]:null;for(let s in t){(0,$e.assert)(s!==void 0);let a=t[s],_=this.cache[s];fi(a,_)||(r=!0,n=_,o&&!(s in o)&&(o[s]=_),this.cache[s]=a)}return{valueChanged:r,oldValue:n}}};function ge(e){return e.state}function jr(e,t){let{enable:r=!0,copyState:n}=t;if((0,$e.assert)(n!==void 0),!e.state){e.state=new Kr(e,{copyState:n}),Ya(e);for(let s in Wr){let a=Wr[s];ja(e,s,a)}ui(e,"getParameter"),ui(e,"isEnabled")}let o=ge(e);return o.enable=r,e}function Fe(e){let t=ge(e);t||(jr(e,{copyState:!1}),t=ge(e)),t.push()}function Oe(e){let t=ge(e);(0,$e.assert)(t),t.pop()}function ui(e,t){let r=e[t].bind(e);e[t]=function(o){if(o===void 0||ai.has(o))return r(o);let s=ge(e);return o in s.cache||(s.cache[o]=r(o)),s.enable?s.cache[o]:r(o)},Object.defineProperty(e[t],"name",{value:`${t}-from-cache`,configurable:!1})}function ja(e,t,r){if(!e[t])return;let n=e[t].bind(e);e[t]=function(){let s=ge(e);for(var a=arguments.length,_=new Array(a),f=0;f<a;f++)_[f]=arguments[f];let{valueChanged:u,oldValue:l}=r(s._updateCache,..._);return u&&n(..._),l},Object.defineProperty(e[t],"name",{value:`${t}-to-cache`,configurable:!1})}function Ya(e){let t=e.useProgram.bind(e);e.useProgram=function(n){let o=ge(e);o.program!==n&&(t(n),o.program=n)}}var za={webgl2:!0,webgl1:!0,powerPreference:"high-performance",onContextLost:()=>console.error("WebGL context lost"),onContextRestored:()=>console.info("WebGL context restored")};function li(e,t){t={...za,...t};let r=null,n=s=>r=s.statusMessage||r;e.addEventListener("webglcontextcreationerror",n,!1);let o=null;if(t.type==="webgl2"&&(t={...t,webgl1:!1}),t.type==="webgl1"&&(t={...t,webgl2:!1}),!o&&t.webgl2&&(o=e.getContext("webgl2",t)),!o&&t.webgl1&&(o=e.getContext("webgl",t)),e.removeEventListener("webglcontextcreationerror",n,!1),!o)throw new Error(`Failed to create ${t.webgl2&&!t.webgl1?"WebGL2":"WebGL"} context: ${r||"Unknown error"}`);if(t.onContextLost){let{onContextLost:s}=t;e.addEventListener("webglcontextlost",a=>s(a),!1)}if(t.onContextRestored){let{onContextRestored:s}=t;e.addEventListener("webglcontextrestored",a=>s(a),!1)}return o}function ci(e){let t=e.getParameter(i.VENDOR),r=e.getParameter(i.RENDERER),n=e.getExtension("WEBGL_debug_renderer_info"),o=e.getParameter(n?n.UNMASKED_VENDOR_WEBGL:i.VENDOR),s=e.getParameter(n?n.UNMASKED_RENDERER_WEBGL:i.RENDERER),f=Ga(o||t,s||r);return{type:S(e)?"webgl2":"webgl",gpu:f,vendor:o||t,renderer:s||r,version:e.getParameter(i.VERSION),shadingLanguages:["glsl"],shadingLanguageVersions:{glsl:e.getParameter(i.SHADING_LANGUAGE_VERSION)}}}function Ga(e,t){return/NVIDIA/i.exec(e)||/NVIDIA/i.exec(t)?"nvidia":/INTEL/i.exec(e)||/INTEL/i.exec(t)?"intel":/Apple/i.exec(e)||/Apple/i.exec(t)?"apple":/AMD/i.exec(e)||/AMD/i.exec(t)||/ATI/i.exec(e)||/ATI/i.exec(t)?"amd":/SwiftShader/i.exec(e)||/SwiftShader/i.exec(t)?"software":"unknown"}function Ei(){let e=arguments.length>0&&arguments[0]!==void 0?arguments[0]:{},t=typeof window<"u"?window.navigator||{}:{},r=e.userAgent||t.userAgent||"",n=r.indexOf("MSIE ")!==-1,o=r.indexOf("Trident/")!==-1;return n||o}var Gr=p(g(),1);function Nt(e){switch(e){case"uint8":return i.UNSIGNED_BYTE;case"sint8":return i.BYTE;case"unorm8":return i.UNSIGNED_BYTE;case"snorm8":return i.BYTE;case"uint16":return i.UNSIGNED_SHORT;case"sint16":return i.SHORT;case"unorm16":return i.UNSIGNED_SHORT;case"snorm16":return i.SHORT;case"uint32":return i.UNSIGNED_INT;case"sint32":return i.INT;case"float16":return i.HALF_FLOAT;case"float32":return i.FLOAT}throw new Error(String(e))}var U="texture-compression-bc",O="texture-compression-astc",te="texture-compression-etc2",$a="texture-compression-etc1-webgl",bt="texture-compression-pvrtc-webgl",Yr="texture-compression-atc-webgl",Ze="WEBGL_compressed_texture_s3tc",qe="WEBGL_compressed_texture_s3tc_srgb",Ce="EXT_texture_compression_rgtc",Qe="EXT_texture_compression_bptc",Za="WEBGL_compressed_texture_etc",qa="WEBGL_compressed_texture_astc",Qa="WEBGL_compressed_texture_etc1",Ja="WEBGL_compressed_texture_pvrtc",e_="WEBGL_compressed_texture_atc",di="EXT_sRGB",se="EXT_texture_norm16",t_="WEBGL_color_buffer_float",r_="EXT_color_buffer_float",z=(e,t)=>e.getExtension(t),Ne=(e,t)=>t.every(r=>e.getExtension(r)),zr={"texture-blend-float-webgl1":e=>S(e)?!0:z(e,"EXT_float_blend"),"texture-formats-srgb-webgl1":e=>S(e)?!0:z(e,di),"texture-formats-depth-webgl1":e=>S(e)?!0:z(e,"WEBGL_depth_texture"),"texture-formats-float32-webgl1":e=>S(e)?!0:z(e,"OES_texture_float"),"texture-formats-float16-webgl1":e=>S(e)?!0:z(e,"OES_texture_half_float"),"texture-formats-norm16-webgl":e=>S(e)?z(e,se):!1,"texture-filter-linear-float32-webgl":e=>z(e,"OES_texture_float_linear"),"texture-filter-linear-float16-webgl":e=>z(e,"OES_texture_half_float_linear"),"texture-filter-anisotropic-webgl":e=>z(e,"EXT_texture_filter_anisotropic"),"texture-renderable-float32-webgl":e=>z(e,"EXT_color_buffer_float"),"texture-renderable-float16-webgl":e=>z(e,"EXT_color_buffer_half_float"),"texture-compression-bc":e=>Ne(e,[Ze,qe,Ce,Qe]),"texture-compression-bc5-webgl":e=>Ne(e,[Ce]),"texture-compression-etc2":e=>Ne(e,[Za]),"texture-compression-astc":e=>Ne(e,[qa]),"texture-compression-etc1-webgl":e=>Ne(e,[Qa]),"texture-compression-pvrtc-webgl":e=>Ne(e,[Ja]),"texture-compression-atc-webgl":e=>Ne(e,[e_])};function n_(e,t){var r;return((r=zr[t])===null||r===void 0?void 0:r.call(zr,e))||!1}function Ri(e){return Object.keys(zr).filter(r=>n_(e,r))}var Je={"rgb8unorm-unsized":{gl:i.RGB,gl1:i.RGB,b:4,c:2,bpp:4,dataFormat:i.RGB,types:[i.UNSIGNED_BYTE,i.UNSIGNED_SHORT_5_6_5]},"rgba8unorm-unsized":{gl:i.RGBA,gl1:i.RGBA,b:4,c:2,bpp:4,dataFormat:i.RGBA,types:[i.UNSIGNED_BYTE,i.UNSIGNED_SHORT_4_4_4_4,i.UNSIGNED_SHORT_5_5_5_1]},r8unorm:{gl:i.R8,b:1,c:1,renderbuffer:!0},r8snorm:{gl:i.R8_SNORM,b:1,c:1},r8uint:{gl:i.R8UI,b:1,c:1,renderbuffer:!0},r8sint:{gl:i.R8I,b:1,c:1,renderbuffer:!0},rg8unorm:{gl:i.RG8,b:2,c:2,renderbuffer:!0},rg8snorm:{gl:i.RG8_SNORM,b:2,c:2},rg8uint:{gl:i.RG8UI,b:2,c:2,renderbuffer:!0},rg8sint:{gl:i.RG8I,b:2,c:2,renderbuffer:!0},r16uint:{gl:i.R16UI,b:2,c:1,renderbuffer:!0},r16sint:{gl:i.R16I,b:2,c:1,renderbuffer:!0},r16float:{gl:i.R16F,b:2,c:1,render:"texture-renderable-float16-webgl",filter:"texture-filter-linear-float16-webgl",renderbuffer:!0},"r16unorm-webgl":{gl:i.R16_EXT,b:2,c:1,f:"texture-formats-norm16-webgl",renderbuffer:!0,x:se},"r16snorm-webgl":{gl:i.R16_SNORM_EXT,b:2,c:1,f:"texture-formats-norm16-webgl",x:se},"rgba4unorm-webgl":{gl:i.RGBA4,b:2,c:4,wgpu:!1,renderbuffer:!0},"rgb565unorm-webgl":{gl:i.RGB565,b:2,c:4,wgpu:!1,renderbuffer:!0},"rgb5a1unorm-webgl":{gl:i.RGB5_A1,b:2,c:4,wgpu:!1,renderbuffer:!0},"rgb8unorm-webgl":{gl:i.RGB8,b:3,c:3,wgpu:!1},"rgb8snorm-webgl":{gl:i.RGB8_SNORM,b:3,c:3,wgpu:!1},rgba8unorm:{gl:i.RGBA8,gl1:i.RGBA,b:4,c:2,bpp:4},"rgba8unorm-srgb":{gl:i.SRGB8_ALPHA8,gl1:i.SRGB_ALPHA_EXT,b:4,c:4,gl1ext:di,bpp:4},rgba8snorm:{gl:i.RGBA8_SNORM,b:4,c:4},rgba8uint:{gl:i.RGBA8UI,b:4,c:4,bpp:4},rgba8sint:{gl:i.RGBA8I,b:4,c:4,bpp:4},bgra8unorm:{b:4,c:4},"bgra8unorm-srgb":{b:4,c:4},rg16uint:{gl:i.RG16UI,b:4,c:1,bpp:4},rg16sint:{gl:i.RG16I,b:4,c:2,bpp:4},rg16float:{gl:i.RG16F,bpp:4,b:4,c:2,render:"texture-renderable-float16-webgl",filter:"texture-filter-linear-float16-webgl",renderbuffer:!0},"rg16unorm-webgl":{gl:i.RG16_EXT,b:2,c:2,f:"texture-formats-norm16-webgl",x:se},"rg16snorm-webgl":{gl:i.RG16_SNORM_EXT,b:2,c:2,f:"texture-formats-norm16-webgl",x:se},r32uint:{gl:i.R32UI,b:4,c:1,bpp:4,renderbuffer:!0},r32sint:{gl:i.R32I,b:4,c:1,bpp:4,renderbuffer:!0},r32float:{gl:i.R32F,bpp:4,b:4,c:1,render:"texture-renderable-float32-webgl",filter:"texture-filter-linear-float32-webgl"},rgb9e5ufloat:{gl:i.RGB9_E5,b:4,c:3,p:1,render:"texture-renderable-float16-webgl",filter:"texture-filter-linear-float16-webgl"},rg11b10ufloat:{gl:i.R11F_G11F_B10F,b:4,c:3,p:1,render:"texture-renderable-float32-webgl",renderbuffer:!0},rgb10a2unorm:{gl:i.RGB10_A2,b:4,c:4,p:1,renderbuffer:!0},"rgb10a2unorm-webgl":{b:4,c:4,gl:i.RGB10_A2UI,p:1,wgpu:!1,bpp:4,renderbuffer:!0},"rgb16unorm-webgl":{gl:i.RGB16_EXT,b:2,c:3,f:"texture-formats-norm16-webgl",x:se},"rgb16snorm-webgl":{gl:i.RGB16_SNORM_EXT,b:2,c:3,f:"texture-formats-norm16-webgl",x:se},rg32uint:{gl:i.RG32UI,b:8,c:2,renderbuffer:!0},rg32sint:{gl:i.RG32I,b:8,c:2,renderbuffer:!0},rg32float:{gl:i.RG32F,b:8,c:2,render:"texture-renderable-float32-webgl",filter:"texture-filter-linear-float32-webgl",renderbuffer:!0},rgba16uint:{gl:i.RGBA16UI,b:8,c:4,renderbuffer:!0},rgba16sint:{gl:i.RGBA16I,b:8,c:4,renderbuffer:!0},rgba16float:{gl:i.RGBA16F,gl1:i.RGBA,b:8,c:4,render:"texture-renderable-float16-webgl",filter:"texture-filter-linear-float16-webgl"},"rgba16unorm-webgl":{gl:i.RGBA16_EXT,b:2,c:4,f:"texture-formats-norm16-webgl",renderbuffer:!0,x:se},"rgba16snorm-webgl":{gl:i.RGBA16_SNORM_EXT,b:2,c:4,f:"texture-formats-norm16-webgl",x:se},"rgb32float-webgl":{gl:i.RGB32F,gl1:i.RGB,render:"texture-renderable-float32-webgl",filter:"texture-filter-linear-float32-webgl",gl2ext:r_,gl1ext:t_,dataFormat:i.RGB,types:[i.FLOAT]},rgba32uint:{gl:i.RGBA32UI,b:16,c:4,renderbuffer:!0},rgba32sint:{gl:i.RGBA32I,b:16,c:4,renderbuffer:!0},rgba32float:{gl:i.RGBA32F,b:16,c:4,render:"texture-renderable-float32-webgl",filter:"texture-filter-linear-float32-webgl",renderbuffer:!0},stencil8:{gl:i.STENCIL_INDEX8,gl1:i.STENCIL_INDEX8,b:1,c:1,attachment:i.STENCIL_ATTACHMENT,renderbuffer:!0},depth16unorm:{gl:i.DEPTH_COMPONENT16,gl1:i.DEPTH_COMPONENT16,b:2,c:1,attachment:i.DEPTH_ATTACHMENT,renderbuffer:!0},depth24plus:{gl:i.DEPTH_COMPONENT24,b:3,c:1,attachment:i.DEPTH_ATTACHMENT},depth32float:{gl:i.DEPTH_COMPONENT32F,b:4,c:1,attachment:i.DEPTH_ATTACHMENT,renderbuffer:!0},"depth24plus-stencil8":{gl:i.DEPTH_STENCIL,gl1:i.DEPTH_STENCIL,b:4,c:2,p:1,attachment:i.DEPTH_STENCIL_ATTACHMENT,renderbuffer:!0,depthTexture:!0},"depth24unorm-stencil8":{gl:i.DEPTH24_STENCIL8,b:4,c:2,p:1,attachment:i.DEPTH_STENCIL_ATTACHMENT,renderbuffer:!0},"depth32float-stencil8":{gl:i.DEPTH32F_STENCIL8,b:5,c:2,p:1,attachment:i.DEPTH_STENCIL_ATTACHMENT,renderbuffer:!0},"bc1-rgb-unorm-webgl":{gl:i.COMPRESSED_RGB_S3TC_DXT1_EXT,x:Ze,f:U},"bc1-rgb-unorm-srgb-webgl":{gl:i.COMPRESSED_SRGB_S3TC_DXT1_EXT,x:qe,f:U},"bc1-rgba-unorm":{gl:i.COMPRESSED_RGBA_S3TC_DXT1_EXT,x:Ze,f:U},"bc1-rgba-unorm-srgb":{gl:i.COMPRESSED_SRGB_S3TC_DXT1_EXT,x:qe,f:U},"bc2-rgba-unorm":{gl:i.COMPRESSED_RGBA_S3TC_DXT3_EXT,x:Ze,f:U},"bc2-rgba-unorm-srgb":{gl:i.COMPRESSED_SRGB_ALPHA_S3TC_DXT3_EXT,x:qe,f:U},"bc3-rgba-unorm":{gl:i.COMPRESSED_RGBA_S3TC_DXT5_EXT,x:Ze,f:U},"bc3-rgba-unorm-srgb":{gl:i.COMPRESSED_SRGB_ALPHA_S3TC_DXT5_EXT,x:qe,f:U},"bc4-r-unorm":{gl:i.COMPRESSED_RED_RGTC1_EXT,x:Ce,f:U},"bc4-r-snorm":{gl:i.COMPRESSED_SIGNED_RED_RGTC1_EXT,x:Ce,f:U},"bc5-rg-unorm":{gl:i.COMPRESSED_RED_GREEN_RGTC2_EXT,x:Ce,f:U},"bc5-rg-snorm":{gl:i.COMPRESSED_SIGNED_RED_GREEN_RGTC2_EXT,x:Ce,f:U},"bc6h-rgb-ufloat":{gl:i.COMPRESSED_RGB_BPTC_UNSIGNED_FLOAT_EXT,x:Qe,f:U},"bc6h-rgb-float":{gl:i.COMPRESSED_RGB_BPTC_SIGNED_FLOAT_EXT,x:Qe,f:U},"bc7-rgba-unorm":{gl:i.COMPRESSED_RGBA_BPTC_UNORM_EXT,x:Qe,f:U},"bc7-rgba-unorm-srgb":{gl:i.COMPRESSED_SRGB_ALPHA_BPTC_UNORM_EXT,x:Qe,f:U},"etc2-rgb8unorm":{gl:i.COMPRESSED_RGB8_ETC2,f:te},"etc2-rgb8unorm-srgb":{gl:i.COMPRESSED_SRGB8_ETC2,f:te},"etc2-rgb8a1unorm":{gl:i.COMPRESSED_RGB8_PUNCHTHROUGH_ALPHA1_ETC2,f:te},"etc2-rgb8a1unorm-srgb":{gl:i.COMPRESSED_SRGB8_PUNCHTHROUGH_ALPHA1_ETC2,f:te},"etc2-rgba8unorm":{gl:i.COMPRESSED_RGBA8_ETC2_EAC,f:te},"etc2-rgba8unorm-srgb":{gl:i.COMPRESSED_SRGB8_ALPHA8_ETC2_EAC,f:te},"eac-r11unorm":{gl:i.COMPRESSED_R11_EAC,f:te},"eac-r11snorm":{gl:i.COMPRESSED_SIGNED_R11_EAC,f:te},"eac-rg11unorm":{gl:i.COMPRESSED_RG11_EAC,f:te},"eac-rg11snorm":{gl:i.COMPRESSED_SIGNED_RG11_EAC,f:te},"astc-4x4-unorm":{gl:i.COMPRESSED_RGBA_ASTC_4x4_KHR,f:O},"astc-4x4-unorm-srgb":{gl:i.COMPRESSED_SRGB8_ALPHA8_ASTC_4x4_KHR,f:O},"astc-5x4-unorm":{gl:i.COMPRESSED_RGBA_ASTC_5x4_KHR,f:O},"astc-5x4-unorm-srgb":{gl:i.COMPRESSED_SRGB8_ALPHA8_ASTC_5x4_KHR,f:O},"astc-5x5-unorm":{gl:i.COMPRESSED_RGBA_ASTC_5x5_KHR,f:O},"astc-5x5-unorm-srgb":{gl:i.COMPRESSED_SRGB8_ALPHA8_ASTC_5x5_KHR,f:O},"astc-6x5-unorm":{gl:i.COMPRESSED_RGBA_ASTC_6x5_KHR,f:O},"astc-6x5-unorm-srgb":{gl:i.COMPRESSED_SRGB8_ALPHA8_ASTC_6x5_KHR,f:O},"astc-6x6-unorm":{gl:i.COMPRESSED_RGBA_ASTC_6x6_KHR,f:O},"astc-6x6-unorm-srgb":{gl:i.COMPRESSED_SRGB8_ALPHA8_ASTC_6x6_KHR,f:O},"astc-8x5-unorm":{gl:i.COMPRESSED_RGBA_ASTC_8x5_KHR,f:O},"astc-8x5-unorm-srgb":{gl:i.COMPRESSED_SRGB8_ALPHA8_ASTC_8x5_KHR,f:O},"astc-8x6-unorm":{gl:i.COMPRESSED_RGBA_ASTC_8x6_KHR,f:O},"astc-8x6-unorm-srgb":{gl:i.COMPRESSED_SRGB8_ALPHA8_ASTC_8x6_KHR,f:O},"astc-8x8-unorm":{gl:i.COMPRESSED_RGBA_ASTC_8x8_KHR,f:O},"astc-8x8-unorm-srgb":{gl:i.COMPRESSED_SRGB8_ALPHA8_ASTC_8x8_KHR,f:O},"astc-10x5-unorm":{gl:i.COMPRESSED_RGBA_ASTC_10x10_KHR,f:O},"astc-10x5-unorm-srgb":{gl:i.COMPRESSED_SRGB8_ALPHA8_ASTC_10x10_KHR,f:O},"astc-10x6-unorm":{gl:i.COMPRESSED_RGBA_ASTC_10x6_KHR,f:O},"astc-10x6-unorm-srgb":{gl:i.COMPRESSED_SRGB8_ALPHA8_ASTC_10x6_KHR,f:O},"astc-10x8-unorm":{gl:i.COMPRESSED_RGBA_ASTC_10x8_KHR,f:O},"astc-10x8-unorm-srgb":{gl:i.COMPRESSED_SRGB8_ALPHA8_ASTC_10x8_KHR,f:O},"astc-10x10-unorm":{gl:i.COMPRESSED_RGBA_ASTC_10x10_KHR,f:O},"astc-10x10-unorm-srgb":{gl:i.COMPRESSED_SRGB8_ALPHA8_ASTC_10x10_KHR,f:O},"astc-12x10-unorm":{gl:i.COMPRESSED_RGBA_ASTC_12x10_KHR,f:O},"astc-12x10-unorm-srgb":{gl:i.COMPRESSED_SRGB8_ALPHA8_ASTC_12x10_KHR,f:O},"astc-12x12-unorm":{gl:i.COMPRESSED_RGBA_ASTC_12x12_KHR,f:O},"astc-12x12-unorm-srgb":{gl:i.COMPRESSED_SRGB8_ALPHA8_ASTC_12x12_KHR,f:O},"pvrtc-rgb4unorm-webgl":{gl:i.COMPRESSED_RGB_PVRTC_4BPPV1_IMG,f:bt},"pvrtc-rgba4unorm-webgl":{gl:i.COMPRESSED_RGBA_PVRTC_4BPPV1_IMG,f:bt},"pvrtc-rbg2unorm-webgl":{gl:i.COMPRESSED_RGB_PVRTC_2BPPV1_IMG,f:bt},"pvrtc-rgba2unorm-webgl":{gl:i.COMPRESSED_RGBA_PVRTC_2BPPV1_IMG,f:bt},"etc1-rbg-unorm-webgl":{gl:i.COMPRESSED_RGB_ETC1_WEBGL,f:$a},"atc-rgb-unorm-webgl":{gl:i.COMPRESSED_RGB_ATC_WEBGL,f:Yr},"atc-rgba-unorm-webgl":{gl:i.COMPRESSED_RGBA_ATC_EXPLICIT_ALPHA_WEBGL,f:Yr},"atc-rgbai-unorm-webgl":{gl:i.COMPRESSED_RGBA_ATC_INTERPOLATED_ALPHA_WEBGL,f:Yr}},i_={[i.RED]:1,[i.RED_INTEGER]:1,[i.RG]:2,[i.RG_INTEGER]:2,[i.RGB]:3,[i.RGB_INTEGER]:3,[i.RGBA]:4,[i.RGBA_INTEGER]:4,[i.DEPTH_COMPONENT]:1,[i.DEPTH_STENCIL]:1,[i.ALPHA]:1,[i.LUMINANCE]:1,[i.LUMINANCE_ALPHA]:2},o_={[i.FLOAT]:4,[i.UNSIGNED_INT]:4,[i.INT]:4,[i.UNSIGNED_SHORT]:2,[i.SHORT]:2,[i.HALF_FLOAT]:2,[i.BYTE]:1,[i.UNSIGNED_BYTE]:1};function et(e,t){let r=tt(t),n=Je[r];if(!n||(S(e)?n.gl===void 0:n.gl1===void 0))return!1;let o=n.x||S(e)&&n.gl2ext||n.gl1ext;return o?Boolean(e.getExtension(o)):!0}function Ti(e,t){var r;return et(e,t)&&((r=Je[t])===null||r===void 0?void 0:r.renderbuffer)}function tt(e){if(typeof e=="string")return e;let t=Object.entries(Je).find(r=>{let[,n]=r;return n.gl===e||n.gl1===e});if(!t)throw new Error(`Unknown texture format ${e}`);return t[0]}function rt(e,t){let r=Je[e],n=t?r?.gl:r?.gl1;if(n===void 0)throw new Error(`Unsupported texture format ${e}`);return n}function Ai(e,t){let r=tt(t);if(!et(e,r))return!1;try{if((0,Gr.decodeTextureFormat)(r).signed)return!1}catch{return!1}return r.endsWith("32float")?Boolean(e.getExtension("OES_texture_float_linear")):r.endsWith("16float")?Boolean(e.getExtension("OES_texture_half_float_linear")):!0}function pi(e,t){let r=tt(t);return!(!et(e,r)||typeof r=="number")}function It(e,t){let r=tt(e),n=rt(r,t),o=(0,Gr.decodeTextureFormat)(r);return{format:n,dataFormat:s_(o.format,o.integer,o.normalized,n),type:o.dataType?Nt(o.dataType):i.UNSIGNED_BYTE,compressed:o.compressed}}function hi(e){let t=Je[e];if(!(t!=null&&t.attachment))throw new Error(`${e} is not a depth stencil format`);return t.attachment}function mi(e){let t=arguments.length>1&&arguments[1]!==void 0?arguments[1]:e.RGBA,r=arguments.length>2&&arguments[2]!==void 0?arguments[2]:i.RGBA,n=arguments.length>3&&arguments[3]!==void 0?arguments[3]:i.UNSIGNED_BYTE,o=null,s=null;try{o=e.createTexture(),e.bindTexture(i.TEXTURE_2D,o);let a=0,_=1,f=1,u=0,l=new Uint8Array([0,0,255,255]);e.texImage2D(e.TEXTURE_2D,a,t,_,f,u,r,n,l),s=e.createFramebuffer(),e.bindFramebuffer(i.FRAMEBUFFER,s),e.framebufferTexture2D(i.FRAMEBUFFER,i.COLOR_ATTACHMENT0,i.TEXTURE_2D,o,0);let c=e.checkFramebufferStatus(i.FRAMEBUFFER)===i.FRAMEBUFFER_COMPLETE;return e.bindTexture(i.TEXTURE_2D,null),c}finally{e.deleteTexture(o),e.deleteFramebuffer(s)}}function nt(e,t){let r=tt(e),n=It(r,t),o=i_[n.dataFormat]||4,s=o_[n.type]||1;return o*s}function s_(e,t,r,n){if(n===i.RGBA||n===i.RGB)return n;switch(e){case"r":return t&&!r?i.RED_INTEGER:i.RED;case"rg":return t&&!r?i.RG_INTEGER:i.RG;case"rgb":return t&&!r?i.RGB_INTEGER:i.RGB;case"rgba":return t&&!r?i.RGBA_INTEGER:i.RGBA;default:return i.RGBA}}function Si(e){let t=a_(e);for(let r of Ri(e))t.add(r);return t}function a_(e){e.getExtension("EXT_color_buffer_float"),e.getExtension("WEBGL_color_buffer_float"),e.getExtension("EXT_float_blend");let t=new Set;for(let r of Object.keys(gi))__(e,r)&&t.add(r);return t}function __(e,t){let r=gi[t];if(!r)return!1;let[n,o]=r||[],s=S(e)?o:n;if(typeof s=="boolean")return s;switch(t){case"texture-renderable-rgba32float-webgl":return S(e)?Boolean(e.getExtension(s)):mi(e);case"glsl-derivatives":return Zr(e,s);case"glsl-frag-data":return Zr(e,s,{behavior:"require"});case"glsl-frag-depth":return Zr(e,s);default:return Boolean(e.getExtension(s))}}var $r={};function Zr(e,t){let r=arguments.length>2&&arguments[2]!==void 0?arguments[2]:{};if(!Ei(r))return!0;if(t in $r)return $r[t];let n=r.behavior||"enable",o=`#extension GL_${t} : ${n}
71
+ void main(void) {}`,s=e.createShader(e.VERTEX_SHADER);if(!s)throw new Error("shader");e.shaderSource(s,o),e.compileShader(s);let a=e.getShaderParameter(s,e.COMPILE_STATUS);return e.deleteShader(s),$r[t]=a,a}var gi={webgl:[!0,!0],webgl2:[!1,!0],"timer-query-webgl":["EXT_disjoint_timer_query","EXT_disjoint_timer_query_webgl2"],"vertex-array-object-webgl1":["OES_vertex_array_object",!0],"instanced-rendering-webgl1":["ANGLE_instanced_arrays",!0],"multiple-render-targets-webgl1":["WEBGL_draw_buffers",!0],"index-uint32-webgl1":["OES_element_index_uint",!0],"blend-minmax-webgl1":["EXT_blend_minmax",!0],"texture-blend-float-webgl1":["EXT_float_blend","EXT_float_blend"],"texture-formats-srgb-webgl1":["EXT_sRGB",!0],"texture-formats-depth-webgl1":["WEBGL_depth_texture",!0],"texture-formats-float32-webgl1":["OES_texture_float",!0],"texture-formats-float16-webgl1":["OES_texture_half_float",!0],"texture-filter-linear-float32-webgl":["OES_texture_float_linear","OES_texture_float_linear"],"texture-filter-linear-float16-webgl":["OES_texture_half_float_linear","OES_texture_half_float_linear"],"texture-filter-anisotropic-webgl":["EXT_texture_filter_anisotropic","EXT_texture_filter_anisotropic"],"texture-renderable-rgba32float-webgl":["WEBGL_color_buffer_float","EXT_color_buffer_float"],"texture-renderable-float32-webgl":[!1,"EXT_color_buffer_float"],"texture-renderable-float16-webgl":["EXT_color_buffer_half_float","EXT_color_buffer_half_float"],"glsl-frag-data":["WEBGL_draw_buffers",!0],"glsl-frag-depth":["EXT_frag_depth",!0],"glsl-derivatives":["OES_standard_derivatives",!0],"glsl-texture-lod":["EXT_shader_texture_lod",!0]};function Oi(e){let t=Xr(e);return{maxTextureDimension1D:0,maxTextureDimension2D:e.getParameter(i.MAX_TEXTURE_SIZE),maxTextureDimension3D:t?t.getParameter(i.MAX_3D_TEXTURE_SIZE):0,maxTextureArrayLayers:t?t.getParameter(i.MAX_ARRAY_TEXTURE_LAYERS):0,maxBindGroups:1,maxDynamicUniformBuffersPerPipelineLayout:0,maxDynamicStorageBuffersPerPipelineLayout:0,maxSampledTexturesPerShaderStage:e.getParameter(i.MAX_VERTEX_TEXTURE_IMAGE_UNITS),maxSamplersPerShaderStage:e.getParameter(i.MAX_COMBINED_TEXTURE_IMAGE_UNITS),maxStorageBuffersPerShaderStage:0,maxStorageTexturesPerShaderStage:0,maxUniformBuffersPerShaderStage:t?t.getParameter(i.MAX_UNIFORM_BUFFER_BINDINGS):0,maxUniformBufferBindingSize:t?t.getParameter(i.MAX_UNIFORM_BLOCK_SIZE):0,maxStorageBufferBindingSize:0,minUniformBufferOffsetAlignment:t?t.getParameter(i.UNIFORM_BUFFER_OFFSET_ALIGNMENT):0,minStorageBufferOffsetAlignment:0,maxVertexBuffers:0,maxVertexAttributes:e.getParameter(i.MAX_VERTEX_ATTRIBS),maxVertexBufferArrayStride:2048,maxInterStageShaderComponents:t?t.getParameter(i.MAX_VARYING_COMPONENTS):0,maxComputeWorkgroupStorageSize:0,maxComputeInvocationsPerWorkgroup:0,maxComputeWorkgroupSizeX:0,maxComputeWorkgroupSizeY:0,maxComputeWorkgroupSizeZ:0,maxComputeWorkgroupsPerDimension:0}}function Ni(e){let t=Xr(e);function r(o){return e.getParameter(o)}function n(o,s){return t?t.getParameter(o):s||0}return{[i.ALIASED_LINE_WIDTH_RANGE]:r(i.ALIASED_LINE_WIDTH_RANGE),[i.ALIASED_POINT_SIZE_RANGE]:r(i.ALIASED_POINT_SIZE_RANGE),[i.MAX_TEXTURE_SIZE]:r(i.MAX_TEXTURE_SIZE),[i.MAX_CUBE_MAP_TEXTURE_SIZE]:r(i.MAX_CUBE_MAP_TEXTURE_SIZE),[i.MAX_TEXTURE_IMAGE_UNITS]:r(i.MAX_TEXTURE_IMAGE_UNITS),[i.MAX_COMBINED_TEXTURE_IMAGE_UNITS]:r(i.MAX_COMBINED_TEXTURE_IMAGE_UNITS),[i.MAX_VERTEX_TEXTURE_IMAGE_UNITS]:r(i.MAX_VERTEX_TEXTURE_IMAGE_UNITS),[i.MAX_RENDERBUFFER_SIZE]:r(i.MAX_RENDERBUFFER_SIZE),[i.MAX_VARYING_VECTORS]:r(i.MAX_VARYING_VECTORS),[i.MAX_VERTEX_ATTRIBS]:r(i.MAX_VERTEX_ATTRIBS),[i.MAX_VERTEX_UNIFORM_VECTORS]:r(i.MAX_VERTEX_UNIFORM_VECTORS),[i.MAX_FRAGMENT_UNIFORM_VECTORS]:r(i.MAX_FRAGMENT_UNIFORM_VECTORS),[i.MAX_VIEWPORT_DIMS]:r(i.MAX_VIEWPORT_DIMS),[i.MAX_TEXTURE_MAX_ANISOTROPY_EXT]:r(i.MAX_TEXTURE_MAX_ANISOTROPY_EXT),[i.MAX_3D_TEXTURE_SIZE]:n(i.MAX_3D_TEXTURE_SIZE),[i.MAX_ARRAY_TEXTURE_LAYERS]:n(i.MAX_ARRAY_TEXTURE_LAYERS),[i.MAX_CLIENT_WAIT_TIMEOUT_WEBGL]:n(i.MAX_CLIENT_WAIT_TIMEOUT_WEBGL),[i.MAX_COLOR_ATTACHMENTS]:n(i.MAX_COLOR_ATTACHMENTS),[i.MAX_COMBINED_FRAGMENT_UNIFORM_COMPONENTS]:n(i.MAX_COMBINED_FRAGMENT_UNIFORM_COMPONENTS),[i.MAX_COMBINED_UNIFORM_BLOCKS]:n(i.MAX_COMBINED_UNIFORM_BLOCKS),[i.MAX_COMBINED_VERTEX_UNIFORM_COMPONENTS]:n(i.MAX_COMBINED_VERTEX_UNIFORM_COMPONENTS),[i.MAX_DRAW_BUFFERS]:n(i.MAX_DRAW_BUFFERS),[i.MAX_ELEMENT_INDEX]:n(i.MAX_ELEMENT_INDEX),[i.MAX_ELEMENTS_INDICES]:n(i.MAX_ELEMENTS_INDICES),[i.MAX_ELEMENTS_VERTICES]:n(i.MAX_ELEMENTS_VERTICES),[i.MAX_FRAGMENT_INPUT_COMPONENTS]:n(i.MAX_FRAGMENT_INPUT_COMPONENTS),[i.MAX_FRAGMENT_UNIFORM_BLOCKS]:n(i.MAX_FRAGMENT_UNIFORM_BLOCKS),[i.MAX_FRAGMENT_UNIFORM_COMPONENTS]:n(i.MAX_FRAGMENT_UNIFORM_COMPONENTS),[i.MAX_SAMPLES]:n(i.MAX_SAMPLES),[i.MAX_SERVER_WAIT_TIMEOUT]:n(i.MAX_SERVER_WAIT_TIMEOUT),[i.MAX_TEXTURE_LOD_BIAS]:n(i.MAX_TEXTURE_LOD_BIAS),[i.MAX_TRANSFORM_FEEDBACK_INTERLEAVED_COMPONENTS]:n(i.MAX_TRANSFORM_FEEDBACK_INTERLEAVED_COMPONENTS),[i.MAX_TRANSFORM_FEEDBACK_SEPARATE_ATTRIBS]:n(i.MAX_TRANSFORM_FEEDBACK_SEPARATE_ATTRIBS),[i.MAX_TRANSFORM_FEEDBACK_SEPARATE_COMPONENTS]:n(i.MAX_TRANSFORM_FEEDBACK_SEPARATE_COMPONENTS),[i.MAX_UNIFORM_BLOCK_SIZE]:n(i.MAX_UNIFORM_BLOCK_SIZE),[i.MAX_UNIFORM_BUFFER_BINDINGS]:n(i.MAX_UNIFORM_BUFFER_BINDINGS),[i.MAX_VARYING_COMPONENTS]:n(i.MAX_VARYING_COMPONENTS),[i.MAX_VERTEX_OUTPUT_COMPONENTS]:n(i.MAX_VERTEX_OUTPUT_COMPONENTS),[i.MAX_VERTEX_UNIFORM_BLOCKS]:n(i.MAX_VERTEX_UNIFORM_BLOCKS),[i.MAX_VERTEX_UNIFORM_COMPONENTS]:n(i.MAX_VERTEX_UNIFORM_COMPONENTS),[i.MIN_PROGRAM_TEXEL_OFFSET]:n(i.MIN_PROGRAM_TEXEL_OFFSET),[i.MAX_PROGRAM_TEXEL_OFFSET]:n(i.MAX_PROGRAM_TEXEL_OFFSET),[i.UNIFORM_BUFFER_OFFSET_ALIGNMENT]:n(i.UNIFORM_BUFFER_OFFSET_ALIGNMENT)}}var xi=p(g(),1);var xt=p(g(),1);var Fi=p(g(),1),y=p(g(),1);function F(e,t,r){let o=M.attach(e).gl;if(f_(t))return r(e);let{nocatch:s=!0}=t;Fe(o),ce(o,t);let a;if(s)a=r(o),Oe(o);else try{a=r(o)}finally{Oe(o)}return a}function f_(e){for(let t in e)return!1;return!0}var vt=p(g(),1);function bi(e,t,r,n){if((0,vt.isObjectEmpty)(t))return n(e);Fe(e.gl);try{return u_(e,t),ce(e,r),n(e)}finally{Oe(e.gl)}}function u_(e,t){let r=M.attach(e),{gl:n}=r;if(t.cullMode)switch(t.cullMode){case"none":n.disable(i.CULL_FACE);break;case"front":n.enable(i.CULL_FACE),n.cullFace(i.FRONT);break;case"back":n.enable(i.CULL_FACE),n.cullFace(i.BACK);break}if(t.frontFace&&n.frontFace(Qr("frontFace",t.frontFace,{ccw:i.CCW,cw:i.CW})),t.depthBias!==void 0&&n.polygonOffset(t.depthBias,t.depthBiasSlopeScale||0),t.depthWriteEnabled!==void 0&&n.depthMask(c_("depthWriteEnabled",t.depthWriteEnabled)),t.depthCompare&&(t.depthCompare!=="always"?n.enable(i.DEPTH_TEST):n.disable(i.DEPTH_TEST),n.depthFunc(Pt("depthCompare",t.depthCompare))),t.stencilWriteMask){let o=t.stencilWriteMask;n.stencilMaskSeparate(i.FRONT,o),n.stencilMaskSeparate(i.BACK,o)}if(t.stencilReadMask&&vt.log.warn("stencilReadMask not supported under WebGL"),t.stencilCompare){let o=t.stencilReadMask||4294967295,s=Pt("depthCompare",t.stencilCompare);t.stencilCompare!=="always"?n.enable(i.STENCIL_TEST):n.disable(i.STENCIL_TEST),n.stencilFuncSeparate(i.FRONT,s,0,o),n.stencilFuncSeparate(i.BACK,s,0,o)}if(t.stencilPassOperation&&t.stencilFailOperation&&t.stencilDepthFailOperation){let o=qr("stencilPassOperation",t.stencilPassOperation),s=qr("stencilFailOperation",t.stencilFailOperation),a=qr("stencilDepthFailOperation",t.stencilDepthFailOperation);n.stencilOpSeparate(i.FRONT,s,a,o),n.stencilOpSeparate(i.BACK,s,a,o)}}function Pt(e,t){return Qr(e,t,{never:i.NEVER,less:i.LESS,equal:i.EQUAL,"less-equal":i.LEQUAL,greater:i.GREATER,"not-equal":i.NOTEQUAL,"greater-equal":i.GEQUAL,always:i.ALWAYS})}function qr(e,t){return Qr(e,t,{keep:i.KEEP,zero:i.ZERO,replace:i.REPLACE,invert:i.INVERT,"increment-clamp":i.INCR,"decrement-clamp":i.DECR,"increment-wrap":i.INCR_WRAP,"decrement-wrap":i.DECR_WRAP})}function l_(e,t){return`Illegal parameter ${t} for ${e}`}function Qr(e,t,r){if(!(t in r))throw new Error(l_(e,t));return r[t]}function c_(e,t){return t}function Ft(e){let t={};return e.addressModeU&&(t[i.TEXTURE_WRAP_S]=Jr(e.addressModeU)),e.addressModeV&&(t[i.TEXTURE_WRAP_T]=Jr(e.addressModeV)),e.addressModeW&&(t[i.TEXTURE_WRAP_R]=Jr(e.addressModeW)),e.magFilter&&(t[i.TEXTURE_MAG_FILTER]=Ii(e.magFilter)),(e.minFilter||e.mipmapFilter)&&(t[i.TEXTURE_MIN_FILTER]=E_(e.minFilter||"linear",e.mipmapFilter)),e.lodMinClamp!==void 0&&(t[i.TEXTURE_MIN_LOD]=e.lodMinClamp),e.lodMaxClamp!==void 0&&(t[i.TEXTURE_MAX_LOD]=e.lodMaxClamp),e.type==="comparison-sampler"&&(t[i.TEXTURE_COMPARE_MODE]=i.COMPARE_REF_TO_TEXTURE),e.compare&&(t[i.TEXTURE_COMPARE_FUNC]=Pt("compare",e.compare)),e.maxAnisotropy&&(t[i.TEXTURE_MAX_ANISOTROPY_EXT]=e.maxAnisotropy),t}function Jr(e){switch(e){case"clamp-to-edge":return i.CLAMP_TO_EDGE;case"repeat":return i.REPEAT;case"mirror-repeat":return i.MIRRORED_REPEAT}}function Ii(e){switch(e){case"nearest":return i.NEAREST;case"linear":return i.LINEAR}}function E_(e,t){if(!t)return Ii(e);switch(e){case"nearest":return t==="nearest"?i.NEAREST_MIPMAP_NEAREST:i.NEAREST_MIPMAP_LINEAR;case"linear":return t==="nearest"?i.LINEAR_MIPMAP_NEAREST:i.LINEAR_MIPMAP_LINEAR}}function Pi(e){let t={...e};return e[i.TEXTURE_MIN_FILTER]!==i.NEAREST&&(t[i.TEXTURE_MIN_FILTER]=i.LINEAR),t[i.TEXTURE_WRAP_S]=i.CLAMP_TO_EDGE,t[i.TEXTURE_WRAP_T]=i.CLAMP_TO_EDGE,t}var G=p(g(),1);var d_=10,k=class extends G.Buffer{constructor(t){let r=arguments.length>1&&arguments[1]!==void 0?arguments[1]:{};super(t,r),this.device=void 0,this.gl=void 0,this.gl2=void 0,this.handle=void 0,this.glTarget=void 0,this.glUsage=void 0,this.glIndexType=i.UNSIGNED_SHORT,this.byteLength=void 0,this.bytesUsed=void 0,this.debugData=null,this.device=t,this.gl=this.device.gl,this.gl2=this.device.gl2;let n=typeof r=="object"?r.handle:void 0;this.handle=n||this.gl.createBuffer(),t.setSpectorMetadata(this.handle,{...this.props,data:typeof this.props.data}),this.glTarget=R_(this.props.usage),this.glUsage=T_(this.props.usage),this.glIndexType=this.props.indexType==="uint32"?i.UNSIGNED_INT:i.UNSIGNED_SHORT,this.debugData=null,r.data?this._initWithData(r.data,r.byteOffset,r.byteLength):this._initWithByteLength(r.byteLength||0)}_initWithData(t){let r=arguments.length>1&&arguments[1]!==void 0?arguments[1]:0,n=arguments.length>2&&arguments[2]!==void 0?arguments[2]:t.byteLength+r;(0,G.assert)(ArrayBuffer.isView(t));let o=this._getWriteTarget();return this.gl.bindBuffer(o,this.handle),this.gl.bufferData(o,n,this.glUsage),this.gl.bufferSubData(o,r,t),this.gl.bindBuffer(o,null),this.debugData=t.slice(0,d_),this.bytesUsed=n,this.byteLength=n,this.trackAllocatedMemory(n),this}_initWithByteLength(t){(0,G.assert)(t>=0);let r=t;t===0&&(r=new Float32Array(0));let n=this._getWriteTarget();return this.gl.bindBuffer(n,this.handle),this.gl.bufferData(n,r,this.glUsage),this.gl.bindBuffer(n,null),this.debugData=null,this.bytesUsed=t,this.byteLength=t,this}destroy(){!this.destroyed&&this.handle&&(this.removeStats(),this.trackDeallocatedMemory(),this.gl.deleteBuffer(this.handle),this.destroyed=!0,this.handle=null)}write(t){let r=arguments.length>1&&arguments[1]!==void 0?arguments[1]:0,n=0,o=void 0,s=this.device.isWebGL2?i.COPY_WRITE_BUFFER:this.glTarget;this.gl.bindBuffer(s,this.handle),n!==0||o!==void 0?(this.device.assertWebGL2(),this.gl2.bufferSubData(s,r,t,n,o)):this.gl.bufferSubData(s,r,t),this.gl.bindBuffer(s,null)}async readAsync(){let t=arguments.length>0&&arguments[0]!==void 0?arguments[0]:0,r=arguments.length>1?arguments[1]:void 0;this.device.assertWebGL2();let n=new Uint8Array(r),o=0;return this.gl.bindBuffer(i.COPY_READ_BUFFER,this.handle),this.gl2.getBufferSubData(i.COPY_READ_BUFFER,t,n,o,r),this.gl.bindBuffer(i.COPY_READ_BUFFER,null),n}_invalidateDebugData(){this.debugData=null}_getWriteTarget(){return this.glTarget}_getReadTarget(){return this.glTarget}};function R_(e){return e&G.Buffer.INDEX?i.ELEMENT_ARRAY_BUFFER:e&G.Buffer.VERTEX?i.ARRAY_BUFFER:e&G.Buffer.UNIFORM?i.UNIFORM_BUFFER:i.ARRAY_BUFFER}function T_(e){return e&G.Buffer.INDEX?i.STATIC_DRAW:e&G.Buffer.VERTEX?i.STATIC_DRAW:e&G.Buffer.UNIFORM?i.DYNAMIC_DRAW:i.STATIC_DRAW}var vi=p(g(),1);var be=class extends vi.Sampler{constructor(t,r){super(t,r),this.device=void 0,this.handle=void 0,this.parameters=void 0,this.device=t,this.parameters=Ft(r),this.device.isWebGL2&&(this.handle=this.handle||this.device.gl2.createSampler(),this._setSamplerParameters(this.parameters))}destroy(){this.handle&&(this.device.gl2.deleteSampler(this.handle),this.handle=void 0)}toString(){return`Sampler(${this.id},${JSON.stringify(this.props)})`}_setSamplerParameters(t){for(let[r,n]of Object.entries(t)){let o=Number(r);switch(o){case i.TEXTURE_MIN_LOD:case i.TEXTURE_MAX_LOD:this.device.gl2.samplerParameterf(this.handle,o,n);break;default:this.device.gl2.samplerParameteri(this.handle,o,n);break}}}};var A_={parameters:{},pixelStore:{},pixels:null,border:0,dataFormat:void 0,textureUnit:void 0,target:void 0},D=class extends y.Texture{constructor(t,r){var n;super(t,{...A_,format:"rgba8unorm",...r}),this.MAX_ATTRIBUTES=void 0,this.device=void 0,this.gl=void 0,this.gl2=void 0,this.handle=void 0,this.sampler=void 0,this.glFormat=void 0,this.type=void 0,this.dataFormat=void 0,this.mipmaps=void 0,this.target=void 0,this.textureUnit=void 0,this.loaded=!1,this._video=void 0,this.device=(0,y.cast)(t),this.gl=this.device.gl,this.gl2=this.device.gl2,this.handle=this.props.handle||this.gl.createTexture(),this.device.setSpectorMetadata(this.handle,{...this.props,data:typeof this.props.data}),this.glFormat=i.RGBA,this.target=p_(this.props),this.loaded=!1,typeof((n=this.props)===null||n===void 0?void 0:n.data)=="string"&&Object.assign(this.props,{data:(0,y.loadImage)(this.props.data)}),this.initialize(this.props),Object.seal(this)}destroy(){this.handle&&(this.gl.deleteTexture(this.handle),this.removeStats(),this.trackDeallocatedMemory("Texture"),this.destroyed=!0)}toString(){return`Texture(${this.id},${this.width}x${this.height})`}initialize(){let t=arguments.length>0&&arguments[0]!==void 0?arguments[0]:{};if(this.props.dimension==="cube")return this.initializeCube(t);let r=t.data;if(r instanceof Promise)return r.then(T=>this.initialize(Object.assign({},t,{pixels:T,data:T}))),this;let n=typeof HTMLVideoElement<"u"&&r instanceof HTMLVideoElement;if(n&&r.readyState<HTMLVideoElement.HAVE_METADATA)return this._video=null,r.addEventListener("loadeddata",()=>this.initialize(t)),this;let{parameters:o={}}=t,{pixels:s=null,pixelStore:a={},textureUnit:_=void 0}=t;r||(r=s);let{width:f,height:u,dataFormat:l,type:c,compressed:E=!1,mipmaps:d=!0}=t,{depth:R=0}=t,A=rt(t.format,this.device.isWebGL2);return{width:f,height:u,compressed:E,dataFormat:l,type:c}=this._deduceParameters({format:t.format,type:c,dataFormat:l,compressed:E,data:r,width:f,height:u}),this.width=f,this.height=u,this.glFormat=A,this.type=c,this.dataFormat=l,this.textureUnit=_,Number.isFinite(this.textureUnit)&&(this.gl.activeTexture(i.TEXTURE0+this.textureUnit),this.gl.bindTexture(this.target,this.handle)),d&&this.device.isWebGL1&&Ct(this.width,this.height)&&(y.log.warn(`texture: ${this} is Non-Power-Of-Two, disabling mipmaps`)(),d=!1),this.mipmaps=d,this.setImageData({data:r,width:f,height:u,depth:R,format:A,type:c,dataFormat:l,parameters:a,compressed:E}),this.setSampler(t.sampler),this._setSamplerParameters(o),d&&this.generateMipmap(),n&&(this._video={video:r,parameters:o,lastTime:r.readyState>=HTMLVideoElement.HAVE_CURRENT_DATA?r.currentTime:-1}),this}initializeCube(t){let{mipmaps:r=!0,parameters:n={}}=t;return this.setCubeMapImageData(t).then(()=>{this.loaded=!0,r&&this.generateMipmap(t),this.setSampler(t.sampler),this._setSamplerParameters(n)}),this}setSampler(){let t=arguments.length>0&&arguments[0]!==void 0?arguments[0]:{},r;t instanceof be?(this.sampler=t,r=t.props):(this.sampler=new be(this.device,t),r=t);let n=Ft(r);return this._setSamplerParameters(n),this}resize(t){let{height:r,width:n,mipmaps:o=!1}=t;return n!==this.width||r!==this.height?this.initialize({width:n,height:r,format:this.format,type:this.type,dataFormat:this.dataFormat,mipmaps:o}):this}update(){if(this._video){let{video:t,parameters:r,lastTime:n}=this._video;if(n===t.currentTime||t.readyState<HTMLVideoElement.HAVE_CURRENT_DATA)return;this.setSubImageData({data:t,parameters:r}),this.mipmaps&&this.generateMipmap(),this._video.lastTime=t.currentTime}}generateMipmap(){let t=arguments.length>0&&arguments[0]!==void 0?arguments[0]:{};return this.device.isWebGL1&&Ct(this.width,this.height)?(y.log.warn(`texture: ${this} is Non-Power-Of-Two, disabling mipmaping`)(),this):(this.mipmaps=!0,this.gl.bindTexture(this.target,this.handle),F(this.gl,t,()=>{this.gl.generateMipmap(this.target)}),this.gl.bindTexture(this.target,null),this)}setImageData(t){if(this.props.dimension==="3d"||this.props.dimension==="2d-array")return this.setImageData3D(t);this.trackDeallocatedMemory("Texture");let{target:r=this.target,pixels:n=null,level:o=0,glFormat:s=this.glFormat,offset:a=0,parameters:_={}}=t,{data:f=null,type:u=this.type,width:l=this.width,height:c=this.height,dataFormat:E=this.dataFormat,compressed:d=!1}=t;f||(f=n),{type:u,dataFormat:E,compressed:d,width:l,height:c}=this._deduceParameters({format:this.props.format,type:u,dataFormat:E,compressed:d,data:f,width:l,height:c});let{gl:R}=this;R.bindTexture(this.target,this.handle);let A=null;({data:f,dataType:A}=this._getDataType({data:f,compressed:d}));let T;if(F(this.gl,_,()=>{switch(A){case"null":R.texImage2D(r,o,s,l,c,0,E,u,f);break;case"typed-array":R.texImage2D(r,o,s,l,c,0,E,u,f,a);break;case"buffer":T=this.device.assertWebGL2(),T.bindBuffer(i.PIXEL_UNPACK_BUFFER,f.handle||f),T.texImage2D(r,o,s,l,c,0,E,u,a),T.bindBuffer(i.PIXEL_UNPACK_BUFFER,null);break;case"browser-object":this.device.isWebGL2?R.texImage2D(r,o,s,l,c,0,E,u,f):R.texImage2D(r,o,s,E,u,f);break;case"compressed":for(let[h,m]of f.entries())R.compressedTexImage2D(r,h,m.format,m.width,m.height,0,m.data);break;default:(0,y.assert)(!1,"Unknown image data type")}}),f&&f.byteLength)this.trackAllocatedMemory(f.byteLength,"Texture");else{let h=nt(this.props.format,this.device.isWebGL2);this.trackAllocatedMemory(this.width*this.height*h,"Texture")}return this.loaded=!0,this}setSubImageData(t){let{target:r=this.target,pixels:n=null,data:o=null,x:s=0,y:a=0,width:_=this.width,height:f=this.height,level:u=0,glFormat:l=this.glFormat,type:c=this.type,dataFormat:E=this.dataFormat,compressed:d=!1,offset:R=0,parameters:A={}}=t;if({type:c,dataFormat:E,compressed:d,width:_,height:f}=this._deduceParameters({format:this.props.format,type:c,dataFormat:E,compressed:d,data:o,width:_,height:f}),(0,y.assert)(this.depth===1,"texSubImage not supported for 3D textures"),o||(o=n),o&&o.data){let T=o;o=T.data,_=T.shape[0],f=T.shape[1]}o instanceof k&&(o=o.handle),this.gl.bindTexture(this.target,this.handle),F(this.gl,A,()=>{if(d)this.gl.compressedTexSubImage2D(r,u,s,a,_,f,l,o);else if(o===null)this.gl.texSubImage2D(r,u,s,a,_,f,E,c,null);else if(ArrayBuffer.isView(o))this.gl.texSubImage2D(r,u,s,a,_,f,E,c,o,R);else if(typeof WebGLBuffer<"u"&&o instanceof WebGLBuffer){let T=this.device.assertWebGL2();T.bindBuffer(i.PIXEL_UNPACK_BUFFER,o),T.texSubImage2D(r,u,s,a,_,f,E,c,R),T.bindBuffer(i.PIXEL_UNPACK_BUFFER,null)}else this.device.isWebGL2?this.device.assertWebGL2().texSubImage2D(r,u,s,a,_,f,E,c,o):this.gl.texSubImage2D(r,u,s,a,E,c,o)}),this.gl.bindTexture(this.target,null)}copyFramebuffer(){let t=arguments.length>0&&arguments[0]!==void 0?arguments[0]:{};return y.log.error("Texture.copyFramebuffer({...}) is no logner supported, use copyToTexture(source, target, opts})")(),null}getActiveUnit(){return this.gl.getParameter(i.ACTIVE_TEXTURE)-i.TEXTURE0}bind(){let t=arguments.length>0&&arguments[0]!==void 0?arguments[0]:this.textureUnit,{gl:r}=this;return t!==void 0&&(this.textureUnit=t,r.activeTexture(r.TEXTURE0+t)),r.bindTexture(this.target,this.handle),t}unbind(){let t=arguments.length>0&&arguments[0]!==void 0?arguments[0]:this.textureUnit,{gl:r}=this;return t!==void 0&&(this.textureUnit=t,r.activeTexture(r.TEXTURE0+t)),r.bindTexture(this.target,null),t}_getDataType(t){let{data:r,compressed:n=!1}=t;return n?{data:r,dataType:"compressed"}:r===null?{data:r,dataType:"null"}:ArrayBuffer.isView(r)?{data:r,dataType:"typed-array"}:r instanceof k?{data:r.handle,dataType:"buffer"}:typeof WebGLBuffer<"u"&&r instanceof WebGLBuffer?{data:r,dataType:"buffer"}:{data:r,dataType:"browser-object"}}_deduceParameters(t){let{format:r,data:n}=t,{width:o,height:s,dataFormat:a,type:_,compressed:f}=t,u=It(r,this.device.isWebGL2);return a=a||u.dataFormat,_=_||u.type,f=f||u.compressed,{width:o,height:s}=this._deduceImageSize(n,o,s),{dataFormat:a,type:_,compressed:f,width:o,height:s,format:r,data:n}}_deduceImageSize(t,r,n){let o;return typeof ImageData<"u"&&t instanceof ImageData?o={width:t.width,height:t.height}:typeof HTMLImageElement<"u"&&t instanceof HTMLImageElement?o={width:t.naturalWidth,height:t.naturalHeight}:typeof HTMLCanvasElement<"u"&&t instanceof HTMLCanvasElement?o={width:t.width,height:t.height}:typeof ImageBitmap<"u"&&t instanceof ImageBitmap?o={width:t.width,height:t.height}:typeof HTMLVideoElement<"u"&&t instanceof HTMLVideoElement?o={width:t.videoWidth,height:t.videoHeight}:t?o={width:r,height:n}:o={width:r>=0?r:1,height:n>=0?n:1},(0,y.assert)(o,"Could not deduced texture size"),(0,y.assert)(r===void 0||o.width===r,"Deduced texture width does not match supplied width"),(0,y.assert)(n===void 0||o.height===n,"Deduced texture height does not match supplied height"),o}async setCubeMapImageData(t){let{gl:r}=this,{width:n,height:o,pixels:s,data:a,format:_=i.RGBA,type:f=i.UNSIGNED_BYTE}=t,u=s||a,l=await Promise.all(D.FACES.map(c=>{let E=u[c];return Promise.all(Array.isArray(E)?E:[E])}));this.bind(),D.FACES.forEach((c,E)=>{l[E].length>1&&this.props.mipmaps!==!1&&y.log.warn(`${this.id} has mipmap and multiple LODs.`)(),l[E].forEach((d,R)=>{n&&o?r.texImage2D(c,R,_,n,o,0,_,f,d):r.texImage2D(c,R,_,_,f,d)})}),this.unbind()}setImageDataForFace(t){let{face:r,width:n,height:o,pixels:s,data:a,format:_=i.RGBA,type:f=i.UNSIGNED_BYTE}=t,{gl:u}=this,l=s||a;return this.bind(),l instanceof Promise?l.then(c=>this.setImageDataForFace(Object.assign({},t,{face:r,data:c,pixels:c}))):this.width||this.height?u.texImage2D(r,0,_,n,o,0,_,f,l):u.texImage2D(r,0,_,_,f,l),this}setImageData3D(t){let{level:r=0,dataFormat:n,format:o,type:s,width:a,height:_,depth:f=1,offset:u=0,data:l,parameters:c={}}=t;this.trackDeallocatedMemory("Texture"),this.gl.bindTexture(this.target,this.handle);let E=It(o,this.device.isWebGL2);if(F(this.gl,c,()=>{ArrayBuffer.isView(l)&&this.gl.texImage3D(this.target,r,E.format,a,_,f,0,E.dataFormat,E.type,l),l instanceof k&&(this.gl.bindBuffer(i.PIXEL_UNPACK_BUFFER,l.handle),this.gl.texImage3D(this.target,r,n,a,_,f,0,o,s,u))}),l&&l.byteLength)this.trackAllocatedMemory(l.byteLength,"Texture");else{let d=nt(this.props.format,this.device.isWebGL2);this.trackAllocatedMemory(this.width*this.height*this.depth*d,"Texture")}return this.loaded=!0,this}_setSamplerParameters(t){if(this.device.isWebGL1&&Ct(this.width,this.height)&&(t=Pi(t)),!(0,Fi.isObjectEmpty)(t)){h_(t),this.gl.bindTexture(this.target,this.handle);for(let[r,n]of Object.entries(t)){let o=Number(r),s=n;switch(o){case i.TEXTURE_MIN_LOD:case i.TEXTURE_MAX_LOD:this.gl.texParameterf(this.target,o,s);break;default:this.gl.texParameteri(this.target,o,s);break}}this.gl.bindTexture(this.target,null)}}_getWebGL1NPOTParameterOverride(t,r){if(this.device.isWebGL1&&Ct(this.width,this.height))switch(t){case i.TEXTURE_MIN_FILTER:if(r!==i.LINEAR&&r!==i.NEAREST)return i.LINEAR;break;case i.TEXTURE_WRAP_S:case i.TEXTURE_WRAP_T:return i.CLAMP_TO_EDGE;default:break}return r}};D.FACES=[i.TEXTURE_CUBE_MAP_POSITIVE_X,i.TEXTURE_CUBE_MAP_NEGATIVE_X,i.TEXTURE_CUBE_MAP_POSITIVE_Y,i.TEXTURE_CUBE_MAP_NEGATIVE_Y,i.TEXTURE_CUBE_MAP_POSITIVE_Z,i.TEXTURE_CUBE_MAP_NEGATIVE_Z];function p_(e){switch(e.dimension){case"2d":return i.TEXTURE_2D;case"cube":return i.TEXTURE_CUBE_MAP;case"2d-array":return i.TEXTURE_2D_ARRAY;case"3d":return i.TEXTURE_3D;case"1d":case"cube-array":default:throw new Error(e.dimension)}}function Ct(e,t){return!e||!t?!1:!(0,y.isPowerOfTwo)(e)||!(0,y.isPowerOfTwo)(t)}function h_(e){y.log.log(1,"texture sampler parameters",e)()}var yi=p(g(),1);var ae=p(g(),1);var Ci=p(g(),1);function Mt(e,t){if(typeof t!="string")return t;let r=Number(t);if(!isNaN(r))return r;t=t.replace(/^.*\./,"");let n=e[t];return(0,Ci.assert)(n!==void 0,`Accessing undefined constant GL.${t}`),n}var Me="Resource subclass must define virtual methods",yt=class extends ae.Resource{constructor(t,r,n){super(t,r,n),this.device=void 0,this.gl=void 0,this.gl2=void 0,this._handle=void 0,this._bound=!1,this.byteLength=0,this.device=M.attach(t);let o=this.device.gl;$n(o);let{id:s}=r||{};this.gl=o,this.gl2=o,this.id=s||(0,ae.uid)(this.constructor.name),this._handle=r?.handle,this._handle===void 0&&(this._handle=this._createHandle()),this.byteLength=0}toString(){return`${this.constructor.name}(${this.id})`}get handle(){return this._handle}delete(){let{deleteChildren:t=!1}=arguments.length>0&&arguments[0]!==void 0?arguments[0]:{},r=this._handle&&this._deleteHandle(this._handle);return this._handle&&this.removeStats(),this._handle=null,r&&t&&r.filter(Boolean).forEach(n=>n.destroy()),this}bind(){let t=arguments.length>0&&arguments[0]!==void 0?arguments[0]:this.handle;if(typeof t!="function")return this._bindHandle(t),this;let r;return this._bound?r=t():(this._bindHandle(this.handle),this._bound=!0,r=t(),this._bound=!1,this._bindHandle(null)),r}unbind(){this.bind(null)}getParameter(t){let r=arguments.length>1&&arguments[1]!==void 0?arguments[1]:{};t=Mt(this.gl,t),(0,ae.assert)(t);let o=(this.constructor.PARAMETERS||{})[t];if(o){let s=S(this.gl);if(!((!("webgl2"in o)||s)&&(!("extension"in o)||this.gl.getExtension(o.extension)))){let _=o.webgl1,f="webgl2"in o?o.webgl2:o.webgl1;return s?f:_}}return this._getParameter(t,r)}getParameters(){let t=arguments.length>0&&arguments[0]!==void 0?arguments[0]:{},{parameters:r,keys:n}=t,o=this.constructor.PARAMETERS||{},s=S(this.gl),a={},_=r||Object.keys(o);for(let f of _){let u=o[f];if(u&&(!("webgl2"in u)||s)&&(!("extension"in u)||this.gl.getExtension(u.extension))){let c=n?this.device.getGLKey(f):f;a[c]=this.getParameter(f,t),n&&u.type==="GLenum"&&(a[c]=this.device.getGLKey(a[c]))}}return a}setParameter(t,r){t=Mt(this.gl,t),(0,ae.assert)(t);let o=(this.constructor.PARAMETERS||{})[t];if(o){let s=S(this.gl);if(!((!("webgl2"in o)||s)&&(!("extension"in o)||this.gl.getExtension(o.extension))))throw new Error("Parameter not available on this platform");o.type==="GLenum"&&(r=Mt(r))}return this._setParameter(t,r),this}setParameters(t){for(let r in t)this.setParameter(r,t[r]);return this}stubRemovedMethods(t,r,n){return(0,ae.stubRemovedMethods)(this,t,r,n)}initialize(t){}_createHandle(){throw new Error(Me)}_deleteHandle(){throw new Error(Me)}_bindHandle(t){throw new Error(Me)}_getOptsFromHandle(){throw new Error(Me)}_getParameter(t,r){throw new Error(Me)}_setParameter(t,r){throw new Error(Me)}};var Mi;Mi=Symbol.toStringTag;var $=class extends yt{get[Mi](){return"Renderbuffer"}get width(){return this.props.width}get height(){return this.props.height}get format(){return this.props.format}get samples(){return this.props.samples}get attachment(){}static isTextureFormatSupported(t,r){return Ti(t.gl,r)}constructor(t,r){if(typeof r.format=="number")throw new Error("Renderbuffer");super(t,r,$.defaultProps),this.glFormat=void 0,this.glFormat=rt(this.props.format,t.isWebGL2),this._initialize(this.props)}resize(t){(t.width!==this.width||t.height!==this.height)&&(Object.assign(this.props,{...t,format:this.format,samples:this.samples}),this._initialize(this.props))}_initialize(t){let{format:r,width:n,height:o,samples:s}=t;(0,yi.assert)(r,"Needs format"),this.trackDeallocatedMemory(),this.gl.bindRenderbuffer(i.RENDERBUFFER,this.handle),s!==0&&this.device.isWebGL2?this.gl2.renderbufferStorageMultisample(i.RENDERBUFFER,s,this.glFormat,n,o):this.gl.renderbufferStorage(i.RENDERBUFFER,this.glFormat,n,o),this.gl.bindRenderbuffer(i.RENDERBUFFER,null),this.trackAllocatedMemory(n*o*(s||1)*nt(this.glFormat,this.device.isWebGL2))}_createHandle(){return this.gl.createRenderbuffer()}_deleteHandle(){this.gl.deleteRenderbuffer(this.handle),this.trackDeallocatedMemory()}_bindHandle(t){this.gl.bindRenderbuffer(i.RENDERBUFFER,t)}};$.defaultProps={id:void 0,handle:void 0,userData:void 0,format:void 0,width:1,height:1,samples:0};var re=class extends xt.Framebuffer{get texture(){return this.colorAttachments[0]}constructor(t,r){super(t,r),this.device=void 0,this.gl=void 0,this.handle=void 0;let n=r.handle===null;if(this.device=t,this.gl=t.gl,this.handle=this.props.handle||n?this.props.handle:this.gl.createFramebuffer(),!n){t.setSpectorMetadata(this.handle,{id:this.props.id,props:this.props}),this.autoCreateAttachmentTextures(),this.gl.bindFramebuffer(i.FRAMEBUFFER,this.handle);for(let o=0;o<this.colorAttachments.length;++o){let s=this.colorAttachments[o],a=i.COLOR_ATTACHMENT0+o;s&&this._attachOne(a,s)}this.depthStencilAttachment&&this._attachOne(hi(this.depthStencilAttachment.format),this.depthStencilAttachment),this.gl.bindFramebuffer(i.FRAMEBUFFER,null)}r.check!==!1&&this._checkStatus()}destroy(){super.destroy(),!this.destroyed&&this.handle!==null&&this.gl.deleteFramebuffer(this.handle)}_checkStatus(){let{gl:t}=this,r=t.bindFramebuffer(i.FRAMEBUFFER,this.handle),n=t.checkFramebufferStatus(i.FRAMEBUFFER);if(t.bindFramebuffer(i.FRAMEBUFFER,r||null),n!==t.FRAMEBUFFER_COMPLETE)throw new Error(`Framebuffer ${S_(n)}`)}createDepthStencilTexture(t){return new $(this.device,{id:`${this.id}-depth-stencil`,format:t,width:this.width,height:this.height})}resizeAttachments(t,r){if(this.handle===null)return this.width=this.gl.drawingBufferWidth,this.height=this.gl.drawingBufferHeight,this;t===void 0&&(t=this.gl.drawingBufferWidth),r===void 0&&(r=this.gl.drawingBufferHeight);for(let n of this.colorAttachments)n.resize({width:t,height:r});return this.depthStencilAttachment&&this.depthStencilAttachment.resize({width:t,height:r}),this}_attachOne(t,r){if(r instanceof $)return this._attachWEBGLRenderbuffer(t,r),r;if(Array.isArray(r)){let[n,o=0,s=0]=r;return this._attachTexture(t,n,o,s),n}else if(r instanceof D)return this._attachTexture(t,r,0,0),r;throw new Error("attach")}_attachWEBGLRenderbuffer(t,r){this.gl.framebufferRenderbuffer(i.FRAMEBUFFER,t,i.RENDERBUFFER,r.handle)}_attachTexture(t,r,n,o){let{gl:s,gl2:a}=this.device;switch(s.bindTexture(r.target,r.handle),r.target){case i.TEXTURE_2D_ARRAY:case i.TEXTURE_3D:this.device.assertWebGL2(),a?.framebufferTextureLayer(i.FRAMEBUFFER,t,r.target,o,n);break;case i.TEXTURE_CUBE_MAP:let _=m_(n);s.framebufferTexture2D(i.FRAMEBUFFER,t,_,r.handle,o);break;case i.TEXTURE_2D:s.framebufferTexture2D(i.FRAMEBUFFER,t,i.TEXTURE_2D,r.handle,o);break;default:(0,xt.assert)(!1,"Illegal texture type")}s.bindTexture(r.target,null)}};function m_(e){return e<i.TEXTURE_CUBE_MAP_POSITIVE_X?e+i.TEXTURE_CUBE_MAP_POSITIVE_X:e}function S_(e){switch(e){case i.FRAMEBUFFER_COMPLETE:return"success";case i.FRAMEBUFFER_INCOMPLETE_ATTACHMENT:return"Mismatched attachments";case i.FRAMEBUFFER_INCOMPLETE_MISSING_ATTACHMENT:return"No attachments";case i.FRAMEBUFFER_INCOMPLETE_DIMENSIONS:return"Height/width mismatch";case i.FRAMEBUFFER_UNSUPPORTED:return"Unsupported or split attachments";case i.FRAMEBUFFER_INCOMPLETE_MULTISAMPLE:return"Samples mismatch";default:return`${e}`}}var Bt=class extends xi.CanvasContext{constructor(t,r){super(r),this.device=void 0,this.presentationSize=void 0,this._framebuffer=null,this.device=t,this.presentationSize=[-1,-1],this._setAutoCreatedCanvasId(`${this.device.id}-canvas`),this.update()}getCurrentFramebuffer(){return this.update(),this._framebuffer=this._framebuffer||new re(this.device,{handle:null}),this._framebuffer}update(){let t=this.getPixelSize();(t[0]!==this.presentationSize[0]||t[1]!==this.presentationSize[1])&&(this.presentationSize=t)}resize(t){if(this.canvas){let n=this.getDevicePixelRatio(t?.useDevicePixels);this.setDevicePixelRatio(n,t);return}let r=this.device.gl.getExtension("STACKGL_resize_drawingbuffer");r&&t&&"width"in t&&"height"in t&&r.resize(t.width,t.height)}commit(){}};var ne=p(g(),1),g_={spector:ne.log.get("spector")||ne.log.get("inspect")},O_="https://spectorcdn.babylonjs.com/spector.bundle.js",N_=1,X=null,Bi=!1;async function Di(e){if(!globalThis.SPECTOR)try{await(0,ne.loadScript)(O_)}catch(t){ne.log.warn(String(t))}}function Ui(e){var t,r;if(e={...g_,...e},!((t=e)!==null&&t!==void 0&&t.spector)||(!X&&globalThis.SPECTOR&&(ne.log.probe(N_,"SPECTOR found and initialized")(),X=new globalThis.SPECTOR.Spector,globalThis.luma&&(globalThis.luma.spector=X)),!X))return null;if(!Bi){var n,o;Bi=!0,X.spyCanvases(),(n=X)===null||n===void 0||n.onCaptureStarted.add(_=>ne.log.info("Spector capture started:",_)()),(o=X)===null||o===void 0||o.onCapture.add(_=>{var f,u,l;ne.log.info("Spector capture complete:",_)(),(f=X)===null||f===void 0||f.getResultUI(),(u=X)===null||u===void 0||u.resultView.display(),(l=X)===null||l===void 0||l.resultView.addCapture(_)})}if((r=e)!==null&&r!==void 0&&r.canvas){var s,a;if(typeof e.spector=="string"&&e.spector!==e.canvas.id)return X;(s=X)===null||s===void 0||s.startCapture((a=e)===null||a===void 0?void 0:a.canvas,500),new Promise(_=>setTimeout(_,2e3)).then(_=>{var f;ne.log.info("Spector capture stopped after 2 seconds")(),(f=X)===null||f===void 0||f.stopCapture()})}return X}var Ee=p(g(),1);var b_="https://unpkg.com/webgl-debug@2.0.1/index.js";function wi(e){return e.luma=e.luma||{},e.luma}async function Li(){Y()&&!globalThis.WebGLDebugUtils&&(globalThis.global=globalThis.global||globalThis,globalThis.global.module={},await(0,Ee.loadScript)(b_))}function Xi(e){let t=arguments.length>1&&arguments[1]!==void 0?arguments[1]:{};return e?t.debug?P_(e,t):I_(e):null}function I_(e){let t=wi(e);return t.realContext?t.realContext:e}function P_(e,t){if(!globalThis.WebGLDebugUtils)return Ee.log.warn("webgl-debug not loaded")(),e;let r=wi(e);if(r.debugContext)return r.debugContext;globalThis.WebGLDebugUtils.init({...i,...e});let n=globalThis.WebGLDebugUtils.makeDebugContext(e,v_.bind(null,t),F_.bind(null,t));for(let a in i)!(a in n)&&typeof i[a]=="number"&&(n[a]=i[a]);class o{}Object.setPrototypeOf(n,Object.getPrototypeOf(e)),Object.setPrototypeOf(o,n);let s=Object.create(o);return r.realContext=e,r.debugContext=s,s.debug=!0,s}function en(e,t){t=Array.from(t).map(n=>n===void 0?"undefined":n);let r=globalThis.WebGLDebugUtils.glFunctionArgsToString(e,t);return r=`${r.slice(0,100)}${r.length>100?"...":""}`,`gl.${e}(${r})`}function v_(e,t,r,n){n=Array.from(n).map(f=>f===void 0?"undefined":f);let o=globalThis.WebGLDebugUtils.glEnumToString(t),s=globalThis.WebGLDebugUtils.glFunctionArgsToString(r,n),a=e.webgl2?"gl2":"gl1",_=`${o} in ${a}.${r}(${s})`;Ee.log.error(_)();debugger;if(e.throwOnError)throw new Error(_)}function F_(e,t,r){let n="";if(Ee.log.level>=1&&(n=en(t,r),Ee.log.log(1,n)()),e.break&&e.break.length>0&&(n=n||en(t,r),e.break.every(s=>n.indexOf(s)!==-1)))debugger;for(let o of r)if(o===void 0){if(n=n||en(t,r),e.throwOnError)throw new Error(`Undefined argument: ${n}`);Ee.log.error(`Undefined argument: ${n}`)();debugger}}var K=p(g(),1);var Dt=p(g(),1);var C_="Failed to deduce GL constant from typed array";function ye(e){switch(ArrayBuffer.isView(e)?e.constructor:e){case Float32Array:return i.FLOAT;case Uint16Array:return i.UNSIGNED_SHORT;case Uint32Array:return i.UNSIGNED_INT;case Uint8Array:return i.UNSIGNED_BYTE;case Uint8ClampedArray:return i.UNSIGNED_BYTE;case Int8Array:return i.BYTE;case Int16Array:return i.SHORT;case Int32Array:return i.INT;default:throw new Error(C_)}}function de(e,t){let{clamped:r=!0}=t||{};switch(e){case i.FLOAT:return Float32Array;case i.UNSIGNED_SHORT:case i.UNSIGNED_SHORT_5_6_5:case i.UNSIGNED_SHORT_4_4_4_4:case i.UNSIGNED_SHORT_5_5_5_1:return Uint16Array;case i.UNSIGNED_INT:return Uint32Array;case i.UNSIGNED_BYTE:return r?Uint8ClampedArray:Uint8Array;case i.BYTE:return Int8Array;case i.SHORT:return Int16Array;case i.INT:return Int32Array;default:throw new Error("Failed to deduce typed array type from GL constant")}}var M_={offset:0,stride:0,type:i.FLOAT,size:1,divisor:0,normalized:!1,integer:!1},y_={deprecatedProps:{instanced:"divisor",isInstanced:"divisor"}},L=class{static getBytesPerElement(t){return de(t.type||i.FLOAT).BYTES_PER_ELEMENT}static getBytesPerVertex(t){return(0,Dt.assert)(t.size),de(t.type||i.FLOAT).BYTES_PER_ELEMENT*t.size}static resolve(){for(var t=arguments.length,r=new Array(t),n=0;n<t;n++)r[n]=arguments[n];return new L(M_,...r)}constructor(){this.offset=void 0,this.stride=void 0,this.type=void 0,this.size=void 0,this.divisor=void 0,this.normalized=void 0,this.integer=void 0,this.buffer=void 0,this.index=void 0;for(var t=arguments.length,r=new Array(t),n=0;n<t;n++)r[n]=arguments[n];r.forEach(o=>this._assign(o)),Object.freeze(this)}toString(){return JSON.stringify(this)}get BYTES_PER_ELEMENT(){return L.getBytesPerElement(this)}get BYTES_PER_VERTEX(){return L.getBytesPerVertex(this)}_assign(){let t=arguments.length>0&&arguments[0]!==void 0?arguments[0]:{};return t=(0,Dt.checkProps)("Accessor",t,y_),t.type!==void 0&&(this.type=t.type,(t.type===i.INT||t.type===i.UNSIGNED_INT)&&(this.integer=!0)),t.size!==void 0&&(this.size=t.size),t.offset!==void 0&&(this.offset=t.offset),t.stride!==void 0&&(this.stride=t.stride),t.normalize!==void 0&&(this.normalized=t.normalize),t.normalized!==void 0&&(this.normalized=t.normalized),t.integer!==void 0&&(this.integer=t.integer),t.divisor!==void 0&&(this.divisor=t.divisor),t.buffer!==void 0&&(this.buffer=t.buffer),t.index!==void 0&&(typeof t.index=="boolean"?this.index=t.index?1:0:this.index=t.index),t.instanced!==void 0&&(this.divisor=t.instanced?1:0),t.isInstanced!==void 0&&(this.divisor=t.isInstanced?1:0),this.offset===void 0&&delete this.offset,this.stride===void 0&&delete this.stride,this.type===void 0&&delete this.type,this.size===void 0&&delete this.size,this.divisor===void 0&&delete this.divisor,this.normalized===void 0&&delete this.normalized,this.integer===void 0&&delete this.integer,this.buffer===void 0&&delete this.buffer,this.index===void 0&&delete this.index,this}};var Hi=10,Vi={offset:"accessor.offset",stride:"accessor.stride",type:"accessor.type",size:"accessor.size",divisor:"accessor.divisor",normalized:"accessor.normalized",integer:"accessor.integer",instanced:"accessor.divisor",isInstanced:"accessor.divisor"},Wi={removedProps:{},replacedProps:{bytes:"byteLength"},deprecatedProps:Vi},x_={removedProps:Vi};function B_(e){return ArrayBuffer.isView(e)?{data:e}:typeof e=="number"?{byteLength:e}:(e=(0,K.checkProps)("Buffer",e,Wi),{...e})}var Ut=class extends k{constructor(t){let r=arguments.length>1&&arguments[1]!==void 0?arguments[1]:{};if(super(M.attach(t),B_(r)),this.accessor=void 0,this.setAccessor(Object.assign({},r,r.accessor)),this.props.data){let n=ye(this.props.data);(0,K.assert)(n),this.setAccessor(new L(this.accessor,{type:n}))}Object.seal(this)}getElementCount(){let t=arguments.length>0&&arguments[0]!==void 0?arguments[0]:this.accessor;return Math.round(this.byteLength/L.getBytesPerElement(t))}getVertexCount(){let t=arguments.length>0&&arguments[0]!==void 0?arguments[0]:this.accessor;return Math.round(this.byteLength/L.getBytesPerVertex(t))}initialize(){let t=arguments.length>0&&arguments[0]!==void 0?arguments[0]:{};return ArrayBuffer.isView(t)&&(t={data:t}),Number.isFinite(t)&&(t={byteLength:t}),t=(0,K.checkProps)("Buffer",t,Wi),this.glUsage=t.glUsage||i.STATIC_DRAW,this.debugData=null,this.setAccessor(Object.assign({},t,t.accessor)),t.data?this._setData(t.data,t.byteOffset,t.byteLength):this._setByteLength(t.byteLength||0),this}setProps(t){return t=(0,K.checkProps)("Buffer",t,x_),"accessor"in t&&this.setAccessor(t.accessor),this}setAccessor(t){return t=Object.assign({},t),delete t.buffer,this.accessor=new L(t),this}reallocate(t){return t>this.byteLength?(this._setByteLength(t),!0):(this.bytesUsed=t,!1)}setData(t){return this.initialize(t)}subData(t){ArrayBuffer.isView(t)&&(t={data:t});let{data:r,offset:n=0,srcOffset:o=0}=t,s=t.byteLength||t.length;(0,K.assert)(r);let a=this.gl.webgl2?i.COPY_WRITE_BUFFER:this.glTarget;return this.gl.bindBuffer(a,this.handle),o!==0||s!==void 0?(St(this.gl),this.gl.bufferSubData(this.glTarget,n,r,o,s)):this.gl.bufferSubData(a,n,r),this.gl.bindBuffer(a,null),this.debugData=null,this._inferType(r),this}copyData(t){let{sourceBuffer:r,readOffset:n=0,writeOffset:o=0,size:s}=t,{gl:a,gl2:_}=this;return St(a),a.bindBuffer(i.COPY_READ_BUFFER,r.handle),a.bindBuffer(i.COPY_WRITE_BUFFER,this.handle),_?.copyBufferSubData(i.COPY_READ_BUFFER,i.COPY_WRITE_BUFFER,n,o,s),a.bindBuffer(i.COPY_READ_BUFFER,null),a.bindBuffer(i.COPY_WRITE_BUFFER,null),this.debugData=null,this}getData(t){var r;let{dstData:n=null,length:o=0}=t||{},{srcByteOffset:s=0,dstOffset:a=0}=t||{};St(this.gl);let _=de(this.accessor.type||i.FLOAT,{clamped:!1}),f=this._getAvailableElementCount(s),u=a,l,c;n?(c=n.length,l=c-u):(l=Math.min(f,o||f),c=u+l);let E=Math.min(f,l);return o=o||E,(0,K.assert)(o<=E),n=n||new _(c),this.gl.bindBuffer(i.COPY_READ_BUFFER,this.handle),(r=this.gl2)===null||r===void 0||r.getBufferSubData(i.COPY_READ_BUFFER,s,n,a,o),this.gl.bindBuffer(i.COPY_READ_BUFFER,null),n}bind(t){let{glTarget:r=this.glTarget,index:n=this.accessor&&this.accessor.index,offset:o=0,size:s}=t||{};if(r===i.UNIFORM_BUFFER||r===i.TRANSFORM_FEEDBACK_BUFFER)if(s!==void 0){var a;(a=this.gl2)===null||a===void 0||a.bindBufferRange(r,n,this.handle,o,s)}else{var _;(0,K.assert)(o===0),(_=this.gl2)===null||_===void 0||_.bindBufferBase(r,n,this.handle)}else this.gl.bindBuffer(r,this.handle);return this}unbind(t){let{glTarget:r=this.glTarget,index:n=this.accessor&&this.accessor.index}=t||{};if(r===i.UNIFORM_BUFFER||r===i.TRANSFORM_FEEDBACK_BUFFER){var s;(s=this.gl2)===null||s===void 0||s.bindBufferBase(r,n,null)}else this.gl.bindBuffer(r,null);return this}getDebugData(){return this.debugData?{data:this.debugData,changed:!1}:(this.debugData=this.getData({length:Math.min(Hi,this.byteLength)}),{data:this.debugData,changed:!0})}invalidateDebugData(){this.debugData=null}_setData(t){let r=arguments.length>1&&arguments[1]!==void 0?arguments[1]:0,n=arguments.length>2&&arguments[2]!==void 0?arguments[2]:t.byteLength+r;(0,K.assert)(ArrayBuffer.isView(t)),this.trackDeallocatedMemory();let o=this._getTarget();this.gl.bindBuffer(o,this.handle),this.gl.bufferData(o,n,this.glUsage),this.gl.bufferSubData(o,r,t),this.gl.bindBuffer(o,null),this.debugData=t.slice(0,Hi),this.bytesUsed=n,this.byteLength=n,this.trackAllocatedMemory(n);let s=ye(t);return(0,K.assert)(s),this.setAccessor(new L(this.accessor,{type:s})),this}_setByteLength(t){(0,K.assert)(t>=0),this.trackDeallocatedMemory();let r=t;t===0&&(r=new Float32Array(0));let n=this._getTarget();return this.gl.bindBuffer(n,this.handle),this.gl.bufferData(n,r,this.glUsage),this.gl.bindBuffer(n,null),this.debugData=null,this.bytesUsed=t,this.byteLength=t,this.trackAllocatedMemory(t),this}_getTarget(){return this.gl.webgl2?i.COPY_WRITE_BUFFER:this.glTarget}_getAvailableElementCount(t){let r=de(this.accessor.type||i.FLOAT,{clamped:!1}),n=t/r.BYTES_PER_ELEMENT;return this.getElementCount()-n}_inferType(t){this.accessor.type||this.setAccessor(new L(this.accessor,{type:ye(t)}))}getParameter(t){this.gl.bindBuffer(this.glTarget,this.handle);let r=this.gl.getBufferParameter(this.glTarget,t);return this.gl.bindBuffer(this.glTarget,null),r}get type(){return this.accessor.type}};var Re=p(g(),1);function tn(e,t){return{name:D_(e,t),language:"glsl",version:U_(e)}}function D_(e){let t=arguments.length>1&&arguments[1]!==void 0?arguments[1]:"unnamed",n=/#define[\s*]SHADER_NAME[\s*]([A-Za-z0-9_-]+)[\s*]/.exec(e);return n?n[1]:t}function U_(e){let t=100,r=e.match(/[^\s]+/g);if(r&&r.length>=2&&r[0]==="#version"){let n=parseInt(r[1],10);Number.isFinite(n)&&(t=n)}return t}var w_=["warning","error","info"];function rn(e){let t=e.split(/\r?\n/),r=[];for(let n of t){if(n.length<=1)continue;let o=n.split(":"),[s,a,_,...f]=o,u=parseInt(_,10);isNaN(u)&&(u=0);let l=parseInt(a,10);isNaN(l)&&(l=0);let c=s.toLowerCase(),E=w_.includes(c)?c:"info";r.push({message:f.join(":").trim(),type:E,lineNum:u,linePos:l})}return r}var wt=class extends Re.Shader{constructor(t,r){switch(super(t,{id:L_(r),...r}),this.device=void 0,this.handle=void 0,this.device=t,this.props.stage){case"vertex":this.handle=this.props.handle||this.device.gl.createShader(i.VERTEX_SHADER);break;case"fragment":this.handle=this.props.handle||this.device.gl.createShader(i.FRAGMENT_SHADER);break;default:throw new Error(this.props.stage)}this._compile(this.source)}destroy(){this.handle&&(this.removeStats(),this.device.gl.deleteShader(this.handle),this.destroyed=!0)}async compilationInfo(){let t=this.device.gl.getShaderInfoLog(this.handle);return t?rn(t):[]}_compile(t){t=(s=>s.startsWith("#version ")?s:`#version 100
72
+ ${s}`)(t);let{gl:n}=this.device;if(n.shaderSource(this.handle,t),n.compileShader(this.handle),!n.getShaderParameter(this.handle,i.COMPILE_STATUS)){let s=n.getShaderInfoLog(this.handle),_=(s?rn(s):[]).filter(c=>c.type==="error"),f=(0,Re.formatCompilerLog)(_,t,{showSourceCode:!0}),u=tn(t).name,l=`${this.stage} shader ${u}`;throw Re.log.error(`GLSL compilation errors in ${l}
73
+ ${f}`)(),new Error(`GLSL compilation errors in ${u}`)}}};function L_(e){return tn(e.source).name||e.id||(0,Re.uid)(`unnamed ${e.stage}-shader`)}var ki=p(g(),1);var X_=256,H_=1024,V_=16384,nn=6144,Lt=class extends ki.RenderPass{constructor(t,r){super(t,r),this.device=void 0,this.glParameters=void 0,this.device=t,this.setParameters(this.props.parameters),this.clear()}end(){}pushDebugGroup(t){}popDebugGroup(){}insertDebugMarker(t){}setParameters(){let t=arguments.length>0&&arguments[0]!==void 0?arguments[0]:{},r={};this.props.framebuffer&&(r.framebuffer=this.props.framebuffer),this.props.depthReadOnly&&(r.depthMask=!this.props.depthReadOnly),r.stencilMask=this.props.stencilReadOnly?0:1,r[i.RASTERIZER_DISCARD]=this.props.discard,t.viewport&&(t.viewport.length>=6?(r.viewport=t.viewport.slice(0,4),r.depthRange=[t.viewport[4],t.viewport[5]]):r.viewport=t.viewport),r.scissorTest=Boolean(t.scissorRect),t.scissorRect&&(r.scissor=t.scissorRect),t.blendConstant&&(r.blendColor=t.blendConstant),t.stencilReference&&(console.warn("RenderPassParameters.stencilReference not yet implemented in WebGL"),t[i.STENCIL_REF]=t.stencilReference),this.glParameters=r,ce(this.device,r)}clear(){let t={...this.glParameters},r=0;this.props.clearColor!==!1&&(r|=V_,t.clearColor=this.props.clearColor),this.props.clearDepth!==!1&&(r|=X_,t.clearDepth=this.props.clearDepth),this.props.clearStencil!==!1&&(r|=H_,t.clearStencil=this.props.clearStencil),r!==0&&F(this.device,t,()=>{this.device.gl.clear(r)})}clearColorBuffer(){let t=arguments.length>0&&arguments[0]!==void 0?arguments[0]:0,r=arguments.length>1&&arguments[1]!==void 0?arguments[1]:[0,0,0,0];F(this.device.gl2,{framebuffer:this.props.framebuffer},()=>{switch(r.constructor){case Int32Array:this.device.gl2.clearBufferiv(nn,t,r);break;case Uint32Array:this.device.gl2.clearBufferuiv(nn,t,r);break;case Float32Array:default:this.device.gl2.clearBufferfv(nn,t,r);break}})}};var V=p(g(),1),Zi=p(g(),1);function Ki(e){return W_.includes(e)}var W_=[i.SAMPLER_2D,i.SAMPLER_CUBE,i.SAMPLER_3D,i.SAMPLER_2D_SHADOW,i.SAMPLER_2D_ARRAY,i.SAMPLER_2D_ARRAY_SHADOW,i.SAMPLER_CUBE_SHADOW,i.INT_SAMPLER_2D,i.INT_SAMPLER_3D,i.INT_SAMPLER_CUBE,i.INT_SAMPLER_2D_ARRAY,i.UNSIGNED_INT_SAMPLER_2D,i.UNSIGNED_INT_SAMPLER_3D,i.UNSIGNED_INT_SAMPLER_CUBE,i.UNSIGNED_INT_SAMPLER_2D_ARRAY],ji={[i.FLOAT]:[i.FLOAT,1,"float","f32","float32"],[i.FLOAT_VEC2]:[i.FLOAT,2,"vec2","vec2<f32>","float32x2"],[i.FLOAT_VEC3]:[i.FLOAT,3,"vec3","vec3<f32>","float32x3"],[i.FLOAT_VEC4]:[i.FLOAT,4,"vec4","vec4<f32>","float32x4"],[i.INT]:[i.INT,1,"int","i32","sint32"],[i.INT_VEC2]:[i.INT,2,"ivec2","vec2<i32>","sint32x2"],[i.INT_VEC3]:[i.INT,3,"ivec3","vec3<i32>","sint32x3"],[i.INT_VEC4]:[i.INT,4,"ivec4","vec4<i32>","sint32x4"],[i.UNSIGNED_INT]:[i.UNSIGNED_INT,1,"uint","u32","uint32"],[i.UNSIGNED_INT_VEC2]:[i.UNSIGNED_INT,2,"uvec2","vec2<u32>","uint32x2"],[i.UNSIGNED_INT_VEC3]:[i.UNSIGNED_INT,3,"uvec3","vec3<u32>","uint32x3"],[i.UNSIGNED_INT_VEC4]:[i.UNSIGNED_INT,4,"uvec4","vec4<u32>","uint32x4"],[i.BOOL]:[i.FLOAT,1,"bool","f32","float32"],[i.BOOL_VEC2]:[i.FLOAT,2,"bvec2","vec2<f32>","float32x2"],[i.BOOL_VEC3]:[i.FLOAT,3,"bvec3","vec3<f32>","float32x3"],[i.BOOL_VEC4]:[i.FLOAT,4,"bvec4","vec4<f32>","float32x4"],[i.FLOAT_MAT2]:[i.FLOAT,8,"mat2","mat2x2<f32>"],[i.FLOAT_MAT2x3]:[i.FLOAT,8,"mat2x3","mat2x3<f32>"],[i.FLOAT_MAT2x4]:[i.FLOAT,8,"mat2x4","mat2x4<f32>"],[i.FLOAT_MAT3x2]:[i.FLOAT,12,"mat3x2","mat3x2<f32>"],[i.FLOAT_MAT3]:[i.FLOAT,12,"mat3","mat3x3<f32>"],[i.FLOAT_MAT3x4]:[i.FLOAT,12,"mat3x4","mat3x4<f32>"],[i.FLOAT_MAT4x2]:[i.FLOAT,16,"mat4x2","mat4x2<f32>"],[i.FLOAT_MAT4x3]:[i.FLOAT,16,"mat4x3","mat4x3<f32>"],[i.FLOAT_MAT4]:[i.FLOAT,16,"mat4","mat4x4<f32>"]};function on(e){let t=ji[e];if(!t)throw new Error("uniform");let[r,n,,o]=t;return{format:o,components:n,glType:r}}function Yi(e){let t=ji[e];if(!t)throw new Error("attribute");let[,r,,n,o]=t;return{attributeType:n,vertexFormat:o,components:r}}function zi(e,t){let r={attributes:[],bindings:[]};r.attributes=k_(e,t);let n=Y_(e,t);for(let _ of n){let f=_.uniforms.map(u=>({name:u.name,format:u.format,byteOffset:u.byteOffset,byteStride:u.byteStride,arrayLength:u.arrayLength}));r.bindings.push({type:"uniform",name:_.name,location:_.location,visibility:(_.vertex?1:0)&(_.fragment?2:0),minBindingSize:_.byteLength,uniforms:f})}let o=j_(e,t),s=0;for(let _ of o)if(Ki(_.type)){let{viewDimension:f,sampleType:u}=G_(_.type);r.bindings.push({type:"texture",name:_.name,location:s,viewDimension:f,sampleType:u}),_.textureUnit=s,s+=1}o.length&&(r.uniforms=o);let a=K_(e,t);return a!=null&&a.length&&(r.varyings=a),r}function k_(e,t){let r=[],n=e.getProgramParameter(t,e.ACTIVE_ATTRIBUTES);for(let o=0;o<n;o++){let s=e.getActiveAttrib(t,o);if(!s)throw new Error("activeInfo");let{name:a,type:_}=s,f=e.getAttribLocation(t,a);if(f>=0){let{attributeType:u}=Yi(_),l=/instance/i.test(a)?"instance":"vertex";r.push({name:a,location:f,stepMode:l,type:u})}}return r.sort((o,s)=>o.location-s.location),r}function K_(e,t){if(!S(e))return[];let r=e,n=[],o=e.getProgramParameter(t,i.TRANSFORM_FEEDBACK_VARYINGS);for(let s=0;s<o;s++){let a=r.getTransformFeedbackVarying(t,s);if(!a)throw new Error("activeInfo");let{name:_,type:f,size:u}=a,{glType:l,components:c}=on(f),E=new L({type:l,size:u*c}),d={location:s,name:_,accessor:E};n.push(d)}return n.sort((s,a)=>s.location-a.location),n}function j_(e,t){let r=[],n=e.getProgramParameter(t,i.ACTIVE_UNIFORMS);for(let o=0;o<n;o++){let s=e.getActiveUniform(t,o);if(!s)throw new Error("activeInfo");let{name:a,size:_,type:f}=s,{name:u,isArray:l}=$_(a),c=e.getUniformLocation(t,u),E={location:c,name:u,size:_,type:f,isArray:l};if(r.push(E),E.size>1)for(let d=0;d<E.size;d++){let R=`${u}[${d}]`;c=e.getUniformLocation(t,R);let A={...E,name:R,location:c};r.push(A)}}return r}function Y_(e,t){if(!S(e))return[];let r=e,n=(a,_)=>r.getActiveUniformBlockParameter(t,a,_),o=[],s=r.getProgramParameter(t,i.ACTIVE_UNIFORM_BLOCKS);for(let a=0;a<s;a++){let _={name:r.getActiveUniformBlockName(t,a)||"",location:n(a,i.UNIFORM_BLOCK_BINDING),byteLength:n(a,i.UNIFORM_BLOCK_DATA_SIZE),vertex:n(a,i.UNIFORM_BLOCK_REFERENCED_BY_VERTEX_SHADER),fragment:n(a,i.UNIFORM_BLOCK_REFERENCED_BY_FRAGMENT_SHADER),uniformCount:n(a,i.UNIFORM_BLOCK_ACTIVE_UNIFORMS),uniforms:[]},f=n(a,i.UNIFORM_BLOCK_ACTIVE_UNIFORM_INDICES)||[],u=r.getActiveUniforms(t,f,i.UNIFORM_TYPE),l=r.getActiveUniforms(t,f,i.UNIFORM_SIZE),c=r.getActiveUniforms(t,f,i.UNIFORM_OFFSET),E=r.getActiveUniforms(t,f,i.UNIFORM_ARRAY_STRIDE);for(let d=0;d<_.uniformCount;++d){let R=r.getActiveUniform(t,f[d]);if(!R)throw new Error("activeInfo");_.uniforms.push({name:R.name,format:on(u[d]).format,type:u[d],arrayLength:l[d],byteOffset:c[d],byteStride:E[d]})}o.push(_)}return o.sort((a,_)=>a.location-_.location),o}var z_={[i.SAMPLER_2D]:["2d","float"],[i.SAMPLER_CUBE]:["cube","float"],[i.SAMPLER_3D]:["3d","float"],[i.SAMPLER_2D_SHADOW]:["3d","depth"],[i.SAMPLER_2D_ARRAY]:["2d-array","float"],[i.SAMPLER_2D_ARRAY_SHADOW]:["2d-array","depth"],[i.SAMPLER_CUBE_SHADOW]:["cube","float"],[i.INT_SAMPLER_2D]:["2d","sint"],[i.INT_SAMPLER_3D]:["3d","sint"],[i.INT_SAMPLER_CUBE]:["cube","sint"],[i.INT_SAMPLER_2D_ARRAY]:["2d-array","uint"],[i.UNSIGNED_INT_SAMPLER_2D]:["2d","uint"],[i.UNSIGNED_INT_SAMPLER_3D]:["3d","uint"],[i.UNSIGNED_INT_SAMPLER_CUBE]:["cube","uint"],[i.UNSIGNED_INT_SAMPLER_2D_ARRAY]:["2d-array","uint"]};function G_(e){let t=z_[e];if(!t)throw new Error("sampler");let[r,n]=t;return{viewDimension:r,sampleType:n}}function $_(e){if(e[e.length-1]!=="]")return{name:e,length:1,isArray:!1};let r=/([^[]*)(\[[0-9]+\])?/.exec(e);if(!r||r.length<2)throw new Error(`Failed to parse GLSL uniform name ${e}`);return{name:r[1],length:r[2]?1:0,isArray:Boolean(r[2])}}function Gi(e,t,r,n){let o=e,s=n;s===!0&&(s=1),s===!1&&(s=0);let a=typeof s=="number"?[s]:s;switch(r){case i.SAMPLER_2D:case i.SAMPLER_CUBE:case i.SAMPLER_3D:case i.SAMPLER_2D_SHADOW:case i.SAMPLER_2D_ARRAY:case i.SAMPLER_2D_ARRAY_SHADOW:case i.SAMPLER_CUBE_SHADOW:case i.INT_SAMPLER_2D:case i.INT_SAMPLER_3D:case i.INT_SAMPLER_CUBE:case i.INT_SAMPLER_2D_ARRAY:case i.UNSIGNED_INT_SAMPLER_2D:case i.UNSIGNED_INT_SAMPLER_3D:case i.UNSIGNED_INT_SAMPLER_CUBE:case i.UNSIGNED_INT_SAMPLER_2D_ARRAY:if(typeof n!="number")throw new Error("samplers must be set to integers");return e.uniform1i(t,n);case i.FLOAT:return e.uniform1fv(t,a);case i.FLOAT_VEC2:return e.uniform2fv(t,a);case i.FLOAT_VEC3:return e.uniform3fv(t,a);case i.FLOAT_VEC4:return e.uniform4fv(t,a);case i.INT:return e.uniform1iv(t,a);case i.INT_VEC2:return e.uniform2iv(t,a);case i.INT_VEC3:return e.uniform3iv(t,a);case i.INT_VEC4:return e.uniform4iv(t,a);case i.BOOL:return e.uniform1iv(t,a);case i.BOOL_VEC2:return e.uniform2iv(t,a);case i.BOOL_VEC3:return e.uniform3iv(t,a);case i.BOOL_VEC4:return e.uniform4iv(t,a);case i.UNSIGNED_INT:return o.uniform1uiv(t,a,1);case i.UNSIGNED_INT_VEC2:return o.uniform2uiv(t,a,2);case i.UNSIGNED_INT_VEC3:return o.uniform3uiv(t,a,3);case i.UNSIGNED_INT_VEC4:return o.uniform4uiv(t,a,4);case i.FLOAT_MAT2:return e.uniformMatrix2fv(t,!1,a);case i.FLOAT_MAT3:return e.uniformMatrix3fv(t,!1,a);case i.FLOAT_MAT4:return e.uniformMatrix4fv(t,!1,a);case i.FLOAT_MAT2x3:return o.uniformMatrix2x3fv(t,!1,a);case i.FLOAT_MAT2x4:return o.uniformMatrix2x4fv(t,!1,a);case i.FLOAT_MAT3x2:return o.uniformMatrix3x2fv(t,!1,a);case i.FLOAT_MAT3x4:return o.uniformMatrix3x4fv(t,!1,a);case i.FLOAT_MAT4x2:return o.uniformMatrix4x2fv(t,!1,a);case i.FLOAT_MAT4x3:return o.uniformMatrix4x3fv(t,!1,a)}throw new Error("Illegal uniform")}var $i=4,Xt=class extends V.RenderPipeline{constructor(t,r){super(t,r),this.device=void 0,this.handle=void 0,this.vs=void 0,this.fs=void 0,this.introspectedLayout=void 0,this.uniforms={},this.bindings={},this.varyings=null,this._textureUniforms={},this._textureIndexCounter=0,this._uniformCount=0,this._uniformSetters={},this.device=t,this.handle=this.props.handle||this.device.gl.createProgram(),this.device.setSpectorMetadata(this.handle,{id:this.props.id}),this.vs=(0,V.cast)(r.vs),this.fs=(0,V.cast)(r.fs);let{varyings:n,bufferMode:o=i.SEPARATE_ATTRIBS}=r;if(n&&n.length>0){var s;this.device.assertWebGL2(),this.varyings=n,(s=this.device.gl2)===null||s===void 0||s.transformFeedbackVaryings(this.handle,n,o)}this._compileAndLink(),this.introspectedLayout=zi(this.device.gl,this.handle),this.shaderLayout=(0,Zi.mergeShaderLayout)(this.introspectedLayout,r.shaderLayout)}destroy(){this.handle&&(this.device.gl.deleteProgram(this.handle),this.destroyed=!0)}setBindings(t){for(let[r,n]of Object.entries(t)){let o=this.shaderLayout.bindings.find(s=>s.name===r);if(!o){let s=this.shaderLayout.bindings.map(a=>`"${a.name}"`).join(", ");V.log.warn(`Unknown binding "${r}" in render pipeline "${this.id}", expected one of ${s}`)();continue}switch(n||V.log.warn(`Unsetting binding "${r}" in render pipeline "${this.id}"`)(),o.type){case"uniform":if(!(n instanceof k)&&!(n.buffer instanceof k))throw new Error("buffer value");break;case"texture":if(!(n instanceof D||n instanceof re))throw new Error("texture value");break;case"sampler":V.log.warn(`Ignoring sampler ${r}`)();break;default:throw new Error(o.type)}this.bindings[r]=n}}setUniforms(t){Object.assign(this.uniforms,t)}draw(t){var r;let{renderPass:n,vertexArray:o,vertexCount:s,instanceCount:a,firstVertex:_=0}=t,f=Z_(this.props.topology),u=Boolean(o.indexBuffer),l=(r=o.indexBuffer)===null||r===void 0?void 0:r.glIndexType,c=Number(a)>0;if(!this._areTexturesRenderable()||s===0)return!1;this.device.gl.useProgram(this.handle),o.bindBeforeRender(n);let E=q_(this.props.topology),d=null;d&&d.begin(E),this._applyBindings(),this._applyUniforms();let R=n;return bi(this.device,this.props.parameters,R.glParameters,()=>{if(u&&c){var A;(A=this.device.gl2)===null||A===void 0||A.drawElementsInstanced(f,s||0,l,_,a||0)}else if(u)this.device.gl.drawElements(f,s||0,l,_);else if(c){var T;(T=this.device.gl2)===null||T===void 0||T.drawArraysInstanced(f,_,s||0,a||0)}else this.device.gl.drawArrays(f,_,s||0);d&&d.end()}),o.unbindAfterRender(n),!0}_compileAndLink(){let{gl:t}=this.device;if(t.attachShader(this.handle,this.vs.handle),t.attachShader(this.handle,this.fs.handle),V.log.time($i,`linkProgram for ${this.id}`)(),t.linkProgram(this.handle),V.log.timeEnd($i,`linkProgram for ${this.id}`)(),!t.debug&&V.log.level,!t.getProgramParameter(this.handle,t.LINK_STATUS))throw new Error(`Error linking: ${t.getProgramInfoLog(this.handle)}`);if(t.validateProgram(this.handle),!t.getProgramParameter(this.handle,t.VALIDATE_STATUS))throw new Error(`Error validating: ${t.getProgramInfoLog(this.handle)}`)}_areTexturesRenderable(){let t=!0;for(let[,r]of Object.entries(this._textureUniforms))r.update(),t=t&&r.loaded;for(let[,r]of Object.entries(this.bindings))r.loaded!==void 0&&(t=t&&r.loaded);return t}_applyBindings(){this.device.gl.useProgram(this.handle);let{gl2:t}=this.device;if(!t)throw new Error("bindings");let r=0,n=0;for(let o of this.shaderLayout.bindings){let s=this.bindings[o.name];if(!s)throw new Error(`No value for binding ${o.name} in ${this.id}`);switch(o.type){case"uniform":let{name:a}=o,_=t.getUniformBlockIndex(this.handle,a);if(_===i.INVALID_INDEX)throw new Error(`Invalid uniform block name ${a}`);t.uniformBlockBinding(this.handle,n,_),s instanceof k?t.bindBufferBase(i.UNIFORM_BUFFER,n,s.handle):t.bindBufferRange(i.UNIFORM_BUFFER,n,s.buffer.handle,s.offset||0,s.size||s.buffer.byteLength-s.offset),n+=1;break;case"texture":if(!(s instanceof D||s instanceof re))throw new Error("texture");let f;if(s instanceof D)f=s;else if(s instanceof re&&s.colorAttachments[0]instanceof D)V.log.warn("Passing framebuffer in texture binding may be deprecated. Use fbo.colorAttachments[0] instead")(),f=s.colorAttachments[0];else throw new Error("No texture");t.activeTexture(i.TEXTURE0+r),t.bindTexture(f.target,f.handle),r+=1;break;case"sampler":break;case"storage":case"read-only-storage":throw new Error(`binding type '${o.type}' not supported in WebGL`)}}}_applyUniforms(){for(let r of this.shaderLayout.uniforms||[]){var t;let{name:n,location:o,type:s,textureUnit:a}=r,_=(t=this.uniforms[n])!==null&&t!==void 0?t:a;_!==void 0&&Gi(this.device.gl,o,s,_)}}};function Z_(e){switch(e){case"point-list":return i.POINTS;case"line-list":return i.LINES;case"line-strip":return i.LINE_STRIP;case"line-loop-webgl":return i.LINE_LOOP;case"triangle-list":return i.TRIANGLES;case"triangle-strip":return i.TRIANGLE_STRIP;case"triangle-fan-webgl":return i.TRIANGLE_FAN;default:throw new Error(e)}}function q_(e){switch(e){case"point-list":return i.POINTS;case"line-list":return i.LINES;case"line-strip":return i.LINES;case"line-loop-webgl":return i.LINES;case"triangle-list":return i.TRIANGLES;case"triangle-strip":return i.TRIANGLES;case"triangle-fan-webgl":return i.TRIANGLES;default:throw new Error(e)}}var Qi=p(g(),1);var Vt=p(g(),1);var Ht=class extends Vt.CommandBuffer{constructor(t){super({}),this.device=void 0,this.commands=[],this.device=t}submitCommands(){let t=arguments.length>0&&arguments[0]!==void 0?arguments[0]:this.commands;for(let r of t)switch(r.name){case"copy-buffer-to-buffer":Q_(this.device,r.options);break;case"copy-buffer-to-texture":J_(this.device,r.options);break;case"copy-texture-to-buffer":ef(this.device,r.options);break;case"copy-texture-to-texture":tf(this.device,r.options);break}}};function Q_(e,t){let r=t.source,n=t.destination,o=e.assertWebGL2();if(o){var s,a;o.bindBuffer(i.COPY_READ_BUFFER,r.handle),o.bindBuffer(i.COPY_WRITE_BUFFER,n.handle),o.copyBufferSubData(i.COPY_READ_BUFFER,i.COPY_WRITE_BUFFER,(s=t.sourceOffset)!==null&&s!==void 0?s:0,(a=t.destinationOffset)!==null&&a!==void 0?a:0,t.size),o.bindBuffer(i.COPY_READ_BUFFER,null),o.bindBuffer(i.COPY_WRITE_BUFFER,null)}else throw new Error("copyBufferToBuffer not implemented in WebGL1")}function J_(e,t){throw new Error("Not implemented")}function ef(e,t){let{source:r,mipLevel:n=0,aspect:o="all",width:s=t.source.width,height:a=t.source.height,depthOrArrayLayers:_=0,origin:f=[0,0],destination:u,byteOffset:l=0,bytesPerRow:c,rowsPerImage:E}=t;if(o!=="all")throw new Error("not supported");if(n!==0||_!==void 0||c||E)throw new Error("not implemented");let d=e.assertWebGL2(),{framebuffer:R,destroyFramebuffer:A}=qi(r);try{let T=u,h=s||R.width,m=a||R.height,N=i.RGBA,P=i.UNSIGNED_BYTE;d.bindBuffer(i.PIXEL_PACK_BUFFER,T.handle),d.bindFramebuffer(i.FRAMEBUFFER,R.handle),d.readPixels(f[0],f[1],h,m,N,P,l)}finally{d.bindBuffer(i.PIXEL_PACK_BUFFER,null),d.bindFramebuffer(i.FRAMEBUFFER,null),A&&R.destroy()}}function tf(e,t){let{source:r,origin:n=[0,0],destination:o}=t,{width:s=t.destination.width,height:a=t.destination.width}=t,_=0,f=i.RGBA,{framebuffer:u,destroyFramebuffer:l}=qi(r),[c,E]=n,d=!1;e.gl.bindFramebuffer(i.FRAMEBUFFER,u.handle);let R=null,A;if(o instanceof D)R=o,s=Number.isFinite(s)?s:R.width,a=Number.isFinite(a)?a:R.height,R.bind(0),A=R.destination;else throw new Error("whoops");return d||e.gl.copyTexImage2D(A,_,f,c,E,s,a,0),R&&R.unbind(),l&&u.destroy(),R}function qi(e){if(e instanceof Vt.Texture){let{width:t,height:r,id:n}=e;return{framebuffer:e.device.createFramebuffer({id:`framebuffer-for-${n}`,width:t,height:r,colorAttachments:[e]}),destroyFramebuffer:!0}}return{framebuffer:e,destroyFramebuffer:!1}}var Wt=class extends Qi.CommandEncoder{constructor(t,r){super(t,r),this.device=void 0,this.commandBuffer=void 0,this.device=t,this.commandBuffer=new Ht(t)}destroy(){}finish(){this.commandBuffer.submitCommands()}copyBufferToBuffer(t){this.commandBuffer.commands.push({name:"copy-buffer-to-buffer",options:t})}copyBufferToTexture(t){this.commandBuffer.commands.push({name:"copy-buffer-to-texture",options:t})}copyTextureToBuffer(t){this.commandBuffer.commands.push({name:"copy-texture-to-buffer",options:t})}copyTextureToTexture(t){this.commandBuffer.commands.push({name:"copy-texture-to-texture",options:t})}pushDebugGroup(t){}popDebugGroup(){}insertDebugMarker(t){}};var Be=p(g(),1);var Ji;Ji=Symbol.toStringTag;var xe=class extends Be.VertexArray{get[Ji](){return"VertexArray"}static isConstantAttributeZeroSupported(t){return t.info.type==="webgl2"||mt()==="Chrome"}constructor(t,r){super(t,r),this.device=void 0,this.handle=void 0,this.buffer=null,this.bufferValue=null,this.init=!1,this.device=t,this.handle=this.device.gl2.createVertexArray()}destroy(){if(super.destroy(),this.buffer){var t;(t=this.buffer)===null||t===void 0||t.destroy()}this.handle&&(this.device.gl2.deleteVertexArray(this.handle),this.handle=void 0)}setIndexBuffer(t){let r=t;if(r&&r.glTarget!==i.ELEMENT_ARRAY_BUFFER)throw new Error("Use .setBuffer()");this.device.gl2.bindVertexArray(this.handle),this.device.gl2.bindBuffer(i.ELEMENT_ARRAY_BUFFER,r?r.handle:null),this.indexBuffer=r}setBuffer(t,r){let n=r;if(n.glTarget===i.ELEMENT_ARRAY_BUFFER)throw new Error("Use .setIndexBuffer()");let{size:o,type:s,stride:a,offset:_,normalized:f,integer:u,divisor:l}=this._getAccessor(t);this.device.gl2.bindVertexArray(this.handle),this.device.gl.bindBuffer(i.ARRAY_BUFFER,n.handle),u?(this.device.assertWebGL2(),this.device.gl2.vertexAttribIPointer(t,o,s,a,_)):this.device.gl.vertexAttribPointer(t,o,s,f,a,_),this.device.gl.enableVertexAttribArray(t),this.device.gl2.vertexAttribDivisor(t,l||0),this.attributes[t]=n}setConstant(t,r){this._enable(t,!1),this.attributes[t]=r}bindBeforeRender(){if(this.device.gl2.bindVertexArray(this.handle),!this.init){let t=this.indexBuffer;this.device.gl2.bindBuffer(i.ELEMENT_ARRAY_BUFFER,t?.handle||null),this.init=!0}this._applyConstantAttributes()}unbindAfterRender(){this.device.gl2.bindVertexArray(null)}_applyConstantAttributes(){for(let t=0;t<this.maxVertexAttributes;++t){let r=this.attributes[t];ArrayBuffer.isView(r)&&this.device.setConstantAttribute(t,r)}}_getAccessor(t){let r=this.attributeInfos[t];if(!r)throw new Error(`Unknown attribute location ${t}`);let n=Nt(r.bufferDataType);return{size:r.bufferComponents,type:n,stride:r.byteStride,offset:r.byteOffset,normalized:r.normalized,integer:r.integer,divisor:r.stepMode==="instance"?1:0}}_enable(t){let r=arguments.length>1&&arguments[1]!==void 0?arguments[1]:!0,o=xe.isConstantAttributeZeroSupported(this.device)||t!==0;(r||o)&&(t=Number(t),this.device.gl2.bindVertexArray(this.handle),r?this.device.gl.enableVertexAttribArray(t):this.device.gl.disableVertexAttribArray(t),this.device.gl2.bindVertexArray(null))}getConstantBuffer(t,r){let n=rf(r),o=n.byteLength*t,s=n.length*t,a=!this.buffer;if(this.buffer=this.buffer||this.device.createBuffer({byteLength:o}),a=a||this.buffer.reallocate(o),a=a||!nf(n,this.bufferValue),a){let _=(0,Be.getScratchArray)(r.constructor,s);(0,Be.fillArray)({target:_,source:n,start:0,count:s}),this.buffer.subData(_),this.bufferValue=r}return this.buffer}};function rf(e){return Array.isArray(e)?new Float32Array(e):e}function nf(e,t){if(!e||!t||e.length!==t.length||e.constructor!==t.constructor)return!1;for(let r=0;r<e.length;++r)if(e[r]!==t[r])return!1;return!0}var kt=1,M=class extends C.Device{static isSupported(){return typeof WebGLRenderingContext<"u"||Kn()}get features(){return this._features=this._features||Si(this.gl),this._features}get limits(){return this._limits=this._limits||Oi(this.gl),this._limits}static attach(t){if(t instanceof M)return t;if(t?.device instanceof C.Device)return t.device;if(!of(t))throw new Error("Invalid WebGLRenderingContext");return new M({gl:t})}static async create(){let t=arguments.length>0&&arguments[0]!==void 0?arguments[0]:{};C.log.groupCollapsed(kt,"WebGLDevice created"),typeof t.canvas=="string"&&await C.CanvasContext.pageLoaded,(C.log.get("debug")||t.debug)&&await Li();let{spector:r}=t;return(C.log.get("spector")||r)&&await Di(),C.log.probe(kt+1,"DOM is loaded")(),t.gl&&t.gl.device?M.attach(t.gl):new M(t)}constructor(t){var r;super({...t,id:t.id||(0,C.uid)("webgl-device")}),this.info=void 0,this.canvasContext=void 0,this.handle=void 0,this.lost=void 0,this._resolveContextLost=void 0,this._features=void 0,this._limits=void 0,this.renderPass=null,this.gl=void 0,this.gl2=null,this.debug=!1,this.isWebGL1=void 0,this.isWebGL2=void 0,this._canvasSizeInfo={clientWidth:0,clientHeight:0,devicePixelRatio:1},this._extensions={},this._polyfilled=!1,this.spector=void 0,this._webglLimits=void 0,this._constants=void 0;let n=(r=t.gl)===null||r===void 0?void 0:r.device;if(n)throw new Error(`WebGL context already attached to device ${n.id}`);this.canvasContext=new Bt(this,t),this.lost=new Promise(u=>{this._resolveContextLost=u});let o=u=>{var l;return(l=this._resolveContextLost)===null||l===void 0?void 0:l.call(this,{reason:"destroyed",message:"Computer entered sleep mode, or too many apps or browser tabs are using the GPU."})},s=t.gl||null;if(s=s||(Y()?li(this.canvasContext.canvas,{...t,onContextLost:o}):null),s=s||(Y()?null:jn({...t,onContextLost:o})),!s)throw new Error("WebGL context creation failed");this.handle=s,this.gl=this.handle,this.gl2=this.gl,this.isWebGL2=sf(this.gl),this.isWebGL1=!this.isWebGL2,this.info=ci(this.gl),this.gl.device=this,this.gl._version=this.isWebGL2?2:1,ri(this.gl);let{enable:a=!0,copyState:_=!1}=t;if(jr(this.gl,{enable:a,copyState:_,log:function(){for(var u=arguments.length,l=new Array(u),c=0;c<u;c++)l[c]=arguments[c];return C.log.log(1,...l)()}}),Y()&&t.debug&&(this.gl=Xi(this.gl,{...t,webgl2:this.isWebGL2,throwOnError:!0}),this.gl2=this.gl,this.debug=!0,C.log.level=Math.max(C.log.level,1),C.log.warn("WebGL debug mode activated. Performance reduced.")()),Y()&&t.spector){let u=this.handle.canvas||t.canvas;this.spector=Ui({...this.props,canvas:u})}let f=`Created ${this.info.type}${this.debug?" debug":""} context: ${this.info.vendor}, ${this.info.renderer} for canvas: ${this.canvasContext.id}`;C.log.probe(kt,f)(),C.log.groupEnd(kt)()}destroy(){let t=this.gl.getExtension("STACKGL_destroy_context");t&&t.destroy()}get isLost(){return this.gl.isContextLost()}getSize(){return[this.gl.drawingBufferWidth,this.gl.drawingBufferHeight]}isTextureFormatSupported(t){return et(this.gl,t)}isTextureFormatFilterable(t){return Ai(this.gl,t)}isTextureFormatRenderable(t){return pi(this.gl,t)}assertWebGL2(){if(!this.gl2)throw new Error("Requires WebGL2");return this.gl2}createCanvasContext(t){throw new Error("WebGL only supports a single canvas")}createBuffer(t){let r=this._getBufferProps(t);return new Ut(this,r)}_createTexture(t){return new D(this,t)}createExternalTexture(t){throw new Error("createExternalTexture() not implemented")}createSampler(t){return new be(this,t)}createShader(t){return new wt(this,t)}createFramebuffer(t){return new re(this,t)}createRenderPipeline(t){return new Xt(this,t)}createVertexArray(t){return new xe(this,t)}beginRenderPass(t){return new Lt(this,t)}createComputePipeline(t){throw new Error("ComputePipeline not supported in WebGL")}beginComputePass(t){throw new Error("compute shaders not supported in WebGL")}getDefaultRenderPass(){return this.renderPass=this.renderPass||this.beginRenderPass({framebuffer:this.canvasContext.getCurrentFramebuffer()}),this.renderPass}createCommandEncoder(t){return new Wt(this,t)}submit(){var t;(t=this.renderPass)===null||t===void 0||t.end(),this.renderPass=null}get webglLimits(){return this._webglLimits=this._webglLimits||Ni(this.gl),this._webglLimits}loseDevice(){var t;let r=!1,n=this.gl.getExtension("WEBGL_lose_context");return n&&(r=!0,n.loseContext()),(t=this._resolveContextLost)===null||t===void 0||t.call(this,{reason:"destroyed",message:"Application triggered context loss"}),r}pushState(){Fe(this.gl)}popState(){Oe(this.gl)}setSpectorMetadata(t,r){t.__SPECTOR_Metadata=r}getGLKey(t,r){r=r||this.gl2||this.gl;let n=Number(t);for(let o in r)if(r[o]===n)return`GL.${o}`;return String(t)}setConstantAttribute(t,r){this._constants=this._constants||new Array(this.limits.maxVertexAttributes).fill(null);let n=this._constants[t];switch(n&&uf(n,r)&&C.log.info(1,`setConstantAttribute(${t}) could have been skipped, value unchanged`)(),this._constants[t]=r,r.constructor){case Float32Array:af(this,t,r);break;case Int32Array:_f(this,t,r);break;case Uint32Array:ff(this,t,r);break;default:(0,C.assert)(!1)}}};M.type="webgl";function of(e){return typeof WebGLRenderingContext<"u"&&e instanceof WebGLRenderingContext||typeof WebGL2RenderingContext<"u"&&e instanceof WebGL2RenderingContext?!0:Boolean(e&&Number.isFinite(e._version))}function sf(e){return typeof WebGL2RenderingContext<"u"&&e instanceof WebGL2RenderingContext?!0:Boolean(e&&e._version===2)}function af(e,t,r){switch(r.length){case 1:e.gl.vertexAttrib1fv(t,r);break;case 2:e.gl.vertexAttrib2fv(t,r);break;case 3:e.gl.vertexAttrib3fv(t,r);break;case 4:e.gl.vertexAttrib4fv(t,r);break;default:(0,C.assert)(!1)}}function _f(e,t,r){var n;e.assertWebGL2(),(n=e.gl2)===null||n===void 0||n.vertexAttribI4iv(t,r)}function ff(e,t,r){var n;e.assertWebGL2(),(n=e.gl2)===null||n===void 0||n.vertexAttribI4uiv(t,r)}function uf(e,t){if(!e||!t||e.length!==t.length||e.constructor!==t.constructor)return!1;for(let r=0;r<e.length;++r)if(e[r]!==t[r])return!1;return!0}var eo=p(g(),1);var lf=256,cf=1024,Ef=16384;var df="clear: bad arguments";function sn(e,t){let r=M.attach(e),{framebuffer:n=null,color:o=null,depth:s=null,stencil:a=null}=t||{},_={};n&&(_.framebuffer=n);let f=0;o&&(f|=Ef,o!==!0&&(_.clearColor=o)),s&&(f|=lf,s!==!0&&(_.clearDepth=s)),a&&(f|=cf,s!==!0&&(_.clearStencil=s)),(0,eo.assert)(f!==0,df),F(r.gl,_,()=>{r.gl.clear(f)})}var it=p(g(),1);var to=p(g(),1);function ro(e){switch(e){case i.ALPHA:case i.R32F:case i.RED:return 1;case i.RG32F:case i.RG:return 2;case i.RGB:case i.RGB32F:return 3;case i.RGBA:case i.RGBA32F:return 4;default:return(0,to.assert)(!1),0}}function an(e,t){var r;let{sourceX:n=0,sourceY:o=0,sourceFormat:s=i.RGBA,sourceAttachment:a=i.COLOR_ATTACHMENT0}=t||{},{target:_=null,sourceWidth:f,sourceHeight:u,sourceType:l}=t||{},{framebuffer:c,deleteFramebuffer:E}=Rf(e);(0,it.assert)(c);let{gl:d,handle:R}=c;f=f||c.width,u=u||c.height;let A=a-i.COLOR_ATTACHMENT0;l=l||((r=c.colorAttachments[A])===null||r===void 0?void 0:r.type)||i.UNSIGNED_BYTE,_=Af(_,l,s,f,u),l=l||ye(_);let T=d.bindFramebuffer(i.FRAMEBUFFER,R);return d.readPixels(n,o,f,u,s,l,_),d.bindFramebuffer(i.FRAMEBUFFER,T||null),E&&c.destroy(),_}function Rf(e){return e instanceof it.Framebuffer?{framebuffer:e,deleteFramebuffer:!1}:{framebuffer:Tf(e),deleteFramebuffer:!0}}function Tf(e,t){let{device:r,width:n,height:o,id:s}=e;return r.createFramebuffer({...t,id:`framebuffer-for-${s}`,width:n,height:o,colorAttachments:[e]})}function Af(e,t,r,n,o){if(e)return e;t=t||i.UNSIGNED_BYTE;let s=de(t,{clamped:!1}),a=ro(r);return new s(n*o*a)}var rs=p(b());function no(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter(function(o){return Object.getOwnPropertyDescriptor(e,o).enumerable})),r.push.apply(r,n)}return r}function io(e){for(var t=1;t<arguments.length;t++){var r=arguments[t]!=null?arguments[t]:{};t%2?no(Object(r),!0).forEach(function(n){pf(e,n,r[n])}):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(r)):no(Object(r)).forEach(function(n){Object.defineProperty(e,n,Object.getOwnPropertyDescriptor(r,n))})}return e}function pf(e,t,r){return t in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r,e}var oo=`
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
+ `,so=`
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 ao(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 io(io({},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 hf(e){if(!e||!("extensions"in e))return{};var t=ao(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 _o={"vs:#main-start":`
129
132
  #ifdef DATAFILTER_DOUBLE
130
133
  dataFilter_setValue(
131
134
  DATAFILTER_ATTRIB - filter_min64High + DATAFILTER_ATTRIB_64LOW,
@@ -147,48 +150,152 @@ 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
+ `},fo={name:"data-filter",vs:oo,fs:so,inject:_o,getUniforms:ao},uo={name:"data-filter-fp64",vs:oo,fs:so,inject:_o,getUniforms:hf};var W=p(g(),1),Go=p(g(),1);var x=e=>`${e}`;function Z(e,t){if(!e)throw new Error(t||"shadertools: assertion failed.")}var _n={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 co(e){let t={};for(let[r,n]of Object.entries(e))t[r]=mf(n);return t}function Eo(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 mf(e){let t=lo(e);if(t!=="object")return{value:e,..._n[t],type:t};if(typeof e=="object")return e?e.type!==void 0?{...e,..._n[e.type],type:e.type}:e.value===void 0?{type:"object",value:e}:(t=lo(e.value),{...e,..._n[t],type:t}):{type:"object",value:null};throw new Error("props")}function lo(e){return Array.isArray(e)||ArrayBuffer.isView(e)?"array":typeof e}var Ro=x`\
154
+ #ifdef MODULE_LOGDEPTH
155
+ logdepth_adjustPosition(gl_Position);
156
+ #endif
157
+ `,To=x`\
158
+ #ifdef MODULE_MATERIAL
159
+ gl_FragColor = material_filterColor(gl_FragColor);
160
+ #endif
151
161
 
152
- #ifdef FLOAT_TARGET
153
- attribute float filterIndices;
154
- attribute float filterPrevIndices;
155
- #else
156
- attribute vec2 filterIndices;
157
- attribute vec2 filterPrevIndices;
162
+ #ifdef MODULE_LIGHTING
163
+ gl_FragColor = lighting_filterColor(gl_FragColor);
158
164
  #endif
159
165
 
160
- varying vec4 vColor;
161
- const float component = 1.0 / 255.0;
166
+ #ifdef MODULE_FOG
167
+ gl_FragColor = fog_filterColor(gl_FragColor);
168
+ #endif
162
169
 
163
- void main() {
164
- #ifdef FLOAT_TARGET
165
- dataFilter_value *= float(filterIndices != filterPrevIndices);
166
- gl_Position = vec4(0.0, 0.0, 0.0, 1.0);
167
- vColor = vec4(0.0, 0.0, 0.0, 1.0);
168
- #else
169
- // Float texture is not supported: pack result into 4 channels x 256 px x 64px
170
- dataFilter_value *= float(filterIndices.x != filterPrevIndices.x);
171
- float col = filterIndices.x;
172
- float row = filterIndices.y * 4.0;
173
- float channel = floor(row);
174
- row = fract(row);
175
- vColor = component * vec4(bvec4(channel == 0.0, channel == 1.0, channel == 2.0, channel == 3.0));
176
- gl_Position = vec4(col * 2.0 - 1.0, row * 2.0 - 1.0, 0.0, 1.0);
177
- #endif
178
- gl_PointSize = 1.0;
179
- }
180
- `,wr=`#define SHADER_NAME data-filter-fragment-shader
181
- precision highp float;
170
+ #ifdef MODULE_PICKING
171
+ gl_FragColor = picking_filterHighlightColor(gl_FragColor);
172
+ gl_FragColor = picking_filterPickingColor(gl_FragColor);
173
+ #endif
182
174
 
183
- varying vec4 vColor;
175
+ #ifdef MODULE_LOGDEPTH
176
+ logdepth_setFragDepth();
177
+ #endif
178
+ `;var Sf={vertex:Ro,fragment:To},Ao=/void\s+main\s*\([^)]*\)\s*\{\n?/,po=/}\n?[^{}]*$/,fn=[],ot="__LUMA_INJECT_DECLARATIONS__";function ho(e){let t={vertex:{},fragment:{}};for(let r in e){let n=e[r],o=gf(r);typeof n=="string"&&(n={order:0,injection:n}),t[o][r]=n}return t}function gf(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),fn.length=a.length;for(let f=0,u=a.length;f<u;++f)fn[f]=a[f].injection;let _=`${fn.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(po,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(po,f=>_+f));break;default:e=e.replace(s,f=>f+_)}}return e=e.replace(ot,""),n&&(e=e.replace(/\}\s*$/,s=>s+Sf[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=[],uniforms: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=ho(l),a&&(this.uniforms=co(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):Eo(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 mo(e){let t=_e.instantiateModules(e);return Of(t)}function Of(e){let t={},r={};return So({modules:e,level:0,moduleMap:t,moduleDepth:r}),Object.keys(r).sort((n,o)=>r[o]-r[n]).map(n=>t[n])}function So(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&&So({modules:s.dependencies,level:r+1,moduleMap:n,moduleDepth:o})}function go(e){switch(e?.gpu.toLowerCase()){case"apple":return x`\
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 x`\
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 x`\
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 x`\
203
+ #define AMD_GPU
204
+ `;default:return x`\
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 Oo(e){let t=x`\
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+=x`\
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+=x`\
184
229
 
185
- void main() {
186
- if (dataFilter_value < 0.5) {
187
- discard;
188
- }
189
- gl_FragColor = vColor;
190
- }
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;
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+=x`\
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+=x`\
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 Ff(e);default:throw new Error(`unknown shader stage ${r}`)}case 100:switch(r){case"vertex":return Kt(e,If);case"fragment":return Cf(e);default:throw new Error(`unknown shader stage ${r}`)}default:throw new Error(`unknown GLSL version ${t}`)}}var bo=[[/^(#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=[...bo,[De("attribute"),"in $1"],[De("varying"),"out $1"]],bf=[...bo,[De("varying"),"in $1"]],Io=[[/^#version[ \t]+300[ \t]+es/,"#version 100"],[/\btexture(2D|2DProj|Cube)Lod\(/g,"texture$1LodEXT("],[/\btexture\(/g,"texture2D("],[/\btextureLod\(/g,"texture2DLodEXT("]],If=[...Io,[De("in"),"attribute $1"],[De("out"),"varying $1"]],Pf=[...Io,[De("in"),"varying $1"]],un="gl_FragColor",ln=/\bout[ \t]+vec4[ \t]+(\w+)[ \t]*;\n?/,vf=/void\s+main\s*\([^)]*\)\s*\{\n?/;function Kt(e,t){for(let[r,n]of t)e=e.replace(r,n);return e}function Ff(e){e=Kt(e,bf);let t=ln.exec(e);if(t){let r=t[1];e=e.replace(new RegExp(`\\b${un}\\b`,"g"),r)}else{let r="fragmentColor";e=e.replace(vf,n=>`out vec4 ${r};
253
+ ${n}`).replace(new RegExp(`\\b${un}\\b`,"g"),r)}return e}function Cf(e){e=Kt(e,Pf);let t=ln.exec(e);if(t){let r=t[1];e=e.replace(ln,"").replace(new RegExp(`\\b${r}\\b`,"g"),un)}return e}function De(e){return new RegExp(`\\b${e}[ \\t]+(\\w+[ \\t]+\\w+(\\[\\w+\\])?;)`,"g")}function cn(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 En(e){let t={vertex:{},fragment:{}};for(let r of e){let n,o;typeof r!="string"?(n=r,o=n.hook):(n={},o=r),o=o.trim();let[s,a]=o.split(":"),_=o.replace(/\(.+/,""),f=Object.assign(n,{signature:a});switch(s){case"vs":t.vertex[_]=f;break;case"fs":t.fragment[_]=f;break;default:throw new Error(s)}}return t}var Co=`
257
+
258
+ ${ot}
259
+
260
+ `,Mf=x`\
261
+ precision highp float;
262
+
263
+ `;function Mo(e,t){let{vs:r,fs:n}=t,o=mo(t.modules||[]);switch(e.shaderLanguage){case"glsl":return{vs:vo(e,{...t,source:r,stage:"vertex",modules:o}),fs:vo(e,{...t,source:n,stage:"fragment",modules:o}),getUniforms:Fo(o)};case"wgsl":return{vs:Po(e,{...t,source:r,stage:"vertex",modules:o}),fs:Po(e,{...t,source:n,stage:"fragment",modules:o}),getUniforms:Fo(o)}}}function Po(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(T=>{Object.assign(l,T.getDefines())}),Object.assign(l,s);let c="",E=En(a),d={},R={},A={};for(let T in _){let h=typeof _[T]=="string"?{injection:_[T],order:0}:_[T],m=/^(v|f)s:(#)?([\w-]+)$/.exec(T);if(m){let N=m[2],P=m[3];N?P==="decl"?R[T]=[h]:A[T]=[h]:d[T]=[h]}else A[T]=[h]}for(let T of o){f&&T.checkDeprecations(u,f);let h=T.getModuleSource(n,"wgsl");c+=h;let m=T.injections[n];for(let N in m){let P=/^(v|f)s:#([\w-]+)$/.exec(N);if(P){let j=P[2]==="decl"?R:A;j[N]=j[N]||[],j[N].push(m[N])}else d[N]=d[N]||[],d[N].push(m[N])}}return c+=Co,c=st(c,n,R),c+=cn(E[n],d),c+=u,c=st(c,n,A),c}function vo(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
+ `),A=100,T="",h=o;R[0].indexOf("#version ")===0?(A=300,T=R[0],h=R.slice(1).join(`
265
+ `)):T=`#version ${A}`;let m=c?100:A,N={};_.forEach(B=>{Object.assign(N,B.getDefines())}),Object.assign(N,f);let P="";switch(a){case"wgsl":break;case"glsl":P=E?`${T}
266
+ ${yf({id:n,source:o,stage:s})}
267
+ ${`#define SHADER_TYPE_${s.toUpperCase()}`}
268
+ ${go(e)}
269
+ ${Oo(e)}
270
+ ${xf(N)}
271
+ ${s==="fragment"?Mf:""}
272
+ `:`${T}
273
+ `;break}let fe=En(u),j={},ke={},Pe={};for(let B in l){let ue=typeof l[B]=="string"?{injection:l[B],order:0}:l[B],oe=/^(v|f)s:(#)?([\w-]+)$/.exec(B);if(oe){let w=oe[2],he=oe[3];w?he==="decl"?ke[B]=[ue]:Pe[B]=[ue]:j[B]=[ue]}else Pe[B]=[ue]}for(let B of _){d&&B.checkDeprecations(h,d);let ue=B.getModuleSource(s);P+=ue;let oe=B.injections[s];for(let w in oe){let he=/^(v|f)s:#([\w-]+)$/.exec(w);if(he){let Ke=he[2]==="decl"?ke:Pe;Ke[w]=Ke[w]||[],Ke[w].push(oe[w])}else j[w]=j[w]||[],j[w].push(oe[w])}}return P+=Co,P=st(P,s,ke),P+=cn(fe[s],j),P+=h,P=st(P,s,Pe),P=No(P,m,s),P.trim()}function Fo(e){return function(r){let n={};for(let o of e){let s=o.getUniforms(r,n);Object.assign(n,s)}return n}}function yf(e){let{id:t,source:r,stage:n}=e;return t&&r.indexOf("SHADER_NAME")===-1?`
274
+ #define SHADER_NAME ${t}_${n}
275
+
276
+ `:""}function xf(){let e=arguments.length>0&&arguments[0]!==void 0?arguments[0]:{},t=0,r="";for(let n in e){t===0&&(r+=`
277
+ // APPLICATION DEFINES
278
+ `),t++;let o=e[n];(o||Number.isFinite(o))&&(r+=`#define ${n.toUpperCase()} ${e[n]}
279
+ `)}return t===0&&(r+=`
280
+ `),r}function xo(e,t){if(!t.vs)throw new Error("no vertex shader");let r=yo(e,t.vs),n;return t.fs&&(n=yo(e,t.fs)),{...t,vs:r,fs:n}}function yo(e,t){if(typeof t=="string")return t;switch(e.type){case"webgpu":if(t!=null&&t.wgsl)return t.wgsl;throw new Error("WebGPU does not support GLSL shaders");default:if(t!=null&&t.glsl)return t.glsl;throw new Error("WebGL does not support WGSL shaders")}}var q=class{constructor(){this._hookFunctions=[],this._defaultModules=[]}static getDefaultShaderAssembler(){return q.defaultShaderAssembler=q.defaultShaderAssembler||new q,q.defaultShaderAssembler}addDefaultModule(t){this._defaultModules.find(r=>r.name===(typeof t=="string"?t:t.name))||this._defaultModules.push(t)}removeDefaultModule(t){let r=typeof t=="string"?t:t.name;this._defaultModules=this._defaultModules.filter(n=>n.name!==r)}addShaderHook(t,r){r&&(t=Object.assign(r,{hook:t})),this._hookFunctions.push(t)}assembleShaders(t,r){let n=this._getModuleList(r.modules),o=this._hookFunctions,s=xo(t,r);return Mo(t,{...s,modules:n,hookFunctions:o})}_getModuleList(){let t=arguments.length>0&&arguments[0]!==void 0?arguments[0]:[],r=new Array(this._defaultModules.length+t.length),n={},o=0;for(let s=0,a=this._defaultModules.length;s<a;++s){let _=this._defaultModules[s],f=_.name;r[o++]=_,n[f]=!0}for(let s=0,a=t.length;s<a;++s){let _=t[s],f=_.name;n[f]||(r[o++]=_,n[f]=!0)}return r.length=o,r}};q.defaultShaderAssembler=void 0;function jt(e){let t=arguments.length>1&&arguments[1]!==void 0?arguments[1]:[],r=arguments.length>2&&arguments[2]!==void 0?arguments[2]:0,n=Math.fround(e),o=e-n;return t[r]=n,t[r+1]=o,t}function dn(e){return e-Math.fround(e)}function Rn(e){let t=new Float32Array(32);for(let r=0;r<4;++r)for(let n=0;n<4;++n){let o=r*4+n;jt(e[n*4+r],t,o*2)}return t}var Bo=x`\
281
+ uniform float ONE;
282
+
283
+ /*
284
+ About LUMA_FP64_CODE_ELIMINATION_WORKAROUND
285
+
286
+ The purpose of this workaround is to prevent shader compilers from
287
+ optimizing away necessary arithmetic operations by swapping their sequences
288
+ or transform the equation to some 'equivalent' from.
289
+
290
+ The method is to multiply an artifical variable, ONE, which will be known to
291
+ the compiler to be 1 only at runtime. The whole expression is then represented
292
+ as a polynomial with respective to ONE. In the coefficients of all terms, only one a
293
+ and one b should appear
294
+
295
+ err = (a + b) * ONE^6 - a * ONE^5 - (a + b) * ONE^4 + a * ONE^3 - b - (a + b) * ONE^2 + a * ONE
296
+ */
297
+
298
+ // Divide float number to high and low floats to extend fraction bits
192
299
  vec2 split(float a) {
193
300
  const float SPLIT = 4097.0;
194
301
  float t = a * SPLIT;
@@ -201,11 +308,15 @@ vec2 split(float a) {
201
308
  #endif
202
309
  return vec2(a_hi, a_lo);
203
310
  }
311
+
312
+ // Divide float number again when high float uses too many fraction bits
204
313
  vec2 split2(vec2 a) {
205
314
  vec2 b = split(a.x);
206
315
  b.y += a.y;
207
316
  return b;
208
317
  }
318
+
319
+ // Special sum operation when a > b
209
320
  vec2 quickTwoSum(float a, float b) {
210
321
  #if defined(LUMA_FP64_CODE_ELIMINATION_WORKAROUND)
211
322
  float sum = (a + b) * ONE;
@@ -216,6 +327,8 @@ vec2 quickTwoSum(float a, float b) {
216
327
  #endif
217
328
  return vec2(sum, err);
218
329
  }
330
+
331
+ // General sum operation
219
332
  vec2 twoSum(float a, float b) {
220
333
  float s = (a + b);
221
334
  #if defined(LUMA_FP64_CODE_ELIMINATION_WORKAROUND)
@@ -285,6 +398,7 @@ vec2 sub_fp64(vec2 a, vec2 b) {
285
398
 
286
399
  vec2 mul_fp64(vec2 a, vec2 b) {
287
400
  vec2 prod = twoProd(a.x, b.x);
401
+ // y component is for the error
288
402
  prod.y += a.x * b.y;
289
403
  #if defined(LUMA_FP64_HIGH_BITS_OVERFLOW_WORKAROUND)
290
404
  prod = split2(prod);
@@ -329,7 +443,8 @@ vec2 sqrt_fp64(vec2 a) {
329
443
  return sum_fp64(vec2(yn, 0.0), prod);
330
444
  #endif
331
445
  }
332
- `;var Gt=`const vec2 E_FP64 = vec2(2.7182817459106445e+00, 8.254840366817007e-08);
446
+ `;var Do=x`\
447
+ const vec2 E_FP64 = vec2(2.7182817459106445e+00, 8.254840366817007e-08);
333
448
  const vec2 LOG2_FP64 = vec2(0.6931471824645996e+00, -1.9046542121259336e-09);
334
449
  const vec2 PI_FP64 = vec2(3.1415927410125732, -8.742278012618954e-8);
335
450
  const vec2 TWO_PI_FP64 = vec2(6.2831854820251465, -1.7484556025237907e-7);
@@ -350,14 +465,14 @@ const vec2 COS_TABLE_1_FP64 = vec2(0.9238795042037964, 2.8307490351764386e-8);
350
465
  const vec2 COS_TABLE_2_FP64 = vec2(0.8314695954322815, 1.6870263741530778e-8);
351
466
  const vec2 COS_TABLE_3_FP64 = vec2(0.7071067690849304, 1.2101617152815436e-8);
352
467
 
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);
468
+ const vec2 INVERSE_FACTORIAL_3_FP64 = vec2(1.666666716337204e-01, -4.967053879312289e-09); // 1/3!
469
+ const vec2 INVERSE_FACTORIAL_4_FP64 = vec2(4.16666679084301e-02, -1.2417634698280722e-09); // 1/4!
470
+ const vec2 INVERSE_FACTORIAL_5_FP64 = vec2(8.333333767950535e-03, -4.34617203337595e-10); // 1/5!
471
+ const vec2 INVERSE_FACTORIAL_6_FP64 = vec2(1.3888889225199819e-03, -3.3631094437103215e-11); // 1/6!
472
+ const vec2 INVERSE_FACTORIAL_7_FP64 = vec2(1.9841270113829523e-04, -2.725596874933456e-12); // 1/7!
473
+ const vec2 INVERSE_FACTORIAL_8_FP64 = vec2(2.4801587642286904e-05, -3.406996025904184e-13); // 1/8!
474
+ const vec2 INVERSE_FACTORIAL_9_FP64 = vec2(2.75573188446287533e-06, 3.7935713937038186e-14); // 1/9!
475
+ const vec2 INVERSE_FACTORIAL_10_FP64 = vec2(2.755731998149713e-07, -7.575112367869873e-15); // 1/10!
361
476
 
362
477
  float nint(float d) {
363
478
  if (d == floor(d)) return d;
@@ -381,8 +496,16 @@ vec2 nint_fp64(vec2 a) {
381
496
  return tmp;
382
497
  }
383
498
 
384
- vec2 exp_fp64(vec2 a) {
499
+ /* k_power controls how much range reduction we would like to have
500
+ Range reduction uses the following method:
501
+ assume a = k_power * r + m * log(2), k and m being integers.
502
+ Set k_power = 4 (we can choose other k to trade accuracy with performance.
503
+ we only need to calculate exp(r) and using exp(a) = 2^m * exp(r)^k_power;
504
+ */
385
505
 
506
+ vec2 exp_fp64(vec2 a) {
507
+ // We need to make sure these two numbers match
508
+ // as bit-wise shift is not available in GLSL 1.0
386
509
  const int k_power = 4;
387
510
  const float k = 16.0;
388
511
 
@@ -410,12 +533,18 @@ vec2 exp_fp64(vec2 a) {
410
533
  p = mul_fp64(p, r);
411
534
  t = mul_fp64(p, INVERSE_FACTORIAL_5_FP64);
412
535
 
536
+ // s = sum_fp64(s, t);
537
+ // p = mul_fp64(p, r);
538
+ // t = mul_fp64(p, INVERSE_FACTORIAL_6_FP64);
413
539
 
540
+ // s = sum_fp64(s, t);
541
+ // p = mul_fp64(p, r);
542
+ // t = mul_fp64(p, INVERSE_FACTORIAL_7_FP64);
414
543
 
544
+ s = sum_fp64(s, t);
415
545
 
416
546
 
417
-
418
- s = sum_fp64(s, t);
547
+ // At this point, s = exp(r) - 1; but after following 4 recursions, we will get exp(r) ^ 512 - 1.
419
548
  for (int i = 0; i < k_power; i++) {
420
549
  s = sum_fp64(s * 2.0, mul_fp64(s, s));
421
550
  }
@@ -427,6 +556,7 @@ vec2 exp_fp64(vec2 a) {
427
556
  #endif
428
557
 
429
558
  return s * pow(2.0, m);
559
+ // return r;
430
560
  }
431
561
 
432
562
  vec2 log_fp64(vec2 a)
@@ -464,10 +594,16 @@ vec2 sin_taylor_fp64(vec2 a) {
464
594
  t = mul_fp64(r, INVERSE_FACTORIAL_5_FP64);
465
595
  s = sum_fp64(s, t);
466
596
 
597
+ /* keep the following commented code in case we need them
598
+ for extra accuracy from the Taylor expansion*/
467
599
 
600
+ // r = mul_fp64(r, x);
601
+ // t = mul_fp64(r, INVERSE_FACTORIAL_7_FP64);
602
+ // s = sum_fp64(s, t);
468
603
 
469
-
470
-
604
+ // r = mul_fp64(r, x);
605
+ // t = mul_fp64(r, INVERSE_FACTORIAL_9_FP64);
606
+ // s = sum_fp64(s, t);
471
607
 
472
608
  return s;
473
609
  }
@@ -491,10 +627,16 @@ vec2 cos_taylor_fp64(vec2 a) {
491
627
  t = mul_fp64(r, INVERSE_FACTORIAL_6_FP64);
492
628
  s = sum_fp64(s, t);
493
629
 
630
+ /* keep the following commented code in case we need them
631
+ for extra accuracy from the Taylor expansion*/
494
632
 
633
+ // r = mul_fp64(r, x);
634
+ // t = mul_fp64(r, INVERSE_FACTORIAL_8_FP64);
635
+ // s = sum_fp64(s, t);
495
636
 
496
-
497
-
637
+ // r = mul_fp64(r, x);
638
+ // t = mul_fp64(r, INVERSE_FACTORIAL_10_FP64);
639
+ // s = sum_fp64(s, t);
498
640
 
499
641
  return s;
500
642
  }
@@ -513,6 +655,8 @@ vec2 sin_fp64(vec2 a) {
513
655
  if (a.x == 0.0 && a.y == 0.0) {
514
656
  return vec2(0.0, 0.0);
515
657
  }
658
+
659
+ // 2pi range reduction
516
660
  vec2 z = nint_fp64(div_fp64(a, TWO_PI_FP64));
517
661
  vec2 r = sub_fp64(a, mul_fp64(TWO_PI_FP64, z));
518
662
 
@@ -621,6 +765,8 @@ vec2 cos_fp64(vec2 a) {
621
765
  if (a.x == 0.0 && a.y == 0.0) {
622
766
  return vec2(1.0, 0.0);
623
767
  }
768
+
769
+ // 2pi range reduction
624
770
  vec2 z = nint_fp64(div_fp64(a, TWO_PI_FP64));
625
771
  vec2 r = sub_fp64(a, mul_fp64(TWO_PI_FP64, z));
626
772
 
@@ -730,6 +876,8 @@ vec2 tan_fp64(vec2 a) {
730
876
  if (a.x == 0.0 && a.y == 0.0) {
731
877
  return vec2(0.0, 0.0);
732
878
  }
879
+
880
+ // 2pi range reduction
733
881
  vec2 z = nint_fp64(div_fp64(a, TWO_PI_FP64));
734
882
  vec2 r = sub_fp64(a, mul_fp64(TWO_PI_FP64, z));
735
883
 
@@ -748,6 +896,8 @@ vec2 tan_fp64(vec2 a) {
748
896
  int k = int(q);
749
897
  int abs_k = int(abs(float(k)));
750
898
 
899
+ // We just can't get PI/16 * 3.0 very accurately.
900
+ // so let's just store it
751
901
  if (abs_k > 4) {
752
902
  return vec2(0.0 / 0.0, 0.0 / 0.0);
753
903
  } else {
@@ -829,6 +979,8 @@ vec2 mix_fp64(vec2 a, vec2 b, float x) {
829
979
  return sum_fp64(a, mul_fp64(range, vec2(x, 0.0)));
830
980
  }
831
981
 
982
+ // Vector functions
983
+ // vec2 functions
832
984
  void vec2_sum_fp64(vec2 a[2], vec2 b[2], out vec2 out_val[2]) {
833
985
  out_val[0] = sum_fp64(a[0], b[0]);
834
986
  out_val[1] = sum_fp64(a[1], b[1]);
@@ -885,6 +1037,8 @@ vec2 vec2_dot_fp64(vec2 a[2], vec2 b[2]) {
885
1037
 
886
1038
  return sum_fp64(v[0], v[1]);
887
1039
  }
1040
+
1041
+ // vec3 functions
888
1042
  void vec3_sub_fp64(vec2 a[3], vec2 b[3], out vec2 out_val[3]) {
889
1043
  for (int i = 0; i < 3; i++) {
890
1044
  out_val[i] = sum_fp64(a[i], b[i]);
@@ -907,6 +1061,8 @@ vec2 vec3_distance_fp64(vec2 x[3], vec2 y[3]) {
907
1061
  vec3_sub_fp64(x, y, diff);
908
1062
  return vec3_length_fp64(diff);
909
1063
  }
1064
+
1065
+ // vec4 functions
910
1066
  void vec4_fp64(vec4 a, out vec2 out_val[4]) {
911
1067
  out_val[0].x = a[0];
912
1068
  out_val[0].y = 0.0;
@@ -957,7 +1113,48 @@ void mat4_vec4_mul_fp64(vec2 b[16], vec2 a[4], out vec2 out_val[4]) {
957
1113
  vec4_dot_fp64(a, tmp, out_val[i]);
958
1114
  }
959
1115
  }
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=`
1116
+ `;var Bf={ONE:1};function Df(){return Bf}var Uo={name:"fp64-arithmetic",vs:Bo,getUniforms:Df,fp64ify:jt,fp64LowPart:dn,fp64ifyMatrix4:Rn},at={name:"fp64",vs:Do,dependencies:[Uo],fp64ify:jt,fp64LowPart:dn,fp64ifyMatrix4:Rn};var UA=1/Math.PI*180,wA=1/180*Math.PI,Uf={EPSILON:1e-12,debug:!1,precision:4,printTypes:!1,printDegrees:!1,printRowMajor:!0,_cartographicRadians:!1};globalThis.mathgl=globalThis.mathgl||{config:{...Uf}};var _t=globalThis.mathgl.config;function Tn(e){return Array.isArray(e)||ArrayBuffer.isView(e)&&!(e instanceof DataView)}function Ue(e,t,r){let n=_t.EPSILON;r&&(_t.EPSILON=r);try{if(e===t)return!0;if(Tn(e)&&Tn(t)){if(e.length!==t.length)return!1;for(let o=0;o<e.length;++o)if(!Ue(e[o],t[o]))return!1;return!0}return e&&e.equals?e.equals(t):t&&t.equals?t.equals(e):typeof e=="number"&&typeof t=="number"?Math.abs(e-t)<=_t.EPSILON*Math.max(1,Math.abs(e),Math.abs(t)):!1}finally{_t.EPSILON=n}}var ft=typeof Float32Array<"u"?Float32Array:Array,An=Math.random;function Yt(e){return e>=0?Math.round(e):e%.5===0?Math.floor(e):Math.round(e)}var XA=Math.PI/180;var zt={};Ln(zt,{add:()=>Wf,angle:()=>lu,bezier:()=>nu,ceil:()=>kf,clone:()=>Lf,copy:()=>Hf,create:()=>wo,cross:()=>Jf,dist:()=>hu,distance:()=>Wo,div:()=>pu,divide:()=>Vo,dot:()=>hn,equals:()=>Ru,exactEquals:()=>du,floor:()=>Kf,forEach:()=>Ou,fromValues:()=>Xf,hermite:()=>ru,inverse:()=>qf,len:()=>Su,length:()=>Lo,lerp:()=>eu,max:()=>Yf,min:()=>jf,mul:()=>Au,multiply:()=>Ho,negate:()=>Zf,normalize:()=>Qf,random:()=>iu,rotateX:()=>_u,rotateY:()=>fu,rotateZ:()=>uu,round:()=>zf,scale:()=>Gf,scaleAndAdd:()=>$f,set:()=>Vf,slerp:()=>tu,sqrDist:()=>mu,sqrLen:()=>gu,squaredDistance:()=>ko,squaredLength:()=>Ko,str:()=>Eu,sub:()=>Tu,subtract:()=>Xo,transformMat3:()=>su,transformMat4:()=>ou,transformQuat:()=>au,zero:()=>cu});function wo(){let e=new ft(3);return ft!=Float32Array&&(e[0]=0,e[1]=0,e[2]=0),e}function Lf(e){let t=new ft(3);return t[0]=e[0],t[1]=e[1],t[2]=e[2],t}function Lo(e){let t=e[0],r=e[1],n=e[2];return Math.sqrt(t*t+r*r+n*n)}function Xf(e,t,r){let n=new ft(3);return n[0]=e,n[1]=t,n[2]=r,n}function Hf(e,t){return e[0]=t[0],e[1]=t[1],e[2]=t[2],e}function Vf(e,t,r,n){return e[0]=t,e[1]=r,e[2]=n,e}function Wf(e,t,r){return e[0]=t[0]+r[0],e[1]=t[1]+r[1],e[2]=t[2]+r[2],e}function Xo(e,t,r){return e[0]=t[0]-r[0],e[1]=t[1]-r[1],e[2]=t[2]-r[2],e}function Ho(e,t,r){return e[0]=t[0]*r[0],e[1]=t[1]*r[1],e[2]=t[2]*r[2],e}function Vo(e,t,r){return e[0]=t[0]/r[0],e[1]=t[1]/r[1],e[2]=t[2]/r[2],e}function kf(e,t){return e[0]=Math.ceil(t[0]),e[1]=Math.ceil(t[1]),e[2]=Math.ceil(t[2]),e}function Kf(e,t){return e[0]=Math.floor(t[0]),e[1]=Math.floor(t[1]),e[2]=Math.floor(t[2]),e}function jf(e,t,r){return e[0]=Math.min(t[0],r[0]),e[1]=Math.min(t[1],r[1]),e[2]=Math.min(t[2],r[2]),e}function Yf(e,t,r){return e[0]=Math.max(t[0],r[0]),e[1]=Math.max(t[1],r[1]),e[2]=Math.max(t[2],r[2]),e}function zf(e,t){return e[0]=Yt(t[0]),e[1]=Yt(t[1]),e[2]=Yt(t[2]),e}function Gf(e,t,r){return e[0]=t[0]*r,e[1]=t[1]*r,e[2]=t[2]*r,e}function $f(e,t,r,n){return e[0]=t[0]+r[0]*n,e[1]=t[1]+r[1]*n,e[2]=t[2]+r[2]*n,e}function Wo(e,t){let r=t[0]-e[0],n=t[1]-e[1],o=t[2]-e[2];return Math.sqrt(r*r+n*n+o*o)}function ko(e,t){let r=t[0]-e[0],n=t[1]-e[1],o=t[2]-e[2];return r*r+n*n+o*o}function Ko(e){let t=e[0],r=e[1],n=e[2];return t*t+r*r+n*n}function Zf(e,t){return e[0]=-t[0],e[1]=-t[1],e[2]=-t[2],e}function qf(e,t){return e[0]=1/t[0],e[1]=1/t[1],e[2]=1/t[2],e}function Qf(e,t){let r=t[0],n=t[1],o=t[2],s=r*r+n*n+o*o;return s>0&&(s=1/Math.sqrt(s)),e[0]=t[0]*s,e[1]=t[1]*s,e[2]=t[2]*s,e}function hn(e,t){return e[0]*t[0]+e[1]*t[1]+e[2]*t[2]}function Jf(e,t,r){let n=t[0],o=t[1],s=t[2],a=r[0],_=r[1],f=r[2];return e[0]=o*f-s*_,e[1]=s*a-n*f,e[2]=n*_-o*a,e}function eu(e,t,r,n){let o=t[0],s=t[1],a=t[2];return e[0]=o+n*(r[0]-o),e[1]=s+n*(r[1]-s),e[2]=a+n*(r[2]-a),e}function tu(e,t,r,n){let o=Math.acos(Math.min(Math.max(hn(t,r),-1),1)),s=Math.sin(o),a=Math.sin((1-n)*o)/s,_=Math.sin(n*o)/s;return e[0]=a*t[0]+_*r[0],e[1]=a*t[1]+_*r[1],e[2]=a*t[2]+_*r[2],e}function ru(e,t,r,n,o,s){let a=s*s,_=a*(2*s-3)+1,f=a*(s-2)+s,u=a*(s-1),l=a*(3-2*s);return e[0]=t[0]*_+r[0]*f+n[0]*u+o[0]*l,e[1]=t[1]*_+r[1]*f+n[1]*u+o[1]*l,e[2]=t[2]*_+r[2]*f+n[2]*u+o[2]*l,e}function nu(e,t,r,n,o,s){let a=1-s,_=a*a,f=s*s,u=_*a,l=3*s*_,c=3*f*a,E=f*s;return e[0]=t[0]*u+r[0]*l+n[0]*c+o[0]*E,e[1]=t[1]*u+r[1]*l+n[1]*c+o[1]*E,e[2]=t[2]*u+r[2]*l+n[2]*c+o[2]*E,e}function iu(e,t){t=t===void 0?1:t;let r=An()*2*Math.PI,n=An()*2-1,o=Math.sqrt(1-n*n)*t;return e[0]=Math.cos(r)*o,e[1]=Math.sin(r)*o,e[2]=n*t,e}function ou(e,t,r){let n=t[0],o=t[1],s=t[2],a=r[3]*n+r[7]*o+r[11]*s+r[15];return a=a||1,e[0]=(r[0]*n+r[4]*o+r[8]*s+r[12])/a,e[1]=(r[1]*n+r[5]*o+r[9]*s+r[13])/a,e[2]=(r[2]*n+r[6]*o+r[10]*s+r[14])/a,e}function su(e,t,r){let n=t[0],o=t[1],s=t[2];return e[0]=n*r[0]+o*r[3]+s*r[6],e[1]=n*r[1]+o*r[4]+s*r[7],e[2]=n*r[2]+o*r[5]+s*r[8],e}function au(e,t,r){let n=r[0],o=r[1],s=r[2],a=r[3],_=t[0],f=t[1],u=t[2],l=o*u-s*f,c=s*_-n*u,E=n*f-o*_,d=o*E-s*c,R=s*l-n*E,A=n*c-o*l,T=a*2;return l*=T,c*=T,E*=T,d*=2,R*=2,A*=2,e[0]=_+l+d,e[1]=f+c+R,e[2]=u+E+A,e}function _u(e,t,r,n){let o=[],s=[];return o[0]=t[0]-r[0],o[1]=t[1]-r[1],o[2]=t[2]-r[2],s[0]=o[0],s[1]=o[1]*Math.cos(n)-o[2]*Math.sin(n),s[2]=o[1]*Math.sin(n)+o[2]*Math.cos(n),e[0]=s[0]+r[0],e[1]=s[1]+r[1],e[2]=s[2]+r[2],e}function fu(e,t,r,n){let o=[],s=[];return o[0]=t[0]-r[0],o[1]=t[1]-r[1],o[2]=t[2]-r[2],s[0]=o[2]*Math.sin(n)+o[0]*Math.cos(n),s[1]=o[1],s[2]=o[2]*Math.cos(n)-o[0]*Math.sin(n),e[0]=s[0]+r[0],e[1]=s[1]+r[1],e[2]=s[2]+r[2],e}function uu(e,t,r,n){let o=[],s=[];return o[0]=t[0]-r[0],o[1]=t[1]-r[1],o[2]=t[2]-r[2],s[0]=o[0]*Math.cos(n)-o[1]*Math.sin(n),s[1]=o[0]*Math.sin(n)+o[1]*Math.cos(n),s[2]=o[2],e[0]=s[0]+r[0],e[1]=s[1]+r[1],e[2]=s[2]+r[2],e}function lu(e,t){let r=e[0],n=e[1],o=e[2],s=t[0],a=t[1],_=t[2],f=Math.sqrt((r*r+n*n+o*o)*(s*s+a*a+_*_)),u=f&&hn(e,t)/f;return Math.acos(Math.min(Math.max(u,-1),1))}function cu(e){return e[0]=0,e[1]=0,e[2]=0,e}function Eu(e){return"vec3(".concat(e[0],", ").concat(e[1],", ").concat(e[2],")")}function du(e,t){return e[0]===t[0]&&e[1]===t[1]&&e[2]===t[2]}function Ru(e,t){let r=e[0],n=e[1],o=e[2],s=t[0],a=t[1],_=t[2];return Math.abs(r-s)<=1e-6*Math.max(1,Math.abs(r),Math.abs(s))&&Math.abs(n-a)<=1e-6*Math.max(1,Math.abs(n),Math.abs(a))&&Math.abs(o-_)<=1e-6*Math.max(1,Math.abs(o),Math.abs(_))}var Tu=Xo,Au=Ho,pu=Vo,hu=Wo,mu=ko,Su=Lo,gu=Ko,Ou=function(){let e=wo();return function(t,r,n,o,s,a){let _,f;for(r||(r=3),n||(n=0),o?f=Math.min(o*r+n,t.length):f=t.length,_=n;_<f;_+=r)e[0]=t[_],e[1]=t[_+1],e[2]=t[_+2],s(e,e,a),t[_]=e[0],t[_+1]=e[1],t[_+2]=e[2];return t}}();var Ie=p(g(),1),Gt=class{constructor(t){this.id=void 0,this.userData={},this.topology=void 0,this.bufferLayout=[],this.vertexCount=void 0,this.indices=void 0,this.attributes=void 0,this.id=t.id||(0,Ie.uid)("geometry"),this.topology=t.topology,this.indices=t.indices||null,this.attributes=t.attributes,this.vertexCount=t.vertexCount,this.bufferLayout=t.bufferLayout||[],this.indices&&(0,Ie.assert)(this.indices.usage===Ie.Buffer.INDEX)}destroy(){var t;this.indices.destroy(),this.attributes.positions.destroy(),this.attributes.normals.destroy(),this.attributes.texCoords.destroy(),(t=this.attributes.colors)===null||t===void 0||t.destroy()}getVertexCount(){return this.vertexCount}getAttributes(){return this.attributes}getIndexes(){return this.indices}_calculateVertexCount(t){return t.byteLength/12}};function jo(e,t){if(t instanceof Gt)return t;let r=Nu(e,t),{attributes:n,bufferLayout:o}=bu(e,t);return new Gt({topology:t.topology||"triangle-list",bufferLayout:o,vertexCount:t.vertexCount,indices:r,attributes:n})}function Nu(e,t){if(!t.indices)return;let r=t.indices.value;return e.createBuffer({usage:Ie.Buffer.INDEX,data:r})}function bu(e,t){let r=[],n={};for(let[s,a]of Object.entries(t.attributes)){let _=s;switch(s){case"POSITION":_="positions";break;case"NORMAL":_="normals";break;case"TEXCOORD_0":_="texCoords";break}n[_]=e.createBuffer({data:a.value,id:`${s}-buffer`}),r.push({name:_,format:`float32x${a.size}`})}let o=t._calculateVertexCount(t.attributes,t.indices);return{attributes:n,bufferLayout:r,vertexCount:o}}var Yo=p(g(),1),Te=class{static getDefaultPipelineFactory(t){return t._lumaData.defaultPipelineFactory=t._lumaData.defaultPipelineFactory||new Te(t),t._lumaData.defaultPipelineFactory}constructor(t){this.device=void 0,this._hashCounter=0,this._hashes={},this._useCounts={},this._pipelineCache={},this.device=t}createRenderPipeline(t){let r={...Te.defaultProps,...t},n=this._hashRenderPipeline({...r});if(!this._pipelineCache[n]){let o=this.device.createRenderPipeline({...r,vs:this.device.createShader({stage:"vertex",source:r.vs}),fs:r.fs?this.device.createShader({stage:"fragment",source:r.fs}):null});o.hash=n,this._pipelineCache[n]=o,this._useCounts[n]=0}return this._useCounts[n]++,this._pipelineCache[n]}release(t){let r=t.hash;this._useCounts[r]--,this._useCounts[r]===0&&(this._pipelineCache[r].destroy(),delete this._pipelineCache[r],delete this._useCounts[r])}_createRenderPipeline(t){if(!t.fs)throw new Error("fs");return this.device.createRenderPipeline({...t,vs:this.device.createShader({stage:"vertex",source:t.vs}),fs:t.fs?this.device.createShader({stage:"fragment",source:t.fs}):null})}_hashRenderPipeline(t){let r=this._getHash(t.vs),n=t.fs?this._getHash(t.fs):0,o="-";switch(this.device.info.type){case"webgpu":let s=this._getHash(JSON.stringify(t.parameters)),a=this._getHash(JSON.stringify(t.bufferLayout));return`${r}/${n}V${o}T${t.topology}P${s}BL${a}}`;default:return`${r}/${n}V${o}`}}_getHash(t){return this._hashes[t]===void 0&&(this._hashes[t]=this._hashCounter++),this._hashes[t]}};Te.defaultProps={...Yo.RenderPipeline.defaultProps,vs:void 0,fs:void 0};var Ae=class{constructor(t,r){this.device=void 0,this.id=void 0,this.vs=void 0,this.fs=void 0,this.pipelineFactory=void 0,this.userData={},this.parameters=void 0,this.topology=void 0,this.bufferLayout=void 0,this.vertexCount=void 0,this.instanceCount=0,this.indexBuffer=null,this.bufferAttributes={},this.constantAttributes={},this.bindings={},this.uniforms={},this.pipeline=void 0,this.vertexArray=void 0,this._pipelineNeedsUpdate="newly created",this._attributeInfos={},this._gpuGeometry=null,this._getModuleUniforms=void 0,this.props=void 0,this.props={...Ae.defaultProps,...r},r=this.props,this.id=r.id||(0,W.uid)("model"),this.device=t,Object.assign(this.userData,r.userData);let n={type:t.info.type,shaderLanguage:t.info.shadingLanguages[0],gpu:t.info.gpu,features:t.features},{vs:o,fs:s,getUniforms:a}=this.props.shaderAssembler.assembleShaders(n,this.props);if(this.vs=o,this.fs=s,this._getModuleUniforms=a,this.vertexCount=this.props.vertexCount,this.instanceCount=this.props.instanceCount,this.topology=this.props.topology,this.bufferLayout=this.props.bufferLayout,this.parameters=this.props.parameters,r.geometry&&(this._gpuGeometry=this.setGeometry(r.geometry)),this.pipelineFactory=r.pipelineFactory||Te.getDefaultPipelineFactory(this.device),this.pipeline=this._updatePipeline(),this.vertexArray=t.createVertexArray({renderPipeline:this.pipeline}),this._gpuGeometry&&this._setGeometryAttributes(this._gpuGeometry),r.vertexCount&&this.setVertexCount(r.vertexCount),r.instanceCount&&this.setInstanceCount(r.instanceCount),r.indices)throw new Error("Model.props.indices removed. Use props.indexBuffer");r.indexBuffer&&this.setIndexBuffer(r.indexBuffer),r.attributes&&this.setAttributes(r.attributes),r.constantAttributes&&this.setConstantAttributes(r.constantAttributes),r.bindings&&this.setBindings(r.bindings),r.uniforms&&this.setUniforms(r.uniforms),r.moduleSettings&&this.updateModuleSettings(r.moduleSettings),this.setUniforms(this._getModuleUniforms()),Object.seal(this)}destroy(){this.pipelineFactory.release(this.pipeline)}draw(t){this.pipeline=this._updatePipeline(),this.pipeline.setBindings(this.bindings),this.pipeline.setUniforms(this.uniforms),this.pipeline.draw({renderPass:t,vertexArray:this.vertexArray,vertexCount:this.vertexCount,instanceCount:this.instanceCount})}setGeometry(t){let r=t&&jo(this.device,t);return this.setTopology(r.topology||"triangle-list"),this.bufferLayout=zo(this.bufferLayout,r.bufferLayout),this.vertexArray&&this._setGeometryAttributes(r),r}_setGeometryAttributes(t){this.vertexCount=t.vertexCount,this.setAttributes(t.attributes),this.setIndexBuffer(t.indices)}setTopology(t){t!==this.topology&&(this.topology=t,this._setPipelineNeedsUpdate("topology"))}setBufferLayout(t){this.bufferLayout=this._gpuGeometry?zo(t,this._gpuGeometry.bufferLayout):t,this._setPipelineNeedsUpdate("bufferLayout"),this.pipeline=this._updatePipeline(),this.vertexArray=this.device.createVertexArray({renderPipeline:this.pipeline}),this._gpuGeometry&&this._setGeometryAttributes(this._gpuGeometry)}setParameters(t){(0,W.deepEqual)(t,this.parameters,2)||(this.parameters=t,this._setPipelineNeedsUpdate("parameters"))}setVertexCount(t){this.vertexCount=t}setInstanceCount(t){this.instanceCount=t}setShaderModuleProps(t){let r=this._getModuleUniforms(t),n=Object.keys(r).filter(s=>{let a=r[s];return!(0,W.isNumberArray)(a)&&typeof a!="number"&&typeof a!="boolean"}),o={};for(let s of n)o[s]=r[s],delete r[s];Object.assign(this.uniforms,r),Object.assign(this.bindings,o)}updateModuleSettings(t){this.setShaderModuleProps(t)}setBindings(t){Object.assign(this.bindings,t)}setUniforms(t){this.pipeline.setUniforms(t),Object.assign(this.uniforms,t)}setIndexBuffer(t){this.vertexArray.setIndexBuffer(t)}setAttributes(t){t.indices&&W.log.warn(`Model:${this.id} setAttributes() - indexBuffer should be set using setIndexBuffer()`);for(let[n,o]of Object.entries(t)){var r;let s=this.bufferLayout.find(f=>f.name===n);if(!s)continue;let a=s.attributes?(r=s.attributes)===null||r===void 0?void 0:r.map(f=>f.attribute):[s.name],_=!1;for(let f of a){let u=this._attributeInfos[f];u&&(this.vertexArray.setBuffer(u.location,o),_=!0)}_||W.log.warn(`Model(${this.id}): Ignoring buffer "${o.id}" for unknown attribute "${n}"`)()}}setConstantAttributes(t){for(let[r,n]of Object.entries(t)){let o=this._attributeInfos[r];o?this.vertexArray.setConstant(o.location,n):W.log.warn(`Model "${this.id}: Ignoring constant supplied for unknown attribute "${r}"`)()}}_setPipelineNeedsUpdate(t){this._pipelineNeedsUpdate=this._pipelineNeedsUpdate||t}_updatePipeline(){return this._pipelineNeedsUpdate&&(this.pipeline&&W.log.log(1,`Model ${this.id}: Recreating pipeline because "${this._pipelineNeedsUpdate}".`)(),this._pipelineNeedsUpdate=!1,this.pipeline=this.device.createRenderPipeline({...this.props,bufferLayout:this.bufferLayout,topology:this.topology,parameters:this.parameters,vs:this.device.createShader({id:"{$this.id}-vertex",stage:"vertex",source:this.vs}),fs:this.fs?this.device.createShader({id:"{$this.id}-fragment",stage:"fragment",source:this.fs}):null}),this._attributeInfos=(0,Go.getAttributeInfosFromLayouts)(this.pipeline.shaderLayout,this.bufferLayout)),this.pipeline}};Ae.defaultProps={...W.RenderPipeline.defaultProps,vs:null,fs:null,id:"unnamed",handle:void 0,userData:{},defines:{},modules:[],moduleSettings:{},geometry:null,indexBuffer:null,attributes:{},constantAttributes:{},pipelineFactory:void 0,shaderAssembler:q.getDefaultShaderAssembler()};function zo(e,t){let r=[...e];for(let n of t){let o=r.findIndex(s=>s.name===n.name);o<0?r.push(n):r[o]=n}return r}function $o(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter(function(o){return Object.getOwnPropertyDescriptor(e,o).enumerable})),r.push.apply(r,n)}return r}function Iu(e){for(var t=1;t<arguments.length;t++){var r=arguments[t]!=null?arguments[t]:{};t%2?$o(Object(r),!0).forEach(function(n){Pu(e,n,r[n])}):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(r)):$o(Object(r)).forEach(function(n){Object.defineProperty(e,n,Object.getOwnPropertyDescriptor(r,n))})}return e}function Pu(e,t,r){return t in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r,e}var vu=`#define SHADER_NAME data-filter-vertex-shader
1117
+
1118
+ #ifdef FLOAT_TARGET
1119
+ attribute float filterIndices;
1120
+ attribute float filterPrevIndices;
1121
+ #else
1122
+ attribute vec2 filterIndices;
1123
+ attribute vec2 filterPrevIndices;
1124
+ #endif
1125
+
1126
+ varying vec4 vColor;
1127
+ const float component = 1.0 / 255.0;
1128
+
1129
+ void main() {
1130
+ #ifdef FLOAT_TARGET
1131
+ dataFilter_value *= float(filterIndices != filterPrevIndices);
1132
+ gl_Position = vec4(0.0, 0.0, 0.0, 1.0);
1133
+ vColor = vec4(0.0, 0.0, 0.0, 1.0);
1134
+ #else
1135
+ // Float texture is not supported: pack result into 4 channels x 256 px x 64px
1136
+ dataFilter_value *= float(filterIndices.x != filterPrevIndices.x);
1137
+ float col = filterIndices.x;
1138
+ float row = filterIndices.y * 4.0;
1139
+ float channel = floor(row);
1140
+ row = fract(row);
1141
+ vColor = component * vec4(bvec4(channel == 0.0, channel == 1.0, channel == 2.0, channel == 3.0));
1142
+ gl_Position = vec4(col * 2.0 - 1.0, row * 2.0 - 1.0, 0.0, 1.0);
1143
+ #endif
1144
+ gl_PointSize = 1.0;
1145
+ }
1146
+ `,Fu=`#define SHADER_NAME data-filter-fragment-shader
1147
+ precision highp float;
1148
+
1149
+ varying vec4 vColor;
1150
+
1151
+ void main() {
1152
+ if (dataFilter_value < 0.5) {
1153
+ discard;
1154
+ }
1155
+ gl_FragColor = vColor;
1156
+ }
1157
+ `;function Zo(e){var t=e.gl;return Boolean(t.getExtension("EXT_float_blend")&&(t.getExtension("EXT_color_buffer_float")||t.getExtension("WEBGL_color_buffer_float")))}function qo(e,t){return t?e.createFramebuffer({width:1,height:1,colorAttachments:[e.createTexture({format:e.info.type==="webgl2"?"rgba32float":"rgba8unorm",type:5126,mipmaps:!1})]}):e.createFramebuffer({width:256,height:64,colorAttachments:[e.createTexture({format:"rgba8unorm",type:5126,mipmaps:!1})]})}function Qo(e,t,r){return t.defines.NON_INSTANCED_MODEL=1,r&&(t.defines.FLOAT_TARGET=1),new Ae(e,Iu({id:"data-filter-aggregation-model",vertexCount:1,isInstanced:!1,drawMode:0,vs:vu,fs:Fu},t))}var Jo={blend:!0,blendFunc:[1,1,1,1],blendEquation:[32774,32774],depthTest:!1};function Zt(e){return typeof Symbol=="function"&&typeof Symbol.iterator=="symbol"?Zt=function(r){return typeof r}:Zt=function(r){return r&&typeof Symbol=="function"&&r.constructor===Symbol&&r!==Symbol.prototype?"symbol":typeof r},Zt(e)}function es(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter(function(o){return Object.getOwnPropertyDescriptor(e,o).enumerable})),r.push.apply(r,n)}return r}function $t(e){for(var t=1;t<arguments.length;t++){var r=arguments[t]!=null?arguments[t]:{};t%2?es(Object(r),!0).forEach(function(n){Mu(e,n,r[n])}):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(r)):es(Object(r)).forEach(function(n){Object.defineProperty(e,n,Object.getOwnPropertyDescriptor(r,n))})}return e}function Mu(e,t,r){return t in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r,e}function yu(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}function xu(e,t){if(typeof t!="function"&&t!==null)throw new TypeError("Super expression must either be null or a function");e.prototype=Object.create(t&&t.prototype,{constructor:{value:e,writable:!0,configurable:!0}}),t&&mn(e,t)}function mn(e,t){return mn=Object.setPrototypeOf||function(n,o){return n.__proto__=o,n},mn(e,t)}function Bu(e){var t=wu();return function(){var n=qt(e),o;if(t){var s=qt(this).constructor;o=Reflect.construct(n,arguments,s)}else o=n.apply(this,arguments);return Du(this,o)}}function Du(e,t){if(t&&(Zt(t)==="object"||typeof t=="function"))return t;if(t!==void 0)throw new TypeError("Derived constructors may only return object or undefined");return Uu(e)}function Uu(e){if(e===void 0)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return e}function wu(){if(typeof Reflect>"u"||!Reflect.construct||Reflect.construct.sham)return!1;if(typeof Proxy=="function")return!0;try{return Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],function(){})),!0}catch{return!1}}function qt(e){return qt=Object.setPrototypeOf?Object.getPrototypeOf:function(r){return r.__proto__||Object.getPrototypeOf(r)},qt(e)}var Lu={getFilterValue:{type:"accessor",value:0},onFilteredItemsChange:{type:"function",value:null,optional:!0},filterEnabled:!0,filterRange:[-1,1],filterSoftRange:null,filterTransformSize:!0,filterTransformColor:!0},ts={1:"float",2:"vec2",3:"vec3",4:"vec4"},Qt=function(e){xu(r,e);var t=Bu(r);function r(){var o=arguments.length>0&&arguments[0]!==void 0?arguments[0]:{},s=o.filterSize,a=s===void 0?1:s,_=o.fp64,f=_===void 0?!1:_,u=o.countItems,l=u===void 0?!1:u;if(yu(this,r),!ts[a])throw new Error("filterSize out of range");return t.call(this,{filterSize:a,fp64:f,countItems:l})}var n=r.prototype;return n.getShaders=function(s){var a=s.opts,_=a.filterSize,f=a.fp64;return{modules:[f?uo:fo],defines:{DATAFILTER_TYPE:ts[_],DATAFILTER_DOUBLE:Boolean(f)}}},n.initializeState=function(s,a){var _=this.getAttributeManager();_&&_.add({filterValues:{size:a.opts.filterSize,type:a.opts.fp64?5130:5126,accessor:"getFilterValue",shaderAttributes:{filterValues:{divisor:0},instanceFilterValues:{divisor:1}}}});var f=this.context.device;if(_&&a.opts.countItems){var u=Zo(f);_.add({filterIndices:{size:u?1:2,vertexOffset:1,type:5121,normalized:!0,accessor:function(d,R){var A=R.index,T=d&&d.__source?d.__source.index:A;return u?(T+1)%255:[(T+1)%255,Math.floor(T/255)%255]},shaderAttributes:{filterPrevIndices:{vertexOffset:0},filterIndices:{vertexOffset:1}}}});var l=qo(f,u),c=Qo(f,a.getShaders.call(this,a),u);this.setState({filterFBO:l,filterModel:c})}},n.updateState=function(s){var a=s.props,_=s.oldProps;if(this.state.filterModel){var f=this.getAttributeManager(),u=f.attributes.filterValues.needsUpdate()||a.filterEnabled!==_.filterEnabled||a.filterRange!==_.filterRange||a.filterSoftRange!==_.filterSoftRange;u&&this.setState({filterNeedsUpdate:u})}},n.draw=function(s,a){var _=this,f=this.state.filterFBO,u=this.state.filterModel,l=this.state.filterNeedsUpdate,c=this.props.onFilteredItemsChange;if(l&&c&&u){var E=this.getAttributeManager(),d=E.attributes,R=d.filterValues,A=d.filterIndices;u.setVertexCount(this.getNumInstances()),sn(this.context.device,{framebuffer:f,color:[0,0,0,0]}),u.updateModuleSettings(s.moduleParameters),u.setAttributes($t($t({},R.getValue()),A?.getValue())),F(u.device,$t($t({framebuffer:f},Jo),{},{viewport:[0,0,f.width,f.height]}),function(){u.draw(_.context.renderPass)});for(var T=an(f),h=0,m=0;m<T.length;m++)h+=T[m];c({id:this.id,count:h}),this.state.filterNeedsUpdate=!1}},n.finalizeState=function(){var s=this.state.filterFBO,a=this.state.filterModel;s?.destroy(),a?.destroy()},r}(rs.LayerExtension);Qt.defaultProps=Lu;Qt.extensionName="DataFilterExtension";var ut=p(b());var Jt=p(b());var ns=`
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 Xu=at.fp64ify,Hu=at.fp64ifyMatrix4,er={name:"project64",dependencies:[Jt.project,at],vs:ns,getUniforms:Wu},Vu=(0,Jt._memoize)(ku);function Wu(e){if(e&&"viewport"in e){var t=e.viewport,r=t.viewProjectionMatrix,n=t.scale;return Vu({viewProjectionMatrix:r,scale:n})}return{}}function ku(e){var t=e.viewProjectionMatrix,r=e.scale,n=Hu(t),o=Xu(r);return{project_uViewProjectionMatrixFP64:n,project64_uViewProjectionMatrix:n,project64_uScale:o}}function tr(e){return typeof Symbol=="function"&&typeof Symbol.iterator=="symbol"?tr=function(r){return typeof r}:tr=function(r){return r&&typeof Symbol=="function"&&r.constructor===Symbol&&r!==Symbol.prototype?"symbol":typeof r},tr(e)}function Ku(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}function ju(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&&Sn(e,t)}function Sn(e,t){return Sn=Object.setPrototypeOf||function(n,o){return n.__proto__=o,n},Sn(e,t)}function Yu(e){var t=$u();return function(){var n=rr(e),o;if(t){var s=rr(this).constructor;o=Reflect.construct(n,arguments,s)}else o=n.apply(this,arguments);return zu(this,o)}}function zu(e,t){if(t&&(tr(t)==="object"||typeof t=="function"))return t;if(t!==void 0)throw new TypeError("Derived constructors may only return object or undefined");return Gu(e)}function Gu(e){if(e===void 0)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return e}function $u(){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 rr(e){return rr=Object.setPrototypeOf?Object.getPrototypeOf:function(r){return r.__proto__||Object.getPrototypeOf(r)},rr(e)}var gn=function(e){ju(r,e);var t=Yu(r);function r(){return Ku(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:[er]}},r}(ut.LayerExtension);gn.extensionName="Fp64Extension";var lt=p(b());var is={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
+ `}},os={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 nr(e){return typeof Symbol=="function"&&typeof Symbol.iterator=="symbol"?nr=function(r){return typeof r}:nr=function(r){return r&&typeof Symbol=="function"&&r.constructor===Symbol&&r!==Symbol.prototype?"symbol":typeof r},nr(e)}function Zu(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&&On(e,t)}function On(e,t){return On=Object.setPrototypeOf||function(n,o){return n.__proto__=o,n},On(e,t)}function Qu(e){var t=tl();return function(){var n=ir(e),o;if(t){var s=ir(this).constructor;o=Reflect.construct(n,arguments,s)}else o=n.apply(this,arguments);return Ju(this,o)}}function Ju(e,t){if(t&&(nr(t)==="object"||typeof t=="function"))return t;if(t!==void 0)throw new TypeError("Derived constructors may only return object or undefined");return el(e)}function el(e){if(e===void 0)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return e}function tl(){if(typeof Reflect>"u"||!Reflect.construct||Reflect.construct.sham)return!1;if(typeof Proxy=="function")return!0;try{return Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],function(){})),!0}catch{return!1}}function ir(e){return ir=Object.setPrototypeOf?Object.getPrototypeOf:function(r){return r.__proto__||Object.getPrototypeOf(r)},ir(e)}var rl={getDashArray:{type:"accessor",value:[0,0]},getOffset:{type:"accessor",value:0},dashJustified:!1,dashGapPickable:!1},or=function(e){qu(r,e);var t=Qu(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 Zu(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,is)),s.opts.offset&&(a=(0,lt._mergeShaders)(a,os)),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]+zt.dist(c,l)),c=l;return a},r}(lt.LayerExtension);or.defaultProps=rl;or.extensionName="PathStyleExtension";var as=p(b());var ct=p(b()),nl=`
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
+ `,il=`
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
+ `,ol={"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 sl(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 ss={name:"fill-pattern",vs:nl,fs:il,inject:ol,dependencies:[ct.project],getUniforms:sl};function sr(e){return typeof Symbol=="function"&&typeof Symbol.iterator=="symbol"?sr=function(r){return typeof r}:sr=function(r){return r&&typeof Symbol=="function"&&r.constructor===Symbol&&r!==Symbol.prototype?"symbol":typeof r},sr(e)}function al(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}function _l(e,t){if(typeof t!="function"&&t!==null)throw new TypeError("Super expression must either be null or a function");e.prototype=Object.create(t&&t.prototype,{constructor:{value:e,writable:!0,configurable:!0}}),t&&Nn(e,t)}function Nn(e,t){return Nn=Object.setPrototypeOf||function(n,o){return n.__proto__=o,n},Nn(e,t)}function fl(e){var t=cl();return function(){var n=ar(e),o;if(t){var s=ar(this).constructor;o=Reflect.construct(n,arguments,s)}else o=n.apply(this,arguments);return ul(this,o)}}function ul(e,t){if(t&&(sr(t)==="object"||typeof t=="function"))return t;if(t!==void 0)throw new TypeError("Derived constructors may only return object or undefined");return ll(e)}function ll(e){if(e===void 0)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return e}function cl(){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 ar(e){return ar=Object.setPrototypeOf?Object.getPrototypeOf:function(r){return r.__proto__||Object.getPrototypeOf(r)},ar(e)}var El={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]}},_r=function(e){_l(r,e);var t=fl(r);function r(){var o=arguments.length>0&&arguments[0]!==void 0?arguments[0]:{},s=o.pattern,a=s===void 0?!1:s;return al(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&&ss].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}(as.LayerExtension);_r.defaultProps=El;_r.extensionName="FillStyleExtension";var _s=p(b());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 dl(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}function Rl(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 Tl(e){var t=hl();return function(){var n=ur(e),o;if(t){var s=ur(this).constructor;o=Reflect.construct(n,arguments,s)}else o=n.apply(this,arguments);return Al(this,o)}}function Al(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 pl(e)}function pl(e){if(e===void 0)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return e}function hl(){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 ur(e){return ur=Object.setPrototypeOf?Object.getPrototypeOf:function(r){return r.__proto__||Object.getPrototypeOf(r)},ur(e)}var ml={clipBounds:[0,0,1,1],clipByInstance:void 0},fs=`
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
+ `,Sl={name:"clip-vs",vs:fs},gl={"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
+ `},Ol={name:"clip-fs",fs},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
+ `},lr=function(e){Rl(r,e);var t=Tl(r);function r(){return dl(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:[Sl],inject:gl}:{modules:[Ol],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}(_s.LayerExtension);lr.defaultProps=ml;lr.extensionName="ClipExtension";var Ps=p(b());var us=p(b()),bl=`
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
+ `,Il={"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
+ `},Pl=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:s}},ls={name:"collision",dependencies:[us.project],vs:bl,inject:Il,getUniforms:Pl};var bs=p(b());var ds=p(b());function cr(e){return typeof Symbol=="function"&&typeof Symbol.iterator=="symbol"?cr=function(r){return typeof r}:cr=function(r){return r&&typeof Symbol=="function"&&r.constructor===Symbol&&r!==Symbol.prototype?"symbol":typeof r},cr(e)}function cs(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 Es(e){for(var t=1;t<arguments.length;t++){var r=arguments[t]!=null?arguments[t]:{};t%2?cs(Object(r),!0).forEach(function(n){vl(e,n,r[n])}):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(r)):cs(Object(r)).forEach(function(n){Object.defineProperty(e,n,Object.getOwnPropertyDescriptor(r,n))})}return e}function vl(e,t,r){return t in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r,e}function Fl(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}function Cl(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 Ml(e){var t=Bl();return function(){var n=Er(e),o;if(t){var s=Er(this).constructor;o=Reflect.construct(n,arguments,s)}else o=n.apply(this,arguments);return yl(this,o)}}function yl(e,t){if(t&&(cr(t)==="object"||typeof t=="function"))return t;if(t!==void 0)throw new TypeError("Derived constructors may only return object or undefined");return xl(e)}function xl(e){if(e===void 0)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return e}function Bl(){if(typeof Reflect>"u"||!Reflect.construct||Reflect.construct.sham)return!1;if(typeof Proxy=="function")return!0;try{return Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],function(){})),!0}catch{return!1}}function Er(e){return Er=Object.setPrototypeOf?Object.getPrototypeOf:function(r){return r.__proto__||Object.getPrototypeOf(r)},Er(e)}var Rs=function(e){Cl(r,e);var t=Ml(r);function r(){return Fl(this,r),t.apply(this,arguments)}var n=r.prototype;return n.renderCollisionMap=function(s,a){var _=this,f=1;return F(this.device,{scissorTest:!0,scissor:[f,f,s.width-2*f,s.height-2*f],clearColor:[0,0,0,0],blend:!1,depthTest:!0,depthRange:[0,1]},function(){return _.render(Es(Es({},a),{},{target:s,pass:"collision"}))})},n.getModuleParameters=function(){return{drawToCollisionMap:!0,pickingActive:1,pickingAttribute:!1,lightSources:{}}},r}(ds._LayersPass);var vn=p(b());var ps=p(b());function dr(e){return typeof Symbol=="function"&&typeof Symbol.iterator=="symbol"?dr=function(r){return typeof r}:dr=function(r){return r&&typeof Symbol=="function"&&r.constructor===Symbol&&r!==Symbol.prototype?"symbol":typeof r},dr(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){Dl(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 Dl(e,t,r){return t in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r,e}function Ul(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}function Rr(e,t,r){return typeof Reflect<"u"&&Reflect.get?Rr=Reflect.get:Rr=function(o,s,a){var _=wl(o,s);if(_){var f=Object.getOwnPropertyDescriptor(_,s);return f.get?f.get.call(a):f.value}},Rr(e,t,r||e)}function wl(e,t){for(;!Object.prototype.hasOwnProperty.call(e,t)&&(e=we(e),e!==null););return e}function Ll(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 Xl(e){var t=Wl();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 Hl(this,o)}}function Hl(e,t){if(t&&(dr(t)==="object"||typeof t=="function"))return t;if(t!==void 0)throw new TypeError("Derived constructors may only return object or undefined");return Vl(e)}function Vl(e){if(e===void 0)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return e}function Wl(){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 hs=function(e){Ll(r,e);var t=Xl(r);function r(o,s){var a;Ul(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];return _[s.channel]=!0,F(this.device,{clearColor:[255,255,255,255],blend:!0,blendFunc:[0,1],blendEquation:32778,colorMask:_,depthTest:!1},function(){return Rr(we(r.prototype),"render",a).call(a,As(As({},s),{},{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}(ps._LayersPass);var Tr=p(b());function kl(e,t){return Yl(e)||jl(e,t)||Ss(e,t)||Kl()}function Kl(){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 jl(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 Yl(e){if(Array.isArray(e))return e}function zl(e,t){var r=typeof Symbol<"u"&&e[Symbol.iterator]||e["@@iterator"];if(!r){if(Array.isArray(e)||(r=Ss(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 Ss(e,t){if(e){if(typeof e=="string")return ms(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 ms(e,t)}}function ms(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=zl(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 Gl=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=Gl-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 $l(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=$l(t,r),o=Zl(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 Zl(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=Ql(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 Ql(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 Jl(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}var Ar=function(){function e(){Jl(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 hs(n,{id:"default-mask"}),this.maskMap=this.maskPass.maskMap);var d=this._sortMaskChannels(E),R=_[0],A=!this.lastViewport||!this.lastViewport.equals(R);if(R.resolution!==void 0)return vn.log.warn("MaskExtension is not supported in GlobeView")(),{didRender:c};for(var T in d){var h=this._renderChannel(d[T],{layerFilter:a,onViewportActive:f,views:u,viewport:R,viewportChanged:A});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,A=this.maskMap,T=d&&Xe({bounds:n.bounds,viewport:f,width:A.width,height:A.height,border:1});n.maskBounds=T?T.getBounds():[0,0,1,1],R.render({pass:"mask",channel:n.index,layers:n.layers,layerFilter:s,viewports:T?[T]:[],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 T=f.value,h=T.root.id,m=s[h];if(!m){if(++a>4)return vn.log.warn("Too many mask layers. The max supported is 4")(),"continue";m={id:h,index:o.channels.findIndex(function(N){return N?.id===h}),layers:[],layerBounds:[],coordinateOrigin:T.root.props.coordinateOrigin,coordinateSystem:T.root.props.coordinateSystem},s[h]=m}m.layers.push(T),m.layerBounds.push(T.getBounds())};for(_.s();!(f=_.n()).done;)var l=u()}catch(A){_.e(A)}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(A){return!A}),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 ec(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 tc(e,t){return ic(e)||nc(e,t)||Ns(e,t)||rc()}function rc(){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 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 nc(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 ic(e){if(Array.isArray(e))return e}function oc(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}var Fn=2,Is=function(){function e(){oc(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 A=_.filter(function(w){var he=w.props,Un=he.visible,Ke=he.collisionEnabled;return Un&&Ke});if(A.length===0){this.channels={};return}this.collisionFilterPass||(this.collisionFilterPass=new Rs(n,{id:"default-collision-filter"}));var T=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,A),N=u[0],P=!this.lastViewport||!this.lastViewport.equals(N)||h;for(var fe in m){var j=this.collisionFBOs[fe],ke=m[fe],Pe=n.canvasContext.getPixelSize(),B=tc(Pe,2),ue=B[0],oe=B[1];j.resize({width:ue/Fn,height:oe/Fn}),this._render(ke,{effects:T,layerFilter:f,onViewportActive:l,views:c,viewport:N,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,bs._deepEqual)(E.layers,n.layers,1)||n.layerBounds.some(function(A,T){return!Ue(A,E.layerBounds[T])})||n.allLayersLoaded!==E.allLayersLoaded||n.layers.some(function(A){return A.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()/Fn}})}}},t._groupByCollisionGroup=function(n,o){var s={},a=ec(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,A=Object.keys(this.collisionFBOs);R<A.length;R++){var T=A[R];s[T]||this.destroyFBO(T)}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:"depth16",width:a,height:_});this.collisionFBOs[o]=n.createFramebuffer({id:"collision-".concat(o),width:a,height:_,colorAttachments:[f],depthStencilAttachment:u})},t.destroyFBO=function(n){for(var o=this.collisionFBOs[n],s=o.attachments,a=0,_=Object.values(s);a<_.length;a++){var f=_[a];f.delete()}o.delete(),delete this.collisionFBOs[n]},e}();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 sc(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}function ac(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&&Cn(e,t)}function Cn(e,t){return Cn=Object.setPrototypeOf||function(n,o){return n.__proto__=o,n},Cn(e,t)}function _c(e){var t=lc();return function(){var n=hr(e),o;if(t){var s=hr(this).constructor;o=Reflect.construct(n,arguments,s)}else o=n.apply(this,arguments);return fc(this,o)}}function fc(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 uc(e)}function uc(e){if(e===void 0)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return e}function 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 hr(e){return hr=Object.setPrototypeOf?Object.getPrototypeOf:function(r){return r.__proto__||Object.getPrototypeOf(r)},hr(e)}var cc={getCollisionPriority:{type:"accessor",value:0},collisionEnabled:!0,collisionGroup:{type:"string",value:"default"},collisionTestProps:{}},mr=function(e){ac(r,e);var t=_c(r);function r(){return sc(this,r),t.apply(this,arguments)}var n=r.prototype;return n.getShaders=function(){return{modules:[ls]}},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 Is);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}(Ps.LayerExtension);mr.defaultProps=cc;mr.extensionName="CollisionFilterExtension";var pe=p(b());var vs=p(b()),Ec=`
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
+ `,dc=`
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
+ `,Rc={"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}:{}},Fs={name:"mask",dependencies:[vs.project],vs:Ec,fs:dc,inject:Rc,getUniforms:Tc};function Sr(e){return typeof Symbol=="function"&&typeof Symbol.iterator=="symbol"?Sr=function(r){return typeof r}:Sr=function(r){return r&&typeof Symbol=="function"&&r.constructor===Symbol&&r!==Symbol.prototype?"symbol":typeof r},Sr(e)}function Ac(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}function pc(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 hc(e){var t=gc();return function(){var n=gr(e),o;if(t){var s=gr(this).constructor;o=Reflect.construct(n,arguments,s)}else o=n.apply(this,arguments);return mc(this,o)}}function mc(e,t){if(t&&(Sr(t)==="object"||typeof t=="function"))return t;if(t!==void 0)throw new TypeError("Derived constructors may only return object or undefined");return Sc(e)}function Sc(e){if(e===void 0)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return e}function gc(){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 gr(e){return gr=Object.setPrototypeOf?Object.getPrototypeOf:function(r){return r.__proto__||Object.getPrototypeOf(r)},gr(e)}var Oc={maskId:"",maskByInstance:void 0,maskInverted:!1},Or=function(e){pc(r,e);var t=hc(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:[Fs]}},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],A=R.index,T=R.bounds,h=R.coordinateOrigin,m=E[l].coordinateSystem;a.mask_enabled=!0,a.mask_channel=A,a.mask_inverted=c,m===pe.COORDINATE_SYSTEM.DEFAULT&&(m=d.isGeospatial?pe.COORDINATE_SYSTEM.LNGLAT:pe.COORDINATE_SYSTEM.CARTESIAN);var N={modelMatrix:null,fromCoordinateOrigin:h,fromCoordinateSystem:m},P=this.projectPosition([T[0],T[1],0],N),fe=this.projectPosition([T[2],T[3],0],N);a.mask_bounds=[P[0],P[1],fe[0],fe[1]]}else l&&pe.log.warn("Could not find a mask layer with id: ".concat(l))(),a.mask_enabled=!1},r}(pe.LayerExtension);Or.defaultProps=Oc;Or.extensionName="MaskExtension";var Zs=p(b());var Mr=p(b());var Ms=p(b()),ie={NONE:0,WRITE_HEIGHT_MAP:1,USE_HEIGHT_MAP:2,USE_COVER:3,USE_COVER_ONLY:4,SKIP:5},Cs=Object.keys(ie).map(function(e){return"const float TERRAIN_MODE_".concat(e," = ").concat(ie[e],".0;")}).join(`
1511
+ `),Nr={name:"terrain",dependencies:[Ms.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(Cs,`
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(Cs,`
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 ys(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 xs(e){for(var t=1;t<arguments.length;t++){var r=arguments[t]!=null?arguments[t]:{};t%2?ys(Object(r),!0).forEach(function(n){Nc(e,n,r[n])}):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(r)):ys(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(xs(xs({},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 bc(e,t){var r=typeof Symbol<"u"&&e[Symbol.iterator]||e["@@iterator"];if(!r){if(Array.isArray(e)||(r=Ic(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 Ic(e,t){if(e){if(typeof e=="string")return Bs(e,t);var r=Object.prototype.toString.call(e).slice(8,-1);if(r==="Object"&&e.constructor&&(r=e.constructor.name),r==="Map"||r==="Set")return Array.from(e);if(r==="Arguments"||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(r))return Bs(e,t)}}function Bs(e,t){(t==null||t>e.length)&&(t=e.length);for(var r=0,n=new Array(t);r<t;r++)n[r]=e[r];return n}function Pc(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}function Ds(e,t){for(var r=0;r<t.length;r++){var n=t[r];n.enumerable=n.enumerable||!1,n.configurable=!0,"value"in n&&(n.writable=!0),Object.defineProperty(e,n.key,n)}}function vc(e,t,r){return t&&Ds(e.prototype,t),r&&Ds(e,r),e}var Us=function(){function e(r){Pc(this,e),this.isDirty=!0,this.targetLayer=void 0,this.renderViewport=null,this.bounds=null,this.fbo=void 0,this.pickingFbo=void 0,this.layers=[],this.tile=void 0,this.targetBounds=null,this.targetBoundsCommon=null,this.targetLayer=r,this.tile=ws(r)}var t=e.prototype;return t.shouldUpdate=function(n){var o=n.targetLayer,s=n.viewport,a=n.layers,_=n.layerNeedsRedraw;o&&(this.targetLayer=o);var f=s?this._updateViewport(s):!1,u=a?this._updateLayers(a):!1;if(_){var l=bc(this.layers),c;try{for(l.s();!(c=l.n()).done;){var E=c.value;if(_[E]){u=!0;break}}}catch(d){l.e(d)}finally{l.f()}}return u||f},t._updateLayers=function(n){var o=!1;if(n=this.tile?Fc(this.tile,n):n,n.length!==this.layers.length)o=!0;else for(var s=0;s<n.length;s++){var a=n[s].id;if(a!==this.layers[s]){o=!0;break}}return o&&(this.layers=n.map(function(_){return _.id})),o},t._updateViewport=function(n){var o=this.targetLayer,s=!1;if(this.tile&&"boundingBox"in this.tile){if(!this.targetBounds){s=!0,this.targetBounds=this.tile.boundingBox;var a=n.projectPosition(this.targetBounds[0]),_=n.projectPosition(this.targetBounds[1]);this.targetBoundsCommon=[a[0],a[1],_[0],_[1]]}}else this.targetBounds!==o.getBounds()&&(s=!0,this.targetBounds=o.getBounds(),this.targetBoundsCommon=Le([o],n));if(!this.targetBoundsCommon)return!1;var f=Math.ceil(n.zoom+.5);if(this.tile)this.bounds=this.targetBoundsCommon;else{var u,l=(u=this.renderViewport)===null||u===void 0?void 0:u.zoom;s=s||f!==l;var c=He(this.targetBoundsCommon,n),E=this.bounds;s=s||!E||c.some(function(d,R){return d!==E[R]}),this.bounds=c}return s&&(this.renderViewport=Xe({bounds:this.bounds,zoom:f,viewport:n})),s},t.getRenderFramebuffer=function(){return!this.renderViewport||this.layers.length===0?null:(this.fbo||(this.fbo=Et(this.targetLayer.context.device,{id:this.id})),this.fbo)},t.getPickingFramebuffer=function(){return!this.renderViewport||this.layers.length===0&&!this.targetLayer.props.pickable?null:(this.pickingFbo||(this.pickingFbo=Et(this.targetLayer.context.device,{id:"".concat(this.id,"-picking")})),this.pickingFbo)},t.filterLayers=function(n){var o=this;return n.filter(function(s){var a=s.id;return o.layers.includes(a)})},t.delete=function(){var n=this.fbo,o=this.pickingFbo;n&&(n.colorAttachments[0].destroy(),n.destroy()),o&&(o.colorAttachments[0].destroy(),o.destroy())},vc(e,[{key:"id",get:function(){return this.targetLayer.id}},{key:"isActive",get:function(){return Boolean(this.targetLayer.getCurrentLayer())}}]),e}();function Fc(e,t){return t.filter(function(r){var n=ws(r);return n?Cc(e.boundingBox,n.boundingBox):!0})}function ws(e){for(;e;){var t=e.props.tile;if(t)return t;e=e.parent}return null}function Cc(e,t){return e&&t?e[0][0]<t[1][0]&&t[0][0]<e[1][0]&&e[0][1]<t[1][1]&&t[0][1]<e[1][1]:!1}var Xs=p(b());function Ir(e){return typeof Symbol=="function"&&typeof Symbol.iterator=="symbol"?Ir=function(r){return typeof r}:Ir=function(r){return r&&typeof Symbol=="function"&&r.constructor===Symbol&&r!==Symbol.prototype?"symbol":typeof r},Ir(e)}function Ls(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter(function(o){return Object.getOwnPropertyDescriptor(e,o).enumerable})),r.push.apply(r,n)}return r}function br(e){for(var t=1;t<arguments.length;t++){var r=arguments[t]!=null?arguments[t]:{};t%2?Ls(Object(r),!0).forEach(function(n){Mc(e,n,r[n])}):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(r)):Ls(Object(r)).forEach(function(n){Object.defineProperty(e,n,Object.getOwnPropertyDescriptor(r,n))})}return e}function Mc(e,t,r){return t in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r,e}function yc(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}function xc(e,t){if(typeof t!="function"&&t!==null)throw new TypeError("Super expression must either be null or a function");e.prototype=Object.create(t&&t.prototype,{constructor:{value:e,writable:!0,configurable:!0}}),t&&yn(e,t)}function yn(e,t){return yn=Object.setPrototypeOf||function(n,o){return n.__proto__=o,n},yn(e,t)}function Bc(e){var t=wc();return function(){var n=Pr(e),o;if(t){var s=Pr(this).constructor;o=Reflect.construct(n,arguments,s)}else o=n.apply(this,arguments);return Dc(this,o)}}function Dc(e,t){if(t&&(Ir(t)==="object"||typeof t=="function"))return t;if(t!==void 0)throw new TypeError("Derived constructors may only return object or undefined");return Uc(e)}function Uc(e){if(e===void 0)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return e}function wc(){if(typeof Reflect>"u"||!Reflect.construct||Reflect.construct.sham)return!1;if(typeof Proxy=="function")return!0;try{return Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],function(){})),!0}catch{return!1}}function Pr(e){return Pr=Object.setPrototypeOf?Object.getPrototypeOf:function(r){return r.__proto__||Object.getPrototypeOf(r)},Pr(e)}var Hs=function(e){xc(r,e);var t=Bc(r);function r(){return yc(this,r),t.apply(this,arguments)}var n=r.prototype;return n.getRenderableLayers=function(s,a){for(var _=a.layers,f=[],u=this._getDrawLayerParams(s,a,!0),l=0;l<_.length;l++){var c=_[l];!c.isComposite&&u[l].shouldDrawLayer&&f.push(c)}return f},n.renderHeightMap=function(s,a){var _=this,f=s.getRenderFramebuffer(),u=s.renderViewport;!f||!u||(f.resize(u),F(this.device,{clearColor:[0,0,0,0],blend:!0,blendFunc:[1,1],blendEquation:32776,depthTest:!1},function(){return _.render(br(br({},a),{},{target:f,pass:"terrain-height-map",layers:a.layers,viewports:[u],effects:[]}))}))},n.renderTerrainCover=function(s,a){var _=this,f=s.getRenderFramebuffer(),u=s.renderViewport;if(!(!f||!u)){var l=s.filterLayers(a.layers);f.resize(u),F(this.device,{clearColor:[0,0,0,0],depthTest:!1},function(){return _.render(br(br({},a),{},{target:f,pass:"terrain-cover-".concat(s.id),layers:l,effects:[],viewports:[u]}))})}},r}(Xs._LayersPass);var ks=p(b());function vr(e){return typeof Symbol=="function"&&typeof Symbol.iterator=="symbol"?vr=function(r){return typeof r}:vr=function(r){return r&&typeof Symbol=="function"&&r.constructor===Symbol&&r!==Symbol.prototype?"symbol":typeof r},vr(e)}function Vs(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter(function(o){return Object.getOwnPropertyDescriptor(e,o).enumerable})),r.push.apply(r,n)}return r}function Ws(e){for(var t=1;t<arguments.length;t++){var r=arguments[t]!=null?arguments[t]:{};t%2?Vs(Object(r),!0).forEach(function(n){Lc(e,n,r[n])}):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(r)):Vs(Object(r)).forEach(function(n){Object.defineProperty(e,n,Object.getOwnPropertyDescriptor(r,n))})}return e}function Lc(e,t,r){return t in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r,e}function Xc(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}function Fr(e,t,r){return typeof Reflect<"u"&&Reflect.get?Fr=Reflect.get:Fr=function(o,s,a){var _=Hc(o,s);if(_){var f=Object.getOwnPropertyDescriptor(_,s);return f.get?f.get.call(a):f.value}},Fr(e,t,r||e)}function Hc(e,t){for(;!Object.prototype.hasOwnProperty.call(e,t)&&(e=Ve(e),e!==null););return e}function Vc(e,t){if(typeof t!="function"&&t!==null)throw new TypeError("Super expression must either be null or a function");e.prototype=Object.create(t&&t.prototype,{constructor:{value:e,writable:!0,configurable:!0}}),t&&xn(e,t)}function xn(e,t){return xn=Object.setPrototypeOf||function(n,o){return n.__proto__=o,n},xn(e,t)}function Wc(e){var t=jc();return function(){var n=Ve(e),o;if(t){var s=Ve(this).constructor;o=Reflect.construct(n,arguments,s)}else o=n.apply(this,arguments);return kc(this,o)}}function kc(e,t){if(t&&(vr(t)==="object"||typeof t=="function"))return t;if(t!==void 0)throw new TypeError("Derived constructors may only return object or undefined");return Kc(e)}function Kc(e){if(e===void 0)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return e}function jc(){if(typeof Reflect>"u"||!Reflect.construct||Reflect.construct.sham)return!1;if(typeof Proxy=="function")return!0;try{return Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],function(){})),!0}catch{return!1}}function Ve(e){return Ve=Object.setPrototypeOf?Object.getPrototypeOf:function(r){return r.__proto__||Object.getPrototypeOf(r)},Ve(e)}var Ks=function(e){Vc(r,e);var t=Wc(r);function r(){var o;Xc(this,r);for(var s=arguments.length,a=new Array(s),_=0;_<s;_++)a[_]=arguments[_];return o=t.call.apply(t,[this].concat(a)),o.drawParameters={},o}var n=r.prototype;return n.getRenderableLayers=function(s,a){var _=a.layers,f=[];this.drawParameters={},this._resetColorEncoder(a.pickZ);for(var u=this._getDrawLayerParams(s,a),l=0;l<_.length;l++){var c=_[l];!c.isComposite&&u[l].shouldDrawLayer&&(f.push(c),this.drawParameters[c.id]=u[l].layerParameters)}return f},n.renderTerrainCover=function(s,a){var _=this,f=s.getPickingFramebuffer(),u=s.renderViewport;if(!(!f||!u)){var l=s.filterLayers(a.layers),c=s.targetLayer;c.props.pickable&&l.unshift(c),f.resize(u),F(this.device,{depthTest:!1},function(){return _.render(Ws(Ws({},a),{},{pickingFBO:f,pass:"terrain-cover-picking-".concat(s.id),layers:l,effects:[],viewports:[u],cullRect:void 0,deviceRect:u,pickZ:!1}))})}},n.getLayerParameters=function(s,a,_){if(this.drawParameters[s.id])return this.drawParameters[s.id];var f=Fr(Ve(r.prototype),"getLayerParameters",this).call(this,s,a,_);return f.blend=!0,f},r}(ks._PickLayersPass);function Yc(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}var js=2048,Bn=function(){e.isSupported=function(n){return n.isTextureFormatRenderable("rgba32float")};function e(r){Yc(this,e),this.renderViewport=null,this.bounds=null,this.fbo=void 0,this.device=void 0,this.layers=[],this.layersBounds=[],this.layersBoundsCommon=null,this.lastViewport=null,this.device=r}var t=e.prototype;return t.getRenderFramebuffer=function(){return this.renderViewport?(this.fbo||(this.fbo=Et(this.device,{id:"height-map",float:!0})),this.fbo):null},t.shouldUpdate=function(n){var o=this,s=n.layers,a=n.viewport,_=s.length!==this.layers.length||s.some(function(d,R){return d!==o.layers[R]||d.props.transitions||d.getBounds()!==o.layersBounds[R]});_&&(this.layers=s,this.layersBounds=s.map(function(d){return d.getBounds()}),this.layersBoundsCommon=Le(s,a));var f=!this.lastViewport||!a.equals(this.lastViewport);if(!this.layersBoundsCommon)this.renderViewport=null;else if(_||f){var u=He(this.layersBoundsCommon,a);if(u[2]<=u[0]||u[3]<=u[1])return this.renderViewport=null,!1;this.bounds=u,this.lastViewport=a;var l=a.scale,c=(u[2]-u[0])*l,E=(u[3]-u[1])*l;return this.renderViewport=c>0||E>0?Xe({bounds:[a.center[0]-1,a.center[1]-1,a.center[0]+1,a.center[1]+1],zoom:a.zoom,width:Math.min(c,js),height:Math.min(E,js),viewport:a}):null,!0}return!1},t.delete=function(){this.fbo&&(this.fbo.colorAttachments[0].delete(),this.fbo.delete())},e}();function zc(e,t){return Zc(e)||$c(e,t)||Gs(e,t)||Gc()}function Gc(){throw new TypeError(`Invalid attempt to destructure non-iterable instance.
1565
+ In order to be iterable, non-array objects must have a [Symbol.iterator]() method.`)}function $c(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 Zc(e){if(Array.isArray(e))return e}function Ys(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 Cr(e){for(var t=1;t<arguments.length;t++){var r=arguments[t]!=null?arguments[t]:{};t%2?Ys(Object(r),!0).forEach(function(n){qc(e,n,r[n])}):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(r)):Ys(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=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.
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 Gs(e,t){if(e){if(typeof e=="string")return zs(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 zs(e,t)}}function zs(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 Qc(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}var $s=function(){function e(){Qc(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 Hs(n,{id:"terrain"}),this.terrainPickingPass=new Ks(n,{id:"terrain-picking"}),Bn.isSupported(n)?this.heightMap=new Bn(n):Mr.log.warn("Terrain offset mode is not supported by this browser")(),(0,Mr.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(T){s.e(T)}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(T){return T.props.operation.includes("terrain")});if(d.length!==0){if(!l){var R=E.filter(function(T){return T.state.terrainDrawMode==="offset"});R.length>0&&this._updateHeightMap(d,c,o)}var A=E.filter(function(T){return T.state.terrainDrawMode==="drape"});this._updateTerrainCovers(d,A,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,Cr(Cr({},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),A;try{for(R.s();!(A=R.n()).done;){var T=A.value;this._updateTerrainCover(T,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 Us(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,Cr(Cr({},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=zc(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 yr(e){return typeof Symbol=="function"&&typeof Symbol.iterator=="symbol"?yr=function(r){return typeof r}:yr=function(r){return r&&typeof Symbol=="function"&&r.constructor===Symbol&&r!==Symbol.prototype?"symbol":typeof r},yr(e)}function Jc(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}function eE(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&&Dn(e,t)}function Dn(e,t){return Dn=Object.setPrototypeOf||function(n,o){return n.__proto__=o,n},Dn(e,t)}function tE(e){var t=iE();return function(){var n=xr(e),o;if(t){var s=xr(this).constructor;o=Reflect.construct(n,arguments,s)}else o=n.apply(this,arguments);return rE(this,o)}}function rE(e,t){if(t&&(yr(t)==="object"||typeof t=="function"))return t;if(t!==void 0)throw new TypeError("Derived constructors may only return object or undefined");return nE(e)}function nE(e){if(e===void 0)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return e}function iE(){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 xr(e){return xr=Object.setPrototypeOf?Object.getPrototypeOf:function(r){return r.__proto__||Object.getPrototypeOf(r)},xr(e)}var oE={terrainDrawMode:void 0},Br=function(e){eE(r,e);var t=tE(r);function r(){return Jc(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 $s)},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}(Zs.LayerExtension);Br.defaultProps=oE;Br.extensionName="TerrainExtension";return ra(dt);})();
1369
1567
  return __exports__;
1370
1568
  });