@deck.gl/extensions 9.0.0-beta.1 → 9.0.0-beta.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 (232) hide show
  1. package/dist/brushing/brushing-extension.js +80 -0
  2. package/dist/{esm/brushing → brushing}/shader-module.js +24 -30
  3. package/dist/clip/clip-extension.js +117 -0
  4. package/{typed → dist}/collision-filter/collision-filter-effect.d.ts.map +1 -1
  5. package/dist/collision-filter/collision-filter-effect.js +193 -0
  6. package/dist/collision-filter/collision-filter-extension.js +49 -0
  7. package/{typed → dist}/collision-filter/collision-filter-pass.d.ts.map +1 -1
  8. package/dist/collision-filter/collision-filter-pass.js +25 -0
  9. package/dist/{esm/collision-filter → collision-filter}/shader-module.js +17 -24
  10. package/dist/data-filter/aggregator.js +104 -0
  11. package/{typed → dist}/data-filter/data-filter-extension.d.ts.map +1 -1
  12. package/dist/data-filter/data-filter-extension.js +162 -0
  13. package/dist/data-filter/shader-module.js +159 -0
  14. package/dist/dist.dev.js +1519 -9832
  15. package/dist/fill-style/fill-style-extension.js +118 -0
  16. package/dist/{esm/fill-style → fill-style}/shaders.glsl.js +37 -43
  17. package/dist/fp64/fp64-extension.js +35 -0
  18. package/dist/{esm/fp64 → fp64}/project64.glsl.js +19 -1
  19. package/dist/fp64/project64.js +50 -0
  20. package/dist/index.cjs +2724 -0
  21. package/dist/index.cjs.map +7 -0
  22. package/dist/index.js +11 -0
  23. package/{typed → dist}/mask/mask-effect.d.ts.map +1 -1
  24. package/dist/mask/mask-effect.js +194 -0
  25. package/dist/mask/mask-extension.js +57 -0
  26. package/{typed → dist}/mask/mask-pass.d.ts.map +1 -1
  27. package/dist/mask/mask-pass.js +44 -0
  28. package/dist/{esm/mask → mask}/shader-module.js +18 -21
  29. package/dist/path-style/path-style-extension.js +111 -0
  30. package/dist/{esm/path-style → path-style}/shaders.glsl.js +20 -13
  31. package/dist/terrain/height-map-builder.js +104 -0
  32. package/dist/terrain/shader-module.js +139 -0
  33. package/dist/terrain/terrain-cover.js +187 -0
  34. package/{typed → dist}/terrain/terrain-effect.d.ts.map +1 -1
  35. package/dist/terrain/terrain-effect.js +184 -0
  36. package/dist/terrain/terrain-extension.js +44 -0
  37. package/{typed → dist}/terrain/terrain-pass.d.ts.map +1 -1
  38. package/dist/terrain/terrain-pass.js +61 -0
  39. package/{typed → dist}/terrain/terrain-picking-pass.d.ts.map +1 -1
  40. package/dist/terrain/terrain-picking-pass.js +66 -0
  41. package/dist/terrain/utils.js +21 -0
  42. package/{typed → dist}/utils/debug.d.ts.map +1 -1
  43. package/dist/utils/debug.js +50 -0
  44. package/dist/utils/projection-utils.js +153 -0
  45. package/dist.min.js +72 -201
  46. package/package.json +19 -12
  47. package/src/collision-filter/collision-filter-effect.ts +12 -8
  48. package/src/collision-filter/collision-filter-pass.ts +1 -3
  49. package/src/data-filter/data-filter-extension.ts +3 -5
  50. package/src/mask/mask-effect.ts +0 -1
  51. package/src/mask/mask-pass.ts +1 -3
  52. package/src/terrain/terrain-effect.ts +8 -2
  53. package/src/terrain/terrain-pass.ts +2 -5
  54. package/src/terrain/terrain-picking-pass.ts +1 -3
  55. package/src/utils/debug.ts +1 -2
  56. package/dist/es5/brushing/brushing-extension.js +0 -108
  57. package/dist/es5/brushing/brushing-extension.js.map +0 -1
  58. package/dist/es5/brushing/shader-module.js +0 -50
  59. package/dist/es5/brushing/shader-module.js.map +0 -1
  60. package/dist/es5/clip/clip-extension.js +0 -98
  61. package/dist/es5/clip/clip-extension.js.map +0 -1
  62. package/dist/es5/collision-filter/collision-filter-effect.js +0 -294
  63. package/dist/es5/collision-filter/collision-filter-effect.js.map +0 -1
  64. package/dist/es5/collision-filter/collision-filter-extension.js +0 -109
  65. package/dist/es5/collision-filter/collision-filter-extension.js.map +0 -1
  66. package/dist/es5/collision-filter/collision-filter-pass.js +0 -79
  67. package/dist/es5/collision-filter/collision-filter-pass.js.map +0 -1
  68. package/dist/es5/collision-filter/shader-module.js +0 -39
  69. package/dist/es5/collision-filter/shader-module.js.map +0 -1
  70. package/dist/es5/data-filter/aggregator.js +0 -79
  71. package/dist/es5/data-filter/aggregator.js.map +0 -1
  72. package/dist/es5/data-filter/data-filter-extension.js +0 -236
  73. package/dist/es5/data-filter/data-filter-extension.js.map +0 -1
  74. package/dist/es5/data-filter/shader-module.js +0 -122
  75. package/dist/es5/data-filter/shader-module.js.map +0 -1
  76. package/dist/es5/fill-style/fill-style-extension.js +0 -190
  77. package/dist/es5/fill-style/fill-style-extension.js.map +0 -1
  78. package/dist/es5/fill-style/shaders.glsl.js +0 -59
  79. package/dist/es5/fill-style/shaders.glsl.js.map +0 -1
  80. package/dist/es5/fp64/fp64-extension.js +0 -55
  81. package/dist/es5/fp64/fp64-extension.js.map +0 -1
  82. package/dist/es5/fp64/project64.glsl.js +0 -9
  83. package/dist/es5/fp64/project64.glsl.js.map +0 -1
  84. package/dist/es5/fp64/project64.js +0 -52
  85. package/dist/es5/fp64/project64.js.map +0 -1
  86. package/dist/es5/index.js +0 -88
  87. package/dist/es5/index.js.map +0 -1
  88. package/dist/es5/mask/mask-effect.js +0 -279
  89. package/dist/es5/mask/mask-effect.js.map +0 -1
  90. package/dist/es5/mask/mask-extension.js +0 -113
  91. package/dist/es5/mask/mask-extension.js.map +0 -1
  92. package/dist/es5/mask/mask-pass.js +0 -106
  93. package/dist/es5/mask/mask-pass.js.map +0 -1
  94. package/dist/es5/mask/shader-module.js +0 -38
  95. package/dist/es5/mask/shader-module.js.map +0 -1
  96. package/dist/es5/path-style/path-style-extension.js +0 -169
  97. package/dist/es5/path-style/path-style-extension.js.map +0 -1
  98. package/dist/es5/path-style/shaders.glsl.js +0 -25
  99. package/dist/es5/path-style/shaders.glsl.js.map +0 -1
  100. package/dist/es5/terrain/height-map-builder.js +0 -111
  101. package/dist/es5/terrain/height-map-builder.js.map +0 -1
  102. package/dist/es5/terrain/shader-module.js +0 -86
  103. package/dist/es5/terrain/shader-module.js.map +0 -1
  104. package/dist/es5/terrain/terrain-cover.js +0 -256
  105. package/dist/es5/terrain/terrain-cover.js.map +0 -1
  106. package/dist/es5/terrain/terrain-effect.js +0 -326
  107. package/dist/es5/terrain/terrain-effect.js.map +0 -1
  108. package/dist/es5/terrain/terrain-extension.js +0 -94
  109. package/dist/es5/terrain/terrain-extension.js.map +0 -1
  110. package/dist/es5/terrain/terrain-pass.js +0 -121
  111. package/dist/es5/terrain/terrain-pass.js.map +0 -1
  112. package/dist/es5/terrain/terrain-picking-pass.js +0 -124
  113. package/dist/es5/terrain/terrain-picking-pass.js.map +0 -1
  114. package/dist/es5/terrain/utils.js +0 -35
  115. package/dist/es5/terrain/utils.js.map +0 -1
  116. package/dist/es5/utils/debug.js +0 -71
  117. package/dist/es5/utils/debug.js.map +0 -1
  118. package/dist/es5/utils/projection-utils.js +0 -168
  119. package/dist/es5/utils/projection-utils.js.map +0 -1
  120. package/dist/esm/brushing/brushing-extension.js +0 -68
  121. package/dist/esm/brushing/brushing-extension.js.map +0 -1
  122. package/dist/esm/brushing/shader-module.js.map +0 -1
  123. package/dist/esm/clip/clip-extension.js +0 -86
  124. package/dist/esm/clip/clip-extension.js.map +0 -1
  125. package/dist/esm/collision-filter/collision-filter-effect.js +0 -246
  126. package/dist/esm/collision-filter/collision-filter-effect.js.map +0 -1
  127. package/dist/esm/collision-filter/collision-filter-extension.js +0 -75
  128. package/dist/esm/collision-filter/collision-filter-extension.js.map +0 -1
  129. package/dist/esm/collision-filter/collision-filter-pass.js +0 -32
  130. package/dist/esm/collision-filter/collision-filter-pass.js.map +0 -1
  131. package/dist/esm/collision-filter/shader-module.js.map +0 -1
  132. package/dist/esm/data-filter/aggregator.js +0 -102
  133. package/dist/esm/data-filter/aggregator.js.map +0 -1
  134. package/dist/esm/data-filter/data-filter-extension.js +0 -189
  135. package/dist/esm/data-filter/data-filter-extension.js.map +0 -1
  136. package/dist/esm/data-filter/shader-module.js +0 -164
  137. package/dist/esm/data-filter/shader-module.js.map +0 -1
  138. package/dist/esm/fill-style/fill-style-extension.js +0 -156
  139. package/dist/esm/fill-style/fill-style-extension.js.map +0 -1
  140. package/dist/esm/fill-style/shaders.glsl.js.map +0 -1
  141. package/dist/esm/fp64/fp64-extension.js +0 -20
  142. package/dist/esm/fp64/fp64-extension.js.map +0 -1
  143. package/dist/esm/fp64/project64.glsl.js.map +0 -1
  144. package/dist/esm/fp64/project64.js +0 -43
  145. package/dist/esm/fp64/project64.js.map +0 -1
  146. package/dist/esm/index.js +0 -11
  147. package/dist/esm/index.js.map +0 -1
  148. package/dist/esm/mask/mask-effect.js +0 -228
  149. package/dist/esm/mask/mask-effect.js.map +0 -1
  150. package/dist/esm/mask/mask-extension.js +0 -83
  151. package/dist/esm/mask/mask-extension.js.map +0 -1
  152. package/dist/esm/mask/mask-pass.js +0 -58
  153. package/dist/esm/mask/mask-pass.js.map +0 -1
  154. package/dist/esm/mask/shader-module.js.map +0 -1
  155. package/dist/esm/path-style/path-style-extension.js +0 -130
  156. package/dist/esm/path-style/path-style-extension.js.map +0 -1
  157. package/dist/esm/path-style/shaders.glsl.js.map +0 -1
  158. package/dist/esm/terrain/height-map-builder.js +0 -86
  159. package/dist/esm/terrain/height-map-builder.js.map +0 -1
  160. package/dist/esm/terrain/shader-module.js +0 -127
  161. package/dist/esm/terrain/shader-module.js.map +0 -1
  162. package/dist/esm/terrain/terrain-cover.js +0 -212
  163. package/dist/esm/terrain/terrain-cover.js.map +0 -1
  164. package/dist/esm/terrain/terrain-effect.js +0 -219
  165. package/dist/esm/terrain/terrain-effect.js.map +0 -1
  166. package/dist/esm/terrain/terrain-extension.js +0 -59
  167. package/dist/esm/terrain/terrain-extension.js.map +0 -1
  168. package/dist/esm/terrain/terrain-pass.js +0 -71
  169. package/dist/esm/terrain/terrain-pass.js.map +0 -1
  170. package/dist/esm/terrain/terrain-picking-pass.js +0 -73
  171. package/dist/esm/terrain/terrain-picking-pass.js.map +0 -1
  172. package/dist/esm/terrain/utils.js +0 -19
  173. package/dist/esm/terrain/utils.js.map +0 -1
  174. package/dist/esm/utils/debug.js +0 -61
  175. package/dist/esm/utils/debug.js.map +0 -1
  176. package/dist/esm/utils/projection-utils.js +0 -134
  177. package/dist/esm/utils/projection-utils.js.map +0 -1
  178. /package/{typed → dist}/brushing/brushing-extension.d.ts +0 -0
  179. /package/{typed → dist}/brushing/brushing-extension.d.ts.map +0 -0
  180. /package/{typed → dist}/brushing/shader-module.d.ts +0 -0
  181. /package/{typed → dist}/brushing/shader-module.d.ts.map +0 -0
  182. /package/{typed → dist}/clip/clip-extension.d.ts +0 -0
  183. /package/{typed → dist}/clip/clip-extension.d.ts.map +0 -0
  184. /package/{typed → dist}/collision-filter/collision-filter-effect.d.ts +0 -0
  185. /package/{typed → dist}/collision-filter/collision-filter-extension.d.ts +0 -0
  186. /package/{typed → dist}/collision-filter/collision-filter-extension.d.ts.map +0 -0
  187. /package/{typed → dist}/collision-filter/collision-filter-pass.d.ts +0 -0
  188. /package/{typed → dist}/collision-filter/shader-module.d.ts +0 -0
  189. /package/{typed → dist}/collision-filter/shader-module.d.ts.map +0 -0
  190. /package/{typed → dist}/data-filter/aggregator.d.ts +0 -0
  191. /package/{typed → dist}/data-filter/aggregator.d.ts.map +0 -0
  192. /package/{typed → dist}/data-filter/data-filter-extension.d.ts +0 -0
  193. /package/{typed → dist}/data-filter/shader-module.d.ts +0 -0
  194. /package/{typed → dist}/data-filter/shader-module.d.ts.map +0 -0
  195. /package/{typed → dist}/fill-style/fill-style-extension.d.ts +0 -0
  196. /package/{typed → dist}/fill-style/fill-style-extension.d.ts.map +0 -0
  197. /package/{typed → dist}/fill-style/shaders.glsl.d.ts +0 -0
  198. /package/{typed → dist}/fill-style/shaders.glsl.d.ts.map +0 -0
  199. /package/{typed → dist}/fp64/fp64-extension.d.ts +0 -0
  200. /package/{typed → dist}/fp64/fp64-extension.d.ts.map +0 -0
  201. /package/{typed → dist}/fp64/project64.d.ts +0 -0
  202. /package/{typed → dist}/fp64/project64.d.ts.map +0 -0
  203. /package/{typed → dist}/fp64/project64.glsl.d.ts +0 -0
  204. /package/{typed → dist}/fp64/project64.glsl.d.ts.map +0 -0
  205. /package/{typed → dist}/index.d.ts +0 -0
  206. /package/{typed → dist}/index.d.ts.map +0 -0
  207. /package/{typed → dist}/mask/mask-effect.d.ts +0 -0
  208. /package/{typed → dist}/mask/mask-extension.d.ts +0 -0
  209. /package/{typed → dist}/mask/mask-extension.d.ts.map +0 -0
  210. /package/{typed → dist}/mask/mask-pass.d.ts +0 -0
  211. /package/{typed → dist}/mask/shader-module.d.ts +0 -0
  212. /package/{typed → dist}/mask/shader-module.d.ts.map +0 -0
  213. /package/{typed → dist}/path-style/path-style-extension.d.ts +0 -0
  214. /package/{typed → dist}/path-style/path-style-extension.d.ts.map +0 -0
  215. /package/{typed → dist}/path-style/shaders.glsl.d.ts +0 -0
  216. /package/{typed → dist}/path-style/shaders.glsl.d.ts.map +0 -0
  217. /package/{typed → dist}/terrain/height-map-builder.d.ts +0 -0
  218. /package/{typed → dist}/terrain/height-map-builder.d.ts.map +0 -0
  219. /package/{typed → dist}/terrain/shader-module.d.ts +0 -0
  220. /package/{typed → dist}/terrain/shader-module.d.ts.map +0 -0
  221. /package/{typed → dist}/terrain/terrain-cover.d.ts +0 -0
  222. /package/{typed → dist}/terrain/terrain-cover.d.ts.map +0 -0
  223. /package/{typed → dist}/terrain/terrain-effect.d.ts +0 -0
  224. /package/{typed → dist}/terrain/terrain-extension.d.ts +0 -0
  225. /package/{typed → dist}/terrain/terrain-extension.d.ts.map +0 -0
  226. /package/{typed → dist}/terrain/terrain-pass.d.ts +0 -0
  227. /package/{typed → dist}/terrain/terrain-picking-pass.d.ts +0 -0
  228. /package/{typed → dist}/terrain/utils.d.ts +0 -0
  229. /package/{typed → dist}/terrain/utils.d.ts.map +0 -0
  230. /package/{typed → dist}/utils/debug.d.ts +0 -0
  231. /package/{typed → dist}/utils/projection-utils.d.ts +0 -0
  232. /package/{typed → dist}/utils/projection-utils.d.ts.map +0 -0
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 oa=Object.create;var Rt=Object.defineProperty;var sa=Object.getOwnPropertyDescriptor;var aa=Object.getOwnPropertyNames;var fa=Object.getPrototypeOf,la=Object.prototype.hasOwnProperty;var Mi=(e,t)=>()=>(t||e((t={exports:{}}).exports,t),t.exports),Ni=(e,t)=>{for(var r in t)Rt(e,r,{get:t[r],enumerable:!0})},At=(e,t,r,i)=>{if(t&&typeof t=="object"||typeof t=="function")for(let n of aa(t))!la.call(e,n)&&n!==r&&Rt(e,n,{get:()=>t[n],enumerable:!(i=sa(t,n))||i.enumerable});return e},ue=(e,t,r)=>(At(e,t,"default"),r&&At(r,t,"default")),T=(e,t,r)=>(r=e!=null?oa(fa(e)):{},At(t||!e||!e.__esModule?Rt(r,"default",{value:e,enumerable:!0}):r,e)),ca=e=>At(Rt({},"__esModule",{value:!0}),e);var S=Mi((ld,Bi)=>{Bi.exports=globalThis.deck});var E=Mi((hd,Hi)=>{Hi.exports=globalThis.luma});var gt={};Ni(gt,{BrushingExtension:()=>vt,ClipExtension:()=>dr,CollisionFilterExtension:()=>vr,DataFilterExtension:()=>er,FillStyleExtension:()=>cr,Fp64Extension:()=>Ai,MaskExtension:()=>yr,PathStyleExtension:()=>ar,_TerrainExtension:()=>wr,project64:()=>rr});var Z={},Di=T(S());ue(Z,T(S()));if(!Di.Layer)throw new Error("@deck.gl/core is not found");ue(gt,Z);var Vi=T(S());var wi=T(S()),ua=`
7
+ "use strict";var __exports__=(()=>{var bt=Object.create;var $=Object.defineProperty;var yt=Object.getOwnPropertyDescriptor;var Ht=Object.getOwnPropertyNames;var Xt=Object.getPrototypeOf,Vt=Object.prototype.hasOwnProperty;var ve=(e,t)=>()=>(t||e((t={exports:{}}).exports,t),t.exports),Ue=(e,t)=>{for(var _ in t)$(e,_,{get:t[_],enumerable:!0})},J=(e,t,_,r)=>{if(t&&typeof t=="object"||typeof t=="function")for(let o of Ht(t))!Vt.call(e,o)&&o!==_&&$(e,o,{get:()=>t[o],enumerable:!(r=yt(t,o))||r.enumerable});return e},M=(e,t,_)=>(J(e,t,"default"),_&&J(_,t,"default")),c=(e,t,_)=>(_=e!=null?bt(Xt(e)):{},J(t||!e||!e.__esModule?$(_,"default",{value:e,enumerable:!0}):_,e)),Wt=e=>J($({},"__esModule",{value:!0}),e);var n=ve((Sr,xe)=>{xe.exports=globalThis.deck});var Ye=ve((Br,Ke)=>{Ke.exports=globalThis.luma});var q={};Ue(q,{BrushingExtension:()=>D,ClipExtension:()=>W,CollisionFilterExtension:()=>K,DataFilterExtension:()=>v,FillStyleExtension:()=>V,Fp64Extension:()=>b,MaskExtension:()=>Y,PathStyleExtension:()=>H,_TerrainExtension:()=>Z,project64:()=>se});var d={},ge=c(n(),1);M(d,c(n(),1));if(!ge.Layer)throw new Error("@deck.gl/core is not found");M(q,d);var He=c(n(),1);var be=c(n(),1),ut=`
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
- `,_a=`
39
+ `,kt=`
40
40
  uniform bool brushing_enabled;
41
41
  in float brushing_isVisible;
42
- `,da={source:0,target:1,custom:2,source_target:3},pa={"vs:DECKGL_FILTER_GL_POSITION":`
42
+ `,wt={source:0,target:1,custom:2,source_target:3},Kt={"vs:DECKGL_FILTER_GL_POSITION":`
43
43
  vec2 brushingTarget;
44
44
  vec2 brushingSource;
45
45
  if (brushing_target == 3) {
@@ -67,9 +67,7 @@
67
67
  if (brushing_enabled && brushing_isVisible < 0.5) {
68
68
  discard;
69
69
  }
70
- `},Ui={name:"brushing",dependencies:[wi.project],vs:ua,fs:_a,inject:pa,getUniforms:function(t){if(!t||!("viewport"in t))return{};var r=t.brushingEnabled,i=r===void 0?!0:r,n=t.brushingRadius,o=n===void 0?1e4:n,s=t.brushingTarget,a=s===void 0?"source":s,f=t.mousePosition,l=t.viewport;return{brushing_enabled:Boolean(i&&f&&l.containsPixel(f)),brushing_radius:o,brushing_target:da[a]||0,brushing_mousePos:f?l.unproject([f.x-l.x,f.y-l.y]):[0,0]}}};function bt(e){return typeof Symbol=="function"&&typeof Symbol.iterator=="symbol"?bt=function(r){return typeof r}:bt=function(r){return r&&typeof Symbol=="function"&&r.constructor===Symbol&&r!==Symbol.prototype?"symbol":typeof r},bt(e)}function ha(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}function ga(e,t){if(typeof t!="function"&&t!==null)throw new TypeError("Super expression must either be null or a function");e.prototype=Object.create(t&&t.prototype,{constructor:{value:e,writable:!0,configurable:!0}}),t&&Ur(e,t)}function Ur(e,t){return Ur=Object.setPrototypeOf||function(i,n){return i.__proto__=n,i},Ur(e,t)}function Ta(e){var t=ba();return function(){var i=Et(e),n;if(t){var o=Et(this).constructor;n=Reflect.construct(i,arguments,o)}else n=i.apply(this,arguments);return Aa(this,n)}}function Aa(e,t){if(t&&(bt(t)==="object"||typeof t=="function"))return t;if(t!==void 0)throw new TypeError("Derived constructors may only return object or undefined");return Ra(e)}function Ra(e){if(e===void 0)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return e}function ba(){if(typeof Reflect>"u"||!Reflect.construct||Reflect.construct.sham)return!1;if(typeof Proxy=="function")return!0;try{return Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],function(){})),!0}catch{return!1}}function Et(e){return Et=Object.setPrototypeOf?Object.getPrototypeOf:function(r){return r.__proto__||Object.getPrototypeOf(r)},Et(e)}var Ea={getBrushingTarget:{type:"accessor",value:[0,0]},brushingTarget:"source",brushingEnabled:!0,brushingRadius:1e4},vt=function(e){ga(r,e);var t=Ta(r);function r(){return ha(this,r),t.apply(this,arguments)}var i=r.prototype;return i.getShaders=function(){return{modules:[Ui]}},i.initializeState=function(o,s){var a=this,f=this.getAttributeManager();f&&f.add({brushingTargets:{size:2,accessor:"getBrushingTarget",shaderAttributes:{brushingTargets:{divisor:0},instanceBrushingTargets:{divisor:1}}}});var l=function(){var u;(u=a.getCurrentLayer())===null||u===void 0||u.setNeedsRedraw()};this.state.onMouseMove=l,o.deck&&o.deck.eventManager.on({pointermove:l,pointerleave:l})},i.finalizeState=function(o,s){if(o.deck){var a=this.state.onMouseMove;o.deck.eventManager.off({pointermove:a,pointerleave:a})}},r}(Vi.LayerExtension);vt.defaultProps=Ea;vt.extensionName="BrushingExtension";var va="Failed to create WebGL context in Node.js, headless gl returned null",ma=" luma.gl: loaded under Node.js without headless gl installed, meaning that WebGL contexts can not be created. This may not be an error. For example, this is a typical configuration for isorender applications running on the server.",Sa={width:1,height:1,debug:!0,throwOnError:!1},Vr=null;function ki(){return Vr!==null}function Wi(e){e={...Sa,...e};let{width:t,height:r,webgl1:i,webgl2:n}=e;if(n&&!i)throw new Error("headless-gl does not support WebGL2");if(!Vr)throw new Error(ma);let o=Vr(t,r,e);if(!o)throw new Error(va);return o}var O=T(E(),1);function Xe(e){if(typeof window<"u"&&typeof window.process=="object"&&window.process.type==="renderer"||typeof process<"u"&&typeof process.versions=="object"&&Boolean(process.versions.electron))return!0;let t=typeof navigator=="object"&&typeof navigator.userAgent=="string"&&navigator.userAgent,r=e||t;return!!(r&&r.indexOf("Electron")>=0)}function L(){return!(typeof process=="object"&&String(process)==="[object process]"&&!process.browser)||Xe()}var Rd=globalThis.self||globalThis.window||globalThis.global,bd=globalThis.window||globalThis.self||globalThis.global,Ed=globalThis.document||{},vd=globalThis.process||{},md=globalThis.console,Xi=globalThis.navigator||{};var kr=globalThis;function mt(e){if(!e&&!L())return"Node";if(Xe(e))return"Electron";let t=e||Xi.userAgent||"";if(t.indexOf("Edge")>-1)return"Edge";let r=t.indexOf("MSIE ")!==-1,i=t.indexOf("Trident/")!==-1;return r||i?"IE":kr.chrome?"Chrome":kr.safari?"Safari":kr.mozInnerScreenX?"Firefox":"Unknown"}var Qi=T(E(),1);var Le={};function ya(e){globalThis.console&&globalThis.console.error&&globalThis.console.error(e)}function Oa(e){globalThis.console&&globalThis.console.log&&globalThis.console.log(e)}function xa(e,t){Le[e]=!0,t!==void 0&&ya(t)}function Pa(e){let t=e.getError;e.getError=function(){let i;do i=t.apply(e),i!==0&&(Le[i]=!0);while(i!==0);for(i in Le)if(Le[i])return delete Le[i],parseInt(i,10);return 0}}var je=function e(t){let r=t.gl;this.ext=t,this.isAlive=!0,this.hasBeenBound=!1,this.elementArrayBuffer=null,this.attribs=new Array(t.maxVertexAttribs);for(let i=0;i<this.attribs.length;i++){let n=new e.VertexAttrib(r);this.attribs[i]=n}this.maxAttrib=0};je.VertexAttrib=function(t){this.enabled=!1,this.buffer=null,this.size=4,this.type=5126,this.normalized=!1,this.stride=16,this.offset=0,this.cached="",this.recache()};je.VertexAttrib.prototype.recache=function(){this.cached=[this.size,this.type,this.normalized,this.stride,this.offset].join(":")};var Re=function(t){let r=this;this.gl=t,Pa(t);let i=this.original={getParameter:t.getParameter,enableVertexAttribArray:t.enableVertexAttribArray,disableVertexAttribArray:t.disableVertexAttribArray,bindBuffer:t.bindBuffer,getVertexAttrib:t.getVertexAttrib,vertexAttribPointer:t.vertexAttribPointer};t.getParameter=function(o){return o===r.VERTEX_ARRAY_BINDING_OES?r.currentVertexArrayObject===r.defaultVertexArrayObject?null:r.currentVertexArrayObject:i.getParameter.apply(this,arguments)},t.enableVertexAttribArray=function(o){let s=r.currentVertexArrayObject;s.maxAttrib=Math.max(s.maxAttrib,o);let a=s.attribs[o];return a.enabled=!0,i.enableVertexAttribArray.apply(this,arguments)},t.disableVertexAttribArray=function(o){let s=r.currentVertexArrayObject;s.maxAttrib=Math.max(s.maxAttrib,o);let a=s.attribs[o];return a.enabled=!1,i.disableVertexAttribArray.apply(this,arguments)},t.bindBuffer=function(o,s){switch(o){case 34962:r.currentArrayBuffer=s;break;case 34963:r.currentVertexArrayObject.elementArrayBuffer=s;break;default:}return i.bindBuffer.apply(this,arguments)},t.getVertexAttrib=function(o,s){let f=r.currentVertexArrayObject.attribs[o];switch(s){case 34975:return f.buffer;case 34338:return f.enabled;case 34339:return f.size;case 34340:return f.stride;case 34341:return f.type;case 34922:return f.normalized;default:return i.getVertexAttrib.apply(this,arguments)}},t.vertexAttribPointer=function(o,s,a,f,l,c){let u=r.currentVertexArrayObject;u.maxAttrib=Math.max(u.maxAttrib,o);let _=u.attribs[o];return _.buffer=r.currentArrayBuffer,_.size=s,_.type=a,_.normalized=f,_.stride=l,_.offset=c,_.recache(),i.vertexAttribPointer.apply(this,arguments)},t.instrumentExtension&&t.instrumentExtension(this,"OES_vertex_array_object"),t.canvas&&t.canvas.addEventListener("webglcontextrestored",()=>{Oa("OESVertexArrayObject emulation library context restored"),r.reset_()},!0),this.reset_()};Re.prototype.VERTEX_ARRAY_BINDING_OES=34229;Re.prototype.reset_=function(){if(this.vertexArrayObjects!==void 0)for(let i=0;i<this.vertexArrayObjects.length;++i)this.vertexArrayObjects.isAlive=!1;let r=this.gl;this.maxVertexAttribs=r.getParameter(34921),this.defaultVertexArrayObject=new je(this),this.currentVertexArrayObject=null,this.currentArrayBuffer=null,this.vertexArrayObjects=[this.defaultVertexArrayObject],this.bindVertexArrayOES(null)};Re.prototype.createVertexArrayOES=function(){let t=new je(this);return this.vertexArrayObjects.push(t),t};Re.prototype.deleteVertexArrayOES=function(t){t.isAlive=!1,this.vertexArrayObjects.splice(this.vertexArrayObjects.indexOf(t),1),this.currentVertexArrayObject===t&&this.bindVertexArrayOES(null)};Re.prototype.isVertexArrayOES=function(t){return!!(t&&t instanceof je&&t.hasBeenBound&&t.ext===this)};Re.prototype.bindVertexArrayOES=function(t){let r=this.gl;if(t&&!t.isAlive){xa(1282,"bindVertexArrayOES: attempt to bind deleted arrayObject");return}let i=this.original,n=this.currentVertexArrayObject;this.currentVertexArrayObject=t||this.defaultVertexArrayObject,this.currentVertexArrayObject.hasBeenBound=!0;let o=this.currentVertexArrayObject;if(n===o)return;(!n||o.elementArrayBuffer!==n.elementArrayBuffer)&&i.bindBuffer.call(r,34963,o.elementArrayBuffer);let s=this.currentArrayBuffer,a=Math.max(n?n.maxAttrib:0,o.maxAttrib);for(let f=0;f<=a;f++){let l=o.attribs[f],c=n?n.attribs[f]:null;if((!n||l.enabled!==c.enabled)&&(l.enabled?i.enableVertexAttribArray.call(r,f):i.disableVertexAttribArray.call(r,f)),l.enabled){let u=!1;(!n||l.buffer!==c.buffer)&&(s!==l.buffer&&(i.bindBuffer.call(r,34962,l.buffer),s=l.buffer),u=!0),(u||l.cached!==c.cached)&&i.vertexAttribPointer.call(r,f,l.size,l.type,l.normalized,l.stride,l.offset)}}this.currentArrayBuffer!==s&&i.bindBuffer.call(r,34962,this.currentArrayBuffer)};function Li(e){if(typeof e.createVertexArray=="function")return;let t=e.getSupportedExtensions;e.getSupportedExtensions=function(){let n=t.call(this)||[];return n.indexOf("OES_vertex_array_object")<0&&n.push("OES_vertex_array_object"),n};let r=e.getExtension;e.getExtension=function(n){let o=r.call(this,n);return o||(n!=="OES_vertex_array_object"?null:(e.__OESVertexArrayObject||(this.__OESVertexArrayObject=new Re(this)),this.__OESVertexArrayObject))}}var be=T(E(),1);var ji=T(E(),1),Ia="Invalid WebGLRenderingContext";function Fa(e){return typeof WebGLRenderingContext<"u"&&e instanceof WebGLRenderingContext||typeof WebGL2RenderingContext<"u"&&e instanceof WebGL2RenderingContext?!0:Boolean(e&&Number.isFinite(e._version))}function b(e){return typeof WebGL2RenderingContext<"u"&&e instanceof WebGL2RenderingContext?!0:Boolean(e&&e._version===2)}function Wr(e){return b(e)?e:null}function Ki(e){return(0,ji.assert)(Fa(e),Ia),e}var zi="OES_element_index",Yi="WEBGL_draw_buffers",Ca="EXT_disjoint_timer_query",Ma="EXT_disjoint_timer_query_webgl2",Na="EXT_texture_filter_anisotropic",$i="WEBGL_debug_renderer_info",Ba=35723,Da=4352,wa=36795,Ua=34047,Va=37445,ka=37446,y=e=>b(e)?void 0:0,Wa={[3074]:e=>b(e)?void 0:36064,[Ba]:e=>b(e)?void 0:Da,[35977]:y,[32937]:y,[wa]:(e,t)=>{let r=b(e)?e.getExtension(Ma):e.getExtension(Ca);return r&&r.GPU_DISJOINT_EXT?t(r.GPU_DISJOINT_EXT):0},[Va]:(e,t)=>{let r=e.getExtension($i);return t(r&&r.UNMASKED_VENDOR_WEBGL||7936)},[ka]:(e,t)=>{let r=e.getExtension($i);return t(r&&r.UNMASKED_RENDERER_WEBGL||7937)},[Ua]:(e,t)=>{var r;let i=((r=e.luma)===null||r===void 0||(r=r.extensions)===null||r===void 0?void 0:r[Na])||e.getExtension("EXT_texture_filter_anisotropic");return i?t(i.MAX_TEXTURE_MAX_ANISOTROPY_EXT):1},[32883]:y,[35071]:y,[37447]:y,[36063]:(e,t)=>{if(!b(e)){let r=e.getExtension(Yi);return r?t(r.MAX_COLOR_ATTACHMENTS_WEBGL):0}},[35379]:y,[35374]:y,[35377]:y,[34852]:e=>{if(!b(e)){let t=e.getExtension(Yi);return t?t.MAX_DRAW_BUFFERS_WEBGL:0}},[36203]:e=>e.getExtension(zi)?2147483647:65535,[33001]:e=>e.getExtension(zi)?16777216:65535,[33e3]:e=>16777216,[37157]:y,[35373]:y,[35657]:y,[36183]:y,[37137]:y,[34045]:y,[35978]:y,[35979]:y,[35968]:y,[35376]:y,[35375]:y,[35659]:y,[37154]:y,[35371]:y,[35658]:y,[35076]:y,[35077]:y,[35380]:y};function qi(e,t,r){let i=Wa[r],n=typeof i=="function"?i(e,t,r):i;return n!==void 0?n:t(r)}function xe(e){if(!e.luma){let r={_polyfilled:!1,_extensions:{}};e.luma=r}return e.luma}var Ha="OES_vertex_array_object",Zi="ANGLE_instanced_arrays",Xa="WEBGL_draw_buffers",La="EXT_disjoint_timer_query",ja="EXT_texture_filter_anisotropic",Ka="VertexArray requires WebGL2 or OES_vertex_array_object extension";function za(e,t){return{webgl2:b(e),ext:e.getExtension(t)}}var Hr={[Ha]:{meta:{suffix:"OES"},createVertexArray:()=>{(0,be.assert)(!1,Ka)},deleteVertexArray:()=>{},bindVertexArray:()=>{},isVertexArray:()=>!1},[Zi]:{meta:{suffix:"ANGLE"},vertexAttribDivisor(e,t){(0,be.assert)(t===0,"WebGL instanced rendering not supported")},drawElementsInstanced:()=>{},drawArraysInstanced:()=>{}},[Xa]:{meta:{suffix:"WEBGL"},drawBuffers:()=>{(0,be.assert)(!1)}},[La]:{meta:{suffix:"EXT"},createQuery:()=>{(0,be.assert)(!1)},deleteQuery:()=>{(0,be.assert)(!1)},beginQuery:()=>{(0,be.assert)(!1)},endQuery:()=>{},getQuery(e,t){return this.getQueryObject(e,t)},getQueryParameter(e,t){return this.getQueryObject(e,t)},getQueryObject:(e,t)=>{}}},St={readBuffer:(e,t,r)=>{b(e)&&t(r)},getVertexAttrib:(e,t,r,i)=>{let{webgl2:n,ext:o}=za(e,Zi),s;switch(i){case 35069:s=n?void 0:!1;break;case 35070:s=!n&&!o?0:void 0;break;default:}return s!==void 0?s:t(r,i)},getProgramParameter:(e,t,r,i)=>{if(!b(e))switch(i){case 35967:return 35981;case 35971:return 0;case 35382:return 0;default:}return t(r,i)},getInternalformatParameter:(e,t,r,i,n)=>{if(!b(e))switch(n){case 32937:return new Int32Array([0]);default:}return e.getInternalformatParameter(r,i,n)},getTexParameter(e,t,r,i){switch(i){case 34046:let n=xe(e),{_extensions:o}=n,s=o[ja];i=s&&s.TEXTURE_MAX_ANISOTROPY_EXT||34046;break;default:}return t(r,i)},getParameter:qi,hint(e,t,r,i){return t(r,i)}};function Ji(e){let t=xe(e);return t._polyfilled||(Li(e),Ya(e),$a(e,Hr),Za(e,{target:t,target2:e}),t._polyfilled=!0),e}function Ya(e){let t=xe(e),r=e.getSupportedExtensions()||[],i=["WEBGL_polygon_mode"];for(let n of r)if(!i.includes(n)){let o=e.getExtension(n);t._extensions[n]=o}}function $a(e,t){let r=xe(e);for(let i of Object.getOwnPropertyNames(t))i!=="overrides"&&qa(e,{extension:i,target:r,target2:e})}function qa(e,t){let{extension:r,target:i,target2:n}=t,o=Hr[r];(0,Qi.assert)(o);let{meta:s={}}=o,{suffix:a=""}=s,f=e.getExtension(r);for(let l of Object.keys(o)){let c=`${l}${a}`,u=null;l==="meta"||typeof e[l]=="function"||(f&&typeof f[c]=="function"?u=function(){return f[c](...arguments)}:typeof o[l]=="function"&&(u=o[l].bind(i))),u&&(i[l]=u,n[l]=u)}}function Za(e,t){let{target:r,target2:i}=t;Object.keys(St).forEach(n=>{if(typeof St[n]=="function"){let o=e[n]?e[n].bind(e):()=>{},s=St[n].bind(null,e,o);r[n]=s,i[n]=s}})}var ze=T(E(),1);var yt={[3042]:!1,[32773]:new Float32Array([0,0,0,0]),[32777]:32774,[34877]:32774,[32969]:1,[32968]:0,[32971]:1,[32970]:0,[3106]:new Float32Array([0,0,0,0]),[3107]:[!0,!0,!0,!0],[2884]:!1,[2885]:1029,[2929]:!1,[2931]:1,[2932]:513,[2928]:new Float32Array([0,1]),[2930]:!0,[3024]:!0,[35725]:null,[36006]:null,[36007]:null,[34229]:null,[34964]:null,[2886]:2305,[33170]:4352,[2849]:1,[32823]:!1,[32824]:0,[10752]:0,[32926]:!1,[32928]:!1,[32938]:1,[32939]:!1,[3089]:!1,[3088]:new Int32Array([0,0,1024,1024]),[2960]:!1,[2961]:0,[2968]:4294967295,[36005]:4294967295,[2962]:519,[2967]:0,[2963]:4294967295,[34816]:519,[36003]:0,[36004]:4294967295,[2964]:7680,[2965]:7680,[2966]:7680,[34817]:7680,[34818]:7680,[34819]:7680,[2978]:[0,0,1024,1024],[3333]:4,[3317]:4,[37440]:!1,[37441]:!1,[37443]:37444,[36389]:null,[36662]:null,[36663]:null,[35053]:null,[35055]:null,[35723]:4352,[36010]:null,[35977]:!1,[3330]:0,[3332]:0,[3331]:0,[3314]:0,[32878]:0,[3316]:0,[3315]:0,[32877]:0},Q=(e,t,r)=>t?e.enable(r):e.disable(r),Gi=(e,t,r)=>e.hint(r,t),H=(e,t,r)=>e.pixelStorei(r,t),en=(e,t,r)=>{let i;return r===36006?i=b(e)?36009:36160:i=36008,e.bindFramebuffer(i,t)},Ke=(e,t,r)=>{let n={[34964]:34962,[36662]:36662,[36663]:36663,[35053]:35051,[35055]:35052}[r];e.bindBuffer(n,t)};function Xr(e){return Array.isArray(e)||ArrayBuffer.isView(e)&&!(e instanceof DataView)}var tn={[3042]:Q,[32773]:(e,t)=>e.blendColor(...t),[32777]:"blendEquation",[34877]:"blendEquation",[32969]:"blendFunc",[32968]:"blendFunc",[32971]:"blendFunc",[32970]:"blendFunc",[3106]:(e,t)=>e.clearColor(...t),[3107]:(e,t)=>e.colorMask(...t),[2884]:Q,[2885]:(e,t)=>e.cullFace(t),[2929]:Q,[2931]:(e,t)=>e.clearDepth(t),[2932]:(e,t)=>e.depthFunc(t),[2928]:(e,t)=>e.depthRange(...t),[2930]:(e,t)=>e.depthMask(t),[3024]:Q,[35723]:Gi,[35725]:(e,t)=>e.useProgram(t),[36007]:(e,t)=>e.bindRenderbuffer(36161,t),[36389]:(e,t)=>{var r,i;return(r=(i=e).bindTransformFeedback)===null||r===void 0?void 0:r.call(i,36386,t)},[34229]:(e,t)=>e.bindVertexArray(t),[36006]:en,[36010]:en,[34964]:Ke,[36662]:Ke,[36663]:Ke,[35053]:Ke,[35055]:Ke,[2886]:(e,t)=>e.frontFace(t),[33170]:Gi,[2849]:(e,t)=>e.lineWidth(t),[32823]:Q,[32824]:"polygonOffset",[10752]:"polygonOffset",[35977]:Q,[32926]:Q,[32928]:Q,[32938]:"sampleCoverage",[32939]:"sampleCoverage",[3089]:Q,[3088]:(e,t)=>e.scissor(...t),[2960]:Q,[2961]:(e,t)=>e.clearStencil(t),[2968]:(e,t)=>e.stencilMaskSeparate(1028,t),[36005]:(e,t)=>e.stencilMaskSeparate(1029,t),[2962]:"stencilFuncFront",[2967]:"stencilFuncFront",[2963]:"stencilFuncFront",[34816]:"stencilFuncBack",[36003]:"stencilFuncBack",[36004]:"stencilFuncBack",[2964]:"stencilOpFront",[2965]:"stencilOpFront",[2966]:"stencilOpFront",[34817]:"stencilOpBack",[34818]:"stencilOpBack",[34819]:"stencilOpBack",[2978]:(e,t)=>e.viewport(...t),[3333]:H,[3317]:H,[37440]:H,[37441]:H,[37443]:H,[3330]:H,[3332]:H,[3331]:H,[3314]:H,[32878]:H,[3316]:H,[3315]:H,[32877]:H,framebuffer:(e,t)=>{let r=t&&"handle"in t?t.handle:t;return e.bindFramebuffer(36160,r)},blend:(e,t)=>t?e.enable(3042):e.disable(3042),blendColor:(e,t)=>e.blendColor(...t),blendEquation:(e,t)=>{let r=typeof t=="number"?[t,t]:t;e.blendEquationSeparate(...r)},blendFunc:(e,t)=>{let r=t?.length===2?[...t,...t]:t;e.blendFuncSeparate(...r)},clearColor:(e,t)=>e.clearColor(...t),clearDepth:(e,t)=>e.clearDepth(t),clearStencil:(e,t)=>e.clearStencil(t),colorMask:(e,t)=>e.colorMask(...t),cull:(e,t)=>t?e.enable(2884):e.disable(2884),cullFace:(e,t)=>e.cullFace(t),depthTest:(e,t)=>t?e.enable(2929):e.disable(2929),depthFunc:(e,t)=>e.depthFunc(t),depthMask:(e,t)=>e.depthMask(t),depthRange:(e,t)=>e.depthRange(...t),dither:(e,t)=>t?e.enable(3024):e.disable(3024),derivativeHint:(e,t)=>{e.hint(35723,t)},frontFace:(e,t)=>e.frontFace(t),mipmapHint:(e,t)=>e.hint(33170,t),lineWidth:(e,t)=>e.lineWidth(t),polygonOffsetFill:(e,t)=>t?e.enable(32823):e.disable(32823),polygonOffset:(e,t)=>e.polygonOffset(...t),sampleCoverage:(e,t)=>e.sampleCoverage(...t),scissorTest:(e,t)=>t?e.enable(3089):e.disable(3089),scissor:(e,t)=>e.scissor(...t),stencilTest:(e,t)=>t?e.enable(2960):e.disable(2960),stencilMask:(e,t)=>{t=Xr(t)?t:[t,t];let[r,i]=t;e.stencilMaskSeparate(1028,r),e.stencilMaskSeparate(1029,i)},stencilFunc:(e,t)=>{t=Xr(t)&&t.length===3?[...t,...t]:t;let[r,i,n,o,s,a]=t;e.stencilFuncSeparate(1028,r,i,n),e.stencilFuncSeparate(1029,o,s,a)},stencilOp:(e,t)=>{t=Xr(t)&&t.length===3?[...t,...t]:t;let[r,i,n,o,s,a]=t;e.stencilOpSeparate(1028,r,i,n),e.stencilOpSeparate(1029,o,s,a)},viewport:(e,t)=>e.viewport(...t)};function x(e,t,r){return t[e]!==void 0?t[e]:r[e]}var rn={blendEquation:(e,t,r)=>e.blendEquationSeparate(x(32777,t,r),x(34877,t,r)),blendFunc:(e,t,r)=>e.blendFuncSeparate(x(32969,t,r),x(32968,t,r),x(32971,t,r),x(32970,t,r)),polygonOffset:(e,t,r)=>e.polygonOffset(x(32824,t,r),x(10752,t,r)),sampleCoverage:(e,t,r)=>e.sampleCoverage(x(32938,t,r),x(32939,t,r)),stencilFuncFront:(e,t,r)=>e.stencilFuncSeparate(1028,x(2962,t,r),x(2967,t,r),x(2963,t,r)),stencilFuncBack:(e,t,r)=>e.stencilFuncSeparate(1029,x(34816,t,r),x(36003,t,r),x(36004,t,r)),stencilOpFront:(e,t,r)=>e.stencilOpSeparate(1028,x(2964,t,r),x(2965,t,r),x(2966,t,r)),stencilOpBack:(e,t,r)=>e.stencilOpSeparate(1029,x(34817,t,r),x(34818,t,r),x(34819,t,r))},Lr={enable:(e,t)=>e({[t]:!0}),disable:(e,t)=>e({[t]:!1}),pixelStorei:(e,t,r)=>e({[t]:r}),hint:(e,t,r)=>e({[t]:r}),useProgram:(e,t)=>e({[35725]:t}),bindRenderbuffer:(e,t,r)=>e({[36007]:r}),bindTransformFeedback:(e,t,r)=>e({[36389]:r}),bindVertexArray:(e,t)=>e({[34229]:t}),bindFramebuffer:(e,t,r)=>{switch(t){case 36160:return e({[36006]:r,[36010]:r});case 36009:return e({[36006]:r});case 36008:return e({[36010]:r});default:return null}},bindBuffer:(e,t,r)=>{let i={[34962]:[34964],[36662]:[36662],[36663]:[36663],[35051]:[35053],[35052]:[35055]}[t];return i?e({[i]:r}):{valueChanged:!0}},blendColor:(e,t,r,i,n)=>e({[32773]:new Float32Array([t,r,i,n])}),blendEquation:(e,t)=>e({[32777]:t,[34877]:t}),blendEquationSeparate:(e,t,r)=>e({[32777]:t,[34877]:r}),blendFunc:(e,t,r)=>e({[32969]:t,[32968]:r,[32971]:t,[32970]:r}),blendFuncSeparate:(e,t,r,i,n)=>e({[32969]:t,[32968]:r,[32971]:i,[32970]:n}),clearColor:(e,t,r,i,n)=>e({[3106]:new Float32Array([t,r,i,n])}),clearDepth:(e,t)=>e({[2931]:t}),clearStencil:(e,t)=>e({[2961]:t}),colorMask:(e,t,r,i,n)=>e({[3107]:[t,r,i,n]}),cullFace:(e,t)=>e({[2885]:t}),depthFunc:(e,t)=>e({[2932]:t}),depthRange:(e,t,r)=>e({[2928]:new Float32Array([t,r])}),depthMask:(e,t)=>e({[2930]:t}),frontFace:(e,t)=>e({[2886]:t}),lineWidth:(e,t)=>e({[2849]:t}),polygonOffset:(e,t,r)=>e({[32824]:t,[10752]:r}),sampleCoverage:(e,t,r)=>e({[32938]:t,[32939]:r}),scissor:(e,t,r,i,n)=>e({[3088]:new Int32Array([t,r,i,n])}),stencilMask:(e,t)=>e({[2968]:t,[36005]:t}),stencilMaskSeparate:(e,t,r)=>e({[t===1028?2968:36005]:r}),stencilFunc:(e,t,r,i)=>e({[2962]:t,[2967]:r,[2963]:i,[34816]:t,[36003]:r,[36004]:i}),stencilFuncSeparate:(e,t,r,i,n)=>e({[t===1028?2962:34816]:r,[t===1028?2967:36003]:i,[t===1028?2963:36004]:n}),stencilOp:(e,t,r,i)=>e({[2964]:t,[2965]:r,[2966]:i,[34817]:t,[34818]:r,[34819]:i}),stencilOpSeparate:(e,t,r,i,n)=>e({[t===1028?2964:34817]:r,[t===1028?2965:34818]:i,[t===1028?2966:34819]:n}),viewport:(e,t,r,i,n)=>e({[2978]:[t,r,i,n]})},J=(e,t)=>e.isEnabled(t),jr={[3042]:J,[2884]:J,[2929]:J,[3024]:J,[32823]:J,[32926]:J,[32928]:J,[3089]:J,[2960]:J,[35977]:J},nn=new Set([34016,36388,36387,35983,35368,34965,35739,35738,3074,34853,34854,34855,34856,34857,34858,34859,34860,34861,34862,34863,34864,34865,34866,34867,34868,35097,32873,35869,32874,34068]);function oe(e,t){let i=M.attach(e).gl;if(Qa(t))return;let n={};for(let s in t){let a=Number(s),f=tn[s];f&&(typeof f=="string"?n[f]=!0:f(i,t[s],a))}let o=i.state&&i.state.cache;if(o)for(let s in n){let a=rn[s];a(i,t,o)}}function on(e){let t=arguments.length>1&&arguments[1]!==void 0?arguments[1]:yt,i=M.attach(e).gl;if(typeof t=="number"){let s=t,a=jr[s];return a?a(i,s):i.getParameter(s)}let n=Array.isArray(t)?t:Object.keys(t),o={};for(let s of n){let a=jr[s];o[s]=a?a(i,Number(s)):i.getParameter(Number(s))}return o}function Qa(e){for(let t in e)return!1;return!0}function sn(e,t){if(e===t)return!0;let r=Array.isArray(e)||ArrayBuffer.isView(e),i=Array.isArray(t)||ArrayBuffer.isView(t);if(r&&i&&e.length===t.length){for(let n=0;n<e.length;++n)if(e[n]!==t[n])return!1;return!0}return!1}var Kr=class{constructor(t){let{copyState:r=!1,log:i=()=>{}}=arguments.length>1&&arguments[1]!==void 0?arguments[1]:{};this.gl=void 0,this.program=null,this.stateStack=[],this.enable=!0,this.cache=void 0,this.log=void 0,this.gl=t,this.cache=r?on(t):Object.assign({},yt),this.log=i,this._updateCache=this._updateCache.bind(this),Object.seal(this)}push(){let t=arguments.length>0&&arguments[0]!==void 0?arguments[0]:{};this.stateStack.push({})}pop(){(0,ze.assert)(this.stateStack.length>0);let t=this.stateStack[this.stateStack.length-1];oe(this.gl,t),this.stateStack.pop()}_updateCache(t){let r=!1,i,n=this.stateStack.length>0?this.stateStack[this.stateStack.length-1]:null;for(let o in t){(0,ze.assert)(o!==void 0);let s=t[o],a=this.cache[o];sn(s,a)||(r=!0,i=a,n&&!(o in n)&&(n[o]=a),this.cache[o]=s)}return{valueChanged:r,oldValue:i}}};function Ee(e){return e.state}function zr(e,t){let{enable:r=!0,copyState:i}=t;if((0,ze.assert)(i!==void 0),!e.state){e.state=new Kr(e,{copyState:i}),Ga(e);for(let o in Lr){let s=Lr[o];Ja(e,o,s)}an(e,"getParameter"),an(e,"isEnabled")}let n=Ee(e);return n.enable=r,e}function _e(e){let t=Ee(e);t||(zr(e,{copyState:!1}),t=Ee(e)),t.push()}function se(e){let t=Ee(e);(0,ze.assert)(t),t.pop()}function an(e,t){let r=e[t].bind(e);e[t]=function(n){if(n===void 0||nn.has(n))return r(n);let o=Ee(e);return n in o.cache||(o.cache[n]=r(n)),o.enable?o.cache[n]:r(n)},Object.defineProperty(e[t],"name",{value:`${t}-from-cache`,configurable:!1})}function Ja(e,t,r){if(!e[t])return;let i=e[t].bind(e);e[t]=function(){let o=Ee(e);for(var s=arguments.length,a=new Array(s),f=0;f<s;f++)a[f]=arguments[f];let{valueChanged:l,oldValue:c}=r(o._updateCache,...a);return l&&i(...a),c},Object.defineProperty(e[t],"name",{value:`${t}-to-cache`,configurable:!1})}function Ga(e){let t=e.useProgram.bind(e);e.useProgram=function(i){let n=Ee(e);n.program!==i&&(t(i),n.program=i)}}var ef={webgl2:!0,webgl1:!0,powerPreference:"high-performance",onContextLost:()=>console.error("WebGL context lost"),onContextRestored:()=>console.info("WebGL context restored")};function fn(e,t){t={...ef,...t};let r=null,i=o=>r=o.statusMessage||r;e.addEventListener("webglcontextcreationerror",i,!1);let n=null;if(t.type==="webgl2"&&(t={...t,webgl1:!1}),t.type==="webgl1"&&(t={...t,webgl2:!1}),!n&&t.webgl2&&(n=e.getContext("webgl2",t)),!n&&t.webgl1&&(n=e.getContext("webgl",t)),e.removeEventListener("webglcontextcreationerror",i,!1),!n)throw new Error(`Failed to create ${t.webgl2&&!t.webgl1?"WebGL2":"WebGL"} context: ${r||"Unknown error"}`);if(t.onContextLost){let{onContextLost:o}=t;e.addEventListener("webglcontextlost",s=>o(s),!1)}if(t.onContextRestored){let{onContextRestored:o}=t;e.addEventListener("webglcontextrestored",s=>o(s),!1)}return n}function ln(e){let t=e.getParameter(7936),r=e.getParameter(7937),i=e.getExtension("WEBGL_debug_renderer_info"),n=e.getParameter(i?i.UNMASKED_VENDOR_WEBGL:7936),o=e.getParameter(i?i.UNMASKED_RENDERER_WEBGL:7937),s=n||t,a=o||r,f=e.getParameter(7938),l=cn(s,a),c=tf(s,a),u=rf(s,a),_="glsl",d=b(e)?300:100;return{type:b(e)?"webgl2":"webgl",gpu:l,gpuType:u,gpuBackend:c,vendor:s,renderer:a,version:f,shadingLanguage:_,shadingLanguageVersion:d}}function cn(e,t){return/NVIDIA/i.exec(e)||/NVIDIA/i.exec(t)?"nvidia":/INTEL/i.exec(e)||/INTEL/i.exec(t)?"intel":/Apple/i.exec(e)||/Apple/i.exec(t)?"apple":/AMD/i.exec(e)||/AMD/i.exec(t)||/ATI/i.exec(e)||/ATI/i.exec(t)?"amd":/SwiftShader/i.exec(e)||/SwiftShader/i.exec(t)?"software":"unknown"}function tf(e,t){return/Metal/i.exec(e)||/Metal/i.exec(t)?"metal":/ANGLE/i.exec(e)||/ANGLE/i.exec(t)?"opengl":"unknown"}function rf(e,t){if(/SwiftShader/i.exec(e)||/SwiftShader/i.exec(t))return"cpu";switch(cn(e,t)){case"intel":return"integrated";case"software":return"cpu";case"unknown":return"unknown";default:return"discrete"}}function un(){let e=arguments.length>0&&arguments[0]!==void 0?arguments[0]:{},t=typeof window<"u"?window.navigator||{}:{},r=e.userAgent||t.userAgent||"",i=r.indexOf("MSIE ")!==-1,n=r.indexOf("Trident/")!==-1;return i||n}var qr=T(E(),1);function Ot(e){switch(e){case"uint8":return 5121;case"sint8":return 5120;case"unorm8":return 5121;case"snorm8":return 5120;case"uint16":return 5123;case"sint16":return 5122;case"unorm16":return 5123;case"snorm16":return 5122;case"uint32":return 5125;case"sint32":return 5124;case"float16":return 5131;case"float32":return 5126}throw new Error(String(e))}var w="texture-compression-bc",v="texture-compression-astc",G="texture-compression-etc2",nf="texture-compression-etc1-webgl",xt="texture-compression-pvrtc-webgl",Yr="texture-compression-atc-webgl",Ye="WEBGL_compressed_texture_s3tc",$e="WEBGL_compressed_texture_s3tc_srgb",Pe="EXT_texture_compression_rgtc",qe="EXT_texture_compression_bptc",of="WEBGL_compressed_texture_etc",sf="WEBGL_compressed_texture_astc",af="WEBGL_compressed_texture_etc1",ff="WEBGL_compressed_texture_pvrtc",lf="WEBGL_compressed_texture_atc",_n="EXT_sRGB",ae="EXT_texture_norm16",cf="WEBGL_color_buffer_float",uf="EXT_color_buffer_float",j=(e,t)=>e.getExtension(t),ve=(e,t)=>t.every(r=>e.getExtension(r)),$r={"texture-blend-float-webgl1":e=>b(e)?!0:j(e,"EXT_float_blend"),"texture-formats-srgb-webgl1":e=>b(e)?!0:j(e,_n),"texture-formats-depth-webgl1":e=>b(e)?!0:j(e,"WEBGL_depth_texture"),"texture-formats-float32-webgl1":e=>b(e)?!0:j(e,"OES_texture_float"),"texture-formats-float16-webgl1":e=>b(e)?!0:j(e,"OES_texture_half_float"),"texture-formats-norm16-webgl":e=>b(e)?j(e,ae):!1,"texture-filter-linear-float32-webgl":e=>j(e,"OES_texture_float_linear"),"texture-filter-linear-float16-webgl":e=>j(e,"OES_texture_half_float_linear"),"texture-filter-anisotropic-webgl":e=>j(e,"EXT_texture_filter_anisotropic"),"texture-renderable-float32-webgl":e=>j(e,"EXT_color_buffer_float"),"texture-renderable-float16-webgl":e=>j(e,"EXT_color_buffer_half_float"),"texture-compression-bc":e=>ve(e,[Ye,$e,Pe,qe]),"texture-compression-bc5-webgl":e=>ve(e,[Pe]),"texture-compression-etc2":e=>ve(e,[of]),"texture-compression-astc":e=>ve(e,[sf]),"texture-compression-etc1-webgl":e=>ve(e,[af]),"texture-compression-pvrtc-webgl":e=>ve(e,[ff]),"texture-compression-atc-webgl":e=>ve(e,[lf])};function _f(e,t){var r;return((r=$r[t])===null||r===void 0?void 0:r.call($r,e))||!1}function dn(e){return Object.keys($r).filter(r=>_f(e,r))}var Ze={"rgb8unorm-unsized":{gl:6407,gl1:6407,b:4,c:2,bpp:4,dataFormat:6407,types:[5121,33635]},"rgba8unorm-unsized":{gl:6408,gl1:6408,b:4,c:2,bpp:4,dataFormat:6408,types:[5121,32819,32820]},r8unorm:{gl:33321,b:1,c:1,renderbuffer:!0},r8snorm:{gl:36756,b:1,c:1},r8uint:{gl:33330,b:1,c:1,renderbuffer:!0},r8sint:{gl:33329,b:1,c:1,renderbuffer:!0},rg8unorm:{gl:33323,b:2,c:2,renderbuffer:!0},rg8snorm:{gl:36757,b:2,c:2},rg8uint:{gl:33336,b:2,c:2,renderbuffer:!0},rg8sint:{gl:33335,b:2,c:2,renderbuffer:!0},r16uint:{gl:33332,b:2,c:1,renderbuffer:!0},r16sint:{gl:33331,b:2,c:1,renderbuffer:!0},r16float:{gl:33325,b:2,c:1,render:"texture-renderable-float16-webgl",filter:"texture-filter-linear-float16-webgl",renderbuffer:!0},"r16unorm-webgl":{gl:33322,b:2,c:1,f:"texture-formats-norm16-webgl",renderbuffer:!0,x:ae},"r16snorm-webgl":{gl:36760,b:2,c:1,f:"texture-formats-norm16-webgl",x:ae},"rgba4unorm-webgl":{gl:32854,b:2,c:4,wgpu:!1,renderbuffer:!0},"rgb565unorm-webgl":{gl:36194,b:2,c:4,wgpu:!1,renderbuffer:!0},"rgb5a1unorm-webgl":{gl:32855,b:2,c:4,wgpu:!1,renderbuffer:!0},"rgb8unorm-webgl":{gl:32849,b:3,c:3,wgpu:!1},"rgb8snorm-webgl":{gl:36758,b:3,c:3,wgpu:!1},rgba8unorm:{gl:32856,gl1:6408,b:4,c:2,bpp:4},"rgba8unorm-srgb":{gl:35907,gl1:35906,b:4,c:4,gl1ext:_n,bpp:4},rgba8snorm:{gl:36759,b:4,c:4},rgba8uint:{gl:36220,b:4,c:4,bpp:4},rgba8sint:{gl:36238,b:4,c:4,bpp:4},bgra8unorm:{b:4,c:4},"bgra8unorm-srgb":{b:4,c:4},rg16uint:{gl:33338,b:4,c:1,bpp:4},rg16sint:{gl:33337,b:4,c:2,bpp:4},rg16float:{gl:33327,bpp:4,b:4,c:2,render:"texture-renderable-float16-webgl",filter:"texture-filter-linear-float16-webgl",renderbuffer:!0},"rg16unorm-webgl":{gl:33324,b:2,c:2,f:"texture-formats-norm16-webgl",x:ae},"rg16snorm-webgl":{gl:36761,b:2,c:2,f:"texture-formats-norm16-webgl",x:ae},r32uint:{gl:33334,b:4,c:1,bpp:4,renderbuffer:!0},r32sint:{gl:33333,b:4,c:1,bpp:4,renderbuffer:!0},r32float:{gl:33326,bpp:4,b:4,c:1,render:"texture-renderable-float32-webgl",filter:"texture-filter-linear-float32-webgl"},rgb9e5ufloat:{gl:35901,b:4,c:3,p:1,render:"texture-renderable-float16-webgl",filter:"texture-filter-linear-float16-webgl"},rg11b10ufloat:{gl:35898,b:4,c:3,p:1,render:"texture-renderable-float32-webgl",renderbuffer:!0},rgb10a2unorm:{gl:32857,b:4,c:4,p:1,renderbuffer:!0},"rgb10a2unorm-webgl":{b:4,c:4,gl:36975,p:1,wgpu:!1,bpp:4,renderbuffer:!0},"rgb16unorm-webgl":{gl:32852,b:2,c:3,f:"texture-formats-norm16-webgl",x:ae},"rgb16snorm-webgl":{gl:36762,b:2,c:3,f:"texture-formats-norm16-webgl",x:ae},rg32uint:{gl:33340,b:8,c:2,renderbuffer:!0},rg32sint:{gl:33339,b:8,c:2,renderbuffer:!0},rg32float:{gl:33328,b:8,c:2,render:"texture-renderable-float32-webgl",filter:"texture-filter-linear-float32-webgl",renderbuffer:!0},rgba16uint:{gl:36214,b:8,c:4,renderbuffer:!0},rgba16sint:{gl:36232,b:8,c:4,renderbuffer:!0},rgba16float:{gl:34842,gl1:6408,b:8,c:4,render:"texture-renderable-float16-webgl",filter:"texture-filter-linear-float16-webgl"},"rgba16unorm-webgl":{gl:32859,b:2,c:4,f:"texture-formats-norm16-webgl",renderbuffer:!0,x:ae},"rgba16snorm-webgl":{gl:36763,b:2,c:4,f:"texture-formats-norm16-webgl",x:ae},"rgb32float-webgl":{gl:34837,gl1:6407,render:"texture-renderable-float32-webgl",filter:"texture-filter-linear-float32-webgl",gl2ext:uf,gl1ext:cf,dataFormat:6407,types:[5126]},rgba32uint:{gl:36208,b:16,c:4,renderbuffer:!0},rgba32sint:{gl:36226,b:16,c:4,renderbuffer:!0},rgba32float:{gl:34836,b:16,c:4,render:"texture-renderable-float32-webgl",filter:"texture-filter-linear-float32-webgl",renderbuffer:!0},stencil8:{gl:36168,gl1:36168,b:1,c:1,attachment:36128,renderbuffer:!0},depth16unorm:{gl:33189,gl1:33189,b:2,c:1,attachment:36096,renderbuffer:!0},depth24plus:{gl:33190,b:3,c:1,attachment:36096},depth32float:{gl:36012,b:4,c:1,attachment:36096,renderbuffer:!0},"depth24plus-stencil8":{gl:34041,gl1:34041,b:4,c:2,p:1,attachment:33306,renderbuffer:!0,depthTexture:!0},"depth24unorm-stencil8":{gl:35056,b:4,c:2,p:1,attachment:33306,renderbuffer:!0},"depth32float-stencil8":{gl:36013,b:5,c:2,p:1,attachment:33306,renderbuffer:!0},"bc1-rgb-unorm-webgl":{gl:33776,x:Ye,f:w},"bc1-rgb-unorm-srgb-webgl":{gl:35916,x:$e,f:w},"bc1-rgba-unorm":{gl:33777,x:Ye,f:w},"bc1-rgba-unorm-srgb":{gl:35916,x:$e,f:w},"bc2-rgba-unorm":{gl:33778,x:Ye,f:w},"bc2-rgba-unorm-srgb":{gl:35918,x:$e,f:w},"bc3-rgba-unorm":{gl:33779,x:Ye,f:w},"bc3-rgba-unorm-srgb":{gl:35919,x:$e,f:w},"bc4-r-unorm":{gl:36283,x:Pe,f:w},"bc4-r-snorm":{gl:36284,x:Pe,f:w},"bc5-rg-unorm":{gl:36285,x:Pe,f:w},"bc5-rg-snorm":{gl:36286,x:Pe,f:w},"bc6h-rgb-ufloat":{gl:36495,x:qe,f:w},"bc6h-rgb-float":{gl:36494,x:qe,f:w},"bc7-rgba-unorm":{gl:36492,x:qe,f:w},"bc7-rgba-unorm-srgb":{gl:36493,x:qe,f:w},"etc2-rgb8unorm":{gl:37492,f:G},"etc2-rgb8unorm-srgb":{gl:37494,f:G},"etc2-rgb8a1unorm":{gl:37496,f:G},"etc2-rgb8a1unorm-srgb":{gl:37497,f:G},"etc2-rgba8unorm":{gl:37493,f:G},"etc2-rgba8unorm-srgb":{gl:37495,f:G},"eac-r11unorm":{gl:37488,f:G},"eac-r11snorm":{gl:37489,f:G},"eac-rg11unorm":{gl:37490,f:G},"eac-rg11snorm":{gl:37491,f:G},"astc-4x4-unorm":{gl:37808,f:v},"astc-4x4-unorm-srgb":{gl:37840,f:v},"astc-5x4-unorm":{gl:37809,f:v},"astc-5x4-unorm-srgb":{gl:37841,f:v},"astc-5x5-unorm":{gl:37810,f:v},"astc-5x5-unorm-srgb":{gl:37842,f:v},"astc-6x5-unorm":{gl:37811,f:v},"astc-6x5-unorm-srgb":{gl:37843,f:v},"astc-6x6-unorm":{gl:37812,f:v},"astc-6x6-unorm-srgb":{gl:37844,f:v},"astc-8x5-unorm":{gl:37813,f:v},"astc-8x5-unorm-srgb":{gl:37845,f:v},"astc-8x6-unorm":{gl:37814,f:v},"astc-8x6-unorm-srgb":{gl:37846,f:v},"astc-8x8-unorm":{gl:37815,f:v},"astc-8x8-unorm-srgb":{gl:37847,f:v},"astc-10x5-unorm":{gl:37819,f:v},"astc-10x5-unorm-srgb":{gl:37851,f:v},"astc-10x6-unorm":{gl:37817,f:v},"astc-10x6-unorm-srgb":{gl:37849,f:v},"astc-10x8-unorm":{gl:37818,f:v},"astc-10x8-unorm-srgb":{gl:37850,f:v},"astc-10x10-unorm":{gl:37819,f:v},"astc-10x10-unorm-srgb":{gl:37851,f:v},"astc-12x10-unorm":{gl:37820,f:v},"astc-12x10-unorm-srgb":{gl:37852,f:v},"astc-12x12-unorm":{gl:37821,f:v},"astc-12x12-unorm-srgb":{gl:37853,f:v},"pvrtc-rgb4unorm-webgl":{gl:35840,f:xt},"pvrtc-rgba4unorm-webgl":{gl:35842,f:xt},"pvrtc-rbg2unorm-webgl":{gl:35841,f:xt},"pvrtc-rgba2unorm-webgl":{gl:35843,f:xt},"etc1-rbg-unorm-webgl":{gl:36196,f:nf},"atc-rgb-unorm-webgl":{gl:35986,f:Yr},"atc-rgba-unorm-webgl":{gl:35986,f:Yr},"atc-rgbai-unorm-webgl":{gl:34798,f:Yr}},df={[6403]:1,[36244]:1,[33319]:2,[33320]:2,[6407]:3,[36248]:3,[6408]:4,[36249]:4,[6402]:1,[34041]:1,[6406]:1,[6409]:1,[6410]:2},pf={[5126]:4,[5125]:4,[5124]:4,[5123]:2,[5122]:2,[5131]:2,[5120]:1,[5121]:1};function Qe(e,t){let r=Je(t),i=Ze[r];if(!i||(b(e)?i.gl===void 0:i.gl1===void 0))return!1;let n=i.x||b(e)&&i.gl2ext||i.gl1ext;return n?Boolean(e.getExtension(n)):!0}function pn(e,t){var r;return Qe(e,t)&&((r=Ze[t])===null||r===void 0?void 0:r.renderbuffer)}function Je(e){if(typeof e=="string")return e;let t=Object.entries(Ze).find(r=>{let[,i]=r;return i.gl===e||i.gl1===e});if(!t)throw new Error(`Unknown texture format ${e}`);return t[0]}function Ge(e,t){let r=Ze[e],i=t?r?.gl:r?.gl1;if(i===void 0)throw new Error(`Unsupported texture format ${e}`);return i}function hn(e,t){let r=Je(t);if(!Qe(e,r))return!1;try{if((0,qr.decodeTextureFormat)(r).signed)return!1}catch{return!1}return r.endsWith("32float")?Boolean(e.getExtension("OES_texture_float_linear")):r.endsWith("16float")?Boolean(e.getExtension("OES_texture_half_float_linear")):!0}function gn(e,t){let r=Je(t);return!(!Qe(e,r)||typeof r=="number")}function Ie(e,t){let r=Je(e),i=Ge(r,t),n=(0,qr.decodeTextureFormat)(r);return{format:i,dataFormat:hf(n.format,n.integer,n.normalized,i),type:n.dataType?Ot(n.dataType):5121,compressed:n.compressed}}function Tn(e){let t=Ze[e];if(!(t!=null&&t.attachment))throw new Error(`${e} is not a depth stencil format`);return t.attachment}function An(e){let t=arguments.length>1&&arguments[1]!==void 0?arguments[1]:6408,r=arguments.length>2&&arguments[2]!==void 0?arguments[2]:6408,i=arguments.length>3&&arguments[3]!==void 0?arguments[3]:5121,n=null,o=null;try{n=e.createTexture(),e.bindTexture(3553,n);let s=0,a=1,f=1,l=0,c=new Uint8Array([0,0,255,255]);e.texImage2D(3553,s,t,a,f,l,r,i,c),o=e.createFramebuffer(),e.bindFramebuffer(36160,o),e.framebufferTexture2D(36160,36064,3553,n,0);let u=e.checkFramebufferStatus(36160)===36053;return e.bindTexture(3553,null),u}finally{e.deleteTexture(n),e.deleteFramebuffer(o)}}function et(e,t){let r=Je(e),i=Ie(r,t),n=df[i.dataFormat]||4,o=pf[i.type]||1;return n*o}function hf(e,t,r,i){if(i===6408||i===6407)return i;switch(e){case"r":return t&&!r?36244:6403;case"rg":return t&&!r?33320:33319;case"rgb":return t&&!r?36248:6407;case"rgba":return t&&!r?36249:6408;default:return 6408}}function Rn(e){let t=gf(e);for(let r of dn(e))t.add(r);return t}function gf(e){e.getExtension("EXT_color_buffer_float"),e.getExtension("WEBGL_color_buffer_float"),e.getExtension("EXT_float_blend");let t=new Set;for(let r of Object.keys(bn))Tf(e,r)&&t.add(r);return t}function Tf(e,t){let r=bn[t];if(!r)return!1;let[i,n]=r||[],o=b(e)?n:i;if(typeof o=="boolean")return o;switch(t){case"texture-renderable-rgba32float-webgl":return b(e)?Boolean(e.getExtension(o)):An(e);case"glsl-derivatives":return Qr(e,o);case"glsl-frag-data":return Qr(e,o,{behavior:"require"});case"glsl-frag-depth":return Qr(e,o);default:return Boolean(e.getExtension(o))}}var Zr={};function Qr(e,t){let r=arguments.length>2&&arguments[2]!==void 0?arguments[2]:{};if(!un(r))return!0;if(t in Zr)return Zr[t];let i=r.behavior||"enable",n=`#extension GL_${t} : ${i}
71
- void main(void) {}`,o=e.createShader(35633);if(!o)throw new Error("shader");e.shaderSource(o,n),e.compileShader(o);let s=e.getShaderParameter(o,35713);return e.deleteShader(o),Zr[t]=s,s}var bn={webgl:[!0,!0],webgl2:[!1,!0],"timer-query-webgl":["EXT_disjoint_timer_query","EXT_disjoint_timer_query_webgl2"],"transform-feedback-webgl2":[!1,!0],"vertex-array-object-webgl1":["OES_vertex_array_object",!0],"instanced-rendering-webgl1":["ANGLE_instanced_arrays",!0],"multiple-render-targets-webgl1":["WEBGL_draw_buffers",!0],"index-uint32-webgl1":["OES_element_index_uint",!0],"blend-minmax-webgl1":["EXT_blend_minmax",!0],"texture-blend-float-webgl1":["EXT_float_blend","EXT_float_blend"],"texture-formats-srgb-webgl1":["EXT_sRGB",!0],"texture-formats-depth-webgl1":["WEBGL_depth_texture",!0],"texture-formats-float32-webgl1":["OES_texture_float",!0],"texture-formats-float16-webgl1":["OES_texture_half_float",!0],"texture-filter-linear-float32-webgl":["OES_texture_float_linear","OES_texture_float_linear"],"texture-filter-linear-float16-webgl":["OES_texture_half_float_linear","OES_texture_half_float_linear"],"texture-filter-anisotropic-webgl":["EXT_texture_filter_anisotropic","EXT_texture_filter_anisotropic"],"texture-renderable-rgba32float-webgl":["WEBGL_color_buffer_float","EXT_color_buffer_float"],"texture-renderable-float32-webgl":[!1,"EXT_color_buffer_float"],"texture-renderable-float16-webgl":["EXT_color_buffer_half_float","EXT_color_buffer_half_float"],"glsl-frag-data":["WEBGL_draw_buffers",!0],"glsl-frag-depth":["EXT_frag_depth",!0],"glsl-derivatives":["OES_standard_derivatives",!0],"glsl-texture-lod":["EXT_shader_texture_lod",!0]};function En(e){let t=Wr(e);return{maxTextureDimension1D:0,maxTextureDimension2D:e.getParameter(3379),maxTextureDimension3D:t?t.getParameter(32883):0,maxTextureArrayLayers:t?t.getParameter(35071):0,maxBindGroups:1,maxDynamicUniformBuffersPerPipelineLayout:0,maxDynamicStorageBuffersPerPipelineLayout:0,maxSampledTexturesPerShaderStage:e.getParameter(35660),maxSamplersPerShaderStage:e.getParameter(35661),maxStorageBuffersPerShaderStage:0,maxStorageTexturesPerShaderStage:0,maxUniformBuffersPerShaderStage:t?t.getParameter(35375):0,maxUniformBufferBindingSize:t?t.getParameter(35376):0,maxStorageBufferBindingSize:0,minUniformBufferOffsetAlignment:t?t.getParameter(35380):0,minStorageBufferOffsetAlignment:0,maxVertexBuffers:0,maxVertexAttributes:e.getParameter(34921),maxVertexBufferArrayStride:2048,maxInterStageShaderComponents:t?t.getParameter(35659):0,maxComputeWorkgroupStorageSize:0,maxComputeInvocationsPerWorkgroup:0,maxComputeWorkgroupSizeX:0,maxComputeWorkgroupSizeY:0,maxComputeWorkgroupSizeZ:0,maxComputeWorkgroupsPerDimension:0}}function vn(e){let t=Wr(e);function r(n){return e.getParameter(n)}function i(n,o){return t?t.getParameter(n):o||0}return{[33902]:r(33902),[33901]:r(33901),[3379]:r(3379),[34076]:r(34076),[34930]:r(34930),[35661]:r(35661),[35660]:r(35660),[34024]:r(34024),[36348]:r(36348),[34921]:r(34921),[36347]:r(36347),[36349]:r(36349),[3386]:r(3386),[34047]:r(34047),[32883]:i(32883),[35071]:i(35071),[37447]:i(37447),[36063]:i(36063),[35379]:i(35379),[35374]:i(35374),[35377]:i(35377),[34852]:i(34852),[36203]:i(36203),[33001]:i(33001),[33e3]:i(33e3),[37157]:i(37157),[35373]:i(35373),[35657]:i(35657),[36183]:i(36183),[37137]:i(37137),[34045]:i(34045),[35978]:i(35978),[35979]:i(35979),[35968]:i(35968),[35376]:i(35376),[35375]:i(35375),[35659]:i(35659),[37154]:i(37154),[35371]:i(35371),[35658]:i(35658),[35076]:i(35076),[35077]:i(35077),[35380]:i(35380)}}var Cn=T(E(),1);var Dt=T(E(),1);var F=T(E(),1);function P(e,t,r){let n=M.attach(e).gl;if(Af(t))return r(e);let{nocatch:o=!0}=t;_e(n),oe(n,t);let s;if(o)s=r(n),se(n);else try{s=r(n)}finally{se(n)}return s}function Af(e){for(let t in e)return!1;return!0}var Ft=T(E(),1);function Sn(e,t,r,i){if((0,Ft.isObjectEmpty)(t))return i(e);_e(e.gl);try{return Rf(e,t),oe(e,r),i(e)}finally{se(e.gl)}}function Rf(e,t){let r=M.attach(e),{gl:i}=r;if(t.cullMode)switch(t.cullMode){case"none":i.disable(2884);break;case"front":i.enable(2884),i.cullFace(1028);break;case"back":i.enable(2884),i.cullFace(1029);break}if(t.frontFace&&i.frontFace(tt("frontFace",t.frontFace,{ccw:2305,cw:2304})),t.depthBias!==void 0&&i.polygonOffset(t.depthBias,t.depthBiasSlopeScale||0),t.depthWriteEnabled!==void 0&&i.depthMask(Ef("depthWriteEnabled",t.depthWriteEnabled)),t.depthCompare&&(t.depthCompare!=="always"?i.enable(2929):i.disable(2929),i.depthFunc(It("depthCompare",t.depthCompare))),t.stencilWriteMask){let n=t.stencilWriteMask;i.stencilMaskSeparate(1028,n),i.stencilMaskSeparate(1029,n)}if(t.stencilReadMask&&Ft.log.warn("stencilReadMask not supported under WebGL"),t.stencilCompare){let n=t.stencilReadMask||4294967295,o=It("depthCompare",t.stencilCompare);t.stencilCompare!=="always"?i.enable(2960):i.disable(2960),i.stencilFuncSeparate(1028,o,0,n),i.stencilFuncSeparate(1029,o,0,n)}if(t.stencilPassOperation&&t.stencilFailOperation&&t.stencilDepthFailOperation){let n=Jr("stencilPassOperation",t.stencilPassOperation),o=Jr("stencilFailOperation",t.stencilFailOperation),s=Jr("stencilDepthFailOperation",t.stencilDepthFailOperation);i.stencilOpSeparate(1028,o,s,n),i.stencilOpSeparate(1029,o,s,n)}if(t.blendColorOperation||t.blendAlphaOperation){i.enable(3042);let n=mn("blendColorOperation",t.blendColorOperation||"add"),o=mn("blendAlphaOperation",t.blendAlphaOperation||"add");i.blendEquationSeparate(n,o);let s=Pt("blendColorSrcFactor",t.blendColorSrcFactor||"one"),a=Pt("blendColorDstFactor",t.blendColorDstFactor||"zero"),f=Pt("blendAlphaSrcFactor",t.blendAlphaSrcFactor||"one"),l=Pt("blendAlphaDstFactor",t.blendAlphaDstFactor||"zero");i.blendFuncSeparate(s,a,f,l)}}function It(e,t){return tt(e,t,{never:512,less:513,equal:514,"less-equal":515,greater:516,"not-equal":517,"greater-equal":518,always:519})}function Jr(e,t){return tt(e,t,{keep:7680,zero:0,replace:7681,invert:5386,"increment-clamp":7682,"decrement-clamp":7683,"increment-wrap":34055,"decrement-wrap":34056})}function mn(e,t){return tt(e,t,{add:32774,subtract:32778,"reverse-subtract":32779,min:32775,max:32776})}function Pt(e,t){return tt(e,t,{one:1,zero:0,"src-color":768,"one-minus-src-color":769,"dst-color":774,"one-minus-dst-color":775,"src-alpha":770,"one-minus-src-alpha":771,"dst-alpha":772,"one-minus-dst-alpha":773})}function bf(e,t){return`Illegal parameter ${t} for ${e}`}function tt(e,t,r){if(!(t in r))throw new Error(bf(e,t));return r[t]}function Ef(e,t){return t}function Ct(e){let t={};return e.addressModeU&&(t[10242]=Gr(e.addressModeU)),e.addressModeV&&(t[10243]=Gr(e.addressModeV)),e.addressModeW&&(t[32882]=Gr(e.addressModeW)),e.magFilter&&(t[10240]=On(e.magFilter)),(e.minFilter||e.mipmapFilter)&&(t[10241]=vf(e.minFilter||"linear",e.mipmapFilter)),e.lodMinClamp!==void 0&&(t[33082]=e.lodMinClamp),e.lodMaxClamp!==void 0&&(t[33083]=e.lodMaxClamp),e.type==="comparison-sampler"&&(t[34892]=34894),e.compare&&(t[34893]=It("compare",e.compare)),e.maxAnisotropy&&(t[34046]=e.maxAnisotropy),t}function yn(e){let t={...e};return e[10241]!==9728&&(t[10241]=9729),t[10242]=33071,t[10243]=33071,t}function Gr(e){switch(e){case"clamp-to-edge":return 33071;case"repeat":return 10497;case"mirror-repeat":return 33648}}function On(e){switch(e){case"nearest":return 9728;case"linear":return 9729}}function vf(e,t){if(!t)return On(e);switch(e){case"nearest":return t==="nearest"?9984:9986;case"linear":return t==="nearest"?9985:9987}}var ee=T(E(),1),V=class extends ee.Buffer{constructor(t){let r=arguments.length>1&&arguments[1]!==void 0?arguments[1]:{};super(t,r),this.device=void 0,this.gl=void 0,this.gl2=void 0,this.handle=void 0,this.glTarget=void 0,this.glUsage=void 0,this.glIndexType=5123,this.byteLength=void 0,this.bytesUsed=void 0,this.device=t,this.gl=this.device.gl,this.gl2=this.device.gl2;let i=typeof r=="object"?r.handle:void 0;this.handle=i||this.gl.createBuffer(),t.setSpectorMetadata(this.handle,{...this.props,data:typeof this.props.data}),this.glTarget=mf(this.props.usage),this.glUsage=Sf(this.props.usage),this.glIndexType=this.props.indexType==="uint32"?5125:5123,r.data?this._initWithData(r.data,r.byteOffset,r.byteLength):this._initWithByteLength(r.byteLength||0)}_initWithData(t){let r=arguments.length>1&&arguments[1]!==void 0?arguments[1]:0,i=arguments.length>2&&arguments[2]!==void 0?arguments[2]:t.byteLength+r,n=this.glTarget;this.gl.bindBuffer(n,this.handle),this.gl.bufferData(n,i,this.glUsage),this.gl.bufferSubData(n,r,t),this.gl.bindBuffer(n,null),this.bytesUsed=i,this.byteLength=i,this._setDebugData(t,r,i),this.trackAllocatedMemory(i)}_initWithByteLength(t){(0,ee.assert)(t>=0);let r=t;t===0&&(r=new Float32Array(0));let i=this.glTarget;return this.gl.bindBuffer(i,this.handle),this.gl.bufferData(i,r,this.glUsage),this.gl.bindBuffer(i,null),this.bytesUsed=t,this.byteLength=t,this._setDebugData(null,0,t),this.trackAllocatedMemory(t),this}destroy(){!this.destroyed&&this.handle&&(this.removeStats(),this.trackDeallocatedMemory(),this.gl.deleteBuffer(this.handle),this.destroyed=!0,this.handle=null)}write(t){let r=arguments.length>1&&arguments[1]!==void 0?arguments[1]:0,i=0,n=void 0,o=this.device.isWebGL2?36663:this.glTarget;this.gl.bindBuffer(o,this.handle),i!==0||n!==void 0?(this.device.assertWebGL2(),this.gl2.bufferSubData(o,r,t,i,n)):this.gl.bufferSubData(o,r,t),this.gl.bindBuffer(o,null),this._setDebugData(t,r,t.byteLength)}async readAsync(){let t=arguments.length>0&&arguments[0]!==void 0?arguments[0]:0,r=arguments.length>1?arguments[1]:void 0;return this.readSyncWebGL2(t,r)}readSyncWebGL2(){var t;let r=arguments.length>0&&arguments[0]!==void 0?arguments[0]:0,i=arguments.length>1?arguments[1]:void 0;this.device.assertWebGL2(),i=(t=i)!==null&&t!==void 0?t:this.byteLength-r;let n=new Uint8Array(i),o=0;return this.gl.bindBuffer(36662,this.handle),this.gl2.getBufferSubData(36662,r,n,o,i),this.gl.bindBuffer(36662,null),this._setDebugData(n,r,i),n}};function mf(e){return e&ee.Buffer.INDEX?34963:e&ee.Buffer.VERTEX?34962:e&ee.Buffer.UNIFORM?35345:34962}function Sf(e){return e&ee.Buffer.INDEX||e&ee.Buffer.VERTEX?35044:e&ee.Buffer.UNIFORM?35048:35044}var xn=T(E(),1);var me=class extends xn.Sampler{constructor(t,r){super(t,r),this.device=void 0,this.handle=void 0,this.parameters=void 0,this.device=t,this.parameters=Ct(r),this.device.isWebGL2&&(this.handle=this.handle||this.device.gl2.createSampler(),this._setSamplerParameters(this.parameters))}destroy(){this.handle&&(this.device.gl2.deleteSampler(this.handle),this.handle=void 0)}toString(){return`Sampler(${this.id},${JSON.stringify(this.props)})`}_setSamplerParameters(t){for(let[r,i]of Object.entries(t)){let n=Number(r);switch(n){case 33082:case 33083:this.device.gl2.samplerParameterf(this.handle,n,i);break;default:this.device.gl2.samplerParameteri(this.handle,n,i);break}}}};var yf={parameters:{},pixelStore:{},pixels:null,border:0,dataFormat:void 0,textureUnit:void 0,target:void 0},N=class extends F.Texture{constructor(t,r){var i;super(t,{...yf,format:"rgba8unorm",...r}),this.MAX_ATTRIBUTES=void 0,this.device=void 0,this.gl=void 0,this.gl2=void 0,this.handle=void 0,this.sampler=void 0,this.glFormat=void 0,this.type=void 0,this.dataFormat=void 0,this.mipmaps=void 0,this.target=void 0,this.textureUnit=void 0,this.loaded=!1,this._video=void 0,this.device=t,this.gl=this.device.gl,this.gl2=this.device.gl2,this.handle=this.props.handle||this.gl.createTexture(),this.device.setSpectorMetadata(this.handle,{...this.props,data:typeof this.props.data}),this.glFormat=6408,this.target=Of(this.props),this.loaded=!1,typeof((i=this.props)===null||i===void 0?void 0:i.data)=="string"&&Object.assign(this.props,{data:(0,F.loadImage)(this.props.data)}),this.initialize(this.props),Object.seal(this)}destroy(){this.handle&&(this.gl.deleteTexture(this.handle),this.removeStats(),this.trackDeallocatedMemory("Texture"),this.destroyed=!0)}toString(){return`Texture(${this.id},${this.width}x${this.height})`}initialize(){let t=arguments.length>0&&arguments[0]!==void 0?arguments[0]:{};if(this.props.dimension==="cube")return this.initializeCube(t);let r=t.data;if(r instanceof Promise)return r.then(h=>this.initialize(Object.assign({},t,{pixels:h,data:h}))),this;let i=typeof HTMLVideoElement<"u"&&r instanceof HTMLVideoElement;if(i&&r.readyState<HTMLVideoElement.HAVE_METADATA)return this._video=null,r.addEventListener("loadeddata",()=>this.initialize(t)),this;let{parameters:n={}}=t,{pixels:o=null,pixelStore:s={},textureUnit:a=void 0}=t;r||(r=o);let{width:f,height:l,dataFormat:c,type:u,compressed:_=!1,mipmaps:d=!0}=t,{depth:p=0}=t,g=Ge(t.format,this.device.isWebGL2);return{width:f,height:l,compressed:_,dataFormat:c,type:u}=this._deduceParameters({format:t.format,type:u,dataFormat:c,compressed:_,data:r,width:f,height:l}),this.width=f,this.height=l,this.glFormat=g,this.type=u,this.dataFormat=c,this.textureUnit=a,Number.isFinite(this.textureUnit)&&(this.gl.activeTexture(33984+this.textureUnit),this.gl.bindTexture(this.target,this.handle)),d&&this.device.isWebGL1&&Mt(this.width,this.height)&&(F.log.warn(`texture: ${this} is Non-Power-Of-Two, disabling mipmaps`)(),d=!1),this.mipmaps=d,this.setImageData({data:r,width:f,height:l,depth:p,format:g,type:u,dataFormat:c,parameters:s,compressed:_}),this.setSampler(t.sampler),this._setSamplerParameters(n),d&&this.generateMipmap(),i&&(this._video={video:r,parameters:n,lastTime:r.readyState>=HTMLVideoElement.HAVE_CURRENT_DATA?r.currentTime:-1}),this}initializeCube(t){let{mipmaps:r=!0,parameters:i={}}=t;return this.setCubeMapImageData(t).then(()=>{this.loaded=!0,r&&this.generateMipmap(t),this.setSampler(t.sampler),this._setSamplerParameters(i)}),this}setSampler(){let t=arguments.length>0&&arguments[0]!==void 0?arguments[0]:{},r;t instanceof me?(this.sampler=t,r=t.props):(this.sampler=new me(this.device,t),r=t);let i=Ct(r);return this._setSamplerParameters(i),this}resize(t){let{height:r,width:i,mipmaps:n=!1}=t;return i!==this.width||r!==this.height?this.initialize({width:i,height:r,format:this.format,type:this.type,dataFormat:this.dataFormat,mipmaps:n}):this}update(){if(this._video){let{video:t,parameters:r,lastTime:i}=this._video;if(i===t.currentTime||t.readyState<HTMLVideoElement.HAVE_CURRENT_DATA)return;this.setSubImageData({data:t,parameters:r}),this.mipmaps&&this.generateMipmap(),this._video.lastTime=t.currentTime}}generateMipmap(){let t=arguments.length>0&&arguments[0]!==void 0?arguments[0]:{};return this.device.isWebGL1&&Mt(this.width,this.height)?(F.log.warn(`texture: ${this} is Non-Power-Of-Two, disabling mipmaping`)(),this):(this.mipmaps=!0,this.gl.bindTexture(this.target,this.handle),P(this.gl,t,()=>{this.gl.generateMipmap(this.target)}),this.gl.bindTexture(this.target,null),this)}setImageData(t){if(this.props.dimension==="3d"||this.props.dimension==="2d-array")return this.setImageData3D(t);this.trackDeallocatedMemory("Texture");let{target:r=this.target,pixels:i=null,level:n=0,glFormat:o=this.glFormat,offset:s=0,parameters:a={}}=t,{data:f=null,type:l=this.type,width:c=this.width,height:u=this.height,dataFormat:_=this.dataFormat,compressed:d=!1}=t;f||(f=i),{type:l,dataFormat:_,compressed:d,width:c,height:u}=this._deduceParameters({format:this.props.format,type:l,dataFormat:_,compressed:d,data:f,width:c,height:u});let{gl:p}=this;p.bindTexture(this.target,this.handle);let g=null;({data:f,dataType:g}=this._getDataType({data:f,compressed:d}));let h;if(P(this.gl,a,()=>{switch(g){case"null":p.texImage2D(r,n,o,c,u,0,_,l,f);break;case"typed-array":p.texImage2D(r,n,o,c,u,0,_,l,f,s);break;case"buffer":h=this.device.assertWebGL2(),h.bindBuffer(35052,f.handle||f),h.texImage2D(r,n,o,c,u,0,_,l,s),h.bindBuffer(35052,null);break;case"browser-object":this.device.isWebGL2?p.texImage2D(r,n,o,c,u,0,_,l,f):p.texImage2D(r,n,o,_,l,f);break;case"compressed":for(let[R,A]of f.entries())p.compressedTexImage2D(r,R,A.format,A.width,A.height,0,A.data);break;default:(0,F.assert)(!1,"Unknown image data type")}}),f&&f.byteLength)this.trackAllocatedMemory(f.byteLength,"Texture");else{let R=et(this.props.format,this.device.isWebGL2);this.trackAllocatedMemory(this.width*this.height*R,"Texture")}return this.loaded=!0,this}setSubImageData(t){let{target:r=this.target,pixels:i=null,data:n=null,x:o=0,y:s=0,width:a=this.width,height:f=this.height,level:l=0,glFormat:c=this.glFormat,type:u=this.type,dataFormat:_=this.dataFormat,compressed:d=!1,offset:p=0,parameters:g={}}=t;if({type:u,dataFormat:_,compressed:d,width:a,height:f}=this._deduceParameters({format:this.props.format,type:u,dataFormat:_,compressed:d,data:n,width:a,height:f}),(0,F.assert)(this.depth===1,"texSubImage not supported for 3D textures"),n||(n=i),n&&n.data){let h=n;n=h.data,a=h.shape[0],f=h.shape[1]}n instanceof V&&(n=n.handle),this.gl.bindTexture(this.target,this.handle),P(this.gl,g,()=>{if(d)this.gl.compressedTexSubImage2D(r,l,o,s,a,f,c,n);else if(n===null)this.gl.texSubImage2D(r,l,o,s,a,f,_,u,null);else if(ArrayBuffer.isView(n))this.gl.texSubImage2D(r,l,o,s,a,f,_,u,n,p);else if(typeof WebGLBuffer<"u"&&n instanceof WebGLBuffer){let h=this.device.assertWebGL2();h.bindBuffer(35052,n),h.texSubImage2D(r,l,o,s,a,f,_,u,p),h.bindBuffer(35052,null)}else this.device.isWebGL2?this.device.assertWebGL2().texSubImage2D(r,l,o,s,a,f,_,u,n):this.gl.texSubImage2D(r,l,o,s,_,u,n)}),this.gl.bindTexture(this.target,null)}copyFramebuffer(){let t=arguments.length>0&&arguments[0]!==void 0?arguments[0]:{};return F.log.error("Texture.copyFramebuffer({...}) is no logner supported, use copyToTexture(source, target, opts})")(),null}getActiveUnit(){return this.gl.getParameter(34016)-33984}bind(){let t=arguments.length>0&&arguments[0]!==void 0?arguments[0]:this.textureUnit,{gl:r}=this;return t!==void 0&&(this.textureUnit=t,r.activeTexture(33984+t)),r.bindTexture(this.target,this.handle),t}unbind(){let t=arguments.length>0&&arguments[0]!==void 0?arguments[0]:this.textureUnit,{gl:r}=this;return t!==void 0&&(this.textureUnit=t,r.activeTexture(33984+t)),r.bindTexture(this.target,null),t}_getDataType(t){let{data:r,compressed:i=!1}=t;return i?{data:r,dataType:"compressed"}:r===null?{data:r,dataType:"null"}:ArrayBuffer.isView(r)?{data:r,dataType:"typed-array"}:r instanceof V?{data:r.handle,dataType:"buffer"}:typeof WebGLBuffer<"u"&&r instanceof WebGLBuffer?{data:r,dataType:"buffer"}:{data:r,dataType:"browser-object"}}_deduceParameters(t){let{format:r,data:i}=t,{width:n,height:o,dataFormat:s,type:a,compressed:f}=t,l=Ie(r,this.device.isWebGL2);return s=s||l.dataFormat,a=a||l.type,f=f||l.compressed,{width:n,height:o}=this._deduceImageSize(i,n,o),{dataFormat:s,type:a,compressed:f,width:n,height:o,format:r,data:i}}_deduceImageSize(t,r,i){let n;return typeof ImageData<"u"&&t instanceof ImageData?n={width:t.width,height:t.height}:typeof HTMLImageElement<"u"&&t instanceof HTMLImageElement?n={width:t.naturalWidth,height:t.naturalHeight}:typeof HTMLCanvasElement<"u"&&t instanceof HTMLCanvasElement?n={width:t.width,height:t.height}:typeof ImageBitmap<"u"&&t instanceof ImageBitmap?n={width:t.width,height:t.height}:typeof HTMLVideoElement<"u"&&t instanceof HTMLVideoElement?n={width:t.videoWidth,height:t.videoHeight}:t?n={width:r,height:i}:n={width:r>=0?r:1,height:i>=0?i:1},(0,F.assert)(n,"Could not deduced texture size"),(0,F.assert)(r===void 0||n.width===r,"Deduced texture width does not match supplied width"),(0,F.assert)(i===void 0||n.height===i,"Deduced texture height does not match supplied height"),n}async setCubeMapImageData(t){let{gl:r}=this,{width:i,height:n,pixels:o,data:s,format:a=6408,type:f=5121}=t,l=o||s,c=await Promise.all(N.FACES.map(u=>{let _=l[u];return Promise.all(Array.isArray(_)?_:[_])}));this.bind(),N.FACES.forEach((u,_)=>{c[_].length>1&&this.props.mipmaps!==!1&&F.log.warn(`${this.id} has mipmap and multiple LODs.`)(),c[_].forEach((d,p)=>{i&&n?r.texImage2D(u,p,a,i,n,0,a,f,d):r.texImage2D(u,p,a,a,f,d)})}),this.unbind()}setImageDataForFace(t){let{face:r,width:i,height:n,pixels:o,data:s,format:a=6408,type:f=5121}=t,{gl:l}=this,c=o||s;return this.bind(),c instanceof Promise?c.then(u=>this.setImageDataForFace(Object.assign({},t,{face:r,data:u,pixels:u}))):this.width||this.height?l.texImage2D(r,0,a,i,n,0,a,f,c):l.texImage2D(r,0,a,a,f,c),this}setImageData3D(t){let{level:r=0,dataFormat:i,format:n,type:o,width:s,height:a,depth:f=1,offset:l=0,data:c,parameters:u={}}=t;this.trackDeallocatedMemory("Texture"),this.gl.bindTexture(this.target,this.handle);let _=Ie(n,this.device.isWebGL2);if(P(this.gl,u,()=>{ArrayBuffer.isView(c)&&this.gl.texImage3D(this.target,r,_.format,s,a,f,0,_.dataFormat,_.type,c),c instanceof V&&(this.gl.bindBuffer(35052,c.handle),this.gl.texImage3D(this.target,r,i,s,a,f,0,n,o,l))}),c&&c.byteLength)this.trackAllocatedMemory(c.byteLength,"Texture");else{let d=et(this.props.format,this.device.isWebGL2);this.trackAllocatedMemory(this.width*this.height*this.depth*d,"Texture")}return this.loaded=!0,this}_setSamplerParameters(t){if(this.device.isWebGL1&&Mt(this.width,this.height)&&(t=yn(t)),!(0,F.isObjectEmpty)(t)){xf(t),this.gl.bindTexture(this.target,this.handle);for(let[r,i]of Object.entries(t)){let n=Number(r),o=i;switch(n){case 33082:case 33083:this.gl.texParameterf(this.target,n,o);break;default:this.gl.texParameteri(this.target,n,o);break}}this.gl.bindTexture(this.target,null)}}_getWebGL1NPOTParameterOverride(t,r){if(this.device.isWebGL1&&Mt(this.width,this.height))switch(t){case 10241:if(r!==9729&&r!==9728)return 9729;break;case 10242:case 10243:return 33071;default:break}return r}};N.FACES=[34069,34070,34071,34072,34073,34074];function Of(e){switch(e.dimension){case"2d":return 3553;case"cube":return 34067;case"2d-array":return 35866;case"3d":return 32879;case"1d":case"cube-array":default:throw new Error(e.dimension)}}function Mt(e,t){return!e||!t?!1:!(0,F.isPowerOfTwo)(e)||!(0,F.isPowerOfTwo)(t)}function xf(e){F.log.log(1,"texture sampler parameters",e)()}var Fn=T(E(),1);var fe=T(E(),1);var Pn=T(E(),1);function Nt(e,t){if(typeof t!="string")return t;let r=Number(t);if(!isNaN(r))return r;t=t.replace(/^.*\./,"");let i=e[t];return(0,Pn.assert)(i!==void 0,`Accessing undefined constant GL.${t}`),i}var Fe="Resource subclass must define virtual methods",Bt=class extends fe.Resource{constructor(t,r,i){super(t,r,i),this.device=void 0,this.gl=void 0,this.gl2=void 0,this._handle=void 0,this._bound=!1,this.byteLength=0,this.device=M.attach(t);let n=this.device.gl;Ki(n);let{id:o}=r||{};this.gl=n,this.gl2=n,this.id=o||(0,fe.uid)(this.constructor.name),this._handle=r?.handle,this._handle===void 0&&(this._handle=this._createHandle()),this.byteLength=0}toString(){return`${this.constructor.name}(${this.id})`}get handle(){return this._handle}delete(){let{deleteChildren:t=!1}=arguments.length>0&&arguments[0]!==void 0?arguments[0]:{},r=this._handle&&this._deleteHandle(this._handle);return this._handle&&this.removeStats(),this._handle=null,r&&t&&r.filter(Boolean).forEach(i=>i.destroy()),this}bind(){let t=arguments.length>0&&arguments[0]!==void 0?arguments[0]:this.handle;if(typeof t!="function")return this._bindHandle(t),this;let r;return this._bound?r=t():(this._bindHandle(this.handle),this._bound=!0,r=t(),this._bound=!1,this._bindHandle(null)),r}unbind(){this.bind(null)}getParameter(t){let r=arguments.length>1&&arguments[1]!==void 0?arguments[1]:{};t=Nt(this.gl,t),(0,fe.assert)(t);let n=(this.constructor.PARAMETERS||{})[t];if(n){let o=b(this.gl);if(!((!("webgl2"in n)||o)&&(!("extension"in n)||this.gl.getExtension(n.extension)))){let a=n.webgl1,f="webgl2"in n?n.webgl2:n.webgl1;return o?f:a}}return this._getParameter(t,r)}getParameters(){let t=arguments.length>0&&arguments[0]!==void 0?arguments[0]:{},{parameters:r,keys:i}=t,n=this.constructor.PARAMETERS||{},o=b(this.gl),s={},a=r||Object.keys(n);for(let f of a){let l=n[f];if(l&&(!("webgl2"in l)||o)&&(!("extension"in l)||this.gl.getExtension(l.extension))){let u=i?this.device.getGLKey(f):f;s[u]=this.getParameter(f,t),i&&l.type==="GLenum"&&(s[u]=this.device.getGLKey(s[u]))}}return s}setParameter(t,r){t=Nt(this.gl,t),(0,fe.assert)(t);let n=(this.constructor.PARAMETERS||{})[t];if(n){let o=b(this.gl);if(!((!("webgl2"in n)||o)&&(!("extension"in n)||this.gl.getExtension(n.extension))))throw new Error("Parameter not available on this platform");n.type==="GLenum"&&(r=Nt(r))}return this._setParameter(t,r),this}setParameters(t){for(let r in t)this.setParameter(r,t[r]);return this}stubRemovedMethods(t,r,i){return(0,fe.stubRemovedMethods)(this,t,r,i)}initialize(t){}_createHandle(){throw new Error(Fe)}_deleteHandle(){throw new Error(Fe)}_bindHandle(t){throw new Error(Fe)}_getOptsFromHandle(){throw new Error(Fe)}_getParameter(t,r){throw new Error(Fe)}_setParameter(t,r){throw new Error(Fe)}};var In;In=Symbol.toStringTag;var K=class extends Bt{get[In](){return"Renderbuffer"}get width(){return this.props.width}get height(){return this.props.height}get format(){return this.props.format}get samples(){return this.props.samples}get attachment(){}static isTextureFormatSupported(t,r){return pn(t.gl,r)}constructor(t,r){if(typeof r.format=="number")throw new Error("Renderbuffer");super(t,r,K.defaultProps),this.glFormat=void 0,this.glFormat=Ge(this.props.format,t.isWebGL2),this._initialize(this.props)}resize(t){(t.width!==this.width||t.height!==this.height)&&(Object.assign(this.props,{...t,format:this.format,samples:this.samples}),this._initialize(this.props))}_initialize(t){let{format:r,width:i,height:n,samples:o}=t;(0,Fn.assert)(r,"Needs format"),this.trackDeallocatedMemory(),this.gl.bindRenderbuffer(36161,this.handle),o!==0&&this.device.isWebGL2?this.gl2.renderbufferStorageMultisample(36161,o,this.glFormat,i,n):this.gl.renderbufferStorage(36161,this.glFormat,i,n),this.gl.bindRenderbuffer(36161,null),this.trackAllocatedMemory(i*n*(o||1)*et(this.glFormat,this.device.isWebGL2))}_createHandle(){return this.gl.createRenderbuffer()}_deleteHandle(){this.gl.deleteRenderbuffer(this.handle),this.trackDeallocatedMemory()}_bindHandle(t){this.gl.bindRenderbuffer(36161,t)}};K.defaultProps={id:void 0,handle:void 0,userData:void 0,format:void 0,width:1,height:1,samples:0};var te=class extends Dt.Framebuffer{get texture(){return this.colorAttachments[0]}constructor(t,r){super(t,r),this.device=void 0,this.gl=void 0,this.handle=void 0;let i=r.handle===null;if(this.device=t,this.gl=t.gl,this.handle=this.props.handle||i?this.props.handle:this.gl.createFramebuffer(),!i){t.setSpectorMetadata(this.handle,{id:this.props.id,props:this.props}),this.autoCreateAttachmentTextures(),this.gl.bindFramebuffer(36160,this.handle);for(let n=0;n<this.colorAttachments.length;++n){let o=this.colorAttachments[n],s=36064+n;o&&this._attachOne(s,o)}this.depthStencilAttachment&&this._attachOne(Tn(this.depthStencilAttachment.format),this.depthStencilAttachment),this.gl.bindFramebuffer(36160,null)}r.check!==!1&&this._checkStatus()}destroy(){super.destroy(),!this.destroyed&&this.handle!==null&&this.gl.deleteFramebuffer(this.handle)}_checkStatus(){let{gl:t}=this,r=t.bindFramebuffer(36160,this.handle),i=t.checkFramebufferStatus(36160);if(t.bindFramebuffer(36160,r||null),i!==36053)throw new Error(`Framebuffer ${If(i)}`)}createDepthStencilTexture(t){return new K(this.device,{id:`${this.id}-depth-stencil`,format:t,width:this.width,height:this.height})}resizeAttachments(t,r){if(this.handle===null)return this.width=this.gl.drawingBufferWidth,this.height=this.gl.drawingBufferHeight,this;t===void 0&&(t=this.gl.drawingBufferWidth),r===void 0&&(r=this.gl.drawingBufferHeight);for(let i of this.colorAttachments)i.resize({width:t,height:r});return this.depthStencilAttachment&&this.depthStencilAttachment.resize({width:t,height:r}),this}_attachOne(t,r){if(r instanceof K)return this._attachWEBGLRenderbuffer(t,r),r;if(Array.isArray(r)){let[i,n=0,o=0]=r;return this._attachTexture(t,i,n,o),i}else if(r instanceof N)return this._attachTexture(t,r,0,0),r;throw new Error("attach")}_attachWEBGLRenderbuffer(t,r){this.gl.framebufferRenderbuffer(36160,t,36161,r.handle)}_attachTexture(t,r,i,n){let{gl:o,gl2:s}=this.device;switch(o.bindTexture(r.target,r.handle),r.target){case 35866:case 32879:this.device.assertWebGL2(),s?.framebufferTextureLayer(36160,t,r.target,n,i);break;case 34067:let a=Pf(i);o.framebufferTexture2D(36160,t,a,r.handle,n);break;case 3553:o.framebufferTexture2D(36160,t,3553,r.handle,n);break;default:(0,Dt.assert)(!1,"Illegal texture type")}o.bindTexture(r.target,null)}};function Pf(e){return e<34069?e+34069:e}function If(e){switch(e){case 36053:return"success";case 36054:return"Mismatched attachments";case 36055:return"No attachments";case 36057:return"Height/width mismatch";case 36061:return"Unsupported or split attachments";case 36182:return"Samples mismatch";default:return`${e}`}}var wt=class extends Cn.CanvasContext{constructor(t,r){super(r),this.device=void 0,this.presentationSize=void 0,this._framebuffer=null,this.device=t,this.presentationSize=[-1,-1],this._setAutoCreatedCanvasId(`${this.device.id}-canvas`),this.update()}getCurrentFramebuffer(){return this.update(),this._framebuffer=this._framebuffer||new te(this.device,{handle:null}),this._framebuffer}update(){let t=this.getPixelSize();(t[0]!==this.presentationSize[0]||t[1]!==this.presentationSize[1])&&(this.presentationSize=t)}resize(t){if(this.canvas){let i=this.getDevicePixelRatio(t?.useDevicePixels);this.setDevicePixelRatio(i,t);return}let r=this.device.gl.getExtension("STACKGL_resize_drawingbuffer");r&&t&&"width"in t&&"height"in t&&r.resize(t.width,t.height)}commit(){}};var re=T(E(),1),Ff={spector:re.log.get("spector")||re.log.get("inspect")},Cf="https://spectorcdn.babylonjs.com/spector.bundle.js",Mf=1,k=null,Mn=!1;async function Nn(e){if(!globalThis.SPECTOR)try{await(0,re.loadScript)(Cf)}catch(t){re.log.warn(String(t))}}function Bn(e){var t,r;if(e={...Ff,...e},!((t=e)!==null&&t!==void 0&&t.spector)||(!k&&globalThis.SPECTOR&&(re.log.probe(Mf,"SPECTOR found and initialized")(),k=new globalThis.SPECTOR.Spector,globalThis.luma&&(globalThis.luma.spector=k)),!k))return null;if(!Mn){var i,n;Mn=!0,k.spyCanvases(),(i=k)===null||i===void 0||i.onCaptureStarted.add(a=>re.log.info("Spector capture started:",a)()),(n=k)===null||n===void 0||n.onCapture.add(a=>{var f,l,c;re.log.info("Spector capture complete:",a)(),(f=k)===null||f===void 0||f.getResultUI(),(l=k)===null||l===void 0||l.resultView.display(),(c=k)===null||c===void 0||c.resultView.addCapture(a)})}if((r=e)!==null&&r!==void 0&&r.canvas){var o,s;if(typeof e.spector=="string"&&e.spector!==e.canvas.id)return k;(o=k)===null||o===void 0||o.startCapture((s=e)===null||s===void 0?void 0:s.canvas,500),new Promise(a=>setTimeout(a,2e3)).then(a=>{var f;re.log.info("Spector capture stopped after 2 seconds")(),(f=k)===null||f===void 0||f.stopCapture()})}return k}var de=T(E(),1);var Se=function(e){return e[e.DEPTH_BUFFER_BIT=256]="DEPTH_BUFFER_BIT",e[e.STENCIL_BUFFER_BIT=1024]="STENCIL_BUFFER_BIT",e[e.COLOR_BUFFER_BIT=16384]="COLOR_BUFFER_BIT",e[e.POINTS=0]="POINTS",e[e.LINES=1]="LINES",e[e.LINE_LOOP=2]="LINE_LOOP",e[e.LINE_STRIP=3]="LINE_STRIP",e[e.TRIANGLES=4]="TRIANGLES",e[e.TRIANGLE_STRIP=5]="TRIANGLE_STRIP",e[e.TRIANGLE_FAN=6]="TRIANGLE_FAN",e[e.ZERO=0]="ZERO",e[e.ONE=1]="ONE",e[e.SRC_COLOR=768]="SRC_COLOR",e[e.ONE_MINUS_SRC_COLOR=769]="ONE_MINUS_SRC_COLOR",e[e.SRC_ALPHA=770]="SRC_ALPHA",e[e.ONE_MINUS_SRC_ALPHA=771]="ONE_MINUS_SRC_ALPHA",e[e.DST_ALPHA=772]="DST_ALPHA",e[e.ONE_MINUS_DST_ALPHA=773]="ONE_MINUS_DST_ALPHA",e[e.DST_COLOR=774]="DST_COLOR",e[e.ONE_MINUS_DST_COLOR=775]="ONE_MINUS_DST_COLOR",e[e.SRC_ALPHA_SATURATE=776]="SRC_ALPHA_SATURATE",e[e.CONSTANT_COLOR=32769]="CONSTANT_COLOR",e[e.ONE_MINUS_CONSTANT_COLOR=32770]="ONE_MINUS_CONSTANT_COLOR",e[e.CONSTANT_ALPHA=32771]="CONSTANT_ALPHA",e[e.ONE_MINUS_CONSTANT_ALPHA=32772]="ONE_MINUS_CONSTANT_ALPHA",e[e.FUNC_ADD=32774]="FUNC_ADD",e[e.FUNC_SUBTRACT=32778]="FUNC_SUBTRACT",e[e.FUNC_REVERSE_SUBTRACT=32779]="FUNC_REVERSE_SUBTRACT",e[e.BLEND_EQUATION=32777]="BLEND_EQUATION",e[e.BLEND_EQUATION_RGB=32777]="BLEND_EQUATION_RGB",e[e.BLEND_EQUATION_ALPHA=34877]="BLEND_EQUATION_ALPHA",e[e.BLEND_DST_RGB=32968]="BLEND_DST_RGB",e[e.BLEND_SRC_RGB=32969]="BLEND_SRC_RGB",e[e.BLEND_DST_ALPHA=32970]="BLEND_DST_ALPHA",e[e.BLEND_SRC_ALPHA=32971]="BLEND_SRC_ALPHA",e[e.BLEND_COLOR=32773]="BLEND_COLOR",e[e.ARRAY_BUFFER_BINDING=34964]="ARRAY_BUFFER_BINDING",e[e.ELEMENT_ARRAY_BUFFER_BINDING=34965]="ELEMENT_ARRAY_BUFFER_BINDING",e[e.LINE_WIDTH=2849]="LINE_WIDTH",e[e.ALIASED_POINT_SIZE_RANGE=33901]="ALIASED_POINT_SIZE_RANGE",e[e.ALIASED_LINE_WIDTH_RANGE=33902]="ALIASED_LINE_WIDTH_RANGE",e[e.CULL_FACE_MODE=2885]="CULL_FACE_MODE",e[e.FRONT_FACE=2886]="FRONT_FACE",e[e.DEPTH_RANGE=2928]="DEPTH_RANGE",e[e.DEPTH_WRITEMASK=2930]="DEPTH_WRITEMASK",e[e.DEPTH_CLEAR_VALUE=2931]="DEPTH_CLEAR_VALUE",e[e.DEPTH_FUNC=2932]="DEPTH_FUNC",e[e.STENCIL_CLEAR_VALUE=2961]="STENCIL_CLEAR_VALUE",e[e.STENCIL_FUNC=2962]="STENCIL_FUNC",e[e.STENCIL_FAIL=2964]="STENCIL_FAIL",e[e.STENCIL_PASS_DEPTH_FAIL=2965]="STENCIL_PASS_DEPTH_FAIL",e[e.STENCIL_PASS_DEPTH_PASS=2966]="STENCIL_PASS_DEPTH_PASS",e[e.STENCIL_REF=2967]="STENCIL_REF",e[e.STENCIL_VALUE_MASK=2963]="STENCIL_VALUE_MASK",e[e.STENCIL_WRITEMASK=2968]="STENCIL_WRITEMASK",e[e.STENCIL_BACK_FUNC=34816]="STENCIL_BACK_FUNC",e[e.STENCIL_BACK_FAIL=34817]="STENCIL_BACK_FAIL",e[e.STENCIL_BACK_PASS_DEPTH_FAIL=34818]="STENCIL_BACK_PASS_DEPTH_FAIL",e[e.STENCIL_BACK_PASS_DEPTH_PASS=34819]="STENCIL_BACK_PASS_DEPTH_PASS",e[e.STENCIL_BACK_REF=36003]="STENCIL_BACK_REF",e[e.STENCIL_BACK_VALUE_MASK=36004]="STENCIL_BACK_VALUE_MASK",e[e.STENCIL_BACK_WRITEMASK=36005]="STENCIL_BACK_WRITEMASK",e[e.VIEWPORT=2978]="VIEWPORT",e[e.SCISSOR_BOX=3088]="SCISSOR_BOX",e[e.COLOR_CLEAR_VALUE=3106]="COLOR_CLEAR_VALUE",e[e.COLOR_WRITEMASK=3107]="COLOR_WRITEMASK",e[e.UNPACK_ALIGNMENT=3317]="UNPACK_ALIGNMENT",e[e.PACK_ALIGNMENT=3333]="PACK_ALIGNMENT",e[e.MAX_TEXTURE_SIZE=3379]="MAX_TEXTURE_SIZE",e[e.MAX_VIEWPORT_DIMS=3386]="MAX_VIEWPORT_DIMS",e[e.SUBPIXEL_BITS=3408]="SUBPIXEL_BITS",e[e.RED_BITS=3410]="RED_BITS",e[e.GREEN_BITS=3411]="GREEN_BITS",e[e.BLUE_BITS=3412]="BLUE_BITS",e[e.ALPHA_BITS=3413]="ALPHA_BITS",e[e.DEPTH_BITS=3414]="DEPTH_BITS",e[e.STENCIL_BITS=3415]="STENCIL_BITS",e[e.POLYGON_OFFSET_UNITS=10752]="POLYGON_OFFSET_UNITS",e[e.POLYGON_OFFSET_FACTOR=32824]="POLYGON_OFFSET_FACTOR",e[e.TEXTURE_BINDING_2D=32873]="TEXTURE_BINDING_2D",e[e.SAMPLE_BUFFERS=32936]="SAMPLE_BUFFERS",e[e.SAMPLES=32937]="SAMPLES",e[e.SAMPLE_COVERAGE_VALUE=32938]="SAMPLE_COVERAGE_VALUE",e[e.SAMPLE_COVERAGE_INVERT=32939]="SAMPLE_COVERAGE_INVERT",e[e.COMPRESSED_TEXTURE_FORMATS=34467]="COMPRESSED_TEXTURE_FORMATS",e[e.VENDOR=7936]="VENDOR",e[e.RENDERER=7937]="RENDERER",e[e.VERSION=7938]="VERSION",e[e.IMPLEMENTATION_COLOR_READ_TYPE=35738]="IMPLEMENTATION_COLOR_READ_TYPE",e[e.IMPLEMENTATION_COLOR_READ_FORMAT=35739]="IMPLEMENTATION_COLOR_READ_FORMAT",e[e.BROWSER_DEFAULT_WEBGL=37444]="BROWSER_DEFAULT_WEBGL",e[e.STATIC_DRAW=35044]="STATIC_DRAW",e[e.STREAM_DRAW=35040]="STREAM_DRAW",e[e.DYNAMIC_DRAW=35048]="DYNAMIC_DRAW",e[e.ARRAY_BUFFER=34962]="ARRAY_BUFFER",e[e.ELEMENT_ARRAY_BUFFER=34963]="ELEMENT_ARRAY_BUFFER",e[e.BUFFER_SIZE=34660]="BUFFER_SIZE",e[e.BUFFER_USAGE=34661]="BUFFER_USAGE",e[e.CURRENT_VERTEX_ATTRIB=34342]="CURRENT_VERTEX_ATTRIB",e[e.VERTEX_ATTRIB_ARRAY_ENABLED=34338]="VERTEX_ATTRIB_ARRAY_ENABLED",e[e.VERTEX_ATTRIB_ARRAY_SIZE=34339]="VERTEX_ATTRIB_ARRAY_SIZE",e[e.VERTEX_ATTRIB_ARRAY_STRIDE=34340]="VERTEX_ATTRIB_ARRAY_STRIDE",e[e.VERTEX_ATTRIB_ARRAY_TYPE=34341]="VERTEX_ATTRIB_ARRAY_TYPE",e[e.VERTEX_ATTRIB_ARRAY_NORMALIZED=34922]="VERTEX_ATTRIB_ARRAY_NORMALIZED",e[e.VERTEX_ATTRIB_ARRAY_POINTER=34373]="VERTEX_ATTRIB_ARRAY_POINTER",e[e.VERTEX_ATTRIB_ARRAY_BUFFER_BINDING=34975]="VERTEX_ATTRIB_ARRAY_BUFFER_BINDING",e[e.CULL_FACE=2884]="CULL_FACE",e[e.FRONT=1028]="FRONT",e[e.BACK=1029]="BACK",e[e.FRONT_AND_BACK=1032]="FRONT_AND_BACK",e[e.BLEND=3042]="BLEND",e[e.DEPTH_TEST=2929]="DEPTH_TEST",e[e.DITHER=3024]="DITHER",e[e.POLYGON_OFFSET_FILL=32823]="POLYGON_OFFSET_FILL",e[e.SAMPLE_ALPHA_TO_COVERAGE=32926]="SAMPLE_ALPHA_TO_COVERAGE",e[e.SAMPLE_COVERAGE=32928]="SAMPLE_COVERAGE",e[e.SCISSOR_TEST=3089]="SCISSOR_TEST",e[e.STENCIL_TEST=2960]="STENCIL_TEST",e[e.NO_ERROR=0]="NO_ERROR",e[e.INVALID_ENUM=1280]="INVALID_ENUM",e[e.INVALID_VALUE=1281]="INVALID_VALUE",e[e.INVALID_OPERATION=1282]="INVALID_OPERATION",e[e.OUT_OF_MEMORY=1285]="OUT_OF_MEMORY",e[e.CONTEXT_LOST_WEBGL=37442]="CONTEXT_LOST_WEBGL",e[e.CW=2304]="CW",e[e.CCW=2305]="CCW",e[e.DONT_CARE=4352]="DONT_CARE",e[e.FASTEST=4353]="FASTEST",e[e.NICEST=4354]="NICEST",e[e.GENERATE_MIPMAP_HINT=33170]="GENERATE_MIPMAP_HINT",e[e.BYTE=5120]="BYTE",e[e.UNSIGNED_BYTE=5121]="UNSIGNED_BYTE",e[e.SHORT=5122]="SHORT",e[e.UNSIGNED_SHORT=5123]="UNSIGNED_SHORT",e[e.INT=5124]="INT",e[e.UNSIGNED_INT=5125]="UNSIGNED_INT",e[e.FLOAT=5126]="FLOAT",e[e.DOUBLE=5130]="DOUBLE",e[e.DEPTH_COMPONENT=6402]="DEPTH_COMPONENT",e[e.ALPHA=6406]="ALPHA",e[e.RGB=6407]="RGB",e[e.RGBA=6408]="RGBA",e[e.LUMINANCE=6409]="LUMINANCE",e[e.LUMINANCE_ALPHA=6410]="LUMINANCE_ALPHA",e[e.UNSIGNED_SHORT_4_4_4_4=32819]="UNSIGNED_SHORT_4_4_4_4",e[e.UNSIGNED_SHORT_5_5_5_1=32820]="UNSIGNED_SHORT_5_5_5_1",e[e.UNSIGNED_SHORT_5_6_5=33635]="UNSIGNED_SHORT_5_6_5",e[e.FRAGMENT_SHADER=35632]="FRAGMENT_SHADER",e[e.VERTEX_SHADER=35633]="VERTEX_SHADER",e[e.COMPILE_STATUS=35713]="COMPILE_STATUS",e[e.DELETE_STATUS=35712]="DELETE_STATUS",e[e.LINK_STATUS=35714]="LINK_STATUS",e[e.VALIDATE_STATUS=35715]="VALIDATE_STATUS",e[e.ATTACHED_SHADERS=35717]="ATTACHED_SHADERS",e[e.ACTIVE_ATTRIBUTES=35721]="ACTIVE_ATTRIBUTES",e[e.ACTIVE_UNIFORMS=35718]="ACTIVE_UNIFORMS",e[e.MAX_VERTEX_ATTRIBS=34921]="MAX_VERTEX_ATTRIBS",e[e.MAX_VERTEX_UNIFORM_VECTORS=36347]="MAX_VERTEX_UNIFORM_VECTORS",e[e.MAX_VARYING_VECTORS=36348]="MAX_VARYING_VECTORS",e[e.MAX_COMBINED_TEXTURE_IMAGE_UNITS=35661]="MAX_COMBINED_TEXTURE_IMAGE_UNITS",e[e.MAX_VERTEX_TEXTURE_IMAGE_UNITS=35660]="MAX_VERTEX_TEXTURE_IMAGE_UNITS",e[e.MAX_TEXTURE_IMAGE_UNITS=34930]="MAX_TEXTURE_IMAGE_UNITS",e[e.MAX_FRAGMENT_UNIFORM_VECTORS=36349]="MAX_FRAGMENT_UNIFORM_VECTORS",e[e.SHADER_TYPE=35663]="SHADER_TYPE",e[e.SHADING_LANGUAGE_VERSION=35724]="SHADING_LANGUAGE_VERSION",e[e.CURRENT_PROGRAM=35725]="CURRENT_PROGRAM",e[e.NEVER=512]="NEVER",e[e.LESS=513]="LESS",e[e.EQUAL=514]="EQUAL",e[e.LEQUAL=515]="LEQUAL",e[e.GREATER=516]="GREATER",e[e.NOTEQUAL=517]="NOTEQUAL",e[e.GEQUAL=518]="GEQUAL",e[e.ALWAYS=519]="ALWAYS",e[e.KEEP=7680]="KEEP",e[e.REPLACE=7681]="REPLACE",e[e.INCR=7682]="INCR",e[e.DECR=7683]="DECR",e[e.INVERT=5386]="INVERT",e[e.INCR_WRAP=34055]="INCR_WRAP",e[e.DECR_WRAP=34056]="DECR_WRAP",e[e.NEAREST=9728]="NEAREST",e[e.LINEAR=9729]="LINEAR",e[e.NEAREST_MIPMAP_NEAREST=9984]="NEAREST_MIPMAP_NEAREST",e[e.LINEAR_MIPMAP_NEAREST=9985]="LINEAR_MIPMAP_NEAREST",e[e.NEAREST_MIPMAP_LINEAR=9986]="NEAREST_MIPMAP_LINEAR",e[e.LINEAR_MIPMAP_LINEAR=9987]="LINEAR_MIPMAP_LINEAR",e[e.TEXTURE_MAG_FILTER=10240]="TEXTURE_MAG_FILTER",e[e.TEXTURE_MIN_FILTER=10241]="TEXTURE_MIN_FILTER",e[e.TEXTURE_WRAP_S=10242]="TEXTURE_WRAP_S",e[e.TEXTURE_WRAP_T=10243]="TEXTURE_WRAP_T",e[e.TEXTURE_2D=3553]="TEXTURE_2D",e[e.TEXTURE=5890]="TEXTURE",e[e.TEXTURE_CUBE_MAP=34067]="TEXTURE_CUBE_MAP",e[e.TEXTURE_BINDING_CUBE_MAP=34068]="TEXTURE_BINDING_CUBE_MAP",e[e.TEXTURE_CUBE_MAP_POSITIVE_X=34069]="TEXTURE_CUBE_MAP_POSITIVE_X",e[e.TEXTURE_CUBE_MAP_NEGATIVE_X=34070]="TEXTURE_CUBE_MAP_NEGATIVE_X",e[e.TEXTURE_CUBE_MAP_POSITIVE_Y=34071]="TEXTURE_CUBE_MAP_POSITIVE_Y",e[e.TEXTURE_CUBE_MAP_NEGATIVE_Y=34072]="TEXTURE_CUBE_MAP_NEGATIVE_Y",e[e.TEXTURE_CUBE_MAP_POSITIVE_Z=34073]="TEXTURE_CUBE_MAP_POSITIVE_Z",e[e.TEXTURE_CUBE_MAP_NEGATIVE_Z=34074]="TEXTURE_CUBE_MAP_NEGATIVE_Z",e[e.MAX_CUBE_MAP_TEXTURE_SIZE=34076]="MAX_CUBE_MAP_TEXTURE_SIZE",e[e.TEXTURE0=33984]="TEXTURE0",e[e.ACTIVE_TEXTURE=34016]="ACTIVE_TEXTURE",e[e.REPEAT=10497]="REPEAT",e[e.CLAMP_TO_EDGE=33071]="CLAMP_TO_EDGE",e[e.MIRRORED_REPEAT=33648]="MIRRORED_REPEAT",e[e.TEXTURE_WIDTH=4096]="TEXTURE_WIDTH",e[e.TEXTURE_HEIGHT=4097]="TEXTURE_HEIGHT",e[e.FLOAT_VEC2=35664]="FLOAT_VEC2",e[e.FLOAT_VEC3=35665]="FLOAT_VEC3",e[e.FLOAT_VEC4=35666]="FLOAT_VEC4",e[e.INT_VEC2=35667]="INT_VEC2",e[e.INT_VEC3=35668]="INT_VEC3",e[e.INT_VEC4=35669]="INT_VEC4",e[e.BOOL=35670]="BOOL",e[e.BOOL_VEC2=35671]="BOOL_VEC2",e[e.BOOL_VEC3=35672]="BOOL_VEC3",e[e.BOOL_VEC4=35673]="BOOL_VEC4",e[e.FLOAT_MAT2=35674]="FLOAT_MAT2",e[e.FLOAT_MAT3=35675]="FLOAT_MAT3",e[e.FLOAT_MAT4=35676]="FLOAT_MAT4",e[e.SAMPLER_2D=35678]="SAMPLER_2D",e[e.SAMPLER_CUBE=35680]="SAMPLER_CUBE",e[e.LOW_FLOAT=36336]="LOW_FLOAT",e[e.MEDIUM_FLOAT=36337]="MEDIUM_FLOAT",e[e.HIGH_FLOAT=36338]="HIGH_FLOAT",e[e.LOW_INT=36339]="LOW_INT",e[e.MEDIUM_INT=36340]="MEDIUM_INT",e[e.HIGH_INT=36341]="HIGH_INT",e[e.FRAMEBUFFER=36160]="FRAMEBUFFER",e[e.RENDERBUFFER=36161]="RENDERBUFFER",e[e.RGBA4=32854]="RGBA4",e[e.RGB5_A1=32855]="RGB5_A1",e[e.RGB565=36194]="RGB565",e[e.DEPTH_COMPONENT16=33189]="DEPTH_COMPONENT16",e[e.STENCIL_INDEX=6401]="STENCIL_INDEX",e[e.STENCIL_INDEX8=36168]="STENCIL_INDEX8",e[e.DEPTH_STENCIL=34041]="DEPTH_STENCIL",e[e.RENDERBUFFER_WIDTH=36162]="RENDERBUFFER_WIDTH",e[e.RENDERBUFFER_HEIGHT=36163]="RENDERBUFFER_HEIGHT",e[e.RENDERBUFFER_INTERNAL_FORMAT=36164]="RENDERBUFFER_INTERNAL_FORMAT",e[e.RENDERBUFFER_RED_SIZE=36176]="RENDERBUFFER_RED_SIZE",e[e.RENDERBUFFER_GREEN_SIZE=36177]="RENDERBUFFER_GREEN_SIZE",e[e.RENDERBUFFER_BLUE_SIZE=36178]="RENDERBUFFER_BLUE_SIZE",e[e.RENDERBUFFER_ALPHA_SIZE=36179]="RENDERBUFFER_ALPHA_SIZE",e[e.RENDERBUFFER_DEPTH_SIZE=36180]="RENDERBUFFER_DEPTH_SIZE",e[e.RENDERBUFFER_STENCIL_SIZE=36181]="RENDERBUFFER_STENCIL_SIZE",e[e.FRAMEBUFFER_ATTACHMENT_OBJECT_TYPE=36048]="FRAMEBUFFER_ATTACHMENT_OBJECT_TYPE",e[e.FRAMEBUFFER_ATTACHMENT_OBJECT_NAME=36049]="FRAMEBUFFER_ATTACHMENT_OBJECT_NAME",e[e.FRAMEBUFFER_ATTACHMENT_TEXTURE_LEVEL=36050]="FRAMEBUFFER_ATTACHMENT_TEXTURE_LEVEL",e[e.FRAMEBUFFER_ATTACHMENT_TEXTURE_CUBE_MAP_FACE=36051]="FRAMEBUFFER_ATTACHMENT_TEXTURE_CUBE_MAP_FACE",e[e.COLOR_ATTACHMENT0=36064]="COLOR_ATTACHMENT0",e[e.DEPTH_ATTACHMENT=36096]="DEPTH_ATTACHMENT",e[e.STENCIL_ATTACHMENT=36128]="STENCIL_ATTACHMENT",e[e.DEPTH_STENCIL_ATTACHMENT=33306]="DEPTH_STENCIL_ATTACHMENT",e[e.NONE=0]="NONE",e[e.FRAMEBUFFER_COMPLETE=36053]="FRAMEBUFFER_COMPLETE",e[e.FRAMEBUFFER_INCOMPLETE_ATTACHMENT=36054]="FRAMEBUFFER_INCOMPLETE_ATTACHMENT",e[e.FRAMEBUFFER_INCOMPLETE_MISSING_ATTACHMENT=36055]="FRAMEBUFFER_INCOMPLETE_MISSING_ATTACHMENT",e[e.FRAMEBUFFER_INCOMPLETE_DIMENSIONS=36057]="FRAMEBUFFER_INCOMPLETE_DIMENSIONS",e[e.FRAMEBUFFER_UNSUPPORTED=36061]="FRAMEBUFFER_UNSUPPORTED",e[e.FRAMEBUFFER_BINDING=36006]="FRAMEBUFFER_BINDING",e[e.RENDERBUFFER_BINDING=36007]="RENDERBUFFER_BINDING",e[e.READ_FRAMEBUFFER=36008]="READ_FRAMEBUFFER",e[e.DRAW_FRAMEBUFFER=36009]="DRAW_FRAMEBUFFER",e[e.MAX_RENDERBUFFER_SIZE=34024]="MAX_RENDERBUFFER_SIZE",e[e.INVALID_FRAMEBUFFER_OPERATION=1286]="INVALID_FRAMEBUFFER_OPERATION",e[e.UNPACK_FLIP_Y_WEBGL=37440]="UNPACK_FLIP_Y_WEBGL",e[e.UNPACK_PREMULTIPLY_ALPHA_WEBGL=37441]="UNPACK_PREMULTIPLY_ALPHA_WEBGL",e[e.UNPACK_COLORSPACE_CONVERSION_WEBGL=37443]="UNPACK_COLORSPACE_CONVERSION_WEBGL",e[e.READ_BUFFER=3074]="READ_BUFFER",e[e.UNPACK_ROW_LENGTH=3314]="UNPACK_ROW_LENGTH",e[e.UNPACK_SKIP_ROWS=3315]="UNPACK_SKIP_ROWS",e[e.UNPACK_SKIP_PIXELS=3316]="UNPACK_SKIP_PIXELS",e[e.PACK_ROW_LENGTH=3330]="PACK_ROW_LENGTH",e[e.PACK_SKIP_ROWS=3331]="PACK_SKIP_ROWS",e[e.PACK_SKIP_PIXELS=3332]="PACK_SKIP_PIXELS",e[e.TEXTURE_BINDING_3D=32874]="TEXTURE_BINDING_3D",e[e.UNPACK_SKIP_IMAGES=32877]="UNPACK_SKIP_IMAGES",e[e.UNPACK_IMAGE_HEIGHT=32878]="UNPACK_IMAGE_HEIGHT",e[e.MAX_3D_TEXTURE_SIZE=32883]="MAX_3D_TEXTURE_SIZE",e[e.MAX_ELEMENTS_VERTICES=33e3]="MAX_ELEMENTS_VERTICES",e[e.MAX_ELEMENTS_INDICES=33001]="MAX_ELEMENTS_INDICES",e[e.MAX_TEXTURE_LOD_BIAS=34045]="MAX_TEXTURE_LOD_BIAS",e[e.MAX_FRAGMENT_UNIFORM_COMPONENTS=35657]="MAX_FRAGMENT_UNIFORM_COMPONENTS",e[e.MAX_VERTEX_UNIFORM_COMPONENTS=35658]="MAX_VERTEX_UNIFORM_COMPONENTS",e[e.MAX_ARRAY_TEXTURE_LAYERS=35071]="MAX_ARRAY_TEXTURE_LAYERS",e[e.MIN_PROGRAM_TEXEL_OFFSET=35076]="MIN_PROGRAM_TEXEL_OFFSET",e[e.MAX_PROGRAM_TEXEL_OFFSET=35077]="MAX_PROGRAM_TEXEL_OFFSET",e[e.MAX_VARYING_COMPONENTS=35659]="MAX_VARYING_COMPONENTS",e[e.FRAGMENT_SHADER_DERIVATIVE_HINT=35723]="FRAGMENT_SHADER_DERIVATIVE_HINT",e[e.RASTERIZER_DISCARD=35977]="RASTERIZER_DISCARD",e[e.VERTEX_ARRAY_BINDING=34229]="VERTEX_ARRAY_BINDING",e[e.MAX_VERTEX_OUTPUT_COMPONENTS=37154]="MAX_VERTEX_OUTPUT_COMPONENTS",e[e.MAX_FRAGMENT_INPUT_COMPONENTS=37157]="MAX_FRAGMENT_INPUT_COMPONENTS",e[e.MAX_SERVER_WAIT_TIMEOUT=37137]="MAX_SERVER_WAIT_TIMEOUT",e[e.MAX_ELEMENT_INDEX=36203]="MAX_ELEMENT_INDEX",e[e.RED=6403]="RED",e[e.RGB8=32849]="RGB8",e[e.RGBA8=32856]="RGBA8",e[e.RGB10_A2=32857]="RGB10_A2",e[e.TEXTURE_3D=32879]="TEXTURE_3D",e[e.TEXTURE_WRAP_R=32882]="TEXTURE_WRAP_R",e[e.TEXTURE_MIN_LOD=33082]="TEXTURE_MIN_LOD",e[e.TEXTURE_MAX_LOD=33083]="TEXTURE_MAX_LOD",e[e.TEXTURE_BASE_LEVEL=33084]="TEXTURE_BASE_LEVEL",e[e.TEXTURE_MAX_LEVEL=33085]="TEXTURE_MAX_LEVEL",e[e.TEXTURE_COMPARE_MODE=34892]="TEXTURE_COMPARE_MODE",e[e.TEXTURE_COMPARE_FUNC=34893]="TEXTURE_COMPARE_FUNC",e[e.SRGB=35904]="SRGB",e[e.SRGB8=35905]="SRGB8",e[e.SRGB8_ALPHA8=35907]="SRGB8_ALPHA8",e[e.COMPARE_REF_TO_TEXTURE=34894]="COMPARE_REF_TO_TEXTURE",e[e.RGBA32F=34836]="RGBA32F",e[e.RGB32F=34837]="RGB32F",e[e.RGBA16F=34842]="RGBA16F",e[e.RGB16F=34843]="RGB16F",e[e.TEXTURE_2D_ARRAY=35866]="TEXTURE_2D_ARRAY",e[e.TEXTURE_BINDING_2D_ARRAY=35869]="TEXTURE_BINDING_2D_ARRAY",e[e.R11F_G11F_B10F=35898]="R11F_G11F_B10F",e[e.RGB9_E5=35901]="RGB9_E5",e[e.RGBA32UI=36208]="RGBA32UI",e[e.RGB32UI=36209]="RGB32UI",e[e.RGBA16UI=36214]="RGBA16UI",e[e.RGB16UI=36215]="RGB16UI",e[e.RGBA8UI=36220]="RGBA8UI",e[e.RGB8UI=36221]="RGB8UI",e[e.RGBA32I=36226]="RGBA32I",e[e.RGB32I=36227]="RGB32I",e[e.RGBA16I=36232]="RGBA16I",e[e.RGB16I=36233]="RGB16I",e[e.RGBA8I=36238]="RGBA8I",e[e.RGB8I=36239]="RGB8I",e[e.RED_INTEGER=36244]="RED_INTEGER",e[e.RGB_INTEGER=36248]="RGB_INTEGER",e[e.RGBA_INTEGER=36249]="RGBA_INTEGER",e[e.R8=33321]="R8",e[e.RG8=33323]="RG8",e[e.R16F=33325]="R16F",e[e.R32F=33326]="R32F",e[e.RG16F=33327]="RG16F",e[e.RG32F=33328]="RG32F",e[e.R8I=33329]="R8I",e[e.R8UI=33330]="R8UI",e[e.R16I=33331]="R16I",e[e.R16UI=33332]="R16UI",e[e.R32I=33333]="R32I",e[e.R32UI=33334]="R32UI",e[e.RG8I=33335]="RG8I",e[e.RG8UI=33336]="RG8UI",e[e.RG16I=33337]="RG16I",e[e.RG16UI=33338]="RG16UI",e[e.RG32I=33339]="RG32I",e[e.RG32UI=33340]="RG32UI",e[e.R8_SNORM=36756]="R8_SNORM",e[e.RG8_SNORM=36757]="RG8_SNORM",e[e.RGB8_SNORM=36758]="RGB8_SNORM",e[e.RGBA8_SNORM=36759]="RGBA8_SNORM",e[e.RGB10_A2UI=36975]="RGB10_A2UI",e[e.TEXTURE_IMMUTABLE_FORMAT=37167]="TEXTURE_IMMUTABLE_FORMAT",e[e.TEXTURE_IMMUTABLE_LEVELS=33503]="TEXTURE_IMMUTABLE_LEVELS",e[e.UNSIGNED_INT_2_10_10_10_REV=33640]="UNSIGNED_INT_2_10_10_10_REV",e[e.UNSIGNED_INT_10F_11F_11F_REV=35899]="UNSIGNED_INT_10F_11F_11F_REV",e[e.UNSIGNED_INT_5_9_9_9_REV=35902]="UNSIGNED_INT_5_9_9_9_REV",e[e.FLOAT_32_UNSIGNED_INT_24_8_REV=36269]="FLOAT_32_UNSIGNED_INT_24_8_REV",e[e.UNSIGNED_INT_24_8=34042]="UNSIGNED_INT_24_8",e[e.HALF_FLOAT=5131]="HALF_FLOAT",e[e.RG=33319]="RG",e[e.RG_INTEGER=33320]="RG_INTEGER",e[e.INT_2_10_10_10_REV=36255]="INT_2_10_10_10_REV",e[e.CURRENT_QUERY=34917]="CURRENT_QUERY",e[e.QUERY_RESULT=34918]="QUERY_RESULT",e[e.QUERY_RESULT_AVAILABLE=34919]="QUERY_RESULT_AVAILABLE",e[e.ANY_SAMPLES_PASSED=35887]="ANY_SAMPLES_PASSED",e[e.ANY_SAMPLES_PASSED_CONSERVATIVE=36202]="ANY_SAMPLES_PASSED_CONSERVATIVE",e[e.MAX_DRAW_BUFFERS=34852]="MAX_DRAW_BUFFERS",e[e.DRAW_BUFFER0=34853]="DRAW_BUFFER0",e[e.DRAW_BUFFER1=34854]="DRAW_BUFFER1",e[e.DRAW_BUFFER2=34855]="DRAW_BUFFER2",e[e.DRAW_BUFFER3=34856]="DRAW_BUFFER3",e[e.DRAW_BUFFER4=34857]="DRAW_BUFFER4",e[e.DRAW_BUFFER5=34858]="DRAW_BUFFER5",e[e.DRAW_BUFFER6=34859]="DRAW_BUFFER6",e[e.DRAW_BUFFER7=34860]="DRAW_BUFFER7",e[e.DRAW_BUFFER8=34861]="DRAW_BUFFER8",e[e.DRAW_BUFFER9=34862]="DRAW_BUFFER9",e[e.DRAW_BUFFER10=34863]="DRAW_BUFFER10",e[e.DRAW_BUFFER11=34864]="DRAW_BUFFER11",e[e.DRAW_BUFFER12=34865]="DRAW_BUFFER12",e[e.DRAW_BUFFER13=34866]="DRAW_BUFFER13",e[e.DRAW_BUFFER14=34867]="DRAW_BUFFER14",e[e.DRAW_BUFFER15=34868]="DRAW_BUFFER15",e[e.MAX_COLOR_ATTACHMENTS=36063]="MAX_COLOR_ATTACHMENTS",e[e.COLOR_ATTACHMENT1=36065]="COLOR_ATTACHMENT1",e[e.COLOR_ATTACHMENT2=36066]="COLOR_ATTACHMENT2",e[e.COLOR_ATTACHMENT3=36067]="COLOR_ATTACHMENT3",e[e.COLOR_ATTACHMENT4=36068]="COLOR_ATTACHMENT4",e[e.COLOR_ATTACHMENT5=36069]="COLOR_ATTACHMENT5",e[e.COLOR_ATTACHMENT6=36070]="COLOR_ATTACHMENT6",e[e.COLOR_ATTACHMENT7=36071]="COLOR_ATTACHMENT7",e[e.COLOR_ATTACHMENT8=36072]="COLOR_ATTACHMENT8",e[e.COLOR_ATTACHMENT9=36073]="COLOR_ATTACHMENT9",e[e.COLOR_ATTACHMENT10=36074]="COLOR_ATTACHMENT10",e[e.COLOR_ATTACHMENT11=36075]="COLOR_ATTACHMENT11",e[e.COLOR_ATTACHMENT12=36076]="COLOR_ATTACHMENT12",e[e.COLOR_ATTACHMENT13=36077]="COLOR_ATTACHMENT13",e[e.COLOR_ATTACHMENT14=36078]="COLOR_ATTACHMENT14",e[e.COLOR_ATTACHMENT15=36079]="COLOR_ATTACHMENT15",e[e.SAMPLER_3D=35679]="SAMPLER_3D",e[e.SAMPLER_2D_SHADOW=35682]="SAMPLER_2D_SHADOW",e[e.SAMPLER_2D_ARRAY=36289]="SAMPLER_2D_ARRAY",e[e.SAMPLER_2D_ARRAY_SHADOW=36292]="SAMPLER_2D_ARRAY_SHADOW",e[e.SAMPLER_CUBE_SHADOW=36293]="SAMPLER_CUBE_SHADOW",e[e.INT_SAMPLER_2D=36298]="INT_SAMPLER_2D",e[e.INT_SAMPLER_3D=36299]="INT_SAMPLER_3D",e[e.INT_SAMPLER_CUBE=36300]="INT_SAMPLER_CUBE",e[e.INT_SAMPLER_2D_ARRAY=36303]="INT_SAMPLER_2D_ARRAY",e[e.UNSIGNED_INT_SAMPLER_2D=36306]="UNSIGNED_INT_SAMPLER_2D",e[e.UNSIGNED_INT_SAMPLER_3D=36307]="UNSIGNED_INT_SAMPLER_3D",e[e.UNSIGNED_INT_SAMPLER_CUBE=36308]="UNSIGNED_INT_SAMPLER_CUBE",e[e.UNSIGNED_INT_SAMPLER_2D_ARRAY=36311]="UNSIGNED_INT_SAMPLER_2D_ARRAY",e[e.MAX_SAMPLES=36183]="MAX_SAMPLES",e[e.SAMPLER_BINDING=35097]="SAMPLER_BINDING",e[e.PIXEL_PACK_BUFFER=35051]="PIXEL_PACK_BUFFER",e[e.PIXEL_UNPACK_BUFFER=35052]="PIXEL_UNPACK_BUFFER",e[e.PIXEL_PACK_BUFFER_BINDING=35053]="PIXEL_PACK_BUFFER_BINDING",e[e.PIXEL_UNPACK_BUFFER_BINDING=35055]="PIXEL_UNPACK_BUFFER_BINDING",e[e.COPY_READ_BUFFER=36662]="COPY_READ_BUFFER",e[e.COPY_WRITE_BUFFER=36663]="COPY_WRITE_BUFFER",e[e.COPY_READ_BUFFER_BINDING=36662]="COPY_READ_BUFFER_BINDING",e[e.COPY_WRITE_BUFFER_BINDING=36663]="COPY_WRITE_BUFFER_BINDING",e[e.FLOAT_MAT2x3=35685]="FLOAT_MAT2x3",e[e.FLOAT_MAT2x4=35686]="FLOAT_MAT2x4",e[e.FLOAT_MAT3x2=35687]="FLOAT_MAT3x2",e[e.FLOAT_MAT3x4=35688]="FLOAT_MAT3x4",e[e.FLOAT_MAT4x2=35689]="FLOAT_MAT4x2",e[e.FLOAT_MAT4x3=35690]="FLOAT_MAT4x3",e[e.UNSIGNED_INT_VEC2=36294]="UNSIGNED_INT_VEC2",e[e.UNSIGNED_INT_VEC3=36295]="UNSIGNED_INT_VEC3",e[e.UNSIGNED_INT_VEC4=36296]="UNSIGNED_INT_VEC4",e[e.UNSIGNED_NORMALIZED=35863]="UNSIGNED_NORMALIZED",e[e.SIGNED_NORMALIZED=36764]="SIGNED_NORMALIZED",e[e.VERTEX_ATTRIB_ARRAY_INTEGER=35069]="VERTEX_ATTRIB_ARRAY_INTEGER",e[e.VERTEX_ATTRIB_ARRAY_DIVISOR=35070]="VERTEX_ATTRIB_ARRAY_DIVISOR",e[e.TRANSFORM_FEEDBACK_BUFFER_MODE=35967]="TRANSFORM_FEEDBACK_BUFFER_MODE",e[e.MAX_TRANSFORM_FEEDBACK_SEPARATE_COMPONENTS=35968]="MAX_TRANSFORM_FEEDBACK_SEPARATE_COMPONENTS",e[e.TRANSFORM_FEEDBACK_VARYINGS=35971]="TRANSFORM_FEEDBACK_VARYINGS",e[e.TRANSFORM_FEEDBACK_BUFFER_START=35972]="TRANSFORM_FEEDBACK_BUFFER_START",e[e.TRANSFORM_FEEDBACK_BUFFER_SIZE=35973]="TRANSFORM_FEEDBACK_BUFFER_SIZE",e[e.TRANSFORM_FEEDBACK_PRIMITIVES_WRITTEN=35976]="TRANSFORM_FEEDBACK_PRIMITIVES_WRITTEN",e[e.MAX_TRANSFORM_FEEDBACK_INTERLEAVED_COMPONENTS=35978]="MAX_TRANSFORM_FEEDBACK_INTERLEAVED_COMPONENTS",e[e.MAX_TRANSFORM_FEEDBACK_SEPARATE_ATTRIBS=35979]="MAX_TRANSFORM_FEEDBACK_SEPARATE_ATTRIBS",e[e.INTERLEAVED_ATTRIBS=35980]="INTERLEAVED_ATTRIBS",e[e.SEPARATE_ATTRIBS=35981]="SEPARATE_ATTRIBS",e[e.TRANSFORM_FEEDBACK_BUFFER=35982]="TRANSFORM_FEEDBACK_BUFFER",e[e.TRANSFORM_FEEDBACK_BUFFER_BINDING=35983]="TRANSFORM_FEEDBACK_BUFFER_BINDING",e[e.TRANSFORM_FEEDBACK=36386]="TRANSFORM_FEEDBACK",e[e.TRANSFORM_FEEDBACK_PAUSED=36387]="TRANSFORM_FEEDBACK_PAUSED",e[e.TRANSFORM_FEEDBACK_ACTIVE=36388]="TRANSFORM_FEEDBACK_ACTIVE",e[e.TRANSFORM_FEEDBACK_BINDING=36389]="TRANSFORM_FEEDBACK_BINDING",e[e.FRAMEBUFFER_ATTACHMENT_COLOR_ENCODING=33296]="FRAMEBUFFER_ATTACHMENT_COLOR_ENCODING",e[e.FRAMEBUFFER_ATTACHMENT_COMPONENT_TYPE=33297]="FRAMEBUFFER_ATTACHMENT_COMPONENT_TYPE",e[e.FRAMEBUFFER_ATTACHMENT_RED_SIZE=33298]="FRAMEBUFFER_ATTACHMENT_RED_SIZE",e[e.FRAMEBUFFER_ATTACHMENT_GREEN_SIZE=33299]="FRAMEBUFFER_ATTACHMENT_GREEN_SIZE",e[e.FRAMEBUFFER_ATTACHMENT_BLUE_SIZE=33300]="FRAMEBUFFER_ATTACHMENT_BLUE_SIZE",e[e.FRAMEBUFFER_ATTACHMENT_ALPHA_SIZE=33301]="FRAMEBUFFER_ATTACHMENT_ALPHA_SIZE",e[e.FRAMEBUFFER_ATTACHMENT_DEPTH_SIZE=33302]="FRAMEBUFFER_ATTACHMENT_DEPTH_SIZE",e[e.FRAMEBUFFER_ATTACHMENT_STENCIL_SIZE=33303]="FRAMEBUFFER_ATTACHMENT_STENCIL_SIZE",e[e.FRAMEBUFFER_DEFAULT=33304]="FRAMEBUFFER_DEFAULT",e[e.DEPTH24_STENCIL8=35056]="DEPTH24_STENCIL8",e[e.DRAW_FRAMEBUFFER_BINDING=36006]="DRAW_FRAMEBUFFER_BINDING",e[e.READ_FRAMEBUFFER_BINDING=36010]="READ_FRAMEBUFFER_BINDING",e[e.RENDERBUFFER_SAMPLES=36011]="RENDERBUFFER_SAMPLES",e[e.FRAMEBUFFER_ATTACHMENT_TEXTURE_LAYER=36052]="FRAMEBUFFER_ATTACHMENT_TEXTURE_LAYER",e[e.FRAMEBUFFER_INCOMPLETE_MULTISAMPLE=36182]="FRAMEBUFFER_INCOMPLETE_MULTISAMPLE",e[e.UNIFORM_BUFFER=35345]="UNIFORM_BUFFER",e[e.UNIFORM_BUFFER_BINDING=35368]="UNIFORM_BUFFER_BINDING",e[e.UNIFORM_BUFFER_START=35369]="UNIFORM_BUFFER_START",e[e.UNIFORM_BUFFER_SIZE=35370]="UNIFORM_BUFFER_SIZE",e[e.MAX_VERTEX_UNIFORM_BLOCKS=35371]="MAX_VERTEX_UNIFORM_BLOCKS",e[e.MAX_FRAGMENT_UNIFORM_BLOCKS=35373]="MAX_FRAGMENT_UNIFORM_BLOCKS",e[e.MAX_COMBINED_UNIFORM_BLOCKS=35374]="MAX_COMBINED_UNIFORM_BLOCKS",e[e.MAX_UNIFORM_BUFFER_BINDINGS=35375]="MAX_UNIFORM_BUFFER_BINDINGS",e[e.MAX_UNIFORM_BLOCK_SIZE=35376]="MAX_UNIFORM_BLOCK_SIZE",e[e.MAX_COMBINED_VERTEX_UNIFORM_COMPONENTS=35377]="MAX_COMBINED_VERTEX_UNIFORM_COMPONENTS",e[e.MAX_COMBINED_FRAGMENT_UNIFORM_COMPONENTS=35379]="MAX_COMBINED_FRAGMENT_UNIFORM_COMPONENTS",e[e.UNIFORM_BUFFER_OFFSET_ALIGNMENT=35380]="UNIFORM_BUFFER_OFFSET_ALIGNMENT",e[e.ACTIVE_UNIFORM_BLOCKS=35382]="ACTIVE_UNIFORM_BLOCKS",e[e.UNIFORM_TYPE=35383]="UNIFORM_TYPE",e[e.UNIFORM_SIZE=35384]="UNIFORM_SIZE",e[e.UNIFORM_BLOCK_INDEX=35386]="UNIFORM_BLOCK_INDEX",e[e.UNIFORM_OFFSET=35387]="UNIFORM_OFFSET",e[e.UNIFORM_ARRAY_STRIDE=35388]="UNIFORM_ARRAY_STRIDE",e[e.UNIFORM_MATRIX_STRIDE=35389]="UNIFORM_MATRIX_STRIDE",e[e.UNIFORM_IS_ROW_MAJOR=35390]="UNIFORM_IS_ROW_MAJOR",e[e.UNIFORM_BLOCK_BINDING=35391]="UNIFORM_BLOCK_BINDING",e[e.UNIFORM_BLOCK_DATA_SIZE=35392]="UNIFORM_BLOCK_DATA_SIZE",e[e.UNIFORM_BLOCK_ACTIVE_UNIFORMS=35394]="UNIFORM_BLOCK_ACTIVE_UNIFORMS",e[e.UNIFORM_BLOCK_ACTIVE_UNIFORM_INDICES=35395]="UNIFORM_BLOCK_ACTIVE_UNIFORM_INDICES",e[e.UNIFORM_BLOCK_REFERENCED_BY_VERTEX_SHADER=35396]="UNIFORM_BLOCK_REFERENCED_BY_VERTEX_SHADER",e[e.UNIFORM_BLOCK_REFERENCED_BY_FRAGMENT_SHADER=35398]="UNIFORM_BLOCK_REFERENCED_BY_FRAGMENT_SHADER",e[e.OBJECT_TYPE=37138]="OBJECT_TYPE",e[e.SYNC_CONDITION=37139]="SYNC_CONDITION",e[e.SYNC_STATUS=37140]="SYNC_STATUS",e[e.SYNC_FLAGS=37141]="SYNC_FLAGS",e[e.SYNC_FENCE=37142]="SYNC_FENCE",e[e.SYNC_GPU_COMMANDS_COMPLETE=37143]="SYNC_GPU_COMMANDS_COMPLETE",e[e.UNSIGNALED=37144]="UNSIGNALED",e[e.SIGNALED=37145]="SIGNALED",e[e.ALREADY_SIGNALED=37146]="ALREADY_SIGNALED",e[e.TIMEOUT_EXPIRED=37147]="TIMEOUT_EXPIRED",e[e.CONDITION_SATISFIED=37148]="CONDITION_SATISFIED",e[e.WAIT_FAILED=37149]="WAIT_FAILED",e[e.SYNC_FLUSH_COMMANDS_BIT=1]="SYNC_FLUSH_COMMANDS_BIT",e[e.COLOR=6144]="COLOR",e[e.DEPTH=6145]="DEPTH",e[e.STENCIL=6146]="STENCIL",e[e.MIN=32775]="MIN",e[e.MAX=32776]="MAX",e[e.DEPTH_COMPONENT24=33190]="DEPTH_COMPONENT24",e[e.STREAM_READ=35041]="STREAM_READ",e[e.STREAM_COPY=35042]="STREAM_COPY",e[e.STATIC_READ=35045]="STATIC_READ",e[e.STATIC_COPY=35046]="STATIC_COPY",e[e.DYNAMIC_READ=35049]="DYNAMIC_READ",e[e.DYNAMIC_COPY=35050]="DYNAMIC_COPY",e[e.DEPTH_COMPONENT32F=36012]="DEPTH_COMPONENT32F",e[e.DEPTH32F_STENCIL8=36013]="DEPTH32F_STENCIL8",e[e.INVALID_INDEX=4294967295]="INVALID_INDEX",e[e.TIMEOUT_IGNORED=-1]="TIMEOUT_IGNORED",e[e.MAX_CLIENT_WAIT_TIMEOUT_WEBGL=37447]="MAX_CLIENT_WAIT_TIMEOUT_WEBGL",e[e.VERTEX_ATTRIB_ARRAY_DIVISOR_ANGLE=35070]="VERTEX_ATTRIB_ARRAY_DIVISOR_ANGLE",e[e.UNMASKED_VENDOR_WEBGL=37445]="UNMASKED_VENDOR_WEBGL",e[e.UNMASKED_RENDERER_WEBGL=37446]="UNMASKED_RENDERER_WEBGL",e[e.MAX_TEXTURE_MAX_ANISOTROPY_EXT=34047]="MAX_TEXTURE_MAX_ANISOTROPY_EXT",e[e.TEXTURE_MAX_ANISOTROPY_EXT=34046]="TEXTURE_MAX_ANISOTROPY_EXT",e[e.SRGB_EXT=35904]="SRGB_EXT",e[e.SRGB_ALPHA_EXT=35906]="SRGB_ALPHA_EXT",e[e.SRGB8_ALPHA8_EXT=35907]="SRGB8_ALPHA8_EXT",e[e.FRAMEBUFFER_ATTACHMENT_COLOR_ENCODING_EXT=33296]="FRAMEBUFFER_ATTACHMENT_COLOR_ENCODING_EXT",e[e.R16_EXT=33322]="R16_EXT",e[e.RG16_EXT=33324]="RG16_EXT",e[e.RGB16_EXT=32852]="RGB16_EXT",e[e.RGBA16_EXT=32859]="RGBA16_EXT",e[e.R16_SNORM_EXT=36760]="R16_SNORM_EXT",e[e.RG16_SNORM_EXT=36761]="RG16_SNORM_EXT",e[e.RGB16_SNORM_EXT=36762]="RGB16_SNORM_EXT",e[e.RGBA16_SNORM_EXT=36763]="RGBA16_SNORM_EXT",e[e.COMPRESSED_RGB_S3TC_DXT1_EXT=33776]="COMPRESSED_RGB_S3TC_DXT1_EXT",e[e.COMPRESSED_RGBA_S3TC_DXT1_EXT=33777]="COMPRESSED_RGBA_S3TC_DXT1_EXT",e[e.COMPRESSED_RGBA_S3TC_DXT3_EXT=33778]="COMPRESSED_RGBA_S3TC_DXT3_EXT",e[e.COMPRESSED_RGBA_S3TC_DXT5_EXT=33779]="COMPRESSED_RGBA_S3TC_DXT5_EXT",e[e.COMPRESSED_SRGB_S3TC_DXT1_EXT=35916]="COMPRESSED_SRGB_S3TC_DXT1_EXT",e[e.COMPRESSED_SRGB_ALPHA_S3TC_DXT1_EXT=35917]="COMPRESSED_SRGB_ALPHA_S3TC_DXT1_EXT",e[e.COMPRESSED_SRGB_ALPHA_S3TC_DXT3_EXT=35918]="COMPRESSED_SRGB_ALPHA_S3TC_DXT3_EXT",e[e.COMPRESSED_SRGB_ALPHA_S3TC_DXT5_EXT=35919]="COMPRESSED_SRGB_ALPHA_S3TC_DXT5_EXT",e[e.COMPRESSED_RED_RGTC1_EXT=36283]="COMPRESSED_RED_RGTC1_EXT",e[e.COMPRESSED_SIGNED_RED_RGTC1_EXT=36284]="COMPRESSED_SIGNED_RED_RGTC1_EXT",e[e.COMPRESSED_RED_GREEN_RGTC2_EXT=36285]="COMPRESSED_RED_GREEN_RGTC2_EXT",e[e.COMPRESSED_SIGNED_RED_GREEN_RGTC2_EXT=36286]="COMPRESSED_SIGNED_RED_GREEN_RGTC2_EXT",e[e.COMPRESSED_RGBA_BPTC_UNORM_EXT=36492]="COMPRESSED_RGBA_BPTC_UNORM_EXT",e[e.COMPRESSED_SRGB_ALPHA_BPTC_UNORM_EXT=36493]="COMPRESSED_SRGB_ALPHA_BPTC_UNORM_EXT",e[e.COMPRESSED_RGB_BPTC_SIGNED_FLOAT_EXT=36494]="COMPRESSED_RGB_BPTC_SIGNED_FLOAT_EXT",e[e.COMPRESSED_RGB_BPTC_UNSIGNED_FLOAT_EXT=36495]="COMPRESSED_RGB_BPTC_UNSIGNED_FLOAT_EXT",e[e.COMPRESSED_R11_EAC=37488]="COMPRESSED_R11_EAC",e[e.COMPRESSED_SIGNED_R11_EAC=37489]="COMPRESSED_SIGNED_R11_EAC",e[e.COMPRESSED_RG11_EAC=37490]="COMPRESSED_RG11_EAC",e[e.COMPRESSED_SIGNED_RG11_EAC=37491]="COMPRESSED_SIGNED_RG11_EAC",e[e.COMPRESSED_RGB8_ETC2=37492]="COMPRESSED_RGB8_ETC2",e[e.COMPRESSED_RGBA8_ETC2_EAC=37493]="COMPRESSED_RGBA8_ETC2_EAC",e[e.COMPRESSED_SRGB8_ETC2=37494]="COMPRESSED_SRGB8_ETC2",e[e.COMPRESSED_SRGB8_ALPHA8_ETC2_EAC=37495]="COMPRESSED_SRGB8_ALPHA8_ETC2_EAC",e[e.COMPRESSED_RGB8_PUNCHTHROUGH_ALPHA1_ETC2=37496]="COMPRESSED_RGB8_PUNCHTHROUGH_ALPHA1_ETC2",e[e.COMPRESSED_SRGB8_PUNCHTHROUGH_ALPHA1_ETC2=37497]="COMPRESSED_SRGB8_PUNCHTHROUGH_ALPHA1_ETC2",e[e.COMPRESSED_RGB_PVRTC_4BPPV1_IMG=35840]="COMPRESSED_RGB_PVRTC_4BPPV1_IMG",e[e.COMPRESSED_RGBA_PVRTC_4BPPV1_IMG=35842]="COMPRESSED_RGBA_PVRTC_4BPPV1_IMG",e[e.COMPRESSED_RGB_PVRTC_2BPPV1_IMG=35841]="COMPRESSED_RGB_PVRTC_2BPPV1_IMG",e[e.COMPRESSED_RGBA_PVRTC_2BPPV1_IMG=35843]="COMPRESSED_RGBA_PVRTC_2BPPV1_IMG",e[e.COMPRESSED_RGB_ETC1_WEBGL=36196]="COMPRESSED_RGB_ETC1_WEBGL",e[e.COMPRESSED_RGB_ATC_WEBGL=35986]="COMPRESSED_RGB_ATC_WEBGL",e[e.COMPRESSED_RGBA_ATC_EXPLICIT_ALPHA_WEBGL=35986]="COMPRESSED_RGBA_ATC_EXPLICIT_ALPHA_WEBGL",e[e.COMPRESSED_RGBA_ATC_INTERPOLATED_ALPHA_WEBGL=34798]="COMPRESSED_RGBA_ATC_INTERPOLATED_ALPHA_WEBGL",e[e.COMPRESSED_RGBA_ASTC_4x4_KHR=37808]="COMPRESSED_RGBA_ASTC_4x4_KHR",e[e.COMPRESSED_RGBA_ASTC_5x4_KHR=37809]="COMPRESSED_RGBA_ASTC_5x4_KHR",e[e.COMPRESSED_RGBA_ASTC_5x5_KHR=37810]="COMPRESSED_RGBA_ASTC_5x5_KHR",e[e.COMPRESSED_RGBA_ASTC_6x5_KHR=37811]="COMPRESSED_RGBA_ASTC_6x5_KHR",e[e.COMPRESSED_RGBA_ASTC_6x6_KHR=37812]="COMPRESSED_RGBA_ASTC_6x6_KHR",e[e.COMPRESSED_RGBA_ASTC_8x5_KHR=37813]="COMPRESSED_RGBA_ASTC_8x5_KHR",e[e.COMPRESSED_RGBA_ASTC_8x6_KHR=37814]="COMPRESSED_RGBA_ASTC_8x6_KHR",e[e.COMPRESSED_RGBA_ASTC_8x8_KHR=37815]="COMPRESSED_RGBA_ASTC_8x8_KHR",e[e.COMPRESSED_RGBA_ASTC_10x5_KHR=37816]="COMPRESSED_RGBA_ASTC_10x5_KHR",e[e.COMPRESSED_RGBA_ASTC_10x6_KHR=37817]="COMPRESSED_RGBA_ASTC_10x6_KHR",e[e.COMPRESSED_RGBA_ASTC_10x8_KHR=37818]="COMPRESSED_RGBA_ASTC_10x8_KHR",e[e.COMPRESSED_RGBA_ASTC_10x10_KHR=37819]="COMPRESSED_RGBA_ASTC_10x10_KHR",e[e.COMPRESSED_RGBA_ASTC_12x10_KHR=37820]="COMPRESSED_RGBA_ASTC_12x10_KHR",e[e.COMPRESSED_RGBA_ASTC_12x12_KHR=37821]="COMPRESSED_RGBA_ASTC_12x12_KHR",e[e.COMPRESSED_SRGB8_ALPHA8_ASTC_4x4_KHR=37840]="COMPRESSED_SRGB8_ALPHA8_ASTC_4x4_KHR",e[e.COMPRESSED_SRGB8_ALPHA8_ASTC_5x4_KHR=37841]="COMPRESSED_SRGB8_ALPHA8_ASTC_5x4_KHR",e[e.COMPRESSED_SRGB8_ALPHA8_ASTC_5x5_KHR=37842]="COMPRESSED_SRGB8_ALPHA8_ASTC_5x5_KHR",e[e.COMPRESSED_SRGB8_ALPHA8_ASTC_6x5_KHR=37843]="COMPRESSED_SRGB8_ALPHA8_ASTC_6x5_KHR",e[e.COMPRESSED_SRGB8_ALPHA8_ASTC_6x6_KHR=37844]="COMPRESSED_SRGB8_ALPHA8_ASTC_6x6_KHR",e[e.COMPRESSED_SRGB8_ALPHA8_ASTC_8x5_KHR=37845]="COMPRESSED_SRGB8_ALPHA8_ASTC_8x5_KHR",e[e.COMPRESSED_SRGB8_ALPHA8_ASTC_8x6_KHR=37846]="COMPRESSED_SRGB8_ALPHA8_ASTC_8x6_KHR",e[e.COMPRESSED_SRGB8_ALPHA8_ASTC_8x8_KHR=37847]="COMPRESSED_SRGB8_ALPHA8_ASTC_8x8_KHR",e[e.COMPRESSED_SRGB8_ALPHA8_ASTC_10x5_KHR=37848]="COMPRESSED_SRGB8_ALPHA8_ASTC_10x5_KHR",e[e.COMPRESSED_SRGB8_ALPHA8_ASTC_10x6_KHR=37849]="COMPRESSED_SRGB8_ALPHA8_ASTC_10x6_KHR",e[e.COMPRESSED_SRGB8_ALPHA8_ASTC_10x8_KHR=37850]="COMPRESSED_SRGB8_ALPHA8_ASTC_10x8_KHR",e[e.COMPRESSED_SRGB8_ALPHA8_ASTC_10x10_KHR=37851]="COMPRESSED_SRGB8_ALPHA8_ASTC_10x10_KHR",e[e.COMPRESSED_SRGB8_ALPHA8_ASTC_12x10_KHR=37852]="COMPRESSED_SRGB8_ALPHA8_ASTC_12x10_KHR",e[e.COMPRESSED_SRGB8_ALPHA8_ASTC_12x12_KHR=37853]="COMPRESSED_SRGB8_ALPHA8_ASTC_12x12_KHR",e[e.UNSIGNED_INT_24_8_WEBGL=34042]="UNSIGNED_INT_24_8_WEBGL",e[e.HALF_FLOAT_OES=36193]="HALF_FLOAT_OES",e[e.RGBA32F_EXT=34836]="RGBA32F_EXT",e[e.RGB32F_EXT=34837]="RGB32F_EXT",e[e.FRAMEBUFFER_ATTACHMENT_COMPONENT_TYPE_EXT=33297]="FRAMEBUFFER_ATTACHMENT_COMPONENT_TYPE_EXT",e[e.UNSIGNED_NORMALIZED_EXT=35863]="UNSIGNED_NORMALIZED_EXT",e[e.MIN_EXT=32775]="MIN_EXT",e[e.MAX_EXT=32776]="MAX_EXT",e[e.FRAGMENT_SHADER_DERIVATIVE_HINT_OES=35723]="FRAGMENT_SHADER_DERIVATIVE_HINT_OES",e[e.COLOR_ATTACHMENT0_WEBGL=36064]="COLOR_ATTACHMENT0_WEBGL",e[e.COLOR_ATTACHMENT1_WEBGL=36065]="COLOR_ATTACHMENT1_WEBGL",e[e.COLOR_ATTACHMENT2_WEBGL=36066]="COLOR_ATTACHMENT2_WEBGL",e[e.COLOR_ATTACHMENT3_WEBGL=36067]="COLOR_ATTACHMENT3_WEBGL",e[e.COLOR_ATTACHMENT4_WEBGL=36068]="COLOR_ATTACHMENT4_WEBGL",e[e.COLOR_ATTACHMENT5_WEBGL=36069]="COLOR_ATTACHMENT5_WEBGL",e[e.COLOR_ATTACHMENT6_WEBGL=36070]="COLOR_ATTACHMENT6_WEBGL",e[e.COLOR_ATTACHMENT7_WEBGL=36071]="COLOR_ATTACHMENT7_WEBGL",e[e.COLOR_ATTACHMENT8_WEBGL=36072]="COLOR_ATTACHMENT8_WEBGL",e[e.COLOR_ATTACHMENT9_WEBGL=36073]="COLOR_ATTACHMENT9_WEBGL",e[e.COLOR_ATTACHMENT10_WEBGL=36074]="COLOR_ATTACHMENT10_WEBGL",e[e.COLOR_ATTACHMENT11_WEBGL=36075]="COLOR_ATTACHMENT11_WEBGL",e[e.COLOR_ATTACHMENT12_WEBGL=36076]="COLOR_ATTACHMENT12_WEBGL",e[e.COLOR_ATTACHMENT13_WEBGL=36077]="COLOR_ATTACHMENT13_WEBGL",e[e.COLOR_ATTACHMENT14_WEBGL=36078]="COLOR_ATTACHMENT14_WEBGL",e[e.COLOR_ATTACHMENT15_WEBGL=36079]="COLOR_ATTACHMENT15_WEBGL",e[e.DRAW_BUFFER0_WEBGL=34853]="DRAW_BUFFER0_WEBGL",e[e.DRAW_BUFFER1_WEBGL=34854]="DRAW_BUFFER1_WEBGL",e[e.DRAW_BUFFER2_WEBGL=34855]="DRAW_BUFFER2_WEBGL",e[e.DRAW_BUFFER3_WEBGL=34856]="DRAW_BUFFER3_WEBGL",e[e.DRAW_BUFFER4_WEBGL=34857]="DRAW_BUFFER4_WEBGL",e[e.DRAW_BUFFER5_WEBGL=34858]="DRAW_BUFFER5_WEBGL",e[e.DRAW_BUFFER6_WEBGL=34859]="DRAW_BUFFER6_WEBGL",e[e.DRAW_BUFFER7_WEBGL=34860]="DRAW_BUFFER7_WEBGL",e[e.DRAW_BUFFER8_WEBGL=34861]="DRAW_BUFFER8_WEBGL",e[e.DRAW_BUFFER9_WEBGL=34862]="DRAW_BUFFER9_WEBGL",e[e.DRAW_BUFFER10_WEBGL=34863]="DRAW_BUFFER10_WEBGL",e[e.DRAW_BUFFER11_WEBGL=34864]="DRAW_BUFFER11_WEBGL",e[e.DRAW_BUFFER12_WEBGL=34865]="DRAW_BUFFER12_WEBGL",e[e.DRAW_BUFFER13_WEBGL=34866]="DRAW_BUFFER13_WEBGL",e[e.DRAW_BUFFER14_WEBGL=34867]="DRAW_BUFFER14_WEBGL",e[e.DRAW_BUFFER15_WEBGL=34868]="DRAW_BUFFER15_WEBGL",e[e.MAX_COLOR_ATTACHMENTS_WEBGL=36063]="MAX_COLOR_ATTACHMENTS_WEBGL",e[e.MAX_DRAW_BUFFERS_WEBGL=34852]="MAX_DRAW_BUFFERS_WEBGL",e[e.VERTEX_ARRAY_BINDING_OES=34229]="VERTEX_ARRAY_BINDING_OES",e[e.QUERY_COUNTER_BITS_EXT=34916]="QUERY_COUNTER_BITS_EXT",e[e.CURRENT_QUERY_EXT=34917]="CURRENT_QUERY_EXT",e[e.QUERY_RESULT_EXT=34918]="QUERY_RESULT_EXT",e[e.QUERY_RESULT_AVAILABLE_EXT=34919]="QUERY_RESULT_AVAILABLE_EXT",e[e.TIME_ELAPSED_EXT=35007]="TIME_ELAPSED_EXT",e[e.TIMESTAMP_EXT=36392]="TIMESTAMP_EXT",e[e.GPU_DISJOINT_EXT=36795]="GPU_DISJOINT_EXT",e}(Se||{});var Nf="https://unpkg.com/webgl-debug@2.0.1/index.js";function Dn(e){return e.luma=e.luma||{},e.luma}async function wn(){L()&&!globalThis.WebGLDebugUtils&&(globalThis.global=globalThis.global||globalThis,globalThis.global.module={},await(0,de.loadScript)(Nf))}function Un(e){let t=arguments.length>1&&arguments[1]!==void 0?arguments[1]:{};return e?t.debug?Df(e,t):Bf(e):null}function Bf(e){let t=Dn(e);return t.realContext?t.realContext:e}function Df(e,t){if(!globalThis.WebGLDebugUtils)return de.log.warn("webgl-debug not loaded")(),e;let r=Dn(e);if(r.debugContext)return r.debugContext;globalThis.WebGLDebugUtils.init({...Se,...e});let i=globalThis.WebGLDebugUtils.makeDebugContext(e,wf.bind(null,t),Uf.bind(null,t));for(let s in Se)!(s in i)&&typeof Se[s]=="number"&&(i[s]=Se[s]);class n{}Object.setPrototypeOf(i,Object.getPrototypeOf(e)),Object.setPrototypeOf(n,i);let o=Object.create(n);return r.realContext=e,r.debugContext=o,o.debug=!0,o}function ei(e,t){t=Array.from(t).map(i=>i===void 0?"undefined":i);let r=globalThis.WebGLDebugUtils.glFunctionArgsToString(e,t);return r=`${r.slice(0,100)}${r.length>100?"...":""}`,`gl.${e}(${r})`}function wf(e,t,r,i){i=Array.from(i).map(f=>f===void 0?"undefined":f);let n=globalThis.WebGLDebugUtils.glEnumToString(t),o=globalThis.WebGLDebugUtils.glFunctionArgsToString(r,i),s=e.webgl2?"gl2":"gl1",a=`${n} in ${s}.${r}(${o})`;de.log.error(a)();debugger;if(e.throwOnError)throw new Error(a)}function Uf(e,t,r){let i="";if(de.log.level>=1&&(i=ei(t,r),de.log.log(1,i)()),e.break&&e.break.length>0&&(i=i||ei(t,r),e.break.every(o=>i.indexOf(o)!==-1)))debugger;for(let n of r)if(n===void 0){if(i=i||ei(t,r),e.throwOnError)throw new Error(`Undefined argument: ${i}`);de.log.error(`Undefined argument: ${i}`)();debugger}}var Wn=T(E(),1);function kn(e){let t=e.split(/\r?\n/),r=[];for(let i of t){if(i.length<=1)continue;let n=i.split(":");if(n.length===2){let[u,_]=n;r.push({message:_.trim(),type:Vn(u),lineNum:0,linePos:0});continue}let[o,s,a,...f]=n,l=parseInt(a,10);isNaN(l)&&(l=0);let c=parseInt(s,10);isNaN(c)&&(c=0),r.push({message:f.join(":").trim(),type:Vn(o),lineNum:l,linePos:c})}return r}function Vn(e){let t=["warning","error","info"],r=e.toLowerCase();return t.includes(r)?r:"info"}var Ut=class extends Wn.Shader{constructor(t,r){switch(super(t,r),this.device=void 0,this.handle=void 0,this.device=t,this.props.stage){case"vertex":this.handle=this.props.handle||this.device.gl.createShader(35633);break;case"fragment":this.handle=this.props.handle||this.device.gl.createShader(35632);break;default:throw new Error(this.props.stage)}this._compile(this.source)}destroy(){this.handle&&(this.removeStats(),this.device.gl.deleteShader(this.handle),this.destroyed=!0)}async getCompilationInfo(){return this.getCompilationInfoSync()}getCompilationInfoSync(){let t=this.device.gl.getShaderInfoLog(this.handle);return kn(t)}_compile(t){t=(n=>n.startsWith("#version ")?n:`#version 100
72
- ${n}`)(t);let{gl:i}=this.device;if(i.shaderSource(this.handle,t),i.compileShader(this.handle),this.compilationStatus=i.getShaderParameter(this.handle,35713)?"success":"error",this.debugShader(),this.compilationStatus==="error")throw new Error(`GLSL compilation errors in ${this.props.stage} shader ${this.props.id}`)}};var Hn=T(E(),1);var Vf=256,kf=1024,Wf=16384,ti=6144,Vt=class extends Hn.RenderPass{constructor(t,r){super(t,r),this.device=void 0,this.glParameters=void 0,this.device=t,_e(this.device.gl),this.setParameters(this.props.parameters),this.clear()}end(){se(this.device.gl),this.props.framebuffer&&oe(this.device,{framebuffer:null})}pushDebugGroup(t){}popDebugGroup(){}insertDebugMarker(t){}setParameters(){let t=arguments.length>0&&arguments[0]!==void 0?arguments[0]:{},r={};this.props.framebuffer&&(r.framebuffer=this.props.framebuffer),this.props.depthReadOnly&&(r.depthMask=!this.props.depthReadOnly),r.stencilMask=this.props.stencilReadOnly?0:1,r[35977]=this.props.discard,t.viewport&&(t.viewport.length>=6?(r.viewport=t.viewport.slice(0,4),r.depthRange=[t.viewport[4],t.viewport[5]]):r.viewport=t.viewport),r.scissorTest=Boolean(t.scissorRect),t.scissorRect&&(r.scissor=t.scissorRect),t.blendConstant&&(r.blendColor=t.blendConstant),t.stencilReference&&(console.warn("RenderPassParameters.stencilReference not yet implemented in WebGL"),t[2967]=t.stencilReference),this.glParameters=r,oe(this.device,r)}clear(){let t={...this.glParameters},r=0;this.props.clearColor!==!1&&(r|=Wf,t.clearColor=this.props.clearColor),this.props.clearDepth!==!1&&(r|=Vf,t.clearDepth=this.props.clearDepth),this.props.clearStencil!==!1&&(r|=kf,t.clearStencil=this.props.clearStencil),r!==0&&P(this.device,t,()=>{this.device.gl.clear(r)})}clearColorBuffer(){let t=arguments.length>0&&arguments[0]!==void 0?arguments[0]:0,r=arguments.length>1&&arguments[1]!==void 0?arguments[1]:[0,0,0,0];P(this.device.gl2,{framebuffer:this.props.framebuffer},()=>{switch(r.constructor){case Int32Array:this.device.gl2.clearBufferiv(ti,t,r);break;case Uint32Array:this.device.gl2.clearBufferuiv(ti,t,r);break;case Float32Array:default:this.device.gl2.clearBufferfv(ti,t,r);break}})}};var U=T(E(),1),Qn=T(E(),1);var kt=T(E(),1);var Hf="Failed to deduce GL constant from typed array";function Xn(e){switch(ArrayBuffer.isView(e)?e.constructor:e){case Float32Array:return 5126;case Uint16Array:return 5123;case Uint32Array:return 5125;case Uint8Array:return 5121;case Uint8ClampedArray:return 5121;case Int8Array:return 5120;case Int16Array:return 5122;case Int32Array:return 5124;default:throw new Error(Hf)}}function rt(e,t){let{clamped:r=!0}=t||{};switch(e){case 5126:return Float32Array;case 5123:case 33635:case 32819:case 32820:return Uint16Array;case 5125:return Uint32Array;case 5121:return r?Uint8ClampedArray:Uint8Array;case 5120:return Int8Array;case 5122:return Int16Array;case 5124:return Int32Array;default:throw new Error("Failed to deduce typed array type from GL constant")}}var Xf={offset:0,stride:0,type:5126,size:1,divisor:0,normalized:!1,integer:!1},Lf={deprecatedProps:{instanced:"divisor",isInstanced:"divisor"}},pe=class{static getBytesPerElement(t){return rt(t.type||5126).BYTES_PER_ELEMENT}static getBytesPerVertex(t){return(0,kt.assert)(t.size),rt(t.type||5126).BYTES_PER_ELEMENT*t.size}static resolve(){for(var t=arguments.length,r=new Array(t),i=0;i<t;i++)r[i]=arguments[i];return new pe(Xf,...r)}constructor(){this.offset=void 0,this.stride=void 0,this.type=void 0,this.size=void 0,this.divisor=void 0,this.normalized=void 0,this.integer=void 0,this.buffer=void 0,this.index=void 0;for(var t=arguments.length,r=new Array(t),i=0;i<t;i++)r[i]=arguments[i];r.forEach(n=>this._assign(n)),Object.freeze(this)}toString(){return JSON.stringify(this)}get BYTES_PER_ELEMENT(){return pe.getBytesPerElement(this)}get BYTES_PER_VERTEX(){return pe.getBytesPerVertex(this)}_assign(){let t=arguments.length>0&&arguments[0]!==void 0?arguments[0]:{};return t=(0,kt.checkProps)("Accessor",t,Lf),t.type!==void 0&&(this.type=t.type,(t.type===5124||t.type===5125)&&(this.integer=!0)),t.size!==void 0&&(this.size=t.size),t.offset!==void 0&&(this.offset=t.offset),t.stride!==void 0&&(this.stride=t.stride),t.normalize!==void 0&&(this.normalized=t.normalize),t.normalized!==void 0&&(this.normalized=t.normalized),t.integer!==void 0&&(this.integer=t.integer),t.divisor!==void 0&&(this.divisor=t.divisor),t.buffer!==void 0&&(this.buffer=t.buffer),t.index!==void 0&&(typeof t.index=="boolean"?this.index=t.index?1:0:this.index=t.index),t.instanced!==void 0&&(this.divisor=t.instanced?1:0),t.isInstanced!==void 0&&(this.divisor=t.isInstanced?1:0),this.offset===void 0&&delete this.offset,this.stride===void 0&&delete this.stride,this.type===void 0&&delete this.type,this.size===void 0&&delete this.size,this.divisor===void 0&&delete this.divisor,this.normalized===void 0&&delete this.normalized,this.integer===void 0&&delete this.integer,this.buffer===void 0&&delete this.buffer,this.index===void 0&&delete this.index,this}};function Ln(e){return jf.includes(e)}var jf=[35678,35680,35679,35682,36289,36292,36293,36298,36299,36300,36303,36306,36307,36308,36311],jn={[5126]:[5126,1,"float","f32","float32"],[35664]:[5126,2,"vec2","vec2<f32>","float32x2"],[35665]:[5126,3,"vec3","vec3<f32>","float32x3"],[35666]:[5126,4,"vec4","vec4<f32>","float32x4"],[5124]:[5124,1,"int","i32","sint32"],[35667]:[5124,2,"ivec2","vec2<i32>","sint32x2"],[35668]:[5124,3,"ivec3","vec3<i32>","sint32x3"],[35669]:[5124,4,"ivec4","vec4<i32>","sint32x4"],[5125]:[5125,1,"uint","u32","uint32"],[36294]:[5125,2,"uvec2","vec2<u32>","uint32x2"],[36295]:[5125,3,"uvec3","vec3<u32>","uint32x3"],[36296]:[5125,4,"uvec4","vec4<u32>","uint32x4"],[35670]:[5126,1,"bool","f32","float32"],[35671]:[5126,2,"bvec2","vec2<f32>","float32x2"],[35672]:[5126,3,"bvec3","vec3<f32>","float32x3"],[35673]:[5126,4,"bvec4","vec4<f32>","float32x4"],[35674]:[5126,8,"mat2","mat2x2<f32>"],[35685]:[5126,8,"mat2x3","mat2x3<f32>"],[35686]:[5126,8,"mat2x4","mat2x4<f32>"],[35687]:[5126,12,"mat3x2","mat3x2<f32>"],[35675]:[5126,12,"mat3","mat3x3<f32>"],[35688]:[5126,12,"mat3x4","mat3x4<f32>"],[35689]:[5126,16,"mat4x2","mat4x2<f32>"],[35690]:[5126,16,"mat4x3","mat4x3<f32>"],[35676]:[5126,16,"mat4","mat4x4<f32>"]};function ri(e){let t=jn[e];if(!t)throw new Error("uniform");let[r,i,,n]=t;return{format:n,components:i,glType:r}}function Kn(e){let t=jn[e];if(!t)throw new Error("attribute");let[,r,,i,n]=t;return{attributeType:i,vertexFormat:n,components:r}}function zn(e,t){let r={attributes:[],bindings:[]};r.attributes=Kf(e,t);let i=$f(e,t);for(let a of i){let f=a.uniforms.map(l=>({name:l.name,format:l.format,byteOffset:l.byteOffset,byteStride:l.byteStride,arrayLength:l.arrayLength}));r.bindings.push({type:"uniform",name:a.name,location:a.location,visibility:(a.vertex?1:0)&(a.fragment?2:0),minBindingSize:a.byteLength,uniforms:f})}let n=Yf(e,t),o=0;for(let a of n)if(Ln(a.type)){let{viewDimension:f,sampleType:l}=Zf(a.type);r.bindings.push({type:"texture",name:a.name,location:o,viewDimension:f,sampleType:l}),a.textureUnit=o,o+=1}n.length&&(r.uniforms=n);let s=zf(e,t);return s!=null&&s.length&&(r.varyings=s),r}function Kf(e,t){let r=[],i=e.getProgramParameter(t,35721);for(let n=0;n<i;n++){let o=e.getActiveAttrib(t,n);if(!o)throw new Error("activeInfo");let{name:s,type:a}=o,f=e.getAttribLocation(t,s);if(f>=0){let{attributeType:l}=Kn(a),c=/instance/i.test(s)?"instance":"vertex";r.push({name:s,location:f,stepMode:c,type:l})}}return r.sort((n,o)=>n.location-o.location),r}function zf(e,t){if(!b(e))return[];let r=e,i=[],n=e.getProgramParameter(t,35971);for(let o=0;o<n;o++){let s=r.getTransformFeedbackVarying(t,o);if(!s)throw new Error("activeInfo");let{name:a,type:f,size:l}=s,{glType:c,components:u}=ri(f),_=new pe({type:c,size:l*u}),d={location:o,name:a,accessor:_};i.push(d)}return i.sort((o,s)=>o.location-s.location),i}function Yf(e,t){let r=[],i=e.getProgramParameter(t,35718);for(let n=0;n<i;n++){let o=e.getActiveUniform(t,n);if(!o)throw new Error("activeInfo");let{name:s,size:a,type:f}=o,{name:l,isArray:c}=Qf(s),u=e.getUniformLocation(t,l),_={location:u,name:l,size:a,type:f,isArray:c};if(r.push(_),_.size>1)for(let d=0;d<_.size;d++){let p=`${l}[${d}]`;u=e.getUniformLocation(t,p);let g={..._,name:p,location:u};r.push(g)}}return r}function $f(e,t){if(!b(e))return[];let r=e,i=(s,a)=>r.getActiveUniformBlockParameter(t,s,a),n=[],o=r.getProgramParameter(t,35382);for(let s=0;s<o;s++){let a={name:r.getActiveUniformBlockName(t,s)||"",location:i(s,35391),byteLength:i(s,35392),vertex:i(s,35396),fragment:i(s,35398),uniformCount:i(s,35394),uniforms:[]},f=i(s,35395)||[],l=r.getActiveUniforms(t,f,35383),c=r.getActiveUniforms(t,f,35384),u=r.getActiveUniforms(t,f,35387),_=r.getActiveUniforms(t,f,35388);for(let d=0;d<a.uniformCount;++d){let p=r.getActiveUniform(t,f[d]);if(!p)throw new Error("activeInfo");a.uniforms.push({name:p.name,format:ri(l[d]).format,type:l[d],arrayLength:c[d],byteOffset:u[d],byteStride:_[d]})}n.push(a)}return n.sort((s,a)=>s.location-a.location),n}var qf={[35678]:["2d","float"],[35680]:["cube","float"],[35679]:["3d","float"],[35682]:["3d","depth"],[36289]:["2d-array","float"],[36292]:["2d-array","depth"],[36293]:["cube","float"],[36298]:["2d","sint"],[36299]:["3d","sint"],[36300]:["cube","sint"],[36303]:["2d-array","uint"],[36306]:["2d","uint"],[36307]:["3d","uint"],[36308]:["cube","uint"],[36311]:["2d-array","uint"]};function Zf(e){let t=qf[e];if(!t)throw new Error("sampler");let[r,i]=t;return{viewDimension:r,sampleType:i}}function Qf(e){if(e[e.length-1]!=="]")return{name:e,length:1,isArray:!1};let r=/([^[]*)(\[[0-9]+\])?/.exec(e);if(!r||r.length<2)throw new Error(`Failed to parse GLSL uniform name ${e}`);return{name:r[1],length:r[2]?1:0,isArray:Boolean(r[2])}}function Yn(e,t,r,i){let n=e,o=i;o===!0&&(o=1),o===!1&&(o=0);let s=typeof o=="number"?[o]:o;switch(r){case 35678:case 35680:case 35679:case 35682:case 36289:case 36292:case 36293:case 36298:case 36299:case 36300:case 36303:case 36306:case 36307:case 36308:case 36311:if(typeof i!="number")throw new Error("samplers must be set to integers");return e.uniform1i(t,i);case 5126:return e.uniform1fv(t,s);case 35664:return e.uniform2fv(t,s);case 35665:return e.uniform3fv(t,s);case 35666:return e.uniform4fv(t,s);case 5124:return e.uniform1iv(t,s);case 35667:return e.uniform2iv(t,s);case 35668:return e.uniform3iv(t,s);case 35669:return e.uniform4iv(t,s);case 35670:return e.uniform1iv(t,s);case 35671:return e.uniform2iv(t,s);case 35672:return e.uniform3iv(t,s);case 35673:return e.uniform4iv(t,s);case 5125:return n.uniform1uiv(t,s,1);case 36294:return n.uniform2uiv(t,s,2);case 36295:return n.uniform3uiv(t,s,3);case 36296:return n.uniform4uiv(t,s,4);case 35674:return e.uniformMatrix2fv(t,!1,s);case 35675:return e.uniformMatrix3fv(t,!1,s);case 35676:return e.uniformMatrix4fv(t,!1,s);case 35685:return n.uniformMatrix2x3fv(t,!1,s);case 35686:return n.uniformMatrix2x4fv(t,!1,s);case 35687:return n.uniformMatrix3x2fv(t,!1,s);case 35688:return n.uniformMatrix3x4fv(t,!1,s);case 35689:return n.uniformMatrix4x2fv(t,!1,s);case 35690:return n.uniformMatrix4x3fv(t,!1,s)}throw new Error("Illegal uniform")}function $n(e){switch(e){case"point-list":return 0;case"line-list":return 1;case"line-strip":return 3;case"line-loop-webgl":return 2;case"triangle-list":return 4;case"triangle-strip":return 5;case"triangle-fan-webgl":return 6;default:throw new Error(e)}}function qn(e){switch(e){case"point-list":return 0;case"line-list":return 1;case"line-strip":return 1;case"line-loop-webgl":return 1;case"triangle-list":return 4;case"triangle-strip":return 4;case"triangle-fan-webgl":return 4;default:throw new Error(e)}}var Zn=4,Wt=class extends U.RenderPipeline{constructor(t,r){super(t,r),this.device=void 0,this.handle=void 0,this.vs=void 0,this.fs=void 0,this.introspectedLayout=void 0,this.uniforms={},this.bindings={},this.varyings=null,this._uniformCount=0,this._uniformSetters={},this.device=t,this.handle=this.props.handle||this.device.gl.createProgram(),this.device.setSpectorMetadata(this.handle,{id:this.props.id}),this.vs=(0,U.cast)(r.vs),this.fs=(0,U.cast)(r.fs);let{varyings:i,bufferMode:n=35981}=r;if(i&&i.length>0){var o;this.device.assertWebGL2(),this.varyings=i,(o=this.device.gl2)===null||o===void 0||o.transformFeedbackVaryings(this.handle,i,n)}this._compileAndLink(),this.introspectedLayout=zn(this.device.gl,this.handle),this.shaderLayout=(0,Qn.mergeShaderLayout)(this.introspectedLayout,r.shaderLayout)}destroy(){this.handle&&(this.device.gl.deleteProgram(this.handle),this.destroyed=!0)}setBindings(t){for(let[r,i]of Object.entries(t)){let n=this.shaderLayout.bindings.find(o=>o.name===r)||this.shaderLayout.bindings.find(o=>o.name===`${r}Uniforms`);if(!n){let o=this.shaderLayout.bindings.map(s=>`"${s.name}"`).join(", ");U.log.warn(`Unknown binding "${r}" in render pipeline "${this.id}", expected one of ${o}`)();continue}switch(i||U.log.warn(`Unsetting binding "${r}" in render pipeline "${this.id}"`)(),n.type){case"uniform":if(!(i instanceof V)&&!(i.buffer instanceof V))throw new Error("buffer value");break;case"texture":if(!(i instanceof N||i instanceof te))throw new Error("texture value");break;case"sampler":U.log.warn(`Ignoring sampler ${r}`)();break;default:throw new Error(n.type)}this.bindings[r]=i}}setUniforms(t){let{bindings:r}=(0,U.splitUniformsAndBindings)(t);Object.keys(r).forEach(i=>{U.log.warn(`Unsupported value "${JSON.stringify(r[i])}" used in setUniforms() for key ${i}. Use setBindings() instead?`)()}),Object.assign(this.uniforms,t)}draw(t){var r;let{renderPass:i,vertexArray:n,vertexCount:o,instanceCount:s,firstVertex:a=0,transformFeedback:f}=t,l=$n(this.props.topology),c=Boolean(n.indexBuffer),u=(r=n.indexBuffer)===null||r===void 0?void 0:r.glIndexType,_=Number(s)>0;if(!this._areTexturesRenderable()||o===0)return!1;this.device.gl.useProgram(this.handle),n.bindBeforeRender(i),f&&f.begin(this.props.topology),this._applyBindings(),this._applyUniforms();let d=i;return Sn(this.device,this.props.parameters,d.glParameters,()=>{if(c&&_){var p;(p=this.device.gl2)===null||p===void 0||p.drawElementsInstanced(l,o||0,u,a,s||0)}else if(c)this.device.gl.drawElements(l,o||0,u,a);else if(_){var g;(g=this.device.gl2)===null||g===void 0||g.drawArraysInstanced(l,a,o||0,s||0)}else this.device.gl.drawArrays(l,a,o||0);f&&f.end()}),n.unbindAfterRender(i),!0}_compileAndLink(){let{gl:t}=this.device;if(t.attachShader(this.handle,this.vs.handle),t.attachShader(this.handle,this.fs.handle),U.log.time(Zn,`linkProgram for ${this.id}`)(),t.linkProgram(this.handle),U.log.timeEnd(Zn,`linkProgram for ${this.id}`)(),!t.debug&&U.log.level,!t.getProgramParameter(this.handle,35714))throw new Error(`Error linking: ${t.getProgramInfoLog(this.handle)}`);if(t.validateProgram(this.handle),!t.getProgramParameter(this.handle,35715))throw new Error(`Error validating: ${t.getProgramInfoLog(this.handle)}`)}_areTexturesRenderable(){let t=!0;for(let[,r]of Object.entries(this.bindings))r instanceof N&&(r.update(),t=t&&r.loaded);return t}_applyBindings(){this.device.gl.useProgram(this.handle);let{gl2:t}=this.device;if(!t)throw new Error("bindings");let r=0,i=0;for(let n of this.shaderLayout.bindings){let o=this.bindings[n.name]||this.bindings[n.name.replace(/Uniforms$/,"")];if(!o)throw new Error(`No value for binding ${n.name} in ${this.id}`);switch(n.type){case"uniform":let{name:s}=n,a=t.getUniformBlockIndex(this.handle,s);if(a===4294967295)throw new Error(`Invalid uniform block name ${s}`);t.uniformBlockBinding(this.handle,i,a),o instanceof V?t.bindBufferBase(35345,i,o.handle):t.bindBufferRange(35345,i,o.buffer.handle,o.offset||0,o.size||o.buffer.byteLength-o.offset),i+=1;break;case"texture":if(!(o instanceof N||o instanceof te))throw new Error("texture");let f;if(o instanceof N)f=o;else if(o instanceof te&&o.colorAttachments[0]instanceof N)U.log.warn("Passing framebuffer in texture binding may be deprecated. Use fbo.colorAttachments[0] instead")(),f=o.colorAttachments[0];else throw new Error("No texture");t.activeTexture(33984+r),t.bindTexture(f.target,f.handle),r+=1;break;case"sampler":break;case"storage":case"read-only-storage":throw new Error(`binding type '${n.type}' not supported in WebGL`)}}}_applyUniforms(){for(let r of this.shaderLayout.uniforms||[]){var t;let{name:i,location:n,type:o,textureUnit:s}=r,a=(t=this.uniforms[i])!==null&&t!==void 0?t:s;a!==void 0&&Yn(this.device.gl,n,o,a)}}};var Gn=T(E(),1);var Xt=T(E(),1);var Ht=class extends Xt.CommandBuffer{constructor(t){super(t,{}),this.device=void 0,this.commands=[],this.device=t}submitCommands(){let t=arguments.length>0&&arguments[0]!==void 0?arguments[0]:this.commands;for(let r of t)switch(r.name){case"copy-buffer-to-buffer":Jf(this.device,r.options);break;case"copy-buffer-to-texture":Gf(this.device,r.options);break;case"copy-texture-to-buffer":el(this.device,r.options);break;case"copy-texture-to-texture":tl(this.device,r.options);break}}};function Jf(e,t){let r=t.source,i=t.destination,n=e.assertWebGL2();if(n){var o,s;n.bindBuffer(36662,r.handle),n.bindBuffer(36663,i.handle),n.copyBufferSubData(36662,36663,(o=t.sourceOffset)!==null&&o!==void 0?o:0,(s=t.destinationOffset)!==null&&s!==void 0?s:0,t.size),n.bindBuffer(36662,null),n.bindBuffer(36663,null)}else throw new Error("copyBufferToBuffer not implemented in WebGL1")}function Gf(e,t){throw new Error("Not implemented")}function el(e,t){let{source:r,mipLevel:i=0,aspect:n="all",width:o=t.source.width,height:s=t.source.height,depthOrArrayLayers:a=0,origin:f=[0,0],destination:l,byteOffset:c=0,bytesPerRow:u,rowsPerImage:_}=t;if(n!=="all")throw new Error("not supported");if(i!==0||a!==0||u||_)throw new Error("not implemented");let d=e.assertWebGL2(),{framebuffer:p,destroyFramebuffer:g}=Jn(r);try{let h=l,R=o||p.width,A=s||p.height,m=Ie(p.texture.format,!0),B=m.dataFormat,X=m.type;d.bindBuffer(35051,h.handle),d.bindFramebuffer(36160,p.handle),d.readPixels(f[0],f[1],R,A,B,X,c)}finally{d.bindBuffer(35051,null),d.bindFramebuffer(36160,null),g&&p.destroy()}}function tl(e,t){let{source:r,origin:i=[0,0],destination:n}=t,{width:o=t.destination.width,height:s=t.destination.width}=t,a=0,f=6408,{framebuffer:l,destroyFramebuffer:c}=Jn(r),[u,_]=i,d=!1;e.gl.bindFramebuffer(36160,l.handle);let p=null,g;if(n instanceof N)p=n,o=Number.isFinite(o)?o:p.width,s=Number.isFinite(s)?s:p.height,p.bind(0),g=p.destination;else throw new Error("whoops");return d||e.gl.copyTexImage2D(g,a,f,u,_,o,s,0),p&&p.unbind(),c&&l.destroy(),p}function Jn(e){if(e instanceof Xt.Texture){let{width:t,height:r,id:i}=e;return{framebuffer:e.device.createFramebuffer({id:`framebuffer-for-${i}`,width:t,height:r,colorAttachments:[e]}),destroyFramebuffer:!0}}return{framebuffer:e,destroyFramebuffer:!1}}var Lt=class extends Gn.CommandEncoder{constructor(t,r){super(t,r),this.device=void 0,this.commandBuffer=void 0,this.device=t,this.commandBuffer=new Ht(t)}destroy(){}finish(){this.commandBuffer.submitCommands()}copyBufferToBuffer(t){this.commandBuffer.commands.push({name:"copy-buffer-to-buffer",options:t})}copyBufferToTexture(t){this.commandBuffer.commands.push({name:"copy-buffer-to-texture",options:t})}copyTextureToBuffer(t){this.commandBuffer.commands.push({name:"copy-texture-to-buffer",options:t})}copyTextureToTexture(t){this.commandBuffer.commands.push({name:"copy-texture-to-texture",options:t})}pushDebugGroup(t){}popDebugGroup(){}insertDebugMarker(t){}};var Me=T(E(),1);var eo;eo=Symbol.toStringTag;var Ce=class extends Me.VertexArray{get[eo](){return"VertexArray"}static isConstantAttributeZeroSupported(t){return t.info.type==="webgl2"||mt()==="Chrome"}constructor(t,r){super(t,r),this.device=void 0,this.handle=void 0,this.buffer=null,this.bufferValue=null,this.init=!1,this.device=t,this.handle=this.device.gl2.createVertexArray()}destroy(){if(super.destroy(),this.buffer){var t;(t=this.buffer)===null||t===void 0||t.destroy()}this.handle&&(this.device.gl2.deleteVertexArray(this.handle),this.handle=void 0)}setIndexBuffer(t){let r=t;if(r&&r.glTarget!==34963)throw new Error("Use .setBuffer()");this.device.gl2.bindVertexArray(this.handle),this.device.gl2.bindBuffer(34963,r?r.handle:null),this.indexBuffer=r}setBuffer(t,r){let i=r;if(i.glTarget===34963)throw new Error("Use .setIndexBuffer()");let{size:n,type:o,stride:s,offset:a,normalized:f,integer:l,divisor:c}=this._getAccessor(t);this.device.gl2.bindVertexArray(this.handle),this.device.gl.bindBuffer(34962,i.handle),l?(this.device.assertWebGL2(),this.device.gl2.vertexAttribIPointer(t,n,o,s,a)):this.device.gl.vertexAttribPointer(t,n,o,f,s,a),this.device.gl.enableVertexAttribArray(t),this.device.gl2.vertexAttribDivisor(t,c||0),this.attributes[t]=i}setConstant(t,r){this._enable(t,!1),this.attributes[t]=r}bindBeforeRender(){if(this.device.gl2.bindVertexArray(this.handle),!this.init){let t=this.indexBuffer;this.device.gl2.bindBuffer(34963,t?.handle||null),this.init=!0}this._applyConstantAttributes()}unbindAfterRender(){this.device.gl2.bindVertexArray(null)}_applyConstantAttributes(){for(let t=0;t<this.maxVertexAttributes;++t){let r=this.attributes[t];ArrayBuffer.isView(r)&&this.device.setConstantAttribute(t,r)}}_getAccessor(t){let r=this.attributeInfos[t];if(!r)throw new Error(`Unknown attribute location ${t}`);let i=Ot(r.bufferDataType);return{size:r.bufferComponents,type:i,stride:r.byteStride,offset:r.byteOffset,normalized:r.normalized,integer:r.integer,divisor:r.stepMode==="instance"?1:0}}_enable(t){let r=arguments.length>1&&arguments[1]!==void 0?arguments[1]:!0,n=Ce.isConstantAttributeZeroSupported(this.device)||t!==0;(r||n)&&(t=Number(t),this.device.gl2.bindVertexArray(this.handle),r?this.device.gl.enableVertexAttribArray(t):this.device.gl.disableVertexAttribArray(t),this.device.gl2.bindVertexArray(null))}getConstantBuffer(t,r){let i=rl(r),n=i.byteLength*t,o=i.length*t;if(this.buffer&&n!==this.buffer.byteLength)throw new Error(`Buffer size is immutable, byte length ${n} !== ${this.buffer.byteLength}.`);let s=!this.buffer;if(this.buffer=this.buffer||this.device.createBuffer({byteLength:n}),s=s||!il(i,this.bufferValue),s){let a=(0,Me.getScratchArray)(r.constructor,o);(0,Me.fillArray)({target:a,source:i,start:0,count:o}),this.buffer.write(a),this.bufferValue=r}return this.buffer}};function rl(e){return Array.isArray(e)?new Float32Array(e):e}function il(e,t){if(!e||!t||e.length!==t.length||e.constructor!==t.constructor)return!1;for(let r=0;r<e.length;++r)if(e[r]!==t[r])return!1;return!0}var Kt=T(E(),1);var jt=class extends Kt.TransformFeedback{constructor(t,r){super(t,r),this.device=void 0,this.gl2=void 0,this.handle=void 0,this.layout=void 0,this.buffers={},this.unusedBuffers={},this.bindOnUse=!0,this._bound=!1,t.assertWebGL2(),this.device=t,this.gl2=t.gl2,this.handle=this.props.handle||this.gl2.createTransformFeedback(),this.layout=this.props.layout,r.buffers&&this.setBuffers(r.buffers),Object.seal(this)}destroy(){this.gl2.deleteTransformFeedback(this.handle),super.destroy()}begin(){let t=arguments.length>0&&arguments[0]!==void 0?arguments[0]:"point-list";this.gl2.bindTransformFeedback(36386,this.handle),this.bindOnUse&&this._bindBuffers(),this.gl2.beginTransformFeedback(qn(t))}end(){this.gl2.endTransformFeedback(),this.bindOnUse||this._unbindBuffers(),this.gl2.bindTransformFeedback(36386,null)}setBuffers(t){this.buffers={},this.unusedBuffers={},this.bind(()=>{for(let r in t)this.setBuffer(r,t[r])})}setBuffer(t,r){let i=this._getVaryingIndex(t),{buffer:n,byteLength:o,byteOffset:s}=this._getBufferRange(r);if(i<0){this.unusedBuffers[t]=n,Kt.log.warn(`${this.id} unusedBuffers varying buffer ${t}`)();return}this.buffers[i]={buffer:n,byteLength:o,byteOffset:s},this.bindOnUse||this._bindBuffer(i,n,s,o)}getBuffer(t){if(to(t))return this.buffers[t]||null;let r=this._getVaryingIndex(t);return r>=0?this.buffers[r]:null}bind(){let t=arguments.length>0&&arguments[0]!==void 0?arguments[0]:this.handle;if(typeof t!="function")return this.gl2.bindTransformFeedback(36386,t),this;let r;return this._bound?r=t():(this.gl2.bindTransformFeedback(36386,this.handle),this._bound=!0,r=t(),this._bound=!1,this.gl2.bindTransformFeedback(36386,null)),r}unbind(){this.bind(null)}_getBufferRange(t){if(t instanceof V)return{buffer:t,byteOffset:0,byteLength:t.byteLength};let{buffer:r,byteOffset:i=0,byteLength:n=t.buffer.byteLength}=t;return{buffer:r,byteOffset:i,byteLength:n}}_getVaryingIndex(t){if(to(t))return Number(t);for(let r of this.layout.varyings)if(t===r.name)return r.location;return-1}_bindBuffers(){for(let t in this.buffers){let{buffer:r,byteLength:i,byteOffset:n}=this._getBufferRange(this.buffers[t]);this._bindBuffer(Number(t),r,n,i)}}_unbindBuffers(){for(let t in this.buffers)this.gl2.bindBufferBase(35982,Number(t),null)}_bindBuffer(t,r){let i=arguments.length>2&&arguments[2]!==void 0?arguments[2]:0,n=arguments.length>3?arguments[3]:void 0,o=r&&r.handle;!o||n===void 0?this.gl2.bindBufferBase(35982,t,o):this.gl2.bindBufferRange(35982,t,o,i,n)}};function to(e){return typeof e=="number"?Number.isInteger(e):/^\d+$/.test(e)}var it=1,M=class extends O.Device{static isSupported(){return typeof WebGLRenderingContext<"u"||ki()}get features(){return this._features=this._features||Rn(this.gl),this._features}get limits(){return this._limits=this._limits||En(this.gl),this._limits}static attach(t){if(t instanceof M)return t;if(t?.device instanceof O.Device)return t.device;if(!nl(t))throw new Error("Invalid WebGLRenderingContext");return new M({gl:t})}static async create(){let t=arguments.length>0&&arguments[0]!==void 0?arguments[0]:{};O.log.groupCollapsed(it,"WebGLDevice created")(),typeof t.canvas=="string"&&await O.CanvasContext.pageLoaded,(O.log.get("debug")||t.debug)&&await wn();let{spector:r}=t;if((O.log.get("spector")||r)&&await Nn(),O.log.probe(it+1,"DOM is loaded")(),t.gl&&t.gl.device)return M.attach(t.gl);let i=new M(t),n=`Created ${i.info.type}${i.debug?" debug":""} context: ${i.info.vendor}, ${i.info.renderer} for canvas: ${i.canvasContext.id}`;return O.log.probe(it,n)(),O.log.table(it,i.info)(),O.log.groupEnd(it)(),i}constructor(t){var r;super({...t,id:t.id||(0,O.uid)("webgl-device")}),this.info=void 0,this.canvasContext=void 0,this.handle=void 0,this.lost=void 0,this._resolveContextLost=void 0,this._features=void 0,this._limits=void 0,this.renderPass=null,this.gl=void 0,this.gl2=null,this.debug=!1,this.isWebGL1=void 0,this.isWebGL2=void 0,this._canvasSizeInfo={clientWidth:0,clientHeight:0,devicePixelRatio:1},this._extensions={},this._polyfilled=!1,this.spector=void 0,this._webglLimits=void 0,this._constants=void 0;let i=(r=t.gl)===null||r===void 0?void 0:r.device;if(i)throw new Error(`WebGL context already attached to device ${i.id}`);this.canvasContext=new wt(this,t),this.lost=new Promise(f=>{this._resolveContextLost=f});let n=f=>{var l;return(l=this._resolveContextLost)===null||l===void 0?void 0:l.call(this,{reason:"destroyed",message:"Computer entered sleep mode, or too many apps or browser tabs are using the GPU."})},o=t.gl||null;if(o=o||(L()?fn(this.canvasContext.canvas,{...t,onContextLost:n}):null),o=o||(L()?null:Wi({...t,onContextLost:n})),!o)throw new Error("WebGL context creation failed");this.handle=o,this.gl=this.handle,this.gl2=this.gl,this.isWebGL2=ol(this.gl),this.isWebGL1=!this.isWebGL2,this.info=ln(this.gl),this.gl.device=this,this.gl._version=this.isWebGL2?2:1,Ji(this.gl);let{enable:s=!0,copyState:a=!1}=t;if(zr(this.gl,{enable:s,copyState:a,log:function(){for(var f=arguments.length,l=new Array(f),c=0;c<f;c++)l[c]=arguments[c];return O.log.log(1,...l)()}}),L()&&t.debug&&(this.gl=Un(this.gl,{...t,webgl2:this.isWebGL2,throwOnError:!0}),this.gl2=this.gl,this.debug=!0,O.log.level=Math.max(O.log.level,1),O.log.warn("WebGL debug mode activated. Performance reduced.")()),L()&&t.spector){let f=this.handle.canvas||t.canvas;this.spector=Bn({...this.props,canvas:f})}}destroy(){let t=this.gl.getExtension("STACKGL_destroy_context");t&&t.destroy()}get isLost(){return this.gl.isContextLost()}getSize(){return[this.gl.drawingBufferWidth,this.gl.drawingBufferHeight]}isTextureFormatSupported(t){return Qe(this.gl,t)}isTextureFormatFilterable(t){return hn(this.gl,t)}isTextureFormatRenderable(t){return gn(this.gl,t)}assertWebGL2(){if(!this.gl2)throw new Error("Requires WebGL2");return this.gl2}createCanvasContext(t){throw new Error("WebGL only supports a single canvas")}createBuffer(t){let r=this._getBufferProps(t);return new V(this,r)}_createTexture(t){return new N(this,t)}createExternalTexture(t){throw new Error("createExternalTexture() not implemented")}createSampler(t){return new me(this,t)}createShader(t){return new Ut(this,t)}createFramebuffer(t){return new te(this,t)}createRenderPipeline(t){return new Wt(this,t)}createVertexArray(t){return new Ce(this,t)}beginRenderPass(t){return new Vt(this,t)}createComputePipeline(t){throw new Error("ComputePipeline not supported in WebGL")}beginComputePass(t){throw new Error("ComputePass not supported in WebGL")}createTransformFeedback(t){return new jt(this,t)}getDefaultRenderPass(){return this.renderPass=this.renderPass||this.beginRenderPass({framebuffer:this.canvasContext.getCurrentFramebuffer()}),this.renderPass}createCommandEncoder(t){return new Lt(this,t)}submit(){var t;(t=this.renderPass)===null||t===void 0||t.end(),this.renderPass=null}get webglLimits(){return this._webglLimits=this._webglLimits||vn(this.gl),this._webglLimits}loseDevice(){var t;let r=!1,i=this.gl.getExtension("WEBGL_lose_context");return i&&(r=!0,i.loseContext()),(t=this._resolveContextLost)===null||t===void 0||t.call(this,{reason:"destroyed",message:"Application triggered context loss"}),r}pushState(){_e(this.gl)}popState(){se(this.gl)}setSpectorMetadata(t,r){t.__SPECTOR_Metadata=r}getGLKey(t,r){r=r||this.gl2||this.gl;let i=Number(t);for(let n in r)if(r[n]===i)return`GL.${n}`;return String(t)}setConstantAttribute(t,r){this._constants=this._constants||new Array(this.limits.maxVertexAttributes).fill(null);let i=this._constants[t];switch(i&&ll(i,r)&&O.log.info(1,`setConstantAttribute(${t}) could have been skipped, value unchanged`)(),this._constants[t]=r,r.constructor){case Float32Array:sl(this,t,r);break;case Int32Array:al(this,t,r);break;case Uint32Array:fl(this,t,r);break;default:(0,O.assert)(!1)}}};M.type="webgl";function nl(e){return typeof WebGLRenderingContext<"u"&&e instanceof WebGLRenderingContext||typeof WebGL2RenderingContext<"u"&&e instanceof WebGL2RenderingContext?!0:Boolean(e&&Number.isFinite(e._version))}function ol(e){return typeof WebGL2RenderingContext<"u"&&e instanceof WebGL2RenderingContext?!0:Boolean(e&&e._version===2)}function sl(e,t,r){switch(r.length){case 1:e.gl.vertexAttrib1fv(t,r);break;case 2:e.gl.vertexAttrib2fv(t,r);break;case 3:e.gl.vertexAttrib3fv(t,r);break;case 4:e.gl.vertexAttrib4fv(t,r);break;default:(0,O.assert)(!1)}}function al(e,t,r){var i;e.assertWebGL2(),(i=e.gl2)===null||i===void 0||i.vertexAttribI4iv(t,r)}function fl(e,t,r){var i;e.assertWebGL2(),(i=e.gl2)===null||i===void 0||i.vertexAttribI4uiv(t,r)}function ll(e,t){if(!e||!t||e.length!==t.length||e.constructor!==t.constructor)return!1;for(let r=0;r<e.length;++r)if(e[r]!==t[r])return!1;return!0}var ro=T(E(),1);var cl=256,ul=1024,_l=16384;var dl="clear: bad arguments";function ii(e,t){let r=M.attach(e),{framebuffer:i=null,color:n=null,depth:o=null,stencil:s=null}=t||{},a={};i&&(a.framebuffer=i);let f=0;n&&(f|=_l,n!==!0&&(a.clearColor=n)),o&&(f|=cl,o!==!0&&(a.clearDepth=o)),s&&(f|=ul,o!==!0&&(a.clearStencil=o)),(0,ro.assert)(f!==0,dl),P(r.gl,a,()=>{r.gl.clear(f)})}var nt=T(E(),1);var io=T(E(),1);function no(e){switch(e){case 6406:case 33326:case 6403:return 1;case 33328:case 33319:return 2;case 6407:case 34837:return 3;case 6408:case 34836:return 4;default:return(0,io.assert)(!1),0}}function ni(e,t){var r;let{sourceX:i=0,sourceY:n=0,sourceFormat:o=6408,sourceAttachment:s=36064}=t||{},{target:a=null,sourceWidth:f,sourceHeight:l,sourceType:c}=t||{},{framebuffer:u,deleteFramebuffer:_}=pl(e);(0,nt.assert)(u);let{gl:d,handle:p}=u;f=f||u.width,l=l||u.height;let g=s-36064;c=c||((r=u.colorAttachments[g])===null||r===void 0?void 0:r.type)||5121,a=gl(a,c,o,f,l),c=c||Xn(a);let h=d.bindFramebuffer(36160,p);return d.readPixels(i,n,f,l,o,c,a),d.bindFramebuffer(36160,h||null),_&&u.destroy(),a}function pl(e){return e instanceof nt.Framebuffer?{framebuffer:e,deleteFramebuffer:!1}:{framebuffer:hl(e),deleteFramebuffer:!0}}function hl(e,t){let{device:r,width:i,height:n,id:o}=e;return r.createFramebuffer({...t,id:`framebuffer-for-${o}`,width:i,height:n,colorAttachments:[e]})}function gl(e,t,r,i,n){if(e)return e;t=t||5121;let o=rt(t,{clamped:!1}),s=no(r);return new o(i*n*s)}var fs=T(S());function oo(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var i=Object.getOwnPropertySymbols(e);t&&(i=i.filter(function(n){return Object.getOwnPropertyDescriptor(e,n).enumerable})),r.push.apply(r,i)}return r}function so(e){for(var t=1;t<arguments.length;t++){var r=arguments[t]!=null?arguments[t]:{};t%2?oo(Object(r),!0).forEach(function(i){Tl(e,i,r[i])}):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(r)):oo(Object(r)).forEach(function(i){Object.defineProperty(e,i,Object.getOwnPropertyDescriptor(r,i))})}return e}function Tl(e,t,r){return t in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r,e}var ao=`
70
+ `},ye={name:"brushing",dependencies:[be.project],vs:ut,fs:kt,inject:Kt,getUniforms:e=>{if(!e||!("viewport"in e))return{};let{brushingEnabled:t=!0,brushingRadius:_=1e4,brushingTarget:r="source",mousePosition:o,viewport:s}=e;return{brushing_enabled:Boolean(t&&o&&s.containsPixel(o)),brushing_radius:_,brushing_target:wt[r]||0,brushing_mousePos:o?s.unproject([o.x-s.x,o.y-s.y]):[0,0]}}};var Yt={getBrushingTarget:{type:"accessor",value:[0,0]},brushingTarget:"source",brushingEnabled:!0,brushingRadius:1e4},m=class extends He.LayerExtension{getShaders(){return{modules:[ye]}}initializeState(t,_){let r=this.getAttributeManager();r&&r.add({brushingTargets:{size:2,accessor:"getBrushingTarget",shaderAttributes:{brushingTargets:{divisor:0},instanceBrushingTargets:{divisor:1}}}});let o=()=>{this.getCurrentLayer()?.setNeedsRedraw()};this.state.onMouseMove=o,t.deck&&t.deck.eventManager.on({pointermove:o,pointerleave:o})}finalizeState(t,_){if(t.deck){let r=this.state.onMouseMove;t.deck.eventManager.off({pointermove:r,pointerleave:r})}}},D=m;(()=>{m.defaultProps=Yt})(),(()=>{m.extensionName="BrushingExtension"})();var E=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}(E||{});var $e=c(n(),1);var Xe=`
73
71
  uniform DATAFILTER_TYPE filter_min;
74
72
  uniform DATAFILTER_TYPE filter_softMin;
75
73
  uniform DATAFILTER_TYPE filter_softMax;
@@ -124,10 +122,10 @@ void dataFilter_setValue(DATAFILTER_TYPE valueFromMin, DATAFILTER_TYPE valueFrom
124
122
  dataFilter_value = 1.0;
125
123
  }
126
124
  }
127
- `,fo=`
125
+ `,Ve=`
128
126
  uniform bool filter_transformColor;
129
127
  in float dataFilter_value;
130
- `;function lo(e){if(!e||!("extensions"in e))return{};var t=e.filterRange,r=t===void 0?[-1,1]:t,i=e.filterEnabled,n=i===void 0?!0:i,o=e.filterTransformSize,s=o===void 0?!0:o,a=e.filterTransformColor,f=a===void 0?!0:a,l=e.filterSoftRange||r;return so(so({},Number.isFinite(r[0])?{filter_min:r[0],filter_softMin:l[0],filter_softMax:l[1],filter_max:r[1]}:{filter_min:r.map(function(c){return c[0]}),filter_softMin:l.map(function(c){return c[0]}),filter_softMax:l.map(function(c){return c[1]}),filter_max:r.map(function(c){return c[1]})}),{},{filter_enabled:n,filter_useSoftMargin:Boolean(e.filterSoftRange),filter_transformSize:n&&s,filter_transformColor:n&&f})}function Al(e){if(!e||!("extensions"in e))return{};var t=lo(e);if(Number.isFinite(t.filter_min)){var r=Math.fround(t.filter_min);t.filter_min-=r,t.filter_softMin-=r,t.filter_min64High=r;var i=Math.fround(t.filter_max);t.filter_max-=i,t.filter_softMax-=i,t.filter_max64High=i}else{var n=t.filter_min.map(Math.fround);t.filter_min=t.filter_min.map(function(s,a){return s-n[a]}),t.filter_softMin=t.filter_softMin.map(function(s,a){return s-n[a]}),t.filter_min64High=n;var o=t.filter_max.map(Math.fround);t.filter_max=t.filter_max.map(function(s,a){return s-o[a]}),t.filter_softMax=t.filter_softMax.map(function(s,a){return s-o[a]}),t.filter_max64High=o}return t}var co={"vs:#main-start":`
128
+ `;function We(e){if(!e||!("extensions"in e))return{};let{filterRange:t=[-1,1],filterEnabled:_=!0,filterTransformSize:r=!0,filterTransformColor:o=!0}=e,s=e.filterSoftRange||t;return{...Number.isFinite(t[0])?{filter_min:t[0],filter_softMin:s[0],filter_softMax:s[1],filter_max:t[1]}:{filter_min:t.map(i=>i[0]),filter_softMin:s.map(i=>i[0]),filter_softMax:s.map(i=>i[1]),filter_max:t.map(i=>i[1])},filter_enabled:_,filter_useSoftMargin:Boolean(e.filterSoftRange),filter_transformSize:_&&r,filter_transformColor:_&&o}}function jt(e){if(!e||!("extensions"in e))return{};let t=We(e);if(Number.isFinite(t.filter_min)){let _=Math.fround(t.filter_min);t.filter_min-=_,t.filter_softMin-=_,t.filter_min64High=_;let r=Math.fround(t.filter_max);t.filter_max-=r,t.filter_softMax-=r,t.filter_max64High=r}else{let _=t.filter_min.map(Math.fround);t.filter_min=t.filter_min.map((o,s)=>o-_[s]),t.filter_softMin=t.filter_softMin.map((o,s)=>o-_[s]),t.filter_min64High=_;let r=t.filter_max.map(Math.fround);t.filter_max=t.filter_max.map((o,s)=>o-r[s]),t.filter_softMax=t.filter_softMax.map((o,s)=>o-r[s]),t.filter_max64High=r}return t}var ue={"vs:#main-start":`
131
129
  #ifdef DATAFILTER_DOUBLE
132
130
  dataFilter_setValue(
133
131
  DATAFILTER_ATTRIB - filter_min64High + DATAFILTER_ATTRIB_64LOW,
@@ -149,132 +147,52 @@ in float dataFilter_value;
149
147
  if (filter_transformColor) {
150
148
  color.a *= dataFilter_value;
151
149
  }
152
- `},uo={name:"data-filter",vs:ao,fs:fo,inject:co,getUniforms:lo},_o={name:"data-filter-fp64",vs:ao,fs:fo,inject:co,getUniforms:Al};var Te=T(E(),1),I=T(E(),1),es=T(E(),1);var C=e=>`${e}`;function ie(e,t){if(!e)throw new Error(t||"shadertools: assertion failed.")}var oi={number:{type:"number",validate(e,t){return Number.isFinite(e)&&typeof t=="object"&&(t.max===void 0||e<=t.max)&&(t.min===void 0||e>=t.min)}},array:{type:"array",validate(e,t){return Array.isArray(e)||ArrayBuffer.isView(e)}}};function ho(e){let t={};for(let[r,i]of Object.entries(e))t[r]=Rl(i);return t}function go(e,t,r){let i={};for(let[n,o]of Object.entries(t))e&&n in e&&!o.private?(o.validate&&ie(o.validate(e[n],o),`${r}: invalid ${n}`),i[n]=e[n]):i[n]=o.value;return i}function Rl(e){let t=po(e);if(t!=="object")return{value:e,...oi[t],type:t};if(typeof e=="object")return e?e.type!==void 0?{...e,...oi[e.type],type:e.type}:e.value===void 0?{type:"object",value:e}:(t=po(e.value),{...e,...oi[t],type:t}):{type:"object",value:null};throw new Error("props")}function po(e){return Array.isArray(e)||ArrayBuffer.isView(e)?"array":typeof e}var To=C`\
153
- #ifdef MODULE_LOGDEPTH
154
- logdepth_adjustPosition(gl_Position);
155
- #endif
156
- `,Ao=C`\
157
- #ifdef MODULE_MATERIAL
158
- gl_FragColor = material_filterColor(gl_FragColor);
159
- #endif
160
-
161
- #ifdef MODULE_LIGHTING
162
- gl_FragColor = lighting_filterColor(gl_FragColor);
163
- #endif
164
-
165
- #ifdef MODULE_FOG
166
- gl_FragColor = fog_filterColor(gl_FragColor);
167
- #endif
168
-
169
- #ifdef MODULE_PICKING
170
- gl_FragColor = picking_filterHighlightColor(gl_FragColor);
171
- gl_FragColor = picking_filterPickingColor(gl_FragColor);
172
- #endif
150
+ `},ke={name:"data-filter",vs:Xe,fs:Ve,inject:ue,getUniforms:We},we={name:"data-filter-fp64",vs:Xe,fs:Ve,inject:ue,getUniforms:jt};var je=c(Ye(),1);var zt=`#version 300 es
151
+ #define SHADER_NAME data-filter-vertex-shader
173
152
 
174
- #ifdef MODULE_LOGDEPTH
175
- logdepth_setFragDepth();
176
- #endif
177
- `;var bl={vertex:To,fragment:Ao},Ro=/void\s+main\s*\([^)]*\)\s*\{\n?/,bo=/}\n?[^{}]*$/,si=[],ot="__LUMA_INJECT_DECLARATIONS__";function Eo(e){let t={vertex:{},fragment:{}};for(let r in e){let i=e[r],n=El(r);typeof i=="string"&&(i={order:0,injection:i}),t[n][r]=i}return t}function El(e){let t=e.slice(0,2);switch(t){case"vs":return"vertex";case"fs":return"fragment";default:throw new Error(t)}}function st(e,t,r){let i=arguments.length>3&&arguments[3]!==void 0?arguments[3]:!1,n=t==="vertex";for(let o in r){let s=r[o];s.sort((f,l)=>f.order-l.order),si.length=s.length;for(let f=0,l=s.length;f<l;++f)si[f]=s[f].injection;let a=`${si.join(`
178
- `)}
179
- `;switch(o){case"vs:#decl":n&&(e=e.replace(ot,a));break;case"vs:#main-start":n&&(e=e.replace(Ro,f=>f+a));break;case"vs:#main-end":n&&(e=e.replace(bo,f=>a+f));break;case"fs:#decl":n||(e=e.replace(ot,a));break;case"fs:#main-start":n||(e=e.replace(Ro,f=>f+a));break;case"fs:#main-end":n||(e=e.replace(bo,f=>a+f));break;default:e=e.replace(o,f=>f+a)}}return e=e.replace(ot,""),i&&(e=e.replace(/\}\s*$/,o=>o+bl[t])),e}var vl=1,z=class{static instantiateModules(t){return t.map(r=>{if(r instanceof z)return r;ie(typeof r!="string",`Shader module use by name is deprecated. Import shader module '${JSON.stringify(r)}' and use it directly.`),r.name||(console.warn("shader module has no name"),r.name=`shader-module-${vl++}`);let i=new z(r);return i.dependencies=z.instantiateModules(r.dependencies||[]),i})}constructor(t){this.name=void 0,this.vs=void 0,this.fs=void 0,this.getModuleUniforms=void 0,this.dependencies=void 0,this.deprecations=void 0,this.defines=void 0,this.injections=void 0,this.uniforms={},this.uniformTypes={};let{name:r,vs:i,fs:n,dependencies:o=[],uniformPropTypes:s={},getUniforms:a,deprecations:f=[],defines:l={},inject:c={}}=t;ie(typeof r=="string"),this.name=r,this.vs=i,this.fs=n,this.getModuleUniforms=a,this.dependencies=z.instantiateModules(o),this.deprecations=this._parseDeprecationDefinitions(f),this.defines=l,this.injections=Eo(c),s&&(this.uniforms=ho(s))}getModuleSource(t){let r;switch(t){case"vertex":r=this.vs||"";break;case"fragment":r=this.fs||"";break;default:ie(!1)}let i=this.name.toUpperCase().replace(/[^0-9a-z]/gi,"_");return`// ----- MODULE ${this.name} ---------------
180
-
181
- #define MODULE_${i}
182
- ${r}
183
-
184
- `}getUniforms(t,r){return this.getModuleUniforms?this.getModuleUniforms(t,r):go(t,this.uniforms,this.name)}getDefines(){return this.defines}checkDeprecations(t,r){this.deprecations.forEach(i=>{var n;(n=i.regex)!==null&&n!==void 0&&n.test(t)&&(i.deprecated?r.deprecated(i.old,i.new)():r.removed(i.old,i.new)())})}_parseDeprecationDefinitions(t){return t.forEach(r=>{switch(r.type){case"function":r.regex=new RegExp(`\\b${r.old}\\(`);break;default:r.regex=new RegExp(`${r.type} ${r.old};`)}}),t}_defaultGetUniforms(){let t=arguments.length>0&&arguments[0]!==void 0?arguments[0]:{},r={},i=this.uniforms;for(let n in i){let o=i[n];n in t&&!o.private?(o.validate&&ie(o.validate(t[n],o),`${this.name}: invalid ${n}`),r[n]=t[n]):r[n]=o.value}return r}};function at(e){let t=z.instantiateModules(e);return ml(t)}function ml(e){let t={},r={};return vo({modules:e,level:0,moduleMap:t,moduleDepth:r}),Object.keys(r).sort((i,n)=>r[n]-r[i]).map(i=>t[i])}function vo(e){let{modules:t,level:r,moduleMap:i,moduleDepth:n}=e;if(r>=5)throw new Error("Possible loop in shader dependency graph");for(let o of t)i[o.name]=o,(n[o.name]===void 0||n[o.name]<r)&&(n[o.name]=r);for(let o of t)o.dependencies&&vo({modules:o.dependencies,level:r+1,moduleMap:i,moduleDepth:n})}function mo(e){switch(e?.gpu.toLowerCase()){case"apple":return C`\
185
- #define APPLE_GPU
186
- // Apple optimizes away the calculation necessary for emulated fp64
187
- #define LUMA_FP64_CODE_ELIMINATION_WORKAROUND 1
188
- #define LUMA_FP32_TAN_PRECISION_WORKAROUND 1
189
- // Intel GPU doesn't have full 32 bits precision in same cases, causes overflow
190
- #define LUMA_FP64_HIGH_BITS_OVERFLOW_WORKAROUND 1
191
- `;case"nvidia":return C`\
192
- #define NVIDIA_GPU
193
- // Nvidia optimizes away the calculation necessary for emulated fp64
194
- #define LUMA_FP64_CODE_ELIMINATION_WORKAROUND 1
195
- `;case"intel":return C`\
196
- #define INTEL_GPU
197
- // Intel optimizes away the calculation necessary for emulated fp64
198
- #define LUMA_FP64_CODE_ELIMINATION_WORKAROUND 1
199
- // Intel's built-in 'tan' function doesn't have acceptable precision
200
- #define LUMA_FP32_TAN_PRECISION_WORKAROUND 1
201
- // Intel GPU doesn't have full 32 bits precision in same cases, causes overflow
202
- #define LUMA_FP64_HIGH_BITS_OVERFLOW_WORKAROUND 1
203
- `;case"amd":return C`\
204
- #define AMD_GPU
205
- `;default:return C`\
206
- #define DEFAULT_GPU
207
- // Prevent driver from optimizing away the calculation necessary for emulated fp64
208
- #define LUMA_FP64_CODE_ELIMINATION_WORKAROUND 1
209
- // Headless Chrome's software shader 'tan' function doesn't have acceptable precision
210
- #define LUMA_FP32_TAN_PRECISION_WORKAROUND 1
211
- // If the GPU doesn't have full 32 bits precision, will causes overflow
212
- #define LUMA_FP64_HIGH_BITS_OVERFLOW_WORKAROUND 1
213
- `}}function So(e){let t="";return e.features.has("webgl2")&&(t+=C`\
214
- # define FEATURE_GLSL_DERIVATIVES
215
- # define FEATURE_GLSL_DRAW_BUFFERS
216
- # define FEATURE_GLSL_FRAG_DEPTH
217
- # define FEATURE_GLSL_TEXTURE_LOD
218
- `),e.features.has("webgl2")||(e.features.has("glsl-frag-depth")&&(t+=C`\
219
-
220
- // FEATURE_GLSL_FRAG_DEPTH => gl_FragDepth is available
221
- #ifdef GL_EXT_frag_depth
222
- # extension GL_EXT_frag_depth : enable
223
- # define FEATURE_GLSL_FRAG_DEPTH
224
- # define FRAG_DEPTH
225
- # define gl_FragDepth gl_FragDepthEXT
153
+ #ifdef FLOAT_TARGET
154
+ in float filterIndices;
155
+ in float filterPrevIndices;
156
+ #else
157
+ in vec2 filterIndices;
158
+ in vec2 filterPrevIndices;
226
159
  #endif
227
- `),e!=null&&e.features.has("glsl-derivatives")&&(t+=C`\
228
160
 
229
- // FEATURE_GLSL_DERIVATIVES => dxdF, dxdY and fwidth are available
230
- #if defined(GL_OES_standard_derivatives) || defined(FEATURE_GLSL_DERIVATIVES)
231
- # extension GL_OES_standard_derivatives : enable
232
- # define FEATURE_GLSL_DERIVATIVES
233
- #endif
234
- `),e!=null&&e.features.has("glsl-frag-data")&&(t+=C`\
161
+ out vec4 vColor;
162
+ const float component = 1.0 / 255.0;
235
163
 
236
- // FEATURE_GLSL_DRAW_BUFFERS => gl_FragData[] is available
237
- #ifdef GL_EXT_draw_buffers
238
- # extension GL_EXT_draw_buffers : require
239
- # define FEATURE_GLSL_DRAW_BUFFERS
240
- #endif
241
- `),e!=null&&e.features.has("glsl-texture-lod")&&(t+=C`\
242
- // TEXTURE_LOD => texture2DLod etc are available
243
- #ifdef GL_EXT_shader_texture_lod
244
- # extension GL_EXT_shader_texture_lod : enable
245
- # define FEATURE_GLSL_TEXTURE_LOD
246
- # define TEXTURE_LOD
247
- #endif
248
- `)),t}function Oo(e,t,r){var i;if(Number(((i=e.match(/^#version[ \t]+(\d+)/m))===null||i===void 0?void 0:i[1])||100)!==300)throw new Error("luma.gl v9 only supports GLSL 3.00 shader sources");switch(t){case 300:switch(r){case"vertex":return e=ft(e,Sl),e;case"fragment":return e=ft(e,yl),e;default:throw new Error(r)}case 100:switch(r){case"vertex":return e=ft(e,Ol),e;case"fragment":return e=ft(e,Io),e=Pl(e),e;default:throw new Error(r)}default:throw new Error(String(t))}}var xo=[[/^(#version[ \t]+(100|300[ \t]+es))?[ \t]*\n/,`#version 300 es
249
- `],[/\btexture(2D|2DProj|Cube)Lod(EXT)?\(/g,"textureLod("],[/\btexture(2D|2DProj|Cube)(EXT)?\(/g,"texture("]],Sl=[...xo,[Ne("attribute"),"in $1"],[Ne("varying"),"out $1"]],yl=[...xo,[Ne("varying"),"in $1"]],Po=[[/^#version[ \t]+300[ \t]+es/,"#version 100"],[/\btexture(2D|2DProj|Cube)Lod\(/g,"texture$1LodEXT("],[/\btexture\(/g,"texture2D("],[/\btextureLod\(/g,"texture2DLodEXT("]],Ol=[...Po,[Ne("in"),"attribute $1"],[Ne("out"),"varying $1"]],Io=[...Po,[Ne("in"),"varying $1"]],xl="gl_FragColor",yo=/\bout[ \t]+vec4[ \t]+(\w+)[ \t]*;\n?/;function ft(e,t){for(let[r,i]of t)e=e.replace(r,i);return e}function Pl(e){e=ft(e,Io);let t=yo.exec(e);if(t){let r=t[1];e=e.replace(yo,"").replace(new RegExp(`\\b${r}\\b`,"g"),xl)}return e}function Ne(e){return new RegExp(`\\b${e}[ \\t]+(\\w+[ \\t]+\\w+(\\[\\w+\\])?;)`,"g")}function ai(e,t){let r="";for(let i in e){let n=e[i];if(r+=`void ${n.signature} {
250
- `,n.header&&(r+=` ${n.header}`),t[i]){let o=t[i];o.sort((s,a)=>s.order-a.order);for(let s of o)r+=` ${s.injection}
251
- `}n.footer&&(r+=` ${n.footer}`),r+=`}
252
- `}return r}function fi(e){let t={vertex:{},fragment:{}};for(let r of e){let i,n;typeof r!="string"?(i=r,n=i.hook):(i={},n=r),n=n.trim();let[o,s]=n.split(":"),a=n.replace(/\(.+/,""),f=Object.assign(i,{signature:s});switch(o){case"vs":t.vertex[a]=f;break;case"fs":t.fragment[a]=f;break;default:throw new Error(o)}}return t}function Fo(e,t){return{name:Il(e,t),language:"glsl",version:Fl(e)}}function Il(e){let t=arguments.length>1&&arguments[1]!==void 0?arguments[1]:"unnamed",i=/#define[\s*]SHADER_NAME[\s*]([A-Za-z0-9_-]+)[\s*]/.exec(e);return i?i[1]:t}function Fl(e){let t=100,r=e.match(/[^\s]+/g);if(r&&r.length>=2&&r[0]==="#version"){let i=parseInt(r[1],10);Number.isFinite(i)&&(t=i)}if(t!==100&&t!==300)throw new Error(`Invalid GLSL version ${t}`);return t}var Bo=`
253
-
254
- ${ot}
255
- `,Cl=C`\
164
+ void main() {
165
+ #ifdef FLOAT_TARGET
166
+ dataFilter_value *= float(filterIndices != filterPrevIndices);
167
+ gl_Position = vec4(0.0, 0.0, 0.0, 1.0);
168
+ vColor = vec4(0.0, 0.0, 0.0, 1.0);
169
+ #else
170
+ // Float texture is not supported: pack result into 4 channels x 256 px x 64px
171
+ dataFilter_value *= float(filterIndices.x != filterPrevIndices.x);
172
+ float col = filterIndices.x;
173
+ float row = filterIndices.y * 4.0;
174
+ float channel = floor(row);
175
+ row = fract(row);
176
+ vColor = component * vec4(bvec4(channel == 0.0, channel == 1.0, channel == 2.0, channel == 3.0));
177
+ gl_Position = vec4(col * 2.0 - 1.0, row * 2.0 - 1.0, 0.0, 1.0);
178
+ #endif
179
+ gl_PointSize = 1.0;
180
+ }
181
+ `,Zt=`#version 300 es
182
+ #define SHADER_NAME data-filter-fragment-shader
256
183
  precision highp float;
257
- `;function Do(e){let{vs:t,fs:r}=e,i=at(e.modules||[]);switch(e.platformInfo.shaderLanguage){case"glsl":return{vs:Mo(e.platformInfo,{...e,source:t,stage:"vertex",modules:i}),fs:Mo(e.platformInfo,{...e,source:r,stage:"fragment",modules:i}),getUniforms:No(i)};case"wgsl":return{vs:Co(e.platformInfo,{...e,source:t,stage:"vertex",modules:i}),fs:Co(e.platformInfo,{...e,source:r,stage:"fragment",modules:i}),getUniforms:No(i)}}}function Co(e,t){let{source:r,stage:i,modules:n,defines:o={},hookFunctions:s=[],inject:a={},log:f}=t;ie(typeof r=="string","shader source must be a string");let l=r,c={};n.forEach(h=>{Object.assign(c,h.getDefines())}),Object.assign(c,o);let u="",_=fi(s),d={},p={},g={};for(let h in a){let R=typeof a[h]=="string"?{injection:a[h],order:0}:a[h],A=/^(v|f)s:(#)?([\w-]+)$/.exec(h);if(A){let m=A[2],B=A[3];m?B==="decl"?p[h]=[R]:g[h]=[R]:d[h]=[R]}else g[h]=[R]}for(let h of n){f&&h.checkDeprecations(l,f);let R=h.getModuleSource(i,"wgsl");u+=R;let A=h.injections[i];for(let m in A){let B=/^(v|f)s:#([\w-]+)$/.exec(m);if(B){let $=B[2]==="decl"?p:g;$[m]=$[m]||[],$[m].push(A[m])}else d[m]=d[m]||[],d[m].push(A[m])}}return u+=Bo,u=st(u,i,p),u+=ai(_[i],d),u+=l,u=st(u,i,g),u}function Mo(e,t){let{id:r,source:i,stage:n,language:o="glsl",modules:s,defines:a={},hookFunctions:f=[],inject:l={},prologue:c=!0,log:u}=t;ie(typeof i=="string","shader source must be a string");let _=o==="glsl"?Fo(i).version:-1,d=e.shaderLanguageVersion,p=_===100?"#version 100":"#version 300 es",h=i.split(`
258
- `).slice(1).join(`
259
- `),R={};s.forEach(D=>{Object.assign(R,D.getDefines())}),Object.assign(R,a);let A="";switch(o){case"wgsl":break;case"glsl":A=c?`${p}
260
184
 
261
- // ----- PROLOGUE -------------------------
262
- ${Ml({id:r,source:i,stage:n})}
263
- ${`#define SHADER_TYPE_${n.toUpperCase()}`}
264
- ${mo(e)}
265
- ${So(e)}
266
- ${n==="fragment"?Cl:""}
267
-
268
- // ----- APPLICATION DEFINES -------------------------
269
-
270
- ${Nl(R)}
185
+ in vec4 vColor;
271
186
 
272
- `:`${p}
273
- `;break}let m=fi(f),B={},X={},$={};for(let D in l){let ce=typeof l[D]=="string"?{injection:l[D],order:0}:l[D],q=/^(v|f)s:(#)?([\w-]+)$/.exec(D);if(q){let W=q[2],ye=q[3];W?ye==="decl"?X[D]=[ce]:$[D]=[ce]:B[D]=[ce]}else $[D]=[ce]}for(let D of s){u&&D.checkDeprecations(h,u);let ce=D.getModuleSource(n);A+=ce;let q=D.injections[n];for(let W in q){let ye=/^(v|f)s:#([\w-]+)$/.exec(W);if(ye){let Oe=ye[2]==="decl"?X:$;Oe[W]=Oe[W]||[],Oe[W].push(q[W])}else B[W]=B[W]||[],B[W].push(q[W])}}return A+="// ----- MAIN SHADER SOURCE -------------------------",A+=Bo,A=st(A,n,X),A+=ai(m[n],B),A+=h,A=st(A,n,$),o==="glsl"&&_!==d&&(A=Oo(A,d,n)),A.trim()}function No(e){return function(r){let i={};for(let n of e){let o=n.getUniforms(r,i);Object.assign(i,o)}return i}}function Ml(e){let{id:t,source:r,stage:i}=e;return t&&r.indexOf("SHADER_NAME")===-1?`
274
- #define SHADER_NAME ${t}_${i}
187
+ out vec4 fragColor;
275
188
 
276
- `:""}function Nl(){let e=arguments.length>0&&arguments[0]!==void 0?arguments[0]:{},t="";for(let r in e){let i=e[r];(i||Number.isFinite(i))&&(t+=`#define ${r.toUpperCase()} ${e[r]}
277
- `)}return t}function Uo(e){if(!e.vs)throw new Error("no vertex shader");let t=wo(e.platformInfo,e.vs),r;return e.fs&&(r=wo(e.platformInfo,e.fs)),{...e,vs:t,fs:r}}function wo(e,t){if(typeof t=="string")return t;switch(e.type){case"webgpu":if(t!=null&&t.wgsl)return t.wgsl;throw new Error("WebGPU does not support GLSL shaders");default:if(t!=null&&t.glsl)return t.glsl;throw new Error("WebGL does not support WGSL shaders")}}var Y=class{constructor(){this._hookFunctions=[],this._defaultModules=[]}static getDefaultShaderAssembler(){return Y.defaultShaderAssembler=Y.defaultShaderAssembler||new Y,Y.defaultShaderAssembler}addDefaultModule(t){this._defaultModules.find(r=>r.name===(typeof t=="string"?t:t.name))||this._defaultModules.push(t)}removeDefaultModule(t){let r=typeof t=="string"?t:t.name;this._defaultModules=this._defaultModules.filter(i=>i.name!==r)}addShaderHook(t,r){r&&(t=Object.assign(r,{hook:t})),this._hookFunctions.push(t)}assembleShaders(t){let r=this._getModuleList(t.modules),i=this._hookFunctions,n=Uo(t);return{...Do({platformInfo:t.platformInfo,...n,modules:r,hookFunctions:i}),modules:r}}_getModuleList(){let t=arguments.length>0&&arguments[0]!==void 0?arguments[0]:[],r=new Array(this._defaultModules.length+t.length),i={},n=0;for(let o=0,s=this._defaultModules.length;o<s;++o){let a=this._defaultModules[o],f=a.name;r[n++]=a,i[f]=!0}for(let o=0,s=t.length;o<s;++o){let a=t[o],f=a.name;i[f]||(r[n++]=a,i[f]=!0)}return r.length=n,z.instantiateModules(r)}};Y.defaultShaderAssembler=void 0;function zt(e){let t=arguments.length>1&&arguments[1]!==void 0?arguments[1]:[],r=arguments.length>2&&arguments[2]!==void 0?arguments[2]:0,i=Math.fround(e),n=e-i;return t[r]=i,t[r+1]=n,t}function li(e){return e-Math.fround(e)}function ci(e){let t=new Float32Array(32);for(let r=0;r<4;++r)for(let i=0;i<4;++i){let n=r*4+i;zt(e[i*4+r],t,n*2)}return t}var Vo=C`\
189
+ void main() {
190
+ if (dataFilter_value < 0.5) {
191
+ discard;
192
+ }
193
+ fragColor = vColor;
194
+ }
195
+ `;function ze(e){let t=e.gl;return Boolean(t.getExtension("EXT_float_blend")&&(t.getExtension("EXT_color_buffer_float")||t.getExtension("WEBGL_color_buffer_float")))}function Ze(e,t){return t?e.createFramebuffer({width:1,height:1,colorAttachments:[e.createTexture({format:e.info.type==="webgl2"?"rgba32float":"rgba8unorm",type:E.FLOAT,mipmaps:!1})]}):e.createFramebuffer({width:256,height:64,colorAttachments:[e.createTexture({format:"rgba8unorm",type:E.FLOAT,mipmaps:!1})]})}function qe(e,t,_){return t.defines.NON_INSTANCED_MODEL=1,_&&(t.defines.FLOAT_TARGET=1),new je.Model(e,{id:"data-filter-aggregation-model",vertexCount:1,isInstanced:!1,drawMode:E.POINTS,vs:zt,fs:Zt,...t})}var Qe={blend:!0,blendFunc:[E.ONE,E.ONE,E.ONE,E.ONE],blendEquation:[E.FUNC_ADD,E.FUNC_ADD],depthTest:!1};var Qt={getFilterValue:{type:"accessor",value:0},onFilteredItemsChange:{type:"function",value:null,optional:!0},filterEnabled:!0,filterRange:[-1,1],filterSoftRange:null,filterTransformSize:!0,filterTransformColor:!0},Je={1:"float",2:"vec2",3:"vec3",4:"vec4"},L=class extends $e.LayerExtension{constructor({filterSize:t=1,fp64:_=!1,countItems:r=!1}={}){if(!Je[t])throw new Error("filterSize out of range");super({filterSize:t,fp64:_,countItems:r})}getShaders(t){let{filterSize:_,fp64:r}=t.opts;return{modules:[r?we:ke],defines:{DATAFILTER_TYPE:Je[_],DATAFILTER_DOUBLE:Boolean(r)}}}initializeState(t,_){let r=this.getAttributeManager();r&&r.add({filterValues:{size:_.opts.filterSize,type:_.opts.fp64?E.DOUBLE:E.FLOAT,accessor:"getFilterValue",shaderAttributes:{filterValues:{divisor:0},instanceFilterValues:{divisor:1}}}});let{device:o}=this.context;if(r&&_.opts.countItems){let s=ze(o);r.add({filterIndices:{size:s?1:2,vertexOffset:1,type:E.UNSIGNED_BYTE,normalized:!0,accessor:(R,{index:l})=>{let T=R&&R.__source?R.__source.index:l;return s?(T+1)%255:[(T+1)%255,Math.floor(T/255)%255]},shaderAttributes:{filterPrevIndices:{vertexOffset:0},filterIndices:{vertexOffset:1}}}});let i=Ze(o,s),a=qe(o,_.getShaders.call(this,_),s);this.setState({filterFBO:i,filterModel:a})}}updateState({props:t,oldProps:_}){if(this.state.filterModel){let o=this.getAttributeManager().attributes.filterValues.needsUpdate()||t.filterEnabled!==_.filterEnabled||t.filterRange!==_.filterRange||t.filterSoftRange!==_.filterSoftRange;o&&this.setState({filterNeedsUpdate:o})}}draw(t,_){let r=this.state.filterFBO,o=this.state.filterModel,s=this.state.filterNeedsUpdate,{onFilteredItemsChange:i}=this.props;if(s&&i&&o){let{attributes:{filterValues:a,filterIndices:R}}=this.getAttributeManager();o.setVertexCount(this.getNumInstances()),this.context.device.clearWebGL({framebuffer:r,color:[0,0,0,0]}),o.updateModuleSettings(t.moduleParameters),o.setAttributes({...a.getValue(),...R?.getValue()}),o.device.withParametersWebGL({framebuffer:r,...Qe,viewport:[0,0,r.width,r.height]},()=>{o.draw(this.context.renderPass)});let l=o.device.readPixelsToArrayWebGL(r),T=0;for(let A=0;A<l.length;A++)T+=l[A];i({id:this.id,count:T}),this.state.filterNeedsUpdate=!1}}finalizeState(){let t=this.state.filterFBO,_=this.state.filterModel;t?.destroy(),_?.destroy()}},v=L;(()=>{L.defaultProps=Qt})(),(()=>{L.extensionName="DataFilterExtension"})();var g=c(n(),1);var G=e=>`${e}`;function ee(e){let t=arguments.length>1&&arguments[1]!==void 0?arguments[1]:[],_=arguments.length>2&&arguments[2]!==void 0?arguments[2]:0,r=Math.fround(e),o=e-r;return t[_]=r,t[_+1]=o,t}function Ie(e){return e-Math.fround(e)}function Me(e){let t=new Float32Array(32);for(let _=0;_<4;++_)for(let r=0;r<4;++r){let o=_*4+r;ee(e[r*4+_],t,o*2)}return t}var me=G`\
278
196
  uniform float ONE;
279
197
 
280
198
  /*
@@ -440,7 +358,7 @@ vec2 sqrt_fp64(vec2 a) {
440
358
  return sum_fp64(vec2(yn, 0.0), prod);
441
359
  #endif
442
360
  }
443
- `;var ko=C`\
361
+ `;var Le=G`\
444
362
  const vec2 E_FP64 = vec2(2.7182817459106445e+00, 8.254840366817007e-08);
445
363
  const vec2 LOG2_FP64 = vec2(0.6931471824645996e+00, -1.9046542121259336e-09);
446
364
  const vec2 PI_FP64 = vec2(3.1415927410125732, -8.742278012618954e-8);
@@ -1110,55 +1028,12 @@ void mat4_vec4_mul_fp64(vec2 b[16], vec2 a[4], out vec2 out_val[4]) {
1110
1028
  vec4_dot_fp64(a, tmp, out_val[i]);
1111
1029
  }
1112
1030
  }
1113
- `;var Bl={ONE:1};function Dl(){return Bl}var Wo={name:"fp64-arithmetic",vs:Vo,getUniforms:Dl,fp64ify:zt,fp64LowPart:li,fp64ifyMatrix4:ci},lt={name:"fp64",vs:ko,dependencies:[Wo],fp64ify:zt,fp64LowPart:li,fp64ifyMatrix4:ci};var pT=1/Math.PI*180,hT=1/180*Math.PI,wl={EPSILON:1e-12,debug:!1,precision:4,printTypes:!1,printDegrees:!1,printRowMajor:!0,_cartographicRadians:!1};globalThis.mathgl=globalThis.mathgl||{config:{...wl}};var ct=globalThis.mathgl.config;function ui(e){return Array.isArray(e)||ArrayBuffer.isView(e)&&!(e instanceof DataView)}function Be(e,t,r){let i=ct.EPSILON;r&&(ct.EPSILON=r);try{if(e===t)return!0;if(ui(e)&&ui(t)){if(e.length!==t.length)return!1;for(let n=0;n<e.length;++n)if(!Be(e[n],t[n]))return!1;return!0}return e&&e.equals?e.equals(t):t&&t.equals?t.equals(e):typeof e=="number"&&typeof t=="number"?Math.abs(e-t)<=ct.EPSILON*Math.max(1,Math.abs(e),Math.abs(t)):!1}finally{ct.EPSILON=i}}var ut=typeof Float32Array<"u"?Float32Array:Array,_i=Math.random;function Yt(e){return e>=0?Math.round(e):e%.5===0?Math.floor(e):Math.round(e)}var TT=Math.PI/180;var $t={};Ni($t,{add:()=>Xl,angle:()=>uc,bezier:()=>ic,ceil:()=>Ll,clone:()=>Vl,copy:()=>Wl,create:()=>Ho,cross:()=>Gl,dist:()=>Rc,distance:()=>zo,div:()=>Ac,divide:()=>Ko,dot:()=>pi,equals:()=>hc,exactEquals:()=>pc,floor:()=>jl,forEach:()=>mc,fromValues:()=>kl,hermite:()=>rc,inverse:()=>Ql,len:()=>Ec,length:()=>Xo,lerp:()=>ec,max:()=>zl,min:()=>Kl,mul:()=>Tc,multiply:()=>jo,negate:()=>Zl,normalize:()=>Jl,random:()=>nc,rotateX:()=>fc,rotateY:()=>lc,rotateZ:()=>cc,round:()=>Yl,scale:()=>$l,scaleAndAdd:()=>ql,set:()=>Hl,slerp:()=>tc,sqrDist:()=>bc,sqrLen:()=>vc,squaredDistance:()=>Yo,squaredLength:()=>$o,str:()=>dc,sub:()=>gc,subtract:()=>Lo,transformMat3:()=>sc,transformMat4:()=>oc,transformQuat:()=>ac,zero:()=>_c});function Ho(){let e=new ut(3);return ut!=Float32Array&&(e[0]=0,e[1]=0,e[2]=0),e}function Vl(e){let t=new ut(3);return t[0]=e[0],t[1]=e[1],t[2]=e[2],t}function Xo(e){let t=e[0],r=e[1],i=e[2];return Math.sqrt(t*t+r*r+i*i)}function kl(e,t,r){let i=new ut(3);return i[0]=e,i[1]=t,i[2]=r,i}function Wl(e,t){return e[0]=t[0],e[1]=t[1],e[2]=t[2],e}function Hl(e,t,r,i){return e[0]=t,e[1]=r,e[2]=i,e}function Xl(e,t,r){return e[0]=t[0]+r[0],e[1]=t[1]+r[1],e[2]=t[2]+r[2],e}function Lo(e,t,r){return e[0]=t[0]-r[0],e[1]=t[1]-r[1],e[2]=t[2]-r[2],e}function jo(e,t,r){return e[0]=t[0]*r[0],e[1]=t[1]*r[1],e[2]=t[2]*r[2],e}function Ko(e,t,r){return e[0]=t[0]/r[0],e[1]=t[1]/r[1],e[2]=t[2]/r[2],e}function Ll(e,t){return e[0]=Math.ceil(t[0]),e[1]=Math.ceil(t[1]),e[2]=Math.ceil(t[2]),e}function jl(e,t){return e[0]=Math.floor(t[0]),e[1]=Math.floor(t[1]),e[2]=Math.floor(t[2]),e}function Kl(e,t,r){return e[0]=Math.min(t[0],r[0]),e[1]=Math.min(t[1],r[1]),e[2]=Math.min(t[2],r[2]),e}function zl(e,t,r){return e[0]=Math.max(t[0],r[0]),e[1]=Math.max(t[1],r[1]),e[2]=Math.max(t[2],r[2]),e}function Yl(e,t){return e[0]=Yt(t[0]),e[1]=Yt(t[1]),e[2]=Yt(t[2]),e}function $l(e,t,r){return e[0]=t[0]*r,e[1]=t[1]*r,e[2]=t[2]*r,e}function ql(e,t,r,i){return e[0]=t[0]+r[0]*i,e[1]=t[1]+r[1]*i,e[2]=t[2]+r[2]*i,e}function zo(e,t){let r=t[0]-e[0],i=t[1]-e[1],n=t[2]-e[2];return Math.sqrt(r*r+i*i+n*n)}function Yo(e,t){let r=t[0]-e[0],i=t[1]-e[1],n=t[2]-e[2];return r*r+i*i+n*n}function $o(e){let t=e[0],r=e[1],i=e[2];return t*t+r*r+i*i}function Zl(e,t){return e[0]=-t[0],e[1]=-t[1],e[2]=-t[2],e}function Ql(e,t){return e[0]=1/t[0],e[1]=1/t[1],e[2]=1/t[2],e}function Jl(e,t){let r=t[0],i=t[1],n=t[2],o=r*r+i*i+n*n;return o>0&&(o=1/Math.sqrt(o)),e[0]=t[0]*o,e[1]=t[1]*o,e[2]=t[2]*o,e}function pi(e,t){return e[0]*t[0]+e[1]*t[1]+e[2]*t[2]}function Gl(e,t,r){let i=t[0],n=t[1],o=t[2],s=r[0],a=r[1],f=r[2];return e[0]=n*f-o*a,e[1]=o*s-i*f,e[2]=i*a-n*s,e}function ec(e,t,r,i){let n=t[0],o=t[1],s=t[2];return e[0]=n+i*(r[0]-n),e[1]=o+i*(r[1]-o),e[2]=s+i*(r[2]-s),e}function tc(e,t,r,i){let n=Math.acos(Math.min(Math.max(pi(t,r),-1),1)),o=Math.sin(n),s=Math.sin((1-i)*n)/o,a=Math.sin(i*n)/o;return e[0]=s*t[0]+a*r[0],e[1]=s*t[1]+a*r[1],e[2]=s*t[2]+a*r[2],e}function rc(e,t,r,i,n,o){let s=o*o,a=s*(2*o-3)+1,f=s*(o-2)+o,l=s*(o-1),c=s*(3-2*o);return e[0]=t[0]*a+r[0]*f+i[0]*l+n[0]*c,e[1]=t[1]*a+r[1]*f+i[1]*l+n[1]*c,e[2]=t[2]*a+r[2]*f+i[2]*l+n[2]*c,e}function ic(e,t,r,i,n,o){let s=1-o,a=s*s,f=o*o,l=a*s,c=3*o*a,u=3*f*s,_=f*o;return e[0]=t[0]*l+r[0]*c+i[0]*u+n[0]*_,e[1]=t[1]*l+r[1]*c+i[1]*u+n[1]*_,e[2]=t[2]*l+r[2]*c+i[2]*u+n[2]*_,e}function nc(e,t){t=t===void 0?1:t;let r=_i()*2*Math.PI,i=_i()*2-1,n=Math.sqrt(1-i*i)*t;return e[0]=Math.cos(r)*n,e[1]=Math.sin(r)*n,e[2]=i*t,e}function oc(e,t,r){let i=t[0],n=t[1],o=t[2],s=r[3]*i+r[7]*n+r[11]*o+r[15];return s=s||1,e[0]=(r[0]*i+r[4]*n+r[8]*o+r[12])/s,e[1]=(r[1]*i+r[5]*n+r[9]*o+r[13])/s,e[2]=(r[2]*i+r[6]*n+r[10]*o+r[14])/s,e}function sc(e,t,r){let i=t[0],n=t[1],o=t[2];return e[0]=i*r[0]+n*r[3]+o*r[6],e[1]=i*r[1]+n*r[4]+o*r[7],e[2]=i*r[2]+n*r[5]+o*r[8],e}function ac(e,t,r){let i=r[0],n=r[1],o=r[2],s=r[3],a=t[0],f=t[1],l=t[2],c=n*l-o*f,u=o*a-i*l,_=i*f-n*a,d=n*_-o*u,p=o*c-i*_,g=i*u-n*c,h=s*2;return c*=h,u*=h,_*=h,d*=2,p*=2,g*=2,e[0]=a+c+d,e[1]=f+u+p,e[2]=l+_+g,e}function fc(e,t,r,i){let n=[],o=[];return n[0]=t[0]-r[0],n[1]=t[1]-r[1],n[2]=t[2]-r[2],o[0]=n[0],o[1]=n[1]*Math.cos(i)-n[2]*Math.sin(i),o[2]=n[1]*Math.sin(i)+n[2]*Math.cos(i),e[0]=o[0]+r[0],e[1]=o[1]+r[1],e[2]=o[2]+r[2],e}function lc(e,t,r,i){let n=[],o=[];return n[0]=t[0]-r[0],n[1]=t[1]-r[1],n[2]=t[2]-r[2],o[0]=n[2]*Math.sin(i)+n[0]*Math.cos(i),o[1]=n[1],o[2]=n[2]*Math.cos(i)-n[0]*Math.sin(i),e[0]=o[0]+r[0],e[1]=o[1]+r[1],e[2]=o[2]+r[2],e}function cc(e,t,r,i){let n=[],o=[];return n[0]=t[0]-r[0],n[1]=t[1]-r[1],n[2]=t[2]-r[2],o[0]=n[0]*Math.cos(i)-n[1]*Math.sin(i),o[1]=n[0]*Math.sin(i)+n[1]*Math.cos(i),o[2]=n[2],e[0]=o[0]+r[0],e[1]=o[1]+r[1],e[2]=o[2]+r[2],e}function uc(e,t){let r=e[0],i=e[1],n=e[2],o=t[0],s=t[1],a=t[2],f=Math.sqrt((r*r+i*i+n*n)*(o*o+s*s+a*a)),l=f&&pi(e,t)/f;return Math.acos(Math.min(Math.max(l,-1),1))}function _c(e){return e[0]=0,e[1]=0,e[2]=0,e}function dc(e){return"vec3(".concat(e[0],", ").concat(e[1],", ").concat(e[2],")")}function pc(e,t){return e[0]===t[0]&&e[1]===t[1]&&e[2]===t[2]}function hc(e,t){let r=e[0],i=e[1],n=e[2],o=t[0],s=t[1],a=t[2];return Math.abs(r-o)<=1e-6*Math.max(1,Math.abs(r),Math.abs(o))&&Math.abs(i-s)<=1e-6*Math.max(1,Math.abs(i),Math.abs(s))&&Math.abs(n-a)<=1e-6*Math.max(1,Math.abs(n),Math.abs(a))}var gc=Lo,Tc=jo,Ac=Ko,Rc=zo,bc=Yo,Ec=Xo,vc=$o,mc=function(){let e=Ho();return function(t,r,i,n,o,s){let a,f;for(r||(r=3),i||(i=0),n?f=Math.min(n*r+i,t.length):f=t.length,a=i;a<f;a+=r)e[0]=t[a],e[1]=t[a+1],e[2]=t[a+2],o(e,e,s),t[a]=e[0],t[a+1]=e[1],t[a+2]=e[2];return t}}();var hi=T(E(),1);var qt=class{constructor(t){this.modules=void 0,this.moduleUniforms=void 0,this.moduleBindings=void 0,this.moduleUniformsChanged=void 0;let r=at(Object.values(t));hi.log.log(1,"Creating ShaderInputs with modules",r.map(i=>i.name))(),this.modules=t,this.moduleUniforms={},this.moduleBindings={};for(let[i,n]of Object.entries(t)){let o=i;this.moduleUniforms[o]=n.defaultUniforms||{},this.moduleBindings[o]={}}}destroy(){}setProps(t){for(let i of Object.keys(t)){var r;let n=i,o=t[n],s=this.modules[n];if(!s){hi.log.warn(`Module ${i} not found`)();continue}let a=this.moduleUniforms[n],f=((r=s.getUniforms)===null||r===void 0?void 0:r.call(s,o,this.moduleUniforms[n]))||o;this.moduleUniforms[n]={...a,...f}}}getModules(){return Object.values(this.modules)}getUniformValues(){return this.moduleUniforms}getBindings(){let t={};for(let r of Object.values(this.moduleBindings))Object.assign(t,r);return t}getDebugTable(){let t={};for(let[i,n]of Object.entries(this.moduleUniforms))for(let[o,s]of Object.entries(n)){var r;t[`${i}.${o}`]={type:(r=this.modules[i].uniformTypes)===null||r===void 0?void 0:r[o],value:String(s)}}return t}};var le=T(E(),1),Zt=class{constructor(t){this.id=void 0,this.userData={},this.topology=void 0,this.bufferLayout=[],this.vertexCount=void 0,this.indices=void 0,this.attributes=void 0,this.id=t.id||(0,le.uid)("geometry"),this.topology=t.topology,this.indices=t.indices||null,this.attributes=t.attributes,this.vertexCount=t.vertexCount,this.bufferLayout=t.bufferLayout||[],this.indices&&(0,le.assert)(this.indices.usage===le.Buffer.INDEX)}destroy(){var t;this.indices.destroy(),this.attributes.positions.destroy(),this.attributes.normals.destroy(),this.attributes.texCoords.destroy(),(t=this.attributes.colors)===null||t===void 0||t.destroy()}getVertexCount(){return this.vertexCount}getAttributes(){return this.attributes}getIndexes(){return this.indices}_calculateVertexCount(t){return t.byteLength/12}};function qo(e,t){if(t instanceof Zt)return t;let r=Sc(e,t),{attributes:i,bufferLayout:n}=yc(e,t);return new Zt({topology:t.topology||"triangle-list",bufferLayout:n,vertexCount:t.vertexCount,indices:r,attributes:i})}function Sc(e,t){if(!t.indices)return;let r=t.indices.value;return e.createBuffer({usage:le.Buffer.INDEX,data:r})}function yc(e,t){let r=[],i={};for(let[o,s]of Object.entries(t.attributes)){let a=o;switch(o){case"POSITION":a="positions";break;case"NORMAL":a="normals";break;case"TEXCOORD_0":a="texCoords";break;case"COLOR_0":a="colors";break}i[a]=e.createBuffer({data:s.value,id:`${o}-buffer`});let{value:f,size:l,normalized:c}=s;r.push({name:a,format:(0,le.getVertexFormatFromAttribute)(f,l,c)})}let n=t._calculateVertexCount(t.attributes,t.indices);return{attributes:i,bufferLayout:r,vertexCount:n}}var Zo=T(E(),1),he=class{static getDefaultPipelineFactory(t){return t._lumaData.defaultPipelineFactory=t._lumaData.defaultPipelineFactory||new he(t),t._lumaData.defaultPipelineFactory}constructor(t){this.device=void 0,this._hashCounter=0,this._hashes={},this._useCounts={},this._pipelineCache={},this.device=t}createRenderPipeline(t){let r={...he.defaultProps,...t},i=this._hashRenderPipeline({...r});if(!this._pipelineCache[i]){let n=this.device.createRenderPipeline({...r,vs:this.device.createShader({stage:"vertex",source:r.vs}),fs:r.fs?this.device.createShader({stage:"fragment",source:r.fs}):null});n.hash=i,this._pipelineCache[i]=n,this._useCounts[i]=0}return this._useCounts[i]++,this._pipelineCache[i]}release(t){let r=t.hash;this._useCounts[r]--,this._useCounts[r]===0&&(this._pipelineCache[r].destroy(),delete this._pipelineCache[r],delete this._useCounts[r])}_createRenderPipeline(t){if(!t.fs)throw new Error("fs");return this.device.createRenderPipeline({...t,vs:this.device.createShader({stage:"vertex",source:t.vs}),fs:t.fs?this.device.createShader({stage:"fragment",source:t.fs}):null})}_hashRenderPipeline(t){let r=this._getHash(t.vs),i=t.fs?this._getHash(t.fs):0,n="-";switch(this.device.info.type){case"webgpu":let o=this._getHash(JSON.stringify(t.parameters)),s=this._getHash(JSON.stringify(t.bufferLayout));return`${r}/${i}V${n}T${t.topology}P${o}BL${s}}`;default:return`${r}/${i}V${n}`}}_getHash(t){return this._hashes[t]===void 0&&(this._hashes[t]=this._hashCounter++),this._hashes[t]}};he.defaultProps={...Zo.RenderPipeline.defaultProps,vs:void 0,fs:void 0};function Qo(e){let t=arguments.length>1&&arguments[1]!==void 0?arguments[1]:"",r={},i=`Shader Layout for ${t}`;for(let n of e.attributes)if(n){let o=`${n.location} ${n.name}: ${n.type}`;r[`in ${o}`]={[i]:n.stepMode||"vertex"}}for(let n of e.varyings||[]){let o=`${n.location} ${n.name}`;r[`out ${o}`]={[i]:JSON.stringify(n.accessor)}}return r}var De=2,Oc=1e4,ge=class{constructor(t,r){var i,n,o;this.device=void 0,this.id=void 0,this.vs=void 0,this.fs=void 0,this.pipelineFactory=void 0,this.userData={},this.parameters=void 0,this.topology=void 0,this.bufferLayout=void 0,this.vertexCount=void 0,this.instanceCount=0,this.indexBuffer=null,this.bufferAttributes={},this.constantAttributes={},this.bindings={},this.uniforms={},this.vertexArray=void 0,this.transformFeedback=null,this.pipeline=void 0,this.shaderInputs=void 0,this._uniformStore=void 0,this._pipelineNeedsUpdate="newly created",this._attributeInfos={},this._gpuGeometry=null,this._getModuleUniforms=void 0,this.props=void 0,this._lastLogTime=0,this._logOpen=!1,this.props={...ge.defaultProps,...r},r=this.props,this.id=r.id||(0,I.uid)("model"),this.device=t,Object.assign(this.userData,r.userData);let s=Object.fromEntries(((i=this.props.modules)===null||i===void 0?void 0:i.map(_=>[_.name,_]))||[]);this.setShaderInputs(r.shaderInputs||new qt(s));let a=xc(t),f=(((n=this.props.modules)===null||n===void 0?void 0:n.length)>0?this.props.modules:(o=this.shaderInputs)===null||o===void 0?void 0:o.getModules())||[],{vs:l,fs:c,getUniforms:u}=this.props.shaderAssembler.assembleShaders({platformInfo:a,...this.props,modules:f});if(this.vs=l,this.fs=c,this._getModuleUniforms=u,this.vertexCount=this.props.vertexCount,this.instanceCount=this.props.instanceCount,this.topology=this.props.topology,this.bufferLayout=this.props.bufferLayout,this.parameters=this.props.parameters,r.geometry&&(this._gpuGeometry=this.setGeometry(r.geometry)),this.pipelineFactory=r.pipelineFactory||he.getDefaultPipelineFactory(this.device),this.pipeline=this._updatePipeline(),this.vertexArray=t.createVertexArray({renderPipeline:this.pipeline}),this._gpuGeometry&&this._setGeometryAttributes(this._gpuGeometry),r.vertexCount&&this.setVertexCount(r.vertexCount),r.instanceCount&&this.setInstanceCount(r.instanceCount),r.indices)throw new Error("Model.props.indices removed. Use props.indexBuffer");r.indexBuffer&&this.setIndexBuffer(r.indexBuffer),r.attributes&&this.setAttributes(r.attributes),r.constantAttributes&&this.setConstantAttributes(r.constantAttributes),r.bindings&&this.setBindings(r.bindings),r.uniforms&&this.setUniforms(r.uniforms),r.moduleSettings&&(I.log.warn("Model.props.moduleSettings is deprecated. Use Model.shaderInputs.setProps()")(),this.updateModuleSettings(r.moduleSettings)),r.transformFeedback&&(this.transformFeedback=r.transformFeedback),Object.seal(this)}destroy(){this.pipelineFactory.release(this.pipeline),this._uniformStore.destroy()}predraw(){this.updateShaderInputs()}draw(t){this.predraw();try{this._logDrawCallStart(),this.pipeline=this._updatePipeline(),this.pipeline.setBindings(this.bindings),this.pipeline.setUniforms(this.uniforms),this.pipeline.draw({renderPass:t,vertexArray:this.vertexArray,vertexCount:this.vertexCount,instanceCount:this.instanceCount,transformFeedback:this.transformFeedback})}finally{this._logDrawCallEnd()}}setGeometry(t){let r=t&&qo(this.device,t);return this.setTopology(r.topology||"triangle-list"),this.bufferLayout=Jo(this.bufferLayout,r.bufferLayout),this.vertexArray&&this._setGeometryAttributes(r),r}_setGeometryAttributes(t){this.vertexCount=t.vertexCount,this.setAttributes(t.attributes,"ignore-unknown"),this.setIndexBuffer(t.indices)}setTopology(t){t!==this.topology&&(this.topology=t,this._setPipelineNeedsUpdate("topology"))}setBufferLayout(t){this.bufferLayout=this._gpuGeometry?Jo(t,this._gpuGeometry.bufferLayout):t,this._setPipelineNeedsUpdate("bufferLayout"),this.pipeline=this._updatePipeline(),this.vertexArray=this.device.createVertexArray({renderPipeline:this.pipeline}),this._gpuGeometry&&this._setGeometryAttributes(this._gpuGeometry)}setParameters(t){(0,I.deepEqual)(t,this.parameters,2)||(this.parameters=t,this._setPipelineNeedsUpdate("parameters"))}setVertexCount(t){this.vertexCount=t}setInstanceCount(t){this.instanceCount=t}setShaderInputs(t){this.shaderInputs=t,this._uniformStore=new Te.UniformStore(this.shaderInputs.modules);for(let r of Object.keys(this.shaderInputs.modules)){let i=this._uniformStore.getManagedUniformBuffer(this.device,r);this.bindings[`${r}Uniforms`]=i}}updateShaderInputs(){this._uniformStore.setUniforms(this.shaderInputs.getUniformValues())}updateModuleSettings(t){I.log.warn("Model.updateModuleSettings is deprecated. Use Model.shaderInputs.setProps()")();let{bindings:r,uniforms:i}=(0,I.splitUniformsAndBindings)(this._getModuleUniforms(t));Object.assign(this.bindings,r),Object.assign(this.uniforms,i)}setBindings(t){Object.assign(this.bindings,t)}setUniforms(t){this.pipeline.setUniforms(t),Object.assign(this.uniforms,t)}setIndexBuffer(t){this.vertexArray.setIndexBuffer(t)}setTransformFeedback(t){this.transformFeedback=t}setAttributes(t,r){t.indices&&I.log.warn(`Model:${this.id} setAttributes() - indexBuffer should be set using setIndexBuffer()`)();for(let[i,n]of Object.entries(t)){let o=this.bufferLayout.find(f=>Go(f).includes(i));if(!o){I.log.warn(`Model(${this.id}): Missing layout for buffer "${i}".`)();continue}let s=Go(o),a=!1;for(let f of s){let l=this._attributeInfos[f];l&&(this.vertexArray.setBuffer(l.location,n),a=!0)}!a&&r!=="ignore-unknown"&&I.log.warn(`Model(${this.id}): Ignoring buffer "${n.id}" for unknown attribute "${i}"`)()}}setConstantAttributes(t){for(let[r,i]of Object.entries(t)){let n=this._attributeInfos[r];n?this.vertexArray.setConstant(n.location,i):I.log.warn(`Model "${this.id}: Ignoring constant supplied for unknown attribute "${r}"`)()}}_setPipelineNeedsUpdate(t){this._pipelineNeedsUpdate=this._pipelineNeedsUpdate||t}_updatePipeline(){return this._pipelineNeedsUpdate&&(this.pipeline&&I.log.log(1,`Model ${this.id}: Recreating pipeline because "${this._pipelineNeedsUpdate}".`)(),this._pipelineNeedsUpdate=!1,this.pipeline=this.device.createRenderPipeline({...this.props,bufferLayout:this.bufferLayout,topology:this.topology,parameters:this.parameters,vs:this.device.createShader({id:"{$this.id}-vertex",stage:"vertex",source:this.vs}),fs:this.fs?this.device.createShader({id:"{$this.id}-fragment",stage:"fragment",source:this.fs}):null}),this._attributeInfos=(0,es.getAttributeInfosFromLayouts)(this.pipeline.shaderLayout,this.bufferLayout)),this.pipeline}_logDrawCallStart(){let t=I.log.level>3?0:Oc;Date.now()-this._lastLogTime<t||(this._lastLogTime=Date.now(),this._logOpen=!0,I.log.group(De,`>>> DRAWING MODEL ${this.id}`,{collapsed:I.log.level<=2})())}_logDrawCallEnd(){if(this._logOpen){let t=Qo(this.pipeline.shaderLayout);I.log.table(De,t)();let r=this.shaderInputs.getDebugTable();for(let[n,o]of Object.entries(this.uniforms))r[n]={value:o};I.log.table(De,r)();let i=this._getAttributeDebugTable();I.log.table(De,this._attributeInfos)(),I.log.table(De,i)(),I.log.groupEnd(De)(),this._logOpen=!1}}_getAttributeDebugTable(){let t={};for(let[r,i]of Object.entries(this._attributeInfos))t[i.location]={name:r,type:i.shaderType,values:this._getBufferOrConstantValues(this.vertexArray.attributes[i.location],i.bufferDataType)};if(this.vertexArray.indexBuffer){let{indexBuffer:r}=this.vertexArray,i=r.indexType==="uint32"?new Uint32Array(r.debugData):new Uint16Array(r.debugData);t.indices={name:"indices",type:r.indexType,values:i.toString()}}return t}_getBufferOrConstantValues(t,r){let i=(0,Te.getTypedArrayFromDataType)(r);return(t instanceof Te.Buffer?new i(t.debugData):t).toString()}};ge.defaultProps={...Te.RenderPipeline.defaultProps,vs:null,fs:null,id:"unnamed",handle:void 0,userData:{},defines:{},modules:[],moduleSettings:void 0,geometry:null,indexBuffer:null,attributes:{},constantAttributes:{},varyings:[],shaderInputs:void 0,pipelineFactory:void 0,transformFeedback:void 0,shaderAssembler:Y.getDefaultShaderAssembler()};function Jo(e,t){let r=[...e];for(let i of t){let n=r.findIndex(o=>o.name===i.name);n<0?r.push(i):r[n]=i}return r}function xc(e){return{type:e.info.type,shaderLanguage:e.info.shadingLanguage,shaderLanguageVersion:e.info.shadingLanguageVersion,gpu:e.info.gpu,features:e.features}}function Go(e){var t;return e.attributes?(t=e.attributes)===null||t===void 0?void 0:t.map(r=>r.attribute):[e.name]}function ts(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var i=Object.getOwnPropertySymbols(e);t&&(i=i.filter(function(n){return Object.getOwnPropertyDescriptor(e,n).enumerable})),r.push.apply(r,i)}return r}function Pc(e){for(var t=1;t<arguments.length;t++){var r=arguments[t]!=null?arguments[t]:{};t%2?ts(Object(r),!0).forEach(function(i){Ic(e,i,r[i])}):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(r)):ts(Object(r)).forEach(function(i){Object.defineProperty(e,i,Object.getOwnPropertyDescriptor(r,i))})}return e}function Ic(e,t,r){return t in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r,e}var Fc=`#version 300 es
1114
- #define SHADER_NAME data-filter-vertex-shader
1115
-
1116
- #ifdef FLOAT_TARGET
1117
- in float filterIndices;
1118
- in float filterPrevIndices;
1119
- #else
1120
- in vec2 filterIndices;
1121
- in vec2 filterPrevIndices;
1122
- #endif
1123
-
1124
- out vec4 vColor;
1125
- const float component = 1.0 / 255.0;
1126
-
1127
- void main() {
1128
- #ifdef FLOAT_TARGET
1129
- dataFilter_value *= float(filterIndices != filterPrevIndices);
1130
- gl_Position = vec4(0.0, 0.0, 0.0, 1.0);
1131
- vColor = vec4(0.0, 0.0, 0.0, 1.0);
1132
- #else
1133
- // Float texture is not supported: pack result into 4 channels x 256 px x 64px
1134
- dataFilter_value *= float(filterIndices.x != filterPrevIndices.x);
1135
- float col = filterIndices.x;
1136
- float row = filterIndices.y * 4.0;
1137
- float channel = floor(row);
1138
- row = fract(row);
1139
- vColor = component * vec4(bvec4(channel == 0.0, channel == 1.0, channel == 2.0, channel == 3.0));
1140
- gl_Position = vec4(col * 2.0 - 1.0, row * 2.0 - 1.0, 0.0, 1.0);
1141
- #endif
1142
- gl_PointSize = 1.0;
1143
- }
1144
- `,Cc=`#version 300 es
1145
- #define SHADER_NAME data-filter-fragment-shader
1146
- precision highp float;
1147
-
1148
- in vec4 vColor;
1149
-
1150
- out vec4 fragColor;
1151
-
1152
- void main() {
1153
- if (dataFilter_value < 0.5) {
1154
- discard;
1155
- }
1156
- fragColor = vColor;
1157
- }
1158
- `;function rs(e){var t=e.gl;return Boolean(t.getExtension("EXT_float_blend")&&(t.getExtension("EXT_color_buffer_float")||t.getExtension("WEBGL_color_buffer_float")))}function is(e,t){return t?e.createFramebuffer({width:1,height:1,colorAttachments:[e.createTexture({format:e.info.type==="webgl2"?"rgba32float":"rgba8unorm",type:5126,mipmaps:!1})]}):e.createFramebuffer({width:256,height:64,colorAttachments:[e.createTexture({format:"rgba8unorm",type:5126,mipmaps:!1})]})}function ns(e,t,r){return t.defines.NON_INSTANCED_MODEL=1,r&&(t.defines.FLOAT_TARGET=1),new ge(e,Pc({id:"data-filter-aggregation-model",vertexCount:1,isInstanced:!1,drawMode:0,vs:Fc,fs:Cc},t))}var os={blend:!0,blendFunc:[1,1,1,1],blendEquation:[32774,32774],depthTest:!1};function Jt(e){return typeof Symbol=="function"&&typeof Symbol.iterator=="symbol"?Jt=function(r){return typeof r}:Jt=function(r){return r&&typeof Symbol=="function"&&r.constructor===Symbol&&r!==Symbol.prototype?"symbol":typeof r},Jt(e)}function ss(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var i=Object.getOwnPropertySymbols(e);t&&(i=i.filter(function(n){return Object.getOwnPropertyDescriptor(e,n).enumerable})),r.push.apply(r,i)}return r}function Qt(e){for(var t=1;t<arguments.length;t++){var r=arguments[t]!=null?arguments[t]:{};t%2?ss(Object(r),!0).forEach(function(i){Nc(e,i,r[i])}):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(r)):ss(Object(r)).forEach(function(i){Object.defineProperty(e,i,Object.getOwnPropertyDescriptor(r,i))})}return e}function Nc(e,t,r){return t in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r,e}function Bc(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}function Dc(e,t){if(typeof t!="function"&&t!==null)throw new TypeError("Super expression must either be null or a function");e.prototype=Object.create(t&&t.prototype,{constructor:{value:e,writable:!0,configurable:!0}}),t&&gi(e,t)}function gi(e,t){return gi=Object.setPrototypeOf||function(i,n){return i.__proto__=n,i},gi(e,t)}function wc(e){var t=kc();return function(){var i=Gt(e),n;if(t){var o=Gt(this).constructor;n=Reflect.construct(i,arguments,o)}else n=i.apply(this,arguments);return Uc(this,n)}}function Uc(e,t){if(t&&(Jt(t)==="object"||typeof t=="function"))return t;if(t!==void 0)throw new TypeError("Derived constructors may only return object or undefined");return Vc(e)}function Vc(e){if(e===void 0)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return e}function kc(){if(typeof Reflect>"u"||!Reflect.construct||Reflect.construct.sham)return!1;if(typeof Proxy=="function")return!0;try{return Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],function(){})),!0}catch{return!1}}function Gt(e){return Gt=Object.setPrototypeOf?Object.getPrototypeOf:function(r){return r.__proto__||Object.getPrototypeOf(r)},Gt(e)}var Wc={getFilterValue:{type:"accessor",value:0},onFilteredItemsChange:{type:"function",value:null,optional:!0},filterEnabled:!0,filterRange:[-1,1],filterSoftRange:null,filterTransformSize:!0,filterTransformColor:!0},as={1:"float",2:"vec2",3:"vec3",4:"vec4"},er=function(e){Dc(r,e);var t=wc(r);function r(){var n=arguments.length>0&&arguments[0]!==void 0?arguments[0]:{},o=n.filterSize,s=o===void 0?1:o,a=n.fp64,f=a===void 0?!1:a,l=n.countItems,c=l===void 0?!1:l;if(Bc(this,r),!as[s])throw new Error("filterSize out of range");return t.call(this,{filterSize:s,fp64:f,countItems:c})}var i=r.prototype;return i.getShaders=function(o){var s=o.opts,a=s.filterSize,f=s.fp64;return{modules:[f?_o:uo],defines:{DATAFILTER_TYPE:as[a],DATAFILTER_DOUBLE:Boolean(f)}}},i.initializeState=function(o,s){var a=this.getAttributeManager();a&&a.add({filterValues:{size:s.opts.filterSize,type:s.opts.fp64?5130:5126,accessor:"getFilterValue",shaderAttributes:{filterValues:{divisor:0},instanceFilterValues:{divisor:1}}}});var f=this.context.device;if(a&&s.opts.countItems){var l=rs(f);a.add({filterIndices:{size:l?1:2,vertexOffset:1,type:5121,normalized:!0,accessor:function(d,p){var g=p.index,h=d&&d.__source?d.__source.index:g;return l?(h+1)%255:[(h+1)%255,Math.floor(h/255)%255]},shaderAttributes:{filterPrevIndices:{vertexOffset:0},filterIndices:{vertexOffset:1}}}});var c=is(f,l),u=ns(f,s.getShaders.call(this,s),l);this.setState({filterFBO:c,filterModel:u})}},i.updateState=function(o){var s=o.props,a=o.oldProps;if(this.state.filterModel){var f=this.getAttributeManager(),l=f.attributes.filterValues.needsUpdate()||s.filterEnabled!==a.filterEnabled||s.filterRange!==a.filterRange||s.filterSoftRange!==a.filterSoftRange;l&&this.setState({filterNeedsUpdate:l})}},i.draw=function(o,s){var a=this,f=this.state.filterFBO,l=this.state.filterModel,c=this.state.filterNeedsUpdate,u=this.props.onFilteredItemsChange;if(c&&u&&l){var _=this.getAttributeManager(),d=_.attributes,p=d.filterValues,g=d.filterIndices;l.setVertexCount(this.getNumInstances()),ii(this.context.device,{framebuffer:f,color:[0,0,0,0]}),l.updateModuleSettings(o.moduleParameters),l.setAttributes(Qt(Qt({},p.getValue()),g?.getValue())),P(l.device,Qt(Qt({framebuffer:f},os),{},{viewport:[0,0,f.width,f.height]}),function(){l.draw(a.context.renderPass)});for(var h=ni(f),R=0,A=0;A<h.length;A++)R+=h[A];u({id:this.id,count:R}),this.state.filterNeedsUpdate=!1}},i.finalizeState=function(){var o=this.state.filterFBO,s=this.state.filterModel;o?.destroy(),s?.destroy()},r}(fs.LayerExtension);er.defaultProps=Wc;er.extensionName="DataFilterExtension";var _t=T(S());var tr=T(S());var ls=`
1031
+ `;var Jt={ONE:1};function $t(){return Jt}var Ge={name:"fp64-arithmetic",vs:me,getUniforms:$t,fp64ify:ee,fp64LowPart:Ie,fp64ifyMatrix4:Me},te={name:"fp64",vs:Le,dependencies:[Ge],fp64ify:ee,fp64LowPart:Ie,fp64ifyMatrix4:Me};var wr=1/Math.PI*180,Kr=1/180*Math.PI,mt={EPSILON:1e-12,debug:!1,precision:4,printTypes:!1,printDegrees:!1,printRowMajor:!0,_cartographicRadians:!1};globalThis.mathgl=globalThis.mathgl||{config:{...mt}};var U=globalThis.mathgl.config;function Oe(e){return Array.isArray(e)||ArrayBuffer.isView(e)&&!(e instanceof DataView)}function F(e,t,_){let r=U.EPSILON;_&&(U.EPSILON=_);try{if(e===t)return!0;if(Oe(e)&&Oe(t)){if(e.length!==t.length)return!1;for(let o=0;o<e.length;++o)if(!F(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)<=U.EPSILON*Math.max(1,Math.abs(e),Math.abs(t)):!1}finally{U.EPSILON=r}}var x=typeof Float32Array<"u"?Float32Array:Array,Ce=Math.random;function _e(e){return e>=0?Math.round(e):e%.5===0?Math.floor(e):Math.round(e)}var jr=Math.PI/180;var re={};Ue(re,{add:()=>r_,angle:()=>B_,bezier:()=>N_,ceil:()=>o_,clone:()=>Gt,copy:()=>t_,create:()=>et,cross:()=>n_,dist:()=>y_,distance:()=>st,div:()=>b_,divide:()=>ot,dot:()=>Pe,equals:()=>U_,exactEquals:()=>v_,floor:()=>s_,forEach:()=>W_,fromValues:()=>e_,hermite:()=>S_,inverse:()=>f_,len:()=>X_,length:()=>tt,lerp:()=>E_,max:()=>a_,min:()=>i_,mul:()=>g_,multiply:()=>rt,negate:()=>A_,normalize:()=>c_,random:()=>d_,rotateX:()=>C_,rotateY:()=>F_,rotateZ:()=>P_,round:()=>R_,scale:()=>l_,scaleAndAdd:()=>T_,set:()=>__,slerp:()=>p_,sqrDist:()=>H_,sqrLen:()=>V_,squaredDistance:()=>it,squaredLength:()=>at,str:()=>D_,sub:()=>x_,subtract:()=>_t,transformMat3:()=>M_,transformMat4:()=>I_,transformQuat:()=>O_,zero:()=>h_});function et(){let e=new x(3);return x!=Float32Array&&(e[0]=0,e[1]=0,e[2]=0),e}function Gt(e){let t=new x(3);return t[0]=e[0],t[1]=e[1],t[2]=e[2],t}function tt(e){let t=e[0],_=e[1],r=e[2];return Math.sqrt(t*t+_*_+r*r)}function e_(e,t,_){let r=new x(3);return r[0]=e,r[1]=t,r[2]=_,r}function t_(e,t){return e[0]=t[0],e[1]=t[1],e[2]=t[2],e}function __(e,t,_,r){return e[0]=t,e[1]=_,e[2]=r,e}function r_(e,t,_){return e[0]=t[0]+_[0],e[1]=t[1]+_[1],e[2]=t[2]+_[2],e}function _t(e,t,_){return e[0]=t[0]-_[0],e[1]=t[1]-_[1],e[2]=t[2]-_[2],e}function rt(e,t,_){return e[0]=t[0]*_[0],e[1]=t[1]*_[1],e[2]=t[2]*_[2],e}function ot(e,t,_){return e[0]=t[0]/_[0],e[1]=t[1]/_[1],e[2]=t[2]/_[2],e}function o_(e,t){return e[0]=Math.ceil(t[0]),e[1]=Math.ceil(t[1]),e[2]=Math.ceil(t[2]),e}function s_(e,t){return e[0]=Math.floor(t[0]),e[1]=Math.floor(t[1]),e[2]=Math.floor(t[2]),e}function i_(e,t,_){return e[0]=Math.min(t[0],_[0]),e[1]=Math.min(t[1],_[1]),e[2]=Math.min(t[2],_[2]),e}function a_(e,t,_){return e[0]=Math.max(t[0],_[0]),e[1]=Math.max(t[1],_[1]),e[2]=Math.max(t[2],_[2]),e}function R_(e,t){return e[0]=_e(t[0]),e[1]=_e(t[1]),e[2]=_e(t[2]),e}function l_(e,t,_){return e[0]=t[0]*_,e[1]=t[1]*_,e[2]=t[2]*_,e}function T_(e,t,_,r){return e[0]=t[0]+_[0]*r,e[1]=t[1]+_[1]*r,e[2]=t[2]+_[2]*r,e}function st(e,t){let _=t[0]-e[0],r=t[1]-e[1],o=t[2]-e[2];return Math.sqrt(_*_+r*r+o*o)}function it(e,t){let _=t[0]-e[0],r=t[1]-e[1],o=t[2]-e[2];return _*_+r*r+o*o}function at(e){let t=e[0],_=e[1],r=e[2];return t*t+_*_+r*r}function A_(e,t){return e[0]=-t[0],e[1]=-t[1],e[2]=-t[2],e}function f_(e,t){return e[0]=1/t[0],e[1]=1/t[1],e[2]=1/t[2],e}function c_(e,t){let _=t[0],r=t[1],o=t[2],s=_*_+r*r+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 Pe(e,t){return e[0]*t[0]+e[1]*t[1]+e[2]*t[2]}function n_(e,t,_){let r=t[0],o=t[1],s=t[2],i=_[0],a=_[1],R=_[2];return e[0]=o*R-s*a,e[1]=s*i-r*R,e[2]=r*a-o*i,e}function E_(e,t,_,r){let o=t[0],s=t[1],i=t[2];return e[0]=o+r*(_[0]-o),e[1]=s+r*(_[1]-s),e[2]=i+r*(_[2]-i),e}function p_(e,t,_,r){let o=Math.acos(Math.min(Math.max(Pe(t,_),-1),1)),s=Math.sin(o),i=Math.sin((1-r)*o)/s,a=Math.sin(r*o)/s;return e[0]=i*t[0]+a*_[0],e[1]=i*t[1]+a*_[1],e[2]=i*t[2]+a*_[2],e}function S_(e,t,_,r,o,s){let i=s*s,a=i*(2*s-3)+1,R=i*(s-2)+s,l=i*(s-1),T=i*(3-2*s);return e[0]=t[0]*a+_[0]*R+r[0]*l+o[0]*T,e[1]=t[1]*a+_[1]*R+r[1]*l+o[1]*T,e[2]=t[2]*a+_[2]*R+r[2]*l+o[2]*T,e}function N_(e,t,_,r,o,s){let i=1-s,a=i*i,R=s*s,l=a*i,T=3*s*a,A=3*R*i,f=R*s;return e[0]=t[0]*l+_[0]*T+r[0]*A+o[0]*f,e[1]=t[1]*l+_[1]*T+r[1]*A+o[1]*f,e[2]=t[2]*l+_[2]*T+r[2]*A+o[2]*f,e}function d_(e,t){t=t===void 0?1:t;let _=Ce()*2*Math.PI,r=Ce()*2-1,o=Math.sqrt(1-r*r)*t;return e[0]=Math.cos(_)*o,e[1]=Math.sin(_)*o,e[2]=r*t,e}function I_(e,t,_){let r=t[0],o=t[1],s=t[2],i=_[3]*r+_[7]*o+_[11]*s+_[15];return i=i||1,e[0]=(_[0]*r+_[4]*o+_[8]*s+_[12])/i,e[1]=(_[1]*r+_[5]*o+_[9]*s+_[13])/i,e[2]=(_[2]*r+_[6]*o+_[10]*s+_[14])/i,e}function M_(e,t,_){let r=t[0],o=t[1],s=t[2];return e[0]=r*_[0]+o*_[3]+s*_[6],e[1]=r*_[1]+o*_[4]+s*_[7],e[2]=r*_[2]+o*_[5]+s*_[8],e}function O_(e,t,_){let r=_[0],o=_[1],s=_[2],i=_[3],a=t[0],R=t[1],l=t[2],T=o*l-s*R,A=s*a-r*l,f=r*R-o*a,p=o*f-s*A,S=s*T-r*f,Q=r*A-o*T,N=i*2;return T*=N,A*=N,f*=N,p*=2,S*=2,Q*=2,e[0]=a+T+p,e[1]=R+A+S,e[2]=l+f+Q,e}function C_(e,t,_,r){let o=[],s=[];return o[0]=t[0]-_[0],o[1]=t[1]-_[1],o[2]=t[2]-_[2],s[0]=o[0],s[1]=o[1]*Math.cos(r)-o[2]*Math.sin(r),s[2]=o[1]*Math.sin(r)+o[2]*Math.cos(r),e[0]=s[0]+_[0],e[1]=s[1]+_[1],e[2]=s[2]+_[2],e}function F_(e,t,_,r){let o=[],s=[];return o[0]=t[0]-_[0],o[1]=t[1]-_[1],o[2]=t[2]-_[2],s[0]=o[2]*Math.sin(r)+o[0]*Math.cos(r),s[1]=o[1],s[2]=o[2]*Math.cos(r)-o[0]*Math.sin(r),e[0]=s[0]+_[0],e[1]=s[1]+_[1],e[2]=s[2]+_[2],e}function P_(e,t,_,r){let o=[],s=[];return o[0]=t[0]-_[0],o[1]=t[1]-_[1],o[2]=t[2]-_[2],s[0]=o[0]*Math.cos(r)-o[1]*Math.sin(r),s[1]=o[0]*Math.sin(r)+o[1]*Math.cos(r),s[2]=o[2],e[0]=s[0]+_[0],e[1]=s[1]+_[1],e[2]=s[2]+_[2],e}function B_(e,t){let _=e[0],r=e[1],o=e[2],s=t[0],i=t[1],a=t[2],R=Math.sqrt((_*_+r*r+o*o)*(s*s+i*i+a*a)),l=R&&Pe(e,t)/R;return Math.acos(Math.min(Math.max(l,-1),1))}function h_(e){return e[0]=0,e[1]=0,e[2]=0,e}function D_(e){return"vec3(".concat(e[0],", ").concat(e[1],", ").concat(e[2],")")}function v_(e,t){return e[0]===t[0]&&e[1]===t[1]&&e[2]===t[2]}function U_(e,t){let _=e[0],r=e[1],o=e[2],s=t[0],i=t[1],a=t[2];return Math.abs(_-s)<=1e-6*Math.max(1,Math.abs(_),Math.abs(s))&&Math.abs(r-i)<=1e-6*Math.max(1,Math.abs(r),Math.abs(i))&&Math.abs(o-a)<=1e-6*Math.max(1,Math.abs(o),Math.abs(a))}var x_=_t,g_=rt,b_=ot,y_=st,H_=it,X_=tt,V_=at,W_=function(){let e=et();return function(t,_,r,o,s,i){let a,R;for(_||(_=3),r||(r=0),o?R=Math.min(o*_+r,t.length):R=t.length,a=r;a<R;a+=_)e[0]=t[a],e[1]=t[a+1],e[2]=t[a+2],s(e,e,i),t[a]=e[0],t[a+1]=e[1],t[a+2]=e[2];return t}}();var oe=c(n(),1);var Rt=`
1159
1032
  const vec2 WORLD_SCALE_FP64 = vec2(81.4873275756836, 0.0000032873668232014097);
1160
1033
 
1161
1034
  uniform vec2 project_uViewProjectionMatrixFP64[16];
1035
+
1036
+ // longitude: lnglat_fp64.xy; latitude: lnglat_fp64.zw
1162
1037
  void mercatorProject_fp64(vec4 lnglat_fp64, out vec2 out_val[2]) {
1163
1038
 
1164
1039
  #if defined(NVIDIA_FP64_WORKAROUND)
@@ -1203,10 +1078,13 @@ vec4 project_common_position_to_clipspace_fp64(vec2 vertex_pos_modelspace[4]) {
1203
1078
  vec4 project_position_to_clipspace(
1204
1079
  vec3 position, vec3 position64xyLow, vec3 offset, out vec4 commonPosition
1205
1080
  ) {
1081
+ // This is the local offset to the instance position
1206
1082
  vec2 offset64[4];
1207
1083
  vec4_fp64(vec4(offset, 0.0), offset64);
1208
1084
 
1209
1085
  float z = project_size(position.z);
1086
+
1087
+ // Apply web mercator projection (depends on coordinate system imn use)
1210
1088
  vec2 projectedPosition64xy[2];
1211
1089
  project_position_fp64(position.xy, position64xyLow.xy, projectedPosition64xy);
1212
1090
 
@@ -1229,7 +1107,7 @@ vec4 project_position_to_clipspace(
1229
1107
  position, position64xyLow, offset, commonPosition
1230
1108
  );
1231
1109
  }
1232
- `;var Hc=lt.fp64ify,Xc=lt.fp64ifyMatrix4,rr={name:"project64",dependencies:[tr.project,lt],vs:ls,getUniforms:jc},Lc=(0,tr._memoize)(Kc);function jc(e){if(e&&"viewport"in e){var t=e.viewport,r=t.viewProjectionMatrix,i=t.scale;return Lc({viewProjectionMatrix:r,scale:i})}return{}}function Kc(e){var t=e.viewProjectionMatrix,r=e.scale,i=Xc(t),n=Hc(r);return{project_uViewProjectionMatrixFP64:i,project64_uViewProjectionMatrix:i,project64_uScale:n}}function ir(e){return typeof Symbol=="function"&&typeof Symbol.iterator=="symbol"?ir=function(r){return typeof r}:ir=function(r){return r&&typeof Symbol=="function"&&r.constructor===Symbol&&r!==Symbol.prototype?"symbol":typeof r},ir(e)}function zc(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}function Yc(e,t){if(typeof t!="function"&&t!==null)throw new TypeError("Super expression must either be null or a function");e.prototype=Object.create(t&&t.prototype,{constructor:{value:e,writable:!0,configurable:!0}}),t&&Ti(e,t)}function Ti(e,t){return Ti=Object.setPrototypeOf||function(i,n){return i.__proto__=n,i},Ti(e,t)}function $c(e){var t=Qc();return function(){var i=nr(e),n;if(t){var o=nr(this).constructor;n=Reflect.construct(i,arguments,o)}else n=i.apply(this,arguments);return qc(this,n)}}function qc(e,t){if(t&&(ir(t)==="object"||typeof t=="function"))return t;if(t!==void 0)throw new TypeError("Derived constructors may only return object or undefined");return Zc(e)}function Zc(e){if(e===void 0)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return e}function Qc(){if(typeof Reflect>"u"||!Reflect.construct||Reflect.construct.sham)return!1;if(typeof Proxy=="function")return!0;try{return Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],function(){})),!0}catch{return!1}}function nr(e){return nr=Object.setPrototypeOf?Object.getPrototypeOf:function(r){return r.__proto__||Object.getPrototypeOf(r)},nr(e)}var Ai=function(e){Yc(r,e);var t=$c(r);function r(){return zc(this,r),t.apply(this,arguments)}var i=r.prototype;return i.getShaders=function(){var o=this.props.coordinateSystem;if(o!==_t.COORDINATE_SYSTEM.LNGLAT&&o!==_t.COORDINATE_SYSTEM.DEFAULT)throw new Error("fp64: coordinateSystem must be LNGLAT");return{modules:[rr]}},r}(_t.LayerExtension);Ai.extensionName="Fp64Extension";var dt=T(S());var cs={inject:{"vs:#decl":`
1110
+ `;var{fp64ify:u_,fp64ifyMatrix4:k_}=te,se={name:"project64",dependencies:[oe.project,te],vs:Rt,getUniforms:K_},w_=(0,oe._memoize)(Y_);function K_(e){if(e&&"viewport"in e){let{viewProjectionMatrix:t,scale:_}=e.viewport;return w_({viewProjectionMatrix:t,scale:_})}return{}}function Y_({viewProjectionMatrix:e,scale:t}){let _=k_(e),r=u_(t);return{project_uViewProjectionMatrixFP64:_,project64_uViewProjectionMatrix:_,project64_uScale:r}}var Be=class extends g.LayerExtension{getShaders(){let{coordinateSystem:t}=this.props;if(t!==g.COORDINATE_SYSTEM.LNGLAT&&t!==g.COORDINATE_SYSTEM.DEFAULT)throw new Error("fp64: coordinateSystem must be LNGLAT");return{modules:[se]}}},b=Be;(()=>{Be.extensionName="Fp64Extension"})();var y=c(n(),1);var lt={inject:{"vs:#decl":`
1233
1111
  in vec2 instanceDashArrays;
1234
1112
  in float instanceDashOffsets;
1235
1113
  out vec2 vDashArray;
@@ -1266,6 +1144,7 @@ in float vDashOffset;
1266
1144
  discard;
1267
1145
  }
1268
1146
  } else {
1147
+ // caps are rounded, test the distance to solid ends
1269
1148
  float distToEnd = length(vec2(
1270
1149
  min(unitOffset - solidLength, unitLength - unitOffset),
1271
1150
  vPathPosition.x
@@ -1278,7 +1157,7 @@ in float vDashOffset;
1278
1157
  }
1279
1158
  }
1280
1159
  }
1281
- `}},us={inject:{"vs:#decl":`
1160
+ `}},Tt={inject:{"vs:#decl":`
1282
1161
  in float instanceOffsets;
1283
1162
  `,"vs:DECKGL_FILTER_SIZE":`
1284
1163
  float offsetWidth = abs(instanceOffsets * 2.0) + 1.0;
@@ -1295,7 +1174,7 @@ in float instanceOffsets;
1295
1174
  if (isInside == 0.0) {
1296
1175
  discard;
1297
1176
  }
1298
- `}};function or(e){return typeof Symbol=="function"&&typeof Symbol.iterator=="symbol"?or=function(r){return typeof r}:or=function(r){return r&&typeof Symbol=="function"&&r.constructor===Symbol&&r!==Symbol.prototype?"symbol":typeof r},or(e)}function Jc(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}function Gc(e,t){if(typeof t!="function"&&t!==null)throw new TypeError("Super expression must either be null or a function");e.prototype=Object.create(t&&t.prototype,{constructor:{value:e,writable:!0,configurable:!0}}),t&&Ri(e,t)}function Ri(e,t){return Ri=Object.setPrototypeOf||function(i,n){return i.__proto__=n,i},Ri(e,t)}function eu(e){var t=iu();return function(){var i=sr(e),n;if(t){var o=sr(this).constructor;n=Reflect.construct(i,arguments,o)}else n=i.apply(this,arguments);return tu(this,n)}}function tu(e,t){if(t&&(or(t)==="object"||typeof t=="function"))return t;if(t!==void 0)throw new TypeError("Derived constructors may only return object or undefined");return ru(e)}function ru(e){if(e===void 0)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return e}function iu(){if(typeof Reflect>"u"||!Reflect.construct||Reflect.construct.sham)return!1;if(typeof Proxy=="function")return!0;try{return Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],function(){})),!0}catch{return!1}}function sr(e){return sr=Object.setPrototypeOf?Object.getPrototypeOf:function(r){return r.__proto__||Object.getPrototypeOf(r)},sr(e)}var nu={getDashArray:{type:"accessor",value:[0,0]},getOffset:{type:"accessor",value:0},dashJustified:!1,dashGapPickable:!1},ar=function(e){Gc(r,e);var t=eu(r);function r(){var n=arguments.length>0&&arguments[0]!==void 0?arguments[0]:{},o=n.dash,s=o===void 0?!1:o,a=n.offset,f=a===void 0?!1:a,l=n.highPrecisionDash,c=l===void 0?!1:l;return Jc(this,r),t.call(this,{dash:s||c,offset:f,highPrecisionDash:c})}var i=r.prototype;return i.isEnabled=function(o){return"pathTesselator"in o.state},i.getShaders=function(o){if(!o.isEnabled(this))return null;var s={};return o.opts.dash&&(s=(0,dt._mergeShaders)(s,cs)),o.opts.offset&&(s=(0,dt._mergeShaders)(s,us)),s},i.initializeState=function(o,s){var a=this.getAttributeManager();!a||!s.isEnabled(this)||(s.opts.dash&&a.addInstanced({instanceDashArrays:{size:2,accessor:"getDashArray"},instanceDashOffsets:s.opts.highPrecisionDash?{size:1,accessor:"getPath",transform:s.getDashOffsets.bind(this)}:{size:1,update:function(l){l.constant=!0,l.value=[0]}}}),s.opts.offset&&a.addInstanced({instanceOffsets:{size:1,accessor:"getOffset"}}))},i.updateState=function(o,s){var a;if(s.isEnabled(this)){var f={};s.opts.dash&&(f.dashAlignMode=this.props.dashJustified?1:0,f.dashGapPickable=Boolean(this.props.dashGapPickable)),(a=this.state.model)===null||a===void 0||a.setUniforms(f)}},i.getDashOffsets=function(o){for(var s=[0],a=this.props.positionFormat==="XY"?2:3,f=Array.isArray(o[0]),l=f?o.length:o.length/a,c,u,_=0;_<l-1;_++)c=f?o[_]:o.slice(_*a,_*a+a),c=this.projectPosition(c),_>0&&(s[_]=s[_-1]+$t.dist(u,c)),u=c;return s},r}(dt.LayerExtension);ar.defaultProps=nu;ar.extensionName="PathStyleExtension";var ds=T(S());var pt=T(S()),ou=`
1177
+ `}};var j_={getDashArray:{type:"accessor",value:[0,0]},getOffset:{type:"accessor",value:0},dashJustified:!1,dashGapPickable:!1},ie=class extends y.LayerExtension{constructor({dash:t=!1,offset:_=!1,highPrecisionDash:r=!1}={}){super({dash:t||r,offset:_,highPrecisionDash:r})}isEnabled(t){return"pathTesselator"in t.state}getShaders(t){if(!t.isEnabled(this))return null;let _={};return t.opts.dash&&(_=(0,y._mergeShaders)(_,lt)),t.opts.offset&&(_=(0,y._mergeShaders)(_,Tt)),_}initializeState(t,_){let r=this.getAttributeManager();!r||!_.isEnabled(this)||(_.opts.dash&&r.addInstanced({instanceDashArrays:{size:2,accessor:"getDashArray"},instanceDashOffsets:_.opts.highPrecisionDash?{size:1,accessor:"getPath",transform:_.getDashOffsets.bind(this)}:{size:1,update:o=>{o.constant=!0,o.value=[0]}}}),_.opts.offset&&r.addInstanced({instanceOffsets:{size:1,accessor:"getOffset"}}))}updateState(t,_){if(!_.isEnabled(this))return;let r={};_.opts.dash&&(r.dashAlignMode=this.props.dashJustified?1:0,r.dashGapPickable=Boolean(this.props.dashGapPickable)),this.state.model?.setUniforms(r)}getDashOffsets(t){let _=[0],r=this.props.positionFormat==="XY"?2:3,o=Array.isArray(t[0]),s=o?t.length:t.length/r,i,a;for(let R=0;R<s-1;R++)i=o?t[R]:t.slice(R*r,R*r+r),i=this.projectPosition(i),R>0&&(_[R]=_[R-1]+re.dist(a,i)),a=i;return _}},H=ie;(()=>{ie.defaultProps=j_})(),(()=>{ie.extensionName="PathStyleExtension"})();var ft=c(n(),1);var X=c(n(),1),z_=`
1299
1178
  #ifdef NON_INSTANCED_MODEL
1300
1179
  #define FILL_PATTERN_FRAME_ATTRIB fillPatternFrames
1301
1180
  #define FILL_PATTERN_SCALE_ATTRIB fillPatternScales
@@ -1316,7 +1195,7 @@ uniform vec2 fill_patternTextureSize;
1316
1195
  out vec2 fill_uv;
1317
1196
  out vec4 fill_patternBounds;
1318
1197
  out vec4 fill_patternPlacement;
1319
- `,su=`
1198
+ `,Z_=`
1320
1199
  uniform bool fill_patternEnabled;
1321
1200
  uniform bool fill_patternMask;
1322
1201
  uniform sampler2D fill_patternTexture;
@@ -1328,7 +1207,7 @@ in vec4 fill_patternPlacement;
1328
1207
  in vec2 fill_uv;
1329
1208
 
1330
1209
  const float FILL_UV_SCALE = 512.0 / 40000000.0;
1331
- `,au={"vs:DECKGL_FILTER_GL_POSITION":`
1210
+ `,q_={"vs:DECKGL_FILTER_GL_POSITION":`
1332
1211
  fill_uv = geometry.position.xy;
1333
1212
  `,"vs:DECKGL_FILTER_COLOR":`
1334
1213
  if (fill_patternEnabled) {
@@ -1350,13 +1229,13 @@ const float FILL_UV_SCALE = 512.0 / 40000000.0;
1350
1229
  color.rgb = patternColor.rgb;
1351
1230
  }
1352
1231
  }
1353
- `};function fu(e,t){if(!e)return{};if("fillPatternTexture"in e){var r=e.fillPatternTexture;return{fill_patternTexture:r,fill_patternTextureSize:[r.width,r.height]}}if("viewport"in e){var i=e.fillPatternMask,n=i===void 0?!0:i,o=e.fillPatternEnabled,s=o===void 0?!0:o,a=t,f=a.project_uCommonOrigin,l=[(0,pt.fp64LowPart)(f[0]),(0,pt.fp64LowPart)(f[1])];return{fill_uvCoordinateOrigin:f.slice(0,2),fill_uvCoordinateOrigin64Low:l,fill_patternMask:n,fill_patternEnabled:s}}return{}}var _s={name:"fill-pattern",vs:ou,fs:su,inject:au,dependencies:[pt.project],getUniforms:fu};function fr(e){return typeof Symbol=="function"&&typeof Symbol.iterator=="symbol"?fr=function(r){return typeof r}:fr=function(r){return r&&typeof Symbol=="function"&&r.constructor===Symbol&&r!==Symbol.prototype?"symbol":typeof r},fr(e)}function lu(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}function cu(e,t){if(typeof t!="function"&&t!==null)throw new TypeError("Super expression must either be null or a function");e.prototype=Object.create(t&&t.prototype,{constructor:{value:e,writable:!0,configurable:!0}}),t&&bi(e,t)}function bi(e,t){return bi=Object.setPrototypeOf||function(i,n){return i.__proto__=n,i},bi(e,t)}function uu(e){var t=pu();return function(){var i=lr(e),n;if(t){var o=lr(this).constructor;n=Reflect.construct(i,arguments,o)}else n=i.apply(this,arguments);return _u(this,n)}}function _u(e,t){if(t&&(fr(t)==="object"||typeof t=="function"))return t;if(t!==void 0)throw new TypeError("Derived constructors may only return object or undefined");return du(e)}function du(e){if(e===void 0)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return e}function pu(){if(typeof Reflect>"u"||!Reflect.construct||Reflect.construct.sham)return!1;if(typeof Proxy=="function")return!0;try{return Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],function(){})),!0}catch{return!1}}function lr(e){return lr=Object.setPrototypeOf?Object.getPrototypeOf:function(r){return r.__proto__||Object.getPrototypeOf(r)},lr(e)}var hu={fillPatternEnabled:!0,fillPatternAtlas:{type:"image",value:null,async:!0,parameters:{minFilter:"linear"}},fillPatternMapping:{type:"object",value:{},async:!0},fillPatternMask:!0,getFillPattern:{type:"accessor",value:function(t){return t.pattern}},getFillPatternScale:{type:"accessor",value:1},getFillPatternOffset:{type:"accessor",value:[0,0]}},cr=function(e){cu(r,e);var t=uu(r);function r(){var n=arguments.length>0&&arguments[0]!==void 0?arguments[0]:{},o=n.pattern,s=o===void 0?!1:o;return lu(this,r),t.call(this,{pattern:s})}var i=r.prototype;return i.isEnabled=function(o){return o.getAttributeManager()!==null&&!("pathTesselator"in o.state)},i.getShaders=function(o){return o.isEnabled(this)?{modules:[o.opts.pattern&&_s].filter(Boolean)}:null},i.initializeState=function(o,s){if(s.isEnabled(this)){var a=this.getAttributeManager();s.opts.pattern&&a.add({fillPatternFrames:{size:4,accessor:"getFillPattern",transform:s.getPatternFrame.bind(this),shaderAttributes:{fillPatternFrames:{divisor:0},instanceFillPatternFrames:{divisor:1}}},fillPatternScales:{size:1,accessor:"getFillPatternScale",defaultValue:1,shaderAttributes:{fillPatternScales:{divisor:0},instanceFillPatternScales:{divisor:1}}},fillPatternOffsets:{size:2,accessor:"getFillPatternOffset",shaderAttributes:{fillPatternOffsets:{divisor:0},instanceFillPatternOffsets:{divisor:1}}}}),this.setState({emptyTexture:this.context.device.createTexture({data:new Uint8Array(4),width:1,height:1})})}},i.updateState=function(o,s){var a=o.props,f=o.oldProps;s.isEnabled(this)&&a.fillPatternMapping&&a.fillPatternMapping!==f.fillPatternMapping&&this.getAttributeManager().invalidate("getFillPattern")},i.draw=function(o,s){if(s.isEnabled(this)){var a=this.props.fillPatternAtlas;this.setModuleParameters({fillPatternTexture:a||this.state.emptyTexture})}},i.finalizeState=function(){var o=this.state.emptyTexture;o?.delete()},i.getPatternFrame=function(o){var s=this.getCurrentLayer().props.fillPatternMapping,a=s&&s[o];return a?[a.x,a.y,a.width,a.height]:[0,0,0,0]},r}(ds.LayerExtension);cr.defaultProps=hu;cr.extensionName="FillStyleExtension";var ps=T(S());function ur(e){return typeof Symbol=="function"&&typeof Symbol.iterator=="symbol"?ur=function(r){return typeof r}:ur=function(r){return r&&typeof Symbol=="function"&&r.constructor===Symbol&&r!==Symbol.prototype?"symbol":typeof r},ur(e)}function gu(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}function Tu(e,t){if(typeof t!="function"&&t!==null)throw new TypeError("Super expression must either be null or a function");e.prototype=Object.create(t&&t.prototype,{constructor:{value:e,writable:!0,configurable:!0}}),t&&Ei(e,t)}function Ei(e,t){return Ei=Object.setPrototypeOf||function(i,n){return i.__proto__=n,i},Ei(e,t)}function Au(e){var t=Eu();return function(){var i=_r(e),n;if(t){var o=_r(this).constructor;n=Reflect.construct(i,arguments,o)}else n=i.apply(this,arguments);return Ru(this,n)}}function Ru(e,t){if(t&&(ur(t)==="object"||typeof t=="function"))return t;if(t!==void 0)throw new TypeError("Derived constructors may only return object or undefined");return bu(e)}function bu(e){if(e===void 0)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return e}function Eu(){if(typeof Reflect>"u"||!Reflect.construct||Reflect.construct.sham)return!1;if(typeof Proxy=="function")return!0;try{return Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],function(){})),!0}catch{return!1}}function _r(e){return _r=Object.setPrototypeOf?Object.getPrototypeOf:function(r){return r.__proto__||Object.getPrototypeOf(r)},_r(e)}var vu={clipBounds:[0,0,1,1],clipByInstance:void 0},hs=`
1232
+ `};function Q_(e,t){if(!e)return{};if("fillPatternTexture"in e){let{fillPatternTexture:_}=e;return{fill_patternTexture:_,fill_patternTextureSize:[_.width,_.height]}}if("viewport"in e){let{fillPatternMask:_=!0,fillPatternEnabled:r=!0}=e,{project_uCommonOrigin:o}=t,s=[(0,X.fp64LowPart)(o[0]),(0,X.fp64LowPart)(o[1])];return{fill_uvCoordinateOrigin:o.slice(0,2),fill_uvCoordinateOrigin64Low:s,fill_patternMask:_,fill_patternEnabled:r}}return{}}var At={name:"fill-pattern",vs:z_,fs:Z_,inject:q_,dependencies:[X.project],getUniforms:Q_};var J_={fillPatternEnabled:!0,fillPatternAtlas:{type:"image",value:null,async:!0,parameters:{minFilter:"linear"}},fillPatternMapping:{type:"object",value:{},async:!0},fillPatternMask:!0,getFillPattern:{type:"accessor",value:e=>e.pattern},getFillPatternScale:{type:"accessor",value:1},getFillPatternOffset:{type:"accessor",value:[0,0]}},ae=class extends ft.LayerExtension{constructor({pattern:t=!1}={}){super({pattern:t})}isEnabled(t){return t.getAttributeManager()!==null&&!("pathTesselator"in t.state)}getShaders(t){return t.isEnabled(this)?{modules:[t.opts.pattern&&At].filter(Boolean)}:null}initializeState(t,_){if(!_.isEnabled(this))return;let r=this.getAttributeManager();_.opts.pattern&&r.add({fillPatternFrames:{size:4,accessor:"getFillPattern",transform:_.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})})}updateState({props:t,oldProps:_},r){r.isEnabled(this)&&t.fillPatternMapping&&t.fillPatternMapping!==_.fillPatternMapping&&this.getAttributeManager().invalidate("getFillPattern")}draw(t,_){if(!_.isEnabled(this))return;let{fillPatternAtlas:r}=this.props;this.setModuleParameters({fillPatternTexture:r||this.state.emptyTexture})}finalizeState(){this.state.emptyTexture?.delete()}getPatternFrame(t){let{fillPatternMapping:_}=this.getCurrentLayer().props,r=_&&_[t];return r?[r.x,r.y,r.width,r.height]:[0,0,0,0]}},V=ae;(()=>{ae.defaultProps=J_})(),(()=>{ae.extensionName="FillStyleExtension"})();var ct=c(n(),1),$_={clipBounds:[0,0,1,1],clipByInstance:void 0},nt=`
1354
1233
  uniform vec4 clip_bounds;
1355
1234
 
1356
1235
  bool clip_isInBounds(vec2 position) {
1357
1236
  return position.x >= clip_bounds[0] && position.y >= clip_bounds[1] && position.x < clip_bounds[2] && position.y < clip_bounds[3];
1358
1237
  }
1359
- `,mu={name:"clip-vs",vs:hs},Su={"vs:#decl":`
1238
+ `,m_={name:"clip-vs",vs:nt},L_={"vs:#decl":`
1360
1239
  out float clip_isVisible;
1361
1240
  `,"vs:DECKGL_FILTER_GL_POSITION":`
1362
1241
  clip_isVisible = float(clip_isInBounds(geometry.worldPosition.xy));
@@ -1364,7 +1243,7 @@ out float clip_isVisible;
1364
1243
  in float clip_isVisible;
1365
1244
  `,"fs:DECKGL_FILTER_COLOR":`
1366
1245
  if (clip_isVisible < 0.5) discard;
1367
- `},yu={name:"clip-fs",fs:hs},Ou={"vs:#decl":`
1246
+ `},G_={name:"clip-fs",fs:nt},er={"vs:#decl":`
1368
1247
  out vec2 clip_commonPosition;
1369
1248
  `,"vs:DECKGL_FILTER_GL_POSITION":`
1370
1249
  clip_commonPosition = geometry.position.xy;
@@ -1372,7 +1251,7 @@ out vec2 clip_commonPosition;
1372
1251
  in vec2 clip_commonPosition;
1373
1252
  `,"fs:DECKGL_FILTER_COLOR":`
1374
1253
  if (!clip_isInBounds(clip_commonPosition)) discard;
1375
- `},dr=function(e){Tu(r,e);var t=Au(r);function r(){return gu(this,r),t.apply(this,arguments)}var i=r.prototype;return i.getShaders=function(){var o="instancePositions"in this.getAttributeManager().attributes;return this.props.clipByInstance!==void 0&&(o=Boolean(this.props.clipByInstance)),this.state.clipByInstance=o,o?{modules:[mu],inject:Su}:{modules:[yu],inject:Ou}},i.draw=function(o){var s=o.uniforms,a=this.props.clipBounds;if(this.state.clipByInstance)s.clip_bounds=a;else{var f=this.projectPosition([a[0],a[1],0]),l=this.projectPosition([a[2],a[3],0]);s.clip_bounds=[Math.min(f[0],l[0]),Math.min(f[1],l[1]),Math.max(f[0],l[0]),Math.max(f[1],l[1])]}},r}(ps.LayerExtension);dr.defaultProps=vu;dr.extensionName="ClipExtension";var Ns=T(S());var gs=T(S()),xu=`
1254
+ `},Re=class extends ct.LayerExtension{getShaders(){let t="instancePositions"in this.getAttributeManager().attributes;return this.props.clipByInstance!==void 0&&(t=Boolean(this.props.clipByInstance)),this.state.clipByInstance=t,t?{modules:[m_],inject:L_}:{modules:[G_],inject:er}}draw({uniforms:t}){let{clipBounds:_}=this.props;if(this.state.clipByInstance)t.clip_bounds=_;else{let r=this.projectPosition([_[0],_[1],0]),o=this.projectPosition([_[2],_[3],0]);t.clip_bounds=[Math.min(r[0],o[0]),Math.min(r[1],o[1]),Math.max(r[0],o[0]),Math.max(r[1],o[1])]}}},W=Re;(()=>{Re.defaultProps=$_})(),(()=>{Re.extensionName="ClipExtension"})();var It=c(n(),1);var Et=c(n(),1),tr=`
1376
1255
  #ifdef NON_INSTANCED_MODEL
1377
1256
  in float collisionPriorities;
1378
1257
  #else
@@ -1421,7 +1300,7 @@ float collision_isVisible(vec2 texCoords, vec3 pickingColor) {
1421
1300
  float W = 2.0 * floatN + 1.0;
1422
1301
  return pow(accumulator / (W * W), 2.2);
1423
1302
  }
1424
- `,Pu={"vs:#decl":`
1303
+ `,_r={"vs:#decl":`
1425
1304
  float collision_fade = 1.0;
1426
1305
  `,"vs:DECKGL_FILTER_GL_POSITION":`
1427
1306
  if (collision_sort) {
@@ -1444,18 +1323,13 @@ float collision_isVisible(vec2 texCoords, vec3 pickingColor) {
1444
1323
  }
1445
1324
  `,"vs:DECKGL_FILTER_COLOR":`
1446
1325
  color.a *= collision_fade;
1447
- `},Iu=function(t,r){if(!t||!("dummyCollisionMap"in t))return{};var i=t.collisionFBO,n=t.drawToCollisionMap,o=t.dummyCollisionMap;return{collision_sort:Boolean(n),collision_texture:!n&&i?i.colorAttachments[0]:o}},Ts={name:"collision",dependencies:[gs.project],vs:xu,inject:Pu,getUniforms:Iu};var Cs=T(S());var bs=T(S());function pr(e){return typeof Symbol=="function"&&typeof Symbol.iterator=="symbol"?pr=function(r){return typeof r}:pr=function(r){return r&&typeof Symbol=="function"&&r.constructor===Symbol&&r!==Symbol.prototype?"symbol":typeof r},pr(e)}function As(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var i=Object.getOwnPropertySymbols(e);t&&(i=i.filter(function(n){return Object.getOwnPropertyDescriptor(e,n).enumerable})),r.push.apply(r,i)}return r}function Rs(e){for(var t=1;t<arguments.length;t++){var r=arguments[t]!=null?arguments[t]:{};t%2?As(Object(r),!0).forEach(function(i){Fu(e,i,r[i])}):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(r)):As(Object(r)).forEach(function(i){Object.defineProperty(e,i,Object.getOwnPropertyDescriptor(r,i))})}return e}function Fu(e,t,r){return t in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r,e}function Cu(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}function Mu(e,t){if(typeof t!="function"&&t!==null)throw new TypeError("Super expression must either be null or a function");e.prototype=Object.create(t&&t.prototype,{constructor:{value:e,writable:!0,configurable:!0}}),t&&vi(e,t)}function vi(e,t){return vi=Object.setPrototypeOf||function(i,n){return i.__proto__=n,i},vi(e,t)}function Nu(e){var t=wu();return function(){var i=hr(e),n;if(t){var o=hr(this).constructor;n=Reflect.construct(i,arguments,o)}else n=i.apply(this,arguments);return Bu(this,n)}}function Bu(e,t){if(t&&(pr(t)==="object"||typeof t=="function"))return t;if(t!==void 0)throw new TypeError("Derived constructors may only return object or undefined");return Du(e)}function Du(e){if(e===void 0)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return e}function wu(){if(typeof Reflect>"u"||!Reflect.construct||Reflect.construct.sham)return!1;if(typeof Proxy=="function")return!0;try{return Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],function(){})),!0}catch{return!1}}function hr(e){return hr=Object.setPrototypeOf?Object.getPrototypeOf:function(r){return r.__proto__||Object.getPrototypeOf(r)},hr(e)}var Es=function(e){Mu(r,e);var t=Nu(r);function r(){return Cu(this,r),t.apply(this,arguments)}var i=r.prototype;return i.renderCollisionMap=function(o,s){var a=this,f=1,l=[0,0,0,0];return P(this.device,{scissorTest:!0,scissor:[f,f,o.width-2*f,o.height-2*f],blend:!1,depthTest:!0,depthRange:[0,1]},function(){return a.render(Rs(Rs({},s),{},{clearColor:l,target:o,pass:"collision"}))})},i.getModuleParameters=function(){return{drawToCollisionMap:!0,picking:{isActive:1,isAttribute:!1},lightSources:{}}},r}(bs._LayersPass);var Si=T(S());var Ss=T(S());function gr(e){return typeof Symbol=="function"&&typeof Symbol.iterator=="symbol"?gr=function(r){return typeof r}:gr=function(r){return r&&typeof Symbol=="function"&&r.constructor===Symbol&&r!==Symbol.prototype?"symbol":typeof r},gr(e)}function vs(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var i=Object.getOwnPropertySymbols(e);t&&(i=i.filter(function(n){return Object.getOwnPropertyDescriptor(e,n).enumerable})),r.push.apply(r,i)}return r}function ms(e){for(var t=1;t<arguments.length;t++){var r=arguments[t]!=null?arguments[t]:{};t%2?vs(Object(r),!0).forEach(function(i){Uu(e,i,r[i])}):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(r)):vs(Object(r)).forEach(function(i){Object.defineProperty(e,i,Object.getOwnPropertyDescriptor(r,i))})}return e}function Uu(e,t,r){return t in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r,e}function Vu(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}function Tr(e,t,r){return typeof Reflect<"u"&&Reflect.get?Tr=Reflect.get:Tr=function(n,o,s){var a=ku(n,o);if(a){var f=Object.getOwnPropertyDescriptor(a,o);return f.get?f.get.call(s):f.value}},Tr(e,t,r||e)}function ku(e,t){for(;!Object.prototype.hasOwnProperty.call(e,t)&&(e=we(e),e!==null););return e}function Wu(e,t){if(typeof t!="function"&&t!==null)throw new TypeError("Super expression must either be null or a function");e.prototype=Object.create(t&&t.prototype,{constructor:{value:e,writable:!0,configurable:!0}}),t&&mi(e,t)}function mi(e,t){return mi=Object.setPrototypeOf||function(i,n){return i.__proto__=n,i},mi(e,t)}function Hu(e){var t=ju();return function(){var i=we(e),n;if(t){var o=we(this).constructor;n=Reflect.construct(i,arguments,o)}else n=i.apply(this,arguments);return Xu(this,n)}}function Xu(e,t){if(t&&(gr(t)==="object"||typeof t=="function"))return t;if(t!==void 0)throw new TypeError("Derived constructors may only return object or undefined");return Lu(e)}function Lu(e){if(e===void 0)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return e}function ju(){if(typeof Reflect>"u"||!Reflect.construct||Reflect.construct.sham)return!1;if(typeof Proxy=="function")return!0;try{return Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],function(){})),!0}catch{return!1}}function we(e){return we=Object.setPrototypeOf?Object.getPrototypeOf:function(r){return r.__proto__||Object.getPrototypeOf(r)},we(e)}var ys=function(e){Wu(r,e);var t=Hu(r);function r(n,o){var s;Vu(this,r),s=t.call(this,n,o),s.maskMap=void 0,s.fbo=void 0;var a=o.mapSize,f=a===void 0?2048:a;return s.maskMap=n.createTexture({format:"rgba8unorm",width:f,height:f,sampler:{minFilter:"linear",magFilter:"linear",addressModeU:"clamp-to-edge",addressModeV:"clamp-to-edge"}}),s.fbo=n.createFramebuffer({id:"maskmap",width:f,height:f,colorAttachments:[s.maskMap]}),s}var i=r.prototype;return i.render=function(o){var s=this,a=[!1,!1,!1,!1];a[o.channel]=!0;var f=[255,255,255,255];return P(this.device,{blend:!0,blendFunc:[0,1],blendEquation:32778,colorMask:a,depthTest:!1},function(){return Tr(we(r.prototype),"render",s).call(s,ms(ms({},o),{},{clearColor:f,target:s.fbo,pass:"mask"}))})},i.shouldDrawLayer=function(o){return o.props.operation.includes("mask")},i.delete=function(){this.fbo.delete(),this.maskMap.delete()},r}(Ss._LayersPass);var Ar=T(S());function Ku(e,t){return $u(e)||Yu(e,t)||xs(e,t)||zu()}function zu(){throw new TypeError(`Invalid attempt to destructure non-iterable instance.
1448
- In order to be iterable, non-array objects must have a [Symbol.iterator]() method.`)}function Yu(e,t){var r=e==null?null:typeof Symbol<"u"&&e[Symbol.iterator]||e["@@iterator"];if(r!=null){var i=[],n=!0,o=!1,s,a;try{for(r=r.call(e);!(n=(s=r.next()).done)&&(i.push(s.value),!(t&&i.length===t));n=!0);}catch(f){o=!0,a=f}finally{try{!n&&r.return!=null&&r.return()}finally{if(o)throw a}}return i}}function $u(e){if(Array.isArray(e))return e}function qu(e,t){var r=typeof Symbol<"u"&&e[Symbol.iterator]||e["@@iterator"];if(!r){if(Array.isArray(e)||(r=xs(e))||t&&e&&typeof e.length=="number"){r&&(e=r);var i=0,n=function(){};return{s:n,n:function(){return i>=e.length?{done:!0}:{done:!1,value:e[i++]}},e:function(l){throw l},f:n}}throw new TypeError(`Invalid attempt to iterate non-iterable instance.
1449
- In order to be iterable, non-array objects must have a [Symbol.iterator]() method.`)}var o=!0,s=!1,a;return{s:function(){r=r.call(e)},n:function(){var l=r.next();return o=l.done,l},e:function(l){s=!0,a=l},f:function(){try{!o&&r.return!=null&&r.return()}finally{if(s)throw a}}}}function xs(e,t){if(e){if(typeof e=="string")return Os(e,t);var r=Object.prototype.toString.call(e).slice(8,-1);if(r==="Object"&&e.constructor&&(r=e.constructor.name),r==="Map"||r==="Set")return Array.from(e);if(r==="Arguments"||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(r))return Os(e,t)}}function Os(e,t){(t==null||t>e.length)&&(t=e.length);for(var r=0,i=new Array(t);r<t;r++)i[r]=e[r];return i}function Ue(e,t){var r=[1/0,1/0,-1/0,-1/0],i=qu(e),n;try{for(i.s();!(n=i.n()).done;){var o=n.value,s=o.getBounds();if(s){var a=o.projectPosition(s[0],{viewport:t,autoOffset:!1}),f=o.projectPosition(s[1],{viewport:t,autoOffset:!1});r[0]=Math.min(r[0],a[0]),r[1]=Math.min(r[1],a[1]),r[2]=Math.max(r[2],f[0]),r[3]=Math.max(r[3],f[1])}}}catch(l){i.e(l)}finally{i.f()}return Number.isFinite(r[0])?r:null}var Zu=2048;function Ve(e){var t=e.bounds,r=e.viewport,i=e.border,n=i===void 0?0:i,o=r.isGeospatial;if(t[2]<=t[0]||t[3]<=t[1])return null;var s=r.unprojectPosition([(t[0]+t[2])/2,(t[1]+t[3])/2,0]),a=e.width,f=e.height,l=e.zoom;if(l===void 0){a=a-n*2,f=f-n*2;var c=Math.min(a/(t[2]-t[0]),f/(t[3]-t[1]));l=Math.min(Math.log2(c),20)}else if(!a||!f){var u=Math.pow(2,l);a=Math.round(Math.abs(t[2]-t[0])*u),f=Math.round(Math.abs(t[3]-t[1])*u);var _=Zu-n*2;if(a>_||f>_){var d=_/Math.max(a,f);a=Math.round(a*d),f=Math.round(f*d),l+=Math.log2(d)}}return o?new Ar.WebMercatorViewport({id:r.id,x:n,y:n,width:a,height:f,longitude:s[0],latitude:s[1],zoom:l,orthographic:!0}):new Ar.OrthographicViewport({id:r.id,x:n,y:n,width:a,height:f,target:s,zoom:l,flipY:!1})}function Qu(e,t){var r;if(t&&t.length===2){var i=Ku(t,2),n=i[0],o=i[1],s=e.getBounds({z:n}),a=e.getBounds({z:o});r=[Math.min(s[0],a[0]),Math.min(s[1],a[1]),Math.max(s[2],a[2]),Math.max(s[3],a[3])]}else r=e.getBounds();var f=e.projectPosition(r.slice(0,2)),l=e.projectPosition(r.slice(2,4));return[f[0],f[1],l[0],l[1]]}function ke(e,t,r){if(!e)return[0,0,1,1];var i=Qu(t,r),n=Ju(i);return e[2]-e[0]<=n[2]-n[0]&&e[3]-e[1]<=n[3]-n[1]?e:[Math.max(e[0],n[0]),Math.max(e[1],n[1]),Math.min(e[2],n[2]),Math.min(e[3],n[3])]}function Ju(e){var t=e[2]-e[0],r=e[3]-e[1],i=(e[0]+e[2])/2,n=(e[1]+e[3])/2;return[i-t,n-r,i+t,n+r]}function Gu(e,t){var r=typeof Symbol<"u"&&e[Symbol.iterator]||e["@@iterator"];if(!r){if(Array.isArray(e)||(r=e_(e))||t&&e&&typeof e.length=="number"){r&&(e=r);var i=0,n=function(){};return{s:n,n:function(){return i>=e.length?{done:!0}:{done:!1,value:e[i++]}},e:function(l){throw l},f:n}}throw new TypeError(`Invalid attempt to iterate non-iterable instance.
1450
- In order to be iterable, non-array objects must have a [Symbol.iterator]() method.`)}var o=!0,s=!1,a;return{s:function(){r=r.call(e)},n:function(){var l=r.next();return o=l.done,l},e:function(l){s=!0,a=l},f:function(){try{!o&&r.return!=null&&r.return()}finally{if(s)throw a}}}}function e_(e,t){if(e){if(typeof e=="string")return Ps(e,t);var r=Object.prototype.toString.call(e).slice(8,-1);if(r==="Object"&&e.constructor&&(r=e.constructor.name),r==="Map"||r==="Set")return Array.from(e);if(r==="Arguments"||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(r))return Ps(e,t)}}function Ps(e,t){(t==null||t>e.length)&&(t=e.length);for(var r=0,i=new Array(t);r<t;r++)i[r]=e[r];return i}function t_(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}var Rr=function(){function e(){t_(this,e),this.id="mask-effect",this.props=null,this.useInPicking=!0,this.order=0,this.dummyMaskMap=void 0,this.channels=[],this.masks=null,this.maskPass=void 0,this.maskMap=void 0,this.lastViewport=void 0}var t=e.prototype;return t.preRender=function(i,n){var o=n.layers,s=n.layerFilter,a=n.viewports,f=n.onViewportActive,l=n.views,c=n.isPicking,u=!1;if(this.dummyMaskMap||(this.dummyMaskMap=i.createTexture({width:1,height:1})),c)return{didRender:u};var _=o.filter(function(A){return A.props.visible&&A.props.operation.includes("mask")});if(_.length===0)return this.masks=null,this.channels.length=0,{didRender:u};this.masks={},this.maskPass||(this.maskPass=new ys(i,{id:"default-mask"}),this.maskMap=this.maskPass.maskMap);var d=this._sortMaskChannels(_),p=a[0],g=!this.lastViewport||!this.lastViewport.equals(p);if(p.resolution!==void 0)return Si.log.warn("MaskExtension is not supported in GlobeView")(),{didRender:u};for(var h in d){var R=this._renderChannel(d[h],{layerFilter:s,onViewportActive:f,views:l,viewport:p,viewportChanged:g});u||(u=R)}return{didRender:u}},t._renderChannel=function(i,n){var o=n.layerFilter,s=n.onViewportActive,a=n.views,f=n.viewport,l=n.viewportChanged,c=!1,u=this.channels[i.index];if(!u)return c;var _=i===u||i.layers.length!==u.layers.length||i.layers.some(function(R,A){return R!==u.layers[A]||R.props.transitions})||i.layerBounds.some(function(R,A){return R!==u.layerBounds[A]});if(i.bounds=u.bounds,i.maskBounds=u.maskBounds,this.channels[i.index]=i,_||l){this.lastViewport=f;var d=Ue(i.layers,f);if(i.bounds=d&&ke(d,f),_||!Be(i.bounds,u.bounds)){var p=this.maskPass,g=this.maskMap,h=d&&Ve({bounds:i.bounds,viewport:f,width:g.width,height:g.height,border:1});i.maskBounds=h?h.getBounds():[0,0,1,1],p.render({pass:"mask",channel:i.index,layers:i.layers,layerFilter:o,viewports:h?[h]:[],onViewportActive:s,views:a,moduleParameters:{devicePixelRatio:1}}),c=!0}}return this.masks[i.id]={index:i.index,bounds:i.maskBounds,coordinateOrigin:i.coordinateOrigin,coordinateSystem:i.coordinateSystem},c},t._sortMaskChannels=function(i){var n=this,o={},s=0,a=Gu(i),f;try{var l=function(){var h=f.value,R=h.root.id,A=o[R];if(!A){if(++s>4)return Si.log.warn("Too many mask layers. The max supported is 4")(),"continue";A={id:R,index:n.channels.findIndex(function(m){return m?.id===R}),layers:[],layerBounds:[],coordinateOrigin:h.root.props.coordinateOrigin,coordinateSystem:h.root.props.coordinateSystem},o[R]=A}A.layers.push(h),A.layerBounds.push(h.getBounds())};for(a.s();!(f=a.n()).done;)var c=l()}catch(g){a.e(g)}finally{a.f()}for(var u=0;u<4;u++){var _=this.channels[u];(!_||!(_.id in o))&&(this.channels[u]=null)}for(var d in o){var p=o[d];p.index<0&&(p.index=this.channels.findIndex(function(g){return!g}),this.channels[p.index]=p)}return o},t.getModuleParameters=function(){return{maskMap:this.masks?this.maskMap:this.dummyMaskMap,maskChannels:this.masks}},t.cleanup=function(){this.dummyMaskMap&&(this.dummyMaskMap.delete(),this.dummyMaskMap=void 0),this.maskPass&&(this.maskPass.delete(),this.maskPass=void 0,this.maskMap=void 0),this.lastViewport=void 0,this.masks=null,this.channels.length=0},e}();function r_(e,t){var r=typeof Symbol<"u"&&e[Symbol.iterator]||e["@@iterator"];if(!r){if(Array.isArray(e)||(r=Fs(e))||t&&e&&typeof e.length=="number"){r&&(e=r);var i=0,n=function(){};return{s:n,n:function(){return i>=e.length?{done:!0}:{done:!1,value:e[i++]}},e:function(l){throw l},f:n}}throw new TypeError(`Invalid attempt to iterate non-iterable instance.
1451
- In order to be iterable, non-array objects must have a [Symbol.iterator]() method.`)}var o=!0,s=!1,a;return{s:function(){r=r.call(e)},n:function(){var l=r.next();return o=l.done,l},e:function(l){s=!0,a=l},f:function(){try{!o&&r.return!=null&&r.return()}finally{if(s)throw a}}}}function i_(e,t){return s_(e)||o_(e,t)||Fs(e,t)||n_()}function n_(){throw new TypeError(`Invalid attempt to destructure non-iterable instance.
1452
- In order to be iterable, non-array objects must have a [Symbol.iterator]() method.`)}function Fs(e,t){if(e){if(typeof e=="string")return Is(e,t);var r=Object.prototype.toString.call(e).slice(8,-1);if(r==="Object"&&e.constructor&&(r=e.constructor.name),r==="Map"||r==="Set")return Array.from(e);if(r==="Arguments"||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(r))return Is(e,t)}}function Is(e,t){(t==null||t>e.length)&&(t=e.length);for(var r=0,i=new Array(t);r<t;r++)i[r]=e[r];return i}function o_(e,t){var r=e==null?null:typeof Symbol<"u"&&e[Symbol.iterator]||e["@@iterator"];if(r!=null){var i=[],n=!0,o=!1,s,a;try{for(r=r.call(e);!(n=(s=r.next()).done)&&(i.push(s.value),!(t&&i.length===t));n=!0);}catch(f){o=!0,a=f}finally{try{!n&&r.return!=null&&r.return()}finally{if(o)throw a}}return i}}function s_(e){if(Array.isArray(e))return e}function a_(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}var yi=2,Ms=function(){function e(){a_(this,e),this.id="collision-filter-effect",this.props=null,this.useInPicking=!0,this.order=1,this.channels={},this.collisionFilterPass=void 0,this.collisionFBOs={},this.dummyCollisionMap=void 0,this.lastViewport=void 0}var t=e.prototype;return t.preRender=function(i,n){var o,s=n.effects,a=n.layers,f=n.layerFilter,l=n.viewports,c=n.onViewportActive,u=n.views,_=n.isPicking,d=n.preRenderStats,p=d===void 0?{}:d;if(this.dummyCollisionMap||(this.dummyCollisionMap=i.createTexture({width:1,height:1})),!_){var g=a.filter(function(Tt){var Oe=Tt.props,ia=Oe.visible,na=Oe.collisionEnabled;return ia&&na});if(g.length===0){this.channels={};return}this.collisionFilterPass||(this.collisionFilterPass=new Es(i,{id:"default-collision-filter"}));var h=s?.filter(function(Tt){return Tt.constructor===Rr}),R=(o=p["mask-effect"])===null||o===void 0?void 0:o.didRender,A=this._groupByCollisionGroup(i,g),m=l[0],B=!this.lastViewport||!this.lastViewport.equals(m)||R;for(var X in A){var $=this.collisionFBOs[X],D=A[X],ce=i.canvasContext.getPixelSize(),q=i_(ce,2),W=q[0],ye=q[1];$.resize({width:W/yi,height:ye/yi}),this._render(D,{effects:h,layerFilter:f,onViewportActive:c,views:u,viewport:m,viewportChanged:B})}}},t._render=function(i,n){var o=n.effects,s=n.layerFilter,a=n.onViewportActive,f=n.views,l=n.viewport,c=n.viewportChanged,u=i.collisionGroup,_=this.channels[u];if(_){var d=c||i===_||!(0,Cs._deepEqual)(_.layers,i.layers,1)||i.layerBounds.some(function(g,h){return!Be(g,_.layerBounds[h])})||i.allLayersLoaded!==_.allLayersLoaded||i.layers.some(function(g){return g.props.transitions});if(this.channels[u]=i,d){this.lastViewport=l;var p=this.collisionFBOs[u];this.collisionFilterPass.renderCollisionMap(p,{pass:"collision-filter",isPicking:!0,layers:i.layers,effects:o,layerFilter:s,viewports:l?[l]:[],onViewportActive:a,views:f,moduleParameters:{dummyCollisionMap:this.dummyCollisionMap,devicePixelRatio:p.device.canvasContext.getDevicePixelRatio()/yi}})}}},t._groupByCollisionGroup=function(i,n){var o={},s=r_(n),a;try{for(s.s();!(a=s.n()).done;){var f=a.value,l=f.props.collisionGroup,c=o[l];c||(c={collisionGroup:l,layers:[],layerBounds:[],allLayersLoaded:!0},o[l]=c),c.layers.push(f),c.layerBounds.push(f.getBounds()),f.isLoaded||(c.allLayersLoaded=!1)}}catch(R){s.e(R)}finally{s.f()}for(var u=0,_=Object.keys(o);u<_.length;u++){var d=_[u];this.collisionFBOs[d]||this.createFBO(i,d),this.channels[d]||(this.channels[d]=o[d])}for(var p=0,g=Object.keys(this.collisionFBOs);p<g.length;p++){var h=g[p];o[h]||this.destroyFBO(h)}return o},t.getModuleParameters=function(i){var n=i.props.collisionGroup,o=this.collisionFBOs,s=this.dummyCollisionMap;return{collisionFBO:o[n],dummyCollisionMap:s}},t.cleanup=function(){this.dummyCollisionMap&&(this.dummyCollisionMap.delete(),this.dummyCollisionMap=void 0),this.channels={};for(var i=0,n=Object.keys(this.collisionFBOs);i<n.length;i++){var o=n[i];this.destroyFBO(o)}this.collisionFBOs={},this.lastViewport=void 0},t.createFBO=function(i,n){var o=i.gl.canvas,s=o.width,a=o.height,f=i.createTexture({format:"rgba8unorm",width:s,height:a,sampler:{minFilter:"nearest",magFilter:"nearest",addressModeU:"clamp-to-edge",addressModeV:"clamp-to-edge"}}),l=new K(i,{format:"depth16unorm",width:s,height:a});this.collisionFBOs[n]=i.createFramebuffer({id:"collision-".concat(n),width:s,height:a,colorAttachments:[f],depthStencilAttachment:l})},t.destroyFBO=function(i){var n,o,s=this.collisionFBOs[i];(n=s.colorAttachments[0])===null||n===void 0||n.destroy(),(o=s.depthStencilAttachment)===null||o===void 0||o.destroy(),s.destroy(),delete this.collisionFBOs[i]},e}();function br(e){return typeof Symbol=="function"&&typeof Symbol.iterator=="symbol"?br=function(r){return typeof r}:br=function(r){return r&&typeof Symbol=="function"&&r.constructor===Symbol&&r!==Symbol.prototype?"symbol":typeof r},br(e)}function f_(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}function l_(e,t){if(typeof t!="function"&&t!==null)throw new TypeError("Super expression must either be null or a function");e.prototype=Object.create(t&&t.prototype,{constructor:{value:e,writable:!0,configurable:!0}}),t&&Oi(e,t)}function Oi(e,t){return Oi=Object.setPrototypeOf||function(i,n){return i.__proto__=n,i},Oi(e,t)}function c_(e){var t=d_();return function(){var i=Er(e),n;if(t){var o=Er(this).constructor;n=Reflect.construct(i,arguments,o)}else n=i.apply(this,arguments);return u_(this,n)}}function u_(e,t){if(t&&(br(t)==="object"||typeof t=="function"))return t;if(t!==void 0)throw new TypeError("Derived constructors may only return object or undefined");return __(e)}function __(e){if(e===void 0)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return e}function d_(){if(typeof Reflect>"u"||!Reflect.construct||Reflect.construct.sham)return!1;if(typeof Proxy=="function")return!0;try{return Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],function(){})),!0}catch{return!1}}function Er(e){return Er=Object.setPrototypeOf?Object.getPrototypeOf:function(r){return r.__proto__||Object.getPrototypeOf(r)},Er(e)}var p_={getCollisionPriority:{type:"accessor",value:0},collisionEnabled:!0,collisionGroup:{type:"string",value:"default"},collisionTestProps:{}},vr=function(e){l_(r,e);var t=c_(r);function r(){return f_(this,r),t.apply(this,arguments)}var i=r.prototype;return i.getShaders=function(){return{modules:[Ts]}},i.draw=function(o){var s=o.uniforms,a=o.context,f=o.moduleParameters,l=this.props.collisionEnabled,c=f.collisionFBO,u=f.drawToCollisionMap,_=l&&Boolean(c);s.collision_enabled=_,u&&(this.props=this.clone(this.props.collisionTestProps).props)},i.initializeState=function(o,s){var a;if(this.getAttributeManager()!==null){(a=this.context.deck)===null||a===void 0||a._addDefaultEffect(new Ms);var f=this.getAttributeManager();f.add({collisionPriorities:{size:1,accessor:"getCollisionPriority",shaderAttributes:{collisionPriorities:{divisor:0},instanceCollisionPriorities:{divisor:1}}}})}},i.getNeedsPickingBuffer=function(){return this.props.collisionEnabled},r}(Ns.LayerExtension);vr.defaultProps=p_;vr.extensionName="CollisionFilterExtension";var Ae=T(S());var Bs=T(S()),h_=`
1326
+ `},rr=(e,t)=>{if(!e||!("dummyCollisionMap"in e))return{};let{collisionFBO:_,drawToCollisionMap:r,dummyCollisionMap:o}=e;return{collision_sort:Boolean(r),collision_texture:!r&&_?_.colorAttachments[0]:o}},pt={name:"collision",dependencies:[Et.project],vs:tr,inject:_r,getUniforms:rr};var dt=c(n(),1);var St=c(n(),1),u=class extends St._LayersPass{renderCollisionMap(t,_){let o=[0,0,0,0];return this.device.withParametersWebGL({scissorTest:!0,scissor:[1,1,t.width-2*1,t.height-2*1],blend:!1,depthTest:!0,depthRange:[0,1]},()=>this.render({..._,clearColor:o,target:t,pass:"collision"}))}getModuleParameters(){return{drawToCollisionMap:!0,picking:{isActive:1,isAttribute:!1},lightSources:{}}}};var he=c(n(),1);var Nt=c(n(),1),k=class extends Nt._LayersPass{constructor(t,_){super(t,_);let{mapSize:r=2048}=_;this.maskMap=t.createTexture({format:"rgba8unorm",width:r,height:r,sampler:{minFilter:"linear",magFilter:"linear",addressModeU:"clamp-to-edge",addressModeV:"clamp-to-edge"}}),this.fbo=t.createFramebuffer({id:"maskmap",width:r,height:r,colorAttachments:[this.maskMap]})}render(t){let _=[!1,!1,!1,!1];_[t.channel]=!0;let r=[255,255,255,255];return this.device.withParametersWebGL({blend:!0,blendFunc:[E.ZERO,E.ONE],blendEquation:E.FUNC_SUBTRACT,colorMask:_,depthTest:!1},()=>super.render({...t,clearColor:r,target:this.fbo,pass:"mask"}))}shouldDrawLayer(t){return t.props.operation.includes("mask")}delete(){this.fbo.delete(),this.maskMap.delete()}};var le=c(n(),1);function P(e,t){let _=[1/0,1/0,-1/0,-1/0];for(let r of e){let o=r.getBounds();if(o){let s=r.projectPosition(o[0],{viewport:t,autoOffset:!1}),i=r.projectPosition(o[1],{viewport:t,autoOffset:!1});_[0]=Math.min(_[0],s[0]),_[1]=Math.min(_[1],s[1]),_[2]=Math.max(_[2],i[0]),_[3]=Math.max(_[3],i[1])}}return Number.isFinite(_[0])?_:null}var or=2048;function B(e){let{bounds:t,viewport:_,border:r=0}=e,{isGeospatial:o}=_;if(t[2]<=t[0]||t[3]<=t[1])return null;let s=_.unprojectPosition([(t[0]+t[2])/2,(t[1]+t[3])/2,0]),{width:i,height:a,zoom:R}=e;if(R===void 0){i=i-r*2,a=a-r*2;let l=Math.min(i/(t[2]-t[0]),a/(t[3]-t[1]));R=Math.min(Math.log2(l),20)}else if(!i||!a){let l=2**R;i=Math.round(Math.abs(t[2]-t[0])*l),a=Math.round(Math.abs(t[3]-t[1])*l);let T=or-r*2;if(i>T||a>T){let A=T/Math.max(i,a);i=Math.round(i*A),a=Math.round(a*A),R+=Math.log2(A)}}return o?new le.WebMercatorViewport({id:_.id,x:r,y:r,width:i,height:a,longitude:s[0],latitude:s[1],zoom:R,orthographic:!0}):new le.OrthographicViewport({id:_.id,x:r,y:r,width:i,height:a,target:s,zoom:R,flipY:!1})}function sr(e,t){let _;if(t&&t.length===2){let[s,i]=t,a=e.getBounds({z:s}),R=e.getBounds({z:i});_=[Math.min(a[0],R[0]),Math.min(a[1],R[1]),Math.max(a[2],R[2]),Math.max(a[3],R[3])]}else _=e.getBounds();let r=e.projectPosition(_.slice(0,2)),o=e.projectPosition(_.slice(2,4));return[r[0],r[1],o[0],o[1]]}function h(e,t,_){if(!e)return[0,0,1,1];let r=sr(t,_),o=ir(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 ir(e){let t=e[2]-e[0],_=e[3]-e[1],r=(e[0]+e[2])/2,o=(e[1]+e[3])/2;return[r-t,o-_,r+t,o+_]}var C=class{constructor(){this.id="mask-effect",this.props=null,this.useInPicking=!0,this.order=0,this.channels=[],this.masks=null}preRender(t,{layers:_,layerFilter:r,viewports:o,onViewportActive:s,views:i,isPicking:a}){let R=!1;if(this.dummyMaskMap||(this.dummyMaskMap=t.createTexture({width:1,height:1})),a)return{didRender:R};let l=_.filter(p=>p.props.visible&&p.props.operation.includes("mask"));if(l.length===0)return this.masks=null,this.channels.length=0,{didRender:R};this.masks={},this.maskPass||(this.maskPass=new k(t,{id:"default-mask"}),this.maskMap=this.maskPass.maskMap);let T=this._sortMaskChannels(l),A=o[0],f=!this.lastViewport||!this.lastViewport.equals(A);if(A.resolution!==void 0)return he.log.warn("MaskExtension is not supported in GlobeView")(),{didRender:R};for(let p in T){let S=this._renderChannel(T[p],{layerFilter:r,onViewportActive:s,views:i,viewport:A,viewportChanged:f});R||=S}return{didRender:R}}_renderChannel(t,{layerFilter:_,onViewportActive:r,views:o,viewport:s,viewportChanged:i}){let a=!1,R=this.channels[t.index];if(!R)return a;let l=t===R||t.layers.length!==R.layers.length||t.layers.some((T,A)=>T!==R.layers[A]||T.props.transitions)||t.layerBounds.some((T,A)=>T!==R.layerBounds[A]);if(t.bounds=R.bounds,t.maskBounds=R.maskBounds,this.channels[t.index]=t,l||i){this.lastViewport=s;let T=P(t.layers,s);if(t.bounds=T&&h(T,s),l||!F(t.bounds,R.bounds)){let{maskPass:A,maskMap:f}=this,p=T&&B({bounds:t.bounds,viewport:s,width:f.width,height:f.height,border:1});t.maskBounds=p?p.getBounds():[0,0,1,1],A.render({pass:"mask",channel:t.index,layers:t.layers,layerFilter:_,viewports:p?[p]:[],onViewportActive:r,views:o,moduleParameters:{devicePixelRatio:1}}),a=!0}}return this.masks[t.id]={index:t.index,bounds:t.maskBounds,coordinateOrigin:t.coordinateOrigin,coordinateSystem:t.coordinateSystem},a}_sortMaskChannels(t){let _={},r=0;for(let o of t){let{id:s}=o.root,i=_[s];if(!i){if(++r>4){he.log.warn("Too many mask layers. The max supported is 4")();continue}i={id:s,index:this.channels.findIndex(a=>a?.id===s),layers:[],layerBounds:[],coordinateOrigin:o.root.props.coordinateOrigin,coordinateSystem:o.root.props.coordinateSystem},_[s]=i}i.layers.push(o),i.layerBounds.push(o.getBounds())}for(let o=0;o<4;o++){let s=this.channels[o];(!s||!(s.id in _))&&(this.channels[o]=null)}for(let o in _){let s=_[o];s.index<0&&(s.index=this.channels.findIndex(i=>!i),this.channels[s.index]=s)}return _}getModuleParameters(){return{maskMap:this.masks?this.maskMap:this.dummyMaskMap,maskChannels:this.masks}}cleanup(){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}};var De=2,w=class{constructor(){this.id="collision-filter-effect",this.props=null,this.useInPicking=!0,this.order=1,this.channels={},this.collisionFBOs={}}preRender(t,{effects:_,layers:r,layerFilter:o,viewports:s,onViewportActive:i,views:a,isPicking:R,preRenderStats:l={}}){if(this.dummyCollisionMap||(this.dummyCollisionMap=t.createTexture({width:1,height:1})),R)return;let T=r.filter(({props:{visible:N,collisionEnabled:de}})=>N&&de);if(T.length===0){this.channels={};return}this.collisionFilterPass||(this.collisionFilterPass=new u(t,{id:"default-collision-filter"}));let A=_?.filter(N=>N.constructor===C),f=l["mask-effect"]?.didRender,p=this._groupByCollisionGroup(t,T),S=s[0],Q=!this.lastViewport||!this.lastViewport.equals(S)||f;for(let N in p){let de=this.collisionFBOs[N],Ut=p[N],[xt,gt]=t.canvasContext.getPixelSize();de.resize({width:xt/De,height:gt/De}),this._render(Ut,{effects:A,layerFilter:o,onViewportActive:i,views:a,viewport:S,viewportChanged:Q})}}_render(t,{effects:_,layerFilter:r,onViewportActive:o,views:s,viewport:i,viewportChanged:a}){let{collisionGroup:R}=t,l=this.channels[R];if(!l)return;let T=a||t===l||!(0,dt._deepEqual)(l.layers,t.layers,1)||t.layerBounds.some((A,f)=>!F(A,l.layerBounds[f]))||t.allLayersLoaded!==l.allLayersLoaded||t.layers.some(A=>A.props.transitions);if(this.channels[R]=t,T){this.lastViewport=i;let A=this.collisionFBOs[R];this.collisionFilterPass.renderCollisionMap(A,{pass:"collision-filter",isPicking:!0,layers:t.layers,effects:_,layerFilter:r,viewports:i?[i]:[],onViewportActive:o,views:s,moduleParameters:{dummyCollisionMap:this.dummyCollisionMap,devicePixelRatio:A.device.canvasContext.getDevicePixelRatio()/De}})}}_groupByCollisionGroup(t,_){let r={};for(let o of _){let{collisionGroup:s}=o.props,i=r[s];i||(i={collisionGroup:s,layers:[],layerBounds:[],allLayersLoaded:!0},r[s]=i),i.layers.push(o),i.layerBounds.push(o.getBounds()),o.isLoaded||(i.allLayersLoaded=!1)}for(let o of Object.keys(r))this.collisionFBOs[o]||this.createFBO(t,o),this.channels[o]||(this.channels[o]=r[o]);for(let o of Object.keys(this.collisionFBOs))r[o]||this.destroyFBO(o);return r}getModuleParameters(t){let{collisionGroup:_}=t.props,{collisionFBOs:r,dummyCollisionMap:o}=this;return{collisionFBO:r[_],dummyCollisionMap:o}}cleanup(){this.dummyCollisionMap&&(this.dummyCollisionMap.delete(),this.dummyCollisionMap=void 0),this.channels={};for(let t of Object.keys(this.collisionFBOs))this.destroyFBO(t);this.collisionFBOs={},this.lastViewport=void 0}createFBO(t,_){let{width:r,height:o}=t.gl.canvas,s=t.createTexture({format:"rgba8unorm",width:r,height:o,sampler:{minFilter:"nearest",magFilter:"nearest",addressModeU:"clamp-to-edge",addressModeV:"clamp-to-edge"}}),i=t.createTexture({format:"depth16unorm",width:r,height:o,mipmaps:!1,dataFormat:6402,type:5125});this.collisionFBOs[_]=t.createFramebuffer({id:`collision-${_}`,width:r,height:o,colorAttachments:[s],depthStencilAttachment:i})}destroyFBO(t){let _=this.collisionFBOs[t];_.colorAttachments[0]?.destroy(),_.depthStencilAttachment?.destroy(),_.destroy(),delete this.collisionFBOs[t]}};var ar={getCollisionPriority:{type:"accessor",value:0},collisionEnabled:!0,collisionGroup:{type:"string",value:"default"},collisionTestProps:{}},Te=class extends It.LayerExtension{getShaders(){return{modules:[pt]}}draw({uniforms:t,context:_,moduleParameters:r}){let{collisionEnabled:o}=this.props,{collisionFBO:s,drawToCollisionMap:i}=r,a=o&&Boolean(s);t.collision_enabled=a,i&&(this.props=this.clone(this.props.collisionTestProps).props)}initializeState(t,_){if(this.getAttributeManager()===null)return;this.context.deck?._addDefaultEffect(new w),this.getAttributeManager().add({collisionPriorities:{size:1,accessor:"getCollisionPriority",shaderAttributes:{collisionPriorities:{divisor:0},instanceCollisionPriorities:{divisor:1}}}})}getNeedsPickingBuffer(){return this.props.collisionEnabled}},K=Te;(()=>{Te.defaultProps=ar})(),(()=>{Te.extensionName="CollisionFilterExtension"})();var O=c(n(),1);var Mt=c(n(),1),Rr=`
1453
1327
  uniform vec4 mask_bounds;
1454
1328
  uniform bool mask_maskByInstance;
1455
1329
  vec2 mask_getCoords(vec4 position) {
1456
1330
  return (position.xy - mask_bounds.xy) / (mask_bounds.zw - mask_bounds.xy);
1457
1331
  }
1458
- `,g_=`
1332
+ `,lr=`
1459
1333
  uniform sampler2D mask_texture;
1460
1334
  uniform int mask_channel;
1461
1335
  uniform bool mask_enabled;
@@ -1482,7 +1356,7 @@ bool mask_isInBounds(vec2 texCoords) {
1482
1356
  return maskValue < 0.5;
1483
1357
  }
1484
1358
  }
1485
- `,T_={"vs:#decl":`
1359
+ `,Tr={"vs:#decl":`
1486
1360
  out vec2 mask_texCoords;
1487
1361
  `,"vs:#main-end":`
1488
1362
  vec4 mask_common_position;
@@ -1504,14 +1378,14 @@ in vec2 mask_texCoords;
1504
1378
 
1505
1379
  if (!mask) discard;
1506
1380
  }
1507
- `},A_=function(t){return t&&"maskMap"in t?{mask_texture:t.maskMap}:{}},Ds={name:"mask",dependencies:[Bs.project],vs:h_,fs:g_,inject:T_,getUniforms:A_};function mr(e){return typeof Symbol=="function"&&typeof Symbol.iterator=="symbol"?mr=function(r){return typeof r}:mr=function(r){return r&&typeof Symbol=="function"&&r.constructor===Symbol&&r!==Symbol.prototype?"symbol":typeof r},mr(e)}function R_(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}function b_(e,t){if(typeof t!="function"&&t!==null)throw new TypeError("Super expression must either be null or a function");e.prototype=Object.create(t&&t.prototype,{constructor:{value:e,writable:!0,configurable:!0}}),t&&xi(e,t)}function xi(e,t){return xi=Object.setPrototypeOf||function(i,n){return i.__proto__=n,i},xi(e,t)}function E_(e){var t=S_();return function(){var i=Sr(e),n;if(t){var o=Sr(this).constructor;n=Reflect.construct(i,arguments,o)}else n=i.apply(this,arguments);return v_(this,n)}}function v_(e,t){if(t&&(mr(t)==="object"||typeof t=="function"))return t;if(t!==void 0)throw new TypeError("Derived constructors may only return object or undefined");return m_(e)}function m_(e){if(e===void 0)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return e}function S_(){if(typeof Reflect>"u"||!Reflect.construct||Reflect.construct.sham)return!1;if(typeof Proxy=="function")return!0;try{return Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],function(){})),!0}catch{return!1}}function Sr(e){return Sr=Object.setPrototypeOf?Object.getPrototypeOf:function(r){return r.__proto__||Object.getPrototypeOf(r)},Sr(e)}var y_={maskId:"",maskByInstance:void 0,maskInverted:!1},yr=function(e){b_(r,e);var t=E_(r);function r(){return R_(this,r),t.apply(this,arguments)}var i=r.prototype;return i.initializeState=function(){var o;(o=this.context.deck)===null||o===void 0||o._addDefaultEffect(new Rr)},i.getShaders=function(){var o="instancePositions"in this.getAttributeManager().attributes;return this.props.maskByInstance!==void 0&&(o=Boolean(this.props.maskByInstance)),this.state.maskByInstance=o,{modules:[Ds]}},i.draw=function(o){var s=o.uniforms,a=o.context,f=o.moduleParameters;s.mask_maskByInstance=this.state.maskByInstance;var l=this.props,c=l.maskId,u=l.maskInverted,_=f.maskChannels,d=a.viewport;if(_&&_[c]){var p=_[c],g=p.index,h=p.bounds,R=p.coordinateOrigin,A=_[c].coordinateSystem;s.mask_enabled=!0,s.mask_channel=g,s.mask_inverted=u,A===Ae.COORDINATE_SYSTEM.DEFAULT&&(A=d.isGeospatial?Ae.COORDINATE_SYSTEM.LNGLAT:Ae.COORDINATE_SYSTEM.CARTESIAN);var m={modelMatrix:null,fromCoordinateOrigin:R,fromCoordinateSystem:A},B=this.projectPosition([h[0],h[1],0],m),X=this.projectPosition([h[2],h[3],0],m);s.mask_bounds=[B[0],B[1],X[0],X[1]]}else c&&Ae.log.warn("Could not find a mask layer with id: ".concat(c))(),s.mask_enabled=!1},r}(Ae.LayerExtension);yr.defaultProps=y_;yr.extensionName="MaskExtension";var ra=T(S());var Nr=T(S());var Us=T(S()),ne={NONE:0,WRITE_HEIGHT_MAP:1,USE_HEIGHT_MAP:2,USE_COVER:3,USE_COVER_ONLY:4,SKIP:5},ws=Object.keys(ne).map(function(e){return"const float TERRAIN_MODE_".concat(e," = ").concat(ne[e],".0;")}).join(`
1508
- `),Or={name:"terrain",dependencies:[Us.project],inject:{"vs:#decl":`
1381
+ `},Ar=e=>e&&"maskMap"in e?{mask_texture:e.maskMap}:{},Ot={name:"mask",dependencies:[Mt.project],vs:Rr,fs:lr,inject:Tr,getUniforms:Ar};var fr={maskId:"",maskByInstance:void 0,maskInverted:!1},Ae=class extends O.LayerExtension{initializeState(){this.context.deck?._addDefaultEffect(new C)}getShaders(){let t="instancePositions"in this.getAttributeManager().attributes;return this.props.maskByInstance!==void 0&&(t=Boolean(this.props.maskByInstance)),this.state.maskByInstance=t,{modules:[Ot]}}draw({uniforms:t,context:_,moduleParameters:r}){t.mask_maskByInstance=this.state.maskByInstance;let{maskId:o,maskInverted:s}=this.props,{maskChannels:i}=r,{viewport:a}=_;if(i&&i[o]){let{index:R,bounds:l,coordinateOrigin:T}=i[o],{coordinateSystem:A}=i[o];t.mask_enabled=!0,t.mask_channel=R,t.mask_inverted=s,A===O.COORDINATE_SYSTEM.DEFAULT&&(A=a.isGeospatial?O.COORDINATE_SYSTEM.LNGLAT:O.COORDINATE_SYSTEM.CARTESIAN);let f={modelMatrix:null,fromCoordinateOrigin:T,fromCoordinateSystem:A},p=this.projectPosition([l[0],l[1],0],f),S=this.projectPosition([l[2],l[3],0],f);t.mask_bounds=[p[0],p[1],S[0],S[1]]}else o&&O.log.warn(`Could not find a mask layer with id: ${o}`)(),t.mask_enabled=!1}},Y=Ae;(()=>{Ae.defaultProps=fr})(),(()=>{Ae.extensionName="MaskExtension"})();var vt=c(n(),1);var Se=c(n(),1);var Ft=c(n(),1),I={NONE:0,WRITE_HEIGHT_MAP:1,USE_HEIGHT_MAP:2,USE_COVER:3,USE_COVER_ONLY:4,SKIP:5},Ct=Object.keys(I).map(e=>`const float TERRAIN_MODE_${e} = ${I[e]}.0;`).join(`
1382
+ `),fe={name:"terrain",dependencies:[Ft.project],inject:{"vs:#decl":`
1509
1383
  uniform float terrain_mode;
1510
1384
  uniform sampler2D terrain_map;
1511
1385
  uniform vec4 terrain_bounds;
1512
1386
  out vec3 commonPos;
1513
- `.concat(ws,`
1514
- `),"vs:#main-start":`
1387
+ ${Ct}
1388
+ `,"vs:#main-start":`
1515
1389
  if (terrain_mode == TERRAIN_MODE_SKIP) {
1516
1390
  gl_Position = vec4(0.0);
1517
1391
  return;
@@ -1539,8 +1413,8 @@ uniform float terrain_mode;
1539
1413
  uniform sampler2D terrain_map;
1540
1414
  uniform vec4 terrain_bounds;
1541
1415
  in vec3 commonPos;
1542
- `.concat(ws,`
1543
- `),"fs:#main-start":`
1416
+ ${Ct}
1417
+ `,"fs:#main-start":`
1544
1418
  if (terrain_mode == TERRAIN_MODE_WRITE_HEIGHT_MAP) {
1545
1419
  fragColor = vec4(commonPos.z, 0.0, 0.0, 1.0);
1546
1420
  return;
@@ -1557,9 +1431,6 @@ if ((terrain_mode == TERRAIN_MODE_USE_COVER) || (terrain_mode == TERRAIN_MODE_US
1557
1431
  }
1558
1432
  return;
1559
1433
  }
1560
- `},getUniforms:function(){var t=arguments.length>0&&arguments[0]!==void 0?arguments[0]:{},r=arguments.length>1?arguments[1]:void 0;if("dummyHeightMap"in t){var i=t.drawToTerrainHeightMap,n=t.heightMap,o=t.heightMapBounds,s=t.dummyHeightMap,a=t.terrainCover,f=t.useTerrainHeightMap,l=t.terrainSkipRender,c=r.project_uCommonOrigin,u=l?ne.SKIP:ne.NONE,_=s,d=null;if(i)u=ne.WRITE_HEIGHT_MAP,d=o;else if(f&&n)u=ne.USE_HEIGHT_MAP,_=n,d=o;else if(a){var p,g=(p=t.picking)===null||p===void 0?void 0:p.isActive;_=g?a.getPickingFramebuffer():a.getRenderFramebuffer(),g&&(u=ne.SKIP),_?(u=u===ne.SKIP?ne.USE_COVER_ONLY:ne.USE_COVER,d=a.bounds):_=s}return{terrain_mode:u,terrain_map:_,terrain_bounds:d?[d[0]-c[0],d[1]-c[1],d[2]-d[0],d[3]-d[1]]:[0,0,0,0]}}return null}};function Vs(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var i=Object.getOwnPropertySymbols(e);t&&(i=i.filter(function(n){return Object.getOwnPropertyDescriptor(e,n).enumerable})),r.push.apply(r,i)}return r}function ks(e){for(var t=1;t<arguments.length;t++){var r=arguments[t]!=null?arguments[t]:{};t%2?Vs(Object(r),!0).forEach(function(i){O_(e,i,r[i])}):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(r)):Vs(Object(r)).forEach(function(i){Object.defineProperty(e,i,Object.getOwnPropertyDescriptor(r,i))})}return e}function O_(e,t,r){return t in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r,e}function ht(e,t){return e.createFramebuffer({id:t.id,colorAttachments:[e.createTexture(ks(ks({},t.float&&{format:e.info.type==="webgl2"?"rgba32float":"rgba8unorm",type:5126}),{},{mipmaps:!1,sampler:{minFilter:"linear",magFilter:"linear",addressModeU:"clamp-to-edge",addressModeV:"clamp-to-edge"}}))]})}function x_(e,t){var r=typeof Symbol<"u"&&e[Symbol.iterator]||e["@@iterator"];if(!r){if(Array.isArray(e)||(r=P_(e))||t&&e&&typeof e.length=="number"){r&&(e=r);var i=0,n=function(){};return{s:n,n:function(){return i>=e.length?{done:!0}:{done:!1,value:e[i++]}},e:function(l){throw l},f:n}}throw new TypeError(`Invalid attempt to iterate non-iterable instance.
1561
- In order to be iterable, non-array objects must have a [Symbol.iterator]() method.`)}var o=!0,s=!1,a;return{s:function(){r=r.call(e)},n:function(){var l=r.next();return o=l.done,l},e:function(l){s=!0,a=l},f:function(){try{!o&&r.return!=null&&r.return()}finally{if(s)throw a}}}}function P_(e,t){if(e){if(typeof e=="string")return Ws(e,t);var r=Object.prototype.toString.call(e).slice(8,-1);if(r==="Object"&&e.constructor&&(r=e.constructor.name),r==="Map"||r==="Set")return Array.from(e);if(r==="Arguments"||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(r))return Ws(e,t)}}function Ws(e,t){(t==null||t>e.length)&&(t=e.length);for(var r=0,i=new Array(t);r<t;r++)i[r]=e[r];return i}function I_(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}function Hs(e,t){for(var r=0;r<t.length;r++){var i=t[r];i.enumerable=i.enumerable||!1,i.configurable=!0,"value"in i&&(i.writable=!0),Object.defineProperty(e,i.key,i)}}function F_(e,t,r){return t&&Hs(e.prototype,t),r&&Hs(e,r),e}var Xs=function(){function e(r){I_(this,e),this.isDirty=!0,this.targetLayer=void 0,this.renderViewport=null,this.bounds=null,this.fbo=void 0,this.pickingFbo=void 0,this.layers=[],this.tile=void 0,this.targetBounds=null,this.targetBoundsCommon=null,this.targetLayer=r,this.tile=Ls(r)}var t=e.prototype;return t.shouldUpdate=function(i){var n=i.targetLayer,o=i.viewport,s=i.layers,a=i.layerNeedsRedraw;n&&(this.targetLayer=n);var f=o?this._updateViewport(o):!1,l=s?this._updateLayers(s):!1;if(a){var c=x_(this.layers),u;try{for(c.s();!(u=c.n()).done;){var _=u.value;if(a[_]){l=!0;break}}}catch(d){c.e(d)}finally{c.f()}}return l||f},t._updateLayers=function(i){var n=!1;if(i=this.tile?C_(this.tile,i):i,i.length!==this.layers.length)n=!0;else for(var o=0;o<i.length;o++){var s=i[o].id;if(s!==this.layers[o]){n=!0;break}}return n&&(this.layers=i.map(function(a){return a.id})),n},t._updateViewport=function(i){var n=this.targetLayer,o=!1;if(this.tile&&"boundingBox"in this.tile){if(!this.targetBounds){o=!0,this.targetBounds=this.tile.boundingBox;var s=i.projectPosition(this.targetBounds[0]),a=i.projectPosition(this.targetBounds[1]);this.targetBoundsCommon=[s[0],s[1],a[0],a[1]]}}else this.targetBounds!==n.getBounds()&&(o=!0,this.targetBounds=n.getBounds(),this.targetBoundsCommon=Ue([n],i));if(!this.targetBoundsCommon)return!1;var f=Math.ceil(i.zoom+.5);if(this.tile)this.bounds=this.targetBoundsCommon;else{var l,c=(l=this.renderViewport)===null||l===void 0?void 0:l.zoom;o=o||f!==c;var u=ke(this.targetBoundsCommon,i),_=this.bounds;o=o||!_||u.some(function(d,p){return d!==_[p]}),this.bounds=u}return o&&(this.renderViewport=Ve({bounds:this.bounds,zoom:f,viewport:i})),o},t.getRenderFramebuffer=function(){return!this.renderViewport||this.layers.length===0?null:(this.fbo||(this.fbo=ht(this.targetLayer.context.device,{id:this.id})),this.fbo)},t.getPickingFramebuffer=function(){return!this.renderViewport||this.layers.length===0&&!this.targetLayer.props.pickable?null:(this.pickingFbo||(this.pickingFbo=ht(this.targetLayer.context.device,{id:"".concat(this.id,"-picking")})),this.pickingFbo)},t.filterLayers=function(i){var n=this;return i.filter(function(o){var s=o.id;return n.layers.includes(s)})},t.delete=function(){var i=this.fbo,n=this.pickingFbo;i&&(i.colorAttachments[0].destroy(),i.destroy()),n&&(n.colorAttachments[0].destroy(),n.destroy())},F_(e,[{key:"id",get:function(){return this.targetLayer.id}},{key:"isActive",get:function(){return Boolean(this.targetLayer.getCurrentLayer())}}]),e}();function C_(e,t){return t.filter(function(r){var i=Ls(r);return i?M_(e.boundingBox,i.boundingBox):!0})}function Ls(e){for(;e;){var t=e.props.tile;if(t)return t;e=e.parent}return null}function M_(e,t){return e&&t?e[0][0]<t[1][0]&&t[0][0]<e[1][0]&&e[0][1]<t[1][1]&&t[0][1]<e[1][1]:!1}var Ks=T(S());function Pr(e){return typeof Symbol=="function"&&typeof Symbol.iterator=="symbol"?Pr=function(r){return typeof r}:Pr=function(r){return r&&typeof Symbol=="function"&&r.constructor===Symbol&&r!==Symbol.prototype?"symbol":typeof r},Pr(e)}function js(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var i=Object.getOwnPropertySymbols(e);t&&(i=i.filter(function(n){return Object.getOwnPropertyDescriptor(e,n).enumerable})),r.push.apply(r,i)}return r}function xr(e){for(var t=1;t<arguments.length;t++){var r=arguments[t]!=null?arguments[t]:{};t%2?js(Object(r),!0).forEach(function(i){N_(e,i,r[i])}):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(r)):js(Object(r)).forEach(function(i){Object.defineProperty(e,i,Object.getOwnPropertyDescriptor(r,i))})}return e}function N_(e,t,r){return t in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r,e}function B_(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}function D_(e,t){if(typeof t!="function"&&t!==null)throw new TypeError("Super expression must either be null or a function");e.prototype=Object.create(t&&t.prototype,{constructor:{value:e,writable:!0,configurable:!0}}),t&&Pi(e,t)}function Pi(e,t){return Pi=Object.setPrototypeOf||function(i,n){return i.__proto__=n,i},Pi(e,t)}function w_(e){var t=k_();return function(){var i=Ir(e),n;if(t){var o=Ir(this).constructor;n=Reflect.construct(i,arguments,o)}else n=i.apply(this,arguments);return U_(this,n)}}function U_(e,t){if(t&&(Pr(t)==="object"||typeof t=="function"))return t;if(t!==void 0)throw new TypeError("Derived constructors may only return object or undefined");return V_(e)}function V_(e){if(e===void 0)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return e}function k_(){if(typeof Reflect>"u"||!Reflect.construct||Reflect.construct.sham)return!1;if(typeof Proxy=="function")return!0;try{return Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],function(){})),!0}catch{return!1}}function Ir(e){return Ir=Object.setPrototypeOf?Object.getPrototypeOf:function(r){return r.__proto__||Object.getPrototypeOf(r)},Ir(e)}var zs=function(e){D_(r,e);var t=w_(r);function r(){return B_(this,r),t.apply(this,arguments)}var i=r.prototype;return i.getRenderableLayers=function(o,s){for(var a=s.layers,f=[],l=this._getDrawLayerParams(o,s,!0),c=0;c<a.length;c++){var u=a[c];!u.isComposite&&l[c].shouldDrawLayer&&f.push(u)}return f},i.renderHeightMap=function(o,s){var a=this,f=o.getRenderFramebuffer(),l=o.renderViewport;!f||!l||(f.resize(l),P(this.device,{clearColor:[0,0,0,0],blend:!0,blendFunc:[1,1],blendEquation:32776,depthTest:!1},function(){return a.render(xr(xr({},s),{},{target:f,pass:"terrain-height-map",layers:s.layers,viewports:[l],effects:[]}))}))},i.renderTerrainCover=function(o,s){var a=this,f=o.getRenderFramebuffer(),l=o.renderViewport;if(!(!f||!l)){var c=o.filterLayers(s.layers);f.resize(l),P(this.device,{clearColor:[0,0,0,0],depthTest:!1},function(){return a.render(xr(xr({},s),{},{target:f,pass:"terrain-cover-".concat(o.id),layers:c,effects:[],viewports:[l]}))})}},r}(Ks._LayersPass);var qs=T(S());function Fr(e){return typeof Symbol=="function"&&typeof Symbol.iterator=="symbol"?Fr=function(r){return typeof r}:Fr=function(r){return r&&typeof Symbol=="function"&&r.constructor===Symbol&&r!==Symbol.prototype?"symbol":typeof r},Fr(e)}function Ys(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var i=Object.getOwnPropertySymbols(e);t&&(i=i.filter(function(n){return Object.getOwnPropertyDescriptor(e,n).enumerable})),r.push.apply(r,i)}return r}function $s(e){for(var t=1;t<arguments.length;t++){var r=arguments[t]!=null?arguments[t]:{};t%2?Ys(Object(r),!0).forEach(function(i){W_(e,i,r[i])}):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(r)):Ys(Object(r)).forEach(function(i){Object.defineProperty(e,i,Object.getOwnPropertyDescriptor(r,i))})}return e}function W_(e,t,r){return t in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r,e}function H_(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}function Cr(e,t,r){return typeof Reflect<"u"&&Reflect.get?Cr=Reflect.get:Cr=function(n,o,s){var a=X_(n,o);if(a){var f=Object.getOwnPropertyDescriptor(a,o);return f.get?f.get.call(s):f.value}},Cr(e,t,r||e)}function X_(e,t){for(;!Object.prototype.hasOwnProperty.call(e,t)&&(e=We(e),e!==null););return e}function L_(e,t){if(typeof t!="function"&&t!==null)throw new TypeError("Super expression must either be null or a function");e.prototype=Object.create(t&&t.prototype,{constructor:{value:e,writable:!0,configurable:!0}}),t&&Ii(e,t)}function Ii(e,t){return Ii=Object.setPrototypeOf||function(i,n){return i.__proto__=n,i},Ii(e,t)}function j_(e){var t=Y_();return function(){var i=We(e),n;if(t){var o=We(this).constructor;n=Reflect.construct(i,arguments,o)}else n=i.apply(this,arguments);return K_(this,n)}}function K_(e,t){if(t&&(Fr(t)==="object"||typeof t=="function"))return t;if(t!==void 0)throw new TypeError("Derived constructors may only return object or undefined");return z_(e)}function z_(e){if(e===void 0)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return e}function Y_(){if(typeof Reflect>"u"||!Reflect.construct||Reflect.construct.sham)return!1;if(typeof Proxy=="function")return!0;try{return Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],function(){})),!0}catch{return!1}}function We(e){return We=Object.setPrototypeOf?Object.getPrototypeOf:function(r){return r.__proto__||Object.getPrototypeOf(r)},We(e)}var Zs=function(e){L_(r,e);var t=j_(r);function r(){var n;H_(this,r);for(var o=arguments.length,s=new Array(o),a=0;a<o;a++)s[a]=arguments[a];return n=t.call.apply(t,[this].concat(s)),n.drawParameters={},n}var i=r.prototype;return i.getRenderableLayers=function(o,s){var a=s.layers,f=[];this.drawParameters={},this._resetColorEncoder(s.pickZ);for(var l=this._getDrawLayerParams(o,s),c=0;c<a.length;c++){var u=a[c];!u.isComposite&&l[c].shouldDrawLayer&&(f.push(u),this.drawParameters[u.id]=l[c].layerParameters)}return f},i.renderTerrainCover=function(o,s){var a=this,f=o.getPickingFramebuffer(),l=o.renderViewport;if(!(!f||!l)){var c=o.filterLayers(s.layers),u=o.targetLayer;u.props.pickable&&c.unshift(u),f.resize(l),P(this.device,{depthTest:!1},function(){return a.render($s($s({},s),{},{pickingFBO:f,pass:"terrain-cover-picking-".concat(o.id),layers:c,effects:[],viewports:[l],cullRect:void 0,deviceRect:l,pickZ:!1}))})}},i.getLayerParameters=function(o,s,a){if(this.drawParameters[o.id])return this.drawParameters[o.id];var f=Cr(We(r.prototype),"getLayerParameters",this).call(this,o,s,a);return f.blend=!0,f},r}(qs._PickLayersPass);function $_(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}var Qs=2048,Fi=function(){e.isSupported=function(i){return i.isTextureFormatRenderable("rgba32float")};function e(r){$_(this,e),this.renderViewport=null,this.bounds=null,this.fbo=void 0,this.device=void 0,this.layers=[],this.layersBounds=[],this.layersBoundsCommon=null,this.lastViewport=null,this.device=r}var t=e.prototype;return t.getRenderFramebuffer=function(){return this.renderViewport?(this.fbo||(this.fbo=ht(this.device,{id:"height-map",float:!0})),this.fbo):null},t.shouldUpdate=function(i){var n=this,o=i.layers,s=i.viewport,a=o.length!==this.layers.length||o.some(function(d,p){return d!==n.layers[p]||d.props.transitions||d.getBounds()!==n.layersBounds[p]});a&&(this.layers=o,this.layersBounds=o.map(function(d){return d.getBounds()}),this.layersBoundsCommon=Ue(o,s));var f=!this.lastViewport||!s.equals(this.lastViewport);if(!this.layersBoundsCommon)this.renderViewport=null;else if(a||f){var l=ke(this.layersBoundsCommon,s);if(l[2]<=l[0]||l[3]<=l[1])return this.renderViewport=null,!1;this.bounds=l,this.lastViewport=s;var c=s.scale,u=(l[2]-l[0])*c,_=(l[3]-l[1])*c;return this.renderViewport=u>0||_>0?Ve({bounds:[s.center[0]-1,s.center[1]-1,s.center[0]+1,s.center[1]+1],zoom:s.zoom,width:Math.min(u,Qs),height:Math.min(_,Qs),viewport:s}):null,!0}return!1},t.delete=function(){this.fbo&&(this.fbo.colorAttachments[0].delete(),this.fbo.delete())},e}();function q_(e,t){return J_(e)||Q_(e,t)||ea(e,t)||Z_()}function Z_(){throw new TypeError(`Invalid attempt to destructure non-iterable instance.
1562
- In order to be iterable, non-array objects must have a [Symbol.iterator]() method.`)}function Q_(e,t){var r=e==null?null:typeof Symbol<"u"&&e[Symbol.iterator]||e["@@iterator"];if(r!=null){var i=[],n=!0,o=!1,s,a;try{for(r=r.call(e);!(n=(s=r.next()).done)&&(i.push(s.value),!(t&&i.length===t));n=!0);}catch(f){o=!0,a=f}finally{try{!n&&r.return!=null&&r.return()}finally{if(o)throw a}}return i}}function J_(e){if(Array.isArray(e))return e}function Js(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var i=Object.getOwnPropertySymbols(e);t&&(i=i.filter(function(n){return Object.getOwnPropertyDescriptor(e,n).enumerable})),r.push.apply(r,i)}return r}function Mr(e){for(var t=1;t<arguments.length;t++){var r=arguments[t]!=null?arguments[t]:{};t%2?Js(Object(r),!0).forEach(function(i){G_(e,i,r[i])}):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(r)):Js(Object(r)).forEach(function(i){Object.defineProperty(e,i,Object.getOwnPropertyDescriptor(r,i))})}return e}function G_(e,t,r){return t in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r,e}function He(e,t){var r=typeof Symbol<"u"&&e[Symbol.iterator]||e["@@iterator"];if(!r){if(Array.isArray(e)||(r=ea(e))||t&&e&&typeof e.length=="number"){r&&(e=r);var i=0,n=function(){};return{s:n,n:function(){return i>=e.length?{done:!0}:{done:!1,value:e[i++]}},e:function(l){throw l},f:n}}throw new TypeError(`Invalid attempt to iterate non-iterable instance.
1563
- In order to be iterable, non-array objects must have a [Symbol.iterator]() method.`)}var o=!0,s=!1,a;return{s:function(){r=r.call(e)},n:function(){var l=r.next();return o=l.done,l},e:function(l){s=!0,a=l},f:function(){try{!o&&r.return!=null&&r.return()}finally{if(s)throw a}}}}function ea(e,t){if(e){if(typeof e=="string")return Gs(e,t);var r=Object.prototype.toString.call(e).slice(8,-1);if(r==="Object"&&e.constructor&&(r=e.constructor.name),r==="Map"||r==="Set")return Array.from(e);if(r==="Arguments"||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(r))return Gs(e,t)}}function Gs(e,t){(t==null||t>e.length)&&(t=e.length);for(var r=0,i=new Array(t);r<t;r++)i[r]=e[r];return i}function ed(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}var ta=function(){function e(){ed(this,e),this.id="terrain-effect",this.props=null,this.useInPicking=!0,this.isPicking=!1,this.isDrapingEnabled=!1,this.dummyHeightMap=void 0,this.heightMap=void 0,this.terrainPass=void 0,this.terrainPickingPass=void 0,this.terrainCovers=new Map}var t=e.prototype;return t.initialize=function(i){this.dummyHeightMap=i.createTexture({width:1,height:1,data:new Uint8Array([0,0,0,0])}),this.terrainPass=new zs(i,{id:"terrain"}),this.terrainPickingPass=new Zs(i,{id:"terrain-picking"}),Fi.isSupported(i)?this.heightMap=new Fi(i):Nr.log.warn("Terrain offset mode is not supported by this browser")(),(0,Nr.getShaderAssembler)().addDefaultModule(Or)},t.preRender=function(i,n){if(!this.dummyHeightMap){this.initialize(i);var o=He(n.layers),s;try{for(o.s();!(s=o.n()).done;){var a=s.value;a.props.operation.includes("terrain")&&a.setChangeFlags({extensionsChanged:!0})}}catch(h){o.e(h)}finally{o.f()}}if(n.pickZ){this.isDrapingEnabled=!1;return}var f=n.viewports,l=n.isPicking,c=l===void 0?!1:l;this.isPicking=c,this.isDrapingEnabled=!0;var u=f[0],_=(c?this.terrainPickingPass:this.terrainPass).getRenderableLayers(u,n),d=_.filter(function(h){return h.props.operation.includes("terrain")});if(d.length!==0){if(!c){var p=_.filter(function(h){return h.state.terrainDrawMode==="offset"});p.length>0&&this._updateHeightMap(d,u,n)}var g=_.filter(function(h){return h.state.terrainDrawMode==="drape"});this._updateTerrainCovers(d,g,u,n)}},t.getModuleParameters=function(i){var n,o,s=i.state.terrainDrawMode;return{heightMap:(n=this.heightMap)===null||n===void 0?void 0:n.getRenderFramebuffer(),heightMapBounds:(o=this.heightMap)===null||o===void 0?void 0:o.bounds,dummyHeightMap:this.dummyHeightMap,terrainCover:this.isDrapingEnabled?this.terrainCovers.get(i.id):null,useTerrainHeightMap:s==="offset",terrainSkipRender:s==="drape"||!i.props.operation.includes("draw")}},t.cleanup=function(){this.dummyHeightMap&&(this.dummyHeightMap.delete(),this.dummyHeightMap=void 0),this.heightMap&&(this.heightMap.delete(),this.heightMap=void 0);var i=He(this.terrainCovers.values()),n;try{for(i.s();!(n=i.n()).done;){var o=n.value;o.delete()}}catch(s){i.e(s)}finally{i.f()}this.terrainCovers.clear()},t._updateHeightMap=function(i,n,o){if(this.heightMap){var s=this.heightMap.shouldUpdate({layers:i,viewport:n});s&&this.terrainPass.renderHeightMap(this.heightMap,Mr(Mr({},o),{},{layers:i,moduleParameters:{heightMapBounds:this.heightMap.bounds,dummyHeightMap:this.dummyHeightMap,devicePixelRatio:1,drawToTerrainHeightMap:!0}}))}},t._updateTerrainCovers=function(i,n,o,s){var a={},f=He(n),l;try{for(f.s();!(l=f.n()).done;){var c=l.value;c.state.terrainCoverNeedsRedraw&&(a[c.id]=!0,c.state.terrainCoverNeedsRedraw=!1)}}catch(R){f.e(R)}finally{f.f()}var u=He(this.terrainCovers.values()),_;try{for(u.s();!(_=u.n()).done;){var d=_.value;d.isDirty=d.isDirty||d.shouldUpdate({layerNeedsRedraw:a})}}catch(R){u.e(R)}finally{u.f()}var p=He(i),g;try{for(p.s();!(g=p.n()).done;){var h=g.value;this._updateTerrainCover(h,n,o,s)}}catch(R){p.e(R)}finally{p.f()}this.isPicking||this._pruneTerrainCovers()},t._updateTerrainCover=function(i,n,o,s){var a=this.isPicking?this.terrainPickingPass:this.terrainPass,f=this.terrainCovers.get(i.id);f||(f=new Xs(i),this.terrainCovers.set(i.id,f));try{var l=f.shouldUpdate({targetLayer:i,viewport:o,layers:n});(this.isPicking||f.isDirty||l)&&(a.renderTerrainCover(f,Mr(Mr({},s),{},{layers:n,moduleParameters:{dummyHeightMap:this.dummyHeightMap,terrainSkipRender:!1,devicePixelRatio:1}})),f.isDirty=!1)}catch(c){i.raiseError(c,"Error rendering terrain cover ".concat(f.id))}},t._pruneTerrainCovers=function(){var i=[],n=He(this.terrainCovers),o;try{for(n.s();!(o=n.n()).done;){var s=q_(o.value,2),a=s[0],f=s[1];f.isActive||i.push(a)}}catch(_){n.e(_)}finally{n.f()}for(var l=0,c=i;l<c.length;l++){var u=c[l];this.terrainCovers.delete(u)}},e}();function Br(e){return typeof Symbol=="function"&&typeof Symbol.iterator=="symbol"?Br=function(r){return typeof r}:Br=function(r){return r&&typeof Symbol=="function"&&r.constructor===Symbol&&r!==Symbol.prototype?"symbol":typeof r},Br(e)}function td(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}function rd(e,t){if(typeof t!="function"&&t!==null)throw new TypeError("Super expression must either be null or a function");e.prototype=Object.create(t&&t.prototype,{constructor:{value:e,writable:!0,configurable:!0}}),t&&Ci(e,t)}function Ci(e,t){return Ci=Object.setPrototypeOf||function(i,n){return i.__proto__=n,i},Ci(e,t)}function id(e){var t=sd();return function(){var i=Dr(e),n;if(t){var o=Dr(this).constructor;n=Reflect.construct(i,arguments,o)}else n=i.apply(this,arguments);return nd(this,n)}}function nd(e,t){if(t&&(Br(t)==="object"||typeof t=="function"))return t;if(t!==void 0)throw new TypeError("Derived constructors may only return object or undefined");return od(e)}function od(e){if(e===void 0)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return e}function sd(){if(typeof Reflect>"u"||!Reflect.construct||Reflect.construct.sham)return!1;if(typeof Proxy=="function")return!0;try{return Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],function(){})),!0}catch{return!1}}function Dr(e){return Dr=Object.setPrototypeOf?Object.getPrototypeOf:function(r){return r.__proto__||Object.getPrototypeOf(r)},Dr(e)}var ad={terrainDrawMode:void 0},wr=function(e){rd(r,e);var t=id(r);function r(){return td(this,r),t.apply(this,arguments)}var i=r.prototype;return i.getShaders=function(){return{modules:[Or]}},i.initializeState=function(){var o;(o=this.context.deck)===null||o===void 0||o._addDefaultEffect(new ta)},i.updateState=function(o){var s=o.props,a=o.oldProps;if(!(this.state.terrainDrawMode&&s.terrainDrawMode===a.terrainDrawMode&&s.extruded===a.extruded)){var f=s.terrainDrawMode;if(!f){var l,c=this.props.extruded,u=(l=this.getAttributeManager())===null||l===void 0?void 0:l.attributes,_=u&&"instancePositions"in u;f=c||_?"offset":"drape"}this.setState({terrainDrawMode:f})}},i.onNeedsRedraw=function(){var o=this.state;o.terrainDrawMode==="drape"&&(o.terrainCoverNeedsRedraw=!0)},r}(ra.LayerExtension);wr.defaultProps=ad;wr.extensionName="TerrainExtension";return ca(gt);})();
1434
+ `},getUniforms:(e={},t)=>{if("dummyHeightMap"in e){let{drawToTerrainHeightMap:_,heightMap:r,heightMapBounds:o,dummyHeightMap:s,terrainCover:i,useTerrainHeightMap:a,terrainSkipRender:R}=e,{project_uCommonOrigin:l}=t,T=R?I.SKIP:I.NONE,A=s,f=null;if(_)T=I.WRITE_HEIGHT_MAP,f=o;else if(a&&r)T=I.USE_HEIGHT_MAP,A=r,f=o;else if(i){let p=e.picking?.isActive;A=p?i.getPickingFramebuffer():i.getRenderFramebuffer(),p&&(T=I.SKIP),A?(T=T===I.SKIP?I.USE_COVER_ONLY:I.USE_COVER,f=i.bounds):A=s}return{terrain_mode:T,terrain_map:A,terrain_bounds:f?[f[0]-l[0],f[1]-l[1],f[2]-f[0],f[3]-f[1]]:[0,0,0,0]}}return null}};function j(e,t){return e.createFramebuffer({id:t.id,colorAttachments:[e.createTexture({...t.float&&{format:e.info.type==="webgl2"?"rgba32float":"rgba8unorm",type:E.FLOAT},mipmaps:!1,sampler:{minFilter:"linear",magFilter:"linear",addressModeU:"clamp-to-edge",addressModeV:"clamp-to-edge"}})]})}var ce=class{constructor(t){this.isDirty=!0,this.renderViewport=null,this.bounds=null,this.layers=[],this.targetBounds=null,this.targetBoundsCommon=null,this.targetLayer=t,this.tile=Pt(t)}get id(){return this.targetLayer.id}get isActive(){return Boolean(this.targetLayer.getCurrentLayer())}shouldUpdate({targetLayer:t,viewport:_,layers:r,layerNeedsRedraw:o}){t&&(this.targetLayer=t);let s=_?this._updateViewport(_):!1,i=r?this._updateLayers(r):!1;if(o){for(let a of this.layers)if(o[a]){i=!0;break}}return i||s}_updateLayers(t){let _=!1;if(t=this.tile?cr(this.tile,t):t,t.length!==this.layers.length)_=!0;else for(let r=0;r<t.length;r++)if(t[r].id!==this.layers[r]){_=!0;break}return _&&(this.layers=t.map(r=>r.id)),_}_updateViewport(t){let _=this.targetLayer,r=!1;if(this.tile&&"boundingBox"in this.tile){if(!this.targetBounds){r=!0,this.targetBounds=this.tile.boundingBox;let s=t.projectPosition(this.targetBounds[0]),i=t.projectPosition(this.targetBounds[1]);this.targetBoundsCommon=[s[0],s[1],i[0],i[1]]}}else this.targetBounds!==_.getBounds()&&(r=!0,this.targetBounds=_.getBounds(),this.targetBoundsCommon=P([_],t));if(!this.targetBoundsCommon)return!1;let o=Math.ceil(t.zoom+.5);if(this.tile)this.bounds=this.targetBoundsCommon;else{let s=this.renderViewport?.zoom;r=r||o!==s;let i=h(this.targetBoundsCommon,t),a=this.bounds;r=r||!a||i.some((R,l)=>R!==a[l]),this.bounds=i}return r&&(this.renderViewport=B({bounds:this.bounds,zoom:o,viewport:t})),r}getRenderFramebuffer(){return!this.renderViewport||this.layers.length===0?null:(this.fbo||(this.fbo=j(this.targetLayer.context.device,{id:this.id})),this.fbo)}getPickingFramebuffer(){return!this.renderViewport||this.layers.length===0&&!this.targetLayer.props.pickable?null:(this.pickingFbo||(this.pickingFbo=j(this.targetLayer.context.device,{id:`${this.id}-picking`})),this.pickingFbo)}filterLayers(t){return t.filter(({id:_})=>this.layers.includes(_))}delete(){let{fbo:t,pickingFbo:_}=this;t&&(t.colorAttachments[0].destroy(),t.destroy()),_&&(_.colorAttachments[0].destroy(),_.destroy())}};function cr(e,t){return t.filter(_=>{let r=Pt(_);return r?nr(e.boundingBox,r.boundingBox):!0})}function Pt(e){for(;e;){let{tile:t}=e.props;if(t)return t;e=e.parent}return null}function nr(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 Bt=c(n(),1),ne=class extends Bt._LayersPass{getRenderableLayers(t,_){let{layers:r}=_,o=[],s=this._getDrawLayerParams(t,_,!0);for(let i=0;i<r.length;i++){let a=r[i];!a.isComposite&&s[i].shouldDrawLayer&&o.push(a)}return o}renderHeightMap(t,_){let r=t.getRenderFramebuffer(),o=t.renderViewport;!r||!o||(r.resize(o),this.device.withParametersWebGL({clearColor:[0,0,0,0],blend:!0,blendFunc:[E.ONE,E.ONE],blendEquation:E.MAX,depthTest:!1},()=>this.render({..._,target:r,pass:"terrain-height-map",layers:_.layers,viewports:[o],effects:[]})))}renderTerrainCover(t,_){let r=t.getRenderFramebuffer(),o=t.renderViewport;if(!r||!o)return;let s=t.filterLayers(_.layers);r.resize(o),this.device.withParametersWebGL({clearColor:[0,0,0,0],depthTest:!1},()=>this.render({..._,target:r,pass:`terrain-cover-${t.id}`,layers:s,effects:[],viewports:[o]}))}};var ht=c(n(),1),Ee=class extends ht._PickLayersPass{constructor(){super(...arguments),this.drawParameters={}}getRenderableLayers(t,_){let{layers:r}=_,o=[];this.drawParameters={},this._resetColorEncoder(_.pickZ);let s=this._getDrawLayerParams(t,_);for(let i=0;i<r.length;i++){let a=r[i];!a.isComposite&&s[i].shouldDrawLayer&&(o.push(a),this.drawParameters[a.id]=s[i].layerParameters)}return o}renderTerrainCover(t,_){let r=t.getPickingFramebuffer(),o=t.renderViewport;if(!r||!o)return;let s=t.filterLayers(_.layers),i=t.targetLayer;i.props.pickable&&s.unshift(i),r.resize(o),this.device.withParametersWebGL({depthTest:!1},()=>this.render({..._,pickingFBO:r,pass:`terrain-cover-picking-${t.id}`,layers:s,effects:[],viewports:[o],cullRect:void 0,deviceRect:o,pickZ:!1}))}getLayerParameters(t,_,r){if(this.drawParameters[t.id])return this.drawParameters[t.id];let o=super.getLayerParameters(t,_,r);return o.blend=!0,o}};var Dt=2048,z=class{static isSupported(t){return t.isTextureFormatRenderable("rgba32float")}constructor(t){this.renderViewport=null,this.bounds=null,this.layers=[],this.layersBounds=[],this.layersBoundsCommon=null,this.lastViewport=null,this.device=t}getRenderFramebuffer(){return this.renderViewport?(this.fbo||(this.fbo=j(this.device,{id:"height-map",float:!0})),this.fbo):null}shouldUpdate({layers:t,viewport:_}){let r=t.length!==this.layers.length||t.some((s,i)=>s!==this.layers[i]||s.props.transitions||s.getBounds()!==this.layersBounds[i]);r&&(this.layers=t,this.layersBounds=t.map(s=>s.getBounds()),this.layersBoundsCommon=P(t,_));let o=!this.lastViewport||!_.equals(this.lastViewport);if(!this.layersBoundsCommon)this.renderViewport=null;else if(r||o){let s=h(this.layersBoundsCommon,_);if(s[2]<=s[0]||s[3]<=s[1])return this.renderViewport=null,!1;this.bounds=s,this.lastViewport=_;let i=_.scale,a=(s[2]-s[0])*i,R=(s[3]-s[1])*i;return this.renderViewport=a>0||R>0?B({bounds:[_.center[0]-1,_.center[1]-1,_.center[0]+1,_.center[1]+1],zoom:_.zoom,width:Math.min(a,Dt),height:Math.min(R,Dt),viewport:_}):null,!0}return!1}delete(){this.fbo&&(this.fbo.colorAttachments[0].delete(),this.fbo.delete())}};var pe=class{constructor(){this.id="terrain-effect",this.props=null,this.useInPicking=!0,this.isPicking=!1,this.isDrapingEnabled=!1,this.terrainCovers=new Map}initialize(t){this.dummyHeightMap=t.createTexture({width:1,height:1,data:new Uint8Array([0,0,0,0])}),this.terrainPass=new ne(t,{id:"terrain"}),this.terrainPickingPass=new Ee(t,{id:"terrain-picking"}),z.isSupported(t)?this.heightMap=new z(t):Se.log.warn("Terrain offset mode is not supported by this browser")(),(0,Se.getShaderAssembler)().addDefaultModule(fe)}preRender(t,_){if(!this.dummyHeightMap){this.initialize(t);for(let l of _.layers)l.props.operation.includes("terrain")&&l.setChangeFlags({extensionsChanged:!0})}if(_.pickZ){this.isDrapingEnabled=!1;return}let{viewports:r}=_,o=_.pass.startsWith("picking");this.isPicking=o,this.isDrapingEnabled=!0;let s=r[0],i=(o?this.terrainPickingPass:this.terrainPass).getRenderableLayers(s,_),a=i.filter(l=>l.props.operation.includes("terrain"));if(a.length===0)return;o||i.filter(T=>T.state.terrainDrawMode==="offset").length>0&&this._updateHeightMap(a,s,_);let R=i.filter(l=>l.state.terrainDrawMode==="drape");this._updateTerrainCovers(a,R,s,_)}getModuleParameters(t){let{terrainDrawMode:_}=t.state;return{heightMap:this.heightMap?.getRenderFramebuffer(),heightMapBounds:this.heightMap?.bounds,dummyHeightMap:this.dummyHeightMap,terrainCover:this.isDrapingEnabled?this.terrainCovers.get(t.id):null,useTerrainHeightMap:_==="offset",terrainSkipRender:_==="drape"||!t.props.operation.includes("draw")}}cleanup(){this.dummyHeightMap&&(this.dummyHeightMap.delete(),this.dummyHeightMap=void 0),this.heightMap&&(this.heightMap.delete(),this.heightMap=void 0);for(let t of this.terrainCovers.values())t.delete();this.terrainCovers.clear()}_updateHeightMap(t,_,r){!this.heightMap||!this.heightMap.shouldUpdate({layers:t,viewport:_})||this.terrainPass.renderHeightMap(this.heightMap,{...r,layers:t,moduleParameters:{heightMapBounds:this.heightMap.bounds,dummyHeightMap:this.dummyHeightMap,devicePixelRatio:1,drawToTerrainHeightMap:!0}})}_updateTerrainCovers(t,_,r,o){let s={};for(let i of _)i.state.terrainCoverNeedsRedraw&&(s[i.id]=!0,i.state.terrainCoverNeedsRedraw=!1);for(let i of this.terrainCovers.values())i.isDirty=i.isDirty||i.shouldUpdate({layerNeedsRedraw:s});for(let i of t)this._updateTerrainCover(i,_,r,o);this.isPicking||this._pruneTerrainCovers()}_updateTerrainCover(t,_,r,o){let s=this.isPicking?this.terrainPickingPass:this.terrainPass,i=this.terrainCovers.get(t.id);i||(i=new ce(t),this.terrainCovers.set(t.id,i));try{let a=i.shouldUpdate({targetLayer:t,viewport:r,layers:_});(this.isPicking||i.isDirty||a)&&(s.renderTerrainCover(i,{...o,layers:_,moduleParameters:{dummyHeightMap:this.dummyHeightMap,terrainSkipRender:!1,devicePixelRatio:1}}),this.isPicking||(i.isDirty=!1))}catch(a){t.raiseError(a,`Error rendering terrain cover ${i.id}`)}}_pruneTerrainCovers(){let t=[];for(let[_,r]of this.terrainCovers)r.isActive||t.push(_);for(let _ of t)this.terrainCovers.delete(_)}};var Er={terrainDrawMode:void 0},Ne=class extends vt.LayerExtension{getShaders(){return{modules:[fe]}}initializeState(){this.context.deck?._addDefaultEffect(new pe)}updateState(t){let{props:_,oldProps:r}=t;if(this.state.terrainDrawMode&&_.terrainDrawMode===r.terrainDrawMode&&_.extruded===r.extruded)return;let{terrainDrawMode:o}=_;if(!o){let s=this.props.extruded,i=this.getAttributeManager()?.attributes,a=i&&"instancePositions"in i;o=s||a?"offset":"drape"}this.setState({terrainDrawMode:o})}onNeedsRedraw(){let t=this.state;t.terrainDrawMode==="drape"&&(t.terrainCoverNeedsRedraw=!0)}},Z=Ne;(()=>{Ne.defaultProps=Er})(),(()=>{Ne.extensionName="TerrainExtension"})();return Wt(q);})();
1564
1435
  return __exports__;
1565
1436
  });