UNPKG

@loaders.gl/textures

Version:

Framework-independent loaders for compressed and super compressed (basis) textures

7 lines 66.5 kB
(function webpackUniversalModuleDefinition(root, factory) { if (typeof exports === 'object' && typeof module === 'object') module.exports = factory(); else if (typeof define === 'function' && define.amd) define([], factory); else if (typeof exports === 'object') exports['loaders'] = factory(); else root['loaders'] = factory();})(globalThis, function () { "use strict";var __exports__=(()=>{var Sn=Object.create;var ue=Object.defineProperty;var ln=Object.getOwnPropertyDescriptor;var mn=Object.getOwnPropertyNames;var En=Object.getPrototypeOf,fn=Object.prototype.hasOwnProperty;var An=(e,t)=>()=>(t||e((t={exports:{}}).exports,t),t.exports),Br=(e,t)=>{for(var r in t)ue(e,r,{get:t[r],enumerable:!0})},Re=(e,t,r,o)=>{if(t&&typeof t=="object"||typeof t=="function")for(let n of mn(t))!fn.call(e,n)&&n!==r&&ue(e,n,{get:()=>t[n],enumerable:!(o=ln(t,n))||o.enumerable});return e},Se=(e,t,r)=>(Re(e,t,"default"),r&&Re(r,t,"default")),Tn=(e,t,r)=>(r=e!=null?Sn(En(e)):{},Re(t||!e||!e.__esModule?ue(r,"default",{value:e,enumerable:!0}):r,e)),gn=e=>Re(ue({},"__esModule",{value:!0}),e);var Lr=An((N_,br)=>{br.exports=globalThis.loaders});var ae={};Br(ae,{BASIS_EXTERNAL_LIBRARIES:()=>z,BasisLoader:()=>io,BasisWorkerLoader:()=>rr,CRUNCH_EXTERNAL_LIBRARIES:()=>Jo,CompressedTextureLoader:()=>Ao,CompressedTextureWorkerLoader:()=>or,CompressedTextureWriter:()=>qo,CrunchLoader:()=>nr,CrunchWorkerLoader:()=>nr,GL_COMPRESSED_R11_EAC:()=>gt,GL_COMPRESSED_RED_GREEN_RGTC2_EXT:()=>He,GL_COMPRESSED_RED_RGTC1_EXT:()=>Ie,GL_COMPRESSED_RG11_EAC:()=>xt,GL_COMPRESSED_RGB8_ETC2:()=>dt,GL_COMPRESSED_RGB8_PUNCHTHROUGH_ALPHA1_ETC2:()=>Mt,GL_COMPRESSED_RGBA8_ETC2_EAC:()=>Ce,GL_COMPRESSED_RGBA_ASTC_10x10_KHR:()=>Ke,GL_COMPRESSED_RGBA_ASTC_10x5_KHR:()=>he,GL_COMPRESSED_RGBA_ASTC_10x6_KHR:()=>De,GL_COMPRESSED_RGBA_ASTC_10x8_KHR:()=>we,GL_COMPRESSED_RGBA_ASTC_12x10_KHR:()=>Fe,GL_COMPRESSED_RGBA_ASTC_12x12_KHR:()=>ye,GL_COMPRESSED_RGBA_ASTC_4x4_KHR:()=>te,GL_COMPRESSED_RGBA_ASTC_5x4_KHR:()=>Ge,GL_COMPRESSED_RGBA_ASTC_5x5_KHR:()=>Oe,GL_COMPRESSED_RGBA_ASTC_6x5_KHR:()=>Me,GL_COMPRESSED_RGBA_ASTC_6x6_KHR:()=>Be,GL_COMPRESSED_RGBA_ASTC_8x5_KHR:()=>be,GL_COMPRESSED_RGBA_ASTC_8x6_KHR:()=>Le,GL_COMPRESSED_RGBA_ASTC_8x8_KHR:()=>Pe,GL_COMPRESSED_RGBA_ATC_EXPLICIT_ALPHA_WEBGL:()=>jr,GL_COMPRESSED_RGBA_ATC_INTERPOLATED_ALPHA_WEBGL:()=>Dt,GL_COMPRESSED_RGBA_BPTC_UNORM_EXT:()=>Yt,GL_COMPRESSED_RGBA_PVRTC_2BPPV1_IMG:()=>Lt,GL_COMPRESSED_RGBA_PVRTC_4BPPV1_IMG:()=>de,GL_COMPRESSED_RGBA_S3TC_DXT1_EXT:()=>At,GL_COMPRESSED_RGBA_S3TC_DXT3_EXT:()=>Tt,GL_COMPRESSED_RGBA_S3TC_DXT5_EXT:()=>xe,GL_COMPRESSED_RGB_ATC_WEBGL:()=>ht,GL_COMPRESSED_RGB_BPTC_SIGNED_FLOAT_EXT:()=>Qn,GL_COMPRESSED_RGB_BPTC_UNSIGNED_FLOAT_EXT:()=>es,GL_COMPRESSED_RGB_ETC1_WEBGL:()=>Pt,GL_COMPRESSED_RGB_PVRTC_2BPPV1_IMG:()=>zr,GL_COMPRESSED_RGB_PVRTC_4BPPV1_IMG:()=>bt,GL_COMPRESSED_RGB_S3TC_DXT1_EXT:()=>pe,GL_COMPRESSED_SIGNED_R11_EAC:()=>pt,GL_COMPRESSED_SIGNED_RED_GREEN_RGTC2_EXT:()=>jt,GL_COMPRESSED_SIGNED_RED_RGTC1_EXT:()=>zt,GL_COMPRESSED_SIGNED_RG11_EAC:()=>Ct,GL_COMPRESSED_SRGB8_ALPHA8_ASTC_10x10_KHR:()=>kt,GL_COMPRESSED_SRGB8_ALPHA8_ASTC_10x5_KHR:()=>Vt,GL_COMPRESSED_SRGB8_ALPHA8_ASTC_10x6_KHR:()=>Xt,GL_COMPRESSED_SRGB8_ALPHA8_ASTC_10x8_KHR:()=>vt,GL_COMPRESSED_SRGB8_ALPHA8_ASTC_12x10_KHR:()=>Wt,GL_COMPRESSED_SRGB8_ALPHA8_ASTC_12x12_KHR:()=>$t,GL_COMPRESSED_SRGB8_ALPHA8_ASTC_4x4_KHR:()=>wt,GL_COMPRESSED_SRGB8_ALPHA8_ASTC_5x4_KHR:()=>Kt,GL_COMPRESSED_SRGB8_ALPHA8_ASTC_5x5_KHR:()=>Ft,GL_COMPRESSED_SRGB8_ALPHA8_ASTC_6x5_KHR:()=>yt,GL_COMPRESSED_SRGB8_ALPHA8_ASTC_6x6_KHR:()=>It,GL_COMPRESSED_SRGB8_ALPHA8_ASTC_8x5_KHR:()=>Ht,GL_COMPRESSED_SRGB8_ALPHA8_ASTC_8x6_KHR:()=>Ut,GL_COMPRESSED_SRGB8_ALPHA8_ASTC_8x8_KHR:()=>Nt,GL_COMPRESSED_SRGB8_ALPHA8_ETC2_EAC:()=>Ot,GL_COMPRESSED_SRGB8_ETC2:()=>Gt,GL_COMPRESSED_SRGB8_PUNCHTHROUGH_ALPHA1_ETC2:()=>Bt,GL_COMPRESSED_SRGB_ALPHA_BPTC_UNORM_EXT:()=>qn,GL_COMPRESSED_SRGB_ALPHA_S3TC_DXT1_EXT:()=>Zt,GL_COMPRESSED_SRGB_ALPHA_S3TC_DXT3_EXT:()=>qt,GL_COMPRESSED_SRGB_ALPHA_S3TC_DXT5_EXT:()=>Qt,GL_COMPRESSED_SRGB_S3TC_DXT1_EXT:()=>Jt,GL_EXTENSIONS_CONSTANTS:()=>ts,GL_RGB:()=>Yn,GL_RGB565:()=>Et,GL_RGB5_A1:()=>Zn,GL_RGBA:()=>Jn,GL_RGBA32F:()=>ft,GL_RGBA4:()=>Wr,GL_RGBA8:()=>$r,KTX2BasisWriter:()=>en,KTX2BasisWriterWorker:()=>H_,NPYLoader:()=>Bo,NPYWorkerLoader:()=>Sr,RadianceHDRLoader:()=>Oo,TextureArrayLoader:()=>zo,TextureCubeArrayLoader:()=>Yo,TextureCubeLoader:()=>jo,TextureLoader:()=>$o,loadImageTexture:()=>tn,loadImageTextureArray:()=>rn,loadImageTextureCube:()=>on});Se(ae,Tn(Lr(),1));var u="4.4.2";function pn(){return globalThis._loadersgl_?.version||(globalThis._loadersgl_=globalThis._loadersgl_||{},globalThis._loadersgl_.version="4.4.2"),globalThis._loadersgl_.version}var Pr=pn();function hr(e,t){if(!e)throw new Error(t||"loaders.gl assertion failed.")}var M={self:typeof self<"u"&&self,window:typeof window<"u"&&window,global:typeof global<"u"&&global,document:typeof document<"u"&&document},k_=M.self||M.window||M.global||{},W_=M.window||M.self||M.global||{},$_=M.global||M.self||M.window||{},z_=M.document||{};var V=typeof process!="object"||String(process)!=="[object process]"||process.browser,le=typeof importScripts=="function",j_=typeof window<"u"&&typeof window.orientation<"u",Dr=typeof process<"u"&&process.version&&/v([0-9]*)/.exec(process.version),Y_=Dr&&parseFloat(Dr[1])||0;var rt={};function q(e={}){let t=e.useLocalLibraries??e.core?.useLocalLibraries,r=e.CDN??e.core?.CDN,o=e.modules;return{...t!==void 0?{useLocalLibraries:t}:{},...r!==void 0?{CDN:r}:{},...o!==void 0?{modules:o}:{}}}async function X(e,t=null,r={},o=null){return t&&(e=wr(e,t,r,o)),rt[e]=rt[e]||xn(e),await rt[e]}function wr(e,t,r={},o=null){if(r?.core)throw new Error("loadLibrary: options.core must be pre-normalized");if(!r.useLocalLibraries&&e.startsWith("http"))return e;o=o||e;let n=r.modules||{};return n[o]?n[o]:V?r.CDN?(hr(r.CDN.startsWith("http")),`${r.CDN}/${t}@${Pr}/dist/libs/${o}`):le?`../src/libs/${o}`:`modules/${t}/src/libs/${o}`:`modules/${t}/dist/libs/${o}`}async function xn(e){if(e.endsWith("wasm"))return await dn(e);if(!V){let{requireFromFile:r}=globalThis.loaders||{};try{let o=await r?.(e);return o||!e.includes("/dist/libs/")?o:await r?.(e.replace("/dist/libs/","/src/libs/"))}catch(o){if(e.includes("/dist/libs/"))try{return await r?.(e.replace("/dist/libs/","/src/libs/"))}catch{}return console.error(o),null}}if(le)return importScripts(e);let t=await Gn(e);return Cn(t,e)}function Cn(e,t){if(!V){let{requireFromString:o}=globalThis.loaders||{};return o?.(e,t)}if(le)return eval.call(globalThis,e),null;let r=document.createElement("script");r.id=t;try{r.appendChild(document.createTextNode(e))}catch{r.text=e}return document.body.appendChild(r),null}async function dn(e){let{readFileAsArrayBuffer:t}=globalThis.loaders||{};if(V||!t||e.startsWith("http"))return await(await fetch(e)).arrayBuffer();try{return await t(e)}catch{if(e.includes("/dist/libs/"))return await t(e.replace("/dist/libs/","/src/libs/"));throw new Error(`Failed to load ArrayBuffer from ${e}`)}}async function Gn(e){let{readFileAsText:t}=globalThis.loaders||{};if(V||!t||e.startsWith("http"))return await(await fetch(e)).text();try{return await t(e)}catch{if(e.includes("/dist/libs/"))return await t(e.replace("/dist/libs/","/src/libs/"));throw new Error(`Failed to load text from ${e}`)}}var v=class{constructor(){throw new Error("ChildProcessProxy is not available in browser environments")}async start(t){return await Promise.resolve({})}async stop(){return await Promise.resolve()}async exit(){return await Promise.resolve()}};async function ot(e,t,r,o){return o._parse(e,t,r,o)}function B(e,t){if(!e)throw new Error(t||"loader assertion failed.")}var b={self:typeof self<"u"&&self,window:typeof window<"u"&&window,global:typeof global<"u"&&global,document:typeof document<"u"&&document},On=b.self||b.window||b.global||{},Mn=b.window||b.self||b.global||{},Bn=b.global||b.self||b.window||{},bn=b.document||{};var nt=Boolean(typeof process!="object"||String(process)!=="[object process]"||process.browser);var Kr=typeof process<"u"&&process.version&&/v([0-9]*)/.exec(process.version),Ln=Kr&&parseFloat(Kr[1])||0;var me=globalThis,Pn=globalThis.document||{},Ee=globalThis.process||{},hn=globalThis.console,ia=globalThis.navigator||{};function Fr(e){if(typeof window<"u"&&window.process?.type==="renderer"||typeof process<"u"&&Boolean(process.versions?.electron))return!0;let t=typeof navigator<"u"&&navigator.userAgent,r=e||t;return Boolean(r&&r.indexOf("Electron")>=0)}function F(){return!(typeof process=="object"&&String(process)==="[object process]"&&!process?.browser)||Fr()}var st="4.1.1";function k(e,t){if(!e)throw new Error(t||"Assertion failed")}function _t(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 k(Number.isFinite(t)&&t>=0),t}function yr(e){let{logLevel:t,message:r}=e;e.logLevel=_t(t);let o=e.args?Array.from(e.args):[];for(;o.length&&o.shift()!==r;);switch(typeof t){case"string":case"function":r!==void 0&&o.unshift(r),e.message=t;break;case"object":Object.assign(e,t);break;default:}typeof e.message=="function"&&(e.message=e.message());let n=typeof e.message;return k(n==="string"||n==="object"),Object.assign(e,{args:o},e.opts)}var y=()=>{},fe=class{constructor({level:t=0}={}){this.userData={},this._onceCache=new Set,this._level=t}set level(t){this.setLevel(t)}get level(){return this.getLevel()}setLevel(t){return this._level=t,this}getLevel(){return this._level}warn(t,...r){return this._log("warn",0,t,r,{once:!0})}error(t,...r){return this._log("error",0,t,r)}log(t,r,...o){return this._log("log",t,r,o)}info(t,r,...o){return this._log("info",t,r,o)}once(t,r,...o){return this._log("once",t,r,o,{once:!0})}_log(t,r,o,n,s={}){let _=yr({logLevel:r,message:o,args:this._buildArgs(r,o,n),opts:s});return this._createLogFunction(t,_,s)}_buildArgs(t,r,o){return[t,r,...o]}_createLogFunction(t,r,o){if(!this._shouldLog(r.logLevel))return y;let n=this._getOnceTag(o.tag??r.tag??r.message);if((o.once||r.once)&&n!==void 0){if(this._onceCache.has(n))return y;this._onceCache.add(n)}return this._emit(t,r)}_shouldLog(t){return this.getLevel()>=_t(t)}_getOnceTag(t){if(t!==void 0)try{return typeof t=="string"?t:String(t)}catch{return}}};function wn(e){try{let t=window[e],r="__storage_test__";return t.setItem(r,r),t.removeItem(r),t}catch{return null}}var Ae=class{constructor(t,r,o="sessionStorage"){this.storage=wn(o),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 Ir(e){let t;return e<10?t=`${e.toFixed(2)}ms`:e<100?t=`${e.toFixed(1)}ms`:e<1e3?t=`${e.toFixed(0)}ms`:t=`${(e/1e3).toFixed(2)}s`,t}function Hr(e,t=8){let r=Math.max(t-e.length,0);return`${" ".repeat(r)}${e}`}var Te;(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"})(Te||(Te={}));var Kn=10;function Ur(e){return typeof e!="string"?e:(e=e.toUpperCase(),Te[e]||Te.WHITE)}function Nr(e,t,r){return!F&&typeof e=="string"&&(t&&(e=`\x1B[${Ur(t)}m${e}\x1B[39m`),r&&(e=`\x1B[${Ur(r)+Kn}m${e}\x1B[49m`)),e}function Vr(e,t=["constructor"]){let r=Object.getPrototypeOf(e),o=Object.getOwnPropertyNames(r),n=e;for(let s of o){let _=n[s];typeof _=="function"&&(t.find(a=>s===a)||(n[s]=_.bind(e)))}}function W(){let e;if(F()&&me.performance)e=me?.performance?.now?.();else if("hrtime"in Ee){let t=Ee?.hrtime?.();e=t[0]*1e3+t[1]/1e6}else e=Date.now();return e}var $={debug:F()&&console.debug||console.log,log:console.log,info:console.info,warn:console.warn,error:console.error},at={enabled:!0,level:0},h=class extends fe{constructor({id:t}={id:""}){super({level:0}),this.VERSION=st,this._startTs=W(),this._deltaTs=W(),this.userData={},this.LOG_THROTTLE_TIMEOUT=0,this.id=t,this.userData={},this._storage=new Ae(`__probe-${this.id}__`,{[this.id]:at}),this.timeStamp(`${this.id} started`),Vr(this),Object.seal(this)}isEnabled(){return this._getConfiguration().enabled}getLevel(){return this._getConfiguration().level}getTotal(){return Number((W()-this._startTs).toPrecision(10))}getDelta(){return Number((W()-this._deltaTs).toPrecision(10))}set priority(t){this.level=t}get priority(){return this.level}getPriority(){return this.level}enable(t=!0){return this._updateConfiguration({enabled:t}),this}setLevel(t){return this._updateConfiguration({level:t}),this}get(t){return this._getConfiguration()[t]}set(t,r){this._updateConfiguration({[t]:r})}settings(){console.table?console.table(this._storage.config):console.log(this._storage.config)}assert(t,r){if(!t)throw new Error(r||"Assertion failed")}warn(t,...r){return this._log("warn",0,t,r,{method:$.warn,once:!0})}error(t,...r){return this._log("error",0,t,r,{method:$.error})}deprecated(t,r){return this.warn(`\`${t}\` is deprecated and will be removed in a later version. Use \`${r}\` instead`)}removed(t,r){return this.error(`\`${t}\` has been removed. Use \`${r}\` instead`)}probe(t,r,...o){return this._log("log",t,r,o,{method:$.log,time:!0,once:!0})}log(t,r,...o){return this._log("log",t,r,o,{method:$.debug})}info(t,r,...o){return this._log("info",t,r,o,{method:console.info})}once(t,r,...o){return this._log("once",t,r,o,{method:$.debug||$.info,once:!0})}table(t,r,o){return r?this._log("table",t,r,o&&[o]||[],{method:console.table||y,tag:yn(r)}):y}time(t,r){return this._log("time",t,r,[],{method:console.time?console.time:console.info})}timeEnd(t,r){return this._log("time",t,r,[],{method:console.timeEnd?console.timeEnd:console.info})}timeStamp(t,r){return this._log("time",t,r,[],{method:console.timeStamp||y})}group(t,r,o={collapsed:!1}){let n=(o.collapsed?console.groupCollapsed:console.group)||console.info;return this._log("group",t,r,[],{method:n})}groupCollapsed(t,r,o={}){return this.group(t,r,Object.assign({},o,{collapsed:!0}))}groupEnd(t){return this._log("groupEnd",t,"",[],{method:console.groupEnd||y})}withGroup(t,r,o){this.group(t,r)();try{o()}finally{this.groupEnd(t)()}}trace(){console.trace&&console.trace()}_shouldLog(t){return this.isEnabled()&&super._shouldLog(t)}_emit(t,r){let o=r.method;k(o),r.total=this.getTotal(),r.delta=this.getDelta(),this._deltaTs=W();let n=Fn(this.id,r.message,r);return o.bind(console,n,...r.args)}_getConfiguration(){return this._storage.config[this.id]||this._updateConfiguration(at),this._storage.config[this.id]}_updateConfiguration(t){let r=this._storage.config[this.id]||{...at};this._storage.setConfiguration({[this.id]:{...r,...t}})}};h.VERSION=st;function Fn(e,t,r){if(typeof t=="string"){let o=r.time?Hr(Ir(r.total)):"";t=r.time?`${e}: ${o} ${t}`:`${e}: ${t}`,t=Nr(t,r.color,r.background)}return t}function yn(e){for(let t in e)for(let r in e[t])return r||"untitled";return"empty"}globalThis.probe={};var Ha=new h({id:"@probe.gl/log"});var it="4.4.2",In=it[0]>="0"&&it[0]<="9"?`v${it}`:"";function Hn(){let e=new h({id:"loaders.gl"});return globalThis.loaders||={},globalThis.loaders.log=e,globalThis.loaders.version=In,globalThis.probe||={},globalThis.probe.loaders=e,e}var ct=Hn();function Rt(e){globalThis.loaders||={},globalThis.loaders.modules||={},Object.assign(globalThis.loaders.modules,e)}function ut(e){return globalThis.loaders?.modules?.[e]||null}var Un="",Xr={};function ge(e){for(let t in Xr)if(e.startsWith(t)){let r=Xr[t];e=e.replace(t,r)}return!e.startsWith("http://")&&!e.startsWith("https://")&&(e=`${Un}${e}`),e}var I={};Br(I,{dirname:()=>Vn,filename:()=>Nn,join:()=>Xn,resolve:()=>vn});function vr(){if(typeof process<"u"&&typeof process.cwd<"u")return process.cwd();let e=window.location?.pathname;return e?.slice(0,e.lastIndexOf("/")+1)||""}function Nn(e){let t=e?e.lastIndexOf("/"):-1;return t>=0?e.substr(t+1):e}function Vn(e){let t=e?e.lastIndexOf("/"):-1;return t>=0?e.substr(0,t):""}function Xn(...e){let t="/";return e=e.map((r,o)=>(o&&(r=r.replace(new RegExp(`^${t}`),"")),o!==e.length-1&&(r=r.replace(new RegExp(`${t}$`),"")),r)),e.join(t)}function vn(...e){let t=[];for(let s=0;s<e.length;s++)t[s]=e[s];let r="",o=!1,n;for(let s=t.length-1;s>=-1&&!o;s--){let _;s>=0?_=t[s]:(n===void 0&&(n=vr()),_=n),_.length!==0&&(r=`${_}/${r}`,o=_.charCodeAt(0)===Q)}return r=kn(r,!o),o?`/${r}`:r.length>0?r:"."}var Q=47,St=46;function kn(e,t){let r="",o=-1,n=0,s,_=!1;for(let a=0;a<=e.length;++a){if(a<e.length)s=e.charCodeAt(a);else{if(s===Q)break;s=Q}if(s===Q){if(!(o===a-1||n===1))if(o!==a-1&&n===2){if(r.length<2||!_||r.charCodeAt(r.length-1)!==St||r.charCodeAt(r.length-2)!==St){if(r.length>2){let i=r.length-1,c=i;for(;c>=0&&r.charCodeAt(c)!==Q;--c);if(c!==i){r=c===-1?"":r.slice(0,c),o=a,n=0,_=!1;continue}}else if(r.length===2||r.length===1){r="",o=a,n=0,_=!1;continue}}t&&(r.length>0?r+="/..":r="..",_=!0)}else{let i=e.slice(o+1,a);r.length>0?r+=`/${i}`:r=i,_=!1}o=a,n=0}else s===St&&n!==-1?++n:n=-1}return r}var z={TRANSCODER:"basis_transcoder.js",TRANSCODER_WASM:"basis_transcoder.wasm",ENCODER:"basis_encoder.js",ENCODER_WASM:"basis_encoder.wasm"},kr;async function mt(e){Rt(e.modules);let t=ut("basis");return t||(kr||=Wn(e),await kr)}async function Wn(e){let t=null,r=null;return[t,r]=await Promise.all([await X(z.TRANSCODER,"textures",e),await X(z.TRANSCODER_WASM,"textures",e)]),t=t||globalThis.BASIS,await $n(t,r)}function $n(e,t){let r={};return t&&(r.wasmBinary=t),new Promise(o=>{e(r).then(n=>{let{BasisFile:s,initializeBasis:_}=n;_(),o({BasisFile:s})})})}var lt;async function ee(e){let t=e.modules||{};return t.basisEncoder?t.basisEncoder:(lt=lt||zn(e),await lt)}async function zn(e){let t=null,r=null;return[t,r]=await Promise.all([await X(z.ENCODER,"textures",e),await X(z.ENCODER_WASM,"textures",e)]),t=t||globalThis.BASIS,await jn(t,r)}function jn(e,t){let r={};return t&&(r.wasmBinary=t),new Promise(o=>{e(r).then(n=>{let{BasisFile:s,KTX2File:_,initializeBasis:a,BasisEncoder:i}=n;a(),o({BasisFile:s,KTX2File:_,BasisEncoder:i})})})}var Yn=6407,Jn=6408,Wr=32854,Zn=32855,$r=32856,Et=36194,ft=34836,pe=33776,At=33777,Tt=33778,xe=33779,gt=37488,pt=37489,xt=37490,Ct=37491,dt=37492,Ce=37493,Gt=37494,Ot=37495,Mt=37496,Bt=37497,bt=35840,zr=35841,de=35842,Lt=35843,Pt=36196,ht=35986,jr=35987,Dt=34798,te=37808,Ge=37809,Oe=37810,Me=37811,Be=37812,be=37813,Le=37814,Pe=37815,he=37816,De=37817,we=37818,Ke=37819,Fe=37820,ye=37821,wt=37840,Kt=37841,Ft=37842,yt=37843,It=37844,Ht=37845,Ut=37846,Nt=37847,Vt=37848,Xt=37849,vt=37850,kt=37851,Wt=37852,$t=37853,Ie=36283,zt=36284,He=36285,jt=36286,Yt=36492,qn=36493,Qn=36494,es=36495,Jt=35916,Zt=35917,qt=35918,Qt=35919,ts={RGB:6407,RGBA:6408,RGBA4:32854,RGB5_A1:32855,RGBA8:32856,RGB565:36194,RGBA32F:34836,COMPRESSED_RGB_S3TC_DXT1_EXT:33776,COMPRESSED_RGBA_S3TC_DXT1_EXT:33777,COMPRESSED_RGBA_S3TC_DXT3_EXT:33778,COMPRESSED_RGBA_S3TC_DXT5_EXT:33779,COMPRESSED_R11_EAC:37488,COMPRESSED_SIGNED_R11_EAC:37489,COMPRESSED_RG11_EAC:37490,COMPRESSED_SIGNED_RG11_EAC:37491,COMPRESSED_RGB8_ETC2:37492,COMPRESSED_RGBA8_ETC2_EAC:37493,COMPRESSED_SRGB8_ETC2:37494,COMPRESSED_SRGB8_ALPHA8_ETC2_EAC:37495,COMPRESSED_RGB8_PUNCHTHROUGH_ALPHA1_ETC2:37496,COMPRESSED_SRGB8_PUNCHTHROUGH_ALPHA1_ETC2:37497,COMPRESSED_RGB_PVRTC_4BPPV1_IMG:35840,COMPRESSED_RGB_PVRTC_2BPPV1_IMG:35841,COMPRESSED_RGBA_PVRTC_4BPPV1_IMG:35842,COMPRESSED_RGBA_PVRTC_2BPPV1_IMG:35843,COMPRESSED_RGB_ETC1_WEBGL:36196,COMPRESSED_RGB_ATC_WEBGL:35986,COMPRESSED_RGBA_ATC_EXPLICIT_ALPHA_WEBGL:35987,COMPRESSED_RGBA_ATC_INTERPOLATED_ALPHA_WEBGL:34798,COMPRESSED_RGBA_ASTC_4x4_KHR:37808,COMPRESSED_RGBA_ASTC_5x4_KHR:37809,COMPRESSED_RGBA_ASTC_5x5_KHR:37810,COMPRESSED_RGBA_ASTC_6x5_KHR:37811,COMPRESSED_RGBA_ASTC_6x6_KHR:37812,COMPRESSED_RGBA_ASTC_8x5_KHR:37813,COMPRESSED_RGBA_ASTC_8x6_KHR:37814,COMPRESSED_RGBA_ASTC_8x8_KHR:37815,COMPRESSED_RGBA_ASTC_10x5_KHR:37816,COMPRESSED_RGBA_ASTC_10x6_KHR:37817,COMPRESSED_RGBA_ASTC_10x8_KHR:37818,COMPRESSED_RGBA_ASTC_10x10_KHR:37819,COMPRESSED_RGBA_ASTC_12x10_KHR:37820,COMPRESSED_RGBA_ASTC_12x12_KHR:37821,COMPRESSED_SRGB8_ALPHA8_ASTC_4x4_KHR:37840,COMPRESSED_SRGB8_ALPHA8_ASTC_5x4_KHR:37841,COMPRESSED_SRGB8_ALPHA8_ASTC_5x5_KHR:37842,COMPRESSED_SRGB8_ALPHA8_ASTC_6x5_KHR:37843,COMPRESSED_SRGB8_ALPHA8_ASTC_6x6_KHR:37844,COMPRESSED_SRGB8_ALPHA8_ASTC_8x5_KHR:37845,COMPRESSED_SRGB8_ALPHA8_ASTC_8x6_KHR:37846,COMPRESSED_SRGB8_ALPHA8_ASTC_8x8_KHR:37847,COMPRESSED_SRGB8_ALPHA8_ASTC_10x5_KHR:37848,COMPRESSED_SRGB8_ALPHA8_ASTC_10x6_KHR:37849,COMPRESSED_SRGB8_ALPHA8_ASTC_10x8_KHR:37850,COMPRESSED_SRGB8_ALPHA8_ASTC_10x10_KHR:37851,COMPRESSED_SRGB8_ALPHA8_ASTC_12x10_KHR:37852,COMPRESSED_SRGB8_ALPHA8_ASTC_12x12_KHR:37853,COMPRESSED_RED_RGTC1_EXT:36283,COMPRESSED_SIGNED_RED_RGTC1_EXT:36284,COMPRESSED_RED_GREEN_RGTC2_EXT:36285,COMPRESSED_SIGNED_RED_GREEN_RGTC2_EXT:36286,COMPRESSED_RGBA_BPTC_UNORM_EXT:36492,COMPRESSED_SRGB_ALPHA_BPTC_UNORM_EXT:36493,COMPRESSED_RGB_BPTC_SIGNED_FLOAT_EXT:36494,COMPRESSED_RGB_BPTC_UNSIGNED_FLOAT_EXT:36495,COMPRESSED_SRGB_S3TC_DXT1_EXT:35916,COMPRESSED_SRGB_ALPHA_S3TC_DXT1_EXT:35917,COMPRESSED_SRGB_ALPHA_S3TC_DXT3_EXT:35918,COMPRESSED_SRGB_ALPHA_S3TC_DXT5_EXT:35919,COMPRESSED_RGBA_ASTC_4X4_KHR:37808,COMPRESSED_RGBA_ASTC_5X4_KHR:37809,COMPRESSED_RGBA_ASTC_5X5_KHR:37810,COMPRESSED_RGBA_ASTC_6X5_KHR:37811,COMPRESSED_RGBA_ASTC_6X6_KHR:37812,COMPRESSED_RGBA_ASTC_8X5_KHR:37813,COMPRESSED_RGBA_ASTC_8X6_KHR:37814,COMPRESSED_RGBA_ASTC_8X8_KHR:37815,COMPRESSED_RGBA_ASTC_10X5_KHR:37816,COMPRESSED_RGBA_ASTC_10X6_KHR:37817,COMPRESSED_RGBA_ASTC_10X8_KHR:37818,COMPRESSED_RGBA_ASTC_10X10_KHR:37819,COMPRESSED_RGBA_ASTC_12X10_KHR:37820,COMPRESSED_RGBA_ASTC_12X12_KHR:37821,COMPRESSED_SRGB8_ALPHA8_ASTC_4X4_KHR:37840,COMPRESSED_SRGB8_ALPHA8_ASTC_5X4_KHR:37841,COMPRESSED_SRGB8_ALPHA8_ASTC_5X5_KHR:37842,COMPRESSED_SRGB8_ALPHA8_ASTC_6X5_KHR:37843,COMPRESSED_SRGB8_ALPHA8_ASTC_6X6_KHR:37844,COMPRESSED_SRGB8_ALPHA8_ASTC_8X5_KHR:37845,COMPRESSED_SRGB8_ALPHA8_ASTC_8X6_KHR:37846,COMPRESSED_SRGB8_ALPHA8_ASTC_8X8_KHR:37847,COMPRESSED_SRGB8_ALPHA8_ASTC_10X5_KHR:37848,COMPRESSED_SRGB8_ALPHA8_ASTC_10X6_KHR:37849,COMPRESSED_SRGB8_ALPHA8_ASTC_10X8_KHR:37850,COMPRESSED_SRGB8_ALPHA8_ASTC_10X10_KHR:37851,COMPRESSED_SRGB8_ALPHA8_ASTC_12X10_KHR:37852,COMPRESSED_SRGB8_ALPHA8_ASTC_12X12_KHR:37853};var rs=["","WEBKIT_","MOZ_"],Yr={WEBGL_compressed_texture_s3tc:["bc1-rgb-unorm-webgl","bc1-rgba-unorm","bc2-rgba-unorm","bc3-rgba-unorm"],WEBGL_compressed_texture_s3tc_srgb:["bc1-rgb-unorm-srgb-webgl","bc1-rgba-unorm-srgb","bc2-rgba-unorm-srgb","bc3-rgba-unorm-srgb"],EXT_texture_compression_rgtc:["bc4-r-unorm","bc4-r-snorm","bc5-rg-unorm","bc5-rg-snorm"],EXT_texture_compression_bptc:["bc6h-rgb-ufloat","bc6h-rgb-float","bc7-rgba-unorm","bc7-rgba-unorm-srgb"],WEBGL_compressed_texture_etc1:["etc1-rgb-unorm-webgl"],WEBGL_compressed_texture_etc:["etc2-rgb8unorm","etc2-rgb8unorm-srgb","etc2-rgb8a1unorm","etc2-rgb8a1unorm-srgb","etc2-rgba8unorm","etc2-rgba8unorm-srgb","eac-r11unorm","eac-r11snorm","eac-rg11unorm","eac-rg11snorm"],WEBGL_compressed_texture_pvrtc:["pvrtc-rgb4unorm-webgl","pvrtc-rgba4unorm-webgl","pvrtc-rgb2unorm-webgl","pvrtc-rgba2unorm-webgl"],WEBGL_compressed_texture_atc:["atc-rgb-unorm-webgl","atc-rgba-unorm-webgl","atc-rgbai-unorm-webgl"],WEBGL_compressed_texture_astc:["astc-4x4-unorm","astc-4x4-unorm-srgb","astc-5x4-unorm","astc-5x4-unorm-srgb","astc-5x5-unorm","astc-5x5-unorm-srgb","astc-6x5-unorm","astc-6x5-unorm-srgb","astc-6x6-unorm","astc-6x6-unorm-srgb","astc-8x5-unorm","astc-8x5-unorm-srgb","astc-8x6-unorm","astc-8x6-unorm-srgb","astc-8x8-unorm","astc-8x8-unorm-srgb","astc-10x5-unorm","astc-10x5-unorm-srgb","astc-10x6-unorm","astc-10x6-unorm-srgb","astc-10x8-unorm","astc-10x8-unorm-srgb","astc-10x10-unorm","astc-10x10-unorm-srgb","astc-12x10-unorm","astc-12x10-unorm-srgb","astc-12x12-unorm","astc-12x12-unorm-srgb"]};var Ue=null;function Jr(e){if(!Ue){e=e||os()||void 0,Ue=new Set;for(let t of rs)for(let r in Yr)if(e&&e.getExtension(`${t}${r}`))for(let o of Yr[r])Ue.add(o)}return Ue}function os(){try{return document.createElement("canvas").getContext("webgl")}catch{return null}}var er=class{constructor(){this.vkFormat=0,this.typeSize=1,this.pixelWidth=0,this.pixelHeight=0,this.pixelDepth=0,this.layerCount=0,this.faceCount=1,this.supercompressionScheme=0,this.levels=[],this.dataFormatDescriptor=[{vendorId:0,descriptorType:0,descriptorBlockSize:0,versionNumber:2,colorModel:0,colorPrimaries:1,transferFunction:2,flags:0,texelBlockDimension:[0,0,0,0],bytesPlane:[0,0,0,0,0,0,0,0],samples:[]}],this.keyValue={},this.globalData=null}},H=class{constructor(t,r,o,n){this._dataView=void 0,this._littleEndian=void 0,this._offset=void 0,this._dataView=new DataView(t.buffer,t.byteOffset+r,o),this._littleEndian=n,this._offset=0}_nextUint8(){let t=this._dataView.getUint8(this._offset);return this._offset+=1,t}_nextUint16(){let t=this._dataView.getUint16(this._offset,this._littleEndian);return this._offset+=2,t}_nextUint32(){let t=this._dataView.getUint32(this._offset,this._littleEndian);return this._offset+=4,t}_nextUint64(){let t=this._dataView.getUint32(this._offset,this._littleEndian),r=this._dataView.getUint32(this._offset+4,this._littleEndian),o=t+2**32*r;return this._offset+=8,o}_nextInt32(){let t=this._dataView.getInt32(this._offset,this._littleEndian);return this._offset+=4,t}_nextUint8Array(t){let r=new Uint8Array(this._dataView.buffer,this._dataView.byteOffset+this._offset,t);return this._offset+=t,r}_skip(t){return this._offset+=t,this}_scan(t,r=0){let o=this._offset,n=0;for(;this._dataView.getUint8(this._offset)!==r&&n<t;)n++,this._offset++;return n<t&&this._offset++,new Uint8Array(this._dataView.buffer,this._dataView.byteOffset+o,n)}};var mi=new Uint8Array([0]),E=[171,75,84,88,32,50,48,187,13,10,26,10];function Zr(e){return new TextDecoder().decode(e)}function qr(e){let t=new Uint8Array(e.buffer,e.byteOffset,E.length);if(t[0]!==E[0]||t[1]!==E[1]||t[2]!==E[2]||t[3]!==E[3]||t[4]!==E[4]||t[5]!==E[5]||t[6]!==E[6]||t[7]!==E[7]||t[8]!==E[8]||t[9]!==E[9]||t[10]!==E[10]||t[11]!==E[11])throw new Error("Missing KTX 2.0 identifier.");let r=new er,o=17*Uint32Array.BYTES_PER_ELEMENT,n=new H(e,E.length,o,!0);r.vkFormat=n._nextUint32(),r.typeSize=n._nextUint32(),r.pixelWidth=n._nextUint32(),r.pixelHeight=n._nextUint32(),r.pixelDepth=n._nextUint32(),r.layerCount=n._nextUint32(),r.faceCount=n._nextUint32();let s=n._nextUint32();r.supercompressionScheme=n._nextUint32();let _=n._nextUint32(),a=n._nextUint32(),i=n._nextUint32(),c=n._nextUint32(),l=n._nextUint64(),S=n._nextUint64(),G=s*3*8,K=new H(e,E.length+o,G,!0);for(let A=0;A<s;A++)r.levels.push({levelData:new Uint8Array(e.buffer,e.byteOffset+K._nextUint64(),K._nextUint64()),uncompressedByteLength:K._nextUint64()});let R=new H(e,_,a,!0),Z={vendorId:R._skip(4)._nextUint16(),descriptorType:R._nextUint16(),versionNumber:R._nextUint16(),descriptorBlockSize:R._nextUint16(),colorModel:R._nextUint8(),colorPrimaries:R._nextUint8(),transferFunction:R._nextUint8(),flags:R._nextUint8(),texelBlockDimension:[R._nextUint8(),R._nextUint8(),R._nextUint8(),R._nextUint8()],bytesPlane:[R._nextUint8(),R._nextUint8(),R._nextUint8(),R._nextUint8(),R._nextUint8(),R._nextUint8(),R._nextUint8(),R._nextUint8()],samples:[]},et=6,tt=4,T=(Z.descriptorBlockSize/4-et)/tt;for(let A=0;A<T;A++){let P={bitOffset:R._nextUint16(),bitLength:R._nextUint8(),channelType:R._nextUint8(),samplePosition:[R._nextUint8(),R._nextUint8(),R._nextUint8(),R._nextUint8()],sampleLower:-1/0,sampleUpper:1/0};P.channelType&64?(P.sampleLower=R._nextInt32(),P.sampleUpper=R._nextInt32()):(P.sampleLower=R._nextUint32(),P.sampleUpper=R._nextUint32()),Z.samples[A]=P}r.dataFormatDescriptor.length=0,r.dataFormatDescriptor.push(Z);let g=new H(e,i,c,!0);for(;g._offset<c;){let A=g._nextUint32(),P=g._scan(A),ce=Zr(P);if(r.keyValue[ce]=g._nextUint8Array(A-P.byteLength-1),ce.match(/^ktx/i)){let Mr=Zr(r.keyValue[ce]);r.keyValue[ce]=Mr.substring(0,Mr.lastIndexOf("\0"))}let un=A%4?4-A%4:0;g._skip(un)}if(S<=0)return r;let m=new H(e,l,S,!0),O=m._nextUint16(),f=m._nextUint16(),ie=m._nextUint32(),pr=m._nextUint32(),xr=m._nextUint32(),nn=m._nextUint32(),Cr=[];for(let A=0;A<s;A++)Cr.push({imageFlags:m._nextUint32(),rgbSliceByteOffset:m._nextUint32(),rgbSliceByteLength:m._nextUint32(),alphaSliceByteOffset:m._nextUint32(),alphaSliceByteLength:m._nextUint32()});let dr=l+m._offset,Gr=dr+ie,Or=Gr+pr,sn=Or+xr,_n=new Uint8Array(e.buffer,e.byteOffset+dr,ie),an=new Uint8Array(e.buffer,e.byteOffset+Gr,pr),cn=new Uint8Array(e.buffer,e.byteOffset+Or,xr),Rn=new Uint8Array(e.buffer,e.byteOffset+sn,nn);return r.globalData={endpointCount:O,selectorCount:f,imageDescs:Cr,endpointsData:_n,selectorsData:an,tablesData:cn,extendedData:Rn},r}var Qr={[34836]:"rgba32float",[33776]:"bc1-rgb-unorm-webgl",[35916]:"bc1-rgb-unorm-srgb-webgl",[33777]:"bc1-rgba-unorm",[35917]:"bc1-rgba-unorm-srgb",[33778]:"bc2-rgba-unorm",[35918]:"bc2-rgba-unorm-srgb",[33779]:"bc3-rgba-unorm",[35919]:"bc3-rgba-unorm-srgb",[36283]:"bc4-r-unorm",[36284]:"bc4-r-snorm",[36285]:"bc5-rg-unorm",[36286]:"bc5-rg-snorm",[37492]:"etc2-rgb8unorm",[37494]:"etc2-rgb8unorm-srgb",[37496]:"etc2-rgb8a1unorm",[37497]:"etc2-rgb8a1unorm-srgb",[37493]:"etc2-rgba8unorm",[37495]:"etc2-rgba8unorm-srgb",[37488]:"eac-r11unorm",[37489]:"eac-r11snorm",[37490]:"eac-rg11unorm",[37491]:"eac-rg11snorm",[37808]:"astc-4x4-unorm",[37840]:"astc-4x4-unorm-srgb",[37809]:"astc-5x4-unorm",[37841]:"astc-5x4-unorm-srgb",[37810]:"astc-5x5-unorm",[37842]:"astc-5x5-unorm-srgb",[37811]:"astc-6x5-unorm",[37843]:"astc-6x5-unorm-srgb",[37812]:"astc-6x6-unorm",[37844]:"astc-6x6-unorm-srgb",[37813]:"astc-8x5-unorm",[37845]:"astc-8x5-unorm-srgb",[37814]:"astc-8x6-unorm",[37846]:"astc-8x6-unorm-srgb",[37815]:"astc-8x8-unorm",[37847]:"astc-8x8-unorm-srgb",[37816]:"astc-10x5-unorm",[37848]:"astc-10x5-unorm-srgb",[37817]:"astc-10x6-unorm",[37849]:"astc-10x6-unorm-srgb",[37818]:"astc-10x8-unorm",[37850]:"astc-10x8-unorm-srgb",[37819]:"astc-10x10-unorm",[37851]:"astc-10x10-unorm-srgb",[37820]:"astc-12x10-unorm",[37852]:"astc-12x10-unorm-srgb",[37821]:"astc-12x12-unorm",[37853]:"astc-12x12-unorm-srgb",[35840]:"pvrtc-rgb4unorm-webgl",[35842]:"pvrtc-rgba4unorm-webgl",[35841]:"pvrtc-rgb2unorm-webgl",[35843]:"pvrtc-rgba2unorm-webgl",[36196]:"etc1-rgb-unorm-webgl",[35986]:"atc-rgb-unorm-webgl",[35987]:"atc-rgba-unorm-webgl",[34798]:"atc-rgbai-unorm-webgl"},ns=Object.fromEntries(Object.entries(Qr).map(([e,t])=>[t,Number(e)]));function Ne(e){if(e!==void 0)return Qr[e]}function eo(e){if(e!==void 0)return ns[e]}function j(e,t){let r=new Array(t.mipMapLevels),o=t.textureFormat||Ne(t.internalFormat),n=t.internalFormat||eo(t.textureFormat),s=t.width,_=t.height,a=0;for(let i=0;i<t.mipMapLevels;++i){let c=_s(t,s,_,e,i),S={shape:"texture-level",compressed:!0,data:ss(e,i,a,c),width:s,height:_,levelSize:c};n!==void 0&&(S.format=n),o&&(S.textureFormat=o),r[i]=S,s=Math.max(1,s>>1),_=Math.max(1,_>>1),a+=c}return r}function ss(e,t,r,o){return Array.isArray(e)?e[t].levelData:new Uint8Array(e.buffer,e.byteOffset+r,o)}function _s(e,t,r,o,n){return Array.isArray(o)?e.sizeFunction(o[n]):e.sizeFunction(t,r)}var as={131:33776,132:35916,133:33777,134:35917,135:33778,136:35918,137:33779,138:35919,139:36283,140:36284,141:36285,142:36286,147:37492,148:37494,149:37496,150:37497,151:37493,152:37495,153:37488,154:37489,155:37490,156:37491,157:37808,158:37840,159:37809,160:37841,161:37810,162:37842,163:37811,164:37843,165:37812,166:37844,167:37813,168:37845,169:37814,170:37846,171:37815,172:37847,173:37816,174:37848,175:37817,176:37849,177:37818,178:37850,179:37819,180:37851,181:37820,182:37852,183:37821,184:37853,1000054e3:35843,1000054001:35842,1000066e3:37808,1000066001:37809,1000066002:37810,1000066003:37811,1000066004:37812,1000066005:37813,1000066006:37814,1000066007:37815,1000066008:37816,1000066009:37817,1000066010:37818,1000066011:37819,1000066012:37820,1000066013:37821};function is(e){return as[e]}function to(e){return Ne(is(e))}var p=[171,75,84,88,32,50,48,187,13,10,26,10];function Ve(e){let t=new Uint8Array(e);return!(t.byteLength<p.length||t[0]!==p[0]||t[1]!==p[1]||t[2]!==p[2]||t[3]!==p[3]||t[4]!==p[4]||t[5]!==p[5]||t[6]!==p[6]||t[7]!==p[7]||t[8]!==p[8]||t[9]!==p[9]||t[10]!==p[10]||t[11]!==p[11])}function ro(e){let t=new Uint8Array(e),r=qr(t),o=Math.max(1,r.levels.length),n=r.pixelWidth,s=r.pixelHeight,_=to(r.vkFormat);return _===void 0&&ct.warn(`KTX2 container vkFormat ${r.vkFormat} does not map to a known texture format; returning texture levels without format metadata.`)(),j(r.levels,{mipMapLevels:o,width:n,height:s,sizeFunction:a=>a.uncompressedByteLength,textureFormat:_})}var oo=Promise.resolve(),_o={etc1:{basisFormat:0,compressed:!0,format:36196,textureFormat:"etc1-rgb-unorm-webgl"},etc2:{basisFormat:1,compressed:!0,format:37493,textureFormat:"etc2-rgba8unorm"},bc1:{basisFormat:2,compressed:!0,format:33776,textureFormat:"bc1-rgb-unorm-webgl"},bc3:{basisFormat:3,compressed:!0,format:33779,textureFormat:"bc3-rgba-unorm"},bc4:{basisFormat:4,compressed:!0,format:36283,textureFormat:"bc4-r-unorm"},bc5:{basisFormat:5,compressed:!0,format:36285,textureFormat:"bc5-rg-unorm"},"bc7-m6-opaque-only":{basisFormat:6,compressed:!0,format:36492,textureFormat:"bc7-rgba-unorm"},"bc7-m5":{basisFormat:7,compressed:!0,format:36492,textureFormat:"bc7-rgba-unorm"},"pvrtc1-4-rgb":{basisFormat:8,compressed:!0,format:35840,textureFormat:"pvrtc-rgb4unorm-webgl"},"pvrtc1-4-rgba":{basisFormat:9,compressed:!0,format:35842,textureFormat:"pvrtc-rgba4unorm-webgl"},"astc-4x4":{basisFormat:10,compressed:!0,format:37808,textureFormat:"astc-4x4-unorm"},"atc-rgb":{basisFormat:11,compressed:!0,format:35986,textureFormat:"atc-rgb-unorm-webgl"},"atc-rgba-interpolated-alpha":{basisFormat:12,compressed:!0,format:34798,textureFormat:"atc-rgbai-unorm-webgl"},rgba32:{basisFormat:13,compressed:!1,format:32856,textureFormat:"rgba8unorm"},rgb565:{basisFormat:14,compressed:!1,format:36194,textureFormat:"rgb565unorm-webgl"},bgr565:{basisFormat:15,compressed:!1,format:36194,textureFormat:"rgb565unorm-webgl"},rgba4444:{basisFormat:16,compressed:!1,format:32854,textureFormat:"rgba4unorm-webgl"}},Pi=Object.freeze(Object.keys(_o));async function cs(e){let t=oo,r;oo=new Promise(o=>{r=o}),await t;try{return await e()}finally{r()}}async function Xe(e,t={}){let r=q(t);return await cs(async()=>{if(!t.basis?.containerFormat||t.basis.containerFormat==="auto"){if(Ve(e)){let n=await ee(r);return no(n.KTX2File,e,t)}let{BasisFile:o}=await mt(r);return tr(o,e,t)}switch(t.basis.module){case"encoder":let o=await ee(r);switch(t.basis.containerFormat){case"ktx2":return no(o.KTX2File,e,t);case"basis":default:return tr(o.BasisFile,e,t)}case"transcoder":default:let{BasisFile:n}=await mt(r);return tr(n,e,t)}})}function tr(e,t,r){let o=new e(new Uint8Array(t));try{if(!o.startTranscoding())throw new Error("Failed to start basis transcoding");let n=o.getNumImages(),s=[];for(let _=0;_<n;_++){let a=o.getNumLevels(_),i=[];for(let c=0;c<a;c++)i.push(Rs(o,_,c,r));s.push(i)}return s}finally{o.close(),o.delete()}}function Rs(e,t,r,o){let n=e.getImageWidth(t,r),s=e.getImageHeight(t,r),_=e.getHasAlpha(),{compressed:a,format:i,basisFormat:c,textureFormat:l}=ao(o,_),S=e.getImageTranscodedSizeInBytes(t,r,c),G=new Uint8Array(S);if(!e.transcodeImage(G,t,r,c,0,0))throw new Error("failed to start Basis transcoding");return{shape:"texture-level",width:n,height:s,data:G,compressed:a,...i!==void 0?{format:i}:{},...l!==void 0?{textureFormat:l}:{},hasAlpha:_}}function no(e,t,r){let o=new e(new Uint8Array(t));try{if(!o.startTranscoding())throw new Error("failed to start KTX2 transcoding");let n=o.getLevels(),s=[];for(let _=0;_<n;_++)s.push(us(o,_,r));return[s]}finally{o.close(),o.delete()}}function us(e,t,r){let{alphaFlag:o,height:n,width:s}=e.getImageLevelInfo(t,0,0),{compressed:_,format:a,basisFormat:i,textureFormat:c}=ao(r,o),l=e.getImageTranscodedSizeInBytes(t,0,0,i),S=new Uint8Array(l);if(!e.transcodeImage(S,t,0,0,i,0,-1,-1))throw new Error("Failed to transcode KTX2 image");return{shape:"texture-level",width:s,height:n,data:S,compressed:_,...a!==void 0?{format:a}:{},...c!==void 0?{textureFormat:c}:{},levelSize:l,hasAlpha:o}}function ao(e,t){let r=e.basis?.format||"auto";r==="auto"&&(r=e.basis?.supportedTextureFormats?so(e.basis.supportedTextureFormats):so()),typeof r=="object"&&(r=t?r.alpha:r.noAlpha);let o=r.toLowerCase(),n=_o[o];if(!n)throw new Error(`Unknown Basis format ${r}`);return n}function so(e=Jr()){let t=new Set(e);return Y(t,["astc-4x4-unorm","astc-4x4-unorm-srgb"])?"astc-4x4":Y(t,["bc7-rgba-unorm","bc7-rgba-unorm-srgb"])?{alpha:"bc7-m5",noAlpha:"bc7-m6-opaque-only"}:Y(t,["bc1-rgb-unorm-webgl","bc1-rgb-unorm-srgb-webgl","bc1-rgba-unorm","bc1-rgba-unorm-srgb","bc2-rgba-unorm","bc2-rgba-unorm-srgb","bc3-rgba-unorm","bc3-rgba-unorm-srgb"])?{alpha:"bc3",noAlpha:"bc1"}:Y(t,["pvrtc-rgb4unorm-webgl","pvrtc-rgba4unorm-webgl","pvrtc-rgb2unorm-webgl","pvrtc-rgba2unorm-webgl"])?{alpha:"pvrtc1-4-rgba",noAlpha:"pvrtc1-4-rgb"}:Y(t,["etc2-rgb8unorm","etc2-rgb8unorm-srgb","etc2-rgb8a1unorm","etc2-rgb8a1unorm-srgb","etc2-rgba8unorm","etc2-rgba8unorm-srgb","eac-r11unorm","eac-r11snorm","eac-rg11unorm","eac-rg11snorm"])?"etc2":t.has("etc1-rgb-unorm-webgl")?"etc1":Y(t,["atc-rgb-unorm-webgl","atc-rgba-unorm-webgl","atc-rgbai-unorm-webgl"])?{alpha:"atc-rgba-interpolated-alpha",noAlpha:"atc-rgb"}:"rgb565"}function Y(e,t){return t.some(r=>e.has(r))}var rr={dataType:null,batchType:null,name:"Basis",id:"basis",module:"textures",version:u,worker:!0,extensions:["basis","ktx2"],mimeTypes:["application/octet-stream","image/ktx2"],tests:["sB"],binary:!0,options:{basis:{format:"auto",containerFormat:"auto",module:"transcoder"}}},io={...rr,parse:Xe};var x={MAGIC_NUMBER:542327876,HEADER_LENGTH:31,MAGIC_NUMBER_INDEX:0,HEADER_SIZE_INDEX:1,HEADER_FLAGS_INDEX:2,HEADER_HEIGHT_INDEX:3,HEADER_WIDTH_INDEX:4,MIPMAPCOUNT_INDEX:7,HEADER_PF_FLAGS_INDEX:20,HEADER_PF_FOURCC_INDEX:21,DDSD_MIPMAPCOUNT:131072,DDPF_FOURCC:4},Ss={DXT1:"bc1-rgb-unorm-webgl",DXT3:"bc2-rgba-unorm",DXT5:"bc3-rgba-unorm","ATC ":"atc-rgb-unorm-webgl",ATCA:"atc-rgba-unorm-webgl",ATCI:"atc-rgbai-unorm-webgl"},ls=uo,ms=ve,Es=ve,fs={DXT1:uo,DXT3:ve,DXT5:ve,"ATC ":ls,ATCA:ms,ATCI:Es};function co(e){return new Uint32Array(e,0,x.HEADER_LENGTH)[x.MAGIC_NUMBER_INDEX]===x.MAGIC_NUMBER}function Ro(e){let t=new Int32Array(e,0,x.HEADER_LENGTH),r=t[x.HEADER_PF_FOURCC_INDEX];B(Boolean(t[x.HEADER_PF_FLAGS_INDEX]&x.DDPF_FOURCC),"DDS: Unsupported format, must contain a FourCC code");let o=As(r),n=Ss[o],s=fs[o];B(n&&s,`DDS: Unknown pixel format ${r}`);let _=1;t[x.HEADER_FLAGS_INDEX]&x.DDSD_MIPMAPCOUNT&&(_=Math.max(1,t[x.MIPMAPCOUNT_INDEX]));let a=t[x.HEADER_WIDTH_INDEX],i=t[x.HEADER_HEIGHT_INDEX],c=t[x.HEADER_SIZE_INDEX]+4,l=new Uint8Array(e,c);return j(l,{mipMapLevels:_,width:a,height:i,sizeFunction:s,textureFormat:n})}function uo(e,t){return(e+3>>2)*(t+3>>2)*8}function ve(e,t){return(e+3>>2)*(t+3>>2)*16}function As(e){return String.fromCharCode(e&255,e>>8&255,e>>16&255,e>>24&255)}var C={MAGIC_NUMBER:55727696,MAGIC_NUMBER_EXTRA:1347834371,HEADER_LENGTH:13,HEADER_SIZE:52,MAGIC_NUMBER_INDEX:0,PIXEL_FORMAT_INDEX:2,COLOUR_SPACE_INDEX:4,HEIGHT_INDEX:6,WIDTH_INDEX:7,MIPMAPCOUNT_INDEX:11,METADATA_SIZE_INDEX:12},Ts={0:["pvrtc-rgb2unorm-webgl"],1:["pvrtc-rgba2unorm-webgl"],2:["pvrtc-rgb4unorm-webgl"],3:["pvrtc-rgba4unorm-webgl"],6:["etc1-rgb-unorm-webgl"],7:["bc1-rgb-unorm-webgl"],9:["bc2-rgba-unorm"],11:["bc3-rgba-unorm"],22:["etc2-rgb8unorm"],23:["etc2-rgba8unorm"],24:["etc2-rgb8a1unorm"],25:["eac-r11unorm"],26:["eac-rg11unorm"],27:["astc-4x4-unorm","astc-4x4-unorm-srgb"],28:["astc-5x4-unorm","astc-5x4-unorm-srgb"],29:["astc-5x5-unorm","astc-5x5-unorm-srgb"],30:["astc-6x5-unorm","astc-6x5-unorm-srgb"],31:["astc-6x6-unorm","astc-6x6-unorm-srgb"],32:["astc-8x5-unorm","astc-8x5-unorm-srgb"],33:["astc-8x6-unorm","astc-8x6-unorm-srgb"],34:["astc-8x8-unorm","astc-8x8-unorm-srgb"],35:["astc-10x5-unorm","astc-10x5-unorm-srgb"],36:["astc-10x6-unorm","astc-10x6-unorm-srgb"],37:["astc-10x8-unorm","astc-10x8-unorm-srgb"],38:["astc-10x10-unorm","astc-10x10-unorm-srgb"],39:["astc-12x10-unorm","astc-12x10-unorm-srgb"],40:["astc-12x12-unorm","astc-12x12-unorm-srgb"]},gs={0:So,1:So,2:lo,3:lo,6:re,7:re,9:oe,11:oe,22:re,23:oe,24:re,25:re,26:oe,27:oe,28:ps,29:xs,30:Cs,31:ds,32:Gs,33:Os,34:Ms,35:Bs,36:bs,37:Ls,38:Ps,39:hs,40:Ds};function mo(e){let r=new Uint32Array(e,0,C.HEADER_LENGTH)[C.MAGIC_NUMBER_INDEX];return r===C.MAGIC_NUMBER||r===C.MAGIC_NUMBER_EXTRA}function Eo(e){let t=new Uint32Array(e,0,C.HEADER_LENGTH),r=t[C.PIXEL_FORMAT_INDEX],o=t[C.COLOUR_SPACE_INDEX],n=Ts[r]||[],s=n.length>1&&o?n[1]:n[0],_=gs[r],a=t[C.MIPMAPCOUNT_INDEX],i=t[C.WIDTH_INDEX],c=t[C.HEIGHT_INDEX],l=C.HEADER_SIZE+t[C.METADATA_SIZE_INDEX],S=new Uint8Array(e,l);return j(S,{mipMapLevels:a,width:i,height:c,sizeFunction:_,textureFormat:s})}function So(e,t){return e=Math.max(e,16),t=Math.max(t,8),e*t/4}function lo(e,t){return e=Math.max(e,8),t=Math.max(t,8),e*t/2}function re(e,t){return Math.floor((e+3)/4)*Math.floor((t+3)/4)*8}function oe(e,t){return Math.floor((e+3)/4)*Math.floor((t+3)/4)*16}function ps(e,t){return Math.floor((e+4)/5)*Math.floor((t+3)/4)*16}function xs(e,t){return Math.floor((e+4)/5)*Math.floor((t+4)/5)*16}function Cs(e,t){return Math.floor((e+5)/6)*Math.floor((t+4)/5)*16}function ds(e,t){return Math.floor((e+5)/6)*Math.floor((t+5)/6)*16}function Gs(e,t){return Math.floor((e+7)/8)*Math.floor((t+4)/5)*16}function Os(e,t){return Math.floor((e+7)/8)*Math.floor((t+5)/6)*16}function Ms(e,t){return Math.floor((e+7)/8)*Math.floor((t+7)/8)*16}function Bs(e,t){return Math.floor((e+9)/10)*Math.floor((t+4)/5)*16}function bs(e,t){return Math.floor((e+9)/10)*Math.floor((t+5)/6)*16}function Ls(e,t){return Math.floor((e+9)/10)*Math.floor((t+7)/8)*16}function Ps(e,t){return Math.floor((e+9)/10)*Math.floor((t+9)/10)*16}function hs(e,t){return Math.floor((e+11)/12)*Math.floor((t+9)/10)*16}function Ds(e,t){return Math.floor((e+11)/12)*Math.floor((t+11)/12)*16}function fo(e){if(Ve(e))return ro(e);if(co(e))return Ro(e);if(mo(e))return Eo(e);throw new Error("Texture container format not recognized")}var or={dataType:null,batchType:null,name:"Texture Containers",id:"compressed-texture",module:"textures",version:u,worker:!0,extensions:["ktx","ktx2","dds","pvr"],mimeTypes:["image/ktx2","image/ktx","image/vnd-ms.dds","image/x-dds","application/octet-stream"],binary:!0,options:{"compressed-texture":{useBasis:!1}}},Ao={...or,parse:async(e,t)=>(t={...t},t?.["compressed-texture"]?.useBasis?(t.basis={format:{alpha:"BC3",noAlpha:"BC1"},...t.basis,containerFormat:"ktx2",module:"encoder"},(await Xe(e,t))[0]):fo(e))};var nr={dataType:null,batchType:null,id:"crunch",name:"Crunch",module:"textures",version:u,worker:!0,extensions:["crn"],mimeTypes:["image/crn","image/x-crn","application/octet-stream"],binary:!0,options:{crunch:{}}};var xo=["#?RADIANCE","#?RGBE"],ws="32-bit_rle_rgbe";function Co(e){let t={data:new Uint8Array(e),offset:0},r=ir(t);return r?xo.includes(r):!1}function cr(e){let t={data:new Uint8Array(e),offset:0},r=Ks(t),{width:o,height:n}=r,s=ys(t,r),_=Is(s),a={shape:"texture-level",compressed:!1,width:o,height:n,data:_,levelSize:_.byteLength,format:34836,textureFormat:"rgba32float"};return{shape:"texture",type:"2d",format:"rgba32float",...r.metadata?{metadata:r.metadata}:{},data:[a]}}function Ks(e){let t=ir(e);if(!t||!xo.includes(t))throw new Error("RadianceHDRLoader: bad initial token");let r=!1,o={};for(;e.offset<e.data.length;){let n=ir(e);if(n===null)break;if(!n||n.startsWith("#"))continue;if(n.startsWith("FORMAT=")){if(r=n.slice(7)===ws,!r)throw new Error("RadianceHDRLoader: unsupported format specifier");continue}Hs(o,n);let s=Fs(n);if(s){if(!r)throw new Error("RadianceHDRLoader: missing format specifier");return{...s,...Us(o)?{metadata:o}:{}}}}throw r?new Error("RadianceHDRLoader: missing image size specifier"):new Error("RadianceHDRLoader: missing format specifier")}function Fs(e){let t=e.match(/^([+-])([YX])\s+(\d+)\s+([+-])([YX])\s+(\d+)$/);if(!t)return null;let r=t[1]==="+"?1:-1,o=t[2],n=Number(t[3]),s=t[4]==="+"?1:-1,_=t[5],a=Number(t[6]);if(o===_)throw new Error("RadianceHDRLoader: invalid image dimensions");let i=o==="X"?n:a,c=o==="Y"?n:a;if(!Number.isFinite(i)||!Number.isFinite(c)||i<=0||c<=0)throw new Error("RadianceHDRLoader: invalid image dimensions");return{width:i,height:c,majorAxis:o,majorSign:r,minorAxis:_,minorSign:s}}function ys(e,t){let{width:r,height:o}=t,s=r*o*4,_=t.minorAxis==="X"?r:o,a=t.majorAxis==="Y"?o:r;if(_<8||_>32767)return sr(_r(e,s),t);if(e.offset+4>e.data.length)throw new Error("RadianceHDRLoader: unexpected end of file");let i=e.data;if(!(i[e.offset]===2&&i[e.offset+1]===2&&!(i[e.offset+2]&128))||(i[e.offset+2]<<8|i[e.offset+3])!==_)return sr(_r(e,s),t);let S=new Uint8Array(s),G=new Uint8Array(_*4);for(let K=0;K<a;K++){if(e.offset+4>i.length)throw new Error("RadianceHDRLoader: unexpected end of file");let R=i[e.offset++],Z=i[e.offset++],et=i[e.offset++],tt=i[e.offset++];if(R!==2||Z!==2||(et<<8|tt)!==_)throw new Error("RadianceHDRLoader: bad rgbe scanline format");for(let T=0;T<4;T++){let g=T*_,m=g+_,O=g;for(;O<m;){if(e.offset>=i.length)throw new Error("RadianceHDRLoader: unexpected end of file");let f=i[e.offset++];if(f>128){if(f-=128,f===0||O+f>m||e.offset>=i.length)throw new Error("RadianceHDRLoader: bad scanline data");let ie=i[e.offset++];G.fill(ie,O,O+f),O+=f;continue}if(f===0||O+f>m||e.offset+f>i.length)throw new Error("RadianceHDRLoader: bad scanline data");G.set(i.subarray(e.offset,e.offset+f),O),O+=f,e.offset+=f}}for(let T=0;T<_;T++){let g=Go(t,K,T);S[g]=G[T],S[g+1]=G[T+_],S[g+2]=G[T+_*2],S[g+3]=G[T+_*3]}}return S}function sr(e,t){let r=new Uint8Array(e.length),o=t.minorAxis==="X"?t.width:t.height,n=t.majorAxis==="Y"?t.height:t.width;for(let s=0;s<n;s++)for(let _=0;_<o;_++){let a=(s*o+_)*4,i=Go(t,s,_);r[i]=e[a],r[i+1]=e[a+1],r[i+2]=e[a+2],r[i+3]=e[a+3]}return r}function Go(e,t,r){let o=To(e.majorAxis==="X"?e.width:e.height,e.majorSign,t),n=To(e.minorAxis==="X"?e.width:e.height,e.minorSign,r),s=e.majorAxis==="X"?o:n,_=e.majorAxis==="Y"?o:n;return((e.height-1-_)*e.width+s)*4}function To(e,t,r){return t===1?r:e-1-r}function _r(e,t){if(e.offset+t>e.data.length)throw new Error("RadianceHDRLoader: unexpected end of file");let r=e.data.slice(e.offset,e.offset+t);return e.offset+=t,r}function Is(e){let t=new Float32Array(e.length);for(let r=0;r<e.length;r+=4){let o=e[r+3],n=r;if(o>0){let s=Math.pow(2,o-128)/255;t[n]=e[r]*s,t[n+1]=e[r+1]*s,t[n+2]=e[r+2]*s}t[n+3]=1}return t}function ir(e){if(e.offset>=e.data.length)return null;let t=e.offset;for(;e.offset<e.data.length;)if(e.data[e.offset++]===10){let n=go(e.data.subarray(t,e.offset-1));return n.endsWith("\r")?n.slice(0,-1):n}let r=go(e.data.subarray(t,e.offset));return r.endsWith("\r")?r.slice(0,-1):r}function go(e){let t="";for(let r of e)t+=String.fromCharCode(r);return t}function Hs(e,t){if(t.startsWith("COLORCORR=")){let r=po(t.slice(10),3);r&&(e.colorCorrection=r);return}if(t.startsWith("EXPOSURE=")){let r=ar(t.slice(9));r!==null&&(e.exposure=r);return}if(t.startsWith("GAMMA=")){let r=ar(t.slice(6));r!==null&&(e.gamma=r);return}if(t.startsWith("PIXASPECT=")){let r=ar(t.slice(10));r!==null&&(e.pixelAspectRatio=r);return}if(t.startsWith("PRIMARIES=")){let r=po(t.slice(10),8);r&&(e.primaries=r);return}if(t.startsWith("SOFTWARE=")){e.software=t.slice(9).trim();return}t.startsWith("VIEW=")&&(e.view=t.slice(5).trim())}function ar(e){let t=Number(e.trim());return Number.isFinite(t)?t:null}function po(e,t){let r=e.trim().split(/\s+/).map(o=>Number(o));return r.length!==t||r.some(o=>!Number.isFinite(o))?null:r}function Us(e){return Object.keys(e).length>0}var Oo={dataType:null,batchType:null,name:"Radiance HDR",id:"hdr",module:"textures",version:u,extensions:["hdr"],mimeTypes:["image/vnd.radiance","image/x-hdr","application/octet-stream"],binary:!0,tests:[Co],options:{hdr:{}},parseSync:cr,parse:async e=>cr(e)};var Rr=new Uint32Array([305419896]),Ns=new Uint8Array(Rr.buffer,Rr.byteOffset,Rr.byteLength),Vs=Ns[0]!==18,Mo=Vs,Xs={u1:Uint8Array,i1:Int8Array,u2:Uint16Array,i2:Int16Array,u4:Uint32Array,i4:Int32Array,f4:Float32Array,f8:Float64Array};function ur(e,t){let r=new DataView(e),{header:o,headerEndOffset:n}=vs(r),s=o.descr,_=Xs[s.slice(1,3)];if(!_)throw new Error(`Unimplemented type ${s}`);let i=o.shape?.reduce((l,S)=>l*S)*_.BYTES_PER_ELEMENT;if(e.byteLength<n+i)throw new Error("Buffer overflow");let c=new _(e.slice(n,n+i));if(s[0]===">"&&Mo||s[0]==="<"&&!Mo)throw new Error("Incorrect endianness");return{data:c,header:o}}function vs(e){let t=e.getUint8(6),r=8,o;t>=2?(o=e.getUint32(r,!0),r+=4):(o=e.getUint16(r,!0),r+=2);let n=t<=2?"latin1":"utf-8",s=new TextDecoder(n),_=new Uint8Array(e.buffer,r,o),a=s.decode(_);return r+=o,{header:JSON.parse(a.replace(/'/g,'"').replace("False","false").replace("(","[").replace(/,*\),*/g,"]")),headerEndOffset:r}}var ks=new Uint8Array([147,78,85,77,80,89]),Sr={dataType:null,batchType:null,name:"NPY",id:"npy",module:"textures",version:u,worker:!0,extensions:["npy"],mimeTypes:[],tests:[ks.buffer],options:{npy:{}}},Bo={...Sr,parseSync:ur,parse:async(e,t)=>ur(e,t)};var bo="4.4.2";var Ws=globalThis.loaders?.parseImageNode,lr=typeof Image<"u",mr=typeof ImageBitmap<"u",$s=Boolean(Ws),Er=nt?!0:$s;function Lo(e){switch(e){case"auto":return mr||lr||Er;case"imagebitmap":return mr;case"image":return lr;case"data":return Er;default:throw new Error(`@loaders.gl/images: image ${e} not supported in this environment`)}}function Po(){if(mr)return"imagebitmap";if(lr)return"image";if(Er)return"data";throw new Error("Install '@loaders.gl/polyfills' to parse images under Node.js")}function ke(e){return Boolean(Do(e))}function