@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.
- package/LICENSE +34 -0
- package/README.md +3 -0
- package/dist/dist.dev.js +15822 -0
- package/dist/gltf/create-gltf-model.d.ts +13 -0
- package/dist/gltf/create-gltf-model.d.ts.map +1 -0
- package/dist/gltf/create-gltf-model.js +105 -0
- package/dist/gltf/create-gltf-model.js.map +1 -0
- package/dist/gltf/create-gltf-objects.d.ts +9 -0
- package/dist/gltf/create-gltf-objects.d.ts.map +1 -0
- package/dist/gltf/create-gltf-objects.js +11 -0
- package/dist/gltf/create-gltf-objects.js.map +1 -0
- package/dist/gltf/gltf-animator.d.ts +35 -0
- package/dist/gltf/gltf-animator.d.ts.map +1 -0
- package/dist/gltf/gltf-animator.js +223 -0
- package/dist/gltf/gltf-animator.js.map +1 -0
- package/dist/gltf/gltf-instantiator.d.ts +45 -0
- package/dist/gltf/gltf-instantiator.d.ts.map +1 -0
- package/dist/gltf/gltf-instantiator.js +180 -0
- package/dist/gltf/gltf-instantiator.js.map +1 -0
- package/dist/index.cjs +635 -0
- package/dist/index.d.ts +6 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +4 -0
- package/dist/index.js.map +1 -0
- package/dist/pbr/parse-pbr-material.d.ts +26 -0
- package/dist/pbr/parse-pbr-material.d.ts.map +1 -0
- package/dist/pbr/parse-pbr-material.js +137 -0
- package/dist/pbr/parse-pbr-material.js.map +1 -0
- package/dist/pbr/pbr-environment.d.ts +18 -0
- package/dist/pbr/pbr-environment.d.ts.map +1 -0
- package/dist/pbr/pbr-environment.js +64 -0
- package/dist/pbr/pbr-environment.js.map +1 -0
- package/dist.min.js +1253 -0
- package/package.json +53 -0
- package/src/gltf/create-gltf-model.ts +120 -0
- package/src/gltf/create-gltf-objects.ts +18 -0
- package/src/gltf/gltf-animator.ts +223 -0
- package/src/gltf/gltf-instantiator.ts +225 -0
- package/src/index.ts +10 -0
- package/src/pbr/parse-pbr-material.ts +398 -0
- 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
|
+
});
|