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

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/dist.min.js CHANGED
@@ -4,8 +4,138 @@
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 ye=Object.create;var I=Object.defineProperty;var me=Object.getOwnPropertyDescriptor;var we=Object.getOwnPropertyNames;var be=Object.getPrototypeOf,ge=Object.prototype.hasOwnProperty;var M=(e,t)=>()=>(t||e((t={exports:{}}).exports,t),t.exports),_e=(e,t)=>{for(var r in t)I(e,r,{get:t[r],enumerable:!0})},S=(e,t,r,n)=>{if(t&&typeof t=="object"||typeof t=="function")for(let i of we(t))!ge.call(e,i)&&i!==r&&I(e,i,{get:()=>t[i],enumerable:!(n=me(t,i))||n.enumerable});return e},b=(e,t,r)=>(S(e,t,"default"),r&&S(r,t,"default")),_=(e,t,r)=>(r=e!=null?ye(be(e)):{},S(t||!e||!e.__esModule?I(r,"default",{value:e,enumerable:!0}):r,e)),ke=e=>S(I({},"__esModule",{value:!0}),e);var L=M((Ne,W)=>{W.exports=globalThis.deck});var ee=M((Qe,Z)=>{Z.exports=globalThis.luma});var ae=M((T,ie)=>{(function(e,t){typeof T=="object"&&typeof ie<"u"?t(T):typeof define=="function"&&define.amd?define(["exports"],t):t(e.esriLoader=e.esriLoader||{})})(T,function(e){"use strict";var t=typeof window<"u",r={Promise:t?window.Promise:void 0},n="4.21",i="next";function o(a){if(a.toLowerCase()===i)return i;var c=a&&a.match(/^(\d)\.(\d+)/);return c&&{major:parseInt(c[1],10),minor:parseInt(c[2],10)}}function u(a){return a===void 0&&(a=n),"https://js.arcgis.com/"+a+"/"}function s(a){a===void 0&&(a=n);var c=u(a),f=o(a);if(f!==i&&f.major===3){var d=f.minor<=10?"js/":"";return""+c+d+"esri/css/esri.css"}else return c+"esri/themes/light/main.css"}function l(a){var c=document.createElement("link");return c.rel="stylesheet",c.href=a,c}function h(a,c){if(c){var f=document.querySelector(c);f.parentNode.insertBefore(a,f)}else document.head.appendChild(a)}function R(a){return document.querySelector('link[href*="'+a+'"]')}function x(a){return!a||o(a)?s(a):a}function q(a,c){var f=x(a),d=R(f);return d||(d=l(f),h(d,c)),d}var U={};function fe(a){var c=document.createElement("script");return c.type="text/javascript",c.src=a,c.setAttribute("data-esri-loader","loading"),c}function B(a,c,f){var d;f&&(d=de(a,f));var v=function(){c(a),a.removeEventListener("load",v,!1),d&&a.removeEventListener("error",d,!1)};a.addEventListener("load",v,!1)}function de(a,c){var f=function(d){c(d.error||new Error("There was an error attempting to load "+a.src)),a.removeEventListener("error",f,!1)};return a.addEventListener("error",f,!1),f}function he(a){a===void 0&&(a={}),U=a}function E(){return document.querySelector("script[data-esri-loader]")}function A(){var a=window.require;return a&&a.on}function H(a){a===void 0&&(a={});var c={};[U,a].forEach(function(v){for(var p in v)Object.prototype.hasOwnProperty.call(v,p)&&(c[p]=v[p])});var f=c.version,d=c.url||u(f);return new r.Promise(function(v,p){var w=E();if(w){var N=w.getAttribute("src");N!==d?p(new Error("The ArcGIS API for JavaScript is already loaded ("+N+").")):A()?v(w):B(w,v,p)}else if(A())p(new Error("The ArcGIS API for JavaScript is already loaded."));else{var C=c.css;if(C){var pe=C===!0;q(pe?f:C,c.insertCssBefore)}w=fe(d),B(w,function(){w.setAttribute("data-esri-loader","loaded"),v(w)},p),document.body.appendChild(w)}})}function J(a){return new r.Promise(function(c,f){var d=window.require.on("error",f);window.require(a,function(){for(var v=[],p=0;p<arguments.length;p++)v[p]=arguments[p];d.remove(),c(v)})})}function ve(a,c){if(c===void 0&&(c={}),A())return J(a);var f=E(),d=f&&f.getAttribute("src");return!c.url&&d&&(c.url=d),H(c).then(function(){return J(a)})}e.utils=r,e.loadModules=ve,e.getScript=E,e.isLoaded=A,e.loadScript=H,e.setDefaultOptions=he,e.loadCss=q,Object.defineProperty(e,"__esModule",{value:!0})})});var k={};_e(k,{loadArcGISModules:()=>Be});var y={},K=_(L());b(y,_(L()));if(!K.Layer)throw new Error("@deck.gl/core is not found");b(k,y);function X(e,t){var r=typeof Symbol<"u"&&e[Symbol.iterator]||e["@@iterator"];if(!r){if(Array.isArray(e)||(r=Ae(e))||t&&e&&typeof e.length=="number"){r&&(e=r);var n=0,i=function(){};return{s:i,n:function(){return n>=e.length?{done:!0}:{done:!1,value:e[n++]}},e:function(h){throw h},f:i}}throw new TypeError(`Invalid attempt to iterate non-iterable instance.
8
- In order to be iterable, non-array objects must have a [Symbol.iterator]() method.`)}var o=!0,u=!1,s;return{s:function(){r=r.call(e)},n:function(){var h=r.next();return o=h.done,h},e:function(h){u=!0,s=h},f:function(){try{!o&&r.return!=null&&r.return()}finally{if(u)throw s}}}}function Ae(e,t){if(e){if(typeof e=="string")return Q(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 Q(e,t)}}function Q(e,t){(t==null||t>e.length)&&(t=e.length);for(var r=0,n=new Array(t);r<t;r++)n[r]=e[r];return n}function Se(e,t,r){return t in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r,e}var Y={layers:{},layerFilter:{},parameters:{},effects:{},pickingRadius:{},onBeforeRender:{},onAfterRender:{},onClick:{},onHover:{},onDragStart:{},onDrag:{},onDragEnd:{},onError:{},debug:{},drawPickingColors:{},getCursor:{},getTooltip:{}};function j(e){var t=e.createSubclass({properties:Y,constructor:function(){var n=this;this._callbacks={},this.watch(Object.keys(Y),function(i,o,u){n.emit("change",Se({},u,i))})},on:function(n,i){this._callbacks[n]=this._callbacks[n]||[],this._callbacks[n].push(i)},emit:function(n,i){var o=this._callbacks[n];if(o){var u=X(o),s;try{for(u.s();!(s=u.n()).done;){var l=s.value;l(i)}}catch(h){u.e(h)}finally{u.f()}}},toJSON:function(){var n={},i=X(this.keys()),o;try{for(i.s();!(o=i.n()).done;){var u=o.value;this[u]!==void 0&&(n[u]=this[u])}}catch(s){i.e(s)}finally{i.f()}return n}});return t}function z(e,t,r){return t.createSubclass({properties:{deck:{},blendMode:{},effect:{}},constructor:function(){this.deck=new e},createLayerView:function(i){return i.type==="2d"?new r({view:i,layer:this}):(console.error("DeckLayer does not support SceneView at the moment. Use DeckRenderer instead."),null)}})}var re=_(L()),m=_(ee());function D(e){var t=this;(0,m.instrumentGLContext)(e),this.buffer=new m.Buffer(e,new Int8Array([-1,-1,1,-1,-1,1,1,1])),this.model=new m.Model(e,{vs:`
7
+ "use strict";var __exports__=(()=>{var Ai=Object.create;var qe=Object.defineProperty;var fi=Object.getOwnPropertyDescriptor;var Ti=Object.getOwnPropertyNames;var ci=Object.getPrototypeOf,di=Object.prototype.hasOwnProperty;var Pt=(e,t)=>()=>(t||e((t={exports:{}}).exports,t),t.exports),Si=(e,t)=>{for(var n in t)qe(e,n,{get:t[n],enumerable:!0})},Qe=(e,t,n,i)=>{if(t&&typeof t=="object"||typeof t=="function")for(let s of Ti(t))!di.call(e,s)&&s!==n&&qe(e,s,{get:()=>t[s],enumerable:!(i=fi(t,s))||i.enumerable});return e},Re=(e,t,n)=>(Qe(e,t,"default"),n&&Qe(n,t,"default")),m=(e,t,n)=>(n=e!=null?Ai(ci(e)):{},Qe(t||!e||!e.__esModule?qe(n,"default",{value:e,enumerable:!0}):n,e)),hi=e=>Qe(qe({},"__esModule",{value:!0}),e);var Je=Pt((n_,fr)=>{fr.exports=globalThis.deck});var I=Pt((__,hr)=>{hr.exports=globalThis.luma});var oi=Pt((Bt,si)=>{(function(e,t){typeof Bt=="object"&&typeof si<"u"?t(Bt):typeof define=="function"&&define.amd?define(["exports"],t):t(e.esriLoader=e.esriLoader||{})})(Bt,function(e){"use strict";var t=typeof window<"u",n={Promise:t?window.Promise:void 0},i="4.21",s="next";function o(f){if(f.toLowerCase()===s)return s;var S=f&&f.match(/^(\d)\.(\d+)/);return S&&{major:parseInt(S[1],10),minor:parseInt(S[2],10)}}function _(f){return f===void 0&&(f=i),"https://js.arcgis.com/"+f+"/"}function a(f){f===void 0&&(f=i);var S=_(f),h=o(f);if(h!==s&&h.major===3){var O=h.minor<=10?"js/":"";return""+S+O+"esri/css/esri.css"}else return S+"esri/themes/light/main.css"}function E(f){var S=document.createElement("link");return S.rel="stylesheet",S.href=f,S}function R(f,S){if(S){var h=document.querySelector(S);h.parentNode.insertBefore(f,h)}else document.head.appendChild(f)}function u(f){return document.querySelector('link[href*="'+f+'"]')}function l(f){return!f||o(f)?a(f):f}function A(f,S){var h=l(f),O=u(h);return O||(O=E(h),R(O,S)),O}var T={};function c(f){var S=document.createElement("script");return S.type="text/javascript",S.src=f,S.setAttribute("data-esri-loader","loading"),S}function g(f,S,h){var O;h&&(O=d(f,h));var P=function(){S(f),f.removeEventListener("load",P,!1),O&&f.removeEventListener("error",O,!1)};f.addEventListener("load",P,!1)}function d(f,S){var h=function(O){S(O.error||new Error("There was an error attempting to load "+f.src)),f.removeEventListener("error",h,!1)};return f.addEventListener("error",h,!1),h}function v(f){f===void 0&&(f={}),T=f}function x(){return document.querySelector("script[data-esri-loader]")}function p(){var f=window.require;return f&&f.on}function b(f){f===void 0&&(f={});var S={};[T,f].forEach(function(P){for(var M in P)Object.prototype.hasOwnProperty.call(P,M)&&(S[M]=P[M])});var h=S.version,O=S.url||_(h);return new n.Promise(function(P,M){var V=x();if(V){var Dt=V.getAttribute("src");Dt!==O?M(new Error("The ArcGIS API for JavaScript is already loaded ("+Dt+").")):p()?P(V):g(V,P,M)}else if(p())M(new Error("The ArcGIS API for JavaScript is already loaded."));else{var de=S.css;if(de){var li=de===!0;A(li?h:de,S.insertCssBefore)}V=c(O),g(V,function(){V.setAttribute("data-esri-loader","loaded"),P(V)},M),document.body.appendChild(V)}})}function xe(f){return new n.Promise(function(S,h){var O=window.require.on("error",h);window.require(f,function(){for(var P=[],M=0;M<arguments.length;M++)P[M]=arguments[M];O.remove(),S(P)})})}function $(f,S){if(S===void 0&&(S={}),p())return xe(f);var h=x(),O=h&&h.getAttribute("src");return!S.url&&O&&(S.url=O),b(S).then(function(){return xe(f)})}e.utils=n,e.loadModules=$,e.getScript=x,e.isLoaded=p,e.loadScript=b,e.setDefaultOptions=v,e.loadCss=A,Object.defineProperty(e,"__esModule",{value:!0})})});var Ze={};Si(Ze,{loadArcGISModules:()=>e_});var te={},Tr=m(Je());Re(te,m(Je()));if(!Tr.Layer)throw new Error("@deck.gl/core is not found");Re(Ze,te);function cr(e,t){var n=typeof Symbol<"u"&&e[Symbol.iterator]||e["@@iterator"];if(!n){if(Array.isArray(e)||(n=Ni(e))||t&&e&&typeof e.length=="number"){n&&(e=n);var i=0,s=function(){};return{s,n:function(){return i>=e.length?{done:!0}:{done:!1,value:e[i++]}},e:function(R){throw R},f:s}}throw new TypeError(`Invalid attempt to iterate non-iterable instance.
8
+ In order to be iterable, non-array objects must have a [Symbol.iterator]() method.`)}var o=!0,_=!1,a;return{s:function(){n=n.call(e)},n:function(){var R=n.next();return o=R.done,R},e:function(R){_=!0,a=R},f:function(){try{!o&&n.return!=null&&n.return()}finally{if(_)throw a}}}}function Ni(e,t){if(e){if(typeof e=="string")return dr(e,t);var n=Object.prototype.toString.call(e).slice(8,-1);if(n==="Object"&&e.constructor&&(n=e.constructor.name),n==="Map"||n==="Set")return Array.from(e);if(n==="Arguments"||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n))return dr(e,t)}}function dr(e,t){(t==null||t>e.length)&&(t=e.length);for(var n=0,i=new Array(t);n<t;n++)i[n]=e[n];return i}function mi(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}var Sr={layers:{},layerFilter:{},parameters:{},effects:{},pickingRadius:{},onBeforeRender:{},onAfterRender:{},onClick:{},onHover:{},onDragStart:{},onDrag:{},onDragEnd:{},onError:{},debug:{},drawPickingColors:{},getCursor:{},getTooltip:{}};function Ut(e){var t=e.createSubclass({properties:Sr,constructor:function(){var i=this;this._callbacks={},this.watch(Object.keys(Sr),function(s,o,_){i.emit("change",mi({},_,s))})},on:function(i,s){this._callbacks[i]=this._callbacks[i]||[],this._callbacks[i].push(s)},emit:function(i,s){var o=this._callbacks[i];if(o){var _=cr(o),a;try{for(_.s();!(a=_.n()).done;){var E=a.value;E(s)}}catch(R){_.e(R)}finally{_.f()}}},toJSON:function(){var i={},s=cr(this.keys()),o;try{for(s.s();!(o=s.n()).done;){var _=o.value;this[_]!==void 0&&(i[_]=this[_])}}catch(a){s.e(a)}finally{s.f()}return i}});return t}function xt(e,t,n){return t.createSubclass({properties:{deck:{},blendMode:{},effect:{}},constructor:function(){this.deck=new e},createLayerView:function(s){return s.type==="2d"?new n({view:s,layer:this}):(console.error("DeckLayer does not support SceneView at the moment. Use DeckRenderer instead."),null)}})}var K=m(I(),1),kr=m(I(),1);var X=e=>`${e}`;function z(e,t){if(!e)throw new Error(t||"shadertools: assertion failed.")}var yt={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 mr(e){let t={};for(let[n,i]of Object.entries(e))t[n]=Ii(i);return t}function Ir(e,t,n){let i={};for(let[s,o]of Object.entries(t))e&&s in e&&!o.private?(o.validate&&z(o.validate(e[s],o),`${n}: invalid ${s}`),i[s]=e[s]):i[s]=o.value;return i}function Ii(e){let t=Nr(e);if(t!=="object")return{value:e,...yt[t],type:t};if(typeof e=="object")return e?e.type!==void 0?{...e,...yt[e.type],type:e.type}:e.value===void 0?{type:"object",value:e}:(t=Nr(e.value),{...e,...yt[t],type:t}):{type:"object",value:null};throw new Error("props")}function Nr(e){return Array.isArray(e)||ArrayBuffer.isView(e)?"array":typeof e}var gr=X`\
9
+ #ifdef MODULE_LOGDEPTH
10
+ logdepth_adjustPosition(gl_Position);
11
+ #endif
12
+ `,Cr=X`\
13
+ #ifdef MODULE_MATERIAL
14
+ gl_FragColor = material_filterColor(gl_FragColor);
15
+ #endif
16
+
17
+ #ifdef MODULE_LIGHTING
18
+ gl_FragColor = lighting_filterColor(gl_FragColor);
19
+ #endif
20
+
21
+ #ifdef MODULE_FOG
22
+ gl_FragColor = fog_filterColor(gl_FragColor);
23
+ #endif
24
+
25
+ #ifdef MODULE_PICKING
26
+ gl_FragColor = picking_filterHighlightColor(gl_FragColor);
27
+ gl_FragColor = picking_filterPickingColor(gl_FragColor);
28
+ #endif
29
+
30
+ #ifdef MODULE_LOGDEPTH
31
+ logdepth_setFragDepth();
32
+ #endif
33
+ `;var gi={vertex:gr,fragment:Cr},Or=/void\s+main\s*\([^)]*\)\s*\{\n?/,Fr=/}\n?[^{}]*$/,vt=[],ye="__LUMA_INJECT_DECLARATIONS__";function Mr(e){let t={vertex:{},fragment:{}};for(let n in e){let i=e[n],s=Ci(n);typeof i=="string"&&(i={order:0,injection:i}),t[s][n]=i}return t}function Ci(e){let t=e.slice(0,2);switch(t){case"vs":return"vertex";case"fs":return"fragment";default:throw new Error(t)}}function ve(e,t,n){let i=arguments.length>3&&arguments[3]!==void 0?arguments[3]:!1,s=t==="vertex";for(let o in n){let _=n[o];_.sort((E,R)=>E.order-R.order),vt.length=_.length;for(let E=0,R=_.length;E<R;++E)vt[E]=_[E].injection;let a=`${vt.join(`
34
+ `)}
35
+ `;switch(o){case"vs:#decl":s&&(e=e.replace(ye,a));break;case"vs:#main-start":s&&(e=e.replace(Or,E=>E+a));break;case"vs:#main-end":s&&(e=e.replace(Fr,E=>a+E));break;case"fs:#decl":s||(e=e.replace(ye,a));break;case"fs:#main-start":s||(e=e.replace(Or,E=>E+a));break;case"fs:#main-end":s||(e=e.replace(Fr,E=>a+E));break;default:e=e.replace(o,E=>E+a)}}return e=e.replace(ye,""),i&&(e=e.replace(/\}\s*$/,o=>o+gi[t])),e}var _e=class{static instantiateModules(t){return t.map(n=>{if(n instanceof _e)return n;z(typeof n!="string",`Shader module use by name is deprecated. Import shader module '${n}' and use it directly.`),z(n.name,"shader module has no name");let i=new _e(n);return i.dependencies=_e.instantiateModules(n.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:n,vs:i,fs:s,dependencies:o=[],uniforms:_={},getUniforms:a,deprecations:E=[],defines:R={},inject:u={}}=t;z(typeof n=="string"),this.name=n,this.vs=i,this.fs=s,this.getModuleUniforms=a,this.dependencies=_e.instantiateModules(o),this.deprecations=this._parseDeprecationDefinitions(E),this.defines=R,this.injections=Mr(u),_&&(this.uniforms=mr(_))}getModuleSource(t){let n;switch(t){case"vertex":n=this.vs||"";break;case"fragment":n=this.fs||"";break;default:z(!1)}return`#define MODULE_${this.name.toUpperCase().replace(/[^0-9a-z]/gi,"_")}
36
+ ${n}// END MODULE_${this.name}
37
+
38
+ `}getUniforms(t,n){return this.getModuleUniforms?this.getModuleUniforms(t,n):Ir(t,this.uniforms,this.name)}getDefines(){return this.defines}checkDeprecations(t,n){this.deprecations.forEach(i=>{var s;(s=i.regex)!==null&&s!==void 0&&s.test(t)&&(i.deprecated?n.deprecated(i.old,i.new)():n.removed(i.old,i.new)())})}_parseDeprecationDefinitions(t){return t.forEach(n=>{switch(n.type){case"function":n.regex=new RegExp(`\\b${n.old}\\(`);break;default:n.regex=new RegExp(`${n.type} ${n.old};`)}}),t}_defaultGetUniforms(){let t=arguments.length>0&&arguments[0]!==void 0?arguments[0]:{},n={},i=this.uniforms;for(let s in i){let o=i[s];s in t&&!o.private?(o.validate&&z(o.validate(t[s],o),`${this.name}: invalid ${s}`),n[s]=t[s]):n[s]=o.value}return n}};function pr(e){let t=_e.instantiateModules(e);return Oi(t)}function Oi(e){let t={},n={};return br({modules:e,level:0,moduleMap:t,moduleDepth:n}),Object.keys(n).sort((i,s)=>n[s]-n[i]).map(i=>t[i])}function br(e){let{modules:t,level:n,moduleMap:i,moduleDepth:s}=e;if(n>=5)throw new Error("Possible loop in shader dependency graph");for(let o of t)i[o.name]=o,(s[o.name]===void 0||s[o.name]<n)&&(s[o.name]=n);for(let o of t)o.dependencies&&br({modules:o.dependencies,level:n+1,moduleMap:i,moduleDepth:s})}function Br(e){switch(e?.gpu.toLowerCase()){case"apple":return X`\
39
+ #define APPLE_GPU
40
+ // Apple optimizes away the calculation necessary for emulated fp64
41
+ #define LUMA_FP64_CODE_ELIMINATION_WORKAROUND 1
42
+ #define LUMA_FP32_TAN_PRECISION_WORKAROUND 1
43
+ // Intel GPU doesn't have full 32 bits precision in same cases, causes overflow
44
+ #define LUMA_FP64_HIGH_BITS_OVERFLOW_WORKAROUND 1
45
+ `;case"nvidia":return X`\
46
+ #define NVIDIA_GPU
47
+ // Nvidia optimizes away the calculation necessary for emulated fp64
48
+ #define LUMA_FP64_CODE_ELIMINATION_WORKAROUND 1
49
+ `;case"intel":return X`\
50
+ #define INTEL_GPU
51
+ // Intel optimizes away the calculation necessary for emulated fp64
52
+ #define LUMA_FP64_CODE_ELIMINATION_WORKAROUND 1
53
+ // Intel's built-in 'tan' function doesn't have acceptable precision
54
+ #define LUMA_FP32_TAN_PRECISION_WORKAROUND 1
55
+ // Intel GPU doesn't have full 32 bits precision in same cases, causes overflow
56
+ #define LUMA_FP64_HIGH_BITS_OVERFLOW_WORKAROUND 1
57
+ `;case"amd":return X`\
58
+ #define AMD_GPU
59
+ `;default:return X`\
60
+ #define DEFAULT_GPU
61
+ // Prevent driver from optimizing away the calculation necessary for emulated fp64
62
+ #define LUMA_FP64_CODE_ELIMINATION_WORKAROUND 1
63
+ // Headless Chrome's software shader 'tan' function doesn't have acceptable precision
64
+ #define LUMA_FP32_TAN_PRECISION_WORKAROUND 1
65
+ // If the GPU doesn't have full 32 bits precision, will causes overflow
66
+ #define LUMA_FP64_HIGH_BITS_OVERFLOW_WORKAROUND 1
67
+ `}}function Dr(e){let t=X`\
68
+ #if (__VERSION__ > 120)
69
+ # define FEATURE_GLSL_DERIVATIVES
70
+ # define FEATURE_GLSL_DRAW_BUFFERS
71
+ # define FEATURE_GLSL_FRAG_DEPTH
72
+ # define FEATURE_GLSL_TEXTURE_LOD
73
+ #endif // __VERSION
74
+ `;return!e.features.has("webgl2")&&e.features.has("glsl-frag-depth")&&(t+=X`\
75
+
76
+ // FRAG_DEPTH => gl_FragDepth is available
77
+ #ifdef GL_EXT_frag_depth
78
+ # extension GL_EXT_frag_depth : enable
79
+ # define FEATURE_GLSL_FRAG_DEPTH
80
+ # define FRAG_DEPTH
81
+ # define gl_FragDepth gl_FragDepthEXT
82
+ #endif
83
+ `),!e.features.has("webgl2")&&e!==null&&e!==void 0&&e.features.has("glsl-derivatives")&&(t+=X`\
84
+
85
+ // DERIVATIVES => dxdF, dxdY and fwidth are available
86
+ #if defined(GL_OES_standard_derivatives) || defined(FEATURE_GLSL_DERIVATIVES)
87
+ # extension GL_OES_standard_derivatives : enable
88
+ # define FEATURE_GLSL_DERIVATIVES
89
+ # define DERIVATIVES
90
+ #endif
91
+ `),!e.features.has("webgl2")&&e!==null&&e!==void 0&&e.features.has("glsl-frag-data")&&(t+=X`\
92
+
93
+ // DRAW_BUFFERS => gl_FragData[] is available
94
+ #ifdef GL_EXT_draw_buffers
95
+ # extension GL_EXT_draw_buffers : require
96
+ # define FEATURE_GLSL_DRAW_BUFFERS
97
+ # define DRAW_BUFFERS
98
+ #endif
99
+ `),!e.features.has("webgl2")&&e!==null&&e!==void 0&&e.features.has("glsl-texture-lod")&&(t+=X`\
100
+ // TEXTURE_LOD => texture2DLod etc are available
101
+ #ifdef GL_EXT_shader_texture_lod
102
+ # extension GL_EXT_shader_texture_lod : enable
103
+ # define FEATURE_GLSL_TEXTURE_LOD
104
+ # define TEXTURE_LOD
105
+ #endif
106
+ `),t}function Pr(e,t,n){switch(t){case 300:switch(n){case"vertex":return et(e,Fi);case"fragment":return Di(e);default:throw new Error(`unknown shader stage ${n}`)}case 100:switch(n){case"vertex":return et(e,pi);case"fragment":return Pi(e);default:throw new Error(`unknown shader stage ${n}`)}default:throw new Error(`unknown GLSL version ${t}`)}}var Ur=[[/^(#version[ \t]+(100|300[ \t]+es))?[ \t]*\n/,`#version 300 es
107
+ `],[/\btexture(2D|2DProj|Cube)Lod(EXT)?\(/g,"textureLod("],[/\btexture(2D|2DProj|Cube)(EXT)?\(/g,"texture("]],Fi=[...Ur,[Oe("attribute"),"in $1"],[Oe("varying"),"out $1"]],Mi=[...Ur,[Oe("varying"),"in $1"]],xr=[[/^#version[ \t]+300[ \t]+es/,"#version 100"],[/\btexture(2D|2DProj|Cube)Lod\(/g,"texture$1LodEXT("],[/\btexture\(/g,"texture2D("],[/\btextureLod\(/g,"texture2DLodEXT("]],pi=[...xr,[Oe("in"),"attribute $1"],[Oe("out"),"varying $1"]],bi=[...xr,[Oe("in"),"varying $1"]],wt="gl_FragColor",Xt=/\bout[ \t]+vec4[ \t]+(\w+)[ \t]*;\n?/,Bi=/void\s+main\s*\([^)]*\)\s*\{\n?/;function et(e,t){for(let[n,i]of t)e=e.replace(n,i);return e}function Di(e){e=et(e,Mi);let t=Xt.exec(e);if(t){let n=t[1];e=e.replace(new RegExp(`\\b${wt}\\b`,"g"),n)}else{let n="fragmentColor";e=e.replace(Bi,i=>`out vec4 ${n};
108
+ ${i}`).replace(new RegExp(`\\b${wt}\\b`,"g"),n)}return e}function Pi(e){e=et(e,bi);let t=Xt.exec(e);if(t){let n=t[1];e=e.replace(Xt,"").replace(new RegExp(`\\b${n}\\b`,"g"),wt)}return e}function Oe(e){return new RegExp(`\\b${e}[ \\t]+(\\w+[ \\t]+\\w+(\\[\\w+\\])?;)`,"g")}function Lt(e,t){let n="";for(let i in e){let s=e[i];if(n+=`void ${s.signature} {
109
+ `,s.header&&(n+=` ${s.header}`),t[i]){let o=t[i];o.sort((_,a)=>_.order-a.order);for(let _ of o)n+=` ${_.injection}
110
+ `}s.footer&&(n+=` ${s.footer}`),n+=`}
111
+ `}return n}function Ht(e){let t={vertex:{},fragment:{}};for(let n of e){let i,s;typeof n!="string"?(i=n,s=i.hook):(i={},s=n),s=s.trim();let[o,_]=s.split(":"),a=s.replace(/\(.+/,""),E=Object.assign(i,{signature:_});switch(o){case"vs":t.vertex[a]=E;break;case"fs":t.fragment[a]=E;break;default:throw new Error(o)}}return t}var Xr=`
112
+
113
+ ${ye}
114
+
115
+ `,Ui=X`\
116
+ precision highp float;
117
+
118
+ `;function Lr(e,t){let{vs:n,fs:i}=t,s=pr(t.modules||[]);switch(e.shaderLanguage){case"glsl":return{vs:vr(e,{...t,source:n,stage:"vertex",modules:s}),fs:vr(e,{...t,source:i,stage:"fragment",modules:s}),getUniforms:wr(s)};case"wgsl":return{vs:yr(e,{...t,source:n,stage:"vertex",modules:s}),fs:yr(e,{...t,source:i,stage:"fragment",modules:s}),getUniforms:wr(s)}}}function yr(e,t){let{source:n,stage:i,modules:s,defines:o={},hookFunctions:_=[],inject:a={},log:E}=t;z(typeof n=="string","shader source must be a string");let R=n,u={};s.forEach(d=>{Object.assign(u,d.getDefines())}),Object.assign(u,o);let l="",A=Ht(_),T={},c={},g={};for(let d in a){let v=typeof a[d]=="string"?{injection:a[d],order:0}:a[d],x=/^(v|f)s:(#)?([\w-]+)$/.exec(d);if(x){let p=x[2],b=x[3];p?b==="decl"?c[d]=[v]:g[d]=[v]:T[d]=[v]}else g[d]=[v]}for(let d of s){E&&d.checkDeprecations(R,E);let v=d.getModuleSource(i,"wgsl");l+=v;let x=d.injections[i];for(let p in x){let b=/^(v|f)s:#([\w-]+)$/.exec(p);if(b){let $=b[2]==="decl"?c:g;$[p]=$[p]||[],$[p].push(x[p])}else T[p]=T[p]||[],T[p].push(x[p])}}return l+=Xr,l=ve(l,i,c),l+=Lt(A[i],T),l+=R,l=ve(l,i,g),l}function vr(e,t){let n=t.source.includes("->"),{id:i,source:s,stage:o,language:_=n?"wgsl":"glsl",modules:a,defines:E={},hookFunctions:R=[],inject:u={},transpileToGLSL100:l=!1,prologue:A=!n,log:T}=t;z(typeof s=="string","shader source must be a string");let c=s.split(`
119
+ `),g=100,d="",v=s;c[0].indexOf("#version ")===0?(g=300,d=c[0],v=c.slice(1).join(`
120
+ `)):d=`#version ${g}`;let x=l?100:g,p={};a.forEach(h=>{Object.assign(p,h.getDefines())}),Object.assign(p,E);let b="";switch(_){case"wgsl":break;case"glsl":b=A?`${d}
121
+ ${xi({id:i,source:s,stage:o})}
122
+ ${`#define SHADER_TYPE_${o.toUpperCase()}`}
123
+ ${Br(e)}
124
+ ${Dr(e)}
125
+ ${yi(p)}
126
+ ${o==="fragment"?Ui:""}
127
+ `:`${d}
128
+ `;break}let xe=Ht(R),$={},f={},S={};for(let h in u){let O=typeof u[h]=="string"?{injection:u[h],order:0}:u[h],P=/^(v|f)s:(#)?([\w-]+)$/.exec(h);if(P){let M=P[2],V=P[3];M?V==="decl"?f[h]=[O]:S[h]=[O]:$[h]=[O]}else S[h]=[O]}for(let h of a){T&&h.checkDeprecations(v,T);let O=h.getModuleSource(o);b+=O;let P=h.injections[o];for(let M in P){let V=/^(v|f)s:#([\w-]+)$/.exec(M);if(V){let de=V[2]==="decl"?f:S;de[M]=de[M]||[],de[M].push(P[M])}else $[M]=$[M]||[],$[M].push(P[M])}}return b+=Xr,b=ve(b,o,f),b+=Lt(xe[o],$),b+=v,b=ve(b,o,S),b=Pr(b,x,o),b.trim()}function wr(e){return function(n){let i={};for(let s of e){let o=s.getUniforms(n,i);Object.assign(i,o)}return i}}function xi(e){let{id:t,source:n,stage:i}=e;return t&&n.indexOf("SHADER_NAME")===-1?`
129
+ #define SHADER_NAME ${t}_${i}
130
+
131
+ `:""}function yi(){let e=arguments.length>0&&arguments[0]!==void 0?arguments[0]:{},t=0,n="";for(let i in e){t===0&&(n+=`
132
+ // APPLICATION DEFINES
133
+ `),t++;let s=e[i];(s||Number.isFinite(s))&&(n+=`#define ${i.toUpperCase()} ${e[i]}
134
+ `)}return t===0&&(n+=`
135
+ `),n}function Vr(e,t){if(!t.vs)throw new Error("no vertex shader");let n=Hr(e,t.vs),i;return t.fs&&(i=Hr(e,t.fs)),{...t,vs:n,fs:i}}function Hr(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 Z=class{constructor(){this._hookFunctions=[],this._defaultModules=[]}static getDefaultShaderAssembler(){return Z.defaultShaderAssembler=Z.defaultShaderAssembler||new Z,Z.defaultShaderAssembler}addDefaultModule(t){this._defaultModules.find(n=>n.name===(typeof t=="string"?t:t.name))||this._defaultModules.push(t)}removeDefaultModule(t){let n=typeof t=="string"?t:t.name;this._defaultModules=this._defaultModules.filter(i=>i.name!==n)}addShaderHook(t,n){n&&(t=Object.assign(n,{hook:t})),this._hookFunctions.push(t)}assembleShaders(t,n){let i=this._getModuleList(n.modules),s=this._hookFunctions,o=Vr(t,n);return Lr(t,{...o,modules:i,hookFunctions:s})}_getModuleList(){let t=arguments.length>0&&arguments[0]!==void 0?arguments[0]:[],n=new Array(this._defaultModules.length+t.length),i={},s=0;for(let o=0,_=this._defaultModules.length;o<_;++o){let a=this._defaultModules[o],E=a.name;n[s++]=a,i[E]=!0}for(let o=0,_=t.length;o<_;++o){let a=t[o],E=a.name;i[E]||(n[s++]=a,i[E]=!0)}return n.length=s,n}};Z.defaultShaderAssembler=void 0;var Se=m(I(),1),tt=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,Se.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,Se.assert)(this.indices.usage===Se.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 Wr(e,t){if(t instanceof tt)return t;let n=vi(e,t),{attributes:i,bufferLayout:s}=wi(e,t);return new tt({topology:t.topology||"triangle-list",bufferLayout:s,vertexCount:t.vertexCount,indices:n,attributes:i})}function vi(e,t){if(!t.indices)return;let n=t.indices.value;return e.createBuffer({usage:Se.Buffer.INDEX,data:n})}function wi(e,t){let n=[],i={};for(let[o,_]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}i[a]=e.createBuffer({data:_.value,id:`${o}-buffer`}),n.push({name:a,format:`float32x${_.size}`})}let s=t._calculateVertexCount(t.attributes,t.indices);return{attributes:i,bufferLayout:n,vertexCount:s}}var Kr=m(I(),1),ue=class{static getDefaultPipelineFactory(t){return t._lumaData.defaultPipelineFactory=t._lumaData.defaultPipelineFactory||new ue(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 n={...ue.defaultProps,...t},i=this._hashRenderPipeline({...n});if(!this._pipelineCache[i]){let s=this.device.createRenderPipeline({...n,vs:this.device.createShader({stage:"vertex",source:n.vs}),fs:n.fs?this.device.createShader({stage:"fragment",source:n.fs}):null});s.hash=i,this._pipelineCache[i]=s,this._useCounts[i]=0}return this._useCounts[i]++,this._pipelineCache[i]}release(t){let n=t.hash;this._useCounts[n]--,this._useCounts[n]===0&&(this._pipelineCache[n].destroy(),delete this._pipelineCache[n],delete this._useCounts[n])}_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 n=this._getHash(t.vs),i=t.fs?this._getHash(t.fs):0,s="-";switch(this.device.info.type){case"webgpu":let o=this._getHash(JSON.stringify(t.parameters)),_=this._getHash(JSON.stringify(t.bufferLayout));return`${n}/${i}V${s}T${t.topology}P${o}BL${_}}`;default:return`${n}/${i}V${s}`}}_getHash(t){return this._hashes[t]===void 0&&(this._hashes[t]=this._hashCounter++),this._hashes[t]}};ue.defaultProps={...Kr.RenderPipeline.defaultProps,vs:void 0,fs:void 0};var le=class{constructor(t,n){this.device=void 0,this.id=void 0,this.vs=void 0,this.fs=void 0,this.pipelineFactory=void 0,this.userData={},this.parameters=void 0,this.topology=void 0,this.bufferLayout=void 0,this.vertexCount=void 0,this.instanceCount=0,this.indexBuffer=null,this.bufferAttributes={},this.constantAttributes={},this.bindings={},this.uniforms={},this.pipeline=void 0,this.vertexArray=void 0,this._pipelineNeedsUpdate="newly created",this._attributeInfos={},this._gpuGeometry=null,this._getModuleUniforms=void 0,this.props=void 0,this.props={...le.defaultProps,...n},n=this.props,this.id=n.id||(0,K.uid)("model"),this.device=t,Object.assign(this.userData,n.userData);let i={type:t.info.type,shaderLanguage:t.info.shadingLanguages[0],gpu:t.info.gpu,features:t.features},{vs:s,fs:o,getUniforms:_}=this.props.shaderAssembler.assembleShaders(i,this.props);if(this.vs=s,this.fs=o,this._getModuleUniforms=_,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,n.geometry&&(this._gpuGeometry=this.setGeometry(n.geometry)),this.pipelineFactory=n.pipelineFactory||ue.getDefaultPipelineFactory(this.device),this.pipeline=this._updatePipeline(),this.vertexArray=t.createVertexArray({renderPipeline:this.pipeline}),this._gpuGeometry&&this._setGeometryAttributes(this._gpuGeometry),n.vertexCount&&this.setVertexCount(n.vertexCount),n.instanceCount&&this.setInstanceCount(n.instanceCount),n.indices)throw new Error("Model.props.indices removed. Use props.indexBuffer");n.indexBuffer&&this.setIndexBuffer(n.indexBuffer),n.attributes&&this.setAttributes(n.attributes),n.constantAttributes&&this.setConstantAttributes(n.constantAttributes),n.bindings&&this.setBindings(n.bindings),n.uniforms&&this.setUniforms(n.uniforms),n.moduleSettings&&this.updateModuleSettings(n.moduleSettings),this.setUniforms(this._getModuleUniforms()),Object.seal(this)}destroy(){this.pipelineFactory.release(this.pipeline)}draw(t){this.pipeline=this._updatePipeline(),this.pipeline.setBindings(this.bindings),this.pipeline.setUniforms(this.uniforms),this.pipeline.draw({renderPass:t,vertexArray:this.vertexArray,vertexCount:this.vertexCount,instanceCount:this.instanceCount})}setGeometry(t){let n=t&&Wr(this.device,t);return this.setTopology(n.topology||"triangle-list"),this.bufferLayout=Yr(this.bufferLayout,n.bufferLayout),this.vertexArray&&this._setGeometryAttributes(n),n}_setGeometryAttributes(t){this.vertexCount=t.vertexCount,this.setAttributes(t.attributes),this.setIndexBuffer(t.indices)}setTopology(t){t!==this.topology&&(this.topology=t,this._setPipelineNeedsUpdate("topology"))}setBufferLayout(t){this.bufferLayout=this._gpuGeometry?Yr(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,K.deepEqual)(t,this.parameters,2)||(this.parameters=t,this._setPipelineNeedsUpdate("parameters"))}setVertexCount(t){this.vertexCount=t}setInstanceCount(t){this.instanceCount=t}setShaderModuleProps(t){let n=this._getModuleUniforms(t),i=Object.keys(n).filter(o=>{let _=n[o];return!(0,K.isNumberArray)(_)&&typeof _!="number"&&typeof _!="boolean"}),s={};for(let o of i)s[o]=n[o],delete n[o];Object.assign(this.uniforms,n),Object.assign(this.bindings,s)}updateModuleSettings(t){this.setShaderModuleProps(t)}setBindings(t){Object.assign(this.bindings,t)}setUniforms(t){this.pipeline.setUniforms(t),Object.assign(this.uniforms,t)}setIndexBuffer(t){this.vertexArray.setIndexBuffer(t)}setAttributes(t){t.indices&&K.log.warn(`Model:${this.id} setAttributes() - indexBuffer should be set using setIndexBuffer()`);for(let[i,s]of Object.entries(t)){var n;let o=this.bufferLayout.find(E=>E.name===i);if(!o)continue;let _=o.attributes?(n=o.attributes)===null||n===void 0?void 0:n.map(E=>E.attribute):[o.name],a=!1;for(let E of _){let R=this._attributeInfos[E];R&&(this.vertexArray.setBuffer(R.location,s),a=!0)}a||K.log.warn(`Model(${this.id}): Ignoring buffer "${s.id}" for unknown attribute "${i}"`)()}}setConstantAttributes(t){for(let[n,i]of Object.entries(t)){let s=this._attributeInfos[n];s?this.vertexArray.setConstant(s.location,i):K.log.warn(`Model "${this.id}: Ignoring constant supplied for unknown attribute "${n}"`)()}}_setPipelineNeedsUpdate(t){this._pipelineNeedsUpdate=this._pipelineNeedsUpdate||t}_updatePipeline(){return this._pipelineNeedsUpdate&&(this.pipeline&&K.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,kr.getAttributeInfosFromLayouts)(this.pipeline.shaderLayout,this.bufferLayout)),this.pipeline}};le.defaultProps={...K.RenderPipeline.defaultProps,vs:null,fs:null,id:"unnamed",handle:void 0,userData:{},defines:{},modules:[],moduleSettings:{},geometry:null,indexBuffer:null,attributes:{},constantAttributes:{},pipelineFactory:void 0,shaderAssembler:Z.getDefaultShaderAssembler()};function Yr(e,t){let n=[...e];for(let i of t){let s=n.findIndex(o=>o.name===i.name);s<0?n.push(i):n[s]=i}return n}var r=function(e){return e[e.DEPTH_BUFFER_BIT=256]="DEPTH_BUFFER_BIT",e[e.STENCIL_BUFFER_BIT=1024]="STENCIL_BUFFER_BIT",e[e.COLOR_BUFFER_BIT=16384]="COLOR_BUFFER_BIT",e[e.POINTS=0]="POINTS",e[e.LINES=1]="LINES",e[e.LINE_LOOP=2]="LINE_LOOP",e[e.LINE_STRIP=3]="LINE_STRIP",e[e.TRIANGLES=4]="TRIANGLES",e[e.TRIANGLE_STRIP=5]="TRIANGLE_STRIP",e[e.TRIANGLE_FAN=6]="TRIANGLE_FAN",e[e.ZERO=0]="ZERO",e[e.ONE=1]="ONE",e[e.SRC_COLOR=768]="SRC_COLOR",e[e.ONE_MINUS_SRC_COLOR=769]="ONE_MINUS_SRC_COLOR",e[e.SRC_ALPHA=770]="SRC_ALPHA",e[e.ONE_MINUS_SRC_ALPHA=771]="ONE_MINUS_SRC_ALPHA",e[e.DST_ALPHA=772]="DST_ALPHA",e[e.ONE_MINUS_DST_ALPHA=773]="ONE_MINUS_DST_ALPHA",e[e.DST_COLOR=774]="DST_COLOR",e[e.ONE_MINUS_DST_COLOR=775]="ONE_MINUS_DST_COLOR",e[e.SRC_ALPHA_SATURATE=776]="SRC_ALPHA_SATURATE",e[e.CONSTANT_COLOR=32769]="CONSTANT_COLOR",e[e.ONE_MINUS_CONSTANT_COLOR=32770]="ONE_MINUS_CONSTANT_COLOR",e[e.CONSTANT_ALPHA=32771]="CONSTANT_ALPHA",e[e.ONE_MINUS_CONSTANT_ALPHA=32772]="ONE_MINUS_CONSTANT_ALPHA",e[e.FUNC_ADD=32774]="FUNC_ADD",e[e.FUNC_SUBTRACT=32778]="FUNC_SUBTRACT",e[e.FUNC_REVERSE_SUBTRACT=32779]="FUNC_REVERSE_SUBTRACT",e[e.BLEND_EQUATION=32777]="BLEND_EQUATION",e[e.BLEND_EQUATION_RGB=32777]="BLEND_EQUATION_RGB",e[e.BLEND_EQUATION_ALPHA=34877]="BLEND_EQUATION_ALPHA",e[e.BLEND_DST_RGB=32968]="BLEND_DST_RGB",e[e.BLEND_SRC_RGB=32969]="BLEND_SRC_RGB",e[e.BLEND_DST_ALPHA=32970]="BLEND_DST_ALPHA",e[e.BLEND_SRC_ALPHA=32971]="BLEND_SRC_ALPHA",e[e.BLEND_COLOR=32773]="BLEND_COLOR",e[e.ARRAY_BUFFER_BINDING=34964]="ARRAY_BUFFER_BINDING",e[e.ELEMENT_ARRAY_BUFFER_BINDING=34965]="ELEMENT_ARRAY_BUFFER_BINDING",e[e.LINE_WIDTH=2849]="LINE_WIDTH",e[e.ALIASED_POINT_SIZE_RANGE=33901]="ALIASED_POINT_SIZE_RANGE",e[e.ALIASED_LINE_WIDTH_RANGE=33902]="ALIASED_LINE_WIDTH_RANGE",e[e.CULL_FACE_MODE=2885]="CULL_FACE_MODE",e[e.FRONT_FACE=2886]="FRONT_FACE",e[e.DEPTH_RANGE=2928]="DEPTH_RANGE",e[e.DEPTH_WRITEMASK=2930]="DEPTH_WRITEMASK",e[e.DEPTH_CLEAR_VALUE=2931]="DEPTH_CLEAR_VALUE",e[e.DEPTH_FUNC=2932]="DEPTH_FUNC",e[e.STENCIL_CLEAR_VALUE=2961]="STENCIL_CLEAR_VALUE",e[e.STENCIL_FUNC=2962]="STENCIL_FUNC",e[e.STENCIL_FAIL=2964]="STENCIL_FAIL",e[e.STENCIL_PASS_DEPTH_FAIL=2965]="STENCIL_PASS_DEPTH_FAIL",e[e.STENCIL_PASS_DEPTH_PASS=2966]="STENCIL_PASS_DEPTH_PASS",e[e.STENCIL_REF=2967]="STENCIL_REF",e[e.STENCIL_VALUE_MASK=2963]="STENCIL_VALUE_MASK",e[e.STENCIL_WRITEMASK=2968]="STENCIL_WRITEMASK",e[e.STENCIL_BACK_FUNC=34816]="STENCIL_BACK_FUNC",e[e.STENCIL_BACK_FAIL=34817]="STENCIL_BACK_FAIL",e[e.STENCIL_BACK_PASS_DEPTH_FAIL=34818]="STENCIL_BACK_PASS_DEPTH_FAIL",e[e.STENCIL_BACK_PASS_DEPTH_PASS=34819]="STENCIL_BACK_PASS_DEPTH_PASS",e[e.STENCIL_BACK_REF=36003]="STENCIL_BACK_REF",e[e.STENCIL_BACK_VALUE_MASK=36004]="STENCIL_BACK_VALUE_MASK",e[e.STENCIL_BACK_WRITEMASK=36005]="STENCIL_BACK_WRITEMASK",e[e.VIEWPORT=2978]="VIEWPORT",e[e.SCISSOR_BOX=3088]="SCISSOR_BOX",e[e.COLOR_CLEAR_VALUE=3106]="COLOR_CLEAR_VALUE",e[e.COLOR_WRITEMASK=3107]="COLOR_WRITEMASK",e[e.UNPACK_ALIGNMENT=3317]="UNPACK_ALIGNMENT",e[e.PACK_ALIGNMENT=3333]="PACK_ALIGNMENT",e[e.MAX_TEXTURE_SIZE=3379]="MAX_TEXTURE_SIZE",e[e.MAX_VIEWPORT_DIMS=3386]="MAX_VIEWPORT_DIMS",e[e.SUBPIXEL_BITS=3408]="SUBPIXEL_BITS",e[e.RED_BITS=3410]="RED_BITS",e[e.GREEN_BITS=3411]="GREEN_BITS",e[e.BLUE_BITS=3412]="BLUE_BITS",e[e.ALPHA_BITS=3413]="ALPHA_BITS",e[e.DEPTH_BITS=3414]="DEPTH_BITS",e[e.STENCIL_BITS=3415]="STENCIL_BITS",e[e.POLYGON_OFFSET_UNITS=10752]="POLYGON_OFFSET_UNITS",e[e.POLYGON_OFFSET_FACTOR=32824]="POLYGON_OFFSET_FACTOR",e[e.TEXTURE_BINDING_2D=32873]="TEXTURE_BINDING_2D",e[e.SAMPLE_BUFFERS=32936]="SAMPLE_BUFFERS",e[e.SAMPLES=32937]="SAMPLES",e[e.SAMPLE_COVERAGE_VALUE=32938]="SAMPLE_COVERAGE_VALUE",e[e.SAMPLE_COVERAGE_INVERT=32939]="SAMPLE_COVERAGE_INVERT",e[e.COMPRESSED_TEXTURE_FORMATS=34467]="COMPRESSED_TEXTURE_FORMATS",e[e.VENDOR=7936]="VENDOR",e[e.RENDERER=7937]="RENDERER",e[e.VERSION=7938]="VERSION",e[e.IMPLEMENTATION_COLOR_READ_TYPE=35738]="IMPLEMENTATION_COLOR_READ_TYPE",e[e.IMPLEMENTATION_COLOR_READ_FORMAT=35739]="IMPLEMENTATION_COLOR_READ_FORMAT",e[e.BROWSER_DEFAULT_WEBGL=37444]="BROWSER_DEFAULT_WEBGL",e[e.STATIC_DRAW=35044]="STATIC_DRAW",e[e.STREAM_DRAW=35040]="STREAM_DRAW",e[e.DYNAMIC_DRAW=35048]="DYNAMIC_DRAW",e[e.ARRAY_BUFFER=34962]="ARRAY_BUFFER",e[e.ELEMENT_ARRAY_BUFFER=34963]="ELEMENT_ARRAY_BUFFER",e[e.BUFFER_SIZE=34660]="BUFFER_SIZE",e[e.BUFFER_USAGE=34661]="BUFFER_USAGE",e[e.CURRENT_VERTEX_ATTRIB=34342]="CURRENT_VERTEX_ATTRIB",e[e.VERTEX_ATTRIB_ARRAY_ENABLED=34338]="VERTEX_ATTRIB_ARRAY_ENABLED",e[e.VERTEX_ATTRIB_ARRAY_SIZE=34339]="VERTEX_ATTRIB_ARRAY_SIZE",e[e.VERTEX_ATTRIB_ARRAY_STRIDE=34340]="VERTEX_ATTRIB_ARRAY_STRIDE",e[e.VERTEX_ATTRIB_ARRAY_TYPE=34341]="VERTEX_ATTRIB_ARRAY_TYPE",e[e.VERTEX_ATTRIB_ARRAY_NORMALIZED=34922]="VERTEX_ATTRIB_ARRAY_NORMALIZED",e[e.VERTEX_ATTRIB_ARRAY_POINTER=34373]="VERTEX_ATTRIB_ARRAY_POINTER",e[e.VERTEX_ATTRIB_ARRAY_BUFFER_BINDING=34975]="VERTEX_ATTRIB_ARRAY_BUFFER_BINDING",e[e.CULL_FACE=2884]="CULL_FACE",e[e.FRONT=1028]="FRONT",e[e.BACK=1029]="BACK",e[e.FRONT_AND_BACK=1032]="FRONT_AND_BACK",e[e.BLEND=3042]="BLEND",e[e.DEPTH_TEST=2929]="DEPTH_TEST",e[e.DITHER=3024]="DITHER",e[e.POLYGON_OFFSET_FILL=32823]="POLYGON_OFFSET_FILL",e[e.SAMPLE_ALPHA_TO_COVERAGE=32926]="SAMPLE_ALPHA_TO_COVERAGE",e[e.SAMPLE_COVERAGE=32928]="SAMPLE_COVERAGE",e[e.SCISSOR_TEST=3089]="SCISSOR_TEST",e[e.STENCIL_TEST=2960]="STENCIL_TEST",e[e.NO_ERROR=0]="NO_ERROR",e[e.INVALID_ENUM=1280]="INVALID_ENUM",e[e.INVALID_VALUE=1281]="INVALID_VALUE",e[e.INVALID_OPERATION=1282]="INVALID_OPERATION",e[e.OUT_OF_MEMORY=1285]="OUT_OF_MEMORY",e[e.CONTEXT_LOST_WEBGL=37442]="CONTEXT_LOST_WEBGL",e[e.CW=2304]="CW",e[e.CCW=2305]="CCW",e[e.DONT_CARE=4352]="DONT_CARE",e[e.FASTEST=4353]="FASTEST",e[e.NICEST=4354]="NICEST",e[e.GENERATE_MIPMAP_HINT=33170]="GENERATE_MIPMAP_HINT",e[e.BYTE=5120]="BYTE",e[e.UNSIGNED_BYTE=5121]="UNSIGNED_BYTE",e[e.SHORT=5122]="SHORT",e[e.UNSIGNED_SHORT=5123]="UNSIGNED_SHORT",e[e.INT=5124]="INT",e[e.UNSIGNED_INT=5125]="UNSIGNED_INT",e[e.FLOAT=5126]="FLOAT",e[e.DOUBLE=5130]="DOUBLE",e[e.DEPTH_COMPONENT=6402]="DEPTH_COMPONENT",e[e.ALPHA=6406]="ALPHA",e[e.RGB=6407]="RGB",e[e.RGBA=6408]="RGBA",e[e.LUMINANCE=6409]="LUMINANCE",e[e.LUMINANCE_ALPHA=6410]="LUMINANCE_ALPHA",e[e.UNSIGNED_SHORT_4_4_4_4=32819]="UNSIGNED_SHORT_4_4_4_4",e[e.UNSIGNED_SHORT_5_5_5_1=32820]="UNSIGNED_SHORT_5_5_5_1",e[e.UNSIGNED_SHORT_5_6_5=33635]="UNSIGNED_SHORT_5_6_5",e[e.FRAGMENT_SHADER=35632]="FRAGMENT_SHADER",e[e.VERTEX_SHADER=35633]="VERTEX_SHADER",e[e.COMPILE_STATUS=35713]="COMPILE_STATUS",e[e.DELETE_STATUS=35712]="DELETE_STATUS",e[e.LINK_STATUS=35714]="LINK_STATUS",e[e.VALIDATE_STATUS=35715]="VALIDATE_STATUS",e[e.ATTACHED_SHADERS=35717]="ATTACHED_SHADERS",e[e.ACTIVE_ATTRIBUTES=35721]="ACTIVE_ATTRIBUTES",e[e.ACTIVE_UNIFORMS=35718]="ACTIVE_UNIFORMS",e[e.MAX_VERTEX_ATTRIBS=34921]="MAX_VERTEX_ATTRIBS",e[e.MAX_VERTEX_UNIFORM_VECTORS=36347]="MAX_VERTEX_UNIFORM_VECTORS",e[e.MAX_VARYING_VECTORS=36348]="MAX_VARYING_VECTORS",e[e.MAX_COMBINED_TEXTURE_IMAGE_UNITS=35661]="MAX_COMBINED_TEXTURE_IMAGE_UNITS",e[e.MAX_VERTEX_TEXTURE_IMAGE_UNITS=35660]="MAX_VERTEX_TEXTURE_IMAGE_UNITS",e[e.MAX_TEXTURE_IMAGE_UNITS=34930]="MAX_TEXTURE_IMAGE_UNITS",e[e.MAX_FRAGMENT_UNIFORM_VECTORS=36349]="MAX_FRAGMENT_UNIFORM_VECTORS",e[e.SHADER_TYPE=35663]="SHADER_TYPE",e[e.SHADING_LANGUAGE_VERSION=35724]="SHADING_LANGUAGE_VERSION",e[e.CURRENT_PROGRAM=35725]="CURRENT_PROGRAM",e[e.NEVER=512]="NEVER",e[e.LESS=513]="LESS",e[e.EQUAL=514]="EQUAL",e[e.LEQUAL=515]="LEQUAL",e[e.GREATER=516]="GREATER",e[e.NOTEQUAL=517]="NOTEQUAL",e[e.GEQUAL=518]="GEQUAL",e[e.ALWAYS=519]="ALWAYS",e[e.KEEP=7680]="KEEP",e[e.REPLACE=7681]="REPLACE",e[e.INCR=7682]="INCR",e[e.DECR=7683]="DECR",e[e.INVERT=5386]="INVERT",e[e.INCR_WRAP=34055]="INCR_WRAP",e[e.DECR_WRAP=34056]="DECR_WRAP",e[e.NEAREST=9728]="NEAREST",e[e.LINEAR=9729]="LINEAR",e[e.NEAREST_MIPMAP_NEAREST=9984]="NEAREST_MIPMAP_NEAREST",e[e.LINEAR_MIPMAP_NEAREST=9985]="LINEAR_MIPMAP_NEAREST",e[e.NEAREST_MIPMAP_LINEAR=9986]="NEAREST_MIPMAP_LINEAR",e[e.LINEAR_MIPMAP_LINEAR=9987]="LINEAR_MIPMAP_LINEAR",e[e.TEXTURE_MAG_FILTER=10240]="TEXTURE_MAG_FILTER",e[e.TEXTURE_MIN_FILTER=10241]="TEXTURE_MIN_FILTER",e[e.TEXTURE_WRAP_S=10242]="TEXTURE_WRAP_S",e[e.TEXTURE_WRAP_T=10243]="TEXTURE_WRAP_T",e[e.TEXTURE_2D=3553]="TEXTURE_2D",e[e.TEXTURE=5890]="TEXTURE",e[e.TEXTURE_CUBE_MAP=34067]="TEXTURE_CUBE_MAP",e[e.TEXTURE_BINDING_CUBE_MAP=34068]="TEXTURE_BINDING_CUBE_MAP",e[e.TEXTURE_CUBE_MAP_POSITIVE_X=34069]="TEXTURE_CUBE_MAP_POSITIVE_X",e[e.TEXTURE_CUBE_MAP_NEGATIVE_X=34070]="TEXTURE_CUBE_MAP_NEGATIVE_X",e[e.TEXTURE_CUBE_MAP_POSITIVE_Y=34071]="TEXTURE_CUBE_MAP_POSITIVE_Y",e[e.TEXTURE_CUBE_MAP_NEGATIVE_Y=34072]="TEXTURE_CUBE_MAP_NEGATIVE_Y",e[e.TEXTURE_CUBE_MAP_POSITIVE_Z=34073]="TEXTURE_CUBE_MAP_POSITIVE_Z",e[e.TEXTURE_CUBE_MAP_NEGATIVE_Z=34074]="TEXTURE_CUBE_MAP_NEGATIVE_Z",e[e.MAX_CUBE_MAP_TEXTURE_SIZE=34076]="MAX_CUBE_MAP_TEXTURE_SIZE",e[e.TEXTURE0=33984]="TEXTURE0",e[e.ACTIVE_TEXTURE=34016]="ACTIVE_TEXTURE",e[e.REPEAT=10497]="REPEAT",e[e.CLAMP_TO_EDGE=33071]="CLAMP_TO_EDGE",e[e.MIRRORED_REPEAT=33648]="MIRRORED_REPEAT",e[e.TEXTURE_WIDTH=4096]="TEXTURE_WIDTH",e[e.TEXTURE_HEIGHT=4097]="TEXTURE_HEIGHT",e[e.FLOAT_VEC2=35664]="FLOAT_VEC2",e[e.FLOAT_VEC3=35665]="FLOAT_VEC3",e[e.FLOAT_VEC4=35666]="FLOAT_VEC4",e[e.INT_VEC2=35667]="INT_VEC2",e[e.INT_VEC3=35668]="INT_VEC3",e[e.INT_VEC4=35669]="INT_VEC4",e[e.BOOL=35670]="BOOL",e[e.BOOL_VEC2=35671]="BOOL_VEC2",e[e.BOOL_VEC3=35672]="BOOL_VEC3",e[e.BOOL_VEC4=35673]="BOOL_VEC4",e[e.FLOAT_MAT2=35674]="FLOAT_MAT2",e[e.FLOAT_MAT3=35675]="FLOAT_MAT3",e[e.FLOAT_MAT4=35676]="FLOAT_MAT4",e[e.SAMPLER_2D=35678]="SAMPLER_2D",e[e.SAMPLER_CUBE=35680]="SAMPLER_CUBE",e[e.LOW_FLOAT=36336]="LOW_FLOAT",e[e.MEDIUM_FLOAT=36337]="MEDIUM_FLOAT",e[e.HIGH_FLOAT=36338]="HIGH_FLOAT",e[e.LOW_INT=36339]="LOW_INT",e[e.MEDIUM_INT=36340]="MEDIUM_INT",e[e.HIGH_INT=36341]="HIGH_INT",e[e.FRAMEBUFFER=36160]="FRAMEBUFFER",e[e.RENDERBUFFER=36161]="RENDERBUFFER",e[e.RGBA4=32854]="RGBA4",e[e.RGB5_A1=32855]="RGB5_A1",e[e.RGB565=36194]="RGB565",e[e.DEPTH_COMPONENT16=33189]="DEPTH_COMPONENT16",e[e.STENCIL_INDEX=6401]="STENCIL_INDEX",e[e.STENCIL_INDEX8=36168]="STENCIL_INDEX8",e[e.DEPTH_STENCIL=34041]="DEPTH_STENCIL",e[e.RENDERBUFFER_WIDTH=36162]="RENDERBUFFER_WIDTH",e[e.RENDERBUFFER_HEIGHT=36163]="RENDERBUFFER_HEIGHT",e[e.RENDERBUFFER_INTERNAL_FORMAT=36164]="RENDERBUFFER_INTERNAL_FORMAT",e[e.RENDERBUFFER_RED_SIZE=36176]="RENDERBUFFER_RED_SIZE",e[e.RENDERBUFFER_GREEN_SIZE=36177]="RENDERBUFFER_GREEN_SIZE",e[e.RENDERBUFFER_BLUE_SIZE=36178]="RENDERBUFFER_BLUE_SIZE",e[e.RENDERBUFFER_ALPHA_SIZE=36179]="RENDERBUFFER_ALPHA_SIZE",e[e.RENDERBUFFER_DEPTH_SIZE=36180]="RENDERBUFFER_DEPTH_SIZE",e[e.RENDERBUFFER_STENCIL_SIZE=36181]="RENDERBUFFER_STENCIL_SIZE",e[e.FRAMEBUFFER_ATTACHMENT_OBJECT_TYPE=36048]="FRAMEBUFFER_ATTACHMENT_OBJECT_TYPE",e[e.FRAMEBUFFER_ATTACHMENT_OBJECT_NAME=36049]="FRAMEBUFFER_ATTACHMENT_OBJECT_NAME",e[e.FRAMEBUFFER_ATTACHMENT_TEXTURE_LEVEL=36050]="FRAMEBUFFER_ATTACHMENT_TEXTURE_LEVEL",e[e.FRAMEBUFFER_ATTACHMENT_TEXTURE_CUBE_MAP_FACE=36051]="FRAMEBUFFER_ATTACHMENT_TEXTURE_CUBE_MAP_FACE",e[e.COLOR_ATTACHMENT0=36064]="COLOR_ATTACHMENT0",e[e.DEPTH_ATTACHMENT=36096]="DEPTH_ATTACHMENT",e[e.STENCIL_ATTACHMENT=36128]="STENCIL_ATTACHMENT",e[e.DEPTH_STENCIL_ATTACHMENT=33306]="DEPTH_STENCIL_ATTACHMENT",e[e.NONE=0]="NONE",e[e.FRAMEBUFFER_COMPLETE=36053]="FRAMEBUFFER_COMPLETE",e[e.FRAMEBUFFER_INCOMPLETE_ATTACHMENT=36054]="FRAMEBUFFER_INCOMPLETE_ATTACHMENT",e[e.FRAMEBUFFER_INCOMPLETE_MISSING_ATTACHMENT=36055]="FRAMEBUFFER_INCOMPLETE_MISSING_ATTACHMENT",e[e.FRAMEBUFFER_INCOMPLETE_DIMENSIONS=36057]="FRAMEBUFFER_INCOMPLETE_DIMENSIONS",e[e.FRAMEBUFFER_UNSUPPORTED=36061]="FRAMEBUFFER_UNSUPPORTED",e[e.FRAMEBUFFER_BINDING=36006]="FRAMEBUFFER_BINDING",e[e.RENDERBUFFER_BINDING=36007]="RENDERBUFFER_BINDING",e[e.READ_FRAMEBUFFER=36008]="READ_FRAMEBUFFER",e[e.DRAW_FRAMEBUFFER=36009]="DRAW_FRAMEBUFFER",e[e.MAX_RENDERBUFFER_SIZE=34024]="MAX_RENDERBUFFER_SIZE",e[e.INVALID_FRAMEBUFFER_OPERATION=1286]="INVALID_FRAMEBUFFER_OPERATION",e[e.UNPACK_FLIP_Y_WEBGL=37440]="UNPACK_FLIP_Y_WEBGL",e[e.UNPACK_PREMULTIPLY_ALPHA_WEBGL=37441]="UNPACK_PREMULTIPLY_ALPHA_WEBGL",e[e.UNPACK_COLORSPACE_CONVERSION_WEBGL=37443]="UNPACK_COLORSPACE_CONVERSION_WEBGL",e[e.READ_BUFFER=3074]="READ_BUFFER",e[e.UNPACK_ROW_LENGTH=3314]="UNPACK_ROW_LENGTH",e[e.UNPACK_SKIP_ROWS=3315]="UNPACK_SKIP_ROWS",e[e.UNPACK_SKIP_PIXELS=3316]="UNPACK_SKIP_PIXELS",e[e.PACK_ROW_LENGTH=3330]="PACK_ROW_LENGTH",e[e.PACK_SKIP_ROWS=3331]="PACK_SKIP_ROWS",e[e.PACK_SKIP_PIXELS=3332]="PACK_SKIP_PIXELS",e[e.TEXTURE_BINDING_3D=32874]="TEXTURE_BINDING_3D",e[e.UNPACK_SKIP_IMAGES=32877]="UNPACK_SKIP_IMAGES",e[e.UNPACK_IMAGE_HEIGHT=32878]="UNPACK_IMAGE_HEIGHT",e[e.MAX_3D_TEXTURE_SIZE=32883]="MAX_3D_TEXTURE_SIZE",e[e.MAX_ELEMENTS_VERTICES=33e3]="MAX_ELEMENTS_VERTICES",e[e.MAX_ELEMENTS_INDICES=33001]="MAX_ELEMENTS_INDICES",e[e.MAX_TEXTURE_LOD_BIAS=34045]="MAX_TEXTURE_LOD_BIAS",e[e.MAX_FRAGMENT_UNIFORM_COMPONENTS=35657]="MAX_FRAGMENT_UNIFORM_COMPONENTS",e[e.MAX_VERTEX_UNIFORM_COMPONENTS=35658]="MAX_VERTEX_UNIFORM_COMPONENTS",e[e.MAX_ARRAY_TEXTURE_LAYERS=35071]="MAX_ARRAY_TEXTURE_LAYERS",e[e.MIN_PROGRAM_TEXEL_OFFSET=35076]="MIN_PROGRAM_TEXEL_OFFSET",e[e.MAX_PROGRAM_TEXEL_OFFSET=35077]="MAX_PROGRAM_TEXEL_OFFSET",e[e.MAX_VARYING_COMPONENTS=35659]="MAX_VARYING_COMPONENTS",e[e.FRAGMENT_SHADER_DERIVATIVE_HINT=35723]="FRAGMENT_SHADER_DERIVATIVE_HINT",e[e.RASTERIZER_DISCARD=35977]="RASTERIZER_DISCARD",e[e.VERTEX_ARRAY_BINDING=34229]="VERTEX_ARRAY_BINDING",e[e.MAX_VERTEX_OUTPUT_COMPONENTS=37154]="MAX_VERTEX_OUTPUT_COMPONENTS",e[e.MAX_FRAGMENT_INPUT_COMPONENTS=37157]="MAX_FRAGMENT_INPUT_COMPONENTS",e[e.MAX_SERVER_WAIT_TIMEOUT=37137]="MAX_SERVER_WAIT_TIMEOUT",e[e.MAX_ELEMENT_INDEX=36203]="MAX_ELEMENT_INDEX",e[e.RED=6403]="RED",e[e.RGB8=32849]="RGB8",e[e.RGBA8=32856]="RGBA8",e[e.RGB10_A2=32857]="RGB10_A2",e[e.TEXTURE_3D=32879]="TEXTURE_3D",e[e.TEXTURE_WRAP_R=32882]="TEXTURE_WRAP_R",e[e.TEXTURE_MIN_LOD=33082]="TEXTURE_MIN_LOD",e[e.TEXTURE_MAX_LOD=33083]="TEXTURE_MAX_LOD",e[e.TEXTURE_BASE_LEVEL=33084]="TEXTURE_BASE_LEVEL",e[e.TEXTURE_MAX_LEVEL=33085]="TEXTURE_MAX_LEVEL",e[e.TEXTURE_COMPARE_MODE=34892]="TEXTURE_COMPARE_MODE",e[e.TEXTURE_COMPARE_FUNC=34893]="TEXTURE_COMPARE_FUNC",e[e.SRGB=35904]="SRGB",e[e.SRGB8=35905]="SRGB8",e[e.SRGB8_ALPHA8=35907]="SRGB8_ALPHA8",e[e.COMPARE_REF_TO_TEXTURE=34894]="COMPARE_REF_TO_TEXTURE",e[e.RGBA32F=34836]="RGBA32F",e[e.RGB32F=34837]="RGB32F",e[e.RGBA16F=34842]="RGBA16F",e[e.RGB16F=34843]="RGB16F",e[e.TEXTURE_2D_ARRAY=35866]="TEXTURE_2D_ARRAY",e[e.TEXTURE_BINDING_2D_ARRAY=35869]="TEXTURE_BINDING_2D_ARRAY",e[e.R11F_G11F_B10F=35898]="R11F_G11F_B10F",e[e.RGB9_E5=35901]="RGB9_E5",e[e.RGBA32UI=36208]="RGBA32UI",e[e.RGB32UI=36209]="RGB32UI",e[e.RGBA16UI=36214]="RGBA16UI",e[e.RGB16UI=36215]="RGB16UI",e[e.RGBA8UI=36220]="RGBA8UI",e[e.RGB8UI=36221]="RGB8UI",e[e.RGBA32I=36226]="RGBA32I",e[e.RGB32I=36227]="RGB32I",e[e.RGBA16I=36232]="RGBA16I",e[e.RGB16I=36233]="RGB16I",e[e.RGBA8I=36238]="RGBA8I",e[e.RGB8I=36239]="RGB8I",e[e.RED_INTEGER=36244]="RED_INTEGER",e[e.RGB_INTEGER=36248]="RGB_INTEGER",e[e.RGBA_INTEGER=36249]="RGBA_INTEGER",e[e.R8=33321]="R8",e[e.RG8=33323]="RG8",e[e.R16F=33325]="R16F",e[e.R32F=33326]="R32F",e[e.RG16F=33327]="RG16F",e[e.RG32F=33328]="RG32F",e[e.R8I=33329]="R8I",e[e.R8UI=33330]="R8UI",e[e.R16I=33331]="R16I",e[e.R16UI=33332]="R16UI",e[e.R32I=33333]="R32I",e[e.R32UI=33334]="R32UI",e[e.RG8I=33335]="RG8I",e[e.RG8UI=33336]="RG8UI",e[e.RG16I=33337]="RG16I",e[e.RG16UI=33338]="RG16UI",e[e.RG32I=33339]="RG32I",e[e.RG32UI=33340]="RG32UI",e[e.R8_SNORM=36756]="R8_SNORM",e[e.RG8_SNORM=36757]="RG8_SNORM",e[e.RGB8_SNORM=36758]="RGB8_SNORM",e[e.RGBA8_SNORM=36759]="RGBA8_SNORM",e[e.RGB10_A2UI=36975]="RGB10_A2UI",e[e.TEXTURE_IMMUTABLE_FORMAT=37167]="TEXTURE_IMMUTABLE_FORMAT",e[e.TEXTURE_IMMUTABLE_LEVELS=33503]="TEXTURE_IMMUTABLE_LEVELS",e[e.UNSIGNED_INT_2_10_10_10_REV=33640]="UNSIGNED_INT_2_10_10_10_REV",e[e.UNSIGNED_INT_10F_11F_11F_REV=35899]="UNSIGNED_INT_10F_11F_11F_REV",e[e.UNSIGNED_INT_5_9_9_9_REV=35902]="UNSIGNED_INT_5_9_9_9_REV",e[e.FLOAT_32_UNSIGNED_INT_24_8_REV=36269]="FLOAT_32_UNSIGNED_INT_24_8_REV",e[e.UNSIGNED_INT_24_8=34042]="UNSIGNED_INT_24_8",e[e.HALF_FLOAT=5131]="HALF_FLOAT",e[e.RG=33319]="RG",e[e.RG_INTEGER=33320]="RG_INTEGER",e[e.INT_2_10_10_10_REV=36255]="INT_2_10_10_10_REV",e[e.CURRENT_QUERY=34917]="CURRENT_QUERY",e[e.QUERY_RESULT=34918]="QUERY_RESULT",e[e.QUERY_RESULT_AVAILABLE=34919]="QUERY_RESULT_AVAILABLE",e[e.ANY_SAMPLES_PASSED=35887]="ANY_SAMPLES_PASSED",e[e.ANY_SAMPLES_PASSED_CONSERVATIVE=36202]="ANY_SAMPLES_PASSED_CONSERVATIVE",e[e.MAX_DRAW_BUFFERS=34852]="MAX_DRAW_BUFFERS",e[e.DRAW_BUFFER0=34853]="DRAW_BUFFER0",e[e.DRAW_BUFFER1=34854]="DRAW_BUFFER1",e[e.DRAW_BUFFER2=34855]="DRAW_BUFFER2",e[e.DRAW_BUFFER3=34856]="DRAW_BUFFER3",e[e.DRAW_BUFFER4=34857]="DRAW_BUFFER4",e[e.DRAW_BUFFER5=34858]="DRAW_BUFFER5",e[e.DRAW_BUFFER6=34859]="DRAW_BUFFER6",e[e.DRAW_BUFFER7=34860]="DRAW_BUFFER7",e[e.DRAW_BUFFER8=34861]="DRAW_BUFFER8",e[e.DRAW_BUFFER9=34862]="DRAW_BUFFER9",e[e.DRAW_BUFFER10=34863]="DRAW_BUFFER10",e[e.DRAW_BUFFER11=34864]="DRAW_BUFFER11",e[e.DRAW_BUFFER12=34865]="DRAW_BUFFER12",e[e.DRAW_BUFFER13=34866]="DRAW_BUFFER13",e[e.DRAW_BUFFER14=34867]="DRAW_BUFFER14",e[e.DRAW_BUFFER15=34868]="DRAW_BUFFER15",e[e.MAX_COLOR_ATTACHMENTS=36063]="MAX_COLOR_ATTACHMENTS",e[e.COLOR_ATTACHMENT1=36065]="COLOR_ATTACHMENT1",e[e.COLOR_ATTACHMENT2=36066]="COLOR_ATTACHMENT2",e[e.COLOR_ATTACHMENT3=36067]="COLOR_ATTACHMENT3",e[e.COLOR_ATTACHMENT4=36068]="COLOR_ATTACHMENT4",e[e.COLOR_ATTACHMENT5=36069]="COLOR_ATTACHMENT5",e[e.COLOR_ATTACHMENT6=36070]="COLOR_ATTACHMENT6",e[e.COLOR_ATTACHMENT7=36071]="COLOR_ATTACHMENT7",e[e.COLOR_ATTACHMENT8=36072]="COLOR_ATTACHMENT8",e[e.COLOR_ATTACHMENT9=36073]="COLOR_ATTACHMENT9",e[e.COLOR_ATTACHMENT10=36074]="COLOR_ATTACHMENT10",e[e.COLOR_ATTACHMENT11=36075]="COLOR_ATTACHMENT11",e[e.COLOR_ATTACHMENT12=36076]="COLOR_ATTACHMENT12",e[e.COLOR_ATTACHMENT13=36077]="COLOR_ATTACHMENT13",e[e.COLOR_ATTACHMENT14=36078]="COLOR_ATTACHMENT14",e[e.COLOR_ATTACHMENT15=36079]="COLOR_ATTACHMENT15",e[e.SAMPLER_3D=35679]="SAMPLER_3D",e[e.SAMPLER_2D_SHADOW=35682]="SAMPLER_2D_SHADOW",e[e.SAMPLER_2D_ARRAY=36289]="SAMPLER_2D_ARRAY",e[e.SAMPLER_2D_ARRAY_SHADOW=36292]="SAMPLER_2D_ARRAY_SHADOW",e[e.SAMPLER_CUBE_SHADOW=36293]="SAMPLER_CUBE_SHADOW",e[e.INT_SAMPLER_2D=36298]="INT_SAMPLER_2D",e[e.INT_SAMPLER_3D=36299]="INT_SAMPLER_3D",e[e.INT_SAMPLER_CUBE=36300]="INT_SAMPLER_CUBE",e[e.INT_SAMPLER_2D_ARRAY=36303]="INT_SAMPLER_2D_ARRAY",e[e.UNSIGNED_INT_SAMPLER_2D=36306]="UNSIGNED_INT_SAMPLER_2D",e[e.UNSIGNED_INT_SAMPLER_3D=36307]="UNSIGNED_INT_SAMPLER_3D",e[e.UNSIGNED_INT_SAMPLER_CUBE=36308]="UNSIGNED_INT_SAMPLER_CUBE",e[e.UNSIGNED_INT_SAMPLER_2D_ARRAY=36311]="UNSIGNED_INT_SAMPLER_2D_ARRAY",e[e.MAX_SAMPLES=36183]="MAX_SAMPLES",e[e.SAMPLER_BINDING=35097]="SAMPLER_BINDING",e[e.PIXEL_PACK_BUFFER=35051]="PIXEL_PACK_BUFFER",e[e.PIXEL_UNPACK_BUFFER=35052]="PIXEL_UNPACK_BUFFER",e[e.PIXEL_PACK_BUFFER_BINDING=35053]="PIXEL_PACK_BUFFER_BINDING",e[e.PIXEL_UNPACK_BUFFER_BINDING=35055]="PIXEL_UNPACK_BUFFER_BINDING",e[e.COPY_READ_BUFFER=36662]="COPY_READ_BUFFER",e[e.COPY_WRITE_BUFFER=36663]="COPY_WRITE_BUFFER",e[e.COPY_READ_BUFFER_BINDING=36662]="COPY_READ_BUFFER_BINDING",e[e.COPY_WRITE_BUFFER_BINDING=36663]="COPY_WRITE_BUFFER_BINDING",e[e.FLOAT_MAT2x3=35685]="FLOAT_MAT2x3",e[e.FLOAT_MAT2x4=35686]="FLOAT_MAT2x4",e[e.FLOAT_MAT3x2=35687]="FLOAT_MAT3x2",e[e.FLOAT_MAT3x4=35688]="FLOAT_MAT3x4",e[e.FLOAT_MAT4x2=35689]="FLOAT_MAT4x2",e[e.FLOAT_MAT4x3=35690]="FLOAT_MAT4x3",e[e.UNSIGNED_INT_VEC2=36294]="UNSIGNED_INT_VEC2",e[e.UNSIGNED_INT_VEC3=36295]="UNSIGNED_INT_VEC3",e[e.UNSIGNED_INT_VEC4=36296]="UNSIGNED_INT_VEC4",e[e.UNSIGNED_NORMALIZED=35863]="UNSIGNED_NORMALIZED",e[e.SIGNED_NORMALIZED=36764]="SIGNED_NORMALIZED",e[e.VERTEX_ATTRIB_ARRAY_INTEGER=35069]="VERTEX_ATTRIB_ARRAY_INTEGER",e[e.VERTEX_ATTRIB_ARRAY_DIVISOR=35070]="VERTEX_ATTRIB_ARRAY_DIVISOR",e[e.TRANSFORM_FEEDBACK_BUFFER_MODE=35967]="TRANSFORM_FEEDBACK_BUFFER_MODE",e[e.MAX_TRANSFORM_FEEDBACK_SEPARATE_COMPONENTS=35968]="MAX_TRANSFORM_FEEDBACK_SEPARATE_COMPONENTS",e[e.TRANSFORM_FEEDBACK_VARYINGS=35971]="TRANSFORM_FEEDBACK_VARYINGS",e[e.TRANSFORM_FEEDBACK_BUFFER_START=35972]="TRANSFORM_FEEDBACK_BUFFER_START",e[e.TRANSFORM_FEEDBACK_BUFFER_SIZE=35973]="TRANSFORM_FEEDBACK_BUFFER_SIZE",e[e.TRANSFORM_FEEDBACK_PRIMITIVES_WRITTEN=35976]="TRANSFORM_FEEDBACK_PRIMITIVES_WRITTEN",e[e.MAX_TRANSFORM_FEEDBACK_INTERLEAVED_COMPONENTS=35978]="MAX_TRANSFORM_FEEDBACK_INTERLEAVED_COMPONENTS",e[e.MAX_TRANSFORM_FEEDBACK_SEPARATE_ATTRIBS=35979]="MAX_TRANSFORM_FEEDBACK_SEPARATE_ATTRIBS",e[e.INTERLEAVED_ATTRIBS=35980]="INTERLEAVED_ATTRIBS",e[e.SEPARATE_ATTRIBS=35981]="SEPARATE_ATTRIBS",e[e.TRANSFORM_FEEDBACK_BUFFER=35982]="TRANSFORM_FEEDBACK_BUFFER",e[e.TRANSFORM_FEEDBACK_BUFFER_BINDING=35983]="TRANSFORM_FEEDBACK_BUFFER_BINDING",e[e.TRANSFORM_FEEDBACK=36386]="TRANSFORM_FEEDBACK",e[e.TRANSFORM_FEEDBACK_PAUSED=36387]="TRANSFORM_FEEDBACK_PAUSED",e[e.TRANSFORM_FEEDBACK_ACTIVE=36388]="TRANSFORM_FEEDBACK_ACTIVE",e[e.TRANSFORM_FEEDBACK_BINDING=36389]="TRANSFORM_FEEDBACK_BINDING",e[e.FRAMEBUFFER_ATTACHMENT_COLOR_ENCODING=33296]="FRAMEBUFFER_ATTACHMENT_COLOR_ENCODING",e[e.FRAMEBUFFER_ATTACHMENT_COMPONENT_TYPE=33297]="FRAMEBUFFER_ATTACHMENT_COMPONENT_TYPE",e[e.FRAMEBUFFER_ATTACHMENT_RED_SIZE=33298]="FRAMEBUFFER_ATTACHMENT_RED_SIZE",e[e.FRAMEBUFFER_ATTACHMENT_GREEN_SIZE=33299]="FRAMEBUFFER_ATTACHMENT_GREEN_SIZE",e[e.FRAMEBUFFER_ATTACHMENT_BLUE_SIZE=33300]="FRAMEBUFFER_ATTACHMENT_BLUE_SIZE",e[e.FRAMEBUFFER_ATTACHMENT_ALPHA_SIZE=33301]="FRAMEBUFFER_ATTACHMENT_ALPHA_SIZE",e[e.FRAMEBUFFER_ATTACHMENT_DEPTH_SIZE=33302]="FRAMEBUFFER_ATTACHMENT_DEPTH_SIZE",e[e.FRAMEBUFFER_ATTACHMENT_STENCIL_SIZE=33303]="FRAMEBUFFER_ATTACHMENT_STENCIL_SIZE",e[e.FRAMEBUFFER_DEFAULT=33304]="FRAMEBUFFER_DEFAULT",e[e.DEPTH24_STENCIL8=35056]="DEPTH24_STENCIL8",e[e.DRAW_FRAMEBUFFER_BINDING=36006]="DRAW_FRAMEBUFFER_BINDING",e[e.READ_FRAMEBUFFER_BINDING=36010]="READ_FRAMEBUFFER_BINDING",e[e.RENDERBUFFER_SAMPLES=36011]="RENDERBUFFER_SAMPLES",e[e.FRAMEBUFFER_ATTACHMENT_TEXTURE_LAYER=36052]="FRAMEBUFFER_ATTACHMENT_TEXTURE_LAYER",e[e.FRAMEBUFFER_INCOMPLETE_MULTISAMPLE=36182]="FRAMEBUFFER_INCOMPLETE_MULTISAMPLE",e[e.UNIFORM_BUFFER=35345]="UNIFORM_BUFFER",e[e.UNIFORM_BUFFER_BINDING=35368]="UNIFORM_BUFFER_BINDING",e[e.UNIFORM_BUFFER_START=35369]="UNIFORM_BUFFER_START",e[e.UNIFORM_BUFFER_SIZE=35370]="UNIFORM_BUFFER_SIZE",e[e.MAX_VERTEX_UNIFORM_BLOCKS=35371]="MAX_VERTEX_UNIFORM_BLOCKS",e[e.MAX_FRAGMENT_UNIFORM_BLOCKS=35373]="MAX_FRAGMENT_UNIFORM_BLOCKS",e[e.MAX_COMBINED_UNIFORM_BLOCKS=35374]="MAX_COMBINED_UNIFORM_BLOCKS",e[e.MAX_UNIFORM_BUFFER_BINDINGS=35375]="MAX_UNIFORM_BUFFER_BINDINGS",e[e.MAX_UNIFORM_BLOCK_SIZE=35376]="MAX_UNIFORM_BLOCK_SIZE",e[e.MAX_COMBINED_VERTEX_UNIFORM_COMPONENTS=35377]="MAX_COMBINED_VERTEX_UNIFORM_COMPONENTS",e[e.MAX_COMBINED_FRAGMENT_UNIFORM_COMPONENTS=35379]="MAX_COMBINED_FRAGMENT_UNIFORM_COMPONENTS",e[e.UNIFORM_BUFFER_OFFSET_ALIGNMENT=35380]="UNIFORM_BUFFER_OFFSET_ALIGNMENT",e[e.ACTIVE_UNIFORM_BLOCKS=35382]="ACTIVE_UNIFORM_BLOCKS",e[e.UNIFORM_TYPE=35383]="UNIFORM_TYPE",e[e.UNIFORM_SIZE=35384]="UNIFORM_SIZE",e[e.UNIFORM_BLOCK_INDEX=35386]="UNIFORM_BLOCK_INDEX",e[e.UNIFORM_OFFSET=35387]="UNIFORM_OFFSET",e[e.UNIFORM_ARRAY_STRIDE=35388]="UNIFORM_ARRAY_STRIDE",e[e.UNIFORM_MATRIX_STRIDE=35389]="UNIFORM_MATRIX_STRIDE",e[e.UNIFORM_IS_ROW_MAJOR=35390]="UNIFORM_IS_ROW_MAJOR",e[e.UNIFORM_BLOCK_BINDING=35391]="UNIFORM_BLOCK_BINDING",e[e.UNIFORM_BLOCK_DATA_SIZE=35392]="UNIFORM_BLOCK_DATA_SIZE",e[e.UNIFORM_BLOCK_ACTIVE_UNIFORMS=35394]="UNIFORM_BLOCK_ACTIVE_UNIFORMS",e[e.UNIFORM_BLOCK_ACTIVE_UNIFORM_INDICES=35395]="UNIFORM_BLOCK_ACTIVE_UNIFORM_INDICES",e[e.UNIFORM_BLOCK_REFERENCED_BY_VERTEX_SHADER=35396]="UNIFORM_BLOCK_REFERENCED_BY_VERTEX_SHADER",e[e.UNIFORM_BLOCK_REFERENCED_BY_FRAGMENT_SHADER=35398]="UNIFORM_BLOCK_REFERENCED_BY_FRAGMENT_SHADER",e[e.OBJECT_TYPE=37138]="OBJECT_TYPE",e[e.SYNC_CONDITION=37139]="SYNC_CONDITION",e[e.SYNC_STATUS=37140]="SYNC_STATUS",e[e.SYNC_FLAGS=37141]="SYNC_FLAGS",e[e.SYNC_FENCE=37142]="SYNC_FENCE",e[e.SYNC_GPU_COMMANDS_COMPLETE=37143]="SYNC_GPU_COMMANDS_COMPLETE",e[e.UNSIGNALED=37144]="UNSIGNALED",e[e.SIGNALED=37145]="SIGNALED",e[e.ALREADY_SIGNALED=37146]="ALREADY_SIGNALED",e[e.TIMEOUT_EXPIRED=37147]="TIMEOUT_EXPIRED",e[e.CONDITION_SATISFIED=37148]="CONDITION_SATISFIED",e[e.WAIT_FAILED=37149]="WAIT_FAILED",e[e.SYNC_FLUSH_COMMANDS_BIT=1]="SYNC_FLUSH_COMMANDS_BIT",e[e.COLOR=6144]="COLOR",e[e.DEPTH=6145]="DEPTH",e[e.STENCIL=6146]="STENCIL",e[e.MIN=32775]="MIN",e[e.MAX=32776]="MAX",e[e.DEPTH_COMPONENT24=33190]="DEPTH_COMPONENT24",e[e.STREAM_READ=35041]="STREAM_READ",e[e.STREAM_COPY=35042]="STREAM_COPY",e[e.STATIC_READ=35045]="STATIC_READ",e[e.STATIC_COPY=35046]="STATIC_COPY",e[e.DYNAMIC_READ=35049]="DYNAMIC_READ",e[e.DYNAMIC_COPY=35050]="DYNAMIC_COPY",e[e.DEPTH_COMPONENT32F=36012]="DEPTH_COMPONENT32F",e[e.DEPTH32F_STENCIL8=36013]="DEPTH32F_STENCIL8",e[e.INVALID_INDEX=4294967295]="INVALID_INDEX",e[e.TIMEOUT_IGNORED=-1]="TIMEOUT_IGNORED",e[e.MAX_CLIENT_WAIT_TIMEOUT_WEBGL=37447]="MAX_CLIENT_WAIT_TIMEOUT_WEBGL",e[e.VERTEX_ATTRIB_ARRAY_DIVISOR_ANGLE=35070]="VERTEX_ATTRIB_ARRAY_DIVISOR_ANGLE",e[e.UNMASKED_VENDOR_WEBGL=37445]="UNMASKED_VENDOR_WEBGL",e[e.UNMASKED_RENDERER_WEBGL=37446]="UNMASKED_RENDERER_WEBGL",e[e.MAX_TEXTURE_MAX_ANISOTROPY_EXT=34047]="MAX_TEXTURE_MAX_ANISOTROPY_EXT",e[e.TEXTURE_MAX_ANISOTROPY_EXT=34046]="TEXTURE_MAX_ANISOTROPY_EXT",e[e.SRGB_EXT=35904]="SRGB_EXT",e[e.SRGB_ALPHA_EXT=35906]="SRGB_ALPHA_EXT",e[e.SRGB8_ALPHA8_EXT=35907]="SRGB8_ALPHA8_EXT",e[e.FRAMEBUFFER_ATTACHMENT_COLOR_ENCODING_EXT=33296]="FRAMEBUFFER_ATTACHMENT_COLOR_ENCODING_EXT",e[e.R16_EXT=33322]="R16_EXT",e[e.RG16_EXT=33324]="RG16_EXT",e[e.RGB16_EXT=32852]="RGB16_EXT",e[e.RGBA16_EXT=32859]="RGBA16_EXT",e[e.R16_SNORM_EXT=36760]="R16_SNORM_EXT",e[e.RG16_SNORM_EXT=36761]="RG16_SNORM_EXT",e[e.RGB16_SNORM_EXT=36762]="RGB16_SNORM_EXT",e[e.RGBA16_SNORM_EXT=36763]="RGBA16_SNORM_EXT",e[e.COMPRESSED_RGB_S3TC_DXT1_EXT=33776]="COMPRESSED_RGB_S3TC_DXT1_EXT",e[e.COMPRESSED_RGBA_S3TC_DXT1_EXT=33777]="COMPRESSED_RGBA_S3TC_DXT1_EXT",e[e.COMPRESSED_RGBA_S3TC_DXT3_EXT=33778]="COMPRESSED_RGBA_S3TC_DXT3_EXT",e[e.COMPRESSED_RGBA_S3TC_DXT5_EXT=33779]="COMPRESSED_RGBA_S3TC_DXT5_EXT",e[e.COMPRESSED_SRGB_S3TC_DXT1_EXT=35916]="COMPRESSED_SRGB_S3TC_DXT1_EXT",e[e.COMPRESSED_SRGB_ALPHA_S3TC_DXT1_EXT=35917]="COMPRESSED_SRGB_ALPHA_S3TC_DXT1_EXT",e[e.COMPRESSED_SRGB_ALPHA_S3TC_DXT3_EXT=35918]="COMPRESSED_SRGB_ALPHA_S3TC_DXT3_EXT",e[e.COMPRESSED_SRGB_ALPHA_S3TC_DXT5_EXT=35919]="COMPRESSED_SRGB_ALPHA_S3TC_DXT5_EXT",e[e.COMPRESSED_RED_RGTC1_EXT=36283]="COMPRESSED_RED_RGTC1_EXT",e[e.COMPRESSED_SIGNED_RED_RGTC1_EXT=36284]="COMPRESSED_SIGNED_RED_RGTC1_EXT",e[e.COMPRESSED_RED_GREEN_RGTC2_EXT=36285]="COMPRESSED_RED_GREEN_RGTC2_EXT",e[e.COMPRESSED_SIGNED_RED_GREEN_RGTC2_EXT=36286]="COMPRESSED_SIGNED_RED_GREEN_RGTC2_EXT",e[e.COMPRESSED_RGBA_BPTC_UNORM_EXT=36492]="COMPRESSED_RGBA_BPTC_UNORM_EXT",e[e.COMPRESSED_SRGB_ALPHA_BPTC_UNORM_EXT=36493]="COMPRESSED_SRGB_ALPHA_BPTC_UNORM_EXT",e[e.COMPRESSED_RGB_BPTC_SIGNED_FLOAT_EXT=36494]="COMPRESSED_RGB_BPTC_SIGNED_FLOAT_EXT",e[e.COMPRESSED_RGB_BPTC_UNSIGNED_FLOAT_EXT=36495]="COMPRESSED_RGB_BPTC_UNSIGNED_FLOAT_EXT",e[e.COMPRESSED_R11_EAC=37488]="COMPRESSED_R11_EAC",e[e.COMPRESSED_SIGNED_R11_EAC=37489]="COMPRESSED_SIGNED_R11_EAC",e[e.COMPRESSED_RG11_EAC=37490]="COMPRESSED_RG11_EAC",e[e.COMPRESSED_SIGNED_RG11_EAC=37491]="COMPRESSED_SIGNED_RG11_EAC",e[e.COMPRESSED_RGB8_ETC2=37492]="COMPRESSED_RGB8_ETC2",e[e.COMPRESSED_RGBA8_ETC2_EAC=37493]="COMPRESSED_RGBA8_ETC2_EAC",e[e.COMPRESSED_SRGB8_ETC2=37494]="COMPRESSED_SRGB8_ETC2",e[e.COMPRESSED_SRGB8_ALPHA8_ETC2_EAC=37495]="COMPRESSED_SRGB8_ALPHA8_ETC2_EAC",e[e.COMPRESSED_RGB8_PUNCHTHROUGH_ALPHA1_ETC2=37496]="COMPRESSED_RGB8_PUNCHTHROUGH_ALPHA1_ETC2",e[e.COMPRESSED_SRGB8_PUNCHTHROUGH_ALPHA1_ETC2=37497]="COMPRESSED_SRGB8_PUNCHTHROUGH_ALPHA1_ETC2",e[e.COMPRESSED_RGB_PVRTC_4BPPV1_IMG=35840]="COMPRESSED_RGB_PVRTC_4BPPV1_IMG",e[e.COMPRESSED_RGBA_PVRTC_4BPPV1_IMG=35842]="COMPRESSED_RGBA_PVRTC_4BPPV1_IMG",e[e.COMPRESSED_RGB_PVRTC_2BPPV1_IMG=35841]="COMPRESSED_RGB_PVRTC_2BPPV1_IMG",e[e.COMPRESSED_RGBA_PVRTC_2BPPV1_IMG=35843]="COMPRESSED_RGBA_PVRTC_2BPPV1_IMG",e[e.COMPRESSED_RGB_ETC1_WEBGL=36196]="COMPRESSED_RGB_ETC1_WEBGL",e[e.COMPRESSED_RGB_ATC_WEBGL=35986]="COMPRESSED_RGB_ATC_WEBGL",e[e.COMPRESSED_RGBA_ATC_EXPLICIT_ALPHA_WEBGL=35986]="COMPRESSED_RGBA_ATC_EXPLICIT_ALPHA_WEBGL",e[e.COMPRESSED_RGBA_ATC_INTERPOLATED_ALPHA_WEBGL=34798]="COMPRESSED_RGBA_ATC_INTERPOLATED_ALPHA_WEBGL",e[e.COMPRESSED_RGBA_ASTC_4x4_KHR=37808]="COMPRESSED_RGBA_ASTC_4x4_KHR",e[e.COMPRESSED_RGBA_ASTC_5x4_KHR=37809]="COMPRESSED_RGBA_ASTC_5x4_KHR",e[e.COMPRESSED_RGBA_ASTC_5x5_KHR=37810]="COMPRESSED_RGBA_ASTC_5x5_KHR",e[e.COMPRESSED_RGBA_ASTC_6x5_KHR=37811]="COMPRESSED_RGBA_ASTC_6x5_KHR",e[e.COMPRESSED_RGBA_ASTC_6x6_KHR=37812]="COMPRESSED_RGBA_ASTC_6x6_KHR",e[e.COMPRESSED_RGBA_ASTC_8x5_KHR=37813]="COMPRESSED_RGBA_ASTC_8x5_KHR",e[e.COMPRESSED_RGBA_ASTC_8x6_KHR=37814]="COMPRESSED_RGBA_ASTC_8x6_KHR",e[e.COMPRESSED_RGBA_ASTC_8x8_KHR=37815]="COMPRESSED_RGBA_ASTC_8x8_KHR",e[e.COMPRESSED_RGBA_ASTC_10x5_KHR=37816]="COMPRESSED_RGBA_ASTC_10x5_KHR",e[e.COMPRESSED_RGBA_ASTC_10x6_KHR=37817]="COMPRESSED_RGBA_ASTC_10x6_KHR",e[e.COMPRESSED_RGBA_ASTC_10x8_KHR=37818]="COMPRESSED_RGBA_ASTC_10x8_KHR",e[e.COMPRESSED_RGBA_ASTC_10x10_KHR=37819]="COMPRESSED_RGBA_ASTC_10x10_KHR",e[e.COMPRESSED_RGBA_ASTC_12x10_KHR=37820]="COMPRESSED_RGBA_ASTC_12x10_KHR",e[e.COMPRESSED_RGBA_ASTC_12x12_KHR=37821]="COMPRESSED_RGBA_ASTC_12x12_KHR",e[e.COMPRESSED_SRGB8_ALPHA8_ASTC_4x4_KHR=37840]="COMPRESSED_SRGB8_ALPHA8_ASTC_4x4_KHR",e[e.COMPRESSED_SRGB8_ALPHA8_ASTC_5x4_KHR=37841]="COMPRESSED_SRGB8_ALPHA8_ASTC_5x4_KHR",e[e.COMPRESSED_SRGB8_ALPHA8_ASTC_5x5_KHR=37842]="COMPRESSED_SRGB8_ALPHA8_ASTC_5x5_KHR",e[e.COMPRESSED_SRGB8_ALPHA8_ASTC_6x5_KHR=37843]="COMPRESSED_SRGB8_ALPHA8_ASTC_6x5_KHR",e[e.COMPRESSED_SRGB8_ALPHA8_ASTC_6x6_KHR=37844]="COMPRESSED_SRGB8_ALPHA8_ASTC_6x6_KHR",e[e.COMPRESSED_SRGB8_ALPHA8_ASTC_8x5_KHR=37845]="COMPRESSED_SRGB8_ALPHA8_ASTC_8x5_KHR",e[e.COMPRESSED_SRGB8_ALPHA8_ASTC_8x6_KHR=37846]="COMPRESSED_SRGB8_ALPHA8_ASTC_8x6_KHR",e[e.COMPRESSED_SRGB8_ALPHA8_ASTC_8x8_KHR=37847]="COMPRESSED_SRGB8_ALPHA8_ASTC_8x8_KHR",e[e.COMPRESSED_SRGB8_ALPHA8_ASTC_10x5_KHR=37848]="COMPRESSED_SRGB8_ALPHA8_ASTC_10x5_KHR",e[e.COMPRESSED_SRGB8_ALPHA8_ASTC_10x6_KHR=37849]="COMPRESSED_SRGB8_ALPHA8_ASTC_10x6_KHR",e[e.COMPRESSED_SRGB8_ALPHA8_ASTC_10x8_KHR=37850]="COMPRESSED_SRGB8_ALPHA8_ASTC_10x8_KHR",e[e.COMPRESSED_SRGB8_ALPHA8_ASTC_10x10_KHR=37851]="COMPRESSED_SRGB8_ALPHA8_ASTC_10x10_KHR",e[e.COMPRESSED_SRGB8_ALPHA8_ASTC_12x10_KHR=37852]="COMPRESSED_SRGB8_ALPHA8_ASTC_12x10_KHR",e[e.COMPRESSED_SRGB8_ALPHA8_ASTC_12x12_KHR=37853]="COMPRESSED_SRGB8_ALPHA8_ASTC_12x12_KHR",e[e.UNSIGNED_INT_24_8_WEBGL=34042]="UNSIGNED_INT_24_8_WEBGL",e[e.HALF_FLOAT_OES=36193]="HALF_FLOAT_OES",e[e.RGBA32F_EXT=34836]="RGBA32F_EXT",e[e.RGB32F_EXT=34837]="RGB32F_EXT",e[e.FRAMEBUFFER_ATTACHMENT_COMPONENT_TYPE_EXT=33297]="FRAMEBUFFER_ATTACHMENT_COMPONENT_TYPE_EXT",e[e.UNSIGNED_NORMALIZED_EXT=35863]="UNSIGNED_NORMALIZED_EXT",e[e.MIN_EXT=32775]="MIN_EXT",e[e.MAX_EXT=32776]="MAX_EXT",e[e.FRAGMENT_SHADER_DERIVATIVE_HINT_OES=35723]="FRAGMENT_SHADER_DERIVATIVE_HINT_OES",e[e.COLOR_ATTACHMENT0_WEBGL=36064]="COLOR_ATTACHMENT0_WEBGL",e[e.COLOR_ATTACHMENT1_WEBGL=36065]="COLOR_ATTACHMENT1_WEBGL",e[e.COLOR_ATTACHMENT2_WEBGL=36066]="COLOR_ATTACHMENT2_WEBGL",e[e.COLOR_ATTACHMENT3_WEBGL=36067]="COLOR_ATTACHMENT3_WEBGL",e[e.COLOR_ATTACHMENT4_WEBGL=36068]="COLOR_ATTACHMENT4_WEBGL",e[e.COLOR_ATTACHMENT5_WEBGL=36069]="COLOR_ATTACHMENT5_WEBGL",e[e.COLOR_ATTACHMENT6_WEBGL=36070]="COLOR_ATTACHMENT6_WEBGL",e[e.COLOR_ATTACHMENT7_WEBGL=36071]="COLOR_ATTACHMENT7_WEBGL",e[e.COLOR_ATTACHMENT8_WEBGL=36072]="COLOR_ATTACHMENT8_WEBGL",e[e.COLOR_ATTACHMENT9_WEBGL=36073]="COLOR_ATTACHMENT9_WEBGL",e[e.COLOR_ATTACHMENT10_WEBGL=36074]="COLOR_ATTACHMENT10_WEBGL",e[e.COLOR_ATTACHMENT11_WEBGL=36075]="COLOR_ATTACHMENT11_WEBGL",e[e.COLOR_ATTACHMENT12_WEBGL=36076]="COLOR_ATTACHMENT12_WEBGL",e[e.COLOR_ATTACHMENT13_WEBGL=36077]="COLOR_ATTACHMENT13_WEBGL",e[e.COLOR_ATTACHMENT14_WEBGL=36078]="COLOR_ATTACHMENT14_WEBGL",e[e.COLOR_ATTACHMENT15_WEBGL=36079]="COLOR_ATTACHMENT15_WEBGL",e[e.DRAW_BUFFER0_WEBGL=34853]="DRAW_BUFFER0_WEBGL",e[e.DRAW_BUFFER1_WEBGL=34854]="DRAW_BUFFER1_WEBGL",e[e.DRAW_BUFFER2_WEBGL=34855]="DRAW_BUFFER2_WEBGL",e[e.DRAW_BUFFER3_WEBGL=34856]="DRAW_BUFFER3_WEBGL",e[e.DRAW_BUFFER4_WEBGL=34857]="DRAW_BUFFER4_WEBGL",e[e.DRAW_BUFFER5_WEBGL=34858]="DRAW_BUFFER5_WEBGL",e[e.DRAW_BUFFER6_WEBGL=34859]="DRAW_BUFFER6_WEBGL",e[e.DRAW_BUFFER7_WEBGL=34860]="DRAW_BUFFER7_WEBGL",e[e.DRAW_BUFFER8_WEBGL=34861]="DRAW_BUFFER8_WEBGL",e[e.DRAW_BUFFER9_WEBGL=34862]="DRAW_BUFFER9_WEBGL",e[e.DRAW_BUFFER10_WEBGL=34863]="DRAW_BUFFER10_WEBGL",e[e.DRAW_BUFFER11_WEBGL=34864]="DRAW_BUFFER11_WEBGL",e[e.DRAW_BUFFER12_WEBGL=34865]="DRAW_BUFFER12_WEBGL",e[e.DRAW_BUFFER13_WEBGL=34866]="DRAW_BUFFER13_WEBGL",e[e.DRAW_BUFFER14_WEBGL=34867]="DRAW_BUFFER14_WEBGL",e[e.DRAW_BUFFER15_WEBGL=34868]="DRAW_BUFFER15_WEBGL",e[e.MAX_COLOR_ATTACHMENTS_WEBGL=36063]="MAX_COLOR_ATTACHMENTS_WEBGL",e[e.MAX_DRAW_BUFFERS_WEBGL=34852]="MAX_DRAW_BUFFERS_WEBGL",e[e.VERTEX_ARRAY_BINDING_OES=34229]="VERTEX_ARRAY_BINDING_OES",e[e.QUERY_COUNTER_BITS_EXT=34916]="QUERY_COUNTER_BITS_EXT",e[e.CURRENT_QUERY_EXT=34917]="CURRENT_QUERY_EXT",e[e.QUERY_RESULT_EXT=34918]="QUERY_RESULT_EXT",e[e.QUERY_RESULT_AVAILABLE_EXT=34919]="QUERY_RESULT_AVAILABLE_EXT",e[e.TIME_ELAPSED_EXT=35007]="TIME_ELAPSED_EXT",e[e.TIMESTAMP_EXT=36392]="TIMESTAMP_EXT",e[e.GPU_DISJOINT_EXT=36795]="GPU_DISJOINT_EXT",e}({});var Xi="Failed to create WebGL context in Node.js, headless gl returned null",Li=" 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.",Hi={width:1,height:1,debug:!0,throwOnError:!1},Vt=null;function jr(){return Vt!==null}function Gr(e){e={...Hi,...e};let{width:t,height:n,webgl1:i,webgl2:s}=e;if(s&&!i)throw new Error("headless-gl does not support WebGL2");if(!Vt)throw new Error(Li);let o=Vt(t,n,e);if(!o)throw new Error(Xi);return o}var D=m(I(),1);function we(e){if(typeof window<"u"&&typeof window.process=="object"&&window.process.type==="renderer"||typeof process<"u"&&typeof process.versions=="object"&&Boolean(process.versions.electron))return!0;let t=typeof navigator=="object"&&typeof navigator.userAgent=="string"&&navigator.userAgent,n=e||t;return!!(n&&n.indexOf("Electron")>=0)}function Q(){return!(typeof process=="object"&&String(process)==="[object process]"&&!process.browser)||we()}var ta=globalThis.self||globalThis.window||globalThis.global,ra=globalThis.window||globalThis.self||globalThis.global,na=globalThis.document||{},ia=globalThis.process||{},sa=globalThis.console,$r=globalThis.navigator||{};var Wt=globalThis;function rt(e){if(!e&&!Q())return"Node";if(we(e))return"Electron";let t=e||$r.userAgent||"";if(t.indexOf("Edge")>-1)return"Edge";let n=t.indexOf("MSIE ")!==-1,i=t.indexOf("Trident/")!==-1;return n||i?"IE":Wt.chrome?"Chrome":Wt.safari?"Safari":Wt.mozInnerScreenX?"Firefox":"Unknown"}var rn=m(I(),1);var Xe={};function Vi(e){globalThis.console&&globalThis.console.error&&globalThis.console.error(e)}function Wi(e){globalThis.console&&globalThis.console.log&&globalThis.console.log(e)}function Ki(e,t){Xe[e]=!0,t!==void 0&&Vi(t)}function Yi(e){let t=e.getError;e.getError=function(){let i;do i=t.apply(e),i!==e.NO_ERROR&&(Xe[i]=!0);while(i!==e.NO_ERROR);for(i in Xe)if(Xe[i])return delete Xe[i],parseInt(i,10);return e.NO_ERROR}}var Le=function e(t){let n=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 s=new e.VertexAttrib(n);this.attribs[i]=s}this.maxAttrib=0};Le.VertexAttrib=function(t){this.enabled=!1,this.buffer=null,this.size=4,this.type=t.FLOAT,this.normalized=!1,this.stride=16,this.offset=0,this.cached="",this.recache()};Le.VertexAttrib.prototype.recache=function(){this.cached=[this.size,this.type,this.normalized,this.stride,this.offset].join(":")};var he=function(t){let n=this;this.gl=t,Yi(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===n.VERTEX_ARRAY_BINDING_OES?n.currentVertexArrayObject===n.defaultVertexArrayObject?null:n.currentVertexArrayObject:i.getParameter.apply(this,arguments)},t.enableVertexAttribArray=function(o){let _=n.currentVertexArrayObject;_.maxAttrib=Math.max(_.maxAttrib,o);let a=_.attribs[o];return a.enabled=!0,i.enableVertexAttribArray.apply(this,arguments)},t.disableVertexAttribArray=function(o){let _=n.currentVertexArrayObject;_.maxAttrib=Math.max(_.maxAttrib,o);let a=_.attribs[o];return a.enabled=!1,i.disableVertexAttribArray.apply(this,arguments)},t.bindBuffer=function(o,_){switch(o){case t.ARRAY_BUFFER:n.currentArrayBuffer=_;break;case t.ELEMENT_ARRAY_BUFFER:n.currentVertexArrayObject.elementArrayBuffer=_;break;default:}return i.bindBuffer.apply(this,arguments)},t.getVertexAttrib=function(o,_){let E=n.currentVertexArrayObject.attribs[o];switch(_){case t.VERTEX_ATTRIB_ARRAY_BUFFER_BINDING:return E.buffer;case t.VERTEX_ATTRIB_ARRAY_ENABLED:return E.enabled;case t.VERTEX_ATTRIB_ARRAY_SIZE:return E.size;case t.VERTEX_ATTRIB_ARRAY_STRIDE:return E.stride;case t.VERTEX_ATTRIB_ARRAY_TYPE:return E.type;case t.VERTEX_ATTRIB_ARRAY_NORMALIZED:return E.normalized;default:return i.getVertexAttrib.apply(this,arguments)}},t.vertexAttribPointer=function(o,_,a,E,R,u){let l=n.currentVertexArrayObject;l.maxAttrib=Math.max(l.maxAttrib,o);let A=l.attribs[o];return A.buffer=n.currentArrayBuffer,A.size=_,A.type=a,A.normalized=E,A.stride=R,A.offset=u,A.recache(),i.vertexAttribPointer.apply(this,arguments)},t.instrumentExtension&&t.instrumentExtension(this,"OES_vertex_array_object"),t.canvas&&t.canvas.addEventListener("webglcontextrestored",()=>{Wi("OESVertexArrayObject emulation library context restored"),n.reset_()},!0),this.reset_()};he.prototype.VERTEX_ARRAY_BINDING_OES=34229;he.prototype.reset_=function(){if(this.vertexArrayObjects!==void 0)for(let i=0;i<this.vertexArrayObjects.length;++i)this.vertexArrayObjects.isAlive=!1;let n=this.gl;this.maxVertexAttribs=n.getParameter(n.MAX_VERTEX_ATTRIBS),this.defaultVertexArrayObject=new Le(this),this.currentVertexArrayObject=null,this.currentArrayBuffer=null,this.vertexArrayObjects=[this.defaultVertexArrayObject],this.bindVertexArrayOES(null)};he.prototype.createVertexArrayOES=function(){let t=new Le(this);return this.vertexArrayObjects.push(t),t};he.prototype.deleteVertexArrayOES=function(t){t.isAlive=!1,this.vertexArrayObjects.splice(this.vertexArrayObjects.indexOf(t),1),this.currentVertexArrayObject===t&&this.bindVertexArrayOES(null)};he.prototype.isVertexArrayOES=function(t){return!!(t&&t instanceof Le&&t.hasBeenBound&&t.ext===this)};he.prototype.bindVertexArrayOES=function(t){let n=this.gl;if(t&&!t.isAlive){Ki(n.INVALID_OPERATION,"bindVertexArrayOES: attempt to bind deleted arrayObject");return}let i=this.original,s=this.currentVertexArrayObject;this.currentVertexArrayObject=t||this.defaultVertexArrayObject,this.currentVertexArrayObject.hasBeenBound=!0;let o=this.currentVertexArrayObject;if(s===o)return;(!s||o.elementArrayBuffer!==s.elementArrayBuffer)&&i.bindBuffer.call(n,n.ELEMENT_ARRAY_BUFFER,o.elementArrayBuffer);let _=this.currentArrayBuffer,a=Math.max(s?s.maxAttrib:0,o.maxAttrib);for(let E=0;E<=a;E++){let R=o.attribs[E],u=s?s.attribs[E]:null;if((!s||R.enabled!==u.enabled)&&(R.enabled?i.enableVertexAttribArray.call(n,E):i.disableVertexAttribArray.call(n,E)),R.enabled){let l=!1;(!s||R.buffer!==u.buffer)&&(_!==R.buffer&&(i.bindBuffer.call(n,n.ARRAY_BUFFER,R.buffer),_=R.buffer),l=!0),(l||R.cached!==u.cached)&&i.vertexAttribPointer.call(n,E,R.size,R.type,R.normalized,R.stride,R.offset)}}this.currentArrayBuffer!==_&&i.bindBuffer.call(n,n.ARRAY_BUFFER,this.currentArrayBuffer)};function zr(e){if(typeof e.createVertexArray=="function")return;let t=e.getSupportedExtensions;e.getSupportedExtensions=function(){let s=t.call(this)||[];return s.indexOf("OES_vertex_array_object")<0&&s.push("OES_vertex_array_object"),s};let n=e.getExtension;e.getExtension=function(s){let o=n.call(this,s);return o||(s!=="OES_vertex_array_object"?null:(e.__OESVertexArrayObject||(this.__OESVertexArrayObject=new he(this)),this.__OESVertexArrayObject))}}var Ne=m(I(),1);var Kt=m(I(),1),ki="Invalid WebGLRenderingContext";var ji="Requires WebGL2";function Gi(e){return typeof WebGLRenderingContext<"u"&&e instanceof WebGLRenderingContext||typeof WebGL2RenderingContext<"u"&&e instanceof WebGL2RenderingContext?!0:Boolean(e&&Number.isFinite(e._version))}function N(e){return typeof WebGL2RenderingContext<"u"&&e instanceof WebGL2RenderingContext?!0:Boolean(e&&e._version===2)}function Yt(e){return N(e)?e:null}function Zr(e){return(0,Kt.assert)(Gi(e),ki),e}function nt(e){return(0,Kt.assert)(N(e),ji),e}var Qr="OES_element_index",qr="WEBGL_draw_buffers",$i="EXT_disjoint_timer_query",zi="EXT_disjoint_timer_query_webgl2",Zi="EXT_texture_filter_anisotropic",Jr="WEBGL_debug_renderer_info",Qi=35723,qi=4352,Ji=36795,es=34047,ts=37445,rs=37446,F=e=>N(e)?void 0:0,ns={[r.READ_BUFFER]:e=>N(e)?void 0:r.COLOR_ATTACHMENT0,[Qi]:e=>N(e)?void 0:qi,[r.RASTERIZER_DISCARD]:F,[r.SAMPLES]:F,[Ji]:(e,t)=>{let n=N(e)?e.getExtension(zi):e.getExtension($i);return n&&n.GPU_DISJOINT_EXT?t(n.GPU_DISJOINT_EXT):0},[ts]:(e,t)=>{let n=e.getExtension(Jr);return t(n&&n.UNMASKED_VENDOR_WEBGL||r.VENDOR)},[rs]:(e,t)=>{let n=e.getExtension(Jr);return t(n&&n.UNMASKED_RENDERER_WEBGL||r.RENDERER)},[es]:(e,t)=>{var n;let i=((n=e.luma)===null||n===void 0||(n=n.extensions)===null||n===void 0?void 0:n[Zi])||e.getExtension("EXT_texture_filter_anisotropic");return i?t(i.MAX_TEXTURE_MAX_ANISOTROPY_EXT):1},[r.MAX_3D_TEXTURE_SIZE]:F,[r.MAX_ARRAY_TEXTURE_LAYERS]:F,[r.MAX_CLIENT_WAIT_TIMEOUT_WEBGL]:F,[r.MAX_COLOR_ATTACHMENTS]:(e,t)=>{if(!N(e)){let n=e.getExtension(qr);return n?t(n.MAX_COLOR_ATTACHMENTS_WEBGL):0}},[r.MAX_COMBINED_FRAGMENT_UNIFORM_COMPONENTS]:F,[r.MAX_COMBINED_UNIFORM_BLOCKS]:F,[r.MAX_COMBINED_VERTEX_UNIFORM_COMPONENTS]:F,[r.MAX_DRAW_BUFFERS]:e=>{if(!N(e)){let t=e.getExtension(qr);return t?t.MAX_DRAW_BUFFERS_WEBGL:0}},[r.MAX_ELEMENT_INDEX]:e=>e.getExtension(Qr)?2147483647:65535,[r.MAX_ELEMENTS_INDICES]:e=>e.getExtension(Qr)?16777216:65535,[r.MAX_ELEMENTS_VERTICES]:e=>16777216,[r.MAX_FRAGMENT_INPUT_COMPONENTS]:F,[r.MAX_FRAGMENT_UNIFORM_BLOCKS]:F,[r.MAX_FRAGMENT_UNIFORM_COMPONENTS]:F,[r.MAX_SAMPLES]:F,[r.MAX_SERVER_WAIT_TIMEOUT]:F,[r.MAX_TEXTURE_LOD_BIAS]:F,[r.MAX_TRANSFORM_FEEDBACK_INTERLEAVED_COMPONENTS]:F,[r.MAX_TRANSFORM_FEEDBACK_SEPARATE_ATTRIBS]:F,[r.MAX_TRANSFORM_FEEDBACK_SEPARATE_COMPONENTS]:F,[r.MAX_UNIFORM_BLOCK_SIZE]:F,[r.MAX_UNIFORM_BUFFER_BINDINGS]:F,[r.MAX_VARYING_COMPONENTS]:F,[r.MAX_VERTEX_OUTPUT_COMPONENTS]:F,[r.MAX_VERTEX_UNIFORM_BLOCKS]:F,[r.MAX_VERTEX_UNIFORM_COMPONENTS]:F,[r.MIN_PROGRAM_TEXEL_OFFSET]:F,[r.MAX_PROGRAM_TEXEL_OFFSET]:F,[r.UNIFORM_BUFFER_OFFSET_ALIGNMENT]:F};function en(e,t,n){let i=ns[n],s=typeof i=="function"?i(e,t,n):i;return s!==void 0?s:t(n)}function Fe(e){if(!e.luma){let n={_polyfilled:!1,_extensions:{}};e.luma=n}return e.luma}var is="OES_vertex_array_object",tn="ANGLE_instanced_arrays",ss="WEBGL_draw_buffers",os="EXT_disjoint_timer_query",_s="EXT_texture_filter_anisotropic",as="VertexArray requires WebGL2 or OES_vertex_array_object extension";function Es(e,t){return{webgl2:N(e),ext:e.getExtension(t)}}var kt={[is]:{meta:{suffix:"OES"},createVertexArray:()=>{(0,Ne.assert)(!1,as)},deleteVertexArray:()=>{},bindVertexArray:()=>{},isVertexArray:()=>!1},[tn]:{meta:{suffix:"ANGLE"},vertexAttribDivisor(e,t){(0,Ne.assert)(t===0,"WebGL instanced rendering not supported")},drawElementsInstanced:()=>{},drawArraysInstanced:()=>{}},[ss]:{meta:{suffix:"WEBGL"},drawBuffers:()=>{(0,Ne.assert)(!1)}},[os]:{meta:{suffix:"EXT"},createQuery:()=>{(0,Ne.assert)(!1)},deleteQuery:()=>{(0,Ne.assert)(!1)},beginQuery:()=>{(0,Ne.assert)(!1)},endQuery:()=>{},getQuery(e,t){return this.getQueryObject(e,t)},getQueryParameter(e,t){return this.getQueryObject(e,t)},getQueryObject:(e,t)=>{}}},it={readBuffer:(e,t,n)=>{N(e)&&t(n)},getVertexAttrib:(e,t,n,i)=>{let{webgl2:s,ext:o}=Es(e,tn),_;switch(i){case r.VERTEX_ATTRIB_ARRAY_INTEGER:_=s?void 0:!1;break;case r.VERTEX_ATTRIB_ARRAY_DIVISOR:_=!s&&!o?0:void 0;break;default:}return _!==void 0?_:t(n,i)},getProgramParameter:(e,t,n,i)=>{if(!N(e))switch(i){case r.TRANSFORM_FEEDBACK_BUFFER_MODE:return r.SEPARATE_ATTRIBS;case r.TRANSFORM_FEEDBACK_VARYINGS:return 0;case r.ACTIVE_UNIFORM_BLOCKS:return 0;default:}return t(n,i)},getInternalformatParameter:(e,t,n,i,s)=>{if(!N(e))switch(s){case r.SAMPLES:return new Int32Array([0]);default:}return e.getInternalformatParameter(n,i,s)},getTexParameter(e,t,n,i){switch(i){case r.TEXTURE_MAX_ANISOTROPY_EXT:let s=Fe(e),{_extensions:o}=s,_=o[_s];i=_&&_.TEXTURE_MAX_ANISOTROPY_EXT||r.TEXTURE_MAX_ANISOTROPY_EXT;break;default:}return t(n,i)},getParameter:en,hint(e,t,n,i){return t(n,i)}};function nn(e){let t=Fe(e);return t._polyfilled||(zr(e),Rs(e),us(e,kt),As(e,{target:t,target2:e}),t._polyfilled=!0),e}function Rs(e){let t=Fe(e),n=e.getSupportedExtensions()||[];for(let i of n){let s=e.getExtension(i);t._extensions[i]=s}}function us(e,t){let n=Fe(e);for(let i of Object.getOwnPropertyNames(t))i!=="overrides"&&ls(e,{extension:i,target:n,target2:e})}function ls(e,t){let{extension:n,target:i,target2:s}=t,o=kt[n];(0,rn.assert)(o);let{meta:_={}}=o,{suffix:a=""}=_,E=e.getExtension(n);for(let R of Object.keys(o)){let u=`${R}${a}`,l=null;R==="meta"||typeof e[R]=="function"||(E&&typeof E[u]=="function"?l=function(){return E[u](...arguments)}:typeof o[R]=="function"&&(l=o[R].bind(i))),l&&(i[R]=l,s[R]=l)}}function As(e,t){let{target:n,target2:i}=t;Object.keys(it).forEach(s=>{if(typeof it[s]=="function"){let o=e[s]?e[s].bind(e):()=>{},_=it[s].bind(null,e,o);n[s]=_,i[s]=_}})}var Ve=m(I(),1);var st={[r.BLEND]:!1,[r.BLEND_COLOR]:new Float32Array([0,0,0,0]),[r.BLEND_EQUATION_RGB]:r.FUNC_ADD,[r.BLEND_EQUATION_ALPHA]:r.FUNC_ADD,[r.BLEND_SRC_RGB]:r.ONE,[r.BLEND_DST_RGB]:r.ZERO,[r.BLEND_SRC_ALPHA]:r.ONE,[r.BLEND_DST_ALPHA]:r.ZERO,[r.COLOR_CLEAR_VALUE]:new Float32Array([0,0,0,0]),[r.COLOR_WRITEMASK]:[!0,!0,!0,!0],[r.CULL_FACE]:!1,[r.CULL_FACE_MODE]:r.BACK,[r.DEPTH_TEST]:!1,[r.DEPTH_CLEAR_VALUE]:1,[r.DEPTH_FUNC]:r.LESS,[r.DEPTH_RANGE]:new Float32Array([0,1]),[r.DEPTH_WRITEMASK]:!0,[r.DITHER]:!0,[r.CURRENT_PROGRAM]:null,[r.FRAMEBUFFER_BINDING]:null,[r.RENDERBUFFER_BINDING]:null,[r.VERTEX_ARRAY_BINDING]:null,[r.ARRAY_BUFFER_BINDING]:null,[r.FRONT_FACE]:r.CCW,[r.GENERATE_MIPMAP_HINT]:r.DONT_CARE,[r.LINE_WIDTH]:1,[r.POLYGON_OFFSET_FILL]:!1,[r.POLYGON_OFFSET_FACTOR]:0,[r.POLYGON_OFFSET_UNITS]:0,[r.SAMPLE_ALPHA_TO_COVERAGE]:!1,[r.SAMPLE_COVERAGE]:!1,[r.SAMPLE_COVERAGE_VALUE]:1,[r.SAMPLE_COVERAGE_INVERT]:!1,[r.SCISSOR_TEST]:!1,[r.SCISSOR_BOX]:new Int32Array([0,0,1024,1024]),[r.STENCIL_TEST]:!1,[r.STENCIL_CLEAR_VALUE]:0,[r.STENCIL_WRITEMASK]:4294967295,[r.STENCIL_BACK_WRITEMASK]:4294967295,[r.STENCIL_FUNC]:r.ALWAYS,[r.STENCIL_REF]:0,[r.STENCIL_VALUE_MASK]:4294967295,[r.STENCIL_BACK_FUNC]:r.ALWAYS,[r.STENCIL_BACK_REF]:0,[r.STENCIL_BACK_VALUE_MASK]:4294967295,[r.STENCIL_FAIL]:r.KEEP,[r.STENCIL_PASS_DEPTH_FAIL]:r.KEEP,[r.STENCIL_PASS_DEPTH_PASS]:r.KEEP,[r.STENCIL_BACK_FAIL]:r.KEEP,[r.STENCIL_BACK_PASS_DEPTH_FAIL]:r.KEEP,[r.STENCIL_BACK_PASS_DEPTH_PASS]:r.KEEP,[r.VIEWPORT]:[0,0,1024,1024],[r.PACK_ALIGNMENT]:4,[r.UNPACK_ALIGNMENT]:4,[r.UNPACK_FLIP_Y_WEBGL]:!1,[r.UNPACK_PREMULTIPLY_ALPHA_WEBGL]:!1,[r.UNPACK_COLORSPACE_CONVERSION_WEBGL]:r.BROWSER_DEFAULT_WEBGL,[r.TRANSFORM_FEEDBACK_BINDING]:null,[r.COPY_READ_BUFFER_BINDING]:null,[r.COPY_WRITE_BUFFER_BINDING]:null,[r.PIXEL_PACK_BUFFER_BINDING]:null,[r.PIXEL_UNPACK_BUFFER_BINDING]:null,[r.FRAGMENT_SHADER_DERIVATIVE_HINT]:r.DONT_CARE,[r.READ_FRAMEBUFFER_BINDING]:null,[r.RASTERIZER_DISCARD]:!1,[r.PACK_ROW_LENGTH]:0,[r.PACK_SKIP_PIXELS]:0,[r.PACK_SKIP_ROWS]:0,[r.UNPACK_ROW_LENGTH]:0,[r.UNPACK_IMAGE_HEIGHT]:0,[r.UNPACK_SKIP_PIXELS]:0,[r.UNPACK_SKIP_ROWS]:0,[r.UNPACK_SKIP_IMAGES]:0},re=(e,t,n)=>t?e.enable(n):e.disable(n),sn=(e,t,n)=>e.hint(n,t),Y=(e,t,n)=>e.pixelStorei(n,t),on=(e,t,n)=>{let i;return n===r.FRAMEBUFFER_BINDING?i=N(e)?r.DRAW_FRAMEBUFFER:r.FRAMEBUFFER:i=r.READ_FRAMEBUFFER,e.bindFramebuffer(i,t)},He=(e,t,n)=>{let s={[r.ARRAY_BUFFER_BINDING]:r.ARRAY_BUFFER,[r.COPY_READ_BUFFER_BINDING]:r.COPY_READ_BUFFER,[r.COPY_WRITE_BUFFER_BINDING]:r.COPY_WRITE_BUFFER,[r.PIXEL_PACK_BUFFER_BINDING]:r.PIXEL_PACK_BUFFER,[r.PIXEL_UNPACK_BUFFER_BINDING]:r.PIXEL_UNPACK_BUFFER}[n];e.bindBuffer(s,t)};function jt(e){return Array.isArray(e)||ArrayBuffer.isView(e)&&!(e instanceof DataView)}var _n={[r.BLEND]:re,[r.BLEND_COLOR]:(e,t)=>e.blendColor(...t),[r.BLEND_EQUATION_RGB]:"blendEquation",[r.BLEND_EQUATION_ALPHA]:"blendEquation",[r.BLEND_SRC_RGB]:"blendFunc",[r.BLEND_DST_RGB]:"blendFunc",[r.BLEND_SRC_ALPHA]:"blendFunc",[r.BLEND_DST_ALPHA]:"blendFunc",[r.COLOR_CLEAR_VALUE]:(e,t)=>e.clearColor(...t),[r.COLOR_WRITEMASK]:(e,t)=>e.colorMask(...t),[r.CULL_FACE]:re,[r.CULL_FACE_MODE]:(e,t)=>e.cullFace(t),[r.DEPTH_TEST]:re,[r.DEPTH_CLEAR_VALUE]:(e,t)=>e.clearDepth(t),[r.DEPTH_FUNC]:(e,t)=>e.depthFunc(t),[r.DEPTH_RANGE]:(e,t)=>e.depthRange(...t),[r.DEPTH_WRITEMASK]:(e,t)=>e.depthMask(t),[r.DITHER]:re,[r.FRAGMENT_SHADER_DERIVATIVE_HINT]:sn,[r.CURRENT_PROGRAM]:(e,t)=>e.useProgram(t),[r.RENDERBUFFER_BINDING]:(e,t)=>e.bindRenderbuffer(r.RENDERBUFFER,t),[r.TRANSFORM_FEEDBACK_BINDING]:(e,t)=>{var n,i;return(n=(i=e).bindTransformFeedback)===null||n===void 0?void 0:n.call(i,r.TRANSFORM_FEEDBACK,t)},[r.VERTEX_ARRAY_BINDING]:(e,t)=>e.bindVertexArray(t),[r.FRAMEBUFFER_BINDING]:on,[r.READ_FRAMEBUFFER_BINDING]:on,[r.ARRAY_BUFFER_BINDING]:He,[r.COPY_READ_BUFFER_BINDING]:He,[r.COPY_WRITE_BUFFER_BINDING]:He,[r.PIXEL_PACK_BUFFER_BINDING]:He,[r.PIXEL_UNPACK_BUFFER_BINDING]:He,[r.FRONT_FACE]:(e,t)=>e.frontFace(t),[r.GENERATE_MIPMAP_HINT]:sn,[r.LINE_WIDTH]:(e,t)=>e.lineWidth(t),[r.POLYGON_OFFSET_FILL]:re,[r.POLYGON_OFFSET_FACTOR]:"polygonOffset",[r.POLYGON_OFFSET_UNITS]:"polygonOffset",[r.RASTERIZER_DISCARD]:re,[r.SAMPLE_ALPHA_TO_COVERAGE]:re,[r.SAMPLE_COVERAGE]:re,[r.SAMPLE_COVERAGE_VALUE]:"sampleCoverage",[r.SAMPLE_COVERAGE_INVERT]:"sampleCoverage",[r.SCISSOR_TEST]:re,[r.SCISSOR_BOX]:(e,t)=>e.scissor(...t),[r.STENCIL_TEST]:re,[r.STENCIL_CLEAR_VALUE]:(e,t)=>e.clearStencil(t),[r.STENCIL_WRITEMASK]:(e,t)=>e.stencilMaskSeparate(r.FRONT,t),[r.STENCIL_BACK_WRITEMASK]:(e,t)=>e.stencilMaskSeparate(r.BACK,t),[r.STENCIL_FUNC]:"stencilFuncFront",[r.STENCIL_REF]:"stencilFuncFront",[r.STENCIL_VALUE_MASK]:"stencilFuncFront",[r.STENCIL_BACK_FUNC]:"stencilFuncBack",[r.STENCIL_BACK_REF]:"stencilFuncBack",[r.STENCIL_BACK_VALUE_MASK]:"stencilFuncBack",[r.STENCIL_FAIL]:"stencilOpFront",[r.STENCIL_PASS_DEPTH_FAIL]:"stencilOpFront",[r.STENCIL_PASS_DEPTH_PASS]:"stencilOpFront",[r.STENCIL_BACK_FAIL]:"stencilOpBack",[r.STENCIL_BACK_PASS_DEPTH_FAIL]:"stencilOpBack",[r.STENCIL_BACK_PASS_DEPTH_PASS]:"stencilOpBack",[r.VIEWPORT]:(e,t)=>e.viewport(...t),[r.PACK_ALIGNMENT]:Y,[r.UNPACK_ALIGNMENT]:Y,[r.UNPACK_FLIP_Y_WEBGL]:Y,[r.UNPACK_PREMULTIPLY_ALPHA_WEBGL]:Y,[r.UNPACK_COLORSPACE_CONVERSION_WEBGL]:Y,[r.PACK_ROW_LENGTH]:Y,[r.PACK_SKIP_PIXELS]:Y,[r.PACK_SKIP_ROWS]:Y,[r.UNPACK_ROW_LENGTH]:Y,[r.UNPACK_IMAGE_HEIGHT]:Y,[r.UNPACK_SKIP_PIXELS]:Y,[r.UNPACK_SKIP_ROWS]:Y,[r.UNPACK_SKIP_IMAGES]:Y,framebuffer:(e,t)=>{let n=t&&"handle"in t?t.handle:t;return e.bindFramebuffer(r.FRAMEBUFFER,n)},blend:(e,t)=>t?e.enable(r.BLEND):e.disable(r.BLEND),blendColor:(e,t)=>e.blendColor(...t),blendEquation:(e,t)=>{let n=typeof t=="number"?[t,t]:t;e.blendEquationSeparate(...n)},blendFunc:(e,t)=>{let n=t?.length===2?[...t,...t]:t;e.blendFuncSeparate(...n)},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(r.CULL_FACE):e.disable(r.CULL_FACE),cullFace:(e,t)=>e.cullFace(t),depthTest:(e,t)=>t?e.enable(r.DEPTH_TEST):e.disable(r.DEPTH_TEST),depthFunc:(e,t)=>e.depthFunc(t),depthMask:(e,t)=>e.depthMask(t),depthRange:(e,t)=>e.depthRange(...t),dither:(e,t)=>t?e.enable(r.DITHER):e.disable(r.DITHER),derivativeHint:(e,t)=>{e.hint(r.FRAGMENT_SHADER_DERIVATIVE_HINT,t)},frontFace:(e,t)=>e.frontFace(t),mipmapHint:(e,t)=>e.hint(r.GENERATE_MIPMAP_HINT,t),lineWidth:(e,t)=>e.lineWidth(t),polygonOffsetFill:(e,t)=>t?e.enable(r.POLYGON_OFFSET_FILL):e.disable(r.POLYGON_OFFSET_FILL),polygonOffset:(e,t)=>e.polygonOffset(...t),sampleCoverage:(e,t)=>e.sampleCoverage(...t),scissorTest:(e,t)=>t?e.enable(r.SCISSOR_TEST):e.disable(r.SCISSOR_TEST),scissor:(e,t)=>e.scissor(...t),stencilTest:(e,t)=>t?e.enable(r.STENCIL_TEST):e.disable(r.STENCIL_TEST),stencilMask:(e,t)=>{t=jt(t)?t:[t,t];let[n,i]=t;e.stencilMaskSeparate(r.FRONT,n),e.stencilMaskSeparate(r.BACK,i)},stencilFunc:(e,t)=>{t=jt(t)&&t.length===3?[...t,...t]:t;let[n,i,s,o,_,a]=t;e.stencilFuncSeparate(r.FRONT,n,i,s),e.stencilFuncSeparate(r.BACK,o,_,a)},stencilOp:(e,t)=>{t=jt(t)&&t.length===3?[...t,...t]:t;let[n,i,s,o,_,a]=t;e.stencilOpSeparate(r.FRONT,n,i,s),e.stencilOpSeparate(r.BACK,o,_,a)},viewport:(e,t)=>e.viewport(...t)};function B(e,t,n){return t[e]!==void 0?t[e]:n[e]}var an={blendEquation:(e,t,n)=>e.blendEquationSeparate(B(r.BLEND_EQUATION_RGB,t,n),B(r.BLEND_EQUATION_ALPHA,t,n)),blendFunc:(e,t,n)=>e.blendFuncSeparate(B(r.BLEND_SRC_RGB,t,n),B(r.BLEND_DST_RGB,t,n),B(r.BLEND_SRC_ALPHA,t,n),B(r.BLEND_DST_ALPHA,t,n)),polygonOffset:(e,t,n)=>e.polygonOffset(B(r.POLYGON_OFFSET_FACTOR,t,n),B(r.POLYGON_OFFSET_UNITS,t,n)),sampleCoverage:(e,t,n)=>e.sampleCoverage(B(r.SAMPLE_COVERAGE_VALUE,t,n),B(r.SAMPLE_COVERAGE_INVERT,t,n)),stencilFuncFront:(e,t,n)=>e.stencilFuncSeparate(r.FRONT,B(r.STENCIL_FUNC,t,n),B(r.STENCIL_REF,t,n),B(r.STENCIL_VALUE_MASK,t,n)),stencilFuncBack:(e,t,n)=>e.stencilFuncSeparate(r.BACK,B(r.STENCIL_BACK_FUNC,t,n),B(r.STENCIL_BACK_REF,t,n),B(r.STENCIL_BACK_VALUE_MASK,t,n)),stencilOpFront:(e,t,n)=>e.stencilOpSeparate(r.FRONT,B(r.STENCIL_FAIL,t,n),B(r.STENCIL_PASS_DEPTH_FAIL,t,n),B(r.STENCIL_PASS_DEPTH_PASS,t,n)),stencilOpBack:(e,t,n)=>e.stencilOpSeparate(r.BACK,B(r.STENCIL_BACK_FAIL,t,n),B(r.STENCIL_BACK_PASS_DEPTH_FAIL,t,n),B(r.STENCIL_BACK_PASS_DEPTH_PASS,t,n))},Gt={enable:(e,t)=>e({[t]:!0}),disable:(e,t)=>e({[t]:!1}),pixelStorei:(e,t,n)=>e({[t]:n}),hint:(e,t,n)=>e({[t]:n}),useProgram:(e,t)=>e({[r.CURRENT_PROGRAM]:t}),bindRenderbuffer:(e,t,n)=>e({[r.RENDERBUFFER_BINDING]:n}),bindTransformFeedback:(e,t,n)=>e({[r.TRANSFORM_FEEDBACK_BINDING]:n}),bindVertexArray:(e,t)=>e({[r.VERTEX_ARRAY_BINDING]:t}),bindFramebuffer:(e,t,n)=>{switch(t){case r.FRAMEBUFFER:return e({[r.DRAW_FRAMEBUFFER_BINDING]:n,[r.READ_FRAMEBUFFER_BINDING]:n});case r.DRAW_FRAMEBUFFER:return e({[r.DRAW_FRAMEBUFFER_BINDING]:n});case r.READ_FRAMEBUFFER:return e({[r.READ_FRAMEBUFFER_BINDING]:n});default:return null}},bindBuffer:(e,t,n)=>{let i={[r.ARRAY_BUFFER]:[r.ARRAY_BUFFER_BINDING],[r.COPY_READ_BUFFER]:[r.COPY_READ_BUFFER_BINDING],[r.COPY_WRITE_BUFFER]:[r.COPY_WRITE_BUFFER_BINDING],[r.PIXEL_PACK_BUFFER]:[r.PIXEL_PACK_BUFFER_BINDING],[r.PIXEL_UNPACK_BUFFER]:[r.PIXEL_UNPACK_BUFFER_BINDING]}[t];return i?e({[i]:n}):{valueChanged:!0}},blendColor:(e,t,n,i,s)=>e({[r.BLEND_COLOR]:new Float32Array([t,n,i,s])}),blendEquation:(e,t)=>e({[r.BLEND_EQUATION_RGB]:t,[r.BLEND_EQUATION_ALPHA]:t}),blendEquationSeparate:(e,t,n)=>e({[r.BLEND_EQUATION_RGB]:t,[r.BLEND_EQUATION_ALPHA]:n}),blendFunc:(e,t,n)=>e({[r.BLEND_SRC_RGB]:t,[r.BLEND_DST_RGB]:n,[r.BLEND_SRC_ALPHA]:t,[r.BLEND_DST_ALPHA]:n}),blendFuncSeparate:(e,t,n,i,s)=>e({[r.BLEND_SRC_RGB]:t,[r.BLEND_DST_RGB]:n,[r.BLEND_SRC_ALPHA]:i,[r.BLEND_DST_ALPHA]:s}),clearColor:(e,t,n,i,s)=>e({[r.COLOR_CLEAR_VALUE]:new Float32Array([t,n,i,s])}),clearDepth:(e,t)=>e({[r.DEPTH_CLEAR_VALUE]:t}),clearStencil:(e,t)=>e({[r.STENCIL_CLEAR_VALUE]:t}),colorMask:(e,t,n,i,s)=>e({[r.COLOR_WRITEMASK]:[t,n,i,s]}),cullFace:(e,t)=>e({[r.CULL_FACE_MODE]:t}),depthFunc:(e,t)=>e({[r.DEPTH_FUNC]:t}),depthRange:(e,t,n)=>e({[r.DEPTH_RANGE]:new Float32Array([t,n])}),depthMask:(e,t)=>e({[r.DEPTH_WRITEMASK]:t}),frontFace:(e,t)=>e({[r.FRONT_FACE]:t}),lineWidth:(e,t)=>e({[r.LINE_WIDTH]:t}),polygonOffset:(e,t,n)=>e({[r.POLYGON_OFFSET_FACTOR]:t,[r.POLYGON_OFFSET_UNITS]:n}),sampleCoverage:(e,t,n)=>e({[r.SAMPLE_COVERAGE_VALUE]:t,[r.SAMPLE_COVERAGE_INVERT]:n}),scissor:(e,t,n,i,s)=>e({[r.SCISSOR_BOX]:new Int32Array([t,n,i,s])}),stencilMask:(e,t)=>e({[r.STENCIL_WRITEMASK]:t,[r.STENCIL_BACK_WRITEMASK]:t}),stencilMaskSeparate:(e,t,n)=>e({[t===r.FRONT?r.STENCIL_WRITEMASK:r.STENCIL_BACK_WRITEMASK]:n}),stencilFunc:(e,t,n,i)=>e({[r.STENCIL_FUNC]:t,[r.STENCIL_REF]:n,[r.STENCIL_VALUE_MASK]:i,[r.STENCIL_BACK_FUNC]:t,[r.STENCIL_BACK_REF]:n,[r.STENCIL_BACK_VALUE_MASK]:i}),stencilFuncSeparate:(e,t,n,i,s)=>e({[t===r.FRONT?r.STENCIL_FUNC:r.STENCIL_BACK_FUNC]:n,[t===r.FRONT?r.STENCIL_REF:r.STENCIL_BACK_REF]:i,[t===r.FRONT?r.STENCIL_VALUE_MASK:r.STENCIL_BACK_VALUE_MASK]:s}),stencilOp:(e,t,n,i)=>e({[r.STENCIL_FAIL]:t,[r.STENCIL_PASS_DEPTH_FAIL]:n,[r.STENCIL_PASS_DEPTH_PASS]:i,[r.STENCIL_BACK_FAIL]:t,[r.STENCIL_BACK_PASS_DEPTH_FAIL]:n,[r.STENCIL_BACK_PASS_DEPTH_PASS]:i}),stencilOpSeparate:(e,t,n,i,s)=>e({[t===r.FRONT?r.STENCIL_FAIL:r.STENCIL_BACK_FAIL]:n,[t===r.FRONT?r.STENCIL_PASS_DEPTH_FAIL:r.STENCIL_BACK_PASS_DEPTH_FAIL]:i,[t===r.FRONT?r.STENCIL_PASS_DEPTH_PASS:r.STENCIL_BACK_PASS_DEPTH_PASS]:s}),viewport:(e,t,n,i,s)=>e({[r.VIEWPORT]:[t,n,i,s]})},ne=(e,t)=>e.isEnabled(t),$t={[r.BLEND]:ne,[r.CULL_FACE]:ne,[r.DEPTH_TEST]:ne,[r.DITHER]:ne,[r.POLYGON_OFFSET_FILL]:ne,[r.SAMPLE_ALPHA_TO_COVERAGE]:ne,[r.SAMPLE_COVERAGE]:ne,[r.SCISSOR_TEST]:ne,[r.STENCIL_TEST]:ne,[r.RASTERIZER_DISCARD]:ne},En=new Set([r.ACTIVE_TEXTURE,r.TRANSFORM_FEEDBACK_ACTIVE,r.TRANSFORM_FEEDBACK_PAUSED,r.TRANSFORM_FEEDBACK_BUFFER_BINDING,r.UNIFORM_BUFFER_BINDING,r.ELEMENT_ARRAY_BUFFER_BINDING,r.IMPLEMENTATION_COLOR_READ_FORMAT,r.IMPLEMENTATION_COLOR_READ_TYPE,r.READ_BUFFER,r.DRAW_BUFFER0,r.DRAW_BUFFER1,r.DRAW_BUFFER2,r.DRAW_BUFFER3,r.DRAW_BUFFER4,r.DRAW_BUFFER5,r.DRAW_BUFFER6,r.DRAW_BUFFER7,r.DRAW_BUFFER8,r.DRAW_BUFFER9,r.DRAW_BUFFER10,r.DRAW_BUFFER11,r.DRAW_BUFFER12,r.DRAW_BUFFER13,r.DRAW_BUFFER14,r.DRAW_BUFFER15,r.SAMPLER_BINDING,r.TEXTURE_BINDING_2D,r.TEXTURE_BINDING_2D_ARRAY,r.TEXTURE_BINDING_3D,r.TEXTURE_BINDING_CUBE_MAP]);function Ae(e,t){let i=y.attach(e).gl;if(fs(t))return;let s={};for(let _ in t){let a=Number(_),E=_n[_];E&&(typeof E=="string"?s[E]=!0:E(i,t[_],a))}let o=i.state&&i.state.cache;if(o)for(let _ in s){let a=an[_];a(i,t,o)}}function Rn(e){let t=arguments.length>1&&arguments[1]!==void 0?arguments[1]:st,i=y.attach(e).gl;if(typeof t=="number"){let _=t,a=$t[_];return a?a(i,_):i.getParameter(_)}let s=Array.isArray(t)?t:Object.keys(t),o={};for(let _ of s){let a=$t[_];o[_]=a?a(i,Number(_)):i.getParameter(Number(_))}return o}function fs(e){for(let t in e)return!1;return!0}function un(e,t){if(e===t)return!0;let n=Array.isArray(e)||ArrayBuffer.isView(e),i=Array.isArray(t)||ArrayBuffer.isView(t);if(n&&i&&e.length===t.length){for(let s=0;s<e.length;++s)if(e[s]!==t[s])return!1;return!0}return!1}var zt=class{constructor(t){let{copyState:n=!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=n?Rn(t):Object.assign({},st),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,Ve.assert)(this.stateStack.length>0);let t=this.stateStack[this.stateStack.length-1];Ae(this.gl,t),this.stateStack.pop()}_updateCache(t){let n=!1,i,s=this.stateStack.length>0?this.stateStack[this.stateStack.length-1]:null;for(let o in t){(0,Ve.assert)(o!==void 0);let _=t[o],a=this.cache[o];un(_,a)||(n=!0,i=a,s&&!(o in s)&&(s[o]=a),this.cache[o]=_)}return{valueChanged:n,oldValue:i}}};function me(e){return e.state}function Zt(e,t){let{enable:n=!0,copyState:i}=t;if((0,Ve.assert)(i!==void 0),!e.state){e.state=new zt(e,{copyState:i}),cs(e);for(let o in Gt){let _=Gt[o];Ts(e,o,_)}ln(e,"getParameter"),ln(e,"isEnabled")}let s=me(e);return s.enable=n,e}function Me(e){let t=me(e);t||(Zt(e,{copyState:!1}),t=me(e)),t.push()}function Ie(e){let t=me(e);(0,Ve.assert)(t),t.pop()}function ln(e,t){let n=e[t].bind(e);e[t]=function(s){if(s===void 0||En.has(s))return n(s);let o=me(e);return s in o.cache||(o.cache[s]=n(s)),o.enable?o.cache[s]:n(s)},Object.defineProperty(e[t],"name",{value:`${t}-from-cache`,configurable:!1})}function Ts(e,t,n){if(!e[t])return;let i=e[t].bind(e);e[t]=function(){let o=me(e);for(var _=arguments.length,a=new Array(_),E=0;E<_;E++)a[E]=arguments[E];let{valueChanged:R,oldValue:u}=n(o._updateCache,...a);return R&&i(...a),u},Object.defineProperty(e[t],"name",{value:`${t}-to-cache`,configurable:!1})}function cs(e){let t=e.useProgram.bind(e);e.useProgram=function(i){let s=me(e);s.program!==i&&(t(i),s.program=i)}}var ds={webgl2:!0,webgl1:!0,powerPreference:"high-performance",onContextLost:()=>console.error("WebGL context lost"),onContextRestored:()=>console.info("WebGL context restored")};function An(e,t){t={...ds,...t};let n=null,i=o=>n=o.statusMessage||n;e.addEventListener("webglcontextcreationerror",i,!1);let s=null;if(t.type==="webgl2"&&(t={...t,webgl1:!1}),t.type==="webgl1"&&(t={...t,webgl2:!1}),!s&&t.webgl2&&(s=e.getContext("webgl2",t)),!s&&t.webgl1&&(s=e.getContext("webgl",t)),e.removeEventListener("webglcontextcreationerror",i,!1),!s)throw new Error(`Failed to create ${t.webgl2&&!t.webgl1?"WebGL2":"WebGL"} context: ${n||"Unknown error"}`);if(t.onContextLost){let{onContextLost:o}=t;e.addEventListener("webglcontextlost",_=>o(_),!1)}if(t.onContextRestored){let{onContextRestored:o}=t;e.addEventListener("webglcontextrestored",_=>o(_),!1)}return s}function fn(e){let t=e.getParameter(r.VENDOR),n=e.getParameter(r.RENDERER),i=e.getExtension("WEBGL_debug_renderer_info"),s=e.getParameter(i?i.UNMASKED_VENDOR_WEBGL:r.VENDOR),o=e.getParameter(i?i.UNMASKED_RENDERER_WEBGL:r.RENDERER),E=Ss(s||t,o||n);return{type:N(e)?"webgl2":"webgl",gpu:E,vendor:s||t,renderer:o||n,version:e.getParameter(r.VERSION),shadingLanguages:["glsl"],shadingLanguageVersions:{glsl:e.getParameter(r.SHADING_LANGUAGE_VERSION)}}}function Ss(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 Tn(){let e=arguments.length>0&&arguments[0]!==void 0?arguments[0]:{},t=typeof window<"u"?window.navigator||{}:{},n=e.userAgent||t.userAgent||"",i=n.indexOf("MSIE ")!==-1,s=n.indexOf("Trident/")!==-1;return i||s}var Jt=m(I(),1);function ot(e){switch(e){case"uint8":return r.UNSIGNED_BYTE;case"sint8":return r.BYTE;case"unorm8":return r.UNSIGNED_BYTE;case"snorm8":return r.BYTE;case"uint16":return r.UNSIGNED_SHORT;case"sint16":return r.SHORT;case"unorm16":return r.UNSIGNED_SHORT;case"snorm16":return r.SHORT;case"uint32":return r.UNSIGNED_INT;case"sint32":return r.INT;case"float16":return r.HALF_FLOAT;case"float32":return r.FLOAT}throw new Error(String(e))}var L="texture-compression-bc",C="texture-compression-astc",ie="texture-compression-etc2",hs="texture-compression-etc1-webgl",_t="texture-compression-pvrtc-webgl",Qt="texture-compression-atc-webgl",We="WEBGL_compressed_texture_s3tc",Ke="WEBGL_compressed_texture_s3tc_srgb",pe="EXT_texture_compression_rgtc",Ye="EXT_texture_compression_bptc",Ns="WEBGL_compressed_texture_etc",ms="WEBGL_compressed_texture_astc",Is="WEBGL_compressed_texture_etc1",gs="WEBGL_compressed_texture_pvrtc",Cs="WEBGL_compressed_texture_atc",cn="EXT_sRGB",ae="EXT_texture_norm16",Os="WEBGL_color_buffer_float",Fs="EXT_color_buffer_float",q=(e,t)=>e.getExtension(t),ge=(e,t)=>t.every(n=>e.getExtension(n)),qt={"texture-blend-float-webgl1":e=>N(e)?!0:q(e,"EXT_float_blend"),"texture-formats-srgb-webgl1":e=>N(e)?!0:q(e,cn),"texture-formats-depth-webgl1":e=>N(e)?!0:q(e,"WEBGL_depth_texture"),"texture-formats-float32-webgl1":e=>N(e)?!0:q(e,"OES_texture_float"),"texture-formats-float16-webgl1":e=>N(e)?!0:q(e,"OES_texture_half_float"),"texture-formats-norm16-webgl":e=>N(e)?q(e,ae):!1,"texture-filter-linear-float32-webgl":e=>q(e,"OES_texture_float_linear"),"texture-filter-linear-float16-webgl":e=>q(e,"OES_texture_half_float_linear"),"texture-filter-anisotropic-webgl":e=>q(e,"EXT_texture_filter_anisotropic"),"texture-renderable-float32-webgl":e=>q(e,"EXT_color_buffer_float"),"texture-renderable-float16-webgl":e=>q(e,"EXT_color_buffer_half_float"),"texture-compression-bc":e=>ge(e,[We,Ke,pe,Ye]),"texture-compression-bc5-webgl":e=>ge(e,[pe]),"texture-compression-etc2":e=>ge(e,[Ns]),"texture-compression-astc":e=>ge(e,[ms]),"texture-compression-etc1-webgl":e=>ge(e,[Is]),"texture-compression-pvrtc-webgl":e=>ge(e,[gs]),"texture-compression-atc-webgl":e=>ge(e,[Cs])};function Ms(e,t){var n;return((n=qt[t])===null||n===void 0?void 0:n.call(qt,e))||!1}function dn(e){return Object.keys(qt).filter(n=>Ms(e,n))}var ke={"rgb8unorm-unsized":{gl:r.RGB,gl1:r.RGB,b:4,c:2,bpp:4,dataFormat:r.RGB,types:[r.UNSIGNED_BYTE,r.UNSIGNED_SHORT_5_6_5]},"rgba8unorm-unsized":{gl:r.RGBA,gl1:r.RGBA,b:4,c:2,bpp:4,dataFormat:r.RGBA,types:[r.UNSIGNED_BYTE,r.UNSIGNED_SHORT_4_4_4_4,r.UNSIGNED_SHORT_5_5_5_1]},r8unorm:{gl:r.R8,b:1,c:1,renderbuffer:!0},r8snorm:{gl:r.R8_SNORM,b:1,c:1},r8uint:{gl:r.R8UI,b:1,c:1,renderbuffer:!0},r8sint:{gl:r.R8I,b:1,c:1,renderbuffer:!0},rg8unorm:{gl:r.RG8,b:2,c:2,renderbuffer:!0},rg8snorm:{gl:r.RG8_SNORM,b:2,c:2},rg8uint:{gl:r.RG8UI,b:2,c:2,renderbuffer:!0},rg8sint:{gl:r.RG8I,b:2,c:2,renderbuffer:!0},r16uint:{gl:r.R16UI,b:2,c:1,renderbuffer:!0},r16sint:{gl:r.R16I,b:2,c:1,renderbuffer:!0},r16float:{gl:r.R16F,b:2,c:1,render:"texture-renderable-float16-webgl",filter:"texture-filter-linear-float16-webgl",renderbuffer:!0},"r16unorm-webgl":{gl:r.R16_EXT,b:2,c:1,f:"texture-formats-norm16-webgl",renderbuffer:!0,x:ae},"r16snorm-webgl":{gl:r.R16_SNORM_EXT,b:2,c:1,f:"texture-formats-norm16-webgl",x:ae},"rgba4unorm-webgl":{gl:r.RGBA4,b:2,c:4,wgpu:!1,renderbuffer:!0},"rgb565unorm-webgl":{gl:r.RGB565,b:2,c:4,wgpu:!1,renderbuffer:!0},"rgb5a1unorm-webgl":{gl:r.RGB5_A1,b:2,c:4,wgpu:!1,renderbuffer:!0},"rgb8unorm-webgl":{gl:r.RGB8,b:3,c:3,wgpu:!1},"rgb8snorm-webgl":{gl:r.RGB8_SNORM,b:3,c:3,wgpu:!1},rgba8unorm:{gl:r.RGBA8,gl1:r.RGBA,b:4,c:2,bpp:4},"rgba8unorm-srgb":{gl:r.SRGB8_ALPHA8,gl1:r.SRGB_ALPHA_EXT,b:4,c:4,gl1ext:cn,bpp:4},rgba8snorm:{gl:r.RGBA8_SNORM,b:4,c:4},rgba8uint:{gl:r.RGBA8UI,b:4,c:4,bpp:4},rgba8sint:{gl:r.RGBA8I,b:4,c:4,bpp:4},bgra8unorm:{b:4,c:4},"bgra8unorm-srgb":{b:4,c:4},rg16uint:{gl:r.RG16UI,b:4,c:1,bpp:4},rg16sint:{gl:r.RG16I,b:4,c:2,bpp:4},rg16float:{gl:r.RG16F,bpp:4,b:4,c:2,render:"texture-renderable-float16-webgl",filter:"texture-filter-linear-float16-webgl",renderbuffer:!0},"rg16unorm-webgl":{gl:r.RG16_EXT,b:2,c:2,f:"texture-formats-norm16-webgl",x:ae},"rg16snorm-webgl":{gl:r.RG16_SNORM_EXT,b:2,c:2,f:"texture-formats-norm16-webgl",x:ae},r32uint:{gl:r.R32UI,b:4,c:1,bpp:4,renderbuffer:!0},r32sint:{gl:r.R32I,b:4,c:1,bpp:4,renderbuffer:!0},r32float:{gl:r.R32F,bpp:4,b:4,c:1,render:"texture-renderable-float32-webgl",filter:"texture-filter-linear-float32-webgl"},rgb9e5ufloat:{gl:r.RGB9_E5,b:4,c:3,p:1,render:"texture-renderable-float16-webgl",filter:"texture-filter-linear-float16-webgl"},rg11b10ufloat:{gl:r.R11F_G11F_B10F,b:4,c:3,p:1,render:"texture-renderable-float32-webgl",renderbuffer:!0},rgb10a2unorm:{gl:r.RGB10_A2,b:4,c:4,p:1,renderbuffer:!0},"rgb10a2unorm-webgl":{b:4,c:4,gl:r.RGB10_A2UI,p:1,wgpu:!1,bpp:4,renderbuffer:!0},"rgb16unorm-webgl":{gl:r.RGB16_EXT,b:2,c:3,f:"texture-formats-norm16-webgl",x:ae},"rgb16snorm-webgl":{gl:r.RGB16_SNORM_EXT,b:2,c:3,f:"texture-formats-norm16-webgl",x:ae},rg32uint:{gl:r.RG32UI,b:8,c:2,renderbuffer:!0},rg32sint:{gl:r.RG32I,b:8,c:2,renderbuffer:!0},rg32float:{gl:r.RG32F,b:8,c:2,render:"texture-renderable-float32-webgl",filter:"texture-filter-linear-float32-webgl",renderbuffer:!0},rgba16uint:{gl:r.RGBA16UI,b:8,c:4,renderbuffer:!0},rgba16sint:{gl:r.RGBA16I,b:8,c:4,renderbuffer:!0},rgba16float:{gl:r.RGBA16F,gl1:r.RGBA,b:8,c:4,render:"texture-renderable-float16-webgl",filter:"texture-filter-linear-float16-webgl"},"rgba16unorm-webgl":{gl:r.RGBA16_EXT,b:2,c:4,f:"texture-formats-norm16-webgl",renderbuffer:!0,x:ae},"rgba16snorm-webgl":{gl:r.RGBA16_SNORM_EXT,b:2,c:4,f:"texture-formats-norm16-webgl",x:ae},"rgb32float-webgl":{gl:r.RGB32F,gl1:r.RGB,render:"texture-renderable-float32-webgl",filter:"texture-filter-linear-float32-webgl",gl2ext:Fs,gl1ext:Os,dataFormat:r.RGB,types:[r.FLOAT]},rgba32uint:{gl:r.RGBA32UI,b:16,c:4,renderbuffer:!0},rgba32sint:{gl:r.RGBA32I,b:16,c:4,renderbuffer:!0},rgba32float:{gl:r.RGBA32F,b:16,c:4,render:"texture-renderable-float32-webgl",filter:"texture-filter-linear-float32-webgl",renderbuffer:!0},stencil8:{gl:r.STENCIL_INDEX8,gl1:r.STENCIL_INDEX8,b:1,c:1,attachment:r.STENCIL_ATTACHMENT,renderbuffer:!0},depth16unorm:{gl:r.DEPTH_COMPONENT16,gl1:r.DEPTH_COMPONENT16,b:2,c:1,attachment:r.DEPTH_ATTACHMENT,renderbuffer:!0},depth24plus:{gl:r.DEPTH_COMPONENT24,b:3,c:1,attachment:r.DEPTH_ATTACHMENT},depth32float:{gl:r.DEPTH_COMPONENT32F,b:4,c:1,attachment:r.DEPTH_ATTACHMENT,renderbuffer:!0},"depth24plus-stencil8":{gl:r.DEPTH_STENCIL,gl1:r.DEPTH_STENCIL,b:4,c:2,p:1,attachment:r.DEPTH_STENCIL_ATTACHMENT,renderbuffer:!0,depthTexture:!0},"depth24unorm-stencil8":{gl:r.DEPTH24_STENCIL8,b:4,c:2,p:1,attachment:r.DEPTH_STENCIL_ATTACHMENT,renderbuffer:!0},"depth32float-stencil8":{gl:r.DEPTH32F_STENCIL8,b:5,c:2,p:1,attachment:r.DEPTH_STENCIL_ATTACHMENT,renderbuffer:!0},"bc1-rgb-unorm-webgl":{gl:r.COMPRESSED_RGB_S3TC_DXT1_EXT,x:We,f:L},"bc1-rgb-unorm-srgb-webgl":{gl:r.COMPRESSED_SRGB_S3TC_DXT1_EXT,x:Ke,f:L},"bc1-rgba-unorm":{gl:r.COMPRESSED_RGBA_S3TC_DXT1_EXT,x:We,f:L},"bc1-rgba-unorm-srgb":{gl:r.COMPRESSED_SRGB_S3TC_DXT1_EXT,x:Ke,f:L},"bc2-rgba-unorm":{gl:r.COMPRESSED_RGBA_S3TC_DXT3_EXT,x:We,f:L},"bc2-rgba-unorm-srgb":{gl:r.COMPRESSED_SRGB_ALPHA_S3TC_DXT3_EXT,x:Ke,f:L},"bc3-rgba-unorm":{gl:r.COMPRESSED_RGBA_S3TC_DXT5_EXT,x:We,f:L},"bc3-rgba-unorm-srgb":{gl:r.COMPRESSED_SRGB_ALPHA_S3TC_DXT5_EXT,x:Ke,f:L},"bc4-r-unorm":{gl:r.COMPRESSED_RED_RGTC1_EXT,x:pe,f:L},"bc4-r-snorm":{gl:r.COMPRESSED_SIGNED_RED_RGTC1_EXT,x:pe,f:L},"bc5-rg-unorm":{gl:r.COMPRESSED_RED_GREEN_RGTC2_EXT,x:pe,f:L},"bc5-rg-snorm":{gl:r.COMPRESSED_SIGNED_RED_GREEN_RGTC2_EXT,x:pe,f:L},"bc6h-rgb-ufloat":{gl:r.COMPRESSED_RGB_BPTC_UNSIGNED_FLOAT_EXT,x:Ye,f:L},"bc6h-rgb-float":{gl:r.COMPRESSED_RGB_BPTC_SIGNED_FLOAT_EXT,x:Ye,f:L},"bc7-rgba-unorm":{gl:r.COMPRESSED_RGBA_BPTC_UNORM_EXT,x:Ye,f:L},"bc7-rgba-unorm-srgb":{gl:r.COMPRESSED_SRGB_ALPHA_BPTC_UNORM_EXT,x:Ye,f:L},"etc2-rgb8unorm":{gl:r.COMPRESSED_RGB8_ETC2,f:ie},"etc2-rgb8unorm-srgb":{gl:r.COMPRESSED_SRGB8_ETC2,f:ie},"etc2-rgb8a1unorm":{gl:r.COMPRESSED_RGB8_PUNCHTHROUGH_ALPHA1_ETC2,f:ie},"etc2-rgb8a1unorm-srgb":{gl:r.COMPRESSED_SRGB8_PUNCHTHROUGH_ALPHA1_ETC2,f:ie},"etc2-rgba8unorm":{gl:r.COMPRESSED_RGBA8_ETC2_EAC,f:ie},"etc2-rgba8unorm-srgb":{gl:r.COMPRESSED_SRGB8_ALPHA8_ETC2_EAC,f:ie},"eac-r11unorm":{gl:r.COMPRESSED_R11_EAC,f:ie},"eac-r11snorm":{gl:r.COMPRESSED_SIGNED_R11_EAC,f:ie},"eac-rg11unorm":{gl:r.COMPRESSED_RG11_EAC,f:ie},"eac-rg11snorm":{gl:r.COMPRESSED_SIGNED_RG11_EAC,f:ie},"astc-4x4-unorm":{gl:r.COMPRESSED_RGBA_ASTC_4x4_KHR,f:C},"astc-4x4-unorm-srgb":{gl:r.COMPRESSED_SRGB8_ALPHA8_ASTC_4x4_KHR,f:C},"astc-5x4-unorm":{gl:r.COMPRESSED_RGBA_ASTC_5x4_KHR,f:C},"astc-5x4-unorm-srgb":{gl:r.COMPRESSED_SRGB8_ALPHA8_ASTC_5x4_KHR,f:C},"astc-5x5-unorm":{gl:r.COMPRESSED_RGBA_ASTC_5x5_KHR,f:C},"astc-5x5-unorm-srgb":{gl:r.COMPRESSED_SRGB8_ALPHA8_ASTC_5x5_KHR,f:C},"astc-6x5-unorm":{gl:r.COMPRESSED_RGBA_ASTC_6x5_KHR,f:C},"astc-6x5-unorm-srgb":{gl:r.COMPRESSED_SRGB8_ALPHA8_ASTC_6x5_KHR,f:C},"astc-6x6-unorm":{gl:r.COMPRESSED_RGBA_ASTC_6x6_KHR,f:C},"astc-6x6-unorm-srgb":{gl:r.COMPRESSED_SRGB8_ALPHA8_ASTC_6x6_KHR,f:C},"astc-8x5-unorm":{gl:r.COMPRESSED_RGBA_ASTC_8x5_KHR,f:C},"astc-8x5-unorm-srgb":{gl:r.COMPRESSED_SRGB8_ALPHA8_ASTC_8x5_KHR,f:C},"astc-8x6-unorm":{gl:r.COMPRESSED_RGBA_ASTC_8x6_KHR,f:C},"astc-8x6-unorm-srgb":{gl:r.COMPRESSED_SRGB8_ALPHA8_ASTC_8x6_KHR,f:C},"astc-8x8-unorm":{gl:r.COMPRESSED_RGBA_ASTC_8x8_KHR,f:C},"astc-8x8-unorm-srgb":{gl:r.COMPRESSED_SRGB8_ALPHA8_ASTC_8x8_KHR,f:C},"astc-10x5-unorm":{gl:r.COMPRESSED_RGBA_ASTC_10x10_KHR,f:C},"astc-10x5-unorm-srgb":{gl:r.COMPRESSED_SRGB8_ALPHA8_ASTC_10x10_KHR,f:C},"astc-10x6-unorm":{gl:r.COMPRESSED_RGBA_ASTC_10x6_KHR,f:C},"astc-10x6-unorm-srgb":{gl:r.COMPRESSED_SRGB8_ALPHA8_ASTC_10x6_KHR,f:C},"astc-10x8-unorm":{gl:r.COMPRESSED_RGBA_ASTC_10x8_KHR,f:C},"astc-10x8-unorm-srgb":{gl:r.COMPRESSED_SRGB8_ALPHA8_ASTC_10x8_KHR,f:C},"astc-10x10-unorm":{gl:r.COMPRESSED_RGBA_ASTC_10x10_KHR,f:C},"astc-10x10-unorm-srgb":{gl:r.COMPRESSED_SRGB8_ALPHA8_ASTC_10x10_KHR,f:C},"astc-12x10-unorm":{gl:r.COMPRESSED_RGBA_ASTC_12x10_KHR,f:C},"astc-12x10-unorm-srgb":{gl:r.COMPRESSED_SRGB8_ALPHA8_ASTC_12x10_KHR,f:C},"astc-12x12-unorm":{gl:r.COMPRESSED_RGBA_ASTC_12x12_KHR,f:C},"astc-12x12-unorm-srgb":{gl:r.COMPRESSED_SRGB8_ALPHA8_ASTC_12x12_KHR,f:C},"pvrtc-rgb4unorm-webgl":{gl:r.COMPRESSED_RGB_PVRTC_4BPPV1_IMG,f:_t},"pvrtc-rgba4unorm-webgl":{gl:r.COMPRESSED_RGBA_PVRTC_4BPPV1_IMG,f:_t},"pvrtc-rbg2unorm-webgl":{gl:r.COMPRESSED_RGB_PVRTC_2BPPV1_IMG,f:_t},"pvrtc-rgba2unorm-webgl":{gl:r.COMPRESSED_RGBA_PVRTC_2BPPV1_IMG,f:_t},"etc1-rbg-unorm-webgl":{gl:r.COMPRESSED_RGB_ETC1_WEBGL,f:hs},"atc-rgb-unorm-webgl":{gl:r.COMPRESSED_RGB_ATC_WEBGL,f:Qt},"atc-rgba-unorm-webgl":{gl:r.COMPRESSED_RGBA_ATC_EXPLICIT_ALPHA_WEBGL,f:Qt},"atc-rgbai-unorm-webgl":{gl:r.COMPRESSED_RGBA_ATC_INTERPOLATED_ALPHA_WEBGL,f:Qt}},ps={[r.RED]:1,[r.RED_INTEGER]:1,[r.RG]:2,[r.RG_INTEGER]:2,[r.RGB]:3,[r.RGB_INTEGER]:3,[r.RGBA]:4,[r.RGBA_INTEGER]:4,[r.DEPTH_COMPONENT]:1,[r.DEPTH_STENCIL]:1,[r.ALPHA]:1,[r.LUMINANCE]:1,[r.LUMINANCE_ALPHA]:2},bs={[r.FLOAT]:4,[r.UNSIGNED_INT]:4,[r.INT]:4,[r.UNSIGNED_SHORT]:2,[r.SHORT]:2,[r.HALF_FLOAT]:2,[r.BYTE]:1,[r.UNSIGNED_BYTE]:1};function je(e,t){let n=Ge(t),i=ke[n];if(!i||(N(e)?i.gl===void 0:i.gl1===void 0))return!1;let s=i.x||N(e)&&i.gl2ext||i.gl1ext;return s?Boolean(e.getExtension(s)):!0}function Sn(e,t){var n;return je(e,t)&&((n=ke[t])===null||n===void 0?void 0:n.renderbuffer)}function Ge(e){if(typeof e=="string")return e;let t=Object.entries(ke).find(n=>{let[,i]=n;return i.gl===e||i.gl1===e});if(!t)throw new Error(`Unknown texture format ${e}`);return t[0]}function $e(e,t){let n=ke[e],i=t?n?.gl:n?.gl1;if(i===void 0)throw new Error(`Unsupported texture format ${e}`);return i}function hn(e,t){let n=Ge(t);if(!je(e,n))return!1;try{if((0,Jt.decodeTextureFormat)(n).signed)return!1}catch{return!1}return n.endsWith("32float")?Boolean(e.getExtension("OES_texture_float_linear")):n.endsWith("16float")?Boolean(e.getExtension("OES_texture_half_float_linear")):!0}function Nn(e,t){let n=Ge(t);return!(!je(e,n)||typeof n=="number")}function at(e,t){let n=Ge(e),i=$e(n,t),s=(0,Jt.decodeTextureFormat)(n);return{format:i,dataFormat:Bs(s.format,s.integer,s.normalized,i),type:s.dataType?ot(s.dataType):r.UNSIGNED_BYTE,compressed:s.compressed}}function mn(e){let t=ke[e];if(!(t!=null&&t.attachment))throw new Error(`${e} is not a depth stencil format`);return t.attachment}function In(e){let t=arguments.length>1&&arguments[1]!==void 0?arguments[1]:e.RGBA,n=arguments.length>2&&arguments[2]!==void 0?arguments[2]:r.RGBA,i=arguments.length>3&&arguments[3]!==void 0?arguments[3]:r.UNSIGNED_BYTE,s=null,o=null;try{s=e.createTexture(),e.bindTexture(r.TEXTURE_2D,s);let _=0,a=1,E=1,R=0,u=new Uint8Array([0,0,255,255]);e.texImage2D(e.TEXTURE_2D,_,t,a,E,R,n,i,u),o=e.createFramebuffer(),e.bindFramebuffer(r.FRAMEBUFFER,o),e.framebufferTexture2D(r.FRAMEBUFFER,r.COLOR_ATTACHMENT0,r.TEXTURE_2D,s,0);let l=e.checkFramebufferStatus(r.FRAMEBUFFER)===r.FRAMEBUFFER_COMPLETE;return e.bindTexture(r.TEXTURE_2D,null),l}finally{e.deleteTexture(s),e.deleteFramebuffer(o)}}function ze(e,t){let n=Ge(e),i=at(n,t),s=ps[i.dataFormat]||4,o=bs[i.type]||1;return s*o}function Bs(e,t,n,i){if(i===r.RGBA||i===r.RGB)return i;switch(e){case"r":return t&&!n?r.RED_INTEGER:r.RED;case"rg":return t&&!n?r.RG_INTEGER:r.RG;case"rgb":return t&&!n?r.RGB_INTEGER:r.RGB;case"rgba":return t&&!n?r.RGBA_INTEGER:r.RGBA;default:return r.RGBA}}function gn(e){let t=Ds(e);for(let n of dn(e))t.add(n);return t}function Ds(e){e.getExtension("EXT_color_buffer_float"),e.getExtension("WEBGL_color_buffer_float"),e.getExtension("EXT_float_blend");let t=new Set;for(let n of Object.keys(Cn))Ps(e,n)&&t.add(n);return t}function Ps(e,t){let n=Cn[t];if(!n)return!1;let[i,s]=n||[],o=N(e)?s:i;if(typeof o=="boolean")return o;switch(t){case"texture-renderable-rgba32float-webgl":return N(e)?Boolean(e.getExtension(o)):In(e);case"glsl-derivatives":return tr(e,o);case"glsl-frag-data":return tr(e,o,{behavior:"require"});case"glsl-frag-depth":return tr(e,o);default:return Boolean(e.getExtension(o))}}var er={};function tr(e,t){let n=arguments.length>2&&arguments[2]!==void 0?arguments[2]:{};if(!Tn(n))return!0;if(t in er)return er[t];let i=n.behavior||"enable",s=`#extension GL_${t} : ${i}
136
+ void main(void) {}`,o=e.createShader(e.VERTEX_SHADER);if(!o)throw new Error("shader");e.shaderSource(o,s),e.compileShader(o);let _=e.getShaderParameter(o,e.COMPILE_STATUS);return e.deleteShader(o),er[t]=_,_}var Cn={webgl:[!0,!0],webgl2:[!1,!0],"timer-query-webgl":["EXT_disjoint_timer_query","EXT_disjoint_timer_query_webgl2"],"vertex-array-object-webgl1":["OES_vertex_array_object",!0],"instanced-rendering-webgl1":["ANGLE_instanced_arrays",!0],"multiple-render-targets-webgl1":["WEBGL_draw_buffers",!0],"index-uint32-webgl1":["OES_element_index_uint",!0],"blend-minmax-webgl1":["EXT_blend_minmax",!0],"texture-blend-float-webgl1":["EXT_float_blend","EXT_float_blend"],"texture-formats-srgb-webgl1":["EXT_sRGB",!0],"texture-formats-depth-webgl1":["WEBGL_depth_texture",!0],"texture-formats-float32-webgl1":["OES_texture_float",!0],"texture-formats-float16-webgl1":["OES_texture_half_float",!0],"texture-filter-linear-float32-webgl":["OES_texture_float_linear","OES_texture_float_linear"],"texture-filter-linear-float16-webgl":["OES_texture_half_float_linear","OES_texture_half_float_linear"],"texture-filter-anisotropic-webgl":["EXT_texture_filter_anisotropic","EXT_texture_filter_anisotropic"],"texture-renderable-rgba32float-webgl":["WEBGL_color_buffer_float","EXT_color_buffer_float"],"texture-renderable-float32-webgl":[!1,"EXT_color_buffer_float"],"texture-renderable-float16-webgl":["EXT_color_buffer_half_float","EXT_color_buffer_half_float"],"glsl-frag-data":["WEBGL_draw_buffers",!0],"glsl-frag-depth":["EXT_frag_depth",!0],"glsl-derivatives":["OES_standard_derivatives",!0],"glsl-texture-lod":["EXT_shader_texture_lod",!0]};function On(e){let t=Yt(e);return{maxTextureDimension1D:0,maxTextureDimension2D:e.getParameter(r.MAX_TEXTURE_SIZE),maxTextureDimension3D:t?t.getParameter(r.MAX_3D_TEXTURE_SIZE):0,maxTextureArrayLayers:t?t.getParameter(r.MAX_ARRAY_TEXTURE_LAYERS):0,maxBindGroups:1,maxDynamicUniformBuffersPerPipelineLayout:0,maxDynamicStorageBuffersPerPipelineLayout:0,maxSampledTexturesPerShaderStage:e.getParameter(r.MAX_VERTEX_TEXTURE_IMAGE_UNITS),maxSamplersPerShaderStage:e.getParameter(r.MAX_COMBINED_TEXTURE_IMAGE_UNITS),maxStorageBuffersPerShaderStage:0,maxStorageTexturesPerShaderStage:0,maxUniformBuffersPerShaderStage:t?t.getParameter(r.MAX_UNIFORM_BUFFER_BINDINGS):0,maxUniformBufferBindingSize:t?t.getParameter(r.MAX_UNIFORM_BLOCK_SIZE):0,maxStorageBufferBindingSize:0,minUniformBufferOffsetAlignment:t?t.getParameter(r.UNIFORM_BUFFER_OFFSET_ALIGNMENT):0,minStorageBufferOffsetAlignment:0,maxVertexBuffers:0,maxVertexAttributes:e.getParameter(r.MAX_VERTEX_ATTRIBS),maxVertexBufferArrayStride:2048,maxInterStageShaderComponents:t?t.getParameter(r.MAX_VARYING_COMPONENTS):0,maxComputeWorkgroupStorageSize:0,maxComputeInvocationsPerWorkgroup:0,maxComputeWorkgroupSizeX:0,maxComputeWorkgroupSizeY:0,maxComputeWorkgroupSizeZ:0,maxComputeWorkgroupsPerDimension:0}}function Fn(e){let t=Yt(e);function n(s){return e.getParameter(s)}function i(s,o){return t?t.getParameter(s):o||0}return{[r.ALIASED_LINE_WIDTH_RANGE]:n(r.ALIASED_LINE_WIDTH_RANGE),[r.ALIASED_POINT_SIZE_RANGE]:n(r.ALIASED_POINT_SIZE_RANGE),[r.MAX_TEXTURE_SIZE]:n(r.MAX_TEXTURE_SIZE),[r.MAX_CUBE_MAP_TEXTURE_SIZE]:n(r.MAX_CUBE_MAP_TEXTURE_SIZE),[r.MAX_TEXTURE_IMAGE_UNITS]:n(r.MAX_TEXTURE_IMAGE_UNITS),[r.MAX_COMBINED_TEXTURE_IMAGE_UNITS]:n(r.MAX_COMBINED_TEXTURE_IMAGE_UNITS),[r.MAX_VERTEX_TEXTURE_IMAGE_UNITS]:n(r.MAX_VERTEX_TEXTURE_IMAGE_UNITS),[r.MAX_RENDERBUFFER_SIZE]:n(r.MAX_RENDERBUFFER_SIZE),[r.MAX_VARYING_VECTORS]:n(r.MAX_VARYING_VECTORS),[r.MAX_VERTEX_ATTRIBS]:n(r.MAX_VERTEX_ATTRIBS),[r.MAX_VERTEX_UNIFORM_VECTORS]:n(r.MAX_VERTEX_UNIFORM_VECTORS),[r.MAX_FRAGMENT_UNIFORM_VECTORS]:n(r.MAX_FRAGMENT_UNIFORM_VECTORS),[r.MAX_VIEWPORT_DIMS]:n(r.MAX_VIEWPORT_DIMS),[r.MAX_TEXTURE_MAX_ANISOTROPY_EXT]:n(r.MAX_TEXTURE_MAX_ANISOTROPY_EXT),[r.MAX_3D_TEXTURE_SIZE]:i(r.MAX_3D_TEXTURE_SIZE),[r.MAX_ARRAY_TEXTURE_LAYERS]:i(r.MAX_ARRAY_TEXTURE_LAYERS),[r.MAX_CLIENT_WAIT_TIMEOUT_WEBGL]:i(r.MAX_CLIENT_WAIT_TIMEOUT_WEBGL),[r.MAX_COLOR_ATTACHMENTS]:i(r.MAX_COLOR_ATTACHMENTS),[r.MAX_COMBINED_FRAGMENT_UNIFORM_COMPONENTS]:i(r.MAX_COMBINED_FRAGMENT_UNIFORM_COMPONENTS),[r.MAX_COMBINED_UNIFORM_BLOCKS]:i(r.MAX_COMBINED_UNIFORM_BLOCKS),[r.MAX_COMBINED_VERTEX_UNIFORM_COMPONENTS]:i(r.MAX_COMBINED_VERTEX_UNIFORM_COMPONENTS),[r.MAX_DRAW_BUFFERS]:i(r.MAX_DRAW_BUFFERS),[r.MAX_ELEMENT_INDEX]:i(r.MAX_ELEMENT_INDEX),[r.MAX_ELEMENTS_INDICES]:i(r.MAX_ELEMENTS_INDICES),[r.MAX_ELEMENTS_VERTICES]:i(r.MAX_ELEMENTS_VERTICES),[r.MAX_FRAGMENT_INPUT_COMPONENTS]:i(r.MAX_FRAGMENT_INPUT_COMPONENTS),[r.MAX_FRAGMENT_UNIFORM_BLOCKS]:i(r.MAX_FRAGMENT_UNIFORM_BLOCKS),[r.MAX_FRAGMENT_UNIFORM_COMPONENTS]:i(r.MAX_FRAGMENT_UNIFORM_COMPONENTS),[r.MAX_SAMPLES]:i(r.MAX_SAMPLES),[r.MAX_SERVER_WAIT_TIMEOUT]:i(r.MAX_SERVER_WAIT_TIMEOUT),[r.MAX_TEXTURE_LOD_BIAS]:i(r.MAX_TEXTURE_LOD_BIAS),[r.MAX_TRANSFORM_FEEDBACK_INTERLEAVED_COMPONENTS]:i(r.MAX_TRANSFORM_FEEDBACK_INTERLEAVED_COMPONENTS),[r.MAX_TRANSFORM_FEEDBACK_SEPARATE_ATTRIBS]:i(r.MAX_TRANSFORM_FEEDBACK_SEPARATE_ATTRIBS),[r.MAX_TRANSFORM_FEEDBACK_SEPARATE_COMPONENTS]:i(r.MAX_TRANSFORM_FEEDBACK_SEPARATE_COMPONENTS),[r.MAX_UNIFORM_BLOCK_SIZE]:i(r.MAX_UNIFORM_BLOCK_SIZE),[r.MAX_UNIFORM_BUFFER_BINDINGS]:i(r.MAX_UNIFORM_BUFFER_BINDINGS),[r.MAX_VARYING_COMPONENTS]:i(r.MAX_VARYING_COMPONENTS),[r.MAX_VERTEX_OUTPUT_COMPONENTS]:i(r.MAX_VERTEX_OUTPUT_COMPONENTS),[r.MAX_VERTEX_UNIFORM_BLOCKS]:i(r.MAX_VERTEX_UNIFORM_BLOCKS),[r.MAX_VERTEX_UNIFORM_COMPONENTS]:i(r.MAX_VERTEX_UNIFORM_COMPONENTS),[r.MIN_PROGRAM_TEXEL_OFFSET]:i(r.MIN_PROGRAM_TEXEL_OFFSET),[r.MAX_PROGRAM_TEXEL_OFFSET]:i(r.MAX_PROGRAM_TEXEL_OFFSET),[r.UNIFORM_BUFFER_OFFSET_ALIGNMENT]:i(r.UNIFORM_BUFFER_OFFSET_ALIGNMENT)}}var yn=m(I(),1);var Tt=m(I(),1);var Dn=m(I(),1),U=m(I(),1);function J(e,t,n){let s=y.attach(e).gl;if(Us(t))return n(e);let{nocatch:o=!0}=t;Me(s),Ae(s,t);let _;if(o)_=n(s),Ie(s);else try{_=n(s)}finally{Ie(s)}return _}function Us(e){for(let t in e)return!1;return!0}var Rt=m(I(),1);function Mn(e,t,n,i){if((0,Rt.isObjectEmpty)(t))return i(e);Me(e.gl);try{return xs(e,t),Ae(e,n),i(e)}finally{Ie(e.gl)}}function xs(e,t){let n=y.attach(e),{gl:i}=n;if(t.cullMode)switch(t.cullMode){case"none":i.disable(r.CULL_FACE);break;case"front":i.enable(r.CULL_FACE),i.cullFace(r.FRONT);break;case"back":i.enable(r.CULL_FACE),i.cullFace(r.BACK);break}if(t.frontFace&&i.frontFace(nr("frontFace",t.frontFace,{ccw:r.CCW,cw:r.CW})),t.depthBias!==void 0&&i.polygonOffset(t.depthBias,t.depthBiasSlopeScale||0),t.depthWriteEnabled!==void 0&&i.depthMask(vs("depthWriteEnabled",t.depthWriteEnabled)),t.depthCompare&&(t.depthCompare!=="always"?i.enable(r.DEPTH_TEST):i.disable(r.DEPTH_TEST),i.depthFunc(Et("depthCompare",t.depthCompare))),t.stencilWriteMask){let s=t.stencilWriteMask;i.stencilMaskSeparate(r.FRONT,s),i.stencilMaskSeparate(r.BACK,s)}if(t.stencilReadMask&&Rt.log.warn("stencilReadMask not supported under WebGL"),t.stencilCompare){let s=t.stencilReadMask||4294967295,o=Et("depthCompare",t.stencilCompare);t.stencilCompare!=="always"?i.enable(r.STENCIL_TEST):i.disable(r.STENCIL_TEST),i.stencilFuncSeparate(r.FRONT,o,0,s),i.stencilFuncSeparate(r.BACK,o,0,s)}if(t.stencilPassOperation&&t.stencilFailOperation&&t.stencilDepthFailOperation){let s=rr("stencilPassOperation",t.stencilPassOperation),o=rr("stencilFailOperation",t.stencilFailOperation),_=rr("stencilDepthFailOperation",t.stencilDepthFailOperation);i.stencilOpSeparate(r.FRONT,o,_,s),i.stencilOpSeparate(r.BACK,o,_,s)}}function Et(e,t){return nr(e,t,{never:r.NEVER,less:r.LESS,equal:r.EQUAL,"less-equal":r.LEQUAL,greater:r.GREATER,"not-equal":r.NOTEQUAL,"greater-equal":r.GEQUAL,always:r.ALWAYS})}function rr(e,t){return nr(e,t,{keep:r.KEEP,zero:r.ZERO,replace:r.REPLACE,invert:r.INVERT,"increment-clamp":r.INCR,"decrement-clamp":r.DECR,"increment-wrap":r.INCR_WRAP,"decrement-wrap":r.DECR_WRAP})}function ys(e,t){return`Illegal parameter ${t} for ${e}`}function nr(e,t,n){if(!(t in n))throw new Error(ys(e,t));return n[t]}function vs(e,t){return t}function ut(e){let t={};return e.addressModeU&&(t[r.TEXTURE_WRAP_S]=ir(e.addressModeU)),e.addressModeV&&(t[r.TEXTURE_WRAP_T]=ir(e.addressModeV)),e.addressModeW&&(t[r.TEXTURE_WRAP_R]=ir(e.addressModeW)),e.magFilter&&(t[r.TEXTURE_MAG_FILTER]=pn(e.magFilter)),(e.minFilter||e.mipmapFilter)&&(t[r.TEXTURE_MIN_FILTER]=ws(e.minFilter||"linear",e.mipmapFilter)),e.lodMinClamp!==void 0&&(t[r.TEXTURE_MIN_LOD]=e.lodMinClamp),e.lodMaxClamp!==void 0&&(t[r.TEXTURE_MAX_LOD]=e.lodMaxClamp),e.type==="comparison-sampler"&&(t[r.TEXTURE_COMPARE_MODE]=r.COMPARE_REF_TO_TEXTURE),e.compare&&(t[r.TEXTURE_COMPARE_FUNC]=Et("compare",e.compare)),e.maxAnisotropy&&(t[r.TEXTURE_MAX_ANISOTROPY_EXT]=e.maxAnisotropy),t}function ir(e){switch(e){case"clamp-to-edge":return r.CLAMP_TO_EDGE;case"repeat":return r.REPEAT;case"mirror-repeat":return r.MIRRORED_REPEAT}}function pn(e){switch(e){case"nearest":return r.NEAREST;case"linear":return r.LINEAR}}function ws(e,t){if(!t)return pn(e);switch(e){case"nearest":return t==="nearest"?r.NEAREST_MIPMAP_NEAREST:r.NEAREST_MIPMAP_LINEAR;case"linear":return t==="nearest"?r.LINEAR_MIPMAP_NEAREST:r.LINEAR_MIPMAP_LINEAR}}function bn(e){let t={...e};return e[r.TEXTURE_MIN_FILTER]!==r.NEAREST&&(t[r.TEXTURE_MIN_FILTER]=r.LINEAR),t[r.TEXTURE_WRAP_S]=r.CLAMP_TO_EDGE,t[r.TEXTURE_WRAP_T]=r.CLAMP_TO_EDGE,t}var ee=m(I(),1);var Xs=10,j=class extends ee.Buffer{constructor(t){let n=arguments.length>1&&arguments[1]!==void 0?arguments[1]:{};super(t,n),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=r.UNSIGNED_SHORT,this.byteLength=void 0,this.bytesUsed=void 0,this.debugData=null,this.device=t,this.gl=this.device.gl,this.gl2=this.device.gl2;let i=typeof n=="object"?n.handle:void 0;this.handle=i||this.gl.createBuffer(),t.setSpectorMetadata(this.handle,{...this.props,data:typeof this.props.data}),this.glTarget=Ls(this.props.usage),this.glUsage=Hs(this.props.usage),this.glIndexType=this.props.indexType==="uint32"?r.UNSIGNED_INT:r.UNSIGNED_SHORT,this.debugData=null,n.data?this._initWithData(n.data,n.byteOffset,n.byteLength):this._initWithByteLength(n.byteLength||0)}_initWithData(t){let n=arguments.length>1&&arguments[1]!==void 0?arguments[1]:0,i=arguments.length>2&&arguments[2]!==void 0?arguments[2]:t.byteLength+n;(0,ee.assert)(ArrayBuffer.isView(t));let s=this._getWriteTarget();return this.gl.bindBuffer(s,this.handle),this.gl.bufferData(s,i,this.glUsage),this.gl.bufferSubData(s,n,t),this.gl.bindBuffer(s,null),this.debugData=t.slice(0,Xs),this.bytesUsed=i,this.byteLength=i,this.trackAllocatedMemory(i),this}_initWithByteLength(t){(0,ee.assert)(t>=0);let n=t;t===0&&(n=new Float32Array(0));let i=this._getWriteTarget();return this.gl.bindBuffer(i,this.handle),this.gl.bufferData(i,n,this.glUsage),this.gl.bindBuffer(i,null),this.debugData=null,this.bytesUsed=t,this.byteLength=t,this}destroy(){!this.destroyed&&this.handle&&(this.removeStats(),this.trackDeallocatedMemory(),this.gl.deleteBuffer(this.handle),this.destroyed=!0,this.handle=null)}write(t){let n=arguments.length>1&&arguments[1]!==void 0?arguments[1]:0,i=0,s=void 0,o=this.device.isWebGL2?r.COPY_WRITE_BUFFER:this.glTarget;this.gl.bindBuffer(o,this.handle),i!==0||s!==void 0?(this.device.assertWebGL2(),this.gl2.bufferSubData(o,n,t,i,s)):this.gl.bufferSubData(o,n,t),this.gl.bindBuffer(o,null)}async readAsync(){let t=arguments.length>0&&arguments[0]!==void 0?arguments[0]:0,n=arguments.length>1?arguments[1]:void 0;this.device.assertWebGL2();let i=new Uint8Array(n),s=0;return this.gl.bindBuffer(r.COPY_READ_BUFFER,this.handle),this.gl2.getBufferSubData(r.COPY_READ_BUFFER,t,i,s,n),this.gl.bindBuffer(r.COPY_READ_BUFFER,null),i}_invalidateDebugData(){this.debugData=null}_getWriteTarget(){return this.glTarget}_getReadTarget(){return this.glTarget}};function Ls(e){return e&ee.Buffer.INDEX?r.ELEMENT_ARRAY_BUFFER:e&ee.Buffer.VERTEX?r.ARRAY_BUFFER:e&ee.Buffer.UNIFORM?r.UNIFORM_BUFFER:r.ARRAY_BUFFER}function Hs(e){return e&ee.Buffer.INDEX?r.STATIC_DRAW:e&ee.Buffer.VERTEX?r.STATIC_DRAW:e&ee.Buffer.UNIFORM?r.DYNAMIC_DRAW:r.STATIC_DRAW}var Bn=m(I(),1);var Ce=class extends Bn.Sampler{constructor(t,n){super(t,n),this.device=void 0,this.handle=void 0,this.parameters=void 0,this.device=t,this.parameters=ut(n),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[n,i]of Object.entries(t)){let s=Number(n);switch(s){case r.TEXTURE_MIN_LOD:case r.TEXTURE_MAX_LOD:this.device.gl2.samplerParameterf(this.handle,s,i);break;default:this.device.gl2.samplerParameteri(this.handle,s,i);break}}}};var Vs={parameters:{},pixelStore:{},pixels:null,border:0,dataFormat:void 0,textureUnit:void 0,target:void 0},w=class extends U.Texture{constructor(t,n){var i;super(t,{...Vs,format:"rgba8unorm",...n}),this.MAX_ATTRIBUTES=void 0,this.device=void 0,this.gl=void 0,this.gl2=void 0,this.handle=void 0,this.sampler=void 0,this.glFormat=void 0,this.type=void 0,this.dataFormat=void 0,this.mipmaps=void 0,this.target=void 0,this.textureUnit=void 0,this.loaded=!1,this._video=void 0,this.device=(0,U.cast)(t),this.gl=this.device.gl,this.gl2=this.device.gl2,this.handle=this.props.handle||this.gl.createTexture(),this.device.setSpectorMetadata(this.handle,{...this.props,data:typeof this.props.data}),this.glFormat=r.RGBA,this.target=Ws(this.props),this.loaded=!1,typeof((i=this.props)===null||i===void 0?void 0:i.data)=="string"&&Object.assign(this.props,{data:(0,U.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 n=t.data;if(n instanceof Promise)return n.then(d=>this.initialize(Object.assign({},t,{pixels:d,data:d}))),this;let i=typeof HTMLVideoElement<"u"&&n instanceof HTMLVideoElement;if(i&&n.readyState<HTMLVideoElement.HAVE_METADATA)return this._video=null,n.addEventListener("loadeddata",()=>this.initialize(t)),this;let{parameters:s={}}=t,{pixels:o=null,pixelStore:_={},textureUnit:a=void 0}=t;n||(n=o);let{width:E,height:R,dataFormat:u,type:l,compressed:A=!1,mipmaps:T=!0}=t,{depth:c=0}=t,g=$e(t.format,this.device.isWebGL2);return{width:E,height:R,compressed:A,dataFormat:u,type:l}=this._deduceParameters({format:t.format,type:l,dataFormat:u,compressed:A,data:n,width:E,height:R}),this.width=E,this.height=R,this.glFormat=g,this.type=l,this.dataFormat=u,this.textureUnit=a,Number.isFinite(this.textureUnit)&&(this.gl.activeTexture(r.TEXTURE0+this.textureUnit),this.gl.bindTexture(this.target,this.handle)),T&&this.device.isWebGL1&&lt(this.width,this.height)&&(U.log.warn(`texture: ${this} is Non-Power-Of-Two, disabling mipmaps`)(),T=!1),this.mipmaps=T,this.setImageData({data:n,width:E,height:R,depth:c,format:g,type:l,dataFormat:u,parameters:_,compressed:A}),this.setSampler(t.sampler),this._setSamplerParameters(s),T&&this.generateMipmap(),i&&(this._video={video:n,parameters:s,lastTime:n.readyState>=HTMLVideoElement.HAVE_CURRENT_DATA?n.currentTime:-1}),this}initializeCube(t){let{mipmaps:n=!0,parameters:i={}}=t;return this.setCubeMapImageData(t).then(()=>{this.loaded=!0,n&&this.generateMipmap(t),this.setSampler(t.sampler),this._setSamplerParameters(i)}),this}setSampler(){let t=arguments.length>0&&arguments[0]!==void 0?arguments[0]:{},n;t instanceof Ce?(this.sampler=t,n=t.props):(this.sampler=new Ce(this.device,t),n=t);let i=ut(n);return this._setSamplerParameters(i),this}resize(t){let{height:n,width:i,mipmaps:s=!1}=t;return i!==this.width||n!==this.height?this.initialize({width:i,height:n,format:this.format,type:this.type,dataFormat:this.dataFormat,mipmaps:s}):this}update(){if(this._video){let{video:t,parameters:n,lastTime:i}=this._video;if(i===t.currentTime||t.readyState<HTMLVideoElement.HAVE_CURRENT_DATA)return;this.setSubImageData({data:t,parameters:n}),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&&lt(this.width,this.height)?(U.log.warn(`texture: ${this} is Non-Power-Of-Two, disabling mipmaping`)(),this):(this.mipmaps=!0,this.gl.bindTexture(this.target,this.handle),J(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:n=this.target,pixels:i=null,level:s=0,glFormat:o=this.glFormat,offset:_=0,parameters:a={}}=t,{data:E=null,type:R=this.type,width:u=this.width,height:l=this.height,dataFormat:A=this.dataFormat,compressed:T=!1}=t;E||(E=i),{type:R,dataFormat:A,compressed:T,width:u,height:l}=this._deduceParameters({format:this.props.format,type:R,dataFormat:A,compressed:T,data:E,width:u,height:l});let{gl:c}=this;c.bindTexture(this.target,this.handle);let g=null;({data:E,dataType:g}=this._getDataType({data:E,compressed:T}));let d;if(J(this.gl,a,()=>{switch(g){case"null":c.texImage2D(n,s,o,u,l,0,A,R,E);break;case"typed-array":c.texImage2D(n,s,o,u,l,0,A,R,E,_);break;case"buffer":d=this.device.assertWebGL2(),d.bindBuffer(r.PIXEL_UNPACK_BUFFER,E.handle||E),d.texImage2D(n,s,o,u,l,0,A,R,_),d.bindBuffer(r.PIXEL_UNPACK_BUFFER,null);break;case"browser-object":this.device.isWebGL2?c.texImage2D(n,s,o,u,l,0,A,R,E):c.texImage2D(n,s,o,A,R,E);break;case"compressed":for(let[v,x]of E.entries())c.compressedTexImage2D(n,v,x.format,x.width,x.height,0,x.data);break;default:(0,U.assert)(!1,"Unknown image data type")}}),E&&E.byteLength)this.trackAllocatedMemory(E.byteLength,"Texture");else{let v=ze(this.props.format,this.device.isWebGL2);this.trackAllocatedMemory(this.width*this.height*v,"Texture")}return this.loaded=!0,this}setSubImageData(t){let{target:n=this.target,pixels:i=null,data:s=null,x:o=0,y:_=0,width:a=this.width,height:E=this.height,level:R=0,glFormat:u=this.glFormat,type:l=this.type,dataFormat:A=this.dataFormat,compressed:T=!1,offset:c=0,parameters:g={}}=t;if({type:l,dataFormat:A,compressed:T,width:a,height:E}=this._deduceParameters({format:this.props.format,type:l,dataFormat:A,compressed:T,data:s,width:a,height:E}),(0,U.assert)(this.depth===1,"texSubImage not supported for 3D textures"),s||(s=i),s&&s.data){let d=s;s=d.data,a=d.shape[0],E=d.shape[1]}s instanceof j&&(s=s.handle),this.gl.bindTexture(this.target,this.handle),J(this.gl,g,()=>{if(T)this.gl.compressedTexSubImage2D(n,R,o,_,a,E,u,s);else if(s===null)this.gl.texSubImage2D(n,R,o,_,a,E,A,l,null);else if(ArrayBuffer.isView(s))this.gl.texSubImage2D(n,R,o,_,a,E,A,l,s,c);else if(typeof WebGLBuffer<"u"&&s instanceof WebGLBuffer){let d=this.device.assertWebGL2();d.bindBuffer(r.PIXEL_UNPACK_BUFFER,s),d.texSubImage2D(n,R,o,_,a,E,A,l,c),d.bindBuffer(r.PIXEL_UNPACK_BUFFER,null)}else this.device.isWebGL2?this.device.assertWebGL2().texSubImage2D(n,R,o,_,a,E,A,l,s):this.gl.texSubImage2D(n,R,o,_,A,l,s)}),this.gl.bindTexture(this.target,null)}copyFramebuffer(){let t=arguments.length>0&&arguments[0]!==void 0?arguments[0]:{};return U.log.error("Texture.copyFramebuffer({...}) is no logner supported, use copyToTexture(source, target, opts})")(),null}getActiveUnit(){return this.gl.getParameter(r.ACTIVE_TEXTURE)-r.TEXTURE0}bind(){let t=arguments.length>0&&arguments[0]!==void 0?arguments[0]:this.textureUnit,{gl:n}=this;return t!==void 0&&(this.textureUnit=t,n.activeTexture(n.TEXTURE0+t)),n.bindTexture(this.target,this.handle),t}unbind(){let t=arguments.length>0&&arguments[0]!==void 0?arguments[0]:this.textureUnit,{gl:n}=this;return t!==void 0&&(this.textureUnit=t,n.activeTexture(n.TEXTURE0+t)),n.bindTexture(this.target,null),t}_getDataType(t){let{data:n,compressed:i=!1}=t;return i?{data:n,dataType:"compressed"}:n===null?{data:n,dataType:"null"}:ArrayBuffer.isView(n)?{data:n,dataType:"typed-array"}:n instanceof j?{data:n.handle,dataType:"buffer"}:typeof WebGLBuffer<"u"&&n instanceof WebGLBuffer?{data:n,dataType:"buffer"}:{data:n,dataType:"browser-object"}}_deduceParameters(t){let{format:n,data:i}=t,{width:s,height:o,dataFormat:_,type:a,compressed:E}=t,R=at(n,this.device.isWebGL2);return _=_||R.dataFormat,a=a||R.type,E=E||R.compressed,{width:s,height:o}=this._deduceImageSize(i,s,o),{dataFormat:_,type:a,compressed:E,width:s,height:o,format:n,data:i}}_deduceImageSize(t,n,i){let s;return typeof ImageData<"u"&&t instanceof ImageData?s={width:t.width,height:t.height}:typeof HTMLImageElement<"u"&&t instanceof HTMLImageElement?s={width:t.naturalWidth,height:t.naturalHeight}:typeof HTMLCanvasElement<"u"&&t instanceof HTMLCanvasElement?s={width:t.width,height:t.height}:typeof ImageBitmap<"u"&&t instanceof ImageBitmap?s={width:t.width,height:t.height}:typeof HTMLVideoElement<"u"&&t instanceof HTMLVideoElement?s={width:t.videoWidth,height:t.videoHeight}:t?s={width:n,height:i}:s={width:n>=0?n:1,height:i>=0?i:1},(0,U.assert)(s,"Could not deduced texture size"),(0,U.assert)(n===void 0||s.width===n,"Deduced texture width does not match supplied width"),(0,U.assert)(i===void 0||s.height===i,"Deduced texture height does not match supplied height"),s}async setCubeMapImageData(t){let{gl:n}=this,{width:i,height:s,pixels:o,data:_,format:a=r.RGBA,type:E=r.UNSIGNED_BYTE}=t,R=o||_,u=await Promise.all(w.FACES.map(l=>{let A=R[l];return Promise.all(Array.isArray(A)?A:[A])}));this.bind(),w.FACES.forEach((l,A)=>{u[A].length>1&&this.props.mipmaps!==!1&&U.log.warn(`${this.id} has mipmap and multiple LODs.`)(),u[A].forEach((T,c)=>{i&&s?n.texImage2D(l,c,a,i,s,0,a,E,T):n.texImage2D(l,c,a,a,E,T)})}),this.unbind()}setImageDataForFace(t){let{face:n,width:i,height:s,pixels:o,data:_,format:a=r.RGBA,type:E=r.UNSIGNED_BYTE}=t,{gl:R}=this,u=o||_;return this.bind(),u instanceof Promise?u.then(l=>this.setImageDataForFace(Object.assign({},t,{face:n,data:l,pixels:l}))):this.width||this.height?R.texImage2D(n,0,a,i,s,0,a,E,u):R.texImage2D(n,0,a,a,E,u),this}setImageData3D(t){let{level:n=0,dataFormat:i,format:s,type:o,width:_,height:a,depth:E=1,offset:R=0,data:u,parameters:l={}}=t;this.trackDeallocatedMemory("Texture"),this.gl.bindTexture(this.target,this.handle);let A=at(s,this.device.isWebGL2);if(J(this.gl,l,()=>{ArrayBuffer.isView(u)&&this.gl.texImage3D(this.target,n,A.format,_,a,E,0,A.dataFormat,A.type,u),u instanceof j&&(this.gl.bindBuffer(r.PIXEL_UNPACK_BUFFER,u.handle),this.gl.texImage3D(this.target,n,i,_,a,E,0,s,o,R))}),u&&u.byteLength)this.trackAllocatedMemory(u.byteLength,"Texture");else{let T=ze(this.props.format,this.device.isWebGL2);this.trackAllocatedMemory(this.width*this.height*this.depth*T,"Texture")}return this.loaded=!0,this}_setSamplerParameters(t){if(this.device.isWebGL1&&lt(this.width,this.height)&&(t=bn(t)),!(0,Dn.isObjectEmpty)(t)){Ks(t),this.gl.bindTexture(this.target,this.handle);for(let[n,i]of Object.entries(t)){let s=Number(n),o=i;switch(s){case r.TEXTURE_MIN_LOD:case r.TEXTURE_MAX_LOD:this.gl.texParameterf(this.target,s,o);break;default:this.gl.texParameteri(this.target,s,o);break}}this.gl.bindTexture(this.target,null)}}_getWebGL1NPOTParameterOverride(t,n){if(this.device.isWebGL1&&lt(this.width,this.height))switch(t){case r.TEXTURE_MIN_FILTER:if(n!==r.LINEAR&&n!==r.NEAREST)return r.LINEAR;break;case r.TEXTURE_WRAP_S:case r.TEXTURE_WRAP_T:return r.CLAMP_TO_EDGE;default:break}return n}};w.FACES=[r.TEXTURE_CUBE_MAP_POSITIVE_X,r.TEXTURE_CUBE_MAP_NEGATIVE_X,r.TEXTURE_CUBE_MAP_POSITIVE_Y,r.TEXTURE_CUBE_MAP_NEGATIVE_Y,r.TEXTURE_CUBE_MAP_POSITIVE_Z,r.TEXTURE_CUBE_MAP_NEGATIVE_Z];function Ws(e){switch(e.dimension){case"2d":return r.TEXTURE_2D;case"cube":return r.TEXTURE_CUBE_MAP;case"2d-array":return r.TEXTURE_2D_ARRAY;case"3d":return r.TEXTURE_3D;case"1d":case"cube-array":default:throw new Error(e.dimension)}}function lt(e,t){return!e||!t?!1:!(0,U.isPowerOfTwo)(e)||!(0,U.isPowerOfTwo)(t)}function Ks(e){U.log.log(1,"texture sampler parameters",e)()}var xn=m(I(),1);var Ee=m(I(),1);var Pn=m(I(),1);function At(e,t){if(typeof t!="string")return t;let n=Number(t);if(!isNaN(n))return n;t=t.replace(/^.*\./,"");let i=e[t];return(0,Pn.assert)(i!==void 0,`Accessing undefined constant GL.${t}`),i}var be="Resource subclass must define virtual methods",ft=class extends Ee.Resource{constructor(t,n,i){super(t,n,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=y.attach(t);let s=this.device.gl;Zr(s);let{id:o}=n||{};this.gl=s,this.gl2=s,this.id=o||(0,Ee.uid)(this.constructor.name),this._handle=n?.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]:{},n=this._handle&&this._deleteHandle(this._handle);return this._handle&&this.removeStats(),this._handle=null,n&&t&&n.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 n;return this._bound?n=t():(this._bindHandle(this.handle),this._bound=!0,n=t(),this._bound=!1,this._bindHandle(null)),n}unbind(){this.bind(null)}getParameter(t){let n=arguments.length>1&&arguments[1]!==void 0?arguments[1]:{};t=At(this.gl,t),(0,Ee.assert)(t);let s=(this.constructor.PARAMETERS||{})[t];if(s){let o=N(this.gl);if(!((!("webgl2"in s)||o)&&(!("extension"in s)||this.gl.getExtension(s.extension)))){let a=s.webgl1,E="webgl2"in s?s.webgl2:s.webgl1;return o?E:a}}return this._getParameter(t,n)}getParameters(){let t=arguments.length>0&&arguments[0]!==void 0?arguments[0]:{},{parameters:n,keys:i}=t,s=this.constructor.PARAMETERS||{},o=N(this.gl),_={},a=n||Object.keys(s);for(let E of a){let R=s[E];if(R&&(!("webgl2"in R)||o)&&(!("extension"in R)||this.gl.getExtension(R.extension))){let l=i?this.device.getGLKey(E):E;_[l]=this.getParameter(E,t),i&&R.type==="GLenum"&&(_[l]=this.device.getGLKey(_[l]))}}return _}setParameter(t,n){t=At(this.gl,t),(0,Ee.assert)(t);let s=(this.constructor.PARAMETERS||{})[t];if(s){let o=N(this.gl);if(!((!("webgl2"in s)||o)&&(!("extension"in s)||this.gl.getExtension(s.extension))))throw new Error("Parameter not available on this platform");s.type==="GLenum"&&(n=At(n))}return this._setParameter(t,n),this}setParameters(t){for(let n in t)this.setParameter(n,t[n]);return this}stubRemovedMethods(t,n,i){return(0,Ee.stubRemovedMethods)(this,t,n,i)}initialize(t){}_createHandle(){throw new Error(be)}_deleteHandle(){throw new Error(be)}_bindHandle(t){throw new Error(be)}_getOptsFromHandle(){throw new Error(be)}_getParameter(t,n){throw new Error(be)}_setParameter(t,n){throw new Error(be)}};var Un;Un=Symbol.toStringTag;var fe=class extends ft{get[Un](){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,n){return Sn(t.gl,n)}constructor(t,n){if(typeof n.format=="number")throw new Error("Renderbuffer");super(t,n,fe.defaultProps),this.glFormat=void 0,this.glFormat=$e(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:n,width:i,height:s,samples:o}=t;(0,xn.assert)(n,"Needs format"),this.trackDeallocatedMemory(),this.gl.bindRenderbuffer(r.RENDERBUFFER,this.handle),o!==0&&this.device.isWebGL2?this.gl2.renderbufferStorageMultisample(r.RENDERBUFFER,o,this.glFormat,i,s):this.gl.renderbufferStorage(r.RENDERBUFFER,this.glFormat,i,s),this.gl.bindRenderbuffer(r.RENDERBUFFER,null),this.trackAllocatedMemory(i*s*(o||1)*ze(this.glFormat,this.device.isWebGL2))}_createHandle(){return this.gl.createRenderbuffer()}_deleteHandle(){this.gl.deleteRenderbuffer(this.handle),this.trackDeallocatedMemory()}_bindHandle(t){this.gl.bindRenderbuffer(r.RENDERBUFFER,t)}};fe.defaultProps={id:void 0,handle:void 0,userData:void 0,format:void 0,width:1,height:1,samples:0};var se=class extends Tt.Framebuffer{get texture(){return this.colorAttachments[0]}constructor(t,n){super(t,n),this.device=void 0,this.gl=void 0,this.handle=void 0;let i=n.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(r.FRAMEBUFFER,this.handle);for(let s=0;s<this.colorAttachments.length;++s){let o=this.colorAttachments[s],_=r.COLOR_ATTACHMENT0+s;o&&this._attachOne(_,o)}this.depthStencilAttachment&&this._attachOne(mn(this.depthStencilAttachment.format),this.depthStencilAttachment),this.gl.bindFramebuffer(r.FRAMEBUFFER,null)}n.check!==!1&&this._checkStatus()}destroy(){super.destroy(),!this.destroyed&&this.handle!==null&&this.gl.deleteFramebuffer(this.handle)}_checkStatus(){let{gl:t}=this,n=t.bindFramebuffer(r.FRAMEBUFFER,this.handle),i=t.checkFramebufferStatus(r.FRAMEBUFFER);if(t.bindFramebuffer(r.FRAMEBUFFER,n||null),i!==t.FRAMEBUFFER_COMPLETE)throw new Error(`Framebuffer ${ks(i)}`)}createDepthStencilTexture(t){return new fe(this.device,{id:`${this.id}-depth-stencil`,format:t,width:this.width,height:this.height})}resizeAttachments(t,n){if(this.handle===null)return this.width=this.gl.drawingBufferWidth,this.height=this.gl.drawingBufferHeight,this;t===void 0&&(t=this.gl.drawingBufferWidth),n===void 0&&(n=this.gl.drawingBufferHeight);for(let i of this.colorAttachments)i.resize({width:t,height:n});return this.depthStencilAttachment&&this.depthStencilAttachment.resize({width:t,height:n}),this}_attachOne(t,n){if(n instanceof fe)return this._attachWEBGLRenderbuffer(t,n),n;if(Array.isArray(n)){let[i,s=0,o=0]=n;return this._attachTexture(t,i,s,o),i}else if(n instanceof w)return this._attachTexture(t,n,0,0),n;throw new Error("attach")}_attachWEBGLRenderbuffer(t,n){this.gl.framebufferRenderbuffer(r.FRAMEBUFFER,t,r.RENDERBUFFER,n.handle)}_attachTexture(t,n,i,s){let{gl:o,gl2:_}=this.device;switch(o.bindTexture(n.target,n.handle),n.target){case r.TEXTURE_2D_ARRAY:case r.TEXTURE_3D:this.device.assertWebGL2(),_?.framebufferTextureLayer(r.FRAMEBUFFER,t,n.target,s,i);break;case r.TEXTURE_CUBE_MAP:let a=Ys(i);o.framebufferTexture2D(r.FRAMEBUFFER,t,a,n.handle,s);break;case r.TEXTURE_2D:o.framebufferTexture2D(r.FRAMEBUFFER,t,r.TEXTURE_2D,n.handle,s);break;default:(0,Tt.assert)(!1,"Illegal texture type")}o.bindTexture(n.target,null)}};function Ys(e){return e<r.TEXTURE_CUBE_MAP_POSITIVE_X?e+r.TEXTURE_CUBE_MAP_POSITIVE_X:e}function ks(e){switch(e){case r.FRAMEBUFFER_COMPLETE:return"success";case r.FRAMEBUFFER_INCOMPLETE_ATTACHMENT:return"Mismatched attachments";case r.FRAMEBUFFER_INCOMPLETE_MISSING_ATTACHMENT:return"No attachments";case r.FRAMEBUFFER_INCOMPLETE_DIMENSIONS:return"Height/width mismatch";case r.FRAMEBUFFER_UNSUPPORTED:return"Unsupported or split attachments";case r.FRAMEBUFFER_INCOMPLETE_MULTISAMPLE:return"Samples mismatch";default:return`${e}`}}var ct=class extends yn.CanvasContext{constructor(t,n){super(n),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 se(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 n=this.device.gl.getExtension("STACKGL_resize_drawingbuffer");n&&t&&"width"in t&&"height"in t&&n.resize(t.width,t.height)}commit(){}};var oe=m(I(),1),js={spector:oe.log.get("spector")||oe.log.get("inspect")},Gs="https://spectorcdn.babylonjs.com/spector.bundle.js",$s=1,W=null,vn=!1;async function wn(e){if(!globalThis.SPECTOR)try{await(0,oe.loadScript)(Gs)}catch(t){oe.log.warn(String(t))}}function Xn(e){var t,n;if(e={...js,...e},!((t=e)!==null&&t!==void 0&&t.spector)||(!W&&globalThis.SPECTOR&&(oe.log.probe($s,"SPECTOR found and initialized")(),W=new globalThis.SPECTOR.Spector,globalThis.luma&&(globalThis.luma.spector=W)),!W))return null;if(!vn){var i,s;vn=!0,W.spyCanvases(),(i=W)===null||i===void 0||i.onCaptureStarted.add(a=>oe.log.info("Spector capture started:",a)()),(s=W)===null||s===void 0||s.onCapture.add(a=>{var E,R,u;oe.log.info("Spector capture complete:",a)(),(E=W)===null||E===void 0||E.getResultUI(),(R=W)===null||R===void 0||R.resultView.display(),(u=W)===null||u===void 0||u.resultView.addCapture(a)})}if((n=e)!==null&&n!==void 0&&n.canvas){var o,_;if(typeof e.spector=="string"&&e.spector!==e.canvas.id)return W;(o=W)===null||o===void 0||o.startCapture((_=e)===null||_===void 0?void 0:_.canvas,500),new Promise(a=>setTimeout(a,2e3)).then(a=>{var E;oe.log.info("Spector capture stopped after 2 seconds")(),(E=W)===null||E===void 0||E.stopCapture()})}return W}var Te=m(I(),1);var zs="https://unpkg.com/webgl-debug@2.0.1/index.js";function Ln(e){return e.luma=e.luma||{},e.luma}async function Hn(){Q()&&!globalThis.WebGLDebugUtils&&(globalThis.global=globalThis.global||globalThis,globalThis.global.module={},await(0,Te.loadScript)(zs))}function Vn(e){let t=arguments.length>1&&arguments[1]!==void 0?arguments[1]:{};return e?t.debug?Qs(e,t):Zs(e):null}function Zs(e){let t=Ln(e);return t.realContext?t.realContext:e}function Qs(e,t){if(!globalThis.WebGLDebugUtils)return Te.log.warn("webgl-debug not loaded")(),e;let n=Ln(e);if(n.debugContext)return n.debugContext;globalThis.WebGLDebugUtils.init({...r,...e});let i=globalThis.WebGLDebugUtils.makeDebugContext(e,qs.bind(null,t),Js.bind(null,t));for(let _ in r)!(_ in i)&&typeof r[_]=="number"&&(i[_]=r[_]);class s{}Object.setPrototypeOf(i,Object.getPrototypeOf(e)),Object.setPrototypeOf(s,i);let o=Object.create(s);return n.realContext=e,n.debugContext=o,o.debug=!0,o}function sr(e,t){t=Array.from(t).map(i=>i===void 0?"undefined":i);let n=globalThis.WebGLDebugUtils.glFunctionArgsToString(e,t);return n=`${n.slice(0,100)}${n.length>100?"...":""}`,`gl.${e}(${n})`}function qs(e,t,n,i){i=Array.from(i).map(E=>E===void 0?"undefined":E);let s=globalThis.WebGLDebugUtils.glEnumToString(t),o=globalThis.WebGLDebugUtils.glFunctionArgsToString(n,i),_=e.webgl2?"gl2":"gl1",a=`${s} in ${_}.${n}(${o})`;Te.log.error(a)();debugger;if(e.throwOnError)throw new Error(a)}function Js(e,t,n){let i="";if(Te.log.level>=1&&(i=sr(t,n),Te.log.log(1,i)()),e.break&&e.break.length>0&&(i=i||sr(t,n),e.break.every(o=>i.indexOf(o)!==-1)))debugger;for(let s of n)if(s===void 0){if(i=i||sr(t,n),e.throwOnError)throw new Error(`Undefined argument: ${i}`);Te.log.error(`Undefined argument: ${i}`)();debugger}}var G=m(I(),1);var St=m(I(),1);var eo="Failed to deduce GL constant from typed array";function dt(e){switch(ArrayBuffer.isView(e)?e.constructor:e){case Float32Array:return r.FLOAT;case Uint16Array:return r.UNSIGNED_SHORT;case Uint32Array:return r.UNSIGNED_INT;case Uint8Array:return r.UNSIGNED_BYTE;case Uint8ClampedArray:return r.UNSIGNED_BYTE;case Int8Array:return r.BYTE;case Int16Array:return r.SHORT;case Int32Array:return r.INT;default:throw new Error(eo)}}function Be(e,t){let{clamped:n=!0}=t||{};switch(e){case r.FLOAT:return Float32Array;case r.UNSIGNED_SHORT:case r.UNSIGNED_SHORT_5_6_5:case r.UNSIGNED_SHORT_4_4_4_4:case r.UNSIGNED_SHORT_5_5_5_1:return Uint16Array;case r.UNSIGNED_INT:return Uint32Array;case r.UNSIGNED_BYTE:return n?Uint8ClampedArray:Uint8Array;case r.BYTE:return Int8Array;case r.SHORT:return Int16Array;case r.INT:return Int32Array;default:throw new Error("Failed to deduce typed array type from GL constant")}}var to={offset:0,stride:0,type:r.FLOAT,size:1,divisor:0,normalized:!1,integer:!1},ro={deprecatedProps:{instanced:"divisor",isInstanced:"divisor"}},H=class{static getBytesPerElement(t){return Be(t.type||r.FLOAT).BYTES_PER_ELEMENT}static getBytesPerVertex(t){return(0,St.assert)(t.size),Be(t.type||r.FLOAT).BYTES_PER_ELEMENT*t.size}static resolve(){for(var t=arguments.length,n=new Array(t),i=0;i<t;i++)n[i]=arguments[i];return new H(to,...n)}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,n=new Array(t),i=0;i<t;i++)n[i]=arguments[i];n.forEach(s=>this._assign(s)),Object.freeze(this)}toString(){return JSON.stringify(this)}get BYTES_PER_ELEMENT(){return H.getBytesPerElement(this)}get BYTES_PER_VERTEX(){return H.getBytesPerVertex(this)}_assign(){let t=arguments.length>0&&arguments[0]!==void 0?arguments[0]:{};return t=(0,St.checkProps)("Accessor",t,ro),t.type!==void 0&&(this.type=t.type,(t.type===r.INT||t.type===r.UNSIGNED_INT)&&(this.integer=!0)),t.size!==void 0&&(this.size=t.size),t.offset!==void 0&&(this.offset=t.offset),t.stride!==void 0&&(this.stride=t.stride),t.normalize!==void 0&&(this.normalized=t.normalize),t.normalized!==void 0&&(this.normalized=t.normalized),t.integer!==void 0&&(this.integer=t.integer),t.divisor!==void 0&&(this.divisor=t.divisor),t.buffer!==void 0&&(this.buffer=t.buffer),t.index!==void 0&&(typeof t.index=="boolean"?this.index=t.index?1:0:this.index=t.index),t.instanced!==void 0&&(this.divisor=t.instanced?1:0),t.isInstanced!==void 0&&(this.divisor=t.isInstanced?1:0),this.offset===void 0&&delete this.offset,this.stride===void 0&&delete this.stride,this.type===void 0&&delete this.type,this.size===void 0&&delete this.size,this.divisor===void 0&&delete this.divisor,this.normalized===void 0&&delete this.normalized,this.integer===void 0&&delete this.integer,this.buffer===void 0&&delete this.buffer,this.index===void 0&&delete this.index,this}};var Wn=10,Kn={offset:"accessor.offset",stride:"accessor.stride",type:"accessor.type",size:"accessor.size",divisor:"accessor.divisor",normalized:"accessor.normalized",integer:"accessor.integer",instanced:"accessor.divisor",isInstanced:"accessor.divisor"},Yn={removedProps:{},replacedProps:{bytes:"byteLength"},deprecatedProps:Kn},no={removedProps:Kn};function io(e){return ArrayBuffer.isView(e)?{data:e}:typeof e=="number"?{byteLength:e}:(e=(0,G.checkProps)("Buffer",e,Yn),{...e})}var ht=class extends j{constructor(t){let n=arguments.length>1&&arguments[1]!==void 0?arguments[1]:{};if(super(y.attach(t),io(n)),this.accessor=void 0,this.setAccessor(Object.assign({},n,n.accessor)),this.props.data){let i=dt(this.props.data);(0,G.assert)(i),this.setAccessor(new H(this.accessor,{type:i}))}Object.seal(this)}getElementCount(){let t=arguments.length>0&&arguments[0]!==void 0?arguments[0]:this.accessor;return Math.round(this.byteLength/H.getBytesPerElement(t))}getVertexCount(){let t=arguments.length>0&&arguments[0]!==void 0?arguments[0]:this.accessor;return Math.round(this.byteLength/H.getBytesPerVertex(t))}initialize(){let t=arguments.length>0&&arguments[0]!==void 0?arguments[0]:{};return ArrayBuffer.isView(t)&&(t={data:t}),Number.isFinite(t)&&(t={byteLength:t}),t=(0,G.checkProps)("Buffer",t,Yn),this.glUsage=t.glUsage||r.STATIC_DRAW,this.debugData=null,this.setAccessor(Object.assign({},t,t.accessor)),t.data?this._setData(t.data,t.byteOffset,t.byteLength):this._setByteLength(t.byteLength||0),this}setProps(t){return t=(0,G.checkProps)("Buffer",t,no),"accessor"in t&&this.setAccessor(t.accessor),this}setAccessor(t){return t=Object.assign({},t),delete t.buffer,this.accessor=new H(t),this}reallocate(t){return t>this.byteLength?(this._setByteLength(t),!0):(this.bytesUsed=t,!1)}setData(t){return this.initialize(t)}subData(t){ArrayBuffer.isView(t)&&(t={data:t});let{data:n,offset:i=0,srcOffset:s=0}=t,o=t.byteLength||t.length;(0,G.assert)(n);let _=this.gl.webgl2?r.COPY_WRITE_BUFFER:this.glTarget;return this.gl.bindBuffer(_,this.handle),s!==0||o!==void 0?(nt(this.gl),this.gl.bufferSubData(this.glTarget,i,n,s,o)):this.gl.bufferSubData(_,i,n),this.gl.bindBuffer(_,null),this.debugData=null,this._inferType(n),this}copyData(t){let{sourceBuffer:n,readOffset:i=0,writeOffset:s=0,size:o}=t,{gl:_,gl2:a}=this;return nt(_),_.bindBuffer(r.COPY_READ_BUFFER,n.handle),_.bindBuffer(r.COPY_WRITE_BUFFER,this.handle),a?.copyBufferSubData(r.COPY_READ_BUFFER,r.COPY_WRITE_BUFFER,i,s,o),_.bindBuffer(r.COPY_READ_BUFFER,null),_.bindBuffer(r.COPY_WRITE_BUFFER,null),this.debugData=null,this}getData(t){var n;let{dstData:i=null,length:s=0}=t||{},{srcByteOffset:o=0,dstOffset:_=0}=t||{};nt(this.gl);let a=Be(this.accessor.type||r.FLOAT,{clamped:!1}),E=this._getAvailableElementCount(o),R=_,u,l;i?(l=i.length,u=l-R):(u=Math.min(E,s||E),l=R+u);let A=Math.min(E,u);return s=s||A,(0,G.assert)(s<=A),i=i||new a(l),this.gl.bindBuffer(r.COPY_READ_BUFFER,this.handle),(n=this.gl2)===null||n===void 0||n.getBufferSubData(r.COPY_READ_BUFFER,o,i,_,s),this.gl.bindBuffer(r.COPY_READ_BUFFER,null),i}bind(t){let{glTarget:n=this.glTarget,index:i=this.accessor&&this.accessor.index,offset:s=0,size:o}=t||{};if(n===r.UNIFORM_BUFFER||n===r.TRANSFORM_FEEDBACK_BUFFER)if(o!==void 0){var _;(_=this.gl2)===null||_===void 0||_.bindBufferRange(n,i,this.handle,s,o)}else{var a;(0,G.assert)(s===0),(a=this.gl2)===null||a===void 0||a.bindBufferBase(n,i,this.handle)}else this.gl.bindBuffer(n,this.handle);return this}unbind(t){let{glTarget:n=this.glTarget,index:i=this.accessor&&this.accessor.index}=t||{};if(n===r.UNIFORM_BUFFER||n===r.TRANSFORM_FEEDBACK_BUFFER){var o;(o=this.gl2)===null||o===void 0||o.bindBufferBase(n,i,null)}else this.gl.bindBuffer(n,null);return this}getDebugData(){return this.debugData?{data:this.debugData,changed:!1}:(this.debugData=this.getData({length:Math.min(Wn,this.byteLength)}),{data:this.debugData,changed:!0})}invalidateDebugData(){this.debugData=null}_setData(t){let n=arguments.length>1&&arguments[1]!==void 0?arguments[1]:0,i=arguments.length>2&&arguments[2]!==void 0?arguments[2]:t.byteLength+n;(0,G.assert)(ArrayBuffer.isView(t)),this.trackDeallocatedMemory();let s=this._getTarget();this.gl.bindBuffer(s,this.handle),this.gl.bufferData(s,i,this.glUsage),this.gl.bufferSubData(s,n,t),this.gl.bindBuffer(s,null),this.debugData=t.slice(0,Wn),this.bytesUsed=i,this.byteLength=i,this.trackAllocatedMemory(i);let o=dt(t);return(0,G.assert)(o),this.setAccessor(new H(this.accessor,{type:o})),this}_setByteLength(t){(0,G.assert)(t>=0),this.trackDeallocatedMemory();let n=t;t===0&&(n=new Float32Array(0));let i=this._getTarget();return this.gl.bindBuffer(i,this.handle),this.gl.bufferData(i,n,this.glUsage),this.gl.bindBuffer(i,null),this.debugData=null,this.bytesUsed=t,this.byteLength=t,this.trackAllocatedMemory(t),this}_getTarget(){return this.gl.webgl2?r.COPY_WRITE_BUFFER:this.glTarget}_getAvailableElementCount(t){let n=Be(this.accessor.type||r.FLOAT,{clamped:!1}),i=t/n.BYTES_PER_ELEMENT;return this.getElementCount()-i}_inferType(t){this.accessor.type||this.setAccessor(new H(this.accessor,{type:dt(t)}))}getParameter(t){this.gl.bindBuffer(this.glTarget,this.handle);let n=this.gl.getBufferParameter(this.glTarget,t);return this.gl.bindBuffer(this.glTarget,null),n}get type(){return this.accessor.type}};var ce=m(I(),1);function or(e,t){return{name:so(e,t),language:"glsl",version:oo(e)}}function so(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 oo(e){let t=100,n=e.match(/[^\s]+/g);if(n&&n.length>=2&&n[0]==="#version"){let i=parseInt(n[1],10);Number.isFinite(i)&&(t=i)}return t}var _o=["warning","error","info"];function _r(e){let t=e.split(/\r?\n/),n=[];for(let i of t){if(i.length<=1)continue;let s=i.split(":"),[o,_,a,...E]=s,R=parseInt(a,10);isNaN(R)&&(R=0);let u=parseInt(_,10);isNaN(u)&&(u=0);let l=o.toLowerCase(),A=_o.includes(l)?l:"info";n.push({message:E.join(":").trim(),type:A,lineNum:R,linePos:u})}return n}var Nt=class extends ce.Shader{constructor(t,n){switch(super(t,{id:ao(n),...n}),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(r.VERTEX_SHADER);break;case"fragment":this.handle=this.props.handle||this.device.gl.createShader(r.FRAGMENT_SHADER);break;default:throw new Error(this.props.stage)}this._compile(this.source)}destroy(){this.handle&&(this.removeStats(),this.device.gl.deleteShader(this.handle),this.destroyed=!0)}async compilationInfo(){let t=this.device.gl.getShaderInfoLog(this.handle);return t?_r(t):[]}_compile(t){t=(o=>o.startsWith("#version ")?o:`#version 100
137
+ ${o}`)(t);let{gl:i}=this.device;if(i.shaderSource(this.handle,t),i.compileShader(this.handle),!i.getShaderParameter(this.handle,r.COMPILE_STATUS)){let o=i.getShaderInfoLog(this.handle),a=(o?_r(o):[]).filter(l=>l.type==="error"),E=(0,ce.formatCompilerLog)(a,t,{showSourceCode:!0}),R=or(t).name,u=`${this.stage} shader ${R}`;throw ce.log.error(`GLSL compilation errors in ${u}
138
+ ${E}`)(),new Error(`GLSL compilation errors in ${R}`)}}};function ao(e){return or(e.source).name||e.id||(0,ce.uid)(`unnamed ${e.stage}-shader`)}var kn=m(I(),1);var Eo=256,Ro=1024,uo=16384,ar=6144,mt=class extends kn.RenderPass{constructor(t,n){super(t,n),this.device=void 0,this.glParameters=void 0,this.device=t,this.setParameters(this.props.parameters),this.clear()}end(){}pushDebugGroup(t){}popDebugGroup(){}insertDebugMarker(t){}setParameters(){let t=arguments.length>0&&arguments[0]!==void 0?arguments[0]:{},n={};this.props.framebuffer&&(n.framebuffer=this.props.framebuffer),this.props.depthReadOnly&&(n.depthMask=!this.props.depthReadOnly),n.stencilMask=this.props.stencilReadOnly?0:1,n[r.RASTERIZER_DISCARD]=this.props.discard,t.viewport&&(t.viewport.length>=6?(n.viewport=t.viewport.slice(0,4),n.depthRange=[t.viewport[4],t.viewport[5]]):n.viewport=t.viewport),n.scissorTest=Boolean(t.scissorRect),t.scissorRect&&(n.scissor=t.scissorRect),t.blendConstant&&(n.blendColor=t.blendConstant),t.stencilReference&&(console.warn("RenderPassParameters.stencilReference not yet implemented in WebGL"),t[r.STENCIL_REF]=t.stencilReference),this.glParameters=n,Ae(this.device,n)}clear(){let t={...this.glParameters},n=0;this.props.clearColor!==!1&&(n|=uo,t.clearColor=this.props.clearColor),this.props.clearDepth!==!1&&(n|=Eo,t.clearDepth=this.props.clearDepth),this.props.clearStencil!==!1&&(n|=Ro,t.clearStencil=this.props.clearStencil),n!==0&&J(this.device,t,()=>{this.device.gl.clear(n)})}clearColorBuffer(){let t=arguments.length>0&&arguments[0]!==void 0?arguments[0]:0,n=arguments.length>1&&arguments[1]!==void 0?arguments[1]:[0,0,0,0];J(this.device.gl2,{framebuffer:this.props.framebuffer},()=>{switch(n.constructor){case Int32Array:this.device.gl2.clearBufferiv(ar,t,n);break;case Uint32Array:this.device.gl2.clearBufferuiv(ar,t,n);break;case Float32Array:default:this.device.gl2.clearBufferfv(ar,t,n);break}})}};var k=m(I(),1),qn=m(I(),1);function jn(e){return lo.includes(e)}var lo=[r.SAMPLER_2D,r.SAMPLER_CUBE,r.SAMPLER_3D,r.SAMPLER_2D_SHADOW,r.SAMPLER_2D_ARRAY,r.SAMPLER_2D_ARRAY_SHADOW,r.SAMPLER_CUBE_SHADOW,r.INT_SAMPLER_2D,r.INT_SAMPLER_3D,r.INT_SAMPLER_CUBE,r.INT_SAMPLER_2D_ARRAY,r.UNSIGNED_INT_SAMPLER_2D,r.UNSIGNED_INT_SAMPLER_3D,r.UNSIGNED_INT_SAMPLER_CUBE,r.UNSIGNED_INT_SAMPLER_2D_ARRAY],Gn={[r.FLOAT]:[r.FLOAT,1,"float","f32","float32"],[r.FLOAT_VEC2]:[r.FLOAT,2,"vec2","vec2<f32>","float32x2"],[r.FLOAT_VEC3]:[r.FLOAT,3,"vec3","vec3<f32>","float32x3"],[r.FLOAT_VEC4]:[r.FLOAT,4,"vec4","vec4<f32>","float32x4"],[r.INT]:[r.INT,1,"int","i32","sint32"],[r.INT_VEC2]:[r.INT,2,"ivec2","vec2<i32>","sint32x2"],[r.INT_VEC3]:[r.INT,3,"ivec3","vec3<i32>","sint32x3"],[r.INT_VEC4]:[r.INT,4,"ivec4","vec4<i32>","sint32x4"],[r.UNSIGNED_INT]:[r.UNSIGNED_INT,1,"uint","u32","uint32"],[r.UNSIGNED_INT_VEC2]:[r.UNSIGNED_INT,2,"uvec2","vec2<u32>","uint32x2"],[r.UNSIGNED_INT_VEC3]:[r.UNSIGNED_INT,3,"uvec3","vec3<u32>","uint32x3"],[r.UNSIGNED_INT_VEC4]:[r.UNSIGNED_INT,4,"uvec4","vec4<u32>","uint32x4"],[r.BOOL]:[r.FLOAT,1,"bool","f32","float32"],[r.BOOL_VEC2]:[r.FLOAT,2,"bvec2","vec2<f32>","float32x2"],[r.BOOL_VEC3]:[r.FLOAT,3,"bvec3","vec3<f32>","float32x3"],[r.BOOL_VEC4]:[r.FLOAT,4,"bvec4","vec4<f32>","float32x4"],[r.FLOAT_MAT2]:[r.FLOAT,8,"mat2","mat2x2<f32>"],[r.FLOAT_MAT2x3]:[r.FLOAT,8,"mat2x3","mat2x3<f32>"],[r.FLOAT_MAT2x4]:[r.FLOAT,8,"mat2x4","mat2x4<f32>"],[r.FLOAT_MAT3x2]:[r.FLOAT,12,"mat3x2","mat3x2<f32>"],[r.FLOAT_MAT3]:[r.FLOAT,12,"mat3","mat3x3<f32>"],[r.FLOAT_MAT3x4]:[r.FLOAT,12,"mat3x4","mat3x4<f32>"],[r.FLOAT_MAT4x2]:[r.FLOAT,16,"mat4x2","mat4x2<f32>"],[r.FLOAT_MAT4x3]:[r.FLOAT,16,"mat4x3","mat4x3<f32>"],[r.FLOAT_MAT4]:[r.FLOAT,16,"mat4","mat4x4<f32>"]};function Er(e){let t=Gn[e];if(!t)throw new Error("uniform");let[n,i,,s]=t;return{format:s,components:i,glType:n}}function $n(e){let t=Gn[e];if(!t)throw new Error("attribute");let[,n,,i,s]=t;return{attributeType:i,vertexFormat:s,components:n}}function zn(e,t){let n={attributes:[],bindings:[]};n.attributes=Ao(e,t);let i=co(e,t);for(let a of i){let E=a.uniforms.map(R=>({name:R.name,format:R.format,byteOffset:R.byteOffset,byteStride:R.byteStride,arrayLength:R.arrayLength}));n.bindings.push({type:"uniform",name:a.name,location:a.location,visibility:(a.vertex?1:0)&(a.fragment?2:0),minBindingSize:a.byteLength,uniforms:E})}let s=To(e,t),o=0;for(let a of s)if(jn(a.type)){let{viewDimension:E,sampleType:R}=ho(a.type);n.bindings.push({type:"texture",name:a.name,location:o,viewDimension:E,sampleType:R}),a.textureUnit=o,o+=1}s.length&&(n.uniforms=s);let _=fo(e,t);return _!=null&&_.length&&(n.varyings=_),n}function Ao(e,t){let n=[],i=e.getProgramParameter(t,e.ACTIVE_ATTRIBUTES);for(let s=0;s<i;s++){let o=e.getActiveAttrib(t,s);if(!o)throw new Error("activeInfo");let{name:_,type:a}=o,E=e.getAttribLocation(t,_);if(E>=0){let{attributeType:R}=$n(a),u=/instance/i.test(_)?"instance":"vertex";n.push({name:_,location:E,stepMode:u,type:R})}}return n.sort((s,o)=>s.location-o.location),n}function fo(e,t){if(!N(e))return[];let n=e,i=[],s=e.getProgramParameter(t,r.TRANSFORM_FEEDBACK_VARYINGS);for(let o=0;o<s;o++){let _=n.getTransformFeedbackVarying(t,o);if(!_)throw new Error("activeInfo");let{name:a,type:E,size:R}=_,{glType:u,components:l}=Er(E),A=new H({type:u,size:R*l}),T={location:o,name:a,accessor:A};i.push(T)}return i.sort((o,_)=>o.location-_.location),i}function To(e,t){let n=[],i=e.getProgramParameter(t,r.ACTIVE_UNIFORMS);for(let s=0;s<i;s++){let o=e.getActiveUniform(t,s);if(!o)throw new Error("activeInfo");let{name:_,size:a,type:E}=o,{name:R,isArray:u}=No(_),l=e.getUniformLocation(t,R),A={location:l,name:R,size:a,type:E,isArray:u};if(n.push(A),A.size>1)for(let T=0;T<A.size;T++){let c=`${R}[${T}]`;l=e.getUniformLocation(t,c);let g={...A,name:c,location:l};n.push(g)}}return n}function co(e,t){if(!N(e))return[];let n=e,i=(_,a)=>n.getActiveUniformBlockParameter(t,_,a),s=[],o=n.getProgramParameter(t,r.ACTIVE_UNIFORM_BLOCKS);for(let _=0;_<o;_++){let a={name:n.getActiveUniformBlockName(t,_)||"",location:i(_,r.UNIFORM_BLOCK_BINDING),byteLength:i(_,r.UNIFORM_BLOCK_DATA_SIZE),vertex:i(_,r.UNIFORM_BLOCK_REFERENCED_BY_VERTEX_SHADER),fragment:i(_,r.UNIFORM_BLOCK_REFERENCED_BY_FRAGMENT_SHADER),uniformCount:i(_,r.UNIFORM_BLOCK_ACTIVE_UNIFORMS),uniforms:[]},E=i(_,r.UNIFORM_BLOCK_ACTIVE_UNIFORM_INDICES)||[],R=n.getActiveUniforms(t,E,r.UNIFORM_TYPE),u=n.getActiveUniforms(t,E,r.UNIFORM_SIZE),l=n.getActiveUniforms(t,E,r.UNIFORM_OFFSET),A=n.getActiveUniforms(t,E,r.UNIFORM_ARRAY_STRIDE);for(let T=0;T<a.uniformCount;++T){let c=n.getActiveUniform(t,E[T]);if(!c)throw new Error("activeInfo");a.uniforms.push({name:c.name,format:Er(R[T]).format,type:R[T],arrayLength:u[T],byteOffset:l[T],byteStride:A[T]})}s.push(a)}return s.sort((_,a)=>_.location-a.location),s}var So={[r.SAMPLER_2D]:["2d","float"],[r.SAMPLER_CUBE]:["cube","float"],[r.SAMPLER_3D]:["3d","float"],[r.SAMPLER_2D_SHADOW]:["3d","depth"],[r.SAMPLER_2D_ARRAY]:["2d-array","float"],[r.SAMPLER_2D_ARRAY_SHADOW]:["2d-array","depth"],[r.SAMPLER_CUBE_SHADOW]:["cube","float"],[r.INT_SAMPLER_2D]:["2d","sint"],[r.INT_SAMPLER_3D]:["3d","sint"],[r.INT_SAMPLER_CUBE]:["cube","sint"],[r.INT_SAMPLER_2D_ARRAY]:["2d-array","uint"],[r.UNSIGNED_INT_SAMPLER_2D]:["2d","uint"],[r.UNSIGNED_INT_SAMPLER_3D]:["3d","uint"],[r.UNSIGNED_INT_SAMPLER_CUBE]:["cube","uint"],[r.UNSIGNED_INT_SAMPLER_2D_ARRAY]:["2d-array","uint"]};function ho(e){let t=So[e];if(!t)throw new Error("sampler");let[n,i]=t;return{viewDimension:n,sampleType:i}}function No(e){if(e[e.length-1]!=="]")return{name:e,length:1,isArray:!1};let n=/([^[]*)(\[[0-9]+\])?/.exec(e);if(!n||n.length<2)throw new Error(`Failed to parse GLSL uniform name ${e}`);return{name:n[1],length:n[2]?1:0,isArray:Boolean(n[2])}}function Zn(e,t,n,i){let s=e,o=i;o===!0&&(o=1),o===!1&&(o=0);let _=typeof o=="number"?[o]:o;switch(n){case r.SAMPLER_2D:case r.SAMPLER_CUBE:case r.SAMPLER_3D:case r.SAMPLER_2D_SHADOW:case r.SAMPLER_2D_ARRAY:case r.SAMPLER_2D_ARRAY_SHADOW:case r.SAMPLER_CUBE_SHADOW:case r.INT_SAMPLER_2D:case r.INT_SAMPLER_3D:case r.INT_SAMPLER_CUBE:case r.INT_SAMPLER_2D_ARRAY:case r.UNSIGNED_INT_SAMPLER_2D:case r.UNSIGNED_INT_SAMPLER_3D:case r.UNSIGNED_INT_SAMPLER_CUBE:case r.UNSIGNED_INT_SAMPLER_2D_ARRAY:if(typeof i!="number")throw new Error("samplers must be set to integers");return e.uniform1i(t,i);case r.FLOAT:return e.uniform1fv(t,_);case r.FLOAT_VEC2:return e.uniform2fv(t,_);case r.FLOAT_VEC3:return e.uniform3fv(t,_);case r.FLOAT_VEC4:return e.uniform4fv(t,_);case r.INT:return e.uniform1iv(t,_);case r.INT_VEC2:return e.uniform2iv(t,_);case r.INT_VEC3:return e.uniform3iv(t,_);case r.INT_VEC4:return e.uniform4iv(t,_);case r.BOOL:return e.uniform1iv(t,_);case r.BOOL_VEC2:return e.uniform2iv(t,_);case r.BOOL_VEC3:return e.uniform3iv(t,_);case r.BOOL_VEC4:return e.uniform4iv(t,_);case r.UNSIGNED_INT:return s.uniform1uiv(t,_,1);case r.UNSIGNED_INT_VEC2:return s.uniform2uiv(t,_,2);case r.UNSIGNED_INT_VEC3:return s.uniform3uiv(t,_,3);case r.UNSIGNED_INT_VEC4:return s.uniform4uiv(t,_,4);case r.FLOAT_MAT2:return e.uniformMatrix2fv(t,!1,_);case r.FLOAT_MAT3:return e.uniformMatrix3fv(t,!1,_);case r.FLOAT_MAT4:return e.uniformMatrix4fv(t,!1,_);case r.FLOAT_MAT2x3:return s.uniformMatrix2x3fv(t,!1,_);case r.FLOAT_MAT2x4:return s.uniformMatrix2x4fv(t,!1,_);case r.FLOAT_MAT3x2:return s.uniformMatrix3x2fv(t,!1,_);case r.FLOAT_MAT3x4:return s.uniformMatrix3x4fv(t,!1,_);case r.FLOAT_MAT4x2:return s.uniformMatrix4x2fv(t,!1,_);case r.FLOAT_MAT4x3:return s.uniformMatrix4x3fv(t,!1,_)}throw new Error("Illegal uniform")}var Qn=4,It=class extends k.RenderPipeline{constructor(t,n){super(t,n),this.device=void 0,this.handle=void 0,this.vs=void 0,this.fs=void 0,this.introspectedLayout=void 0,this.uniforms={},this.bindings={},this.varyings=null,this._textureUniforms={},this._textureIndexCounter=0,this._uniformCount=0,this._uniformSetters={},this.device=t,this.handle=this.props.handle||this.device.gl.createProgram(),this.device.setSpectorMetadata(this.handle,{id:this.props.id}),this.vs=(0,k.cast)(n.vs),this.fs=(0,k.cast)(n.fs);let{varyings:i,bufferMode:s=r.SEPARATE_ATTRIBS}=n;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,s)}this._compileAndLink(),this.introspectedLayout=zn(this.device.gl,this.handle),this.shaderLayout=(0,qn.mergeShaderLayout)(this.introspectedLayout,n.shaderLayout)}destroy(){this.handle&&(this.device.gl.deleteProgram(this.handle),this.destroyed=!0)}setBindings(t){for(let[n,i]of Object.entries(t)){let s=this.shaderLayout.bindings.find(o=>o.name===n);if(!s){let o=this.shaderLayout.bindings.map(_=>`"${_.name}"`).join(", ");k.log.warn(`Unknown binding "${n}" in render pipeline "${this.id}", expected one of ${o}`)();continue}switch(i||k.log.warn(`Unsetting binding "${n}" in render pipeline "${this.id}"`)(),s.type){case"uniform":if(!(i instanceof j)&&!(i.buffer instanceof j))throw new Error("buffer value");break;case"texture":if(!(i instanceof w||i instanceof se))throw new Error("texture value");break;case"sampler":k.log.warn(`Ignoring sampler ${n}`)();break;default:throw new Error(s.type)}this.bindings[n]=i}}setUniforms(t){Object.assign(this.uniforms,t)}draw(t){var n;let{renderPass:i,vertexArray:s,vertexCount:o,instanceCount:_,firstVertex:a=0}=t,E=mo(this.props.topology),R=Boolean(s.indexBuffer),u=(n=s.indexBuffer)===null||n===void 0?void 0:n.glIndexType,l=Number(_)>0;if(!this._areTexturesRenderable()||o===0)return!1;this.device.gl.useProgram(this.handle),s.bindBeforeRender(i);let A=Io(this.props.topology),T=null;T&&T.begin(A),this._applyBindings(),this._applyUniforms();let c=i;return Mn(this.device,this.props.parameters,c.glParameters,()=>{if(R&&l){var g;(g=this.device.gl2)===null||g===void 0||g.drawElementsInstanced(E,o||0,u,a,_||0)}else if(R)this.device.gl.drawElements(E,o||0,u,a);else if(l){var d;(d=this.device.gl2)===null||d===void 0||d.drawArraysInstanced(E,a,o||0,_||0)}else this.device.gl.drawArrays(E,a,o||0);T&&T.end()}),s.unbindAfterRender(i),!0}_compileAndLink(){let{gl:t}=this.device;if(t.attachShader(this.handle,this.vs.handle),t.attachShader(this.handle,this.fs.handle),k.log.time(Qn,`linkProgram for ${this.id}`)(),t.linkProgram(this.handle),k.log.timeEnd(Qn,`linkProgram for ${this.id}`)(),!t.debug&&k.log.level,!t.getProgramParameter(this.handle,t.LINK_STATUS))throw new Error(`Error linking: ${t.getProgramInfoLog(this.handle)}`);if(t.validateProgram(this.handle),!t.getProgramParameter(this.handle,t.VALIDATE_STATUS))throw new Error(`Error validating: ${t.getProgramInfoLog(this.handle)}`)}_areTexturesRenderable(){let t=!0;for(let[,n]of Object.entries(this._textureUniforms))n.update(),t=t&&n.loaded;for(let[,n]of Object.entries(this.bindings))n.loaded!==void 0&&(t=t&&n.loaded);return t}_applyBindings(){this.device.gl.useProgram(this.handle);let{gl2:t}=this.device;if(!t)throw new Error("bindings");let n=0,i=0;for(let s of this.shaderLayout.bindings){let o=this.bindings[s.name];if(!o)throw new Error(`No value for binding ${s.name} in ${this.id}`);switch(s.type){case"uniform":let{name:_}=s,a=t.getUniformBlockIndex(this.handle,_);if(a===r.INVALID_INDEX)throw new Error(`Invalid uniform block name ${_}`);t.uniformBlockBinding(this.handle,i,a),o instanceof j?t.bindBufferBase(r.UNIFORM_BUFFER,i,o.handle):t.bindBufferRange(r.UNIFORM_BUFFER,i,o.buffer.handle,o.offset||0,o.size||o.buffer.byteLength-o.offset),i+=1;break;case"texture":if(!(o instanceof w||o instanceof se))throw new Error("texture");let E;if(o instanceof w)E=o;else if(o instanceof se&&o.colorAttachments[0]instanceof w)k.log.warn("Passing framebuffer in texture binding may be deprecated. Use fbo.colorAttachments[0] instead")(),E=o.colorAttachments[0];else throw new Error("No texture");t.activeTexture(r.TEXTURE0+n),t.bindTexture(E.target,E.handle),n+=1;break;case"sampler":break;case"storage":case"read-only-storage":throw new Error(`binding type '${s.type}' not supported in WebGL`)}}}_applyUniforms(){for(let n of this.shaderLayout.uniforms||[]){var t;let{name:i,location:s,type:o,textureUnit:_}=n,a=(t=this.uniforms[i])!==null&&t!==void 0?t:_;a!==void 0&&Zn(this.device.gl,s,o,a)}}};function mo(e){switch(e){case"point-list":return r.POINTS;case"line-list":return r.LINES;case"line-strip":return r.LINE_STRIP;case"line-loop-webgl":return r.LINE_LOOP;case"triangle-list":return r.TRIANGLES;case"triangle-strip":return r.TRIANGLE_STRIP;case"triangle-fan-webgl":return r.TRIANGLE_FAN;default:throw new Error(e)}}function Io(e){switch(e){case"point-list":return r.POINTS;case"line-list":return r.LINES;case"line-strip":return r.LINES;case"line-loop-webgl":return r.LINES;case"triangle-list":return r.TRIANGLES;case"triangle-strip":return r.TRIANGLES;case"triangle-fan-webgl":return r.TRIANGLES;default:throw new Error(e)}}var ei=m(I(),1);var Ct=m(I(),1);var gt=class extends Ct.CommandBuffer{constructor(t){super({}),this.device=void 0,this.commands=[],this.device=t}submitCommands(){let t=arguments.length>0&&arguments[0]!==void 0?arguments[0]:this.commands;for(let n of t)switch(n.name){case"copy-buffer-to-buffer":go(this.device,n.options);break;case"copy-buffer-to-texture":Co(this.device,n.options);break;case"copy-texture-to-buffer":Oo(this.device,n.options);break;case"copy-texture-to-texture":Fo(this.device,n.options);break}}};function go(e,t){let n=t.source,i=t.destination,s=e.assertWebGL2();if(s){var o,_;s.bindBuffer(r.COPY_READ_BUFFER,n.handle),s.bindBuffer(r.COPY_WRITE_BUFFER,i.handle),s.copyBufferSubData(r.COPY_READ_BUFFER,r.COPY_WRITE_BUFFER,(o=t.sourceOffset)!==null&&o!==void 0?o:0,(_=t.destinationOffset)!==null&&_!==void 0?_:0,t.size),s.bindBuffer(r.COPY_READ_BUFFER,null),s.bindBuffer(r.COPY_WRITE_BUFFER,null)}else throw new Error("copyBufferToBuffer not implemented in WebGL1")}function Co(e,t){throw new Error("Not implemented")}function Oo(e,t){let{source:n,mipLevel:i=0,aspect:s="all",width:o=t.source.width,height:_=t.source.height,depthOrArrayLayers:a=0,origin:E=[0,0],destination:R,byteOffset:u=0,bytesPerRow:l,rowsPerImage:A}=t;if(s!=="all")throw new Error("not supported");if(i!==0||a!==void 0||l||A)throw new Error("not implemented");let T=e.assertWebGL2(),{framebuffer:c,destroyFramebuffer:g}=Jn(n);try{let d=R,v=o||c.width,x=_||c.height,p=r.RGBA,b=r.UNSIGNED_BYTE;T.bindBuffer(r.PIXEL_PACK_BUFFER,d.handle),T.bindFramebuffer(r.FRAMEBUFFER,c.handle),T.readPixels(E[0],E[1],v,x,p,b,u)}finally{T.bindBuffer(r.PIXEL_PACK_BUFFER,null),T.bindFramebuffer(r.FRAMEBUFFER,null),g&&c.destroy()}}function Fo(e,t){let{source:n,origin:i=[0,0],destination:s}=t,{width:o=t.destination.width,height:_=t.destination.width}=t,a=0,E=r.RGBA,{framebuffer:R,destroyFramebuffer:u}=Jn(n),[l,A]=i,T=!1;e.gl.bindFramebuffer(r.FRAMEBUFFER,R.handle);let c=null,g;if(s instanceof w)c=s,o=Number.isFinite(o)?o:c.width,_=Number.isFinite(_)?_:c.height,c.bind(0),g=c.destination;else throw new Error("whoops");return T||e.gl.copyTexImage2D(g,a,E,l,A,o,_,0),c&&c.unbind(),u&&R.destroy(),c}function Jn(e){if(e instanceof Ct.Texture){let{width:t,height:n,id:i}=e;return{framebuffer:e.device.createFramebuffer({id:`framebuffer-for-${i}`,width:t,height:n,colorAttachments:[e]}),destroyFramebuffer:!0}}return{framebuffer:e,destroyFramebuffer:!1}}var Ot=class extends ei.CommandEncoder{constructor(t,n){super(t,n),this.device=void 0,this.commandBuffer=void 0,this.device=t,this.commandBuffer=new gt(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 Pe=m(I(),1);var ti;ti=Symbol.toStringTag;var De=class extends Pe.VertexArray{get[ti](){return"VertexArray"}static isConstantAttributeZeroSupported(t){return t.info.type==="webgl2"||rt()==="Chrome"}constructor(t,n){super(t,n),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 n=t;if(n&&n.glTarget!==r.ELEMENT_ARRAY_BUFFER)throw new Error("Use .setBuffer()");this.device.gl2.bindVertexArray(this.handle),this.device.gl2.bindBuffer(r.ELEMENT_ARRAY_BUFFER,n?n.handle:null),this.indexBuffer=n}setBuffer(t,n){let i=n;if(i.glTarget===r.ELEMENT_ARRAY_BUFFER)throw new Error("Use .setIndexBuffer()");let{size:s,type:o,stride:_,offset:a,normalized:E,integer:R,divisor:u}=this._getAccessor(t);this.device.gl2.bindVertexArray(this.handle),this.device.gl.bindBuffer(r.ARRAY_BUFFER,i.handle),R?(this.device.assertWebGL2(),this.device.gl2.vertexAttribIPointer(t,s,o,_,a)):this.device.gl.vertexAttribPointer(t,s,o,E,_,a),this.device.gl.enableVertexAttribArray(t),this.device.gl2.vertexAttribDivisor(t,u||0),this.attributes[t]=i}setConstant(t,n){this._enable(t,!1),this.attributes[t]=n}bindBeforeRender(){if(this.device.gl2.bindVertexArray(this.handle),!this.init){let t=this.indexBuffer;this.device.gl2.bindBuffer(r.ELEMENT_ARRAY_BUFFER,t?.handle||null),this.init=!0}this._applyConstantAttributes()}unbindAfterRender(){this.device.gl2.bindVertexArray(null)}_applyConstantAttributes(){for(let t=0;t<this.maxVertexAttributes;++t){let n=this.attributes[t];ArrayBuffer.isView(n)&&this.device.setConstantAttribute(t,n)}}_getAccessor(t){let n=this.attributeInfos[t];if(!n)throw new Error(`Unknown attribute location ${t}`);let i=ot(n.bufferDataType);return{size:n.bufferComponents,type:i,stride:n.byteStride,offset:n.byteOffset,normalized:n.normalized,integer:n.integer,divisor:n.stepMode==="instance"?1:0}}_enable(t){let n=arguments.length>1&&arguments[1]!==void 0?arguments[1]:!0,s=De.isConstantAttributeZeroSupported(this.device)||t!==0;(n||s)&&(t=Number(t),this.device.gl2.bindVertexArray(this.handle),n?this.device.gl.enableVertexAttribArray(t):this.device.gl.disableVertexAttribArray(t),this.device.gl2.bindVertexArray(null))}getConstantBuffer(t,n){let i=Mo(n),s=i.byteLength*t,o=i.length*t,_=!this.buffer;if(this.buffer=this.buffer||this.device.createBuffer({byteLength:s}),_=_||this.buffer.reallocate(s),_=_||!po(i,this.bufferValue),_){let a=(0,Pe.getScratchArray)(n.constructor,o);(0,Pe.fillArray)({target:a,source:i,start:0,count:o}),this.buffer.subData(a),this.bufferValue=n}return this.buffer}};function Mo(e){return Array.isArray(e)?new Float32Array(e):e}function po(e,t){if(!e||!t||e.length!==t.length||e.constructor!==t.constructor)return!1;for(let n=0;n<e.length;++n)if(e[n]!==t[n])return!1;return!0}var Ft=1,y=class extends D.Device{static isSupported(){return typeof WebGLRenderingContext<"u"||jr()}get features(){return this._features=this._features||gn(this.gl),this._features}get limits(){return this._limits=this._limits||On(this.gl),this._limits}static attach(t){if(t instanceof y)return t;if(t?.device instanceof D.Device)return t.device;if(!bo(t))throw new Error("Invalid WebGLRenderingContext");return new y({gl:t})}static async create(){let t=arguments.length>0&&arguments[0]!==void 0?arguments[0]:{};D.log.groupCollapsed(Ft,"WebGLDevice created"),typeof t.canvas=="string"&&await D.CanvasContext.pageLoaded,(D.log.get("debug")||t.debug)&&await Hn();let{spector:n}=t;return(D.log.get("spector")||n)&&await wn(),D.log.probe(Ft+1,"DOM is loaded")(),t.gl&&t.gl.device?y.attach(t.gl):new y(t)}constructor(t){var n;super({...t,id:t.id||(0,D.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=(n=t.gl)===null||n===void 0?void 0:n.device;if(i)throw new Error(`WebGL context already attached to device ${i.id}`);this.canvasContext=new ct(this,t),this.lost=new Promise(R=>{this._resolveContextLost=R});let s=R=>{var u;return(u=this._resolveContextLost)===null||u===void 0?void 0:u.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||(Q()?An(this.canvasContext.canvas,{...t,onContextLost:s}):null),o=o||(Q()?null:Gr({...t,onContextLost:s})),!o)throw new Error("WebGL context creation failed");this.handle=o,this.gl=this.handle,this.gl2=this.gl,this.isWebGL2=Bo(this.gl),this.isWebGL1=!this.isWebGL2,this.info=fn(this.gl),this.gl.device=this,this.gl._version=this.isWebGL2?2:1,nn(this.gl);let{enable:_=!0,copyState:a=!1}=t;if(Zt(this.gl,{enable:_,copyState:a,log:function(){for(var R=arguments.length,u=new Array(R),l=0;l<R;l++)u[l]=arguments[l];return D.log.log(1,...u)()}}),Q()&&t.debug&&(this.gl=Vn(this.gl,{...t,webgl2:this.isWebGL2,throwOnError:!0}),this.gl2=this.gl,this.debug=!0,D.log.level=Math.max(D.log.level,1),D.log.warn("WebGL debug mode activated. Performance reduced.")()),Q()&&t.spector){let R=this.handle.canvas||t.canvas;this.spector=Xn({...this.props,canvas:R})}let E=`Created ${this.info.type}${this.debug?" debug":""} context: ${this.info.vendor}, ${this.info.renderer} for canvas: ${this.canvasContext.id}`;D.log.probe(Ft,E)(),D.log.groupEnd(Ft)()}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 je(this.gl,t)}isTextureFormatFilterable(t){return hn(this.gl,t)}isTextureFormatRenderable(t){return Nn(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 n=this._getBufferProps(t);return new ht(this,n)}_createTexture(t){return new w(this,t)}createExternalTexture(t){throw new Error("createExternalTexture() not implemented")}createSampler(t){return new Ce(this,t)}createShader(t){return new Nt(this,t)}createFramebuffer(t){return new se(this,t)}createRenderPipeline(t){return new It(this,t)}createVertexArray(t){return new De(this,t)}beginRenderPass(t){return new mt(this,t)}createComputePipeline(t){throw new Error("ComputePipeline not supported in WebGL")}beginComputePass(t){throw new Error("compute shaders not supported in WebGL")}getDefaultRenderPass(){return this.renderPass=this.renderPass||this.beginRenderPass({framebuffer:this.canvasContext.getCurrentFramebuffer()}),this.renderPass}createCommandEncoder(t){return new Ot(this,t)}submit(){var t;(t=this.renderPass)===null||t===void 0||t.end(),this.renderPass=null}get webglLimits(){return this._webglLimits=this._webglLimits||Fn(this.gl),this._webglLimits}loseDevice(){var t;let n=!1,i=this.gl.getExtension("WEBGL_lose_context");return i&&(n=!0,i.loseContext()),(t=this._resolveContextLost)===null||t===void 0||t.call(this,{reason:"destroyed",message:"Application triggered context loss"}),n}pushState(){Me(this.gl)}popState(){Ie(this.gl)}setSpectorMetadata(t,n){t.__SPECTOR_Metadata=n}getGLKey(t,n){n=n||this.gl2||this.gl;let i=Number(t);for(let s in n)if(n[s]===i)return`GL.${s}`;return String(t)}setConstantAttribute(t,n){this._constants=this._constants||new Array(this.limits.maxVertexAttributes).fill(null);let i=this._constants[t];switch(i&&xo(i,n)&&D.log.info(1,`setConstantAttribute(${t}) could have been skipped, value unchanged`)(),this._constants[t]=n,n.constructor){case Float32Array:Do(this,t,n);break;case Int32Array:Po(this,t,n);break;case Uint32Array:Uo(this,t,n);break;default:(0,D.assert)(!1)}}};y.type="webgl";function bo(e){return typeof WebGLRenderingContext<"u"&&e instanceof WebGLRenderingContext||typeof WebGL2RenderingContext<"u"&&e instanceof WebGL2RenderingContext?!0:Boolean(e&&Number.isFinite(e._version))}function Bo(e){return typeof WebGL2RenderingContext<"u"&&e instanceof WebGL2RenderingContext?!0:Boolean(e&&e._version===2)}function Do(e,t,n){switch(n.length){case 1:e.gl.vertexAttrib1fv(t,n);break;case 2:e.gl.vertexAttrib2fv(t,n);break;case 3:e.gl.vertexAttrib3fv(t,n);break;case 4:e.gl.vertexAttrib4fv(t,n);break;default:(0,D.assert)(!1)}}function Po(e,t,n){var i;e.assertWebGL2(),(i=e.gl2)===null||i===void 0||i.vertexAttribI4iv(t,n)}function Uo(e,t,n){var i;e.assertWebGL2(),(i=e.gl2)===null||i===void 0||i.vertexAttribI4uiv(t,n)}function xo(e,t){if(!e||!t||e.length!==t.length||e.constructor!==t.constructor)return!1;for(let n=0;n<e.length;++n)if(e[n]!==t[n])return!1;return!0}var ri=m(Je());function Mt(e){var t=this;this.buffer=e.createBuffer(new Int8Array([-1,-1,1,-1,-1,1,1,1])),this.model=new le(e,{vs:`
9
139
  attribute vec2 a_pos;
10
140
  varying vec2 v_texcoord;
11
141
  void main(void) {
@@ -21,9 +151,9 @@ In order to be iterable, non-array objects must have a [Symbol.iterator]() metho
21
151
  rgba.rgb *= rgba.a;
22
152
  gl_FragColor = rgba;
23
153
  }
24
- `,attributes:{a_pos:this.buffer},vertexCount:4,drawMode:5}),this.deckFbo=new m.Framebuffer(e,{width:1,height:1}),this.deckInstance=new re.Deck({viewState:{},controller:!1,gl:e,parameters:{depthTest:!0},_framebuffer:this.deckFbo,width:null,height:null,_customRender:function(n){n==="arcgis"?t.deckInstance._drawLayers(n):t.redraw()}})}function P(e){var t=this,r=e.gl,n=e.width,i=e.height,o=e.viewState,u=r.getParameter(36006),s=window.devicePixelRatio;n=Math.round(n*s),i=Math.round(i*s),this.deckFbo.resize({width:n,height:i}),this.deckInstance.setProps({viewState:o}),this.deckInstance.redraw("arcgis"),(0,m.withParameters)(r,{blend:!0,blendFunc:[1,771],framebuffer:u,viewport:[0,0,n,i]},function(){t.model.setUniforms({u_texture:t.deckFbo}).draw()})}function O(){var e,t,r,n;(e=this.deckInstance)===null||e===void 0||e.finalize(),this.deckInstance=null,(t=this.model)===null||t===void 0||t.delete(),(r=this.buffer)===null||r===void 0||r.delete(),(n=this.deckFbo)===null||n===void 0||n.delete()}function Ie(e,t){return Oe(e)||Pe(e,t)||De(e,t)||Le()}function Le(){throw new TypeError(`Invalid attempt to destructure non-iterable instance.
25
- In order to be iterable, non-array objects must have a [Symbol.iterator]() method.`)}function De(e,t){if(e){if(typeof e=="string")return te(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 te(e,t)}}function te(e,t){(t==null||t>e.length)&&(t=e.length);for(var r=0,n=new Array(t);r<t;r++)n[r]=e[r];return n}function Pe(e,t){var r=e==null?null:typeof Symbol<"u"&&e[Symbol.iterator]||e["@@iterator"];if(r!=null){var n=[],i=!0,o=!1,u,s;try{for(r=r.call(e);!(i=(u=r.next()).done)&&(n.push(u.value),!(t&&n.length===t));i=!0);}catch(l){o=!0,s=l}finally{try{!i&&r.return!=null&&r.return()}finally{if(o)throw s}}return n}}function Oe(e){if(Array.isArray(e))return e}function F(e){return e.createSubclass({properties:{deckgl:{},deckFbo:{},model:{},buffer:{}},attach:function(){var r=this,n=this.context;D.call(this,n),this.layer.deck.on("change",function(i){return r.deckInstance.setProps(i)}),this.deckInstance.setProps(this.layer.deck.toJSON())},redraw:function(){this.requestRender()},detach:function(){O.call(this)},render:function(r){var n=Ie(this.view.state.size,2),i=n[0],o=n[1],u=r.state;P.call(this,{gl:r.context,width:i,height:o,viewState:{latitude:this.view.center.latitude,longitude:this.view.center.longitude,zoom:this.view.featuresTilingScheme.scaleToLevel(u.scale),bearing:-u.rotation,pitch:0}})}})}function Te(e,t){return Ce(e)||Ee(e,t)||xe(e,t)||Re()}function Re(){throw new TypeError(`Invalid attempt to destructure non-iterable instance.
26
- In order to be iterable, non-array objects must have a [Symbol.iterator]() method.`)}function xe(e,t){if(e){if(typeof e=="string")return ne(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 ne(e,t)}}function ne(e,t){(t==null||t>e.length)&&(t=e.length);for(var r=0,n=new Array(t);r<t;r++)n[r]=e[r];return n}function Ee(e,t){var r=e==null?null:typeof Symbol<"u"&&e[Symbol.iterator]||e["@@iterator"];if(r!=null){var n=[],i=!0,o=!1,u,s;try{for(r=r.call(e);!(i=(u=r.next()).done)&&(n.push(u.value),!(t&&n.length===t));i=!0);}catch(l){o=!0,s=l}finally{try{!i&&r.return!=null&&r.return()}finally{if(o)throw s}}return n}}function Ce(e){if(Array.isArray(e))return e}function Me(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}function je(e,t){var r=Math.sqrt(1+Math.pow(t,2)),n=e/2/180*Math.PI;return r/2/Math.tan(n)}function $(e,t){var r=function(){function n(o,u){Me(this,n),this.view=o,this.deck=new e(u)}var i=n.prototype;return i.setup=function(u){var s=this,l=u.gl;D.call(this,l),this.deck.on("change",function(h){return s.deckInstance.setProps(h)}),this.deckInstance.setProps(this.deck.toJSON())},i.dispose=function(){O.call(this)},i.redraw=function(){t.requestRender(this.view)},i.render=function(u){var s=Te(this.view.size,2),l=s[0],h=s[1];P.call(this,{gl:u.gl,width:l,height:h,viewState:{latitude:this.view.center.latitude,longitude:this.view.center.longitude,altitude:je(this.view.camera.fov,l/h),zoom:this.view.zoom,bearing:this.view.camera.heading,pitch:this.view.camera.tilt}})},n}();return r}var V=_(ae());function oe(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter(function(i){return Object.getOwnPropertyDescriptor(e,i).enumerable})),r.push.apply(r,n)}return r}function ue(e){for(var t=1;t<arguments.length;t++){var r=arguments[t]!=null?arguments[t]:{};t%2?oe(Object(r),!0).forEach(function(n){ze(e,n,r[n])}):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(r)):oe(Object(r)).forEach(function(n){Object.defineProperty(e,n,Object.getOwnPropertyDescriptor(r,n))})}return e}function ze(e,t,r){return t in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r,e}function Fe(e,t){return qe(e)||Ve(e,t)||Ge(e,t)||$e()}function $e(){throw new TypeError(`Invalid attempt to destructure non-iterable instance.
27
- In order to be iterable, non-array objects must have a [Symbol.iterator]() method.`)}function Ge(e,t){if(e){if(typeof e=="string")return se(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 se(e,t)}}function se(e,t){(t==null||t>e.length)&&(t=e.length);for(var r=0,n=new Array(t);r<t;r++)n[r]=e[r];return n}function Ve(e,t){var r=e==null?null:typeof Symbol<"u"&&e[Symbol.iterator]||e["@@iterator"];if(r!=null){var n=[],i=!0,o=!1,u,s;try{for(r=r.call(e);!(i=(u=r.next()).done)&&(n.push(u.value),!(t&&n.length===t));i=!0);}catch(l){o=!0,s=l}finally{try{!i&&r.return!=null&&r.return()}finally{if(o)throw s}}return n}}function qe(e){if(Array.isArray(e))return e}function ce(e,t,r,n,i,o,u){try{var s=e[o](u),l=s.value}catch(h){r(h);return}s.done?t(l):Promise.resolve(l).then(n,i)}function Ue(e){return function(){var t=this,r=arguments;return new Promise(function(n,i){var o=e.apply(t,r);function u(l){ce(o,n,i,u,s,"next",l)}function s(l){ce(o,n,i,u,s,"throw",l)}u(void 0)})}}var g=null;function Be(e,t){return G.apply(this,arguments)}function G(){return G=Ue(regeneratorRuntime.mark(function e(t,r){var n;return regeneratorRuntime.wrap(function(o){for(;;)switch(o.prev=o.next){case 0:return n=Array.isArray(t)?null:t,o.next=3,He(n,r);case 3:if(!Array.isArray(t)){o.next=5;break}return o.abrupt("return",(0,V.loadModules)(t,r).then(function(u){return ue(ue({},g),{},{modules:u})}));case 5:return o.abrupt("return",g);case 6:case"end":return o.stop()}},e)})),G.apply(this,arguments)}function He(e,t){if(g)return g;if(e){var r=e.layers.Layer,n=e.core.Accessor,i=e.views["2d"].layers.BaseLayerViewGL2D,o=e.views["3d"].externalRenderers;return le(r,n,i,o)}return(0,V.loadModules)(["esri/layers/Layer","esri/core/Accessor","esri/views/2d/layers/BaseLayerViewGL2D","esri/views/3d/externalRenderers"],t).then(function(u){var s=Fe(u,4),l=s[0],h=s[1],R=s[2],x=s[3];return le(l,h,R,x)})}function le(e,t,r,n){var i=j(t),o=F(r),u=z(i,e,o),s=$(i,n);return g={DeckLayer:u,DeckRenderer:s},g}return ke(k);})();
154
+ `,attributes:{a_pos:this.buffer},vertexCount:4,drawMode:5}),this.deckFbo=e.createFramebuffer({width:1,height:1}),this.deckInstance=new ri.Deck({viewState:{},controller:!1,gl:e.gl,parameters:{depthTest:!0},_framebuffer:this.deckFbo,width:null,height:null,_customRender:function(i){i==="arcgis"?t.deckInstance._drawLayers(i):t.redraw()}})}function pt(e){var t=this,n=e.gl,i=e.width,s=e.height,o=e.viewState,_=n.getParameter(36006),a=window.devicePixelRatio;i=Math.round(i*a),s=Math.round(s*a),this.deckFbo.resize({width:i,height:s}),this.deckInstance.setProps({viewState:o}),this.deckInstance.redraw("arcgis"),J(n,{blend:!0,blendFunc:[1,771],framebuffer:_,viewport:[0,0,i,s]},function(){t.model.setUniforms({u_texture:t.deckFbo}).draw(t.context.renderPass)})}function bt(){var e,t,n,i;(e=this.deckInstance)===null||e===void 0||e.finalize(),this.deckInstance=null,(t=this.model)===null||t===void 0||t.delete(),(n=this.buffer)===null||n===void 0||n.delete(),(i=this.deckFbo)===null||i===void 0||i.delete()}function yo(e,t){return Lo(e)||Xo(e,t)||wo(e,t)||vo()}function vo(){throw new TypeError(`Invalid attempt to destructure non-iterable instance.
155
+ In order to be iterable, non-array objects must have a [Symbol.iterator]() method.`)}function wo(e,t){if(e){if(typeof e=="string")return ni(e,t);var n=Object.prototype.toString.call(e).slice(8,-1);if(n==="Object"&&e.constructor&&(n=e.constructor.name),n==="Map"||n==="Set")return Array.from(e);if(n==="Arguments"||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n))return ni(e,t)}}function ni(e,t){(t==null||t>e.length)&&(t=e.length);for(var n=0,i=new Array(t);n<t;n++)i[n]=e[n];return i}function Xo(e,t){var n=e==null?null:typeof Symbol<"u"&&e[Symbol.iterator]||e["@@iterator"];if(n!=null){var i=[],s=!0,o=!1,_,a;try{for(n=n.call(e);!(s=(_=n.next()).done)&&(i.push(_.value),!(t&&i.length===t));s=!0);}catch(E){o=!0,a=E}finally{try{!s&&n.return!=null&&n.return()}finally{if(o)throw a}}return i}}function Lo(e){if(Array.isArray(e))return e}function Rr(e){return e.createSubclass({properties:{deckgl:{},deckFbo:{},model:{},buffer:{}},attach:function(){var n=this,i=this.context;Mt.call(this,i),this.layer.deck.on("change",function(s){return n.deckInstance.setProps(s)}),this.deckInstance.setProps(this.layer.deck.toJSON())},redraw:function(){this.requestRender()},detach:function(){bt.call(this)},render:function(n){var i=yo(this.view.state.size,2),s=i[0],o=i[1],_=n.state;pt.call(this,{gl:n.context,width:s,height:o,viewState:{latitude:this.view.center.latitude,longitude:this.view.center.longitude,zoom:this.view.featuresTilingScheme.scaleToLevel(_.scale),bearing:-_.rotation,pitch:0}})}})}function Ho(e,t){return Yo(e)||Ko(e,t)||Wo(e,t)||Vo()}function Vo(){throw new TypeError(`Invalid attempt to destructure non-iterable instance.
156
+ In order to be iterable, non-array objects must have a [Symbol.iterator]() method.`)}function Wo(e,t){if(e){if(typeof e=="string")return ii(e,t);var n=Object.prototype.toString.call(e).slice(8,-1);if(n==="Object"&&e.constructor&&(n=e.constructor.name),n==="Map"||n==="Set")return Array.from(e);if(n==="Arguments"||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n))return ii(e,t)}}function ii(e,t){(t==null||t>e.length)&&(t=e.length);for(var n=0,i=new Array(t);n<t;n++)i[n]=e[n];return i}function Ko(e,t){var n=e==null?null:typeof Symbol<"u"&&e[Symbol.iterator]||e["@@iterator"];if(n!=null){var i=[],s=!0,o=!1,_,a;try{for(n=n.call(e);!(s=(_=n.next()).done)&&(i.push(_.value),!(t&&i.length===t));s=!0);}catch(E){o=!0,a=E}finally{try{!s&&n.return!=null&&n.return()}finally{if(o)throw a}}return i}}function Yo(e){if(Array.isArray(e))return e}function ko(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}function jo(e,t){var n=Math.sqrt(1+Math.pow(t,2)),i=e/2/180*Math.PI;return n/2/Math.tan(i)}function ur(e,t){var n=function(){function i(o,_){ko(this,i),this.view=o,this.deck=new e(_)}var s=i.prototype;return s.setup=function(_){var a=this,E=_.gl;Mt.call(this,E),this.deck.on("change",function(R){return a.deckInstance.setProps(R)}),this.deckInstance.setProps(this.deck.toJSON())},s.dispose=function(){bt.call(this)},s.redraw=function(){t.requestRender(this.view)},s.render=function(_){var a=Ho(this.view.size,2),E=a[0],R=a[1];pt.call(this,{gl:_.gl,width:E,height:R,viewState:{latitude:this.view.center.latitude,longitude:this.view.center.longitude,altitude:jo(this.view.camera.fov,E/R),zoom:this.view.zoom,bearing:this.view.camera.heading,pitch:this.view.camera.tilt}})},i}();return n}var Ar=m(oi());function _i(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var i=Object.getOwnPropertySymbols(e);t&&(i=i.filter(function(s){return Object.getOwnPropertyDescriptor(e,s).enumerable})),n.push.apply(n,i)}return n}function ai(e){for(var t=1;t<arguments.length;t++){var n=arguments[t]!=null?arguments[t]:{};t%2?_i(Object(n),!0).forEach(function(i){Go(e,i,n[i])}):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(n)):_i(Object(n)).forEach(function(i){Object.defineProperty(e,i,Object.getOwnPropertyDescriptor(n,i))})}return e}function Go(e,t,n){return t in e?Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}):e[t]=n,e}function $o(e,t){return qo(e)||Qo(e,t)||Zo(e,t)||zo()}function zo(){throw new TypeError(`Invalid attempt to destructure non-iterable instance.
157
+ In order to be iterable, non-array objects must have a [Symbol.iterator]() method.`)}function Zo(e,t){if(e){if(typeof e=="string")return Ei(e,t);var n=Object.prototype.toString.call(e).slice(8,-1);if(n==="Object"&&e.constructor&&(n=e.constructor.name),n==="Map"||n==="Set")return Array.from(e);if(n==="Arguments"||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n))return Ei(e,t)}}function Ei(e,t){(t==null||t>e.length)&&(t=e.length);for(var n=0,i=new Array(t);n<t;n++)i[n]=e[n];return i}function Qo(e,t){var n=e==null?null:typeof Symbol<"u"&&e[Symbol.iterator]||e["@@iterator"];if(n!=null){var i=[],s=!0,o=!1,_,a;try{for(n=n.call(e);!(s=(_=n.next()).done)&&(i.push(_.value),!(t&&i.length===t));s=!0);}catch(E){o=!0,a=E}finally{try{!s&&n.return!=null&&n.return()}finally{if(o)throw a}}return i}}function qo(e){if(Array.isArray(e))return e}function Ri(e,t,n,i,s,o,_){try{var a=e[o](_),E=a.value}catch(R){n(R);return}a.done?t(E):Promise.resolve(E).then(i,s)}function Jo(e){return function(){var t=this,n=arguments;return new Promise(function(i,s){var o=e.apply(t,n);function _(E){Ri(o,i,s,_,a,"next",E)}function a(E){Ri(o,i,s,_,a,"throw",E)}_(void 0)})}}var Ue=null;function e_(e,t){return lr.apply(this,arguments)}function lr(){return lr=Jo(regeneratorRuntime.mark(function e(t,n){var i;return regeneratorRuntime.wrap(function(o){for(;;)switch(o.prev=o.next){case 0:return i=Array.isArray(t)?null:t,o.next=3,t_(i,n);case 3:if(!Array.isArray(t)){o.next=5;break}return o.abrupt("return",(0,Ar.loadModules)(t,n).then(function(_){return ai(ai({},Ue),{},{modules:_})}));case 5:return o.abrupt("return",Ue);case 6:case"end":return o.stop()}},e)})),lr.apply(this,arguments)}function t_(e,t){if(Ue)return Ue;if(e){var n=e.layers.Layer,i=e.core.Accessor,s=e.views["2d"].layers.BaseLayerViewGL2D,o=e.views["3d"].externalRenderers;return ui(n,i,s,o)}return(0,Ar.loadModules)(["esri/layers/Layer","esri/core/Accessor","esri/views/2d/layers/BaseLayerViewGL2D","esri/views/3d/externalRenderers"],t).then(function(_){var a=$o(_,4),E=a[0],R=a[1],u=a[2],l=a[3];return ui(E,R,u,l)})}function ui(e,t,n,i){var s=Ut(t),o=Rr(n),_=xt(s,e,o),a=ur(s,i);return Ue={DeckLayer:_,DeckRenderer:a},Ue}return hi(Ze);})();
28
158
  return __exports__;
29
159
  });