@luma.gl/gltf 9.0.0-alpha.43

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 (41) hide show
  1. package/LICENSE +34 -0
  2. package/README.md +3 -0
  3. package/dist/dist.dev.js +15822 -0
  4. package/dist/gltf/create-gltf-model.d.ts +13 -0
  5. package/dist/gltf/create-gltf-model.d.ts.map +1 -0
  6. package/dist/gltf/create-gltf-model.js +105 -0
  7. package/dist/gltf/create-gltf-model.js.map +1 -0
  8. package/dist/gltf/create-gltf-objects.d.ts +9 -0
  9. package/dist/gltf/create-gltf-objects.d.ts.map +1 -0
  10. package/dist/gltf/create-gltf-objects.js +11 -0
  11. package/dist/gltf/create-gltf-objects.js.map +1 -0
  12. package/dist/gltf/gltf-animator.d.ts +35 -0
  13. package/dist/gltf/gltf-animator.d.ts.map +1 -0
  14. package/dist/gltf/gltf-animator.js +223 -0
  15. package/dist/gltf/gltf-animator.js.map +1 -0
  16. package/dist/gltf/gltf-instantiator.d.ts +45 -0
  17. package/dist/gltf/gltf-instantiator.d.ts.map +1 -0
  18. package/dist/gltf/gltf-instantiator.js +180 -0
  19. package/dist/gltf/gltf-instantiator.js.map +1 -0
  20. package/dist/index.cjs +635 -0
  21. package/dist/index.d.ts +6 -0
  22. package/dist/index.d.ts.map +1 -0
  23. package/dist/index.js +4 -0
  24. package/dist/index.js.map +1 -0
  25. package/dist/pbr/parse-pbr-material.d.ts +26 -0
  26. package/dist/pbr/parse-pbr-material.d.ts.map +1 -0
  27. package/dist/pbr/parse-pbr-material.js +137 -0
  28. package/dist/pbr/parse-pbr-material.js.map +1 -0
  29. package/dist/pbr/pbr-environment.d.ts +18 -0
  30. package/dist/pbr/pbr-environment.d.ts.map +1 -0
  31. package/dist/pbr/pbr-environment.js +64 -0
  32. package/dist/pbr/pbr-environment.js.map +1 -0
  33. package/dist.min.js +1253 -0
  34. package/package.json +53 -0
  35. package/src/gltf/create-gltf-model.ts +120 -0
  36. package/src/gltf/create-gltf-objects.ts +18 -0
  37. package/src/gltf/gltf-animator.ts +223 -0
  38. package/src/gltf/gltf-instantiator.ts +225 -0
  39. package/src/index.ts +10 -0
  40. package/src/pbr/parse-pbr-material.ts +398 -0
  41. package/src/pbr/pbr-environment.ts +88 -0
package/dist.min.js ADDED
@@ -0,0 +1,1253 @@
1
+ (function webpackUniversalModuleDefinition(root, factory) {
2
+ if (typeof exports === 'object' && typeof module === 'object')
3
+ module.exports = factory();
4
+ else if (typeof define === 'function' && define.amd) define([], factory);
5
+ else if (typeof exports === 'object') exports['luma'] = factory();
6
+ else root['luma'] = factory();})(globalThis, function () {
7
+ var __exports__=(()=>{var ru=Object.create;var hr=Object.defineProperty;var nu=Object.getOwnPropertyDescriptor;var iu=Object.getOwnPropertyNames;var ou=Object.getPrototypeOf,au=Object.prototype.hasOwnProperty;var _n=(e,t)=>()=>(t||e((t={exports:{}}).exports,t),t.exports),su=(e,t)=>{for(var r in t)hr(e,r,{get:t[r],enumerable:!0})},Ui=(e,t,r,n)=>{if(t&&typeof t=="object"||typeof t=="function")for(let i of iu(t))!au.call(e,i)&&i!==r&&hr(e,i,{get:()=>t[i],enumerable:!(n=nu(t,i))||n.enumerable});return e};var nt=(e,t,r)=>(r=e!=null?ru(ou(e)):{},Ui(t||!e||!e.__esModule?hr(r,"default",{value:e,enumerable:!0}):r,e)),cu=e=>Ui(hr({},"__esModule",{value:!0}),e);var $i=_n((Jh,Le)=>{function dn(e){return Le.exports=dn=typeof Symbol=="function"&&typeof Symbol.iterator=="symbol"?function(t){return typeof t}:function(t){return t&&typeof Symbol=="function"&&t.constructor===Symbol&&t!==Symbol.prototype?"symbol":typeof t},Le.exports.__esModule=!0,Le.exports.default=Le.exports,dn(e)}Le.exports=dn,Le.exports.__esModule=!0,Le.exports.default=Le.exports});var eo=_n((em,He)=>{var Qi=$i().default;function Ji(){"use strict";He.exports=Ji=function(){return e},He.exports.__esModule=!0,He.exports.default=He.exports;var e={},t=Object.prototype,r=t.hasOwnProperty,n=Object.defineProperty||function(O,R,T){O[R]=T.value},i=typeof Symbol=="function"?Symbol:{},o=i.iterator||"@@iterator",a=i.asyncIterator||"@@asyncIterator",c=i.toStringTag||"@@toStringTag";function f(O,R,T){return Object.defineProperty(O,R,{value:T,enumerable:!0,configurable:!0,writable:!0}),O[R]}try{f({},"")}catch{f=function(T,N,B){return T[N]=B}}function u(O,R,T,N){var B=R&&R.prototype instanceof p?R:p,U=Object.create(B.prototype),k=new K(N||[]);return n(U,"_invoke",{value:x(O,T,k)}),U}function _(O,R,T){try{return{type:"normal",arg:O.call(R,T)}}catch(N){return{type:"throw",arg:N}}}e.wrap=u;var E={};function p(){}function d(){}function h(){}var m={};f(m,o,function(){return this});var A=Object.getPrototypeOf,g=A&&A(A(V([])));g&&g!==t&&r.call(g,o)&&(m=g);var y=h.prototype=p.prototype=Object.create(m);function b(O){["next","throw","return"].forEach(function(R){f(O,R,function(T){return this._invoke(R,T)})})}function S(O,R){function T(B,U,k,ie){var Q=_(O[B],O,U);if(Q.type!=="throw"){var le=Q.arg,ce=le.value;return ce&&Qi(ce)=="object"&&r.call(ce,"__await")?R.resolve(ce.__await).then(function(Ee){T("next",Ee,k,ie)},function(Ee){T("throw",Ee,k,ie)}):R.resolve(ce).then(function(Ee){le.value=Ee,k(le)},function(Ee){return T("throw",Ee,k,ie)})}ie(Q.arg)}var N;n(this,"_invoke",{value:function(U,k){function ie(){return new R(function(Q,le){T(U,k,Q,le)})}return N=N?N.then(ie,ie):ie()}})}function x(O,R,T){var N="suspendedStart";return function(B,U){if(N==="executing")throw new Error("Generator is already running");if(N==="completed"){if(B==="throw")throw U;return{value:void 0,done:!0}}for(T.method=B,T.arg=U;;){var k=T.delegate;if(k){var ie=P(k,T);if(ie){if(ie===E)continue;return ie}}if(T.method==="next")T.sent=T._sent=T.arg;else if(T.method==="throw"){if(N==="suspendedStart")throw N="completed",T.arg;T.dispatchException(T.arg)}else T.method==="return"&&T.abrupt("return",T.arg);N="executing";var Q=_(O,R,T);if(Q.type==="normal"){if(N=T.done?"completed":"suspendedYield",Q.arg===E)continue;return{value:Q.arg,done:T.done}}Q.type==="throw"&&(N="completed",T.method="throw",T.arg=Q.arg)}}}function P(O,R){var T=R.method,N=O.iterator[T];if(N===void 0)return R.delegate=null,T==="throw"&&O.iterator.return&&(R.method="return",R.arg=void 0,P(O,R),R.method==="throw")||T!=="return"&&(R.method="throw",R.arg=new TypeError("The iterator does not provide a '"+T+"' method")),E;var B=_(N,O.iterator,R.arg);if(B.type==="throw")return R.method="throw",R.arg=B.arg,R.delegate=null,E;var U=B.arg;return U?U.done?(R[O.resultName]=U.value,R.next=O.nextLoc,R.method!=="return"&&(R.method="next",R.arg=void 0),R.delegate=null,E):U:(R.method="throw",R.arg=new TypeError("iterator result is not an object"),R.delegate=null,E)}function j(O){var R={tryLoc:O[0]};1 in O&&(R.catchLoc=O[1]),2 in O&&(R.finallyLoc=O[2],R.afterLoc=O[3]),this.tryEntries.push(R)}function W(O){var R=O.completion||{};R.type="normal",delete R.arg,O.completion=R}function K(O){this.tryEntries=[{tryLoc:"root"}],O.forEach(j,this),this.reset(!0)}function V(O){if(O||O===""){var R=O[o];if(R)return R.call(O);if(typeof O.next=="function")return O;if(!isNaN(O.length)){var T=-1,N=function B(){for(;++T<O.length;)if(r.call(O,T))return B.value=O[T],B.done=!1,B;return B.value=void 0,B.done=!0,B};return N.next=N}}throw new TypeError(Qi(O)+" is not iterable")}return d.prototype=h,n(y,"constructor",{value:h,configurable:!0}),n(h,"constructor",{value:d,configurable:!0}),d.displayName=f(h,c,"GeneratorFunction"),e.isGeneratorFunction=function(O){var R=typeof O=="function"&&O.constructor;return!!R&&(R===d||(R.displayName||R.name)==="GeneratorFunction")},e.mark=function(O){return Object.setPrototypeOf?Object.setPrototypeOf(O,h):(O.__proto__=h,f(O,c,"GeneratorFunction")),O.prototype=Object.create(y),O},e.awrap=function(O){return{__await:O}},b(S.prototype),f(S.prototype,a,function(){return this}),e.AsyncIterator=S,e.async=function(O,R,T,N,B){B===void 0&&(B=Promise);var U=new S(u(O,R,T,N),B);return e.isGeneratorFunction(R)?U:U.next().then(function(k){return k.done?k.value:U.next()})},b(y),f(y,c,"Generator"),f(y,o,function(){return this}),f(y,"toString",function(){return"[object Generator]"}),e.keys=function(O){var R=Object(O),T=[];for(var N in R)T.push(N);return T.reverse(),function B(){for(;T.length;){var U=T.pop();if(U in R)return B.value=U,B.done=!1,B}return B.done=!0,B}},e.values=V,K.prototype={constructor:K,reset:function(R){if(this.prev=0,this.next=0,this.sent=this._sent=void 0,this.done=!1,this.delegate=null,this.method="next",this.arg=void 0,this.tryEntries.forEach(W),!R)for(var T in this)T.charAt(0)==="t"&&r.call(this,T)&&!isNaN(+T.slice(1))&&(this[T]=void 0)},stop:function(){this.done=!0;var R=this.tryEntries[0].completion;if(R.type==="throw")throw R.arg;return this.rval},dispatchException:function(R){if(this.done)throw R;var T=this;function N(le,ce){return k.type="throw",k.arg=R,T.next=le,ce&&(T.method="next",T.arg=void 0),!!ce}for(var B=this.tryEntries.length-1;B>=0;--B){var U=this.tryEntries[B],k=U.completion;if(U.tryLoc==="root")return N("end");if(U.tryLoc<=this.prev){var ie=r.call(U,"catchLoc"),Q=r.call(U,"finallyLoc");if(ie&&Q){if(this.prev<U.catchLoc)return N(U.catchLoc,!0);if(this.prev<U.finallyLoc)return N(U.finallyLoc)}else if(ie){if(this.prev<U.catchLoc)return N(U.catchLoc,!0)}else{if(!Q)throw new Error("try statement without catch or finally");if(this.prev<U.finallyLoc)return N(U.finallyLoc)}}}},abrupt:function(R,T){for(var N=this.tryEntries.length-1;N>=0;--N){var B=this.tryEntries[N];if(B.tryLoc<=this.prev&&r.call(B,"finallyLoc")&&this.prev<B.finallyLoc){var U=B;break}}U&&(R==="break"||R==="continue")&&U.tryLoc<=T&&T<=U.finallyLoc&&(U=null);var k=U?U.completion:{};return k.type=R,k.arg=T,U?(this.method="next",this.next=U.finallyLoc,E):this.complete(k)},complete:function(R,T){if(R.type==="throw")throw R.arg;return R.type==="break"||R.type==="continue"?this.next=R.arg:R.type==="return"?(this.rval=this.arg=R.arg,this.method="return",this.next="end"):R.type==="normal"&&T&&(this.next=T),E},finish:function(R){for(var T=this.tryEntries.length-1;T>=0;--T){var N=this.tryEntries[T];if(N.finallyLoc===R)return this.complete(N.completion,N.afterLoc),W(N),E}},catch:function(R){for(var T=this.tryEntries.length-1;T>=0;--T){var N=this.tryEntries[T];if(N.tryLoc===R){var B=N.completion;if(B.type==="throw"){var U=B.arg;W(N)}return U}}throw new Error("illegal catch attempt")},delegateYield:function(R,T,N){return this.delegate={iterator:V(R),resultName:T,nextLoc:N},this.method==="next"&&(this.arg=void 0),E}},e}He.exports=Ji,He.exports.__esModule=!0,He.exports.default=He.exports});var ke=_n((tm,to)=>{var Sr=eo()();to.exports=Sr;try{regeneratorRuntime=Sr}catch{typeof globalThis=="object"?globalThis.regeneratorRuntime=Sr:Function("r","regeneratorRuntime = r")(Sr)}});var Dd={};su(Dd,{GLTFAnimator:()=>fn,createScenegraphsFromGLTF:()=>eu,parsePBRMaterial:()=>wr});function oe(e){return oe=typeof Symbol=="function"&&typeof Symbol.iterator=="symbol"?function(t){return typeof t}:function(t){return t&&typeof Symbol=="function"&&t.constructor===Symbol&&t!==Symbol.prototype?"symbol":typeof t},oe(e)}function En(e,t){if(oe(e)!=="object"||e===null)return e;var r=e[Symbol.toPrimitive];if(r!==void 0){var n=r.call(e,t||"default");if(oe(n)!=="object")return n;throw new TypeError("@@toPrimitive must return a primitive value.")}return(t==="string"?String:Number)(e)}function Ut(e){var t=En(e,"string");return oe(t)==="symbol"?t:String(t)}function l(e,t,r){return t=Ut(t),t in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r,e}function wt(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 te(){return!(typeof process=="object"&&String(process)==="[object process]"&&!process.browser)||wt()}var fu=globalThis.self||globalThis.window||globalThis.global,Et=globalThis.window||globalThis.self||globalThis.global,uu=globalThis.document||{},it=globalThis.process||{},lu=globalThis.console,wi=globalThis.navigator||{};var mr=typeof __VERSION__<"u"?__VERSION__:"untranspiled source",qd=te();var pn=globalThis;function Rr(e){if(!e&&!te())return"Node";if(wt(e))return"Electron";let t=e||wi.userAgent||"";if(t.indexOf("Edge")>-1)return"Edge";let r=t.indexOf("MSIE ")!==-1,n=t.indexOf("Trident/")!==-1;return r||n?"IE":pn.chrome?"Chrome":pn.safari?"Safari":pn.mozInnerScreenX?"Firefox":"Unknown"}function _u(e){try{let t=window[e],r="__storage_test__";return t.setItem(r,r),t.removeItem(r),t}catch{return null}}var Ar=class{constructor(t,r){let n=arguments.length>2&&arguments[2]!==void 0?arguments[2]:"sessionStorage";this.storage=void 0,this.id=void 0,this.config=void 0,this.storage=_u(n),this.id=t,this.config=r,this._loadConfiguration()}getConfiguration(){return this.config}setConfiguration(t){if(Object.assign(this.config,t),this.storage){let r=JSON.stringify(this.config);this.storage.setItem(this.id,r)}}_loadConfiguration(){let t={};if(this.storage){let r=this.storage.getItem(this.id);t=r?JSON.parse(r):{}}return Object.assign(this.config,t),this}};function Li(e){let t;return e<10?t="".concat(e.toFixed(2),"ms"):e<100?t="".concat(e.toFixed(1),"ms"):e<1e3?t="".concat(e.toFixed(0),"ms"):t="".concat((e/1e3).toFixed(2),"s"),t}function Hi(e){let t=arguments.length>1&&arguments[1]!==void 0?arguments[1]:8,r=Math.max(t-e.length,0);return"".concat(" ".repeat(r)).concat(e)}function gr(e,t,r){let n=arguments.length>3&&arguments[3]!==void 0?arguments[3]:600,i=e.src.replace(/\(/g,"%28").replace(/\)/g,"%29");e.width>n&&(r=Math.min(r,n/e.width));let o=e.width*r,a=e.height*r,c=["font-size:1px;","padding:".concat(Math.floor(a/2),"px ").concat(Math.floor(o/2),"px;"),"line-height:".concat(a,"px;"),"background:url(".concat(i,");"),"background-size:".concat(o,"px ").concat(a,"px;"),"color:transparent;"].join("");return["".concat(t," %c+"),c]}var Tr;(function(e){e[e.BLACK=30]="BLACK",e[e.RED=31]="RED",e[e.GREEN=32]="GREEN",e[e.YELLOW=33]="YELLOW",e[e.BLUE=34]="BLUE",e[e.MAGENTA=35]="MAGENTA",e[e.CYAN=36]="CYAN",e[e.WHITE=37]="WHITE",e[e.BRIGHT_BLACK=90]="BRIGHT_BLACK",e[e.BRIGHT_RED=91]="BRIGHT_RED",e[e.BRIGHT_GREEN=92]="BRIGHT_GREEN",e[e.BRIGHT_YELLOW=93]="BRIGHT_YELLOW",e[e.BRIGHT_BLUE=94]="BRIGHT_BLUE",e[e.BRIGHT_MAGENTA=95]="BRIGHT_MAGENTA",e[e.BRIGHT_CYAN=96]="BRIGHT_CYAN",e[e.BRIGHT_WHITE=97]="BRIGHT_WHITE"})(Tr||(Tr={}));var Eu=10;function Xi(e){return typeof e!="string"?e:(e=e.toUpperCase(),Tr[e]||Tr.WHITE)}function Vi(e,t,r){if(!te&&typeof e=="string"){if(t){let n=Xi(t);e="\x1B[".concat(n,"m").concat(e,"\x1B[39m")}if(r){let n=Xi(r);e="\x1B[".concat(n+Eu,"m").concat(e,"\x1B[49m")}}return e}function Wi(e){let t=arguments.length>1&&arguments[1]!==void 0?arguments[1]:["constructor"],r=Object.getPrototypeOf(e),n=Object.getOwnPropertyNames(r),i=e;for(let o of n){let a=i[o];typeof a=="function"&&(t.find(c=>o===c)||(i[o]=a.bind(e)))}}function pt(e,t){if(!e)throw new Error(t||"Assertion failed")}function ot(){let e;if(te()&&Et.performance){var t,r;e=Et===null||Et===void 0||(t=Et.performance)===null||t===void 0||(r=t.now)===null||r===void 0?void 0:r.call(t)}else if("hrtime"in it){var n;let i=it===null||it===void 0||(n=it.hrtime)===null||n===void 0?void 0:n.call(it);e=i[0]*1e3+i[1]/1e6}else e=Date.now();return e}var dt={debug:te()&&console.debug||console.log,log:console.log,info:console.info,warn:console.warn,error:console.error},pu={enabled:!0,level:0};function Oe(){}var ji={},Gi={once:!0},Ye=class{constructor(){let{id:t}=arguments.length>0&&arguments[0]!==void 0?arguments[0]:{id:""};this.id=void 0,this.VERSION=mr,this._startTs=ot(),this._deltaTs=ot(),this._storage=void 0,this.userData={},this.LOG_THROTTLE_TIMEOUT=0,this.id=t,this.userData={},this._storage=new Ar("__probe-".concat(this.id,"__"),pu),this.timeStamp("".concat(this.id," started")),Wi(this),Object.seal(this)}set level(t){this.setLevel(t)}get level(){return this.getLevel()}isEnabled(){return this._storage.config.enabled}getLevel(){return this._storage.config.level}getTotal(){return Number((ot()-this._startTs).toPrecision(10))}getDelta(){return Number((ot()-this._deltaTs).toPrecision(10))}set priority(t){this.level=t}get priority(){return this.level}getPriority(){return this.level}enable(){let t=arguments.length>0&&arguments[0]!==void 0?arguments[0]:!0;return this._storage.setConfiguration({enabled:t}),this}setLevel(t){return this._storage.setConfiguration({level:t}),this}get(t){return this._storage.config[t]}set(t,r){this._storage.setConfiguration({[t]:r})}settings(){console.table?console.table(this._storage.config):console.log(this._storage.config)}assert(t,r){pt(t,r)}warn(t){return this._getLogFunction(0,t,dt.warn,arguments,Gi)}error(t){return this._getLogFunction(0,t,dt.error,arguments)}deprecated(t,r){return this.warn("`".concat(t,"` is deprecated and will be removed in a later version. Use `").concat(r,"` instead"))}removed(t,r){return this.error("`".concat(t,"` has been removed. Use `").concat(r,"` instead"))}probe(t,r){return this._getLogFunction(t,r,dt.log,arguments,{time:!0,once:!0})}log(t,r){return this._getLogFunction(t,r,dt.debug,arguments)}info(t,r){return this._getLogFunction(t,r,console.info,arguments)}once(t,r){return this._getLogFunction(t,r,dt.debug||dt.info,arguments,Gi)}table(t,r,n){return r?this._getLogFunction(t,r,console.table||Oe,n&&[n],{tag:Ru(r)}):Oe}image(t){let{logLevel:r,priority:n,image:i,message:o="",scale:a=1}=t;return this._shouldLog(r||n)?te()?mu({image:i,message:o,scale:a}):hu({image:i,message:o,scale:a}):Oe}time(t,r){return this._getLogFunction(t,r,console.time?console.time:console.info)}timeEnd(t,r){return this._getLogFunction(t,r,console.timeEnd?console.timeEnd:console.info)}timeStamp(t,r){return this._getLogFunction(t,r,console.timeStamp||Oe)}group(t,r){let n=arguments.length>2&&arguments[2]!==void 0?arguments[2]:{collapsed:!1},i=Ki({logLevel:t,message:r,opts:n}),{collapsed:o}=n;return i.method=(o?console.groupCollapsed:console.group)||console.info,this._getLogFunction(i)}groupCollapsed(t,r){let n=arguments.length>2&&arguments[2]!==void 0?arguments[2]:{};return this.group(t,r,Object.assign({},n,{collapsed:!0}))}groupEnd(t){return this._getLogFunction(t,"",console.groupEnd||Oe)}withGroup(t,r,n){this.group(t,r)();try{n()}finally{this.groupEnd(t)()}}trace(){console.trace&&console.trace()}_shouldLog(t){return this.isEnabled()&&this.getLevel()>=Yi(t)}_getLogFunction(t,r,n,i,o){if(this._shouldLog(t)){o=Ki({logLevel:t,message:r,args:i,opts:o}),n=n||o.method,pt(n),o.total=this.getTotal(),o.delta=this.getDelta(),this._deltaTs=ot();let a=o.tag||o.message;if(o.once&&a)if(!ji[a])ji[a]=ot();else return Oe;return r=du(this.id,o.message,o),n.bind(console,r,...o.args)}return Oe}};Ye.VERSION=mr;function Yi(e){if(!e)return 0;let t;switch(typeof e){case"number":t=e;break;case"object":t=e.logLevel||e.priority||0;break;default:return 0}return pt(Number.isFinite(t)&&t>=0),t}function Ki(e){let{logLevel:t,message:r}=e;e.logLevel=Yi(t);let n=e.args?Array.from(e.args):[];for(;n.length&&n.shift()!==r;);switch(typeof t){case"string":case"function":r!==void 0&&n.unshift(r),e.message=t;break;case"object":Object.assign(e,t);break;default:}typeof e.message=="function"&&(e.message=e.message());let i=typeof e.message;return pt(i==="string"||i==="object"),Object.assign(e,{args:n},e.opts)}function du(e,t,r){if(typeof t=="string"){let n=r.time?Hi(Li(r.total)):"";t=r.time?"".concat(e,": ").concat(n," ").concat(t):"".concat(e,": ").concat(t),t=Vi(t,r.color,r.background)}return t}function hu(e){let{image:t,message:r="",scale:n=1}=e;return console.warn("removed"),Oe}function mu(e){let{image:t,message:r="",scale:n=1}=e;if(typeof t=="string"){let o=new Image;return o.onload=()=>{let a=gr(o,r,n);console.log(...a)},o.src=t,Oe}let i=t.nodeName||"";if(i.toLowerCase()==="img")return console.log(...gr(t,r,n)),Oe;if(i.toLowerCase()==="canvas"){let o=new Image;return o.onload=()=>console.log(...gr(o,r,n)),o.src=t.toDataURL(),Oe}return Oe}function Ru(e){for(let t in e)for(let r in e[t])return r||"untitled";return"empty"}var yh=new Ye({id:"@probe.gl/log"});var F=new Ye({id:"luma.gl"});function ki(e,t){for(var r=0;r<t.length;r++){var n=t[r];n.enumerable=n.enumerable||!1,n.configurable=!0,"value"in n&&(n.writable=!0),Object.defineProperty(e,Ut(n.key),n)}}function M(e,t,r){return t&&ki(e.prototype,t),r&&ki(e,r),Object.defineProperty(e,"prototype",{writable:!1}),e}function C(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}function Lt(){let e;if(typeof window<"u"&&window.performance)e=window.performance.now();else if(typeof process<"u"&&process.hrtime){let t=process.hrtime();e=t[0]*1e3+t[1]/1e6}else e=Date.now();return e}var at=class{constructor(t,r){this.name=void 0,this.type=void 0,this.sampleSize=1,this.time=0,this.count=0,this.samples=0,this.lastTiming=0,this.lastSampleTime=0,this.lastSampleCount=0,this._count=0,this._time=0,this._samples=0,this._startTime=0,this._timerPending=!1,this.name=t,this.type=r,this.reset()}reset(){return this.time=0,this.count=0,this.samples=0,this.lastTiming=0,this.lastSampleTime=0,this.lastSampleCount=0,this._count=0,this._time=0,this._samples=0,this._startTime=0,this._timerPending=!1,this}setSampleSize(t){return this.sampleSize=t,this}incrementCount(){return this.addCount(1),this}decrementCount(){return this.subtractCount(1),this}addCount(t){return this._count+=t,this._samples++,this._checkSampling(),this}subtractCount(t){return this._count-=t,this._samples++,this._checkSampling(),this}addTime(t){return this._time+=t,this.lastTiming=t,this._samples++,this._checkSampling(),this}timeStart(){return this._startTime=Lt(),this._timerPending=!0,this}timeEnd(){return this._timerPending?(this.addTime(Lt()-this._startTime),this._timerPending=!1,this._checkSampling(),this):this}getSampleAverageCount(){return this.sampleSize>0?this.lastSampleCount/this.sampleSize:0}getSampleAverageTime(){return this.sampleSize>0?this.lastSampleTime/this.sampleSize:0}getSampleHz(){return this.lastSampleTime>0?this.sampleSize/(this.lastSampleTime/1e3):0}getAverageCount(){return this.samples>0?this.count/this.samples:0}getAverageTime(){return this.samples>0?this.time/this.samples:0}getHz(){return this.time>0?this.samples/(this.time/1e3):0}_checkSampling(){this._samples===this.sampleSize&&(this.lastSampleTime=this._time,this.lastSampleCount=this._count,this.count+=this._count,this.time+=this._time,this.samples+=this._samples,this._time=0,this._count=0,this._samples=0)}};var ht=class{constructor(t){this.id=void 0,this.stats={},this.id=t.id,this.stats={},this._initializeStats(t.stats),Object.seal(this)}get(t){let r=arguments.length>1&&arguments[1]!==void 0?arguments[1]:"count";return this._getOrCreate({name:t,type:r})}get size(){return Object.keys(this.stats).length}reset(){for(let t of Object.values(this.stats))t.reset();return this}forEach(t){for(let r of Object.values(this.stats))t(r)}getTable(){let t={};return this.forEach(r=>{t[r.name]={time:r.time||0,count:r.count||0,average:r.getAverageTime()||0,hz:r.getHz()||0}}),t}_initializeStats(){(arguments.length>0&&arguments[0]!==void 0?arguments[0]:[]).forEach(r=>this._getOrCreate(r))}_getOrCreate(t){let{name:r,type:n}=t,i=this.stats[r];return i||(t instanceof at?i=t:i=new at(r,n),this.stats[r]=i),i}};var Au=function(){function e(){C(this,e),this.stats=new Map}var t=e.prototype;return t.getStats=function(n){return this.get(n)},t.get=function(n){return this.stats.has(n)||this.stats.set(n,new ht({id:n})),this.stats.get(n)},M(e)}(),vr=new Au;function gu(){var e=typeof __VERSION__<"u"?__VERSION__:"untranspiled source",t="set luma.log.level=1 (or higher) to trace rendering";if(globalThis.luma&&globalThis.luma.VERSION!==e)throw new Error("luma.gl - multiple VERSIONs detected: ".concat(globalThis.luma.VERSION," vs ").concat(e));return globalThis.luma||(te()&&F.log(1,"luma.gl ".concat(e," - ").concat(t))(),globalThis.luma=globalThis.luma||{VERSION:e,version:e,log:F,stats:vr}),e}var zi=gu();function Tu(e){return ArrayBuffer.isView(e)&&!(e instanceof DataView)?e:null}function qi(e){return Array.isArray(e)?e.length===0||typeof e[0]=="number"?e:null:Tu(e)}function Zi(e,t,r,n,i,o,a){try{var c=e[o](a),f=c.value}catch(u){r(u);return}c.done?t(f):Promise.resolve(f).then(n,i)}function pe(e){return function(){var t=this,r=arguments;return new Promise(function(n,i){var o=e.apply(t,r);function a(f){Zi(o,n,i,a,c,"next",f)}function c(f){Zi(o,n,i,a,c,"throw",f)}a(void 0)})}}var hn={};function ue(){var e=arguments.length>0&&arguments[0]!==void 0?arguments[0]:"id";hn[e]=hn[e]||1;var t=hn[e]++;return"".concat(e,"-").concat(t)}function br(e){return e>0&&(e&e-1)===0}function Ht(e){var t=!0;for(var r in e){t=!1;break}return t}function st(e,t){return st=Object.setPrototypeOf?Object.setPrototypeOf.bind():function(n,i){return n.__proto__=i,n},st(e,t)}function H(e,t){if(typeof t!="function"&&t!==null)throw new TypeError("Super expression must either be null or a function");e.prototype=Object.create(t&&t.prototype,{constructor:{value:e,writable:!0,configurable:!0}}),Object.defineProperty(e,"prototype",{writable:!1}),t&&st(e,t)}function Ce(e){if(e===void 0)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return e}function X(e,t){if(t&&(oe(t)==="object"||typeof t=="function"))return t;if(t!==void 0)throw new TypeError("Derived constructors may only return object or undefined");return Ce(e)}function I(e){return I=Object.setPrototypeOf?Object.getPrototypeOf.bind():function(r){return r.__proto__||Object.getPrototypeOf(r)},I(e)}function ro(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter(function(i){return Object.getOwnPropertyDescriptor(e,i).enumerable})),r.push.apply(r,n)}return r}function vu(e){for(var t=1;t<arguments.length;t++){var r=arguments[t]!=null?arguments[t]:{};t%2?ro(Object(r),!0).forEach(function(n){l(e,n,r[n])}):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(r)):ro(Object(r)).forEach(function(n){Object.defineProperty(e,n,Object.getOwnPropertyDescriptor(r,n))})}return e}var z=function(){function e(r,n,i){if(C(this,e),this.id=void 0,this.props=void 0,this.userData={},this.device=void 0,this._device=void 0,this.destroyed=!1,this.allocatedBytes=0,this._attachedResources=new Set,!r)throw new Error("no device");this._device=r,this.props=Su(n,i);var o=this.props.id!=="undefined"?this.props.id:ue(this[Symbol.toStringTag]);this.props.id=o,this.id=o,this.userData=this.props.userData||{},this.addStats()}var t=e.prototype;return t.destroy=function(){this.destroyResource()},t.delete=function(){return this.destroy(),this},t.toString=function(){return"".concat(this[Symbol.toStringTag]||this.constructor.name,"(").concat(this.id,")")},t.getProps=function(){return this.props},t.attachResource=function(n){this._attachedResources.add(n)},t.detachResource=function(n){this._attachedResources.delete(n)},t.destroyAttachedResource=function(n){this._attachedResources.delete(n)&&n.destroy()},t.destroyAttachedResources=function(){for(var n=0,i=Object.values(this._attachedResources);n<i.length;n++){var o=i[n];o.destroy()}this._attachedResources=new Set},t.destroyResource=function(){this.destroyAttachedResources(),this.removeStats(),this.destroyed=!0},t.removeStats=function(){var n=this._device.statsManager.getStats("Resource Counts"),i=this[Symbol.toStringTag];n.get("".concat(i,"s Active")).decrementCount()},t.trackAllocatedMemory=function(n){var i=arguments.length>1&&arguments[1]!==void 0?arguments[1]:this[Symbol.toStringTag],o=this._device.statsManager.getStats("Resource Counts");o.get("GPU Memory").addCount(n),o.get("".concat(i," Memory")).addCount(n),this.allocatedBytes=n},t.trackDeallocatedMemory=function(){var n=arguments.length>0&&arguments[0]!==void 0?arguments[0]:this[Symbol.toStringTag],i=this._device.statsManager.getStats("Resource Counts");i.get("GPU Memory").subtractCount(this.allocatedBytes),i.get("".concat(n," Memory")).subtractCount(this.allocatedBytes),this.allocatedBytes=0},t.addStats=function(){var n=this._device.statsManager.getStats("Resource Counts"),i=this[Symbol.toStringTag];n.get("Resources Created").incrementCount(),n.get("".concat(i,"s Created")).incrementCount(),n.get("".concat(i,"s Active")).incrementCount()},M(e)}();z.defaultProps={id:"undefined",handle:void 0,userData:void 0};function Su(e,t){var r=vu({},t);for(var n in e)e[n]!==void 0&&(r[n]=e[n]);return r}var io;function no(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter(function(i){return Object.getOwnPropertyDescriptor(e,i).enumerable})),r.push.apply(r,n)}return r}function mn(e){for(var t=1;t<arguments.length;t++){var r=arguments[t]!=null?arguments[t]:{};t%2?no(Object(r),!0).forEach(function(n){l(e,n,r[n])}):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(r)):no(Object(r)).forEach(function(n){Object.defineProperty(e,n,Object.getOwnPropertyDescriptor(r,n))})}return e}function bu(e){var t=Ou();return function(){var n=I(e),i;if(t){var o=I(this).constructor;i=Reflect.construct(n,arguments,o)}else i=n.apply(this,arguments);return X(this,i)}}function Ou(){if(typeof Reflect>"u"||!Reflect.construct||Reflect.construct.sham)return!1;if(typeof Proxy=="function")return!0;try{return Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],function(){})),!0}catch{return!1}}io=Symbol.toStringTag;var re=function(e){H(r,e);var t=bu(r);function r(i,o){var a;C(this,r);var c=mn({},o);return(o.usage||0)&r.INDEX&&!o.indexType&&(o.data instanceof Uint32Array?c.indexType="uint32":o.data instanceof Uint16Array&&(c.indexType="uint16")),a=t.call(this,i,c,r.defaultProps),a.usage=void 0,a.indexType=void 0,a.byteLength=void 0,a.usage=o.usage||0,a.indexType=c.indexType,a}var n=r.prototype;return n.write=function(o,a){throw new Error("not implemented")},n.readAsync=function(o,a){throw new Error("not implemented")},n.getData=function(){throw new Error("not implemented")},M(r,[{key:io,get:function(){return"Buffer"}}]),r}(z);re.defaultProps=mn(mn({},z.defaultProps),{},{usage:0,byteLength:0,byteOffset:0,data:null,indexType:"uint16",mappedAtCreation:!1});re.MAP_READ=1;re.MAP_WRITE=2;re.COPY_SRC=4;re.COPY_DST=8;re.INDEX=16;re.VERTEX=32;re.UNIFORM=64;re.STORAGE=128;re.INDIRECT=256;re.QUERY_RESOLVE=512;var ao;function oo(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter(function(i){return Object.getOwnPropertyDescriptor(e,i).enumerable})),r.push.apply(r,n)}return r}function Rn(e){for(var t=1;t<arguments.length;t++){var r=arguments[t]!=null?arguments[t]:{};t%2?oo(Object(r),!0).forEach(function(n){l(e,n,r[n])}):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(r)):oo(Object(r)).forEach(function(n){Object.defineProperty(e,n,Object.getOwnPropertyDescriptor(r,n))})}return e}var yu={id:null,type:"best-available",canvas:null,container:null,webgl2:!0,webgl1:!0,manageState:!0,width:800,height:600,debug:Boolean(F.get("debug")),break:[],gl:null};ao=Symbol.toStringTag;var Xt=function(){function e(r){C(this,e),this.id=void 0,this.statsManager=vr,this.props=void 0,this.userData={},this._lumaData={},this.info=void 0,this.lost=void 0,this.canvasContext=void 0,this.props=Rn(Rn({},yu),r),this.id=this.props.id||ue(this[Symbol.toStringTag].toLowerCase())}var t=e.prototype;return t.loseDevice=function(){return!1},t.getCanvasContext=function(){if(!this.canvasContext)throw new Error("Device has no CanvasContext");return this.canvasContext},t.createTexture=function(n){return(n instanceof Promise||typeof n=="string")&&(n={data:n}),this._createTexture(n)},t.createCommandEncoder=function(){var n=arguments.length>0&&arguments[0]!==void 0?arguments[0]:{};throw new Error("not implemented")},t._getBufferProps=function(n){(n instanceof ArrayBuffer||ArrayBuffer.isView(n))&&(n={data:n});var i=Rn({},n);return(n.usage||0)&re.INDEX&&!n.indexType&&(n.data instanceof Uint32Array?i.indexType="uint32":n.data instanceof Uint16Array?i.indexType="uint16":F.warn("indices buffer content must be of integer type")()),i},M(e,[{key:ao,get:function(){return"Device"}}]),e}();Xt.VERSION=zi;function Vt(e){if(Array.isArray(e))return e}function An(e,t){var r=e==null?null:typeof Symbol<"u"&&e[Symbol.iterator]||e["@@iterator"];if(r!=null){var n,i,o,a,c=[],f=!0,u=!1;try{if(o=(r=r.call(e)).next,t===0){if(Object(r)!==r)return;f=!1}else for(;!(f=(n=o.call(r)).done)&&(c.push(n.value),c.length!==t);f=!0);}catch(_){u=!0,i=_}finally{try{if(!f&&r.return!=null&&(a=r.return(),Object(a)!==a))return}finally{if(u)throw i}}return c}}function mt(e,t){(t==null||t>e.length)&&(t=e.length);for(var r=0,n=new Array(t);r<t;r++)n[r]=e[r];return n}function ct(e,t){if(e){if(typeof e=="string")return mt(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 mt(e,t)}}function Wt(){throw new TypeError(`Invalid attempt to destructure non-iterable instance.
8
+ In order to be iterable, non-array objects must have a [Symbol.iterator]() method.`)}function L(e,t){return Vt(e)||An(e,t)||ct(e,t)||Wt()}function Nu(e,t){var r=typeof Symbol<"u"&&e[Symbol.iterator]||e["@@iterator"];if(!r){if(Array.isArray(e)||(r=Iu(e))||t&&e&&typeof e.length=="number"){r&&(e=r);var n=0,i=function(){};return{s:i,n:function(){return n>=e.length?{done:!0}:{done:!1,value:e[n++]}},e:function(u){throw u},f:i}}throw new TypeError(`Invalid attempt to iterate non-iterable instance.
9
+ In order to be iterable, non-array objects must have a [Symbol.iterator]() method.`)}var o=!0,a=!1,c;return{s:function(){r=r.call(e)},n:function(){var u=r.next();return o=u.done,u},e:function(u){a=!0,c=u},f:function(){try{!o&&r.return!=null&&r.return()}finally{if(a)throw c}}}}function Iu(e,t){if(e){if(typeof e=="string")return so(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 so(e,t)}}function so(e,t){(t==null||t>e.length)&&(t=e.length);for(var r=0,n=new Array(t);r<t;r++)n[r]=e[r];return n}function co(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter(function(i){return Object.getOwnPropertyDescriptor(e,i).enumerable})),r.push.apply(r,n)}return r}function fo(e){for(var t=1;t<arguments.length;t++){var r=arguments[t]!=null?arguments[t]:{};t%2?co(Object(r),!0).forEach(function(n){l(e,n,r[n])}):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(r)):co(Object(r)).forEach(function(n){Object.defineProperty(e,n,Object.getOwnPropertyDescriptor(r,n))})}return e}var Mu=te()&&typeof document<"u",Or=function(){return Mu&&document.readyState==="complete"},Cu={canvas:null,width:800,height:600,useDevicePixels:!0,autoResize:!0,container:null,visible:!0,colorSpace:"srgb",alphaMode:"opaque"},Rt=function(){function e(r){var n=this;if(C(this,e),this.device=void 0,this.id=void 0,this.props=void 0,this.canvas=void 0,this.htmlCanvas=void 0,this.offscreenCanvas=void 0,this.type=void 0,this.width=1,this.height=1,this.resizeObserver=void 0,this._canvasSizeInfo={clientWidth:0,clientHeight:0,devicePixelRatio:1},this.props=fo(fo({},Cu),r),r=this.props,!te()){this.id="node-canvas-context",this.type="node",this.width=this.props.width,this.height=this.props.height,this.canvas=null;return}if(r.canvas)typeof r.canvas=="string"?this.canvas=Fu(r.canvas):this.canvas=r.canvas;else{var i,o,a=Du(r),c=xu(((i=r)===null||i===void 0?void 0:i.container)||null);c.insertBefore(a,c.firstChild),this.canvas=a,(o=r)!==null&&o!==void 0&&o.visible||(this.canvas.style.visibility="hidden")}this.canvas instanceof HTMLCanvasElement?(this.id=this.canvas.id,this.type="html-canvas",this.htmlCanvas=this.canvas):(this.id="offscreen-canvas",this.type="offscreen-canvas",this.offscreenCanvas=this.canvas),this.canvas instanceof HTMLCanvasElement&&r.autoResize&&(this.resizeObserver=new ResizeObserver(function(f){var u=Nu(f),_;try{for(u.s();!(_=u.n()).done;){var E=_.value;E.target===n.canvas&&n.update()}}catch(p){u.e(p)}finally{u.f()}}),this.resizeObserver.observe(this.canvas))}var t=e.prototype;return t.getDevicePixelRatio=function(n){if(typeof OffscreenCanvas<"u"&&this.canvas instanceof OffscreenCanvas||(n=n===void 0?this.props.useDevicePixels:n,!n||n<=0))return 1;if(n===!0){var i=typeof window<"u"&&window.devicePixelRatio;return i||1}return n},t.getPixelSize=function(){switch(this.type){case"node":return[this.width,this.height];case"offscreen-canvas":return[this.canvas.width,this.canvas.height];case"html-canvas":var n=this.getDevicePixelRatio(),i=this.canvas;return i.parentElement?[i.clientWidth*n,i.clientHeight*n]:[this.canvas.width,this.canvas.height];default:throw new Error(this.type)}},t.getAspect=function(){var n=this.getPixelSize(),i=L(n,2),o=i[0],a=i[1];return o/a},t.cssToDeviceRatio=function(){try{var n=this.getDrawingBufferSize(),i=L(n,1),o=i[0],a=this._canvasSizeInfo.clientWidth;return a?o/a:1}catch{return 1}},t.cssToDevicePixels=function(n){var i=arguments.length>1&&arguments[1]!==void 0?arguments[1]:!0,o=this.cssToDeviceRatio(),a=this.getDrawingBufferSize(),c=L(a,2),f=c[0],u=c[1];return Bu(n,o,f,u,i)},t.setDevicePixelRatio=function(n){var i=arguments.length>1&&arguments[1]!==void 0?arguments[1]:{};if(this.htmlCanvas){var o="width"in i?i.width:this.htmlCanvas.clientWidth,a="height"in i?i.height:this.htmlCanvas.clientHeight;(!o||!a)&&(F.log(1,"Canvas clientWidth/clientHeight is 0")(),n=1,o=this.htmlCanvas.width||1,a=this.htmlCanvas.height||1);var c=this._canvasSizeInfo;if(c.clientWidth!==o||c.clientHeight!==a||c.devicePixelRatio!==n){var f=n,u=Math.floor(o*f),_=Math.floor(a*f);this.htmlCanvas.width=u,this.htmlCanvas.height=_;var E=this.getDrawingBufferSize(),p=L(E,2),d=p[0],h=p[1];(d!==u||h!==_)&&(f=Math.min(d/o,h/a),this.htmlCanvas.width=Math.floor(o*f),this.htmlCanvas.height=Math.floor(a*f),F.warn("Device pixel ratio clamped")()),this._canvasSizeInfo.clientWidth=o,this._canvasSizeInfo.clientHeight=a,this._canvasSizeInfo.devicePixelRatio=n}}},t.getDrawingBufferSize=function(){var n=this.device.gl;if(!n)throw new Error("canvas size");return[n.drawingBufferWidth,n.drawingBufferHeight]},t._setAutoCreatedCanvasId=function(n){var i;((i=this.htmlCanvas)===null||i===void 0?void 0:i.id)==="lumagl-auto-created-canvas"&&(this.htmlCanvas.id=n)},M(e,null,[{key:"isPageLoaded",get:function(){return Or()}}]),e}();Rt.pageLoaded=Pu();function Pu(){return Or()||typeof window>"u"?Promise.resolve():new Promise(function(e){window.addEventListener("load",function(){return e()})})}function xu(e){if(typeof e=="string"){var t=document.getElementById(e);if(!t&&!Or())throw new Error("Accessing '".concat(e,"' before page was loaded"));if(!t)throw new Error("".concat(e," is not an HTML element"));return t}else if(e)return e;return document.body}function Fu(e){var t=document.getElementById(e);if(!t&&!Or())throw new Error("Accessing '".concat(e,"' before page was loaded"));if(!(t instanceof HTMLCanvasElement))throw new Error("'".concat(t,"' is not a canvas element"));return t}function Du(e){var t=e.width,r=e.height,n=document.createElement("canvas");return n.id="lumagl-auto-created-canvas",n.width=t||1,n.height=r||1,n.style.width=Number.isFinite(t)?"".concat(t,"px"):"100%",n.style.height=Number.isFinite(r)?"".concat(r,"px"):"100%",n}function Bu(e,t,r,n,i){var o=e,a=uo(o[0],t,r),c=lo(o[1],t,n,i),f=uo(o[0]+1,t,r),u=f===r-1?f:f-1;f=lo(o[1]+1,t,n,i);var _;return i?(f=f===0?f:f+1,_=c,c=f):_=f===n-1?f:f-1,{x:a,y:c,width:Math.max(u-a+1,1),height:Math.max(_-c+1,1)}}function uo(e,t,r){var n=Math.min(Math.round(e*t),r-1);return n}function lo(e,t,r,n){return n?Math.max(0,r-1-Math.round(e*t)):Math.min(Math.round(e*t),r-1)}var po;function _o(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter(function(i){return Object.getOwnPropertyDescriptor(e,i).enumerable})),r.push.apply(r,n)}return r}function Eo(e){for(var t=1;t<arguments.length;t++){var r=arguments[t]!=null?arguments[t]:{};t%2?_o(Object(r),!0).forEach(function(n){l(e,n,r[n])}):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(r)):_o(Object(r)).forEach(function(n){Object.defineProperty(e,n,Object.getOwnPropertyDescriptor(r,n))})}return e}function Uu(e){var t=wu();return function(){var n=I(e),i;if(t){var o=I(this).constructor;i=Reflect.construct(n,arguments,o)}else i=n.apply(this,arguments);return X(this,i)}}function wu(){if(typeof Reflect>"u"||!Reflect.construct||Reflect.construct.sham)return!1;if(typeof Proxy=="function")return!0;try{return Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],function(){})),!0}catch{return!1}}po=Symbol.toStringTag;var Te=function(e){H(r,e);var t=Uu(r);function r(n,i){var o,a=arguments.length>2&&arguments[2]!==void 0?arguments[2]:r.defaultProps;return C(this,r),o=t.call(this,n,i,a),o.dimension=void 0,o.format=void 0,o.width=void 0,o.height=void 0,o.depth=void 0,o.sampler=void 0,o.dimension=o.props.dimension,o.format=o.props.format,o.width=o.props.width,o.height=o.props.height,o.depth=o.props.depth,o}return M(r,[{key:po,get:function(){return"Texture"}}]),r}(z);Te.defaultProps=Eo(Eo({},z.defaultProps),{},{data:null,dimension:"2d",format:"rgba8unorm",width:void 0,height:void 0,depth:1,mipmaps:!0,sampler:{},compressed:!1,usage:0,mipLevels:void 0,samples:void 0,type:void 0});Te.COPY_SRC=1;Te.COPY_DST=2;Te.TEXTURE_BINDING=4;Te.STORAGE_BINDING=8;Te.RENDER_ATTACHMENT=16;var Ro;function ho(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter(function(i){return Object.getOwnPropertyDescriptor(e,i).enumerable})),r.push.apply(r,n)}return r}function mo(e){for(var t=1;t<arguments.length;t++){var r=arguments[t]!=null?arguments[t]:{};t%2?ho(Object(r),!0).forEach(function(n){l(e,n,r[n])}):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(r)):ho(Object(r)).forEach(function(n){Object.defineProperty(e,n,Object.getOwnPropertyDescriptor(r,n))})}return e}function Lu(e){var t=Hu();return function(){var n=I(e),i;if(t){var o=I(this).constructor;i=Reflect.construct(n,arguments,o)}else i=n.apply(this,arguments);return X(this,i)}}function Hu(){if(typeof Reflect>"u"||!Reflect.construct||Reflect.construct.sham)return!1;if(typeof Proxy=="function")return!0;try{return Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],function(){})),!0}catch{return!1}}Ro=Symbol.toStringTag;var yr=function(e){H(r,e);var t=Lu(r);function r(n,i){var o;return C(this,r),o=t.call(this,n,i,r.defaultProps),o.stage=void 0,o.source=void 0,o.stage=o.props.stage,o.source=o.props.source,o}return M(r,[{key:Ro,get:function(){return"Shader"}}]),r}(z);yr.defaultProps=mo(mo({},z.defaultProps),{},{stage:"vertex",source:"",sourceMap:null,language:"auto",shaderType:0});var To;function Ao(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter(function(i){return Object.getOwnPropertyDescriptor(e,i).enumerable})),r.push.apply(r,n)}return r}function go(e){for(var t=1;t<arguments.length;t++){var r=arguments[t]!=null?arguments[t]:{};t%2?Ao(Object(r),!0).forEach(function(n){l(e,n,r[n])}):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(r)):Ao(Object(r)).forEach(function(n){Object.defineProperty(e,n,Object.getOwnPropertyDescriptor(r,n))})}return e}function Xu(e){var t=Vu();return function(){var n=I(e),i;if(t){var o=I(this).constructor;i=Reflect.construct(n,arguments,o)}else i=n.apply(this,arguments);return X(this,i)}}function Vu(){if(typeof Reflect>"u"||!Reflect.construct||Reflect.construct.sham)return!1;if(typeof Proxy=="function")return!0;try{return Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],function(){})),!0}catch{return!1}}To=Symbol.toStringTag;var Nr=function(e){H(r,e);var t=Xu(r);function r(n,i){return C(this,r),t.call(this,n,i,r.defaultProps)}return M(r,[{key:To,get:function(){return"Sampler"}}]),r}(z);Nr.defaultProps=go(go({},z.defaultProps),{},{type:"color-sampler",addressModeU:"clamp-to-edge",addressModeV:"clamp-to-edge",addressModeW:"clamp-to-edge",magFilter:"nearest",minFilter:"nearest",mipmapFilter:"nearest",lodMinClamp:0,lodMaxClamp:32,compare:"less-equal",maxAnisotropy:1});var So;function vo(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter(function(i){return Object.getOwnPropertyDescriptor(e,i).enumerable})),r.push.apply(r,n)}return r}function At(e){for(var t=1;t<arguments.length;t++){var r=arguments[t]!=null?arguments[t]:{};t%2?vo(Object(r),!0).forEach(function(n){l(e,n,r[n])}):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(r)):vo(Object(r)).forEach(function(n){Object.defineProperty(e,n,Object.getOwnPropertyDescriptor(r,n))})}return e}function Wu(e){var t=ju();return function(){var n=I(e),i;if(t){var o=I(this).constructor;i=Reflect.construct(n,arguments,o)}else i=n.apply(this,arguments);return X(this,i)}}function ju(){if(typeof Reflect>"u"||!Reflect.construct||Reflect.construct.sham)return!1;if(typeof Proxy=="function")return!0;try{return Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],function(){})),!0}catch{return!1}}So=Symbol.toStringTag;var Ir=function(e){H(r,e);var t=Wu(r);function r(i){var o,a=arguments.length>1&&arguments[1]!==void 0?arguments[1]:{};return C(this,r),o=t.call(this,i,a,r.defaultProps),o.width=void 0,o.height=void 0,o.colorAttachments=[],o.depthStencilAttachment=null,o.width=o.props.width,o.height=o.props.height,o}var n=r.prototype;return n.resize=function(o){var a=!o;if(o){var c=Array.isArray(o)?o:[o.width,o.height],f=L(c,2),u=f[0],_=f[1];a=a||_!==this.height||u!==this.width,this.width=u,this.height=_}a&&(F.log(2,"Resizing framebuffer ".concat(this.id," to ").concat(this.width,"x").concat(this.height))(),this.resizeAttachments(this.width,this.height))},n.autoCreateAttachmentTextures=function(){var o=this;if(this.colorAttachments=this.props.colorAttachments.map(function(c){if(typeof c=="string"){var f=o.createColorTexture(c);return o.attachResource(f),f}return c}),this.props.depthStencilAttachment)if(typeof this.props.depthStencilAttachment=="string"){var a=this.createDepthStencilTexture(this.props.depthStencilAttachment);this.attachResource(a),this.depthStencilAttachment=a}else this.depthStencilAttachment=this.props.depthStencilAttachment},n.createColorTexture=function(o){return this.device.createTexture({id:"color-attachment",usage:Te.RENDER_ATTACHMENT,format:o,width:this.width,height:this.height})},n.createDepthStencilTexture=function(o){return this.device.createTexture({id:"depth-stencil-attachment",usage:Te.RENDER_ATTACHMENT,format:o,width:this.width,height:this.height})},n.resizeAttachments=function(o,a){for(var c=0;c<this.colorAttachments.length;++c)if(this.colorAttachments[c]){var f=this.device._createTexture(At(At({},this.colorAttachments[c].props),{},{width:o,height:a}));this.destroyAttachedResource(this.colorAttachments[c]),this.colorAttachments[c]=f,this.attachResource(f)}if(this.depthStencilAttachment){var u=this.device._createTexture(At(At({},this.depthStencilAttachment.props),{},{width:o,height:a}));this.destroyAttachedResource(this.depthStencilAttachment),this.depthStencilAttachment=u,this.attachResource(u)}},M(r,[{key:So,get:function(){return"Framebuffer"}}]),r}(z);Ir.defaultProps=At(At({},z.defaultProps),{},{width:1,height:1,colorAttachments:[],depthStencilAttachment:null});var yo;function bo(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter(function(i){return Object.getOwnPropertyDescriptor(e,i).enumerable})),r.push.apply(r,n)}return r}function Oo(e){for(var t=1;t<arguments.length;t++){var r=arguments[t]!=null?arguments[t]:{};t%2?bo(Object(r),!0).forEach(function(n){l(e,n,r[n])}):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(r)):bo(Object(r)).forEach(function(n){Object.defineProperty(e,n,Object.getOwnPropertyDescriptor(r,n))})}return e}function Gu(e){var t=Ku();return function(){var n=I(e),i;if(t){var o=I(this).constructor;i=Reflect.construct(n,arguments,o)}else i=n.apply(this,arguments);return X(this,i)}}function Ku(){if(typeof Reflect>"u"||!Reflect.construct||Reflect.construct.sham)return!1;if(typeof Proxy=="function")return!0;try{return Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],function(){})),!0}catch{return!1}}yo=Symbol.toStringTag;var ze=function(e){H(r,e);var t=Gu(r);function r(n,i){var o;return C(this,r),o=t.call(this,n,i,r.defaultProps),o.hash="",o.vs=void 0,o.fs=void 0,o.shaderLayout=void 0,o.bufferLayout=void 0,o.shaderLayout=o.props.shaderLayout,o.bufferLayout=o.props.bufferLayout||[],o}return M(r,[{key:yo,get:function(){return"RenderPipeline"}}]),r}(z);ze.defaultProps=Oo(Oo({},z.defaultProps),{},{vs:null,vsEntryPoint:"",vsConstants:{},fs:null,fsEntryPoint:"",fsConstants:{},shaderLayout:null,bufferLayout:[],topology:"triangle-list",parameters:{},vertexCount:0,instanceCount:0,bindings:{},uniforms:{}});var Mo;function No(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter(function(i){return Object.getOwnPropertyDescriptor(e,i).enumerable})),r.push.apply(r,n)}return r}function Io(e){for(var t=1;t<arguments.length;t++){var r=arguments[t]!=null?arguments[t]:{};t%2?No(Object(r),!0).forEach(function(n){l(e,n,r[n])}):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(r)):No(Object(r)).forEach(function(n){Object.defineProperty(e,n,Object.getOwnPropertyDescriptor(r,n))})}return e}function Yu(e){var t=ku();return function(){var n=I(e),i;if(t){var o=I(this).constructor;i=Reflect.construct(n,arguments,o)}else i=n.apply(this,arguments);return X(this,i)}}function ku(){if(typeof Reflect>"u"||!Reflect.construct||Reflect.construct.sham)return!1;if(typeof Proxy=="function")return!0;try{return Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],function(){})),!0}catch{return!1}}Mo=Symbol.toStringTag;var Mr=function(e){H(r,e);var t=Yu(r);function r(n,i){return C(this,r),t.call(this,n,i,r.defaultProps)}return M(r,[{key:Mo,get:function(){return"RenderPass"}}]),r}(z);Mr.defaultProps=Io(Io({},z.defaultProps),{},{framebuffer:null,parameters:void 0,clearColor:[0,0,0,0],clearDepth:1,clearStencil:0,depthReadOnly:!1,stencilReadOnly:!1,discard:!1});var xo;function Co(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter(function(i){return Object.getOwnPropertyDescriptor(e,i).enumerable})),r.push.apply(r,n)}return r}function Po(e){for(var t=1;t<arguments.length;t++){var r=arguments[t]!=null?arguments[t]:{};t%2?Co(Object(r),!0).forEach(function(n){l(e,n,r[n])}):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(r)):Co(Object(r)).forEach(function(n){Object.defineProperty(e,n,Object.getOwnPropertyDescriptor(r,n))})}return e}function zu(e){var t=qu();return function(){var n=I(e),i;if(t){var o=I(this).constructor;i=Reflect.construct(n,arguments,o)}else i=n.apply(this,arguments);return X(this,i)}}function qu(){if(typeof Reflect>"u"||!Reflect.construct||Reflect.construct.sham)return!1;if(typeof Proxy=="function")return!0;try{return Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],function(){})),!0}catch{return!1}}xo=Symbol.toStringTag;var Cr=function(e){H(r,e);var t=zu(r);function r(i,o){return C(this,r),t.call(this,i,o,r.defaultProps)}var n=r.prototype;return n.pushDebugGroup=function(o){},n.popDebugGroup=function(){},n.insertDebugMarker=function(o){},M(r,[{key:xo,get:function(){return"CommandEncoder"}}]),r}(z);Cr.defaultProps=Po(Po({},z.defaultProps),{},{measureExecutionTime:void 0});var Do;function Fo(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter(function(i){return Object.getOwnPropertyDescriptor(e,i).enumerable})),r.push.apply(r,n)}return r}function Zu(e){for(var t=1;t<arguments.length;t++){var r=arguments[t]!=null?arguments[t]:{};t%2?Fo(Object(r),!0).forEach(function(n){l(e,n,r[n])}):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(r)):Fo(Object(r)).forEach(function(n){Object.defineProperty(e,n,Object.getOwnPropertyDescriptor(r,n))})}return e}function $u(e){var t=Qu();return function(){var n=I(e),i;if(t){var o=I(this).constructor;i=Reflect.construct(n,arguments,o)}else i=n.apply(this,arguments);return X(this,i)}}function Qu(){if(typeof Reflect>"u"||!Reflect.construct||Reflect.construct.sham)return!1;if(typeof Proxy=="function")return!0;try{return Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],function(){})),!0}catch{return!1}}Do=Symbol.toStringTag;var Pr=function(e){H(r,e);var t=$u(r);function r(n){return C(this,r),t.call(this,n,r.defaultProps)}return M(r,[{key:Do,get:function(){return"CommandBuffer"}}]),r}(z);Pr.defaultProps=Zu({},z.defaultProps);function Bo(e){var t=L(el[e],2),r=t[0],n=t[1],i=r==="i32"||r==="u32",o=r!=="u32",a=tl[r]*n,c=Ju(r,n);return{dataType:r,components:n,defaultVertexFormat:c,byteLength:a,integer:i,signed:o}}function Ju(e,t){var r;switch(e){case"f32":r="float32";break;case"i32":r="sint32";break;case"u32":r="uint32";break;case"f16":return t<=2?"float16x2":"float16x4"}return t===1?r:"".concat(r,"x").concat(t)}var el={f32:["f32",1],"vec2<f32>":["f32",2],"vec3<f32>":["f32",3],"vec4<f32>":["f32",4],f16:["f16",1],"vec2<f16>":["f16",2],"vec3<f16>":["f16",3],"vec4<f16>":["f16",4],i32:["i32",1],"vec2<i32>":["i32",2],"vec3<i32>":["i32",3],"vec4<i32>":["i32",4],u32:["u32",1],"vec2<u32>":["u32",2],"vec3<u32>":["u32",3],"vec4<u32>":["u32",4]},tl={f32:4,f16:2,i32:4,u32:4};function xr(e){var t=Uo[e],r=rl(t),n=e.includes("norm"),i=!n&&!e.startsWith("float"),o=e.startsWith("s");return{dataType:Uo[e],byteLength:r,integer:i,signed:o,normalized:n}}function rl(e){var t=nl[e];return t}var Uo={uint8:"uint8",sint8:"sint8",unorm8:"uint8",snorm8:"sint8",uint16:"uint16",sint16:"sint16",unorm16:"uint16",snorm16:"sint16",float16:"float16",float32:"float32",uint32:"uint32",sint32:"sint32"},nl={uint8:1,sint8:1,uint16:2,sint16:2,float16:2,float32:4,uint32:4,sint32:4};function gn(e){var t;e.endsWith("-webgl")&&(e.replace("-webgl",""),t=!0);var r=e.split("x"),n=L(r,2),i=n[0],o=n[1],a=i,c=o?parseInt(o):1,f=xr(a),u={type:a,components:c,byteLength:f.byteLength*c,integer:f.integer,signed:f.signed,normalized:f.normalized};return t&&(u.webglOnly=!0),u}function wo(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter(function(i){return Object.getOwnPropertyDescriptor(e,i).enumerable})),r.push.apply(r,n)}return r}function Tn(e){for(var t=1;t<arguments.length;t++){var r=arguments[t]!=null?arguments[t]:{};t%2?wo(Object(r),!0).forEach(function(n){l(e,n,r[n])}):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(r)):wo(Object(r)).forEach(function(n){Object.defineProperty(e,n,Object.getOwnPropertyDescriptor(r,n))})}return e}function gt(e,t){var r=typeof Symbol<"u"&&e[Symbol.iterator]||e["@@iterator"];if(!r){if(Array.isArray(e)||(r=il(e))||t&&e&&typeof e.length=="number"){r&&(e=r);var n=0,i=function(){};return{s:i,n:function(){return n>=e.length?{done:!0}:{done:!1,value:e[n++]}},e:function(u){throw u},f:i}}throw new TypeError(`Invalid attempt to iterate non-iterable instance.
10
+ In order to be iterable, non-array objects must have a [Symbol.iterator]() method.`)}var o=!0,a=!1,c;return{s:function(){r=r.call(e)},n:function(){var u=r.next();return o=u.done,u},e:function(u){a=!0,c=u},f:function(){try{!o&&r.return!=null&&r.return()}finally{if(a)throw c}}}}function il(e,t){if(e){if(typeof e=="string")return Lo(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 Lo(e,t)}}function Lo(e,t){(t==null||t>e.length)&&(t=e.length);for(var r=0,n=new Array(t);r<t;r++)n[r]=e[r];return n}function Fr(e,t){var r={},n=gt(e.attributes),i;try{for(n.s();!(i=n.n()).done;){var o=i.value;r[o.name]=ol(e,t,o.name)}}catch(a){n.e(a)}finally{n.f()}return r}function Ho(e,t){for(var r=arguments.length>2&&arguments[2]!==void 0?arguments[2]:16,n=Fr(e,t),i=new Array(r).fill(null),o=0,a=Object.values(n);o<a.length;o++){var c=a[o];i[c.location]=c}return i}function ol(e,t,r){var n=al(e,r),i=sl(t,r);if(!n)return null;var o=Bo(n.type),a=i?.vertexFormat||o.defaultVertexFormat,c=gn(a);return{attributeName:i?.attributeName||n.name,bufferName:i?.bufferName||n.name,location:n.location,shaderType:n.type,shaderDataType:o.dataType,shaderComponents:o.components,vertexFormat:a,bufferDataType:c.type,bufferComponents:c.components,normalized:c.normalized,integer:o.integer,stepMode:i?.stepMode||n.stepMode,byteOffset:i?.byteOffset||0,byteStride:i?.byteStride||0}}function al(e,t){var r=e.attributes.find(function(n){return n.name===t});return r||F.warn('shader layout attribute "'.concat(t,'" not present in shader')),r||null}function sl(e,t){cl(e);var r=fl(e,t);return r||(r=ul(e,t),r)?r:(F.warn('layout for attribute "'.concat(t,'" not present in buffer layout')),null)}function cl(e){var t=gt(e),r;try{for(t.s();!(r=t.n()).done;){var n=r.value;(n.attributes&&n.format||!n.attributes&&!n.format)&&F.warn("BufferLayout ".concat(name," must have either 'attributes' or 'format' field"))}}catch(i){t.e(i)}finally{t.f()}}function fl(e,t){var r=gt(e),n;try{for(r.s();!(n=r.n()).done;){var i=n.value;if(i.format&&i.name===t)return{attributeName:i.name,bufferName:t,stepMode:i.stepMode,vertexFormat:i.format,byteOffset:0,byteStride:i.byteStride||0}}}catch(o){r.e(o)}finally{r.f()}return null}function ul(e,t){var r=gt(e),n;try{for(r.s();!(n=r.n()).done;){var i,o=n.value,a=o.byteStride;if(typeof o.byteStride!="number"){var c=gt(o.attributes||[]),f;try{for(c.s();!(f=c.n()).done;){var u=f.value,_=gn(u.format);a+=_.byteLength}}catch(p){c.e(p)}finally{c.f()}}var E=(i=o.attributes)===null||i===void 0?void 0:i.find(function(p){return p.attribute===t});if(E)return{attributeName:E.attribute,bufferName:o.name,stepMode:o.stepMode,vertexFormat:E.format,byteOffset:E.byteOffset,byteStride:a}}}catch(p){r.e(p)}finally{r.f()}return null}function vn(e,t){var r=Tn(Tn({},e),{},{attributes:e.attributes.map(function(a){return Tn({},a)})}),n=gt(t?.attributes||[]),i;try{var o=function(){var c=i.value,f=r.attributes.find(function(u){return u.name===c.name});f?(f.type=c.type||f.type,f.stepMode=c.stepMode||f.stepMode):F.warn("shader layout attribute ".concat(c.name," not present in shader"))};for(n.s();!(i=n.n()).done;)o()}catch(a){n.e(a)}finally{n.f()}return r}var Wo;function Xo(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter(function(i){return Object.getOwnPropertyDescriptor(e,i).enumerable})),r.push.apply(r,n)}return r}function Vo(e){for(var t=1;t<arguments.length;t++){var r=arguments[t]!=null?arguments[t]:{};t%2?Xo(Object(r),!0).forEach(function(n){l(e,n,r[n])}):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(r)):Xo(Object(r)).forEach(function(n){Object.defineProperty(e,n,Object.getOwnPropertyDescriptor(r,n))})}return e}function ll(e){var t=_l();return function(){var n=I(e),i;if(t){var o=I(this).constructor;i=Reflect.construct(n,arguments,o)}else i=n.apply(this,arguments);return X(this,i)}}function _l(){if(typeof Reflect>"u"||!Reflect.construct||Reflect.construct.sham)return!1;if(typeof Proxy=="function")return!0;try{return Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],function(){})),!0}catch{return!1}}Wo=Symbol.toStringTag;var Dr=function(e){H(r,e);var t=ll(r);function r(n,i){var o;return C(this,r),o=t.call(this,n,i,r.defaultProps),o.maxVertexAttributes=void 0,o.attributeInfos=void 0,o.indexBuffer=null,o.attributes=void 0,o.maxVertexAttributes=n.limits.maxVertexAttributes,o.attributes=new Array(o.maxVertexAttributes).fill(null),o.attributeInfos=Ho(i.renderPipeline.shaderLayout,i.renderPipeline.bufferLayout,o.maxVertexAttributes),o}return M(r,[{key:Wo,get:function(){return"VertexArray"}}]),r}(z);Dr.defaultProps=Vo(Vo({},z.defaultProps),{},{renderPipeline:null});function w(e,t){if(!e)throw new Error(t||"luma.gl: assertion failed.")}var Br;function jo(e){return(!Br||Br.byteLength<e)&&(Br=new ArrayBuffer(e)),Br}function Sn(e,t){var r=jo(e.BYTES_PER_ELEMENT*t);return new e(r,0,t)}function bn(e){for(var t=e.target,r=e.source,n=e.start,i=n===void 0?0:n,o=e.count,a=o===void 0?1:o,c=r.length,f=a*c,u=0,_=i;u<c;u++)t[_++]=r[u];for(;u<f;)u<f-u?(t.copyWithin(i+u,i,i+u),u*=2):(t.copyWithin(i+u,i,i+f-u),u=f);return e.target}function Go(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter(function(i){return Object.getOwnPropertyDescriptor(e,i).enumerable})),r.push.apply(r,n)}return r}function El(e){for(var t=1;t<arguments.length;t++){var r=arguments[t]!=null?arguments[t]:{};t%2?Go(Object(r),!0).forEach(function(n){l(e,n,r[n])}):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(r)):Go(Object(r)).forEach(function(n){Object.defineProperty(e,n,Object.getOwnPropertyDescriptor(r,n))})}return e}var pl=/^(rg?b?a?)([0-9]*)([a-z]*)(-srgb)?(-webgl|-unsized)?$/;function Ur(e){var t=pl.exec(e);if(t){var r=L(t,6),n=r[1],i=r[2],o=r[3],a=r[4],c=r[5];if(n){var f="".concat(o).concat(i),u=xr(f);return El({format:n,components:0,srgb:a==="-srgb",unsized:c==="-unsized",webgl:c==="-webgl"},u)}}return hl(e)}var dl={"rgba4unorm-webgl":{format:"rgba",bpp:2},"rgb565unorm-webgl":{format:"rgb",bpp:2},"rgb5a1unorm-webgl":{format:"rgba",bbp:2},rgb9e5ufloat:{format:"rgb",bbp:4},rg11b10ufloat:{format:"rgb",bbp:4},rgb10a2unorm:{format:"rgba",bbp:4},"rgb10a2unorm-webgl":{format:"rgba",bbp:4},stencil8:{components:1,bpp:1,a:"stencil"},depth16unorm:{components:1,bpp:2,a:"depth"},depth24plus:{components:1,bpp:3,a:"depth"},depth32float:{components:1,bpp:4,a:"depth"},"depth24plus-stencil8":{components:2,bpp:4,a:"depth-stencil"},"depth24unorm-stencil8":{components:2,bpp:4,a:"depth-stencil"},"depth32float-stencil8":{components:2,bpp:4,a:"depth-stencil"}};function hl(e){var t=dl[e];if(!t)throw new Error("Unknown format ".concat(e));return{format:t.format||"",components:t.components||1,byteLength:t.bpp||1,srgb:!1,unsized:!1}}function ml(e,t){var r=typeof Symbol<"u"&&e[Symbol.iterator]||e["@@iterator"];if(!r){if(Array.isArray(e)||(r=Rl(e))||t&&e&&typeof e.length=="number"){r&&(e=r);var n=0,i=function(){};return{s:i,n:function(){return n>=e.length?{done:!0}:{done:!1,value:e[n++]}},e:function(u){throw u},f:i}}throw new TypeError(`Invalid attempt to iterate non-iterable instance.
11
+ In order to be iterable, non-array objects must have a [Symbol.iterator]() method.`)}var o=!0,a=!1,c;return{s:function(){r=r.call(e)},n:function(){var u=r.next();return o=u.done,u},e:function(u){a=!0,c=u},f:function(){try{!o&&r.return!=null&&r.return()}finally{if(a)throw c}}}}function Rl(e,t){if(e){if(typeof e=="string")return Ko(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 Ko(e,t)}}function Ko(e,t){(t==null||t>e.length)&&(t=e.length);for(var r=0,n=new Array(t);r<t;r++)n[r]=e[r];return n}function On(e,t,r){var n=t.split(/\r?\n/),i="",o=ml(e),a;try{for(o.s();!(a=o.n()).done;){var c=a.value;i+=Al(c,n,c.lineNum,r)}}catch(f){o.e(f)}finally{o.f()}return i}function Al(e,t,r,n){if(n!=null&&n.showSourceCode){var i=e.linePos>0?"".concat(" ".repeat(e.linePos+5),`^^^
12
+ `):"",o=gl(t,r);return"".concat(o).concat(i).concat(e.type.toUpperCase(),": ").concat(e.message,`
13
+
14
+ `)}return"".concat(e.type.toUpperCase(),": ").concat(e.message,`
15
+ `)}function gl(e,t){for(var r="",n=t-2;n<=t;n++){var i=e[n];i!==void 0&&(r+="".concat(Tl(String(n),4),": ").concat(i,`
16
+ `))}return r}function Tl(e,t){for(var r="",n=e.length;n<t;++n)r+=" ";return r+e}function Yo(e){return qi(e)!==null||typeof e=="number"||typeof e=="boolean"}function jt(e){var t={bindings:{},uniforms:{}};return Object.keys(e).forEach(function(r){var n=e[r];Yo(n)?t.uniforms[r]=n:t.bindings[r]=n}),t}function yn(e,t,r,n){var i="See luma.gl ".concat(r," Upgrade Guide at https://luma.gl/docs/upgrade-guide"),o=Object.getPrototypeOf(e);n.forEach(function(a){o.methodName||(o[a]=function(){throw F.removed("Calling removed method ".concat(t,".").concat(a,": "),i)(),new Error(a)})})}function ft(e,t,r){var n=r.removedProps,i=n===void 0?{}:n,o=r.deprecatedProps,a=o===void 0?{}:o,c=r.replacedProps,f=c===void 0?{}:c;for(var u in i)if(u in t){var _=i[u],E=_?"".concat(e,".").concat(i[u]):"N/A";F.removed("".concat(e,".").concat(u),E)()}for(var p in a)if(p in t){var d=a[p];F.deprecated("".concat(e,".").concat(p),"".concat(e,".").concat(d))()}for(var h=null,m=0,A=Object.entries(f);m<A.length;m++){var g=L(A[m],2),y=g[0],b=g[1];y in t&&(F.deprecated("".concat(e,".").concat(y),"".concat(e,".").concat(b))(),h=h||Object.assign({},t),h[b]=t[y],delete h[y])}return h||t}var Gt=nt(ke(),1),vl="";function Mn(e,t){return Nn.apply(this,arguments)}function Nn(){return Nn=pe(Gt.default.mark(function e(t,r){return Gt.default.wrap(function(i){for(;;)switch(i.prev=i.next){case 0:return i.abrupt("return",new Promise(function(o,a){try{var c=new Image;c.onload=function(){return o(c)},c.onerror=function(){return a(new Error("Could not load image ".concat(t,".")))},c.crossOrigin=r?.crossOrigin||"anonymous",c.src=t.startsWith("http")?t:vl+t}catch(f){a(f)}}));case 1:case"end":return i.stop()}},e)})),Nn.apply(this,arguments)}function Kt(e,t){return In.apply(this,arguments)}function In(){return In=pe(Gt.default.mark(function e(t,r){var n,i;return Gt.default.wrap(function(a){for(;;)switch(a.prev=a.next){case 0:if(n=document.getElementsByTagName("head")[0],n){a.next=3;break}throw new Error("loadScript");case 3:return i=document.createElement("script"),i.setAttribute("type","text/javascript"),i.setAttribute("src",t),r&&(i.id=r),a.abrupt("return",new Promise(function(c,f){i.onload=c,i.onerror=function(u){return f(new Error("Unable to load script '".concat(t,"': ").concat(u)))},n.appendChild(i)}));case 8:case"end":return a.stop()}},e)})),In.apply(this,arguments)}function Yt(e,t,r){if(e===t)return!0;if(!r||!e||!t)return!1;if(Array.isArray(e)){if(!Array.isArray(t)||e.length!==t.length)return!1;for(var n=0;n<e.length;n++)if(!Yt(e[n],t[n],r-1))return!1;return!0}if(Array.isArray(t))return!1;if(oe(e)==="object"&&oe(t)==="object"){var i=Object.keys(e),o=Object.keys(t);if(i.length!==o.length)return!1;for(var a=0,c=i;a<c.length;a++){var f=c[a];if(!t.hasOwnProperty(f)||!Yt(e[f],t[f],r-1))return!1}return!0}return!1}var s=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}({});function ko(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter(function(i){return Object.getOwnPropertyDescriptor(e,i).enumerable})),r.push.apply(r,n)}return r}function Cn(e){for(var t=1;t<arguments.length;t++){var r=arguments[t]!=null?arguments[t]:{};t%2?ko(Object(r),!0).forEach(function(n){l(e,n,r[n])}):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(r)):ko(Object(r)).forEach(function(n){Object.defineProperty(e,n,Object.getOwnPropertyDescriptor(r,n))})}return e}function wr(e,t,r,n){var i={defines:{MANUAL_SRGB:1,SRGB_FAST_APPROXIMATION:1},bindings:{},uniforms:{u_Camera:[0,0,0],u_MetallicRoughnessValues:[1,1]},parameters:{},glParameters:{},generatedTextures:[]};e.features.has("glsl-texture-lod")&&(i.defines.USE_TEX_LOD=1);var o=n.imageBasedLightingEnvironment;return o&&(i.bindings.u_DiffuseEnvSampler=o.diffuseEnvSampler,i.bindings.u_SpecularEnvSampler=o.specularEnvSampler,i.bindings.u_brdfLUT=o.brdfLutTexture,i.uniforms.u_ScaleIBLAmbient=[1,1]),n!=null&&n.pbrDebug&&(i.defines.PBR_DEBUG=1,i.uniforms.u_ScaleDiffBaseMR=[0,0,0,0],i.uniforms.u_ScaleFGDSpec=[0,0,0,0]),r.NORMAL&&(i.defines.HAS_NORMALS=1),r.TANGENT&&n!==null&&n!==void 0&&n.useTangents&&(i.defines.HAS_TANGENTS=1),r.TEXCOORD_0&&(i.defines.HAS_UV=1),n!=null&&n.imageBasedLightingEnvironment&&(i.defines.USE_IBL=1),n!=null&&n.lights&&(i.defines.USE_LIGHTS=1),t&&Sl(e,t,i),i}function Sl(e,t,r){if(r.uniforms.pbr_uUnlit=Boolean(t.unlit),t.pbrMetallicRoughness&&bl(e,t.pbrMetallicRoughness,r),t.normalTexture){kt(e,t.normalTexture,"u_NormalSampler","HAS_NORMALMAP",r);var n=t.normalTexture.scale,i=n===void 0?1:n;r.uniforms.u_NormalScale=i}if(t.occlusionTexture){kt(e,t.occlusionTexture,"u_OcclusionSampler","HAS_OCCLUSIONMAP",r);var o=t.occlusionTexture.strength,a=o===void 0?1:o;r.uniforms.u_OcclusionStrength=a}switch(t.emissiveTexture&&(kt(e,t.emissiveTexture,"u_EmissiveSampler","HAS_EMISSIVEMAP",r),r.uniforms.u_EmissiveFactor=t.emissiveFactor||[0,0,0]),t.alphaMode){case"MASK":var c=t.alphaCutoff,f=c===void 0?.5:c;r.defines.ALPHA_CUTOFF=1,r.uniforms.u_AlphaCutoff=f;break;case"BLEND":F.warn("glTF BLEND alphaMode might not work well because it requires mesh sorting")(),r.parameters.blendColorOperation="add",r.parameters.blendColorSrcFactor="src-alpha",r.parameters.blendColorDstFactor="one-minus-src-alpha",r.parameters.blendAlphaOperation="add",r.parameters.blendAlphaSrcFactor="one",r.parameters.blendAlphaDstFactor="one-minus-src-alpha",r.glParameters.blend=!0,r.glParameters.blendEquation=s.FUNC_ADD,r.glParameters.blendFunc=[s.SRC_ALPHA,s.ONE_MINUS_SRC_ALPHA,s.ONE,s.ONE_MINUS_SRC_ALPHA];break}}function bl(e,t,r){t.baseColorTexture&&kt(e,t.baseColorTexture,"u_BaseColorSampler","HAS_BASECOLORMAP",r),r.uniforms.u_BaseColorFactor=t.baseColorFactor||[1,1,1,1],t.metallicRoughnessTexture&&kt(e,t.metallicRoughnessTexture,"u_MetallicRoughnessSampler","HAS_METALROUGHNESSMAP",r);var n=t.metallicFactor,i=n===void 0?1:n,o=t.roughnessFactor,a=o===void 0?1:o;r.uniforms.u_MetallicRoughnessValues=[i,a]}function kt(e,t,r){var n,i=arguments.length>3&&arguments[3]!==void 0?arguments[3]:null,o=arguments.length>4?arguments[4]:void 0,a=(t==null||(n=t.texture)===null||n===void 0||(n=n.sampler)===null||n===void 0?void 0:n.parameters)||{},c=t.texture.source.image,f,u={};c.compressed?(f=c,u=l({},s.TEXTURE_MIN_FILTER,c.data.length>1?s.LINEAR_MIPMAP_NEAREST:s.LINEAR)):f={data:c};var _=e.createTexture(Cn({id:t.uniformName||t.id,parameters:Cn(Cn({},a),u),pixelStore:l({},s.UNPACK_FLIP_Y_WEBGL,!1)},f));o.bindings[r]=_,i&&(o.defines[i]=1),o.generatedTextures.push(_)}function Pn(e){if(Array.isArray(e))return mt(e)}function zt(e){if(typeof Symbol<"u"&&e[Symbol.iterator]!=null||e["@@iterator"]!=null)return Array.from(e)}function xn(){throw new TypeError(`Invalid attempt to spread non-iterable instance.
17
+ In order to be iterable, non-array objects must have a [Symbol.iterator]() method.`)}function Z(e){return Pn(e)||zt(e)||ct(e)||xn()}var ae=function(t){return"".concat(t)};function Ie(e,t){if(!e)throw new Error(t||"shadertools: assertion failed.")}function zo(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter(function(i){return Object.getOwnPropertyDescriptor(e,i).enumerable})),r.push.apply(r,n)}return r}function qe(e){for(var t=1;t<arguments.length;t++){var r=arguments[t]!=null?arguments[t]:{};t%2?zo(Object(r),!0).forEach(function(n){l(e,n,r[n])}):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(r)):zo(Object(r)).forEach(function(n){Object.defineProperty(e,n,Object.getOwnPropertyDescriptor(r,n))})}return e}var Fn={number:{type:"number",validate:function(t,r){return Number.isFinite(t)&&oe(r)==="object"&&(r.max===void 0||t<=r.max)&&(r.min===void 0||t>=r.min)}},array:{type:"array",validate:function(t,r){return Array.isArray(t)||ArrayBuffer.isView(t)}}};function Zo(e){for(var t={},r=0,n=Object.entries(e);r<n.length;r++){var i=L(n[r],2),o=i[0],a=i[1];t[o]=Ol(a)}return t}function $o(e,t,r){for(var n={},i=0,o=Object.entries(t);i<o.length;i++){var a=L(o[i],2),c=a[0],f=a[1];e&&c in e&&!f.private?(f.validate&&Ie(f.validate(e[c],f),"".concat(r,": invalid ").concat(c)),n[c]=e[c]):n[c]=f.value}return n}function Ol(e){var t=qo(e);if(t!=="object")return qe(qe({value:e},Fn[t]),{},{type:t});if(oe(e)==="object")return e?e.type!==void 0?qe(qe(qe({},e),Fn[e.type]),{},{type:e.type}):e.value===void 0?{type:"object",value:e}:(t=qo(e.value),qe(qe(qe({},e),Fn[t]),{},{type:t})):{type:"object",value:null};throw new Error("props")}function qo(e){return Array.isArray(e)||ArrayBuffer.isView(e)?"array":oe(e)}function ne(e,t){return t||(t=e.slice(0)),Object.freeze(Object.defineProperties(e,{raw:{value:Object.freeze(t)}}))}var Qo,Jo,ea=ae(Qo||(Qo=ne([`#ifdef MODULE_LOGDEPTH
18
+ logdepth_adjustPosition(gl_Position);
19
+ #endif
20
+ `],[`\\
21
+ #ifdef MODULE_LOGDEPTH
22
+ logdepth_adjustPosition(gl_Position);
23
+ #endif
24
+ `]))),ta=ae(Jo||(Jo=ne([`#ifdef MODULE_MATERIAL
25
+ gl_FragColor = material_filterColor(gl_FragColor);
26
+ #endif
27
+
28
+ #ifdef MODULE_LIGHTING
29
+ gl_FragColor = lighting_filterColor(gl_FragColor);
30
+ #endif
31
+
32
+ #ifdef MODULE_FOG
33
+ gl_FragColor = fog_filterColor(gl_FragColor);
34
+ #endif
35
+
36
+ #ifdef MODULE_PICKING
37
+ gl_FragColor = picking_filterHighlightColor(gl_FragColor);
38
+ gl_FragColor = picking_filterPickingColor(gl_FragColor);
39
+ #endif
40
+
41
+ #ifdef MODULE_LOGDEPTH
42
+ logdepth_setFragDepth();
43
+ #endif
44
+ `],[`\\
45
+ #ifdef MODULE_MATERIAL
46
+ gl_FragColor = material_filterColor(gl_FragColor);
47
+ #endif
48
+
49
+ #ifdef MODULE_LIGHTING
50
+ gl_FragColor = lighting_filterColor(gl_FragColor);
51
+ #endif
52
+
53
+ #ifdef MODULE_FOG
54
+ gl_FragColor = fog_filterColor(gl_FragColor);
55
+ #endif
56
+
57
+ #ifdef MODULE_PICKING
58
+ gl_FragColor = picking_filterHighlightColor(gl_FragColor);
59
+ gl_FragColor = picking_filterPickingColor(gl_FragColor);
60
+ #endif
61
+
62
+ #ifdef MODULE_LOGDEPTH
63
+ logdepth_setFragDepth();
64
+ #endif
65
+ `])));var yl={vertex:ea,fragment:ta},ra=/void\s+main\s*\([^)]*\)\s*\{\n?/,na=/}\n?[^{}]*$/,Dn=[],qt="__LUMA_INJECT_DECLARATIONS__";function ia(e){var t={vertex:{},fragment:{}};for(var r in e){var n=e[r],i=Nl(r);typeof n=="string"&&(n={order:0,injection:n}),t[i][r]=n}return t}function Nl(e){var t=e.slice(0,2);switch(t){case"vs":return"vertex";case"fs":return"fragment";default:throw new Error(t)}}function Zt(e,t,r){var n=arguments.length>3&&arguments[3]!==void 0?arguments[3]:!1,i=t==="vertex",o=function(){var f=r[a];f.sort(function(p,d){return p.order-d.order}),Dn.length=f.length;for(var u=0,_=f.length;u<_;++u)Dn[u]=f[u].injection;var E="".concat(Dn.join(`
66
+ `),`
67
+ `);switch(a){case"vs:#decl":i&&(e=e.replace(qt,E));break;case"vs:#main-start":i&&(e=e.replace(ra,function(p){return p+E}));break;case"vs:#main-end":i&&(e=e.replace(na,function(p){return E+p}));break;case"fs:#decl":i||(e=e.replace(qt,E));break;case"fs:#main-start":i||(e=e.replace(ra,function(p){return p+E}));break;case"fs:#main-end":i||(e=e.replace(na,function(p){return E+p}));break;default:e=e.replace(a,function(p){return p+E})}};for(var a in r)o();return e=e.replace(qt,""),n&&(e=e.replace(/\}\s*$/,function(c){return c+yl[t]})),e}var oa=function(){e.instantiateModules=function(n){return n.map(function(i){if(i instanceof e)return i;Ie(typeof i!="string","Shader module use by name is deprecated. Import shader module '".concat(i,"' and use it directly.")),Ie(i.name,"shader module has no name");var o=new e(i);return o.dependencies=e.instantiateModules(i.dependencies||[]),o})};function e(r){C(this,e),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={};var n=r.name,i=r.vs,o=r.fs,a=r.dependencies,c=a===void 0?[]:a,f=r.uniformPropTypes,u=f===void 0?{}:f,_=r.getUniforms,E=r.deprecations,p=E===void 0?[]:E,d=r.defines,h=d===void 0?{}:d,m=r.inject,A=m===void 0?{}:m;Ie(typeof n=="string"),this.name=n,this.vs=i,this.fs=o,this.getModuleUniforms=_,this.dependencies=e.instantiateModules(c),this.deprecations=this._parseDeprecationDefinitions(p),this.defines=h,this.injections=ia(A),u&&(this.uniforms=Zo(u))}var t=e.prototype;return t.getModuleSource=function(n){var i;switch(n){case"vertex":i=this.vs||"";break;case"fragment":i=this.fs||"";break;default:Ie(!1)}return"#define MODULE_".concat(this.name.toUpperCase().replace(/[^0-9a-z]/gi,"_"),`
68
+ `).concat(i,"// END MODULE_").concat(this.name,`
69
+
70
+ `)},t.getUniforms=function(n,i){return this.getModuleUniforms?this.getModuleUniforms(n,i):$o(n,this.uniforms,this.name)},t.getDefines=function(){return this.defines},t.checkDeprecations=function(n,i){this.deprecations.forEach(function(o){var a;(a=o.regex)!==null&&a!==void 0&&a.test(n)&&(o.deprecated?i.deprecated(o.old,o.new)():i.removed(o.old,o.new)())})},t._parseDeprecationDefinitions=function(n){return n.forEach(function(i){switch(i.type){case"function":i.regex=new RegExp("\\b".concat(i.old,"\\("));break;default:i.regex=new RegExp("".concat(i.type," ").concat(i.old,";"))}}),n},t._defaultGetUniforms=function(){var n=arguments.length>0&&arguments[0]!==void 0?arguments[0]:{},i={},o=this.uniforms;for(var a in o){var c=o[a];a in n&&!c.private?(c.validate&&Ie(c.validate(n[a],c),"".concat(this.name,": invalid ").concat(a)),i[a]=n[a]):i[a]=c.value}return i},M(e)}();function aa(e,t){var r=typeof Symbol<"u"&&e[Symbol.iterator]||e["@@iterator"];if(!r){if(Array.isArray(e)||(r=Il(e))||t&&e&&typeof e.length=="number"){r&&(e=r);var n=0,i=function(){};return{s:i,n:function(){return n>=e.length?{done:!0}:{done:!1,value:e[n++]}},e:function(u){throw u},f:i}}throw new TypeError(`Invalid attempt to iterate non-iterable instance.
71
+ In order to be iterable, non-array objects must have a [Symbol.iterator]() method.`)}var o=!0,a=!1,c;return{s:function(){r=r.call(e)},n:function(){var u=r.next();return o=u.done,u},e:function(u){a=!0,c=u},f:function(){try{!o&&r.return!=null&&r.return()}finally{if(a)throw c}}}}function Il(e,t){if(e){if(typeof e=="string")return sa(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 sa(e,t)}}function sa(e,t){(t==null||t>e.length)&&(t=e.length);for(var r=0,n=new Array(t);r<t;r++)n[r]=e[r];return n}function ca(e){var t=oa.instantiateModules(e);return Ml(t)}function Ml(e){var t={},r={};return fa({modules:e,level:0,moduleMap:t,moduleDepth:r}),Object.keys(r).sort(function(n,i){return r[i]-r[n]}).map(function(n){return t[n]})}function fa(e){var t=e.modules,r=e.level,n=e.moduleMap,i=e.moduleDepth;if(r>=5)throw new Error("Possible loop in shader dependency graph");var o=aa(t),a;try{for(o.s();!(a=o.n()).done;){var c=a.value;n[c.name]=c,(i[c.name]===void 0||i[c.name]<r)&&(i[c.name]=r)}}catch(E){o.e(E)}finally{o.f()}var f=aa(t),u;try{for(f.s();!(u=f.n()).done;){var _=u.value;_.dependencies&&fa({modules:_.dependencies,level:r+1,moduleMap:n,moduleDepth:i})}}catch(E){f.e(E)}finally{f.f()}}var ua,la,_a,Ea,pa,da,ha,ma,Ra,Aa;function ga(e){switch(e?.gpu.toLowerCase()){case"apple":return ae(ua||(ua=ne([`#define APPLE_GPU
72
+ // Apple optimizes away the calculation necessary for emulated fp64
73
+ #define LUMA_FP64_CODE_ELIMINATION_WORKAROUND 1
74
+ #define LUMA_FP32_TAN_PRECISION_WORKAROUND 1
75
+ // Intel GPU doesn't have full 32 bits precision in same cases, causes overflow
76
+ #define LUMA_FP64_HIGH_BITS_OVERFLOW_WORKAROUND 1
77
+ `],[`\\
78
+ #define APPLE_GPU
79
+ // Apple optimizes away the calculation necessary for emulated fp64
80
+ #define LUMA_FP64_CODE_ELIMINATION_WORKAROUND 1
81
+ #define LUMA_FP32_TAN_PRECISION_WORKAROUND 1
82
+ // Intel GPU doesn't have full 32 bits precision in same cases, causes overflow
83
+ #define LUMA_FP64_HIGH_BITS_OVERFLOW_WORKAROUND 1
84
+ `])));case"nvidia":return ae(la||(la=ne([`#define NVIDIA_GPU
85
+ // Nvidia optimizes away the calculation necessary for emulated fp64
86
+ #define LUMA_FP64_CODE_ELIMINATION_WORKAROUND 1
87
+ `],[`\\
88
+ #define NVIDIA_GPU
89
+ // Nvidia optimizes away the calculation necessary for emulated fp64
90
+ #define LUMA_FP64_CODE_ELIMINATION_WORKAROUND 1
91
+ `])));case"intel":return ae(_a||(_a=ne([`#define INTEL_GPU
92
+ // Intel optimizes away the calculation necessary for emulated fp64
93
+ #define LUMA_FP64_CODE_ELIMINATION_WORKAROUND 1
94
+ // Intel's built-in 'tan' function doesn't have acceptable precision
95
+ #define LUMA_FP32_TAN_PRECISION_WORKAROUND 1
96
+ // Intel GPU doesn't have full 32 bits precision in same cases, causes overflow
97
+ #define LUMA_FP64_HIGH_BITS_OVERFLOW_WORKAROUND 1
98
+ `],[`\\
99
+ #define INTEL_GPU
100
+ // Intel optimizes away the calculation necessary for emulated fp64
101
+ #define LUMA_FP64_CODE_ELIMINATION_WORKAROUND 1
102
+ // Intel's built-in 'tan' function doesn't have acceptable precision
103
+ #define LUMA_FP32_TAN_PRECISION_WORKAROUND 1
104
+ // Intel GPU doesn't have full 32 bits precision in same cases, causes overflow
105
+ #define LUMA_FP64_HIGH_BITS_OVERFLOW_WORKAROUND 1
106
+ `])));case"amd":return ae(Ea||(Ea=ne([`#define AMD_GPU
107
+ `],[`\\
108
+ #define AMD_GPU
109
+ `])));default:return ae(pa||(pa=ne([`#define DEFAULT_GPU
110
+ // Prevent driver from optimizing away the calculation necessary for emulated fp64
111
+ #define LUMA_FP64_CODE_ELIMINATION_WORKAROUND 1
112
+ // Headless Chrome's software shader 'tan' function doesn't have acceptable precision
113
+ #define LUMA_FP32_TAN_PRECISION_WORKAROUND 1
114
+ // If the GPU doesn't have full 32 bits precision, will causes overflow
115
+ #define LUMA_FP64_HIGH_BITS_OVERFLOW_WORKAROUND 1
116
+ `],[`\\
117
+ #define DEFAULT_GPU
118
+ // Prevent driver from optimizing away the calculation necessary for emulated fp64
119
+ #define LUMA_FP64_CODE_ELIMINATION_WORKAROUND 1
120
+ // Headless Chrome's software shader 'tan' function doesn't have acceptable precision
121
+ #define LUMA_FP32_TAN_PRECISION_WORKAROUND 1
122
+ // If the GPU doesn't have full 32 bits precision, will causes overflow
123
+ #define LUMA_FP64_HIGH_BITS_OVERFLOW_WORKAROUND 1
124
+ `])))}}function Ta(e){var t=ae(da||(da=ne([`#if (__VERSION__ > 120)
125
+ # define FEATURE_GLSL_DERIVATIVES
126
+ # define FEATURE_GLSL_DRAW_BUFFERS
127
+ # define FEATURE_GLSL_FRAG_DEPTH
128
+ # define FEATURE_GLSL_TEXTURE_LOD
129
+ #endif // __VERSION
130
+ `],[`\\
131
+ #if (__VERSION__ > 120)
132
+ # define FEATURE_GLSL_DERIVATIVES
133
+ # define FEATURE_GLSL_DRAW_BUFFERS
134
+ # define FEATURE_GLSL_FRAG_DEPTH
135
+ # define FEATURE_GLSL_TEXTURE_LOD
136
+ #endif // __VERSION
137
+ `])));return!e.features.has("webgl2")&&e.features.has("glsl-frag-depth")&&(t+=ae(ha||(ha=ne([`
138
+ // FRAG_DEPTH => gl_FragDepth is available
139
+ #ifdef GL_EXT_frag_depth
140
+ # extension GL_EXT_frag_depth : enable
141
+ # define FEATURE_GLSL_FRAG_DEPTH
142
+ # define FRAG_DEPTH
143
+ # define gl_FragDepth gl_FragDepthEXT
144
+ #endif
145
+ `],[`\\
146
+
147
+ // FRAG_DEPTH => gl_FragDepth is available
148
+ #ifdef GL_EXT_frag_depth
149
+ # extension GL_EXT_frag_depth : enable
150
+ # define FEATURE_GLSL_FRAG_DEPTH
151
+ # define FRAG_DEPTH
152
+ # define gl_FragDepth gl_FragDepthEXT
153
+ #endif
154
+ `])))),!e.features.has("webgl2")&&e!==null&&e!==void 0&&e.features.has("glsl-derivatives")&&(t+=ae(ma||(ma=ne([`
155
+ // DERIVATIVES => dxdF, dxdY and fwidth are available
156
+ #if defined(GL_OES_standard_derivatives) || defined(FEATURE_GLSL_DERIVATIVES)
157
+ # extension GL_OES_standard_derivatives : enable
158
+ # define FEATURE_GLSL_DERIVATIVES
159
+ # define DERIVATIVES
160
+ #endif
161
+ `],[`\\
162
+
163
+ // DERIVATIVES => dxdF, dxdY and fwidth are available
164
+ #if defined(GL_OES_standard_derivatives) || defined(FEATURE_GLSL_DERIVATIVES)
165
+ # extension GL_OES_standard_derivatives : enable
166
+ # define FEATURE_GLSL_DERIVATIVES
167
+ # define DERIVATIVES
168
+ #endif
169
+ `])))),!e.features.has("webgl2")&&e!==null&&e!==void 0&&e.features.has("glsl-frag-data")&&(t+=ae(Ra||(Ra=ne([`
170
+ // DRAW_BUFFERS => gl_FragData[] is available
171
+ #ifdef GL_EXT_draw_buffers
172
+ # extension GL_EXT_draw_buffers : require
173
+ # define FEATURE_GLSL_DRAW_BUFFERS
174
+ # define DRAW_BUFFERS
175
+ #endif
176
+ `],[`\\
177
+
178
+ // DRAW_BUFFERS => gl_FragData[] is available
179
+ #ifdef GL_EXT_draw_buffers
180
+ # extension GL_EXT_draw_buffers : require
181
+ # define FEATURE_GLSL_DRAW_BUFFERS
182
+ # define DRAW_BUFFERS
183
+ #endif
184
+ `])))),!e.features.has("webgl2")&&e!==null&&e!==void 0&&e.features.has("glsl-texture-lod")&&(t+=ae(Aa||(Aa=ne([`// TEXTURE_LOD => texture2DLod etc are available
185
+ #ifdef GL_EXT_shader_texture_lod
186
+ # extension GL_EXT_shader_texture_lod : enable
187
+ # define FEATURE_GLSL_TEXTURE_LOD
188
+ # define TEXTURE_LOD
189
+ #endif
190
+ `],[`\\
191
+ // TEXTURE_LOD => texture2DLod etc are available
192
+ #ifdef GL_EXT_shader_texture_lod
193
+ # extension GL_EXT_shader_texture_lod : enable
194
+ # define FEATURE_GLSL_TEXTURE_LOD
195
+ # define TEXTURE_LOD
196
+ #endif
197
+ `])))),t}function Cl(e,t){var r=typeof Symbol<"u"&&e[Symbol.iterator]||e["@@iterator"];if(!r){if(Array.isArray(e)||(r=Pl(e))||t&&e&&typeof e.length=="number"){r&&(e=r);var n=0,i=function(){};return{s:i,n:function(){return n>=e.length?{done:!0}:{done:!1,value:e[n++]}},e:function(u){throw u},f:i}}throw new TypeError(`Invalid attempt to iterate non-iterable instance.
198
+ In order to be iterable, non-array objects must have a [Symbol.iterator]() method.`)}var o=!0,a=!1,c;return{s:function(){r=r.call(e)},n:function(){var u=r.next();return o=u.done,u},e:function(u){a=!0,c=u},f:function(){try{!o&&r.return!=null&&r.return()}finally{if(a)throw c}}}}function Pl(e,t){if(e){if(typeof e=="string")return va(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 va(e,t)}}function va(e,t){(t==null||t>e.length)&&(t=e.length);for(var r=0,n=new Array(t);r<t;r++)n[r]=e[r];return n}function Sa(e,t,r){switch(t){case 300:switch(r){case"vertex":return Lr(e,xl);case"fragment":return wl(e);default:throw new Error("unknown shader stage ".concat(r))}case 100:switch(r){case"vertex":return Lr(e,Dl);case"fragment":return Ll(e);default:throw new Error("unknown shader stage ".concat(r))}default:throw new Error("unknown GLSL version ".concat(t))}}var ba=[[/^(#version[ \t]+(100|300[ \t]+es))?[ \t]*\n/,`#version 300 es
199
+ `],[/\btexture(2D|2DProj|Cube)Lod(EXT)?\(/g,"textureLod("],[/\btexture(2D|2DProj|Cube)(EXT)?\(/g,"texture("]],xl=[].concat(ba,[[Tt("attribute"),"in $1"],[Tt("varying"),"out $1"]]),Fl=[].concat(ba,[[Tt("varying"),"in $1"]]),Oa=[[/^#version[ \t]+300[ \t]+es/,"#version 100"],[/\btexture(2D|2DProj|Cube)Lod\(/g,"texture$1LodEXT("],[/\btexture\(/g,"texture2D("],[/\btextureLod\(/g,"texture2DLodEXT("]],Dl=[].concat(Oa,[[Tt("in"),"attribute $1"],[Tt("out"),"varying $1"]]),Bl=[].concat(Oa,[[Tt("in"),"varying $1"]]),Bn="gl_FragColor",Un=/\bout[ \t]+vec4[ \t]+(\w+)[ \t]*;\n?/,Ul=/void\s+main\s*\([^)]*\)\s*\{\n?/;function Lr(e,t){var r=Cl(t),n;try{for(r.s();!(n=r.n()).done;){var i=L(n.value,2),o=i[0],a=i[1];e=e.replace(o,a)}}catch(c){r.e(c)}finally{r.f()}return e}function wl(e){e=Lr(e,Fl);var t=Un.exec(e);if(t){var r=t[1];e=e.replace(new RegExp("\\b".concat(Bn,"\\b"),"g"),r)}else{var n="fragmentColor";e=e.replace(Ul,function(i){return"out vec4 ".concat(n,`;
200
+ `).concat(i)}).replace(new RegExp("\\b".concat(Bn,"\\b"),"g"),n)}return e}function Ll(e){e=Lr(e,Bl);var t=Un.exec(e);if(t){var r=t[1];e=e.replace(Un,"").replace(new RegExp("\\b".concat(r,"\\b"),"g"),Bn)}return e}function Tt(e){return new RegExp("\\b".concat(e,"[ \\t]+(\\w+[ \\t]+\\w+(\\[\\w+\\])?;)"),"g")}function Na(e,t){var r=typeof Symbol<"u"&&e[Symbol.iterator]||e["@@iterator"];if(!r){if(Array.isArray(e)||(r=Hl(e))||t&&e&&typeof e.length=="number"){r&&(e=r);var n=0,i=function(){};return{s:i,n:function(){return n>=e.length?{done:!0}:{done:!1,value:e[n++]}},e:function(u){throw u},f:i}}throw new TypeError(`Invalid attempt to iterate non-iterable instance.
201
+ In order to be iterable, non-array objects must have a [Symbol.iterator]() method.`)}var o=!0,a=!1,c;return{s:function(){r=r.call(e)},n:function(){var u=r.next();return o=u.done,u},e:function(u){a=!0,c=u},f:function(){try{!o&&r.return!=null&&r.return()}finally{if(a)throw c}}}}function Hl(e,t){if(e){if(typeof e=="string")return ya(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 ya(e,t)}}function ya(e,t){(t==null||t>e.length)&&(t=e.length);for(var r=0,n=new Array(t);r<t;r++)n[r]=e[r];return n}function wn(e,t){var r="";for(var n in e){var i=e[n];if(r+="void ".concat(i.signature,` {
202
+ `),i.header&&(r+=" ".concat(i.header)),t[n]){var o=t[n];o.sort(function(u,_){return u.order-_.order});var a=Na(o),c;try{for(a.s();!(c=a.n()).done;){var f=c.value;r+=" ".concat(f.injection,`
203
+ `)}}catch(u){a.e(u)}finally{a.f()}}i.footer&&(r+=" ".concat(i.footer)),r+=`}
204
+ `}return r}function Ln(e){var t={vertex:{},fragment:{}},r=Na(e),n;try{for(r.s();!(n=r.n()).done;){var i=n.value,o=void 0,a=void 0;typeof i!="string"?(o=i,a=o.hook):(o={},a=i),a=a.trim();var c=a.split(":"),f=L(c,2),u=f[0],_=f[1],E=a.replace(/\(.+/,""),p=Object.assign(o,{signature:_});switch(u){case"vs":t.vertex[E]=p;break;case"fs":t.fragment[E]=p;break;default:throw new Error(u)}}}catch(d){r.e(d)}finally{r.f()}return t}var Ia;function Hn(e,t){var r=typeof Symbol<"u"&&e[Symbol.iterator]||e["@@iterator"];if(!r){if(Array.isArray(e)||(r=Xl(e))||t&&e&&typeof e.length=="number"){r&&(e=r);var n=0,i=function(){};return{s:i,n:function(){return n>=e.length?{done:!0}:{done:!1,value:e[n++]}},e:function(u){throw u},f:i}}throw new TypeError(`Invalid attempt to iterate non-iterable instance.
205
+ In order to be iterable, non-array objects must have a [Symbol.iterator]() method.`)}var o=!0,a=!1,c;return{s:function(){r=r.call(e)},n:function(){var u=r.next();return o=u.done,u},e:function(u){a=!0,c=u},f:function(){try{!o&&r.return!=null&&r.return()}finally{if(a)throw c}}}}function Xl(e,t){if(e){if(typeof e=="string")return Ma(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 Ma(e,t)}}function Ma(e,t){(t==null||t>e.length)&&(t=e.length);for(var r=0,n=new Array(t);r<t;r++)n[r]=e[r];return n}function Ca(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter(function(i){return Object.getOwnPropertyDescriptor(e,i).enumerable})),r.push.apply(r,n)}return r}function Ze(e){for(var t=1;t<arguments.length;t++){var r=arguments[t]!=null?arguments[t]:{};t%2?Ca(Object(r),!0).forEach(function(n){l(e,n,r[n])}):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(r)):Ca(Object(r)).forEach(function(n){Object.defineProperty(e,n,Object.getOwnPropertyDescriptor(r,n))})}return e}var Da=`
206
+
207
+ `.concat(qt,`
208
+
209
+ `),Vl=ae(Ia||(Ia=ne([`precision highp float;
210
+
211
+ `],[`\\
212
+ precision highp float;
213
+
214
+ `])));function Ba(e,t){var r=t.vs,n=t.fs,i=ca(t.modules||[]);switch(e.shaderLanguage){case"glsl":return{vs:xa(e,Ze(Ze({},t),{},{source:r,stage:"vertex",modules:i})),fs:xa(e,Ze(Ze({},t),{},{source:n,stage:"fragment",modules:i})),getUniforms:Fa(i)};case"wgsl":return{vs:Pa(e,Ze(Ze({},t),{},{source:r,stage:"vertex",modules:i})),fs:Pa(e,Ze(Ze({},t),{},{source:n,stage:"fragment",modules:i})),getUniforms:Fa(i)}}}function Pa(e,t){var r=t.source,n=t.stage,i=t.modules,o=t.defines,a=o===void 0?{}:o,c=t.hookFunctions,f=c===void 0?[]:c,u=t.inject,_=u===void 0?{}:u,E=t.log;Ie(typeof r=="string","shader source must be a string");var p=r,d={};i.forEach(function(k){Object.assign(d,k.getDefines())}),Object.assign(d,a);var h="",m=Ln(f),A={},g={},y={};for(var b in _){var S=typeof _[b]=="string"?{injection:_[b],order:0}:_[b],x=/^(v|f)s:(#)?([\w-]+)$/.exec(b);if(x){var P=x[2],j=x[3];P?j==="decl"?g[b]=[S]:y[b]=[S]:A[b]=[S]}else y[b]=[S]}var W=Hn(i),K;try{for(W.s();!(K=W.n()).done;){var V=K.value;E&&V.checkDeprecations(p,E);var O=V.getModuleSource(n,"wgsl");h+=O;var R=V.injections[n];for(var T in R){var N=/^(v|f)s:#([\w-]+)$/.exec(T);if(N){var B=N[2],U=B==="decl"?g:y;U[T]=U[T]||[],U[T].push(R[T])}else A[T]=A[T]||[],A[T].push(R[T])}}}catch(k){W.e(k)}finally{W.f()}return h+=Da,h=Zt(h,n,g),h+=wn(m[n],A),h+=p,h=Zt(h,n,y),h}function xa(e,t){var r=t.source.includes("->"),n=t.id,i=t.source,o=t.stage,a=t.language,c=a===void 0?r?"wgsl":"glsl":a,f=t.modules,u=t.defines,_=u===void 0?{}:u,E=t.hookFunctions,p=E===void 0?[]:E,d=t.inject,h=d===void 0?{}:d,m=t.transpileToGLSL100,A=m===void 0?!1:m,g=t.prologue,y=g===void 0?!r:g,b=t.log;Ie(typeof i=="string","shader source must be a string");var S=i.split(`
215
+ `),x=100,P="",j=i;S[0].indexOf("#version ")===0?(x=300,P=S[0],j=S.slice(1).join(`
216
+ `)):P="#version ".concat(x);var W=A?100:x,K={};f.forEach(function(ln){Object.assign(K,ln.getDefines())}),Object.assign(K,_);var V="";switch(c){case"wgsl":break;case"glsl":V=y?"".concat(P,`
217
+ `).concat(Wl({id:n,source:i,stage:o}),`
218
+ `,"#define SHADER_TYPE_".concat(o.toUpperCase()),`
219
+ `).concat(ga(e),`
220
+ `).concat(Ta(e),`
221
+ `).concat(jl(K),`
222
+ `).concat(o==="fragment"?Vl:"",`
223
+ `):"".concat(P,`
224
+ `);break}var O=Ln(p),R={},T={},N={};for(var B in h){var U=typeof h[B]=="string"?{injection:h[B],order:0}:h[B],k=/^(v|f)s:(#)?([\w-]+)$/.exec(B);if(k){var ie=k[2],Q=k[3];ie?Q==="decl"?T[B]=[U]:N[B]=[U]:R[B]=[U]}else N[B]=[U]}var le=Hn(f),ce;try{for(le.s();!(ce=le.n()).done;){var Ee=ce.value;b&&Ee.checkDeprecations(j,b);var pr=Ee.getModuleSource(o);V+=pr;var Bt=Ee.injections[o];for(var ge in Bt){var dr=/^(v|f)s:#([\w-]+)$/.exec(ge);if(dr){var tu=dr[2],un=tu==="decl"?T:N;un[ge]=un[ge]||[],un[ge].push(Bt[ge])}else R[ge]=R[ge]||[],R[ge].push(Bt[ge])}}}catch(ln){le.e(ln)}finally{le.f()}return V+=Da,V=Zt(V,o,T),V+=wn(O[o],R),V+=j,V=Zt(V,o,N),V=Sa(V,W,o),V.trim()}function Fa(e){return function(r){var n={},i=Hn(e),o;try{for(i.s();!(o=i.n()).done;){var a=o.value,c=a.getUniforms(r,n);Object.assign(n,c)}}catch(f){i.e(f)}finally{i.f()}return n}}function Wl(e){var t=e.id,r=e.source,n=e.stage,i=t&&r.indexOf("SHADER_NAME")===-1;return i?`
225
+ #define SHADER_NAME `.concat(t,"_").concat(n,`
226
+
227
+ `):""}function jl(){var e=arguments.length>0&&arguments[0]!==void 0?arguments[0]:{},t=0,r="";for(var n in e){t===0&&(r+=`
228
+ // APPLICATION DEFINES
229
+ `),t++;var i=e[n];(i||Number.isFinite(i))&&(r+="#define ".concat(n.toUpperCase()," ").concat(e[n],`
230
+ `))}return t===0&&(r+=`
231
+ `),r}function Ua(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter(function(i){return Object.getOwnPropertyDescriptor(e,i).enumerable})),r.push.apply(r,n)}return r}function wa(e){for(var t=1;t<arguments.length;t++){var r=arguments[t]!=null?arguments[t]:{};t%2?Ua(Object(r),!0).forEach(function(n){l(e,n,r[n])}):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(r)):Ua(Object(r)).forEach(function(n){Object.defineProperty(e,n,Object.getOwnPropertyDescriptor(r,n))})}return e}function Ha(e,t){if(!t.vs)throw new Error("no vertex shader");var r=La(e,t.vs),n;return t.fs&&(n=La(e,t.fs)),wa(wa({},t),{},{vs:r,fs:n})}function La(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")}}function Xa(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter(function(i){return Object.getOwnPropertyDescriptor(e,i).enumerable})),r.push.apply(r,n)}return r}function Va(e){for(var t=1;t<arguments.length;t++){var r=arguments[t]!=null?arguments[t]:{};t%2?Xa(Object(r),!0).forEach(function(n){l(e,n,r[n])}):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(r)):Xa(Object(r)).forEach(function(n){Object.defineProperty(e,n,Object.getOwnPropertyDescriptor(r,n))})}return e}var Hr=function(){function e(){C(this,e),this._hookFunctions=[],this._defaultModules=[]}e.getDefaultShaderAssembler=function(){return e.defaultShaderAssembler=e.defaultShaderAssembler||new e,e.defaultShaderAssembler};var t=e.prototype;return t.addDefaultModule=function(n){this._defaultModules.find(function(i){return i.name===(typeof n=="string"?n:n.name)})||this._defaultModules.push(n)},t.removeDefaultModule=function(n){var i=typeof n=="string"?n:n.name;this._defaultModules=this._defaultModules.filter(function(o){return o.name!==i})},t.addShaderHook=function(n,i){i&&(n=Object.assign(i,{hook:n})),this._hookFunctions.push(n)},t.assembleShaders=function(n,i){var o=this._getModuleList(i.modules),a=this._hookFunctions,c=Ha(n,i),f=Ba(n,Va(Va({},c),{},{modules:o,hookFunctions:a}));return f},t._getModuleList=function(){for(var n=arguments.length>0&&arguments[0]!==void 0?arguments[0]:[],i=new Array(this._defaultModules.length+n.length),o={},a=0,c=0,f=this._defaultModules.length;c<f;++c){var u=this._defaultModules[c],_=u.name;i[a++]=u,o[_]=!0}for(var E=0,p=n.length;E<p;++E){var d=n[E],h=d.name;o[h]||(i[a++]=d,o[h]=!0)}return i.length=a,i},M(e)}();Hr.defaultShaderAssembler=void 0;var PT=1/Math.PI*180,xT=1/180*Math.PI,Gl={EPSILON:1e-12,debug:!1,precision:4,printTypes:!1,printDegrees:!1,printRowMajor:!0,_cartographicRadians:!1};globalThis.mathgl=globalThis.mathgl||{config:{...Gl}};var fe=globalThis.mathgl.config;function Wa(e,{precision:t=fe.precision}={}){return e=Kl(e),"".concat(parseFloat(e.toPrecision(t)))}function $e(e){return Array.isArray(e)||ArrayBuffer.isView(e)&&!(e instanceof DataView)}function Xn(e,t,r){let n=fe.EPSILON;r&&(fe.EPSILON=r);try{if(e===t)return!0;if($e(e)&&$e(t)){if(e.length!==t.length)return!1;for(let i=0;i<e.length;++i)if(!Xn(e[i],t[i]))return!1;return!0}return e&&e.equals?e.equals(t):t&&t.equals?t.equals(e):typeof e=="number"&&typeof t=="number"?Math.abs(e-t)<=fe.EPSILON*Math.max(1,Math.abs(e),Math.abs(t)):!1}finally{fe.EPSILON=n}}function Kl(e){return Math.round(e/fe.EPSILON)*fe.EPSILON}function Yl(e){function t(){var r=Reflect.construct(e,Array.from(arguments));return Object.setPrototypeOf(r,Object.getPrototypeOf(this)),r}return t.prototype=Object.create(e.prototype,{constructor:{value:e,enumerable:!1,writable:!0,configurable:!0}}),Object.setPrototypeOf?Object.setPrototypeOf(t,e):t.__proto__=e,t}var Qe=class extends Yl(Array){clone(){return new this.constructor().copy(this)}fromArray(t,r=0){for(let n=0;n<this.ELEMENTS;++n)this[n]=t[n+r];return this.check()}toArray(t=[],r=0){for(let n=0;n<this.ELEMENTS;++n)t[r+n]=this[n];return t}toObject(t){return t}from(t){return Array.isArray(t)?this.copy(t):this.fromObject(t)}to(t){return t===this?this:$e(t)?this.toArray(t):this.toObject(t)}toTarget(t){return t?this.to(t):this}toFloat32Array(){return new Float32Array(this)}toString(){return this.formatString(fe)}formatString(t){let r="";for(let n=0;n<this.ELEMENTS;++n)r+=(n>0?", ":"")+Wa(this[n],t);return"".concat(t.printTypes?this.constructor.name:"","[").concat(r,"]")}equals(t){if(!t||this.length!==t.length)return!1;for(let r=0;r<this.ELEMENTS;++r)if(!Xn(this[r],t[r]))return!1;return!0}exactEquals(t){if(!t||this.length!==t.length)return!1;for(let r=0;r<this.ELEMENTS;++r)if(this[r]!==t[r])return!1;return!0}negate(){for(let t=0;t<this.ELEMENTS;++t)this[t]=-this[t];return this.check()}lerp(t,r,n){if(n===void 0)return this.lerp(this,t,r);for(let i=0;i<this.ELEMENTS;++i){let o=t[i],a=typeof r=="number"?r:r[i];this[i]=o+n*(a-o)}return this.check()}min(t){for(let r=0;r<this.ELEMENTS;++r)this[r]=Math.min(t[r],this[r]);return this.check()}max(t){for(let r=0;r<this.ELEMENTS;++r)this[r]=Math.max(t[r],this[r]);return this.check()}clamp(t,r){for(let n=0;n<this.ELEMENTS;++n)this[n]=Math.min(Math.max(this[n],t[n]),r[n]);return this.check()}add(...t){for(let r of t)for(let n=0;n<this.ELEMENTS;++n)this[n]+=r[n];return this.check()}subtract(...t){for(let r of t)for(let n=0;n<this.ELEMENTS;++n)this[n]-=r[n];return this.check()}scale(t){if(typeof t=="number")for(let r=0;r<this.ELEMENTS;++r)this[r]*=t;else for(let r=0;r<this.ELEMENTS&&r<t.length;++r)this[r]*=t[r];return this.check()}multiplyByScalar(t){for(let r=0;r<this.ELEMENTS;++r)this[r]*=t;return this.check()}check(){if(fe.debug&&!this.validate())throw new Error("math.gl: ".concat(this.constructor.name," some fields set to invalid numbers'"));return this}validate(){let t=this.length===this.ELEMENTS;for(let r=0;r<this.ELEMENTS;++r)t=t&&Number.isFinite(this[r]);return t}sub(t){return this.subtract(t)}setScalar(t){for(let r=0;r<this.ELEMENTS;++r)this[r]=t;return this.check()}addScalar(t){for(let r=0;r<this.ELEMENTS;++r)this[r]+=t;return this.check()}subScalar(t){return this.addScalar(-t)}multiplyScalar(t){for(let r=0;r<this.ELEMENTS;++r)this[r]*=t;return this.check()}divideScalar(t){return this.multiplyByScalar(1/t)}clampScalar(t,r){for(let n=0;n<this.ELEMENTS;++n)this[n]=Math.min(Math.max(this[n],t),r);return this.check()}get elements(){return this}};function kl(e,t){if(e.length!==t)return!1;for(let r=0;r<e.length;++r)if(!Number.isFinite(e[r]))return!1;return!0}function q(e){if(!Number.isFinite(e))throw new Error("Invalid number ".concat(JSON.stringify(e)));return e}function vt(e,t,r=""){if(fe.debug&&!kl(e,t))throw new Error("math.gl: ".concat(r," some fields set to invalid numbers'"));return e}function Vn(e,t){if(!e)throw new Error("math.gl assertion ".concat(t))}var St=class extends Qe{get x(){return this[0]}set x(t){this[0]=q(t)}get y(){return this[1]}set y(t){this[1]=q(t)}len(){return Math.sqrt(this.lengthSquared())}magnitude(){return this.len()}lengthSquared(){let t=0;for(let r=0;r<this.ELEMENTS;++r)t+=this[r]*this[r];return t}magnitudeSquared(){return this.lengthSquared()}distance(t){return Math.sqrt(this.distanceSquared(t))}distanceSquared(t){let r=0;for(let n=0;n<this.ELEMENTS;++n){let i=this[n]-t[n];r+=i*i}return q(r)}dot(t){let r=0;for(let n=0;n<this.ELEMENTS;++n)r+=this[n]*t[n];return q(r)}normalize(){let t=this.magnitude();if(t!==0)for(let r=0;r<this.ELEMENTS;++r)this[r]/=t;return this.check()}multiply(...t){for(let r of t)for(let n=0;n<this.ELEMENTS;++n)this[n]*=r[n];return this.check()}divide(...t){for(let r of t)for(let n=0;n<this.ELEMENTS;++n)this[n]/=r[n];return this.check()}lengthSq(){return this.lengthSquared()}distanceTo(t){return this.distance(t)}distanceToSquared(t){return this.distanceSquared(t)}getComponent(t){return Vn(t>=0&&t<this.ELEMENTS,"index is out of range"),q(this[t])}setComponent(t,r){return Vn(t>=0&&t<this.ELEMENTS,"index is out of range"),this[t]=r,this.check()}addVectors(t,r){return this.copy(t).add(r)}subVectors(t,r){return this.copy(t).subtract(r)}multiplyVectors(t,r){return this.copy(t).multiply(r)}addScaledVector(t,r){return this.add(new this.constructor(t).multiplyScalar(r))}};var de=typeof Float32Array<"u"?Float32Array:Array;var jT=Math.PI/180;function zl(){let e=new de(2);return de!=Float32Array&&(e[0]=0,e[1]=0),e}function Ka(e,t,r){let n=t[0],i=t[1];return e[0]=r[0]*n+r[4]*i+r[12],e[1]=r[1]*n+r[5]*i+r[13],e}var GT=function(){let e=zl();return function(t,r,n,i,o,a){let c,f;for(r||(r=2),n||(n=0),i?f=Math.min(i*r+n,t.length):f=t.length,c=n;c<f;c+=r)e[0]=t[c],e[1]=t[c+1],o(e,e,a),t[c]=e[0],t[c+1]=e[1];return t}}();function Ya(e,t,r){let n=t[0],i=t[1],o=r[3]*n+r[7]*i||1;return e[0]=(r[0]*n+r[4]*i)/o,e[1]=(r[1]*n+r[5]*i)/o,e}function Xr(e,t,r){let n=t[0],i=t[1],o=t[2],a=r[3]*n+r[7]*i+r[11]*o||1;return e[0]=(r[0]*n+r[4]*i+r[8]*o)/a,e[1]=(r[1]*n+r[5]*i+r[9]*o)/a,e[2]=(r[2]*n+r[6]*i+r[10]*o)/a,e}function ka(e,t,r){let n=t[0],i=t[1];return e[0]=r[0]*n+r[2]*i,e[1]=r[1]*n+r[3]*i,e[2]=t[2],e}function za(e,t,r){let n=t[0],i=t[1];return e[0]=r[0]*n+r[2]*i,e[1]=r[1]*n+r[3]*i,e[2]=t[2],e[3]=t[3],e}function qa(e,t,r){let n=t[0],i=t[1],o=t[2];return e[0]=r[0]*n+r[3]*i+r[6]*o,e[1]=r[1]*n+r[4]*i+r[7]*o,e[2]=r[2]*n+r[5]*i+r[8]*o,e[3]=t[3],e}function Wn(){let e=new de(3);return de!=Float32Array&&(e[0]=0,e[1]=0,e[2]=0),e}function ql(e){let t=e[0],r=e[1],n=e[2];return Math.sqrt(t*t+r*r+n*n)}function jn(e,t,r){let n=new de(3);return n[0]=e,n[1]=t,n[2]=r,n}function Za(e,t){let r=t[0],n=t[1],i=t[2],o=r*r+n*n+i*i;return o>0&&(o=1/Math.sqrt(o)),e[0]=t[0]*o,e[1]=t[1]*o,e[2]=t[2]*o,e}function Gn(e,t){return e[0]*t[0]+e[1]*t[1]+e[2]*t[2]}function bt(e,t,r){let n=t[0],i=t[1],o=t[2],a=r[0],c=r[1],f=r[2];return e[0]=i*f-o*c,e[1]=o*a-n*f,e[2]=n*c-i*a,e}function Ot(e,t,r){let n=t[0],i=t[1],o=t[2],a=r[3]*n+r[7]*i+r[11]*o+r[15];return a=a||1,e[0]=(r[0]*n+r[4]*i+r[8]*o+r[12])/a,e[1]=(r[1]*n+r[5]*i+r[9]*o+r[13])/a,e[2]=(r[2]*n+r[6]*i+r[10]*o+r[14])/a,e}function $a(e,t,r){let n=t[0],i=t[1],o=t[2];return e[0]=n*r[0]+i*r[3]+o*r[6],e[1]=n*r[1]+i*r[4]+o*r[7],e[2]=n*r[2]+i*r[5]+o*r[8],e}function Vr(e,t,r){let n=r[0],i=r[1],o=r[2],a=r[3],c=t[0],f=t[1],u=t[2],_=i*u-o*f,E=o*c-n*u,p=n*f-i*c,d=i*p-o*E,h=o*_-n*p,m=n*E-i*_,A=a*2;return _*=A,E*=A,p*=A,d*=2,h*=2,m*=2,e[0]=c+_+d,e[1]=f+E+h,e[2]=u+p+m,e}function Qa(e,t,r,n){let i=[],o=[];return i[0]=t[0]-r[0],i[1]=t[1]-r[1],i[2]=t[2]-r[2],o[0]=i[0],o[1]=i[1]*Math.cos(n)-i[2]*Math.sin(n),o[2]=i[1]*Math.sin(n)+i[2]*Math.cos(n),e[0]=o[0]+r[0],e[1]=o[1]+r[1],e[2]=o[2]+r[2],e}function Ja(e,t,r,n){let i=[],o=[];return i[0]=t[0]-r[0],i[1]=t[1]-r[1],i[2]=t[2]-r[2],o[0]=i[2]*Math.sin(n)+i[0]*Math.cos(n),o[1]=i[1],o[2]=i[2]*Math.cos(n)-i[0]*Math.sin(n),e[0]=o[0]+r[0],e[1]=o[1]+r[1],e[2]=o[2]+r[2],e}function es(e,t,r,n){let i=[],o=[];return i[0]=t[0]-r[0],i[1]=t[1]-r[1],i[2]=t[2]-r[2],o[0]=i[0]*Math.cos(n)-i[1]*Math.sin(n),o[1]=i[0]*Math.sin(n)+i[1]*Math.cos(n),o[2]=i[2],e[0]=o[0]+r[0],e[1]=o[1]+r[1],e[2]=o[2]+r[2],e}function ts(e,t){let r=e[0],n=e[1],i=e[2],o=t[0],a=t[1],c=t[2],f=Math.sqrt((r*r+n*n+i*i)*(o*o+a*a+c*c)),u=f&&Gn(e,t)/f;return Math.acos(Math.min(Math.max(u,-1),1))}var rs=ql;var kT=function(){let e=Wn();return function(t,r,n,i,o,a){let c,f;for(r||(r=3),n||(n=0),i?f=Math.min(i*r+n,t.length):f=t.length,c=n;c<f;c+=r)e[0]=t[c],e[1]=t[c+1],e[2]=t[c+2],o(e,e,a),t[c]=e[0],t[c+1]=e[1],t[c+2]=e[2];return t}}();var Kn=[0,0,0],Wr,Se=class extends St{static get ZERO(){return Wr||(Wr=new Se(0,0,0),Object.freeze(Wr)),Wr}constructor(t=0,r=0,n=0){super(-0,-0,-0),arguments.length===1&&$e(t)?this.copy(t):(fe.debug&&(q(t),q(r),q(n)),this[0]=t,this[1]=r,this[2]=n)}set(t,r,n){return this[0]=t,this[1]=r,this[2]=n,this.check()}copy(t){return this[0]=t[0],this[1]=t[1],this[2]=t[2],this.check()}fromObject(t){return fe.debug&&(q(t.x),q(t.y),q(t.z)),this[0]=t.x,this[1]=t.y,this[2]=t.z,this.check()}toObject(t){return t.x=this[0],t.y=this[1],t.z=this[2],t}get ELEMENTS(){return 3}get z(){return this[2]}set z(t){this[2]=q(t)}angle(t){return ts(this,t)}cross(t){return bt(this,this,t),this.check()}rotateX({radians:t,origin:r=Kn}){return Qa(this,this,r,t),this.check()}rotateY({radians:t,origin:r=Kn}){return Ja(this,this,r,t),this.check()}rotateZ({radians:t,origin:r=Kn}){return es(this,this,r,t),this.check()}transform(t){return this.transformAsPoint(t)}transformAsPoint(t){return Ot(this,this,t),this.check()}transformAsVector(t){return Xr(this,this,t),this.check()}transformByMatrix3(t){return $a(this,this,t),this.check()}transformByMatrix2(t){return ka(this,this,t),this.check()}transformByQuaternion(t){return Vr(this,this,t),this.check()}};var jr,yt=class extends St{static get ZERO(){return jr||(jr=new yt(0,0,0,0),Object.freeze(jr)),jr}constructor(t=0,r=0,n=0,i=0){super(-0,-0,-0,-0),$e(t)&&arguments.length===1?this.copy(t):(fe.debug&&(q(t),q(r),q(n),q(i)),this[0]=t,this[1]=r,this[2]=n,this[3]=i)}set(t,r,n,i){return this[0]=t,this[1]=r,this[2]=n,this[3]=i,this.check()}copy(t){return this[0]=t[0],this[1]=t[1],this[2]=t[2],this[3]=t[3],this.check()}fromObject(t){return fe.debug&&(q(t.x),q(t.y),q(t.z),q(t.w)),this[0]=t.x,this[1]=t.y,this[2]=t.z,this[3]=t.w,this}toObject(t){return t.x=this[0],t.y=this[1],t.z=this[2],t.w=this[3],t}get ELEMENTS(){return 4}get z(){return this[2]}set z(t){this[2]=q(t)}get w(){return this[3]}set w(t){this[3]=q(t)}transform(t){return Ot(this,this,t),this.check()}transformByMatrix3(t){return qa(this,this,t),this.check()}transformByMatrix2(t){return za(this,this,t),this.check()}transformByQuaternion(t){return Vr(this,this,t),this.check()}applyMatrix4(t){return t.transform(this,this),this}};var Gr=class extends Qe{toString(){let t="[";if(fe.printRowMajor){t+="row-major:";for(let r=0;r<this.RANK;++r)for(let n=0;n<this.RANK;++n)t+=" ".concat(this[n*this.RANK+r])}else{t+="column-major:";for(let r=0;r<this.ELEMENTS;++r)t+=" ".concat(this[r])}return t+="]",t}getElementIndex(t,r){return r*this.RANK+t}getElement(t,r){return this[r*this.RANK+t]}setElement(t,r,n){return this[r*this.RANK+t]=q(n),this}getColumn(t,r=new Array(this.RANK).fill(-0)){let n=t*this.RANK;for(let i=0;i<this.RANK;++i)r[i]=this[n+i];return r}setColumn(t,r){let n=t*this.RANK;for(let i=0;i<this.RANK;++i)this[n+i]=r[i];return this}};function ns(){let e=new de(9);return de!=Float32Array&&(e[1]=0,e[2]=0,e[3]=0,e[5]=0,e[6]=0,e[7]=0),e[0]=1,e[4]=1,e[8]=1,e}function Ql(e){return e[0]=1,e[1]=0,e[2]=0,e[3]=0,e[4]=0,e[5]=1,e[6]=0,e[7]=0,e[8]=0,e[9]=0,e[10]=1,e[11]=0,e[12]=0,e[13]=0,e[14]=0,e[15]=1,e}function is(e,t){if(e===t){let r=t[1],n=t[2],i=t[3],o=t[6],a=t[7],c=t[11];e[1]=t[4],e[2]=t[8],e[3]=t[12],e[4]=r,e[6]=t[9],e[7]=t[13],e[8]=n,e[9]=o,e[11]=t[14],e[12]=i,e[13]=a,e[14]=c}else e[0]=t[0],e[1]=t[4],e[2]=t[8],e[3]=t[12],e[4]=t[1],e[5]=t[5],e[6]=t[9],e[7]=t[13],e[8]=t[2],e[9]=t[6],e[10]=t[10],e[11]=t[14],e[12]=t[3],e[13]=t[7],e[14]=t[11],e[15]=t[15];return e}function os(e,t){let r=t[0],n=t[1],i=t[2],o=t[3],a=t[4],c=t[5],f=t[6],u=t[7],_=t[8],E=t[9],p=t[10],d=t[11],h=t[12],m=t[13],A=t[14],g=t[15],y=r*c-n*a,b=r*f-i*a,S=r*u-o*a,x=n*f-i*c,P=n*u-o*c,j=i*u-o*f,W=_*m-E*h,K=_*A-p*h,V=_*g-d*h,O=E*A-p*m,R=E*g-d*m,T=p*g-d*A,N=y*T-b*R+S*O+x*V-P*K+j*W;return N?(N=1/N,e[0]=(c*T-f*R+u*O)*N,e[1]=(i*R-n*T-o*O)*N,e[2]=(m*j-A*P+g*x)*N,e[3]=(p*P-E*j-d*x)*N,e[4]=(f*V-a*T-u*K)*N,e[5]=(r*T-i*V+o*K)*N,e[6]=(A*S-h*j-g*b)*N,e[7]=(_*j-p*S+d*b)*N,e[8]=(a*R-c*V+u*W)*N,e[9]=(n*V-r*R-o*W)*N,e[10]=(h*P-m*S+g*y)*N,e[11]=(E*S-_*P-d*y)*N,e[12]=(c*K-a*O-f*W)*N,e[13]=(r*O-n*K+i*W)*N,e[14]=(m*b-h*x-A*y)*N,e[15]=(_*x-E*b+p*y)*N,e):null}function as(e){let t=e[0],r=e[1],n=e[2],i=e[3],o=e[4],a=e[5],c=e[6],f=e[7],u=e[8],_=e[9],E=e[10],p=e[11],d=e[12],h=e[13],m=e[14],A=e[15],g=t*a-r*o,y=t*c-n*o,b=r*c-n*a,S=u*h-_*d,x=u*m-E*d,P=_*m-E*h,j=t*P-r*x+n*S,W=o*P-a*x+c*S,K=u*b-_*y+E*g,V=d*b-h*y+m*g;return f*j-i*W+A*K-p*V}function Yn(e,t,r){let n=t[0],i=t[1],o=t[2],a=t[3],c=t[4],f=t[5],u=t[6],_=t[7],E=t[8],p=t[9],d=t[10],h=t[11],m=t[12],A=t[13],g=t[14],y=t[15],b=r[0],S=r[1],x=r[2],P=r[3];return e[0]=b*n+S*c+x*E+P*m,e[1]=b*i+S*f+x*p+P*A,e[2]=b*o+S*u+x*d+P*g,e[3]=b*a+S*_+x*h+P*y,b=r[4],S=r[5],x=r[6],P=r[7],e[4]=b*n+S*c+x*E+P*m,e[5]=b*i+S*f+x*p+P*A,e[6]=b*o+S*u+x*d+P*g,e[7]=b*a+S*_+x*h+P*y,b=r[8],S=r[9],x=r[10],P=r[11],e[8]=b*n+S*c+x*E+P*m,e[9]=b*i+S*f+x*p+P*A,e[10]=b*o+S*u+x*d+P*g,e[11]=b*a+S*_+x*h+P*y,b=r[12],S=r[13],x=r[14],P=r[15],e[12]=b*n+S*c+x*E+P*m,e[13]=b*i+S*f+x*p+P*A,e[14]=b*o+S*u+x*d+P*g,e[15]=b*a+S*_+x*h+P*y,e}function ss(e,t,r){let n=r[0],i=r[1],o=r[2],a,c,f,u,_,E,p,d,h,m,A,g;return t===e?(e[12]=t[0]*n+t[4]*i+t[8]*o+t[12],e[13]=t[1]*n+t[5]*i+t[9]*o+t[13],e[14]=t[2]*n+t[6]*i+t[10]*o+t[14],e[15]=t[3]*n+t[7]*i+t[11]*o+t[15]):(a=t[0],c=t[1],f=t[2],u=t[3],_=t[4],E=t[5],p=t[6],d=t[7],h=t[8],m=t[9],A=t[10],g=t[11],e[0]=a,e[1]=c,e[2]=f,e[3]=u,e[4]=_,e[5]=E,e[6]=p,e[7]=d,e[8]=h,e[9]=m,e[10]=A,e[11]=g,e[12]=a*n+_*i+h*o+t[12],e[13]=c*n+E*i+m*o+t[13],e[14]=f*n+p*i+A*o+t[14],e[15]=u*n+d*i+g*o+t[15]),e}function cs(e,t,r){let n=r[0],i=r[1],o=r[2];return e[0]=t[0]*n,e[1]=t[1]*n,e[2]=t[2]*n,e[3]=t[3]*n,e[4]=t[4]*i,e[5]=t[5]*i,e[6]=t[6]*i,e[7]=t[7]*i,e[8]=t[8]*o,e[9]=t[9]*o,e[10]=t[10]*o,e[11]=t[11]*o,e[12]=t[12],e[13]=t[13],e[14]=t[14],e[15]=t[15],e}function fs(e,t,r,n){let i=n[0],o=n[1],a=n[2],c=Math.sqrt(i*i+o*o+a*a),f,u,_,E,p,d,h,m,A,g,y,b,S,x,P,j,W,K,V,O,R,T,N,B;return c<1e-6?null:(c=1/c,i*=c,o*=c,a*=c,u=Math.sin(r),f=Math.cos(r),_=1-f,E=t[0],p=t[1],d=t[2],h=t[3],m=t[4],A=t[5],g=t[6],y=t[7],b=t[8],S=t[9],x=t[10],P=t[11],j=i*i*_+f,W=o*i*_+a*u,K=a*i*_-o*u,V=i*o*_-a*u,O=o*o*_+f,R=a*o*_+i*u,T=i*a*_+o*u,N=o*a*_-i*u,B=a*a*_+f,e[0]=E*j+m*W+b*K,e[1]=p*j+A*W+S*K,e[2]=d*j+g*W+x*K,e[3]=h*j+y*W+P*K,e[4]=E*V+m*O+b*R,e[5]=p*V+A*O+S*R,e[6]=d*V+g*O+x*R,e[7]=h*V+y*O+P*R,e[8]=E*T+m*N+b*B,e[9]=p*T+A*N+S*B,e[10]=d*T+g*N+x*B,e[11]=h*T+y*N+P*B,t!==e&&(e[12]=t[12],e[13]=t[13],e[14]=t[14],e[15]=t[15]),e)}function us(e,t,r){let n=Math.sin(r),i=Math.cos(r),o=t[4],a=t[5],c=t[6],f=t[7],u=t[8],_=t[9],E=t[10],p=t[11];return t!==e&&(e[0]=t[0],e[1]=t[1],e[2]=t[2],e[3]=t[3],e[12]=t[12],e[13]=t[13],e[14]=t[14],e[15]=t[15]),e[4]=o*i+u*n,e[5]=a*i+_*n,e[6]=c*i+E*n,e[7]=f*i+p*n,e[8]=u*i-o*n,e[9]=_*i-a*n,e[10]=E*i-c*n,e[11]=p*i-f*n,e}function ls(e,t,r){let n=Math.sin(r),i=Math.cos(r),o=t[0],a=t[1],c=t[2],f=t[3],u=t[8],_=t[9],E=t[10],p=t[11];return t!==e&&(e[4]=t[4],e[5]=t[5],e[6]=t[6],e[7]=t[7],e[12]=t[12],e[13]=t[13],e[14]=t[14],e[15]=t[15]),e[0]=o*i-u*n,e[1]=a*i-_*n,e[2]=c*i-E*n,e[3]=f*i-p*n,e[8]=o*n+u*i,e[9]=a*n+_*i,e[10]=c*n+E*i,e[11]=f*n+p*i,e}function _s(e,t,r){let n=Math.sin(r),i=Math.cos(r),o=t[0],a=t[1],c=t[2],f=t[3],u=t[4],_=t[5],E=t[6],p=t[7];return t!==e&&(e[8]=t[8],e[9]=t[9],e[10]=t[10],e[11]=t[11],e[12]=t[12],e[13]=t[13],e[14]=t[14],e[15]=t[15]),e[0]=o*i+u*n,e[1]=a*i+_*n,e[2]=c*i+E*n,e[3]=f*i+p*n,e[4]=u*i-o*n,e[5]=_*i-a*n,e[6]=E*i-c*n,e[7]=p*i-f*n,e}function Es(e,t){let r=t[0],n=t[1],i=t[2],o=t[3],a=r+r,c=n+n,f=i+i,u=r*a,_=n*a,E=n*c,p=i*a,d=i*c,h=i*f,m=o*a,A=o*c,g=o*f;return e[0]=1-E-h,e[1]=_+g,e[2]=p-A,e[3]=0,e[4]=_-g,e[5]=1-u-h,e[6]=d+m,e[7]=0,e[8]=p+A,e[9]=d-m,e[10]=1-u-E,e[11]=0,e[12]=0,e[13]=0,e[14]=0,e[15]=1,e}function ps(e,t,r,n,i,o,a){let c=1/(r-t),f=1/(i-n),u=1/(o-a);return e[0]=o*2*c,e[1]=0,e[2]=0,e[3]=0,e[4]=0,e[5]=o*2*f,e[6]=0,e[7]=0,e[8]=(r+t)*c,e[9]=(i+n)*f,e[10]=(a+o)*u,e[11]=-1,e[12]=0,e[13]=0,e[14]=a*o*2*u,e[15]=0,e}function Jl(e,t,r,n,i){let o=1/Math.tan(t/2);if(e[0]=o/r,e[1]=0,e[2]=0,e[3]=0,e[4]=0,e[5]=o,e[6]=0,e[7]=0,e[8]=0,e[9]=0,e[11]=-1,e[12]=0,e[13]=0,e[15]=0,i!=null&&i!==1/0){let a=1/(n-i);e[10]=(i+n)*a,e[14]=2*i*n*a}else e[10]=-1,e[14]=-2*n;return e}var ds=Jl;function e_(e,t,r,n,i,o,a){let c=1/(t-r),f=1/(n-i),u=1/(o-a);return e[0]=-2*c,e[1]=0,e[2]=0,e[3]=0,e[4]=0,e[5]=-2*f,e[6]=0,e[7]=0,e[8]=0,e[9]=0,e[10]=2*u,e[11]=0,e[12]=(t+r)*c,e[13]=(i+n)*f,e[14]=(a+o)*u,e[15]=1,e}var hs=e_;function ms(e,t,r,n){let i,o,a,c,f,u,_,E,p,d,h=t[0],m=t[1],A=t[2],g=n[0],y=n[1],b=n[2],S=r[0],x=r[1],P=r[2];return Math.abs(h-S)<1e-6&&Math.abs(m-x)<1e-6&&Math.abs(A-P)<1e-6?Ql(e):(E=h-S,p=m-x,d=A-P,i=1/Math.sqrt(E*E+p*p+d*d),E*=i,p*=i,d*=i,o=y*d-b*p,a=b*E-g*d,c=g*p-y*E,i=Math.sqrt(o*o+a*a+c*c),i?(i=1/i,o*=i,a*=i,c*=i):(o=0,a=0,c=0),f=p*c-d*a,u=d*o-E*c,_=E*a-p*o,i=Math.sqrt(f*f+u*u+_*_),i?(i=1/i,f*=i,u*=i,_*=i):(f=0,u=0,_=0),e[0]=o,e[1]=f,e[2]=E,e[3]=0,e[4]=a,e[5]=u,e[6]=p,e[7]=0,e[8]=c,e[9]=_,e[10]=d,e[11]=0,e[12]=-(o*h+a*m+c*A),e[13]=-(f*h+u*m+_*A),e[14]=-(E*h+p*m+d*A),e[15]=1,e)}function t_(){let e=new de(4);return de!=Float32Array&&(e[0]=0,e[1]=0,e[2]=0,e[3]=0),e}function Rs(e,t,r){return e[0]=t[0]+r[0],e[1]=t[1]+r[1],e[2]=t[2]+r[2],e[3]=t[3]+r[3],e}function As(e,t,r){return e[0]=t[0]*r,e[1]=t[1]*r,e[2]=t[2]*r,e[3]=t[3]*r,e}function gs(e){let t=e[0],r=e[1],n=e[2],i=e[3];return Math.sqrt(t*t+r*r+n*n+i*i)}function Ts(e){let t=e[0],r=e[1],n=e[2],i=e[3];return t*t+r*r+n*n+i*i}function vs(e,t){let r=t[0],n=t[1],i=t[2],o=t[3],a=r*r+n*n+i*i+o*o;return a>0&&(a=1/Math.sqrt(a)),e[0]=r*a,e[1]=n*a,e[2]=i*a,e[3]=o*a,e}function Ss(e,t){return e[0]*t[0]+e[1]*t[1]+e[2]*t[2]+e[3]*t[3]}function bs(e,t,r,n){let i=t[0],o=t[1],a=t[2],c=t[3];return e[0]=i+n*(r[0]-i),e[1]=o+n*(r[1]-o),e[2]=a+n*(r[2]-a),e[3]=c+n*(r[3]-c),e}function Os(e,t,r){let n=t[0],i=t[1],o=t[2],a=t[3];return e[0]=r[0]*n+r[4]*i+r[8]*o+r[12]*a,e[1]=r[1]*n+r[5]*i+r[9]*o+r[13]*a,e[2]=r[2]*n+r[6]*i+r[10]*o+r[14]*a,e[3]=r[3]*n+r[7]*i+r[11]*o+r[15]*a,e}function ys(e,t,r){let n=t[0],i=t[1],o=t[2],a=r[0],c=r[1],f=r[2],u=r[3],_=u*n+c*o-f*i,E=u*i+f*n-a*o,p=u*o+a*i-c*n,d=-a*n-c*i-f*o;return e[0]=_*u+d*-a+E*-f-p*-c,e[1]=E*u+d*-c+p*-a-_*-f,e[2]=p*u+d*-f+_*-c-E*-a,e[3]=t[3],e}var lv=function(){let e=t_();return function(t,r,n,i,o,a){let c,f;for(r||(r=4),n||(n=0),i?f=Math.min(i*r+n,t.length):f=t.length,c=n;c<f;c+=r)e[0]=t[c],e[1]=t[c+1],e[2]=t[c+2],e[3]=t[c+3],o(e,e,a),t[c]=e[0],t[c+1]=e[1],t[c+2]=e[2],t[c+3]=e[3];return t}}();var qn;(function(e){e[e.COL0ROW0=0]="COL0ROW0",e[e.COL0ROW1=1]="COL0ROW1",e[e.COL0ROW2=2]="COL0ROW2",e[e.COL0ROW3=3]="COL0ROW3",e[e.COL1ROW0=4]="COL1ROW0",e[e.COL1ROW1=5]="COL1ROW1",e[e.COL1ROW2=6]="COL1ROW2",e[e.COL1ROW3=7]="COL1ROW3",e[e.COL2ROW0=8]="COL2ROW0",e[e.COL2ROW1=9]="COL2ROW1",e[e.COL2ROW2=10]="COL2ROW2",e[e.COL2ROW3=11]="COL2ROW3",e[e.COL3ROW0=12]="COL3ROW0",e[e.COL3ROW1=13]="COL3ROW1",e[e.COL3ROW2=14]="COL3ROW2",e[e.COL3ROW3=15]="COL3ROW3"})(qn||(qn={}));var n_=45*Math.PI/180,i_=1,kn=.1,zn=500,o_=Object.freeze([1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1]),me=class extends Gr{static get IDENTITY(){return s_()}static get ZERO(){return a_()}get ELEMENTS(){return 16}get RANK(){return 4}get INDICES(){return qn}constructor(t){super(-0,-0,-0,-0,-0,-0,-0,-0,-0,-0,-0,-0,-0,-0,-0,-0),arguments.length===1&&Array.isArray(t)?this.copy(t):this.identity()}copy(t){return this[0]=t[0],this[1]=t[1],this[2]=t[2],this[3]=t[3],this[4]=t[4],this[5]=t[5],this[6]=t[6],this[7]=t[7],this[8]=t[8],this[9]=t[9],this[10]=t[10],this[11]=t[11],this[12]=t[12],this[13]=t[13],this[14]=t[14],this[15]=t[15],this.check()}set(t,r,n,i,o,a,c,f,u,_,E,p,d,h,m,A){return this[0]=t,this[1]=r,this[2]=n,this[3]=i,this[4]=o,this[5]=a,this[6]=c,this[7]=f,this[8]=u,this[9]=_,this[10]=E,this[11]=p,this[12]=d,this[13]=h,this[14]=m,this[15]=A,this.check()}setRowMajor(t,r,n,i,o,a,c,f,u,_,E,p,d,h,m,A){return this[0]=t,this[1]=o,this[2]=u,this[3]=d,this[4]=r,this[5]=a,this[6]=_,this[7]=h,this[8]=n,this[9]=c,this[10]=E,this[11]=m,this[12]=i,this[13]=f,this[14]=p,this[15]=A,this.check()}toRowMajor(t){return t[0]=this[0],t[1]=this[4],t[2]=this[8],t[3]=this[12],t[4]=this[1],t[5]=this[5],t[6]=this[9],t[7]=this[13],t[8]=this[2],t[9]=this[6],t[10]=this[10],t[11]=this[14],t[12]=this[3],t[13]=this[7],t[14]=this[11],t[15]=this[15],t}identity(){return this.copy(o_)}fromObject(t){return this.check()}fromQuaternion(t){return Es(this,t),this.check()}frustum(t){let{left:r,right:n,bottom:i,top:o,near:a=kn,far:c=zn}=t;return c===1/0?c_(this,r,n,i,o,a):ps(this,r,n,i,o,a,c),this.check()}lookAt(t){let{eye:r,center:n=[0,0,0],up:i=[0,1,0]}=t;return ms(this,r,n,i),this.check()}ortho(t){let{left:r,right:n,bottom:i,top:o,near:a=kn,far:c=zn}=t;return hs(this,r,n,i,o,a,c),this.check()}orthographic(t){let{fovy:r=n_,aspect:n=i_,focalDistance:i=1,near:o=kn,far:a=zn}=t;Ns(r);let c=r/2,f=i*Math.tan(c),u=f*n;return this.ortho({left:-u,right:u,bottom:-f,top:f,near:o,far:a})}perspective(t){let{fovy:r=45*Math.PI/180,aspect:n=1,near:i=.1,far:o=500}=t;return Ns(r),ds(this,r,n,i,o),this.check()}determinant(){return as(this)}getScale(t=[-0,-0,-0]){return t[0]=Math.sqrt(this[0]*this[0]+this[1]*this[1]+this[2]*this[2]),t[1]=Math.sqrt(this[4]*this[4]+this[5]*this[5]+this[6]*this[6]),t[2]=Math.sqrt(this[8]*this[8]+this[9]*this[9]+this[10]*this[10]),t}getTranslation(t=[-0,-0,-0]){return t[0]=this[12],t[1]=this[13],t[2]=this[14],t}getRotation(t,r){t=t||[-0,-0,-0,-0,-0,-0,-0,-0,-0,-0,-0,-0,-0,-0,-0,-0],r=r||[-0,-0,-0];let n=this.getScale(r),i=1/n[0],o=1/n[1],a=1/n[2];return t[0]=this[0]*i,t[1]=this[1]*o,t[2]=this[2]*a,t[3]=0,t[4]=this[4]*i,t[5]=this[5]*o,t[6]=this[6]*a,t[7]=0,t[8]=this[8]*i,t[9]=this[9]*o,t[10]=this[10]*a,t[11]=0,t[12]=0,t[13]=0,t[14]=0,t[15]=1,t}getRotationMatrix3(t,r){t=t||[-0,-0,-0,-0,-0,-0,-0,-0,-0],r=r||[-0,-0,-0];let n=this.getScale(r),i=1/n[0],o=1/n[1],a=1/n[2];return t[0]=this[0]*i,t[1]=this[1]*o,t[2]=this[2]*a,t[3]=this[4]*i,t[4]=this[5]*o,t[5]=this[6]*a,t[6]=this[8]*i,t[7]=this[9]*o,t[8]=this[10]*a,t}transpose(){return is(this,this),this.check()}invert(){return os(this,this),this.check()}multiplyLeft(t){return Yn(this,t,this),this.check()}multiplyRight(t){return Yn(this,this,t),this.check()}rotateX(t){return us(this,this,t),this.check()}rotateY(t){return ls(this,this,t),this.check()}rotateZ(t){return _s(this,this,t),this.check()}rotateXYZ(t){return this.rotateX(t[0]).rotateY(t[1]).rotateZ(t[2])}rotateAxis(t,r){return fs(this,this,t,r),this.check()}scale(t){return cs(this,this,Array.isArray(t)?t:[t,t,t]),this.check()}translate(t){return ss(this,this,t),this.check()}transform(t,r){return t.length===4?(r=Os(r||[-0,-0,-0,-0],t,this),vt(r,4),r):this.transformAsPoint(t,r)}transformAsPoint(t,r){let{length:n}=t,i;switch(n){case 2:i=Ka(r||[-0,-0],t,this);break;case 3:i=Ot(r||[-0,-0,-0],t,this);break;default:throw new Error("Illegal vector")}return vt(i,t.length),i}transformAsVector(t,r){let n;switch(t.length){case 2:n=Ya(r||[-0,-0],t,this);break;case 3:n=Xr(r||[-0,-0,-0],t,this);break;default:throw new Error("Illegal vector")}return vt(n,t.length),n}transformPoint(t,r){return this.transformAsPoint(t,r)}transformVector(t,r){return this.transformAsPoint(t,r)}transformDirection(t,r){return this.transformAsVector(t,r)}makeRotationX(t){return this.identity().rotateX(t)}makeTranslation(t,r,n){return this.identity().translate([t,r,n])}},Kr,Yr;function a_(){return Kr||(Kr=new me([0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0]),Object.freeze(Kr)),Kr}function s_(){return Yr||(Yr=new me,Object.freeze(Yr)),Yr}function Ns(e){if(e>Math.PI*2)throw Error("expected radians")}function c_(e,t,r,n,i,o){let a=2*o/(r-t),c=2*o/(i-n),f=(r+t)/(r-t),u=(i+n)/(i-n),_=-1,E=-1,p=-2*o;return e[0]=a,e[1]=0,e[2]=0,e[3]=0,e[4]=0,e[5]=c,e[6]=0,e[7]=0,e[8]=f,e[9]=u,e[10]=_,e[11]=E,e[12]=0,e[13]=0,e[14]=p,e[15]=0,e}function Is(){let e=new de(4);return de!=Float32Array&&(e[0]=0,e[1]=0,e[2]=0),e[3]=1,e}function Ms(e){return e[0]=0,e[1]=0,e[2]=0,e[3]=1,e}function Zn(e,t,r){r=r*.5;let n=Math.sin(r);return e[0]=n*t[0],e[1]=n*t[1],e[2]=n*t[2],e[3]=Math.cos(r),e}function $n(e,t,r){let n=t[0],i=t[1],o=t[2],a=t[3],c=r[0],f=r[1],u=r[2],_=r[3];return e[0]=n*_+a*c+i*u-o*f,e[1]=i*_+a*f+o*c-n*u,e[2]=o*_+a*u+n*f-i*c,e[3]=a*_-n*c-i*f-o*u,e}function Cs(e,t,r){r*=.5;let n=t[0],i=t[1],o=t[2],a=t[3],c=Math.sin(r),f=Math.cos(r);return e[0]=n*f+a*c,e[1]=i*f+o*c,e[2]=o*f-i*c,e[3]=a*f-n*c,e}function Ps(e,t,r){r*=.5;let n=t[0],i=t[1],o=t[2],a=t[3],c=Math.sin(r),f=Math.cos(r);return e[0]=n*f-o*c,e[1]=i*f+a*c,e[2]=o*f+n*c,e[3]=a*f-i*c,e}function xs(e,t,r){r*=.5;let n=t[0],i=t[1],o=t[2],a=t[3],c=Math.sin(r),f=Math.cos(r);return e[0]=n*f+i*c,e[1]=i*f-n*c,e[2]=o*f+a*c,e[3]=a*f-o*c,e}function Fs(e,t){let r=t[0],n=t[1],i=t[2];return e[0]=r,e[1]=n,e[2]=i,e[3]=Math.sqrt(Math.abs(1-r*r-n*n-i*i)),e}function Qt(e,t,r,n){let i=t[0],o=t[1],a=t[2],c=t[3],f=r[0],u=r[1],_=r[2],E=r[3],p,d,h,m,A;return p=i*f+o*u+a*_+c*E,p<0&&(p=-p,f=-f,u=-u,_=-_,E=-E),1-p>1e-6?(d=Math.acos(p),A=Math.sin(d),h=Math.sin((1-n)*d)/A,m=Math.sin(n*d)/A):(h=1-n,m=n),e[0]=h*i+m*f,e[1]=h*o+m*u,e[2]=h*a+m*_,e[3]=h*c+m*E,e}function Ds(e,t){let r=t[0],n=t[1],i=t[2],o=t[3],a=r*r+n*n+i*i+o*o,c=a?1/a:0;return e[0]=-r*c,e[1]=-n*c,e[2]=-i*c,e[3]=o*c,e}function Bs(e,t){return e[0]=-t[0],e[1]=-t[1],e[2]=-t[2],e[3]=t[3],e}function Qn(e,t){let r=t[0]+t[4]+t[8],n;if(r>0)n=Math.sqrt(r+1),e[3]=.5*n,n=.5/n,e[0]=(t[5]-t[7])*n,e[1]=(t[6]-t[2])*n,e[2]=(t[1]-t[3])*n;else{let i=0;t[4]>t[0]&&(i=1),t[8]>t[i*3+i]&&(i=2);let o=(i+1)%3,a=(i+2)%3;n=Math.sqrt(t[i*3+i]-t[o*3+o]-t[a*3+a]+1),e[i]=.5*n,n=.5/n,e[3]=(t[o*3+a]-t[a*3+o])*n,e[o]=(t[o*3+i]+t[i*3+o])*n,e[a]=(t[a*3+i]+t[i*3+a])*n}return e}var Us=Rs;var ws=As,Ls=Ss,Hs=bs,Xs=gs;var Vs=Ts;var Ws=vs;var js=function(){let e=Wn(),t=jn(1,0,0),r=jn(0,1,0);return function(n,i,o){let a=Gn(i,o);return a<-.999999?(bt(e,t,i),rs(e)<1e-6&&bt(e,r,i),Za(e,e),Zn(n,e,Math.PI),n):a>.999999?(n[0]=0,n[1]=0,n[2]=0,n[3]=1,n):(bt(e,i,o),n[0]=e[0],n[1]=e[1],n[2]=e[2],n[3]=1+a,Ws(n,n))}}(),Ov=function(){let e=Is(),t=Is();return function(r,n,i,o,a,c){return Qt(e,n,a,c),Qt(t,i,o,c),Qt(r,e,t,2*c*(1-c)),r}}(),yv=function(){let e=ns();return function(t,r,n,i){return e[0]=n[0],e[3]=n[1],e[6]=n[2],e[1]=i[0],e[4]=i[1],e[7]=i[2],e[2]=-r[0],e[5]=-r[1],e[8]=-r[2],Ws(t,Qn(t,e))}}();var f_=[0,0,0,1],Jt=class extends Qe{constructor(t=0,r=0,n=0,i=1){super(-0,-0,-0,-0),Array.isArray(t)&&arguments.length===1?this.copy(t):this.set(t,r,n,i)}copy(t){return this[0]=t[0],this[1]=t[1],this[2]=t[2],this[3]=t[3],this.check()}set(t,r,n,i){return this[0]=t,this[1]=r,this[2]=n,this[3]=i,this.check()}fromObject(t){return this[0]=t.x,this[1]=t.y,this[2]=t.z,this[3]=t.w,this.check()}fromMatrix3(t){return Qn(this,t),this.check()}fromAxisRotation(t,r){return Zn(this,t,r),this.check()}identity(){return Ms(this),this.check()}setAxisAngle(t,r){return this.fromAxisRotation(t,r)}get ELEMENTS(){return 4}get x(){return this[0]}set x(t){this[0]=q(t)}get y(){return this[1]}set y(t){this[1]=q(t)}get z(){return this[2]}set z(t){this[2]=q(t)}get w(){return this[3]}set w(t){this[3]=q(t)}len(){return Xs(this)}lengthSquared(){return Vs(this)}dot(t){return Ls(this,t)}rotationTo(t,r){return js(this,t,r),this.check()}add(t){return Us(this,this,t),this.check()}calculateW(){return Fs(this,this),this.check()}conjugate(){return Bs(this,this),this.check()}invert(){return Ds(this,this),this.check()}lerp(t,r,n){return n===void 0?this.lerp(this,t,r):(Hs(this,t,r,n),this.check())}multiplyRight(t){return $n(this,this,t),this.check()}multiplyLeft(t){return $n(this,t,this),this.check()}normalize(){let t=this.len(),r=t>0?1/t:0;return this[0]=this[0]*r,this[1]=this[1]*r,this[2]=this[2]*r,this[3]=this[3]*r,t===0&&(this[3]=1),this.check()}rotateX(t){return Cs(this,this,t),this.check()}rotateY(t){return Ps(this,this,t),this.check()}rotateZ(t){return xs(this,this,t),this.check()}scale(t){return ws(this,this,t),this.check()}slerp(t,r,n){let i,o,a;switch(arguments.length){case 1:({start:i=f_,target:o,ratio:a}=t);break;case 2:i=this,o=t,a=r;break;default:i=t,o=r,a=n}return Qt(this,i,o,a),this.check()}transformVector4(t,r=new yt){return ys(r,t,this),vt(r,4)}lengthSq(){return this.lengthSquared()}setFromAxisAngle(t,r){return this.setAxisAngle(t,r)}premultiply(t){return this.multiplyLeft(t)}multiply(t){return this.multiplyRight(t)}};var Gs,Jn=ae(Gs||(Gs=ne([`#if (defined(SHADER_TYPE_FRAGMENT) && defined(LIGHTING_FRAGMENT)) || (defined(SHADER_TYPE_VERTEX) && defined(LIGHTING_VERTEX))
232
+
233
+ struct AmbientLight {
234
+ vec3 color;
235
+ };
236
+
237
+ struct PointLight {
238
+ vec3 color;
239
+ vec3 position;
240
+
241
+ // Constant-Linear-Exponential
242
+ vec3 attenuation;
243
+ };
244
+
245
+ struct DirectionalLight {
246
+ vec3 color;
247
+ vec3 direction;
248
+ };
249
+
250
+ uniform AmbientLight lighting_uAmbientLight;
251
+ uniform PointLight lighting_uPointLight[MAX_LIGHTS];
252
+ uniform DirectionalLight lighting_uDirectionalLight[MAX_LIGHTS];
253
+ uniform int lighting_uPointLightCount;
254
+ uniform int lighting_uDirectionalLightCount;
255
+
256
+ uniform bool lighting_uEnabled;
257
+
258
+ float getPointLightAttenuation(PointLight pointLight, float distance) {
259
+ return pointLight.attenuation.x
260
+ + pointLight.attenuation.y * distance
261
+ + pointLight.attenuation.z * distance * distance;
262
+ }
263
+
264
+ #endif
265
+ `],[`\\
266
+ #if (defined(SHADER_TYPE_FRAGMENT) && defined(LIGHTING_FRAGMENT)) || (defined(SHADER_TYPE_VERTEX) && defined(LIGHTING_VERTEX))
267
+
268
+ struct AmbientLight {
269
+ vec3 color;
270
+ };
271
+
272
+ struct PointLight {
273
+ vec3 color;
274
+ vec3 position;
275
+
276
+ // Constant-Linear-Exponential
277
+ vec3 attenuation;
278
+ };
279
+
280
+ struct DirectionalLight {
281
+ vec3 color;
282
+ vec3 direction;
283
+ };
284
+
285
+ uniform AmbientLight lighting_uAmbientLight;
286
+ uniform PointLight lighting_uPointLight[MAX_LIGHTS];
287
+ uniform DirectionalLight lighting_uDirectionalLight[MAX_LIGHTS];
288
+ uniform int lighting_uPointLightCount;
289
+ uniform int lighting_uDirectionalLightCount;
290
+
291
+ uniform bool lighting_uEnabled;
292
+
293
+ float getPointLightAttenuation(PointLight pointLight, float distance) {
294
+ return pointLight.attenuation.x
295
+ + pointLight.attenuation.y * distance
296
+ + pointLight.attenuation.z * distance * distance;
297
+ }
298
+
299
+ #endif
300
+ `])));function u_(e,t){var r=typeof Symbol<"u"&&e[Symbol.iterator]||e["@@iterator"];if(!r){if(Array.isArray(e)||(r=l_(e))||t&&e&&typeof e.length=="number"){r&&(e=r);var n=0,i=function(){};return{s:i,n:function(){return n>=e.length?{done:!0}:{done:!1,value:e[n++]}},e:function(u){throw u},f:i}}throw new TypeError(`Invalid attempt to iterate non-iterable instance.
301
+ In order to be iterable, non-array objects must have a [Symbol.iterator]() method.`)}var o=!0,a=!1,c;return{s:function(){r=r.call(e)},n:function(){var u=r.next();return o=u.done,u},e:function(u){a=!0,c=u},f:function(){try{!o&&r.return!=null&&r.return()}finally{if(a)throw c}}}}function l_(e,t){if(e){if(typeof e=="string")return Ks(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 Ks(e,t)}}function Ks(e,t){(t==null||t>e.length)&&(t=e.length);for(var r=0,n=new Array(t);r<t;r++)n[r]=e[r];return n}var __={lightSources:{}};function ei(){var e=arguments.length>0&&arguments[0]!==void 0?arguments[0]:{},t=e.color,r=t===void 0?[0,0,0]:t,n=e.intensity,i=n===void 0?1:n;return r.map(function(o){return o*i/255})}function E_(e){var t=e.ambientLight,r=e.pointLights,n=r===void 0?[]:r,i=e.directionalLights,o=i===void 0?[]:i,a={};return t?a["lighting_uAmbientLight.color"]=ei(t):a["lighting_uAmbientLight.color"]=[0,0,0],n.forEach(function(c,f){a["lighting_uPointLight[".concat(f,"].color")]=ei(c),a["lighting_uPointLight[".concat(f,"].position")]=c.position,a["lighting_uPointLight[".concat(f,"].attenuation")]=c.attenuation||[1,0,0]}),a.lighting_uPointLightCount=n.length,o.forEach(function(c,f){a["lighting_uDirectionalLight[".concat(f,"].color")]=ei(c),a["lighting_uDirectionalLight[".concat(f,"].direction")]=c.direction}),a.lighting_uDirectionalLightCount=o.length,a}function Ys(){var e,t,r=arguments.length>0&&arguments[0]!==void 0?arguments[0]:__;if("lightSources"in r){var n=r.lightSources||{},i=n.ambientLight,o=n.pointLights,a=n.directionalLights,c=i||o&&o.length>0||a&&a.length>0;return c?Object.assign({},E_({ambientLight:i,pointLights:o,directionalLights:a}),{lighting_uEnabled:!0}):{lighting_uEnabled:!1}}if("lights"in r){var f={pointLights:[],directionalLights:[]},u=u_(r.lights||[]),_;try{for(u.s();!(_=u.n()).done;){var E=_.value;switch(E.type){case"ambient":f.ambientLight=E;break;case"directional":(e=f.directionalLights)===null||e===void 0||e.push(E);break;case"point":(t=f.pointLights)===null||t===void 0||t.push(E);break;default:}}}catch(p){u.e(p)}finally{u.f()}return Ys({lightSources:f})}return{}}var ks={name:"lights",vs:Jn,fs:Jn,getUniforms:Ys,defines:{MAX_LIGHTS:3}};var zs,qs=ae(zs||(zs=ne([`uniform mat4 u_MVPMatrix;
302
+ uniform mat4 u_ModelMatrix;
303
+ uniform mat4 u_NormalMatrix;
304
+
305
+ varying vec3 pbr_vPosition;
306
+ varying vec2 pbr_vUV;
307
+
308
+ #ifdef HAS_NORMALS
309
+ # ifdef HAS_TANGENTS
310
+ varying mat3 pbr_vTBN;
311
+ # else
312
+ varying vec3 pbr_vNormal;
313
+ # endif
314
+ #endif
315
+
316
+ void pbr_setPositionNormalTangentUV(vec4 position, vec4 normal, vec4 tangent, vec2 uv)
317
+ {
318
+ vec4 pos = u_ModelMatrix * position;
319
+ pbr_vPosition = vec3(pos.xyz) / pos.w;
320
+
321
+ #ifdef HAS_NORMALS
322
+ #ifdef HAS_TANGENTS
323
+ vec3 normalW = normalize(vec3(u_NormalMatrix * vec4(normal.xyz, 0.0)));
324
+ vec3 tangentW = normalize(vec3(u_ModelMatrix * vec4(tangent.xyz, 0.0)));
325
+ vec3 bitangentW = cross(normalW, tangentW) * tangent.w;
326
+ pbr_vTBN = mat3(tangentW, bitangentW, normalW);
327
+ #else // HAS_TANGENTS != 1
328
+ pbr_vNormal = normalize(vec3(u_ModelMatrix * vec4(normal.xyz, 0.0)));
329
+ #endif
330
+ #endif
331
+
332
+ #ifdef HAS_UV
333
+ pbr_vUV = uv;
334
+ #else
335
+ pbr_vUV = vec2(0.,0.);
336
+ #endif
337
+ }
338
+ `],[`\\
339
+ uniform mat4 u_MVPMatrix;
340
+ uniform mat4 u_ModelMatrix;
341
+ uniform mat4 u_NormalMatrix;
342
+
343
+ varying vec3 pbr_vPosition;
344
+ varying vec2 pbr_vUV;
345
+
346
+ #ifdef HAS_NORMALS
347
+ # ifdef HAS_TANGENTS
348
+ varying mat3 pbr_vTBN;
349
+ # else
350
+ varying vec3 pbr_vNormal;
351
+ # endif
352
+ #endif
353
+
354
+ void pbr_setPositionNormalTangentUV(vec4 position, vec4 normal, vec4 tangent, vec2 uv)
355
+ {
356
+ vec4 pos = u_ModelMatrix * position;
357
+ pbr_vPosition = vec3(pos.xyz) / pos.w;
358
+
359
+ #ifdef HAS_NORMALS
360
+ #ifdef HAS_TANGENTS
361
+ vec3 normalW = normalize(vec3(u_NormalMatrix * vec4(normal.xyz, 0.0)));
362
+ vec3 tangentW = normalize(vec3(u_ModelMatrix * vec4(tangent.xyz, 0.0)));
363
+ vec3 bitangentW = cross(normalW, tangentW) * tangent.w;
364
+ pbr_vTBN = mat3(tangentW, bitangentW, normalW);
365
+ #else // HAS_TANGENTS != 1
366
+ pbr_vNormal = normalize(vec3(u_ModelMatrix * vec4(normal.xyz, 0.0)));
367
+ #endif
368
+ #endif
369
+
370
+ #ifdef HAS_UV
371
+ pbr_vUV = uv;
372
+ #else
373
+ pbr_vUV = vec2(0.,0.);
374
+ #endif
375
+ }
376
+ `])));var Zs,$s=ae(Zs||(Zs=ne([`#if defined(USE_TEX_LOD) && !defined(FEATURE_GLSL_TEXTURE_LOD)
377
+ # error PBR fragment shader: Texture LOD is not available
378
+ #endif
379
+
380
+ #if !defined(HAS_TANGENTS) && !defined(FEATURE_GLSL_DERIVATIVES)
381
+ # error PBR fragment shader: Derivatives are not available
382
+ #endif
383
+
384
+ // WebGL 1.0 does not support non-constant in for loops
385
+ // This provides an easy way to handle these cases
386
+ // and still take advantage of WebGL 2.0
387
+ #if (__VERSION__ < 300)
388
+ #define SMART_FOR(INIT, WEBGL1COND, WEBGL2COND, INCR) for (INIT; WEBGL1COND; INCR)
389
+ #else
390
+ #define SMART_FOR(INIT, WEBGL1COND, WEBGL2COND, INCR) for (INIT; WEBGL2COND; INCR)
391
+ #endif
392
+
393
+ precision highp float;
394
+
395
+ uniform bool pbr_uUnlit;
396
+
397
+ #ifdef USE_IBL
398
+ uniform samplerCube u_DiffuseEnvSampler;
399
+ uniform samplerCube u_SpecularEnvSampler;
400
+ uniform sampler2D u_brdfLUT;
401
+ uniform vec2 u_ScaleIBLAmbient;
402
+ #endif
403
+
404
+ #ifdef HAS_BASECOLORMAP
405
+ uniform sampler2D u_BaseColorSampler;
406
+ #endif
407
+ #ifdef HAS_NORMALMAP
408
+ uniform sampler2D u_NormalSampler;
409
+ uniform float u_NormalScale;
410
+ #endif
411
+ #ifdef HAS_EMISSIVEMAP
412
+ uniform sampler2D u_EmissiveSampler;
413
+ uniform vec3 u_EmissiveFactor;
414
+ #endif
415
+ #ifdef HAS_METALROUGHNESSMAP
416
+ uniform sampler2D u_MetallicRoughnessSampler;
417
+ #endif
418
+ #ifdef HAS_OCCLUSIONMAP
419
+ uniform sampler2D u_OcclusionSampler;
420
+ uniform float u_OcclusionStrength;
421
+ #endif
422
+
423
+ #ifdef ALPHA_CUTOFF
424
+ uniform float u_AlphaCutoff;
425
+ #endif
426
+
427
+ uniform vec2 u_MetallicRoughnessValues;
428
+ uniform vec4 u_BaseColorFactor;
429
+
430
+ uniform vec3 u_Camera;
431
+
432
+ // debugging flags used for shader output of intermediate PBR variables
433
+ #ifdef PBR_DEBUG
434
+ uniform vec4 u_ScaleDiffBaseMR;
435
+ uniform vec4 u_ScaleFGDSpec;
436
+ #endif
437
+
438
+ varying vec3 pbr_vPosition;
439
+
440
+ varying vec2 pbr_vUV;
441
+
442
+ #ifdef HAS_NORMALS
443
+ #ifdef HAS_TANGENTS
444
+ varying mat3 pbr_vTBN;
445
+ #else
446
+ varying vec3 pbr_vNormal;
447
+ #endif
448
+ #endif
449
+
450
+ // Encapsulate the various inputs used by the various functions in the shading equation
451
+ // We store values in this struct to simplify the integration of alternative implementations
452
+ // of the shading terms, outlined in the Readme.MD Appendix.
453
+ struct PBRInfo
454
+ {
455
+ float NdotL; // cos angle between normal and light direction
456
+ float NdotV; // cos angle between normal and view direction
457
+ float NdotH; // cos angle between normal and half vector
458
+ float LdotH; // cos angle between light direction and half vector
459
+ float VdotH; // cos angle between view direction and half vector
460
+ float perceptualRoughness; // roughness value, as authored by the model creator (input to shader)
461
+ float metalness; // metallic value at the surface
462
+ vec3 reflectance0; // full reflectance color (normal incidence angle)
463
+ vec3 reflectance90; // reflectance color at grazing angle
464
+ float alphaRoughness; // roughness mapped to a more linear change in the roughness (proposed by [2])
465
+ vec3 diffuseColor; // color contribution from diffuse lighting
466
+ vec3 specularColor; // color contribution from specular lighting
467
+ vec3 n; // normal at surface point
468
+ vec3 v; // vector from surface point to camera
469
+ };
470
+
471
+ const float M_PI = 3.141592653589793;
472
+ const float c_MinRoughness = 0.04;
473
+
474
+ vec4 SRGBtoLINEAR(vec4 srgbIn)
475
+ {
476
+ #ifdef MANUAL_SRGB
477
+ #ifdef SRGB_FAST_APPROXIMATION
478
+ vec3 linOut = pow(srgbIn.xyz,vec3(2.2));
479
+ #else //SRGB_FAST_APPROXIMATION
480
+ vec3 bLess = step(vec3(0.04045),srgbIn.xyz);
481
+ vec3 linOut = mix( srgbIn.xyz/vec3(12.92), pow((srgbIn.xyz+vec3(0.055))/vec3(1.055),vec3(2.4)), bLess );
482
+ #endif //SRGB_FAST_APPROXIMATION
483
+ return vec4(linOut,srgbIn.w);;
484
+ #else //MANUAL_SRGB
485
+ return srgbIn;
486
+ #endif //MANUAL_SRGB
487
+ }
488
+
489
+ // Find the normal for this fragment, pulling either from a predefined normal map
490
+ // or from the interpolated mesh normal and tangent attributes.
491
+ vec3 getNormal()
492
+ {
493
+ // Retrieve the tangent space matrix
494
+ #ifndef HAS_TANGENTS
495
+ vec3 pos_dx = dFdx(pbr_vPosition);
496
+ vec3 pos_dy = dFdy(pbr_vPosition);
497
+ vec3 tex_dx = dFdx(vec3(pbr_vUV, 0.0));
498
+ vec3 tex_dy = dFdy(vec3(pbr_vUV, 0.0));
499
+ vec3 t = (tex_dy.t * pos_dx - tex_dx.t * pos_dy) / (tex_dx.s * tex_dy.t - tex_dy.s * tex_dx.t);
500
+
501
+ #ifdef HAS_NORMALS
502
+ vec3 ng = normalize(pbr_vNormal);
503
+ #else
504
+ vec3 ng = cross(pos_dx, pos_dy);
505
+ #endif
506
+
507
+ t = normalize(t - ng * dot(ng, t));
508
+ vec3 b = normalize(cross(ng, t));
509
+ mat3 tbn = mat3(t, b, ng);
510
+ #else // HAS_TANGENTS
511
+ mat3 tbn = pbr_vTBN;
512
+ #endif
513
+
514
+ #ifdef HAS_NORMALMAP
515
+ vec3 n = texture2D(u_NormalSampler, pbr_vUV).rgb;
516
+ n = normalize(tbn * ((2.0 * n - 1.0) * vec3(u_NormalScale, u_NormalScale, 1.0)));
517
+ #else
518
+ // The tbn matrix is linearly interpolated, so we need to re-normalize
519
+ vec3 n = normalize(tbn[2].xyz);
520
+ #endif
521
+
522
+ return n;
523
+ }
524
+
525
+ // Calculation of the lighting contribution from an optional Image Based Light source.
526
+ // Precomputed Environment Maps are required uniform inputs and are computed as outlined in [1].
527
+ // See our README.md on Environment Maps [3] for additional discussion.
528
+ #ifdef USE_IBL
529
+ vec3 getIBLContribution(PBRInfo pbrInputs, vec3 n, vec3 reflection)
530
+ {
531
+ float mipCount = 9.0; // resolution of 512x512
532
+ float lod = (pbrInputs.perceptualRoughness * mipCount);
533
+ // retrieve a scale and bias to F0. See [1], Figure 3
534
+ vec3 brdf = SRGBtoLINEAR(texture2D(u_brdfLUT,
535
+ vec2(pbrInputs.NdotV, 1.0 - pbrInputs.perceptualRoughness))).rgb;
536
+ vec3 diffuseLight = SRGBtoLINEAR(textureCube(u_DiffuseEnvSampler, n)).rgb;
537
+
538
+ #ifdef USE_TEX_LOD
539
+ vec3 specularLight = SRGBtoLINEAR(textureCubeLod(u_SpecularEnvSampler, reflection, lod)).rgb;
540
+ #else
541
+ vec3 specularLight = SRGBtoLINEAR(textureCube(u_SpecularEnvSampler, reflection)).rgb;
542
+ #endif
543
+
544
+ vec3 diffuse = diffuseLight * pbrInputs.diffuseColor;
545
+ vec3 specular = specularLight * (pbrInputs.specularColor * brdf.x + brdf.y);
546
+
547
+ // For presentation, this allows us to disable IBL terms
548
+ diffuse *= u_ScaleIBLAmbient.x;
549
+ specular *= u_ScaleIBLAmbient.y;
550
+
551
+ return diffuse + specular;
552
+ }
553
+ #endif
554
+
555
+ // Basic Lambertian diffuse
556
+ // Implementation from Lambert's Photometria https://archive.org/details/lambertsphotome00lambgoog
557
+ // See also [1], Equation 1
558
+ vec3 diffuse(PBRInfo pbrInputs)
559
+ {
560
+ return pbrInputs.diffuseColor / M_PI;
561
+ }
562
+
563
+ // The following equation models the Fresnel reflectance term of the spec equation (aka F())
564
+ // Implementation of fresnel from [4], Equation 15
565
+ vec3 specularReflection(PBRInfo pbrInputs)
566
+ {
567
+ return pbrInputs.reflectance0 +
568
+ (pbrInputs.reflectance90 - pbrInputs.reflectance0) *
569
+ pow(clamp(1.0 - pbrInputs.VdotH, 0.0, 1.0), 5.0);
570
+ }
571
+
572
+ // This calculates the specular geometric attenuation (aka G()),
573
+ // where rougher material will reflect less light back to the viewer.
574
+ // This implementation is based on [1] Equation 4, and we adopt their modifications to
575
+ // alphaRoughness as input as originally proposed in [2].
576
+ float geometricOcclusion(PBRInfo pbrInputs)
577
+ {
578
+ float NdotL = pbrInputs.NdotL;
579
+ float NdotV = pbrInputs.NdotV;
580
+ float r = pbrInputs.alphaRoughness;
581
+
582
+ float attenuationL = 2.0 * NdotL / (NdotL + sqrt(r * r + (1.0 - r * r) * (NdotL * NdotL)));
583
+ float attenuationV = 2.0 * NdotV / (NdotV + sqrt(r * r + (1.0 - r * r) * (NdotV * NdotV)));
584
+ return attenuationL * attenuationV;
585
+ }
586
+
587
+ // The following equation(s) model the distribution of microfacet normals across
588
+ // the area being drawn (aka D())
589
+ // Implementation from "Average Irregularity Representation of a Roughened Surface
590
+ // for Ray Reflection" by T. S. Trowbridge, and K. P. Reitz
591
+ // Follows the distribution function recommended in the SIGGRAPH 2013 course notes
592
+ // from EPIC Games [1], Equation 3.
593
+ float microfacetDistribution(PBRInfo pbrInputs)
594
+ {
595
+ float roughnessSq = pbrInputs.alphaRoughness * pbrInputs.alphaRoughness;
596
+ float f = (pbrInputs.NdotH * roughnessSq - pbrInputs.NdotH) * pbrInputs.NdotH + 1.0;
597
+ return roughnessSq / (M_PI * f * f);
598
+ }
599
+
600
+ void PBRInfo_setAmbientLight(inout PBRInfo pbrInputs) {
601
+ pbrInputs.NdotL = 1.0;
602
+ pbrInputs.NdotH = 0.0;
603
+ pbrInputs.LdotH = 0.0;
604
+ pbrInputs.VdotH = 1.0;
605
+ }
606
+
607
+ void PBRInfo_setDirectionalLight(inout PBRInfo pbrInputs, vec3 lightDirection) {
608
+ vec3 n = pbrInputs.n;
609
+ vec3 v = pbrInputs.v;
610
+ vec3 l = normalize(lightDirection); // Vector from surface point to light
611
+ vec3 h = normalize(l+v); // Half vector between both l and v
612
+
613
+ pbrInputs.NdotL = clamp(dot(n, l), 0.001, 1.0);
614
+ pbrInputs.NdotH = clamp(dot(n, h), 0.0, 1.0);
615
+ pbrInputs.LdotH = clamp(dot(l, h), 0.0, 1.0);
616
+ pbrInputs.VdotH = clamp(dot(v, h), 0.0, 1.0);
617
+ }
618
+
619
+ void PBRInfo_setPointLight(inout PBRInfo pbrInputs, PointLight pointLight) {
620
+ vec3 light_direction = normalize(pointLight.position - pbr_vPosition);
621
+ PBRInfo_setDirectionalLight(pbrInputs, light_direction);
622
+ }
623
+
624
+ vec3 calculateFinalColor(PBRInfo pbrInputs, vec3 lightColor) {
625
+ // Calculate the shading terms for the microfacet specular shading model
626
+ vec3 F = specularReflection(pbrInputs);
627
+ float G = geometricOcclusion(pbrInputs);
628
+ float D = microfacetDistribution(pbrInputs);
629
+
630
+ // Calculation of analytical lighting contribution
631
+ vec3 diffuseContrib = (1.0 - F) * diffuse(pbrInputs);
632
+ vec3 specContrib = F * G * D / (4.0 * pbrInputs.NdotL * pbrInputs.NdotV);
633
+ // Obtain final intensity as reflectance (BRDF) scaled by the energy of the light (cosine law)
634
+ return pbrInputs.NdotL * lightColor * (diffuseContrib + specContrib);
635
+ }
636
+
637
+ vec4 pbr_filterColor(vec4 colorUnused)
638
+ {
639
+ // The albedo may be defined from a base texture or a flat color
640
+ #ifdef HAS_BASECOLORMAP
641
+ vec4 baseColor = SRGBtoLINEAR(texture2D(u_BaseColorSampler, pbr_vUV)) * u_BaseColorFactor;
642
+ #else
643
+ vec4 baseColor = u_BaseColorFactor;
644
+ #endif
645
+
646
+ #ifdef ALPHA_CUTOFF
647
+ if (baseColor.a < u_AlphaCutoff) {
648
+ discard;
649
+ }
650
+ #endif
651
+
652
+ vec3 color = vec3(0, 0, 0);
653
+
654
+ if(pbr_uUnlit){
655
+ color.rgb = baseColor.rgb;
656
+ }
657
+ else{
658
+ // Metallic and Roughness material properties are packed together
659
+ // In glTF, these factors can be specified by fixed scalar values
660
+ // or from a metallic-roughness map
661
+ float perceptualRoughness = u_MetallicRoughnessValues.y;
662
+ float metallic = u_MetallicRoughnessValues.x;
663
+ #ifdef HAS_METALROUGHNESSMAP
664
+ // Roughness is stored in the 'g' channel, metallic is stored in the 'b' channel.
665
+ // This layout intentionally reserves the 'r' channel for (optional) occlusion map data
666
+ vec4 mrSample = texture2D(u_MetallicRoughnessSampler, pbr_vUV);
667
+ perceptualRoughness = mrSample.g * perceptualRoughness;
668
+ metallic = mrSample.b * metallic;
669
+ #endif
670
+ perceptualRoughness = clamp(perceptualRoughness, c_MinRoughness, 1.0);
671
+ metallic = clamp(metallic, 0.0, 1.0);
672
+ // Roughness is authored as perceptual roughness; as is convention,
673
+ // convert to material roughness by squaring the perceptual roughness [2].
674
+ float alphaRoughness = perceptualRoughness * perceptualRoughness;
675
+
676
+ vec3 f0 = vec3(0.04);
677
+ vec3 diffuseColor = baseColor.rgb * (vec3(1.0) - f0);
678
+ diffuseColor *= 1.0 - metallic;
679
+ vec3 specularColor = mix(f0, baseColor.rgb, metallic);
680
+
681
+ // Compute reflectance.
682
+ float reflectance = max(max(specularColor.r, specularColor.g), specularColor.b);
683
+
684
+ // For typical incident reflectance range (between 4% to 100%) set the grazing
685
+ // reflectance to 100% for typical fresnel effect.
686
+ // For very low reflectance range on highly diffuse objects (below 4%),
687
+ // incrementally reduce grazing reflecance to 0%.
688
+ float reflectance90 = clamp(reflectance * 25.0, 0.0, 1.0);
689
+ vec3 specularEnvironmentR0 = specularColor.rgb;
690
+ vec3 specularEnvironmentR90 = vec3(1.0, 1.0, 1.0) * reflectance90;
691
+
692
+ vec3 n = getNormal(); // normal at surface point
693
+ vec3 v = normalize(u_Camera - pbr_vPosition); // Vector from surface point to camera
694
+
695
+ float NdotV = clamp(abs(dot(n, v)), 0.001, 1.0);
696
+ vec3 reflection = -normalize(reflect(v, n));
697
+
698
+ PBRInfo pbrInputs = PBRInfo(
699
+ 0.0, // NdotL
700
+ NdotV,
701
+ 0.0, // NdotH
702
+ 0.0, // LdotH
703
+ 0.0, // VdotH
704
+ perceptualRoughness,
705
+ metallic,
706
+ specularEnvironmentR0,
707
+ specularEnvironmentR90,
708
+ alphaRoughness,
709
+ diffuseColor,
710
+ specularColor,
711
+ n,
712
+ v
713
+ );
714
+
715
+ #ifdef USE_LIGHTS
716
+ // Apply ambient light
717
+ PBRInfo_setAmbientLight(pbrInputs);
718
+ color += calculateFinalColor(pbrInputs, lighting_uAmbientLight.color);
719
+
720
+ // Apply directional light
721
+ SMART_FOR(int i = 0, i < MAX_LIGHTS, i < lighting_uDirectionalLightCount, i++) {
722
+ if (i < lighting_uDirectionalLightCount) {
723
+ PBRInfo_setDirectionalLight(pbrInputs, lighting_uDirectionalLight[i].direction);
724
+ color += calculateFinalColor(pbrInputs, lighting_uDirectionalLight[i].color);
725
+ }
726
+ }
727
+
728
+ // Apply point light
729
+ SMART_FOR(int i = 0, i < MAX_LIGHTS, i < lighting_uPointLightCount, i++) {
730
+ if (i < lighting_uPointLightCount) {
731
+ PBRInfo_setPointLight(pbrInputs, lighting_uPointLight[i]);
732
+ float attenuation = getPointLightAttenuation(lighting_uPointLight[i], distance(lighting_uPointLight[i].position, pbr_vPosition));
733
+ color += calculateFinalColor(pbrInputs, lighting_uPointLight[i].color / attenuation);
734
+ }
735
+ }
736
+ #endif
737
+
738
+ // Calculate lighting contribution from image based lighting source (IBL)
739
+ #ifdef USE_IBL
740
+ color += getIBLContribution(pbrInputs, n, reflection);
741
+ #endif
742
+
743
+ // Apply optional PBR terms for additional (optional) shading
744
+ #ifdef HAS_OCCLUSIONMAP
745
+ float ao = texture2D(u_OcclusionSampler, pbr_vUV).r;
746
+ color = mix(color, color * ao, u_OcclusionStrength);
747
+ #endif
748
+
749
+ #ifdef HAS_EMISSIVEMAP
750
+ vec3 emissive = SRGBtoLINEAR(texture2D(u_EmissiveSampler, pbr_vUV)).rgb * u_EmissiveFactor;
751
+ color += emissive;
752
+ #endif
753
+
754
+ // This section uses mix to override final color for reference app visualization
755
+ // of various parameters in the lighting equation.
756
+ #ifdef PBR_DEBUG
757
+ // TODO: Figure out how to debug multiple lights
758
+
759
+ // color = mix(color, F, u_ScaleFGDSpec.x);
760
+ // color = mix(color, vec3(G), u_ScaleFGDSpec.y);
761
+ // color = mix(color, vec3(D), u_ScaleFGDSpec.z);
762
+ // color = mix(color, specContrib, u_ScaleFGDSpec.w);
763
+
764
+ // color = mix(color, diffuseContrib, u_ScaleDiffBaseMR.x);
765
+ color = mix(color, baseColor.rgb, u_ScaleDiffBaseMR.y);
766
+ color = mix(color, vec3(metallic), u_ScaleDiffBaseMR.z);
767
+ color = mix(color, vec3(perceptualRoughness), u_ScaleDiffBaseMR.w);
768
+ #endif
769
+
770
+ }
771
+
772
+ return vec4(pow(color,vec3(1.0/2.2)), baseColor.a);
773
+ }
774
+ `],[`\\
775
+ #if defined(USE_TEX_LOD) && !defined(FEATURE_GLSL_TEXTURE_LOD)
776
+ # error PBR fragment shader: Texture LOD is not available
777
+ #endif
778
+
779
+ #if !defined(HAS_TANGENTS) && !defined(FEATURE_GLSL_DERIVATIVES)
780
+ # error PBR fragment shader: Derivatives are not available
781
+ #endif
782
+
783
+ // WebGL 1.0 does not support non-constant in for loops
784
+ // This provides an easy way to handle these cases
785
+ // and still take advantage of WebGL 2.0
786
+ #if (__VERSION__ < 300)
787
+ #define SMART_FOR(INIT, WEBGL1COND, WEBGL2COND, INCR) for (INIT; WEBGL1COND; INCR)
788
+ #else
789
+ #define SMART_FOR(INIT, WEBGL1COND, WEBGL2COND, INCR) for (INIT; WEBGL2COND; INCR)
790
+ #endif
791
+
792
+ precision highp float;
793
+
794
+ uniform bool pbr_uUnlit;
795
+
796
+ #ifdef USE_IBL
797
+ uniform samplerCube u_DiffuseEnvSampler;
798
+ uniform samplerCube u_SpecularEnvSampler;
799
+ uniform sampler2D u_brdfLUT;
800
+ uniform vec2 u_ScaleIBLAmbient;
801
+ #endif
802
+
803
+ #ifdef HAS_BASECOLORMAP
804
+ uniform sampler2D u_BaseColorSampler;
805
+ #endif
806
+ #ifdef HAS_NORMALMAP
807
+ uniform sampler2D u_NormalSampler;
808
+ uniform float u_NormalScale;
809
+ #endif
810
+ #ifdef HAS_EMISSIVEMAP
811
+ uniform sampler2D u_EmissiveSampler;
812
+ uniform vec3 u_EmissiveFactor;
813
+ #endif
814
+ #ifdef HAS_METALROUGHNESSMAP
815
+ uniform sampler2D u_MetallicRoughnessSampler;
816
+ #endif
817
+ #ifdef HAS_OCCLUSIONMAP
818
+ uniform sampler2D u_OcclusionSampler;
819
+ uniform float u_OcclusionStrength;
820
+ #endif
821
+
822
+ #ifdef ALPHA_CUTOFF
823
+ uniform float u_AlphaCutoff;
824
+ #endif
825
+
826
+ uniform vec2 u_MetallicRoughnessValues;
827
+ uniform vec4 u_BaseColorFactor;
828
+
829
+ uniform vec3 u_Camera;
830
+
831
+ // debugging flags used for shader output of intermediate PBR variables
832
+ #ifdef PBR_DEBUG
833
+ uniform vec4 u_ScaleDiffBaseMR;
834
+ uniform vec4 u_ScaleFGDSpec;
835
+ #endif
836
+
837
+ varying vec3 pbr_vPosition;
838
+
839
+ varying vec2 pbr_vUV;
840
+
841
+ #ifdef HAS_NORMALS
842
+ #ifdef HAS_TANGENTS
843
+ varying mat3 pbr_vTBN;
844
+ #else
845
+ varying vec3 pbr_vNormal;
846
+ #endif
847
+ #endif
848
+
849
+ // Encapsulate the various inputs used by the various functions in the shading equation
850
+ // We store values in this struct to simplify the integration of alternative implementations
851
+ // of the shading terms, outlined in the Readme.MD Appendix.
852
+ struct PBRInfo
853
+ {
854
+ float NdotL; // cos angle between normal and light direction
855
+ float NdotV; // cos angle between normal and view direction
856
+ float NdotH; // cos angle between normal and half vector
857
+ float LdotH; // cos angle between light direction and half vector
858
+ float VdotH; // cos angle between view direction and half vector
859
+ float perceptualRoughness; // roughness value, as authored by the model creator (input to shader)
860
+ float metalness; // metallic value at the surface
861
+ vec3 reflectance0; // full reflectance color (normal incidence angle)
862
+ vec3 reflectance90; // reflectance color at grazing angle
863
+ float alphaRoughness; // roughness mapped to a more linear change in the roughness (proposed by [2])
864
+ vec3 diffuseColor; // color contribution from diffuse lighting
865
+ vec3 specularColor; // color contribution from specular lighting
866
+ vec3 n; // normal at surface point
867
+ vec3 v; // vector from surface point to camera
868
+ };
869
+
870
+ const float M_PI = 3.141592653589793;
871
+ const float c_MinRoughness = 0.04;
872
+
873
+ vec4 SRGBtoLINEAR(vec4 srgbIn)
874
+ {
875
+ #ifdef MANUAL_SRGB
876
+ #ifdef SRGB_FAST_APPROXIMATION
877
+ vec3 linOut = pow(srgbIn.xyz,vec3(2.2));
878
+ #else //SRGB_FAST_APPROXIMATION
879
+ vec3 bLess = step(vec3(0.04045),srgbIn.xyz);
880
+ vec3 linOut = mix( srgbIn.xyz/vec3(12.92), pow((srgbIn.xyz+vec3(0.055))/vec3(1.055),vec3(2.4)), bLess );
881
+ #endif //SRGB_FAST_APPROXIMATION
882
+ return vec4(linOut,srgbIn.w);;
883
+ #else //MANUAL_SRGB
884
+ return srgbIn;
885
+ #endif //MANUAL_SRGB
886
+ }
887
+
888
+ // Find the normal for this fragment, pulling either from a predefined normal map
889
+ // or from the interpolated mesh normal and tangent attributes.
890
+ vec3 getNormal()
891
+ {
892
+ // Retrieve the tangent space matrix
893
+ #ifndef HAS_TANGENTS
894
+ vec3 pos_dx = dFdx(pbr_vPosition);
895
+ vec3 pos_dy = dFdy(pbr_vPosition);
896
+ vec3 tex_dx = dFdx(vec3(pbr_vUV, 0.0));
897
+ vec3 tex_dy = dFdy(vec3(pbr_vUV, 0.0));
898
+ vec3 t = (tex_dy.t * pos_dx - tex_dx.t * pos_dy) / (tex_dx.s * tex_dy.t - tex_dy.s * tex_dx.t);
899
+
900
+ #ifdef HAS_NORMALS
901
+ vec3 ng = normalize(pbr_vNormal);
902
+ #else
903
+ vec3 ng = cross(pos_dx, pos_dy);
904
+ #endif
905
+
906
+ t = normalize(t - ng * dot(ng, t));
907
+ vec3 b = normalize(cross(ng, t));
908
+ mat3 tbn = mat3(t, b, ng);
909
+ #else // HAS_TANGENTS
910
+ mat3 tbn = pbr_vTBN;
911
+ #endif
912
+
913
+ #ifdef HAS_NORMALMAP
914
+ vec3 n = texture2D(u_NormalSampler, pbr_vUV).rgb;
915
+ n = normalize(tbn * ((2.0 * n - 1.0) * vec3(u_NormalScale, u_NormalScale, 1.0)));
916
+ #else
917
+ // The tbn matrix is linearly interpolated, so we need to re-normalize
918
+ vec3 n = normalize(tbn[2].xyz);
919
+ #endif
920
+
921
+ return n;
922
+ }
923
+
924
+ // Calculation of the lighting contribution from an optional Image Based Light source.
925
+ // Precomputed Environment Maps are required uniform inputs and are computed as outlined in [1].
926
+ // See our README.md on Environment Maps [3] for additional discussion.
927
+ #ifdef USE_IBL
928
+ vec3 getIBLContribution(PBRInfo pbrInputs, vec3 n, vec3 reflection)
929
+ {
930
+ float mipCount = 9.0; // resolution of 512x512
931
+ float lod = (pbrInputs.perceptualRoughness * mipCount);
932
+ // retrieve a scale and bias to F0. See [1], Figure 3
933
+ vec3 brdf = SRGBtoLINEAR(texture2D(u_brdfLUT,
934
+ vec2(pbrInputs.NdotV, 1.0 - pbrInputs.perceptualRoughness))).rgb;
935
+ vec3 diffuseLight = SRGBtoLINEAR(textureCube(u_DiffuseEnvSampler, n)).rgb;
936
+
937
+ #ifdef USE_TEX_LOD
938
+ vec3 specularLight = SRGBtoLINEAR(textureCubeLod(u_SpecularEnvSampler, reflection, lod)).rgb;
939
+ #else
940
+ vec3 specularLight = SRGBtoLINEAR(textureCube(u_SpecularEnvSampler, reflection)).rgb;
941
+ #endif
942
+
943
+ vec3 diffuse = diffuseLight * pbrInputs.diffuseColor;
944
+ vec3 specular = specularLight * (pbrInputs.specularColor * brdf.x + brdf.y);
945
+
946
+ // For presentation, this allows us to disable IBL terms
947
+ diffuse *= u_ScaleIBLAmbient.x;
948
+ specular *= u_ScaleIBLAmbient.y;
949
+
950
+ return diffuse + specular;
951
+ }
952
+ #endif
953
+
954
+ // Basic Lambertian diffuse
955
+ // Implementation from Lambert's Photometria https://archive.org/details/lambertsphotome00lambgoog
956
+ // See also [1], Equation 1
957
+ vec3 diffuse(PBRInfo pbrInputs)
958
+ {
959
+ return pbrInputs.diffuseColor / M_PI;
960
+ }
961
+
962
+ // The following equation models the Fresnel reflectance term of the spec equation (aka F())
963
+ // Implementation of fresnel from [4], Equation 15
964
+ vec3 specularReflection(PBRInfo pbrInputs)
965
+ {
966
+ return pbrInputs.reflectance0 +
967
+ (pbrInputs.reflectance90 - pbrInputs.reflectance0) *
968
+ pow(clamp(1.0 - pbrInputs.VdotH, 0.0, 1.0), 5.0);
969
+ }
970
+
971
+ // This calculates the specular geometric attenuation (aka G()),
972
+ // where rougher material will reflect less light back to the viewer.
973
+ // This implementation is based on [1] Equation 4, and we adopt their modifications to
974
+ // alphaRoughness as input as originally proposed in [2].
975
+ float geometricOcclusion(PBRInfo pbrInputs)
976
+ {
977
+ float NdotL = pbrInputs.NdotL;
978
+ float NdotV = pbrInputs.NdotV;
979
+ float r = pbrInputs.alphaRoughness;
980
+
981
+ float attenuationL = 2.0 * NdotL / (NdotL + sqrt(r * r + (1.0 - r * r) * (NdotL * NdotL)));
982
+ float attenuationV = 2.0 * NdotV / (NdotV + sqrt(r * r + (1.0 - r * r) * (NdotV * NdotV)));
983
+ return attenuationL * attenuationV;
984
+ }
985
+
986
+ // The following equation(s) model the distribution of microfacet normals across
987
+ // the area being drawn (aka D())
988
+ // Implementation from "Average Irregularity Representation of a Roughened Surface
989
+ // for Ray Reflection" by T. S. Trowbridge, and K. P. Reitz
990
+ // Follows the distribution function recommended in the SIGGRAPH 2013 course notes
991
+ // from EPIC Games [1], Equation 3.
992
+ float microfacetDistribution(PBRInfo pbrInputs)
993
+ {
994
+ float roughnessSq = pbrInputs.alphaRoughness * pbrInputs.alphaRoughness;
995
+ float f = (pbrInputs.NdotH * roughnessSq - pbrInputs.NdotH) * pbrInputs.NdotH + 1.0;
996
+ return roughnessSq / (M_PI * f * f);
997
+ }
998
+
999
+ void PBRInfo_setAmbientLight(inout PBRInfo pbrInputs) {
1000
+ pbrInputs.NdotL = 1.0;
1001
+ pbrInputs.NdotH = 0.0;
1002
+ pbrInputs.LdotH = 0.0;
1003
+ pbrInputs.VdotH = 1.0;
1004
+ }
1005
+
1006
+ void PBRInfo_setDirectionalLight(inout PBRInfo pbrInputs, vec3 lightDirection) {
1007
+ vec3 n = pbrInputs.n;
1008
+ vec3 v = pbrInputs.v;
1009
+ vec3 l = normalize(lightDirection); // Vector from surface point to light
1010
+ vec3 h = normalize(l+v); // Half vector between both l and v
1011
+
1012
+ pbrInputs.NdotL = clamp(dot(n, l), 0.001, 1.0);
1013
+ pbrInputs.NdotH = clamp(dot(n, h), 0.0, 1.0);
1014
+ pbrInputs.LdotH = clamp(dot(l, h), 0.0, 1.0);
1015
+ pbrInputs.VdotH = clamp(dot(v, h), 0.0, 1.0);
1016
+ }
1017
+
1018
+ void PBRInfo_setPointLight(inout PBRInfo pbrInputs, PointLight pointLight) {
1019
+ vec3 light_direction = normalize(pointLight.position - pbr_vPosition);
1020
+ PBRInfo_setDirectionalLight(pbrInputs, light_direction);
1021
+ }
1022
+
1023
+ vec3 calculateFinalColor(PBRInfo pbrInputs, vec3 lightColor) {
1024
+ // Calculate the shading terms for the microfacet specular shading model
1025
+ vec3 F = specularReflection(pbrInputs);
1026
+ float G = geometricOcclusion(pbrInputs);
1027
+ float D = microfacetDistribution(pbrInputs);
1028
+
1029
+ // Calculation of analytical lighting contribution
1030
+ vec3 diffuseContrib = (1.0 - F) * diffuse(pbrInputs);
1031
+ vec3 specContrib = F * G * D / (4.0 * pbrInputs.NdotL * pbrInputs.NdotV);
1032
+ // Obtain final intensity as reflectance (BRDF) scaled by the energy of the light (cosine law)
1033
+ return pbrInputs.NdotL * lightColor * (diffuseContrib + specContrib);
1034
+ }
1035
+
1036
+ vec4 pbr_filterColor(vec4 colorUnused)
1037
+ {
1038
+ // The albedo may be defined from a base texture or a flat color
1039
+ #ifdef HAS_BASECOLORMAP
1040
+ vec4 baseColor = SRGBtoLINEAR(texture2D(u_BaseColorSampler, pbr_vUV)) * u_BaseColorFactor;
1041
+ #else
1042
+ vec4 baseColor = u_BaseColorFactor;
1043
+ #endif
1044
+
1045
+ #ifdef ALPHA_CUTOFF
1046
+ if (baseColor.a < u_AlphaCutoff) {
1047
+ discard;
1048
+ }
1049
+ #endif
1050
+
1051
+ vec3 color = vec3(0, 0, 0);
1052
+
1053
+ if(pbr_uUnlit){
1054
+ color.rgb = baseColor.rgb;
1055
+ }
1056
+ else{
1057
+ // Metallic and Roughness material properties are packed together
1058
+ // In glTF, these factors can be specified by fixed scalar values
1059
+ // or from a metallic-roughness map
1060
+ float perceptualRoughness = u_MetallicRoughnessValues.y;
1061
+ float metallic = u_MetallicRoughnessValues.x;
1062
+ #ifdef HAS_METALROUGHNESSMAP
1063
+ // Roughness is stored in the 'g' channel, metallic is stored in the 'b' channel.
1064
+ // This layout intentionally reserves the 'r' channel for (optional) occlusion map data
1065
+ vec4 mrSample = texture2D(u_MetallicRoughnessSampler, pbr_vUV);
1066
+ perceptualRoughness = mrSample.g * perceptualRoughness;
1067
+ metallic = mrSample.b * metallic;
1068
+ #endif
1069
+ perceptualRoughness = clamp(perceptualRoughness, c_MinRoughness, 1.0);
1070
+ metallic = clamp(metallic, 0.0, 1.0);
1071
+ // Roughness is authored as perceptual roughness; as is convention,
1072
+ // convert to material roughness by squaring the perceptual roughness [2].
1073
+ float alphaRoughness = perceptualRoughness * perceptualRoughness;
1074
+
1075
+ vec3 f0 = vec3(0.04);
1076
+ vec3 diffuseColor = baseColor.rgb * (vec3(1.0) - f0);
1077
+ diffuseColor *= 1.0 - metallic;
1078
+ vec3 specularColor = mix(f0, baseColor.rgb, metallic);
1079
+
1080
+ // Compute reflectance.
1081
+ float reflectance = max(max(specularColor.r, specularColor.g), specularColor.b);
1082
+
1083
+ // For typical incident reflectance range (between 4% to 100%) set the grazing
1084
+ // reflectance to 100% for typical fresnel effect.
1085
+ // For very low reflectance range on highly diffuse objects (below 4%),
1086
+ // incrementally reduce grazing reflecance to 0%.
1087
+ float reflectance90 = clamp(reflectance * 25.0, 0.0, 1.0);
1088
+ vec3 specularEnvironmentR0 = specularColor.rgb;
1089
+ vec3 specularEnvironmentR90 = vec3(1.0, 1.0, 1.0) * reflectance90;
1090
+
1091
+ vec3 n = getNormal(); // normal at surface point
1092
+ vec3 v = normalize(u_Camera - pbr_vPosition); // Vector from surface point to camera
1093
+
1094
+ float NdotV = clamp(abs(dot(n, v)), 0.001, 1.0);
1095
+ vec3 reflection = -normalize(reflect(v, n));
1096
+
1097
+ PBRInfo pbrInputs = PBRInfo(
1098
+ 0.0, // NdotL
1099
+ NdotV,
1100
+ 0.0, // NdotH
1101
+ 0.0, // LdotH
1102
+ 0.0, // VdotH
1103
+ perceptualRoughness,
1104
+ metallic,
1105
+ specularEnvironmentR0,
1106
+ specularEnvironmentR90,
1107
+ alphaRoughness,
1108
+ diffuseColor,
1109
+ specularColor,
1110
+ n,
1111
+ v
1112
+ );
1113
+
1114
+ #ifdef USE_LIGHTS
1115
+ // Apply ambient light
1116
+ PBRInfo_setAmbientLight(pbrInputs);
1117
+ color += calculateFinalColor(pbrInputs, lighting_uAmbientLight.color);
1118
+
1119
+ // Apply directional light
1120
+ SMART_FOR(int i = 0, i < MAX_LIGHTS, i < lighting_uDirectionalLightCount, i++) {
1121
+ if (i < lighting_uDirectionalLightCount) {
1122
+ PBRInfo_setDirectionalLight(pbrInputs, lighting_uDirectionalLight[i].direction);
1123
+ color += calculateFinalColor(pbrInputs, lighting_uDirectionalLight[i].color);
1124
+ }
1125
+ }
1126
+
1127
+ // Apply point light
1128
+ SMART_FOR(int i = 0, i < MAX_LIGHTS, i < lighting_uPointLightCount, i++) {
1129
+ if (i < lighting_uPointLightCount) {
1130
+ PBRInfo_setPointLight(pbrInputs, lighting_uPointLight[i]);
1131
+ float attenuation = getPointLightAttenuation(lighting_uPointLight[i], distance(lighting_uPointLight[i].position, pbr_vPosition));
1132
+ color += calculateFinalColor(pbrInputs, lighting_uPointLight[i].color / attenuation);
1133
+ }
1134
+ }
1135
+ #endif
1136
+
1137
+ // Calculate lighting contribution from image based lighting source (IBL)
1138
+ #ifdef USE_IBL
1139
+ color += getIBLContribution(pbrInputs, n, reflection);
1140
+ #endif
1141
+
1142
+ // Apply optional PBR terms for additional (optional) shading
1143
+ #ifdef HAS_OCCLUSIONMAP
1144
+ float ao = texture2D(u_OcclusionSampler, pbr_vUV).r;
1145
+ color = mix(color, color * ao, u_OcclusionStrength);
1146
+ #endif
1147
+
1148
+ #ifdef HAS_EMISSIVEMAP
1149
+ vec3 emissive = SRGBtoLINEAR(texture2D(u_EmissiveSampler, pbr_vUV)).rgb * u_EmissiveFactor;
1150
+ color += emissive;
1151
+ #endif
1152
+
1153
+ // This section uses mix to override final color for reference app visualization
1154
+ // of various parameters in the lighting equation.
1155
+ #ifdef PBR_DEBUG
1156
+ // TODO: Figure out how to debug multiple lights
1157
+
1158
+ // color = mix(color, F, u_ScaleFGDSpec.x);
1159
+ // color = mix(color, vec3(G), u_ScaleFGDSpec.y);
1160
+ // color = mix(color, vec3(D), u_ScaleFGDSpec.z);
1161
+ // color = mix(color, specContrib, u_ScaleFGDSpec.w);
1162
+
1163
+ // color = mix(color, diffuseContrib, u_ScaleDiffBaseMR.x);
1164
+ color = mix(color, baseColor.rgb, u_ScaleDiffBaseMR.y);
1165
+ color = mix(color, vec3(metallic), u_ScaleDiffBaseMR.z);
1166
+ color = mix(color, vec3(perceptualRoughness), u_ScaleDiffBaseMR.w);
1167
+ #endif
1168
+
1169
+ }
1170
+
1171
+ return vec4(pow(color,vec3(1.0/2.2)), baseColor.a);
1172
+ }
1173
+ `])));var ti={name:"pbr",vs:qs,fs:$s,defines:{LIGHTING_FRAGMENT:1},dependencies:[ks]};var Qs=function(){function e(r){C(this,e),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=r.id||ue("geometry"),this.topology=r.topology,this.indices=r.indices||null,this.attributes=r.attributes,this.vertexCount=r.vertexCount,this.bufferLayout=r.bufferLayout||[],this.indices&&w(this.indices.usage===re.INDEX)}var t=e.prototype;return t.destroy=function(){var n;this.indices.destroy(),this.attributes.positions.destroy(),this.attributes.normals.destroy(),this.attributes.texCoords.destroy(),(n=this.attributes.colors)===null||n===void 0||n.destroy()},t.getVertexCount=function(){return this.vertexCount},t.getAttributes=function(){return this.attributes},t.getIndexes=function(){return this.indices},t._calculateVertexCount=function(n){var i=n.byteLength/12;return i},M(e)}();function Js(e,t){if(t instanceof Qs)return t;var r=p_(e,t),n=d_(e,t),i=n.attributes,o=n.bufferLayout;return new Qs({topology:t.topology||"triangle-list",bufferLayout:o,vertexCount:t.vertexCount,indices:r,attributes:i})}function p_(e,t){if(t.indices){var r=t.indices.value;return e.createBuffer({usage:re.INDEX,data:r})}}function d_(e,t){for(var r=[],n={},i=0,o=Object.entries(t.attributes);i<o.length;i++){var a=L(o[i],2),c=a[0],f=a[1],u=c;switch(c){case"POSITION":u="positions";break;case"NORMAL":u="normals";break;case"TEXCOORD_0":u="texCoords";break}n[u]=e.createBuffer({data:f.value,id:"".concat(c,"-buffer")}),r.push({name:u,format:"float32x".concat(f.size)})}var _=t._calculateVertexCount(t.attributes,t.indices);return{attributes:n,bufferLayout:r,vertexCount:_}}function ec(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter(function(i){return Object.getOwnPropertyDescriptor(e,i).enumerable})),r.push.apply(r,n)}return r}function Ve(e){for(var t=1;t<arguments.length;t++){var r=arguments[t]!=null?arguments[t]:{};t%2?ec(Object(r),!0).forEach(function(n){l(e,n,r[n])}):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(r)):ec(Object(r)).forEach(function(n){Object.defineProperty(e,n,Object.getOwnPropertyDescriptor(r,n))})}return e}var ri=function(){e.getDefaultPipelineFactory=function(n){return n._lumaData.defaultPipelineFactory=n._lumaData.defaultPipelineFactory||new e(n),n._lumaData.defaultPipelineFactory};function e(r){C(this,e),this.device=void 0,this._hashCounter=0,this._hashes={},this._useCounts={},this._pipelineCache={},this.device=r}var t=e.prototype;return t.createRenderPipeline=function(n){var i=Ve(Ve({},e.defaultProps),n),o=this._hashRenderPipeline(Ve({},i));if(!this._pipelineCache[o]){var a=this.device.createRenderPipeline(Ve(Ve({},i),{},{vs:this.device.createShader({stage:"vertex",source:i.vs}),fs:i.fs?this.device.createShader({stage:"fragment",source:i.fs}):null}));a.hash=o,this._pipelineCache[o]=a,this._useCounts[o]=0}return this._useCounts[o]++,this._pipelineCache[o]},t.release=function(n){var i=n.hash;this._useCounts[i]--,this._useCounts[i]===0&&(this._pipelineCache[i].destroy(),delete this._pipelineCache[i],delete this._useCounts[i])},t._createRenderPipeline=function(n){if(!n.fs)throw new Error("fs");var i=this.device.createRenderPipeline(Ve(Ve({},n),{},{vs:this.device.createShader({stage:"vertex",source:n.vs}),fs:n.fs?this.device.createShader({stage:"fragment",source:n.fs}):null}));return i},t._hashRenderPipeline=function(n){var i=this._getHash(n.vs),o=n.fs?this._getHash(n.fs):0,a="-";switch(this.device.info.type){case"webgpu":var c=this._getHash(JSON.stringify(n.parameters)),f=this._getHash(JSON.stringify(n.bufferLayout));return"".concat(i,"/").concat(o,"V").concat(a,"T").concat(n.topology,"P").concat(c,"BL").concat(f,"}");default:return"".concat(i,"/").concat(o,"V").concat(a)}},t._getHash=function(n){return this._hashes[n]===void 0&&(this._hashes[n]=this._hashCounter++),this._hashes[n]},M(e)}();ri.defaultProps=Ve(Ve({},ze.defaultProps),{},{vs:void 0,fs:void 0});function ic(e,t){var r=typeof Symbol<"u"&&e[Symbol.iterator]||e["@@iterator"];if(!r){if(Array.isArray(e)||(r=h_(e))||t&&e&&typeof e.length=="number"){r&&(e=r);var n=0,i=function(){};return{s:i,n:function(){return n>=e.length?{done:!0}:{done:!1,value:e[n++]}},e:function(u){throw u},f:i}}throw new TypeError(`Invalid attempt to iterate non-iterable instance.
1174
+ In order to be iterable, non-array objects must have a [Symbol.iterator]() method.`)}var o=!0,a=!1,c;return{s:function(){r=r.call(e)},n:function(){var u=r.next();return o=u.done,u},e:function(u){a=!0,c=u},f:function(){try{!o&&r.return!=null&&r.return()}finally{if(a)throw c}}}}function h_(e,t){if(e){if(typeof e=="string")return tc(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 tc(e,t)}}function tc(e,t){(t==null||t>e.length)&&(t=e.length);for(var r=0,n=new Array(t);r<t;r++)n[r]=e[r];return n}function rc(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter(function(i){return Object.getOwnPropertyDescriptor(e,i).enumerable})),r.push.apply(r,n)}return r}function Nt(e){for(var t=1;t<arguments.length;t++){var r=arguments[t]!=null?arguments[t]:{};t%2?rc(Object(r),!0).forEach(function(n){l(e,n,r[n])}):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(r)):rc(Object(r)).forEach(function(n){Object.defineProperty(e,n,Object.getOwnPropertyDescriptor(r,n))})}return e}var kr=function(){function e(r,n){C(this,e),this.device=void 0,this.id=void 0,this.vs=void 0,this.fs=void 0,this.pipelineFactory=void 0,this.userData={},this.parameters=void 0,this.topology=void 0,this.bufferLayout=void 0,this.vertexCount=void 0,this.instanceCount=0,this.indexBuffer=null,this.bufferAttributes={},this.constantAttributes={},this.bindings={},this.uniforms={},this.pipeline=void 0,this.vertexArray=void 0,this._pipelineNeedsUpdate="newly created",this._attributeInfos={},this._gpuGeometry=null,this._getModuleUniforms=void 0,this.props=void 0,this.props=Nt(Nt({},e.defaultProps),n),n=this.props,this.id=n.id||ue("model"),this.device=r,Object.assign(this.userData,n.userData);var i={type:r.info.type,shaderLanguage:r.info.shadingLanguages[0],gpu:r.info.gpu,features:r.features},o=this.props.shaderAssembler.assembleShaders(i,this.props),a=o.vs,c=o.fs,f=o.getUniforms;if(this.vs=a,this.fs=c,this._getModuleUniforms=f,this.vertexCount=this.props.vertexCount,this.instanceCount=this.props.instanceCount,this.topology=this.props.topology,this.bufferLayout=this.props.bufferLayout,this.parameters=this.props.parameters,n.geometry&&(this._gpuGeometry=this.setGeometry(n.geometry)),this.pipelineFactory=n.pipelineFactory||ri.getDefaultPipelineFactory(this.device),this.pipeline=this._updatePipeline(),this.vertexArray=r.createVertexArray({renderPipeline:this.pipeline}),this._gpuGeometry&&this._setGeometryAttributes(this._gpuGeometry),n.vertexCount&&this.setVertexCount(n.vertexCount),n.instanceCount&&this.setInstanceCount(n.instanceCount),n.indices)throw new Error("Model.props.indices removed. Use props.indexBuffer");n.indexBuffer&&this.setIndexBuffer(n.indexBuffer),n.attributes&&this.setAttributes(n.attributes),n.constantAttributes&&this.setConstantAttributes(n.constantAttributes),n.bindings&&this.setBindings(n.bindings),n.uniforms&&this.setUniforms(n.uniforms),n.moduleSettings&&this.updateModuleSettings(n.moduleSettings),this.setUniforms(this._getModuleUniforms()),Object.seal(this)}var t=e.prototype;return t.destroy=function(){this.pipelineFactory.release(this.pipeline)},t.draw=function(n){this.pipeline=this._updatePipeline(),this.pipeline.setBindings(this.bindings),this.pipeline.setUniforms(this.uniforms),this.pipeline.draw({renderPass:n,vertexArray:this.vertexArray,vertexCount:this.vertexCount,instanceCount:this.instanceCount})},t.setGeometry=function(n){var i=n&&Js(this.device,n);return this.setTopology(i.topology||"triangle-list"),this.bufferLayout=nc(this.bufferLayout,i.bufferLayout),this.vertexArray&&this._setGeometryAttributes(i),i},t._setGeometryAttributes=function(n){this.vertexCount=n.vertexCount,this.setAttributes(n.attributes),this.setIndexBuffer(n.indices)},t.setTopology=function(n){n!==this.topology&&(this.topology=n,this._setPipelineNeedsUpdate("topology"))},t.setBufferLayout=function(n){this.bufferLayout=this._gpuGeometry?nc(n,this._gpuGeometry.bufferLayout):n,this._setPipelineNeedsUpdate("bufferLayout"),this.pipeline=this._updatePipeline(),this.vertexArray=this.device.createVertexArray({renderPipeline:this.pipeline}),this._gpuGeometry&&this._setGeometryAttributes(this._gpuGeometry)},t.setParameters=function(n){Yt(n,this.parameters,2)||(this.parameters=n,this._setPipelineNeedsUpdate("parameters"))},t.setVertexCount=function(n){this.vertexCount=n},t.setInstanceCount=function(n){this.instanceCount=n},t.setShaderModuleProps=function(n){var i=jt(this._getModuleUniforms(n)),o=i.bindings,a=i.uniforms;Object.assign(this.bindings,o),Object.assign(this.uniforms,a)},t.updateModuleSettings=function(n){this.setShaderModuleProps(n)},t.setBindings=function(n){Object.assign(this.bindings,n)},t.setUniforms=function(n){this.pipeline.setUniforms(n),Object.assign(this.uniforms,n)},t.setIndexBuffer=function(n){this.vertexArray.setIndexBuffer(n)},t.setAttributes=function(n){var i=this;n.indices&&F.warn("Model:".concat(this.id," setAttributes() - indexBuffer should be set using setIndexBuffer()"));for(var o=function(){var _,E=L(c[a],2),p=E[0],d=E[1],h=i.bufferLayout.find(function(x){return x.name===p});if(!h)return"continue";var m=h.attributes?(_=h.attributes)===null||_===void 0?void 0:_.map(function(x){return x.attribute}):[h.name],A=!1,g=ic(m),y;try{for(g.s();!(y=g.n()).done;){var b=y.value,S=i._attributeInfos[b];S&&(i.vertexArray.setBuffer(S.location,d),A=!0)}}catch(x){g.e(x)}finally{g.f()}A||F.warn("Model(".concat(i.id,'): Ignoring buffer "').concat(d.id,'" for unknown attribute "').concat(p,'"'))()},a=0,c=Object.entries(n);a<c.length;a++)var f=o()},t.setConstantAttributes=function(n){for(var i=0,o=Object.entries(n);i<o.length;i++){var a=L(o[i],2),c=a[0],f=a[1],u=this._attributeInfos[c];u?this.vertexArray.setConstant(u.location,f):F.warn('Model "'.concat(this.id,': Ignoring constant supplied for unknown attribute "').concat(c,'"'))()}},t._setPipelineNeedsUpdate=function(n){this._pipelineNeedsUpdate=this._pipelineNeedsUpdate||n},t._updatePipeline=function(){return this._pipelineNeedsUpdate&&(this.pipeline&&F.log(1,"Model ".concat(this.id,': Recreating pipeline because "').concat(this._pipelineNeedsUpdate,'".'))(),this._pipelineNeedsUpdate=!1,this.pipeline=this.device.createRenderPipeline(Nt(Nt({},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=Fr(this.pipeline.shaderLayout,this.bufferLayout)),this.pipeline},M(e)}();kr.defaultProps=Nt(Nt({},ze.defaultProps),{},{vs:null,fs:null,id:"unnamed",handle:void 0,userData:{},defines:{},modules:[],moduleSettings:{},geometry:null,indexBuffer:null,attributes:{},constantAttributes:{},pipelineFactory:void 0,shaderAssembler:Hr.getDefaultShaderAssembler()});function nc(e,t){var r=Z(e),n=ic(t),i;try{var o=function(){var c=i.value,f=r.findIndex(function(u){return u.name===c.name});f<0?r.push(c):r[f]=c};for(n.s();!(i=n.n()).done;)o()}catch(a){n.e(a)}finally{n.f()}return r}function oc(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter(function(i){return Object.getOwnPropertyDescriptor(e,i).enumerable})),r.push.apply(r,n)}return r}function m_(e){for(var t=1;t<arguments.length;t++){var r=arguments[t]!=null?arguments[t]:{};t%2?oc(Object(r),!0).forEach(function(n){l(e,n,r[n])}):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(r)):oc(Object(r)).forEach(function(n){Object.defineProperty(e,n,Object.getOwnPropertyDescriptor(r,n))})}return e}var ni=function(){function e(r){C(this,e),this.id=void 0,this.topology=void 0,this.vertexCount=void 0,this.indices=void 0,this.attributes=void 0,this.userData={};var n=r.attributes,i=n===void 0?{}:n,o=r.indices,a=o===void 0?null:o,c=r.vertexCount,f=c===void 0?null:c;this.id=r.id||ue("geometry"),this.topology=r.topology,a&&(this.indices=ArrayBuffer.isView(a)?{value:a,size:1}:a),this.attributes={};for(var u=0,_=Object.entries(i);u<_.length;u++){var E=L(_[u],2),p=E[0],d=E[1],h=ArrayBuffer.isView(d)?{value:d}:d;w(ArrayBuffer.isView(h.value),"".concat(this._print(p),": must be typed array or object with value as typed array")),(p==="POSITION"||p==="positions")&&!h.size&&(h.size=3),p==="indices"?(w(!this.indices),this.indices=h):this.attributes[p]=h}this.indices&&this.indices.isIndexed!==void 0&&(this.indices=Object.assign({},this.indices),delete this.indices.isIndexed),this.vertexCount=f||this._calculateVertexCount(this.attributes,this.indices)}var t=e.prototype;return t.getVertexCount=function(){return this.vertexCount},t.getAttributes=function(){return this.indices?m_({indices:this.indices},this.attributes):this.attributes},t._print=function(n){return"Geometry ".concat(this.id," attribute ").concat(n)},t._setAttributes=function(n,i){return this},t._calculateVertexCount=function(n,i){if(i)return i.value.length;for(var o=1/0,a=0,c=Object.values(n);a<c.length;a++){var f=c[a],u=f.value,_=f.size,E=f.constant;!E&&u&&_>=1&&(o=Math.min(o,u.length/_))}return w(Number.isFinite(o)),o},M(e)}();var er=function(){function e(){var r=arguments.length>0&&arguments[0]!==void 0?arguments[0]:{};C(this,e),this.id=void 0,this.matrix=new me,this.display=!0,this.position=new Se,this.rotation=new Se,this.scale=new Se(1,1,1),this.userData={},this.props={};var n=r.id;this.id=n||ue(this.constructor.name),this._setScenegraphNodeProps(r)}var t=e.prototype;return t.getBounds=function(){return null},t.destroy=function(){},t.delete=function(){this.destroy()},t.setProps=function(n){return this._setScenegraphNodeProps(n),this},t.toString=function(){return"{type: ScenegraphNode, id: ".concat(this.id,")}")},t.setPosition=function(n){return w(n.length===3,"setPosition requires vector argument"),this.position=n,this},t.setRotation=function(n){return w(n.length===3,"setRotation requires vector argument"),this.rotation=n,this},t.setScale=function(n){return w(n.length===3,"setScale requires vector argument"),this.scale=n,this},t.setMatrix=function(n){var i=arguments.length>1&&arguments[1]!==void 0?arguments[1]:!0;i?this.matrix.copy(n):this.matrix=n},t.setMatrixComponents=function(n){var i=n.position,o=n.rotation,a=n.scale,c=n.update,f=c===void 0?!0:c;return i&&this.setPosition(i),o&&this.setRotation(o),a&&this.setScale(a),f&&this.updateMatrix(),this},t.updateMatrix=function(){var n=this.position,i=this.rotation,o=this.scale;return this.matrix.identity(),this.matrix.translate(n),this.matrix.rotateXYZ(i),this.matrix.scale(o),this},t.update=function(){var n=arguments.length>0&&arguments[0]!==void 0?arguments[0]:{},i=n.position,o=n.rotation,a=n.scale;return i&&this.setPosition(i),o&&this.setRotation(o),a&&this.setScale(a),this.updateMatrix(),this},t.getCoordinateUniforms=function(n,i){w(n),i=i||this.matrix;var o=new me(n).multiplyRight(i),a=o.invert(),c=a.transpose();return{viewMatrix:n,modelMatrix:i,objectMatrix:i,worldMatrix:o,worldInverseMatrix:a,worldInverseTransposeMatrix:c}},t._setScenegraphNodeProps=function(n){"display"in n&&(this.display=n.display),"position"in n&&this.setPosition(n.position),"rotation"in n&&this.setRotation(n.rotation),"scale"in n&&this.setScale(n.scale),"matrix"in n&&this.setMatrix(n.matrix),Object.assign(this.props,n)},M(e)}();function ii(e,t){for(;!Object.prototype.hasOwnProperty.call(e,t)&&(e=I(e),e!==null););return e}function Pe(){return typeof Reflect<"u"&&Reflect.get?Pe=Reflect.get.bind():Pe=function(t,r,n){var i=ii(t,r);if(i){var o=Object.getOwnPropertyDescriptor(i,r);return o.get?o.get.call(arguments.length<3?t:n):o.value}},Pe.apply(this,arguments)}function R_(e,t){var r=typeof Symbol<"u"&&e[Symbol.iterator]||e["@@iterator"];if(!r){if(Array.isArray(e)||(r=A_(e))||t&&e&&typeof e.length=="number"){r&&(e=r);var n=0,i=function(){};return{s:i,n:function(){return n>=e.length?{done:!0}:{done:!1,value:e[n++]}},e:function(u){throw u},f:i}}throw new TypeError(`Invalid attempt to iterate non-iterable instance.
1175
+ In order to be iterable, non-array objects must have a [Symbol.iterator]() method.`)}var o=!0,a=!1,c;return{s:function(){r=r.call(e)},n:function(){var u=r.next();return o=u.done,u},e:function(u){a=!0,c=u},f:function(){try{!o&&r.return!=null&&r.return()}finally{if(a)throw c}}}}function A_(e,t){if(e){if(typeof e=="string")return ac(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 ac(e,t)}}function ac(e,t){(t==null||t>e.length)&&(t=e.length);for(var r=0,n=new Array(t);r<t;r++)n[r]=e[r];return n}function g_(e){var t=T_();return function(){var n=I(e),i;if(t){var o=I(this).constructor;i=Reflect.construct(n,arguments,o)}else i=n.apply(this,arguments);return X(this,i)}}function T_(){if(typeof Reflect>"u"||!Reflect.construct||Reflect.construct.sham)return!1;if(typeof Proxy=="function")return!0;try{return Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],function(){})),!0}catch{return!1}}var tr=function(e){H(r,e);var t=g_(r);function r(){var i,o=arguments.length>0&&arguments[0]!==void 0?arguments[0]:{};C(this,r),o=Array.isArray(o)?{children:o}:o;var a=o,c=a.children,f=c===void 0?[]:c;return F.assert(f.every(function(u){return u instanceof er}),"every child must an instance of ScenegraphNode"),i=t.call(this,o),i.children=void 0,i.children=f,i}var n=r.prototype;return n.getBounds=function(){var o=[[1/0,1/0,1/0],[-1/0,-1/0,-1/0]];return this.traverse(function(a,c){var f=c.worldMatrix,u=a.getBounds();if(u){var _=L(u,2),E=_[0],p=_[1],d=new Se(E).add(p).divide([2,2,2]);f.transformAsPoint(d,d);var h=new Se(p).subtract(E).divide([2,2,2]);f.transformAsVector(h,h);for(var m=0;m<8;m++)for(var A=new Se(m&1?-1:1,m&2?-1:1,m&4?-1:1).multiply(h).add(d),g=0;g<3;g++)o[0][g]=Math.min(o[0][g],A[g]),o[1][g]=Math.max(o[1][g],A[g])}}),Number.isFinite(o[0][0])?o:null},n.destroy=function(){this.children.forEach(function(o){return o.destroy()}),this.removeAll(),Pe(I(r.prototype),"destroy",this).call(this)},n.add=function(){for(var o=arguments.length,a=new Array(o),c=0;c<o;c++)a[c]=arguments[c];for(var f=0,u=a;f<u.length;f++){var _=u[f];Array.isArray(_)?this.add.apply(this,Z(_)):this.children.push(_)}return this},n.remove=function(o){var a=this.children,c=a.indexOf(o);return c>-1&&a.splice(c,1),this},n.removeAll=function(){return this.children=[],this},n.traverse=function(o){var a=arguments.length>1&&arguments[1]!==void 0?arguments[1]:{},c=a.worldMatrix,f=c===void 0?new me:c,u=new me(f).multiplyRight(this.matrix),_=R_(this.children),E;try{for(_.s();!(E=_.n()).done;){var p=E.value;p instanceof r?p.traverse(o,{worldMatrix:u}):o(p,{worldMatrix:u})}}catch(d){_.e(d)}finally{_.f()}},M(r)}(er);function v_(e){var t=S_();return function(){var n=I(e),i;if(t){var o=I(this).constructor;i=Reflect.construct(n,arguments,o)}else i=n.apply(this,arguments);return X(this,i)}}function S_(){if(typeof Reflect>"u"||!Reflect.construct||Reflect.construct.sham)return!1;if(typeof Proxy=="function")return!0;try{return Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],function(){})),!0}catch{return!1}}var oi=function(e){H(r,e);var t=v_(r);function r(i){var o;return C(this,r),o=t.call(this,i),o.model=void 0,o.bounds=null,o.managedResources=void 0,o.model=i.model,o.managedResources=i.managedResources||[],o.bounds=i.bounds||null,o.setProps(i),o}var n=r.prototype;return n.getBounds=function(){return this.bounds},n.destroy=function(){this.model&&(this.model.destroy(),this.model=null),this.managedResources.forEach(function(o){return o.destroy()}),this.managedResources=[]},n.draw=function(o){return this.model.draw(o)},M(r)}(er);function sc(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter(function(i){return Object.getOwnPropertyDescriptor(e,i).enumerable})),r.push.apply(r,n)}return r}function cc(e){for(var t=1;t<arguments.length;t++){var r=arguments[t]!=null?arguments[t]:{};t%2?sc(Object(r),!0).forEach(function(n){l(e,n,r[n])}):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(r)):sc(Object(r)).forEach(function(n){Object.defineProperty(e,n,Object.getOwnPropertyDescriptor(r,n))})}return e}var b_="Failed to create WebGL context in Node.js, headless gl returned null",O_=" 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.",y_={width:1,height:1,debug:!0,throwOnError:!1},ai=null;function fc(){return ai!==null}function uc(e){e=cc(cc({},y_),e);var t=e,r=t.width,n=t.height,i=t.webgl1,o=t.webgl2;if(o&&!i)throw new Error("headless-gl does not support WebGL2");if(!ai)throw new Error(O_);var a=ai(r,n,e);if(!a)throw new Error(b_);return a}var Di=nt(ke(),1);var rr={};function N_(e){globalThis.console&&globalThis.console.error&&globalThis.console.error(e)}function I_(e){globalThis.console&&globalThis.console.log&&globalThis.console.log(e)}function M_(e,t){rr[e]=!0,t!==void 0&&N_(t)}function C_(e){var t=e.getError;e.getError=function(){var n;do n=t.apply(e),n!==e.NO_ERROR&&(rr[n]=!0);while(n!==e.NO_ERROR);for(n in rr)if(rr[n])return delete rr[n],parseInt(n,10);return e.NO_ERROR}}var nr=function e(t){var r=t.gl;this.ext=t,this.isAlive=!0,this.hasBeenBound=!1,this.elementArrayBuffer=null,this.attribs=new Array(t.maxVertexAttribs);for(var n=0;n<this.attribs.length;n++){var i=new e.VertexAttrib(r);this.attribs[n]=i}this.maxAttrib=0};nr.VertexAttrib=function(t){this.enabled=!1,this.buffer=null,this.size=4,this.type=t.FLOAT,this.normalized=!1,this.stride=16,this.offset=0,this.cached="",this.recache()};nr.VertexAttrib.prototype.recache=function(){this.cached=[this.size,this.type,this.normalized,this.stride,this.offset].join(":")};var ut=function(t){var r=this;this.gl=t,C_(t);var n=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:n.getParameter.apply(this,arguments)},t.enableVertexAttribArray=function(o){var a=r.currentVertexArrayObject;a.maxAttrib=Math.max(a.maxAttrib,o);var c=a.attribs[o];return c.enabled=!0,n.enableVertexAttribArray.apply(this,arguments)},t.disableVertexAttribArray=function(o){var a=r.currentVertexArrayObject;a.maxAttrib=Math.max(a.maxAttrib,o);var c=a.attribs[o];return c.enabled=!1,n.disableVertexAttribArray.apply(this,arguments)},t.bindBuffer=function(o,a){switch(o){case t.ARRAY_BUFFER:r.currentArrayBuffer=a;break;case t.ELEMENT_ARRAY_BUFFER:r.currentVertexArrayObject.elementArrayBuffer=a;break;default:}return n.bindBuffer.apply(this,arguments)},t.getVertexAttrib=function(o,a){var c=r.currentVertexArrayObject,f=c.attribs[o];switch(a){case t.VERTEX_ATTRIB_ARRAY_BUFFER_BINDING:return f.buffer;case t.VERTEX_ATTRIB_ARRAY_ENABLED:return f.enabled;case t.VERTEX_ATTRIB_ARRAY_SIZE:return f.size;case t.VERTEX_ATTRIB_ARRAY_STRIDE:return f.stride;case t.VERTEX_ATTRIB_ARRAY_TYPE:return f.type;case t.VERTEX_ATTRIB_ARRAY_NORMALIZED:return f.normalized;default:return n.getVertexAttrib.apply(this,arguments)}},t.vertexAttribPointer=function(o,a,c,f,u,_){var E=r.currentVertexArrayObject;E.maxAttrib=Math.max(E.maxAttrib,o);var p=E.attribs[o];return p.buffer=r.currentArrayBuffer,p.size=a,p.type=c,p.normalized=f,p.stride=u,p.offset=_,p.recache(),n.vertexAttribPointer.apply(this,arguments)},t.instrumentExtension&&t.instrumentExtension(this,"OES_vertex_array_object"),t.canvas&&t.canvas.addEventListener("webglcontextrestored",function(){I_("OESVertexArrayObject emulation library context restored"),r.reset_()},!0),this.reset_()};ut.prototype.VERTEX_ARRAY_BINDING_OES=34229;ut.prototype.reset_=function(){var t=this.vertexArrayObjects!==void 0;if(t)for(var r=0;r<this.vertexArrayObjects.length;++r)this.vertexArrayObjects.isAlive=!1;var n=this.gl;this.maxVertexAttribs=n.getParameter(n.MAX_VERTEX_ATTRIBS),this.defaultVertexArrayObject=new nr(this),this.currentVertexArrayObject=null,this.currentArrayBuffer=null,this.vertexArrayObjects=[this.defaultVertexArrayObject],this.bindVertexArrayOES(null)};ut.prototype.createVertexArrayOES=function(){var t=new nr(this);return this.vertexArrayObjects.push(t),t};ut.prototype.deleteVertexArrayOES=function(t){t.isAlive=!1,this.vertexArrayObjects.splice(this.vertexArrayObjects.indexOf(t),1),this.currentVertexArrayObject===t&&this.bindVertexArrayOES(null)};ut.prototype.isVertexArrayOES=function(t){return!!(t&&t instanceof nr&&t.hasBeenBound&&t.ext===this)};ut.prototype.bindVertexArrayOES=function(t){var r=this.gl;if(t&&!t.isAlive){M_(r.INVALID_OPERATION,"bindVertexArrayOES: attempt to bind deleted arrayObject");return}var n=this.original,i=this.currentVertexArrayObject;this.currentVertexArrayObject=t||this.defaultVertexArrayObject,this.currentVertexArrayObject.hasBeenBound=!0;var o=this.currentVertexArrayObject;if(i!==o){(!i||o.elementArrayBuffer!==i.elementArrayBuffer)&&n.bindBuffer.call(r,r.ELEMENT_ARRAY_BUFFER,o.elementArrayBuffer);for(var a=this.currentArrayBuffer,c=Math.max(i?i.maxAttrib:0,o.maxAttrib),f=0;f<=c;f++){var u=o.attribs[f],_=i?i.attribs[f]:null;if((!i||u.enabled!==_.enabled)&&(u.enabled?n.enableVertexAttribArray.call(r,f):n.disableVertexAttribArray.call(r,f)),u.enabled){var E=!1;(!i||u.buffer!==_.buffer)&&(a!==u.buffer&&(n.bindBuffer.call(r,r.ARRAY_BUFFER,u.buffer),a=u.buffer),E=!0),(E||u.cached!==_.cached)&&n.vertexAttribPointer.call(r,f,u.size,u.type,u.normalized,u.stride,u.offset)}}this.currentArrayBuffer!==a&&n.bindBuffer.call(r,r.ARRAY_BUFFER,this.currentArrayBuffer)}};function lc(e){if(typeof e.createVertexArray!="function"){var t=e.getSupportedExtensions;e.getSupportedExtensions=function(){var i=t.call(this)||[];return i.indexOf("OES_vertex_array_object")<0&&i.push("OES_vertex_array_object"),i};var r=e.getExtension;e.getExtension=function(i){var o=r.call(this,i);return o||(i!=="OES_vertex_array_object"?null:(e.__OESVertexArrayObject||(this.__OESVertexArrayObject=new ut(this)),this.__OESVertexArrayObject))}}}var P_="Invalid WebGLRenderingContext";var x_="Requires WebGL2";function F_(e){return typeof WebGLRenderingContext<"u"&&e instanceof WebGLRenderingContext||typeof WebGL2RenderingContext<"u"&&e instanceof WebGL2RenderingContext?!0:Boolean(e&&Number.isFinite(e._version))}function Y(e){return typeof WebGL2RenderingContext<"u"&&e instanceof WebGL2RenderingContext?!0:Boolean(e&&e._version===2)}function si(e){return Y(e)?e:null}function _c(e){return w(F_(e),P_),e}function zr(e){return w(Y(e),x_),e}var G,Ec="OES_element_index",pc="WEBGL_draw_buffers",D_="EXT_disjoint_timer_query",B_="EXT_disjoint_timer_query_webgl2",U_="EXT_texture_filter_anisotropic",dc="WEBGL_debug_renderer_info",w_=35723,L_=4352,H_=36795,X_=34047,V_=37445,W_=37446,ee=function(t){return Y(t)?void 0:0},j_=(G={},l(G,s.READ_BUFFER,function(e){return Y(e)?void 0:s.COLOR_ATTACHMENT0}),l(G,w_,function(e){return Y(e)?void 0:L_}),l(G,s.RASTERIZER_DISCARD,ee),l(G,s.SAMPLES,ee),l(G,H_,function(e,t){var r=Y(e)?e.getExtension(B_):e.getExtension(D_);return r&&r.GPU_DISJOINT_EXT?t(r.GPU_DISJOINT_EXT):0}),l(G,V_,function(e,t){var r=e.getExtension(dc);return t(r&&r.UNMASKED_VENDOR_WEBGL||s.VENDOR)}),l(G,W_,function(e,t){var r=e.getExtension(dc);return t(r&&r.UNMASKED_RENDERER_WEBGL||s.RENDERER)}),l(G,X_,function(e,t){var r,n=((r=e.luma)===null||r===void 0||(r=r.extensions)===null||r===void 0?void 0:r[U_])||e.getExtension("EXT_texture_filter_anisotropic");return n?t(n.MAX_TEXTURE_MAX_ANISOTROPY_EXT):1}),l(G,s.MAX_3D_TEXTURE_SIZE,ee),l(G,s.MAX_ARRAY_TEXTURE_LAYERS,ee),l(G,s.MAX_CLIENT_WAIT_TIMEOUT_WEBGL,ee),l(G,s.MAX_COLOR_ATTACHMENTS,function(e,t){if(!Y(e)){var r=e.getExtension(pc);return r?t(r.MAX_COLOR_ATTACHMENTS_WEBGL):0}}),l(G,s.MAX_COMBINED_FRAGMENT_UNIFORM_COMPONENTS,ee),l(G,s.MAX_COMBINED_UNIFORM_BLOCKS,ee),l(G,s.MAX_COMBINED_VERTEX_UNIFORM_COMPONENTS,ee),l(G,s.MAX_DRAW_BUFFERS,function(e){if(!Y(e)){var t=e.getExtension(pc);return t?t.MAX_DRAW_BUFFERS_WEBGL:0}}),l(G,s.MAX_ELEMENT_INDEX,function(e){return e.getExtension(Ec)?2147483647:65535}),l(G,s.MAX_ELEMENTS_INDICES,function(e){return e.getExtension(Ec)?16777216:65535}),l(G,s.MAX_ELEMENTS_VERTICES,function(e){return 16777216}),l(G,s.MAX_FRAGMENT_INPUT_COMPONENTS,ee),l(G,s.MAX_FRAGMENT_UNIFORM_BLOCKS,ee),l(G,s.MAX_FRAGMENT_UNIFORM_COMPONENTS,ee),l(G,s.MAX_SAMPLES,ee),l(G,s.MAX_SERVER_WAIT_TIMEOUT,ee),l(G,s.MAX_TEXTURE_LOD_BIAS,ee),l(G,s.MAX_TRANSFORM_FEEDBACK_INTERLEAVED_COMPONENTS,ee),l(G,s.MAX_TRANSFORM_FEEDBACK_SEPARATE_ATTRIBS,ee),l(G,s.MAX_TRANSFORM_FEEDBACK_SEPARATE_COMPONENTS,ee),l(G,s.MAX_UNIFORM_BLOCK_SIZE,ee),l(G,s.MAX_UNIFORM_BUFFER_BINDINGS,ee),l(G,s.MAX_VARYING_COMPONENTS,ee),l(G,s.MAX_VERTEX_OUTPUT_COMPONENTS,ee),l(G,s.MAX_VERTEX_UNIFORM_BLOCKS,ee),l(G,s.MAX_VERTEX_UNIFORM_COMPONENTS,ee),l(G,s.MIN_PROGRAM_TEXEL_OFFSET,ee),l(G,s.MAX_PROGRAM_TEXEL_OFFSET,ee),l(G,s.UNIFORM_BUFFER_OFFSET_ALIGNMENT,ee),G);function hc(e,t,r){var n=j_[r],i=typeof n=="function"?n(e,t,r):n,o=i!==void 0?i:t(r);return o}function It(e){var t=e.luma;if(!t){var r={_polyfilled:!1,_extensions:{}};e.luma=r}return e.luma}var Mt,G_="OES_vertex_array_object",mc="ANGLE_instanced_arrays",K_="WEBGL_draw_buffers",Y_="EXT_disjoint_timer_query",k_="EXT_texture_filter_anisotropic",z_="VertexArray requires WebGL2 or OES_vertex_array_object extension";function q_(e,t){return{webgl2:Y(e),ext:e.getExtension(t)}}var ci=(Mt={},l(Mt,G_,{meta:{suffix:"OES"},createVertexArray:function(){w(!1,z_)},deleteVertexArray:function(){},bindVertexArray:function(){},isVertexArray:function(){return!1}}),l(Mt,mc,{meta:{suffix:"ANGLE"},vertexAttribDivisor:function(t,r){w(r===0,"WebGL instanced rendering not supported")},drawElementsInstanced:function(){},drawArraysInstanced:function(){}}),l(Mt,K_,{meta:{suffix:"WEBGL"},drawBuffers:function(){w(!1)}}),l(Mt,Y_,{meta:{suffix:"EXT"},createQuery:function(){w(!1)},deleteQuery:function(){w(!1)},beginQuery:function(){w(!1)},endQuery:function(){},getQuery:function(t,r){return this.getQueryObject(t,r)},getQueryParameter:function(t,r){return this.getQueryObject(t,r)},getQueryObject:function(t,r){}}),Mt),qr={readBuffer:function(t,r,n){Y(t)&&r(n)},getVertexAttrib:function(t,r,n,i){var o=q_(t,mc),a=o.webgl2,c=o.ext,f;switch(i){case s.VERTEX_ATTRIB_ARRAY_INTEGER:f=a?void 0:!1;break;case s.VERTEX_ATTRIB_ARRAY_DIVISOR:f=!a&&!c?0:void 0;break;default:}return f!==void 0?f:r(n,i)},getProgramParameter:function(t,r,n,i){if(!Y(t))switch(i){case s.TRANSFORM_FEEDBACK_BUFFER_MODE:return s.SEPARATE_ATTRIBS;case s.TRANSFORM_FEEDBACK_VARYINGS:return 0;case s.ACTIVE_UNIFORM_BLOCKS:return 0;default:}return r(n,i)},getInternalformatParameter:function(t,r,n,i,o){if(!Y(t))switch(o){case s.SAMPLES:return new Int32Array([0]);default:}var a=t;return a.getInternalformatParameter(n,i,o)},getTexParameter:function(t,r,n,i){switch(i){case s.TEXTURE_MAX_ANISOTROPY_EXT:var o=It(t),a=o._extensions,c=a[k_];i=c&&c.TEXTURE_MAX_ANISOTROPY_EXT||s.TEXTURE_MAX_ANISOTROPY_EXT;break;default:}return r(n,i)},getParameter:hc,hint:function(t,r,n,i){return r(n,i)}};function Ac(e,t){var r=typeof Symbol<"u"&&e[Symbol.iterator]||e["@@iterator"];if(!r){if(Array.isArray(e)||(r=Z_(e))||t&&e&&typeof e.length=="number"){r&&(e=r);var n=0,i=function(){};return{s:i,n:function(){return n>=e.length?{done:!0}:{done:!1,value:e[n++]}},e:function(u){throw u},f:i}}throw new TypeError(`Invalid attempt to iterate non-iterable instance.
1176
+ In order to be iterable, non-array objects must have a [Symbol.iterator]() method.`)}var o=!0,a=!1,c;return{s:function(){r=r.call(e)},n:function(){var u=r.next();return o=u.done,u},e:function(u){a=!0,c=u},f:function(){try{!o&&r.return!=null&&r.return()}finally{if(a)throw c}}}}function Z_(e,t){if(e){if(typeof e=="string")return Rc(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 Rc(e,t)}}function Rc(e,t){(t==null||t>e.length)&&(t=e.length);for(var r=0,n=new Array(t);r<t;r++)n[r]=e[r];return n}function gc(e){var t=It(e);return t._polyfilled||(lc(e),$_(e),Q_(e,ci),eE(e,{target:t,target2:e}),t._polyfilled=!0),e}function $_(e){var t=It(e),r=e.getSupportedExtensions()||[],n=Ac(r),i;try{for(n.s();!(i=n.n()).done;){var o=i.value,a=e.getExtension(o);t._extensions[o]=a}}catch(c){n.e(c)}finally{n.f()}}function Q_(e,t){var r=It(e),n=Ac(Object.getOwnPropertyNames(t)),i;try{for(n.s();!(i=n.n()).done;){var o=i.value;o!=="overrides"&&J_(e,{extension:o,target:r,target2:e})}}catch(a){n.e(a)}finally{n.f()}}function J_(e,t){var r=t.extension,n=t.target,i=t.target2,o=ci[r];w(o);for(var a=o.meta,c=a===void 0?{}:a,f=c.suffix,u=f===void 0?"":f,_=e.getExtension(r),E=function(){var m=d[p],A="".concat(m).concat(u),g=null;m==="meta"||typeof e[m]=="function"||(_&&typeof _[A]=="function"?g=function(){return _[A].apply(_,arguments)}:typeof o[m]=="function"&&(g=o[m].bind(n))),g&&(n[m]=g,i[m]=g)},p=0,d=Object.keys(o);p<d.length;p++)E()}function eE(e,t){var r=t.target,n=t.target2;Object.keys(qr).forEach(function(i){if(typeof qr[i]=="function"){var o=e[i]?e[i].bind(e):function(){},a=qr[i].bind(null,e,o);r[i]=a,n[i]=a}})}var D,v,ye,Zr=(D={},l(D,s.BLEND,!1),l(D,s.BLEND_COLOR,new Float32Array([0,0,0,0])),l(D,s.BLEND_EQUATION_RGB,s.FUNC_ADD),l(D,s.BLEND_EQUATION_ALPHA,s.FUNC_ADD),l(D,s.BLEND_SRC_RGB,s.ONE),l(D,s.BLEND_DST_RGB,s.ZERO),l(D,s.BLEND_SRC_ALPHA,s.ONE),l(D,s.BLEND_DST_ALPHA,s.ZERO),l(D,s.COLOR_CLEAR_VALUE,new Float32Array([0,0,0,0])),l(D,s.COLOR_WRITEMASK,[!0,!0,!0,!0]),l(D,s.CULL_FACE,!1),l(D,s.CULL_FACE_MODE,s.BACK),l(D,s.DEPTH_TEST,!1),l(D,s.DEPTH_CLEAR_VALUE,1),l(D,s.DEPTH_FUNC,s.LESS),l(D,s.DEPTH_RANGE,new Float32Array([0,1])),l(D,s.DEPTH_WRITEMASK,!0),l(D,s.DITHER,!0),l(D,s.CURRENT_PROGRAM,null),l(D,s.FRAMEBUFFER_BINDING,null),l(D,s.RENDERBUFFER_BINDING,null),l(D,s.VERTEX_ARRAY_BINDING,null),l(D,s.ARRAY_BUFFER_BINDING,null),l(D,s.FRONT_FACE,s.CCW),l(D,s.GENERATE_MIPMAP_HINT,s.DONT_CARE),l(D,s.LINE_WIDTH,1),l(D,s.POLYGON_OFFSET_FILL,!1),l(D,s.POLYGON_OFFSET_FACTOR,0),l(D,s.POLYGON_OFFSET_UNITS,0),l(D,s.SAMPLE_ALPHA_TO_COVERAGE,!1),l(D,s.SAMPLE_COVERAGE,!1),l(D,s.SAMPLE_COVERAGE_VALUE,1),l(D,s.SAMPLE_COVERAGE_INVERT,!1),l(D,s.SCISSOR_TEST,!1),l(D,s.SCISSOR_BOX,new Int32Array([0,0,1024,1024])),l(D,s.STENCIL_TEST,!1),l(D,s.STENCIL_CLEAR_VALUE,0),l(D,s.STENCIL_WRITEMASK,4294967295),l(D,s.STENCIL_BACK_WRITEMASK,4294967295),l(D,s.STENCIL_FUNC,s.ALWAYS),l(D,s.STENCIL_REF,0),l(D,s.STENCIL_VALUE_MASK,4294967295),l(D,s.STENCIL_BACK_FUNC,s.ALWAYS),l(D,s.STENCIL_BACK_REF,0),l(D,s.STENCIL_BACK_VALUE_MASK,4294967295),l(D,s.STENCIL_FAIL,s.KEEP),l(D,s.STENCIL_PASS_DEPTH_FAIL,s.KEEP),l(D,s.STENCIL_PASS_DEPTH_PASS,s.KEEP),l(D,s.STENCIL_BACK_FAIL,s.KEEP),l(D,s.STENCIL_BACK_PASS_DEPTH_FAIL,s.KEEP),l(D,s.STENCIL_BACK_PASS_DEPTH_PASS,s.KEEP),l(D,s.VIEWPORT,[0,0,1024,1024]),l(D,s.PACK_ALIGNMENT,4),l(D,s.UNPACK_ALIGNMENT,4),l(D,s.UNPACK_FLIP_Y_WEBGL,!1),l(D,s.UNPACK_PREMULTIPLY_ALPHA_WEBGL,!1),l(D,s.UNPACK_COLORSPACE_CONVERSION_WEBGL,s.BROWSER_DEFAULT_WEBGL),l(D,s.TRANSFORM_FEEDBACK_BINDING,null),l(D,s.COPY_READ_BUFFER_BINDING,null),l(D,s.COPY_WRITE_BUFFER_BINDING,null),l(D,s.PIXEL_PACK_BUFFER_BINDING,null),l(D,s.PIXEL_UNPACK_BUFFER_BINDING,null),l(D,s.FRAGMENT_SHADER_DERIVATIVE_HINT,s.DONT_CARE),l(D,s.READ_FRAMEBUFFER_BINDING,null),l(D,s.RASTERIZER_DISCARD,!1),l(D,s.PACK_ROW_LENGTH,0),l(D,s.PACK_SKIP_PIXELS,0),l(D,s.PACK_SKIP_ROWS,0),l(D,s.UNPACK_ROW_LENGTH,0),l(D,s.UNPACK_IMAGE_HEIGHT,0),l(D,s.UNPACK_SKIP_PIXELS,0),l(D,s.UNPACK_SKIP_ROWS,0),l(D,s.UNPACK_SKIP_IMAGES,0),D),xe=function(t,r,n){return r?t.enable(n):t.disable(n)},Tc=function(t,r,n){return t.hint(n,r)},be=function(t,r,n){return t.pixelStorei(n,r)},vc=function(t,r,n){var i;return n===s.FRAMEBUFFER_BINDING?i=Y(t)?s.DRAW_FRAMEBUFFER:s.FRAMEBUFFER:i=s.READ_FRAMEBUFFER,t.bindFramebuffer(i,r)},ir=function(t,r,n){var i,o=(i={},l(i,s.ARRAY_BUFFER_BINDING,s.ARRAY_BUFFER),l(i,s.COPY_READ_BUFFER_BINDING,s.COPY_READ_BUFFER),l(i,s.COPY_WRITE_BUFFER_BINDING,s.COPY_WRITE_BUFFER),l(i,s.PIXEL_PACK_BUFFER_BINDING,s.PIXEL_PACK_BUFFER),l(i,s.PIXEL_UNPACK_BUFFER_BINDING,s.PIXEL_UNPACK_BUFFER),i),a=o[n];t.bindBuffer(a,r)};function fi(e){return Array.isArray(e)||ArrayBuffer.isView(e)&&!(e instanceof DataView)}var Sc=(v={},l(v,s.BLEND,xe),l(v,s.BLEND_COLOR,function(e,t){return e.blendColor.apply(e,Z(t))}),l(v,s.BLEND_EQUATION_RGB,"blendEquation"),l(v,s.BLEND_EQUATION_ALPHA,"blendEquation"),l(v,s.BLEND_SRC_RGB,"blendFunc"),l(v,s.BLEND_DST_RGB,"blendFunc"),l(v,s.BLEND_SRC_ALPHA,"blendFunc"),l(v,s.BLEND_DST_ALPHA,"blendFunc"),l(v,s.COLOR_CLEAR_VALUE,function(e,t){return e.clearColor.apply(e,Z(t))}),l(v,s.COLOR_WRITEMASK,function(e,t){return e.colorMask.apply(e,Z(t))}),l(v,s.CULL_FACE,xe),l(v,s.CULL_FACE_MODE,function(e,t){return e.cullFace(t)}),l(v,s.DEPTH_TEST,xe),l(v,s.DEPTH_CLEAR_VALUE,function(e,t){return e.clearDepth(t)}),l(v,s.DEPTH_FUNC,function(e,t){return e.depthFunc(t)}),l(v,s.DEPTH_RANGE,function(e,t){return e.depthRange.apply(e,Z(t))}),l(v,s.DEPTH_WRITEMASK,function(e,t){return e.depthMask(t)}),l(v,s.DITHER,xe),l(v,s.FRAGMENT_SHADER_DERIVATIVE_HINT,Tc),l(v,s.CURRENT_PROGRAM,function(e,t){return e.useProgram(t)}),l(v,s.RENDERBUFFER_BINDING,function(e,t){return e.bindRenderbuffer(s.RENDERBUFFER,t)}),l(v,s.TRANSFORM_FEEDBACK_BINDING,function(e,t){var r,n;return(r=(n=e).bindTransformFeedback)===null||r===void 0?void 0:r.call(n,s.TRANSFORM_FEEDBACK,t)}),l(v,s.VERTEX_ARRAY_BINDING,function(e,t){return e.bindVertexArray(t)}),l(v,s.FRAMEBUFFER_BINDING,vc),l(v,s.READ_FRAMEBUFFER_BINDING,vc),l(v,s.ARRAY_BUFFER_BINDING,ir),l(v,s.COPY_READ_BUFFER_BINDING,ir),l(v,s.COPY_WRITE_BUFFER_BINDING,ir),l(v,s.PIXEL_PACK_BUFFER_BINDING,ir),l(v,s.PIXEL_UNPACK_BUFFER_BINDING,ir),l(v,s.FRONT_FACE,function(e,t){return e.frontFace(t)}),l(v,s.GENERATE_MIPMAP_HINT,Tc),l(v,s.LINE_WIDTH,function(e,t){return e.lineWidth(t)}),l(v,s.POLYGON_OFFSET_FILL,xe),l(v,s.POLYGON_OFFSET_FACTOR,"polygonOffset"),l(v,s.POLYGON_OFFSET_UNITS,"polygonOffset"),l(v,s.RASTERIZER_DISCARD,xe),l(v,s.SAMPLE_ALPHA_TO_COVERAGE,xe),l(v,s.SAMPLE_COVERAGE,xe),l(v,s.SAMPLE_COVERAGE_VALUE,"sampleCoverage"),l(v,s.SAMPLE_COVERAGE_INVERT,"sampleCoverage"),l(v,s.SCISSOR_TEST,xe),l(v,s.SCISSOR_BOX,function(e,t){return e.scissor.apply(e,Z(t))}),l(v,s.STENCIL_TEST,xe),l(v,s.STENCIL_CLEAR_VALUE,function(e,t){return e.clearStencil(t)}),l(v,s.STENCIL_WRITEMASK,function(e,t){return e.stencilMaskSeparate(s.FRONT,t)}),l(v,s.STENCIL_BACK_WRITEMASK,function(e,t){return e.stencilMaskSeparate(s.BACK,t)}),l(v,s.STENCIL_FUNC,"stencilFuncFront"),l(v,s.STENCIL_REF,"stencilFuncFront"),l(v,s.STENCIL_VALUE_MASK,"stencilFuncFront"),l(v,s.STENCIL_BACK_FUNC,"stencilFuncBack"),l(v,s.STENCIL_BACK_REF,"stencilFuncBack"),l(v,s.STENCIL_BACK_VALUE_MASK,"stencilFuncBack"),l(v,s.STENCIL_FAIL,"stencilOpFront"),l(v,s.STENCIL_PASS_DEPTH_FAIL,"stencilOpFront"),l(v,s.STENCIL_PASS_DEPTH_PASS,"stencilOpFront"),l(v,s.STENCIL_BACK_FAIL,"stencilOpBack"),l(v,s.STENCIL_BACK_PASS_DEPTH_FAIL,"stencilOpBack"),l(v,s.STENCIL_BACK_PASS_DEPTH_PASS,"stencilOpBack"),l(v,s.VIEWPORT,function(e,t){return e.viewport.apply(e,Z(t))}),l(v,s.PACK_ALIGNMENT,be),l(v,s.UNPACK_ALIGNMENT,be),l(v,s.UNPACK_FLIP_Y_WEBGL,be),l(v,s.UNPACK_PREMULTIPLY_ALPHA_WEBGL,be),l(v,s.UNPACK_COLORSPACE_CONVERSION_WEBGL,be),l(v,s.PACK_ROW_LENGTH,be),l(v,s.PACK_SKIP_PIXELS,be),l(v,s.PACK_SKIP_ROWS,be),l(v,s.UNPACK_ROW_LENGTH,be),l(v,s.UNPACK_IMAGE_HEIGHT,be),l(v,s.UNPACK_SKIP_PIXELS,be),l(v,s.UNPACK_SKIP_ROWS,be),l(v,s.UNPACK_SKIP_IMAGES,be),l(v,"framebuffer",function(t,r){var n=r&&"handle"in r?r.handle:r;return t.bindFramebuffer(s.FRAMEBUFFER,n)}),l(v,"blend",function(t,r){return r?t.enable(s.BLEND):t.disable(s.BLEND)}),l(v,"blendColor",function(t,r){return t.blendColor.apply(t,Z(r))}),l(v,"blendEquation",function(t,r){var n=typeof r=="number"?[r,r]:r;t.blendEquationSeparate.apply(t,Z(n))}),l(v,"blendFunc",function(t,r){var n=r?.length===2?[].concat(Z(r),Z(r)):r;t.blendFuncSeparate.apply(t,Z(n))}),l(v,"clearColor",function(t,r){return t.clearColor.apply(t,Z(r))}),l(v,"clearDepth",function(t,r){return t.clearDepth(r)}),l(v,"clearStencil",function(t,r){return t.clearStencil(r)}),l(v,"colorMask",function(t,r){return t.colorMask.apply(t,Z(r))}),l(v,"cull",function(t,r){return r?t.enable(s.CULL_FACE):t.disable(s.CULL_FACE)}),l(v,"cullFace",function(t,r){return t.cullFace(r)}),l(v,"depthTest",function(t,r){return r?t.enable(s.DEPTH_TEST):t.disable(s.DEPTH_TEST)}),l(v,"depthFunc",function(t,r){return t.depthFunc(r)}),l(v,"depthMask",function(t,r){return t.depthMask(r)}),l(v,"depthRange",function(t,r){return t.depthRange.apply(t,Z(r))}),l(v,"dither",function(t,r){return r?t.enable(s.DITHER):t.disable(s.DITHER)}),l(v,"derivativeHint",function(t,r){t.hint(s.FRAGMENT_SHADER_DERIVATIVE_HINT,r)}),l(v,"frontFace",function(t,r){return t.frontFace(r)}),l(v,"mipmapHint",function(t,r){return t.hint(s.GENERATE_MIPMAP_HINT,r)}),l(v,"lineWidth",function(t,r){return t.lineWidth(r)}),l(v,"polygonOffsetFill",function(t,r){return r?t.enable(s.POLYGON_OFFSET_FILL):t.disable(s.POLYGON_OFFSET_FILL)}),l(v,"polygonOffset",function(t,r){return t.polygonOffset.apply(t,Z(r))}),l(v,"sampleCoverage",function(t,r){return t.sampleCoverage.apply(t,Z(r))}),l(v,"scissorTest",function(t,r){return r?t.enable(s.SCISSOR_TEST):t.disable(s.SCISSOR_TEST)}),l(v,"scissor",function(t,r){return t.scissor.apply(t,Z(r))}),l(v,"stencilTest",function(t,r){return r?t.enable(s.STENCIL_TEST):t.disable(s.STENCIL_TEST)}),l(v,"stencilMask",function(t,r){r=fi(r)?r:[r,r];var n=r,i=L(n,2),o=i[0],a=i[1];t.stencilMaskSeparate(s.FRONT,o),t.stencilMaskSeparate(s.BACK,a)}),l(v,"stencilFunc",function(t,r){r=fi(r)&&r.length===3?[].concat(Z(r),Z(r)):r;var n=r,i=L(n,6),o=i[0],a=i[1],c=i[2],f=i[3],u=i[4],_=i[5];t.stencilFuncSeparate(s.FRONT,o,a,c),t.stencilFuncSeparate(s.BACK,f,u,_)}),l(v,"stencilOp",function(t,r){r=fi(r)&&r.length===3?[].concat(Z(r),Z(r)):r;var n=r,i=L(n,6),o=i[0],a=i[1],c=i[2],f=i[3],u=i[4],_=i[5];t.stencilOpSeparate(s.FRONT,o,a,c),t.stencilOpSeparate(s.BACK,f,u,_)}),l(v,"viewport",function(t,r){return t.viewport.apply(t,Z(r))}),v);function se(e,t,r){return t[e]!==void 0?t[e]:r[e]}var bc={blendEquation:function(t,r,n){return t.blendEquationSeparate(se(s.BLEND_EQUATION_RGB,r,n),se(s.BLEND_EQUATION_ALPHA,r,n))},blendFunc:function(t,r,n){return t.blendFuncSeparate(se(s.BLEND_SRC_RGB,r,n),se(s.BLEND_DST_RGB,r,n),se(s.BLEND_SRC_ALPHA,r,n),se(s.BLEND_DST_ALPHA,r,n))},polygonOffset:function(t,r,n){return t.polygonOffset(se(s.POLYGON_OFFSET_FACTOR,r,n),se(s.POLYGON_OFFSET_UNITS,r,n))},sampleCoverage:function(t,r,n){return t.sampleCoverage(se(s.SAMPLE_COVERAGE_VALUE,r,n),se(s.SAMPLE_COVERAGE_INVERT,r,n))},stencilFuncFront:function(t,r,n){return t.stencilFuncSeparate(s.FRONT,se(s.STENCIL_FUNC,r,n),se(s.STENCIL_REF,r,n),se(s.STENCIL_VALUE_MASK,r,n))},stencilFuncBack:function(t,r,n){return t.stencilFuncSeparate(s.BACK,se(s.STENCIL_BACK_FUNC,r,n),se(s.STENCIL_BACK_REF,r,n),se(s.STENCIL_BACK_VALUE_MASK,r,n))},stencilOpFront:function(t,r,n){return t.stencilOpSeparate(s.FRONT,se(s.STENCIL_FAIL,r,n),se(s.STENCIL_PASS_DEPTH_FAIL,r,n),se(s.STENCIL_PASS_DEPTH_PASS,r,n))},stencilOpBack:function(t,r,n){return t.stencilOpSeparate(s.BACK,se(s.STENCIL_BACK_FAIL,r,n),se(s.STENCIL_BACK_PASS_DEPTH_FAIL,r,n),se(s.STENCIL_BACK_PASS_DEPTH_PASS,r,n))}},ui={enable:function(t,r){return t(l({},r,!0))},disable:function(t,r){return t(l({},r,!1))},pixelStorei:function(t,r,n){return t(l({},r,n))},hint:function(t,r,n){return t(l({},r,n))},useProgram:function(t,r){return t(l({},s.CURRENT_PROGRAM,r))},bindRenderbuffer:function(t,r,n){return t(l({},s.RENDERBUFFER_BINDING,n))},bindTransformFeedback:function(t,r,n){return t(l({},s.TRANSFORM_FEEDBACK_BINDING,n))},bindVertexArray:function(t,r){return t(l({},s.VERTEX_ARRAY_BINDING,r))},bindFramebuffer:function(t,r,n){var i;switch(r){case s.FRAMEBUFFER:return t((i={},l(i,s.DRAW_FRAMEBUFFER_BINDING,n),l(i,s.READ_FRAMEBUFFER_BINDING,n),i));case s.DRAW_FRAMEBUFFER:return t(l({},s.DRAW_FRAMEBUFFER_BINDING,n));case s.READ_FRAMEBUFFER:return t(l({},s.READ_FRAMEBUFFER_BINDING,n));default:return null}},bindBuffer:function(t,r,n){var i,o=(i={},l(i,s.ARRAY_BUFFER,[s.ARRAY_BUFFER_BINDING]),l(i,s.COPY_READ_BUFFER,[s.COPY_READ_BUFFER_BINDING]),l(i,s.COPY_WRITE_BUFFER,[s.COPY_WRITE_BUFFER_BINDING]),l(i,s.PIXEL_PACK_BUFFER,[s.PIXEL_PACK_BUFFER_BINDING]),l(i,s.PIXEL_UNPACK_BUFFER,[s.PIXEL_UNPACK_BUFFER_BINDING]),i)[r];return o?t(l({},o,n)):{valueChanged:!0}},blendColor:function(t,r,n,i,o){return t(l({},s.BLEND_COLOR,new Float32Array([r,n,i,o])))},blendEquation:function(t,r){var n;return t((n={},l(n,s.BLEND_EQUATION_RGB,r),l(n,s.BLEND_EQUATION_ALPHA,r),n))},blendEquationSeparate:function(t,r,n){var i;return t((i={},l(i,s.BLEND_EQUATION_RGB,r),l(i,s.BLEND_EQUATION_ALPHA,n),i))},blendFunc:function(t,r,n){var i;return t((i={},l(i,s.BLEND_SRC_RGB,r),l(i,s.BLEND_DST_RGB,n),l(i,s.BLEND_SRC_ALPHA,r),l(i,s.BLEND_DST_ALPHA,n),i))},blendFuncSeparate:function(t,r,n,i,o){var a;return t((a={},l(a,s.BLEND_SRC_RGB,r),l(a,s.BLEND_DST_RGB,n),l(a,s.BLEND_SRC_ALPHA,i),l(a,s.BLEND_DST_ALPHA,o),a))},clearColor:function(t,r,n,i,o){return t(l({},s.COLOR_CLEAR_VALUE,new Float32Array([r,n,i,o])))},clearDepth:function(t,r){return t(l({},s.DEPTH_CLEAR_VALUE,r))},clearStencil:function(t,r){return t(l({},s.STENCIL_CLEAR_VALUE,r))},colorMask:function(t,r,n,i,o){return t(l({},s.COLOR_WRITEMASK,[r,n,i,o]))},cullFace:function(t,r){return t(l({},s.CULL_FACE_MODE,r))},depthFunc:function(t,r){return t(l({},s.DEPTH_FUNC,r))},depthRange:function(t,r,n){return t(l({},s.DEPTH_RANGE,new Float32Array([r,n])))},depthMask:function(t,r){return t(l({},s.DEPTH_WRITEMASK,r))},frontFace:function(t,r){return t(l({},s.FRONT_FACE,r))},lineWidth:function(t,r){return t(l({},s.LINE_WIDTH,r))},polygonOffset:function(t,r,n){var i;return t((i={},l(i,s.POLYGON_OFFSET_FACTOR,r),l(i,s.POLYGON_OFFSET_UNITS,n),i))},sampleCoverage:function(t,r,n){var i;return t((i={},l(i,s.SAMPLE_COVERAGE_VALUE,r),l(i,s.SAMPLE_COVERAGE_INVERT,n),i))},scissor:function(t,r,n,i,o){return t(l({},s.SCISSOR_BOX,new Int32Array([r,n,i,o])))},stencilMask:function(t,r){var n;return t((n={},l(n,s.STENCIL_WRITEMASK,r),l(n,s.STENCIL_BACK_WRITEMASK,r),n))},stencilMaskSeparate:function(t,r,n){return t(l({},r===s.FRONT?s.STENCIL_WRITEMASK:s.STENCIL_BACK_WRITEMASK,n))},stencilFunc:function(t,r,n,i){var o;return t((o={},l(o,s.STENCIL_FUNC,r),l(o,s.STENCIL_REF,n),l(o,s.STENCIL_VALUE_MASK,i),l(o,s.STENCIL_BACK_FUNC,r),l(o,s.STENCIL_BACK_REF,n),l(o,s.STENCIL_BACK_VALUE_MASK,i),o))},stencilFuncSeparate:function(t,r,n,i,o){var a;return t((a={},l(a,r===s.FRONT?s.STENCIL_FUNC:s.STENCIL_BACK_FUNC,n),l(a,r===s.FRONT?s.STENCIL_REF:s.STENCIL_BACK_REF,i),l(a,r===s.FRONT?s.STENCIL_VALUE_MASK:s.STENCIL_BACK_VALUE_MASK,o),a))},stencilOp:function(t,r,n,i){var o;return t((o={},l(o,s.STENCIL_FAIL,r),l(o,s.STENCIL_PASS_DEPTH_FAIL,n),l(o,s.STENCIL_PASS_DEPTH_PASS,i),l(o,s.STENCIL_BACK_FAIL,r),l(o,s.STENCIL_BACK_PASS_DEPTH_FAIL,n),l(o,s.STENCIL_BACK_PASS_DEPTH_PASS,i),o))},stencilOpSeparate:function(t,r,n,i,o){var a;return t((a={},l(a,r===s.FRONT?s.STENCIL_FAIL:s.STENCIL_BACK_FAIL,n),l(a,r===s.FRONT?s.STENCIL_PASS_DEPTH_FAIL:s.STENCIL_BACK_PASS_DEPTH_FAIL,i),l(a,r===s.FRONT?s.STENCIL_PASS_DEPTH_PASS:s.STENCIL_BACK_PASS_DEPTH_PASS,o),a))},viewport:function(t,r,n,i,o){return t(l({},s.VIEWPORT,[r,n,i,o]))}},Fe=function(t,r){return t.isEnabled(r)},li=(ye={},l(ye,s.BLEND,Fe),l(ye,s.CULL_FACE,Fe),l(ye,s.DEPTH_TEST,Fe),l(ye,s.DITHER,Fe),l(ye,s.POLYGON_OFFSET_FILL,Fe),l(ye,s.SAMPLE_ALPHA_TO_COVERAGE,Fe),l(ye,s.SAMPLE_COVERAGE,Fe),l(ye,s.SCISSOR_TEST,Fe),l(ye,s.STENCIL_TEST,Fe),l(ye,s.RASTERIZER_DISCARD,Fe),ye),Oc=new Set([s.ACTIVE_TEXTURE,s.TRANSFORM_FEEDBACK_ACTIVE,s.TRANSFORM_FEEDBACK_PAUSED,s.TRANSFORM_FEEDBACK_BUFFER_BINDING,s.UNIFORM_BUFFER_BINDING,s.ELEMENT_ARRAY_BUFFER_BINDING,s.IMPLEMENTATION_COLOR_READ_FORMAT,s.IMPLEMENTATION_COLOR_READ_TYPE,s.READ_BUFFER,s.DRAW_BUFFER0,s.DRAW_BUFFER1,s.DRAW_BUFFER2,s.DRAW_BUFFER3,s.DRAW_BUFFER4,s.DRAW_BUFFER5,s.DRAW_BUFFER6,s.DRAW_BUFFER7,s.DRAW_BUFFER8,s.DRAW_BUFFER9,s.DRAW_BUFFER10,s.DRAW_BUFFER11,s.DRAW_BUFFER12,s.DRAW_BUFFER13,s.DRAW_BUFFER14,s.DRAW_BUFFER15,s.SAMPLER_BINDING,s.TEXTURE_BINDING_2D,s.TEXTURE_BINDING_2D_ARRAY,s.TEXTURE_BINDING_3D,s.TEXTURE_BINDING_CUBE_MAP]);function tE(e,t){var r=typeof Symbol<"u"&&e[Symbol.iterator]||e["@@iterator"];if(!r){if(Array.isArray(e)||(r=rE(e))||t&&e&&typeof e.length=="number"){r&&(e=r);var n=0,i=function(){};return{s:i,n:function(){return n>=e.length?{done:!0}:{done:!1,value:e[n++]}},e:function(u){throw u},f:i}}throw new TypeError(`Invalid attempt to iterate non-iterable instance.
1177
+ In order to be iterable, non-array objects must have a [Symbol.iterator]() method.`)}var o=!0,a=!1,c;return{s:function(){r=r.call(e)},n:function(){var u=r.next();return o=u.done,u},e:function(u){a=!0,c=u},f:function(){try{!o&&r.return!=null&&r.return()}finally{if(a)throw c}}}}function rE(e,t){if(e){if(typeof e=="string")return yc(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 yc(e,t)}}function yc(e,t){(t==null||t>e.length)&&(t=e.length);for(var r=0,n=new Array(t);r<t;r++)n[r]=e[r];return n}function We(e,t){var r=Re.attach(e),n=r.gl;if(!nE(t)){var i={};for(var o in t){var a=Number(o),c=Sc[o];c&&(typeof c=="string"?i[c]=!0:c(n,t[o],a))}var f=n.state&&n.state.cache;if(f)for(var u in i){var _=bc[u];_(n,t,f)}}}function Nc(e){var t=arguments.length>1&&arguments[1]!==void 0?arguments[1]:Zr,r=Re.attach(e),n=r.gl;if(typeof t=="number"){var i=t,o=li[i];return o?o(n,i):n.getParameter(i)}var a=Array.isArray(t)?t:Object.keys(t),c={},f=tE(a),u;try{for(f.s();!(u=f.n()).done;){var _=u.value,E=li[_];c[_]=E?E(n,Number(_)):n.getParameter(Number(_))}}catch(p){f.e(p)}finally{f.f()}return c}function nE(e){for(var t in e)return!1;return!0}function Ic(e,t){if(e===t)return!0;var r=Array.isArray(e)||ArrayBuffer.isView(e),n=Array.isArray(t)||ArrayBuffer.isView(t);if(r&&n&&e.length===t.length){for(var i=0;i<e.length;++i)if(e[i]!==t[i])return!1;return!0}return!1}var iE=function(){function e(r){var n=arguments.length>1&&arguments[1]!==void 0?arguments[1]:{},i=n.copyState,o=i===void 0?!1:i,a=n.log,c=a===void 0?function(){}:a;C(this,e),this.gl=void 0,this.program=null,this.stateStack=[],this.enable=!0,this.cache=void 0,this.log=void 0,this.gl=r,this.cache=o?Nc(r):Object.assign({},Zr),this.log=c,this._updateCache=this._updateCache.bind(this),Object.seal(this)}var t=e.prototype;return t.push=function(){var n=arguments.length>0&&arguments[0]!==void 0?arguments[0]:{};this.stateStack.push({})},t.pop=function(){w(this.stateStack.length>0);var n=this.stateStack[this.stateStack.length-1];We(this.gl,n),this.stateStack.pop()},t._updateCache=function(n){var i=!1,o,a=this.stateStack.length>0?this.stateStack[this.stateStack.length-1]:null;for(var c in n){w(c!==void 0);var f=n[c],u=this.cache[c];Ic(f,u)||(i=!0,o=u,a&&!(c in a)&&(a[c]=u),this.cache[c]=f)}return{valueChanged:i,oldValue:o}},M(e)}();function lt(e){return e.state}function _i(e,t){var r=t.enable,n=r===void 0?!0:r,i=t.copyState;if(w(i!==void 0),!e.state){e.state=new iE(e,{copyState:i}),aE(e);for(var o in ui){var a=ui[o];oE(e,o,a)}Mc(e,"getParameter"),Mc(e,"isEnabled")}var c=lt(e);return c.enable=n,e}function Je(e){var t=lt(e);t||(_i(e,{copyState:!1}),t=lt(e)),t.push()}function je(e){var t=lt(e);w(t),t.pop()}function Mc(e,t){var r=e[t].bind(e);e[t]=function(i){if(i===void 0||Oc.has(i))return r(i);var o=lt(e);return i in o.cache||(o.cache[i]=r(i)),o.enable?o.cache[i]:r(i)},Object.defineProperty(e[t],"name",{value:"".concat(t,"-from-cache"),configurable:!1})}function oE(e,t,r){if(e[t]){var n=e[t].bind(e);e[t]=function(){for(var o=lt(e),a=arguments.length,c=new Array(a),f=0;f<a;f++)c[f]=arguments[f];var u=r.apply(void 0,[o._updateCache].concat(c)),_=u.valueChanged,E=u.oldValue;return _&&n.apply(void 0,c),E},Object.defineProperty(e[t],"name",{value:"".concat(t,"-to-cache"),configurable:!1})}}function aE(e){var t=e.useProgram.bind(e);e.useProgram=function(n){var i=lt(e);i.program!==n&&(t(n),i.program=n)}}function Cc(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter(function(i){return Object.getOwnPropertyDescriptor(e,i).enumerable})),r.push.apply(r,n)}return r}function Ct(e){for(var t=1;t<arguments.length;t++){var r=arguments[t]!=null?arguments[t]:{};t%2?Cc(Object(r),!0).forEach(function(n){l(e,n,r[n])}):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(r)):Cc(Object(r)).forEach(function(n){Object.defineProperty(e,n,Object.getOwnPropertyDescriptor(r,n))})}return e}var sE={webgl2:!0,webgl1:!0,powerPreference:"high-performance",onContextLost:function(){return console.error("WebGL context lost")},onContextRestored:function(){return console.info("WebGL context restored")}};function Pc(e,t){t=Ct(Ct({},sE),t);var r=null,n=function(_){return r=_.statusMessage||r};e.addEventListener("webglcontextcreationerror",n,!1);var i=null;if(t.type==="webgl2"&&(t=Ct(Ct({},t),{},{webgl1:!1})),t.type==="webgl1"&&(t=Ct(Ct({},t),{},{webgl2:!1})),!i&&t.webgl2&&(i=e.getContext("webgl2",t)),!i&&t.webgl1&&(i=e.getContext("webgl",t)),e.removeEventListener("webglcontextcreationerror",n,!1),!i)throw new Error("Failed to create ".concat(t.webgl2&&!t.webgl1?"WebGL2":"WebGL"," context: ").concat(r||"Unknown error"));if(t.onContextLost){var o=t,a=o.onContextLost;e.addEventListener("webglcontextlost",function(u){return a(u)},!1)}if(t.onContextRestored){var c=t,f=c.onContextRestored;e.addEventListener("webglcontextrestored",function(u){return f(u)},!1)}return i}function xc(e){var t=e.getParameter(s.VENDOR),r=e.getParameter(s.RENDERER),n=e.getExtension("WEBGL_debug_renderer_info"),i=e.getParameter(n?n.UNMASKED_VENDOR_WEBGL:s.VENDOR),o=e.getParameter(n?n.UNMASKED_RENDERER_WEBGL:s.RENDERER),a=i||t,c=o||r,f=cE(a,c);return{type:Y(e)?"webgl2":"webgl",gpu:f,vendor:i||t,renderer:o||r,version:e.getParameter(s.VERSION),shadingLanguages:["glsl"],shadingLanguageVersions:{glsl:e.getParameter(s.SHADING_LANGUAGE_VERSION)}}}function cE(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 Fc(){var e=arguments.length>0&&arguments[0]!==void 0?arguments[0]:{},t=typeof window<"u"?window.navigator||{}:{},r=e.userAgent||t.userAgent||"",n=r.indexOf("MSIE ")!==-1,i=r.indexOf("Trident/")!==-1;return n||i}function $r(e){switch(e){case"uint8":return s.UNSIGNED_BYTE;case"sint8":return s.BYTE;case"unorm8":return s.UNSIGNED_BYTE;case"snorm8":return s.BYTE;case"uint16":return s.UNSIGNED_SHORT;case"sint16":return s.SHORT;case"unorm16":return s.UNSIGNED_SHORT;case"snorm16":return s.SHORT;case"uint32":return s.UNSIGNED_INT;case"sint32":return s.INT;case"float16":return s.HALF_FLOAT;case"float32":return s.FLOAT}throw new Error(String(e))}var Ae,De,he="texture-compression-bc",$="texture-compression-astc",Be="texture-compression-etc2",fE="texture-compression-etc1-webgl",Qr="texture-compression-pvrtc-webgl",Ei="texture-compression-atc-webgl",or="WEBGL_compressed_texture_s3tc",ar="WEBGL_compressed_texture_s3tc_srgb",Pt="EXT_texture_compression_rgtc",sr="EXT_texture_compression_bptc",uE="WEBGL_compressed_texture_etc",lE="WEBGL_compressed_texture_astc",_E="WEBGL_compressed_texture_etc1",EE="WEBGL_compressed_texture_pvrtc",pE="WEBGL_compressed_texture_atc",Dc="EXT_sRGB",Ge="EXT_texture_norm16",dE="WEBGL_color_buffer_float",hE="EXT_color_buffer_float",Me=function(t,r){return t.getExtension(r)},_t=function(t,r){return r.every(function(n){return t.getExtension(n)})},pi={"texture-blend-float-webgl1":function(t){return Y(t)?!0:Me(t,"EXT_float_blend")},"texture-formats-srgb-webgl1":function(t){return Y(t)?!0:Me(t,Dc)},"texture-formats-depth-webgl1":function(t){return Y(t)?!0:Me(t,"WEBGL_depth_texture")},"texture-formats-float32-webgl1":function(t){return Y(t)?!0:Me(t,"OES_texture_float")},"texture-formats-float16-webgl1":function(t){return Y(t)?!0:Me(t,"OES_texture_half_float")},"texture-formats-norm16-webgl":function(t){return Y(t)?Me(t,Ge):!1},"texture-filter-linear-float32-webgl":function(t){return Me(t,"OES_texture_float_linear")},"texture-filter-linear-float16-webgl":function(t){return Me(t,"OES_texture_half_float_linear")},"texture-filter-anisotropic-webgl":function(t){return Me(t,"EXT_texture_filter_anisotropic")},"texture-renderable-float32-webgl":function(t){return Me(t,"EXT_color_buffer_float")},"texture-renderable-float16-webgl":function(t){return Me(t,"EXT_color_buffer_half_float")},"texture-compression-bc":function(t){return _t(t,[or,ar,Pt,sr])},"texture-compression-bc5-webgl":function(t){return _t(t,[Pt])},"texture-compression-etc2":function(t){return _t(t,[uE])},"texture-compression-astc":function(t){return _t(t,[lE])},"texture-compression-etc1-webgl":function(t){return _t(t,[_E])},"texture-compression-pvrtc-webgl":function(t){return _t(t,[EE])},"texture-compression-atc-webgl":function(t){return _t(t,[pE])}};function mE(e,t){var r;return((r=pi[t])===null||r===void 0?void 0:r.call(pi,e))||!1}function Bc(e){var t=Object.keys(pi);return t.filter(function(r){return mE(e,r)})}var cr={"rgb8unorm-unsized":{gl:s.RGB,gl1:s.RGB,b:4,c:2,bpp:4,dataFormat:s.RGB,types:[s.UNSIGNED_BYTE,s.UNSIGNED_SHORT_5_6_5]},"rgba8unorm-unsized":{gl:s.RGBA,gl1:s.RGBA,b:4,c:2,bpp:4,dataFormat:s.RGBA,types:[s.UNSIGNED_BYTE,s.UNSIGNED_SHORT_4_4_4_4,s.UNSIGNED_SHORT_5_5_5_1]},r8unorm:{gl:s.R8,b:1,c:1,renderbuffer:!0},r8snorm:{gl:s.R8_SNORM,b:1,c:1},r8uint:{gl:s.R8UI,b:1,c:1,renderbuffer:!0},r8sint:{gl:s.R8I,b:1,c:1,renderbuffer:!0},rg8unorm:{gl:s.RG8,b:2,c:2,renderbuffer:!0},rg8snorm:{gl:s.RG8_SNORM,b:2,c:2},rg8uint:{gl:s.RG8UI,b:2,c:2,renderbuffer:!0},rg8sint:{gl:s.RG8I,b:2,c:2,renderbuffer:!0},r16uint:{gl:s.R16UI,b:2,c:1,renderbuffer:!0},r16sint:{gl:s.R16I,b:2,c:1,renderbuffer:!0},r16float:{gl:s.R16F,b:2,c:1,render:"texture-renderable-float16-webgl",filter:"texture-filter-linear-float16-webgl",renderbuffer:!0},"r16unorm-webgl":{gl:s.R16_EXT,b:2,c:1,f:"texture-formats-norm16-webgl",renderbuffer:!0,x:Ge},"r16snorm-webgl":{gl:s.R16_SNORM_EXT,b:2,c:1,f:"texture-formats-norm16-webgl",x:Ge},"rgba4unorm-webgl":{gl:s.RGBA4,b:2,c:4,wgpu:!1,renderbuffer:!0},"rgb565unorm-webgl":{gl:s.RGB565,b:2,c:4,wgpu:!1,renderbuffer:!0},"rgb5a1unorm-webgl":{gl:s.RGB5_A1,b:2,c:4,wgpu:!1,renderbuffer:!0},"rgb8unorm-webgl":{gl:s.RGB8,b:3,c:3,wgpu:!1},"rgb8snorm-webgl":{gl:s.RGB8_SNORM,b:3,c:3,wgpu:!1},rgba8unorm:{gl:s.RGBA8,gl1:s.RGBA,b:4,c:2,bpp:4},"rgba8unorm-srgb":{gl:s.SRGB8_ALPHA8,gl1:s.SRGB_ALPHA_EXT,b:4,c:4,gl1ext:Dc,bpp:4},rgba8snorm:{gl:s.RGBA8_SNORM,b:4,c:4},rgba8uint:{gl:s.RGBA8UI,b:4,c:4,bpp:4},rgba8sint:{gl:s.RGBA8I,b:4,c:4,bpp:4},bgra8unorm:{b:4,c:4},"bgra8unorm-srgb":{b:4,c:4},rg16uint:{gl:s.RG16UI,b:4,c:1,bpp:4},rg16sint:{gl:s.RG16I,b:4,c:2,bpp:4},rg16float:{gl:s.RG16F,bpp:4,b:4,c:2,render:"texture-renderable-float16-webgl",filter:"texture-filter-linear-float16-webgl",renderbuffer:!0},"rg16unorm-webgl":{gl:s.RG16_EXT,b:2,c:2,f:"texture-formats-norm16-webgl",x:Ge},"rg16snorm-webgl":{gl:s.RG16_SNORM_EXT,b:2,c:2,f:"texture-formats-norm16-webgl",x:Ge},r32uint:{gl:s.R32UI,b:4,c:1,bpp:4,renderbuffer:!0},r32sint:{gl:s.R32I,b:4,c:1,bpp:4,renderbuffer:!0},r32float:{gl:s.R32F,bpp:4,b:4,c:1,render:"texture-renderable-float32-webgl",filter:"texture-filter-linear-float32-webgl"},rgb9e5ufloat:{gl:s.RGB9_E5,b:4,c:3,p:1,render:"texture-renderable-float16-webgl",filter:"texture-filter-linear-float16-webgl"},rg11b10ufloat:{gl:s.R11F_G11F_B10F,b:4,c:3,p:1,render:"texture-renderable-float32-webgl",renderbuffer:!0},rgb10a2unorm:{gl:s.RGB10_A2,b:4,c:4,p:1,renderbuffer:!0},"rgb10a2unorm-webgl":{b:4,c:4,gl:s.RGB10_A2UI,p:1,wgpu:!1,bpp:4,renderbuffer:!0},"rgb16unorm-webgl":{gl:s.RGB16_EXT,b:2,c:3,f:"texture-formats-norm16-webgl",x:Ge},"rgb16snorm-webgl":{gl:s.RGB16_SNORM_EXT,b:2,c:3,f:"texture-formats-norm16-webgl",x:Ge},rg32uint:{gl:s.RG32UI,b:8,c:2,renderbuffer:!0},rg32sint:{gl:s.RG32I,b:8,c:2,renderbuffer:!0},rg32float:{gl:s.RG32F,b:8,c:2,render:"texture-renderable-float32-webgl",filter:"texture-filter-linear-float32-webgl",renderbuffer:!0},rgba16uint:{gl:s.RGBA16UI,b:8,c:4,renderbuffer:!0},rgba16sint:{gl:s.RGBA16I,b:8,c:4,renderbuffer:!0},rgba16float:{gl:s.RGBA16F,gl1:s.RGBA,b:8,c:4,render:"texture-renderable-float16-webgl",filter:"texture-filter-linear-float16-webgl"},"rgba16unorm-webgl":{gl:s.RGBA16_EXT,b:2,c:4,f:"texture-formats-norm16-webgl",renderbuffer:!0,x:Ge},"rgba16snorm-webgl":{gl:s.RGBA16_SNORM_EXT,b:2,c:4,f:"texture-formats-norm16-webgl",x:Ge},"rgb32float-webgl":{gl:s.RGB32F,gl1:s.RGB,render:"texture-renderable-float32-webgl",filter:"texture-filter-linear-float32-webgl",gl2ext:hE,gl1ext:dE,dataFormat:s.RGB,types:[s.FLOAT]},rgba32uint:{gl:s.RGBA32UI,b:16,c:4,renderbuffer:!0},rgba32sint:{gl:s.RGBA32I,b:16,c:4,renderbuffer:!0},rgba32float:{gl:s.RGBA32F,b:16,c:4,render:"texture-renderable-float32-webgl",filter:"texture-filter-linear-float32-webgl",renderbuffer:!0},stencil8:{gl:s.STENCIL_INDEX8,gl1:s.STENCIL_INDEX8,b:1,c:1,attachment:s.STENCIL_ATTACHMENT,renderbuffer:!0},depth16unorm:{gl:s.DEPTH_COMPONENT16,gl1:s.DEPTH_COMPONENT16,b:2,c:1,attachment:s.DEPTH_ATTACHMENT,renderbuffer:!0},depth24plus:{gl:s.DEPTH_COMPONENT24,b:3,c:1,attachment:s.DEPTH_ATTACHMENT},depth32float:{gl:s.DEPTH_COMPONENT32F,b:4,c:1,attachment:s.DEPTH_ATTACHMENT,renderbuffer:!0},"depth24plus-stencil8":{gl:s.DEPTH_STENCIL,gl1:s.DEPTH_STENCIL,b:4,c:2,p:1,attachment:s.DEPTH_STENCIL_ATTACHMENT,renderbuffer:!0,depthTexture:!0},"depth24unorm-stencil8":{gl:s.DEPTH24_STENCIL8,b:4,c:2,p:1,attachment:s.DEPTH_STENCIL_ATTACHMENT,renderbuffer:!0},"depth32float-stencil8":{gl:s.DEPTH32F_STENCIL8,b:5,c:2,p:1,attachment:s.DEPTH_STENCIL_ATTACHMENT,renderbuffer:!0},"bc1-rgb-unorm-webgl":{gl:s.COMPRESSED_RGB_S3TC_DXT1_EXT,x:or,f:he},"bc1-rgb-unorm-srgb-webgl":{gl:s.COMPRESSED_SRGB_S3TC_DXT1_EXT,x:ar,f:he},"bc1-rgba-unorm":{gl:s.COMPRESSED_RGBA_S3TC_DXT1_EXT,x:or,f:he},"bc1-rgba-unorm-srgb":{gl:s.COMPRESSED_SRGB_S3TC_DXT1_EXT,x:ar,f:he},"bc2-rgba-unorm":{gl:s.COMPRESSED_RGBA_S3TC_DXT3_EXT,x:or,f:he},"bc2-rgba-unorm-srgb":{gl:s.COMPRESSED_SRGB_ALPHA_S3TC_DXT3_EXT,x:ar,f:he},"bc3-rgba-unorm":{gl:s.COMPRESSED_RGBA_S3TC_DXT5_EXT,x:or,f:he},"bc3-rgba-unorm-srgb":{gl:s.COMPRESSED_SRGB_ALPHA_S3TC_DXT5_EXT,x:ar,f:he},"bc4-r-unorm":{gl:s.COMPRESSED_RED_RGTC1_EXT,x:Pt,f:he},"bc4-r-snorm":{gl:s.COMPRESSED_SIGNED_RED_RGTC1_EXT,x:Pt,f:he},"bc5-rg-unorm":{gl:s.COMPRESSED_RED_GREEN_RGTC2_EXT,x:Pt,f:he},"bc5-rg-snorm":{gl:s.COMPRESSED_SIGNED_RED_GREEN_RGTC2_EXT,x:Pt,f:he},"bc6h-rgb-ufloat":{gl:s.COMPRESSED_RGB_BPTC_UNSIGNED_FLOAT_EXT,x:sr,f:he},"bc6h-rgb-float":{gl:s.COMPRESSED_RGB_BPTC_SIGNED_FLOAT_EXT,x:sr,f:he},"bc7-rgba-unorm":{gl:s.COMPRESSED_RGBA_BPTC_UNORM_EXT,x:sr,f:he},"bc7-rgba-unorm-srgb":{gl:s.COMPRESSED_SRGB_ALPHA_BPTC_UNORM_EXT,x:sr,f:he},"etc2-rgb8unorm":{gl:s.COMPRESSED_RGB8_ETC2,f:Be},"etc2-rgb8unorm-srgb":{gl:s.COMPRESSED_SRGB8_ETC2,f:Be},"etc2-rgb8a1unorm":{gl:s.COMPRESSED_RGB8_PUNCHTHROUGH_ALPHA1_ETC2,f:Be},"etc2-rgb8a1unorm-srgb":{gl:s.COMPRESSED_SRGB8_PUNCHTHROUGH_ALPHA1_ETC2,f:Be},"etc2-rgba8unorm":{gl:s.COMPRESSED_RGBA8_ETC2_EAC,f:Be},"etc2-rgba8unorm-srgb":{gl:s.COMPRESSED_SRGB8_ALPHA8_ETC2_EAC,f:Be},"eac-r11unorm":{gl:s.COMPRESSED_R11_EAC,f:Be},"eac-r11snorm":{gl:s.COMPRESSED_SIGNED_R11_EAC,f:Be},"eac-rg11unorm":{gl:s.COMPRESSED_RG11_EAC,f:Be},"eac-rg11snorm":{gl:s.COMPRESSED_SIGNED_RG11_EAC,f:Be},"astc-4x4-unorm":{gl:s.COMPRESSED_RGBA_ASTC_4x4_KHR,f:$},"astc-4x4-unorm-srgb":{gl:s.COMPRESSED_SRGB8_ALPHA8_ASTC_4x4_KHR,f:$},"astc-5x4-unorm":{gl:s.COMPRESSED_RGBA_ASTC_5x4_KHR,f:$},"astc-5x4-unorm-srgb":{gl:s.COMPRESSED_SRGB8_ALPHA8_ASTC_5x4_KHR,f:$},"astc-5x5-unorm":{gl:s.COMPRESSED_RGBA_ASTC_5x5_KHR,f:$},"astc-5x5-unorm-srgb":{gl:s.COMPRESSED_SRGB8_ALPHA8_ASTC_5x5_KHR,f:$},"astc-6x5-unorm":{gl:s.COMPRESSED_RGBA_ASTC_6x5_KHR,f:$},"astc-6x5-unorm-srgb":{gl:s.COMPRESSED_SRGB8_ALPHA8_ASTC_6x5_KHR,f:$},"astc-6x6-unorm":{gl:s.COMPRESSED_RGBA_ASTC_6x6_KHR,f:$},"astc-6x6-unorm-srgb":{gl:s.COMPRESSED_SRGB8_ALPHA8_ASTC_6x6_KHR,f:$},"astc-8x5-unorm":{gl:s.COMPRESSED_RGBA_ASTC_8x5_KHR,f:$},"astc-8x5-unorm-srgb":{gl:s.COMPRESSED_SRGB8_ALPHA8_ASTC_8x5_KHR,f:$},"astc-8x6-unorm":{gl:s.COMPRESSED_RGBA_ASTC_8x6_KHR,f:$},"astc-8x6-unorm-srgb":{gl:s.COMPRESSED_SRGB8_ALPHA8_ASTC_8x6_KHR,f:$},"astc-8x8-unorm":{gl:s.COMPRESSED_RGBA_ASTC_8x8_KHR,f:$},"astc-8x8-unorm-srgb":{gl:s.COMPRESSED_SRGB8_ALPHA8_ASTC_8x8_KHR,f:$},"astc-10x5-unorm":{gl:s.COMPRESSED_RGBA_ASTC_10x10_KHR,f:$},"astc-10x5-unorm-srgb":{gl:s.COMPRESSED_SRGB8_ALPHA8_ASTC_10x10_KHR,f:$},"astc-10x6-unorm":{gl:s.COMPRESSED_RGBA_ASTC_10x6_KHR,f:$},"astc-10x6-unorm-srgb":{gl:s.COMPRESSED_SRGB8_ALPHA8_ASTC_10x6_KHR,f:$},"astc-10x8-unorm":{gl:s.COMPRESSED_RGBA_ASTC_10x8_KHR,f:$},"astc-10x8-unorm-srgb":{gl:s.COMPRESSED_SRGB8_ALPHA8_ASTC_10x8_KHR,f:$},"astc-10x10-unorm":{gl:s.COMPRESSED_RGBA_ASTC_10x10_KHR,f:$},"astc-10x10-unorm-srgb":{gl:s.COMPRESSED_SRGB8_ALPHA8_ASTC_10x10_KHR,f:$},"astc-12x10-unorm":{gl:s.COMPRESSED_RGBA_ASTC_12x10_KHR,f:$},"astc-12x10-unorm-srgb":{gl:s.COMPRESSED_SRGB8_ALPHA8_ASTC_12x10_KHR,f:$},"astc-12x12-unorm":{gl:s.COMPRESSED_RGBA_ASTC_12x12_KHR,f:$},"astc-12x12-unorm-srgb":{gl:s.COMPRESSED_SRGB8_ALPHA8_ASTC_12x12_KHR,f:$},"pvrtc-rgb4unorm-webgl":{gl:s.COMPRESSED_RGB_PVRTC_4BPPV1_IMG,f:Qr},"pvrtc-rgba4unorm-webgl":{gl:s.COMPRESSED_RGBA_PVRTC_4BPPV1_IMG,f:Qr},"pvrtc-rbg2unorm-webgl":{gl:s.COMPRESSED_RGB_PVRTC_2BPPV1_IMG,f:Qr},"pvrtc-rgba2unorm-webgl":{gl:s.COMPRESSED_RGBA_PVRTC_2BPPV1_IMG,f:Qr},"etc1-rbg-unorm-webgl":{gl:s.COMPRESSED_RGB_ETC1_WEBGL,f:fE},"atc-rgb-unorm-webgl":{gl:s.COMPRESSED_RGB_ATC_WEBGL,f:Ei},"atc-rgba-unorm-webgl":{gl:s.COMPRESSED_RGBA_ATC_EXPLICIT_ALPHA_WEBGL,f:Ei},"atc-rgbai-unorm-webgl":{gl:s.COMPRESSED_RGBA_ATC_INTERPOLATED_ALPHA_WEBGL,f:Ei}},RE=(Ae={},l(Ae,s.RED,1),l(Ae,s.RED_INTEGER,1),l(Ae,s.RG,2),l(Ae,s.RG_INTEGER,2),l(Ae,s.RGB,3),l(Ae,s.RGB_INTEGER,3),l(Ae,s.RGBA,4),l(Ae,s.RGBA_INTEGER,4),l(Ae,s.DEPTH_COMPONENT,1),l(Ae,s.DEPTH_STENCIL,1),l(Ae,s.ALPHA,1),l(Ae,s.LUMINANCE,1),l(Ae,s.LUMINANCE_ALPHA,2),Ae),AE=(De={},l(De,s.FLOAT,4),l(De,s.UNSIGNED_INT,4),l(De,s.INT,4),l(De,s.UNSIGNED_SHORT,2),l(De,s.SHORT,2),l(De,s.HALF_FLOAT,2),l(De,s.BYTE,1),l(De,s.UNSIGNED_BYTE,1),De);function fr(e,t){var r=ur(t),n=cr[r];if(!n||(Y(e)?n.gl===void 0:n.gl1===void 0))return!1;var i=n.x||Y(e)&&n.gl2ext||n.gl1ext;return i?Boolean(e.getExtension(i)):!0}function Uc(e,t){var r;return fr(e,t)&&((r=cr[t])===null||r===void 0?void 0:r.renderbuffer)}function ur(e){if(typeof e=="string")return e;var t=Object.entries(cr).find(function(r){var n=L(r,2),i=n[1];return i.gl===e||i.gl1===e});if(!t)throw new Error("Unknown texture format ".concat(e));return t[0]}function lr(e,t){var r=cr[e],n=t?r?.gl:r?.gl1;if(n===void 0)throw new Error("Unsupported texture format ".concat(e));return n}function wc(e,t){var r=ur(t);if(!fr(e,r))return!1;try{var n=Ur(r);if(n.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 Lc(e,t){var r=ur(t);return!(!fr(e,r)||typeof r=="number")}function Jr(e,t){var r=ur(e),n=lr(r,t),i=Ur(r);return{format:n,dataFormat:gE(i.format,i.integer,i.normalized,n),type:i.dataType?$r(i.dataType):s.UNSIGNED_BYTE,compressed:i.compressed}}function Hc(e){var t=cr[e];if(!(t!=null&&t.attachment))throw new Error("".concat(e," is not a depth stencil format"));return t.attachment}function Xc(e){var t=arguments.length>1&&arguments[1]!==void 0?arguments[1]:e.RGBA,r=arguments.length>2&&arguments[2]!==void 0?arguments[2]:s.RGBA,n=arguments.length>3&&arguments[3]!==void 0?arguments[3]:s.UNSIGNED_BYTE,i=null,o=null;try{i=e.createTexture(),e.bindTexture(s.TEXTURE_2D,i);var a=0,c=1,f=1,u=0,_=new Uint8Array([0,0,255,255]);e.texImage2D(e.TEXTURE_2D,a,t,c,f,u,r,n,_),o=e.createFramebuffer(),e.bindFramebuffer(s.FRAMEBUFFER,o),e.framebufferTexture2D(s.FRAMEBUFFER,s.COLOR_ATTACHMENT0,s.TEXTURE_2D,i,0);var E=e.checkFramebufferStatus(s.FRAMEBUFFER)===s.FRAMEBUFFER_COMPLETE;return e.bindTexture(s.TEXTURE_2D,null),E}finally{e.deleteTexture(i),e.deleteFramebuffer(o)}}function _r(e,t){var r=ur(e),n=Jr(r,t),i=RE[n.dataFormat]||4,o=AE[n.type]||1;return i*o}function gE(e,t,r,n){if(n===s.RGBA||n===s.RGB)return n;switch(e){case"r":return t&&!r?s.RED_INTEGER:s.RED;case"rg":return t&&!r?s.RG_INTEGER:s.RG;case"rgb":return t&&!r?s.RGB_INTEGER:s.RGB;case"rgba":return t&&!r?s.RGBA_INTEGER:s.RGBA;default:return s.RGBA}}function TE(e,t){var r=typeof Symbol<"u"&&e[Symbol.iterator]||e["@@iterator"];if(!r){if(Array.isArray(e)||(r=vE(e))||t&&e&&typeof e.length=="number"){r&&(e=r);var n=0,i=function(){};return{s:i,n:function(){return n>=e.length?{done:!0}:{done:!1,value:e[n++]}},e:function(u){throw u},f:i}}throw new TypeError(`Invalid attempt to iterate non-iterable instance.
1178
+ In order to be iterable, non-array objects must have a [Symbol.iterator]() method.`)}var o=!0,a=!1,c;return{s:function(){r=r.call(e)},n:function(){var u=r.next();return o=u.done,u},e:function(u){a=!0,c=u},f:function(){try{!o&&r.return!=null&&r.return()}finally{if(a)throw c}}}}function vE(e,t){if(e){if(typeof e=="string")return Vc(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 Vc(e,t)}}function Vc(e,t){(t==null||t>e.length)&&(t=e.length);for(var r=0,n=new Array(t);r<t;r++)n[r]=e[r];return n}function Wc(e){var t=SE(e),r=TE(Bc(e)),n;try{for(r.s();!(n=r.n()).done;){var i=n.value;t.add(i)}}catch(o){r.e(o)}finally{r.f()}return t}function SE(e){e.getExtension("EXT_color_buffer_float"),e.getExtension("WEBGL_color_buffer_float"),e.getExtension("EXT_float_blend");for(var t=new Set,r=0,n=Object.keys(jc);r<n.length;r++){var i=n[r];bE(e,i)&&t.add(i)}return t}function bE(e,t){var r=jc[t];if(!r)return!1;var n=r||[],i=L(n,2),o=i[0],a=i[1],c=Y(e)?a:o;if(typeof c=="boolean")return c;switch(t){case"texture-renderable-rgba32float-webgl":return Y(e)?Boolean(e.getExtension(c)):Xc(e);case"glsl-derivatives":return hi(e,c);case"glsl-frag-data":return hi(e,c,{behavior:"require"});case"glsl-frag-depth":return hi(e,c);default:return Boolean(e.getExtension(c))}}var di={};function hi(e,t){var r=arguments.length>2&&arguments[2]!==void 0?arguments[2]:{};if(!Fc(r))return!0;if(t in di)return di[t];var n=r.behavior||"enable",i="#extension GL_".concat(t," : ").concat(n,`
1179
+ void main(void) {}`),o=e.createShader(e.VERTEX_SHADER);if(!o)throw new Error("shader");e.shaderSource(o,i),e.compileShader(o);var a=e.getShaderParameter(o,e.COMPILE_STATUS);return e.deleteShader(o),di[t]=a,a}var jc={webgl:[!0,!0],webgl2:[!1,!0],"timer-query-webgl":["EXT_disjoint_timer_query","EXT_disjoint_timer_query_webgl2"],"vertex-array-object-webgl1":["OES_vertex_array_object",!0],"instanced-rendering-webgl1":["ANGLE_instanced_arrays",!0],"multiple-render-targets-webgl1":["WEBGL_draw_buffers",!0],"index-uint32-webgl1":["OES_element_index_uint",!0],"blend-minmax-webgl1":["EXT_blend_minmax",!0],"texture-blend-float-webgl1":["EXT_float_blend","EXT_float_blend"],"texture-formats-srgb-webgl1":["EXT_sRGB",!0],"texture-formats-depth-webgl1":["WEBGL_depth_texture",!0],"texture-formats-float32-webgl1":["OES_texture_float",!0],"texture-formats-float16-webgl1":["OES_texture_half_float",!0],"texture-filter-linear-float32-webgl":["OES_texture_float_linear","OES_texture_float_linear"],"texture-filter-linear-float16-webgl":["OES_texture_half_float_linear","OES_texture_half_float_linear"],"texture-filter-anisotropic-webgl":["EXT_texture_filter_anisotropic","EXT_texture_filter_anisotropic"],"texture-renderable-rgba32float-webgl":["WEBGL_color_buffer_float","EXT_color_buffer_float"],"texture-renderable-float32-webgl":[!1,"EXT_color_buffer_float"],"texture-renderable-float16-webgl":["EXT_color_buffer_half_float","EXT_color_buffer_half_float"],"glsl-frag-data":["WEBGL_draw_buffers",!0],"glsl-frag-depth":["EXT_frag_depth",!0],"glsl-derivatives":["OES_standard_derivatives",!0],"glsl-texture-lod":["EXT_shader_texture_lod",!0]};function Gc(e){var t=si(e);return{maxTextureDimension1D:0,maxTextureDimension2D:e.getParameter(s.MAX_TEXTURE_SIZE),maxTextureDimension3D:t?t.getParameter(s.MAX_3D_TEXTURE_SIZE):0,maxTextureArrayLayers:t?t.getParameter(s.MAX_ARRAY_TEXTURE_LAYERS):0,maxBindGroups:1,maxDynamicUniformBuffersPerPipelineLayout:0,maxDynamicStorageBuffersPerPipelineLayout:0,maxSampledTexturesPerShaderStage:e.getParameter(s.MAX_VERTEX_TEXTURE_IMAGE_UNITS),maxSamplersPerShaderStage:e.getParameter(s.MAX_COMBINED_TEXTURE_IMAGE_UNITS),maxStorageBuffersPerShaderStage:0,maxStorageTexturesPerShaderStage:0,maxUniformBuffersPerShaderStage:t?t.getParameter(s.MAX_UNIFORM_BUFFER_BINDINGS):0,maxUniformBufferBindingSize:t?t.getParameter(s.MAX_UNIFORM_BLOCK_SIZE):0,maxStorageBufferBindingSize:0,minUniformBufferOffsetAlignment:t?t.getParameter(s.UNIFORM_BUFFER_OFFSET_ALIGNMENT):0,minStorageBufferOffsetAlignment:0,maxVertexBuffers:0,maxVertexAttributes:e.getParameter(s.MAX_VERTEX_ATTRIBS),maxVertexBufferArrayStride:2048,maxInterStageShaderComponents:t?t.getParameter(s.MAX_VARYING_COMPONENTS):0,maxComputeWorkgroupStorageSize:0,maxComputeInvocationsPerWorkgroup:0,maxComputeWorkgroupSizeX:0,maxComputeWorkgroupSizeY:0,maxComputeWorkgroupSizeZ:0,maxComputeWorkgroupsPerDimension:0}}function Kc(e){var t,r=si(e);function n(o){return e.getParameter(o)}function i(o,a){return r?r.getParameter(o):a||0}return t={},l(t,s.ALIASED_LINE_WIDTH_RANGE,n(s.ALIASED_LINE_WIDTH_RANGE)),l(t,s.ALIASED_POINT_SIZE_RANGE,n(s.ALIASED_POINT_SIZE_RANGE)),l(t,s.MAX_TEXTURE_SIZE,n(s.MAX_TEXTURE_SIZE)),l(t,s.MAX_CUBE_MAP_TEXTURE_SIZE,n(s.MAX_CUBE_MAP_TEXTURE_SIZE)),l(t,s.MAX_TEXTURE_IMAGE_UNITS,n(s.MAX_TEXTURE_IMAGE_UNITS)),l(t,s.MAX_COMBINED_TEXTURE_IMAGE_UNITS,n(s.MAX_COMBINED_TEXTURE_IMAGE_UNITS)),l(t,s.MAX_VERTEX_TEXTURE_IMAGE_UNITS,n(s.MAX_VERTEX_TEXTURE_IMAGE_UNITS)),l(t,s.MAX_RENDERBUFFER_SIZE,n(s.MAX_RENDERBUFFER_SIZE)),l(t,s.MAX_VARYING_VECTORS,n(s.MAX_VARYING_VECTORS)),l(t,s.MAX_VERTEX_ATTRIBS,n(s.MAX_VERTEX_ATTRIBS)),l(t,s.MAX_VERTEX_UNIFORM_VECTORS,n(s.MAX_VERTEX_UNIFORM_VECTORS)),l(t,s.MAX_FRAGMENT_UNIFORM_VECTORS,n(s.MAX_FRAGMENT_UNIFORM_VECTORS)),l(t,s.MAX_VIEWPORT_DIMS,n(s.MAX_VIEWPORT_DIMS)),l(t,s.MAX_TEXTURE_MAX_ANISOTROPY_EXT,n(s.MAX_TEXTURE_MAX_ANISOTROPY_EXT)),l(t,s.MAX_3D_TEXTURE_SIZE,i(s.MAX_3D_TEXTURE_SIZE)),l(t,s.MAX_ARRAY_TEXTURE_LAYERS,i(s.MAX_ARRAY_TEXTURE_LAYERS)),l(t,s.MAX_CLIENT_WAIT_TIMEOUT_WEBGL,i(s.MAX_CLIENT_WAIT_TIMEOUT_WEBGL)),l(t,s.MAX_COLOR_ATTACHMENTS,i(s.MAX_COLOR_ATTACHMENTS)),l(t,s.MAX_COMBINED_FRAGMENT_UNIFORM_COMPONENTS,i(s.MAX_COMBINED_FRAGMENT_UNIFORM_COMPONENTS)),l(t,s.MAX_COMBINED_UNIFORM_BLOCKS,i(s.MAX_COMBINED_UNIFORM_BLOCKS)),l(t,s.MAX_COMBINED_VERTEX_UNIFORM_COMPONENTS,i(s.MAX_COMBINED_VERTEX_UNIFORM_COMPONENTS)),l(t,s.MAX_DRAW_BUFFERS,i(s.MAX_DRAW_BUFFERS)),l(t,s.MAX_ELEMENT_INDEX,i(s.MAX_ELEMENT_INDEX)),l(t,s.MAX_ELEMENTS_INDICES,i(s.MAX_ELEMENTS_INDICES)),l(t,s.MAX_ELEMENTS_VERTICES,i(s.MAX_ELEMENTS_VERTICES)),l(t,s.MAX_FRAGMENT_INPUT_COMPONENTS,i(s.MAX_FRAGMENT_INPUT_COMPONENTS)),l(t,s.MAX_FRAGMENT_UNIFORM_BLOCKS,i(s.MAX_FRAGMENT_UNIFORM_BLOCKS)),l(t,s.MAX_FRAGMENT_UNIFORM_COMPONENTS,i(s.MAX_FRAGMENT_UNIFORM_COMPONENTS)),l(t,s.MAX_SAMPLES,i(s.MAX_SAMPLES)),l(t,s.MAX_SERVER_WAIT_TIMEOUT,i(s.MAX_SERVER_WAIT_TIMEOUT)),l(t,s.MAX_TEXTURE_LOD_BIAS,i(s.MAX_TEXTURE_LOD_BIAS)),l(t,s.MAX_TRANSFORM_FEEDBACK_INTERLEAVED_COMPONENTS,i(s.MAX_TRANSFORM_FEEDBACK_INTERLEAVED_COMPONENTS)),l(t,s.MAX_TRANSFORM_FEEDBACK_SEPARATE_ATTRIBS,i(s.MAX_TRANSFORM_FEEDBACK_SEPARATE_ATTRIBS)),l(t,s.MAX_TRANSFORM_FEEDBACK_SEPARATE_COMPONENTS,i(s.MAX_TRANSFORM_FEEDBACK_SEPARATE_COMPONENTS)),l(t,s.MAX_UNIFORM_BLOCK_SIZE,i(s.MAX_UNIFORM_BLOCK_SIZE)),l(t,s.MAX_UNIFORM_BUFFER_BINDINGS,i(s.MAX_UNIFORM_BUFFER_BINDINGS)),l(t,s.MAX_VARYING_COMPONENTS,i(s.MAX_VARYING_COMPONENTS)),l(t,s.MAX_VERTEX_OUTPUT_COMPONENTS,i(s.MAX_VERTEX_OUTPUT_COMPONENTS)),l(t,s.MAX_VERTEX_UNIFORM_BLOCKS,i(s.MAX_VERTEX_UNIFORM_BLOCKS)),l(t,s.MAX_VERTEX_UNIFORM_COMPONENTS,i(s.MAX_VERTEX_UNIFORM_COMPONENTS)),l(t,s.MIN_PROGRAM_TEXEL_OFFSET,i(s.MIN_PROGRAM_TEXEL_OFFSET)),l(t,s.MAX_PROGRAM_TEXEL_OFFSET,i(s.MAX_PROGRAM_TEXEL_OFFSET)),l(t,s.UNIFORM_BUFFER_OFFSET_ALIGNMENT,i(s.UNIFORM_BUFFER_OFFSET_ALIGNMENT)),t}var Ti=nt(ke(),1);function et(e,t,r){var n=Re.attach(e),i=n.gl;if(OE(t))return r(e);var o=t.nocatch,a=o===void 0?!0:o;Je(i),We(i,t);var c;if(a)c=r(i),je(i);else try{c=r(i)}finally{je(i)}return c}function OE(e){for(var t in e)return!1;return!0}function Yc(e,t,r,n){if(Ht(t))return n(e);Je(e.gl);try{return yE(e,t),We(e,r),n(e)}finally{je(e.gl)}}function yE(e,t){var r=Re.attach(e),n=r.gl;if(t.cullMode)switch(t.cullMode){case"none":n.disable(s.CULL_FACE);break;case"front":n.enable(s.CULL_FACE),n.cullFace(s.FRONT);break;case"back":n.enable(s.CULL_FACE),n.cullFace(s.BACK);break}if(t.frontFace&&n.frontFace(Ri("frontFace",t.frontFace,{ccw:s.CCW,cw:s.CW})),t.depthBias!==void 0&&n.polygonOffset(t.depthBias,t.depthBiasSlopeScale||0),t.depthWriteEnabled!==void 0&&n.depthMask(IE("depthWriteEnabled",t.depthWriteEnabled)),t.depthCompare&&(t.depthCompare!=="always"?n.enable(s.DEPTH_TEST):n.disable(s.DEPTH_TEST),n.depthFunc(en("depthCompare",t.depthCompare))),t.stencilWriteMask){var i=t.stencilWriteMask;n.stencilMaskSeparate(s.FRONT,i),n.stencilMaskSeparate(s.BACK,i)}if(t.stencilReadMask&&F.warn("stencilReadMask not supported under WebGL"),t.stencilCompare){var o=t.stencilReadMask||4294967295,a=en("depthCompare",t.stencilCompare);t.stencilCompare!=="always"?n.enable(s.STENCIL_TEST):n.disable(s.STENCIL_TEST),n.stencilFuncSeparate(s.FRONT,a,0,o),n.stencilFuncSeparate(s.BACK,a,0,o)}if(t.stencilPassOperation&&t.stencilFailOperation&&t.stencilDepthFailOperation){var c=mi("stencilPassOperation",t.stencilPassOperation),f=mi("stencilFailOperation",t.stencilFailOperation),u=mi("stencilDepthFailOperation",t.stencilDepthFailOperation);n.stencilOpSeparate(s.FRONT,f,u,c),n.stencilOpSeparate(s.BACK,f,u,c)}}function en(e,t){return Ri(e,t,{never:s.NEVER,less:s.LESS,equal:s.EQUAL,"less-equal":s.LEQUAL,greater:s.GREATER,"not-equal":s.NOTEQUAL,"greater-equal":s.GEQUAL,always:s.ALWAYS})}function mi(e,t){return Ri(e,t,{keep:s.KEEP,zero:s.ZERO,replace:s.REPLACE,invert:s.INVERT,"increment-clamp":s.INCR,"decrement-clamp":s.DECR,"increment-wrap":s.INCR_WRAP,"decrement-wrap":s.DECR_WRAP})}function NE(e,t){return"Illegal parameter ".concat(t," for ").concat(e)}function Ri(e,t,r){if(!(t in r))throw new Error(NE(e,t));return r[t]}function IE(e,t){return t}function kc(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter(function(i){return Object.getOwnPropertyDescriptor(e,i).enumerable})),r.push.apply(r,n)}return r}function ME(e){for(var t=1;t<arguments.length;t++){var r=arguments[t]!=null?arguments[t]:{};t%2?kc(Object(r),!0).forEach(function(n){l(e,n,r[n])}):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(r)):kc(Object(r)).forEach(function(n){Object.defineProperty(e,n,Object.getOwnPropertyDescriptor(r,n))})}return e}function tn(e){var t={};return e.addressModeU&&(t[s.TEXTURE_WRAP_S]=Ai(e.addressModeU)),e.addressModeV&&(t[s.TEXTURE_WRAP_T]=Ai(e.addressModeV)),e.addressModeW&&(t[s.TEXTURE_WRAP_R]=Ai(e.addressModeW)),e.magFilter&&(t[s.TEXTURE_MAG_FILTER]=zc(e.magFilter)),(e.minFilter||e.mipmapFilter)&&(t[s.TEXTURE_MIN_FILTER]=CE(e.minFilter||"linear",e.mipmapFilter)),e.lodMinClamp!==void 0&&(t[s.TEXTURE_MIN_LOD]=e.lodMinClamp),e.lodMaxClamp!==void 0&&(t[s.TEXTURE_MAX_LOD]=e.lodMaxClamp),e.type==="comparison-sampler"&&(t[s.TEXTURE_COMPARE_MODE]=s.COMPARE_REF_TO_TEXTURE),e.compare&&(t[s.TEXTURE_COMPARE_FUNC]=en("compare",e.compare)),e.maxAnisotropy&&(t[s.TEXTURE_MAX_ANISOTROPY_EXT]=e.maxAnisotropy),t}function Ai(e){switch(e){case"clamp-to-edge":return s.CLAMP_TO_EDGE;case"repeat":return s.REPEAT;case"mirror-repeat":return s.MIRRORED_REPEAT}}function zc(e){switch(e){case"nearest":return s.NEAREST;case"linear":return s.LINEAR}}function CE(e,t){if(!t)return zc(e);switch(e){case"nearest":return t==="nearest"?s.NEAREST_MIPMAP_NEAREST:s.NEAREST_MIPMAP_LINEAR;case"linear":return t==="nearest"?s.LINEAR_MIPMAP_NEAREST:s.LINEAR_MIPMAP_LINEAR}}function qc(e){var t=ME({},e);return e[s.TEXTURE_MIN_FILTER]!==s.NEAREST&&(t[s.TEXTURE_MIN_FILTER]=s.LINEAR),t[s.TEXTURE_WRAP_S]=s.CLAMP_TO_EDGE,t[s.TEXTURE_WRAP_T]=s.CLAMP_TO_EDGE,t}var gi=nt(ke(),1);function Zc(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter(function(i){return Object.getOwnPropertyDescriptor(e,i).enumerable})),r.push.apply(r,n)}return r}function $c(e){for(var t=1;t<arguments.length;t++){var r=arguments[t]!=null?arguments[t]:{};t%2?Zc(Object(r),!0).forEach(function(n){l(e,n,r[n])}):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(r)):Zc(Object(r)).forEach(function(n){Object.defineProperty(e,n,Object.getOwnPropertyDescriptor(r,n))})}return e}function PE(e){var t=xE();return function(){var n=I(e),i;if(t){var o=I(this).constructor;i=Reflect.construct(n,arguments,o)}else i=n.apply(this,arguments);return X(this,i)}}function xE(){if(typeof Reflect>"u"||!Reflect.construct||Reflect.construct.sham)return!1;if(typeof Proxy=="function")return!0;try{return Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],function(){})),!0}catch{return!1}}var FE=10,Ue=function(e){H(r,e);var t=PE(r);function r(i){var o,a=arguments.length>1&&arguments[1]!==void 0?arguments[1]:{};C(this,r),o=t.call(this,i,a),o.device=void 0,o.gl=void 0,o.gl2=void 0,o.handle=void 0,o.glTarget=void 0,o.glUsage=void 0,o.glIndexType=s.UNSIGNED_SHORT,o.byteLength=void 0,o.bytesUsed=void 0,o.debugData=null,o.device=i,o.gl=o.device.gl,o.gl2=o.device.gl2;var c=oe(a)==="object"?a.handle:void 0;return o.handle=c||o.gl.createBuffer(),i.setSpectorMetadata(o.handle,$c($c({},o.props),{},{data:oe(o.props.data)})),o.glTarget=DE(o.props.usage),o.glUsage=BE(o.props.usage),o.glIndexType=o.props.indexType==="uint32"?s.UNSIGNED_INT:s.UNSIGNED_SHORT,o.debugData=null,a.data?o._initWithData(a.data,a.byteOffset,a.byteLength):o._initWithByteLength(a.byteLength||0),o}var n=r.prototype;return n._initWithData=function(o){var a=arguments.length>1&&arguments[1]!==void 0?arguments[1]:0,c=arguments.length>2&&arguments[2]!==void 0?arguments[2]:o.byteLength+a;w(ArrayBuffer.isView(o));var f=this._getWriteTarget();return this.gl.bindBuffer(f,this.handle),this.gl.bufferData(f,c,this.glUsage),this.gl.bufferSubData(f,a,o),this.gl.bindBuffer(f,null),this.debugData=o.slice(0,FE),this.bytesUsed=c,this.byteLength=c,this.trackAllocatedMemory(c),this},n._initWithByteLength=function(o){w(o>=0);var a=o;o===0&&(a=new Float32Array(0));var c=this._getWriteTarget();return this.gl.bindBuffer(c,this.handle),this.gl.bufferData(c,a,this.glUsage),this.gl.bindBuffer(c,null),this.debugData=null,this.bytesUsed=o,this.byteLength=o,this},n.destroy=function(){!this.destroyed&&this.handle&&(this.removeStats(),this.trackDeallocatedMemory(),this.gl.deleteBuffer(this.handle),this.destroyed=!0,this.handle=null)},n.write=function(o){var a=arguments.length>1&&arguments[1]!==void 0?arguments[1]:0,c=0,f=void 0,u=this.device.isWebGL2?s.COPY_WRITE_BUFFER:this.glTarget;this.gl.bindBuffer(u,this.handle),c!==0||f!==void 0?(this.device.assertWebGL2(),this.gl2.bufferSubData(u,a,o,c,f)):this.gl.bufferSubData(u,a,o),this.gl.bindBuffer(u,null)},n.readAsync=function(){var i=pe(gi.default.mark(function a(){var c,f,u,_,E=arguments;return gi.default.wrap(function(d){for(;;)switch(d.prev=d.next){case 0:return c=E.length>0&&E[0]!==void 0?E[0]:0,f=E.length>1?E[1]:void 0,this.device.assertWebGL2(),u=new Uint8Array(f),_=0,this.gl.bindBuffer(s.COPY_READ_BUFFER,this.handle),this.gl2.getBufferSubData(s.COPY_READ_BUFFER,c,u,_,f),this.gl.bindBuffer(s.COPY_READ_BUFFER,null),d.abrupt("return",u);case 9:case"end":return d.stop()}},a,this)}));function o(){return i.apply(this,arguments)}return o}(),n._invalidateDebugData=function(){this.debugData=null},n._getWriteTarget=function(){return this.glTarget},n._getReadTarget=function(){return this.glTarget},M(r)}(re);function DE(e){return e&re.INDEX?s.ELEMENT_ARRAY_BUFFER:e&re.VERTEX?s.ARRAY_BUFFER:e&re.UNIFORM?s.UNIFORM_BUFFER:s.ARRAY_BUFFER}function BE(e){return e&re.INDEX?s.STATIC_DRAW:e&re.VERTEX?s.STATIC_DRAW:e&re.UNIFORM?s.DYNAMIC_DRAW:s.STATIC_DRAW}function UE(e){var t=wE();return function(){var n=I(e),i;if(t){var o=I(this).constructor;i=Reflect.construct(n,arguments,o)}else i=n.apply(this,arguments);return X(this,i)}}function wE(){if(typeof Reflect>"u"||!Reflect.construct||Reflect.construct.sham)return!1;if(typeof Proxy=="function")return!0;try{return Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],function(){})),!0}catch{return!1}}var Er=function(e){H(r,e);var t=UE(r);function r(i,o){var a;return C(this,r),a=t.call(this,i,o),a.device=void 0,a.handle=void 0,a.parameters=void 0,a.device=i,a.parameters=tn(o),a.device.isWebGL2&&(a.handle=a.handle||a.device.gl2.createSampler(),a._setSamplerParameters(a.parameters)),a}var n=r.prototype;return n.destroy=function(){this.handle&&(this.device.gl2.deleteSampler(this.handle),this.handle=void 0)},n.toString=function(){return"Sampler(".concat(this.id,",").concat(JSON.stringify(this.props),")")},n._setSamplerParameters=function(o){for(var a=0,c=Object.entries(o);a<c.length;a++){var f=L(c[a],2),u=f[0],_=f[1],E=Number(u);switch(E){case s.TEXTURE_MIN_LOD:case s.TEXTURE_MAX_LOD:this.device.gl2.samplerParameterf(this.handle,E,_);break;default:this.device.gl2.samplerParameteri(this.handle,E,_);break}}},M(r)}(Nr);function HE(e,t){var r=typeof Symbol<"u"&&e[Symbol.iterator]||e["@@iterator"];if(!r){if(Array.isArray(e)||(r=XE(e))||t&&e&&typeof e.length=="number"){r&&(e=r);var n=0,i=function(){};return{s:i,n:function(){return n>=e.length?{done:!0}:{done:!1,value:e[n++]}},e:function(u){throw u},f:i}}throw new TypeError(`Invalid attempt to iterate non-iterable instance.
1180
+ In order to be iterable, non-array objects must have a [Symbol.iterator]() method.`)}var o=!0,a=!1,c;return{s:function(){r=r.call(e)},n:function(){var u=r.next();return o=u.done,u},e:function(u){a=!0,c=u},f:function(){try{!o&&r.return!=null&&r.return()}finally{if(a)throw c}}}}function XE(e,t){if(e){if(typeof e=="string")return Qc(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 Qc(e,t)}}function Qc(e,t){(t==null||t>e.length)&&(t=e.length);for(var r=0,n=new Array(t);r<t;r++)n[r]=e[r];return n}function Jc(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter(function(i){return Object.getOwnPropertyDescriptor(e,i).enumerable})),r.push.apply(r,n)}return r}function rn(e){for(var t=1;t<arguments.length;t++){var r=arguments[t]!=null?arguments[t]:{};t%2?Jc(Object(r),!0).forEach(function(n){l(e,n,r[n])}):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(r)):Jc(Object(r)).forEach(function(n){Object.defineProperty(e,n,Object.getOwnPropertyDescriptor(r,n))})}return e}function VE(e){var t=WE();return function(){var n=I(e),i;if(t){var o=I(this).constructor;i=Reflect.construct(n,arguments,o)}else i=n.apply(this,arguments);return X(this,i)}}function WE(){if(typeof Reflect>"u"||!Reflect.construct||Reflect.construct.sham)return!1;if(typeof Proxy=="function")return!0;try{return Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],function(){})),!0}catch{return!1}}var jE={parameters:{},pixelStore:{},pixels:null,border:0,dataFormat:void 0,textureUnit:void 0,target:void 0},Ne=function(e){H(r,e);var t=VE(r);function r(i,o){var a,c;return C(this,r),c=t.call(this,i,rn(rn({},jE),{},{format:"rgba8unorm"},o)),c.MAX_ATTRIBUTES=void 0,c.device=void 0,c.gl=void 0,c.gl2=void 0,c.handle=void 0,c.sampler=void 0,c.glFormat=void 0,c.type=void 0,c.dataFormat=void 0,c.mipmaps=void 0,c.target=void 0,c.textureUnit=void 0,c.loaded=!1,c._video=void 0,c.device=i,c.gl=c.device.gl,c.gl2=c.device.gl2,c.handle=c.props.handle||c.gl.createTexture(),c.device.setSpectorMetadata(c.handle,rn(rn({},c.props),{},{data:oe(c.props.data)})),c.glFormat=s.RGBA,c.target=GE(c.props),c.loaded=!1,typeof((a=c.props)===null||a===void 0?void 0:a.data)=="string"&&Object.assign(c.props,{data:Mn(c.props.data)}),c.initialize(c.props),Object.seal(Ce(c)),c}var n=r.prototype;return n.destroy=function(){this.handle&&(this.gl.deleteTexture(this.handle),this.removeStats(),this.trackDeallocatedMemory("Texture"),this.destroyed=!0)},n.toString=function(){return"Texture(".concat(this.id,",").concat(this.width,"x").concat(this.height,")")},n.initialize=function(){var o=this,a=arguments.length>0&&arguments[0]!==void 0?arguments[0]:{};if(this.props.dimension==="cube")return this.initializeCube(a);var c=a.data;if(c instanceof Promise)return c.then(function(T){return o.initialize(Object.assign({},a,{pixels:T,data:T}))}),this;var f=typeof HTMLVideoElement<"u"&&c instanceof HTMLVideoElement;if(f&&c.readyState<HTMLVideoElement.HAVE_METADATA)return this._video=null,c.addEventListener("loadeddata",function(){return o.initialize(a)}),this;var u=a.parameters,_=u===void 0?{}:u,E=a.pixels,p=E===void 0?null:E,d=a.pixelStore,h=d===void 0?{}:d,m=a.textureUnit,A=m===void 0?void 0:m;c||(c=p);var g=a.width,y=a.height,b=a.dataFormat,S=a.type,x=a.compressed,P=x===void 0?!1:x,j=a.mipmaps,W=j===void 0?!0:j,K=a.depth,V=K===void 0?0:K,O=lr(a.format,this.device.isWebGL2),R=this._deduceParameters({format:a.format,type:S,dataFormat:b,compressed:P,data:c,width:g,height:y});return g=R.width,y=R.height,P=R.compressed,b=R.dataFormat,S=R.type,this.width=g,this.height=y,this.glFormat=O,this.type=S,this.dataFormat=b,this.textureUnit=A,Number.isFinite(this.textureUnit)&&(this.gl.activeTexture(s.TEXTURE0+this.textureUnit),this.gl.bindTexture(this.target,this.handle)),W&&this.device.isWebGL1&&nn(this.width,this.height)&&(F.warn("texture: ".concat(this," is Non-Power-Of-Two, disabling mipmaps"))(),W=!1),this.mipmaps=W,this.setImageData({data:c,width:g,height:y,depth:V,format:O,type:S,dataFormat:b,parameters:h,compressed:P}),this.setSampler(a.sampler),this._setSamplerParameters(_),W&&this.generateMipmap(),f&&(this._video={video:c,parameters:_,lastTime:c.readyState>=HTMLVideoElement.HAVE_CURRENT_DATA?c.currentTime:-1}),this},n.initializeCube=function(o){var a=this,c=o.mipmaps,f=c===void 0?!0:c,u=o.parameters,_=u===void 0?{}:u;return this.setCubeMapImageData(o).then(function(){a.loaded=!0,f&&a.generateMipmap(o),a.setSampler(o.sampler),a._setSamplerParameters(_)}),this},n.setSampler=function(){var o=arguments.length>0&&arguments[0]!==void 0?arguments[0]:{},a;o instanceof Er?(this.sampler=o,a=o.props):(this.sampler=new Er(this.device,o),a=o);var c=tn(a);return this._setSamplerParameters(c),this},n.resize=function(o){var a=o.height,c=o.width,f=o.mipmaps,u=f===void 0?!1:f;return c!==this.width||a!==this.height?this.initialize({width:c,height:a,format:this.format,type:this.type,dataFormat:this.dataFormat,mipmaps:u}):this},n.update=function(){if(this._video){var o=this._video,a=o.video,c=o.parameters,f=o.lastTime;if(f===a.currentTime||a.readyState<HTMLVideoElement.HAVE_CURRENT_DATA)return;this.setSubImageData({data:a,parameters:c}),this.mipmaps&&this.generateMipmap(),this._video.lastTime=a.currentTime}},n.generateMipmap=function(){var o=this,a=arguments.length>0&&arguments[0]!==void 0?arguments[0]:{};return this.device.isWebGL1&&nn(this.width,this.height)?(F.warn("texture: ".concat(this," is Non-Power-Of-Two, disabling mipmaping"))(),this):(this.mipmaps=!0,this.gl.bindTexture(this.target,this.handle),et(this.gl,a,function(){o.gl.generateMipmap(o.target)}),this.gl.bindTexture(this.target,null),this)},n.setImageData=function(o){var a=this;if(this.props.dimension==="3d"||this.props.dimension==="2d-array")return this.setImageData3D(o);this.trackDeallocatedMemory("Texture");var c=o.target,f=c===void 0?this.target:c,u=o.pixels,_=u===void 0?null:u,E=o.level,p=E===void 0?0:E,d=o.glFormat,h=d===void 0?this.glFormat:d,m=o.offset,A=m===void 0?0:m,g=o.parameters,y=g===void 0?{}:g,b=o.data,S=b===void 0?null:b,x=o.type,P=x===void 0?this.type:x,j=o.width,W=j===void 0?this.width:j,K=o.height,V=K===void 0?this.height:K,O=o.dataFormat,R=O===void 0?this.dataFormat:O,T=o.compressed,N=T===void 0?!1:T;S||(S=_);var B=this._deduceParameters({format:this.props.format,type:P,dataFormat:R,compressed:N,data:S,width:W,height:V});P=B.type,R=B.dataFormat,N=B.compressed,W=B.width,V=B.height;var U=this.gl;U.bindTexture(this.target,this.handle);var k=null,ie=this._getDataType({data:S,compressed:N});S=ie.data,k=ie.dataType;var Q;if(et(this.gl,y,function(){switch(k){case"null":U.texImage2D(f,p,h,W,V,0,R,P,S);break;case"typed-array":U.texImage2D(f,p,h,W,V,0,R,P,S,A);break;case"buffer":Q=a.device.assertWebGL2(),Q.bindBuffer(s.PIXEL_UNPACK_BUFFER,S.handle||S),Q.texImage2D(f,p,h,W,V,0,R,P,A),Q.bindBuffer(s.PIXEL_UNPACK_BUFFER,null);break;case"browser-object":a.device.isWebGL2?U.texImage2D(f,p,h,W,V,0,R,P,S):U.texImage2D(f,p,h,R,P,S);break;case"compressed":var ce=HE(S.entries()),Ee;try{for(ce.s();!(Ee=ce.n()).done;){var pr=L(Ee.value,2),Bt=pr[0],ge=pr[1];U.compressedTexImage2D(f,Bt,ge.format,ge.width,ge.height,0,ge.data)}}catch(dr){ce.e(dr)}finally{ce.f()}break;default:w(!1,"Unknown image data type")}}),S&&S.byteLength)this.trackAllocatedMemory(S.byteLength,"Texture");else{var le=_r(this.props.format,this.device.isWebGL2);this.trackAllocatedMemory(this.width*this.height*le,"Texture")}return this.loaded=!0,this},n.setSubImageData=function(o){var a=this,c=o.target,f=c===void 0?this.target:c,u=o.pixels,_=u===void 0?null:u,E=o.data,p=E===void 0?null:E,d=o.x,h=d===void 0?0:d,m=o.y,A=m===void 0?0:m,g=o.width,y=g===void 0?this.width:g,b=o.height,S=b===void 0?this.height:b,x=o.level,P=x===void 0?0:x,j=o.glFormat,W=j===void 0?this.glFormat:j,K=o.type,V=K===void 0?this.type:K,O=o.dataFormat,R=O===void 0?this.dataFormat:O,T=o.compressed,N=T===void 0?!1:T,B=o.offset,U=B===void 0?0:B,k=o.parameters,ie=k===void 0?{}:k,Q=this._deduceParameters({format:this.props.format,type:V,dataFormat:R,compressed:N,data:p,width:y,height:S});if(V=Q.type,R=Q.dataFormat,N=Q.compressed,y=Q.width,S=Q.height,w(this.depth===1,"texSubImage not supported for 3D textures"),p||(p=_),p&&p.data){var le=p;p=le.data,y=le.shape[0],S=le.shape[1]}p instanceof Ue&&(p=p.handle),this.gl.bindTexture(this.target,this.handle),et(this.gl,ie,function(){if(N)a.gl.compressedTexSubImage2D(f,P,h,A,y,S,W,p);else if(p===null)a.gl.texSubImage2D(f,P,h,A,y,S,R,V,null);else if(ArrayBuffer.isView(p))a.gl.texSubImage2D(f,P,h,A,y,S,R,V,p,U);else if(typeof WebGLBuffer<"u"&&p instanceof WebGLBuffer){var ce=a.device.assertWebGL2();ce.bindBuffer(s.PIXEL_UNPACK_BUFFER,p),ce.texSubImage2D(f,P,h,A,y,S,R,V,U),ce.bindBuffer(s.PIXEL_UNPACK_BUFFER,null)}else if(a.device.isWebGL2){var Ee=a.device.assertWebGL2();Ee.texSubImage2D(f,P,h,A,y,S,R,V,p)}else a.gl.texSubImage2D(f,P,h,A,R,V,p)}),this.gl.bindTexture(this.target,null)},n.copyFramebuffer=function(){var o=arguments.length>0&&arguments[0]!==void 0?arguments[0]:{};return F.error("Texture.copyFramebuffer({...}) is no logner supported, use copyToTexture(source, target, opts})")(),null},n.getActiveUnit=function(){return this.gl.getParameter(s.ACTIVE_TEXTURE)-s.TEXTURE0},n.bind=function(){var o=arguments.length>0&&arguments[0]!==void 0?arguments[0]:this.textureUnit,a=this.gl;return o!==void 0&&(this.textureUnit=o,a.activeTexture(a.TEXTURE0+o)),a.bindTexture(this.target,this.handle),o},n.unbind=function(){var o=arguments.length>0&&arguments[0]!==void 0?arguments[0]:this.textureUnit,a=this.gl;return o!==void 0&&(this.textureUnit=o,a.activeTexture(a.TEXTURE0+o)),a.bindTexture(this.target,null),o},n._getDataType=function(o){var a=o.data,c=o.compressed,f=c===void 0?!1:c;return f?{data:a,dataType:"compressed"}:a===null?{data:a,dataType:"null"}:ArrayBuffer.isView(a)?{data:a,dataType:"typed-array"}:a instanceof Ue?{data:a.handle,dataType:"buffer"}:typeof WebGLBuffer<"u"&&a instanceof WebGLBuffer?{data:a,dataType:"buffer"}:{data:a,dataType:"browser-object"}},n._deduceParameters=function(o){var a=o.format,c=o.data,f=o.width,u=o.height,_=o.dataFormat,E=o.type,p=o.compressed,d=Jr(a,this.device.isWebGL2);_=_||d.dataFormat,E=E||d.type,p=p||d.compressed;var h=this._deduceImageSize(c,f,u);return f=h.width,u=h.height,{dataFormat:_,type:E,compressed:p,width:f,height:u,format:a,data:c}},n._deduceImageSize=function(o,a,c){var f;return typeof ImageData<"u"&&o instanceof ImageData?f={width:o.width,height:o.height}:typeof HTMLImageElement<"u"&&o instanceof HTMLImageElement?f={width:o.naturalWidth,height:o.naturalHeight}:typeof HTMLCanvasElement<"u"&&o instanceof HTMLCanvasElement?f={width:o.width,height:o.height}:typeof ImageBitmap<"u"&&o instanceof ImageBitmap?f={width:o.width,height:o.height}:typeof HTMLVideoElement<"u"&&o instanceof HTMLVideoElement?f={width:o.videoWidth,height:o.videoHeight}:o?f={width:a,height:c}:f={width:a>=0?a:1,height:c>=0?c:1},w(f,"Could not deduced texture size"),w(a===void 0||f.width===a,"Deduced texture width does not match supplied width"),w(c===void 0||f.height===c,"Deduced texture height does not match supplied height"),f},n.setCubeMapImageData=function(){var i=pe(Ti.default.mark(function a(c){var f=this,u,_,E,p,d,h,m,A,g,y,b;return Ti.default.wrap(function(x){for(;;)switch(x.prev=x.next){case 0:return u=this.gl,_=c.width,E=c.height,p=c.pixels,d=c.data,h=c.format,m=h===void 0?s.RGBA:h,A=c.type,g=A===void 0?s.UNSIGNED_BYTE:A,y=p||d,x.next=5,Promise.all(r.FACES.map(function(P){var j=y[P];return Promise.all(Array.isArray(j)?j:[j])}));case 5:b=x.sent,this.bind(),r.FACES.forEach(function(P,j){b[j].length>1&&f.props.mipmaps!==!1&&F.warn("".concat(f.id," has mipmap and multiple LODs."))(),b[j].forEach(function(W,K){_&&E?u.texImage2D(P,K,m,_,E,0,m,g,W):u.texImage2D(P,K,m,m,g,W)})}),this.unbind();case 9:case"end":return x.stop()}},a,this)}));function o(a){return i.apply(this,arguments)}return o}(),n.setImageDataForFace=function(o){var a=this,c=o.face,f=o.width,u=o.height,_=o.pixels,E=o.data,p=o.format,d=p===void 0?s.RGBA:p,h=o.type,m=h===void 0?s.UNSIGNED_BYTE:h,A=this.gl,g=_||E;return this.bind(),g instanceof Promise?g.then(function(y){return a.setImageDataForFace(Object.assign({},o,{face:c,data:y,pixels:y}))}):this.width||this.height?A.texImage2D(c,0,d,f,u,0,d,m,g):A.texImage2D(c,0,d,d,m,g),this},n.setImageData3D=function(o){var a=this,c=o.level,f=c===void 0?0:c,u=o.dataFormat,_=o.format,E=o.type,p=o.width,d=o.height,h=o.depth,m=h===void 0?1:h,A=o.offset,g=A===void 0?0:A,y=o.data,b=o.parameters,S=b===void 0?{}:b;this.trackDeallocatedMemory("Texture"),this.gl.bindTexture(this.target,this.handle);var x=Jr(_,this.device.isWebGL2);if(et(this.gl,S,function(){ArrayBuffer.isView(y)&&a.gl.texImage3D(a.target,f,x.format,p,d,m,0,x.dataFormat,x.type,y),y instanceof Ue&&(a.gl.bindBuffer(s.PIXEL_UNPACK_BUFFER,y.handle),a.gl.texImage3D(a.target,f,u,p,d,m,0,_,E,g))}),y&&y.byteLength)this.trackAllocatedMemory(y.byteLength,"Texture");else{var P=_r(this.props.format,this.device.isWebGL2);this.trackAllocatedMemory(this.width*this.height*this.depth*P,"Texture")}return this.loaded=!0,this},n._setSamplerParameters=function(o){if(this.device.isWebGL1&&nn(this.width,this.height)&&(o=qc(o)),!Ht(o)){KE(o),this.gl.bindTexture(this.target,this.handle);for(var a=0,c=Object.entries(o);a<c.length;a++){var f=L(c[a],2),u=f[0],_=f[1],E=Number(u),p=_;switch(E){case s.TEXTURE_MIN_LOD:case s.TEXTURE_MAX_LOD:this.gl.texParameterf(this.target,E,p);break;default:this.gl.texParameteri(this.target,E,p);break}}this.gl.bindTexture(this.target,null)}},n._getWebGL1NPOTParameterOverride=function(o,a){var c=this.device.isWebGL1&&nn(this.width,this.height);if(c)switch(o){case s.TEXTURE_MIN_FILTER:if(a!==s.LINEAR&&a!==s.NEAREST)return s.LINEAR;break;case s.TEXTURE_WRAP_S:case s.TEXTURE_WRAP_T:return s.CLAMP_TO_EDGE;default:break}return a},M(r)}(Te);Ne.FACES=[s.TEXTURE_CUBE_MAP_POSITIVE_X,s.TEXTURE_CUBE_MAP_NEGATIVE_X,s.TEXTURE_CUBE_MAP_POSITIVE_Y,s.TEXTURE_CUBE_MAP_NEGATIVE_Y,s.TEXTURE_CUBE_MAP_POSITIVE_Z,s.TEXTURE_CUBE_MAP_NEGATIVE_Z];function GE(e){switch(e.dimension){case"2d":return s.TEXTURE_2D;case"cube":return s.TEXTURE_CUBE_MAP;case"2d-array":return s.TEXTURE_2D_ARRAY;case"3d":return s.TEXTURE_3D;case"1d":case"cube-array":default:throw new Error(e.dimension)}}function nn(e,t){return!e||!t?!1:!br(e)||!br(t)}function KE(e){F.log(1,"texture sampler parameters",e)()}function on(e,t){if(typeof t!="string")return t;var r=Number(t);if(!isNaN(r))return r;t=t.replace(/^.*\./,"");var n=e[t];return w(n!==void 0,"Accessing undefined constant GL.".concat(t)),n}function YE(e,t){var r=typeof Symbol<"u"&&e[Symbol.iterator]||e["@@iterator"];if(!r){if(Array.isArray(e)||(r=kE(e))||t&&e&&typeof e.length=="number"){r&&(e=r);var n=0,i=function(){};return{s:i,n:function(){return n>=e.length?{done:!0}:{done:!1,value:e[n++]}},e:function(u){throw u},f:i}}throw new TypeError(`Invalid attempt to iterate non-iterable instance.
1181
+ In order to be iterable, non-array objects must have a [Symbol.iterator]() method.`)}var o=!0,a=!1,c;return{s:function(){r=r.call(e)},n:function(){var u=r.next();return o=u.done,u},e:function(u){a=!0,c=u},f:function(){try{!o&&r.return!=null&&r.return()}finally{if(a)throw c}}}}function kE(e,t){if(e){if(typeof e=="string")return ef(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 ef(e,t)}}function ef(e,t){(t==null||t>e.length)&&(t=e.length);for(var r=0,n=new Array(t);r<t;r++)n[r]=e[r];return n}function zE(e){var t=qE();return function(){var n=I(e),i;if(t){var o=I(this).constructor;i=Reflect.construct(n,arguments,o)}else i=n.apply(this,arguments);return X(this,i)}}function qE(){if(typeof Reflect>"u"||!Reflect.construct||Reflect.construct.sham)return!1;if(typeof Proxy=="function")return!0;try{return Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],function(){})),!0}catch{return!1}}var xt="Resource subclass must define virtual methods",tf=function(e){H(r,e);var t=zE(r);function r(i,o,a){var c;C(this,r),c=t.call(this,i,o,a),c.device=void 0,c.gl=void 0,c.gl2=void 0,c._handle=void 0,c._bound=!1,c.byteLength=0,c.device=Re.attach(i);var f=c.device.gl;_c(f);var u=o||{},_=u.id;return c.gl=f,c.gl2=f,c.id=_||ue(c.constructor.name),c._handle=o?.handle,c._handle===void 0&&(c._handle=c._createHandle()),c.byteLength=0,c}var n=r.prototype;return n.toString=function(){return"".concat(this.constructor.name,"(").concat(this.id,")")},n.delete=function(){var o=arguments.length>0&&arguments[0]!==void 0?arguments[0]:{},a=o.deleteChildren,c=a===void 0?!1:a,f=this._handle&&this._deleteHandle(this._handle);return this._handle&&this.removeStats(),this._handle=null,f&&c&&f.filter(Boolean).forEach(function(u){return u.destroy()}),this},n.bind=function(){var o=arguments.length>0&&arguments[0]!==void 0?arguments[0]:this.handle;if(typeof o!="function")return this._bindHandle(o),this;var a;return this._bound?a=o():(this._bindHandle(this.handle),this._bound=!0,a=o(),this._bound=!1,this._bindHandle(null)),a},n.unbind=function(){this.bind(null)},n.getParameter=function(o){var a=arguments.length>1&&arguments[1]!==void 0?arguments[1]:{};o=on(this.gl,o),w(o);var c=this.constructor.PARAMETERS||{},f=c[o];if(f){var u=Y(this.gl),_=(!("webgl2"in f)||u)&&(!("extension"in f)||this.gl.getExtension(f.extension));if(!_){var E=f.webgl1,p="webgl2"in f?f.webgl2:f.webgl1,d=u?p:E;return d}}return this._getParameter(o,a)},n.getParameters=function(){var o=arguments.length>0&&arguments[0]!==void 0?arguments[0]:{},a=o.parameters,c=o.keys,f=this.constructor.PARAMETERS||{},u=Y(this.gl),_={},E=a||Object.keys(f),p=YE(E),d;try{for(p.s();!(d=p.n()).done;){var h=d.value,m=f[h],A=m&&(!("webgl2"in m)||u)&&(!("extension"in m)||this.gl.getExtension(m.extension));if(A){var g=c?this.device.getGLKey(h):h;_[g]=this.getParameter(h,o),c&&m.type==="GLenum"&&(_[g]=this.device.getGLKey(_[g]))}}}catch(y){p.e(y)}finally{p.f()}return _},n.setParameter=function(o,a){o=on(this.gl,o),w(o);var c=this.constructor.PARAMETERS||{},f=c[o];if(f){var u=Y(this.gl),_=(!("webgl2"in f)||u)&&(!("extension"in f)||this.gl.getExtension(f.extension));if(!_)throw new Error("Parameter not available on this platform");f.type==="GLenum"&&(a=on(a))}return this._setParameter(o,a),this},n.setParameters=function(o){for(var a in o)this.setParameter(a,o[a]);return this},n.stubRemovedMethods=function(o,a,c){return yn(this,o,a,c)},n.initialize=function(o){},n._createHandle=function(){throw new Error(xt)},n._deleteHandle=function(){throw new Error(xt)},n._bindHandle=function(o){throw new Error(xt)},n._getOptsFromHandle=function(){throw new Error(xt)},n._getParameter=function(o,a){throw new Error(xt)},n._setParameter=function(o,a){throw new Error(xt)},M(r,[{key:"handle",get:function(){return this._handle}}]),r}(z);var of;function rf(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter(function(i){return Object.getOwnPropertyDescriptor(e,i).enumerable})),r.push.apply(r,n)}return r}function nf(e){for(var t=1;t<arguments.length;t++){var r=arguments[t]!=null?arguments[t]:{};t%2?rf(Object(r),!0).forEach(function(n){l(e,n,r[n])}):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(r)):rf(Object(r)).forEach(function(n){Object.defineProperty(e,n,Object.getOwnPropertyDescriptor(r,n))})}return e}function ZE(e){var t=$E();return function(){var n=I(e),i;if(t){var o=I(this).constructor;i=Reflect.construct(n,arguments,o)}else i=n.apply(this,arguments);return X(this,i)}}function $E(){if(typeof Reflect>"u"||!Reflect.construct||Reflect.construct.sham)return!1;if(typeof Proxy=="function")return!0;try{return Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],function(){})),!0}catch{return!1}}of=Symbol.toStringTag;var an=function(e){H(r,e);var t=ZE(r);r.isTextureFormatSupported=function(o,a){return Uc(o.gl,a)};function r(i,o){var a;if(C(this,r),typeof o.format=="number")throw new Error("Renderbuffer");return a=t.call(this,i,o,r.defaultProps),a.glFormat=void 0,a.glFormat=lr(a.props.format,i.isWebGL2),a._initialize(a.props),a}var n=r.prototype;return n.resize=function(o){(o.width!==this.width||o.height!==this.height)&&(Object.assign(this.props,nf(nf({},o),{},{format:this.format,samples:this.samples})),this._initialize(this.props))},n._initialize=function(o){var a=o.format,c=o.width,f=o.height,u=o.samples;w(a,"Needs format"),this.trackDeallocatedMemory(),this.gl.bindRenderbuffer(s.RENDERBUFFER,this.handle),u!==0&&this.device.isWebGL2?this.gl2.renderbufferStorageMultisample(s.RENDERBUFFER,u,this.glFormat,c,f):this.gl.renderbufferStorage(s.RENDERBUFFER,this.glFormat,c,f),this.gl.bindRenderbuffer(s.RENDERBUFFER,null),this.trackAllocatedMemory(c*f*(u||1)*_r(this.glFormat,this.device.isWebGL2))},n._createHandle=function(){return this.gl.createRenderbuffer()},n._deleteHandle=function(){this.gl.deleteRenderbuffer(this.handle),this.trackDeallocatedMemory()},n._bindHandle=function(o){this.gl.bindRenderbuffer(s.RENDERBUFFER,o)},M(r,[{key:of,get:function(){return"Renderbuffer"}},{key:"width",get:function(){return this.props.width}},{key:"height",get:function(){return this.props.height}},{key:"format",get:function(){return this.props.format}},{key:"samples",get:function(){return this.props.samples}},{key:"attachment",get:function(){}}]),r}(tf);an.defaultProps={id:void 0,handle:void 0,userData:void 0,format:void 0,width:1,height:1,samples:0};function QE(e,t){var r=typeof Symbol<"u"&&e[Symbol.iterator]||e["@@iterator"];if(!r){if(Array.isArray(e)||(r=JE(e))||t&&e&&typeof e.length=="number"){r&&(e=r);var n=0,i=function(){};return{s:i,n:function(){return n>=e.length?{done:!0}:{done:!1,value:e[n++]}},e:function(u){throw u},f:i}}throw new TypeError(`Invalid attempt to iterate non-iterable instance.
1182
+ In order to be iterable, non-array objects must have a [Symbol.iterator]() method.`)}var o=!0,a=!1,c;return{s:function(){r=r.call(e)},n:function(){var u=r.next();return o=u.done,u},e:function(u){a=!0,c=u},f:function(){try{!o&&r.return!=null&&r.return()}finally{if(a)throw c}}}}function JE(e,t){if(e){if(typeof e=="string")return af(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 af(e,t)}}function af(e,t){(t==null||t>e.length)&&(t=e.length);for(var r=0,n=new Array(t);r<t;r++)n[r]=e[r];return n}function ep(e){var t=tp();return function(){var n=I(e),i;if(t){var o=I(this).constructor;i=Reflect.construct(n,arguments,o)}else i=n.apply(this,arguments);return X(this,i)}}function tp(){if(typeof Reflect>"u"||!Reflect.construct||Reflect.construct.sham)return!1;if(typeof Proxy=="function")return!0;try{return Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],function(){})),!0}catch{return!1}}var tt=function(e){H(r,e);var t=ep(r);function r(i,o){var a;C(this,r),a=t.call(this,i,o),a.device=void 0,a.gl=void 0,a.handle=void 0;var c=o.handle===null;if(a.device=i,a.gl=i.gl,a.handle=a.props.handle||c?a.props.handle:a.gl.createFramebuffer(),!c){i.setSpectorMetadata(a.handle,{id:a.props.id,props:a.props}),a.autoCreateAttachmentTextures(),a.gl.bindFramebuffer(s.FRAMEBUFFER,a.handle);for(var f=0;f<a.colorAttachments.length;++f){var u=a.colorAttachments[f],_=s.COLOR_ATTACHMENT0+f;u&&a._attachOne(_,u)}a.depthStencilAttachment&&a._attachOne(Hc(a.depthStencilAttachment.format),a.depthStencilAttachment),a.gl.bindFramebuffer(s.FRAMEBUFFER,null)}return o.check!==!1&&a._checkStatus(),a}var n=r.prototype;return n.destroy=function(){Pe(I(r.prototype),"destroy",this).call(this),!this.destroyed&&this.handle!==null&&this.gl.deleteFramebuffer(this.handle)},n._checkStatus=function(){var o=this.gl,a=o.bindFramebuffer(s.FRAMEBUFFER,this.handle),c=o.checkFramebufferStatus(s.FRAMEBUFFER);if(o.bindFramebuffer(s.FRAMEBUFFER,a||null),c!==o.FRAMEBUFFER_COMPLETE)throw new Error("Framebuffer ".concat(np(c)))},n.createDepthStencilTexture=function(o){return new an(this.device,{id:"".concat(this.id,"-depth-stencil"),format:o,width:this.width,height:this.height})},n.resizeAttachments=function(o,a){if(this.handle===null)return this.width=this.gl.drawingBufferWidth,this.height=this.gl.drawingBufferHeight,this;o===void 0&&(o=this.gl.drawingBufferWidth),a===void 0&&(a=this.gl.drawingBufferHeight);var c=QE(this.colorAttachments),f;try{for(c.s();!(f=c.n()).done;){var u=f.value;u.resize({width:o,height:a})}}catch(_){c.e(_)}finally{c.f()}return this.depthStencilAttachment&&this.depthStencilAttachment.resize({width:o,height:a}),this},n._attachOne=function(o,a){if(a instanceof an)return this._attachWEBGLRenderbuffer(o,a),a;if(Array.isArray(a)){var c=L(a,3),f=c[0],u=c[1],_=u===void 0?0:u,E=c[2],p=E===void 0?0:E;return this._attachTexture(o,f,_,p),f}else if(a instanceof Ne)return this._attachTexture(o,a,0,0),a;throw new Error("attach")},n._attachWEBGLRenderbuffer=function(o,a){this.gl.framebufferRenderbuffer(s.FRAMEBUFFER,o,s.RENDERBUFFER,a.handle)},n._attachTexture=function(o,a,c,f){var u=this.device,_=u.gl,E=u.gl2;switch(_.bindTexture(a.target,a.handle),a.target){case s.TEXTURE_2D_ARRAY:case s.TEXTURE_3D:this.device.assertWebGL2(),E?.framebufferTextureLayer(s.FRAMEBUFFER,o,a.target,f,c);break;case s.TEXTURE_CUBE_MAP:var p=rp(c);_.framebufferTexture2D(s.FRAMEBUFFER,o,p,a.handle,f);break;case s.TEXTURE_2D:_.framebufferTexture2D(s.FRAMEBUFFER,o,s.TEXTURE_2D,a.handle,f);break;default:w(!1,"Illegal texture type")}_.bindTexture(a.target,null)},M(r,[{key:"texture",get:function(){return this.colorAttachments[0]}}]),r}(Ir);function rp(e){return e<s.TEXTURE_CUBE_MAP_POSITIVE_X?e+s.TEXTURE_CUBE_MAP_POSITIVE_X:e}function np(e){switch(e){case s.FRAMEBUFFER_COMPLETE:return"success";case s.FRAMEBUFFER_INCOMPLETE_ATTACHMENT:return"Mismatched attachments";case s.FRAMEBUFFER_INCOMPLETE_MISSING_ATTACHMENT:return"No attachments";case s.FRAMEBUFFER_INCOMPLETE_DIMENSIONS:return"Height/width mismatch";case s.FRAMEBUFFER_UNSUPPORTED:return"Unsupported or split attachments";case s.FRAMEBUFFER_INCOMPLETE_MULTISAMPLE:return"Samples mismatch";default:return"".concat(e)}}function ip(e){var t=op();return function(){var n=I(e),i;if(t){var o=I(this).constructor;i=Reflect.construct(n,arguments,o)}else i=n.apply(this,arguments);return X(this,i)}}function op(){if(typeof Reflect>"u"||!Reflect.construct||Reflect.construct.sham)return!1;if(typeof Proxy=="function")return!0;try{return Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],function(){})),!0}catch{return!1}}var sf=function(e){H(r,e);var t=ip(r);function r(i,o){var a;return C(this,r),a=t.call(this,o),a.device=void 0,a.presentationSize=void 0,a._framebuffer=null,a.device=i,a.presentationSize=[-1,-1],a._setAutoCreatedCanvasId("".concat(a.device.id,"-canvas")),a.update(),a}var n=r.prototype;return n.getCurrentFramebuffer=function(){return this.update(),this._framebuffer=this._framebuffer||new tt(this.device,{handle:null}),this._framebuffer},n.update=function(){var o=this.getPixelSize(),a=o[0]!==this.presentationSize[0]||o[1]!==this.presentationSize[1];a&&(this.presentationSize=o)},n.resize=function(o){if(this.canvas){var a=this.getDevicePixelRatio(o?.useDevicePixels);this.setDevicePixelRatio(a,o);return}var c=this.device.gl.getExtension("STACKGL_resize_drawingbuffer");c&&o&&"width"in o&&"height"in o&&c.resize(o.width,o.height)},n.commit=function(){},M(r)}(Rt);var vi=nt(ke(),1);function cf(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter(function(i){return Object.getOwnPropertyDescriptor(e,i).enumerable})),r.push.apply(r,n)}return r}function ff(e){for(var t=1;t<arguments.length;t++){var r=arguments[t]!=null?arguments[t]:{};t%2?cf(Object(r),!0).forEach(function(n){l(e,n,r[n])}):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(r)):cf(Object(r)).forEach(function(n){Object.defineProperty(e,n,Object.getOwnPropertyDescriptor(r,n))})}return e}var ap={spector:F.get("spector")||F.get("inspect")},sp="https://spectorcdn.babylonjs.com/spector.bundle.js",cp=1,ve=null,uf=!1;function lf(e){return Si.apply(this,arguments)}function Si(){return Si=pe(vi.default.mark(function e(t){return vi.default.wrap(function(n){for(;;)switch(n.prev=n.next){case 0:if(globalThis.SPECTOR){n.next=9;break}return n.prev=1,n.next=4,Kt(sp);case 4:n.next=9;break;case 6:n.prev=6,n.t0=n.catch(1),F.warn(String(n.t0));case 9:case"end":return n.stop()}},e,null,[[1,6]])})),Si.apply(this,arguments)}function _f(e){var t,r;if(e=ff(ff({},ap),e),!((t=e)!==null&&t!==void 0&&t.spector)||(!ve&&globalThis.SPECTOR&&(F.probe(cp,"SPECTOR found and initialized")(),ve=new globalThis.SPECTOR.Spector,globalThis.luma&&(globalThis.luma.spector=ve)),!ve))return null;if(!uf){var n,i;uf=!0,ve.spyCanvases(),(n=ve)===null||n===void 0||n.onCaptureStarted.add(function(c){return F.info("Spector capture started:",c)()}),(i=ve)===null||i===void 0||i.onCapture.add(function(c){var f,u,_;F.info("Spector capture complete:",c)(),(f=ve)===null||f===void 0||f.getResultUI(),(u=ve)===null||u===void 0||u.resultView.display(),(_=ve)===null||_===void 0||_.resultView.addCapture(c)})}if((r=e)!==null&&r!==void 0&&r.canvas){var o,a;if(typeof e.spector=="string"&&e.spector!==e.canvas.id)return ve;(o=ve)===null||o===void 0||o.startCapture((a=e)===null||a===void 0?void 0:a.canvas,500),new Promise(function(c){return setTimeout(c,2e3)}).then(function(c){var f;F.info("Spector capture stopped after 2 seconds")(),(f=ve)===null||f===void 0||f.stopCapture()})}return ve}var Oi=nt(ke(),1);function fp(e,t){var r=typeof Symbol<"u"&&e[Symbol.iterator]||e["@@iterator"];if(!r){if(Array.isArray(e)||(r=up(e))||t&&e&&typeof e.length=="number"){r&&(e=r);var n=0,i=function(){};return{s:i,n:function(){return n>=e.length?{done:!0}:{done:!1,value:e[n++]}},e:function(u){throw u},f:i}}throw new TypeError(`Invalid attempt to iterate non-iterable instance.
1183
+ In order to be iterable, non-array objects must have a [Symbol.iterator]() method.`)}var o=!0,a=!1,c;return{s:function(){r=r.call(e)},n:function(){var u=r.next();return o=u.done,u},e:function(u){a=!0,c=u},f:function(){try{!o&&r.return!=null&&r.return()}finally{if(a)throw c}}}}function up(e,t){if(e){if(typeof e=="string")return Ef(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 Ef(e,t)}}function Ef(e,t){(t==null||t>e.length)&&(t=e.length);for(var r=0,n=new Array(t);r<t;r++)n[r]=e[r];return n}function pf(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter(function(i){return Object.getOwnPropertyDescriptor(e,i).enumerable})),r.push.apply(r,n)}return r}function df(e){for(var t=1;t<arguments.length;t++){var r=arguments[t]!=null?arguments[t]:{};t%2?pf(Object(r),!0).forEach(function(n){l(e,n,r[n])}):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(r)):pf(Object(r)).forEach(function(n){Object.defineProperty(e,n,Object.getOwnPropertyDescriptor(r,n))})}return e}var lp="https://unpkg.com/webgl-debug@2.0.1/index.js";function hf(e){return e.luma=e.luma||{},e.luma}function mf(){return yi.apply(this,arguments)}function yi(){return yi=pe(Oi.default.mark(function e(){return Oi.default.wrap(function(r){for(;;)switch(r.prev=r.next){case 0:if(!(te()&&!globalThis.WebGLDebugUtils)){r.next=5;break}return globalThis.global=globalThis.global||globalThis,globalThis.global.module={},r.next=5,Kt(lp);case 5:case"end":return r.stop()}},e)})),yi.apply(this,arguments)}function Rf(e){var t=arguments.length>1&&arguments[1]!==void 0?arguments[1]:{};return e?t.debug?Ep(e,t):_p(e):null}function _p(e){var t=hf(e);return t.realContext?t.realContext:e}function Ep(e,t){if(!globalThis.WebGLDebugUtils)return F.warn("webgl-debug not loaded")(),e;var r=hf(e);if(r.debugContext)return r.debugContext;globalThis.WebGLDebugUtils.init(df(df({},s),e));var n=globalThis.WebGLDebugUtils.makeDebugContext(e,pp.bind(null,t),dp.bind(null,t));for(var i in s)!(i in n)&&typeof s[i]=="number"&&(n[i]=s[i]);var o=M(function c(){C(this,c)});Object.setPrototypeOf(n,Object.getPrototypeOf(e)),Object.setPrototypeOf(o,n);var a=Object.create(o);return r.realContext=e,r.debugContext=a,a.debug=!0,a}function bi(e,t){t=Array.from(t).map(function(n){return n===void 0?"undefined":n});var r=globalThis.WebGLDebugUtils.glFunctionArgsToString(e,t);return r="".concat(r.slice(0,100)).concat(r.length>100?"...":""),"gl.".concat(e,"(").concat(r,")")}function pp(e,t,r,n){n=Array.from(n).map(function(f){return f===void 0?"undefined":f});var i=globalThis.WebGLDebugUtils.glEnumToString(t),o=globalThis.WebGLDebugUtils.glFunctionArgsToString(r,n),a=e.webgl2?"gl2":"gl1",c="".concat(i," in ").concat(a,".").concat(r,"(").concat(o,")");F.error(c)();debugger;if(e.throwOnError)throw new Error(c)}function dp(e,t,r){var n="";if(F.level>=1&&(n=bi(t,r),F.log(1,n)()),e.break&&e.break.length>0){n=n||bi(t,r);var i=e.break.every(function(f){return n.indexOf(f)!==-1});if(i)debugger}var o=fp(r),a;try{for(o.s();!(a=o.n()).done;){var c=a.value;if(c===void 0){if(n=n||bi(t,r),e.throwOnError)throw new Error("Undefined argument: ".concat(n));F.error("Undefined argument: ".concat(n))();debugger}}}catch(f){o.e(f)}finally{o.f()}}function Ni(){if(typeof Reflect>"u"||!Reflect.construct||Reflect.construct.sham)return!1;if(typeof Proxy=="function")return!0;try{return Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],function(){})),!0}catch{return!1}}function Ft(e,t,r){return Ni()?Ft=Reflect.construct.bind():Ft=function(i,o,a){var c=[null];c.push.apply(c,o);var f=Function.bind.apply(i,c),u=new f;return a&&st(u,a.prototype),u},Ft.apply(null,arguments)}var hp="Failed to deduce GL constant from typed array";function sn(e){var t=ArrayBuffer.isView(e)?e.constructor:e;switch(t){case Float32Array:return s.FLOAT;case Uint16Array:return s.UNSIGNED_SHORT;case Uint32Array:return s.UNSIGNED_INT;case Uint8Array:return s.UNSIGNED_BYTE;case Uint8ClampedArray:return s.UNSIGNED_BYTE;case Int8Array:return s.BYTE;case Int16Array:return s.SHORT;case Int32Array:return s.INT;default:throw new Error(hp)}}function Dt(e,t){var r=t||{},n=r.clamped,i=n===void 0?!0:n;switch(e){case s.FLOAT:return Float32Array;case s.UNSIGNED_SHORT:case s.UNSIGNED_SHORT_5_6_5:case s.UNSIGNED_SHORT_4_4_4_4:case s.UNSIGNED_SHORT_5_5_5_1:return Uint16Array;case s.UNSIGNED_INT:return Uint32Array;case s.UNSIGNED_BYTE:return i?Uint8ClampedArray:Uint8Array;case s.BYTE:return Int8Array;case s.SHORT:return Int16Array;case s.INT:return Int32Array;default:throw new Error("Failed to deduce typed array type from GL constant")}}var mp={offset:0,stride:0,type:s.FLOAT,size:1,divisor:0,normalized:!1,integer:!1},Rp={deprecatedProps:{instanced:"divisor",isInstanced:"divisor"}},Ke=function(){e.getBytesPerElement=function(n){var i=Dt(n.type||s.FLOAT);return i.BYTES_PER_ELEMENT},e.getBytesPerVertex=function(n){w(n.size);var i=Dt(n.type||s.FLOAT);return i.BYTES_PER_ELEMENT*n.size},e.resolve=function(){for(var n=arguments.length,i=new Array(n),o=0;o<n;o++)i[o]=arguments[o];return Ft(e,[mp].concat(i))};function e(){var r=this;C(this,e),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 n=arguments.length,i=new Array(n),o=0;o<n;o++)i[o]=arguments[o];i.forEach(function(a){return r._assign(a)}),Object.freeze(this)}var t=e.prototype;return t.toString=function(){return JSON.stringify(this)},t._assign=function(){var n=arguments.length>0&&arguments[0]!==void 0?arguments[0]:{};return n=ft("Accessor",n,Rp),n.type!==void 0&&(this.type=n.type,(n.type===s.INT||n.type===s.UNSIGNED_INT)&&(this.integer=!0)),n.size!==void 0&&(this.size=n.size),n.offset!==void 0&&(this.offset=n.offset),n.stride!==void 0&&(this.stride=n.stride),n.normalize!==void 0&&(this.normalized=n.normalize),n.normalized!==void 0&&(this.normalized=n.normalized),n.integer!==void 0&&(this.integer=n.integer),n.divisor!==void 0&&(this.divisor=n.divisor),n.buffer!==void 0&&(this.buffer=n.buffer),n.index!==void 0&&(typeof n.index=="boolean"?this.index=n.index?1:0:this.index=n.index),n.instanced!==void 0&&(this.divisor=n.instanced?1:0),n.isInstanced!==void 0&&(this.divisor=n.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},M(e,[{key:"BYTES_PER_ELEMENT",get:function(){return e.getBytesPerElement(this)}},{key:"BYTES_PER_VERTEX",get:function(){return e.getBytesPerVertex(this)}}]),e}();function Ap(e){var t=gp();return function(){var n=I(e),i;if(t){var o=I(this).constructor;i=Reflect.construct(n,arguments,o)}else i=n.apply(this,arguments);return X(this,i)}}function gp(){if(typeof Reflect>"u"||!Reflect.construct||Reflect.construct.sham)return!1;if(typeof Proxy=="function")return!0;try{return Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],function(){})),!0}catch{return!1}}function Af(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter(function(i){return Object.getOwnPropertyDescriptor(e,i).enumerable})),r.push.apply(r,n)}return r}function Tp(e){for(var t=1;t<arguments.length;t++){var r=arguments[t]!=null?arguments[t]:{};t%2?Af(Object(r),!0).forEach(function(n){l(e,n,r[n])}):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(r)):Af(Object(r)).forEach(function(n){Object.defineProperty(e,n,Object.getOwnPropertyDescriptor(r,n))})}return e}var gf=10,Tf={offset:"accessor.offset",stride:"accessor.stride",type:"accessor.type",size:"accessor.size",divisor:"accessor.divisor",normalized:"accessor.normalized",integer:"accessor.integer",instanced:"accessor.divisor",isInstanced:"accessor.divisor"},vf={removedProps:{},replacedProps:{bytes:"byteLength"},deprecatedProps:Tf},vp={removedProps:Tf};function Sp(e){if(ArrayBuffer.isView(e))return{data:e};if(typeof e=="number")return{byteLength:e};e=ft("Buffer",e,vf);var t=Tp({},e);return t}var Sf=function(e){H(r,e);var t=Ap(r);function r(i){var o,a=arguments.length>1&&arguments[1]!==void 0?arguments[1]:{};if(C(this,r),o=t.call(this,Re.attach(i),Sp(a)),o.accessor=void 0,o.setAccessor(Object.assign({},a,a.accessor)),o.props.data){var c=sn(o.props.data);w(c),o.setAccessor(new Ke(o.accessor,{type:c}))}return Object.seal(Ce(o)),o}var n=r.prototype;return n.getElementCount=function(){var o=arguments.length>0&&arguments[0]!==void 0?arguments[0]:this.accessor;return Math.round(this.byteLength/Ke.getBytesPerElement(o))},n.getVertexCount=function(){var o=arguments.length>0&&arguments[0]!==void 0?arguments[0]:this.accessor;return Math.round(this.byteLength/Ke.getBytesPerVertex(o))},n.initialize=function(){var o=arguments.length>0&&arguments[0]!==void 0?arguments[0]:{};return ArrayBuffer.isView(o)&&(o={data:o}),Number.isFinite(o)&&(o={byteLength:o}),o=ft("Buffer",o,vf),this.glUsage=o.glUsage||s.STATIC_DRAW,this.debugData=null,this.setAccessor(Object.assign({},o,o.accessor)),o.data?this._setData(o.data,o.byteOffset,o.byteLength):this._setByteLength(o.byteLength||0),this},n.setProps=function(o){return o=ft("Buffer",o,vp),"accessor"in o&&this.setAccessor(o.accessor),this},n.setAccessor=function(o){return o=Object.assign({},o),delete o.buffer,this.accessor=new Ke(o),this},n.reallocate=function(o){return o>this.byteLength?(this._setByteLength(o),!0):(this.bytesUsed=o,!1)},n.setData=function(o){return this.initialize(o)},n.subData=function(o){ArrayBuffer.isView(o)&&(o={data:o});var a=o,c=a.data,f=a.offset,u=f===void 0?0:f,_=a.srcOffset,E=_===void 0?0:_,p=o.byteLength||o.length;w(c);var d=this.gl.webgl2?s.COPY_WRITE_BUFFER:this.glTarget;return this.gl.bindBuffer(d,this.handle),E!==0||p!==void 0?(zr(this.gl),this.gl.bufferSubData(this.glTarget,u,c,E,p)):this.gl.bufferSubData(d,u,c),this.gl.bindBuffer(d,null),this.debugData=null,this._inferType(c),this},n.copyData=function(o){var a=o.sourceBuffer,c=o.readOffset,f=c===void 0?0:c,u=o.writeOffset,_=u===void 0?0:u,E=o.size,p=this.gl,d=this.gl2;return zr(p),p.bindBuffer(s.COPY_READ_BUFFER,a.handle),p.bindBuffer(s.COPY_WRITE_BUFFER,this.handle),d?.copyBufferSubData(s.COPY_READ_BUFFER,s.COPY_WRITE_BUFFER,f,_,E),p.bindBuffer(s.COPY_READ_BUFFER,null),p.bindBuffer(s.COPY_WRITE_BUFFER,null),this.debugData=null,this},n.getData=function(o){var a,c=o||{},f=c.dstData,u=f===void 0?null:f,_=c.length,E=_===void 0?0:_,p=o||{},d=p.srcByteOffset,h=d===void 0?0:d,m=p.dstOffset,A=m===void 0?0:m;zr(this.gl);var g=Dt(this.accessor.type||s.FLOAT,{clamped:!1}),y=this._getAvailableElementCount(h),b=A,S,x;u?(x=u.length,S=x-b):(S=Math.min(y,E||y),x=b+S);var P=Math.min(y,S);return E=E||P,w(E<=P),u=u||new g(x),this.gl.bindBuffer(s.COPY_READ_BUFFER,this.handle),(a=this.gl2)===null||a===void 0||a.getBufferSubData(s.COPY_READ_BUFFER,h,u,A,E),this.gl.bindBuffer(s.COPY_READ_BUFFER,null),u},n.bind=function(o){var a=o||{},c=a.glTarget,f=c===void 0?this.glTarget:c,u=a.index,_=u===void 0?this.accessor&&this.accessor.index:u,E=a.offset,p=E===void 0?0:E,d=a.size;if(f===s.UNIFORM_BUFFER||f===s.TRANSFORM_FEEDBACK_BUFFER)if(d!==void 0){var h;(h=this.gl2)===null||h===void 0||h.bindBufferRange(f,_,this.handle,p,d)}else{var m;w(p===0),(m=this.gl2)===null||m===void 0||m.bindBufferBase(f,_,this.handle)}else this.gl.bindBuffer(f,this.handle);return this},n.unbind=function(o){var a=o||{},c=a.glTarget,f=c===void 0?this.glTarget:c,u=a.index,_=u===void 0?this.accessor&&this.accessor.index:u,E=f===s.UNIFORM_BUFFER||f===s.TRANSFORM_FEEDBACK_BUFFER;if(E){var p;(p=this.gl2)===null||p===void 0||p.bindBufferBase(f,_,null)}else this.gl.bindBuffer(f,null);return this},n.getDebugData=function(){return this.debugData?{data:this.debugData,changed:!1}:(this.debugData=this.getData({length:Math.min(gf,this.byteLength)}),{data:this.debugData,changed:!0})},n.invalidateDebugData=function(){this.debugData=null},n._setData=function(o){var a=arguments.length>1&&arguments[1]!==void 0?arguments[1]:0,c=arguments.length>2&&arguments[2]!==void 0?arguments[2]:o.byteLength+a;w(ArrayBuffer.isView(o)),this.trackDeallocatedMemory();var f=this._getTarget();this.gl.bindBuffer(f,this.handle),this.gl.bufferData(f,c,this.glUsage),this.gl.bufferSubData(f,a,o),this.gl.bindBuffer(f,null),this.debugData=o.slice(0,gf),this.bytesUsed=c,this.byteLength=c,this.trackAllocatedMemory(c);var u=sn(o);return w(u),this.setAccessor(new Ke(this.accessor,{type:u})),this},n._setByteLength=function(o){w(o>=0),this.trackDeallocatedMemory();var a=o;o===0&&(a=new Float32Array(0));var c=this._getTarget();return this.gl.bindBuffer(c,this.handle),this.gl.bufferData(c,a,this.glUsage),this.gl.bindBuffer(c,null),this.debugData=null,this.bytesUsed=o,this.byteLength=o,this.trackAllocatedMemory(o),this},n._getTarget=function(){return this.gl.webgl2?s.COPY_WRITE_BUFFER:this.glTarget},n._getAvailableElementCount=function(o){var a=Dt(this.accessor.type||s.FLOAT,{clamped:!1}),c=o/a.BYTES_PER_ELEMENT;return this.getElementCount()-c},n._inferType=function(o){this.accessor.type||this.setAccessor(new Ke(this.accessor,{type:sn(o)}))},n.getParameter=function(o){this.gl.bindBuffer(this.glTarget,this.handle);var a=this.gl.getBufferParameter(this.glTarget,o);return this.gl.bindBuffer(this.glTarget,null),a},M(r,[{key:"type",get:function(){return this.accessor.type}}]),r}(Ue);var Pi=nt(ke(),1);function Ii(e,t){return{name:bp(e,t),language:"glsl",version:Op(e)}}function bp(e){var t=arguments.length>1&&arguments[1]!==void 0?arguments[1]:"unnamed",r=/#define[\s*]SHADER_NAME[\s*]([A-Za-z0-9_-]+)[\s*]/,n=r.exec(e);return n?n[1]:t}function Op(e){var t=100,r=e.match(/[^\s]+/g);if(r&&r.length>=2&&r[0]==="#version"){var n=parseInt(r[1],10);Number.isFinite(n)&&(t=n)}return t}function Mi(e){return Vt(e)||zt(e)||ct(e)||Wt()}function yp(e,t){var r=typeof Symbol<"u"&&e[Symbol.iterator]||e["@@iterator"];if(!r){if(Array.isArray(e)||(r=Np(e))||t&&e&&typeof e.length=="number"){r&&(e=r);var n=0,i=function(){};return{s:i,n:function(){return n>=e.length?{done:!0}:{done:!1,value:e[n++]}},e:function(u){throw u},f:i}}throw new TypeError(`Invalid attempt to iterate non-iterable instance.
1184
+ In order to be iterable, non-array objects must have a [Symbol.iterator]() method.`)}var o=!0,a=!1,c;return{s:function(){r=r.call(e)},n:function(){var u=r.next();return o=u.done,u},e:function(u){a=!0,c=u},f:function(){try{!o&&r.return!=null&&r.return()}finally{if(a)throw c}}}}function Np(e,t){if(e){if(typeof e=="string")return bf(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 bf(e,t)}}function bf(e,t){(t==null||t>e.length)&&(t=e.length);for(var r=0,n=new Array(t);r<t;r++)n[r]=e[r];return n}var Ip=["warning","error","info"];function Ci(e){var t=e.split(/\r?\n/),r=[],n=yp(t),i;try{for(n.s();!(i=n.n()).done;){var o=i.value;if(!(o.length<=1)){var a=o.split(":"),c=Mi(a),f=c[0],u=c[1],_=c[2],E=c.slice(3),p=parseInt(_,10);isNaN(p)&&(p=0);var d=parseInt(u,10);isNaN(d)&&(d=0);var h=f.toLowerCase(),m=Ip.includes(h)?h:"info";r.push({message:E.join(":").trim(),type:m,lineNum:p,linePos:d})}}}catch(A){n.e(A)}finally{n.f()}return r}function Of(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter(function(i){return Object.getOwnPropertyDescriptor(e,i).enumerable})),r.push.apply(r,n)}return r}function Mp(e){for(var t=1;t<arguments.length;t++){var r=arguments[t]!=null?arguments[t]:{};t%2?Of(Object(r),!0).forEach(function(n){l(e,n,r[n])}):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(r)):Of(Object(r)).forEach(function(n){Object.defineProperty(e,n,Object.getOwnPropertyDescriptor(r,n))})}return e}function Cp(e){var t=Pp();return function(){var n=I(e),i;if(t){var o=I(this).constructor;i=Reflect.construct(n,arguments,o)}else i=n.apply(this,arguments);return X(this,i)}}function Pp(){if(typeof Reflect>"u"||!Reflect.construct||Reflect.construct.sham)return!1;if(typeof Proxy=="function")return!0;try{return Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],function(){})),!0}catch{return!1}}var yf=function(e){H(r,e);var t=Cp(r);function r(i,o){var a;switch(C(this,r),a=t.call(this,i,Mp({id:xp(o)},o)),a.device=void 0,a.handle=void 0,a.device=i,a.props.stage){case"vertex":a.handle=a.props.handle||a.device.gl.createShader(s.VERTEX_SHADER);break;case"fragment":a.handle=a.props.handle||a.device.gl.createShader(s.FRAGMENT_SHADER);break;default:throw new Error(a.props.stage)}return a._compile(a.source),a}var n=r.prototype;return n.destroy=function(){this.handle&&(this.removeStats(),this.device.gl.deleteShader(this.handle),this.destroyed=!0)},n.compilationInfo=function(){var i=pe(Pi.default.mark(function a(){var c;return Pi.default.wrap(function(u){for(;;)switch(u.prev=u.next){case 0:return c=this.device.gl.getShaderInfoLog(this.handle),u.abrupt("return",c?Ci(c):[]);case 2:case"end":return u.stop()}},a,this)}));function o(){return i.apply(this,arguments)}return o}(),n._compile=function(o){var a=function(A){return A.startsWith("#version ")?A:`#version 100
1185
+ `.concat(A)};o=a(o);var c=this.device.gl;c.shaderSource(this.handle,o),c.compileShader(this.handle);var f=c.getShaderParameter(this.handle,s.COMPILE_STATUS);if(!f){var u=c.getShaderInfoLog(this.handle),_=u?Ci(u):[],E=_.filter(function(m){return m.type==="error"}),p=On(E,o,{showSourceCode:!0}),d=Ii(o).name,h="".concat(this.stage," shader ").concat(d);throw F.error("GLSL compilation errors in ".concat(h,`
1186
+ `).concat(p))(),new Error("GLSL compilation errors in ".concat(d))}},M(r)}(yr);function xp(e){return Ii(e.source).name||e.id||ue("unnamed ".concat(e.stage,"-shader"))}function Nf(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter(function(i){return Object.getOwnPropertyDescriptor(e,i).enumerable})),r.push.apply(r,n)}return r}function Fp(e){for(var t=1;t<arguments.length;t++){var r=arguments[t]!=null?arguments[t]:{};t%2?Nf(Object(r),!0).forEach(function(n){l(e,n,r[n])}):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(r)):Nf(Object(r)).forEach(function(n){Object.defineProperty(e,n,Object.getOwnPropertyDescriptor(r,n))})}return e}function Dp(e){var t=Bp();return function(){var n=I(e),i;if(t){var o=I(this).constructor;i=Reflect.construct(n,arguments,o)}else i=n.apply(this,arguments);return X(this,i)}}function Bp(){if(typeof Reflect>"u"||!Reflect.construct||Reflect.construct.sham)return!1;if(typeof Proxy=="function")return!0;try{return Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],function(){})),!0}catch{return!1}}var Up=256,wp=1024,Lp=16384,xi=6144,If=function(e){H(r,e);var t=Dp(r);function r(i,o){var a;return C(this,r),a=t.call(this,i,o),a.device=void 0,a.glParameters=void 0,a.device=i,Je(a.device.gl),a.setParameters(a.props.parameters),a.clear(),a}var n=r.prototype;return n.end=function(){je(this.device.gl),this.props.framebuffer&&We(this.device,{framebuffer:null})},n.pushDebugGroup=function(o){},n.popDebugGroup=function(){},n.insertDebugMarker=function(o){},n.setParameters=function(){var o=arguments.length>0&&arguments[0]!==void 0?arguments[0]:{},a={};this.props.framebuffer&&(a.framebuffer=this.props.framebuffer),this.props.depthReadOnly&&(a.depthMask=!this.props.depthReadOnly),a.stencilMask=this.props.stencilReadOnly?0:1,a[s.RASTERIZER_DISCARD]=this.props.discard,o.viewport&&(o.viewport.length>=6?(a.viewport=o.viewport.slice(0,4),a.depthRange=[o.viewport[4],o.viewport[5]]):a.viewport=o.viewport),a.scissorTest=Boolean(o.scissorRect),o.scissorRect&&(a.scissor=o.scissorRect),o.blendConstant&&(a.blendColor=o.blendConstant),o.stencilReference&&(console.warn("RenderPassParameters.stencilReference not yet implemented in WebGL"),o[s.STENCIL_REF]=o.stencilReference),this.glParameters=a,We(this.device,a)},n.clear=function(){var o=this,a=Fp({},this.glParameters),c=0;this.props.clearColor!==!1&&(c|=Lp,a.clearColor=this.props.clearColor),this.props.clearDepth!==!1&&(c|=Up,a.clearDepth=this.props.clearDepth),this.props.clearStencil!==!1&&(c|=wp,a.clearStencil=this.props.clearStencil),c!==0&&et(this.device,a,function(){o.device.gl.clear(c)})},n.clearColorBuffer=function(){var o=this,a=arguments.length>0&&arguments[0]!==void 0?arguments[0]:0,c=arguments.length>1&&arguments[1]!==void 0?arguments[1]:[0,0,0,0];et(this.device.gl2,{framebuffer:this.props.framebuffer},function(){switch(c.constructor){case Int32Array:o.device.gl2.clearBufferiv(xi,a,c);break;case Uint32Array:o.device.gl2.clearBufferuiv(xi,a,c);break;case Float32Array:default:o.device.gl2.clearBufferfv(xi,a,c);break}})},M(r)}(Mr);var J;function Mf(e){return Hp.includes(e)}var Hp=[s.SAMPLER_2D,s.SAMPLER_CUBE,s.SAMPLER_3D,s.SAMPLER_2D_SHADOW,s.SAMPLER_2D_ARRAY,s.SAMPLER_2D_ARRAY_SHADOW,s.SAMPLER_CUBE_SHADOW,s.INT_SAMPLER_2D,s.INT_SAMPLER_3D,s.INT_SAMPLER_CUBE,s.INT_SAMPLER_2D_ARRAY,s.UNSIGNED_INT_SAMPLER_2D,s.UNSIGNED_INT_SAMPLER_3D,s.UNSIGNED_INT_SAMPLER_CUBE,s.UNSIGNED_INT_SAMPLER_2D_ARRAY],Cf=(J={},l(J,s.FLOAT,[s.FLOAT,1,"float","f32","float32"]),l(J,s.FLOAT_VEC2,[s.FLOAT,2,"vec2","vec2<f32>","float32x2"]),l(J,s.FLOAT_VEC3,[s.FLOAT,3,"vec3","vec3<f32>","float32x3"]),l(J,s.FLOAT_VEC4,[s.FLOAT,4,"vec4","vec4<f32>","float32x4"]),l(J,s.INT,[s.INT,1,"int","i32","sint32"]),l(J,s.INT_VEC2,[s.INT,2,"ivec2","vec2<i32>","sint32x2"]),l(J,s.INT_VEC3,[s.INT,3,"ivec3","vec3<i32>","sint32x3"]),l(J,s.INT_VEC4,[s.INT,4,"ivec4","vec4<i32>","sint32x4"]),l(J,s.UNSIGNED_INT,[s.UNSIGNED_INT,1,"uint","u32","uint32"]),l(J,s.UNSIGNED_INT_VEC2,[s.UNSIGNED_INT,2,"uvec2","vec2<u32>","uint32x2"]),l(J,s.UNSIGNED_INT_VEC3,[s.UNSIGNED_INT,3,"uvec3","vec3<u32>","uint32x3"]),l(J,s.UNSIGNED_INT_VEC4,[s.UNSIGNED_INT,4,"uvec4","vec4<u32>","uint32x4"]),l(J,s.BOOL,[s.FLOAT,1,"bool","f32","float32"]),l(J,s.BOOL_VEC2,[s.FLOAT,2,"bvec2","vec2<f32>","float32x2"]),l(J,s.BOOL_VEC3,[s.FLOAT,3,"bvec3","vec3<f32>","float32x3"]),l(J,s.BOOL_VEC4,[s.FLOAT,4,"bvec4","vec4<f32>","float32x4"]),l(J,s.FLOAT_MAT2,[s.FLOAT,8,"mat2","mat2x2<f32>"]),l(J,s.FLOAT_MAT2x3,[s.FLOAT,8,"mat2x3","mat2x3<f32>"]),l(J,s.FLOAT_MAT2x4,[s.FLOAT,8,"mat2x4","mat2x4<f32>"]),l(J,s.FLOAT_MAT3x2,[s.FLOAT,12,"mat3x2","mat3x2<f32>"]),l(J,s.FLOAT_MAT3,[s.FLOAT,12,"mat3","mat3x3<f32>"]),l(J,s.FLOAT_MAT3x4,[s.FLOAT,12,"mat3x4","mat3x4<f32>"]),l(J,s.FLOAT_MAT4x2,[s.FLOAT,16,"mat4x2","mat4x2<f32>"]),l(J,s.FLOAT_MAT4x3,[s.FLOAT,16,"mat4x3","mat4x3<f32>"]),l(J,s.FLOAT_MAT4,[s.FLOAT,16,"mat4","mat4x4<f32>"]),J);function Fi(e){var t=Cf[e];if(!t)throw new Error("uniform");var r=L(t,4),n=r[0],i=r[1],o=r[3];return{format:o,components:i,glType:n}}function Pf(e){var t=Cf[e];if(!t)throw new Error("attribute");var r=L(t,5),n=r[1],i=r[3],o=r[4],a=i;return{attributeType:a,vertexFormat:o,components:n}}var _e;function xf(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter(function(i){return Object.getOwnPropertyDescriptor(e,i).enumerable})),r.push.apply(r,n)}return r}function Ff(e){for(var t=1;t<arguments.length;t++){var r=arguments[t]!=null?arguments[t]:{};t%2?xf(Object(r),!0).forEach(function(n){l(e,n,r[n])}):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(r)):xf(Object(r)).forEach(function(n){Object.defineProperty(e,n,Object.getOwnPropertyDescriptor(r,n))})}return e}function Df(e,t){var r={attributes:[],bindings:[]};r.attributes=Xp(e,t);for(var n=jp(e,t),i=0,o=n;i<o.length;i++){var a=o[i],c=a.uniforms.map(function(g){return{name:g.name,format:g.format,byteOffset:g.byteOffset,byteStride:g.byteStride,arrayLength:g.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})}for(var f=Wp(e,t),u=0,_=0,E=f;_<E.length;_++){var p=E[_];if(Mf(p.type)){var d=Kp(p.type),h=d.viewDimension,m=d.sampleType;r.bindings.push({type:"texture",name:p.name,location:u,viewDimension:h,sampleType:m}),p.textureUnit=u,u+=1}}f.length&&(r.uniforms=f);var A=Vp(e,t);return A!=null&&A.length&&(r.varyings=A),r}function Xp(e,t){for(var r=[],n=e.getProgramParameter(t,e.ACTIVE_ATTRIBUTES),i=0;i<n;i++){var o=e.getActiveAttrib(t,i);if(!o)throw new Error("activeInfo");var a=o.name,c=o.type,f=e.getAttribLocation(t,a);if(f>=0){var u=Pf(c),_=u.attributeType,E=/instance/i.test(a)?"instance":"vertex";r.push({name:a,location:f,stepMode:E,type:_})}}return r.sort(function(p,d){return p.location-d.location}),r}function Vp(e,t){if(!Y(e))return[];for(var r=e,n=[],i=e.getProgramParameter(t,s.TRANSFORM_FEEDBACK_VARYINGS),o=0;o<i;o++){var a=r.getTransformFeedbackVarying(t,o);if(!a)throw new Error("activeInfo");var c=a.name,f=a.type,u=a.size,_=Fi(f),E=_.glType,p=_.components,d=new Ke({type:E,size:u*p}),h={location:o,name:c,accessor:d};n.push(h)}return n.sort(function(m,A){return m.location-A.location}),n}function Wp(e,t){for(var r=[],n=e.getProgramParameter(t,s.ACTIVE_UNIFORMS),i=0;i<n;i++){var o=e.getActiveUniform(t,i);if(!o)throw new Error("activeInfo");var a=o.name,c=o.size,f=o.type,u=Yp(a),_=u.name,E=u.isArray,p=e.getUniformLocation(t,_),d={location:p,name:_,size:c,type:f,isArray:E};if(r.push(d),d.size>1)for(var h=0;h<d.size;h++){var m="".concat(_,"[").concat(h,"]");p=e.getUniformLocation(t,m);var A=Ff(Ff({},d),{},{name:m,location:p});r.push(A)}}return r}function jp(e,t){if(!Y(e))return[];for(var r=e,n=function(A,g){return r.getActiveUniformBlockParameter(t,A,g)},i=[],o=r.getProgramParameter(t,s.ACTIVE_UNIFORM_BLOCKS),a=0;a<o;a++){for(var c={name:r.getActiveUniformBlockName(t,a)||"",location:n(a,s.UNIFORM_BLOCK_BINDING),byteLength:n(a,s.UNIFORM_BLOCK_DATA_SIZE),vertex:n(a,s.UNIFORM_BLOCK_REFERENCED_BY_VERTEX_SHADER),fragment:n(a,s.UNIFORM_BLOCK_REFERENCED_BY_FRAGMENT_SHADER),uniformCount:n(a,s.UNIFORM_BLOCK_ACTIVE_UNIFORMS),uniforms:[]},f=n(a,s.UNIFORM_BLOCK_ACTIVE_UNIFORM_INDICES)||[],u=r.getActiveUniforms(t,f,s.UNIFORM_TYPE),_=r.getActiveUniforms(t,f,s.UNIFORM_SIZE),E=r.getActiveUniforms(t,f,s.UNIFORM_OFFSET),p=r.getActiveUniforms(t,f,s.UNIFORM_ARRAY_STRIDE),d=0;d<c.uniformCount;++d){var h=r.getActiveUniform(t,f[d]);if(!h)throw new Error("activeInfo");c.uniforms.push({name:h.name,format:Fi(u[d]).format,type:u[d],arrayLength:_[d],byteOffset:E[d],byteStride:p[d]})}i.push(c)}return i.sort(function(m,A){return m.location-A.location}),i}var Gp=(_e={},l(_e,s.SAMPLER_2D,["2d","float"]),l(_e,s.SAMPLER_CUBE,["cube","float"]),l(_e,s.SAMPLER_3D,["3d","float"]),l(_e,s.SAMPLER_2D_SHADOW,["3d","depth"]),l(_e,s.SAMPLER_2D_ARRAY,["2d-array","float"]),l(_e,s.SAMPLER_2D_ARRAY_SHADOW,["2d-array","depth"]),l(_e,s.SAMPLER_CUBE_SHADOW,["cube","float"]),l(_e,s.INT_SAMPLER_2D,["2d","sint"]),l(_e,s.INT_SAMPLER_3D,["3d","sint"]),l(_e,s.INT_SAMPLER_CUBE,["cube","sint"]),l(_e,s.INT_SAMPLER_2D_ARRAY,["2d-array","uint"]),l(_e,s.UNSIGNED_INT_SAMPLER_2D,["2d","uint"]),l(_e,s.UNSIGNED_INT_SAMPLER_3D,["3d","uint"]),l(_e,s.UNSIGNED_INT_SAMPLER_CUBE,["cube","uint"]),l(_e,s.UNSIGNED_INT_SAMPLER_2D_ARRAY,["2d-array","uint"]),_e);function Kp(e){var t=Gp[e];if(!t)throw new Error("sampler");var r=L(t,2),n=r[0],i=r[1];return{viewDimension:n,sampleType:i}}function Yp(e){if(e[e.length-1]!=="]")return{name:e,length:1,isArray:!1};var t=/([^[]*)(\[[0-9]+\])?/,r=t.exec(e);if(!r||r.length<2)throw new Error("Failed to parse GLSL uniform name ".concat(e));return{name:r[1],length:r[2]?1:0,isArray:Boolean(r[2])}}function Bf(e,t,r,n){var i=e,o=n;o===!0&&(o=1),o===!1&&(o=0);var a=typeof o=="number"?[o]:o;switch(r){case s.SAMPLER_2D:case s.SAMPLER_CUBE:case s.SAMPLER_3D:case s.SAMPLER_2D_SHADOW:case s.SAMPLER_2D_ARRAY:case s.SAMPLER_2D_ARRAY_SHADOW:case s.SAMPLER_CUBE_SHADOW:case s.INT_SAMPLER_2D:case s.INT_SAMPLER_3D:case s.INT_SAMPLER_CUBE:case s.INT_SAMPLER_2D_ARRAY:case s.UNSIGNED_INT_SAMPLER_2D:case s.UNSIGNED_INT_SAMPLER_3D:case s.UNSIGNED_INT_SAMPLER_CUBE:case s.UNSIGNED_INT_SAMPLER_2D_ARRAY:if(typeof n!="number")throw new Error("samplers must be set to integers");return e.uniform1i(t,n);case s.FLOAT:return e.uniform1fv(t,a);case s.FLOAT_VEC2:return e.uniform2fv(t,a);case s.FLOAT_VEC3:return e.uniform3fv(t,a);case s.FLOAT_VEC4:return e.uniform4fv(t,a);case s.INT:return e.uniform1iv(t,a);case s.INT_VEC2:return e.uniform2iv(t,a);case s.INT_VEC3:return e.uniform3iv(t,a);case s.INT_VEC4:return e.uniform4iv(t,a);case s.BOOL:return e.uniform1iv(t,a);case s.BOOL_VEC2:return e.uniform2iv(t,a);case s.BOOL_VEC3:return e.uniform3iv(t,a);case s.BOOL_VEC4:return e.uniform4iv(t,a);case s.UNSIGNED_INT:return i.uniform1uiv(t,a,1);case s.UNSIGNED_INT_VEC2:return i.uniform2uiv(t,a,2);case s.UNSIGNED_INT_VEC3:return i.uniform3uiv(t,a,3);case s.UNSIGNED_INT_VEC4:return i.uniform4uiv(t,a,4);case s.FLOAT_MAT2:return e.uniformMatrix2fv(t,!1,a);case s.FLOAT_MAT3:return e.uniformMatrix3fv(t,!1,a);case s.FLOAT_MAT4:return e.uniformMatrix4fv(t,!1,a);case s.FLOAT_MAT2x3:return i.uniformMatrix2x3fv(t,!1,a);case s.FLOAT_MAT2x4:return i.uniformMatrix2x4fv(t,!1,a);case s.FLOAT_MAT3x2:return i.uniformMatrix3x2fv(t,!1,a);case s.FLOAT_MAT3x4:return i.uniformMatrix3x4fv(t,!1,a);case s.FLOAT_MAT4x2:return i.uniformMatrix4x2fv(t,!1,a);case s.FLOAT_MAT4x3:return i.uniformMatrix4x3fv(t,!1,a)}throw new Error("Illegal uniform")}function Uf(e,t){var r=typeof Symbol<"u"&&e[Symbol.iterator]||e["@@iterator"];if(!r){if(Array.isArray(e)||(r=kp(e))||t&&e&&typeof e.length=="number"){r&&(e=r);var n=0,i=function(){};return{s:i,n:function(){return n>=e.length?{done:!0}:{done:!1,value:e[n++]}},e:function(u){throw u},f:i}}throw new TypeError(`Invalid attempt to iterate non-iterable instance.
1187
+ In order to be iterable, non-array objects must have a [Symbol.iterator]() method.`)}var o=!0,a=!1,c;return{s:function(){r=r.call(e)},n:function(){var u=r.next();return o=u.done,u},e:function(u){a=!0,c=u},f:function(){try{!o&&r.return!=null&&r.return()}finally{if(a)throw c}}}}function kp(e,t){if(e){if(typeof e=="string")return wf(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 wf(e,t)}}function wf(e,t){(t==null||t>e.length)&&(t=e.length);for(var r=0,n=new Array(t);r<t;r++)n[r]=e[r];return n}function zp(e){var t=qp();return function(){var n=I(e),i;if(t){var o=I(this).constructor;i=Reflect.construct(n,arguments,o)}else i=n.apply(this,arguments);return X(this,i)}}function qp(){if(typeof Reflect>"u"||!Reflect.construct||Reflect.construct.sham)return!1;if(typeof Proxy=="function")return!0;try{return Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],function(){})),!0}catch{return!1}}var Lf=4,Hf=function(e){H(r,e);var t=zp(r);function r(i,o){var a;C(this,r),a=t.call(this,i,o),a.device=void 0,a.handle=void 0,a.vs=void 0,a.fs=void 0,a.introspectedLayout=void 0,a.uniforms={},a.bindings={},a.varyings=null,a._textureUniforms={},a._textureIndexCounter=0,a._uniformCount=0,a._uniformSetters={},a.device=i,a.handle=a.props.handle||a.device.gl.createProgram(),a.device.setSpectorMetadata(a.handle,{id:a.props.id}),a.vs=o.vs,a.fs=o.fs;var c=o.varyings,f=o.bufferMode,u=f===void 0?s.SEPARATE_ATTRIBS:f;if(c&&c.length>0){var _;a.device.assertWebGL2(),a.varyings=c,(_=a.device.gl2)===null||_===void 0||_.transformFeedbackVaryings(a.handle,c,u)}return a._compileAndLink(),a.introspectedLayout=Df(a.device.gl,a.handle),a.shaderLayout=vn(a.introspectedLayout,o.shaderLayout),a}var n=r.prototype;return n.destroy=function(){this.handle&&(this.device.gl.deleteProgram(this.handle),this.destroyed=!0)},n.setBindings=function(o){for(var a=this,c=function(){var p=L(u[f],2),d=p[0],h=p[1],m=a.shaderLayout.bindings.find(function(g){return g.name===d})||a.shaderLayout.bindings.find(function(g){return g.name==="".concat(d,"Uniforms")});if(!m){var A=a.shaderLayout.bindings.map(function(g){return'"'.concat(g.name,'"')}).join(", ");return F.warn('Unknown binding "'.concat(d,'" in render pipeline "').concat(a.id,'", expected one of ').concat(A))(),"continue"}switch(h||F.warn('Unsetting binding "'.concat(d,'" in render pipeline "').concat(a.id,'"'))(),m.type){case"uniform":if(!(h instanceof Ue)&&!(h.buffer instanceof Ue))throw new Error("buffer value");break;case"texture":if(!(h instanceof Ne||h instanceof tt))throw new Error("texture value");break;case"sampler":F.warn("Ignoring sampler ".concat(d))();break;default:throw new Error(m.type)}a.bindings[d]=h},f=0,u=Object.entries(o);f<u.length;f++)var _=c()},n.setUniforms=function(o){var a=jt(o),c=a.bindings;Object.keys(c).forEach(function(f){F.warn('Unsupported value "'.concat(c[f],'" used in setUniforms() for key ').concat(f,". Use setBindings() instead?"))()}),Object.assign(this.uniforms,o)},n.draw=function(o){var a,c=this,f=o.renderPass,u=o.vertexArray,_=o.vertexCount,E=o.instanceCount,p=o.firstVertex,d=p===void 0?0:p,h=Zp(this.props.topology),m=Boolean(u.indexBuffer),A=(a=u.indexBuffer)===null||a===void 0?void 0:a.glIndexType,g=Number(E)>0;if(!this._areTexturesRenderable()||_===0)return!1;this.device.gl.useProgram(this.handle),u.bindBeforeRender(f);var y=$p(this.props.topology),b=null;b&&b.begin(y),this._applyBindings(),this._applyUniforms();var S=f;return Yc(this.device,this.props.parameters,S.glParameters,function(){if(m&&g){var x;(x=c.device.gl2)===null||x===void 0||x.drawElementsInstanced(h,_||0,A,d,E||0)}else if(m)c.device.gl.drawElements(h,_||0,A,d);else if(g){var P;(P=c.device.gl2)===null||P===void 0||P.drawArraysInstanced(h,d,_||0,E||0)}else c.device.gl.drawArrays(h,d,_||0);b&&b.end()}),u.unbindAfterRender(f),!0},n._compileAndLink=function(){var o=this.device.gl;o.attachShader(this.handle,this.vs.handle),o.attachShader(this.handle,this.fs.handle),F.time(Lf,"linkProgram for ".concat(this.id))(),o.linkProgram(this.handle),F.timeEnd(Lf,"linkProgram for ".concat(this.id))(),!o.debug&&F.level;var a=o.getProgramParameter(this.handle,o.LINK_STATUS);if(!a)throw new Error("Error linking: ".concat(o.getProgramInfoLog(this.handle)));o.validateProgram(this.handle);var c=o.getProgramParameter(this.handle,o.VALIDATE_STATUS);if(!c)throw new Error("Error validating: ".concat(o.getProgramInfoLog(this.handle)))},n._areTexturesRenderable=function(){for(var o=!0,a=0,c=Object.entries(this._textureUniforms);a<c.length;a++){var f=L(c[a],2),u=f[1];u.update(),o=o&&u.loaded}for(var _=0,E=Object.entries(this.bindings);_<E.length;_++){var p=L(E[_],2),d=p[1];d.loaded!==void 0&&(o=o&&d.loaded)}return o},n._applyBindings=function(){this.device.gl.useProgram(this.handle);var o=this.device.gl2;if(!o)throw new Error("bindings");var a=0,c=0,f=Uf(this.shaderLayout.bindings),u;try{for(f.s();!(u=f.n()).done;){var _=u.value,E=this.bindings[_.name]||this.bindings[_.name.replace(/Uniforms$/,"")];if(!E)throw new Error("No value for binding ".concat(_.name," in ").concat(this.id));switch(_.type){case"uniform":var p=_.name,d=o.getUniformBlockIndex(this.handle,p);if(d===s.INVALID_INDEX)throw new Error("Invalid uniform block name ".concat(p));o.uniformBlockBinding(this.handle,c,d),E instanceof Ue?o.bindBufferBase(s.UNIFORM_BUFFER,c,E.handle):o.bindBufferRange(s.UNIFORM_BUFFER,c,E.buffer.handle,E.offset||0,E.size||E.buffer.byteLength-E.offset),c+=1;break;case"texture":if(!(E instanceof Ne||E instanceof tt))throw new Error("texture");var h=void 0;if(E instanceof Ne)h=E;else if(E instanceof tt&&E.colorAttachments[0]instanceof Ne)F.warn("Passing framebuffer in texture binding may be deprecated. Use fbo.colorAttachments[0] instead")(),h=E.colorAttachments[0];else throw new Error("No texture");o.activeTexture(s.TEXTURE0+a),o.bindTexture(h.target,h.handle),a+=1;break;case"sampler":break;case"storage":case"read-only-storage":throw new Error("binding type '".concat(_.type,"' not supported in WebGL"))}}}catch(m){f.e(m)}finally{f.f()}},n._applyUniforms=function(){var o=Uf(this.shaderLayout.uniforms||[]),a;try{for(o.s();!(a=o.n()).done;){var c,f=a.value,u=f.name,_=f.location,E=f.type,p=f.textureUnit,d=(c=this.uniforms[u])!==null&&c!==void 0?c:p;d!==void 0&&Bf(this.device.gl,_,E,d)}}catch(h){o.e(h)}finally{o.f()}},M(r)}(ze);function Zp(e){switch(e){case"point-list":return s.POINTS;case"line-list":return s.LINES;case"line-strip":return s.LINE_STRIP;case"line-loop-webgl":return s.LINE_LOOP;case"triangle-list":return s.TRIANGLES;case"triangle-strip":return s.TRIANGLE_STRIP;case"triangle-fan-webgl":return s.TRIANGLE_FAN;default:throw new Error(e)}}function $p(e){switch(e){case"point-list":return s.POINTS;case"line-list":return s.LINES;case"line-strip":return s.LINES;case"line-loop-webgl":return s.LINES;case"triangle-list":return s.TRIANGLES;case"triangle-strip":return s.TRIANGLES;case"triangle-fan-webgl":return s.TRIANGLES;default:throw new Error(e)}}function Qp(e,t){var r=typeof Symbol<"u"&&e[Symbol.iterator]||e["@@iterator"];if(!r){if(Array.isArray(e)||(r=Jp(e))||t&&e&&typeof e.length=="number"){r&&(e=r);var n=0,i=function(){};return{s:i,n:function(){return n>=e.length?{done:!0}:{done:!1,value:e[n++]}},e:function(u){throw u},f:i}}throw new TypeError(`Invalid attempt to iterate non-iterable instance.
1188
+ In order to be iterable, non-array objects must have a [Symbol.iterator]() method.`)}var o=!0,a=!1,c;return{s:function(){r=r.call(e)},n:function(){var u=r.next();return o=u.done,u},e:function(u){a=!0,c=u},f:function(){try{!o&&r.return!=null&&r.return()}finally{if(a)throw c}}}}function Jp(e,t){if(e){if(typeof e=="string")return Xf(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 Xf(e,t)}}function Xf(e,t){(t==null||t>e.length)&&(t=e.length);for(var r=0,n=new Array(t);r<t;r++)n[r]=e[r];return n}function ed(e){var t=td();return function(){var n=I(e),i;if(t){var o=I(this).constructor;i=Reflect.construct(n,arguments,o)}else i=n.apply(this,arguments);return X(this,i)}}function td(){if(typeof Reflect>"u"||!Reflect.construct||Reflect.construct.sham)return!1;if(typeof Proxy=="function")return!0;try{return Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],function(){})),!0}catch{return!1}}var Vf=function(e){H(r,e);var t=ed(r);function r(i){var o;return C(this,r),o=t.call(this,{}),o.device=void 0,o.commands=[],o.device=i,o}var n=r.prototype;return n.submitCommands=function(){var o=arguments.length>0&&arguments[0]!==void 0?arguments[0]:this.commands,a=Qp(o),c;try{for(a.s();!(c=a.n()).done;){var f=c.value;switch(f.name){case"copy-buffer-to-buffer":rd(this.device,f.options);break;case"copy-buffer-to-texture":nd(this.device,f.options);break;case"copy-texture-to-buffer":id(this.device,f.options);break;case"copy-texture-to-texture":od(this.device,f.options);break}}}catch(u){a.e(u)}finally{a.f()}},M(r)}(Pr);function rd(e,t){var r=t.source,n=t.destination,i=e.assertWebGL2();if(i){var o,a;i.bindBuffer(s.COPY_READ_BUFFER,r.handle),i.bindBuffer(s.COPY_WRITE_BUFFER,n.handle),i.copyBufferSubData(s.COPY_READ_BUFFER,s.COPY_WRITE_BUFFER,(o=t.sourceOffset)!==null&&o!==void 0?o:0,(a=t.destinationOffset)!==null&&a!==void 0?a:0,t.size),i.bindBuffer(s.COPY_READ_BUFFER,null),i.bindBuffer(s.COPY_WRITE_BUFFER,null)}else throw new Error("copyBufferToBuffer not implemented in WebGL1")}function nd(e,t){throw new Error("Not implemented")}function id(e,t){var r=t.source,n=t.mipLevel,i=n===void 0?0:n,o=t.aspect,a=o===void 0?"all":o,c=t.width,f=c===void 0?t.source.width:c,u=t.height,_=u===void 0?t.source.height:u,E=t.depthOrArrayLayers,p=E===void 0?0:E,d=t.origin,h=d===void 0?[0,0]:d,m=t.destination,A=t.byteOffset,g=A===void 0?0:A,y=t.bytesPerRow,b=t.rowsPerImage;if(a!=="all")throw new Error("not supported");if(i!==0||p!==void 0||y||b)throw new Error("not implemented");var S=e.assertWebGL2(),x=Wf(r),P=x.framebuffer,j=x.destroyFramebuffer;try{var W=m,K=f||P.width,V=_||P.height,O=s.RGBA,R=s.UNSIGNED_BYTE;S.bindBuffer(s.PIXEL_PACK_BUFFER,W.handle),S.bindFramebuffer(s.FRAMEBUFFER,P.handle),S.readPixels(h[0],h[1],K,V,O,R,g)}finally{S.bindBuffer(s.PIXEL_PACK_BUFFER,null),S.bindFramebuffer(s.FRAMEBUFFER,null),j&&P.destroy()}}function od(e,t){var r=t.source,n=t.origin,i=n===void 0?[0,0]:n,o=t.destination,a=t.width,c=a===void 0?t.destination.width:a,f=t.height,u=f===void 0?t.destination.width:f,_=0,E=s.RGBA,p=Wf(r),d=p.framebuffer,h=p.destroyFramebuffer,m=L(i,2),A=m[0],g=m[1],y=!1;e.gl.bindFramebuffer(s.FRAMEBUFFER,d.handle);var b=null,S;if(o instanceof Ne)b=o,c=Number.isFinite(c)?c:b.width,u=Number.isFinite(u)?u:b.height,b.bind(0),S=b.destination;else throw new Error("whoops");return y||e.gl.copyTexImage2D(S,_,E,A,g,c,u,0),b&&b.unbind(),h&&d.destroy(),b}function Wf(e){if(e instanceof Te){var t=e.width,r=e.height,n=e.id,i=e.device.createFramebuffer({id:"framebuffer-for-".concat(n),width:t,height:r,colorAttachments:[e]});return{framebuffer:i,destroyFramebuffer:!0}}return{framebuffer:e,destroyFramebuffer:!1}}function ad(e){var t=sd();return function(){var n=I(e),i;if(t){var o=I(this).constructor;i=Reflect.construct(n,arguments,o)}else i=n.apply(this,arguments);return X(this,i)}}function sd(){if(typeof Reflect>"u"||!Reflect.construct||Reflect.construct.sham)return!1;if(typeof Proxy=="function")return!0;try{return Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],function(){})),!0}catch{return!1}}var jf=function(e){H(r,e);var t=ad(r);function r(i,o){var a;return C(this,r),a=t.call(this,i,o),a.device=void 0,a.commandBuffer=void 0,a.device=i,a.commandBuffer=new Vf(i),a}var n=r.prototype;return n.destroy=function(){},n.finish=function(){this.commandBuffer.submitCommands()},n.copyBufferToBuffer=function(o){this.commandBuffer.commands.push({name:"copy-buffer-to-buffer",options:o})},n.copyBufferToTexture=function(o){this.commandBuffer.commands.push({name:"copy-buffer-to-texture",options:o})},n.copyTextureToBuffer=function(o){this.commandBuffer.commands.push({name:"copy-texture-to-buffer",options:o})},n.copyTextureToTexture=function(o){this.commandBuffer.commands.push({name:"copy-texture-to-texture",options:o})},n.pushDebugGroup=function(o){},n.popDebugGroup=function(){},n.insertDebugMarker=function(o){},M(r)}(Cr);var Gf;function cd(e){var t=fd();return function(){var n=I(e),i;if(t){var o=I(this).constructor;i=Reflect.construct(n,arguments,o)}else i=n.apply(this,arguments);return X(this,i)}}function fd(){if(typeof Reflect>"u"||!Reflect.construct||Reflect.construct.sham)return!1;if(typeof Proxy=="function")return!0;try{return Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],function(){})),!0}catch{return!1}}Gf=Symbol.toStringTag;var Kf=function(e){H(r,e);var t=cd(r);r.isConstantAttributeZeroSupported=function(o){return o.info.type==="webgl2"||Rr()==="Chrome"};function r(i,o){var a;return C(this,r),a=t.call(this,i,o),a.device=void 0,a.handle=void 0,a.buffer=null,a.bufferValue=null,a.init=!1,a.device=i,a.handle=a.device.gl2.createVertexArray(),a}var n=r.prototype;return n.destroy=function(){if(Pe(I(r.prototype),"destroy",this).call(this),this.buffer){var o;(o=this.buffer)===null||o===void 0||o.destroy()}this.handle&&(this.device.gl2.deleteVertexArray(this.handle),this.handle=void 0)},n.setIndexBuffer=function(o){var a=o;if(a&&a.glTarget!==s.ELEMENT_ARRAY_BUFFER)throw new Error("Use .setBuffer()");this.device.gl2.bindVertexArray(this.handle),this.device.gl2.bindBuffer(s.ELEMENT_ARRAY_BUFFER,a?a.handle:null),this.indexBuffer=a},n.setBuffer=function(o,a){var c=a;if(c.glTarget===s.ELEMENT_ARRAY_BUFFER)throw new Error("Use .setIndexBuffer()");var f=this._getAccessor(o),u=f.size,_=f.type,E=f.stride,p=f.offset,d=f.normalized,h=f.integer,m=f.divisor;this.device.gl2.bindVertexArray(this.handle),this.device.gl.bindBuffer(s.ARRAY_BUFFER,c.handle),h?(this.device.assertWebGL2(),this.device.gl2.vertexAttribIPointer(o,u,_,E,p)):this.device.gl.vertexAttribPointer(o,u,_,d,E,p),this.device.gl.enableVertexAttribArray(o),this.device.gl2.vertexAttribDivisor(o,m||0),this.attributes[o]=c},n.setConstant=function(o,a){this._enable(o,!1),this.attributes[o]=a},n.bindBeforeRender=function(){if(this.device.gl2.bindVertexArray(this.handle),!this.init){var o=this.indexBuffer;this.device.gl2.bindBuffer(s.ELEMENT_ARRAY_BUFFER,o?.handle||null),this.init=!0}this._applyConstantAttributes()},n.unbindAfterRender=function(){this.device.gl2.bindVertexArray(null)},n._applyConstantAttributes=function(){for(var o=0;o<this.maxVertexAttributes;++o){var a=this.attributes[o];ArrayBuffer.isView(a)&&this.device.setConstantAttribute(o,a)}},n._getAccessor=function(o){var a=this.attributeInfos[o];if(!a)throw new Error("Unknown attribute location ".concat(o));var c=$r(a.bufferDataType);return{size:a.bufferComponents,type:c,stride:a.byteStride,offset:a.byteOffset,normalized:a.normalized,integer:a.integer,divisor:a.stepMode==="instance"?1:0}},n._enable=function(o){var a=arguments.length>1&&arguments[1]!==void 0?arguments[1]:!0,c=r.isConstantAttributeZeroSupported(this.device),f=c||o!==0;(a||f)&&(o=Number(o),this.device.gl2.bindVertexArray(this.handle),a?this.device.gl.enableVertexAttribArray(o):this.device.gl.disableVertexAttribArray(o),this.device.gl2.bindVertexArray(null))},n.getConstantBuffer=function(o,a){var c=ud(a),f=c.byteLength*o,u=c.length*o,_=!this.buffer;if(this.buffer=this.buffer||this.device.createBuffer({byteLength:f}),_=_||this.buffer.reallocate(f),_=_||!ld(c,this.bufferValue),_){var E=Sn(a.constructor,u);bn({target:E,source:c,start:0,count:u}),this.buffer.subData(E),this.bufferValue=a}return this.buffer},M(r,[{key:Gf,get:function(){return"VertexArray"}}]),r}(Dr);function ud(e){return Array.isArray(e)?new Float32Array(e):e}function ld(e,t){if(!e||!t||e.length!==t.length||e.constructor!==t.constructor)return!1;for(var r=0;r<e.length;++r)if(e[r]!==t[r])return!1;return!0}function Yf(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter(function(i){return Object.getOwnPropertyDescriptor(e,i).enumerable})),r.push.apply(r,n)}return r}function we(e){for(var t=1;t<arguments.length;t++){var r=arguments[t]!=null?arguments[t]:{};t%2?Yf(Object(r),!0).forEach(function(n){l(e,n,r[n])}):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(r)):Yf(Object(r)).forEach(function(n){Object.defineProperty(e,n,Object.getOwnPropertyDescriptor(r,n))})}return e}function _d(e){var t=Ed();return function(){var n=I(e),i;if(t){var o=I(this).constructor;i=Reflect.construct(n,arguments,o)}else i=n.apply(this,arguments);return X(this,i)}}function Ed(){if(typeof Reflect>"u"||!Reflect.construct||Reflect.construct.sham)return!1;if(typeof Proxy=="function")return!0;try{return Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],function(){})),!0}catch{return!1}}var cn=1,Re=function(e){H(r,e);var t=_d(r);r.isSupported=function(){return typeof WebGLRenderingContext<"u"||fc()},r.attach=function(o){if(o instanceof r)return o;if(o?.device instanceof Xt)return o.device;if(!pd(o))throw new Error("Invalid WebGLRenderingContext");return new r({gl:o})},r.create=function(){var i=pe(Di.default.mark(function a(){var c,f,u=arguments;return Di.default.wrap(function(E){for(;;)switch(E.prev=E.next){case 0:if(c=u.length>0&&u[0]!==void 0?u[0]:{},F.groupCollapsed(cn,"WebGLDevice created"),typeof c.canvas!="string"){E.next=5;break}return E.next=5,Rt.pageLoaded;case 5:if(!(F.get("debug")||c.debug)){E.next=8;break}return E.next=8,mf();case 8:if(f=c.spector,!(F.get("spector")||f)){E.next=12;break}return E.next=12,lf();case 12:if(F.probe(cn+1,"DOM is loaded")(),!(c.gl&&c.gl.device)){E.next=15;break}return E.abrupt("return",r.attach(c.gl));case 15:return E.abrupt("return",new r(c));case 16:case"end":return E.stop()}},a)}));function o(){return i.apply(this,arguments)}return o}();function r(i){var o,a;C(this,r),a=t.call(this,we(we({},i),{},{id:i.id||ue("webgl-device")})),a.info=void 0,a.canvasContext=void 0,a.handle=void 0,a.lost=void 0,a._resolveContextLost=void 0,a._features=void 0,a._limits=void 0,a.renderPass=null,a.gl=void 0,a.gl2=null,a.debug=!1,a.isWebGL1=void 0,a.isWebGL2=void 0,a._canvasSizeInfo={clientWidth:0,clientHeight:0,devicePixelRatio:1},a._extensions={},a._polyfilled=!1,a.spector=void 0,a._webglLimits=void 0,a._constants=void 0;var c=(o=i.gl)===null||o===void 0?void 0:o.device;if(c)throw new Error("WebGL context already attached to device ".concat(c.id));a.canvasContext=new sf(Ce(a),i),a.lost=new Promise(function(A){a._resolveContextLost=A});var f=function(g){var y,b;return(y=(b=a)._resolveContextLost)===null||y===void 0?void 0:y.call(b,{reason:"destroyed",message:"Computer entered sleep mode, or too many apps or browser tabs are using the GPU."})},u=i.gl||null;if(u=u||(te()?Pc(a.canvasContext.canvas,we(we({},i),{},{onContextLost:f})):null),u=u||(te()?null:uc(we(we({},i),{},{onContextLost:f}))),!u)throw new Error("WebGL context creation failed");a.handle=u,a.gl=a.handle,a.gl2=a.gl,a.isWebGL2=dd(a.gl),a.isWebGL1=!a.isWebGL2,a.info=xc(a.gl),a.gl.device=Ce(a),a.gl._version=a.isWebGL2?2:1,gc(a.gl);var _=i.enable,E=_===void 0?!0:_,p=i.copyState,d=p===void 0?!1:p;if(_i(a.gl,{enable:E,copyState:d,log:function(){for(var g=arguments.length,y=new Array(g),b=0;b<g;b++)y[b]=arguments[b];return F.log.apply(F,[1].concat(y))()}}),te()&&i.debug&&(a.gl=Rf(a.gl,we(we({},i),{},{webgl2:a.isWebGL2,throwOnError:!0})),a.gl2=a.gl,a.debug=!0,F.level=Math.max(F.level,1),F.warn("WebGL debug mode activated. Performance reduced.")()),te()&&i.spector){var h=a.handle.canvas||i.canvas;a.spector=_f(we(we({},a.props),{},{canvas:h}))}var m="Created ".concat(a.info.type).concat(a.debug?" debug":""," context: ").concat(a.info.vendor,", ").concat(a.info.renderer," for canvas: ").concat(a.canvasContext.id);return F.probe(cn,m)(),F.groupEnd(cn)(),a}var n=r.prototype;return n.destroy=function(){var o=this.gl.getExtension("STACKGL_destroy_context");o&&o.destroy()},n.getSize=function(){return[this.gl.drawingBufferWidth,this.gl.drawingBufferHeight]},n.isTextureFormatSupported=function(o){return fr(this.gl,o)},n.isTextureFormatFilterable=function(o){return wc(this.gl,o)},n.isTextureFormatRenderable=function(o){return Lc(this.gl,o)},n.assertWebGL2=function(){if(!this.gl2)throw new Error("Requires WebGL2");return this.gl2},n.createCanvasContext=function(o){throw new Error("WebGL only supports a single canvas")},n.createBuffer=function(o){var a=this._getBufferProps(o);return new Sf(this,a)},n._createTexture=function(o){return new Ne(this,o)},n.createExternalTexture=function(o){throw new Error("createExternalTexture() not implemented")},n.createSampler=function(o){return new Er(this,o)},n.createShader=function(o){return new yf(this,o)},n.createFramebuffer=function(o){return new tt(this,o)},n.createRenderPipeline=function(o){return new Hf(this,o)},n.createVertexArray=function(o){return new Kf(this,o)},n.beginRenderPass=function(o){return new If(this,o)},n.createComputePipeline=function(o){throw new Error("ComputePipeline not supported in WebGL")},n.beginComputePass=function(o){throw new Error("compute shaders not supported in WebGL")},n.getDefaultRenderPass=function(){return this.renderPass=this.renderPass||this.beginRenderPass({framebuffer:this.canvasContext.getCurrentFramebuffer()}),this.renderPass},n.createCommandEncoder=function(o){return new jf(this,o)},n.submit=function(){var o;(o=this.renderPass)===null||o===void 0||o.end(),this.renderPass=null},n.loseDevice=function(){var o,a=!1,c=this.gl.getExtension("WEBGL_lose_context");return c&&(a=!0,c.loseContext()),(o=this._resolveContextLost)===null||o===void 0||o.call(this,{reason:"destroyed",message:"Application triggered context loss"}),a},n.pushState=function(){Je(this.gl)},n.popState=function(){je(this.gl)},n.setSpectorMetadata=function(o,a){o.__SPECTOR_Metadata=a},n.getGLKey=function(o,a){a=a||this.gl2||this.gl;var c=Number(o);for(var f in a)if(a[f]===c)return"GL.".concat(f);return String(o)},n.setConstantAttribute=function(o,a){this._constants=this._constants||new Array(this.limits.maxVertexAttributes).fill(null);var c=this._constants[o];switch(c&&Ad(c,a)&&F.info(1,"setConstantAttribute(".concat(o,") could have been skipped, value unchanged"))(),this._constants[o]=a,a.constructor){case Float32Array:hd(this,o,a);break;case Int32Array:md(this,o,a);break;case Uint32Array:Rd(this,o,a);break;default:w(!1)}},M(r,[{key:"features",get:function(){return this._features=this._features||Wc(this.gl),this._features}},{key:"limits",get:function(){return this._limits=this._limits||Gc(this.gl),this._limits}},{key:"isLost",get:function(){return this.gl.isContextLost()}},{key:"webglLimits",get:function(){return this._webglLimits=this._webglLimits||Kc(this.gl),this._webglLimits}}]),r}(Xt);Re.type="webgl";function pd(e){return typeof WebGLRenderingContext<"u"&&e instanceof WebGLRenderingContext||typeof WebGL2RenderingContext<"u"&&e instanceof WebGL2RenderingContext?!0:Boolean(e&&Number.isFinite(e._version))}function dd(e){return typeof WebGL2RenderingContext<"u"&&e instanceof WebGL2RenderingContext?!0:Boolean(e&&e._version===2)}function hd(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:w(!1)}}function md(e,t,r){var n;e.assertWebGL2(),(n=e.gl2)===null||n===void 0||n.vertexAttribI4iv(t,r)}function Rd(e,t,r){var n;e.assertWebGL2(),(n=e.gl2)===null||n===void 0||n.vertexAttribI4uiv(t,r)}function Ad(e,t){if(!e||!t||e.length!==t.length||e.constructor!==t.constructor)return!1;for(var r=0;r<e.length;++r)if(e[r]!==t[r])return!1;return!0}var gd={SCALAR:1,VEC2:2,VEC3:3,VEC4:4,MAT2:4,MAT3:9,MAT4:16},Td={5120:Int8Array,5121:Uint8Array,5122:Int16Array,5123:Uint16Array,5125:Uint32Array,5126:Float32Array},vd=function(){function e(r){C(this,e),this.startTime=0,this.playing=!0,this.speed=1,this.channels=[],Object.assign(this,r)}var t=e.prototype;return t.animate=function(n){if(this.playing){var i=n/1e3,o=(i-this.startTime)*this.speed;this.channels.forEach(function(a){var c=a.sampler,f=a.target,u=a.path;Id(o,c,f,u),bd(f,f._node)})}},M(e)}(),fn=function(){function e(r){C(this,e),this.animations=void 0,this.animations=r.animations.map(function(n,i){var o=n.name||"Animation-".concat(i),a=n.samplers.map(function(f){var u=f.input,_=f.interpolation,E=_===void 0?"LINEAR":_,p=f.output;return{input:kf(r.accessors[u]),interpolation:E,output:kf(r.accessors[p])}}),c=n.channels.map(function(f){var u=f.sampler,_=f.target;return{sampler:a[u],target:r.nodes[_.node],path:_.path}});return new vd({name:o,channels:c})})}var t=e.prototype;return t.animate=function(n){this.setTime(n)},t.setTime=function(n){this.animations.forEach(function(i){return i.animate(n)})},t.getAnimations=function(){return this.animations},M(e)}();function kf(e){if(!e._animation){var t=Td[e.componentType],r=gd[e.type],n=r*e.count,i=e.bufferView.data,o=i.buffer,a=i.byteOffset,c=new t(o,a+(e.byteOffset||0),n);if(r===1)e._animation=Array.from(c);else{for(var f=[],u=0;u<c.length;u+=r)f.push(Array.from(c.slice(u,u+r)));e._animation=f}}return e._animation}var Sd=new me;function bd(e,t){if(t.matrix.identity(),e.translation&&t.matrix.translate(e.translation),e.rotation){var r=Sd.fromQuaternion(e.rotation);t.matrix.multiplyRight(r)}e.scale&&t.matrix.scale(e.scale)}var Bi=new Jt;function Od(e,t,r,n,i){if(t==="rotation"){Bi.slerp({start:r,target:n,ratio:i});for(var o=0;o<Bi.length;o++)e[t][o]=Bi[o]}else for(var a=0;a<r.length;a++)e[t][a]=i*n[a]+(1-i)*r[a]}function yd(e,t,r){for(var n=r.p0,i=r.outTangent0,o=r.inTangent1,a=r.p1,c=r.tDiff,f=r.ratio,u=0;u<e[t].length;u++){var _=i[u]*c,E=o[u]*c;e[t][u]=(2*Math.pow(f,3)-3*Math.pow(f,2)+1)*n[u]+(Math.pow(f,3)-2*Math.pow(f,2)+f)*_+(-2*Math.pow(f,3)+3*Math.pow(f,2))*a[u]+(Math.pow(f,3)-Math.pow(f,2))*E}}function Nd(e,t,r){for(var n=0;n<r.length;n++)e[t][n]=r[n]}function Id(e,t,r,n){var i=t.input,o=t.interpolation,a=t.output,c=i[i.length-1],f=e%c,u=i.findIndex(function(S){return S>=f}),_=Math.max(0,u-1);if(!Array.isArray(r[n]))switch(n){case"translation":r[n]=[0,0,0];break;case"rotation":r[n]=[0,0,0,1];break;case"scale":r[n]=[1,1,1];break;default:F.warn("Bad animation path ".concat(n))()}w(r[n].length===a[_].length);var E=i[_],p=i[u];switch(o){case"STEP":Nd(r,n,a[_]);break;case"LINEAR":if(p>E){var d=(f-E)/(p-E);Od(r,n,a[_],a[u],d)}break;case"CUBICSPLINE":if(p>E){var h=(f-E)/(p-E),m=p-E,A=a[3*_+1],g=a[3*_+2],y=a[3*u+0],b=a[3*u+1];yd(r,n,{p0:A,outTangent0:g,inTangent1:y,p1:b,tDiff:m,ratio:h})}break;default:F.warn("Interpolation ".concat(o," not supported"))();break}}function zf(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter(function(i){return Object.getOwnPropertyDescriptor(e,i).enumerable})),r.push.apply(r,n)}return r}function Md(e){for(var t=1;t<arguments.length;t++){var r=arguments[t]!=null?arguments[t]:{};t%2?zf(Object(r),!0).forEach(function(n){l(e,n,r[n])}):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(r)):zf(Object(r)).forEach(function(n){Object.defineProperty(e,n,Object.getOwnPropertyDescriptor(r,n))})}return e}var Cd=`
1189
+ #pragma vscode_glsllint_stage: vert
1190
+ #if (__VERSION__ < 300)
1191
+ #define _attr attribute
1192
+ #else
1193
+ #define _attr in
1194
+ #endif
1195
+
1196
+ // _attr vec4 POSITION;
1197
+ _attr vec4 positions;
1198
+
1199
+ #ifdef HAS_NORMALS
1200
+ // _attr vec4 NORMAL;
1201
+ _attr vec4 normals;
1202
+ #endif
1203
+
1204
+ #ifdef HAS_TANGENTS
1205
+ _attr vec4 TANGENT;
1206
+ #endif
1207
+
1208
+ #ifdef HAS_UV
1209
+ // _attr vec2 TEXCOORD_0;
1210
+ _attr vec2 texCoords;
1211
+ #endif
1212
+
1213
+ void main(void) {
1214
+ vec4 _NORMAL = vec4(0.);
1215
+ vec4 _TANGENT = vec4(0.);
1216
+ vec2 _TEXCOORD_0 = vec2(0.);
1217
+
1218
+ #ifdef HAS_NORMALS
1219
+ _NORMAL = normals;
1220
+ #endif
1221
+
1222
+ #ifdef HAS_TANGENTS
1223
+ _TANGENT = TANGENT;
1224
+ #endif
1225
+
1226
+ #ifdef HAS_UV
1227
+ _TEXCOORD_0 = texCoords;
1228
+ #endif
1229
+
1230
+ pbr_setPositionNormalTangentUV(positions, _NORMAL, _TANGENT, _TEXCOORD_0);
1231
+ gl_Position = u_MVPMatrix * positions;
1232
+ }
1233
+ `,Pd=`
1234
+ #pragma vscode_glsllint_stage: frag
1235
+ #if (__VERSION__ < 300)
1236
+ #define fragmentColor gl_FragColor
1237
+ #else
1238
+ out vec4 fragmentColor;
1239
+ #endif
1240
+
1241
+ void main(void) {
1242
+ vec3 pos = pbr_vPosition;
1243
+ fragmentColor = pbr_filterColor(vec4(1.0));
1244
+ }
1245
+ `;function Zf(e,t){var r=t.id,n=t.geometry,i=t.material,o=t.vertexCount,a=t.materialOptions,c=t.modelOptions,f=wr(e,i,n.attributes,a);F.info(4,"createGLTFModel defines: ",f.defines)();var u=[],_={depthWriteEnabled:!0,depthCompare:"less",depthFormat:"depth24plus",cullMode:"back"},E=Md({id:r,geometry:n,topology:n.topology,vertexCount:o,modules:[ti],defines:f.defines,parameters:_,vs:qf(e,Cd),fs:qf(e,Pd),bindings:f.bindings,uniforms:f.uniforms},c),p=new kr(e,E);return new oi({managedResources:u,model:p})}function qf(e,t){return e.info.type==="webgl2"?`#version 300 es
1246
+ `.concat(t):t}function $f(e,t){var r=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t&&(n=n.filter(function(i){return Object.getOwnPropertyDescriptor(e,i).enumerable})),r.push.apply(r,n)}return r}function Qf(e){for(var t=1;t<arguments.length;t++){var r=arguments[t]!=null?arguments[t]:{};t%2?$f(Object(r),!0).forEach(function(n){l(e,n,r[n])}):Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(r)):$f(Object(r)).forEach(function(n){Object.defineProperty(e,n,Object.getOwnPropertyDescriptor(r,n))})}return e}var xd={modelOptions:{},pbrDebug:!1,imageBasedLightingEnvironment:null,lights:!0,useTangents:!1},Jf=function(){function e(r){var n=arguments.length>1&&arguments[1]!==void 0?arguments[1]:{};C(this,e),this.device=void 0,this.options=void 0,this.gltf=void 0,this.device=Re.attach(r),this.options=Qf(Qf({},xd),n)}var t=e.prototype;return t.instantiate=function(n){var i=this;this.gltf=n;var o=(n.scenes||[]).map(function(a){return i.createScene(a)});return o},t.createAnimator=function(){return Array.isArray(this.gltf.animations)?new fn(this.gltf):null},t.createScene=function(n){var i=this,o=n.nodes||[],a=o.map(function(f){return i.createNode(f)}),c=new tr({id:n.name||n.id,children:a});return c},t.createNode=function(n){var i=this;if(!n._node){var o=n.children||[],a=o.map(function(u){return i.createNode(u)});n.mesh&&a.push(this.createMesh(n.mesh));var c=new tr({id:n.name||n.id,children:a});if(n.matrix)c.setMatrix(n.matrix);else{if(c.matrix.identity(),n.translation&&c.matrix.translate(n.translation),n.rotation){var f=new me().fromQuaternion(n.rotation);c.matrix.multiplyRight(f)}n.scale&&c.matrix.scale(n.scale)}n._node=c}return n._node},t.createMesh=function(n){var i=this;if(!n._mesh){var o=n.primitives||[],a=o.map(function(f,u){return i.createPrimitive(f,u,n)}),c=new tr({id:n.name||n.id,children:a});n._mesh=c}return n._mesh},t.createPrimitive=function(n,i,o){var a=n.name||"".concat(o.name||o.id,"-primitive-").concat(i),c=Fd(n.mode||4),f=n.indices?n.indices.count:this.getVertexCount(n.attributes),u=Zf(this.device,{id:a,geometry:this.createGeometry(a,n,c),material:n.material,materialOptions:this.options,modelOptions:this.options.modelOptions,vertexCount:f});return u.bounds=[n.attributes.POSITION.min,n.attributes.POSITION.max],u},t.getVertexCount=function(n){throw new Error("getVertexCount not implemented")},t.createGeometry=function(n,i,o){for(var a={},c=0,f=Object.entries(i.attributes);c<f.length;c++){var u=L(f[c],2),_=u[0],E=u[1],p=E,d=p.components,h=p.value;a[_]={size:d,value:h}}return new ni({id:n,topology:o,indices:i.indices.value,attributes:a})},t.createBuffer=function(n,i){n.bufferView||(n.bufferView={});var o=n.bufferView;return o.lumaBuffers||(o.lumaBuffers={}),o.lumaBuffers[i]||(o.lumaBuffers[i]=this.device.createBuffer({id:"from-".concat(o.id),data:o.data||n.value})),o.lumaBuffers[i]},t.createSampler=function(n){return n},t.needsPOT=function(){return!1},M(e)}(),rt=function(e){return 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}(rt||{});function Fd(e){switch(e){case rt.POINTS:return"point-list";case rt.LINES:return"line-list";case rt.LINE_STRIP:return"line-strip";case rt.LINE_LOOP:return"line-loop-webgl";case rt.TRIANGLES:return"triangle-list";case rt.TRIANGLE_STRIP:return"triangle-strip";case rt.TRIANGLE_FAN:return"triangle-fan-webgl";default:throw new Error(e)}}function eu(e,t,r){var n=new Jf(e,r),i=n.instantiate(t),o=n.createAnimator();return{scenes:i,animator:o}}return cu(Dd);})();
1247
+ /*! Bundled license information:
1248
+
1249
+ @babel/runtime/helpers/regeneratorRuntime.js:
1250
+ (*! regenerator-runtime -- Copyright (c) 2014-present, Facebook, Inc. -- license (MIT): https://github.com/facebook/regenerator/blob/main/LICENSE *)
1251
+ */
1252
+ return __exports__;
1253
+ });