@deck.gl/arcgis 9.0.0-beta.1 → 9.0.0-beta.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (3) hide show
  1. package/dist/dist.dev.js +3139 -53
  2. package/dist.min.js +45 -42
  3. package/package.json +4 -4
package/dist.min.js CHANGED
@@ -4,12 +4,12 @@
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 Es=Object.create;var tt=Object.defineProperty;var ps=Object.getOwnPropertyDescriptor;var bs=Object.getOwnPropertyNames;var Ss=Object.getPrototypeOf,Cs=Object.prototype.hasOwnProperty;var yt=(e,t)=>()=>(t||e((t={exports:{}}).exports,t),t.exports),Os=(e,t)=>{for(var r in t)tt(e,r,{get:t[r],enumerable:!0})},et=(e,t,r,i)=>{if(t&&typeof t=="object"||typeof t=="function")for(let s of bs(t))!Cs.call(e,s)&&s!==r&&tt(e,s,{get:()=>t[s],enumerable:!(i=ps(t,s))||i.enumerable});return e},_e=(e,t,r)=>(et(e,t,"default"),r&&et(r,t,"default")),E=(e,t,r)=>(r=e!=null?Es(Ss(e)):{},et(t||!e||!e.__esModule?tt(r,"default",{value:e,enumerable:!0}):r,e)),xs=e=>et(tt({},"__esModule",{value:!0}),e);var rt=yt((ia,dr)=>{dr.exports=globalThis.deck});var p=yt((aa,Rr)=>{Rr.exports=globalThis.luma});var ds=yt((Dt,_s)=>{(function(e,t){typeof Dt=="object"&&typeof _s<"u"?t(Dt):typeof define=="function"&&define.amd?define(["exports"],t):t(e.esriLoader=e.esriLoader||{})})(Dt,function(e){"use strict";var t=typeof window<"u",r={Promise:t?window.Promise:void 0},i="4.21",s="next";function o(h){if(h.toLowerCase()===s)return s;var T=h&&h.match(/^(\d)\.(\d+)/);return T&&{major:parseInt(T[1],10),minor:parseInt(T[2],10)}}function n(h){return h===void 0&&(h=i),"https://js.arcgis.com/"+h+"/"}function a(h){h===void 0&&(h=i);var T=n(h),S=o(h);if(S!==s&&S.major===3){var C=S.minor<=10?"js/":"";return""+T+C+"esri/css/esri.css"}else return T+"esri/themes/light/main.css"}function l(h){var T=document.createElement("link");return T.rel="stylesheet",T.href=h,T}function f(h,T){if(T){var S=document.querySelector(T);S.parentNode.insertBefore(h,S)}else document.head.appendChild(h)}function c(h){return document.querySelector('link[href*="'+h+'"]')}function _(h){return!h||o(h)?a(h):h}function d(h,T){var S=_(h),C=c(S);return C||(C=l(S),f(C,T)),C}var u={};function A(h){var T=document.createElement("script");return T.type="text/javascript",T.src=h,T.setAttribute("data-esri-loader","loading"),T}function x(h,T,S){var C;S&&(C=R(h,S));var y=function(){T(h),h.removeEventListener("load",y,!1),C&&h.removeEventListener("error",C,!1)};h.addEventListener("load",y,!1)}function R(h,T){var S=function(C){T(C.error||new Error("There was an error attempting to load "+h.src)),h.removeEventListener("error",S,!1)};return h.addEventListener("error",S,!1),S}function P(h){h===void 0&&(h={}),u=h}function b(){return document.querySelector("script[data-esri-loader]")}function B(){var h=window.require;return h&&h.on}function X(h){h===void 0&&(h={});var T={};[u,h].forEach(function(y){for(var V in y)Object.prototype.hasOwnProperty.call(y,V)&&(T[V]=y[V])});var S=T.version,C=T.url||n(S);return new r.Promise(function(y,V){var K=b();if(K){var _r=K.getAttribute("src");_r!==C?V(new Error("The ArcGIS API for JavaScript is already loaded ("+_r+").")):B()?y(K):x(K,y,V)}else if(B())V(new Error("The ArcGIS API for JavaScript is already loaded."));else{var Pt=T.css;if(Pt){var gs=Pt===!0;d(gs?S:Pt,T.insertCssBefore)}K=A(C),x(K,function(){K.setAttribute("data-esri-loader","loaded"),y(K)},V),document.body.appendChild(K)}})}function oe(h){return new r.Promise(function(T,S){var C=window.require.on("error",S);window.require(h,function(){for(var y=[],V=0;V<arguments.length;V++)y[V]=arguments[V];C.remove(),T(y)})})}function q(h,T){if(T===void 0&&(T={}),B())return oe(h);var S=b(),C=S&&S.getAttribute("src");return!T.url&&C&&(T.url=C),X(T).then(function(){return oe(h)})}e.utils=r,e.loadModules=q,e.getScript=b,e.isLoaded=B,e.loadScript=X,e.setDefaultOptions=P,e.loadCss=d,Object.defineProperty(e,"__esModule",{value:!0})})});var Ge={};Os(Ge,{loadArcGISModules:()=>ea});var J={},hr=E(rt());_e(J,E(rt()));if(!hr.Layer)throw new Error("@deck.gl/core is not found");_e(Ge,J);function ur(e,t){var r=typeof Symbol<"u"&&e[Symbol.iterator]||e["@@iterator"];if(!r){if(Array.isArray(e)||(r=Is(e))||t&&e&&typeof e.length=="number"){r&&(e=r);var i=0,s=function(){};return{s,n:function(){return i>=e.length?{done:!0}:{done:!1,value:e[i++]}},e:function(f){throw f},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,n=!1,a;return{s:function(){r=r.call(e)},n:function(){var f=r.next();return o=f.done,f},e:function(f){n=!0,a=f},f:function(){try{!o&&r.return!=null&&r.return()}finally{if(n)throw a}}}}function Is(e,t){if(e){if(typeof e=="string")return Ar(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 Ar(e,t)}}function Ar(e,t){(t==null||t>e.length)&&(t=e.length);for(var r=0,i=new Array(t);r<t;r++)i[r]=e[r];return i}function Ns(e,t,r){return t in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r,e}var Tr={layers:{},layerFilter:{},parameters:{},effects:{},pickingRadius:{},onBeforeRender:{},onAfterRender:{},onClick:{},onHover:{},onDragStart:{},onDrag:{},onDragEnd:{},onError:{},debug:{},drawPickingColors:{},getCursor:{},getTooltip:{}};function vt(e){var t=e.createSubclass({properties:Tr,constructor:function(){var i=this;this._callbacks={},this.watch(Object.keys(Tr),function(s,o,n){i.emit("change",Ns({},n,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 n=ur(o),a;try{for(n.s();!(a=n.n()).done;){var l=a.value;l(s)}}catch(f){n.e(f)}finally{n.f()}}},toJSON:function(){var i={},s=ur(this.keys()),o;try{for(s.s();!(o=s.n()).done;){var n=o.value;this[n]!==void 0&&(i[n]=this[n])}}catch(a){s.e(a)}finally{s.f()}return i}});return t}function Ut(e,t,r){return t.createSubclass({properties:{deck:{},blendMode:{},effect:{}},constructor:function(){this.deck=new e},createLayerView:function(s){return s.type==="2d"?new r({view:s,layer:this}):(console.error("DeckLayer does not support SceneView at the moment. Use DeckRenderer instead."),null)}})}var ue=E(p(),1),F=E(p(),1),zr=E(p(),1);var m=e=>`${e}`;function Q(e,t){if(!e)throw new Error(t||"shadertools: assertion failed.")}var mt={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 Er(e){let t={};for(let[r,i]of Object.entries(e))t[r]=Fs(i);return t}function pr(e,t,r){let i={};for(let[s,o]of Object.entries(t))e&&s in e&&!o.private?(o.validate&&Q(o.validate(e[s],o),`${r}: invalid ${s}`),i[s]=e[s]):i[s]=o.value;return i}function Fs(e){let t=gr(e);if(t!=="object")return{value:e,...mt[t],type:t};if(typeof e=="object")return e?e.type!==void 0?{...e,...mt[e.type],type:e.type}:e.value===void 0?{type:"object",value:e}:(t=gr(e.value),{...e,...mt[t],type:t}):{type:"object",value:null};throw new Error("props")}function gr(e){return Array.isArray(e)||ArrayBuffer.isView(e)?"array":typeof e}var br=m`\
7
+ "use strict";var __exports__=(()=>{var Gn=Object.create;var wt=Object.defineProperty;var eo=Object.getOwnPropertyDescriptor;var to=Object.getOwnPropertyNames;var ro=Object.getPrototypeOf,so=Object.prototype.hasOwnProperty;var mr=(e,t)=>()=>(t||e((t={exports:{}}).exports,t),t.exports),io=(e,t)=>{for(var r in t)wt(e,r,{get:t[r],enumerable:!0})},yt=(e,t,r,s)=>{if(t&&typeof t=="object"||typeof t=="function")for(let i of to(t))!so.call(e,i)&&i!==r&&wt(e,i,{get:()=>t[i],enumerable:!(s=eo(t,i))||s.enumerable});return e},me=(e,t,r)=>(yt(e,t,"default"),r&&yt(r,t,"default")),S=(e,t,r)=>(r=e!=null?Gn(ro(e)):{},yt(t||!e||!e.__esModule?wt(r,"default",{value:e,enumerable:!0}):r,e)),no=e=>yt(wt({},"__esModule",{value:!0}),e);var vt=mr((Xl,ks)=>{ks.exports=globalThis.deck});var x=mr((jl,Ks)=>{Ks.exports=globalThis.luma});var Yn=mr((Er,zn)=>{(function(e,t){typeof Er=="object"&&typeof zn<"u"?t(Er):typeof define=="function"&&define.amd?define(["exports"],t):t(e.esriLoader=e.esriLoader||{})})(Er,function(e){"use strict";var t=typeof window<"u",r={Promise:t?window.Promise:void 0},s="4.21",i="next";function n(T){if(T.toLowerCase()===i)return i;var R=T&&T.match(/^(\d)\.(\d+)/);return R&&{major:parseInt(R[1],10),minor:parseInt(R[2],10)}}function o(T){return T===void 0&&(T=s),"https://js.arcgis.com/"+T+"/"}function a(T){T===void 0&&(T=s);var R=o(T),v=n(T);if(v!==i&&v.major===3){var N=v.minor<=10?"js/":"";return""+R+N+"esri/css/esri.css"}else return R+"esri/themes/light/main.css"}function c(T){var R=document.createElement("link");return R.rel="stylesheet",R.href=T,R}function _(T,R){if(R){var v=document.querySelector(R);v.parentNode.insertBefore(T,v)}else document.head.appendChild(T)}function d(T){return document.querySelector('link[href*="'+T+'"]')}function h(T){return!T||n(T)?a(T):T}function p(T,R){var v=h(T),N=d(v);return N||(N=c(v),_(N,R)),N}var A={};function b(T){var R=document.createElement("script");return R.type="text/javascript",R.src=T,R.setAttribute("data-esri-loader","loading"),R}function y(T,R,v){var N;v&&(N=E(T,v));var k=function(){R(T),T.removeEventListener("load",k,!1),N&&T.removeEventListener("error",N,!1)};T.addEventListener("load",k,!1)}function E(T,R){var v=function(N){R(N.error||new Error("There was an error attempting to load "+T.src)),T.removeEventListener("error",v,!1)};return T.addEventListener("error",v,!1),v}function U(T){T===void 0&&(T={}),A=T}function w(){return document.querySelector("script[data-esri-loader]")}function D(){var T=window.require;return T&&T.on}function z(T){T===void 0&&(T={});var R={};[A,T].forEach(function(k){for(var $ in k)Object.prototype.hasOwnProperty.call(k,$)&&(R[$]=k[$])});var v=R.version,N=R.url||o(v);return new r.Promise(function(k,$){var q=w();if(q){var Us=q.getAttribute("src");Us!==N?$(new Error("The ArcGIS API for JavaScript is already loaded ("+Us+").")):D()?k(q):y(q,k,$)}else if(D())$(new Error("The ArcGIS API for JavaScript is already loaded."));else{var Sr=R.css;if(Sr){var Qn=Sr===!0;p(Qn?v:Sr,R.insertCssBefore)}q=b(N),y(q,function(){q.setAttribute("data-esri-loader","loaded"),k(q)},$),document.body.appendChild(q)}})}function he(T){return new r.Promise(function(R,v){var N=window.require.on("error",v);window.require(T,function(){for(var k=[],$=0;$<arguments.length;$++)k[$]=arguments[$];N.remove(),R(k)})})}function ne(T,R){if(R===void 0&&(R={}),D())return he(T);var v=w(),N=v&&v.getAttribute("src");return!R.url&&N&&(R.url=N),z(R).then(function(){return he(T)})}e.utils=r,e.loadModules=ne,e.getScript=w,e.isLoaded=D,e.loadScript=z,e.setDefaultOptions=U,e.loadCss=p,Object.defineProperty(e,"__esModule",{value:!0})})});var xt={};io(xt,{loadArcGISModules:()=>Ul});var oe={},Ws=S(vt());me(oe,S(vt()));if(!Ws.Layer)throw new Error("@deck.gl/core is not found");me(xt,oe);function Xs(e,t){var r=typeof Symbol<"u"&&e[Symbol.iterator]||e["@@iterator"];if(!r){if(Array.isArray(e)||(r=oo(e))||t&&e&&typeof e.length=="number"){r&&(e=r);var s=0,i=function(){};return{s:i,n:function(){return s>=e.length?{done:!0}:{done:!1,value:e[s++]}},e:function(_){throw _},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 n=!0,o=!1,a;return{s:function(){r=r.call(e)},n:function(){var _=r.next();return n=_.done,_},e:function(_){o=!0,a=_},f:function(){try{!n&&r.return!=null&&r.return()}finally{if(o)throw a}}}}function oo(e,t){if(e){if(typeof e=="string")return Hs(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 Hs(e,t)}}function Hs(e,t){(t==null||t>e.length)&&(t=e.length);for(var r=0,s=new Array(t);r<t;r++)s[r]=e[r];return s}function ao(e,t,r){return t in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r,e}var Vs={layers:{},layerFilter:{},parameters:{},effects:{},pickingRadius:{},onBeforeRender:{},onAfterRender:{},onClick:{},onHover:{},onDragStart:{},onDrag:{},onDragEnd:{},onError:{},debug:{},drawPickingColors:{},getCursor:{},getTooltip:{}};function xr(e){var t=e.createSubclass({properties:Vs,constructor:function(){var s=this;this._callbacks={},this.watch(Object.keys(Vs),function(i,n,o){s.emit("change",ao({},o,i))})},on:function(s,i){this._callbacks[s]=this._callbacks[s]||[],this._callbacks[s].push(i)},emit:function(s,i){var n=this._callbacks[s];if(n){var o=Xs(n),a;try{for(o.s();!(a=o.n()).done;){var c=a.value;c(i)}}catch(_){o.e(_)}finally{o.f()}}},toJSON:function(){var s={},i=Xs(this.keys()),n;try{for(i.s();!(n=i.n()).done;){var o=n.value;this[o]!==void 0&&(s[o]=this[o])}}catch(a){i.e(a)}finally{i.f()}return s}});return t}function yr(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 Ie=S(x(),1),C=S(x(),1),Ei=S(x(),1);var K=e=>`${e}`;function ae(e,t){if(!e)throw new Error(t||"shadertools: assertion failed.")}var wr={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 zs(e){let t={};for(let[r,s]of Object.entries(e))t[r]=lo(s);return t}function Ys(e,t,r){let s={};for(let[i,n]of Object.entries(t))e&&i in e&&!n.private?(n.validate&&ae(n.validate(e[i],n),`${r}: invalid ${i}`),s[i]=e[i]):s[i]=n.value;return s}function lo(e){let t=js(e);if(t!=="object")return{value:e,...wr[t],type:t};if(typeof e=="object")return e?e.type!==void 0?{...e,...wr[e.type],type:e.type}:e.value===void 0?{type:"object",value:e}:(t=js(e.value),{...e,...wr[t],type:t}):{type:"object",value:null};throw new Error("props")}function js(e){return Array.isArray(e)||ArrayBuffer.isView(e)?"array":typeof e}var $s=K`\
9
9
  #ifdef MODULE_LOGDEPTH
10
10
  logdepth_adjustPosition(gl_Position);
11
11
  #endif
12
- `,Sr=m`\
12
+ `,Ls=K`\
13
13
  #ifdef MODULE_MATERIAL
14
14
  gl_FragColor = material_filterColor(gl_FragColor);
15
15
  #endif
@@ -30,25 +30,25 @@ In order to be iterable, non-array objects must have a [Symbol.iterator]() metho
30
30
  #ifdef MODULE_LOGDEPTH
31
31
  logdepth_setFragDepth();
32
32
  #endif
33
- `;var Ms={vertex:br,fragment:Sr},Cr=/void\s+main\s*\([^)]*\)\s*\{\n?/,Or=/}\n?[^{}]*$/,wt=[],ve="__LUMA_INJECT_DECLARATIONS__";function xr(e){let t={vertex:{},fragment:{}};for(let r in e){let i=e[r],s=Bs(r);typeof i=="string"&&(i={order:0,injection:i}),t[s][r]=i}return t}function Bs(e){let t=e.slice(0,2);switch(t){case"vs":return"vertex";case"fs":return"fragment";default:throw new Error(t)}}function Ue(e,t,r){let i=arguments.length>3&&arguments[3]!==void 0?arguments[3]:!1,s=t==="vertex";for(let o in r){let n=r[o];n.sort((l,f)=>l.order-f.order),wt.length=n.length;for(let l=0,f=n.length;l<f;++l)wt[l]=n[l].injection;let a=`${wt.join(`
33
+ `;var co={vertex:$s,fragment:Ls},qs=/void\s+main\s*\([^)]*\)\s*\{\n?/,Zs=/}\n?[^{}]*$/,vr=[],rt="__LUMA_INJECT_DECLARATIONS__";function Js(e){let t={vertex:{},fragment:{}};for(let r in e){let s=e[r],i=_o(r);typeof s=="string"&&(s={order:0,injection:s}),t[i][r]=s}return t}function _o(e){let t=e.slice(0,2);switch(t){case"vs":return"vertex";case"fs":return"fragment";default:throw new Error(t)}}function st(e,t,r){let s=arguments.length>3&&arguments[3]!==void 0?arguments[3]:!1,i=t==="vertex";for(let n in r){let o=r[n];o.sort((c,_)=>c.order-_.order),vr.length=o.length;for(let c=0,_=o.length;c<_;++c)vr[c]=o[c].injection;let a=`${vr.join(`
34
34
  `)}
35
- `;switch(o){case"vs:#decl":s&&(e=e.replace(ve,a));break;case"vs:#main-start":s&&(e=e.replace(Cr,l=>l+a));break;case"vs:#main-end":s&&(e=e.replace(Or,l=>a+l));break;case"fs:#decl":s||(e=e.replace(ve,a));break;case"fs:#main-start":s||(e=e.replace(Cr,l=>l+a));break;case"fs:#main-end":s||(e=e.replace(Or,l=>a+l));break;default:e=e.replace(o,l=>l+a)}}return e=e.replace(ve,""),i&&(e=e.replace(/\}\s*$/,o=>o+Ms[t])),e}var Ds=1,Y=class{static instantiateModules(t){return t.map(r=>{if(r instanceof Y)return r;Q(typeof r!="string",`Shader module use by name is deprecated. Import shader module '${JSON.stringify(r)}' and use it directly.`),r.name||(console.warn("shader module has no name"),r.name=`shader-module-${Ds++}`);let i=new Y(r);return i.dependencies=Y.instantiateModules(r.dependencies||[]),i})}constructor(t){this.name=void 0,this.vs=void 0,this.fs=void 0,this.getModuleUniforms=void 0,this.dependencies=void 0,this.deprecations=void 0,this.defines=void 0,this.injections=void 0,this.uniforms={},this.uniformTypes={};let{name:r,vs:i,fs:s,dependencies:o=[],uniformPropTypes:n={},getUniforms:a,deprecations:l=[],defines:f={},inject:c={}}=t;Q(typeof r=="string"),this.name=r,this.vs=i,this.fs=s,this.getModuleUniforms=a,this.dependencies=Y.instantiateModules(o),this.deprecations=this._parseDeprecationDefinitions(l),this.defines=f,this.injections=xr(c),n&&(this.uniforms=Er(n))}getModuleSource(t){let r;switch(t){case"vertex":r=this.vs||"";break;case"fragment":r=this.fs||"";break;default:Q(!1)}let i=this.name.toUpperCase().replace(/[^0-9a-z]/gi,"_");return`// ----- MODULE ${this.name} ---------------
35
+ `;switch(n){case"vs:#decl":i&&(e=e.replace(rt,a));break;case"vs:#main-start":i&&(e=e.replace(qs,c=>c+a));break;case"vs:#main-end":i&&(e=e.replace(Zs,c=>a+c));break;case"fs:#decl":i||(e=e.replace(rt,a));break;case"fs:#main-start":i||(e=e.replace(qs,c=>c+a));break;case"fs:#main-end":i||(e=e.replace(Zs,c=>a+c));break;default:e=e.replace(n,c=>c+a)}}return e=e.replace(rt,""),s&&(e=e.replace(/\}\s*$/,n=>n+co[t])),e}var fo=1,ee=class{static instantiateModules(t){return t.map(r=>{if(r instanceof ee)return r;ae(typeof r!="string",`Shader module use by name is deprecated. Import shader module '${JSON.stringify(r)}' and use it directly.`),r.name||(console.warn("shader module has no name"),r.name=`shader-module-${fo++}`);let s=new ee(r);return s.dependencies=ee.instantiateModules(r.dependencies||[]),s})}constructor(t){this.name=void 0,this.vs=void 0,this.fs=void 0,this.getModuleUniforms=void 0,this.dependencies=void 0,this.deprecations=void 0,this.defines=void 0,this.injections=void 0,this.uniforms={},this.uniformTypes={};let{name:r,vs:s,fs:i,dependencies:n=[],uniformPropTypes:o={},getUniforms:a,deprecations:c=[],defines:_={},inject:d={}}=t;ae(typeof r=="string"),this.name=r,this.vs=s,this.fs=i,this.getModuleUniforms=a,this.dependencies=ee.instantiateModules(n),this.deprecations=this._parseDeprecationDefinitions(c),this.defines=_,this.injections=Js(d),o&&(this.uniforms=zs(o))}getModuleSource(t){let r;switch(t){case"vertex":r=this.vs||"";break;case"fragment":r=this.fs||"";break;default:ae(!1)}let s=this.name.toUpperCase().replace(/[^0-9a-z]/gi,"_");return`// ----- MODULE ${this.name} ---------------
36
36
 
37
- #define MODULE_${i}
37
+ #define MODULE_${s}
38
38
  ${r}
39
39
 
40
- `}getUniforms(t,r){return this.getModuleUniforms?this.getModuleUniforms(t,r):pr(t,this.uniforms,this.name)}getDefines(){return this.defines}checkDeprecations(t,r){this.deprecations.forEach(i=>{var s;(s=i.regex)!==null&&s!==void 0&&s.test(t)&&(i.deprecated?r.deprecated(i.old,i.new)():r.removed(i.old,i.new)())})}_parseDeprecationDefinitions(t){return t.forEach(r=>{switch(r.type){case"function":r.regex=new RegExp(`\\b${r.old}\\(`);break;default:r.regex=new RegExp(`${r.type} ${r.old};`)}}),t}_defaultGetUniforms(){let t=arguments.length>0&&arguments[0]!==void 0?arguments[0]:{},r={},i=this.uniforms;for(let s in i){let o=i[s];s in t&&!o.private?(o.validate&&Q(o.validate(t[s],o),`${this.name}: invalid ${s}`),r[s]=t[s]):r[s]=o.value}return r}};function me(e){let t=Y.instantiateModules(e);return Ps(t)}function Ps(e){let t={},r={};return Ir({modules:e,level:0,moduleMap:t,moduleDepth:r}),Object.keys(r).sort((i,s)=>r[s]-r[i]).map(i=>t[i])}function Ir(e){let{modules:t,level:r,moduleMap:i,moduleDepth:s}=e;if(r>=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]<r)&&(s[o.name]=r);for(let o of t)o.dependencies&&Ir({modules:o.dependencies,level:r+1,moduleMap:i,moduleDepth:s})}function Nr(e){switch(e?.gpu.toLowerCase()){case"apple":return m`\
40
+ `}getUniforms(t,r){return this.getModuleUniforms?this.getModuleUniforms(t,r):Ys(t,this.uniforms,this.name)}getDefines(){return this.defines}checkDeprecations(t,r){this.deprecations.forEach(s=>{var i;(i=s.regex)!==null&&i!==void 0&&i.test(t)&&(s.deprecated?r.deprecated(s.old,s.new)():r.removed(s.old,s.new)())})}_parseDeprecationDefinitions(t){return t.forEach(r=>{switch(r.type){case"function":r.regex=new RegExp(`\\b${r.old}\\(`);break;default:r.regex=new RegExp(`${r.type} ${r.old};`)}}),t}_defaultGetUniforms(){let t=arguments.length>0&&arguments[0]!==void 0?arguments[0]:{},r={},s=this.uniforms;for(let i in s){let n=s[i];i in t&&!n.private?(n.validate&&ae(n.validate(t[i],n),`${this.name}: invalid ${i}`),r[i]=t[i]):r[i]=n.value}return r}};function it(e){let t=ee.instantiateModules(e);return uo(t)}function uo(e){let t={},r={};return Qs({modules:e,level:0,moduleMap:t,moduleDepth:r}),Object.keys(r).sort((s,i)=>r[i]-r[s]).map(s=>t[s])}function Qs(e){let{modules:t,level:r,moduleMap:s,moduleDepth:i}=e;if(r>=5)throw new Error("Possible loop in shader dependency graph");for(let n of t)s[n.name]=n,(i[n.name]===void 0||i[n.name]<r)&&(i[n.name]=r);for(let n of t)n.dependencies&&Qs({modules:n.dependencies,level:r+1,moduleMap:s,moduleDepth:i})}function Gs(e){switch(e?.gpu.toLowerCase()){case"apple":return K`\
41
41
  #define APPLE_GPU
42
42
  // Apple optimizes away the calculation necessary for emulated fp64
43
43
  #define LUMA_FP64_CODE_ELIMINATION_WORKAROUND 1
44
44
  #define LUMA_FP32_TAN_PRECISION_WORKAROUND 1
45
45
  // Intel GPU doesn't have full 32 bits precision in same cases, causes overflow
46
46
  #define LUMA_FP64_HIGH_BITS_OVERFLOW_WORKAROUND 1
47
- `;case"nvidia":return m`\
47
+ `;case"nvidia":return K`\
48
48
  #define NVIDIA_GPU
49
49
  // Nvidia optimizes away the calculation necessary for emulated fp64
50
50
  #define LUMA_FP64_CODE_ELIMINATION_WORKAROUND 1
51
- `;case"intel":return m`\
51
+ `;case"intel":return K`\
52
52
  #define INTEL_GPU
53
53
  // Intel optimizes away the calculation necessary for emulated fp64
54
54
  #define LUMA_FP64_CODE_ELIMINATION_WORKAROUND 1
@@ -56,9 +56,9 @@ ${r}
56
56
  #define LUMA_FP32_TAN_PRECISION_WORKAROUND 1
57
57
  // Intel GPU doesn't have full 32 bits precision in same cases, causes overflow
58
58
  #define LUMA_FP64_HIGH_BITS_OVERFLOW_WORKAROUND 1
59
- `;case"amd":return m`\
59
+ `;case"amd":return K`\
60
60
  #define AMD_GPU
61
- `;default:return m`\
61
+ `;default:return K`\
62
62
  #define DEFAULT_GPU
63
63
  // Prevent driver from optimizing away the calculation necessary for emulated fp64
64
64
  #define LUMA_FP64_CODE_ELIMINATION_WORKAROUND 1
@@ -66,12 +66,12 @@ ${r}
66
66
  #define LUMA_FP32_TAN_PRECISION_WORKAROUND 1
67
67
  // If the GPU doesn't have full 32 bits precision, will causes overflow
68
68
  #define LUMA_FP64_HIGH_BITS_OVERFLOW_WORKAROUND 1
69
- `}}function Fr(e){let t="";return e.features.has("webgl2")&&(t+=m`\
69
+ `}}function ei(e){let t="";return e.features.has("webgl2")&&(t+=K`\
70
70
  # define FEATURE_GLSL_DERIVATIVES
71
71
  # define FEATURE_GLSL_DRAW_BUFFERS
72
72
  # define FEATURE_GLSL_FRAG_DEPTH
73
73
  # define FEATURE_GLSL_TEXTURE_LOD
74
- `),e.features.has("webgl2")||(e.features.has("glsl-frag-depth")&&(t+=m`\
74
+ `),e.features.has("webgl2")||(e.features.has("glsl-frag-depth")&&(t+=K`\
75
75
 
76
76
  // FEATURE_GLSL_FRAG_DEPTH => gl_FragDepth is available
77
77
  #ifdef GL_EXT_frag_depth
@@ -80,59 +80,62 @@ ${r}
80
80
  # define FRAG_DEPTH
81
81
  # define gl_FragDepth gl_FragDepthEXT
82
82
  #endif
83
- `),e!=null&&e.features.has("glsl-derivatives")&&(t+=m`\
83
+ `),e!=null&&e.features.has("glsl-derivatives")&&(t+=K`\
84
84
 
85
85
  // FEATURE_GLSL_DERIVATIVES => dxdF, dxdY and fwidth are available
86
86
  #if defined(GL_OES_standard_derivatives) || defined(FEATURE_GLSL_DERIVATIVES)
87
87
  # extension GL_OES_standard_derivatives : enable
88
88
  # define FEATURE_GLSL_DERIVATIVES
89
89
  #endif
90
- `),e!=null&&e.features.has("glsl-frag-data")&&(t+=m`\
90
+ `),e!=null&&e.features.has("glsl-frag-data")&&(t+=K`\
91
91
 
92
92
  // FEATURE_GLSL_DRAW_BUFFERS => gl_FragData[] is available
93
93
  #ifdef GL_EXT_draw_buffers
94
94
  # extension GL_EXT_draw_buffers : require
95
95
  # define FEATURE_GLSL_DRAW_BUFFERS
96
96
  #endif
97
- `),e!=null&&e.features.has("glsl-texture-lod")&&(t+=m`\
97
+ `),e!=null&&e.features.has("glsl-texture-lod")&&(t+=K`\
98
98
  // TEXTURE_LOD => texture2DLod etc are available
99
99
  #ifdef GL_EXT_shader_texture_lod
100
100
  # extension GL_EXT_shader_texture_lod : enable
101
101
  # define FEATURE_GLSL_TEXTURE_LOD
102
102
  # define TEXTURE_LOD
103
103
  #endif
104
- `)),t}function Br(e,t,r){var i;if(Number(((i=e.match(/^#version[ \t]+(\d+)/m))===null||i===void 0?void 0:i[1])||100)!==300)throw new Error("luma.gl v9 only supports GLSL 3.00 shader sources");switch(t){case 300:switch(r){case"vertex":return e=we(e,ys),e;case"fragment":return e=we(e,vs),e;default:throw new Error(r)}case 100:switch(r){case"vertex":return e=we(e,Us),e;case"fragment":return e=we(e,yr),e=ws(e),e;default:throw new Error(r)}default:throw new Error(String(t))}}var Dr=[[/^(#version[ \t]+(100|300[ \t]+es))?[ \t]*\n/,`#version 300 es
105
- `],[/\btexture(2D|2DProj|Cube)Lod(EXT)?\(/g,"textureLod("],[/\btexture(2D|2DProj|Cube)(EXT)?\(/g,"texture("]],ys=[...Dr,[xe("attribute"),"in $1"],[xe("varying"),"out $1"]],vs=[...Dr,[xe("varying"),"in $1"]],Pr=[[/^#version[ \t]+300[ \t]+es/,"#version 100"],[/\btexture(2D|2DProj|Cube)Lod\(/g,"texture$1LodEXT("],[/\btexture\(/g,"texture2D("],[/\btextureLod\(/g,"texture2DLodEXT("]],Us=[...Pr,[xe("in"),"attribute $1"],[xe("out"),"varying $1"]],yr=[...Pr,[xe("in"),"varying $1"]],ms="gl_FragColor",Mr=/\bout[ \t]+vec4[ \t]+(\w+)[ \t]*;\n?/;function we(e,t){for(let[r,i]of t)e=e.replace(r,i);return e}function ws(e){e=we(e,yr);let t=Mr.exec(e);if(t){let r=t[1];e=e.replace(Mr,"").replace(new RegExp(`\\b${r}\\b`,"g"),ms)}return e}function xe(e){return new RegExp(`\\b${e}[ \\t]+(\\w+[ \\t]+\\w+(\\[\\w+\\])?;)`,"g")}function Wt(e,t){let r="";for(let i in e){let s=e[i];if(r+=`void ${s.signature} {
106
- `,s.header&&(r+=` ${s.header}`),t[i]){let o=t[i];o.sort((n,a)=>n.order-a.order);for(let n of o)r+=` ${n.injection}
107
- `}s.footer&&(r+=` ${s.footer}`),r+=`}
108
- `}return r}function Xt(e){let t={vertex:{},fragment:{}};for(let r of e){let i,s;typeof r!="string"?(i=r,s=i.hook):(i={},s=r),s=s.trim();let[o,n]=s.split(":"),a=s.replace(/\(.+/,""),l=Object.assign(i,{signature:n});switch(o){case"vs":t.vertex[a]=l;break;case"fs":t.fragment[a]=l;break;default:throw new Error(o)}}return t}function vr(e,t){return{name:Ws(e,t),language:"glsl",version:Xs(e)}}function Ws(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 Xs(e){let t=100,r=e.match(/[^\s]+/g);if(r&&r.length>=2&&r[0]==="#version"){let i=parseInt(r[1],10);Number.isFinite(i)&&(t=i)}if(t!==100&&t!==300)throw new Error(`Invalid GLSL version ${t}`);return t}var Wr=`
104
+ `)),t}function ri(e,t,r){var s;if(Number(((s=e.match(/^#version[ \t]+(\d+)/m))===null||s===void 0?void 0:s[1])||100)!==300)throw new Error("luma.gl v9 only supports GLSL 3.00 shader sources");switch(t){case 300:switch(r){case"vertex":return e=nt(e,ho),e;case"fragment":return e=nt(e,go),e;default:throw new Error(r)}case 100:switch(r){case"vertex":return e=nt(e,po),e;case"fragment":return e=nt(e,ni),e=Ao(e),e;default:throw new Error(r)}default:throw new Error(String(t))}}var si=[[/^(#version[ \t]+(100|300[ \t]+es))?[ \t]*\n/,`#version 300 es
105
+ `],[/\btexture(2D|2DProj|Cube)Lod(EXT)?\(/g,"textureLod("],[/\btexture(2D|2DProj|Cube)(EXT)?\(/g,"texture("]],ho=[...si,[Ve("attribute"),"in $1"],[Ve("varying"),"out $1"]],go=[...si,[Ve("varying"),"in $1"]],ii=[[/^#version[ \t]+300[ \t]+es/,"#version 100"],[/\btexture(2D|2DProj|Cube)Lod\(/g,"texture$1LodEXT("],[/\btexture\(/g,"texture2D("],[/\btextureLod\(/g,"texture2DLodEXT("]],po=[...ii,[Ve("in"),"attribute $1"],[Ve("out"),"varying $1"]],ni=[...ii,[Ve("in"),"varying $1"]],To="gl_FragColor",ti=/\bout[ \t]+vec4[ \t]+(\w+)[ \t]*;\n?/;function nt(e,t){for(let[r,s]of t)e=e.replace(r,s);return e}function Ao(e){e=nt(e,ni);let t=ti.exec(e);if(t){let r=t[1];e=e.replace(ti,"").replace(new RegExp(`\\b${r}\\b`,"g"),To)}return e}function Ve(e){return new RegExp(`\\b${e}[ \\t]+(\\w+[ \\t]+\\w+(\\[\\w+\\])?;)`,"g")}function Nr(e,t){let r="";for(let s in e){let i=e[s];if(r+=`void ${i.signature} {
106
+ `,i.header&&(r+=` ${i.header}`),t[s]){let n=t[s];n.sort((o,a)=>o.order-a.order);for(let o of n)r+=` ${o.injection}
107
+ `}i.footer&&(r+=` ${i.footer}`),r+=`}
108
+ `}return r}function Ir(e){let t={vertex:{},fragment:{}};for(let r of e){let s,i;typeof r!="string"?(s=r,i=s.hook):(s={},i=r),i=i.trim();let[n,o]=i.split(":"),a=i.replace(/\(.+/,""),c=Object.assign(s,{signature:o});switch(n){case"vs":t.vertex[a]=c;break;case"fs":t.fragment[a]=c;break;default:throw new Error(n)}}return t}function oi(e,t){return{name:bo(e,t),language:"glsl",version:Ro(e)}}function bo(e){let t=arguments.length>1&&arguments[1]!==void 0?arguments[1]:"unnamed",s=/#define[^\S\r\n]*SHADER_NAME[^\S\r\n]*([A-Za-z0-9_-]+)\s*/.exec(e);return s?s[1]:t}function Ro(e){let t=100,r=e.match(/[^\s]+/g);if(r&&r.length>=2&&r[0]==="#version"){let s=parseInt(r[1],10);Number.isFinite(s)&&(t=s)}if(t!==100&&t!==300)throw new Error(`Invalid GLSL version ${t}`);return t}var _i=`
109
109
 
110
- ${ve}
111
- `,Hs=m`\
110
+ ${rt}
111
+ `,Eo=K`\
112
112
  precision highp float;
113
- `;function Xr(e){let{vs:t,fs:r}=e,i=me(e.modules||[]);switch(e.platformInfo.shaderLanguage){case"glsl":return{vs:mr(e.platformInfo,{...e,source:t,stage:"vertex",modules:i}),fs:mr(e.platformInfo,{...e,source:r,stage:"fragment",modules:i}),getUniforms:wr(i)};case"wgsl":return{vs:Ur(e.platformInfo,{...e,source:t,stage:"vertex",modules:i}),fs:Ur(e.platformInfo,{...e,source:r,stage:"fragment",modules:i}),getUniforms:wr(i)}}}function Ur(e,t){let{source:r,stage:i,modules:s,defines:o={},hookFunctions:n=[],inject:a={},log:l}=t;Q(typeof r=="string","shader source must be a string");let f=r,c={};s.forEach(R=>{Object.assign(c,R.getDefines())}),Object.assign(c,o);let _="",d=Xt(n),u={},A={},x={};for(let R in a){let P=typeof a[R]=="string"?{injection:a[R],order:0}:a[R],b=/^(v|f)s:(#)?([\w-]+)$/.exec(R);if(b){let B=b[2],X=b[3];B?X==="decl"?A[R]=[P]:x[R]=[P]:u[R]=[P]}else x[R]=[P]}for(let R of s){l&&R.checkDeprecations(f,l);let P=R.getModuleSource(i,"wgsl");_+=P;let b=R.injections[i];for(let B in b){let X=/^(v|f)s:#([\w-]+)$/.exec(B);if(X){let q=X[2]==="decl"?A:x;q[B]=q[B]||[],q[B].push(b[B])}else u[B]=u[B]||[],u[B].push(b[B])}}return _+=Wr,_=Ue(_,i,A),_+=Wt(d[i],u),_+=f,_=Ue(_,i,x),_}function mr(e,t){let{id:r,source:i,stage:s,language:o="glsl",modules:n,defines:a={},hookFunctions:l=[],inject:f={},prologue:c=!0,log:_}=t;Q(typeof i=="string","shader source must be a string");let d=o==="glsl"?vr(i).version:-1,u=e.shaderLanguageVersion,A=d===100?"#version 100":"#version 300 es",R=i.split(`
113
+ `;function fi(e){let{vs:t,fs:r}=e,s=it(e.modules||[]);switch(e.platformInfo.shaderLanguage){case"glsl":return{vs:li(e.platformInfo,{...e,source:t,stage:"vertex",modules:s}),fs:li(e.platformInfo,{...e,source:r,stage:"fragment",modules:s}),getUniforms:ci(s)};case"wgsl":return{vs:ai(e.platformInfo,{...e,source:t,stage:"vertex",modules:s}),fs:ai(e.platformInfo,{...e,source:r,stage:"fragment",modules:s}),getUniforms:ci(s)}}}function ai(e,t){let{source:r,stage:s,modules:i,defines:n={},hookFunctions:o=[],inject:a={},log:c}=t;ae(typeof r=="string","shader source must be a string");let _=r,d={};i.forEach(E=>{Object.assign(d,E.getDefines())}),Object.assign(d,n);let h="",p=Ir(o),A={},b={},y={};for(let E in a){let U=typeof a[E]=="string"?{injection:a[E],order:0}:a[E],w=/^(v|f)s:(#)?([\w-]+)$/.exec(E);if(w){let D=w[2],z=w[3];D?z==="decl"?b[E]=[U]:y[E]=[U]:A[E]=[U]}else y[E]=[U]}for(let E of i){c&&E.checkDeprecations(_,c);let U=E.getModuleSource(s,"wgsl");h+=U;let w=E.injections[s];for(let D in w){let z=/^(v|f)s:#([\w-]+)$/.exec(D);if(z){let ne=z[2]==="decl"?b:y;ne[D]=ne[D]||[],ne[D].push(w[D])}else A[D]=A[D]||[],A[D].push(w[D])}}return h+=_i,h=st(h,s,b),h+=Nr(p[s],A),h+=_,h=st(h,s,y),h}function li(e,t){let{id:r,source:s,stage:i,language:n="glsl",modules:o,defines:a={},hookFunctions:c=[],inject:_={},prologue:d=!0,log:h}=t;ae(typeof s=="string","shader source must be a string");let p=n==="glsl"?oi(s).version:-1,A=e.shaderLanguageVersion,b=p===100?"#version 100":"#version 300 es",E=s.split(`
114
114
  `).slice(1).join(`
115
- `),P={};n.forEach(h=>{Object.assign(P,h.getDefines())}),Object.assign(P,a);let b="";switch(o){case"wgsl":break;case"glsl":b=c?`${A}
115
+ `),U={};o.forEach(T=>{Object.assign(U,T.getDefines())}),Object.assign(U,a);let w="";switch(n){case"wgsl":break;case"glsl":w=d?`${b}
116
116
 
117
117
  // ----- PROLOGUE -------------------------
118
- ${Vs({id:r,source:i,stage:s})}
119
- ${`#define SHADER_TYPE_${s.toUpperCase()}`}
120
- ${Nr(e)}
121
- ${Fr(e)}
122
- ${s==="fragment"?Hs:""}
118
+ ${So({id:r,source:s,stage:i})}
119
+ ${`#define SHADER_TYPE_${i.toUpperCase()}`}
120
+ ${Gs(e)}
121
+ ${ei(e)}
122
+ ${i==="fragment"?Eo:""}
123
123
 
124
124
  // ----- APPLICATION DEFINES -------------------------
125
125
 
126
- ${ks(P)}
126
+ ${mo(U)}
127
127
 
128
- `:`${A}
129
- `;break}let B=Xt(l),X={},oe={},q={};for(let h in f){let T=typeof f[h]=="string"?{injection:f[h],order:0}:f[h],S=/^(v|f)s:(#)?([\w-]+)$/.exec(h);if(S){let C=S[2],y=S[3];C?y==="decl"?oe[h]=[T]:q[h]=[T]:X[h]=[T]}else q[h]=[T]}for(let h of n){_&&h.checkDeprecations(R,_);let T=h.getModuleSource(s);b+=T;let S=h.injections[s];for(let C in S){let y=/^(v|f)s:#([\w-]+)$/.exec(C);if(y){let K=y[2]==="decl"?oe:q;K[C]=K[C]||[],K[C].push(S[C])}else X[C]=X[C]||[],X[C].push(S[C])}}return b+="// ----- MAIN SHADER SOURCE -------------------------",b+=Wr,b=Ue(b,s,oe),b+=Wt(B[s],X),b+=R,b=Ue(b,s,q),o==="glsl"&&d!==u&&(b=Br(b,u,s)),b.trim()}function wr(e){return function(r){let i={};for(let s of e){let o=s.getUniforms(r,i);Object.assign(i,o)}return i}}function Vs(e){let{id:t,source:r,stage:i}=e;return t&&r.indexOf("SHADER_NAME")===-1?`
130
- #define SHADER_NAME ${t}_${i}
128
+ `:`${b}
129
+ `;break}let D=Ir(c),z={},he={},ne={};for(let T in _){let R=typeof _[T]=="string"?{injection:_[T],order:0}:_[T],v=/^(v|f)s:(#)?([\w-]+)$/.exec(T);if(v){let N=v[2],k=v[3];N?k==="decl"?he[T]=[R]:ne[T]=[R]:z[T]=[R]}else ne[T]=[R]}for(let T of o){h&&T.checkDeprecations(E,h);let R=T.getModuleSource(i);w+=R;let v=T.injections[i];for(let N in v){let k=/^(v|f)s:#([\w-]+)$/.exec(N);if(k){let q=k[2]==="decl"?he:ne;q[N]=q[N]||[],q[N].push(v[N])}else z[N]=z[N]||[],z[N].push(v[N])}}return w+="// ----- MAIN SHADER SOURCE -------------------------",w+=_i,w=st(w,i,he),w+=Nr(D[i],z),w+=E,w=st(w,i,ne),n==="glsl"&&p!==A&&(w=ri(w,A,i)),w.trim()}function ci(e){return function(r){let s={};for(let i of e){let n=i.getUniforms(r,s);Object.assign(s,n)}return s}}function So(e){let{id:t,source:r,stage:s}=e;return t&&r.indexOf("SHADER_NAME")===-1?`
130
+ #define SHADER_NAME ${t}_${s}
131
131
 
132
- `:""}function ks(){let e=arguments.length>0&&arguments[0]!==void 0?arguments[0]:{},t="";for(let r in e){let i=e[r];(i||Number.isFinite(i))&&(t+=`#define ${r.toUpperCase()} ${e[r]}
133
- `)}return t}function Vr(e){if(!e.vs)throw new Error("no vertex shader");let t=Hr(e.platformInfo,e.vs),r;return e.fs&&(r=Hr(e.platformInfo,e.fs)),{...e,vs:t,fs:r}}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 $=class{constructor(){this._hookFunctions=[],this._defaultModules=[]}static getDefaultShaderAssembler(){return $.defaultShaderAssembler=$.defaultShaderAssembler||new $,$.defaultShaderAssembler}addDefaultModule(t){this._defaultModules.find(r=>r.name===(typeof t=="string"?t:t.name))||this._defaultModules.push(t)}removeDefaultModule(t){let r=typeof t=="string"?t:t.name;this._defaultModules=this._defaultModules.filter(i=>i.name!==r)}addShaderHook(t,r){r&&(t=Object.assign(r,{hook:t})),this._hookFunctions.push(t)}assembleShaders(t){let r=this._getModuleList(t.modules),i=this._hookFunctions,s=Vr(t);return{...Xr({platformInfo:t.platformInfo,...s,modules:r,hookFunctions:i}),modules:r}}_getModuleList(){let t=arguments.length>0&&arguments[0]!==void 0?arguments[0]:[],r=new Array(this._defaultModules.length+t.length),i={},s=0;for(let o=0,n=this._defaultModules.length;o<n;++o){let a=this._defaultModules[o],l=a.name;r[s++]=a,i[l]=!0}for(let o=0,n=t.length;o<n;++o){let a=t[o],l=a.name;i[l]||(r[s++]=a,i[l]=!0)}return r.length=s,Y.instantiateModules(r)}};$.defaultShaderAssembler=void 0;var Ht=E(p(),1);var it=class{constructor(t){this.modules=void 0,this.moduleUniforms=void 0,this.moduleBindings=void 0,this.moduleUniformsChanged=void 0;let r=me(Object.values(t));Ht.log.log(1,"Creating ShaderInputs with modules",r.map(i=>i.name))(),this.modules=t,this.moduleUniforms={},this.moduleBindings={};for(let[i,s]of Object.entries(t)){let o=i;this.moduleUniforms[o]=s.defaultUniforms||{},this.moduleBindings[o]={}}}destroy(){}setProps(t){for(let i of Object.keys(t)){var r;let s=i,o=t[s],n=this.modules[s];if(!n){Ht.log.warn(`Module ${i} not found`)();continue}let a=this.moduleUniforms[s],l=((r=n.getUniforms)===null||r===void 0?void 0:r.call(n,o,this.moduleUniforms[s]))||o;this.moduleUniforms[s]={...a,...l}}}getModules(){return Object.values(this.modules)}getUniformValues(){return this.moduleUniforms}getBindings(){let t={};for(let r of Object.values(this.moduleBindings))Object.assign(t,r);return t}getDebugTable(){let t={};for(let[i,s]of Object.entries(this.moduleUniforms))for(let[o,n]of Object.entries(s)){var r;t[`${i}.${o}`]={type:(r=this.modules[i].uniformTypes)===null||r===void 0?void 0:r[o],value:String(n)}}return t}};var ne=E(p(),1),st=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,ne.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,ne.assert)(this.indices.usage===ne.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 kr(e,t){if(t instanceof st)return t;let r=Ks(e,t),{attributes:i,bufferLayout:s}=js(e,t);return new st({topology:t.topology||"triangle-list",bufferLayout:s,vertexCount:t.vertexCount,indices:r,attributes:i})}function Ks(e,t){if(!t.indices)return;let r=t.indices.value;return e.createBuffer({usage:ne.Buffer.INDEX,data:r})}function js(e,t){let r=[],i={};for(let[o,n]of Object.entries(t.attributes)){let a=o;switch(o){case"POSITION":a="positions";break;case"NORMAL":a="normals";break;case"TEXCOORD_0":a="texCoords";break;case"COLOR_0":a="colors";break}i[a]=e.createBuffer({data:n.value,id:`${o}-buffer`});let{value:l,size:f,normalized:c}=n;r.push({name:a,format:(0,ne.getVertexFormatFromAttribute)(l,f,c)})}let s=t._calculateVertexCount(t.attributes,t.indices);return{attributes:i,bufferLayout:r,vertexCount:s}}var Kr=E(p(),1),de=class{static getDefaultPipelineFactory(t){return t._lumaData.defaultPipelineFactory=t._lumaData.defaultPipelineFactory||new de(t),t._lumaData.defaultPipelineFactory}constructor(t){this.device=void 0,this._hashCounter=0,this._hashes={},this._useCounts={},this._pipelineCache={},this.device=t}createRenderPipeline(t){let r={...de.defaultProps,...t},i=this._hashRenderPipeline({...r});if(!this._pipelineCache[i]){let s=this.device.createRenderPipeline({...r,vs:this.device.createShader({stage:"vertex",source:r.vs}),fs:r.fs?this.device.createShader({stage:"fragment",source:r.fs}):null});s.hash=i,this._pipelineCache[i]=s,this._useCounts[i]=0}return this._useCounts[i]++,this._pipelineCache[i]}release(t){let r=t.hash;this._useCounts[r]--,this._useCounts[r]===0&&(this._pipelineCache[r].destroy(),delete this._pipelineCache[r],delete this._useCounts[r])}_createRenderPipeline(t){if(!t.fs)throw new Error("fs");return this.device.createRenderPipeline({...t,vs:this.device.createShader({stage:"vertex",source:t.vs}),fs:t.fs?this.device.createShader({stage:"fragment",source:t.fs}):null})}_hashRenderPipeline(t){let r=this._getHash(t.vs),i=t.fs?this._getHash(t.fs):0,s="-";switch(this.device.info.type){case"webgpu":let o=this._getHash(JSON.stringify(t.parameters)),n=this._getHash(JSON.stringify(t.bufferLayout));return`${r}/${i}V${s}T${t.topology}P${o}BL${n}}`;default:return`${r}/${i}V${s}`}}_getHash(t){return this._hashes[t]===void 0&&(this._hashes[t]=this._hashCounter++),this._hashes[t]}};de.defaultProps={...Kr.RenderPipeline.defaultProps,vs:void 0,fs:void 0};function jr(e){let t=arguments.length>1&&arguments[1]!==void 0?arguments[1]:"",r={},i=`Shader Layout for ${t}`;for(let s of e.attributes)if(s){let o=`${s.location} ${s.name}: ${s.type}`;r[`in ${o}`]={[i]:s.stepMode||"vertex"}}for(let s of e.varyings||[]){let o=`${s.location} ${s.name}`;r[`out ${o}`]={[i]:JSON.stringify(s.accessor)}}return r}var Ie=2,Ys=1e4,he=class{constructor(t,r){var i,s,o;this.device=void 0,this.id=void 0,this.vs=void 0,this.fs=void 0,this.pipelineFactory=void 0,this.userData={},this.parameters=void 0,this.topology=void 0,this.bufferLayout=void 0,this.vertexCount=void 0,this.instanceCount=0,this.indexBuffer=null,this.bufferAttributes={},this.constantAttributes={},this.bindings={},this.uniforms={},this.vertexArray=void 0,this.transformFeedback=null,this.pipeline=void 0,this.shaderInputs=void 0,this._uniformStore=void 0,this._pipelineNeedsUpdate="newly created",this._attributeInfos={},this._gpuGeometry=null,this._getModuleUniforms=void 0,this.props=void 0,this._lastLogTime=0,this._logOpen=!1,this.props={...he.defaultProps,...r},r=this.props,this.id=r.id||(0,F.uid)("model"),this.device=t,Object.assign(this.userData,r.userData);let n=Object.fromEntries(((i=this.props.modules)===null||i===void 0?void 0:i.map(d=>[d.name,d]))||[]);this.setShaderInputs(r.shaderInputs||new it(n));let a=$s(t),l=(((s=this.props.modules)===null||s===void 0?void 0:s.length)>0?this.props.modules:(o=this.shaderInputs)===null||o===void 0?void 0:o.getModules())||[],{vs:f,fs:c,getUniforms:_}=this.props.shaderAssembler.assembleShaders({platformInfo:a,...this.props,modules:l});if(this.vs=f,this.fs=c,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,r.geometry&&(this._gpuGeometry=this.setGeometry(r.geometry)),this.pipelineFactory=r.pipelineFactory||de.getDefaultPipelineFactory(this.device),this.pipeline=this._updatePipeline(),this.vertexArray=t.createVertexArray({renderPipeline:this.pipeline}),this._gpuGeometry&&this._setGeometryAttributes(this._gpuGeometry),r.vertexCount&&this.setVertexCount(r.vertexCount),r.instanceCount&&this.setInstanceCount(r.instanceCount),r.indices)throw new Error("Model.props.indices removed. Use props.indexBuffer");r.indexBuffer&&this.setIndexBuffer(r.indexBuffer),r.attributes&&this.setAttributes(r.attributes),r.constantAttributes&&this.setConstantAttributes(r.constantAttributes),r.bindings&&this.setBindings(r.bindings),r.uniforms&&this.setUniforms(r.uniforms),r.moduleSettings&&(F.log.warn("Model.props.moduleSettings is deprecated. Use Model.shaderInputs.setProps()")(),this.updateModuleSettings(r.moduleSettings)),r.transformFeedback&&(this.transformFeedback=r.transformFeedback),Object.seal(this)}destroy(){this.pipelineFactory.release(this.pipeline),this._uniformStore.destroy()}predraw(){this.updateShaderInputs()}draw(t){this.predraw();try{this._logDrawCallStart(),this.pipeline=this._updatePipeline(),this.pipeline.setBindings(this.bindings),this.pipeline.setUniforms(this.uniforms),this.pipeline.draw({renderPass:t,vertexArray:this.vertexArray,vertexCount:this.vertexCount,instanceCount:this.instanceCount,transformFeedback:this.transformFeedback})}finally{this._logDrawCallEnd()}}setGeometry(t){let r=t&&kr(this.device,t);return this.setTopology(r.topology||"triangle-list"),this.bufferLayout=Yr(this.bufferLayout,r.bufferLayout),this.vertexArray&&this._setGeometryAttributes(r),r}_setGeometryAttributes(t){this.vertexCount=t.vertexCount,this.setAttributes(t.attributes,"ignore-unknown"),this.setIndexBuffer(t.indices)}setTopology(t){t!==this.topology&&(this.topology=t,this._setPipelineNeedsUpdate("topology"))}setBufferLayout(t){this.bufferLayout=this._gpuGeometry?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,F.deepEqual)(t,this.parameters,2)||(this.parameters=t,this._setPipelineNeedsUpdate("parameters"))}setVertexCount(t){this.vertexCount=t}setInstanceCount(t){this.instanceCount=t}setShaderInputs(t){this.shaderInputs=t,this._uniformStore=new ue.UniformStore(this.shaderInputs.modules);for(let r of Object.keys(this.shaderInputs.modules)){let i=this._uniformStore.getManagedUniformBuffer(this.device,r);this.bindings[`${r}Uniforms`]=i}}updateShaderInputs(){this._uniformStore.setUniforms(this.shaderInputs.getUniformValues())}updateModuleSettings(t){F.log.warn("Model.updateModuleSettings is deprecated. Use Model.shaderInputs.setProps()")();let{bindings:r,uniforms:i}=(0,F.splitUniformsAndBindings)(this._getModuleUniforms(t));Object.assign(this.bindings,r),Object.assign(this.uniforms,i)}setBindings(t){Object.assign(this.bindings,t)}setUniforms(t){this.pipeline.setUniforms(t),Object.assign(this.uniforms,t)}setIndexBuffer(t){this.vertexArray.setIndexBuffer(t)}setTransformFeedback(t){this.transformFeedback=t}setAttributes(t,r){t.indices&&F.log.warn(`Model:${this.id} setAttributes() - indexBuffer should be set using setIndexBuffer()`)();for(let[i,s]of Object.entries(t)){let o=this.bufferLayout.find(l=>$r(l).includes(i));if(!o){F.log.warn(`Model(${this.id}): Missing layout for buffer "${i}".`)();continue}let n=$r(o),a=!1;for(let l of n){let f=this._attributeInfos[l];f&&(this.vertexArray.setBuffer(f.location,s),a=!0)}!a&&r!=="ignore-unknown"&&F.log.warn(`Model(${this.id}): Ignoring buffer "${s.id}" for unknown attribute "${i}"`)()}}setConstantAttributes(t){for(let[r,i]of Object.entries(t)){let s=this._attributeInfos[r];s?this.vertexArray.setConstant(s.location,i):F.log.warn(`Model "${this.id}: Ignoring constant supplied for unknown attribute "${r}"`)()}}_setPipelineNeedsUpdate(t){this._pipelineNeedsUpdate=this._pipelineNeedsUpdate||t}_updatePipeline(){return this._pipelineNeedsUpdate&&(this.pipeline&&F.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,zr.getAttributeInfosFromLayouts)(this.pipeline.shaderLayout,this.bufferLayout)),this.pipeline}_logDrawCallStart(){let t=F.log.level>3?0:Ys;Date.now()-this._lastLogTime<t||(this._lastLogTime=Date.now(),this._logOpen=!0,F.log.group(Ie,`>>> DRAWING MODEL ${this.id}`,{collapsed:F.log.level<=2})())}_logDrawCallEnd(){if(this._logOpen){let t=jr(this.pipeline.shaderLayout);F.log.table(Ie,t)();let r=this.shaderInputs.getDebugTable();for(let[s,o]of Object.entries(this.uniforms))r[s]={value:o};F.log.table(Ie,r)();let i=this._getAttributeDebugTable();F.log.table(Ie,this._attributeInfos)(),F.log.table(Ie,i)(),F.log.groupEnd(Ie)(),this._logOpen=!1}}_getAttributeDebugTable(){let t={};for(let[r,i]of Object.entries(this._attributeInfos))t[i.location]={name:r,type:i.shaderType,values:this._getBufferOrConstantValues(this.vertexArray.attributes[i.location],i.bufferDataType)};if(this.vertexArray.indexBuffer){let{indexBuffer:r}=this.vertexArray,i=r.indexType==="uint32"?new Uint32Array(r.debugData):new Uint16Array(r.debugData);t.indices={name:"indices",type:r.indexType,values:i.toString()}}return t}_getBufferOrConstantValues(t,r){let i=(0,ue.getTypedArrayFromDataType)(r);return(t instanceof ue.Buffer?new i(t.debugData):t).toString()}};he.defaultProps={...ue.RenderPipeline.defaultProps,vs:null,fs:null,id:"unnamed",handle:void 0,userData:{},defines:{},modules:[],moduleSettings:void 0,geometry:null,indexBuffer:null,attributes:{},constantAttributes:{},varyings:[],shaderInputs:void 0,pipelineFactory:void 0,transformFeedback:void 0,shaderAssembler:$.getDefaultShaderAssembler()};function Yr(e,t){let r=[...e];for(let i of t){let s=r.findIndex(o=>o.name===i.name);s<0?r.push(i):r[s]=i}return r}function $s(e){return{type:e.info.type,shaderLanguage:e.info.shadingLanguage,shaderLanguageVersion:e.info.shadingLanguageVersion,gpu:e.info.gpu,features:e.features}}function $r(e){var t;return e.attributes?(t=e.attributes)===null||t===void 0?void 0:t.map(r=>r.attribute):[e.name]}var Ee=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}(Ee||{});var zs="Failed to create WebGL context in Node.js, headless gl returned null",Ls=" 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.",Zs={width:1,height:1,debug:!0,throwOnError:!1},Vt=null;function Lr(){return Vt!==null}function Zr(e){e={...Zs,...e};let{width:t,height:r,webgl1:i,webgl2:s}=e;if(s&&!i)throw new Error("headless-gl does not support WebGL2");if(!Vt)throw new Error(Ls);let o=Vt(t,r,e);if(!o)throw new Error(zs);return o}var N=E(p(),1);function We(e){if(typeof window<"u"&&typeof window.process=="object"&&window.process.type==="renderer"||typeof process<"u"&&typeof process.versions=="object"&&Boolean(process.versions.electron))return!0;let t=typeof navigator=="object"&&typeof navigator.userAgent=="string"&&navigator.userAgent,r=e||t;return!!(r&&r.indexOf("Electron")>=0)}function z(){return!(typeof process=="object"&&String(process)==="[object process]"&&!process.browser)||We()}var cl=globalThis.self||globalThis.window||globalThis.global,_l=globalThis.window||globalThis.self||globalThis.global,dl=globalThis.document||{},hl=globalThis.process||{},ul=globalThis.console,qr=globalThis.navigator||{};var kt=globalThis;function ot(e){if(!e&&!z())return"Node";if(We(e))return"Electron";let t=e||qr.userAgent||"";if(t.indexOf("Edge")>-1)return"Edge";let r=t.indexOf("MSIE ")!==-1,i=t.indexOf("Trident/")!==-1;return r||i?"IE":kt.chrome?"Chrome":kt.safari?"Safari":kt.mozInnerScreenX?"Firefox":"Unknown"}var oi=E(p(),1);var Xe={};function qs(e){globalThis.console&&globalThis.console.error&&globalThis.console.error(e)}function Js(e){globalThis.console&&globalThis.console.log&&globalThis.console.log(e)}function Qs(e,t){Xe[e]=!0,t!==void 0&&qs(t)}function Gs(e){let t=e.getError;e.getError=function(){let i;do i=t.apply(e),i!==0&&(Xe[i]=!0);while(i!==0);for(i in Xe)if(Xe[i])return delete Xe[i],parseInt(i,10);return 0}}var He=function e(t){let r=t.gl;this.ext=t,this.isAlive=!0,this.hasBeenBound=!1,this.elementArrayBuffer=null,this.attribs=new Array(t.maxVertexAttribs);for(let i=0;i<this.attribs.length;i++){let s=new e.VertexAttrib(r);this.attribs[i]=s}this.maxAttrib=0};He.VertexAttrib=function(t){this.enabled=!1,this.buffer=null,this.size=4,this.type=5126,this.normalized=!1,this.stride=16,this.offset=0,this.cached="",this.recache()};He.VertexAttrib.prototype.recache=function(){this.cached=[this.size,this.type,this.normalized,this.stride,this.offset].join(":")};var pe=function(t){let r=this;this.gl=t,Gs(t);let i=this.original={getParameter:t.getParameter,enableVertexAttribArray:t.enableVertexAttribArray,disableVertexAttribArray:t.disableVertexAttribArray,bindBuffer:t.bindBuffer,getVertexAttrib:t.getVertexAttrib,vertexAttribPointer:t.vertexAttribPointer};t.getParameter=function(o){return o===r.VERTEX_ARRAY_BINDING_OES?r.currentVertexArrayObject===r.defaultVertexArrayObject?null:r.currentVertexArrayObject:i.getParameter.apply(this,arguments)},t.enableVertexAttribArray=function(o){let n=r.currentVertexArrayObject;n.maxAttrib=Math.max(n.maxAttrib,o);let a=n.attribs[o];return a.enabled=!0,i.enableVertexAttribArray.apply(this,arguments)},t.disableVertexAttribArray=function(o){let n=r.currentVertexArrayObject;n.maxAttrib=Math.max(n.maxAttrib,o);let a=n.attribs[o];return a.enabled=!1,i.disableVertexAttribArray.apply(this,arguments)},t.bindBuffer=function(o,n){switch(o){case 34962:r.currentArrayBuffer=n;break;case 34963:r.currentVertexArrayObject.elementArrayBuffer=n;break;default:}return i.bindBuffer.apply(this,arguments)},t.getVertexAttrib=function(o,n){let l=r.currentVertexArrayObject.attribs[o];switch(n){case 34975:return l.buffer;case 34338:return l.enabled;case 34339:return l.size;case 34340:return l.stride;case 34341:return l.type;case 34922:return l.normalized;default:return i.getVertexAttrib.apply(this,arguments)}},t.vertexAttribPointer=function(o,n,a,l,f,c){let _=r.currentVertexArrayObject;_.maxAttrib=Math.max(_.maxAttrib,o);let d=_.attribs[o];return d.buffer=r.currentArrayBuffer,d.size=n,d.type=a,d.normalized=l,d.stride=f,d.offset=c,d.recache(),i.vertexAttribPointer.apply(this,arguments)},t.instrumentExtension&&t.instrumentExtension(this,"OES_vertex_array_object"),t.canvas&&t.canvas.addEventListener("webglcontextrestored",()=>{Js("OESVertexArrayObject emulation library context restored"),r.reset_()},!0),this.reset_()};pe.prototype.VERTEX_ARRAY_BINDING_OES=34229;pe.prototype.reset_=function(){if(this.vertexArrayObjects!==void 0)for(let i=0;i<this.vertexArrayObjects.length;++i)this.vertexArrayObjects.isAlive=!1;let r=this.gl;this.maxVertexAttribs=r.getParameter(34921),this.defaultVertexArrayObject=new He(this),this.currentVertexArrayObject=null,this.currentArrayBuffer=null,this.vertexArrayObjects=[this.defaultVertexArrayObject],this.bindVertexArrayOES(null)};pe.prototype.createVertexArrayOES=function(){let t=new He(this);return this.vertexArrayObjects.push(t),t};pe.prototype.deleteVertexArrayOES=function(t){t.isAlive=!1,this.vertexArrayObjects.splice(this.vertexArrayObjects.indexOf(t),1),this.currentVertexArrayObject===t&&this.bindVertexArrayOES(null)};pe.prototype.isVertexArrayOES=function(t){return!!(t&&t instanceof He&&t.hasBeenBound&&t.ext===this)};pe.prototype.bindVertexArrayOES=function(t){let r=this.gl;if(t&&!t.isAlive){Qs(1282,"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(r,34963,o.elementArrayBuffer);let n=this.currentArrayBuffer,a=Math.max(s?s.maxAttrib:0,o.maxAttrib);for(let l=0;l<=a;l++){let f=o.attribs[l],c=s?s.attribs[l]:null;if((!s||f.enabled!==c.enabled)&&(f.enabled?i.enableVertexAttribArray.call(r,l):i.disableVertexAttribArray.call(r,l)),f.enabled){let _=!1;(!s||f.buffer!==c.buffer)&&(n!==f.buffer&&(i.bindBuffer.call(r,34962,f.buffer),n=f.buffer),_=!0),(_||f.cached!==c.cached)&&i.vertexAttribPointer.call(r,l,f.size,f.type,f.normalized,f.stride,f.offset)}}this.currentArrayBuffer!==n&&i.bindBuffer.call(r,34962,this.currentArrayBuffer)};function Jr(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 r=e.getExtension;e.getExtension=function(s){let o=r.call(this,s);return o||(s!=="OES_vertex_array_object"?null:(e.__OESVertexArrayObject||(this.__OESVertexArrayObject=new pe(this)),this.__OESVertexArrayObject))}}var be=E(p(),1);var Qr=E(p(),1),eo="Invalid WebGLRenderingContext";function to(e){return typeof WebGLRenderingContext<"u"&&e instanceof WebGLRenderingContext||typeof WebGL2RenderingContext<"u"&&e instanceof WebGL2RenderingContext?!0:Boolean(e&&Number.isFinite(e._version))}function g(e){return typeof WebGL2RenderingContext<"u"&&e instanceof WebGL2RenderingContext?!0:Boolean(e&&e._version===2)}function Kt(e){return g(e)?e:null}function Gr(e){return(0,Qr.assert)(to(e),eo),e}var ei="OES_element_index",ti="WEBGL_draw_buffers",ro="EXT_disjoint_timer_query",io="EXT_disjoint_timer_query_webgl2",so="EXT_texture_filter_anisotropic",ri="WEBGL_debug_renderer_info",oo=35723,no=4352,ao=36795,lo=34047,fo=37445,co=37446,I=e=>g(e)?void 0:0,_o={[3074]:e=>g(e)?void 0:36064,[oo]:e=>g(e)?void 0:no,[35977]:I,[32937]:I,[ao]:(e,t)=>{let r=g(e)?e.getExtension(io):e.getExtension(ro);return r&&r.GPU_DISJOINT_EXT?t(r.GPU_DISJOINT_EXT):0},[fo]:(e,t)=>{let r=e.getExtension(ri);return t(r&&r.UNMASKED_VENDOR_WEBGL||7936)},[co]:(e,t)=>{let r=e.getExtension(ri);return t(r&&r.UNMASKED_RENDERER_WEBGL||7937)},[lo]:(e,t)=>{var r;let i=((r=e.luma)===null||r===void 0||(r=r.extensions)===null||r===void 0?void 0:r[so])||e.getExtension("EXT_texture_filter_anisotropic");return i?t(i.MAX_TEXTURE_MAX_ANISOTROPY_EXT):1},[32883]:I,[35071]:I,[37447]:I,[36063]:(e,t)=>{if(!g(e)){let r=e.getExtension(ti);return r?t(r.MAX_COLOR_ATTACHMENTS_WEBGL):0}},[35379]:I,[35374]:I,[35377]:I,[34852]:e=>{if(!g(e)){let t=e.getExtension(ti);return t?t.MAX_DRAW_BUFFERS_WEBGL:0}},[36203]:e=>e.getExtension(ei)?2147483647:65535,[33001]:e=>e.getExtension(ei)?16777216:65535,[33e3]:e=>16777216,[37157]:I,[35373]:I,[35657]:I,[36183]:I,[37137]:I,[34045]:I,[35978]:I,[35979]:I,[35968]:I,[35376]:I,[35375]:I,[35659]:I,[37154]:I,[35371]:I,[35658]:I,[35076]:I,[35077]:I,[35380]:I};function ii(e,t,r){let i=_o[r],s=typeof i=="function"?i(e,t,r):i;return s!==void 0?s:t(r)}function Ne(e){if(!e.luma){let r={_polyfilled:!1,_extensions:{}};e.luma=r}return e.luma}var ho="OES_vertex_array_object",si="ANGLE_instanced_arrays",uo="WEBGL_draw_buffers",Ao="EXT_disjoint_timer_query",To="EXT_texture_filter_anisotropic",Ro="VertexArray requires WebGL2 or OES_vertex_array_object extension";function go(e,t){return{webgl2:g(e),ext:e.getExtension(t)}}var jt={[ho]:{meta:{suffix:"OES"},createVertexArray:()=>{(0,be.assert)(!1,Ro)},deleteVertexArray:()=>{},bindVertexArray:()=>{},isVertexArray:()=>!1},[si]:{meta:{suffix:"ANGLE"},vertexAttribDivisor(e,t){(0,be.assert)(t===0,"WebGL instanced rendering not supported")},drawElementsInstanced:()=>{},drawArraysInstanced:()=>{}},[uo]:{meta:{suffix:"WEBGL"},drawBuffers:()=>{(0,be.assert)(!1)}},[Ao]:{meta:{suffix:"EXT"},createQuery:()=>{(0,be.assert)(!1)},deleteQuery:()=>{(0,be.assert)(!1)},beginQuery:()=>{(0,be.assert)(!1)},endQuery:()=>{},getQuery(e,t){return this.getQueryObject(e,t)},getQueryParameter(e,t){return this.getQueryObject(e,t)},getQueryObject:(e,t)=>{}}},nt={readBuffer:(e,t,r)=>{g(e)&&t(r)},getVertexAttrib:(e,t,r,i)=>{let{webgl2:s,ext:o}=go(e,si),n;switch(i){case 35069:n=s?void 0:!1;break;case 35070:n=!s&&!o?0:void 0;break;default:}return n!==void 0?n:t(r,i)},getProgramParameter:(e,t,r,i)=>{if(!g(e))switch(i){case 35967:return 35981;case 35971:return 0;case 35382:return 0;default:}return t(r,i)},getInternalformatParameter:(e,t,r,i,s)=>{if(!g(e))switch(s){case 32937:return new Int32Array([0]);default:}return e.getInternalformatParameter(r,i,s)},getTexParameter(e,t,r,i){switch(i){case 34046:let s=Ne(e),{_extensions:o}=s,n=o[To];i=n&&n.TEXTURE_MAX_ANISOTROPY_EXT||34046;break;default:}return t(r,i)},getParameter:ii,hint(e,t,r,i){return t(r,i)}};function ni(e){let t=Ne(e);return t._polyfilled||(Jr(e),Eo(e),po(e,jt),So(e,{target:t,target2:e}),t._polyfilled=!0),e}function Eo(e){let t=Ne(e),r=e.getSupportedExtensions()||[],i=["WEBGL_polygon_mode"];for(let s of r)if(!i.includes(s)){let o=e.getExtension(s);t._extensions[s]=o}}function po(e,t){let r=Ne(e);for(let i of Object.getOwnPropertyNames(t))i!=="overrides"&&bo(e,{extension:i,target:r,target2:e})}function bo(e,t){let{extension:r,target:i,target2:s}=t,o=jt[r];(0,oi.assert)(o);let{meta:n={}}=o,{suffix:a=""}=n,l=e.getExtension(r);for(let f of Object.keys(o)){let c=`${f}${a}`,_=null;f==="meta"||typeof e[f]=="function"||(l&&typeof l[c]=="function"?_=function(){return l[c](...arguments)}:typeof o[f]=="function"&&(_=o[f].bind(i))),_&&(i[f]=_,s[f]=_)}}function So(e,t){let{target:r,target2:i}=t;Object.keys(nt).forEach(s=>{if(typeof nt[s]=="function"){let o=e[s]?e[s].bind(e):()=>{},n=nt[s].bind(null,e,o);r[s]=n,i[s]=n}})}var ke=E(p(),1);var at={[3042]:!1,[32773]:new Float32Array([0,0,0,0]),[32777]:32774,[34877]:32774,[32969]:1,[32968]:0,[32971]:1,[32970]:0,[3106]:new Float32Array([0,0,0,0]),[3107]:[!0,!0,!0,!0],[2884]:!1,[2885]:1029,[2929]:!1,[2931]:1,[2932]:513,[2928]:new Float32Array([0,1]),[2930]:!0,[3024]:!0,[35725]:null,[36006]:null,[36007]:null,[34229]:null,[34964]:null,[2886]:2305,[33170]:4352,[2849]:1,[32823]:!1,[32824]:0,[10752]:0,[32926]:!1,[32928]:!1,[32938]:1,[32939]:!1,[3089]:!1,[3088]:new Int32Array([0,0,1024,1024]),[2960]:!1,[2961]:0,[2968]:4294967295,[36005]:4294967295,[2962]:519,[2967]:0,[2963]:4294967295,[34816]:519,[36003]:0,[36004]:4294967295,[2964]:7680,[2965]:7680,[2966]:7680,[34817]:7680,[34818]:7680,[34819]:7680,[2978]:[0,0,1024,1024],[3333]:4,[3317]:4,[37440]:!1,[37441]:!1,[37443]:37444,[36389]:null,[36662]:null,[36663]:null,[35053]:null,[35055]:null,[35723]:4352,[36010]:null,[35977]:!1,[3330]:0,[3332]:0,[3331]:0,[3314]:0,[32878]:0,[3316]:0,[3315]:0,[32877]:0},G=(e,t,r)=>t?e.enable(r):e.disable(r),ai=(e,t,r)=>e.hint(r,t),j=(e,t,r)=>e.pixelStorei(r,t),li=(e,t,r)=>{let i;return r===36006?i=g(e)?36009:36160:i=36008,e.bindFramebuffer(i,t)},Ve=(e,t,r)=>{let s={[34964]:34962,[36662]:36662,[36663]:36663,[35053]:35051,[35055]:35052}[r];e.bindBuffer(s,t)};function Yt(e){return Array.isArray(e)||ArrayBuffer.isView(e)&&!(e instanceof DataView)}var fi={[3042]:G,[32773]:(e,t)=>e.blendColor(...t),[32777]:"blendEquation",[34877]:"blendEquation",[32969]:"blendFunc",[32968]:"blendFunc",[32971]:"blendFunc",[32970]:"blendFunc",[3106]:(e,t)=>e.clearColor(...t),[3107]:(e,t)=>e.colorMask(...t),[2884]:G,[2885]:(e,t)=>e.cullFace(t),[2929]:G,[2931]:(e,t)=>e.clearDepth(t),[2932]:(e,t)=>e.depthFunc(t),[2928]:(e,t)=>e.depthRange(...t),[2930]:(e,t)=>e.depthMask(t),[3024]:G,[35723]:ai,[35725]:(e,t)=>e.useProgram(t),[36007]:(e,t)=>e.bindRenderbuffer(36161,t),[36389]:(e,t)=>{var r,i;return(r=(i=e).bindTransformFeedback)===null||r===void 0?void 0:r.call(i,36386,t)},[34229]:(e,t)=>e.bindVertexArray(t),[36006]:li,[36010]:li,[34964]:Ve,[36662]:Ve,[36663]:Ve,[35053]:Ve,[35055]:Ve,[2886]:(e,t)=>e.frontFace(t),[33170]:ai,[2849]:(e,t)=>e.lineWidth(t),[32823]:G,[32824]:"polygonOffset",[10752]:"polygonOffset",[35977]:G,[32926]:G,[32928]:G,[32938]:"sampleCoverage",[32939]:"sampleCoverage",[3089]:G,[3088]:(e,t)=>e.scissor(...t),[2960]:G,[2961]:(e,t)=>e.clearStencil(t),[2968]:(e,t)=>e.stencilMaskSeparate(1028,t),[36005]:(e,t)=>e.stencilMaskSeparate(1029,t),[2962]:"stencilFuncFront",[2967]:"stencilFuncFront",[2963]:"stencilFuncFront",[34816]:"stencilFuncBack",[36003]:"stencilFuncBack",[36004]:"stencilFuncBack",[2964]:"stencilOpFront",[2965]:"stencilOpFront",[2966]:"stencilOpFront",[34817]:"stencilOpBack",[34818]:"stencilOpBack",[34819]:"stencilOpBack",[2978]:(e,t)=>e.viewport(...t),[3333]:j,[3317]:j,[37440]:j,[37441]:j,[37443]:j,[3330]:j,[3332]:j,[3331]:j,[3314]:j,[32878]:j,[3316]:j,[3315]:j,[32877]:j,framebuffer:(e,t)=>{let r=t&&"handle"in t?t.handle:t;return e.bindFramebuffer(36160,r)},blend:(e,t)=>t?e.enable(3042):e.disable(3042),blendColor:(e,t)=>e.blendColor(...t),blendEquation:(e,t)=>{let r=typeof t=="number"?[t,t]:t;e.blendEquationSeparate(...r)},blendFunc:(e,t)=>{let r=t?.length===2?[...t,...t]:t;e.blendFuncSeparate(...r)},clearColor:(e,t)=>e.clearColor(...t),clearDepth:(e,t)=>e.clearDepth(t),clearStencil:(e,t)=>e.clearStencil(t),colorMask:(e,t)=>e.colorMask(...t),cull:(e,t)=>t?e.enable(2884):e.disable(2884),cullFace:(e,t)=>e.cullFace(t),depthTest:(e,t)=>t?e.enable(2929):e.disable(2929),depthFunc:(e,t)=>e.depthFunc(t),depthMask:(e,t)=>e.depthMask(t),depthRange:(e,t)=>e.depthRange(...t),dither:(e,t)=>t?e.enable(3024):e.disable(3024),derivativeHint:(e,t)=>{e.hint(35723,t)},frontFace:(e,t)=>e.frontFace(t),mipmapHint:(e,t)=>e.hint(33170,t),lineWidth:(e,t)=>e.lineWidth(t),polygonOffsetFill:(e,t)=>t?e.enable(32823):e.disable(32823),polygonOffset:(e,t)=>e.polygonOffset(...t),sampleCoverage:(e,t)=>e.sampleCoverage(...t),scissorTest:(e,t)=>t?e.enable(3089):e.disable(3089),scissor:(e,t)=>e.scissor(...t),stencilTest:(e,t)=>t?e.enable(2960):e.disable(2960),stencilMask:(e,t)=>{t=Yt(t)?t:[t,t];let[r,i]=t;e.stencilMaskSeparate(1028,r),e.stencilMaskSeparate(1029,i)},stencilFunc:(e,t)=>{t=Yt(t)&&t.length===3?[...t,...t]:t;let[r,i,s,o,n,a]=t;e.stencilFuncSeparate(1028,r,i,s),e.stencilFuncSeparate(1029,o,n,a)},stencilOp:(e,t)=>{t=Yt(t)&&t.length===3?[...t,...t]:t;let[r,i,s,o,n,a]=t;e.stencilOpSeparate(1028,r,i,s),e.stencilOpSeparate(1029,o,n,a)},viewport:(e,t)=>e.viewport(...t)};function M(e,t,r){return t[e]!==void 0?t[e]:r[e]}var ci={blendEquation:(e,t,r)=>e.blendEquationSeparate(M(32777,t,r),M(34877,t,r)),blendFunc:(e,t,r)=>e.blendFuncSeparate(M(32969,t,r),M(32968,t,r),M(32971,t,r),M(32970,t,r)),polygonOffset:(e,t,r)=>e.polygonOffset(M(32824,t,r),M(10752,t,r)),sampleCoverage:(e,t,r)=>e.sampleCoverage(M(32938,t,r),M(32939,t,r)),stencilFuncFront:(e,t,r)=>e.stencilFuncSeparate(1028,M(2962,t,r),M(2967,t,r),M(2963,t,r)),stencilFuncBack:(e,t,r)=>e.stencilFuncSeparate(1029,M(34816,t,r),M(36003,t,r),M(36004,t,r)),stencilOpFront:(e,t,r)=>e.stencilOpSeparate(1028,M(2964,t,r),M(2965,t,r),M(2966,t,r)),stencilOpBack:(e,t,r)=>e.stencilOpSeparate(1029,M(34817,t,r),M(34818,t,r),M(34819,t,r))},$t={enable:(e,t)=>e({[t]:!0}),disable:(e,t)=>e({[t]:!1}),pixelStorei:(e,t,r)=>e({[t]:r}),hint:(e,t,r)=>e({[t]:r}),useProgram:(e,t)=>e({[35725]:t}),bindRenderbuffer:(e,t,r)=>e({[36007]:r}),bindTransformFeedback:(e,t,r)=>e({[36389]:r}),bindVertexArray:(e,t)=>e({[34229]:t}),bindFramebuffer:(e,t,r)=>{switch(t){case 36160:return e({[36006]:r,[36010]:r});case 36009:return e({[36006]:r});case 36008:return e({[36010]:r});default:return null}},bindBuffer:(e,t,r)=>{let i={[34962]:[34964],[36662]:[36662],[36663]:[36663],[35051]:[35053],[35052]:[35055]}[t];return i?e({[i]:r}):{valueChanged:!0}},blendColor:(e,t,r,i,s)=>e({[32773]:new Float32Array([t,r,i,s])}),blendEquation:(e,t)=>e({[32777]:t,[34877]:t}),blendEquationSeparate:(e,t,r)=>e({[32777]:t,[34877]:r}),blendFunc:(e,t,r)=>e({[32969]:t,[32968]:r,[32971]:t,[32970]:r}),blendFuncSeparate:(e,t,r,i,s)=>e({[32969]:t,[32968]:r,[32971]:i,[32970]:s}),clearColor:(e,t,r,i,s)=>e({[3106]:new Float32Array([t,r,i,s])}),clearDepth:(e,t)=>e({[2931]:t}),clearStencil:(e,t)=>e({[2961]:t}),colorMask:(e,t,r,i,s)=>e({[3107]:[t,r,i,s]}),cullFace:(e,t)=>e({[2885]:t}),depthFunc:(e,t)=>e({[2932]:t}),depthRange:(e,t,r)=>e({[2928]:new Float32Array([t,r])}),depthMask:(e,t)=>e({[2930]:t}),frontFace:(e,t)=>e({[2886]:t}),lineWidth:(e,t)=>e({[2849]:t}),polygonOffset:(e,t,r)=>e({[32824]:t,[10752]:r}),sampleCoverage:(e,t,r)=>e({[32938]:t,[32939]:r}),scissor:(e,t,r,i,s)=>e({[3088]:new Int32Array([t,r,i,s])}),stencilMask:(e,t)=>e({[2968]:t,[36005]:t}),stencilMaskSeparate:(e,t,r)=>e({[t===1028?2968:36005]:r}),stencilFunc:(e,t,r,i)=>e({[2962]:t,[2967]:r,[2963]:i,[34816]:t,[36003]:r,[36004]:i}),stencilFuncSeparate:(e,t,r,i,s)=>e({[t===1028?2962:34816]:r,[t===1028?2967:36003]:i,[t===1028?2963:36004]:s}),stencilOp:(e,t,r,i)=>e({[2964]:t,[2965]:r,[2966]:i,[34817]:t,[34818]:r,[34819]:i}),stencilOpSeparate:(e,t,r,i,s)=>e({[t===1028?2964:34817]:r,[t===1028?2965:34818]:i,[t===1028?2966:34819]:s}),viewport:(e,t,r,i,s)=>e({[2978]:[t,r,i,s]})},ee=(e,t)=>e.isEnabled(t),zt={[3042]:ee,[2884]:ee,[2929]:ee,[3024]:ee,[32823]:ee,[32926]:ee,[32928]:ee,[3089]:ee,[2960]:ee,[35977]:ee},_i=new Set([34016,36388,36387,35983,35368,34965,35739,35738,3074,34853,34854,34855,34856,34857,34858,34859,34860,34861,34862,34863,34864,34865,34866,34867,34868,35097,32873,35869,32874,34068]);function ae(e,t){let i=U.attach(e).gl;if(Co(t))return;let s={};for(let n in t){let a=Number(n),l=fi[n];l&&(typeof l=="string"?s[l]=!0:l(i,t[n],a))}let o=i.state&&i.state.cache;if(o)for(let n in s){let a=ci[n];a(i,t,o)}}function di(e){let t=arguments.length>1&&arguments[1]!==void 0?arguments[1]:at,i=U.attach(e).gl;if(typeof t=="number"){let n=t,a=zt[n];return a?a(i,n):i.getParameter(n)}let s=Array.isArray(t)?t:Object.keys(t),o={};for(let n of s){let a=zt[n];o[n]=a?a(i,Number(n)):i.getParameter(Number(n))}return o}function Co(e){for(let t in e)return!1;return!0}function hi(e,t){if(e===t)return!0;let r=Array.isArray(e)||ArrayBuffer.isView(e),i=Array.isArray(t)||ArrayBuffer.isView(t);if(r&&i&&e.length===t.length){for(let s=0;s<e.length;++s)if(e[s]!==t[s])return!1;return!0}return!1}var Lt=class{constructor(t){let{copyState:r=!1,log:i=()=>{}}=arguments.length>1&&arguments[1]!==void 0?arguments[1]:{};this.gl=void 0,this.program=null,this.stateStack=[],this.enable=!0,this.cache=void 0,this.log=void 0,this.gl=t,this.cache=r?di(t):Object.assign({},at),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,ke.assert)(this.stateStack.length>0);let t=this.stateStack[this.stateStack.length-1];ae(this.gl,t),this.stateStack.pop()}_updateCache(t){let r=!1,i,s=this.stateStack.length>0?this.stateStack[this.stateStack.length-1]:null;for(let o in t){(0,ke.assert)(o!==void 0);let n=t[o],a=this.cache[o];hi(n,a)||(r=!0,i=a,s&&!(o in s)&&(s[o]=a),this.cache[o]=n)}return{valueChanged:r,oldValue:i}}};function Se(e){return e.state}function Zt(e,t){let{enable:r=!0,copyState:i}=t;if((0,ke.assert)(i!==void 0),!e.state){e.state=new Lt(e,{copyState:i}),xo(e);for(let o in $t){let n=$t[o];Oo(e,o,n)}ui(e,"getParameter"),ui(e,"isEnabled")}let s=Se(e);return s.enable=r,e}function Ae(e){let t=Se(e);t||(Zt(e,{copyState:!1}),t=Se(e)),t.push()}function le(e){let t=Se(e);(0,ke.assert)(t),t.pop()}function ui(e,t){let r=e[t].bind(e);e[t]=function(s){if(s===void 0||_i.has(s))return r(s);let o=Se(e);return s in o.cache||(o.cache[s]=r(s)),o.enable?o.cache[s]:r(s)},Object.defineProperty(e[t],"name",{value:`${t}-from-cache`,configurable:!1})}function Oo(e,t,r){if(!e[t])return;let i=e[t].bind(e);e[t]=function(){let o=Se(e);for(var n=arguments.length,a=new Array(n),l=0;l<n;l++)a[l]=arguments[l];let{valueChanged:f,oldValue:c}=r(o._updateCache,...a);return f&&i(...a),c},Object.defineProperty(e[t],"name",{value:`${t}-to-cache`,configurable:!1})}function xo(e){let t=e.useProgram.bind(e);e.useProgram=function(i){let s=Se(e);s.program!==i&&(t(i),s.program=i)}}var Io={webgl2:!0,webgl1:!0,powerPreference:"high-performance",onContextLost:()=>console.error("WebGL context lost"),onContextRestored:()=>console.info("WebGL context restored")};function Ai(e,t){t={...Io,...t};let r=null,i=o=>r=o.statusMessage||r;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: ${r||"Unknown error"}`);if(t.onContextLost){let{onContextLost:o}=t;e.addEventListener("webglcontextlost",n=>o(n),!1)}if(t.onContextRestored){let{onContextRestored:o}=t;e.addEventListener("webglcontextrestored",n=>o(n),!1)}return s}function Ti(e){let t=e.getParameter(7936),r=e.getParameter(7937),i=e.getExtension("WEBGL_debug_renderer_info"),s=e.getParameter(i?i.UNMASKED_VENDOR_WEBGL:7936),o=e.getParameter(i?i.UNMASKED_RENDERER_WEBGL:7937),n=s||t,a=o||r,l=e.getParameter(7938),f=Ri(n,a),c=No(n,a),_=Fo(n,a),d="glsl",u=g(e)?300:100;return{type:g(e)?"webgl2":"webgl",gpu:f,gpuType:_,gpuBackend:c,vendor:n,renderer:a,version:l,shadingLanguage:d,shadingLanguageVersion:u}}function Ri(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 No(e,t){return/Metal/i.exec(e)||/Metal/i.exec(t)?"metal":/ANGLE/i.exec(e)||/ANGLE/i.exec(t)?"opengl":"unknown"}function Fo(e,t){if(/SwiftShader/i.exec(e)||/SwiftShader/i.exec(t))return"cpu";switch(Ri(e,t)){case"intel":return"integrated";case"software":return"cpu";case"unknown":return"unknown";default:return"discrete"}}function gi(){let e=arguments.length>0&&arguments[0]!==void 0?arguments[0]:{},t=typeof window<"u"?window.navigator||{}:{},r=e.userAgent||t.userAgent||"",i=r.indexOf("MSIE ")!==-1,s=r.indexOf("Trident/")!==-1;return i||s}var Qt=E(p(),1);function lt(e){switch(e){case"uint8":return 5121;case"sint8":return 5120;case"unorm8":return 5121;case"snorm8":return 5120;case"uint16":return 5123;case"sint16":return 5122;case"unorm16":return 5123;case"snorm16":return 5122;case"uint32":return 5125;case"sint32":return 5124;case"float16":return 5131;case"float32":return 5126}throw new Error(String(e))}var w="texture-compression-bc",O="texture-compression-astc",te="texture-compression-etc2",Mo="texture-compression-etc1-webgl",ft="texture-compression-pvrtc-webgl",qt="texture-compression-atc-webgl",Ke="WEBGL_compressed_texture_s3tc",je="WEBGL_compressed_texture_s3tc_srgb",Fe="EXT_texture_compression_rgtc",Ye="EXT_texture_compression_bptc",Bo="WEBGL_compressed_texture_etc",Do="WEBGL_compressed_texture_astc",Po="WEBGL_compressed_texture_etc1",yo="WEBGL_compressed_texture_pvrtc",vo="WEBGL_compressed_texture_atc",Ei="EXT_sRGB",fe="EXT_texture_norm16",Uo="WEBGL_color_buffer_float",mo="EXT_color_buffer_float",L=(e,t)=>e.getExtension(t),Ce=(e,t)=>t.every(r=>e.getExtension(r)),Jt={"texture-blend-float-webgl1":e=>g(e)?!0:L(e,"EXT_float_blend"),"texture-formats-srgb-webgl1":e=>g(e)?!0:L(e,Ei),"texture-formats-depth-webgl1":e=>g(e)?!0:L(e,"WEBGL_depth_texture"),"texture-formats-float32-webgl1":e=>g(e)?!0:L(e,"OES_texture_float"),"texture-formats-float16-webgl1":e=>g(e)?!0:L(e,"OES_texture_half_float"),"texture-formats-norm16-webgl":e=>g(e)?L(e,fe):!1,"texture-filter-linear-float32-webgl":e=>L(e,"OES_texture_float_linear"),"texture-filter-linear-float16-webgl":e=>L(e,"OES_texture_half_float_linear"),"texture-filter-anisotropic-webgl":e=>L(e,"EXT_texture_filter_anisotropic"),"texture-renderable-float32-webgl":e=>L(e,"EXT_color_buffer_float"),"texture-renderable-float16-webgl":e=>L(e,"EXT_color_buffer_half_float"),"texture-compression-bc":e=>Ce(e,[Ke,je,Fe,Ye]),"texture-compression-bc5-webgl":e=>Ce(e,[Fe]),"texture-compression-etc2":e=>Ce(e,[Bo]),"texture-compression-astc":e=>Ce(e,[Do]),"texture-compression-etc1-webgl":e=>Ce(e,[Po]),"texture-compression-pvrtc-webgl":e=>Ce(e,[yo]),"texture-compression-atc-webgl":e=>Ce(e,[vo])};function wo(e,t){var r;return((r=Jt[t])===null||r===void 0?void 0:r.call(Jt,e))||!1}function pi(e){return Object.keys(Jt).filter(r=>wo(e,r))}var $e={"rgb8unorm-unsized":{gl:6407,gl1:6407,b:4,c:2,bpp:4,dataFormat:6407,types:[5121,33635]},"rgba8unorm-unsized":{gl:6408,gl1:6408,b:4,c:2,bpp:4,dataFormat:6408,types:[5121,32819,32820]},r8unorm:{gl:33321,b:1,c:1,renderbuffer:!0},r8snorm:{gl:36756,b:1,c:1},r8uint:{gl:33330,b:1,c:1,renderbuffer:!0},r8sint:{gl:33329,b:1,c:1,renderbuffer:!0},rg8unorm:{gl:33323,b:2,c:2,renderbuffer:!0},rg8snorm:{gl:36757,b:2,c:2},rg8uint:{gl:33336,b:2,c:2,renderbuffer:!0},rg8sint:{gl:33335,b:2,c:2,renderbuffer:!0},r16uint:{gl:33332,b:2,c:1,renderbuffer:!0},r16sint:{gl:33331,b:2,c:1,renderbuffer:!0},r16float:{gl:33325,b:2,c:1,render:"texture-renderable-float16-webgl",filter:"texture-filter-linear-float16-webgl",renderbuffer:!0},"r16unorm-webgl":{gl:33322,b:2,c:1,f:"texture-formats-norm16-webgl",renderbuffer:!0,x:fe},"r16snorm-webgl":{gl:36760,b:2,c:1,f:"texture-formats-norm16-webgl",x:fe},"rgba4unorm-webgl":{gl:32854,b:2,c:4,wgpu:!1,renderbuffer:!0},"rgb565unorm-webgl":{gl:36194,b:2,c:4,wgpu:!1,renderbuffer:!0},"rgb5a1unorm-webgl":{gl:32855,b:2,c:4,wgpu:!1,renderbuffer:!0},"rgb8unorm-webgl":{gl:32849,b:3,c:3,wgpu:!1},"rgb8snorm-webgl":{gl:36758,b:3,c:3,wgpu:!1},rgba8unorm:{gl:32856,gl1:6408,b:4,c:2,bpp:4},"rgba8unorm-srgb":{gl:35907,gl1:35906,b:4,c:4,gl1ext:Ei,bpp:4},rgba8snorm:{gl:36759,b:4,c:4},rgba8uint:{gl:36220,b:4,c:4,bpp:4},rgba8sint:{gl:36238,b:4,c:4,bpp:4},bgra8unorm:{b:4,c:4},"bgra8unorm-srgb":{b:4,c:4},rg16uint:{gl:33338,b:4,c:1,bpp:4},rg16sint:{gl:33337,b:4,c:2,bpp:4},rg16float:{gl:33327,bpp:4,b:4,c:2,render:"texture-renderable-float16-webgl",filter:"texture-filter-linear-float16-webgl",renderbuffer:!0},"rg16unorm-webgl":{gl:33324,b:2,c:2,f:"texture-formats-norm16-webgl",x:fe},"rg16snorm-webgl":{gl:36761,b:2,c:2,f:"texture-formats-norm16-webgl",x:fe},r32uint:{gl:33334,b:4,c:1,bpp:4,renderbuffer:!0},r32sint:{gl:33333,b:4,c:1,bpp:4,renderbuffer:!0},r32float:{gl:33326,bpp:4,b:4,c:1,render:"texture-renderable-float32-webgl",filter:"texture-filter-linear-float32-webgl"},rgb9e5ufloat:{gl:35901,b:4,c:3,p:1,render:"texture-renderable-float16-webgl",filter:"texture-filter-linear-float16-webgl"},rg11b10ufloat:{gl:35898,b:4,c:3,p:1,render:"texture-renderable-float32-webgl",renderbuffer:!0},rgb10a2unorm:{gl:32857,b:4,c:4,p:1,renderbuffer:!0},"rgb10a2unorm-webgl":{b:4,c:4,gl:36975,p:1,wgpu:!1,bpp:4,renderbuffer:!0},"rgb16unorm-webgl":{gl:32852,b:2,c:3,f:"texture-formats-norm16-webgl",x:fe},"rgb16snorm-webgl":{gl:36762,b:2,c:3,f:"texture-formats-norm16-webgl",x:fe},rg32uint:{gl:33340,b:8,c:2,renderbuffer:!0},rg32sint:{gl:33339,b:8,c:2,renderbuffer:!0},rg32float:{gl:33328,b:8,c:2,render:"texture-renderable-float32-webgl",filter:"texture-filter-linear-float32-webgl",renderbuffer:!0},rgba16uint:{gl:36214,b:8,c:4,renderbuffer:!0},rgba16sint:{gl:36232,b:8,c:4,renderbuffer:!0},rgba16float:{gl:34842,gl1:6408,b:8,c:4,render:"texture-renderable-float16-webgl",filter:"texture-filter-linear-float16-webgl"},"rgba16unorm-webgl":{gl:32859,b:2,c:4,f:"texture-formats-norm16-webgl",renderbuffer:!0,x:fe},"rgba16snorm-webgl":{gl:36763,b:2,c:4,f:"texture-formats-norm16-webgl",x:fe},"rgb32float-webgl":{gl:34837,gl1:6407,render:"texture-renderable-float32-webgl",filter:"texture-filter-linear-float32-webgl",gl2ext:mo,gl1ext:Uo,dataFormat:6407,types:[5126]},rgba32uint:{gl:36208,b:16,c:4,renderbuffer:!0},rgba32sint:{gl:36226,b:16,c:4,renderbuffer:!0},rgba32float:{gl:34836,b:16,c:4,render:"texture-renderable-float32-webgl",filter:"texture-filter-linear-float32-webgl",renderbuffer:!0},stencil8:{gl:36168,gl1:36168,b:1,c:1,attachment:36128,renderbuffer:!0},depth16unorm:{gl:33189,gl1:33189,b:2,c:1,attachment:36096,renderbuffer:!0},depth24plus:{gl:33190,b:3,c:1,attachment:36096},depth32float:{gl:36012,b:4,c:1,attachment:36096,renderbuffer:!0},"depth24plus-stencil8":{gl:34041,gl1:34041,b:4,c:2,p:1,attachment:33306,renderbuffer:!0,depthTexture:!0},"depth24unorm-stencil8":{gl:35056,b:4,c:2,p:1,attachment:33306,renderbuffer:!0},"depth32float-stencil8":{gl:36013,b:5,c:2,p:1,attachment:33306,renderbuffer:!0},"bc1-rgb-unorm-webgl":{gl:33776,x:Ke,f:w},"bc1-rgb-unorm-srgb-webgl":{gl:35916,x:je,f:w},"bc1-rgba-unorm":{gl:33777,x:Ke,f:w},"bc1-rgba-unorm-srgb":{gl:35916,x:je,f:w},"bc2-rgba-unorm":{gl:33778,x:Ke,f:w},"bc2-rgba-unorm-srgb":{gl:35918,x:je,f:w},"bc3-rgba-unorm":{gl:33779,x:Ke,f:w},"bc3-rgba-unorm-srgb":{gl:35919,x:je,f:w},"bc4-r-unorm":{gl:36283,x:Fe,f:w},"bc4-r-snorm":{gl:36284,x:Fe,f:w},"bc5-rg-unorm":{gl:36285,x:Fe,f:w},"bc5-rg-snorm":{gl:36286,x:Fe,f:w},"bc6h-rgb-ufloat":{gl:36495,x:Ye,f:w},"bc6h-rgb-float":{gl:36494,x:Ye,f:w},"bc7-rgba-unorm":{gl:36492,x:Ye,f:w},"bc7-rgba-unorm-srgb":{gl:36493,x:Ye,f:w},"etc2-rgb8unorm":{gl:37492,f:te},"etc2-rgb8unorm-srgb":{gl:37494,f:te},"etc2-rgb8a1unorm":{gl:37496,f:te},"etc2-rgb8a1unorm-srgb":{gl:37497,f:te},"etc2-rgba8unorm":{gl:37493,f:te},"etc2-rgba8unorm-srgb":{gl:37495,f:te},"eac-r11unorm":{gl:37488,f:te},"eac-r11snorm":{gl:37489,f:te},"eac-rg11unorm":{gl:37490,f:te},"eac-rg11snorm":{gl:37491,f:te},"astc-4x4-unorm":{gl:37808,f:O},"astc-4x4-unorm-srgb":{gl:37840,f:O},"astc-5x4-unorm":{gl:37809,f:O},"astc-5x4-unorm-srgb":{gl:37841,f:O},"astc-5x5-unorm":{gl:37810,f:O},"astc-5x5-unorm-srgb":{gl:37842,f:O},"astc-6x5-unorm":{gl:37811,f:O},"astc-6x5-unorm-srgb":{gl:37843,f:O},"astc-6x6-unorm":{gl:37812,f:O},"astc-6x6-unorm-srgb":{gl:37844,f:O},"astc-8x5-unorm":{gl:37813,f:O},"astc-8x5-unorm-srgb":{gl:37845,f:O},"astc-8x6-unorm":{gl:37814,f:O},"astc-8x6-unorm-srgb":{gl:37846,f:O},"astc-8x8-unorm":{gl:37815,f:O},"astc-8x8-unorm-srgb":{gl:37847,f:O},"astc-10x5-unorm":{gl:37819,f:O},"astc-10x5-unorm-srgb":{gl:37851,f:O},"astc-10x6-unorm":{gl:37817,f:O},"astc-10x6-unorm-srgb":{gl:37849,f:O},"astc-10x8-unorm":{gl:37818,f:O},"astc-10x8-unorm-srgb":{gl:37850,f:O},"astc-10x10-unorm":{gl:37819,f:O},"astc-10x10-unorm-srgb":{gl:37851,f:O},"astc-12x10-unorm":{gl:37820,f:O},"astc-12x10-unorm-srgb":{gl:37852,f:O},"astc-12x12-unorm":{gl:37821,f:O},"astc-12x12-unorm-srgb":{gl:37853,f:O},"pvrtc-rgb4unorm-webgl":{gl:35840,f:ft},"pvrtc-rgba4unorm-webgl":{gl:35842,f:ft},"pvrtc-rbg2unorm-webgl":{gl:35841,f:ft},"pvrtc-rgba2unorm-webgl":{gl:35843,f:ft},"etc1-rbg-unorm-webgl":{gl:36196,f:Mo},"atc-rgb-unorm-webgl":{gl:35986,f:qt},"atc-rgba-unorm-webgl":{gl:35986,f:qt},"atc-rgbai-unorm-webgl":{gl:34798,f:qt}},Wo={[6403]:1,[36244]:1,[33319]:2,[33320]:2,[6407]:3,[36248]:3,[6408]:4,[36249]:4,[6402]:1,[34041]:1,[6406]:1,[6409]:1,[6410]:2},Xo={[5126]:4,[5125]:4,[5124]:4,[5123]:2,[5122]:2,[5131]:2,[5120]:1,[5121]:1};function ze(e,t){let r=Le(t),i=$e[r];if(!i||(g(e)?i.gl===void 0:i.gl1===void 0))return!1;let s=i.x||g(e)&&i.gl2ext||i.gl1ext;return s?Boolean(e.getExtension(s)):!0}function bi(e,t){var r;return ze(e,t)&&((r=$e[t])===null||r===void 0?void 0:r.renderbuffer)}function Le(e){if(typeof e=="string")return e;let t=Object.entries($e).find(r=>{let[,i]=r;return i.gl===e||i.gl1===e});if(!t)throw new Error(`Unknown texture format ${e}`);return t[0]}function Ze(e,t){let r=$e[e],i=t?r?.gl:r?.gl1;if(i===void 0)throw new Error(`Unsupported texture format ${e}`);return i}function Si(e,t){let r=Le(t);if(!ze(e,r))return!1;try{if((0,Qt.decodeTextureFormat)(r).signed)return!1}catch{return!1}return r.endsWith("32float")?Boolean(e.getExtension("OES_texture_float_linear")):r.endsWith("16float")?Boolean(e.getExtension("OES_texture_half_float_linear")):!0}function Ci(e,t){let r=Le(t);return!(!ze(e,r)||typeof r=="number")}function Me(e,t){let r=Le(e),i=Ze(r,t),s=(0,Qt.decodeTextureFormat)(r);return{format:i,dataFormat:Ho(s.format,s.integer,s.normalized,i),type:s.dataType?lt(s.dataType):5121,compressed:s.compressed}}function Oi(e){let t=$e[e];if(!(t!=null&&t.attachment))throw new Error(`${e} is not a depth stencil format`);return t.attachment}function xi(e){let t=arguments.length>1&&arguments[1]!==void 0?arguments[1]:6408,r=arguments.length>2&&arguments[2]!==void 0?arguments[2]:6408,i=arguments.length>3&&arguments[3]!==void 0?arguments[3]:5121,s=null,o=null;try{s=e.createTexture(),e.bindTexture(3553,s);let n=0,a=1,l=1,f=0,c=new Uint8Array([0,0,255,255]);e.texImage2D(3553,n,t,a,l,f,r,i,c),o=e.createFramebuffer(),e.bindFramebuffer(36160,o),e.framebufferTexture2D(36160,36064,3553,s,0);let _=e.checkFramebufferStatus(36160)===36053;return e.bindTexture(3553,null),_}finally{e.deleteTexture(s),e.deleteFramebuffer(o)}}function qe(e,t){let r=Le(e),i=Me(r,t),s=Wo[i.dataFormat]||4,o=Xo[i.type]||1;return s*o}function Ho(e,t,r,i){if(i===6408||i===6407)return i;switch(e){case"r":return t&&!r?36244:6403;case"rg":return t&&!r?33320:33319;case"rgb":return t&&!r?36248:6407;case"rgba":return t&&!r?36249:6408;default:return 6408}}function Ii(e){let t=Vo(e);for(let r of pi(e))t.add(r);return t}function Vo(e){e.getExtension("EXT_color_buffer_float"),e.getExtension("WEBGL_color_buffer_float"),e.getExtension("EXT_float_blend");let t=new Set;for(let r of Object.keys(Ni))ko(e,r)&&t.add(r);return t}function ko(e,t){let r=Ni[t];if(!r)return!1;let[i,s]=r||[],o=g(e)?s:i;if(typeof o=="boolean")return o;switch(t){case"texture-renderable-rgba32float-webgl":return g(e)?Boolean(e.getExtension(o)):xi(e);case"glsl-derivatives":return er(e,o);case"glsl-frag-data":return er(e,o,{behavior:"require"});case"glsl-frag-depth":return er(e,o);default:return Boolean(e.getExtension(o))}}var Gt={};function er(e,t){let r=arguments.length>2&&arguments[2]!==void 0?arguments[2]:{};if(!gi(r))return!0;if(t in Gt)return Gt[t];let i=r.behavior||"enable",s=`#extension GL_${t} : ${i}
134
- void main(void) {}`,o=e.createShader(35633);if(!o)throw new Error("shader");e.shaderSource(o,s),e.compileShader(o);let n=e.getShaderParameter(o,35713);return e.deleteShader(o),Gt[t]=n,n}var Ni={webgl:[!0,!0],webgl2:[!1,!0],"timer-query-webgl":["EXT_disjoint_timer_query","EXT_disjoint_timer_query_webgl2"],"transform-feedback-webgl2":[!1,!0],"vertex-array-object-webgl1":["OES_vertex_array_object",!0],"instanced-rendering-webgl1":["ANGLE_instanced_arrays",!0],"multiple-render-targets-webgl1":["WEBGL_draw_buffers",!0],"index-uint32-webgl1":["OES_element_index_uint",!0],"blend-minmax-webgl1":["EXT_blend_minmax",!0],"texture-blend-float-webgl1":["EXT_float_blend","EXT_float_blend"],"texture-formats-srgb-webgl1":["EXT_sRGB",!0],"texture-formats-depth-webgl1":["WEBGL_depth_texture",!0],"texture-formats-float32-webgl1":["OES_texture_float",!0],"texture-formats-float16-webgl1":["OES_texture_half_float",!0],"texture-filter-linear-float32-webgl":["OES_texture_float_linear","OES_texture_float_linear"],"texture-filter-linear-float16-webgl":["OES_texture_half_float_linear","OES_texture_half_float_linear"],"texture-filter-anisotropic-webgl":["EXT_texture_filter_anisotropic","EXT_texture_filter_anisotropic"],"texture-renderable-rgba32float-webgl":["WEBGL_color_buffer_float","EXT_color_buffer_float"],"texture-renderable-float32-webgl":[!1,"EXT_color_buffer_float"],"texture-renderable-float16-webgl":["EXT_color_buffer_half_float","EXT_color_buffer_half_float"],"glsl-frag-data":["WEBGL_draw_buffers",!0],"glsl-frag-depth":["EXT_frag_depth",!0],"glsl-derivatives":["OES_standard_derivatives",!0],"glsl-texture-lod":["EXT_shader_texture_lod",!0]};function Fi(e){let t=Kt(e);return{maxTextureDimension1D:0,maxTextureDimension2D:e.getParameter(3379),maxTextureDimension3D:t?t.getParameter(32883):0,maxTextureArrayLayers:t?t.getParameter(35071):0,maxBindGroups:1,maxDynamicUniformBuffersPerPipelineLayout:0,maxDynamicStorageBuffersPerPipelineLayout:0,maxSampledTexturesPerShaderStage:e.getParameter(35660),maxSamplersPerShaderStage:e.getParameter(35661),maxStorageBuffersPerShaderStage:0,maxStorageTexturesPerShaderStage:0,maxUniformBuffersPerShaderStage:t?t.getParameter(35375):0,maxUniformBufferBindingSize:t?t.getParameter(35376):0,maxStorageBufferBindingSize:0,minUniformBufferOffsetAlignment:t?t.getParameter(35380):0,minStorageBufferOffsetAlignment:0,maxVertexBuffers:0,maxVertexAttributes:e.getParameter(34921),maxVertexBufferArrayStride:2048,maxInterStageShaderComponents:t?t.getParameter(35659):0,maxComputeWorkgroupStorageSize:0,maxComputeInvocationsPerWorkgroup:0,maxComputeWorkgroupSizeX:0,maxComputeWorkgroupSizeY:0,maxComputeWorkgroupSizeZ:0,maxComputeWorkgroupsPerDimension:0}}function Mi(e){let t=Kt(e);function r(s){return e.getParameter(s)}function i(s,o){return t?t.getParameter(s):o||0}return{[33902]:r(33902),[33901]:r(33901),[3379]:r(3379),[34076]:r(34076),[34930]:r(34930),[35661]:r(35661),[35660]:r(35660),[34024]:r(34024),[36348]:r(36348),[34921]:r(34921),[36347]:r(36347),[36349]:r(36349),[3386]:r(3386),[34047]:r(34047),[32883]:i(32883),[35071]:i(35071),[37447]:i(37447),[36063]:i(36063),[35379]:i(35379),[35374]:i(35374),[35377]:i(35377),[34852]:i(34852),[36203]:i(36203),[33001]:i(33001),[33e3]:i(33e3),[37157]:i(37157),[35373]:i(35373),[35657]:i(35657),[36183]:i(36183),[37137]:i(37137),[34045]:i(34045),[35978]:i(35978),[35979]:i(35979),[35968]:i(35968),[35376]:i(35376),[35375]:i(35375),[35659]:i(35659),[37154]:i(37154),[35371]:i(35371),[35658]:i(35658),[35076]:i(35076),[35077]:i(35077),[35380]:i(35380)}}var Wi=E(p(),1);var Rt=E(p(),1);var D=E(p(),1);function Z(e,t,r){let s=U.attach(e).gl;if(Ko(t))return r(e);let{nocatch:o=!0}=t;Ae(s),ae(s,t);let n;if(o)n=r(s),le(s);else try{n=r(s)}finally{le(s)}return n}function Ko(e){for(let t in e)return!1;return!0}var dt=E(p(),1);function Di(e,t,r,i){if((0,dt.isObjectEmpty)(t))return i(e);Ae(e.gl);try{return jo(e,t),ae(e,r),i(e)}finally{le(e.gl)}}function jo(e,t){let r=U.attach(e),{gl:i}=r;if(t.cullMode)switch(t.cullMode){case"none":i.disable(2884);break;case"front":i.enable(2884),i.cullFace(1028);break;case"back":i.enable(2884),i.cullFace(1029);break}if(t.frontFace&&i.frontFace(Je("frontFace",t.frontFace,{ccw:2305,cw:2304})),t.depthBias!==void 0&&i.polygonOffset(t.depthBias,t.depthBiasSlopeScale||0),t.depthWriteEnabled!==void 0&&i.depthMask($o("depthWriteEnabled",t.depthWriteEnabled)),t.depthCompare&&(t.depthCompare!=="always"?i.enable(2929):i.disable(2929),i.depthFunc(_t("depthCompare",t.depthCompare))),t.stencilWriteMask){let s=t.stencilWriteMask;i.stencilMaskSeparate(1028,s),i.stencilMaskSeparate(1029,s)}if(t.stencilReadMask&&dt.log.warn("stencilReadMask not supported under WebGL"),t.stencilCompare){let s=t.stencilReadMask||4294967295,o=_t("depthCompare",t.stencilCompare);t.stencilCompare!=="always"?i.enable(2960):i.disable(2960),i.stencilFuncSeparate(1028,o,0,s),i.stencilFuncSeparate(1029,o,0,s)}if(t.stencilPassOperation&&t.stencilFailOperation&&t.stencilDepthFailOperation){let s=tr("stencilPassOperation",t.stencilPassOperation),o=tr("stencilFailOperation",t.stencilFailOperation),n=tr("stencilDepthFailOperation",t.stencilDepthFailOperation);i.stencilOpSeparate(1028,o,n,s),i.stencilOpSeparate(1029,o,n,s)}if(t.blendColorOperation||t.blendAlphaOperation){i.enable(3042);let s=Bi("blendColorOperation",t.blendColorOperation||"add"),o=Bi("blendAlphaOperation",t.blendAlphaOperation||"add");i.blendEquationSeparate(s,o);let n=ct("blendColorSrcFactor",t.blendColorSrcFactor||"one"),a=ct("blendColorDstFactor",t.blendColorDstFactor||"zero"),l=ct("blendAlphaSrcFactor",t.blendAlphaSrcFactor||"one"),f=ct("blendAlphaDstFactor",t.blendAlphaDstFactor||"zero");i.blendFuncSeparate(n,a,l,f)}}function _t(e,t){return Je(e,t,{never:512,less:513,equal:514,"less-equal":515,greater:516,"not-equal":517,"greater-equal":518,always:519})}function tr(e,t){return Je(e,t,{keep:7680,zero:0,replace:7681,invert:5386,"increment-clamp":7682,"decrement-clamp":7683,"increment-wrap":34055,"decrement-wrap":34056})}function Bi(e,t){return Je(e,t,{add:32774,subtract:32778,"reverse-subtract":32779,min:32775,max:32776})}function ct(e,t){return Je(e,t,{one:1,zero:0,"src-color":768,"one-minus-src-color":769,"dst-color":774,"one-minus-dst-color":775,"src-alpha":770,"one-minus-src-alpha":771,"dst-alpha":772,"one-minus-dst-alpha":773})}function Yo(e,t){return`Illegal parameter ${t} for ${e}`}function Je(e,t,r){if(!(t in r))throw new Error(Yo(e,t));return r[t]}function $o(e,t){return t}function ht(e){let t={};return e.addressModeU&&(t[10242]=rr(e.addressModeU)),e.addressModeV&&(t[10243]=rr(e.addressModeV)),e.addressModeW&&(t[32882]=rr(e.addressModeW)),e.magFilter&&(t[10240]=yi(e.magFilter)),(e.minFilter||e.mipmapFilter)&&(t[10241]=zo(e.minFilter||"linear",e.mipmapFilter)),e.lodMinClamp!==void 0&&(t[33082]=e.lodMinClamp),e.lodMaxClamp!==void 0&&(t[33083]=e.lodMaxClamp),e.type==="comparison-sampler"&&(t[34892]=34894),e.compare&&(t[34893]=_t("compare",e.compare)),e.maxAnisotropy&&(t[34046]=e.maxAnisotropy),t}function Pi(e){let t={...e};return e[10241]!==9728&&(t[10241]=9729),t[10242]=33071,t[10243]=33071,t}function rr(e){switch(e){case"clamp-to-edge":return 33071;case"repeat":return 10497;case"mirror-repeat":return 33648}}function yi(e){switch(e){case"nearest":return 9728;case"linear":return 9729}}function zo(e,t){if(!t)return yi(e);switch(e){case"nearest":return t==="nearest"?9984:9986;case"linear":return t==="nearest"?9985:9987}}var re=E(p(),1),H=class extends re.Buffer{constructor(t){let r=arguments.length>1&&arguments[1]!==void 0?arguments[1]:{};super(t,r),this.device=void 0,this.gl=void 0,this.gl2=void 0,this.handle=void 0,this.glTarget=void 0,this.glUsage=void 0,this.glIndexType=5123,this.byteLength=void 0,this.bytesUsed=void 0,this.device=t,this.gl=this.device.gl,this.gl2=this.device.gl2;let i=typeof r=="object"?r.handle:void 0;this.handle=i||this.gl.createBuffer(),t.setSpectorMetadata(this.handle,{...this.props,data:typeof this.props.data}),this.glTarget=Lo(this.props.usage),this.glUsage=Zo(this.props.usage),this.glIndexType=this.props.indexType==="uint32"?5125:5123,r.data?this._initWithData(r.data,r.byteOffset,r.byteLength):this._initWithByteLength(r.byteLength||0)}_initWithData(t){let r=arguments.length>1&&arguments[1]!==void 0?arguments[1]:0,i=arguments.length>2&&arguments[2]!==void 0?arguments[2]:t.byteLength+r,s=this.glTarget;this.gl.bindBuffer(s,this.handle),this.gl.bufferData(s,i,this.glUsage),this.gl.bufferSubData(s,r,t),this.gl.bindBuffer(s,null),this.bytesUsed=i,this.byteLength=i,this._setDebugData(t,r,i),this.trackAllocatedMemory(i)}_initWithByteLength(t){(0,re.assert)(t>=0);let r=t;t===0&&(r=new Float32Array(0));let i=this.glTarget;return this.gl.bindBuffer(i,this.handle),this.gl.bufferData(i,r,this.glUsage),this.gl.bindBuffer(i,null),this.bytesUsed=t,this.byteLength=t,this._setDebugData(null,0,t),this.trackAllocatedMemory(t),this}destroy(){!this.destroyed&&this.handle&&(this.removeStats(),this.trackDeallocatedMemory(),this.gl.deleteBuffer(this.handle),this.destroyed=!0,this.handle=null)}write(t){let r=arguments.length>1&&arguments[1]!==void 0?arguments[1]:0,i=0,s=void 0,o=this.device.isWebGL2?36663:this.glTarget;this.gl.bindBuffer(o,this.handle),i!==0||s!==void 0?(this.device.assertWebGL2(),this.gl2.bufferSubData(o,r,t,i,s)):this.gl.bufferSubData(o,r,t),this.gl.bindBuffer(o,null),this._setDebugData(t,r,t.byteLength)}async readAsync(){let t=arguments.length>0&&arguments[0]!==void 0?arguments[0]:0,r=arguments.length>1?arguments[1]:void 0;return this.readSyncWebGL2(t,r)}readSyncWebGL2(){var t;let r=arguments.length>0&&arguments[0]!==void 0?arguments[0]:0,i=arguments.length>1?arguments[1]:void 0;this.device.assertWebGL2(),i=(t=i)!==null&&t!==void 0?t:this.byteLength-r;let s=new Uint8Array(i),o=0;return this.gl.bindBuffer(36662,this.handle),this.gl2.getBufferSubData(36662,r,s,o,i),this.gl.bindBuffer(36662,null),this._setDebugData(s,r,i),s}};function Lo(e){return e&re.Buffer.INDEX?34963:e&re.Buffer.VERTEX?34962:e&re.Buffer.UNIFORM?35345:34962}function Zo(e){return e&re.Buffer.INDEX||e&re.Buffer.VERTEX?35044:e&re.Buffer.UNIFORM?35048:35044}var vi=E(p(),1);var Oe=class extends vi.Sampler{constructor(t,r){super(t,r),this.device=void 0,this.handle=void 0,this.parameters=void 0,this.device=t,this.parameters=ht(r),this.device.isWebGL2&&(this.handle=this.handle||this.device.gl2.createSampler(),this._setSamplerParameters(this.parameters))}destroy(){this.handle&&(this.device.gl2.deleteSampler(this.handle),this.handle=void 0)}toString(){return`Sampler(${this.id},${JSON.stringify(this.props)})`}_setSamplerParameters(t){for(let[r,i]of Object.entries(t)){let s=Number(r);switch(s){case 33082:case 33083:this.device.gl2.samplerParameterf(this.handle,s,i);break;default:this.device.gl2.samplerParameteri(this.handle,s,i);break}}}};var qo={parameters:{},pixelStore:{},pixels:null,border:0,dataFormat:void 0,textureUnit:void 0,target:void 0},v=class extends D.Texture{constructor(t,r){var i;super(t,{...qo,format:"rgba8unorm",...r}),this.MAX_ATTRIBUTES=void 0,this.device=void 0,this.gl=void 0,this.gl2=void 0,this.handle=void 0,this.sampler=void 0,this.glFormat=void 0,this.type=void 0,this.dataFormat=void 0,this.mipmaps=void 0,this.target=void 0,this.textureUnit=void 0,this.loaded=!1,this._video=void 0,this.device=t,this.gl=this.device.gl,this.gl2=this.device.gl2,this.handle=this.props.handle||this.gl.createTexture(),this.device.setSpectorMetadata(this.handle,{...this.props,data:typeof this.props.data}),this.glFormat=6408,this.target=Jo(this.props),this.loaded=!1,typeof((i=this.props)===null||i===void 0?void 0:i.data)=="string"&&Object.assign(this.props,{data:(0,D.loadImage)(this.props.data)}),this.initialize(this.props),Object.seal(this)}destroy(){this.handle&&(this.gl.deleteTexture(this.handle),this.removeStats(),this.trackDeallocatedMemory("Texture"),this.destroyed=!0)}toString(){return`Texture(${this.id},${this.width}x${this.height})`}initialize(){let t=arguments.length>0&&arguments[0]!==void 0?arguments[0]:{};if(this.props.dimension==="cube")return this.initializeCube(t);let r=t.data;if(r instanceof Promise)return r.then(R=>this.initialize(Object.assign({},t,{pixels:R,data:R}))),this;let i=typeof HTMLVideoElement<"u"&&r instanceof HTMLVideoElement;if(i&&r.readyState<HTMLVideoElement.HAVE_METADATA)return this._video=null,r.addEventListener("loadeddata",()=>this.initialize(t)),this;let{parameters:s={}}=t,{pixels:o=null,pixelStore:n={},textureUnit:a=void 0}=t;r||(r=o);let{width:l,height:f,dataFormat:c,type:_,compressed:d=!1,mipmaps:u=!0}=t,{depth:A=0}=t,x=Ze(t.format,this.device.isWebGL2);return{width:l,height:f,compressed:d,dataFormat:c,type:_}=this._deduceParameters({format:t.format,type:_,dataFormat:c,compressed:d,data:r,width:l,height:f}),this.width=l,this.height=f,this.glFormat=x,this.type=_,this.dataFormat=c,this.textureUnit=a,Number.isFinite(this.textureUnit)&&(this.gl.activeTexture(33984+this.textureUnit),this.gl.bindTexture(this.target,this.handle)),u&&this.device.isWebGL1&&ut(this.width,this.height)&&(D.log.warn(`texture: ${this} is Non-Power-Of-Two, disabling mipmaps`)(),u=!1),this.mipmaps=u,this.setImageData({data:r,width:l,height:f,depth:A,format:x,type:_,dataFormat:c,parameters:n,compressed:d}),this.setSampler(t.sampler),this._setSamplerParameters(s),u&&this.generateMipmap(),i&&(this._video={video:r,parameters:s,lastTime:r.readyState>=HTMLVideoElement.HAVE_CURRENT_DATA?r.currentTime:-1}),this}initializeCube(t){let{mipmaps:r=!0,parameters:i={}}=t;return this.setCubeMapImageData(t).then(()=>{this.loaded=!0,r&&this.generateMipmap(t),this.setSampler(t.sampler),this._setSamplerParameters(i)}),this}setSampler(){let t=arguments.length>0&&arguments[0]!==void 0?arguments[0]:{},r;t instanceof Oe?(this.sampler=t,r=t.props):(this.sampler=new Oe(this.device,t),r=t);let i=ht(r);return this._setSamplerParameters(i),this}resize(t){let{height:r,width:i,mipmaps:s=!1}=t;return i!==this.width||r!==this.height?this.initialize({width:i,height:r,format:this.format,type:this.type,dataFormat:this.dataFormat,mipmaps:s}):this}update(){if(this._video){let{video:t,parameters:r,lastTime:i}=this._video;if(i===t.currentTime||t.readyState<HTMLVideoElement.HAVE_CURRENT_DATA)return;this.setSubImageData({data:t,parameters:r}),this.mipmaps&&this.generateMipmap(),this._video.lastTime=t.currentTime}}generateMipmap(){let t=arguments.length>0&&arguments[0]!==void 0?arguments[0]:{};return this.device.isWebGL1&&ut(this.width,this.height)?(D.log.warn(`texture: ${this} is Non-Power-Of-Two, disabling mipmaping`)(),this):(this.mipmaps=!0,this.gl.bindTexture(this.target,this.handle),Z(this.gl,t,()=>{this.gl.generateMipmap(this.target)}),this.gl.bindTexture(this.target,null),this)}setImageData(t){if(this.props.dimension==="3d"||this.props.dimension==="2d-array")return this.setImageData3D(t);this.trackDeallocatedMemory("Texture");let{target:r=this.target,pixels:i=null,level:s=0,glFormat:o=this.glFormat,offset:n=0,parameters:a={}}=t,{data:l=null,type:f=this.type,width:c=this.width,height:_=this.height,dataFormat:d=this.dataFormat,compressed:u=!1}=t;l||(l=i),{type:f,dataFormat:d,compressed:u,width:c,height:_}=this._deduceParameters({format:this.props.format,type:f,dataFormat:d,compressed:u,data:l,width:c,height:_});let{gl:A}=this;A.bindTexture(this.target,this.handle);let x=null;({data:l,dataType:x}=this._getDataType({data:l,compressed:u}));let R;if(Z(this.gl,a,()=>{switch(x){case"null":A.texImage2D(r,s,o,c,_,0,d,f,l);break;case"typed-array":A.texImage2D(r,s,o,c,_,0,d,f,l,n);break;case"buffer":R=this.device.assertWebGL2(),R.bindBuffer(35052,l.handle||l),R.texImage2D(r,s,o,c,_,0,d,f,n),R.bindBuffer(35052,null);break;case"browser-object":this.device.isWebGL2?A.texImage2D(r,s,o,c,_,0,d,f,l):A.texImage2D(r,s,o,d,f,l);break;case"compressed":for(let[P,b]of l.entries())A.compressedTexImage2D(r,P,b.format,b.width,b.height,0,b.data);break;default:(0,D.assert)(!1,"Unknown image data type")}}),l&&l.byteLength)this.trackAllocatedMemory(l.byteLength,"Texture");else{let P=qe(this.props.format,this.device.isWebGL2);this.trackAllocatedMemory(this.width*this.height*P,"Texture")}return this.loaded=!0,this}setSubImageData(t){let{target:r=this.target,pixels:i=null,data:s=null,x:o=0,y:n=0,width:a=this.width,height:l=this.height,level:f=0,glFormat:c=this.glFormat,type:_=this.type,dataFormat:d=this.dataFormat,compressed:u=!1,offset:A=0,parameters:x={}}=t;if({type:_,dataFormat:d,compressed:u,width:a,height:l}=this._deduceParameters({format:this.props.format,type:_,dataFormat:d,compressed:u,data:s,width:a,height:l}),(0,D.assert)(this.depth===1,"texSubImage not supported for 3D textures"),s||(s=i),s&&s.data){let R=s;s=R.data,a=R.shape[0],l=R.shape[1]}s instanceof H&&(s=s.handle),this.gl.bindTexture(this.target,this.handle),Z(this.gl,x,()=>{if(u)this.gl.compressedTexSubImage2D(r,f,o,n,a,l,c,s);else if(s===null)this.gl.texSubImage2D(r,f,o,n,a,l,d,_,null);else if(ArrayBuffer.isView(s))this.gl.texSubImage2D(r,f,o,n,a,l,d,_,s,A);else if(typeof WebGLBuffer<"u"&&s instanceof WebGLBuffer){let R=this.device.assertWebGL2();R.bindBuffer(35052,s),R.texSubImage2D(r,f,o,n,a,l,d,_,A),R.bindBuffer(35052,null)}else this.device.isWebGL2?this.device.assertWebGL2().texSubImage2D(r,f,o,n,a,l,d,_,s):this.gl.texSubImage2D(r,f,o,n,d,_,s)}),this.gl.bindTexture(this.target,null)}copyFramebuffer(){let t=arguments.length>0&&arguments[0]!==void 0?arguments[0]:{};return D.log.error("Texture.copyFramebuffer({...}) is no logner supported, use copyToTexture(source, target, opts})")(),null}getActiveUnit(){return this.gl.getParameter(34016)-33984}bind(){let t=arguments.length>0&&arguments[0]!==void 0?arguments[0]:this.textureUnit,{gl:r}=this;return t!==void 0&&(this.textureUnit=t,r.activeTexture(33984+t)),r.bindTexture(this.target,this.handle),t}unbind(){let t=arguments.length>0&&arguments[0]!==void 0?arguments[0]:this.textureUnit,{gl:r}=this;return t!==void 0&&(this.textureUnit=t,r.activeTexture(33984+t)),r.bindTexture(this.target,null),t}_getDataType(t){let{data:r,compressed:i=!1}=t;return i?{data:r,dataType:"compressed"}:r===null?{data:r,dataType:"null"}:ArrayBuffer.isView(r)?{data:r,dataType:"typed-array"}:r instanceof H?{data:r.handle,dataType:"buffer"}:typeof WebGLBuffer<"u"&&r instanceof WebGLBuffer?{data:r,dataType:"buffer"}:{data:r,dataType:"browser-object"}}_deduceParameters(t){let{format:r,data:i}=t,{width:s,height:o,dataFormat:n,type:a,compressed:l}=t,f=Me(r,this.device.isWebGL2);return n=n||f.dataFormat,a=a||f.type,l=l||f.compressed,{width:s,height:o}=this._deduceImageSize(i,s,o),{dataFormat:n,type:a,compressed:l,width:s,height:o,format:r,data:i}}_deduceImageSize(t,r,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:r,height:i}:s={width:r>=0?r:1,height:i>=0?i:1},(0,D.assert)(s,"Could not deduced texture size"),(0,D.assert)(r===void 0||s.width===r,"Deduced texture width does not match supplied width"),(0,D.assert)(i===void 0||s.height===i,"Deduced texture height does not match supplied height"),s}async setCubeMapImageData(t){let{gl:r}=this,{width:i,height:s,pixels:o,data:n,format:a=6408,type:l=5121}=t,f=o||n,c=await Promise.all(v.FACES.map(_=>{let d=f[_];return Promise.all(Array.isArray(d)?d:[d])}));this.bind(),v.FACES.forEach((_,d)=>{c[d].length>1&&this.props.mipmaps!==!1&&D.log.warn(`${this.id} has mipmap and multiple LODs.`)(),c[d].forEach((u,A)=>{i&&s?r.texImage2D(_,A,a,i,s,0,a,l,u):r.texImage2D(_,A,a,a,l,u)})}),this.unbind()}setImageDataForFace(t){let{face:r,width:i,height:s,pixels:o,data:n,format:a=6408,type:l=5121}=t,{gl:f}=this,c=o||n;return this.bind(),c instanceof Promise?c.then(_=>this.setImageDataForFace(Object.assign({},t,{face:r,data:_,pixels:_}))):this.width||this.height?f.texImage2D(r,0,a,i,s,0,a,l,c):f.texImage2D(r,0,a,a,l,c),this}setImageData3D(t){let{level:r=0,dataFormat:i,format:s,type:o,width:n,height:a,depth:l=1,offset:f=0,data:c,parameters:_={}}=t;this.trackDeallocatedMemory("Texture"),this.gl.bindTexture(this.target,this.handle);let d=Me(s,this.device.isWebGL2);if(Z(this.gl,_,()=>{ArrayBuffer.isView(c)&&this.gl.texImage3D(this.target,r,d.format,n,a,l,0,d.dataFormat,d.type,c),c instanceof H&&(this.gl.bindBuffer(35052,c.handle),this.gl.texImage3D(this.target,r,i,n,a,l,0,s,o,f))}),c&&c.byteLength)this.trackAllocatedMemory(c.byteLength,"Texture");else{let u=qe(this.props.format,this.device.isWebGL2);this.trackAllocatedMemory(this.width*this.height*this.depth*u,"Texture")}return this.loaded=!0,this}_setSamplerParameters(t){if(this.device.isWebGL1&&ut(this.width,this.height)&&(t=Pi(t)),!(0,D.isObjectEmpty)(t)){Qo(t),this.gl.bindTexture(this.target,this.handle);for(let[r,i]of Object.entries(t)){let s=Number(r),o=i;switch(s){case 33082:case 33083: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,r){if(this.device.isWebGL1&&ut(this.width,this.height))switch(t){case 10241:if(r!==9729&&r!==9728)return 9729;break;case 10242:case 10243:return 33071;default:break}return r}};v.FACES=[34069,34070,34071,34072,34073,34074];function Jo(e){switch(e.dimension){case"2d":return 3553;case"cube":return 34067;case"2d-array":return 35866;case"3d":return 32879;case"1d":case"cube-array":default:throw new Error(e.dimension)}}function ut(e,t){return!e||!t?!1:!(0,D.isPowerOfTwo)(e)||!(0,D.isPowerOfTwo)(t)}function Qo(e){D.log.log(1,"texture sampler parameters",e)()}var wi=E(p(),1);var ce=E(p(),1);var Ui=E(p(),1);function At(e,t){if(typeof t!="string")return t;let r=Number(t);if(!isNaN(r))return r;t=t.replace(/^.*\./,"");let i=e[t];return(0,Ui.assert)(i!==void 0,`Accessing undefined constant GL.${t}`),i}var Be="Resource subclass must define virtual methods",Tt=class extends ce.Resource{constructor(t,r,i){super(t,r,i),this.device=void 0,this.gl=void 0,this.gl2=void 0,this._handle=void 0,this._bound=!1,this.byteLength=0,this.device=U.attach(t);let s=this.device.gl;Gr(s);let{id:o}=r||{};this.gl=s,this.gl2=s,this.id=o||(0,ce.uid)(this.constructor.name),this._handle=r?.handle,this._handle===void 0&&(this._handle=this._createHandle()),this.byteLength=0}toString(){return`${this.constructor.name}(${this.id})`}get handle(){return this._handle}delete(){let{deleteChildren:t=!1}=arguments.length>0&&arguments[0]!==void 0?arguments[0]:{},r=this._handle&&this._deleteHandle(this._handle);return this._handle&&this.removeStats(),this._handle=null,r&&t&&r.filter(Boolean).forEach(i=>i.destroy()),this}bind(){let t=arguments.length>0&&arguments[0]!==void 0?arguments[0]:this.handle;if(typeof t!="function")return this._bindHandle(t),this;let r;return this._bound?r=t():(this._bindHandle(this.handle),this._bound=!0,r=t(),this._bound=!1,this._bindHandle(null)),r}unbind(){this.bind(null)}getParameter(t){let r=arguments.length>1&&arguments[1]!==void 0?arguments[1]:{};t=At(this.gl,t),(0,ce.assert)(t);let s=(this.constructor.PARAMETERS||{})[t];if(s){let o=g(this.gl);if(!((!("webgl2"in s)||o)&&(!("extension"in s)||this.gl.getExtension(s.extension)))){let a=s.webgl1,l="webgl2"in s?s.webgl2:s.webgl1;return o?l:a}}return this._getParameter(t,r)}getParameters(){let t=arguments.length>0&&arguments[0]!==void 0?arguments[0]:{},{parameters:r,keys:i}=t,s=this.constructor.PARAMETERS||{},o=g(this.gl),n={},a=r||Object.keys(s);for(let l of a){let f=s[l];if(f&&(!("webgl2"in f)||o)&&(!("extension"in f)||this.gl.getExtension(f.extension))){let _=i?this.device.getGLKey(l):l;n[_]=this.getParameter(l,t),i&&f.type==="GLenum"&&(n[_]=this.device.getGLKey(n[_]))}}return n}setParameter(t,r){t=At(this.gl,t),(0,ce.assert)(t);let s=(this.constructor.PARAMETERS||{})[t];if(s){let o=g(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"&&(r=At(r))}return this._setParameter(t,r),this}setParameters(t){for(let r in t)this.setParameter(r,t[r]);return this}stubRemovedMethods(t,r,i){return(0,ce.stubRemovedMethods)(this,t,r,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,r){throw new Error(Be)}_setParameter(t,r){throw new Error(Be)}};var mi;mi=Symbol.toStringTag;var Te=class extends Tt{get[mi](){return"Renderbuffer"}get width(){return this.props.width}get height(){return this.props.height}get format(){return this.props.format}get samples(){return this.props.samples}get attachment(){}static isTextureFormatSupported(t,r){return bi(t.gl,r)}constructor(t,r){if(typeof r.format=="number")throw new Error("Renderbuffer");super(t,r,Te.defaultProps),this.glFormat=void 0,this.glFormat=Ze(this.props.format,t.isWebGL2),this._initialize(this.props)}resize(t){(t.width!==this.width||t.height!==this.height)&&(Object.assign(this.props,{...t,format:this.format,samples:this.samples}),this._initialize(this.props))}_initialize(t){let{format:r,width:i,height:s,samples:o}=t;(0,wi.assert)(r,"Needs format"),this.trackDeallocatedMemory(),this.gl.bindRenderbuffer(36161,this.handle),o!==0&&this.device.isWebGL2?this.gl2.renderbufferStorageMultisample(36161,o,this.glFormat,i,s):this.gl.renderbufferStorage(36161,this.glFormat,i,s),this.gl.bindRenderbuffer(36161,null),this.trackAllocatedMemory(i*s*(o||1)*qe(this.glFormat,this.device.isWebGL2))}_createHandle(){return this.gl.createRenderbuffer()}_deleteHandle(){this.gl.deleteRenderbuffer(this.handle),this.trackDeallocatedMemory()}_bindHandle(t){this.gl.bindRenderbuffer(36161,t)}};Te.defaultProps={id:void 0,handle:void 0,userData:void 0,format:void 0,width:1,height:1,samples:0};var ie=class extends Rt.Framebuffer{get texture(){return this.colorAttachments[0]}constructor(t,r){super(t,r),this.device=void 0,this.gl=void 0,this.handle=void 0;let i=r.handle===null;if(this.device=t,this.gl=t.gl,this.handle=this.props.handle||i?this.props.handle:this.gl.createFramebuffer(),!i){t.setSpectorMetadata(this.handle,{id:this.props.id,props:this.props}),this.autoCreateAttachmentTextures(),this.gl.bindFramebuffer(36160,this.handle);for(let s=0;s<this.colorAttachments.length;++s){let o=this.colorAttachments[s],n=36064+s;o&&this._attachOne(n,o)}this.depthStencilAttachment&&this._attachOne(Oi(this.depthStencilAttachment.format),this.depthStencilAttachment),this.gl.bindFramebuffer(36160,null)}r.check!==!1&&this._checkStatus()}destroy(){super.destroy(),!this.destroyed&&this.handle!==null&&this.gl.deleteFramebuffer(this.handle)}_checkStatus(){let{gl:t}=this,r=t.bindFramebuffer(36160,this.handle),i=t.checkFramebufferStatus(36160);if(t.bindFramebuffer(36160,r||null),i!==36053)throw new Error(`Framebuffer ${en(i)}`)}createDepthStencilTexture(t){return new Te(this.device,{id:`${this.id}-depth-stencil`,format:t,width:this.width,height:this.height})}resizeAttachments(t,r){if(this.handle===null)return this.width=this.gl.drawingBufferWidth,this.height=this.gl.drawingBufferHeight,this;t===void 0&&(t=this.gl.drawingBufferWidth),r===void 0&&(r=this.gl.drawingBufferHeight);for(let i of this.colorAttachments)i.resize({width:t,height:r});return this.depthStencilAttachment&&this.depthStencilAttachment.resize({width:t,height:r}),this}_attachOne(t,r){if(r instanceof Te)return this._attachWEBGLRenderbuffer(t,r),r;if(Array.isArray(r)){let[i,s=0,o=0]=r;return this._attachTexture(t,i,s,o),i}else if(r instanceof v)return this._attachTexture(t,r,0,0),r;throw new Error("attach")}_attachWEBGLRenderbuffer(t,r){this.gl.framebufferRenderbuffer(36160,t,36161,r.handle)}_attachTexture(t,r,i,s){let{gl:o,gl2:n}=this.device;switch(o.bindTexture(r.target,r.handle),r.target){case 35866:case 32879:this.device.assertWebGL2(),n?.framebufferTextureLayer(36160,t,r.target,s,i);break;case 34067:let a=Go(i);o.framebufferTexture2D(36160,t,a,r.handle,s);break;case 3553:o.framebufferTexture2D(36160,t,3553,r.handle,s);break;default:(0,Rt.assert)(!1,"Illegal texture type")}o.bindTexture(r.target,null)}};function Go(e){return e<34069?e+34069:e}function en(e){switch(e){case 36053:return"success";case 36054:return"Mismatched attachments";case 36055:return"No attachments";case 36057:return"Height/width mismatch";case 36061:return"Unsupported or split attachments";case 36182:return"Samples mismatch";default:return`${e}`}}var gt=class extends Wi.CanvasContext{constructor(t,r){super(r),this.device=void 0,this.presentationSize=void 0,this._framebuffer=null,this.device=t,this.presentationSize=[-1,-1],this._setAutoCreatedCanvasId(`${this.device.id}-canvas`),this.update()}getCurrentFramebuffer(){return this.update(),this._framebuffer=this._framebuffer||new ie(this.device,{handle:null}),this._framebuffer}update(){let t=this.getPixelSize();(t[0]!==this.presentationSize[0]||t[1]!==this.presentationSize[1])&&(this.presentationSize=t)}resize(t){if(this.canvas){let i=this.getDevicePixelRatio(t?.useDevicePixels);this.setDevicePixelRatio(i,t);return}let r=this.device.gl.getExtension("STACKGL_resize_drawingbuffer");r&&t&&"width"in t&&"height"in t&&r.resize(t.width,t.height)}commit(){}};var se=E(p(),1),tn={spector:se.log.get("spector")||se.log.get("inspect")},rn="https://spectorcdn.babylonjs.com/spector.bundle.js",sn=1,k=null,Xi=!1;async function Hi(e){if(!globalThis.SPECTOR)try{await(0,se.loadScript)(rn)}catch(t){se.log.warn(String(t))}}function Vi(e){var t,r;if(e={...tn,...e},!((t=e)!==null&&t!==void 0&&t.spector)||(!k&&globalThis.SPECTOR&&(se.log.probe(sn,"SPECTOR found and initialized")(),k=new globalThis.SPECTOR.Spector,globalThis.luma&&(globalThis.luma.spector=k)),!k))return null;if(!Xi){var i,s;Xi=!0,k.spyCanvases(),(i=k)===null||i===void 0||i.onCaptureStarted.add(a=>se.log.info("Spector capture started:",a)()),(s=k)===null||s===void 0||s.onCapture.add(a=>{var l,f,c;se.log.info("Spector capture complete:",a)(),(l=k)===null||l===void 0||l.getResultUI(),(f=k)===null||f===void 0||f.resultView.display(),(c=k)===null||c===void 0||c.resultView.addCapture(a)})}if((r=e)!==null&&r!==void 0&&r.canvas){var o,n;if(typeof e.spector=="string"&&e.spector!==e.canvas.id)return k;(o=k)===null||o===void 0||o.startCapture((n=e)===null||n===void 0?void 0:n.canvas,500),new Promise(a=>setTimeout(a,2e3)).then(a=>{var l;se.log.info("Spector capture stopped after 2 seconds")(),(l=k)===null||l===void 0||l.stopCapture()})}return k}var Re=E(p(),1);var on="https://unpkg.com/webgl-debug@2.0.1/index.js";function ki(e){return e.luma=e.luma||{},e.luma}async function Ki(){z()&&!globalThis.WebGLDebugUtils&&(globalThis.global=globalThis.global||globalThis,globalThis.global.module={},await(0,Re.loadScript)(on))}function ji(e){let t=arguments.length>1&&arguments[1]!==void 0?arguments[1]:{};return e?t.debug?an(e,t):nn(e):null}function nn(e){let t=ki(e);return t.realContext?t.realContext:e}function an(e,t){if(!globalThis.WebGLDebugUtils)return Re.log.warn("webgl-debug not loaded")(),e;let r=ki(e);if(r.debugContext)return r.debugContext;globalThis.WebGLDebugUtils.init({...Ee,...e});let i=globalThis.WebGLDebugUtils.makeDebugContext(e,ln.bind(null,t),fn.bind(null,t));for(let n in Ee)!(n in i)&&typeof Ee[n]=="number"&&(i[n]=Ee[n]);class s{}Object.setPrototypeOf(i,Object.getPrototypeOf(e)),Object.setPrototypeOf(s,i);let o=Object.create(s);return r.realContext=e,r.debugContext=o,o.debug=!0,o}function ir(e,t){t=Array.from(t).map(i=>i===void 0?"undefined":i);let r=globalThis.WebGLDebugUtils.glFunctionArgsToString(e,t);return r=`${r.slice(0,100)}${r.length>100?"...":""}`,`gl.${e}(${r})`}function ln(e,t,r,i){i=Array.from(i).map(l=>l===void 0?"undefined":l);let s=globalThis.WebGLDebugUtils.glEnumToString(t),o=globalThis.WebGLDebugUtils.glFunctionArgsToString(r,i),n=e.webgl2?"gl2":"gl1",a=`${s} in ${n}.${r}(${o})`;Re.log.error(a)();debugger;if(e.throwOnError)throw new Error(a)}function fn(e,t,r){let i="";if(Re.log.level>=1&&(i=ir(t,r),Re.log.log(1,i)()),e.break&&e.break.length>0&&(i=i||ir(t,r),e.break.every(o=>i.indexOf(o)!==-1)))debugger;for(let s of r)if(s===void 0){if(i=i||ir(t,r),e.throwOnError)throw new Error(`Undefined argument: ${i}`);Re.log.error(`Undefined argument: ${i}`)();debugger}}var zi=E(p(),1);function $i(e){let t=e.split(/\r?\n/),r=[];for(let i of t){if(i.length<=1)continue;let s=i.split(":");if(s.length===2){let[_,d]=s;r.push({message:d.trim(),type:Yi(_),lineNum:0,linePos:0});continue}let[o,n,a,...l]=s,f=parseInt(a,10);isNaN(f)&&(f=0);let c=parseInt(n,10);isNaN(c)&&(c=0),r.push({message:l.join(":").trim(),type:Yi(o),lineNum:f,linePos:c})}return r}function Yi(e){let t=["warning","error","info"],r=e.toLowerCase();return t.includes(r)?r:"info"}var Et=class extends zi.Shader{constructor(t,r){switch(super(t,r),this.device=void 0,this.handle=void 0,this.device=t,this.props.stage){case"vertex":this.handle=this.props.handle||this.device.gl.createShader(35633);break;case"fragment":this.handle=this.props.handle||this.device.gl.createShader(35632);break;default:throw new Error(this.props.stage)}this._compile(this.source)}destroy(){this.handle&&(this.removeStats(),this.device.gl.deleteShader(this.handle),this.destroyed=!0)}async getCompilationInfo(){return this.getCompilationInfoSync()}getCompilationInfoSync(){let t=this.device.gl.getShaderInfoLog(this.handle);return $i(t)}_compile(t){t=(s=>s.startsWith("#version ")?s:`#version 100
135
- ${s}`)(t);let{gl:i}=this.device;if(i.shaderSource(this.handle,t),i.compileShader(this.handle),this.compilationStatus=i.getShaderParameter(this.handle,35713)?"success":"error",this.debugShader(),this.compilationStatus==="error")throw new Error(`GLSL compilation errors in ${this.props.stage} shader ${this.props.id}`)}};var Li=E(p(),1);var cn=256,_n=1024,dn=16384,sr=6144,pt=class extends Li.RenderPass{constructor(t,r){super(t,r),this.device=void 0,this.glParameters=void 0,this.device=t,Ae(this.device.gl),this.setParameters(this.props.parameters),this.clear()}end(){le(this.device.gl),this.props.framebuffer&&ae(this.device,{framebuffer:null})}pushDebugGroup(t){}popDebugGroup(){}insertDebugMarker(t){}setParameters(){let t=arguments.length>0&&arguments[0]!==void 0?arguments[0]:{},r={};this.props.framebuffer&&(r.framebuffer=this.props.framebuffer),this.props.depthReadOnly&&(r.depthMask=!this.props.depthReadOnly),r.stencilMask=this.props.stencilReadOnly?0:1,r[35977]=this.props.discard,t.viewport&&(t.viewport.length>=6?(r.viewport=t.viewport.slice(0,4),r.depthRange=[t.viewport[4],t.viewport[5]]):r.viewport=t.viewport),r.scissorTest=Boolean(t.scissorRect),t.scissorRect&&(r.scissor=t.scissorRect),t.blendConstant&&(r.blendColor=t.blendConstant),t.stencilReference&&(console.warn("RenderPassParameters.stencilReference not yet implemented in WebGL"),t[2967]=t.stencilReference),this.glParameters=r,ae(this.device,r)}clear(){let t={...this.glParameters},r=0;this.props.clearColor!==!1&&(r|=dn,t.clearColor=this.props.clearColor),this.props.clearDepth!==!1&&(r|=cn,t.clearDepth=this.props.clearDepth),this.props.clearStencil!==!1&&(r|=_n,t.clearStencil=this.props.clearStencil),r!==0&&Z(this.device,t,()=>{this.device.gl.clear(r)})}clearColorBuffer(){let t=arguments.length>0&&arguments[0]!==void 0?arguments[0]:0,r=arguments.length>1&&arguments[1]!==void 0?arguments[1]:[0,0,0,0];Z(this.device.gl2,{framebuffer:this.props.framebuffer},()=>{switch(r.constructor){case Int32Array:this.device.gl2.clearBufferiv(sr,t,r);break;case Uint32Array:this.device.gl2.clearBufferuiv(sr,t,r);break;case Float32Array:default:this.device.gl2.clearBufferfv(sr,t,r);break}})}};var W=E(p(),1),is=E(p(),1);var bt=E(p(),1);function or(e,t){let{clamped:r=!0}=t||{};switch(e){case 5126:return Float32Array;case 5123:case 33635:case 32819:case 32820:return Uint16Array;case 5125:return Uint32Array;case 5121:return r?Uint8ClampedArray:Uint8Array;case 5120:return Int8Array;case 5122:return Int16Array;case 5124:return Int32Array;default:throw new Error("Failed to deduce typed array type from GL constant")}}var hn={offset:0,stride:0,type:5126,size:1,divisor:0,normalized:!1,integer:!1},un={deprecatedProps:{instanced:"divisor",isInstanced:"divisor"}},ge=class{static getBytesPerElement(t){return or(t.type||5126).BYTES_PER_ELEMENT}static getBytesPerVertex(t){return(0,bt.assert)(t.size),or(t.type||5126).BYTES_PER_ELEMENT*t.size}static resolve(){for(var t=arguments.length,r=new Array(t),i=0;i<t;i++)r[i]=arguments[i];return new ge(hn,...r)}constructor(){this.offset=void 0,this.stride=void 0,this.type=void 0,this.size=void 0,this.divisor=void 0,this.normalized=void 0,this.integer=void 0,this.buffer=void 0,this.index=void 0;for(var t=arguments.length,r=new Array(t),i=0;i<t;i++)r[i]=arguments[i];r.forEach(s=>this._assign(s)),Object.freeze(this)}toString(){return JSON.stringify(this)}get BYTES_PER_ELEMENT(){return ge.getBytesPerElement(this)}get BYTES_PER_VERTEX(){return ge.getBytesPerVertex(this)}_assign(){let t=arguments.length>0&&arguments[0]!==void 0?arguments[0]:{};return t=(0,bt.checkProps)("Accessor",t,un),t.type!==void 0&&(this.type=t.type,(t.type===5124||t.type===5125)&&(this.integer=!0)),t.size!==void 0&&(this.size=t.size),t.offset!==void 0&&(this.offset=t.offset),t.stride!==void 0&&(this.stride=t.stride),t.normalize!==void 0&&(this.normalized=t.normalize),t.normalized!==void 0&&(this.normalized=t.normalized),t.integer!==void 0&&(this.integer=t.integer),t.divisor!==void 0&&(this.divisor=t.divisor),t.buffer!==void 0&&(this.buffer=t.buffer),t.index!==void 0&&(typeof t.index=="boolean"?this.index=t.index?1:0:this.index=t.index),t.instanced!==void 0&&(this.divisor=t.instanced?1:0),t.isInstanced!==void 0&&(this.divisor=t.isInstanced?1:0),this.offset===void 0&&delete this.offset,this.stride===void 0&&delete this.stride,this.type===void 0&&delete this.type,this.size===void 0&&delete this.size,this.divisor===void 0&&delete this.divisor,this.normalized===void 0&&delete this.normalized,this.integer===void 0&&delete this.integer,this.buffer===void 0&&delete this.buffer,this.index===void 0&&delete this.index,this}};function Zi(e){return An.includes(e)}var An=[35678,35680,35679,35682,36289,36292,36293,36298,36299,36300,36303,36306,36307,36308,36311],qi={[5126]:[5126,1,"float","f32","float32"],[35664]:[5126,2,"vec2","vec2<f32>","float32x2"],[35665]:[5126,3,"vec3","vec3<f32>","float32x3"],[35666]:[5126,4,"vec4","vec4<f32>","float32x4"],[5124]:[5124,1,"int","i32","sint32"],[35667]:[5124,2,"ivec2","vec2<i32>","sint32x2"],[35668]:[5124,3,"ivec3","vec3<i32>","sint32x3"],[35669]:[5124,4,"ivec4","vec4<i32>","sint32x4"],[5125]:[5125,1,"uint","u32","uint32"],[36294]:[5125,2,"uvec2","vec2<u32>","uint32x2"],[36295]:[5125,3,"uvec3","vec3<u32>","uint32x3"],[36296]:[5125,4,"uvec4","vec4<u32>","uint32x4"],[35670]:[5126,1,"bool","f32","float32"],[35671]:[5126,2,"bvec2","vec2<f32>","float32x2"],[35672]:[5126,3,"bvec3","vec3<f32>","float32x3"],[35673]:[5126,4,"bvec4","vec4<f32>","float32x4"],[35674]:[5126,8,"mat2","mat2x2<f32>"],[35685]:[5126,8,"mat2x3","mat2x3<f32>"],[35686]:[5126,8,"mat2x4","mat2x4<f32>"],[35687]:[5126,12,"mat3x2","mat3x2<f32>"],[35675]:[5126,12,"mat3","mat3x3<f32>"],[35688]:[5126,12,"mat3x4","mat3x4<f32>"],[35689]:[5126,16,"mat4x2","mat4x2<f32>"],[35690]:[5126,16,"mat4x3","mat4x3<f32>"],[35676]:[5126,16,"mat4","mat4x4<f32>"]};function nr(e){let t=qi[e];if(!t)throw new Error("uniform");let[r,i,,s]=t;return{format:s,components:i,glType:r}}function Ji(e){let t=qi[e];if(!t)throw new Error("attribute");let[,r,,i,s]=t;return{attributeType:i,vertexFormat:s,components:r}}function Qi(e,t){let r={attributes:[],bindings:[]};r.attributes=Tn(e,t);let i=En(e,t);for(let a of i){let l=a.uniforms.map(f=>({name:f.name,format:f.format,byteOffset:f.byteOffset,byteStride:f.byteStride,arrayLength:f.arrayLength}));r.bindings.push({type:"uniform",name:a.name,location:a.location,visibility:(a.vertex?1:0)&(a.fragment?2:0),minBindingSize:a.byteLength,uniforms:l})}let s=gn(e,t),o=0;for(let a of s)if(Zi(a.type)){let{viewDimension:l,sampleType:f}=bn(a.type);r.bindings.push({type:"texture",name:a.name,location:o,viewDimension:l,sampleType:f}),a.textureUnit=o,o+=1}s.length&&(r.uniforms=s);let n=Rn(e,t);return n!=null&&n.length&&(r.varyings=n),r}function Tn(e,t){let r=[],i=e.getProgramParameter(t,35721);for(let s=0;s<i;s++){let o=e.getActiveAttrib(t,s);if(!o)throw new Error("activeInfo");let{name:n,type:a}=o,l=e.getAttribLocation(t,n);if(l>=0){let{attributeType:f}=Ji(a),c=/instance/i.test(n)?"instance":"vertex";r.push({name:n,location:l,stepMode:c,type:f})}}return r.sort((s,o)=>s.location-o.location),r}function Rn(e,t){if(!g(e))return[];let r=e,i=[],s=e.getProgramParameter(t,35971);for(let o=0;o<s;o++){let n=r.getTransformFeedbackVarying(t,o);if(!n)throw new Error("activeInfo");let{name:a,type:l,size:f}=n,{glType:c,components:_}=nr(l),d=new ge({type:c,size:f*_}),u={location:o,name:a,accessor:d};i.push(u)}return i.sort((o,n)=>o.location-n.location),i}function gn(e,t){let r=[],i=e.getProgramParameter(t,35718);for(let s=0;s<i;s++){let o=e.getActiveUniform(t,s);if(!o)throw new Error("activeInfo");let{name:n,size:a,type:l}=o,{name:f,isArray:c}=Sn(n),_=e.getUniformLocation(t,f),d={location:_,name:f,size:a,type:l,isArray:c};if(r.push(d),d.size>1)for(let u=0;u<d.size;u++){let A=`${f}[${u}]`;_=e.getUniformLocation(t,A);let x={...d,name:A,location:_};r.push(x)}}return r}function En(e,t){if(!g(e))return[];let r=e,i=(n,a)=>r.getActiveUniformBlockParameter(t,n,a),s=[],o=r.getProgramParameter(t,35382);for(let n=0;n<o;n++){let a={name:r.getActiveUniformBlockName(t,n)||"",location:i(n,35391),byteLength:i(n,35392),vertex:i(n,35396),fragment:i(n,35398),uniformCount:i(n,35394),uniforms:[]},l=i(n,35395)||[],f=r.getActiveUniforms(t,l,35383),c=r.getActiveUniforms(t,l,35384),_=r.getActiveUniforms(t,l,35387),d=r.getActiveUniforms(t,l,35388);for(let u=0;u<a.uniformCount;++u){let A=r.getActiveUniform(t,l[u]);if(!A)throw new Error("activeInfo");a.uniforms.push({name:A.name,format:nr(f[u]).format,type:f[u],arrayLength:c[u],byteOffset:_[u],byteStride:d[u]})}s.push(a)}return s.sort((n,a)=>n.location-a.location),s}var pn={[35678]:["2d","float"],[35680]:["cube","float"],[35679]:["3d","float"],[35682]:["3d","depth"],[36289]:["2d-array","float"],[36292]:["2d-array","depth"],[36293]:["cube","float"],[36298]:["2d","sint"],[36299]:["3d","sint"],[36300]:["cube","sint"],[36303]:["2d-array","uint"],[36306]:["2d","uint"],[36307]:["3d","uint"],[36308]:["cube","uint"],[36311]:["2d-array","uint"]};function bn(e){let t=pn[e];if(!t)throw new Error("sampler");let[r,i]=t;return{viewDimension:r,sampleType:i}}function Sn(e){if(e[e.length-1]!=="]")return{name:e,length:1,isArray:!1};let r=/([^[]*)(\[[0-9]+\])?/.exec(e);if(!r||r.length<2)throw new Error(`Failed to parse GLSL uniform name ${e}`);return{name:r[1],length:r[2]?1:0,isArray:Boolean(r[2])}}function Gi(e,t,r,i){let s=e,o=i;o===!0&&(o=1),o===!1&&(o=0);let n=typeof o=="number"?[o]:o;switch(r){case 35678:case 35680:case 35679:case 35682:case 36289:case 36292:case 36293:case 36298:case 36299:case 36300:case 36303:case 36306:case 36307:case 36308:case 36311:if(typeof i!="number")throw new Error("samplers must be set to integers");return e.uniform1i(t,i);case 5126:return e.uniform1fv(t,n);case 35664:return e.uniform2fv(t,n);case 35665:return e.uniform3fv(t,n);case 35666:return e.uniform4fv(t,n);case 5124:return e.uniform1iv(t,n);case 35667:return e.uniform2iv(t,n);case 35668:return e.uniform3iv(t,n);case 35669:return e.uniform4iv(t,n);case 35670:return e.uniform1iv(t,n);case 35671:return e.uniform2iv(t,n);case 35672:return e.uniform3iv(t,n);case 35673:return e.uniform4iv(t,n);case 5125:return s.uniform1uiv(t,n,1);case 36294:return s.uniform2uiv(t,n,2);case 36295:return s.uniform3uiv(t,n,3);case 36296:return s.uniform4uiv(t,n,4);case 35674:return e.uniformMatrix2fv(t,!1,n);case 35675:return e.uniformMatrix3fv(t,!1,n);case 35676:return e.uniformMatrix4fv(t,!1,n);case 35685:return s.uniformMatrix2x3fv(t,!1,n);case 35686:return s.uniformMatrix2x4fv(t,!1,n);case 35687:return s.uniformMatrix3x2fv(t,!1,n);case 35688:return s.uniformMatrix3x4fv(t,!1,n);case 35689:return s.uniformMatrix4x2fv(t,!1,n);case 35690:return s.uniformMatrix4x3fv(t,!1,n)}throw new Error("Illegal uniform")}function es(e){switch(e){case"point-list":return 0;case"line-list":return 1;case"line-strip":return 3;case"line-loop-webgl":return 2;case"triangle-list":return 4;case"triangle-strip":return 5;case"triangle-fan-webgl":return 6;default:throw new Error(e)}}function ts(e){switch(e){case"point-list":return 0;case"line-list":return 1;case"line-strip":return 1;case"line-loop-webgl":return 1;case"triangle-list":return 4;case"triangle-strip":return 4;case"triangle-fan-webgl":return 4;default:throw new Error(e)}}var rs=4,St=class extends W.RenderPipeline{constructor(t,r){super(t,r),this.device=void 0,this.handle=void 0,this.vs=void 0,this.fs=void 0,this.introspectedLayout=void 0,this.uniforms={},this.bindings={},this.varyings=null,this._uniformCount=0,this._uniformSetters={},this.device=t,this.handle=this.props.handle||this.device.gl.createProgram(),this.device.setSpectorMetadata(this.handle,{id:this.props.id}),this.vs=(0,W.cast)(r.vs),this.fs=(0,W.cast)(r.fs);let{varyings:i,bufferMode:s=35981}=r;if(i&&i.length>0){var o;this.device.assertWebGL2(),this.varyings=i,(o=this.device.gl2)===null||o===void 0||o.transformFeedbackVaryings(this.handle,i,s)}this._compileAndLink(),this.introspectedLayout=Qi(this.device.gl,this.handle),this.shaderLayout=(0,is.mergeShaderLayout)(this.introspectedLayout,r.shaderLayout)}destroy(){this.handle&&(this.device.gl.deleteProgram(this.handle),this.destroyed=!0)}setBindings(t){for(let[r,i]of Object.entries(t)){let s=this.shaderLayout.bindings.find(o=>o.name===r)||this.shaderLayout.bindings.find(o=>o.name===`${r}Uniforms`);if(!s){let o=this.shaderLayout.bindings.map(n=>`"${n.name}"`).join(", ");W.log.warn(`Unknown binding "${r}" in render pipeline "${this.id}", expected one of ${o}`)();continue}switch(i||W.log.warn(`Unsetting binding "${r}" in render pipeline "${this.id}"`)(),s.type){case"uniform":if(!(i instanceof H)&&!(i.buffer instanceof H))throw new Error("buffer value");break;case"texture":if(!(i instanceof v||i instanceof ie))throw new Error("texture value");break;case"sampler":W.log.warn(`Ignoring sampler ${r}`)();break;default:throw new Error(s.type)}this.bindings[r]=i}}setUniforms(t){let{bindings:r}=(0,W.splitUniformsAndBindings)(t);Object.keys(r).forEach(i=>{W.log.warn(`Unsupported value "${JSON.stringify(r[i])}" used in setUniforms() for key ${i}. Use setBindings() instead?`)()}),Object.assign(this.uniforms,t)}draw(t){var r;let{renderPass:i,vertexArray:s,vertexCount:o,instanceCount:n,firstVertex:a=0,transformFeedback:l}=t,f=es(this.props.topology),c=Boolean(s.indexBuffer),_=(r=s.indexBuffer)===null||r===void 0?void 0:r.glIndexType,d=Number(n)>0;if(!this._areTexturesRenderable()||o===0)return!1;this.device.gl.useProgram(this.handle),s.bindBeforeRender(i),l&&l.begin(this.props.topology),this._applyBindings(),this._applyUniforms();let u=i;return Di(this.device,this.props.parameters,u.glParameters,()=>{if(c&&d){var A;(A=this.device.gl2)===null||A===void 0||A.drawElementsInstanced(f,o||0,_,a,n||0)}else if(c)this.device.gl.drawElements(f,o||0,_,a);else if(d){var x;(x=this.device.gl2)===null||x===void 0||x.drawArraysInstanced(f,a,o||0,n||0)}else this.device.gl.drawArrays(f,a,o||0);l&&l.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),W.log.time(rs,`linkProgram for ${this.id}`)(),t.linkProgram(this.handle),W.log.timeEnd(rs,`linkProgram for ${this.id}`)(),!t.debug&&W.log.level,!t.getProgramParameter(this.handle,35714))throw new Error(`Error linking: ${t.getProgramInfoLog(this.handle)}`);if(t.validateProgram(this.handle),!t.getProgramParameter(this.handle,35715))throw new Error(`Error validating: ${t.getProgramInfoLog(this.handle)}`)}_areTexturesRenderable(){let t=!0;for(let[,r]of Object.entries(this.bindings))r instanceof v&&(r.update(),t=t&&r.loaded);return t}_applyBindings(){this.device.gl.useProgram(this.handle);let{gl2:t}=this.device;if(!t)throw new Error("bindings");let r=0,i=0;for(let s of this.shaderLayout.bindings){let o=this.bindings[s.name]||this.bindings[s.name.replace(/Uniforms$/,"")];if(!o)throw new Error(`No value for binding ${s.name} in ${this.id}`);switch(s.type){case"uniform":let{name:n}=s,a=t.getUniformBlockIndex(this.handle,n);if(a===4294967295)throw new Error(`Invalid uniform block name ${n}`);t.uniformBlockBinding(this.handle,i,a),o instanceof H?t.bindBufferBase(35345,i,o.handle):t.bindBufferRange(35345,i,o.buffer.handle,o.offset||0,o.size||o.buffer.byteLength-o.offset),i+=1;break;case"texture":if(!(o instanceof v||o instanceof ie))throw new Error("texture");let l;if(o instanceof v)l=o;else if(o instanceof ie&&o.colorAttachments[0]instanceof v)W.log.warn("Passing framebuffer in texture binding may be deprecated. Use fbo.colorAttachments[0] instead")(),l=o.colorAttachments[0];else throw new Error("No texture");t.activeTexture(33984+r),t.bindTexture(l.target,l.handle),r+=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 r of this.shaderLayout.uniforms||[]){var t;let{name:i,location:s,type:o,textureUnit:n}=r,a=(t=this.uniforms[i])!==null&&t!==void 0?t:n;a!==void 0&&Gi(this.device.gl,s,o,a)}}};var os=E(p(),1);var Ot=E(p(),1);var Ct=class extends Ot.CommandBuffer{constructor(t){super(t,{}),this.device=void 0,this.commands=[],this.device=t}submitCommands(){let t=arguments.length>0&&arguments[0]!==void 0?arguments[0]:this.commands;for(let r of t)switch(r.name){case"copy-buffer-to-buffer":Cn(this.device,r.options);break;case"copy-buffer-to-texture":On(this.device,r.options);break;case"copy-texture-to-buffer":xn(this.device,r.options);break;case"copy-texture-to-texture":In(this.device,r.options);break}}};function Cn(e,t){let r=t.source,i=t.destination,s=e.assertWebGL2();if(s){var o,n;s.bindBuffer(36662,r.handle),s.bindBuffer(36663,i.handle),s.copyBufferSubData(36662,36663,(o=t.sourceOffset)!==null&&o!==void 0?o:0,(n=t.destinationOffset)!==null&&n!==void 0?n:0,t.size),s.bindBuffer(36662,null),s.bindBuffer(36663,null)}else throw new Error("copyBufferToBuffer not implemented in WebGL1")}function On(e,t){throw new Error("Not implemented")}function xn(e,t){let{source:r,mipLevel:i=0,aspect:s="all",width:o=t.source.width,height:n=t.source.height,depthOrArrayLayers:a=0,origin:l=[0,0],destination:f,byteOffset:c=0,bytesPerRow:_,rowsPerImage:d}=t;if(s!=="all")throw new Error("not supported");if(i!==0||a!==0||_||d)throw new Error("not implemented");let u=e.assertWebGL2(),{framebuffer:A,destroyFramebuffer:x}=ss(r);try{let R=f,P=o||A.width,b=n||A.height,B=Me(A.texture.format,!0),X=B.dataFormat,oe=B.type;u.bindBuffer(35051,R.handle),u.bindFramebuffer(36160,A.handle),u.readPixels(l[0],l[1],P,b,X,oe,c)}finally{u.bindBuffer(35051,null),u.bindFramebuffer(36160,null),x&&A.destroy()}}function In(e,t){let{source:r,origin:i=[0,0],destination:s}=t,{width:o=t.destination.width,height:n=t.destination.width}=t,a=0,l=6408,{framebuffer:f,destroyFramebuffer:c}=ss(r),[_,d]=i,u=!1;e.gl.bindFramebuffer(36160,f.handle);let A=null,x;if(s instanceof v)A=s,o=Number.isFinite(o)?o:A.width,n=Number.isFinite(n)?n:A.height,A.bind(0),x=A.destination;else throw new Error("whoops");return u||e.gl.copyTexImage2D(x,a,l,_,d,o,n,0),A&&A.unbind(),c&&f.destroy(),A}function ss(e){if(e instanceof Ot.Texture){let{width:t,height:r,id:i}=e;return{framebuffer:e.device.createFramebuffer({id:`framebuffer-for-${i}`,width:t,height:r,colorAttachments:[e]}),destroyFramebuffer:!0}}return{framebuffer:e,destroyFramebuffer:!1}}var xt=class extends os.CommandEncoder{constructor(t,r){super(t,r),this.device=void 0,this.commandBuffer=void 0,this.device=t,this.commandBuffer=new Ct(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=E(p(),1);var ns;ns=Symbol.toStringTag;var De=class extends Pe.VertexArray{get[ns](){return"VertexArray"}static isConstantAttributeZeroSupported(t){return t.info.type==="webgl2"||ot()==="Chrome"}constructor(t,r){super(t,r),this.device=void 0,this.handle=void 0,this.buffer=null,this.bufferValue=null,this.init=!1,this.device=t,this.handle=this.device.gl2.createVertexArray()}destroy(){if(super.destroy(),this.buffer){var t;(t=this.buffer)===null||t===void 0||t.destroy()}this.handle&&(this.device.gl2.deleteVertexArray(this.handle),this.handle=void 0)}setIndexBuffer(t){let r=t;if(r&&r.glTarget!==34963)throw new Error("Use .setBuffer()");this.device.gl2.bindVertexArray(this.handle),this.device.gl2.bindBuffer(34963,r?r.handle:null),this.indexBuffer=r}setBuffer(t,r){let i=r;if(i.glTarget===34963)throw new Error("Use .setIndexBuffer()");let{size:s,type:o,stride:n,offset:a,normalized:l,integer:f,divisor:c}=this._getAccessor(t);this.device.gl2.bindVertexArray(this.handle),this.device.gl.bindBuffer(34962,i.handle),f?(this.device.assertWebGL2(),this.device.gl2.vertexAttribIPointer(t,s,o,n,a)):this.device.gl.vertexAttribPointer(t,s,o,l,n,a),this.device.gl.enableVertexAttribArray(t),this.device.gl2.vertexAttribDivisor(t,c||0),this.attributes[t]=i}setConstant(t,r){this._enable(t,!1),this.attributes[t]=r}bindBeforeRender(){if(this.device.gl2.bindVertexArray(this.handle),!this.init){let t=this.indexBuffer;this.device.gl2.bindBuffer(34963,t?.handle||null),this.init=!0}this._applyConstantAttributes()}unbindAfterRender(){this.device.gl2.bindVertexArray(null)}_applyConstantAttributes(){for(let t=0;t<this.maxVertexAttributes;++t){let r=this.attributes[t];ArrayBuffer.isView(r)&&this.device.setConstantAttribute(t,r)}}_getAccessor(t){let r=this.attributeInfos[t];if(!r)throw new Error(`Unknown attribute location ${t}`);let i=lt(r.bufferDataType);return{size:r.bufferComponents,type:i,stride:r.byteStride,offset:r.byteOffset,normalized:r.normalized,integer:r.integer,divisor:r.stepMode==="instance"?1:0}}_enable(t){let r=arguments.length>1&&arguments[1]!==void 0?arguments[1]:!0,s=De.isConstantAttributeZeroSupported(this.device)||t!==0;(r||s)&&(t=Number(t),this.device.gl2.bindVertexArray(this.handle),r?this.device.gl.enableVertexAttribArray(t):this.device.gl.disableVertexAttribArray(t),this.device.gl2.bindVertexArray(null))}getConstantBuffer(t,r){let i=Nn(r),s=i.byteLength*t,o=i.length*t;if(this.buffer&&s!==this.buffer.byteLength)throw new Error(`Buffer size is immutable, byte length ${s} !== ${this.buffer.byteLength}.`);let n=!this.buffer;if(this.buffer=this.buffer||this.device.createBuffer({byteLength:s}),n=n||!Fn(i,this.bufferValue),n){let a=(0,Pe.getScratchArray)(r.constructor,o);(0,Pe.fillArray)({target:a,source:i,start:0,count:o}),this.buffer.write(a),this.bufferValue=r}return this.buffer}};function Nn(e){return Array.isArray(e)?new Float32Array(e):e}function Fn(e,t){if(!e||!t||e.length!==t.length||e.constructor!==t.constructor)return!1;for(let r=0;r<e.length;++r)if(e[r]!==t[r])return!1;return!0}var Nt=E(p(),1);var It=class extends Nt.TransformFeedback{constructor(t,r){super(t,r),this.device=void 0,this.gl2=void 0,this.handle=void 0,this.layout=void 0,this.buffers={},this.unusedBuffers={},this.bindOnUse=!0,this._bound=!1,t.assertWebGL2(),this.device=t,this.gl2=t.gl2,this.handle=this.props.handle||this.gl2.createTransformFeedback(),this.layout=this.props.layout,r.buffers&&this.setBuffers(r.buffers),Object.seal(this)}destroy(){this.gl2.deleteTransformFeedback(this.handle),super.destroy()}begin(){let t=arguments.length>0&&arguments[0]!==void 0?arguments[0]:"point-list";this.gl2.bindTransformFeedback(36386,this.handle),this.bindOnUse&&this._bindBuffers(),this.gl2.beginTransformFeedback(ts(t))}end(){this.gl2.endTransformFeedback(),this.bindOnUse||this._unbindBuffers(),this.gl2.bindTransformFeedback(36386,null)}setBuffers(t){this.buffers={},this.unusedBuffers={},this.bind(()=>{for(let r in t)this.setBuffer(r,t[r])})}setBuffer(t,r){let i=this._getVaryingIndex(t),{buffer:s,byteLength:o,byteOffset:n}=this._getBufferRange(r);if(i<0){this.unusedBuffers[t]=s,Nt.log.warn(`${this.id} unusedBuffers varying buffer ${t}`)();return}this.buffers[i]={buffer:s,byteLength:o,byteOffset:n},this.bindOnUse||this._bindBuffer(i,s,n,o)}getBuffer(t){if(as(t))return this.buffers[t]||null;let r=this._getVaryingIndex(t);return r>=0?this.buffers[r]:null}bind(){let t=arguments.length>0&&arguments[0]!==void 0?arguments[0]:this.handle;if(typeof t!="function")return this.gl2.bindTransformFeedback(36386,t),this;let r;return this._bound?r=t():(this.gl2.bindTransformFeedback(36386,this.handle),this._bound=!0,r=t(),this._bound=!1,this.gl2.bindTransformFeedback(36386,null)),r}unbind(){this.bind(null)}_getBufferRange(t){if(t instanceof H)return{buffer:t,byteOffset:0,byteLength:t.byteLength};let{buffer:r,byteOffset:i=0,byteLength:s=t.buffer.byteLength}=t;return{buffer:r,byteOffset:i,byteLength:s}}_getVaryingIndex(t){if(as(t))return Number(t);for(let r of this.layout.varyings)if(t===r.name)return r.location;return-1}_bindBuffers(){for(let t in this.buffers){let{buffer:r,byteLength:i,byteOffset:s}=this._getBufferRange(this.buffers[t]);this._bindBuffer(Number(t),r,s,i)}}_unbindBuffers(){for(let t in this.buffers)this.gl2.bindBufferBase(35982,Number(t),null)}_bindBuffer(t,r){let i=arguments.length>2&&arguments[2]!==void 0?arguments[2]:0,s=arguments.length>3?arguments[3]:void 0,o=r&&r.handle;!o||s===void 0?this.gl2.bindBufferBase(35982,t,o):this.gl2.bindBufferRange(35982,t,o,i,s)}};function as(e){return typeof e=="number"?Number.isInteger(e):/^\d+$/.test(e)}var Qe=1,U=class extends N.Device{static isSupported(){return typeof WebGLRenderingContext<"u"||Lr()}get features(){return this._features=this._features||Ii(this.gl),this._features}get limits(){return this._limits=this._limits||Fi(this.gl),this._limits}static attach(t){if(t instanceof U)return t;if(t?.device instanceof N.Device)return t.device;if(!Mn(t))throw new Error("Invalid WebGLRenderingContext");return new U({gl:t})}static async create(){let t=arguments.length>0&&arguments[0]!==void 0?arguments[0]:{};N.log.groupCollapsed(Qe,"WebGLDevice created")(),typeof t.canvas=="string"&&await N.CanvasContext.pageLoaded,(N.log.get("debug")||t.debug)&&await Ki();let{spector:r}=t;if((N.log.get("spector")||r)&&await Hi(),N.log.probe(Qe+1,"DOM is loaded")(),t.gl&&t.gl.device)return U.attach(t.gl);let i=new U(t),s=`Created ${i.info.type}${i.debug?" debug":""} context: ${i.info.vendor}, ${i.info.renderer} for canvas: ${i.canvasContext.id}`;return N.log.probe(Qe,s)(),N.log.table(Qe,i.info)(),N.log.groupEnd(Qe)(),i}constructor(t){var r;super({...t,id:t.id||(0,N.uid)("webgl-device")}),this.info=void 0,this.canvasContext=void 0,this.handle=void 0,this.lost=void 0,this._resolveContextLost=void 0,this._features=void 0,this._limits=void 0,this.renderPass=null,this.gl=void 0,this.gl2=null,this.debug=!1,this.isWebGL1=void 0,this.isWebGL2=void 0,this._canvasSizeInfo={clientWidth:0,clientHeight:0,devicePixelRatio:1},this._extensions={},this._polyfilled=!1,this.spector=void 0,this._webglLimits=void 0,this._constants=void 0;let i=(r=t.gl)===null||r===void 0?void 0:r.device;if(i)throw new Error(`WebGL context already attached to device ${i.id}`);this.canvasContext=new gt(this,t),this.lost=new Promise(l=>{this._resolveContextLost=l});let s=l=>{var f;return(f=this._resolveContextLost)===null||f===void 0?void 0:f.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||(z()?Ai(this.canvasContext.canvas,{...t,onContextLost:s}):null),o=o||(z()?null:Zr({...t,onContextLost:s})),!o)throw new Error("WebGL context creation failed");this.handle=o,this.gl=this.handle,this.gl2=this.gl,this.isWebGL2=Bn(this.gl),this.isWebGL1=!this.isWebGL2,this.info=Ti(this.gl),this.gl.device=this,this.gl._version=this.isWebGL2?2:1,ni(this.gl);let{enable:n=!0,copyState:a=!1}=t;if(Zt(this.gl,{enable:n,copyState:a,log:function(){for(var l=arguments.length,f=new Array(l),c=0;c<l;c++)f[c]=arguments[c];return N.log.log(1,...f)()}}),z()&&t.debug&&(this.gl=ji(this.gl,{...t,webgl2:this.isWebGL2,throwOnError:!0}),this.gl2=this.gl,this.debug=!0,N.log.level=Math.max(N.log.level,1),N.log.warn("WebGL debug mode activated. Performance reduced.")()),z()&&t.spector){let l=this.handle.canvas||t.canvas;this.spector=Vi({...this.props,canvas:l})}}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 ze(this.gl,t)}isTextureFormatFilterable(t){return Si(this.gl,t)}isTextureFormatRenderable(t){return Ci(this.gl,t)}assertWebGL2(){if(!this.gl2)throw new Error("Requires WebGL2");return this.gl2}createCanvasContext(t){throw new Error("WebGL only supports a single canvas")}createBuffer(t){let r=this._getBufferProps(t);return new H(this,r)}_createTexture(t){return new v(this,t)}createExternalTexture(t){throw new Error("createExternalTexture() not implemented")}createSampler(t){return new Oe(this,t)}createShader(t){return new Et(this,t)}createFramebuffer(t){return new ie(this,t)}createRenderPipeline(t){return new St(this,t)}createVertexArray(t){return new De(this,t)}beginRenderPass(t){return new pt(this,t)}createComputePipeline(t){throw new Error("ComputePipeline not supported in WebGL")}beginComputePass(t){throw new Error("ComputePass not supported in WebGL")}createTransformFeedback(t){return new It(this,t)}getDefaultRenderPass(){return this.renderPass=this.renderPass||this.beginRenderPass({framebuffer:this.canvasContext.getCurrentFramebuffer()}),this.renderPass}createCommandEncoder(t){return new xt(this,t)}submit(){var t;(t=this.renderPass)===null||t===void 0||t.end(),this.renderPass=null}get webglLimits(){return this._webglLimits=this._webglLimits||Mi(this.gl),this._webglLimits}loseDevice(){var t;let r=!1,i=this.gl.getExtension("WEBGL_lose_context");return i&&(r=!0,i.loseContext()),(t=this._resolveContextLost)===null||t===void 0||t.call(this,{reason:"destroyed",message:"Application triggered context loss"}),r}pushState(){Ae(this.gl)}popState(){le(this.gl)}setSpectorMetadata(t,r){t.__SPECTOR_Metadata=r}getGLKey(t,r){r=r||this.gl2||this.gl;let i=Number(t);for(let s in r)if(r[s]===i)return`GL.${s}`;return String(t)}setConstantAttribute(t,r){this._constants=this._constants||new Array(this.limits.maxVertexAttributes).fill(null);let i=this._constants[t];switch(i&&vn(i,r)&&N.log.info(1,`setConstantAttribute(${t}) could have been skipped, value unchanged`)(),this._constants[t]=r,r.constructor){case Float32Array:Dn(this,t,r);break;case Int32Array:Pn(this,t,r);break;case Uint32Array:yn(this,t,r);break;default:(0,N.assert)(!1)}}};U.type="webgl";function Mn(e){return typeof WebGLRenderingContext<"u"&&e instanceof WebGLRenderingContext||typeof WebGL2RenderingContext<"u"&&e instanceof WebGL2RenderingContext?!0:Boolean(e&&Number.isFinite(e._version))}function Bn(e){return typeof WebGL2RenderingContext<"u"&&e instanceof WebGL2RenderingContext?!0:Boolean(e&&e._version===2)}function Dn(e,t,r){switch(r.length){case 1:e.gl.vertexAttrib1fv(t,r);break;case 2:e.gl.vertexAttrib2fv(t,r);break;case 3:e.gl.vertexAttrib3fv(t,r);break;case 4:e.gl.vertexAttrib4fv(t,r);break;default:(0,N.assert)(!1)}}function Pn(e,t,r){var i;e.assertWebGL2(),(i=e.gl2)===null||i===void 0||i.vertexAttribI4iv(t,r)}function yn(e,t,r){var i;e.assertWebGL2(),(i=e.gl2)===null||i===void 0||i.vertexAttribI4uiv(t,r)}function vn(e,t){if(!e||!t||e.length!==t.length||e.constructor!==t.constructor)return!1;for(let r=0;r<e.length;++r)if(e[r]!==t[r])return!1;return!0}var ls=E(rt());function Ft(e){var t=this;this.buffer=e.createBuffer(new Int8Array([-1,-1,1,-1,-1,1,1,1])),this.model=new he(e,{vs:`#version 300 es
132
+ `:""}function mo(){let e=arguments.length>0&&arguments[0]!==void 0?arguments[0]:{},t="";for(let r in e){let s=e[r];(s||Number.isFinite(s))&&(t+=`#define ${r.toUpperCase()} ${e[r]}
133
+ `)}return t}function di(e){if(!e.vs)throw new Error("no vertex shader");let t=ui(e.platformInfo,e.vs),r;return e.fs&&(r=ui(e.platformInfo,e.fs)),{...e,vs:t,fs:r}}function ui(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 te=class{constructor(){this._hookFunctions=[],this._defaultModules=[]}static getDefaultShaderAssembler(){return te.defaultShaderAssembler=te.defaultShaderAssembler||new te,te.defaultShaderAssembler}addDefaultModule(t){this._defaultModules.find(r=>r.name===(typeof t=="string"?t:t.name))||this._defaultModules.push(t)}removeDefaultModule(t){let r=typeof t=="string"?t:t.name;this._defaultModules=this._defaultModules.filter(s=>s.name!==r)}addShaderHook(t,r){r&&(t=Object.assign(r,{hook:t})),this._hookFunctions.push(t)}assembleShaders(t){let r=this._getModuleList(t.modules),s=this._hookFunctions,i=di(t);return{...fi({platformInfo:t.platformInfo,...i,modules:r,hookFunctions:s}),modules:r}}_getModuleList(){let t=arguments.length>0&&arguments[0]!==void 0?arguments[0]:[],r=new Array(this._defaultModules.length+t.length),s={},i=0;for(let n=0,o=this._defaultModules.length;n<o;++n){let a=this._defaultModules[n],c=a.name;r[i++]=a,s[c]=!0}for(let n=0,o=t.length;n<o;++n){let a=t[n],c=a.name;s[c]||(r[i++]=a,s[c]=!0)}return r.length=i,ee.instantiateModules(r)}};te.defaultShaderAssembler=void 0;var Cr=class{constructor(){this.constants=new Map,this.aliases=new Map,this.structs=new Map}},pe=class{constructor(){}get isAstNode(){return!0}get astNodeType(){return""}evaluate(t){throw new Error("Cannot evaluate node")}evaluateString(t){return this.evaluate(t).toString()}},F=class extends pe{constructor(){super()}},Nt=class extends F{constructor(t,r,s,i){super(),this.name=t,this.args=r,this.returnType=s,this.body=i}get astNodeType(){return"function"}},Or=class extends F{constructor(t){super(),this.expression=t}get astNodeType(){return"staticAssert"}},Fr=class extends F{constructor(t,r){super(),this.condition=t,this.body=r}get astNodeType(){return"while"}},Mr=class extends F{constructor(t){super(),this.body=t}get astNodeType(){return"continuing"}},Br=class extends F{constructor(t,r,s,i){super(),this.init=t,this.condition=r,this.increment=s,this.body=i}get astNodeType(){return"for"}},ye=class extends F{constructor(t,r,s,i,n){super(),this.name=t,this.type=r,this.storage=s,this.access=i,this.value=n}get astNodeType(){return"var"}},It=class extends F{constructor(t,r,s){super(),this.name=t,this.type=r,this.value=s}get astNodeType(){return"override"}},Ct=class extends F{constructor(t,r,s,i,n){super(),this.name=t,this.type=r,this.storage=s,this.access=i,this.value=n}get astNodeType(){return"let"}},Ot=class extends F{constructor(t,r,s,i,n){super(),this.name=t,this.type=r,this.storage=s,this.access=i,this.value=n}get astNodeType(){return"const"}evaluate(t){return this.value.evaluate(t)}},Ye;(function(e){e.increment="++",e.decrement="--"})(Ye||(Ye={}));(function(e){function t(r){let s=r;if(s=="parse")throw new Error("Invalid value for IncrementOperator");return e[s]}e.parse=t})(Ye||(Ye={}));var Dr=class extends F{constructor(t,r){super(),this.operator=t,this.variable=r}get astNodeType(){return"increment"}},at;(function(e){e.assign="=",e.addAssign="+=",e.subtractAssin="-=",e.multiplyAssign="*=",e.divideAssign="/=",e.moduloAssign="%=",e.andAssign="&=",e.orAssign="|=",e.xorAssign="^=",e.shiftLeftAssign="<<=",e.shiftRightAssign=">>="})(at||(at={}));(function(e){function t(r){let s=r;if(s=="parse")throw new Error("Invalid value for AssignOperator");return e[s]}e.parse=t})(at||(at={}));var Pr=class extends F{constructor(t,r,s){super(),this.operator=t,this.variable=r,this.value=s}get astNodeType(){return"assign"}},Ur=class extends F{constructor(t,r){super(),this.name=t,this.args=r}get astNodeType(){return"call"}},kr=class extends F{constructor(t,r){super(),this.body=t,this.continuing=r}get astNodeType(){return"loop"}},Wr=class extends F{constructor(t,r){super(),this.condition=t,this.body=r}get astNodeType(){return"body"}},Xr=class extends F{constructor(t,r,s,i){super(),this.condition=t,this.body=r,this.elseif=s,this.else=i}get astNodeType(){return"if"}},Hr=class extends F{constructor(t){super(),this.value=t}get astNodeType(){return"return"}},Vr=class extends F{constructor(t){super(),this.name=t}get astNodeType(){return"enable"}},Ft=class extends F{constructor(t,r){super(),this.name=t,this.type=r}get astNodeType(){return"alias"}},Kr=class extends F{constructor(){super()}get astNodeType(){return"discard"}},jr=class extends F{constructor(){super()}get astNodeType(){return"break"}},zr=class extends F{constructor(){super()}get astNodeType(){return"continue"}},Te=class extends F{constructor(t){super(),this.name=t}get astNodeType(){return"type"}get isStruct(){return!1}get isArray(){return!1}},ge=class extends Te{constructor(t,r){super(t),this.members=r}get astNodeType(){return"struct"}get isStruct(){return!0}getMemberIndex(t){for(let r=0;r<this.members.length;r++)if(this.members[r].name==t)return r;return-1}},Mt=class extends Te{constructor(t,r,s){super(t),this.format=r,this.access=s}get astNodeType(){return"template"}},Yr=class extends Te{constructor(t,r,s,i){super(t),this.storage=r,this.type=s,this.access=i}get astNodeType(){return"pointer"}},Bt=class extends Te{constructor(t,r,s,i){super(t),this.attributes=r,this.format=s,this.count=i}get astNodeType(){return"array"}get isArray(){return!0}},Be=class extends Te{constructor(t,r,s){super(t),this.format=r,this.access=s}get astNodeType(){return"sampler"}},G=class extends pe{constructor(){super()}},Dt=class extends G{constructor(t){super(),this.value=t}get astNodeType(){return"stringExpr"}toString(){return this.value}evaluateString(){return this.value}},De=class extends G{constructor(t,r){super(),this.type=t,this.args=r}get astNodeType(){return"createExpr"}},$r=class extends G{constructor(t,r){super(),this.name=t,this.args=r}get astNodeType(){return"callExpr"}evaluate(t){switch(this.name){case"abs":return Math.abs(this.args[0].evaluate(t));case"acos":return Math.acos(this.args[0].evaluate(t));case"acosh":return Math.acosh(this.args[0].evaluate(t));case"asin":return Math.asin(this.args[0].evaluate(t));case"asinh":return Math.asinh(this.args[0].evaluate(t));case"atan":return Math.atan(this.args[0].evaluate(t));case"atan2":return Math.atan2(this.args[0].evaluate(t),this.args[1].evaluate(t));case"atanh":return Math.atanh(this.args[0].evaluate(t));case"ceil":return Math.ceil(this.args[0].evaluate(t));case"clamp":return Math.min(Math.max(this.args[0].evaluate(t),this.args[1].evaluate(t)),this.args[2].evaluate(t));case"cos":return Math.cos(this.args[0].evaluate(t));case"degrees":return this.args[0].evaluate(t)*180/Math.PI;case"distance":return Math.sqrt(Math.pow(this.args[0].evaluate(t)-this.args[1].evaluate(t),2));case"dot":case"exp":return Math.exp(this.args[0].evaluate(t));case"exp2":return Math.pow(2,this.args[0].evaluate(t));case"floor":return Math.floor(this.args[0].evaluate(t));case"fma":return this.args[0].evaluate(t)*this.args[1].evaluate(t)+this.args[2].evaluate(t);case"fract":return this.args[0].evaluate(t)-Math.floor(this.args[0].evaluate(t));case"inverseSqrt":return 1/Math.sqrt(this.args[0].evaluate(t));case"log":return Math.log(this.args[0].evaluate(t));case"log2":return Math.log2(this.args[0].evaluate(t));case"max":return Math.max(this.args[0].evaluate(t),this.args[1].evaluate(t));case"min":return Math.min(this.args[0].evaluate(t),this.args[1].evaluate(t));case"mix":return this.args[0].evaluate(t)*(1-this.args[2].evaluate(t))+this.args[1].evaluate(t)*this.args[2].evaluate(t);case"modf":return this.args[0].evaluate(t)-Math.floor(this.args[0].evaluate(t));case"pow":return Math.pow(this.args[0].evaluate(t),this.args[1].evaluate(t));case"radians":return this.args[0].evaluate(t)*Math.PI/180;case"round":return Math.round(this.args[0].evaluate(t));case"sign":return Math.sign(this.args[0].evaluate(t));case"sin":return Math.sin(this.args[0].evaluate(t));case"sinh":return Math.sinh(this.args[0].evaluate(t));case"saturate":return Math.min(Math.max(this.args[0].evaluate(t),0),1);case"smoothstep":return this.args[0].evaluate(t)*this.args[0].evaluate(t)*(3-2*this.args[0].evaluate(t));case"sqrt":return Math.sqrt(this.args[0].evaluate(t));case"step":return this.args[0].evaluate(t)<this.args[1].evaluate(t)?0:1;case"tan":return Math.tan(this.args[0].evaluate(t));case"tanh":return Math.tanh(this.args[0].evaluate(t));case"trunc":return Math.trunc(this.args[0].evaluate(t));default:throw new Error("Non const function: "+this.name)}}},Lr=class extends G{constructor(t){super(),this.name=t}get astNodeType(){return"varExpr"}},Pt=class extends G{constructor(t,r){super(),this.name=t,this.initializer=r}get astNodeType(){return"constExpr"}evaluate(t){var r,s;if(this.initializer instanceof De){let i=(r=this.postfix)===null||r===void 0?void 0:r.evaluateString(t),n=(s=this.initializer.type)===null||s===void 0?void 0:s.name,o=t.structs.get(n),a=o?.getMemberIndex(i);if(a!=-1)return this.initializer.args[a].evaluate(t);console.log(a)}return this.initializer.evaluate(t)}},Ut=class extends G{constructor(t){super(),this.value=t}get astNodeType(){return"literalExpr"}evaluate(){return this.value}},qr=class extends G{constructor(t,r){super(),this.type=t,this.value=r}get astNodeType(){return"bitcastExpr"}},Zr=class extends G{constructor(t,r){super(),this.type=t,this.args=r}get astNodeType(){return"typecastExpr"}evaluate(t){return this.args[0].evaluate(t)}},kt=class extends G{constructor(t){super(),this.contents=t}get astNodeType(){return"groupExpr"}evaluate(t){return this.contents[0].evaluate(t)}},Wt=class extends G{constructor(){super()}},Jr=class extends Wt{constructor(t,r){super(),this.operator=t,this.right=r}get astNodeType(){return"unaryOp"}evaluate(t){switch(this.operator){case"+":return this.right.evaluate(t);case"-":return-this.right.evaluate(t);case"!":return this.right.evaluate(t)?0:1;case"~":return~this.right.evaluate(t);default:throw new Error("Unknown unary operator: "+this.operator)}}},J=class extends Wt{constructor(t,r,s){super(),this.operator=t,this.left=r,this.right=s}get astNodeType(){return"binaryOp"}evaluate(t){switch(this.operator){case"+":return this.left.evaluate(t)+this.right.evaluate(t);case"-":return this.left.evaluate(t)-this.right.evaluate(t);case"*":return this.left.evaluate(t)*this.right.evaluate(t);case"/":return this.left.evaluate(t)/this.right.evaluate(t);case"%":return this.left.evaluate(t)%this.right.evaluate(t);case"==":return this.left.evaluate(t)==this.right.evaluate(t)?1:0;case"!=":return this.left.evaluate(t)!=this.right.evaluate(t)?1:0;case"<":return this.left.evaluate(t)<this.right.evaluate(t)?1:0;case">":return this.left.evaluate(t)>this.right.evaluate(t)?1:0;case"<=":return this.left.evaluate(t)<=this.right.evaluate(t)?1:0;case">=":return this.left.evaluate(t)>=this.right.evaluate(t)?1:0;case"&&":return this.left.evaluate(t)&&this.right.evaluate(t)?1:0;case"||":return this.left.evaluate(t)||this.right.evaluate(t)?1:0;default:throw new Error(`Unknown operator ${this.operator}`)}}},Xt=class extends pe{constructor(){super()}},Qr=class extends Xt{constructor(t,r){super(),this.selector=t,this.body=r}get astNodeType(){return"case"}},Gr=class extends Xt{constructor(t){super(),this.body=t}get astNodeType(){return"default"}},es=class extends pe{constructor(t,r,s){super(),this.name=t,this.type=r,this.attributes=s}get astNodeType(){return"argument"}},ts=class extends pe{constructor(t,r){super(),this.condition=t,this.body=r}get astNodeType(){return"elseif"}},rs=class extends pe{constructor(t,r,s){super(),this.name=t,this.type=r,this.attributes=s}get astNodeType(){return"member"}},Ht=class extends pe{constructor(t,r){super(),this.name=t,this.value=r}get astNodeType(){return"attribute"}},g,u;(function(e){e[e.token=0]="token",e[e.keyword=1]="keyword",e[e.reserved=2]="reserved"})(u||(u={}));var f=class{constructor(t,r,s){this.name=t,this.type=r,this.rule=s}toString(){return this.name}},l=class{};g=l;l.none=new f("",u.reserved,"");l.eof=new f("EOF",u.token,"");l.reserved={asm:new f("asm",u.reserved,"asm"),bf16:new f("bf16",u.reserved,"bf16"),do:new f("do",u.reserved,"do"),enum:new f("enum",u.reserved,"enum"),f16:new f("f16",u.reserved,"f16"),f64:new f("f64",u.reserved,"f64"),handle:new f("handle",u.reserved,"handle"),i8:new f("i8",u.reserved,"i8"),i16:new f("i16",u.reserved,"i16"),i64:new f("i64",u.reserved,"i64"),mat:new f("mat",u.reserved,"mat"),premerge:new f("premerge",u.reserved,"premerge"),regardless:new f("regardless",u.reserved,"regardless"),typedef:new f("typedef",u.reserved,"typedef"),u8:new f("u8",u.reserved,"u8"),u16:new f("u16",u.reserved,"u16"),u64:new f("u64",u.reserved,"u64"),unless:new f("unless",u.reserved,"unless"),using:new f("using",u.reserved,"using"),vec:new f("vec",u.reserved,"vec"),void:new f("void",u.reserved,"void")};l.keywords={array:new f("array",u.keyword,"array"),atomic:new f("atomic",u.keyword,"atomic"),bool:new f("bool",u.keyword,"bool"),f32:new f("f32",u.keyword,"f32"),i32:new f("i32",u.keyword,"i32"),mat2x2:new f("mat2x2",u.keyword,"mat2x2"),mat2x3:new f("mat2x3",u.keyword,"mat2x3"),mat2x4:new f("mat2x4",u.keyword,"mat2x4"),mat3x2:new f("mat3x2",u.keyword,"mat3x2"),mat3x3:new f("mat3x3",u.keyword,"mat3x3"),mat3x4:new f("mat3x4",u.keyword,"mat3x4"),mat4x2:new f("mat4x2",u.keyword,"mat4x2"),mat4x3:new f("mat4x3",u.keyword,"mat4x3"),mat4x4:new f("mat4x4",u.keyword,"mat4x4"),ptr:new f("ptr",u.keyword,"ptr"),sampler:new f("sampler",u.keyword,"sampler"),sampler_comparison:new f("sampler_comparison",u.keyword,"sampler_comparison"),struct:new f("struct",u.keyword,"struct"),texture_1d:new f("texture_1d",u.keyword,"texture_1d"),texture_2d:new f("texture_2d",u.keyword,"texture_2d"),texture_2d_array:new f("texture_2d_array",u.keyword,"texture_2d_array"),texture_3d:new f("texture_3d",u.keyword,"texture_3d"),texture_cube:new f("texture_cube",u.keyword,"texture_cube"),texture_cube_array:new f("texture_cube_array",u.keyword,"texture_cube_array"),texture_multisampled_2d:new f("texture_multisampled_2d",u.keyword,"texture_multisampled_2d"),texture_storage_1d:new f("texture_storage_1d",u.keyword,"texture_storage_1d"),texture_storage_2d:new f("texture_storage_2d",u.keyword,"texture_storage_2d"),texture_storage_2d_array:new f("texture_storage_2d_array",u.keyword,"texture_storage_2d_array"),texture_storage_3d:new f("texture_storage_3d",u.keyword,"texture_storage_3d"),texture_depth_2d:new f("texture_depth_2d",u.keyword,"texture_depth_2d"),texture_depth_2d_array:new f("texture_depth_2d_array",u.keyword,"texture_depth_2d_array"),texture_depth_cube:new f("texture_depth_cube",u.keyword,"texture_depth_cube"),texture_depth_cube_array:new f("texture_depth_cube_array",u.keyword,"texture_depth_cube_array"),texture_depth_multisampled_2d:new f("texture_depth_multisampled_2d",u.keyword,"texture_depth_multisampled_2d"),texture_external:new f("texture_external",u.keyword,"texture_external"),u32:new f("u32",u.keyword,"u32"),vec2:new f("vec2",u.keyword,"vec2"),vec3:new f("vec3",u.keyword,"vec3"),vec4:new f("vec4",u.keyword,"vec4"),bitcast:new f("bitcast",u.keyword,"bitcast"),block:new f("block",u.keyword,"block"),break:new f("break",u.keyword,"break"),case:new f("case",u.keyword,"case"),continue:new f("continue",u.keyword,"continue"),continuing:new f("continuing",u.keyword,"continuing"),default:new f("default",u.keyword,"default"),discard:new f("discard",u.keyword,"discard"),else:new f("else",u.keyword,"else"),enable:new f("enable",u.keyword,"enable"),fallthrough:new f("fallthrough",u.keyword,"fallthrough"),false:new f("false",u.keyword,"false"),fn:new f("fn",u.keyword,"fn"),for:new f("for",u.keyword,"for"),function:new f("function",u.keyword,"function"),if:new f("if",u.keyword,"if"),let:new f("let",u.keyword,"let"),const:new f("const",u.keyword,"const"),loop:new f("loop",u.keyword,"loop"),while:new f("while",u.keyword,"while"),private:new f("private",u.keyword,"private"),read:new f("read",u.keyword,"read"),read_write:new f("read_write",u.keyword,"read_write"),return:new f("return",u.keyword,"return"),storage:new f("storage",u.keyword,"storage"),switch:new f("switch",u.keyword,"switch"),true:new f("true",u.keyword,"true"),alias:new f("alias",u.keyword,"alias"),type:new f("type",u.keyword,"type"),uniform:new f("uniform",u.keyword,"uniform"),var:new f("var",u.keyword,"var"),override:new f("override",u.keyword,"override"),workgroup:new f("workgroup",u.keyword,"workgroup"),write:new f("write",u.keyword,"write"),r8unorm:new f("r8unorm",u.keyword,"r8unorm"),r8snorm:new f("r8snorm",u.keyword,"r8snorm"),r8uint:new f("r8uint",u.keyword,"r8uint"),r8sint:new f("r8sint",u.keyword,"r8sint"),r16uint:new f("r16uint",u.keyword,"r16uint"),r16sint:new f("r16sint",u.keyword,"r16sint"),r16float:new f("r16float",u.keyword,"r16float"),rg8unorm:new f("rg8unorm",u.keyword,"rg8unorm"),rg8snorm:new f("rg8snorm",u.keyword,"rg8snorm"),rg8uint:new f("rg8uint",u.keyword,"rg8uint"),rg8sint:new f("rg8sint",u.keyword,"rg8sint"),r32uint:new f("r32uint",u.keyword,"r32uint"),r32sint:new f("r32sint",u.keyword,"r32sint"),r32float:new f("r32float",u.keyword,"r32float"),rg16uint:new f("rg16uint",u.keyword,"rg16uint"),rg16sint:new f("rg16sint",u.keyword,"rg16sint"),rg16float:new f("rg16float",u.keyword,"rg16float"),rgba8unorm:new f("rgba8unorm",u.keyword,"rgba8unorm"),rgba8unorm_srgb:new f("rgba8unorm_srgb",u.keyword,"rgba8unorm_srgb"),rgba8snorm:new f("rgba8snorm",u.keyword,"rgba8snorm"),rgba8uint:new f("rgba8uint",u.keyword,"rgba8uint"),rgba8sint:new f("rgba8sint",u.keyword,"rgba8sint"),bgra8unorm:new f("bgra8unorm",u.keyword,"bgra8unorm"),bgra8unorm_srgb:new f("bgra8unorm_srgb",u.keyword,"bgra8unorm_srgb"),rgb10a2unorm:new f("rgb10a2unorm",u.keyword,"rgb10a2unorm"),rg11b10float:new f("rg11b10float",u.keyword,"rg11b10float"),rg32uint:new f("rg32uint",u.keyword,"rg32uint"),rg32sint:new f("rg32sint",u.keyword,"rg32sint"),rg32float:new f("rg32float",u.keyword,"rg32float"),rgba16uint:new f("rgba16uint",u.keyword,"rgba16uint"),rgba16sint:new f("rgba16sint",u.keyword,"rgba16sint"),rgba16float:new f("rgba16float",u.keyword,"rgba16float"),rgba32uint:new f("rgba32uint",u.keyword,"rgba32uint"),rgba32sint:new f("rgba32sint",u.keyword,"rgba32sint"),rgba32float:new f("rgba32float",u.keyword,"rgba32float"),static_assert:new f("static_assert",u.keyword,"static_assert")};l.tokens={decimal_float_literal:new f("decimal_float_literal",u.token,/((-?[0-9]*\.[0-9]+|-?[0-9]+\.[0-9]*)((e|E)(\+|-)?[0-9]+)?f?)|(-?[0-9]+(e|E)(\+|-)?[0-9]+f?)|([0-9]+f)/),hex_float_literal:new f("hex_float_literal",u.token,/-?0x((([0-9a-fA-F]*\.[0-9a-fA-F]+|[0-9a-fA-F]+\.[0-9a-fA-F]*)((p|P)(\+|-)?[0-9]+f?)?)|([0-9a-fA-F]+(p|P)(\+|-)?[0-9]+f?))/),int_literal:new f("int_literal",u.token,/-?0x[0-9a-fA-F]+|0i?|-?[1-9][0-9]*i?/),uint_literal:new f("uint_literal",u.token,/0x[0-9a-fA-F]+u|0u|[1-9][0-9]*u/),ident:new f("ident",u.token,/[a-zA-Z][0-9a-zA-Z_]*/),and:new f("and",u.token,"&"),and_and:new f("and_and",u.token,"&&"),arrow:new f("arrow ",u.token,"->"),attr:new f("attr",u.token,"@"),attr_left:new f("attr_left",u.token,"[["),attr_right:new f("attr_right",u.token,"]]"),forward_slash:new f("forward_slash",u.token,"/"),bang:new f("bang",u.token,"!"),bracket_left:new f("bracket_left",u.token,"["),bracket_right:new f("bracket_right",u.token,"]"),brace_left:new f("brace_left",u.token,"{"),brace_right:new f("brace_right",u.token,"}"),colon:new f("colon",u.token,":"),comma:new f("comma",u.token,","),equal:new f("equal",u.token,"="),equal_equal:new f("equal_equal",u.token,"=="),not_equal:new f("not_equal",u.token,"!="),greater_than:new f("greater_than",u.token,">"),greater_than_equal:new f("greater_than_equal",u.token,">="),shift_right:new f("shift_right",u.token,">>"),less_than:new f("less_than",u.token,"<"),less_than_equal:new f("less_than_equal",u.token,"<="),shift_left:new f("shift_left",u.token,"<<"),modulo:new f("modulo",u.token,"%"),minus:new f("minus",u.token,"-"),minus_minus:new f("minus_minus",u.token,"--"),period:new f("period",u.token,"."),plus:new f("plus",u.token,"+"),plus_plus:new f("plus_plus",u.token,"++"),or:new f("or",u.token,"|"),or_or:new f("or_or",u.token,"||"),paren_left:new f("paren_left",u.token,"("),paren_right:new f("paren_right",u.token,")"),semicolon:new f("semicolon",u.token,";"),star:new f("star",u.token,"*"),tilde:new f("tilde",u.token,"~"),underscore:new f("underscore",u.token,"_"),xor:new f("xor",u.token,"^"),plus_equal:new f("plus_equal",u.token,"+="),minus_equal:new f("minus_equal",u.token,"-="),times_equal:new f("times_equal",u.token,"*="),division_equal:new f("division_equal",u.token,"/="),modulo_equal:new f("modulo_equal",u.token,"%="),and_equal:new f("and_equal",u.token,"&="),or_equal:new f("or_equal",u.token,"|="),xor_equal:new f("xor_equal",u.token,"^="),shift_right_equal:new f("shift_right_equal",u.token,">>="),shift_left_equal:new f("shift_left_equal",u.token,"<<=")};l.storage_class=[g.keywords.function,g.keywords.private,g.keywords.workgroup,g.keywords.uniform,g.keywords.storage];l.access_mode=[g.keywords.read,g.keywords.write,g.keywords.read_write];l.sampler_type=[g.keywords.sampler,g.keywords.sampler_comparison];l.sampled_texture_type=[g.keywords.texture_1d,g.keywords.texture_2d,g.keywords.texture_2d_array,g.keywords.texture_3d,g.keywords.texture_cube,g.keywords.texture_cube_array];l.multisampled_texture_type=[g.keywords.texture_multisampled_2d];l.storage_texture_type=[g.keywords.texture_storage_1d,g.keywords.texture_storage_2d,g.keywords.texture_storage_2d_array,g.keywords.texture_storage_3d];l.depth_texture_type=[g.keywords.texture_depth_2d,g.keywords.texture_depth_2d_array,g.keywords.texture_depth_cube,g.keywords.texture_depth_cube_array,g.keywords.texture_depth_multisampled_2d];l.texture_external_type=[g.keywords.texture_external];l.any_texture_type=[...g.sampled_texture_type,...g.multisampled_texture_type,...g.storage_texture_type,...g.depth_texture_type,...g.texture_external_type];l.texel_format=[g.keywords.r8unorm,g.keywords.r8snorm,g.keywords.r8uint,g.keywords.r8sint,g.keywords.r16uint,g.keywords.r16sint,g.keywords.r16float,g.keywords.rg8unorm,g.keywords.rg8snorm,g.keywords.rg8uint,g.keywords.rg8sint,g.keywords.r32uint,g.keywords.r32sint,g.keywords.r32float,g.keywords.rg16uint,g.keywords.rg16sint,g.keywords.rg16float,g.keywords.rgba8unorm,g.keywords.rgba8unorm_srgb,g.keywords.rgba8snorm,g.keywords.rgba8uint,g.keywords.rgba8sint,g.keywords.bgra8unorm,g.keywords.bgra8unorm_srgb,g.keywords.rgb10a2unorm,g.keywords.rg11b10float,g.keywords.rg32uint,g.keywords.rg32sint,g.keywords.rg32float,g.keywords.rgba16uint,g.keywords.rgba16sint,g.keywords.rgba16float,g.keywords.rgba32uint,g.keywords.rgba32sint,g.keywords.rgba32float];l.const_literal=[g.tokens.int_literal,g.tokens.uint_literal,g.tokens.decimal_float_literal,g.tokens.hex_float_literal,g.keywords.true,g.keywords.false];l.literal_or_ident=[g.tokens.ident,g.tokens.int_literal,g.tokens.uint_literal,g.tokens.decimal_float_literal,g.tokens.hex_float_literal];l.element_count_expression=[g.tokens.int_literal,g.tokens.uint_literal,g.tokens.ident];l.template_types=[g.keywords.vec2,g.keywords.vec3,g.keywords.vec4,g.keywords.mat2x2,g.keywords.mat2x3,g.keywords.mat2x4,g.keywords.mat3x2,g.keywords.mat3x3,g.keywords.mat3x4,g.keywords.mat4x2,g.keywords.mat4x3,g.keywords.mat4x4,g.keywords.atomic,g.keywords.bitcast,...g.any_texture_type];l.attribute_name=[g.tokens.ident,g.keywords.block];l.assignment_operators=[g.tokens.equal,g.tokens.plus_equal,g.tokens.minus_equal,g.tokens.times_equal,g.tokens.division_equal,g.tokens.modulo_equal,g.tokens.and_equal,g.tokens.or_equal,g.tokens.xor_equal,g.tokens.shift_right_equal,g.tokens.shift_left_equal];l.increment_operators=[g.tokens.plus_plus,g.tokens.minus_minus];var Vt=class{constructor(t,r,s){this.type=t,this.lexeme=r,this.line=s}toString(){return this.lexeme}isTemplateType(){return l.template_types.indexOf(this.type)!=-1}isArrayType(){return this.type==l.keywords.array}isArrayOrTemplateType(){return this.isArrayType()||this.isTemplateType()}},ss=class{constructor(t){this._tokens=[],this._start=0,this._current=0,this._line=1,this._source=t??""}scanTokens(){for(;!this._isAtEnd();)if(this._start=this._current,!this.scanToken())throw`Invalid syntax at line ${this._line}`;return this._tokens.push(new Vt(l.eof,"",this._line)),this._tokens}scanToken(){let t=this._advance();if(t==`
134
+ `)return this._line++,!0;if(this._isWhitespace(t))return!0;if(t=="/"){if(this._peekAhead()=="/"){for(;t!=`
135
+ `;){if(this._isAtEnd())return!0;t=this._advance()}return this._line++,!0}else if(this._peekAhead()=="*"){this._advance();let s=1;for(;s>0;){if(this._isAtEnd())return!0;if(t=this._advance(),t==`
136
+ `)this._line++;else if(t=="*"){if(this._peekAhead()=="/"&&(this._advance(),s--,s==0))return!0}else t=="/"&&this._peekAhead()=="*"&&(this._advance(),s++)}return!0}}let r=l.none;for(;;){let s=this._findType(t),i=this._peekAhead();if(t==">"&&(i==">"||i=="=")){let n=!1,o=this._tokens.length-1;for(let a=0;a<5&&o>=0;++a,--o)if(this._tokens[o].type===l.tokens.less_than){o>0&&this._tokens[o-1].isArrayOrTemplateType()&&(n=!0);break}if(n)return this._addToken(s),!0}if(s===l.none){let n=t,o=0,a=2;for(let c=0;c<a;++c)if(n+=this._peekAhead(c),s=this._findType(n),s!==l.none){o=c;break}if(s===l.none)return r===l.none?!1:(this._current--,this._addToken(r),!0);t=n,this._current+=o+1}if(r=s,this._isAtEnd())break;t+=this._advance()}return r===l.none?!1:(this._addToken(r),!0)}_findType(t){for(let r in l.keywords){let s=l.keywords[r];if(this._match(t,s.rule))return s}for(let r in l.tokens){let s=l.tokens[r];if(this._match(t,s.rule))return s}return l.none}_match(t,r){if(typeof r=="string"){if(r==t)return!0}else{let s=r.exec(t);if(s&&s.index==0&&s[0]==t)return!0}return!1}_isAtEnd(){return this._current>=this._source.length}_isWhitespace(t){return t==" "||t==" "||t=="\r"}_advance(){let t=arguments.length>0&&arguments[0]!==void 0?arguments[0]:0,r=this._source[this._current];return t=t||0,t++,this._current+=t,r}_peekAhead(){let t=arguments.length>0&&arguments[0]!==void 0?arguments[0]:0;return t=t||0,this._current+t>=this._source.length?"\0":this._source[this._current+t]}_addToken(t){let r=this._source.substring(this._start,this._current);this._tokens.push(new Vt(t,r,this._line))}},is=class{constructor(){this._tokens=[],this._current=0,this._context=new Cr}parse(t){this._initialize(t);let r=[];for(;!this._isAtEnd();){let s=this._global_decl_or_directive();if(!s)break;r.push(s)}return r}_initialize(t){if(t)if(typeof t=="string"){let r=new ss(t);this._tokens=r.scanTokens()}else this._tokens=t;else this._tokens=[];this._current=0}_error(t,r){return console.error(t,r),{token:t,message:r,toString:function(){return`${r}`}}}_isAtEnd(){return this._current>=this._tokens.length||this._peek().type==l.eof}_match(t){if(t instanceof f)return this._check(t)?(this._advance(),!0):!1;for(let r=0,s=t.length;r<s;++r){let i=t[r];if(this._check(i))return this._advance(),!0}return!1}_consume(t,r){if(this._check(t))return this._advance();throw this._error(this._peek(),r)}_check(t){if(this._isAtEnd())return!1;let r=this._peek();if(t instanceof Array){let s=r.type;return t.indexOf(s)!=-1}return r.type==t}_advance(){return this._isAtEnd()||this._current++,this._previous()}_peek(){return this._tokens[this._current]}_previous(){return this._tokens[this._current-1]}_global_decl_or_directive(){for(;this._match(l.tokens.semicolon)&&!this._isAtEnd(););if(this._match(l.keywords.alias)){let r=this._type_alias();return this._consume(l.tokens.semicolon,"Expected ';'"),r}if(this._match(l.keywords.enable)){let r=this._enable_directive();return this._consume(l.tokens.semicolon,"Expected ';'"),r}let t=this._attribute();if(this._check(l.keywords.var)){let r=this._global_variable_decl();return r!=null&&(r.attributes=t),this._consume(l.tokens.semicolon,"Expected ';'."),r}if(this._check(l.keywords.override)){let r=this._override_variable_decl();return r!=null&&(r.attributes=t),this._consume(l.tokens.semicolon,"Expected ';'."),r}if(this._check(l.keywords.let)){let r=this._global_let_decl();return r!=null&&(r.attributes=t),this._consume(l.tokens.semicolon,"Expected ';'."),r}if(this._check(l.keywords.const)){let r=this._global_const_decl();return r!=null&&(r.attributes=t),this._consume(l.tokens.semicolon,"Expected ';'."),r}if(this._check(l.keywords.struct)){let r=this._struct_decl();return r!=null&&(r.attributes=t),r}if(this._check(l.keywords.fn)){let r=this._function_decl();return r!=null&&(r.attributes=t),r}return null}_function_decl(){if(!this._match(l.keywords.fn))return null;let t=this._consume(l.tokens.ident,"Expected function name.").toString();this._consume(l.tokens.paren_left,"Expected '(' for function arguments.");let r=[];if(!this._check(l.tokens.paren_right))do{if(this._check(l.tokens.paren_right))break;let n=this._attribute(),o=this._consume(l.tokens.ident,"Expected argument name.").toString();this._consume(l.tokens.colon,"Expected ':' for argument type.");let a=this._attribute(),c=this._type_decl();c!=null&&(c.attributes=a,r.push(new es(o,c,n)))}while(this._match(l.tokens.comma));this._consume(l.tokens.paren_right,"Expected ')' after function arguments.");let s=null;if(this._match(l.tokens.arrow)){let n=this._attribute();s=this._type_decl(),s!=null&&(s.attributes=n)}let i=this._compound_statement();return new Nt(t,r,s,i)}_compound_statement(){let t=[];for(this._consume(l.tokens.brace_left,"Expected '{' for block.");!this._check(l.tokens.brace_right);){let r=this._statement();r!==null&&t.push(r)}return this._consume(l.tokens.brace_right,"Expected '}' for block."),t}_statement(){for(;this._match(l.tokens.semicolon)&&!this._isAtEnd(););if(this._check(l.keywords.if))return this._if_statement();if(this._check(l.keywords.switch))return this._switch_statement();if(this._check(l.keywords.loop))return this._loop_statement();if(this._check(l.keywords.for))return this._for_statement();if(this._check(l.keywords.while))return this._while_statement();if(this._check(l.keywords.continuing))return this._continuing_statement();if(this._check(l.keywords.static_assert))return this._static_assert_statement();if(this._check(l.tokens.brace_left))return this._compound_statement();let t=null;return this._check(l.keywords.return)?t=this._return_statement():this._check([l.keywords.var,l.keywords.let,l.keywords.const])?t=this._variable_statement():this._match(l.keywords.discard)?t=new Kr:this._match(l.keywords.break)?t=new jr:this._match(l.keywords.continue)?t=new zr:t=this._increment_decrement_statement()||this._func_call_statement()||this._assignment_statement(),t!=null&&this._consume(l.tokens.semicolon,"Expected ';' after statement."),t}_static_assert_statement(){if(!this._match(l.keywords.static_assert))return null;let t=this._optional_paren_expression();return new Or(t)}_while_statement(){if(!this._match(l.keywords.while))return null;let t=this._optional_paren_expression(),r=this._compound_statement();return new Fr(t,r)}_continuing_statement(){if(!this._match(l.keywords.continuing))return null;let t=this._compound_statement();return new Mr(t)}_for_statement(){if(!this._match(l.keywords.for))return null;this._consume(l.tokens.paren_left,"Expected '('.");let t=this._check(l.tokens.semicolon)?null:this._for_init();this._consume(l.tokens.semicolon,"Expected ';'.");let r=this._check(l.tokens.semicolon)?null:this._short_circuit_or_expression();this._consume(l.tokens.semicolon,"Expected ';'.");let s=this._check(l.tokens.paren_right)?null:this._for_increment();this._consume(l.tokens.paren_right,"Expected ')'.");let i=this._compound_statement();return new Br(t,r,s,i)}_for_init(){return this._variable_statement()||this._func_call_statement()||this._assignment_statement()}_for_increment(){return this._func_call_statement()||this._increment_decrement_statement()||this._assignment_statement()}_variable_statement(){if(this._check(l.keywords.var)){let t=this._variable_decl();if(t===null)throw this._error(this._peek(),"Variable declaration expected.");let r=null;return this._match(l.tokens.equal)&&(r=this._short_circuit_or_expression()),new ye(t.name,t.type,t.storage,t.access,r)}if(this._match(l.keywords.let)){let t=this._consume(l.tokens.ident,"Expected name for let.").toString(),r=null;if(this._match(l.tokens.colon)){let i=this._attribute();r=this._type_decl(),r!=null&&(r.attributes=i)}this._consume(l.tokens.equal,"Expected '=' for let.");let s=this._short_circuit_or_expression();return new Ct(t,r,null,null,s)}if(this._match(l.keywords.const)){let t=this._consume(l.tokens.ident,"Expected name for const.").toString(),r=null;if(this._match(l.tokens.colon)){let i=this._attribute();r=this._type_decl(),r!=null&&(r.attributes=i)}this._consume(l.tokens.equal,"Expected '=' for const.");let s=this._short_circuit_or_expression();return new Ot(t,r,null,null,s)}return null}_increment_decrement_statement(){let t=this._current,r=this._unary_expression();if(r==null)return null;if(!this._check(l.increment_operators))return this._current=t,null;let s=this._consume(l.increment_operators,"Expected increment operator");return new Dr(s.type===l.tokens.plus_plus?Ye.increment:Ye.decrement,r)}_assignment_statement(){let t=null;if(this._check(l.tokens.brace_right))return null;let r=this._match(l.tokens.underscore);if(r||(t=this._unary_expression()),!r&&t==null)return null;let s=this._consume(l.assignment_operators,"Expected assignment operator."),i=this._short_circuit_or_expression();return new Pr(at.parse(s.lexeme),t,i)}_func_call_statement(){if(!this._check(l.tokens.ident))return null;let t=this._current,r=this._consume(l.tokens.ident,"Expected function name."),s=this._argument_expression_list();return s===null?(this._current=t,null):new Ur(r.lexeme,s)}_loop_statement(){if(!this._match(l.keywords.loop))return null;this._consume(l.tokens.brace_left,"Expected '{' for loop.");let t=[],r=this._statement();for(;r!==null;){if(Array.isArray(r))for(let i of r)t.push(i);else t.push(r);r=this._statement()}let s=null;return this._match(l.keywords.continuing)&&(s=this._compound_statement()),this._consume(l.tokens.brace_right,"Expected '}' for loop."),new kr(t,s)}_switch_statement(){if(!this._match(l.keywords.switch))return null;let t=this._optional_paren_expression();this._consume(l.tokens.brace_left,"Expected '{' for switch.");let r=this._switch_body();if(r==null||r.length==0)throw this._error(this._previous(),"Expected 'case' or 'default'.");return this._consume(l.tokens.brace_right,"Expected '}' for switch."),new Wr(t,r)}_switch_body(){let t=[];if(this._match(l.keywords.case)){let r=this._case_selectors();this._match(l.tokens.colon),this._consume(l.tokens.brace_left,"Exected '{' for switch case.");let s=this._case_body();this._consume(l.tokens.brace_right,"Exected '}' for switch case."),t.push(new Qr(r,s))}if(this._match(l.keywords.default)){this._match(l.tokens.colon),this._consume(l.tokens.brace_left,"Exected '{' for switch default.");let r=this._case_body();this._consume(l.tokens.brace_right,"Exected '}' for switch default."),t.push(new Gr(r))}if(this._check([l.keywords.default,l.keywords.case])){let r=this._switch_body();t.push(r[0])}return t}_case_selectors(){var t,r,s,i;let n=[(r=(t=this._shift_expression())===null||t===void 0?void 0:t.evaluate(this._context).toString())!==null&&r!==void 0?r:""];for(;this._match(l.tokens.comma);)n.push((i=(s=this._shift_expression())===null||s===void 0?void 0:s.evaluate(this._context).toString())!==null&&i!==void 0?i:"");return n}_case_body(){if(this._match(l.keywords.fallthrough))return this._consume(l.tokens.semicolon,"Expected ';'"),[];let t=this._statement();if(t==null)return[];t instanceof Array||(t=[t]);let r=this._case_body();return r.length==0?t:[...t,r[0]]}_if_statement(){if(!this._match(l.keywords.if))return null;let t=this._optional_paren_expression(),r=this._compound_statement(),s=[];this._match_elseif()&&(s=this._elseif_statement(s));let i=null;return this._match(l.keywords.else)&&(i=this._compound_statement()),new Xr(t,r,s,i)}_match_elseif(){return this._tokens[this._current].type===l.keywords.else&&this._tokens[this._current+1].type===l.keywords.if?(this._advance(),this._advance(),!0):!1}_elseif_statement(){let t=arguments.length>0&&arguments[0]!==void 0?arguments[0]:[],r=this._optional_paren_expression(),s=this._compound_statement();return t.push(new ts(r,s)),this._match_elseif()&&this._elseif_statement(t),t}_return_statement(){if(!this._match(l.keywords.return))return null;let t=this._short_circuit_or_expression();return new Hr(t)}_short_circuit_or_expression(){let t=this._short_circuit_and_expr();for(;this._match(l.tokens.or_or);)t=new J(this._previous().toString(),t,this._short_circuit_and_expr());return t}_short_circuit_and_expr(){let t=this._inclusive_or_expression();for(;this._match(l.tokens.and_and);)t=new J(this._previous().toString(),t,this._inclusive_or_expression());return t}_inclusive_or_expression(){let t=this._exclusive_or_expression();for(;this._match(l.tokens.or);)t=new J(this._previous().toString(),t,this._exclusive_or_expression());return t}_exclusive_or_expression(){let t=this._and_expression();for(;this._match(l.tokens.xor);)t=new J(this._previous().toString(),t,this._and_expression());return t}_and_expression(){let t=this._equality_expression();for(;this._match(l.tokens.and);)t=new J(this._previous().toString(),t,this._equality_expression());return t}_equality_expression(){let t=this._relational_expression();return this._match([l.tokens.equal_equal,l.tokens.not_equal])?new J(this._previous().toString(),t,this._relational_expression()):t}_relational_expression(){let t=this._shift_expression();for(;this._match([l.tokens.less_than,l.tokens.greater_than,l.tokens.less_than_equal,l.tokens.greater_than_equal]);)t=new J(this._previous().toString(),t,this._shift_expression());return t}_shift_expression(){let t=this._additive_expression();for(;this._match([l.tokens.shift_left,l.tokens.shift_right]);)t=new J(this._previous().toString(),t,this._additive_expression());return t}_additive_expression(){let t=this._multiplicative_expression();for(;this._match([l.tokens.plus,l.tokens.minus]);)t=new J(this._previous().toString(),t,this._multiplicative_expression());return t}_multiplicative_expression(){let t=this._unary_expression();for(;this._match([l.tokens.star,l.tokens.forward_slash,l.tokens.modulo]);)t=new J(this._previous().toString(),t,this._unary_expression());return t}_unary_expression(){return this._match([l.tokens.minus,l.tokens.bang,l.tokens.tilde,l.tokens.star,l.tokens.and])?new Jr(this._previous().toString(),this._unary_expression()):this._singular_expression()}_singular_expression(){let t=this._primary_expression(),r=this._postfix_expression();return r&&(t.postfix=r),t}_postfix_expression(){if(this._match(l.tokens.bracket_left)){let t=this._short_circuit_or_expression();this._consume(l.tokens.bracket_right,"Expected ']'.");let r=this._postfix_expression();return r&&(t.postfix=r),t}if(this._match(l.tokens.period)){let t=this._consume(l.tokens.ident,"Expected member name."),r=this._postfix_expression(),s=new Dt(t.lexeme);return r&&(s.postfix=r),s}return null}_getStruct(t){return this._context.aliases.has(t)?this._context.aliases.get(t).type:this._context.structs.has(t)?this._context.structs.get(t):null}_primary_expression(){if(this._match(l.tokens.ident)){let s=this._previous().toString();if(this._check(l.tokens.paren_left)){let i=this._argument_expression_list(),n=this._getStruct(s);return n!=null?new De(n,i):new $r(s,i)}if(this._context.constants.has(s)){let i=this._context.constants.get(s);return new Pt(s,i.value)}return new Lr(s)}if(this._match(l.const_literal))return new Ut(parseFloat(this._previous().toString()));if(this._check(l.tokens.paren_left))return this._paren_expression();if(this._match(l.keywords.bitcast)){this._consume(l.tokens.less_than,"Expected '<'.");let s=this._type_decl();this._consume(l.tokens.greater_than,"Expected '>'.");let i=this._paren_expression();return new qr(s,i)}let t=this._type_decl(),r=this._argument_expression_list();return new Zr(t,r)}_argument_expression_list(){if(!this._match(l.tokens.paren_left))return null;let t=[];do{if(this._check(l.tokens.paren_right))break;let r=this._short_circuit_or_expression();t.push(r)}while(this._match(l.tokens.comma));return this._consume(l.tokens.paren_right,"Expected ')' for agument list"),t}_optional_paren_expression(){this._match(l.tokens.paren_left);let t=this._short_circuit_or_expression();return this._match(l.tokens.paren_right),new kt([t])}_paren_expression(){this._consume(l.tokens.paren_left,"Expected '('.");let t=this._short_circuit_or_expression();return this._consume(l.tokens.paren_right,"Expected ')'."),new kt([t])}_struct_decl(){if(!this._match(l.keywords.struct))return null;let t=this._consume(l.tokens.ident,"Expected name for struct.").toString();this._consume(l.tokens.brace_left,"Expected '{' for struct body.");let r=[];for(;!this._check(l.tokens.brace_right);){let i=this._attribute(),n=this._consume(l.tokens.ident,"Expected variable name.").toString();this._consume(l.tokens.colon,"Expected ':' for struct member type.");let o=this._attribute(),a=this._type_decl();a!=null&&(a.attributes=o),this._check(l.tokens.brace_right)?this._match(l.tokens.comma):this._consume(l.tokens.comma,"Expected ',' for struct member."),r.push(new rs(n,a,i))}this._consume(l.tokens.brace_right,"Expected '}' after struct body.");let s=new ge(t,r);return this._context.structs.set(t,s),s}_global_variable_decl(){let t=this._variable_decl();return t&&this._match(l.tokens.equal)&&(t.value=this._const_expression()),t}_override_variable_decl(){let t=this._override_decl();return t&&this._match(l.tokens.equal)&&(t.value=this._const_expression()),t}_global_const_decl(){if(!this._match(l.keywords.const))return null;let t=this._consume(l.tokens.ident,"Expected variable name"),r=null;if(this._match(l.tokens.colon)){let n=this._attribute();r=this._type_decl(),r!=null&&(r.attributes=n)}let s=null;if(this._match(l.tokens.equal)){let n=this._short_circuit_or_expression();if(n instanceof De)s=n;else if(n instanceof Pt&&n.initializer instanceof De)s=n.initializer;else try{let o=n.evaluate(this._context);s=new Ut(o)}catch{s=n}}let i=new Ot(t.toString(),r,"","",s);return this._context.constants.set(i.name,i),i}_global_let_decl(){if(!this._match(l.keywords.let))return null;let t=this._consume(l.tokens.ident,"Expected variable name"),r=null;if(this._match(l.tokens.colon)){let i=this._attribute();r=this._type_decl(),r!=null&&(r.attributes=i)}let s=null;return this._match(l.tokens.equal)&&(s=this._const_expression()),new Ct(t.toString(),r,"","",s)}_const_expression(){if(this._match(l.const_literal))return new Dt(this._previous().toString());let t=this._type_decl();this._consume(l.tokens.paren_left,"Expected '('.");let r=[];for(;!this._check(l.tokens.paren_right)&&(r.push(this._const_expression()),!!this._check(l.tokens.comma));)this._advance();return this._consume(l.tokens.paren_right,"Expected ')'."),new De(t,r)}_variable_decl(){if(!this._match(l.keywords.var))return null;let t="",r="";this._match(l.tokens.less_than)&&(t=this._consume(l.storage_class,"Expected storage_class.").toString(),this._match(l.tokens.comma)&&(r=this._consume(l.access_mode,"Expected access_mode.").toString()),this._consume(l.tokens.greater_than,"Expected '>'."));let s=this._consume(l.tokens.ident,"Expected variable name"),i=null;if(this._match(l.tokens.colon)){let n=this._attribute();i=this._type_decl(),i!=null&&(i.attributes=n)}return new ye(s.toString(),i,t,r,null)}_override_decl(){if(!this._match(l.keywords.override))return null;let t=this._consume(l.tokens.ident,"Expected variable name"),r=null;if(this._match(l.tokens.colon)){let s=this._attribute();r=this._type_decl(),r!=null&&(r.attributes=s)}return new It(t.toString(),r,null)}_enable_directive(){let t=this._consume(l.tokens.ident,"identity expected.");return new Vr(t.toString())}_type_alias(){let t=this._consume(l.tokens.ident,"identity expected.");this._consume(l.tokens.equal,"Expected '=' for type alias.");let r=this._type_decl();if(r===null)throw this._error(this._peek(),"Expected Type for Alias.");this._context.aliases.has(r.name)&&(r=this._context.aliases.get(r.name).type);let s=new Ft(t.toString(),r);return this._context.aliases.set(s.name,s),s}_type_decl(){if(this._check([l.tokens.ident,...l.texel_format,l.keywords.bool,l.keywords.f32,l.keywords.i32,l.keywords.u32])){let s=this._advance(),i=s.toString();return this._context.structs.has(i)?this._context.structs.get(i):this._context.aliases.has(i)?this._context.aliases.get(i).type:new Te(s.toString())}let t=this._texture_sampler_types();if(t)return t;if(this._check(l.template_types)){let s=this._advance().toString(),i=null,n=null;return this._match(l.tokens.less_than)&&(i=this._type_decl(),n=null,this._match(l.tokens.comma)&&(n=this._consume(l.access_mode,"Expected access_mode for pointer").toString()),this._consume(l.tokens.greater_than,"Expected '>' for type.")),new Mt(s,i,n)}if(this._match(l.keywords.ptr)){let s=this._previous().toString();this._consume(l.tokens.less_than,"Expected '<' for pointer.");let i=this._consume(l.storage_class,"Expected storage_class for pointer");this._consume(l.tokens.comma,"Expected ',' for pointer.");let n=this._type_decl(),o=null;return this._match(l.tokens.comma)&&(o=this._consume(l.access_mode,"Expected access_mode for pointer").toString()),this._consume(l.tokens.greater_than,"Expected '>' for pointer."),new Yr(s,i.toString(),n,o)}let r=this._attribute();if(this._match(l.keywords.array)){let s=null,i=-1,n=this._previous();if(this._match(l.tokens.less_than)){s=this._type_decl(),this._context.aliases.has(s.name)&&(s=this._context.aliases.get(s.name).type);let o="";this._match(l.tokens.comma)&&(o=this._shift_expression().evaluate(this._context).toString()),this._consume(l.tokens.greater_than,"Expected '>' for array."),i=o?parseInt(o):0}return new Bt(n.toString(),r,s,i)}return null}_texture_sampler_types(){if(this._match(l.sampler_type))return new Be(this._previous().toString(),null,null);if(this._match(l.depth_texture_type))return new Be(this._previous().toString(),null,null);if(this._match(l.sampled_texture_type)||this._match(l.multisampled_texture_type)){let t=this._previous();this._consume(l.tokens.less_than,"Expected '<' for sampler type.");let r=this._type_decl();return this._consume(l.tokens.greater_than,"Expected '>' for sampler type."),new Be(t.toString(),r,null)}if(this._match(l.storage_texture_type)){let t=this._previous();this._consume(l.tokens.less_than,"Expected '<' for sampler type.");let r=this._consume(l.texel_format,"Invalid texel format.").toString();this._consume(l.tokens.comma,"Expected ',' after texel format.");let s=this._consume(l.access_mode,"Expected access mode for storage texture type.").toString();return this._consume(l.tokens.greater_than,"Expected '>' for sampler type."),new Be(t.toString(),r,s)}return null}_attribute(){let t=[];for(;this._match(l.tokens.attr);){let r=this._consume(l.attribute_name,"Expected attribute name"),s=new Ht(r.toString(),null);if(this._match(l.tokens.paren_left)){if(s.value=this._consume(l.literal_or_ident,"Expected attribute value").toString(),this._check(l.tokens.comma)){this._advance();do{let i=this._consume(l.literal_or_ident,"Expected attribute value").toString();s.value instanceof Array||(s.value=[s.value]),s.value.push(i)}while(this._match(l.tokens.comma))}this._consume(l.tokens.paren_right,"Expected ')'")}t.push(s)}for(;this._match(l.tokens.attr_left);){if(!this._check(l.tokens.attr_right))do{let r=this._consume(l.attribute_name,"Expected attribute name"),s=new Ht(r.toString(),null);if(this._match(l.tokens.paren_left)){if(s.value=[this._consume(l.literal_or_ident,"Expected attribute value").toString()],this._check(l.tokens.comma)){this._advance();do{let i=this._consume(l.literal_or_ident,"Expected attribute value").toString();s.value.push(i)}while(this._match(l.tokens.comma))}this._consume(l.tokens.paren_right,"Expected ')'")}t.push(s)}while(this._match(l.tokens.comma));this._consume(l.tokens.attr_right,"Expected ']]' after attribute declarations")}return t.length==0?null:t}},we=class{constructor(t,r){this.name=t,this.attributes=r,this.size=0}get isArray(){return!1}get isStruct(){return!1}get isTemplate(){return!1}},Kt=class{constructor(t,r,s){this.name=t,this.type=r,this.attributes=s,this.offset=0,this.size=0}get isArray(){return this.type.isArray}get isStruct(){return this.type.isStruct}get isTemplate(){return this.type.isTemplate}get align(){return this.type.isStruct?this.type.align:0}get members(){return this.type.isStruct?this.type.members:null}get format(){return this.type.isArray?this.type.format:this.type.isTemplate?this.type.format:null}get count(){return this.type.isArray?this.type.count:0}get stride(){return this.type.isArray?this.type.stride:this.size}},Ke=class extends we{constructor(t,r){super(t,r),this.members=[],this.align=0}get isStruct(){return!0}},ot=class extends we{constructor(t,r){super(t,r),this.count=0,this.stride=0}get isArray(){return!0}},jt=class extends we{constructor(t,r,s,i){super(t,s),this.format=r,this.access=i}get isTemplate(){return!0}},xe;(function(e){e[e.Uniform=0]="Uniform",e[e.Storage=1]="Storage",e[e.Texture=2]="Texture",e[e.Sampler=3]="Sampler",e[e.StorageTexture=4]="StorageTexture"})(xe||(xe={}));var je=class{constructor(t,r,s,i,n,o,a){this.name=t,this.type=r,this.group=s,this.binding=i,this.attributes=n,this.resourceType=o,this.access=a}get isArray(){return this.type.isArray}get isStruct(){return this.type.isStruct}get isTemplate(){return this.type.isTemplate}get size(){return this.type.size}get align(){return this.type.isStruct?this.type.align:0}get members(){return this.type.isStruct?this.type.members:null}get format(){return this.type.isArray?this.type.format:this.type.isTemplate?this.type.format:null}get count(){return this.type.isArray?this.type.count:0}get stride(){return this.type.isArray?this.type.stride:this.size}},ns=class{constructor(t,r){this.name=t,this.type=r}},ze=class{constructor(t,r){this.align=t,this.size=r}},os=class{constructor(t,r,s,i){this.name=t,this.type=r,this.locationType=s,this.location=i,this.interpolation=null}},zt=class{constructor(t,r,s,i){this.name=t,this.type=r,this.locationType=s,this.location=i}},as=class{constructor(t){let r=arguments.length>1&&arguments[1]!==void 0?arguments[1]:null;this.stage=null,this.inputs=[],this.outputs=[],this.name=t,this.stage=r}},ls=class{constructor(){this.vertex=[],this.fragment=[],this.compute=[]}},cs=class{constructor(t,r,s,i){this.name=t,this.type=r,this.attributes=s,this.id=i}},Q=class{constructor(t){this.uniforms=[],this.storage=[],this.textures=[],this.samplers=[],this.aliases=[],this.overrides=[],this.structs=[],this.entry=new ls,this._types=new Map,t&&this.update(t)}_isStorageTexture(t){return t.name=="texture_storage_1d"||t.name=="texture_storage_2d"||t.name=="texture_storage_2d_array"||t.name=="texture_storage_3d"}update(t){let s=new is().parse(t);for(let i of s){if(i instanceof ge){let n=this._getTypeInfo(i,null);n instanceof Ke&&this.structs.push(n);continue}if(i instanceof Ft){this.aliases.push(this._getAliasInfo(i));continue}if(i instanceof It){let n=i,o=this._getAttributeNum(n.attributes,"id",0),a=n.type!=null?this._getTypeInfo(n.type,n.attributes):null;this.overrides.push(new cs(n.name,a,n.attributes,o));continue}if(this._isUniformVar(i)){let n=i,o=this._getAttributeNum(n.attributes,"group",0),a=this._getAttributeNum(n.attributes,"binding",0),c=this._getTypeInfo(n.type,n.attributes),_=new je(n.name,c,o,a,n.attributes,xe.Uniform,n.access);this.uniforms.push(_);continue}if(this._isStorageVar(i)){let n=i,o=this._getAttributeNum(n.attributes,"group",0),a=this._getAttributeNum(n.attributes,"binding",0),c=this._getTypeInfo(n.type,n.attributes),_=this._isStorageTexture(c),d=new je(n.name,c,o,a,n.attributes,_?xe.StorageTexture:xe.Storage,n.access);this.storage.push(d);continue}if(this._isTextureVar(i)){let n=i,o=this._getAttributeNum(n.attributes,"group",0),a=this._getAttributeNum(n.attributes,"binding",0),c=this._getTypeInfo(n.type,n.attributes),_=this._isStorageTexture(c),d=new je(n.name,c,o,a,n.attributes,_?xe.StorageTexture:xe.Texture,n.access);_?this.storage.push(d):this.textures.push(d);continue}if(this._isSamplerVar(i)){let n=i,o=this._getAttributeNum(n.attributes,"group",0),a=this._getAttributeNum(n.attributes,"binding",0),c=this._getTypeInfo(n.type,n.attributes),_=new je(n.name,c,o,a,n.attributes,xe.Sampler,n.access);this.samplers.push(_);continue}if(i instanceof Nt){let n=this._getAttribute(i,"vertex"),o=this._getAttribute(i,"fragment"),a=this._getAttribute(i,"compute"),c=n||o||a;if(c){let _=new as(i.name,c.name);_.inputs=this._getInputs(i.args),_.outputs=this._getOutputs(i.returnType),this.entry[c.name].push(_)}continue}}}getBindGroups(){let t=[];function r(s,i){s>=t.length&&(t.length=s+1),t[s]===void 0&&(t[s]=[]),i>=t[s].length&&(t[s].length=i+1)}for(let s of this.uniforms){r(s.group,s.binding);let i=t[s.group];i[s.binding]=s}for(let s of this.storage){r(s.group,s.binding);let i=t[s.group];i[s.binding]=s}for(let s of this.textures){r(s.group,s.binding);let i=t[s.group];i[s.binding]=s}for(let s of this.samplers){r(s.group,s.binding);let i=t[s.group];i[s.binding]=s}return t}_getOutputs(t){let r=arguments.length>1&&arguments[1]!==void 0?arguments[1]:void 0;if(r===void 0&&(r=[]),t instanceof ge)this._getStructOutputs(t,r);else{let s=this._getOutputInfo(t);s!==null&&r.push(s)}return r}_getStructOutputs(t,r){for(let s of t.members)if(s.type instanceof ge)this._getStructOutputs(s.type,r);else{let i=this._getAttribute(s,"location")||this._getAttribute(s,"builtin");if(i!==null){let n=this._getTypeInfo(s.type,s.type.attributes),o=this._parseInt(i.value),a=new zt(s.name,n,i.name,o);r.push(a)}}}_getOutputInfo(t){let r=this._getAttribute(t,"location")||this._getAttribute(t,"builtin");if(r!==null){let s=this._getTypeInfo(t,t.attributes),i=this._parseInt(r.value);return new zt("",s,r.name,i)}return null}_getInputs(t){let r=arguments.length>1&&arguments[1]!==void 0?arguments[1]:void 0;r===void 0&&(r=[]);for(let s of t)if(s.type instanceof ge)this._getStructInputs(s.type,r);else{let i=this._getInputInfo(s);i!==null&&r.push(i)}return r}_getStructInputs(t,r){for(let s of t.members)if(s.type instanceof ge)this._getStructInputs(s.type,r);else{let i=this._getInputInfo(s);i!==null&&r.push(i)}}_getInputInfo(t){let r=this._getAttribute(t,"location")||this._getAttribute(t,"builtin");if(r!==null){let s=this._getAttribute(t,"interpolation"),i=this._getTypeInfo(t.type,t.attributes),n=this._parseInt(r.value),o=new os(t.name,i,r.name,n);return s!==null&&(o.interpolation=this._parseString(s.value)),o}return null}_parseString(t){return t instanceof Array&&(t=t[0]),t}_parseInt(t){t instanceof Array&&(t=t[0]);let r=parseInt(t);return isNaN(r)?t:r}_getAlias(t){for(let r of this.aliases)if(r.name==t)return r.type;return null}_getAliasInfo(t){return new ns(t.name,this._getTypeInfo(t.type,null))}_getTypeInfo(t,r){if(this._types.has(t))return this._types.get(t);if(t instanceof Bt){let i=t,n=this._getTypeInfo(i.format,i.attributes),o=new ot(i.name,r);return o.format=n,o.count=i.count,this._types.set(t,o),this._updateTypeInfo(o),o}if(t instanceof ge){let i=t,n=new Ke(i.name,r);for(let o of i.members){let a=this._getTypeInfo(o.type,o.attributes);n.members.push(new Kt(o.name,a,o.attributes))}return this._types.set(t,n),this._updateTypeInfo(n),n}if(t instanceof Be){let i=t,n=i.format instanceof Te,o=i.format?n?this._getTypeInfo(i.format,null):new we(i.format,null):null,a=new jt(i.name,o,r,i.access);return this._types.set(t,a),this._updateTypeInfo(a),a}if(t instanceof Mt){let i=t,n=i.format?this._getTypeInfo(i.format,null):null,o=new jt(i.name,n,r,i.access);return this._types.set(t,o),this._updateTypeInfo(o),o}let s=new we(t.name,r);return this._types.set(t,s),this._updateTypeInfo(s),s}_updateTypeInfo(t){var r,s;let i=this._getTypeSize(t);if(t.size=(r=i?.size)!==null&&r!==void 0?r:0,t instanceof ot){let n=this._getTypeSize(t.format);t.stride=(s=n?.size)!==null&&s!==void 0?s:0,this._updateTypeInfo(t.format)}t instanceof Ke&&this._updateStructInfo(t)}_updateStructInfo(t){var r;let s=0,i=0,n=0,o=0;for(let a=0,c=t.members.length;a<c;++a){let _=t.members[a],d=this._getTypeSize(_);if(!d)continue;(r=this._getAlias(_.type.name))!==null&&r!==void 0||_.type;let h=d.align,p=d.size;s=this._roundUp(h,s+i),i=p,n=s,o=Math.max(o,h),_.offset=s,_.size=p,this._updateTypeInfo(_.type)}t.size=this._roundUp(o,n+i),t.align=o}_getTypeSize(t){var r;if(t==null)return null;let s=this._getAttributeNum(t.attributes,"size",0),i=this._getAttributeNum(t.attributes,"align",0);if(t instanceof Kt&&(t=t.type),t instanceof we){let n=this._getAlias(t.name);n!==null&&(t=n)}{let n=Q._typeInfo[t.name];if(n!==void 0){let o=t.format==="f16"?2:1;return new ze(Math.max(i,n.align/o),Math.max(s,n.size/o))}}{let n=Q._typeInfo[t.name.substring(0,t.name.length-1)];if(n){let o=t.name[t.name.length-1]==="h"?2:1;return new ze(Math.max(i,n.align/o),Math.max(s,n.size/o))}}if(t instanceof ot){let n=t,o=8,a=8,c=this._getTypeSize(n.format);c!==null&&(a=c.size,o=c.align);let _=n.count,d=this._getAttributeNum((r=t?.attributes)!==null&&r!==void 0?r:null,"stride",this._roundUp(o,a));return a=_*d,s&&(a=s),new ze(Math.max(i,o),Math.max(s,a))}if(t instanceof Ke){let n=0,o=0,a=0,c=0,_=0;for(let d of t.members){let h=this._getTypeSize(d.type);h!==null&&(n=Math.max(h.align,n),a=this._roundUp(h.align,a+c),c=h.size,_=a)}return o=this._roundUp(n,_+c),new ze(Math.max(i,n),Math.max(s,o))}return null}_isUniformVar(t){return t instanceof ye&&t.storage=="uniform"}_isStorageVar(t){return t instanceof ye&&t.storage=="storage"}_isTextureVar(t){return t instanceof ye&&t.type!==null&&Q._textureTypes.indexOf(t.type.name)!=-1}_isSamplerVar(t){return t instanceof ye&&t.type!==null&&Q._samplerTypes.indexOf(t.type.name)!=-1}_getAttribute(t,r){let s=t;if(!s||!s.attributes)return null;let i=s.attributes;for(let n of i)if(n.name==r)return n;return null}_getAttributeNum(t,r,s){if(t===null)return s;for(let i of t)if(i.name==r){let n=i!==null&&i.value!==null?i.value:s;return n instanceof Array&&(n=n[0]),typeof n=="number"?n:typeof n=="string"?parseInt(n):s}return s}_roundUp(t,r){return Math.ceil(r/t)*t}};Q._typeInfo={f16:{align:2,size:2},i32:{align:4,size:4},u32:{align:4,size:4},f32:{align:4,size:4},atomic:{align:4,size:4},vec2:{align:8,size:8},vec3:{align:16,size:12},vec4:{align:16,size:16},mat2x2:{align:8,size:16},mat3x2:{align:8,size:24},mat4x2:{align:8,size:32},mat2x3:{align:16,size:32},mat3x3:{align:16,size:48},mat4x3:{align:16,size:64},mat2x4:{align:16,size:32},mat3x4:{align:16,size:48},mat4x4:{align:16,size:64}};Q._textureTypes=l.any_texture_type.map(e=>e.name);Q._samplerTypes=l.sampler_type.map(e=>e.name);function Yt(e){let t={attributes:[],bindings:[]},r=xo(e);for(let n of r.uniforms){let o=[];for(let a of n.type.members)o.push({name:a.name,type:hi(a.type)});t.bindings.push({type:"uniform",name:n.name,location:n.binding,group:n.group,members:o})}let s=r.entry.vertex[0],i=s.inputs.length;for(let n=0;n<i;n++){let o=s.inputs[n];if(o.locationType==="location"){let a=hi(o.type);t.attributes.push({name:o.name,location:o.location,type:a})}}return t}function hi(e){return e.format?`${e.name}<${e.format.name}>`:e.name}function xo(e){try{return new Q(e)}catch(t){if(t instanceof Error)throw t;let r="WGSL parse error";throw typeof t=="object"&&t!==null&&t!==void 0&&t.message&&(r+=`: ${t.message} `),typeof t=="object"&&t!==null&&t!==void 0&&t.token&&(r+=t.token.line||""),new Error(r,{cause:t})}}var _s=S(x(),1);var $t=class{constructor(t){this.modules=void 0,this.moduleUniforms=void 0,this.moduleBindings=void 0,this.moduleUniformsChanged=void 0;let r=it(Object.values(t));_s.log.log(1,"Creating ShaderInputs with modules",r.map(s=>s.name))(),this.modules=t,this.moduleUniforms={},this.moduleBindings={};for(let[s,i]of Object.entries(t)){let n=s;this.moduleUniforms[n]=i.defaultUniforms||{},this.moduleBindings[n]={}}}destroy(){}setProps(t){for(let s of Object.keys(t)){var r;let i=s,n=t[i],o=this.modules[i];if(!o){_s.log.warn(`Module ${s} not found`)();continue}let a=this.moduleUniforms[i],c=((r=o.getUniforms)===null||r===void 0?void 0:r.call(o,n,this.moduleUniforms[i]))||n;this.moduleUniforms[i]={...a,...c}}}getModules(){return Object.values(this.modules)}getUniformValues(){return this.moduleUniforms}getBindings(){let t={};for(let r of Object.values(this.moduleBindings))Object.assign(t,r);return t}getDebugTable(){let t={};for(let[s,i]of Object.entries(this.moduleUniforms))for(let[n,o]of Object.entries(i)){var r;t[`${s}.${n}`]={type:(r=this.modules[s].uniformTypes)===null||r===void 0?void 0:r[n],value:String(o)}}return t}};var Ae=S(x(),1),Lt=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,Ae.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,Ae.assert)(this.indices.usage===Ae.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 gi(e,t){if(t instanceof Lt)return t;let r=yo(e,t),{attributes:s,bufferLayout:i}=wo(e,t);return new Lt({topology:t.topology||"triangle-list",bufferLayout:i,vertexCount:t.vertexCount,indices:r,attributes:s})}function yo(e,t){if(!t.indices)return;let r=t.indices.value;return e.createBuffer({usage:Ae.Buffer.INDEX,data:r})}function wo(e,t){let r=[],s={};for(let[n,o]of Object.entries(t.attributes)){let a=n;switch(n){case"POSITION":a="positions";break;case"NORMAL":a="normals";break;case"TEXCOORD_0":a="texCoords";break;case"COLOR_0":a="colors";break}s[a]=e.createBuffer({data:o.value,id:`${n}-buffer`});let{value:c,size:_,normalized:d}=o;r.push({name:a,format:(0,Ae.getVertexFormatFromAttribute)(c,_,d)})}let i=t._calculateVertexCount(t.attributes,t.indices);return{attributes:s,bufferLayout:r,vertexCount:i}}var pi=S(x(),1),ve=class{static getDefaultPipelineFactory(t){return t._lumaData.defaultPipelineFactory=t._lumaData.defaultPipelineFactory||new ve(t),t._lumaData.defaultPipelineFactory}constructor(t){this.device=void 0,this._hashCounter=0,this._hashes={},this._useCounts={},this._pipelineCache={},this.device=t}createRenderPipeline(t){let r={...ve.defaultProps,...t},s=this._hashRenderPipeline({...r});if(!this._pipelineCache[s]){let i=this.device.createRenderPipeline({...r,vs:this.device.createShader({stage:"vertex",source:r.vs}),fs:r.fs?this.device.createShader({stage:"fragment",source:r.fs}):null});i.hash=s,this._pipelineCache[s]=i,this._useCounts[s]=0}return this._useCounts[s]++,this._pipelineCache[s]}release(t){let r=t.hash;this._useCounts[r]--,this._useCounts[r]===0&&(this._pipelineCache[r].destroy(),delete this._pipelineCache[r],delete this._useCounts[r])}_createRenderPipeline(t){if(!t.fs)throw new Error("fs");return this.device.createRenderPipeline({...t,vs:this.device.createShader({stage:"vertex",source:t.vs}),fs:t.fs?this.device.createShader({stage:"fragment",source:t.fs}):null})}_hashRenderPipeline(t){let r=this._getHash(t.vs),s=t.fs?this._getHash(t.fs):0,i="-";switch(this.device.info.type){case"webgpu":let n=this._getHash(JSON.stringify(t.parameters)),o=this._getHash(JSON.stringify(t.bufferLayout));return`${r}/${s}V${i}T${t.topology}P${n}BL${o}}`;default:return`${r}/${s}V${i}`}}_getHash(t){return this._hashes[t]===void 0&&(this._hashes[t]=this._hashCounter++),this._hashes[t]}};ve.defaultProps={...pi.RenderPipeline.defaultProps,vs:void 0,fs:void 0};function Ti(e,t){var r;let s={},i="Values";if(e.attributes.length===0&&!((r=e.varyings)!==null&&r!==void 0&&r.length))return{"No attributes or varyings":{[i]:"N/A"}};for(let n of e.attributes)if(n){let o=`${n.location} ${n.name}: ${n.type}`;s[`in ${o}`]={[i]:n.stepMode||"vertex"}}for(let n of e.varyings||[]){let o=`${n.location} ${n.name}`;s[`out ${o}`]={[i]:JSON.stringify(n.accessor)}}return s}var W=null,fs=null;function Ai(e,t){let{id:r,minimap:s,opaque:i,top:n="0",left:o="0",rgbaScale:a=1}=t;W||(W=document.createElement("canvas"),W.id=r,W.title=r,W.style.zIndex="100",W.style.position="absolute",W.style.top=n,W.style.left=o,W.style.border="blue 1px solid",W.style.transform="scaleY(-1)",document.body.appendChild(W),fs=W.getContext("2d")),(W.width!==e.width||W.height!==e.height)&&(W.width=e.width/2,W.height=e.height/2,W.style.width="400px",W.style.height="400px");let c=e.device.readPixelsToArrayWebGL(e),_=fs.createImageData(e.width,e.height),d=0;for(let h=0;h<c.length;h+=4)_.data[d+h+0]=c[h+0]*a,_.data[d+h+1]=c[h+1]*a,_.data[d+h+2]=c[h+2]*a,_.data[d+h+3]=i?255:c[h+3]*a;fs.putImageData(_,0,0)}var $e=2,vo=1e4,Ne=class{constructor(t,r){var s,i,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.vertexArray=void 0,this.transformFeedback=null,this.pipeline=void 0,this.shaderInputs=void 0,this._uniformStore=void 0,this._pipelineNeedsUpdate="newly created",this._attributeInfos={},this._gpuGeometry=null,this._getModuleUniforms=void 0,this.props=void 0,this._lastLogTime=0,this._logOpen=!1,this._drawCount=0,this.props={...Ne.defaultProps,...r},r=this.props,this.id=r.id||(0,C.uid)("model"),this.device=t,Object.assign(this.userData,r.userData);let o=Object.fromEntries(((s=this.props.modules)===null||s===void 0?void 0:s.map(y=>[y.name,y]))||[]);this.setShaderInputs(r.shaderInputs||new $t(o));let a=this.device.info.type==="webgpu";if(this.props.source){if(a){var c;(c=this.props).shaderLayout||(c.shaderLayout=Yt(this.props.source))}this.props.fs=this.props.source,this.props.vs=this.props.source}if(a&&typeof this.props.vs!="string"){var _;(_=this.props).shaderLayout||(_.shaderLayout=Yt(this.props.vs.wgsl))}let d=No(t),h=(((i=this.props.modules)===null||i===void 0?void 0:i.length)>0?this.props.modules:(n=this.shaderInputs)===null||n===void 0?void 0:n.getModules())||[],{vs:p,fs:A,getUniforms:b}=this.props.shaderAssembler.assembleShaders({platformInfo:d,...this.props,modules:h});if(this.vs=p,this.fs=A,this._getModuleUniforms=b,this.vertexCount=this.props.vertexCount,this.instanceCount=this.props.instanceCount,this.topology=this.props.topology,this.bufferLayout=this.props.bufferLayout,this.parameters=this.props.parameters,r.geometry&&(this._gpuGeometry=this.setGeometry(r.geometry)),this.pipelineFactory=r.pipelineFactory||ve.getDefaultPipelineFactory(this.device),this.pipeline=this._updatePipeline(),this.vertexArray=t.createVertexArray({renderPipeline:this.pipeline}),this._gpuGeometry&&this._setGeometryAttributes(this._gpuGeometry),r.vertexCount&&this.setVertexCount(r.vertexCount),r.instanceCount&&this.setInstanceCount(r.instanceCount),r.indices)throw new Error("Model.props.indices removed. Use props.indexBuffer");r.indexBuffer&&this.setIndexBuffer(r.indexBuffer),r.attributes&&this.setAttributes(r.attributes),r.constantAttributes&&this.setConstantAttributes(r.constantAttributes),r.bindings&&this.setBindings(r.bindings),r.uniforms&&this.setUniforms(r.uniforms),r.moduleSettings&&(C.log.warn("Model.props.moduleSettings is deprecated. Use Model.shaderInputs.setProps()")(),this.updateModuleSettings(r.moduleSettings)),r.transformFeedback&&(this.transformFeedback=r.transformFeedback),Object.seal(this)}destroy(){this.pipelineFactory.release(this.pipeline),this._uniformStore.destroy()}predraw(){this.updateShaderInputs()}draw(t){this.predraw();try{this._logDrawCallStart(),this.pipeline=this._updatePipeline(),this.pipeline.setBindings(this.bindings),this.pipeline.setUniforms(this.uniforms),this.pipeline.draw({renderPass:t,vertexArray:this.vertexArray,vertexCount:this.vertexCount,instanceCount:this.instanceCount,transformFeedback:this.transformFeedback})}finally{this._logDrawCallEnd()}this._logFramebuffer(t)}setGeometry(t){let r=t&&gi(this.device,t);return this.setTopology(r.topology||"triangle-list"),this.bufferLayout=bi(this.bufferLayout,r.bufferLayout),this.vertexArray&&this._setGeometryAttributes(r),r}_setGeometryAttributes(t){let r={...t.attributes};for(let[s]of Object.entries(r))!this.pipeline.shaderLayout.attributes.find(i=>i.name===s)&&s!=="positions"&&delete r[s];this.vertexCount=t.vertexCount,this.setIndexBuffer(t.indices),this.setAttributes(t.attributes,"ignore-unknown"),this.setAttributes(r)}setTopology(t){t!==this.topology&&(this.topology=t,this._setPipelineNeedsUpdate("topology"))}setBufferLayout(t){this.bufferLayout=this._gpuGeometry?bi(t,this._gpuGeometry.bufferLayout):t,this._setPipelineNeedsUpdate("bufferLayout"),this.pipeline=this._updatePipeline(),this.vertexArray=this.device.createVertexArray({renderPipeline:this.pipeline}),this._gpuGeometry&&this._setGeometryAttributes(this._gpuGeometry)}setParameters(t){(0,C.deepEqual)(t,this.parameters,2)||(this.parameters=t,this._setPipelineNeedsUpdate("parameters"))}setVertexCount(t){this.vertexCount=t}setInstanceCount(t){this.instanceCount=t}setShaderInputs(t){this.shaderInputs=t,this._uniformStore=new Ie.UniformStore(this.shaderInputs.modules);for(let r of Object.keys(this.shaderInputs.modules)){let s=this._uniformStore.getManagedUniformBuffer(this.device,r);this.bindings[`${r}Uniforms`]=s}}setShaderModuleProps(t){let r=this._getModuleUniforms(t),s=Object.keys(r).filter(n=>{let o=r[n];return!(0,C.isNumberArray)(o)&&typeof o!="number"&&typeof o!="boolean"}),i={};for(let n of s)i[n]=r[n],delete r[n]}updateShaderInputs(){this._uniformStore.setUniforms(this.shaderInputs.getUniformValues())}updateModuleSettings(t){C.log.warn("Model.updateModuleSettings is deprecated. Use Model.shaderInputs.setProps()")();let{bindings:r,uniforms:s}=(0,C.splitUniformsAndBindings)(this._getModuleUniforms(t));Object.assign(this.bindings,r),Object.assign(this.uniforms,s)}setBindings(t){Object.assign(this.bindings,t)}setUniforms(t){this.pipeline.setUniforms(t),Object.assign(this.uniforms,t)}setIndexBuffer(t){this.vertexArray.setIndexBuffer(t)}setTransformFeedback(t){this.transformFeedback=t}setAttributes(t,r){t.indices&&C.log.warn(`Model:${this.id} setAttributes() - indexBuffer should be set using setIndexBuffer()`)();for(let[s,i]of Object.entries(t)){let n=this.bufferLayout.find(c=>Ri(c).includes(s));if(!n){C.log.warn(`Model(${this.id}): Missing layout for buffer "${s}".`)();continue}let o=Ri(n),a=!1;for(let c of o){let _=this._attributeInfos[c];_&&(this.vertexArray.setBuffer(_.location,i),a=!0)}!a&&r!=="ignore-unknown"&&C.log.warn(`Model(${this.id}): Ignoring buffer "${i.id}" for unknown attribute "${s}"`)()}}setConstantAttributes(t){for(let[r,s]of Object.entries(t)){let i=this._attributeInfos[r];i?this.vertexArray.setConstant(i.location,s):C.log.warn(`Model "${this.id}: Ignoring constant supplied for unknown attribute "${r}"`)()}}_setPipelineNeedsUpdate(t){this._pipelineNeedsUpdate=this._pipelineNeedsUpdate||t}_updatePipeline(){if(this._pipelineNeedsUpdate){this.pipeline&&C.log.log(1,`Model ${this.id}: Recreating pipeline because "${this._pipelineNeedsUpdate}".`)(),this._pipelineNeedsUpdate=!1;let t=this.device.createShader({id:`${this.id}-vertex`,stage:"vertex",source:this.vs}),r=this.fs?this.device.createShader({id:`${this.id}-fragment`,stage:"fragment",source:this.fs}):null;this.pipeline=this.device.createRenderPipeline({...this.props,bufferLayout:this.bufferLayout,topology:this.topology,parameters:this.parameters,vs:t,fs:r}),this._attributeInfos=(0,Ei.getAttributeInfosFromLayouts)(this.pipeline.shaderLayout,this.bufferLayout)}return this.pipeline}_logDrawCallStart(){let t=C.log.level>3?0:vo;C.log.level<2||Date.now()-this._lastLogTime<t||(this._lastLogTime=Date.now(),this._logOpen=!0,C.log.group($e,`>>> DRAWING MODEL ${this.id}`,{collapsed:C.log.level<=2})())}_logDrawCallEnd(){if(this._logOpen){let t=Ti(this.pipeline.shaderLayout,this.id);C.log.table($e,t)();let r=this.shaderInputs.getDebugTable();for(let[i,n]of Object.entries(this.uniforms))r[i]={value:n};C.log.table($e,r)();let s=this._getAttributeDebugTable();C.log.table($e,this._attributeInfos)(),C.log.table($e,s)(),C.log.groupEnd($e)(),this._logOpen=!1}}_logFramebuffer(t){let r=C.log.get("framebuffer");if(this._drawCount++,!r||this._drawCount++>3&&this._drawCount%60)return;let s=t.props.framebuffer;s&&Ai(s,{id:s.id,minimap:!0})}_getAttributeDebugTable(){let t={};for(let[r,s]of Object.entries(this._attributeInfos))t[s.location]={name:r,type:s.shaderType,values:this._getBufferOrConstantValues(this.vertexArray.attributes[s.location],s.bufferDataType)};if(this.vertexArray.indexBuffer){let{indexBuffer:r}=this.vertexArray,s=r.indexType==="uint32"?new Uint32Array(r.debugData):new Uint16Array(r.debugData);t.indices={name:"indices",type:r.indexType,values:s.toString()}}return t}_getBufferOrConstantValues(t,r){let s=(0,Ie.getTypedArrayFromDataType)(r);return(t instanceof Ie.Buffer?new s(t.debugData):t).toString()}};Ne.defaultProps={...Ie.RenderPipeline.defaultProps,source:null,vs:null,fs:null,id:"unnamed",handle:void 0,userData:{},defines:{},modules:[],moduleSettings:void 0,geometry:null,indexBuffer:null,attributes:{},constantAttributes:{},varyings:[],shaderInputs:void 0,pipelineFactory:void 0,transformFeedback:void 0,shaderAssembler:te.getDefaultShaderAssembler()};function bi(e,t){let r=[...e];for(let s of t){let i=r.findIndex(n=>n.name===s.name);i<0?r.push(s):r[i]=s}return r}function No(e){return{type:e.info.type,shaderLanguage:e.info.shadingLanguage,shaderLanguageVersion:e.info.shadingLanguageVersion,gpu:e.info.gpu,features:e.features}}function Ri(e){var t;return e.attributes?(t=e.attributes)===null||t===void 0?void 0:t.map(r=>r.attribute):[e.name]}var Pe=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}(Pe||{});var Io="Failed to create WebGL context in Node.js, headless gl returned null",Co=" 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.",Oo={width:1,height:1,debug:!0,throwOnError:!1},us=null;function Si(){return us!==null}function mi(e){e={...Oo,...e};let{width:t,height:r,webgl1:s,webgl2:i}=e;if(i&&!s)throw new Error("headless-gl does not support WebGL2");if(!us)throw new Error(Co);let n=us(t,r,e);if(!n)throw new Error(Io);return n}var M=S(x(),1);function lt(e){if(typeof window<"u"&&typeof window.process=="object"&&window.process.type==="renderer"||typeof process<"u"&&typeof process.versions=="object"&&Boolean(process.versions.electron))return!0;let t=typeof navigator=="object"&&typeof navigator.userAgent=="string"&&navigator.userAgent,r=e||t;return!!(r&&r.indexOf("Electron")>=0)}function re(){return!(typeof process=="object"&&String(process)==="[object process]"&&!process.browser)||lt()}var Gc=globalThis.self||globalThis.window||globalThis.global,e_=globalThis.window||globalThis.self||globalThis.global,t_=globalThis.document||{},r_=globalThis.process||{},s_=globalThis.console,xi=globalThis.navigator||{};var ds=globalThis;function qt(e){if(!e&&!re())return"Node";if(lt(e))return"Electron";let t=e||xi.userAgent||"";if(t.indexOf("Edge")>-1)return"Edge";let r=t.indexOf("MSIE ")!==-1,s=t.indexOf("Trident/")!==-1;return r||s?"IE":ds.chrome?"Chrome":ds.safari?"Safari":ds.mozInnerScreenX?"Firefox":"Unknown"}var Mi=S(x(),1);var ct={};function Fo(e){globalThis.console&&globalThis.console.error&&globalThis.console.error(e)}function Mo(e){globalThis.console&&globalThis.console.log&&globalThis.console.log(e)}function Bo(e,t){ct[e]=!0,t!==void 0&&Fo(t)}function Do(e){let t=e.getError;e.getError=function(){let s;do s=t.apply(e),s!==0&&(ct[s]=!0);while(s!==0);for(s in ct)if(ct[s])return delete ct[s],parseInt(s,10);return 0}}var _t=function e(t){let r=t.gl;this.ext=t,this.isAlive=!0,this.hasBeenBound=!1,this.elementArrayBuffer=null,this.attribs=new Array(t.maxVertexAttribs);for(let s=0;s<this.attribs.length;s++){let i=new e.VertexAttrib(r);this.attribs[s]=i}this.maxAttrib=0};_t.VertexAttrib=function(t){this.enabled=!1,this.buffer=null,this.size=4,this.type=5126,this.normalized=!1,this.stride=16,this.offset=0,this.cached="",this.recache()};_t.VertexAttrib.prototype.recache=function(){this.cached=[this.size,this.type,this.normalized,this.stride,this.offset].join(":")};var Ue=function(t){let r=this;this.gl=t,Do(t);let s=this.original={getParameter:t.getParameter,enableVertexAttribArray:t.enableVertexAttribArray,disableVertexAttribArray:t.disableVertexAttribArray,bindBuffer:t.bindBuffer,getVertexAttrib:t.getVertexAttrib,vertexAttribPointer:t.vertexAttribPointer};t.getParameter=function(n){return n===r.VERTEX_ARRAY_BINDING_OES?r.currentVertexArrayObject===r.defaultVertexArrayObject?null:r.currentVertexArrayObject:s.getParameter.apply(this,arguments)},t.enableVertexAttribArray=function(n){let o=r.currentVertexArrayObject;o.maxAttrib=Math.max(o.maxAttrib,n);let a=o.attribs[n];return a.enabled=!0,s.enableVertexAttribArray.apply(this,arguments)},t.disableVertexAttribArray=function(n){let o=r.currentVertexArrayObject;o.maxAttrib=Math.max(o.maxAttrib,n);let a=o.attribs[n];return a.enabled=!1,s.disableVertexAttribArray.apply(this,arguments)},t.bindBuffer=function(n,o){switch(n){case 34962:r.currentArrayBuffer=o;break;case 34963:r.currentVertexArrayObject.elementArrayBuffer=o;break;default:}return s.bindBuffer.apply(this,arguments)},t.getVertexAttrib=function(n,o){let c=r.currentVertexArrayObject.attribs[n];switch(o){case 34975:return c.buffer;case 34338:return c.enabled;case 34339:return c.size;case 34340:return c.stride;case 34341:return c.type;case 34922:return c.normalized;default:return s.getVertexAttrib.apply(this,arguments)}},t.vertexAttribPointer=function(n,o,a,c,_,d){let h=r.currentVertexArrayObject;h.maxAttrib=Math.max(h.maxAttrib,n);let p=h.attribs[n];return p.buffer=r.currentArrayBuffer,p.size=o,p.type=a,p.normalized=c,p.stride=_,p.offset=d,p.recache(),s.vertexAttribPointer.apply(this,arguments)},t.instrumentExtension&&t.instrumentExtension(this,"OES_vertex_array_object"),t.canvas&&t.canvas.addEventListener("webglcontextrestored",()=>{Mo("OESVertexArrayObject emulation library context restored"),r.reset_()},!0),this.reset_()};Ue.prototype.VERTEX_ARRAY_BINDING_OES=34229;Ue.prototype.reset_=function(){if(this.vertexArrayObjects!==void 0)for(let s=0;s<this.vertexArrayObjects.length;++s)this.vertexArrayObjects.isAlive=!1;let r=this.gl;this.maxVertexAttribs=r.getParameter(34921),this.defaultVertexArrayObject=new _t(this),this.currentVertexArrayObject=null,this.currentArrayBuffer=null,this.vertexArrayObjects=[this.defaultVertexArrayObject],this.bindVertexArrayOES(null)};Ue.prototype.createVertexArrayOES=function(){let t=new _t(this);return this.vertexArrayObjects.push(t),t};Ue.prototype.deleteVertexArrayOES=function(t){t.isAlive=!1,this.vertexArrayObjects.splice(this.vertexArrayObjects.indexOf(t),1),this.currentVertexArrayObject===t&&this.bindVertexArrayOES(null)};Ue.prototype.isVertexArrayOES=function(t){return!!(t&&t instanceof _t&&t.hasBeenBound&&t.ext===this)};Ue.prototype.bindVertexArrayOES=function(t){let r=this.gl;if(t&&!t.isAlive){Bo(1282,"bindVertexArrayOES: attempt to bind deleted arrayObject");return}let s=this.original,i=this.currentVertexArrayObject;this.currentVertexArrayObject=t||this.defaultVertexArrayObject,this.currentVertexArrayObject.hasBeenBound=!0;let n=this.currentVertexArrayObject;if(i===n)return;(!i||n.elementArrayBuffer!==i.elementArrayBuffer)&&s.bindBuffer.call(r,34963,n.elementArrayBuffer);let o=this.currentArrayBuffer,a=Math.max(i?i.maxAttrib:0,n.maxAttrib);for(let c=0;c<=a;c++){let _=n.attribs[c],d=i?i.attribs[c]:null;if((!i||_.enabled!==d.enabled)&&(_.enabled?s.enableVertexAttribArray.call(r,c):s.disableVertexAttribArray.call(r,c)),_.enabled){let h=!1;(!i||_.buffer!==d.buffer)&&(o!==_.buffer&&(s.bindBuffer.call(r,34962,_.buffer),o=_.buffer),h=!0),(h||_.cached!==d.cached)&&s.vertexAttribPointer.call(r,c,_.size,_.type,_.normalized,_.stride,_.offset)}}this.currentArrayBuffer!==o&&s.bindBuffer.call(r,34962,this.currentArrayBuffer)};function yi(e){if(typeof e.createVertexArray=="function")return;let t=e.getSupportedExtensions;e.getSupportedExtensions=function(){let i=t.call(this)||[];return i.indexOf("OES_vertex_array_object")<0&&i.push("OES_vertex_array_object"),i};let r=e.getExtension;e.getExtension=function(i){let n=r.call(this,i);return n||(i!=="OES_vertex_array_object"?null:(e.__OESVertexArrayObject||(this.__OESVertexArrayObject=new Ue(this)),this.__OESVertexArrayObject))}}var ke=S(x(),1);var wi=S(x(),1),Po="Invalid WebGLRenderingContext";function Uo(e){return typeof WebGLRenderingContext<"u"&&e instanceof WebGLRenderingContext||typeof WebGL2RenderingContext<"u"&&e instanceof WebGL2RenderingContext?!0:Boolean(e&&Number.isFinite(e._version))}function m(e){return typeof WebGL2RenderingContext<"u"&&e instanceof WebGL2RenderingContext?!0:Boolean(e&&e._version===2)}function hs(e){return m(e)?e:null}function vi(e){return(0,wi.assert)(Uo(e),Po),e}var Ni="OES_element_index",Ii="WEBGL_draw_buffers",ko="EXT_disjoint_timer_query",Wo="EXT_disjoint_timer_query_webgl2",Xo="EXT_texture_filter_anisotropic",Ci="WEBGL_debug_renderer_info",Ho=35723,Vo=4352,Ko=36795,jo=34047,zo=37445,Yo=37446,O=e=>m(e)?void 0:0,$o={[3074]:e=>m(e)?void 0:36064,[Ho]:e=>m(e)?void 0:Vo,[35977]:O,[32937]:O,[Ko]:(e,t)=>{let r=m(e)?e.getExtension(Wo):e.getExtension(ko);return r&&r.GPU_DISJOINT_EXT?t(r.GPU_DISJOINT_EXT):0},[zo]:(e,t)=>{let r=e.getExtension(Ci);return t(r&&r.UNMASKED_VENDOR_WEBGL||7936)},[Yo]:(e,t)=>{let r=e.getExtension(Ci);return t(r&&r.UNMASKED_RENDERER_WEBGL||7937)},[jo]:(e,t)=>{var r;let s=((r=e.luma)===null||r===void 0||(r=r.extensions)===null||r===void 0?void 0:r[Xo])||e.getExtension("EXT_texture_filter_anisotropic");return s?t(s.MAX_TEXTURE_MAX_ANISOTROPY_EXT):1},[32883]:O,[35071]:O,[37447]:O,[36063]:(e,t)=>{if(!m(e)){let r=e.getExtension(Ii);return r?t(r.MAX_COLOR_ATTACHMENTS_WEBGL):0}},[35379]:O,[35374]:O,[35377]:O,[34852]:e=>{if(!m(e)){let t=e.getExtension(Ii);return t?t.MAX_DRAW_BUFFERS_WEBGL:0}},[36203]:e=>e.getExtension(Ni)?2147483647:65535,[33001]:e=>e.getExtension(Ni)?16777216:65535,[33e3]:e=>16777216,[37157]:O,[35373]:O,[35657]:O,[36183]:O,[37137]:O,[34045]:O,[35978]:O,[35979]:O,[35968]:O,[35376]:O,[35375]:O,[35659]:O,[37154]:O,[35371]:O,[35658]:O,[35076]:O,[35077]:O,[35380]:O};function Oi(e,t,r){let s=$o[r],i=typeof s=="function"?s(e,t,r):s;return i!==void 0?i:t(r)}function Le(e){if(!e.luma){let r={_polyfilled:!1,_extensions:{}};e.luma=r}return e.luma}var Lo="OES_vertex_array_object",Fi="ANGLE_instanced_arrays",qo="WEBGL_draw_buffers",Zo="EXT_disjoint_timer_query",Jo="EXT_texture_filter_anisotropic",Qo="VertexArray requires WebGL2 or OES_vertex_array_object extension";function Go(e,t){return{webgl2:m(e),ext:e.getExtension(t)}}var gs={[Lo]:{meta:{suffix:"OES"},createVertexArray:()=>{(0,ke.assert)(!1,Qo)},deleteVertexArray:()=>{},bindVertexArray:()=>{},isVertexArray:()=>!1},[Fi]:{meta:{suffix:"ANGLE"},vertexAttribDivisor(e,t){(0,ke.assert)(t===0,"WebGL instanced rendering not supported")},drawElementsInstanced:()=>{},drawArraysInstanced:()=>{}},[qo]:{meta:{suffix:"WEBGL"},drawBuffers:()=>{(0,ke.assert)(!1)}},[Zo]:{meta:{suffix:"EXT"},createQuery:()=>{(0,ke.assert)(!1)},deleteQuery:()=>{(0,ke.assert)(!1)},beginQuery:()=>{(0,ke.assert)(!1)},endQuery:()=>{},getQuery(e,t){return this.getQueryObject(e,t)},getQueryParameter(e,t){return this.getQueryObject(e,t)},getQueryObject:(e,t)=>{}}},Zt={readBuffer:(e,t,r)=>{m(e)&&t(r)},getVertexAttrib:(e,t,r,s)=>{let{webgl2:i,ext:n}=Go(e,Fi),o;switch(s){case 35069:o=i?void 0:!1;break;case 35070:o=!i&&!n?0:void 0;break;default:}return o!==void 0?o:t(r,s)},getProgramParameter:(e,t,r,s)=>{if(!m(e))switch(s){case 35967:return 35981;case 35971:return 0;case 35382:return 0;default:}return t(r,s)},getInternalformatParameter:(e,t,r,s,i)=>{if(!m(e))switch(i){case 32937:return new Int32Array([0]);default:}return e.getInternalformatParameter(r,s,i)},getTexParameter(e,t,r,s){switch(s){case 34046:let i=Le(e),{_extensions:n}=i,o=n[Jo];s=o&&o.TEXTURE_MAX_ANISOTROPY_EXT||34046;break;default:}return t(r,s)},getParameter:Oi,hint(e,t,r,s){return t(r,s)}};function Bi(e){let t=Le(e);return t._polyfilled||(yi(e),ea(e),ta(e,gs),sa(e,{target:t,target2:e}),t._polyfilled=!0),e}function ea(e){let t=Le(e),r=e.getSupportedExtensions()||[],s=["WEBGL_polygon_mode"];for(let i of r)if(!s.includes(i)){let n=e.getExtension(i);t._extensions[i]=n}}function ta(e,t){let r=Le(e);for(let s of Object.getOwnPropertyNames(t))s!=="overrides"&&ra(e,{extension:s,target:r,target2:e})}function ra(e,t){let{extension:r,target:s,target2:i}=t,n=gs[r];(0,Mi.assert)(n);let{meta:o={}}=n,{suffix:a=""}=o,c=e.getExtension(r);for(let _ of Object.keys(n)){let d=`${_}${a}`,h=null;_==="meta"||typeof e[_]=="function"||(c&&typeof c[d]=="function"?h=function(){return c[d](...arguments)}:typeof n[_]=="function"&&(h=n[_].bind(s))),h&&(s[_]=h,i[_]=h)}}function sa(e,t){let{target:r,target2:s}=t;Object.keys(Zt).forEach(i=>{if(typeof Zt[i]=="function"){let n=e[i]?e[i].bind(e):()=>{},o=Zt[i].bind(null,e,n);r[i]=o,s[i]=o}})}var ut=S(x(),1);var Jt={[3042]:!1,[32773]:new Float32Array([0,0,0,0]),[32777]:32774,[34877]:32774,[32969]:1,[32968]:0,[32971]:1,[32970]:0,[3106]:new Float32Array([0,0,0,0]),[3107]:[!0,!0,!0,!0],[2884]:!1,[2885]:1029,[2929]:!1,[2931]:1,[2932]:513,[2928]:new Float32Array([0,1]),[2930]:!0,[3024]:!0,[35725]:null,[36006]:null,[36007]:null,[34229]:null,[34964]:null,[2886]:2305,[33170]:4352,[2849]:1,[32823]:!1,[32824]:0,[10752]:0,[32926]:!1,[32928]:!1,[32938]:1,[32939]:!1,[3089]:!1,[3088]:new Int32Array([0,0,1024,1024]),[2960]:!1,[2961]:0,[2968]:4294967295,[36005]:4294967295,[2962]:519,[2967]:0,[2963]:4294967295,[34816]:519,[36003]:0,[36004]:4294967295,[2964]:7680,[2965]:7680,[2966]:7680,[34817]:7680,[34818]:7680,[34819]:7680,[2978]:[0,0,1024,1024],[3333]:4,[3317]:4,[37440]:!1,[37441]:!1,[37443]:37444,[36389]:null,[36662]:null,[36663]:null,[35053]:null,[35055]:null,[35723]:4352,[36010]:null,[35977]:!1,[3330]:0,[3332]:0,[3331]:0,[3314]:0,[32878]:0,[3316]:0,[3315]:0,[32877]:0},le=(e,t,r)=>t?e.enable(r):e.disable(r),Di=(e,t,r)=>e.hint(r,t),Z=(e,t,r)=>e.pixelStorei(r,t),Pi=(e,t,r)=>{let s;return r===36006?s=m(e)?36009:36160:s=36008,e.bindFramebuffer(s,t)},ft=(e,t,r)=>{let i={[34964]:34962,[36662]:36662,[36663]:36663,[35053]:35051,[35055]:35052}[r];e.bindBuffer(i,t)};function ps(e){return Array.isArray(e)||ArrayBuffer.isView(e)&&!(e instanceof DataView)}var Ui={[3042]:le,[32773]:(e,t)=>e.blendColor(...t),[32777]:"blendEquation",[34877]:"blendEquation",[32969]:"blendFunc",[32968]:"blendFunc",[32971]:"blendFunc",[32970]:"blendFunc",[3106]:(e,t)=>e.clearColor(...t),[3107]:(e,t)=>e.colorMask(...t),[2884]:le,[2885]:(e,t)=>e.cullFace(t),[2929]:le,[2931]:(e,t)=>e.clearDepth(t),[2932]:(e,t)=>e.depthFunc(t),[2928]:(e,t)=>e.depthRange(...t),[2930]:(e,t)=>e.depthMask(t),[3024]:le,[35723]:Di,[35725]:(e,t)=>e.useProgram(t),[36007]:(e,t)=>e.bindRenderbuffer(36161,t),[36389]:(e,t)=>{var r,s;return(r=(s=e).bindTransformFeedback)===null||r===void 0?void 0:r.call(s,36386,t)},[34229]:(e,t)=>e.bindVertexArray(t),[36006]:Pi,[36010]:Pi,[34964]:ft,[36662]:ft,[36663]:ft,[35053]:ft,[35055]:ft,[2886]:(e,t)=>e.frontFace(t),[33170]:Di,[2849]:(e,t)=>e.lineWidth(t),[32823]:le,[32824]:"polygonOffset",[10752]:"polygonOffset",[35977]:le,[32926]:le,[32928]:le,[32938]:"sampleCoverage",[32939]:"sampleCoverage",[3089]:le,[3088]:(e,t)=>e.scissor(...t),[2960]:le,[2961]:(e,t)=>e.clearStencil(t),[2968]:(e,t)=>e.stencilMaskSeparate(1028,t),[36005]:(e,t)=>e.stencilMaskSeparate(1029,t),[2962]:"stencilFuncFront",[2967]:"stencilFuncFront",[2963]:"stencilFuncFront",[34816]:"stencilFuncBack",[36003]:"stencilFuncBack",[36004]:"stencilFuncBack",[2964]:"stencilOpFront",[2965]:"stencilOpFront",[2966]:"stencilOpFront",[34817]:"stencilOpBack",[34818]:"stencilOpBack",[34819]:"stencilOpBack",[2978]:(e,t)=>e.viewport(...t),[3333]:Z,[3317]:Z,[37440]:Z,[37441]:Z,[37443]:Z,[3330]:Z,[3332]:Z,[3331]:Z,[3314]:Z,[32878]:Z,[3316]:Z,[3315]:Z,[32877]:Z,framebuffer:(e,t)=>{let r=t&&"handle"in t?t.handle:t;return e.bindFramebuffer(36160,r)},blend:(e,t)=>t?e.enable(3042):e.disable(3042),blendColor:(e,t)=>e.blendColor(...t),blendEquation:(e,t)=>{let r=typeof t=="number"?[t,t]:t;e.blendEquationSeparate(...r)},blendFunc:(e,t)=>{let r=t?.length===2?[...t,...t]:t;e.blendFuncSeparate(...r)},clearColor:(e,t)=>e.clearColor(...t),clearDepth:(e,t)=>e.clearDepth(t),clearStencil:(e,t)=>e.clearStencil(t),colorMask:(e,t)=>e.colorMask(...t),cull:(e,t)=>t?e.enable(2884):e.disable(2884),cullFace:(e,t)=>e.cullFace(t),depthTest:(e,t)=>t?e.enable(2929):e.disable(2929),depthFunc:(e,t)=>e.depthFunc(t),depthMask:(e,t)=>e.depthMask(t),depthRange:(e,t)=>e.depthRange(...t),dither:(e,t)=>t?e.enable(3024):e.disable(3024),derivativeHint:(e,t)=>{e.hint(35723,t)},frontFace:(e,t)=>e.frontFace(t),mipmapHint:(e,t)=>e.hint(33170,t),lineWidth:(e,t)=>e.lineWidth(t),polygonOffsetFill:(e,t)=>t?e.enable(32823):e.disable(32823),polygonOffset:(e,t)=>e.polygonOffset(...t),sampleCoverage:(e,t)=>e.sampleCoverage(...t),scissorTest:(e,t)=>t?e.enable(3089):e.disable(3089),scissor:(e,t)=>e.scissor(...t),stencilTest:(e,t)=>t?e.enable(2960):e.disable(2960),stencilMask:(e,t)=>{t=ps(t)?t:[t,t];let[r,s]=t;e.stencilMaskSeparate(1028,r),e.stencilMaskSeparate(1029,s)},stencilFunc:(e,t)=>{t=ps(t)&&t.length===3?[...t,...t]:t;let[r,s,i,n,o,a]=t;e.stencilFuncSeparate(1028,r,s,i),e.stencilFuncSeparate(1029,n,o,a)},stencilOp:(e,t)=>{t=ps(t)&&t.length===3?[...t,...t]:t;let[r,s,i,n,o,a]=t;e.stencilOpSeparate(1028,r,s,i),e.stencilOpSeparate(1029,n,o,a)},viewport:(e,t)=>e.viewport(...t)};function B(e,t,r){return t[e]!==void 0?t[e]:r[e]}var ki={blendEquation:(e,t,r)=>e.blendEquationSeparate(B(32777,t,r),B(34877,t,r)),blendFunc:(e,t,r)=>e.blendFuncSeparate(B(32969,t,r),B(32968,t,r),B(32971,t,r),B(32970,t,r)),polygonOffset:(e,t,r)=>e.polygonOffset(B(32824,t,r),B(10752,t,r)),sampleCoverage:(e,t,r)=>e.sampleCoverage(B(32938,t,r),B(32939,t,r)),stencilFuncFront:(e,t,r)=>e.stencilFuncSeparate(1028,B(2962,t,r),B(2967,t,r),B(2963,t,r)),stencilFuncBack:(e,t,r)=>e.stencilFuncSeparate(1029,B(34816,t,r),B(36003,t,r),B(36004,t,r)),stencilOpFront:(e,t,r)=>e.stencilOpSeparate(1028,B(2964,t,r),B(2965,t,r),B(2966,t,r)),stencilOpBack:(e,t,r)=>e.stencilOpSeparate(1029,B(34817,t,r),B(34818,t,r),B(34819,t,r))},Ts={enable:(e,t)=>e({[t]:!0}),disable:(e,t)=>e({[t]:!1}),pixelStorei:(e,t,r)=>e({[t]:r}),hint:(e,t,r)=>e({[t]:r}),useProgram:(e,t)=>e({[35725]:t}),bindRenderbuffer:(e,t,r)=>e({[36007]:r}),bindTransformFeedback:(e,t,r)=>e({[36389]:r}),bindVertexArray:(e,t)=>e({[34229]:t}),bindFramebuffer:(e,t,r)=>{switch(t){case 36160:return e({[36006]:r,[36010]:r});case 36009:return e({[36006]:r});case 36008:return e({[36010]:r});default:return null}},bindBuffer:(e,t,r)=>{let s={[34962]:[34964],[36662]:[36662],[36663]:[36663],[35051]:[35053],[35052]:[35055]}[t];return s?e({[s]:r}):{valueChanged:!0}},blendColor:(e,t,r,s,i)=>e({[32773]:new Float32Array([t,r,s,i])}),blendEquation:(e,t)=>e({[32777]:t,[34877]:t}),blendEquationSeparate:(e,t,r)=>e({[32777]:t,[34877]:r}),blendFunc:(e,t,r)=>e({[32969]:t,[32968]:r,[32971]:t,[32970]:r}),blendFuncSeparate:(e,t,r,s,i)=>e({[32969]:t,[32968]:r,[32971]:s,[32970]:i}),clearColor:(e,t,r,s,i)=>e({[3106]:new Float32Array([t,r,s,i])}),clearDepth:(e,t)=>e({[2931]:t}),clearStencil:(e,t)=>e({[2961]:t}),colorMask:(e,t,r,s,i)=>e({[3107]:[t,r,s,i]}),cullFace:(e,t)=>e({[2885]:t}),depthFunc:(e,t)=>e({[2932]:t}),depthRange:(e,t,r)=>e({[2928]:new Float32Array([t,r])}),depthMask:(e,t)=>e({[2930]:t}),frontFace:(e,t)=>e({[2886]:t}),lineWidth:(e,t)=>e({[2849]:t}),polygonOffset:(e,t,r)=>e({[32824]:t,[10752]:r}),sampleCoverage:(e,t,r)=>e({[32938]:t,[32939]:r}),scissor:(e,t,r,s,i)=>e({[3088]:new Int32Array([t,r,s,i])}),stencilMask:(e,t)=>e({[2968]:t,[36005]:t}),stencilMaskSeparate:(e,t,r)=>e({[t===1028?2968:36005]:r}),stencilFunc:(e,t,r,s)=>e({[2962]:t,[2967]:r,[2963]:s,[34816]:t,[36003]:r,[36004]:s}),stencilFuncSeparate:(e,t,r,s,i)=>e({[t===1028?2962:34816]:r,[t===1028?2967:36003]:s,[t===1028?2963:36004]:i}),stencilOp:(e,t,r,s)=>e({[2964]:t,[2965]:r,[2966]:s,[34817]:t,[34818]:r,[34819]:s}),stencilOpSeparate:(e,t,r,s,i)=>e({[t===1028?2964:34817]:r,[t===1028?2965:34818]:s,[t===1028?2966:34819]:i}),viewport:(e,t,r,s,i)=>e({[2978]:[t,r,s,i]})},ce=(e,t)=>e.isEnabled(t),As={[3042]:ce,[2884]:ce,[2929]:ce,[3024]:ce,[32823]:ce,[32926]:ce,[32928]:ce,[3089]:ce,[2960]:ce,[35977]:ce},Wi=new Set([34016,36388,36387,35983,35368,34965,35739,35738,3074,34853,34854,34855,34856,34857,34858,34859,34860,34861,34862,34863,34864,34865,34866,34867,34868,35097,32873,35869,32874,34068]);function be(e,t){let s=H.attach(e).gl;if(ia(t))return;let i={};for(let o in t){let a=Number(o),c=Ui[o];c&&(typeof c=="string"?i[c]=!0:c(s,t[o],a))}let n=s.state&&s.state.cache;if(n)for(let o in i){let a=ki[o];a(s,t,n)}}function Xi(e){let t=arguments.length>1&&arguments[1]!==void 0?arguments[1]:Jt,s=H.attach(e).gl;if(typeof t=="number"){let o=t,a=As[o];return a?a(s,o):s.getParameter(o)}let i=Array.isArray(t)?t:Object.keys(t),n={};for(let o of i){let a=As[o];n[o]=a?a(s,Number(o)):s.getParameter(Number(o))}return n}function ia(e){for(let t in e)return!1;return!0}function Hi(e,t){if(e===t)return!0;let r=Array.isArray(e)||ArrayBuffer.isView(e),s=Array.isArray(t)||ArrayBuffer.isView(t);if(r&&s&&e.length===t.length){for(let i=0;i<e.length;++i)if(e[i]!==t[i])return!1;return!0}return!1}var bs=class{constructor(t){let{copyState:r=!1,log:s=()=>{}}=arguments.length>1&&arguments[1]!==void 0?arguments[1]:{};this.gl=void 0,this.program=null,this.stateStack=[],this.enable=!0,this.cache=void 0,this.log=void 0,this.gl=t,this.cache=r?Xi(t):Object.assign({},Jt),this.log=s,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,ut.assert)(this.stateStack.length>0);let t=this.stateStack[this.stateStack.length-1];be(this.gl,t),this.stateStack.pop()}_updateCache(t){let r=!1,s,i=this.stateStack.length>0?this.stateStack[this.stateStack.length-1]:null;for(let n in t){(0,ut.assert)(n!==void 0);let o=t[n],a=this.cache[n];Hi(o,a)||(r=!0,s=a,i&&!(n in i)&&(i[n]=a),this.cache[n]=o)}return{valueChanged:r,oldValue:s}}};function We(e){return e.state}function Rs(e,t){let{enable:r=!0,copyState:s}=t;if((0,ut.assert)(s!==void 0),!e.state){e.state=new bs(e,{copyState:s}),oa(e);for(let n in Ts){let o=Ts[n];na(e,n,o)}Vi(e,"getParameter"),Vi(e,"isEnabled")}let i=We(e);return i.enable=r,e}function Ce(e){let t=We(e);t||(Rs(e,{copyState:!1}),t=We(e)),t.push()}function Re(e){let t=We(e);(0,ut.assert)(t),t.pop()}function Vi(e,t){let r=e[t].bind(e);e[t]=function(i){if(i===void 0||Wi.has(i))return r(i);let n=We(e);return i in n.cache||(n.cache[i]=r(i)),n.enable?n.cache[i]:r(i)},Object.defineProperty(e[t],"name",{value:`${t}-from-cache`,configurable:!1})}function na(e,t,r){if(!e[t])return;let s=e[t].bind(e);e[t]=function(){let n=We(e);for(var o=arguments.length,a=new Array(o),c=0;c<o;c++)a[c]=arguments[c];let{valueChanged:_,oldValue:d}=r(n._updateCache,...a);return _&&s(...a),d},Object.defineProperty(e[t],"name",{value:`${t}-to-cache`,configurable:!1})}function oa(e){let t=e.useProgram.bind(e);e.useProgram=function(s){let i=We(e);i.program!==s&&(t(s),i.program=s)}}var aa={webgl2:!0,webgl1:!0,powerPreference:"high-performance",onContextLost:()=>console.error("WebGL context lost"),onContextRestored:()=>console.info("WebGL context restored")};function Ki(e,t){t={...aa,...t};let r=null,s=n=>r=n.statusMessage||r;e.addEventListener("webglcontextcreationerror",s,!1);let i=null;if(t.type==="webgl2"&&(t={...t,webgl1:!1}),t.type==="webgl1"&&(t={...t,webgl2:!1}),!i&&t.webgl2&&(i=e.getContext("webgl2",t)),!i&&t.webgl1&&(i=e.getContext("webgl",t)),e.removeEventListener("webglcontextcreationerror",s,!1),!i)throw new Error(`Failed to create ${t.webgl2&&!t.webgl1?"WebGL2":"WebGL"} context: ${r||"Unknown error"}`);if(t.onContextLost){let{onContextLost:n}=t;e.addEventListener("webglcontextlost",o=>n(o),!1)}if(t.onContextRestored){let{onContextRestored:n}=t;e.addEventListener("webglcontextrestored",o=>n(o),!1)}return i}function ji(e){let t=e.getParameter(7936),r=e.getParameter(7937),s=e.getExtension("WEBGL_debug_renderer_info"),i=e.getParameter(s?s.UNMASKED_VENDOR_WEBGL:7936),n=e.getParameter(s?s.UNMASKED_RENDERER_WEBGL:7937),o=i||t,a=n||r,c=e.getParameter(7938),_=zi(o,a),d=la(o,a),h=ca(o,a),p="glsl",A=m(e)?300:100;return{type:m(e)?"webgl2":"webgl",gpu:_,gpuType:h,gpuBackend:d,vendor:o,renderer:a,version:c,shadingLanguage:p,shadingLanguageVersion:A}}function zi(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 la(e,t){return/Metal/i.exec(e)||/Metal/i.exec(t)?"metal":/ANGLE/i.exec(e)||/ANGLE/i.exec(t)?"opengl":"unknown"}function ca(e,t){if(/SwiftShader/i.exec(e)||/SwiftShader/i.exec(t))return"cpu";switch(zi(e,t)){case"intel":return"integrated";case"software":return"cpu";case"unknown":return"unknown";default:return"discrete"}}function Yi(){let e=arguments.length>0&&arguments[0]!==void 0?arguments[0]:{},t=typeof window<"u"?window.navigator||{}:{},r=e.userAgent||t.userAgent||"",s=r.indexOf("MSIE ")!==-1,i=r.indexOf("Trident/")!==-1;return s||i}var ms=S(x(),1);function Qt(e){switch(e){case"uint8":return 5121;case"sint8":return 5120;case"unorm8":return 5121;case"snorm8":return 5120;case"uint16":return 5123;case"sint16":return 5122;case"unorm16":return 5123;case"snorm16":return 5122;case"uint32":return 5125;case"sint32":return 5124;case"float16":return 5131;case"float32":return 5126}throw new Error(String(e))}var j="texture-compression-bc",I="texture-compression-astc",_e="texture-compression-etc2",_a="texture-compression-etc1-webgl",Gt="texture-compression-pvrtc-webgl",Es="texture-compression-atc-webgl",dt="WEBGL_compressed_texture_s3tc",ht="WEBGL_compressed_texture_s3tc_srgb",qe="EXT_texture_compression_rgtc",gt="EXT_texture_compression_bptc",fa="WEBGL_compressed_texture_etc",ua="WEBGL_compressed_texture_astc",da="WEBGL_compressed_texture_etc1",ha="WEBGL_compressed_texture_pvrtc",ga="WEBGL_compressed_texture_atc",$i="EXT_sRGB",Ee="EXT_texture_norm16",pa="WEBGL_color_buffer_float",Ta="EXT_color_buffer_float",se=(e,t)=>e.getExtension(t),Xe=(e,t)=>t.every(r=>e.getExtension(r)),Ss={"texture-blend-float-webgl1":e=>m(e)?!0:se(e,"EXT_float_blend"),"texture-formats-srgb-webgl1":e=>m(e)?!0:se(e,$i),"texture-formats-depth-webgl1":e=>m(e)?!0:se(e,"WEBGL_depth_texture"),"texture-formats-float32-webgl1":e=>m(e)?!0:se(e,"OES_texture_float"),"texture-formats-float16-webgl1":e=>m(e)?!0:se(e,"OES_texture_half_float"),"texture-formats-norm16-webgl":e=>m(e)?se(e,Ee):!1,"texture-filter-linear-float32-webgl":e=>se(e,"OES_texture_float_linear"),"texture-filter-linear-float16-webgl":e=>se(e,"OES_texture_half_float_linear"),"texture-filter-anisotropic-webgl":e=>se(e,"EXT_texture_filter_anisotropic"),"texture-renderable-float32-webgl":e=>se(e,"EXT_color_buffer_float"),"texture-renderable-float16-webgl":e=>se(e,"EXT_color_buffer_half_float"),"texture-compression-bc":e=>Xe(e,[dt,ht,qe,gt]),"texture-compression-bc5-webgl":e=>Xe(e,[qe]),"texture-compression-etc2":e=>Xe(e,[fa]),"texture-compression-astc":e=>Xe(e,[ua]),"texture-compression-etc1-webgl":e=>Xe(e,[da]),"texture-compression-pvrtc-webgl":e=>Xe(e,[ha]),"texture-compression-atc-webgl":e=>Xe(e,[ga])};function Aa(e,t){var r;return((r=Ss[t])===null||r===void 0?void 0:r.call(Ss,e))||!1}function Li(e){return Object.keys(Ss).filter(r=>Aa(e,r))}var pt={"rgb8unorm-unsized":{gl:6407,gl1:6407,b:4,c:2,bpp:4,dataFormat:6407,types:[5121,33635]},"rgba8unorm-unsized":{gl:6408,gl1:6408,b:4,c:2,bpp:4,dataFormat:6408,types:[5121,32819,32820]},r8unorm:{gl:33321,b:1,c:1,renderbuffer:!0},r8snorm:{gl:36756,b:1,c:1},r8uint:{gl:33330,b:1,c:1,renderbuffer:!0},r8sint:{gl:33329,b:1,c:1,renderbuffer:!0},rg8unorm:{gl:33323,b:2,c:2,renderbuffer:!0},rg8snorm:{gl:36757,b:2,c:2},rg8uint:{gl:33336,b:2,c:2,renderbuffer:!0},rg8sint:{gl:33335,b:2,c:2,renderbuffer:!0},r16uint:{gl:33332,b:2,c:1,renderbuffer:!0},r16sint:{gl:33331,b:2,c:1,renderbuffer:!0},r16float:{gl:33325,b:2,c:1,render:"texture-renderable-float16-webgl",filter:"texture-filter-linear-float16-webgl",renderbuffer:!0},"r16unorm-webgl":{gl:33322,b:2,c:1,f:"texture-formats-norm16-webgl",renderbuffer:!0,x:Ee},"r16snorm-webgl":{gl:36760,b:2,c:1,f:"texture-formats-norm16-webgl",x:Ee},"rgba4unorm-webgl":{gl:32854,b:2,c:4,wgpu:!1,renderbuffer:!0},"rgb565unorm-webgl":{gl:36194,b:2,c:4,wgpu:!1,renderbuffer:!0},"rgb5a1unorm-webgl":{gl:32855,b:2,c:4,wgpu:!1,renderbuffer:!0},"rgb8unorm-webgl":{gl:32849,b:3,c:3,wgpu:!1},"rgb8snorm-webgl":{gl:36758,b:3,c:3,wgpu:!1},rgba8unorm:{gl:32856,gl1:6408,b:4,c:2,bpp:4},"rgba8unorm-srgb":{gl:35907,gl1:35906,b:4,c:4,gl1ext:$i,bpp:4},rgba8snorm:{gl:36759,b:4,c:4},rgba8uint:{gl:36220,b:4,c:4,bpp:4},rgba8sint:{gl:36238,b:4,c:4,bpp:4},bgra8unorm:{b:4,c:4},"bgra8unorm-srgb":{b:4,c:4},rg16uint:{gl:33338,b:4,c:1,bpp:4},rg16sint:{gl:33337,b:4,c:2,bpp:4},rg16float:{gl:33327,bpp:4,b:4,c:2,render:"texture-renderable-float16-webgl",filter:"texture-filter-linear-float16-webgl",renderbuffer:!0},"rg16unorm-webgl":{gl:33324,b:2,c:2,f:"texture-formats-norm16-webgl",x:Ee},"rg16snorm-webgl":{gl:36761,b:2,c:2,f:"texture-formats-norm16-webgl",x:Ee},r32uint:{gl:33334,b:4,c:1,bpp:4,renderbuffer:!0},r32sint:{gl:33333,b:4,c:1,bpp:4,renderbuffer:!0},r32float:{gl:33326,bpp:4,b:4,c:1,render:"texture-renderable-float32-webgl",filter:"texture-filter-linear-float32-webgl"},rgb9e5ufloat:{gl:35901,b:4,c:3,p:1,render:"texture-renderable-float16-webgl",filter:"texture-filter-linear-float16-webgl"},rg11b10ufloat:{gl:35898,b:4,c:3,p:1,render:"texture-renderable-float32-webgl",renderbuffer:!0},rgb10a2unorm:{gl:32857,b:4,c:4,p:1,renderbuffer:!0},"rgb10a2unorm-webgl":{b:4,c:4,gl:36975,p:1,wgpu:!1,bpp:4,renderbuffer:!0},"rgb16unorm-webgl":{gl:32852,b:2,c:3,f:"texture-formats-norm16-webgl",x:Ee},"rgb16snorm-webgl":{gl:36762,b:2,c:3,f:"texture-formats-norm16-webgl",x:Ee},rg32uint:{gl:33340,b:8,c:2,renderbuffer:!0},rg32sint:{gl:33339,b:8,c:2,renderbuffer:!0},rg32float:{gl:33328,b:8,c:2,render:"texture-renderable-float32-webgl",filter:"texture-filter-linear-float32-webgl",renderbuffer:!0},rgba16uint:{gl:36214,b:8,c:4,renderbuffer:!0},rgba16sint:{gl:36232,b:8,c:4,renderbuffer:!0},rgba16float:{gl:34842,gl1:6408,b:8,c:4,render:"texture-renderable-float16-webgl",filter:"texture-filter-linear-float16-webgl"},"rgba16unorm-webgl":{gl:32859,b:2,c:4,f:"texture-formats-norm16-webgl",renderbuffer:!0,x:Ee},"rgba16snorm-webgl":{gl:36763,b:2,c:4,f:"texture-formats-norm16-webgl",x:Ee},"rgb32float-webgl":{gl:34837,gl1:6407,render:"texture-renderable-float32-webgl",filter:"texture-filter-linear-float32-webgl",gl2ext:Ta,gl1ext:pa,dataFormat:6407,types:[5126]},rgba32uint:{gl:36208,b:16,c:4,renderbuffer:!0},rgba32sint:{gl:36226,b:16,c:4,renderbuffer:!0},rgba32float:{gl:34836,b:16,c:4,render:"texture-renderable-float32-webgl",filter:"texture-filter-linear-float32-webgl",renderbuffer:!0},stencil8:{gl:36168,gl1:36168,b:1,c:1,attachment:36128,renderbuffer:!0},depth16unorm:{gl:33189,gl1:33189,b:2,c:1,attachment:36096,renderbuffer:!0},depth24plus:{gl:33190,b:3,c:1,attachment:36096},depth32float:{gl:36012,b:4,c:1,attachment:36096,renderbuffer:!0},"depth24plus-stencil8":{gl:34041,gl1:34041,b:4,c:2,p:1,attachment:33306,renderbuffer:!0,depthTexture:!0},"depth24unorm-stencil8":{gl:35056,b:4,c:2,p:1,attachment:33306,renderbuffer:!0},"depth32float-stencil8":{gl:36013,b:5,c:2,p:1,attachment:33306,renderbuffer:!0},"bc1-rgb-unorm-webgl":{gl:33776,x:dt,f:j},"bc1-rgb-unorm-srgb-webgl":{gl:35916,x:ht,f:j},"bc1-rgba-unorm":{gl:33777,x:dt,f:j},"bc1-rgba-unorm-srgb":{gl:35916,x:ht,f:j},"bc2-rgba-unorm":{gl:33778,x:dt,f:j},"bc2-rgba-unorm-srgb":{gl:35918,x:ht,f:j},"bc3-rgba-unorm":{gl:33779,x:dt,f:j},"bc3-rgba-unorm-srgb":{gl:35919,x:ht,f:j},"bc4-r-unorm":{gl:36283,x:qe,f:j},"bc4-r-snorm":{gl:36284,x:qe,f:j},"bc5-rg-unorm":{gl:36285,x:qe,f:j},"bc5-rg-snorm":{gl:36286,x:qe,f:j},"bc6h-rgb-ufloat":{gl:36495,x:gt,f:j},"bc6h-rgb-float":{gl:36494,x:gt,f:j},"bc7-rgba-unorm":{gl:36492,x:gt,f:j},"bc7-rgba-unorm-srgb":{gl:36493,x:gt,f:j},"etc2-rgb8unorm":{gl:37492,f:_e},"etc2-rgb8unorm-srgb":{gl:37494,f:_e},"etc2-rgb8a1unorm":{gl:37496,f:_e},"etc2-rgb8a1unorm-srgb":{gl:37497,f:_e},"etc2-rgba8unorm":{gl:37493,f:_e},"etc2-rgba8unorm-srgb":{gl:37495,f:_e},"eac-r11unorm":{gl:37488,f:_e},"eac-r11snorm":{gl:37489,f:_e},"eac-rg11unorm":{gl:37490,f:_e},"eac-rg11snorm":{gl:37491,f:_e},"astc-4x4-unorm":{gl:37808,f:I},"astc-4x4-unorm-srgb":{gl:37840,f:I},"astc-5x4-unorm":{gl:37809,f:I},"astc-5x4-unorm-srgb":{gl:37841,f:I},"astc-5x5-unorm":{gl:37810,f:I},"astc-5x5-unorm-srgb":{gl:37842,f:I},"astc-6x5-unorm":{gl:37811,f:I},"astc-6x5-unorm-srgb":{gl:37843,f:I},"astc-6x6-unorm":{gl:37812,f:I},"astc-6x6-unorm-srgb":{gl:37844,f:I},"astc-8x5-unorm":{gl:37813,f:I},"astc-8x5-unorm-srgb":{gl:37845,f:I},"astc-8x6-unorm":{gl:37814,f:I},"astc-8x6-unorm-srgb":{gl:37846,f:I},"astc-8x8-unorm":{gl:37815,f:I},"astc-8x8-unorm-srgb":{gl:37847,f:I},"astc-10x5-unorm":{gl:37819,f:I},"astc-10x5-unorm-srgb":{gl:37851,f:I},"astc-10x6-unorm":{gl:37817,f:I},"astc-10x6-unorm-srgb":{gl:37849,f:I},"astc-10x8-unorm":{gl:37818,f:I},"astc-10x8-unorm-srgb":{gl:37850,f:I},"astc-10x10-unorm":{gl:37819,f:I},"astc-10x10-unorm-srgb":{gl:37851,f:I},"astc-12x10-unorm":{gl:37820,f:I},"astc-12x10-unorm-srgb":{gl:37852,f:I},"astc-12x12-unorm":{gl:37821,f:I},"astc-12x12-unorm-srgb":{gl:37853,f:I},"pvrtc-rgb4unorm-webgl":{gl:35840,f:Gt},"pvrtc-rgba4unorm-webgl":{gl:35842,f:Gt},"pvrtc-rbg2unorm-webgl":{gl:35841,f:Gt},"pvrtc-rgba2unorm-webgl":{gl:35843,f:Gt},"etc1-rbg-unorm-webgl":{gl:36196,f:_a},"atc-rgb-unorm-webgl":{gl:35986,f:Es},"atc-rgba-unorm-webgl":{gl:35986,f:Es},"atc-rgbai-unorm-webgl":{gl:34798,f:Es}},ba={[6403]:1,[36244]:1,[33319]:2,[33320]:2,[6407]:3,[36248]:3,[6408]:4,[36249]:4,[6402]:1,[34041]:1,[6406]:1,[6409]:1,[6410]:2},Ra={[5126]:4,[5125]:4,[5124]:4,[5123]:2,[5122]:2,[5131]:2,[5120]:1,[5121]:1};function Tt(e,t){let r=At(t),s=pt[r];if(!s||(m(e)?s.gl===void 0:s.gl1===void 0))return!1;let i=s.x||m(e)&&s.gl2ext||s.gl1ext;return i?Boolean(e.getExtension(i)):!0}function qi(e,t){var r;return Tt(e,t)&&((r=pt[t])===null||r===void 0?void 0:r.renderbuffer)}function At(e){if(typeof e=="string")return e;let t=Object.entries(pt).find(r=>{let[,s]=r;return s.gl===e||s.gl1===e});if(!t)throw new Error(`Unknown texture format ${e}`);return t[0]}function bt(e,t){let r=pt[e],s=t?r?.gl:r?.gl1;if(s===void 0)throw new Error(`Unsupported texture format ${e}`);return s}function Zi(e,t){let r=At(t);if(!Tt(e,r))return!1;try{if((0,ms.decodeTextureFormat)(r).signed)return!1}catch{return!1}return r.endsWith("32float")?Boolean(e.getExtension("OES_texture_float_linear")):r.endsWith("16float")?Boolean(e.getExtension("OES_texture_half_float_linear")):!0}function Ji(e,t){let r=At(t);return!(!Tt(e,r)||typeof r=="number")}function Ze(e,t){let r=At(e),s=bt(r,t),i=(0,ms.decodeTextureFormat)(r);return{format:s,dataFormat:Ea(i.format,i.integer,i.normalized,s),type:i.dataType?Qt(i.dataType):5121,compressed:i.compressed}}function Qi(e){let t=pt[e];if(!(t!=null&&t.attachment))throw new Error(`${e} is not a depth stencil format`);return t.attachment}function Gi(e){let t=arguments.length>1&&arguments[1]!==void 0?arguments[1]:6408,r=arguments.length>2&&arguments[2]!==void 0?arguments[2]:6408,s=arguments.length>3&&arguments[3]!==void 0?arguments[3]:5121,i=null,n=null;try{i=e.createTexture(),e.bindTexture(3553,i);let o=0,a=1,c=1,_=0,d=new Uint8Array([0,0,255,255]);e.texImage2D(3553,o,t,a,c,_,r,s,d),n=e.createFramebuffer(),e.bindFramebuffer(36160,n),e.framebufferTexture2D(36160,36064,3553,i,0);let h=e.checkFramebufferStatus(36160)===36053;return e.bindTexture(3553,null),h}finally{e.deleteTexture(i),e.deleteFramebuffer(n)}}function Rt(e,t){let r=At(e),s=Ze(r,t),i=ba[s.dataFormat]||4,n=Ra[s.type]||1;return i*n}function Ea(e,t,r,s){if(s===6408||s===6407)return s;switch(e){case"r":return t&&!r?36244:6403;case"rg":return t&&!r?33320:33319;case"rgb":return t&&!r?36248:6407;case"rgba":return t&&!r?36249:6408;default:return 6408}}function en(e){let t=Sa(e);for(let r of Li(e))t.add(r);return t}function Sa(e){e.getExtension("EXT_color_buffer_float"),e.getExtension("WEBGL_color_buffer_float"),e.getExtension("EXT_float_blend");let t=new Set;for(let r of Object.keys(tn))ma(e,r)&&t.add(r);return t}function ma(e,t){let r=tn[t];if(!r)return!1;let[s,i]=r||[],n=m(e)?i:s;if(typeof n=="boolean")return n;switch(t){case"texture-renderable-rgba32float-webgl":return m(e)?Boolean(e.getExtension(n)):Gi(e);case"glsl-derivatives":return ys(e,n);case"glsl-frag-data":return ys(e,n,{behavior:"require"});case"glsl-frag-depth":return ys(e,n);default:return Boolean(e.getExtension(n))}}var xs={};function ys(e,t){let r=arguments.length>2&&arguments[2]!==void 0?arguments[2]:{};if(!Yi(r))return!0;if(t in xs)return xs[t];let s=r.behavior||"enable",i=`#extension GL_${t} : ${s}
137
+ void main(void) {}`,n=e.createShader(35633);if(!n)throw new Error("shader");e.shaderSource(n,i),e.compileShader(n);let o=e.getShaderParameter(n,35713);return e.deleteShader(n),xs[t]=o,o}var tn={webgl:[!0,!0],webgl2:[!1,!0],"timer-query-webgl":["EXT_disjoint_timer_query","EXT_disjoint_timer_query_webgl2"],"transform-feedback-webgl2":[!1,!0],"vertex-array-object-webgl1":["OES_vertex_array_object",!0],"instanced-rendering-webgl1":["ANGLE_instanced_arrays",!0],"multiple-render-targets-webgl1":["WEBGL_draw_buffers",!0],"index-uint32-webgl1":["OES_element_index_uint",!0],"blend-minmax-webgl1":["EXT_blend_minmax",!0],"texture-blend-float-webgl1":["EXT_float_blend","EXT_float_blend"],"texture-formats-srgb-webgl1":["EXT_sRGB",!0],"texture-formats-depth-webgl1":["WEBGL_depth_texture",!0],"texture-formats-float32-webgl1":["OES_texture_float",!0],"texture-formats-float16-webgl1":["OES_texture_half_float",!0],"texture-filter-linear-float32-webgl":["OES_texture_float_linear","OES_texture_float_linear"],"texture-filter-linear-float16-webgl":["OES_texture_half_float_linear","OES_texture_half_float_linear"],"texture-filter-anisotropic-webgl":["EXT_texture_filter_anisotropic","EXT_texture_filter_anisotropic"],"texture-renderable-rgba32float-webgl":["WEBGL_color_buffer_float","EXT_color_buffer_float"],"texture-renderable-float32-webgl":[!1,"EXT_color_buffer_float"],"texture-renderable-float16-webgl":["EXT_color_buffer_half_float","EXT_color_buffer_half_float"],"glsl-frag-data":["WEBGL_draw_buffers",!0],"glsl-frag-depth":["EXT_frag_depth",!0],"glsl-derivatives":["OES_standard_derivatives",!0],"glsl-texture-lod":["EXT_shader_texture_lod",!0]};function rn(e){let t=hs(e);return{maxTextureDimension1D:0,maxTextureDimension2D:e.getParameter(3379),maxTextureDimension3D:t?t.getParameter(32883):0,maxTextureArrayLayers:t?t.getParameter(35071):0,maxBindGroups:1,maxDynamicUniformBuffersPerPipelineLayout:0,maxDynamicStorageBuffersPerPipelineLayout:0,maxSampledTexturesPerShaderStage:e.getParameter(35660),maxSamplersPerShaderStage:e.getParameter(35661),maxStorageBuffersPerShaderStage:0,maxStorageTexturesPerShaderStage:0,maxUniformBuffersPerShaderStage:t?t.getParameter(35375):0,maxUniformBufferBindingSize:t?t.getParameter(35376):0,maxStorageBufferBindingSize:0,minUniformBufferOffsetAlignment:t?t.getParameter(35380):0,minStorageBufferOffsetAlignment:0,maxVertexBuffers:0,maxVertexAttributes:e.getParameter(34921),maxVertexBufferArrayStride:2048,maxInterStageShaderComponents:t?t.getParameter(35659):0,maxComputeWorkgroupStorageSize:0,maxComputeInvocationsPerWorkgroup:0,maxComputeWorkgroupSizeX:0,maxComputeWorkgroupSizeY:0,maxComputeWorkgroupSizeZ:0,maxComputeWorkgroupsPerDimension:0}}function sn(e){let t=hs(e);function r(i){return e.getParameter(i)}function s(i,n){return t?t.getParameter(i):n||0}return{[33902]:r(33902),[33901]:r(33901),[3379]:r(3379),[34076]:r(34076),[34930]:r(34930),[35661]:r(35661),[35660]:r(35660),[34024]:r(34024),[36348]:r(36348),[34921]:r(34921),[36347]:r(36347),[36349]:r(36349),[3386]:r(3386),[34047]:r(34047),[32883]:s(32883),[35071]:s(35071),[37447]:s(37447),[36063]:s(36063),[35379]:s(35379),[35374]:s(35374),[35377]:s(35377),[34852]:s(34852),[36203]:s(36203),[33001]:s(33001),[33e3]:s(33e3),[37157]:s(37157),[35373]:s(35373),[35657]:s(35657),[36183]:s(36183),[37137]:s(37137),[34045]:s(34045),[35978]:s(35978),[35979]:s(35979),[35968]:s(35968),[35376]:s(35376),[35375]:s(35375),[35659]:s(35659),[37154]:s(37154),[35371]:s(35371),[35658]:s(35658),[35076]:s(35076),[35077]:s(35077),[35380]:s(35380)}}var dn=S(x(),1);var ar=S(x(),1);var P=S(x(),1);function ie(e,t,r){let i=H.attach(e).gl;if(xa(t))return r(e);let{nocatch:n=!0}=t;Ce(i),be(i,t);let o;if(n)o=r(i),Re(i);else try{o=r(i)}finally{Re(i)}return o}function xa(e){for(let t in e)return!1;return!0}var rr=S(x(),1);function on(e,t,r,s){if((0,rr.isObjectEmpty)(t))return s(e);Ce(e.gl);try{return ya(e,t),be(e,r),s(e)}finally{Re(e.gl)}}function ya(e,t){let r=H.attach(e),{gl:s}=r;if(t.cullMode)switch(t.cullMode){case"none":s.disable(2884);break;case"front":s.enable(2884),s.cullFace(1028);break;case"back":s.enable(2884),s.cullFace(1029);break}if(t.frontFace&&s.frontFace(Et("frontFace",t.frontFace,{ccw:2305,cw:2304})),t.depthBias!==void 0&&s.polygonOffset(t.depthBias,t.depthBiasSlopeScale||0),t.depthWriteEnabled!==void 0&&s.depthMask(va("depthWriteEnabled",t.depthWriteEnabled)),t.depthCompare&&(t.depthCompare!=="always"?s.enable(2929):s.disable(2929),s.depthFunc(tr("depthCompare",t.depthCompare))),t.stencilWriteMask){let i=t.stencilWriteMask;s.stencilMaskSeparate(1028,i),s.stencilMaskSeparate(1029,i)}if(t.stencilReadMask&&rr.log.warn("stencilReadMask not supported under WebGL"),t.stencilCompare){let i=t.stencilReadMask||4294967295,n=tr("depthCompare",t.stencilCompare);t.stencilCompare!=="always"?s.enable(2960):s.disable(2960),s.stencilFuncSeparate(1028,n,0,i),s.stencilFuncSeparate(1029,n,0,i)}if(t.stencilPassOperation&&t.stencilFailOperation&&t.stencilDepthFailOperation){let i=ws("stencilPassOperation",t.stencilPassOperation),n=ws("stencilFailOperation",t.stencilFailOperation),o=ws("stencilDepthFailOperation",t.stencilDepthFailOperation);s.stencilOpSeparate(1028,n,o,i),s.stencilOpSeparate(1029,n,o,i)}if(t.blendColorOperation||t.blendAlphaOperation){s.enable(3042);let i=nn("blendColorOperation",t.blendColorOperation||"add"),n=nn("blendAlphaOperation",t.blendAlphaOperation||"add");s.blendEquationSeparate(i,n);let o=er("blendColorSrcFactor",t.blendColorSrcFactor||"one"),a=er("blendColorDstFactor",t.blendColorDstFactor||"zero"),c=er("blendAlphaSrcFactor",t.blendAlphaSrcFactor||"one"),_=er("blendAlphaDstFactor",t.blendAlphaDstFactor||"zero");s.blendFuncSeparate(o,a,c,_)}}function tr(e,t){return Et(e,t,{never:512,less:513,equal:514,"less-equal":515,greater:516,"not-equal":517,"greater-equal":518,always:519})}function ws(e,t){return Et(e,t,{keep:7680,zero:0,replace:7681,invert:5386,"increment-clamp":7682,"decrement-clamp":7683,"increment-wrap":34055,"decrement-wrap":34056})}function nn(e,t){return Et(e,t,{add:32774,subtract:32778,"reverse-subtract":32779,min:32775,max:32776})}function er(e,t){return Et(e,t,{one:1,zero:0,"src-color":768,"one-minus-src-color":769,"dst-color":774,"one-minus-dst-color":775,"src-alpha":770,"one-minus-src-alpha":771,"dst-alpha":772,"one-minus-dst-alpha":773})}function wa(e,t){return`Illegal parameter ${t} for ${e}`}function Et(e,t,r){if(!(t in r))throw new Error(wa(e,t));return r[t]}function va(e,t){return t}function sr(e){let t={};return e.addressModeU&&(t[10242]=vs(e.addressModeU)),e.addressModeV&&(t[10243]=vs(e.addressModeV)),e.addressModeW&&(t[32882]=vs(e.addressModeW)),e.magFilter&&(t[10240]=ln(e.magFilter)),(e.minFilter||e.mipmapFilter)&&(t[10241]=Na(e.minFilter||"linear",e.mipmapFilter)),e.lodMinClamp!==void 0&&(t[33082]=e.lodMinClamp),e.lodMaxClamp!==void 0&&(t[33083]=e.lodMaxClamp),e.type==="comparison-sampler"&&(t[34892]=34894),e.compare&&(t[34893]=tr("compare",e.compare)),e.maxAnisotropy&&(t[34046]=e.maxAnisotropy),t}function an(e){let t={...e};return e[10241]!==9728&&(t[10241]=9729),t[10242]=33071,t[10243]=33071,t}function vs(e){switch(e){case"clamp-to-edge":return 33071;case"repeat":return 10497;case"mirror-repeat":return 33648}}function ln(e){switch(e){case"nearest":return 9728;case"linear":return 9729}}function Na(e,t){if(!t)return ln(e);switch(e){case"nearest":return t==="nearest"?9984:9986;case"linear":return t==="nearest"?9985:9987}}var fe=S(x(),1),Y=class extends fe.Buffer{constructor(t){let r=arguments.length>1&&arguments[1]!==void 0?arguments[1]:{};super(t,r),this.device=void 0,this.gl=void 0,this.gl2=void 0,this.handle=void 0,this.glTarget=void 0,this.glUsage=void 0,this.glIndexType=5123,this.byteLength=void 0,this.bytesUsed=void 0,this.device=t,this.gl=this.device.gl,this.gl2=this.device.gl2;let s=typeof r=="object"?r.handle:void 0;this.handle=s||this.gl.createBuffer(),t.setSpectorMetadata(this.handle,{...this.props,data:typeof this.props.data}),this.glTarget=Ia(this.props.usage),this.glUsage=Ca(this.props.usage),this.glIndexType=this.props.indexType==="uint32"?5125:5123,r.data?this._initWithData(r.data,r.byteOffset,r.byteLength):this._initWithByteLength(r.byteLength||0)}_initWithData(t){let r=arguments.length>1&&arguments[1]!==void 0?arguments[1]:0,s=arguments.length>2&&arguments[2]!==void 0?arguments[2]:t.byteLength+r,i=this.glTarget;this.gl.bindBuffer(i,this.handle),this.gl.bufferData(i,s,this.glUsage),this.gl.bufferSubData(i,r,t),this.gl.bindBuffer(i,null),this.bytesUsed=s,this.byteLength=s,this._setDebugData(t,r,s),this.trackAllocatedMemory(s)}_initWithByteLength(t){(0,fe.assert)(t>=0);let r=t;t===0&&(r=new Float32Array(0));let s=this.glTarget;return this.gl.bindBuffer(s,this.handle),this.gl.bufferData(s,r,this.glUsage),this.gl.bindBuffer(s,null),this.bytesUsed=t,this.byteLength=t,this._setDebugData(null,0,t),this.trackAllocatedMemory(t),this}destroy(){!this.destroyed&&this.handle&&(this.removeStats(),this.trackDeallocatedMemory(),this.gl.deleteBuffer(this.handle),this.destroyed=!0,this.handle=null)}write(t){let r=arguments.length>1&&arguments[1]!==void 0?arguments[1]:0,s=0,i=void 0,n=this.device.isWebGL2?36663:this.glTarget;this.gl.bindBuffer(n,this.handle),s!==0||i!==void 0?(this.device.assertWebGL2(),this.gl2.bufferSubData(n,r,t,s,i)):this.gl.bufferSubData(n,r,t),this.gl.bindBuffer(n,null),this._setDebugData(t,r,t.byteLength)}async readAsync(){let t=arguments.length>0&&arguments[0]!==void 0?arguments[0]:0,r=arguments.length>1?arguments[1]:void 0;return this.readSyncWebGL2(t,r)}readSyncWebGL2(){var t;let r=arguments.length>0&&arguments[0]!==void 0?arguments[0]:0,s=arguments.length>1?arguments[1]:void 0;this.device.assertWebGL2(),s=(t=s)!==null&&t!==void 0?t:this.byteLength-r;let i=new Uint8Array(s),n=0;return this.gl.bindBuffer(36662,this.handle),this.gl2.getBufferSubData(36662,r,i,n,s),this.gl.bindBuffer(36662,null),this._setDebugData(i,r,s),i}};function Ia(e){return e&fe.Buffer.INDEX?34963:e&fe.Buffer.VERTEX?34962:e&fe.Buffer.UNIFORM?35345:34962}function Ca(e){return e&fe.Buffer.INDEX||e&fe.Buffer.VERTEX?35044:e&fe.Buffer.UNIFORM?35048:35044}var cn=S(x(),1);var He=class extends cn.Sampler{constructor(t,r){super(t,r),this.device=void 0,this.handle=void 0,this.parameters=void 0,this.device=t,this.parameters=sr(r),this.device.isWebGL2&&(this.handle=this.handle||this.device.gl2.createSampler(),this._setSamplerParameters(this.parameters))}destroy(){this.handle&&(this.device.gl2.deleteSampler(this.handle),this.handle=void 0)}toString(){return`Sampler(${this.id},${JSON.stringify(this.props)})`}_setSamplerParameters(t){for(let[r,s]of Object.entries(t)){let i=Number(r);switch(i){case 33082:case 33083:this.device.gl2.samplerParameterf(this.handle,i,s);break;default:this.device.gl2.samplerParameteri(this.handle,i,s);break}}}};var Oa={parameters:{},pixelStore:{},pixels:null,border:0,dataFormat:void 0,textureUnit:void 0,target:void 0},X=class extends P.Texture{constructor(t,r){var s;super(t,{...Oa,format:"rgba8unorm",...r}),this.MAX_ATTRIBUTES=void 0,this.device=void 0,this.gl=void 0,this.gl2=void 0,this.handle=void 0,this.sampler=void 0,this.glFormat=void 0,this.type=void 0,this.dataFormat=void 0,this.mipmaps=void 0,this.target=void 0,this.textureUnit=void 0,this.loaded=!1,this._video=void 0,this.device=t,this.gl=this.device.gl,this.gl2=this.device.gl2,this.handle=this.props.handle||this.gl.createTexture(),this.device.setSpectorMetadata(this.handle,{...this.props,data:typeof this.props.data}),this.glFormat=6408,this.target=Fa(this.props),this.loaded=!1,typeof((s=this.props)===null||s===void 0?void 0:s.data)=="string"&&Object.assign(this.props,{data:(0,P.loadImage)(this.props.data)}),this.initialize(this.props),Object.seal(this)}destroy(){this.handle&&(this.gl.deleteTexture(this.handle),this.removeStats(),this.trackDeallocatedMemory("Texture"),this.destroyed=!0)}toString(){return`Texture(${this.id},${this.width}x${this.height})`}initialize(){let t=arguments.length>0&&arguments[0]!==void 0?arguments[0]:{};if(this.props.dimension==="cube")return this.initializeCube(t);let r=t.data;if(r instanceof Promise)return r.then(E=>this.initialize(Object.assign({},t,{pixels:E,data:E}))),this;let s=typeof HTMLVideoElement<"u"&&r instanceof HTMLVideoElement;if(s&&r.readyState<HTMLVideoElement.HAVE_METADATA)return this._video=null,r.addEventListener("loadeddata",()=>this.initialize(t)),this;let{parameters:i={}}=t,{pixels:n=null,pixelStore:o={},textureUnit:a=void 0}=t;r||(r=n);let{width:c,height:_,dataFormat:d,type:h,compressed:p=!1,mipmaps:A=!0}=t,{depth:b=0}=t,y=bt(t.format,this.device.isWebGL2);return{width:c,height:_,compressed:p,dataFormat:d,type:h}=this._deduceParameters({format:t.format,type:h,dataFormat:d,compressed:p,data:r,width:c,height:_}),this.width=c,this.height=_,this.glFormat=y,this.type=h,this.dataFormat=d,this.textureUnit=a,Number.isFinite(this.textureUnit)&&(this.gl.activeTexture(33984+this.textureUnit),this.gl.bindTexture(this.target,this.handle)),A&&this.device.isWebGL1&&ir(this.width,this.height)&&(P.log.warn(`texture: ${this} is Non-Power-Of-Two, disabling mipmaps`)(),A=!1),this.mipmaps=A,this.setImageData({data:r,width:c,height:_,depth:b,format:y,type:h,dataFormat:d,parameters:o,compressed:p}),this.setSampler(t.sampler),this._setSamplerParameters(i),A&&this.generateMipmap(),s&&(this._video={video:r,parameters:i,lastTime:r.readyState>=HTMLVideoElement.HAVE_CURRENT_DATA?r.currentTime:-1}),this}initializeCube(t){let{mipmaps:r=!0,parameters:s={}}=t;return this.setCubeMapImageData(t).then(()=>{this.loaded=!0,r&&this.generateMipmap(t),this.setSampler(t.sampler),this._setSamplerParameters(s)}),this}setSampler(){let t=arguments.length>0&&arguments[0]!==void 0?arguments[0]:{},r;t instanceof He?(this.sampler=t,r=t.props):(this.sampler=new He(this.device,t),r=t);let s=sr(r);return this._setSamplerParameters(s),this}resize(t){let{height:r,width:s,mipmaps:i=!1}=t;return s!==this.width||r!==this.height?this.initialize({width:s,height:r,format:this.format,type:this.type,dataFormat:this.dataFormat,mipmaps:i}):this}update(){if(this._video){let{video:t,parameters:r,lastTime:s}=this._video;if(s===t.currentTime||t.readyState<HTMLVideoElement.HAVE_CURRENT_DATA)return;this.setSubImageData({data:t,parameters:r}),this.mipmaps&&this.generateMipmap(),this._video.lastTime=t.currentTime}}generateMipmap(){let t=arguments.length>0&&arguments[0]!==void 0?arguments[0]:{};return this.device.isWebGL1&&ir(this.width,this.height)?(P.log.warn(`texture: ${this} is Non-Power-Of-Two, disabling mipmaping`)(),this):(this.mipmaps=!0,this.gl.bindTexture(this.target,this.handle),ie(this.gl,t,()=>{this.gl.generateMipmap(this.target)}),this.gl.bindTexture(this.target,null),this)}setImageData(t){if(this.props.dimension==="3d"||this.props.dimension==="2d-array")return this.setImageData3D(t);this.trackDeallocatedMemory("Texture");let{target:r=this.target,pixels:s=null,level:i=0,glFormat:n=this.glFormat,offset:o=0,parameters:a={}}=t,{data:c=null,type:_=this.type,width:d=this.width,height:h=this.height,dataFormat:p=this.dataFormat,compressed:A=!1}=t;c||(c=s),{type:_,dataFormat:p,compressed:A,width:d,height:h}=this._deduceParameters({format:this.props.format,type:_,dataFormat:p,compressed:A,data:c,width:d,height:h});let{gl:b}=this;b.bindTexture(this.target,this.handle);let y=null;({data:c,dataType:y}=this._getDataType({data:c,compressed:A}));let E;if(ie(this.gl,a,()=>{switch(y){case"null":b.texImage2D(r,i,n,d,h,0,p,_,c);break;case"typed-array":b.texImage2D(r,i,n,d,h,0,p,_,c,o);break;case"buffer":E=this.device.assertWebGL2(),E.bindBuffer(35052,c.handle||c),E.texImage2D(r,i,n,d,h,0,p,_,o),E.bindBuffer(35052,null);break;case"browser-object":this.device.isWebGL2?b.texImage2D(r,i,n,d,h,0,p,_,c):b.texImage2D(r,i,n,p,_,c);break;case"compressed":for(let[U,w]of c.entries())b.compressedTexImage2D(r,U,w.format,w.width,w.height,0,w.data);break;default:(0,P.assert)(!1,"Unknown image data type")}}),c&&c.byteLength)this.trackAllocatedMemory(c.byteLength,"Texture");else{let U=Rt(this.props.format,this.device.isWebGL2);this.trackAllocatedMemory(this.width*this.height*U,"Texture")}return this.loaded=!0,this}setSubImageData(t){let{target:r=this.target,pixels:s=null,data:i=null,x:n=0,y:o=0,width:a=this.width,height:c=this.height,level:_=0,glFormat:d=this.glFormat,type:h=this.type,dataFormat:p=this.dataFormat,compressed:A=!1,offset:b=0,parameters:y={}}=t;if({type:h,dataFormat:p,compressed:A,width:a,height:c}=this._deduceParameters({format:this.props.format,type:h,dataFormat:p,compressed:A,data:i,width:a,height:c}),(0,P.assert)(this.depth===1,"texSubImage not supported for 3D textures"),i||(i=s),i&&i.data){let E=i;i=E.data,a=E.shape[0],c=E.shape[1]}i instanceof Y&&(i=i.handle),this.gl.bindTexture(this.target,this.handle),ie(this.gl,y,()=>{if(A)this.gl.compressedTexSubImage2D(r,_,n,o,a,c,d,i);else if(i===null)this.gl.texSubImage2D(r,_,n,o,a,c,p,h,null);else if(ArrayBuffer.isView(i))this.gl.texSubImage2D(r,_,n,o,a,c,p,h,i,b);else if(typeof WebGLBuffer<"u"&&i instanceof WebGLBuffer){let E=this.device.assertWebGL2();E.bindBuffer(35052,i),E.texSubImage2D(r,_,n,o,a,c,p,h,b),E.bindBuffer(35052,null)}else this.device.isWebGL2?this.device.assertWebGL2().texSubImage2D(r,_,n,o,a,c,p,h,i):this.gl.texSubImage2D(r,_,n,o,p,h,i)}),this.gl.bindTexture(this.target,null)}copyFramebuffer(){let t=arguments.length>0&&arguments[0]!==void 0?arguments[0]:{};return P.log.error("Texture.copyFramebuffer({...}) is no logner supported, use copyToTexture(source, target, opts})")(),null}getActiveUnit(){return this.gl.getParameter(34016)-33984}bind(){let t=arguments.length>0&&arguments[0]!==void 0?arguments[0]:this.textureUnit,{gl:r}=this;return t!==void 0&&(this.textureUnit=t,r.activeTexture(33984+t)),r.bindTexture(this.target,this.handle),t}unbind(){let t=arguments.length>0&&arguments[0]!==void 0?arguments[0]:this.textureUnit,{gl:r}=this;return t!==void 0&&(this.textureUnit=t,r.activeTexture(33984+t)),r.bindTexture(this.target,null),t}_getDataType(t){let{data:r,compressed:s=!1}=t;return s?{data:r,dataType:"compressed"}:r===null?{data:r,dataType:"null"}:ArrayBuffer.isView(r)?{data:r,dataType:"typed-array"}:r instanceof Y?{data:r.handle,dataType:"buffer"}:typeof WebGLBuffer<"u"&&r instanceof WebGLBuffer?{data:r,dataType:"buffer"}:{data:r,dataType:"browser-object"}}_deduceParameters(t){let{format:r,data:s}=t,{width:i,height:n,dataFormat:o,type:a,compressed:c}=t,_=Ze(r,this.device.isWebGL2);return o=o||_.dataFormat,a=a||_.type,c=c||_.compressed,{width:i,height:n}=this._deduceImageSize(s,i,n),{dataFormat:o,type:a,compressed:c,width:i,height:n,format:r,data:s}}_deduceImageSize(t,r,s){let i;return typeof ImageData<"u"&&t instanceof ImageData?i={width:t.width,height:t.height}:typeof HTMLImageElement<"u"&&t instanceof HTMLImageElement?i={width:t.naturalWidth,height:t.naturalHeight}:typeof HTMLCanvasElement<"u"&&t instanceof HTMLCanvasElement?i={width:t.width,height:t.height}:typeof ImageBitmap<"u"&&t instanceof ImageBitmap?i={width:t.width,height:t.height}:typeof HTMLVideoElement<"u"&&t instanceof HTMLVideoElement?i={width:t.videoWidth,height:t.videoHeight}:t?i={width:r,height:s}:i={width:r>=0?r:1,height:s>=0?s:1},(0,P.assert)(i,"Could not deduced texture size"),(0,P.assert)(r===void 0||i.width===r,"Deduced texture width does not match supplied width"),(0,P.assert)(s===void 0||i.height===s,"Deduced texture height does not match supplied height"),i}async setCubeMapImageData(t){let{gl:r}=this,{width:s,height:i,pixels:n,data:o,format:a=6408,type:c=5121}=t,_=n||o,d=await Promise.all(X.FACES.map(h=>{let p=_[h];return Promise.all(Array.isArray(p)?p:[p])}));this.bind(),X.FACES.forEach((h,p)=>{d[p].length>1&&this.props.mipmaps!==!1&&P.log.warn(`${this.id} has mipmap and multiple LODs.`)(),d[p].forEach((A,b)=>{s&&i?r.texImage2D(h,b,a,s,i,0,a,c,A):r.texImage2D(h,b,a,a,c,A)})}),this.unbind()}setImageDataForFace(t){let{face:r,width:s,height:i,pixels:n,data:o,format:a=6408,type:c=5121}=t,{gl:_}=this,d=n||o;return this.bind(),d instanceof Promise?d.then(h=>this.setImageDataForFace(Object.assign({},t,{face:r,data:h,pixels:h}))):this.width||this.height?_.texImage2D(r,0,a,s,i,0,a,c,d):_.texImage2D(r,0,a,a,c,d),this}setImageData3D(t){let{level:r=0,dataFormat:s,format:i,type:n,width:o,height:a,depth:c=1,offset:_=0,data:d,parameters:h={}}=t;this.trackDeallocatedMemory("Texture"),this.gl.bindTexture(this.target,this.handle);let p=Ze(i,this.device.isWebGL2);if(ie(this.gl,h,()=>{ArrayBuffer.isView(d)&&this.gl.texImage3D(this.target,r,p.format,o,a,c,0,p.dataFormat,p.type,d),d instanceof Y&&(this.gl.bindBuffer(35052,d.handle),this.gl.texImage3D(this.target,r,s,o,a,c,0,i,n,_))}),d&&d.byteLength)this.trackAllocatedMemory(d.byteLength,"Texture");else{let A=Rt(this.props.format,this.device.isWebGL2);this.trackAllocatedMemory(this.width*this.height*this.depth*A,"Texture")}return this.loaded=!0,this}_setSamplerParameters(t){if(this.device.isWebGL1&&ir(this.width,this.height)&&(t=an(t)),!(0,P.isObjectEmpty)(t)){Ma(t),this.gl.bindTexture(this.target,this.handle);for(let[r,s]of Object.entries(t)){let i=Number(r),n=s;switch(i){case 33082:case 33083:this.gl.texParameterf(this.target,i,n);break;default:this.gl.texParameteri(this.target,i,n);break}}this.gl.bindTexture(this.target,null)}}_getWebGL1NPOTParameterOverride(t,r){if(this.device.isWebGL1&&ir(this.width,this.height))switch(t){case 10241:if(r!==9729&&r!==9728)return 9729;break;case 10242:case 10243:return 33071;default:break}return r}};X.FACES=[34069,34070,34071,34072,34073,34074];function Fa(e){switch(e.dimension){case"2d":return 3553;case"cube":return 34067;case"2d-array":return 35866;case"3d":return 32879;case"1d":case"cube-array":default:throw new Error(e.dimension)}}function ir(e,t){return!e||!t?!1:!(0,P.isPowerOfTwo)(e)||!(0,P.isPowerOfTwo)(t)}function Ma(e){P.log.log(1,"texture sampler parameters",e)()}var un=S(x(),1);var Se=S(x(),1);var _n=S(x(),1);function nr(e,t){if(typeof t!="string")return t;let r=Number(t);if(!isNaN(r))return r;t=t.replace(/^.*\./,"");let s=e[t];return(0,_n.assert)(s!==void 0,`Accessing undefined constant GL.${t}`),s}var Je="Resource subclass must define virtual methods",or=class extends Se.Resource{constructor(t,r,s){super(t,r,s),this.device=void 0,this.gl=void 0,this.gl2=void 0,this._handle=void 0,this._bound=!1,this.byteLength=0,this.device=H.attach(t);let i=this.device.gl;vi(i);let{id:n}=r||{};this.gl=i,this.gl2=i,this.id=n||(0,Se.uid)(this.constructor.name),this._handle=r?.handle,this._handle===void 0&&(this._handle=this._createHandle()),this.byteLength=0}toString(){return`${this.constructor.name}(${this.id})`}get handle(){return this._handle}delete(){let{deleteChildren:t=!1}=arguments.length>0&&arguments[0]!==void 0?arguments[0]:{},r=this._handle&&this._deleteHandle(this._handle);return this._handle&&this.removeStats(),this._handle=null,r&&t&&r.filter(Boolean).forEach(s=>s.destroy()),this}bind(){let t=arguments.length>0&&arguments[0]!==void 0?arguments[0]:this.handle;if(typeof t!="function")return this._bindHandle(t),this;let r;return this._bound?r=t():(this._bindHandle(this.handle),this._bound=!0,r=t(),this._bound=!1,this._bindHandle(null)),r}unbind(){this.bind(null)}getParameter(t){let r=arguments.length>1&&arguments[1]!==void 0?arguments[1]:{};t=nr(this.gl,t),(0,Se.assert)(t);let i=(this.constructor.PARAMETERS||{})[t];if(i){let n=m(this.gl);if(!((!("webgl2"in i)||n)&&(!("extension"in i)||this.gl.getExtension(i.extension)))){let a=i.webgl1,c="webgl2"in i?i.webgl2:i.webgl1;return n?c:a}}return this._getParameter(t,r)}getParameters(){let t=arguments.length>0&&arguments[0]!==void 0?arguments[0]:{},{parameters:r,keys:s}=t,i=this.constructor.PARAMETERS||{},n=m(this.gl),o={},a=r||Object.keys(i);for(let c of a){let _=i[c];if(_&&(!("webgl2"in _)||n)&&(!("extension"in _)||this.gl.getExtension(_.extension))){let h=s?this.device.getGLKey(c):c;o[h]=this.getParameter(c,t),s&&_.type==="GLenum"&&(o[h]=this.device.getGLKey(o[h]))}}return o}setParameter(t,r){t=nr(this.gl,t),(0,Se.assert)(t);let i=(this.constructor.PARAMETERS||{})[t];if(i){let n=m(this.gl);if(!((!("webgl2"in i)||n)&&(!("extension"in i)||this.gl.getExtension(i.extension))))throw new Error("Parameter not available on this platform");i.type==="GLenum"&&(r=nr(r))}return this._setParameter(t,r),this}setParameters(t){for(let r in t)this.setParameter(r,t[r]);return this}stubRemovedMethods(t,r,s){return(0,Se.stubRemovedMethods)(this,t,r,s)}initialize(t){}_createHandle(){throw new Error(Je)}_deleteHandle(){throw new Error(Je)}_bindHandle(t){throw new Error(Je)}_getOptsFromHandle(){throw new Error(Je)}_getParameter(t,r){throw new Error(Je)}_setParameter(t,r){throw new Error(Je)}};var fn;fn=Symbol.toStringTag;var Oe=class extends or{get[fn](){return"Renderbuffer"}get width(){return this.props.width}get height(){return this.props.height}get format(){return this.props.format}get samples(){return this.props.samples}get attachment(){}static isTextureFormatSupported(t,r){return qi(t.gl,r)}constructor(t,r){if(typeof r.format=="number")throw new Error("Renderbuffer");super(t,r,Oe.defaultProps),this.glFormat=void 0,this.glFormat=bt(this.props.format,t.isWebGL2),this._initialize(this.props)}resize(t){(t.width!==this.width||t.height!==this.height)&&(Object.assign(this.props,{...t,format:this.format,samples:this.samples}),this._initialize(this.props))}_initialize(t){let{format:r,width:s,height:i,samples:n}=t;(0,un.assert)(r,"Needs format"),this.trackDeallocatedMemory(),this.gl.bindRenderbuffer(36161,this.handle),n!==0&&this.device.isWebGL2?this.gl2.renderbufferStorageMultisample(36161,n,this.glFormat,s,i):this.gl.renderbufferStorage(36161,this.glFormat,s,i),this.gl.bindRenderbuffer(36161,null),this.trackAllocatedMemory(s*i*(n||1)*Rt(this.glFormat,this.device.isWebGL2))}_createHandle(){return this.gl.createRenderbuffer()}_deleteHandle(){this.gl.deleteRenderbuffer(this.handle),this.trackDeallocatedMemory()}_bindHandle(t){this.gl.bindRenderbuffer(36161,t)}};Oe.defaultProps={id:void 0,handle:void 0,userData:void 0,format:void 0,width:1,height:1,samples:0};var ue=class extends ar.Framebuffer{get texture(){return this.colorAttachments[0]}constructor(t,r){super(t,r),this.device=void 0,this.gl=void 0,this.handle=void 0;let s=r.handle===null;if(this.device=t,this.gl=t.gl,this.handle=this.props.handle||s?this.props.handle:this.gl.createFramebuffer(),!s){t.setSpectorMetadata(this.handle,{id:this.props.id,props:this.props}),this.autoCreateAttachmentTextures(),this.gl.bindFramebuffer(36160,this.handle);for(let i=0;i<this.colorAttachments.length;++i){let n=this.colorAttachments[i],o=36064+i;n&&this._attachOne(o,n)}this.depthStencilAttachment&&this._attachOne(Qi(this.depthStencilAttachment.format),this.depthStencilAttachment),this.gl.bindFramebuffer(36160,null)}r.check!==!1&&this._checkStatus()}destroy(){super.destroy(),!this.destroyed&&this.handle!==null&&this.gl.deleteFramebuffer(this.handle)}_checkStatus(){let{gl:t}=this,r=t.bindFramebuffer(36160,this.handle),s=t.checkFramebufferStatus(36160);if(t.bindFramebuffer(36160,r||null),s!==36053)throw new Error(`Framebuffer ${Da(s)}`)}createDepthStencilTexture(t){return new Oe(this.device,{id:`${this.id}-depth-stencil`,format:t,width:this.width,height:this.height})}resizeAttachments(t,r){if(this.handle===null)return this.width=this.gl.drawingBufferWidth,this.height=this.gl.drawingBufferHeight,this;t===void 0&&(t=this.gl.drawingBufferWidth),r===void 0&&(r=this.gl.drawingBufferHeight);for(let s of this.colorAttachments)s.resize({width:t,height:r});return this.depthStencilAttachment&&this.depthStencilAttachment.resize({width:t,height:r}),this}_attachOne(t,r){if(r instanceof Oe)return this._attachWEBGLRenderbuffer(t,r),r;if(Array.isArray(r)){let[s,i=0,n=0]=r;return this._attachTexture(t,s,i,n),s}else if(r instanceof X)return this._attachTexture(t,r,0,0),r;throw new Error("attach")}_attachWEBGLRenderbuffer(t,r){this.gl.framebufferRenderbuffer(36160,t,36161,r.handle)}_attachTexture(t,r,s,i){let{gl:n,gl2:o}=this.device;switch(n.bindTexture(r.target,r.handle),r.target){case 35866:case 32879:this.device.assertWebGL2(),o?.framebufferTextureLayer(36160,t,r.target,i,s);break;case 34067:let a=Ba(s);n.framebufferTexture2D(36160,t,a,r.handle,i);break;case 3553:n.framebufferTexture2D(36160,t,3553,r.handle,i);break;default:(0,ar.assert)(!1,"Illegal texture type")}n.bindTexture(r.target,null)}};function Ba(e){return e<34069?e+34069:e}function Da(e){switch(e){case 36053:return"success";case 36054:return"Mismatched attachments";case 36055:return"No attachments";case 36057:return"Height/width mismatch";case 36061:return"Unsupported or split attachments";case 36182:return"Samples mismatch";default:return`${e}`}}var lr=class extends dn.CanvasContext{constructor(t,r){super(r),this.device=void 0,this.presentationSize=void 0,this._framebuffer=null,this.device=t,this.presentationSize=[-1,-1],this._setAutoCreatedCanvasId(`${this.device.id}-canvas`),this.update()}getCurrentFramebuffer(){return this.update(),this._framebuffer=this._framebuffer||new ue(this.device,{handle:null}),this._framebuffer}update(){let t=this.getPixelSize();(t[0]!==this.presentationSize[0]||t[1]!==this.presentationSize[1])&&(this.presentationSize=t,this.resize())}resize(t){if(!this.device.gl)return;if(this.canvas){let s=this.getDevicePixelRatio(t?.useDevicePixels);this.setDevicePixelRatio(s,t);return}let r=this.device.gl.getExtension("STACKGL_resize_drawingbuffer");r&&t&&"width"in t&&"height"in t&&r.resize(t.width,t.height)}commit(){}};var de=S(x(),1),Pa={spector:de.log.get("spector")||de.log.get("inspect")},Ua="https://spectorcdn.babylonjs.com/spector.bundle.js",ka=1,L=null,hn=!1;async function gn(e){if(!globalThis.SPECTOR)try{await(0,de.loadScript)(Ua)}catch(t){de.log.warn(String(t))}}function pn(e){var t,r;if(e={...Pa,...e},!((t=e)!==null&&t!==void 0&&t.spector)||(!L&&globalThis.SPECTOR&&(de.log.probe(ka,"SPECTOR found and initialized")(),L=new globalThis.SPECTOR.Spector,globalThis.luma&&(globalThis.luma.spector=L)),!L))return null;if(!hn){var s,i;hn=!0,L.spyCanvases(),(s=L)===null||s===void 0||s.onCaptureStarted.add(a=>de.log.info("Spector capture started:",a)()),(i=L)===null||i===void 0||i.onCapture.add(a=>{var c,_,d;de.log.info("Spector capture complete:",a)(),(c=L)===null||c===void 0||c.getResultUI(),(_=L)===null||_===void 0||_.resultView.display(),(d=L)===null||d===void 0||d.resultView.addCapture(a)})}if((r=e)!==null&&r!==void 0&&r.canvas){var n,o;if(typeof e.spector=="string"&&e.spector!==e.canvas.id)return L;(n=L)===null||n===void 0||n.startCapture((o=e)===null||o===void 0?void 0:o.canvas,500),new Promise(a=>setTimeout(a,2e3)).then(a=>{var c;de.log.info("Spector capture stopped after 2 seconds")(),(c=L)===null||c===void 0||c.stopCapture()})}return L}var Fe=S(x(),1);var Wa="https://unpkg.com/webgl-debug@2.0.1/index.js";function Tn(e){return e.luma=e.luma||{},e.luma}async function An(){re()&&!globalThis.WebGLDebugUtils&&(globalThis.global=globalThis.global||globalThis,globalThis.global.module={},await(0,Fe.loadScript)(Wa))}function bn(e){let t=arguments.length>1&&arguments[1]!==void 0?arguments[1]:{};return e?t.debug?Ha(e,t):Xa(e):null}function Xa(e){let t=Tn(e);return t.realContext?t.realContext:e}function Ha(e,t){if(!globalThis.WebGLDebugUtils)return Fe.log.warn("webgl-debug not loaded")(),e;let r=Tn(e);if(r.debugContext)return r.debugContext;globalThis.WebGLDebugUtils.init({...Pe,...e});let s=globalThis.WebGLDebugUtils.makeDebugContext(e,Va.bind(null,t),Ka.bind(null,t));for(let o in Pe)!(o in s)&&typeof Pe[o]=="number"&&(s[o]=Pe[o]);class i{}Object.setPrototypeOf(s,Object.getPrototypeOf(e)),Object.setPrototypeOf(i,s);let n=Object.create(i);return r.realContext=e,r.debugContext=n,n.debug=!0,n}function Ns(e,t){t=Array.from(t).map(s=>s===void 0?"undefined":s);let r=globalThis.WebGLDebugUtils.glFunctionArgsToString(e,t);return r=`${r.slice(0,100)}${r.length>100?"...":""}`,`gl.${e}(${r})`}function Va(e,t,r,s){s=Array.from(s).map(c=>c===void 0?"undefined":c);let i=globalThis.WebGLDebugUtils.glEnumToString(t),n=globalThis.WebGLDebugUtils.glFunctionArgsToString(r,s),o=e.webgl2?"gl2":"gl1",a=`${i} in ${o}.${r}(${n})`;Fe.log.error(a)();debugger;if(e.throwOnError)throw new Error(a)}function Ka(e,t,r){let s="";if(Fe.log.level>=1&&(s=Ns(t,r),Fe.log.log(1,s)()),e.break&&e.break.length>0&&(s=s||Ns(t,r),e.break.every(n=>s.indexOf(n)!==-1)))debugger;for(let i of r)if(i===void 0){if(s=s||Ns(t,r),e.throwOnError)throw new Error(`Undefined argument: ${s}`);Fe.log.error(`Undefined argument: ${s}`)();debugger}}var Sn=S(x(),1);function En(e){let t=e.split(/\r?\n/),r=[];for(let s of t){if(s.length<=1)continue;let i=s.split(":");if(i.length===2){let[h,p]=i;r.push({message:p.trim(),type:Rn(h),lineNum:0,linePos:0});continue}let[n,o,a,...c]=i,_=parseInt(a,10);isNaN(_)&&(_=0);let d=parseInt(o,10);isNaN(d)&&(d=0),r.push({message:c.join(":").trim(),type:Rn(n),lineNum:_,linePos:d})}return r}function Rn(e){let t=["warning","error","info"],r=e.toLowerCase();return t.includes(r)?r:"info"}var cr=class extends Sn.Shader{constructor(t,r){switch(super(t,r),this.device=void 0,this.handle=void 0,this.device=t,this.props.stage){case"vertex":this.handle=this.props.handle||this.device.gl.createShader(35633);break;case"fragment":this.handle=this.props.handle||this.device.gl.createShader(35632);break;default:throw new Error(this.props.stage)}this._compile(this.source)}destroy(){this.handle&&(this.removeStats(),this.device.gl.deleteShader(this.handle),this.destroyed=!0)}async getCompilationInfo(){return this.getCompilationInfoSync()}getCompilationInfoSync(){let t=this.device.gl.getShaderInfoLog(this.handle);return En(t)}_compile(t){t=(i=>i.startsWith("#version ")?i:`#version 100
138
+ ${i}`)(t);let{gl:s}=this.device;if(s.shaderSource(this.handle,t),s.compileShader(this.handle),this.compilationStatus=s.getShaderParameter(this.handle,35713)?"success":"error",this.debugShader(),this.compilationStatus==="error")throw new Error(`GLSL compilation errors in ${this.props.stage} shader ${this.props.id}`)}};var mn=S(x(),1);var ja=256,za=1024,Ya=16384,Is=6144,_r=class extends mn.RenderPass{constructor(t,r){super(t,r),this.device=void 0,this.glParameters=void 0,this.device=t,Ce(this.device.gl),this.setParameters(this.props.parameters),this.clear()}end(){Re(this.device.gl),this.props.framebuffer&&be(this.device,{framebuffer:null})}pushDebugGroup(t){}popDebugGroup(){}insertDebugMarker(t){}setParameters(){let t=arguments.length>0&&arguments[0]!==void 0?arguments[0]:{},r={};this.props.framebuffer&&(r.framebuffer=this.props.framebuffer),this.props.depthReadOnly&&(r.depthMask=!this.props.depthReadOnly),r.stencilMask=this.props.stencilReadOnly?0:1,r[35977]=this.props.discard,t.viewport&&(t.viewport.length>=6?(r.viewport=t.viewport.slice(0,4),r.depthRange=[t.viewport[4],t.viewport[5]]):r.viewport=t.viewport),r.scissorTest=Boolean(t.scissorRect),t.scissorRect&&(r.scissor=t.scissorRect),t.blendConstant&&(r.blendColor=t.blendConstant),t.stencilReference&&(console.warn("RenderPassParameters.stencilReference not yet implemented in WebGL"),t[2967]=t.stencilReference),this.glParameters=r,be(this.device,r)}clear(){let t={...this.glParameters},r=0;this.props.clearColor!==!1&&(r|=Ya,t.clearColor=this.props.clearColor),this.props.clearDepth!==!1&&(r|=ja,t.clearDepth=this.props.clearDepth),this.props.clearStencil!==!1&&(r|=za,t.clearStencil=this.props.clearStencil),r!==0&&ie(this.device,t,()=>{this.device.gl.clear(r)})}clearColorBuffer(){let t=arguments.length>0&&arguments[0]!==void 0?arguments[0]:0,r=arguments.length>1&&arguments[1]!==void 0?arguments[1]:[0,0,0,0];ie(this.device.gl2,{framebuffer:this.props.framebuffer},()=>{switch(r.constructor){case Int32Array:this.device.gl2.clearBufferiv(Is,t,r);break;case Uint32Array:this.device.gl2.clearBufferuiv(Is,t,r);break;case Float32Array:default:this.device.gl2.clearBufferfv(Is,t,r);break}})}};var V=S(x(),1),Mn=S(x(),1);var fr=S(x(),1);var $a="Failed to deduce GL constant from typed array";function xn(e){switch(ArrayBuffer.isView(e)?e.constructor:e){case Float32Array:return 5126;case Uint16Array:return 5123;case Uint32Array:return 5125;case Uint8Array:return 5121;case Uint8ClampedArray:return 5121;case Int8Array:return 5120;case Int16Array:return 5122;case Int32Array:return 5124;default:throw new Error($a)}}function St(e,t){let{clamped:r=!0}=t||{};switch(e){case 5126:return Float32Array;case 5123:case 33635:case 32819:case 32820:return Uint16Array;case 5125:return Uint32Array;case 5121:return r?Uint8ClampedArray:Uint8Array;case 5120:return Int8Array;case 5122:return Int16Array;case 5124:return Int32Array;default:throw new Error("Failed to deduce typed array type from GL constant")}}var La={offset:0,stride:0,type:5126,size:1,divisor:0,normalized:!1,integer:!1},qa={deprecatedProps:{instanced:"divisor",isInstanced:"divisor"}},Me=class{static getBytesPerElement(t){return St(t.type||5126).BYTES_PER_ELEMENT}static getBytesPerVertex(t){return(0,fr.assert)(t.size),St(t.type||5126).BYTES_PER_ELEMENT*t.size}static resolve(){for(var t=arguments.length,r=new Array(t),s=0;s<t;s++)r[s]=arguments[s];return new Me(La,...r)}constructor(){this.offset=void 0,this.stride=void 0,this.type=void 0,this.size=void 0,this.divisor=void 0,this.normalized=void 0,this.integer=void 0,this.buffer=void 0,this.index=void 0;for(var t=arguments.length,r=new Array(t),s=0;s<t;s++)r[s]=arguments[s];r.forEach(i=>this._assign(i)),Object.freeze(this)}toString(){return JSON.stringify(this)}get BYTES_PER_ELEMENT(){return Me.getBytesPerElement(this)}get BYTES_PER_VERTEX(){return Me.getBytesPerVertex(this)}_assign(){let t=arguments.length>0&&arguments[0]!==void 0?arguments[0]:{};return t=(0,fr.checkProps)("Accessor",t,qa),t.type!==void 0&&(this.type=t.type,(t.type===5124||t.type===5125)&&(this.integer=!0)),t.size!==void 0&&(this.size=t.size),t.offset!==void 0&&(this.offset=t.offset),t.stride!==void 0&&(this.stride=t.stride),t.normalize!==void 0&&(this.normalized=t.normalize),t.normalized!==void 0&&(this.normalized=t.normalized),t.integer!==void 0&&(this.integer=t.integer),t.divisor!==void 0&&(this.divisor=t.divisor),t.buffer!==void 0&&(this.buffer=t.buffer),t.index!==void 0&&(typeof t.index=="boolean"?this.index=t.index?1:0:this.index=t.index),t.instanced!==void 0&&(this.divisor=t.instanced?1:0),t.isInstanced!==void 0&&(this.divisor=t.isInstanced?1:0),this.offset===void 0&&delete this.offset,this.stride===void 0&&delete this.stride,this.type===void 0&&delete this.type,this.size===void 0&&delete this.size,this.divisor===void 0&&delete this.divisor,this.normalized===void 0&&delete this.normalized,this.integer===void 0&&delete this.integer,this.buffer===void 0&&delete this.buffer,this.index===void 0&&delete this.index,this}};function yn(e){return Za.includes(e)}var Za=[35678,35680,35679,35682,36289,36292,36293,36298,36299,36300,36303,36306,36307,36308,36311],wn={[5126]:[5126,1,"float","f32","float32"],[35664]:[5126,2,"vec2","vec2<f32>","float32x2"],[35665]:[5126,3,"vec3","vec3<f32>","float32x3"],[35666]:[5126,4,"vec4","vec4<f32>","float32x4"],[5124]:[5124,1,"int","i32","sint32"],[35667]:[5124,2,"ivec2","vec2<i32>","sint32x2"],[35668]:[5124,3,"ivec3","vec3<i32>","sint32x3"],[35669]:[5124,4,"ivec4","vec4<i32>","sint32x4"],[5125]:[5125,1,"uint","u32","uint32"],[36294]:[5125,2,"uvec2","vec2<u32>","uint32x2"],[36295]:[5125,3,"uvec3","vec3<u32>","uint32x3"],[36296]:[5125,4,"uvec4","vec4<u32>","uint32x4"],[35670]:[5126,1,"bool","f32","float32"],[35671]:[5126,2,"bvec2","vec2<f32>","float32x2"],[35672]:[5126,3,"bvec3","vec3<f32>","float32x3"],[35673]:[5126,4,"bvec4","vec4<f32>","float32x4"],[35674]:[5126,8,"mat2","mat2x2<f32>"],[35685]:[5126,8,"mat2x3","mat2x3<f32>"],[35686]:[5126,8,"mat2x4","mat2x4<f32>"],[35687]:[5126,12,"mat3x2","mat3x2<f32>"],[35675]:[5126,12,"mat3","mat3x3<f32>"],[35688]:[5126,12,"mat3x4","mat3x4<f32>"],[35689]:[5126,16,"mat4x2","mat4x2<f32>"],[35690]:[5126,16,"mat4x3","mat4x3<f32>"],[35676]:[5126,16,"mat4","mat4x4<f32>"]};function Cs(e){let t=wn[e];if(!t)throw new Error("uniform");let[r,s,,i]=t;return{format:i,components:s,glType:r}}function vn(e){let t=wn[e];if(!t)throw new Error("attribute");let[,r,,s,i]=t;return{attributeType:s,vertexFormat:i,components:r}}function Nn(e,t){let r={attributes:[],bindings:[]};r.attributes=Ja(e,t);let s=el(e,t);for(let a of s){let c=a.uniforms.map(_=>({name:_.name,format:_.format,byteOffset:_.byteOffset,byteStride:_.byteStride,arrayLength:_.arrayLength}));r.bindings.push({type:"uniform",name:a.name,location:a.location,visibility:(a.vertex?1:0)&(a.fragment?2:0),minBindingSize:a.byteLength,uniforms:c})}let i=Ga(e,t),n=0;for(let a of i)if(yn(a.type)){let{viewDimension:c,sampleType:_}=rl(a.type);r.bindings.push({type:"texture",name:a.name,location:n,viewDimension:c,sampleType:_}),a.textureUnit=n,n+=1}i.length&&(r.uniforms=i);let o=Qa(e,t);return o!=null&&o.length&&(r.varyings=o),r}function Ja(e,t){let r=[],s=e.getProgramParameter(t,35721);for(let i=0;i<s;i++){let n=e.getActiveAttrib(t,i);if(!n)throw new Error("activeInfo");let{name:o,type:a}=n,c=e.getAttribLocation(t,o);if(c>=0){let{attributeType:_}=vn(a),d=/instance/i.test(o)?"instance":"vertex";r.push({name:o,location:c,stepMode:d,type:_})}}return r.sort((i,n)=>i.location-n.location),r}function Qa(e,t){if(!m(e))return[];let r=e,s=[],i=e.getProgramParameter(t,35971);for(let n=0;n<i;n++){let o=r.getTransformFeedbackVarying(t,n);if(!o)throw new Error("activeInfo");let{name:a,type:c,size:_}=o,{glType:d,components:h}=Cs(c),p=new Me({type:d,size:_*h}),A={location:n,name:a,accessor:p};s.push(A)}return s.sort((n,o)=>n.location-o.location),s}function Ga(e,t){let r=[],s=e.getProgramParameter(t,35718);for(let i=0;i<s;i++){let n=e.getActiveUniform(t,i);if(!n)throw new Error("activeInfo");let{name:o,size:a,type:c}=n,{name:_,isArray:d}=sl(o),h=e.getUniformLocation(t,_),p={location:h,name:_,size:a,type:c,isArray:d};if(r.push(p),p.size>1)for(let A=0;A<p.size;A++){let b=`${_}[${A}]`;h=e.getUniformLocation(t,b);let y={...p,name:b,location:h};r.push(y)}}return r}function el(e,t){if(!m(e))return[];let r=e,s=(o,a)=>r.getActiveUniformBlockParameter(t,o,a),i=[],n=r.getProgramParameter(t,35382);for(let o=0;o<n;o++){let a={name:r.getActiveUniformBlockName(t,o)||"",location:s(o,35391),byteLength:s(o,35392),vertex:s(o,35396),fragment:s(o,35398),uniformCount:s(o,35394),uniforms:[]},c=s(o,35395)||[],_=r.getActiveUniforms(t,c,35383),d=r.getActiveUniforms(t,c,35384),h=r.getActiveUniforms(t,c,35387),p=r.getActiveUniforms(t,c,35388);for(let A=0;A<a.uniformCount;++A){let b=r.getActiveUniform(t,c[A]);if(!b)throw new Error("activeInfo");a.uniforms.push({name:b.name,format:Cs(_[A]).format,type:_[A],arrayLength:d[A],byteOffset:h[A],byteStride:p[A]})}i.push(a)}return i.sort((o,a)=>o.location-a.location),i}var tl={[35678]:["2d","float"],[35680]:["cube","float"],[35679]:["3d","float"],[35682]:["3d","depth"],[36289]:["2d-array","float"],[36292]:["2d-array","depth"],[36293]:["cube","float"],[36298]:["2d","sint"],[36299]:["3d","sint"],[36300]:["cube","sint"],[36303]:["2d-array","uint"],[36306]:["2d","uint"],[36307]:["3d","uint"],[36308]:["cube","uint"],[36311]:["2d-array","uint"]};function rl(e){let t=tl[e];if(!t)throw new Error("sampler");let[r,s]=t;return{viewDimension:r,sampleType:s}}function sl(e){if(e[e.length-1]!=="]")return{name:e,length:1,isArray:!1};let r=/([^[]*)(\[[0-9]+\])?/.exec(e);if(!r||r.length<2)throw new Error(`Failed to parse GLSL uniform name ${e}`);return{name:r[1],length:r[2]?1:0,isArray:Boolean(r[2])}}function In(e,t,r,s){let i=e,n=s;n===!0&&(n=1),n===!1&&(n=0);let o=typeof n=="number"?[n]:n;switch(r){case 35678:case 35680:case 35679:case 35682:case 36289:case 36292:case 36293:case 36298:case 36299:case 36300:case 36303:case 36306:case 36307:case 36308:case 36311:if(typeof s!="number")throw new Error("samplers must be set to integers");return e.uniform1i(t,s);case 5126:return e.uniform1fv(t,o);case 35664:return e.uniform2fv(t,o);case 35665:return e.uniform3fv(t,o);case 35666:return e.uniform4fv(t,o);case 5124:return e.uniform1iv(t,o);case 35667:return e.uniform2iv(t,o);case 35668:return e.uniform3iv(t,o);case 35669:return e.uniform4iv(t,o);case 35670:return e.uniform1iv(t,o);case 35671:return e.uniform2iv(t,o);case 35672:return e.uniform3iv(t,o);case 35673:return e.uniform4iv(t,o);case 5125:return i.uniform1uiv(t,o,1);case 36294:return i.uniform2uiv(t,o,2);case 36295:return i.uniform3uiv(t,o,3);case 36296:return i.uniform4uiv(t,o,4);case 35674:return e.uniformMatrix2fv(t,!1,o);case 35675:return e.uniformMatrix3fv(t,!1,o);case 35676:return e.uniformMatrix4fv(t,!1,o);case 35685:return i.uniformMatrix2x3fv(t,!1,o);case 35686:return i.uniformMatrix2x4fv(t,!1,o);case 35687:return i.uniformMatrix3x2fv(t,!1,o);case 35688:return i.uniformMatrix3x4fv(t,!1,o);case 35689:return i.uniformMatrix4x2fv(t,!1,o);case 35690:return i.uniformMatrix4x3fv(t,!1,o)}throw new Error("Illegal uniform")}function Cn(e){switch(e){case"point-list":return 0;case"line-list":return 1;case"line-strip":return 3;case"line-loop-webgl":return 2;case"triangle-list":return 4;case"triangle-strip":return 5;case"triangle-fan-webgl":return 6;default:throw new Error(e)}}function On(e){switch(e){case"point-list":return 0;case"line-list":return 1;case"line-strip":return 1;case"line-loop-webgl":return 1;case"triangle-list":return 4;case"triangle-strip":return 4;case"triangle-fan-webgl":return 4;default:throw new Error(e)}}var Fn=4,ur=class extends V.RenderPipeline{constructor(t,r){super(t,r),this.device=void 0,this.handle=void 0,this.vs=void 0,this.fs=void 0,this.introspectedLayout=void 0,this.uniforms={},this.bindings={},this.varyings=null,this._uniformCount=0,this._uniformSetters={},this.device=t,this.handle=this.props.handle||this.device.gl.createProgram(),this.device.setSpectorMetadata(this.handle,{id:this.props.id}),this.vs=(0,V.cast)(r.vs),this.fs=(0,V.cast)(r.fs);let{varyings:s,bufferMode:i=35981}=r;if(s&&s.length>0){var n;this.device.assertWebGL2(),this.varyings=s,(n=this.device.gl2)===null||n===void 0||n.transformFeedbackVaryings(this.handle,s,i)}switch(this._compileAndLink(),this.introspectedLayout=Nn(this.device.gl,this.handle),this.shaderLayout=(0,Mn.mergeShaderLayout)(this.introspectedLayout,r.shaderLayout),this.props.topology){case"triangle-fan-webgl":case"line-loop-webgl":V.log.warn(`Primitive topology ${this.props.topology} is deprecated and will be removed in v9.1`);break;default:}}destroy(){this.handle&&(this.device.gl.deleteProgram(this.handle),this.destroyed=!0)}setBindings(t){for(let[r,s]of Object.entries(t)){let i=this.shaderLayout.bindings.find(n=>n.name===r)||this.shaderLayout.bindings.find(n=>n.name===`${r}Uniforms`);if(!i){let n=this.shaderLayout.bindings.map(o=>`"${o.name}"`).join(", ");V.log.warn(`Unknown binding "${r}" in render pipeline "${this.id}", expected one of ${n}`)();continue}switch(s||V.log.warn(`Unsetting binding "${r}" in render pipeline "${this.id}"`)(),i.type){case"uniform":if(!(s instanceof Y)&&!(s.buffer instanceof Y))throw new Error("buffer value");break;case"texture":if(!(s instanceof X||s instanceof ue))throw new Error("texture value");break;case"sampler":V.log.warn(`Ignoring sampler ${r}`)();break;default:throw new Error(i.type)}this.bindings[r]=s}}setUniforms(t){let{bindings:r}=(0,V.splitUniformsAndBindings)(t);Object.keys(r).forEach(s=>{V.log.warn(`Unsupported value "${JSON.stringify(r[s])}" used in setUniforms() for key ${s}. Use setBindings() instead?`)()}),Object.assign(this.uniforms,t)}draw(t){var r;let{renderPass:s,vertexArray:i,vertexCount:n,instanceCount:o,firstVertex:a=0,transformFeedback:c}=t,_=Cn(this.props.topology),d=Boolean(i.indexBuffer),h=(r=i.indexBuffer)===null||r===void 0?void 0:r.glIndexType,p=Number(o)>0;if(!this._areTexturesRenderable()||n===0)return!1;this.device.gl.useProgram(this.handle),i.bindBeforeRender(s),c&&c.begin(this.props.topology),this._applyBindings(),this._applyUniforms();let A=s;return on(this.device,this.props.parameters,A.glParameters,()=>{if(d&&p){var b;(b=this.device.gl2)===null||b===void 0||b.drawElementsInstanced(_,n||0,h,a,o||0)}else if(d)this.device.gl.drawElements(_,n||0,h,a);else if(p){var y;(y=this.device.gl2)===null||y===void 0||y.drawArraysInstanced(_,a,n||0,o||0)}else this.device.gl.drawArrays(_,a,n||0);c&&c.end()}),i.unbindAfterRender(s),!0}_compileAndLink(){let{gl:t}=this.device;if(t.attachShader(this.handle,this.vs.handle),t.attachShader(this.handle,this.fs.handle),V.log.time(Fn,`linkProgram for ${this.id}`)(),t.linkProgram(this.handle),V.log.timeEnd(Fn,`linkProgram for ${this.id}`)(),!t.debug&&V.log.level,!t.getProgramParameter(this.handle,35714))throw new Error(`Error linking: ${t.getProgramInfoLog(this.handle)}`);if(t.validateProgram(this.handle),!t.getProgramParameter(this.handle,35715))throw new Error(`Error validating: ${t.getProgramInfoLog(this.handle)}`)}_areTexturesRenderable(){let t=!0;for(let[,r]of Object.entries(this.bindings))r instanceof X&&(r.update(),t=t&&r.loaded);return t}_applyBindings(){this.device.gl.useProgram(this.handle);let{gl2:t}=this.device;if(!t)throw new Error("bindings");let r=0,s=0;for(let i of this.shaderLayout.bindings){let n=this.bindings[i.name]||this.bindings[i.name.replace(/Uniforms$/,"")];if(!n)throw new Error(`No value for binding ${i.name} in ${this.id}`);switch(i.type){case"uniform":let{name:o}=i,a=t.getUniformBlockIndex(this.handle,o);if(a===4294967295)throw new Error(`Invalid uniform block name ${o}`);t.uniformBlockBinding(this.handle,s,a),n instanceof Y?t.bindBufferBase(35345,s,n.handle):t.bindBufferRange(35345,s,n.buffer.handle,n.offset||0,n.size||n.buffer.byteLength-n.offset),s+=1;break;case"texture":if(!(n instanceof X||n instanceof ue))throw new Error("texture");let c;if(n instanceof X)c=n;else if(n instanceof ue&&n.colorAttachments[0]instanceof X)V.log.warn("Passing framebuffer in texture binding may be deprecated. Use fbo.colorAttachments[0] instead")(),c=n.colorAttachments[0];else throw new Error("No texture");t.activeTexture(33984+r),t.bindTexture(c.target,c.handle),r+=1;break;case"sampler":break;case"storage":case"read-only-storage":throw new Error(`binding type '${i.type}' not supported in WebGL`)}}}_applyUniforms(){for(let r of this.shaderLayout.uniforms||[]){var t;let{name:s,location:i,type:n,textureUnit:o}=r,a=(t=this.uniforms[s])!==null&&t!==void 0?t:o;a!==void 0&&In(this.device.gl,i,n,a)}}};var Dn=S(x(),1);var hr=S(x(),1);var dr=class extends hr.CommandBuffer{constructor(t){super(t,{}),this.device=void 0,this.commands=[],this.device=t}submitCommands(){let t=arguments.length>0&&arguments[0]!==void 0?arguments[0]:this.commands;for(let r of t)switch(r.name){case"copy-buffer-to-buffer":il(this.device,r.options);break;case"copy-buffer-to-texture":nl(this.device,r.options);break;case"copy-texture-to-buffer":ol(this.device,r.options);break;case"copy-texture-to-texture":al(this.device,r.options);break}}};function il(e,t){let r=t.source,s=t.destination,i=e.assertWebGL2();if(i){var n,o;i.bindBuffer(36662,r.handle),i.bindBuffer(36663,s.handle),i.copyBufferSubData(36662,36663,(n=t.sourceOffset)!==null&&n!==void 0?n:0,(o=t.destinationOffset)!==null&&o!==void 0?o:0,t.size),i.bindBuffer(36662,null),i.bindBuffer(36663,null)}else throw new Error("copyBufferToBuffer not implemented in WebGL1")}function nl(e,t){throw new Error("Not implemented")}function ol(e,t){let{source:r,mipLevel:s=0,aspect:i="all",width:n=t.source.width,height:o=t.source.height,depthOrArrayLayers:a=0,origin:c=[0,0],destination:_,byteOffset:d=0,bytesPerRow:h,rowsPerImage:p}=t;if(i!=="all")throw new Error("not supported");if(s!==0||a!==0||h||p)throw new Error("not implemented");let A=e.assertWebGL2(),{framebuffer:b,destroyFramebuffer:y}=Bn(r);try{let E=_,U=n||b.width,w=o||b.height,D=Ze(b.texture.format,!0),z=D.dataFormat,he=D.type;A.bindBuffer(35051,E.handle),A.bindFramebuffer(36160,b.handle),A.readPixels(c[0],c[1],U,w,z,he,d)}finally{A.bindBuffer(35051,null),A.bindFramebuffer(36160,null),y&&b.destroy()}}function al(e,t){let{source:r,origin:s=[0,0],destination:i}=t,{width:n=t.destination.width,height:o=t.destination.width}=t,a=0,c=6408,{framebuffer:_,destroyFramebuffer:d}=Bn(r),[h,p]=s,A=!1;e.gl.bindFramebuffer(36160,_.handle);let b=null,y;if(i instanceof X)b=i,n=Number.isFinite(n)?n:b.width,o=Number.isFinite(o)?o:b.height,b.bind(0),y=b.destination;else throw new Error("whoops");return A||e.gl.copyTexImage2D(y,a,c,h,p,n,o,0),b&&b.unbind(),d&&_.destroy(),b}function Bn(e){if(e instanceof hr.Texture){let{width:t,height:r,id:s}=e;return{framebuffer:e.device.createFramebuffer({id:`framebuffer-for-${s}`,width:t,height:r,colorAttachments:[e]}),destroyFramebuffer:!0}}return{framebuffer:e,destroyFramebuffer:!1}}var gr=class extends Dn.CommandEncoder{constructor(t,r){super(t,r),this.device=void 0,this.commandBuffer=void 0,this.device=t,this.commandBuffer=new dr(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 Ge=S(x(),1);var Pn;Pn=Symbol.toStringTag;var Qe=class extends Ge.VertexArray{get[Pn](){return"VertexArray"}static isConstantAttributeZeroSupported(t){return t.info.type==="webgl2"||qt()==="Chrome"}constructor(t,r){super(t,r),this.device=void 0,this.handle=void 0,this.buffer=null,this.bufferValue=null,this.init=!1,this.device=t,this.handle=this.device.gl2.createVertexArray()}destroy(){if(super.destroy(),this.buffer){var t;(t=this.buffer)===null||t===void 0||t.destroy()}this.handle&&(this.device.gl2.deleteVertexArray(this.handle),this.handle=void 0)}setIndexBuffer(t){let r=t;if(r&&r.glTarget!==34963)throw new Error("Use .setBuffer()");this.device.gl2.bindVertexArray(this.handle),this.device.gl2.bindBuffer(34963,r?r.handle:null),this.indexBuffer=r}setBuffer(t,r){let s=r;if(s.glTarget===34963)throw new Error("Use .setIndexBuffer()");let{size:i,type:n,stride:o,offset:a,normalized:c,integer:_,divisor:d}=this._getAccessor(t);this.device.gl2.bindVertexArray(this.handle),this.device.gl.bindBuffer(34962,s.handle),_?(this.device.assertWebGL2(),this.device.gl2.vertexAttribIPointer(t,i,n,o,a)):this.device.gl.vertexAttribPointer(t,i,n,c,o,a),this.device.gl.enableVertexAttribArray(t),this.device.gl2.vertexAttribDivisor(t,d||0),this.attributes[t]=s}setConstant(t,r){this._enable(t,!1),this.attributes[t]=r}bindBeforeRender(){if(this.device.gl2.bindVertexArray(this.handle),!this.init){let t=this.indexBuffer;this.device.gl2.bindBuffer(34963,t?.handle||null),this.init=!0}this._applyConstantAttributes()}unbindAfterRender(){this.device.gl2.bindVertexArray(null)}_applyConstantAttributes(){for(let t=0;t<this.maxVertexAttributes;++t){let r=this.attributes[t];ArrayBuffer.isView(r)&&this.device.setConstantAttribute(t,r)}}_getAccessor(t){let r=this.attributeInfos[t];if(!r)throw new Error(`Unknown attribute location ${t}`);let s=Qt(r.bufferDataType);return{size:r.bufferComponents,type:s,stride:r.byteStride,offset:r.byteOffset,normalized:r.normalized,integer:r.integer,divisor:r.stepMode==="instance"?1:0}}_enable(t){let r=arguments.length>1&&arguments[1]!==void 0?arguments[1]:!0,i=Qe.isConstantAttributeZeroSupported(this.device)||t!==0;(r||i)&&(t=Number(t),this.device.gl2.bindVertexArray(this.handle),r?this.device.gl.enableVertexAttribArray(t):this.device.gl.disableVertexAttribArray(t),this.device.gl2.bindVertexArray(null))}getConstantBuffer(t,r){let s=ll(r),i=s.byteLength*t,n=s.length*t;if(this.buffer&&i!==this.buffer.byteLength)throw new Error(`Buffer size is immutable, byte length ${i} !== ${this.buffer.byteLength}.`);let o=!this.buffer;if(this.buffer=this.buffer||this.device.createBuffer({byteLength:i}),o=o||!cl(s,this.bufferValue),o){let a=(0,Ge.getScratchArray)(r.constructor,n);(0,Ge.fillArray)({target:a,source:s,start:0,count:n}),this.buffer.write(a),this.bufferValue=r}return this.buffer}};function ll(e){return Array.isArray(e)?new Float32Array(e):e}function cl(e,t){if(!e||!t||e.length!==t.length||e.constructor!==t.constructor)return!1;for(let r=0;r<e.length;++r)if(e[r]!==t[r])return!1;return!0}var Tr=S(x(),1);var pr=class extends Tr.TransformFeedback{constructor(t,r){super(t,r),this.device=void 0,this.gl2=void 0,this.handle=void 0,this.layout=void 0,this.buffers={},this.unusedBuffers={},this.bindOnUse=!0,this._bound=!1,t.assertWebGL2(),this.device=t,this.gl2=t.gl2,this.handle=this.props.handle||this.gl2.createTransformFeedback(),this.layout=this.props.layout,r.buffers&&this.setBuffers(r.buffers),Object.seal(this)}destroy(){this.gl2.deleteTransformFeedback(this.handle),super.destroy()}begin(){let t=arguments.length>0&&arguments[0]!==void 0?arguments[0]:"point-list";this.gl2.bindTransformFeedback(36386,this.handle),this.bindOnUse&&this._bindBuffers(),this.gl2.beginTransformFeedback(On(t))}end(){this.gl2.endTransformFeedback(),this.bindOnUse||this._unbindBuffers(),this.gl2.bindTransformFeedback(36386,null)}setBuffers(t){this.buffers={},this.unusedBuffers={},this.bind(()=>{for(let r in t)this.setBuffer(r,t[r])})}setBuffer(t,r){let s=this._getVaryingIndex(t),{buffer:i,byteLength:n,byteOffset:o}=this._getBufferRange(r);if(s<0){this.unusedBuffers[t]=i,Tr.log.warn(`${this.id} unusedBuffers varying buffer ${t}`)();return}this.buffers[s]={buffer:i,byteLength:n,byteOffset:o},this.bindOnUse||this._bindBuffer(s,i,o,n)}getBuffer(t){if(Un(t))return this.buffers[t]||null;let r=this._getVaryingIndex(t);return r>=0?this.buffers[r]:null}bind(){let t=arguments.length>0&&arguments[0]!==void 0?arguments[0]:this.handle;if(typeof t!="function")return this.gl2.bindTransformFeedback(36386,t),this;let r;return this._bound?r=t():(this.gl2.bindTransformFeedback(36386,this.handle),this._bound=!0,r=t(),this._bound=!1,this.gl2.bindTransformFeedback(36386,null)),r}unbind(){this.bind(null)}_getBufferRange(t){if(t instanceof Y)return{buffer:t,byteOffset:0,byteLength:t.byteLength};let{buffer:r,byteOffset:s=0,byteLength:i=t.buffer.byteLength}=t;return{buffer:r,byteOffset:s,byteLength:i}}_getVaryingIndex(t){if(Un(t))return Number(t);for(let r of this.layout.varyings)if(t===r.name)return r.location;return-1}_bindBuffers(){for(let t in this.buffers){let{buffer:r,byteLength:s,byteOffset:i}=this._getBufferRange(this.buffers[t]);this._bindBuffer(Number(t),r,i,s)}}_unbindBuffers(){for(let t in this.buffers)this.gl2.bindBufferBase(35982,Number(t),null)}_bindBuffer(t,r){let s=arguments.length>2&&arguments[2]!==void 0?arguments[2]:0,i=arguments.length>3?arguments[3]:void 0,n=r&&r.handle;!n||i===void 0?this.gl2.bindBufferBase(35982,t,n):this.gl2.bindBufferRange(35982,t,n,s,i)}};function Un(e){return typeof e=="number"?Number.isInteger(e):/^\d+$/.test(e)}var et=S(x(),1);var Os=S(x(),1);function Fs(e){switch(e){case 6406:case 33326:case 6403:return 1;case 33328:case 33319:return 2;case 6407:case 34837:return 3;case 6408:case 34836:return 4;default:return(0,Os.assert)(!1),0}}function kn(e){switch(e){case 5121:return 1;case 33635:case 32819:case 32820:return 2;case 5126:return 4;default:return(0,Os.assert)(!1),0}}function Wn(e,t){var r;let{sourceX:s=0,sourceY:i=0,sourceFormat:n=6408,sourceAttachment:o=36064}=t||{},{target:a=null,sourceWidth:c,sourceHeight:_,sourceType:d}=t||{},{framebuffer:h,deleteFramebuffer:p}=Hn(e);(0,et.assert)(h);let{gl:A,handle:b}=h;c=c||h.width,_=_||h.height;let y=o-36064;d=d||((r=h.colorAttachments[y])===null||r===void 0?void 0:r.type)||5121,a=fl(a,d,n,c,_),d=d||xn(a);let E=A.bindFramebuffer(36160,b);return A.readPixels(s,i,c,_,n,d,a),A.bindFramebuffer(36160,E||null),p&&h.destroy(),a}function Xn(e,t){let{target:r,sourceX:s=0,sourceY:i=0,sourceFormat:n=6408,targetByteOffset:o=0}=t||{},{sourceWidth:a,sourceHeight:c,sourceType:_}=t||{},{framebuffer:d,deleteFramebuffer:h}=Hn(e);(0,et.assert)(d),a=a||d.width,c=c||d.height;let p=d;_=_||5121;let A=r;if(!A){let y=Fs(n),E=kn(_),U=o+a*c*y*E;A=p.device.createBuffer({byteLength:U})}let b=e.device.createCommandEncoder();return b.copyTextureToBuffer({source:e,width:a,height:c,origin:[s,i],destination:A,byteOffset:o}),b.destroy(),h&&d.destroy(),A}function Hn(e){return e instanceof et.Framebuffer?{framebuffer:e,deleteFramebuffer:!1}:{framebuffer:_l(e),deleteFramebuffer:!0}}function _l(e,t){let{device:r,width:s,height:i,id:n}=e;return r.createFramebuffer({...t,id:`framebuffer-for-${n}`,width:s,height:i,colorAttachments:[e]})}function fl(e,t,r,s,i){if(e)return e;t=t||5121;let n=St(t,{clamped:!1}),o=Fs(r);return new n(s*i*o)}var mt=1,H=class extends M.Device{static isSupported(){return typeof WebGLRenderingContext<"u"||Si()}get features(){return this._features=this._features||en(this.gl),this._features}get limits(){return this._limits=this._limits||rn(this.gl),this._limits}static attach(t){if(t instanceof H)return t;if(t?.device instanceof M.Device)return t.device;if(!ul(t))throw new Error("Invalid WebGLRenderingContext");return new H({gl:t})}static async create(){let t=arguments.length>0&&arguments[0]!==void 0?arguments[0]:{};M.log.groupCollapsed(mt,"WebGLDevice created")(),typeof t.canvas=="string"&&await M.CanvasContext.pageLoaded,(M.log.get("debug")||t.debug)&&await An();let{spector:r}=t;if((M.log.get("spector")||r)&&await gn(),M.log.probe(mt+1,"DOM is loaded")(),t.gl&&t.gl.device)return H.attach(t.gl);let s=new H(t),i=`Created ${s.info.type}${s.debug?" debug":""} context: ${s.info.vendor}, ${s.info.renderer} for canvas: ${s.canvasContext.id}`;return M.log.probe(mt,i)(),M.log.table(mt,s.info)(),M.log.groupEnd(mt)(),s}constructor(t){var r,s;super({...t,id:t.id||(0,M.uid)("webgl-device")}),this.info=void 0,this.canvasContext=void 0,this.handle=void 0,this.lost=void 0,this._resolveContextLost=void 0,this._features=void 0,this._limits=void 0,this.renderPass=null,this.gl=void 0,this.gl2=null,this.debug=!1,this.isWebGL1=void 0,this.isWebGL2=void 0,this._canvasSizeInfo={clientWidth:0,clientHeight:0,devicePixelRatio:1},this._extensions={},this._polyfilled=!1,this.spector=void 0,this._webglLimits=void 0,this._constants=void 0;let i=(r=t.gl)===null||r===void 0?void 0:r.device;if(i)throw new Error(`WebGL context already attached to device ${i.id}`);let n=t.canvas||((s=t.gl)===null||s===void 0?void 0:s.canvas);this.canvasContext=new lr(this,{...t,canvas:n}),this.lost=new Promise(d=>{this._resolveContextLost=d});let o=d=>{var h;return(h=this._resolveContextLost)===null||h===void 0?void 0:h.call(this,{reason:"destroyed",message:"Computer entered sleep mode, or too many apps or browser tabs are using the GPU."})},a=t.gl||null;if(a=a||(re()?Ki(this.canvasContext.canvas,{...t,onContextLost:o}):null),a=a||(re()?null:mi({...t,onContextLost:o})),!a)throw new Error("WebGL context creation failed");this.handle=a,this.gl=this.handle,this.gl2=this.gl,this.isWebGL2=dl(this.gl),this.isWebGL1=!this.isWebGL2,this.canvasContext.resize(),this.info=ji(this.gl),this.gl.device=this,this.gl._version=this.isWebGL2?2:1,Bi(this.gl);let{enable:c=!0,copyState:_=!1}=t;if(Rs(this.gl,{enable:c,copyState:_,log:function(){for(var d=arguments.length,h=new Array(d),p=0;p<d;p++)h[p]=arguments[p];return M.log.log(1,...h)()}}),re()&&t.debug&&(this.gl=bn(this.gl,{...t,webgl2:this.isWebGL2,throwOnError:!0}),this.gl2=this.gl,this.debug=!0,M.log.level=Math.max(M.log.level,1),M.log.warn("WebGL debug mode activated. Performance reduced.")()),re()&&t.spector){let d=this.handle.canvas||t.canvas;this.spector=pn({...this.props,canvas:d})}}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 Tt(this.gl,t)}isTextureFormatFilterable(t){return Zi(this.gl,t)}isTextureFormatRenderable(t){return Ji(this.gl,t)}assertWebGL2(){if(!this.gl2)throw new Error("Requires WebGL2");return this.gl2}createCanvasContext(t){throw new Error("WebGL only supports a single canvas")}createBuffer(t){let r=this._getBufferProps(t);return new Y(this,r)}_createTexture(t){return new X(this,t)}createExternalTexture(t){throw new Error("createExternalTexture() not implemented")}createSampler(t){return new He(this,t)}createShader(t){return new cr(this,t)}createFramebuffer(t){return new ue(this,t)}createRenderPipeline(t){return new ur(this,t)}createVertexArray(t){return new Qe(this,t)}beginRenderPass(t){return new _r(this,t)}createComputePipeline(t){throw new Error("ComputePipeline not supported in WebGL")}beginComputePass(t){throw new Error("ComputePass not supported in WebGL")}createTransformFeedback(t){return new pr(this,t)}getDefaultRenderPass(){return this.renderPass=this.renderPass||this.beginRenderPass({framebuffer:this.canvasContext.getCurrentFramebuffer()}),this.renderPass}createCommandEncoder(t){return new gr(this,t)}submit(){var t;(t=this.renderPass)===null||t===void 0||t.end(),this.renderPass=null}readPixelsToArrayWebGL(t,r){return Wn(t,r)}readPixelsToBufferWebGL2(t,r){return Xn(t,r)}get webglLimits(){return this._webglLimits=this._webglLimits||sn(this.gl),this._webglLimits}loseDevice(){var t;let r=!1,s=this.gl.getExtension("WEBGL_lose_context");return s&&(r=!0,s.loseContext()),(t=this._resolveContextLost)===null||t===void 0||t.call(this,{reason:"destroyed",message:"Application triggered context loss"}),r}pushState(){Ce(this.gl)}popState(){Re(this.gl)}setSpectorMetadata(t,r){t.__SPECTOR_Metadata=r}getGLKey(t,r){r=r||this.gl2||this.gl;let s=Number(t);for(let i in r)if(r[i]===s)return`GL.${i}`;return String(t)}setConstantAttribute(t,r){this._constants=this._constants||new Array(this.limits.maxVertexAttributes).fill(null);let s=this._constants[t];switch(s&&Tl(s,r)&&M.log.info(1,`setConstantAttribute(${t}) could have been skipped, value unchanged`)(),this._constants[t]=r,r.constructor){case Float32Array:hl(this,t,r);break;case Int32Array:gl(this,t,r);break;case Uint32Array:pl(this,t,r);break;default:(0,M.assert)(!1)}}};H.type="webgl";function ul(e){return typeof WebGLRenderingContext<"u"&&e instanceof WebGLRenderingContext||typeof WebGL2RenderingContext<"u"&&e instanceof WebGL2RenderingContext?!0:Boolean(e&&Number.isFinite(e._version))}function dl(e){return typeof WebGL2RenderingContext<"u"&&e instanceof WebGL2RenderingContext?!0:Boolean(e&&e._version===2)}function hl(e,t,r){switch(r.length){case 1:e.gl.vertexAttrib1fv(t,r);break;case 2:e.gl.vertexAttrib2fv(t,r);break;case 3:e.gl.vertexAttrib3fv(t,r);break;case 4:e.gl.vertexAttrib4fv(t,r);break;default:(0,M.assert)(!1)}}function gl(e,t,r){var s;e.assertWebGL2(),(s=e.gl2)===null||s===void 0||s.vertexAttribI4iv(t,r)}function pl(e,t,r){var s;e.assertWebGL2(),(s=e.gl2)===null||s===void 0||s.vertexAttribI4uiv(t,r)}function Tl(e,t){if(!e||!t||e.length!==t.length||e.constructor!==t.constructor)return!1;for(let r=0;r<e.length;++r)if(e[r]!==t[r])return!1;return!0}var Vn=S(vt());function Ar(e){var t=this;this.buffer=e.createBuffer(new Int8Array([-1,-1,1,-1,-1,1,1,1])),this.model=new Ne(e,{vs:`#version 300 es
136
139
  in vec2 a_pos;
137
140
  out vec2 v_texcoord;
138
141
  void main(void) {
@@ -149,9 +152,9 @@ void main(void) {
149
152
  rgba.rgb *= rgba.a;
150
153
  fragColor = rgba;
151
154
  }
152
- `,attributes:{a_pos:this.buffer},vertexCount:4,drawMode:5}),this.deckFbo=e.createFramebuffer({width:1,height:1}),this.deckInstance=new ls.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 Mt(e){var t=this,r=e.gl,i=e.width,s=e.height,o=e.viewState,n=r.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"),Z(r,{blend:!0,blendFunc:[1,771],framebuffer:n,viewport:[0,0,i,s]},function(){t.model.setUniforms({u_texture:t.deckFbo}).draw(t.context.renderPass)})}function Bt(){var e,t,r,i;(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(),(i=this.deckFbo)===null||i===void 0||i.delete()}function Un(e,t){return Xn(e)||Wn(e,t)||wn(e,t)||mn()}function mn(){throw new TypeError(`Invalid attempt to destructure non-iterable instance.
153
- In order to be iterable, non-array objects must have a [Symbol.iterator]() method.`)}function wn(e,t){if(e){if(typeof e=="string")return fs(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 fs(e,t)}}function fs(e,t){(t==null||t>e.length)&&(t=e.length);for(var r=0,i=new Array(t);r<t;r++)i[r]=e[r];return i}function Wn(e,t){var r=e==null?null:typeof Symbol<"u"&&e[Symbol.iterator]||e["@@iterator"];if(r!=null){var i=[],s=!0,o=!1,n,a;try{for(r=r.call(e);!(s=(n=r.next()).done)&&(i.push(n.value),!(t&&i.length===t));s=!0);}catch(l){o=!0,a=l}finally{try{!s&&r.return!=null&&r.return()}finally{if(o)throw a}}return i}}function Xn(e){if(Array.isArray(e))return e}function ar(e){return e.createSubclass({properties:{deckgl:{},deckFbo:{},model:{},buffer:{}},attach:function(){var r=this,i=this.context;Ft.call(this,i),this.layer.deck.on("change",function(s){return r.deckInstance.setProps(s)}),this.deckInstance.setProps(this.layer.deck.toJSON())},redraw:function(){this.requestRender()},detach:function(){Bt.call(this)},render:function(r){var i=Un(this.view.state.size,2),s=i[0],o=i[1],n=r.state;Mt.call(this,{gl:r.context,width:s,height:o,viewState:{latitude:this.view.center.latitude,longitude:this.view.center.longitude,zoom:this.view.featuresTilingScheme.scaleToLevel(n.scale),bearing:-n.rotation,pitch:0}})}})}function Hn(e,t){return jn(e)||Kn(e,t)||kn(e,t)||Vn()}function Vn(){throw new TypeError(`Invalid attempt to destructure non-iterable instance.
154
- In order to be iterable, non-array objects must have a [Symbol.iterator]() method.`)}function kn(e,t){if(e){if(typeof e=="string")return cs(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 cs(e,t)}}function cs(e,t){(t==null||t>e.length)&&(t=e.length);for(var r=0,i=new Array(t);r<t;r++)i[r]=e[r];return i}function Kn(e,t){var r=e==null?null:typeof Symbol<"u"&&e[Symbol.iterator]||e["@@iterator"];if(r!=null){var i=[],s=!0,o=!1,n,a;try{for(r=r.call(e);!(s=(n=r.next()).done)&&(i.push(n.value),!(t&&i.length===t));s=!0);}catch(l){o=!0,a=l}finally{try{!s&&r.return!=null&&r.return()}finally{if(o)throw a}}return i}}function jn(e){if(Array.isArray(e))return e}function Yn(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}function $n(e,t){var r=Math.sqrt(1+Math.pow(t,2)),i=e/2/180*Math.PI;return r/2/Math.tan(i)}function lr(e,t){var r=function(){function i(o,n){Yn(this,i),this.view=o,this.deck=new e(n)}var s=i.prototype;return s.setup=function(n){var a=this,l=n.gl;Ft.call(this,l),this.deck.on("change",function(f){return a.deckInstance.setProps(f)}),this.deckInstance.setProps(this.deck.toJSON())},s.dispose=function(){Bt.call(this)},s.redraw=function(){t.requestRender(this.view)},s.render=function(n){var a=Hn(this.view.size,2),l=a[0],f=a[1];Mt.call(this,{gl:n.gl,width:l,height:f,viewState:{latitude:this.view.center.latitude,longitude:this.view.center.longitude,altitude:$n(this.view.camera.fov,l/f),zoom:this.view.zoom,bearing:this.view.camera.heading,pitch:this.view.camera.tilt}})},i}();return r}var cr=E(ds());function hs(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var i=Object.getOwnPropertySymbols(e);t&&(i=i.filter(function(s){return Object.getOwnPropertyDescriptor(e,s).enumerable})),r.push.apply(r,i)}return r}function us(e){for(var t=1;t<arguments.length;t++){var r=arguments[t]!=null?arguments[t]:{};t%2?hs(Object(r),!0).forEach(function(i){zn(e,i,r[i])}):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(r)):hs(Object(r)).forEach(function(i){Object.defineProperty(e,i,Object.getOwnPropertyDescriptor(r,i))})}return e}function zn(e,t,r){return t in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r,e}function Ln(e,t){return Qn(e)||Jn(e,t)||qn(e,t)||Zn()}function Zn(){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 qn(e,t){if(e){if(typeof e=="string")return As(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 As(e,t)}}function As(e,t){(t==null||t>e.length)&&(t=e.length);for(var r=0,i=new Array(t);r<t;r++)i[r]=e[r];return i}function Jn(e,t){var r=e==null?null:typeof Symbol<"u"&&e[Symbol.iterator]||e["@@iterator"];if(r!=null){var i=[],s=!0,o=!1,n,a;try{for(r=r.call(e);!(s=(n=r.next()).done)&&(i.push(n.value),!(t&&i.length===t));s=!0);}catch(l){o=!0,a=l}finally{try{!s&&r.return!=null&&r.return()}finally{if(o)throw a}}return i}}function Qn(e){if(Array.isArray(e))return e}function Ts(e,t,r,i,s,o,n){try{var a=e[o](n),l=a.value}catch(f){r(f);return}a.done?t(l):Promise.resolve(l).then(i,s)}function Gn(e){return function(){var t=this,r=arguments;return new Promise(function(i,s){var o=e.apply(t,r);function n(l){Ts(o,i,s,n,a,"next",l)}function a(l){Ts(o,i,s,n,a,"throw",l)}n(void 0)})}}var ye=null;function ea(e,t){return fr.apply(this,arguments)}function fr(){return fr=Gn(regeneratorRuntime.mark(function e(t,r){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,ta(i,r);case 3:if(!Array.isArray(t)){o.next=5;break}return o.abrupt("return",(0,cr.loadModules)(t,r).then(function(n){return us(us({},ye),{},{modules:n})}));case 5:return o.abrupt("return",ye);case 6:case"end":return o.stop()}},e)})),fr.apply(this,arguments)}function ta(e,t){if(ye)return ye;if(e){var r=e.layers.Layer,i=e.core.Accessor,s=e.views["2d"].layers.BaseLayerViewGL2D,o=e.views["3d"].externalRenderers;return Rs(r,i,s,o)}return(0,cr.loadModules)(["esri/layers/Layer","esri/core/Accessor","esri/views/2d/layers/BaseLayerViewGL2D","esri/views/3d/externalRenderers"],t).then(function(n){var a=Ln(n,4),l=a[0],f=a[1],c=a[2],_=a[3];return Rs(l,f,c,_)})}function Rs(e,t,r,i){var s=vt(t),o=ar(r),n=Ut(s,e,o),a=lr(s,i);return ye={DeckLayer:n,DeckRenderer:a},ye}return xs(Ge);})();
155
+ `,attributes:{a_pos:this.buffer},vertexCount:4,drawMode:5}),this.deckFbo=e.createFramebuffer({width:1,height:1}),this.deckInstance=new Vn.Deck({viewState:{},controller:!1,gl:e.gl,parameters:{depthTest:!0},_framebuffer:this.deckFbo,width:null,height:null,_customRender:function(s){s==="arcgis"?t.deckInstance._drawLayers(s):t.redraw()}})}function br(e){var t=this,r=e.gl,s=e.width,i=e.height,n=e.viewState,o=r.getParameter(36006),a=window.devicePixelRatio;s=Math.round(s*a),i=Math.round(i*a),this.deckFbo.resize({width:s,height:i}),this.deckInstance.setProps({viewState:n}),this.deckInstance.redraw("arcgis"),ie(r,{blend:!0,blendFunc:[1,771],framebuffer:o,viewport:[0,0,s,i]},function(){t.model.setUniforms({u_texture:t.deckFbo}).draw(t.context.renderPass)})}function Rr(){var e,t,r,s;(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(),(s=this.deckFbo)===null||s===void 0||s.delete()}function Al(e,t){return Sl(e)||El(e,t)||Rl(e,t)||bl()}function bl(){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 Rl(e,t){if(e){if(typeof e=="string")return Kn(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 Kn(e,t)}}function Kn(e,t){(t==null||t>e.length)&&(t=e.length);for(var r=0,s=new Array(t);r<t;r++)s[r]=e[r];return s}function El(e,t){var r=e==null?null:typeof Symbol<"u"&&e[Symbol.iterator]||e["@@iterator"];if(r!=null){var s=[],i=!0,n=!1,o,a;try{for(r=r.call(e);!(i=(o=r.next()).done)&&(s.push(o.value),!(t&&s.length===t));i=!0);}catch(c){n=!0,a=c}finally{try{!i&&r.return!=null&&r.return()}finally{if(n)throw a}}return s}}function Sl(e){if(Array.isArray(e))return e}function Ms(e){return e.createSubclass({properties:{deckgl:{},deckFbo:{},model:{},buffer:{}},attach:function(){var r=this,s=this.context;Ar.call(this,s),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(){Rr.call(this)},render:function(r){var s=Al(this.view.state.size,2),i=s[0],n=s[1],o=r.state;br.call(this,{gl:r.context,width:i,height:n,viewState:{latitude:this.view.center.latitude,longitude:this.view.center.longitude,zoom:this.view.featuresTilingScheme.scaleToLevel(o.scale),bearing:-o.rotation,pitch:0}})}})}function ml(e,t){return vl(e)||wl(e,t)||yl(e,t)||xl()}function xl(){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 yl(e,t){if(e){if(typeof e=="string")return jn(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 jn(e,t)}}function jn(e,t){(t==null||t>e.length)&&(t=e.length);for(var r=0,s=new Array(t);r<t;r++)s[r]=e[r];return s}function wl(e,t){var r=e==null?null:typeof Symbol<"u"&&e[Symbol.iterator]||e["@@iterator"];if(r!=null){var s=[],i=!0,n=!1,o,a;try{for(r=r.call(e);!(i=(o=r.next()).done)&&(s.push(o.value),!(t&&s.length===t));i=!0);}catch(c){n=!0,a=c}finally{try{!i&&r.return!=null&&r.return()}finally{if(n)throw a}}return s}}function vl(e){if(Array.isArray(e))return e}function Nl(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}function Il(e,t){var r=Math.sqrt(1+Math.pow(t,2)),s=e/2/180*Math.PI;return r/2/Math.tan(s)}function Bs(e,t){var r=function(){function s(n,o){Nl(this,s),this.view=n,this.deck=new e(o)}var i=s.prototype;return i.setup=function(o){var a=this,c=o.gl;Ar.call(this,c),this.deck.on("change",function(_){return a.deckInstance.setProps(_)}),this.deckInstance.setProps(this.deck.toJSON())},i.dispose=function(){Rr.call(this)},i.redraw=function(){t.requestRender(this.view)},i.render=function(o){var a=ml(this.view.size,2),c=a[0],_=a[1];br.call(this,{gl:o.gl,width:c,height:_,viewState:{latitude:this.view.center.latitude,longitude:this.view.center.longitude,altitude:Il(this.view.camera.fov,c/_),zoom:this.view.zoom,bearing:this.view.camera.heading,pitch:this.view.camera.tilt}})},s}();return r}var Ps=S(Yn());function $n(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var s=Object.getOwnPropertySymbols(e);t&&(s=s.filter(function(i){return Object.getOwnPropertyDescriptor(e,i).enumerable})),r.push.apply(r,s)}return r}function Ln(e){for(var t=1;t<arguments.length;t++){var r=arguments[t]!=null?arguments[t]:{};t%2?$n(Object(r),!0).forEach(function(s){Cl(e,s,r[s])}):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(r)):$n(Object(r)).forEach(function(s){Object.defineProperty(e,s,Object.getOwnPropertyDescriptor(r,s))})}return e}function Cl(e,t,r){return t in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r,e}function Ol(e,t){return Dl(e)||Bl(e,t)||Ml(e,t)||Fl()}function Fl(){throw new TypeError(`Invalid attempt to destructure non-iterable instance.
158
+ In order to be iterable, non-array objects must have a [Symbol.iterator]() method.`)}function Ml(e,t){if(e){if(typeof e=="string")return qn(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 qn(e,t)}}function qn(e,t){(t==null||t>e.length)&&(t=e.length);for(var r=0,s=new Array(t);r<t;r++)s[r]=e[r];return s}function Bl(e,t){var r=e==null?null:typeof Symbol<"u"&&e[Symbol.iterator]||e["@@iterator"];if(r!=null){var s=[],i=!0,n=!1,o,a;try{for(r=r.call(e);!(i=(o=r.next()).done)&&(s.push(o.value),!(t&&s.length===t));i=!0);}catch(c){n=!0,a=c}finally{try{!i&&r.return!=null&&r.return()}finally{if(n)throw a}}return s}}function Dl(e){if(Array.isArray(e))return e}function Zn(e,t,r,s,i,n,o){try{var a=e[n](o),c=a.value}catch(_){r(_);return}a.done?t(c):Promise.resolve(c).then(s,i)}function Pl(e){return function(){var t=this,r=arguments;return new Promise(function(s,i){var n=e.apply(t,r);function o(c){Zn(n,s,i,o,a,"next",c)}function a(c){Zn(n,s,i,o,a,"throw",c)}o(void 0)})}}var tt=null;function Ul(e,t){return Ds.apply(this,arguments)}function Ds(){return Ds=Pl(regeneratorRuntime.mark(function e(t,r){var s;return regeneratorRuntime.wrap(function(n){for(;;)switch(n.prev=n.next){case 0:return s=Array.isArray(t)?null:t,n.next=3,kl(s,r);case 3:if(!Array.isArray(t)){n.next=5;break}return n.abrupt("return",(0,Ps.loadModules)(t,r).then(function(o){return Ln(Ln({},tt),{},{modules:o})}));case 5:return n.abrupt("return",tt);case 6:case"end":return n.stop()}},e)})),Ds.apply(this,arguments)}function kl(e,t){if(tt)return tt;if(e){var r=e.layers.Layer,s=e.core.Accessor,i=e.views["2d"].layers.BaseLayerViewGL2D,n=e.views["3d"].externalRenderers;return Jn(r,s,i,n)}return(0,Ps.loadModules)(["esri/layers/Layer","esri/core/Accessor","esri/views/2d/layers/BaseLayerViewGL2D","esri/views/3d/externalRenderers"],t).then(function(o){var a=Ol(o,4),c=a[0],_=a[1],d=a[2],h=a[3];return Jn(c,_,d,h)})}function Jn(e,t,r,s){var i=xr(t),n=Ms(r),o=yr(i,e,n),a=Bs(i,s);return tt={DeckLayer:o,DeckRenderer:a},tt}return no(xt);})();
156
159
  return __exports__;
157
160
  });