@loaders.gl/textures 4.4.0-alpha.9 → 4.4.0
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/README.md +197 -1
- package/dist/basis-loader.d.ts +15 -10
- package/dist/basis-loader.d.ts.map +1 -1
- package/dist/basis-loader.js +0 -1
- package/dist/basis-loader.js.map +1 -1
- package/dist/basis-worker-node.js +797 -9971
- package/dist/basis-worker.js +300 -145
- package/dist/compressed-texture-loader.d.ts +0 -4
- package/dist/compressed-texture-loader.d.ts.map +1 -1
- package/dist/compressed-texture-loader.js +0 -1
- package/dist/compressed-texture-loader.js.map +1 -1
- package/dist/compressed-texture-worker.js +1110 -358
- package/dist/crunch-loader.d.ts +1 -5
- package/dist/crunch-loader.d.ts.map +1 -1
- package/dist/crunch-loader.js +1 -3
- package/dist/crunch-loader.js.map +1 -1
- package/dist/crunch-worker.js +168 -87
- package/dist/dist.dev.js +2647 -670
- package/dist/dist.min.js +1 -2
- package/dist/index.cjs +1642 -428
- package/dist/index.cjs.map +4 -4
- package/dist/index.d.ts +13 -4
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +6 -3
- package/dist/index.js.map +1 -1
- package/dist/ktx2-basis-writer-worker-node.js +444 -9763
- package/dist/ktx2-basis-writer-worker.js +13 -3
- package/dist/lib/composite-image/image-texture-cube.d.ts +47 -0
- package/dist/lib/composite-image/image-texture-cube.d.ts.map +1 -0
- package/dist/lib/composite-image/image-texture-cube.js +42 -0
- package/dist/lib/composite-image/image-texture-cube.js.map +1 -0
- package/dist/lib/composite-image/parse-composite-image.d.ts +43 -0
- package/dist/lib/composite-image/parse-composite-image.d.ts.map +1 -0
- package/dist/lib/composite-image/parse-composite-image.js +437 -0
- package/dist/lib/composite-image/parse-composite-image.js.map +1 -0
- package/dist/lib/encoders/encode-ktx2-basis-texture.d.ts.map +1 -1
- package/dist/lib/encoders/encode-ktx2-basis-texture.js +2 -1
- package/dist/lib/encoders/encode-ktx2-basis-texture.js.map +1 -1
- package/dist/lib/gl-extensions.d.ts +166 -58
- package/dist/lib/gl-extensions.d.ts.map +1 -1
- package/dist/lib/gl-extensions.js +177 -66
- package/dist/lib/gl-extensions.js.map +1 -1
- package/dist/lib/gl-types.d.ts +4 -0
- package/dist/lib/gl-types.d.ts.map +1 -0
- package/dist/lib/gl-types.js +5 -0
- package/dist/lib/gl-types.js.map +1 -0
- package/dist/lib/parsers/crunch-module-loader.d.ts +2 -2
- package/dist/lib/parsers/crunch-module-loader.d.ts.map +1 -1
- package/dist/lib/parsers/crunch-module-loader.js.map +1 -1
- package/dist/lib/parsers/parse-basis.d.ts +24 -2
- package/dist/lib/parsers/parse-basis.d.ts.map +1 -1
- package/dist/lib/parsers/parse-basis.js +262 -64
- package/dist/lib/parsers/parse-basis.js.map +1 -1
- package/dist/lib/parsers/parse-crunch.d.ts.map +1 -1
- package/dist/lib/parsers/parse-crunch.js +6 -6
- package/dist/lib/parsers/parse-crunch.js.map +1 -1
- package/dist/lib/parsers/parse-dds.d.ts.map +1 -1
- package/dist/lib/parsers/parse-dds.js +10 -11
- package/dist/lib/parsers/parse-dds.js.map +1 -1
- package/dist/lib/parsers/parse-hdr.d.ts +21 -0
- package/dist/lib/parsers/parse-hdr.d.ts.map +1 -0
- package/dist/lib/parsers/parse-hdr.js +305 -0
- package/dist/lib/parsers/parse-hdr.js.map +1 -0
- package/dist/lib/parsers/parse-ktx.d.ts.map +1 -1
- package/dist/lib/parsers/parse-ktx.js +10 -3
- package/dist/lib/parsers/parse-ktx.js.map +1 -1
- package/dist/lib/parsers/parse-pvr.d.ts.map +1 -1
- package/dist/lib/parsers/parse-pvr.js +31 -74
- package/dist/lib/parsers/parse-pvr.js.map +1 -1
- package/dist/lib/texture-api/generate-url.d.ts.map +1 -1
- package/dist/lib/texture-api/generate-url.js +2 -10
- package/dist/lib/texture-api/generate-url.js.map +1 -1
- package/dist/lib/texture-api/load-image-array.d.ts +6 -3
- package/dist/lib/texture-api/load-image-array.d.ts.map +1 -1
- package/dist/lib/texture-api/load-image-array.js +5 -3
- package/dist/lib/texture-api/load-image-array.js.map +1 -1
- package/dist/lib/texture-api/load-image-cube.d.ts +7 -11
- package/dist/lib/texture-api/load-image-cube.d.ts.map +1 -1
- package/dist/lib/texture-api/load-image-cube.js +8 -20
- package/dist/lib/texture-api/load-image-cube.js.map +1 -1
- package/dist/lib/texture-api/load-image.d.ts +6 -3
- package/dist/lib/texture-api/load-image.d.ts.map +1 -1
- package/dist/lib/texture-api/load-image.js +8 -4
- package/dist/lib/texture-api/load-image.js.map +1 -1
- package/dist/lib/texture-api/texture-api-types.d.ts +13 -0
- package/dist/lib/texture-api/texture-api-types.d.ts.map +1 -1
- package/dist/lib/utils/detect-supported-texture-formats.d.ts +14 -0
- package/dist/lib/utils/detect-supported-texture-formats.d.ts.map +1 -0
- package/dist/lib/utils/detect-supported-texture-formats.js +197 -0
- package/dist/lib/utils/detect-supported-texture-formats.js.map +1 -0
- package/dist/lib/utils/extract-mipmap-images.d.ts +6 -2
- package/dist/lib/utils/extract-mipmap-images.d.ts.map +1 -1
- package/dist/lib/utils/extract-mipmap-images.js +13 -2
- package/dist/lib/utils/extract-mipmap-images.js.map +1 -1
- package/dist/lib/utils/ktx-format-helper.d.ts +9 -1
- package/dist/lib/utils/ktx-format-helper.d.ts.map +1 -1
- package/dist/lib/utils/ktx-format-helper.js +76 -109
- package/dist/lib/utils/ktx-format-helper.js.map +1 -1
- package/dist/lib/utils/texture-format-map.d.ts +10 -0
- package/dist/lib/utils/texture-format-map.d.ts.map +1 -0
- package/dist/lib/utils/texture-format-map.js +87 -0
- package/dist/lib/utils/texture-format-map.js.map +1 -0
- package/dist/lib/utils/version.js +1 -1
- package/dist/lib/utils/version.js.map +1 -1
- package/dist/npy-loader.d.ts +2 -2
- package/dist/npy-worker.js +1 -1
- package/dist/radiance-hdr-loader.d.ts +25 -0
- package/dist/radiance-hdr-loader.d.ts.map +1 -0
- package/dist/radiance-hdr-loader.js +23 -0
- package/dist/radiance-hdr-loader.js.map +1 -0
- package/dist/texture-array-loader.d.ts +25 -0
- package/dist/texture-array-loader.d.ts.map +1 -0
- package/dist/texture-array-loader.js +24 -0
- package/dist/texture-array-loader.js.map +1 -0
- package/dist/texture-cube-array-loader.d.ts +25 -0
- package/dist/texture-cube-array-loader.d.ts.map +1 -0
- package/dist/texture-cube-array-loader.js +24 -0
- package/dist/texture-cube-array-loader.js.map +1 -0
- package/dist/texture-cube-loader.d.ts +25 -0
- package/dist/texture-cube-loader.d.ts.map +1 -0
- package/dist/texture-cube-loader.js +24 -0
- package/dist/texture-cube-loader.js.map +1 -0
- package/dist/texture-loader.d.ts +25 -0
- package/dist/texture-loader.d.ts.map +1 -0
- package/dist/texture-loader.js +24 -0
- package/dist/texture-loader.js.map +1 -0
- package/dist/workers/crunch-worker.d.ts +1 -3
- package/dist/workers/crunch-worker.d.ts.map +1 -1
- package/package.json +6 -6
- package/src/basis-loader.ts +19 -9
- package/src/compressed-texture-loader.ts +0 -3
- package/src/crunch-loader.ts +1 -5
- package/src/index.ts +21 -4
- package/src/lib/composite-image/image-texture-cube.ts +49 -0
- package/src/lib/composite-image/parse-composite-image.ts +699 -0
- package/src/lib/encoders/encode-ktx2-basis-texture.ts +2 -1
- package/src/lib/gl-extensions.ts +188 -81
- package/src/lib/gl-types.ts +136 -0
- package/src/lib/parsers/crunch-module-loader.ts +4 -4
- package/src/lib/parsers/parse-basis.ts +326 -62
- package/src/lib/parsers/parse-crunch.ts +11 -8
- package/src/lib/parsers/parse-dds.ts +11 -12
- package/src/lib/parsers/parse-hdr.ts +426 -0
- package/src/lib/parsers/parse-ktx.ts +13 -3
- package/src/lib/parsers/parse-pvr.ts +33 -75
- package/src/lib/texture-api/generate-url.ts +2 -12
- package/src/lib/texture-api/load-image-array.ts +15 -6
- package/src/lib/texture-api/load-image-cube.ts +20 -34
- package/src/lib/texture-api/load-image.ts +19 -8
- package/src/lib/texture-api/texture-api-types.ts +15 -0
- package/src/lib/utils/detect-supported-texture-formats.ts +210 -0
- package/src/lib/utils/extract-mipmap-images.ts +23 -4
- package/src/lib/utils/ktx-format-helper.ts +135 -111
- package/src/lib/utils/texture-format-map.ts +162 -0
- package/src/radiance-hdr-loader.ts +36 -0
- package/src/texture-array-loader.ts +46 -0
- package/src/texture-cube-array-loader.ts +49 -0
- package/src/texture-cube-loader.ts +46 -0
- package/src/texture-loader.ts +49 -0
- package/dist/lib/utils/texture-formats.d.ts +0 -8
- package/dist/lib/utils/texture-formats.d.ts.map +0 -1
- package/dist/lib/utils/texture-formats.js +0 -51
- package/dist/lib/utils/texture-formats.js.map +0 -1
- package/src/lib/utils/texture-formats.ts +0 -59
package/dist/dist.min.js
CHANGED
|
@@ -4,7 +4,6 @@
|
|
|
4
4
|
else if (typeof define === 'function' && define.amd) define([], factory);
|
|
5
5
|
else if (typeof exports === 'object') exports['loaders'] = factory();
|
|
6
6
|
else root['loaders'] = factory();})(globalThis, function () {
|
|
7
|
-
"use strict";var __exports__=(()=>{var jt=Object.create;var k=Object.defineProperty;var Jt=Object.getOwnPropertyDescriptor;var Zt=Object.getOwnPropertyNames;var qt=Object.getPrototypeOf,Qt=Object.prototype.hasOwnProperty;var we=(e,t)=>()=>(t||e((t={exports:{}}).exports,t),t.exports),er=(e,t)=>{for(var r in t)k(e,r,{get:t[r],enumerable:!0})},v=(e,t,r,o)=>{if(t&&typeof t=="object"||typeof t=="function")for(let s of Zt(t))!Qt.call(e,s)&&s!==r&&k(e,s,{get:()=>t[s],enumerable:!(o=Jt(t,s))||o.enumerable});return e},W=(e,t,r)=>(v(e,t,"default"),r&&v(r,t,"default")),se=(e,t,r)=>(r=e!=null?jt(qt(e)):{},v(t||!e||!e.__esModule?k(r,"default",{value:e,enumerable:!0}):r,e)),tr=e=>v(k({},"__esModule",{value:!0}),e);var He=we((No,be)=>{be.exports=globalThis.loaders});var Re=we(()=>{});var V={};er(V,{BASIS_EXTERNAL_LIBRARIES:()=>F,BasisLoader:()=>nt,BasisWorkerLoader:()=>ue,CRUNCH_EXTERNAL_LIBRARIES:()=>Et,CompressedTextureLoader:()=>At,CompressedTextureWorkerLoader:()=>me,CompressedTextureWriter:()=>mt,CrunchLoader:()=>de,CrunchWorkerLoader:()=>de,GL_EXTENSIONS_CONSTANTS:()=>n,KTX2BasisWriter:()=>pt,KTX2BasisWriterWorker:()=>Io,NPYLoader:()=>ft,NPYWorkerLoader:()=>Ce,getSupportedGPUTextureFormats:()=>Y,loadImageTexture:()=>Gt,loadImageTextureArray:()=>Lt,loadImageTextureCube:()=>yt,selectSupportedBasisFormat:()=>Ee});W(V,se(He(),1));var f="4.4.0-alpha.9";function p(e,t){if(!e)throw new Error(t||"loader assertion failed.")}var O={self:typeof self<"u"&&self,window:typeof window<"u"&&window,global:typeof global<"u"&&global,document:typeof document<"u"&&document},rr=O.self||O.window||O.global||{},or=O.window||O.self||O.global||{},nr=O.global||O.self||O.window||{},sr=O.document||{};var _e=Boolean(typeof process!="object"||String(process)!=="[object process]"||process.browser);var Ve=typeof process<"u"&&process.version&&/v([0-9]*)/.exec(process.version),_r=Ve&&parseFloat(Ve[1])||0;function ae(e){globalThis.loaders||={},globalThis.loaders.modules||={},Object.assign(globalThis.loaders.modules,e)}function ie(e){return globalThis.loaders?.modules?.[e]||null}function ar(){return globalThis._loadersgl_?.version||(globalThis._loadersgl_=globalThis._loadersgl_||{},globalThis._loadersgl_.version="4.4.0-alpha.9"),globalThis._loadersgl_.version}var Xe=ar();function ve(e,t){if(!e)throw new Error(t||"loaders.gl assertion failed.")}var C={self:typeof self<"u"&&self,window:typeof window<"u"&&window,global:typeof global<"u"&&global,document:typeof document<"u"&&document},vo=C.self||C.window||C.global||{},ko=C.window||C.self||C.global||{},Wo=C.global||C.self||C.window||{},zo=C.document||{};var P=typeof process!="object"||String(process)!=="[object process]"||process.browser,z=typeof importScripts=="function",$o=typeof window<"u"&&typeof window.orientation<"u",ke=typeof process<"u"&&process.version&&/v([0-9]*)/.exec(process.version),Yo=ke&&parseFloat(ke[1])||0;var ce={};async function h(e,t=null,r={},o=null){return t&&(e=We(e,t,r,o)),ce[e]=ce[e]||ir(e),await ce[e]}function We(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 s=r.modules||{};return s[o]?s[o]:P?r.CDN?(ve(r.CDN.startsWith("http")),`${r.CDN}/${t}@${Xe}/dist/libs/${o}`):z?`../src/libs/${o}`:`modules/${t}/src/libs/${o}`:`modules/${t}/dist/libs/${o}`}async function ir(e){if(e.endsWith("wasm"))return await Rr(e);if(!P){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(z)return importScripts(e);let t=await lr(e);return cr(t,e)}function cr(e,t){if(!P){let{requireFromString:o}=globalThis.loaders||{};return o?.(e,t)}if(z)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 Rr(e){let{readFileAsArrayBuffer:t}=globalThis.loaders||{};if(P||!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 lr(e){let{readFileAsText:t}=globalThis.loaders||{};if(P||!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 ze=se(Re(),1);function $e(e=3e3){return new Promise(t=>{ze.default.exec("lsof -i -P -n | grep LISTEN",(r,o)=>{if(r){t(e);return}let s=[],_=/:(\d+) \(LISTEN\)/;o.split(`
|
|
8
|
-
`).forEach(i=>{let c=_.exec(i);c&&s.push(Number(c[1]))});let a=e;for(;s.includes(a);)a++;t(a)})})}async function Sr(){if(typeof process>"u"||!process.versions?.node)throw new Error("ChildProcessProxy is only available in Node.js environments");return await Promise.resolve().then(()=>se(Re(),1))}var Ye={command:"",arguments:[],port:5e3,autoPort:!0,wait:2e3,onSuccess:e=>{console.log(`Started ${e.props.command}`)}},K=class{id;props={...Ye};childProcess=null;port=0;successTimer;constructor({id:t="browser-driver"}={}){this.id=t}async start(t){t={...Ye,...t},this.props=t;let r=await Sr(),o=[...t.arguments];return this.port=Number(t.port),t.portArg&&(t.autoPort&&(this.port=await $e(t.port)),o.push(t.portArg,String(this.port))),await new Promise((s,_)=>{try{this._setTimeout(()=>{t.onSuccess&&t.onSuccess(this),s({})}),console.log(`Spawning ${t.command} ${t.arguments.join(" ")}`);let a=r.spawn(t.command,o,t.spawn);this.childProcess=a,a.stdout.on("data",i=>{console.log(i.toString())}),a.stderr.on("data",i=>{console.log(`Child process wrote to stderr: "${i}".`),t.ignoreStderr||(this._clearTimeout(),_(new Error(i)))}),a.on("error",i=>{console.log(`Child process errored with ${i}`),this._clearTimeout(),_(i)}),a.on("close",i=>{console.log(`Child process exited with ${i}`),this.childProcess=null,this._clearTimeout(),s({})})}catch(a){_(a)}})}async stop(){this.childProcess&&(this.childProcess.kill(),this.childProcess=null)}async exit(t=0){try{await this.stop(),process.exit(t)}catch(r){console.error(r.message||r),process.exit(1)}}_setTimeout(t){Number(this.props.wait)>0&&(this.successTimer=setTimeout(t,this.props.wait))}_clearTimeout(){this.successTimer&&clearTimeout(this.successTimer)}};var Ar="",je={};function le(e){for(let t in je)if(e.startsWith(t)){let r=je[t];e=e.replace(t,r)}return!e.startsWith("http://")&&!e.startsWith("https://")&&(e=`${Ar}${e}`),e}var F={TRANSCODER:"basis_transcoder.js",TRANSCODER_WASM:"basis_transcoder.wasm",ENCODER:"basis_encoder.js",ENCODER_WASM:"basis_encoder.wasm"},Je;async function Ae(e){ae(e.modules);let t=ie("basis");return t||(Je||=Tr(e),await Je)}async function Tr(e){let t=null,r=null;return[t,r]=await Promise.all([await h(F.TRANSCODER,"textures",e),await h(F.TRANSCODER_WASM,"textures",e)]),t=t||globalThis.BASIS,await fr(t,r)}function fr(e,t){let r={};return t&&(r.wasmBinary=t),new Promise(o=>{e(r).then(s=>{let{BasisFile:_,initializeBasis:a}=s;a(),o({BasisFile:_})})})}var Se;async function y(e){let t=e.modules||{};return t.basisEncoder?t.basisEncoder:(Se=Se||Er(e),await Se)}async function Er(e){let t=null,r=null;return[t,r]=await Promise.all([await h(F.ENCODER,"textures",e),await h(F.ENCODER_WASM,"textures",e)]),t=t||globalThis.BASIS,await ur(t,r)}function ur(e,t){let r={};return t&&(r.wasmBinary=t),new Promise(o=>{e(r).then(s=>{let{BasisFile:_,KTX2File:a,initializeBasis:i,BasisEncoder:c}=s;i(),o({BasisFile:_,KTX2File:a,BasisEncoder:c})})})}var n={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_RGBA_PVRTC_4BPPV1_IMG:35842,COMPRESSED_RGB_PVRTC_2BPPV1_IMG:35841,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_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};var mr=["","WEBKIT_","MOZ_"],Ze={WEBGL_compressed_texture_s3tc:"dxt",WEBGL_compressed_texture_s3tc_srgb:"dxt-srgb",WEBGL_compressed_texture_etc1:"etc1",WEBGL_compressed_texture_etc:"etc2",WEBGL_compressed_texture_pvrtc:"pvrtc",WEBGL_compressed_texture_atc:"atc",WEBGL_compressed_texture_astc:"astc",EXT_texture_compression_rgtc:"rgtc"},$=null;function Y(e){if(!$){e=e||dr()||void 0,$=new Set;for(let t of mr)for(let r in Ze)if(e&&e.getExtension(`${t}${r}`)){let o=Ze[r];$.add(o)}}return $}function dr(){try{return document.createElement("canvas").getContext("webgl")}catch{return null}}var Te=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}},D=class{constructor(t,r,o,s){this._dataView=void 0,this._littleEndian=void 0,this._offset=void 0,this._dataView=new DataView(t.buffer,t.byteOffset+r,o),this._littleEndian=s,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,s=0;for(;this._dataView.getUint8(this._offset)!==r&&s<t;)s++,this._offset++;return s<t&&this._offset++,new Uint8Array(this._dataView.buffer,this._dataView.byteOffset+o,s)}};var gn=new Uint8Array([0]),S=[171,75,84,88,32,50,48,187,13,10,26,10];function qe(e){return new TextDecoder().decode(e)}function Qe(e){let t=new Uint8Array(e.buffer,e.byteOffset,S.length);if(t[0]!==S[0]||t[1]!==S[1]||t[2]!==S[2]||t[3]!==S[3]||t[4]!==S[4]||t[5]!==S[5]||t[6]!==S[6]||t[7]!==S[7]||t[8]!==S[8]||t[9]!==S[9]||t[10]!==S[10]||t[11]!==S[11])throw new Error("Missing KTX 2.0 identifier.");let r=new Te,o=17*Uint32Array.BYTES_PER_ELEMENT,s=new D(e,S.length,o,!0);r.vkFormat=s._nextUint32(),r.typeSize=s._nextUint32(),r.pixelWidth=s._nextUint32(),r.pixelHeight=s._nextUint32(),r.pixelDepth=s._nextUint32(),r.layerCount=s._nextUint32(),r.faceCount=s._nextUint32();let _=s._nextUint32();r.supercompressionScheme=s._nextUint32();let a=s._nextUint32(),i=s._nextUint32(),c=s._nextUint32(),l=s._nextUint32(),A=s._nextUint64(),x=s._nextUint64(),Nt=_*3*8,oe=new D(e,S.length+o,Nt,!0);for(let T=0;T<_;T++)r.levels.push({levelData:new Uint8Array(e.buffer,e.byteOffset+oe._nextUint64(),oe._nextUint64()),uncompressedByteLength:oe._nextUint64()});let R=new D(e,a,i,!0),ne={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:[]},Ut=6,wt=4,bt=(ne.descriptorBlockSize/4-Ut)/wt;for(let T=0;T<bt;T++){let B={bitOffset:R._nextUint16(),bitLength:R._nextUint8(),channelType:R._nextUint8(),samplePosition:[R._nextUint8(),R._nextUint8(),R._nextUint8(),R._nextUint8()],sampleLower:-1/0,sampleUpper:1/0};B.channelType&64?(B.sampleLower=R._nextInt32(),B.sampleUpper=R._nextInt32()):(B.sampleLower=R._nextUint32(),B.sampleUpper=R._nextUint32()),ne.samples[T]=B}r.dataFormatDescriptor.length=0,r.dataFormatDescriptor.push(ne);let I=new D(e,c,l,!0);for(;I._offset<l;){let T=I._nextUint32(),B=I._scan(T),X=qe(B);if(r.keyValue[X]=I._nextUint8Array(T-B.byteLength-1),X.match(/^ktx/i)){let Ue=qe(r.keyValue[X]);r.keyValue[X]=Ue.substring(0,Ue.lastIndexOf("\0"))}let Yt=T%4?4-T%4:0;I._skip(Yt)}if(x<=0)return r;let m=new D(e,A,x,!0),Ht=m._nextUint16(),Vt=m._nextUint16(),Ke=m._nextUint32(),Fe=m._nextUint32(),Ge=m._nextUint32(),Xt=m._nextUint32(),Le=[];for(let T=0;T<_;T++)Le.push({imageFlags:m._nextUint32(),rgbSliceByteOffset:m._nextUint32(),rgbSliceByteLength:m._nextUint32(),alphaSliceByteOffset:m._nextUint32(),alphaSliceByteLength:m._nextUint32()});let Ie=A+m._offset,ye=Ie+Ke,Ne=ye+Fe,vt=Ne+Ge,kt=new Uint8Array(e.buffer,e.byteOffset+Ie,Ke),Wt=new Uint8Array(e.buffer,e.byteOffset+ye,Fe),zt=new Uint8Array(e.buffer,e.byteOffset+Ne,Ge),$t=new Uint8Array(e.buffer,e.byteOffset+vt,Xt);return r.globalData={endpointCount:Ht,selectorCount:Vt,imageDescs:Le,endpointsData:kt,selectorsData:Wt,tablesData:zt,extendedData:$t},r}function G(e,t){let r=new Array(t.mipMapLevels),o=t.width,s=t.height,_=0;for(let a=0;a<t.mipMapLevels;++a){let i=Or(t,o,s,e,a),c=pr(e,a,_,i);r[a]={compressed:!0,format:t.internalFormat,data:c,width:o,height:s,levelSize:i},o=Math.max(1,o>>1),s=Math.max(1,s>>1),_+=i}return r}function pr(e,t,r,o){return Array.isArray(e)?e[t].levelData:new Uint8Array(e.buffer,e.byteOffset+r,o)}function Or(e,t,r,o,s){return Array.isArray(o)?e.sizeFunction(o[s]):e.sizeFunction(t,r)}var Cr={131:n.COMPRESSED_RGB_S3TC_DXT1_EXT,132:n.COMPRESSED_SRGB_S3TC_DXT1_EXT,133:n.COMPRESSED_RGBA_S3TC_DXT1_EXT,134:n.COMPRESSED_SRGB_ALPHA_S3TC_DXT1_EXT,135:n.COMPRESSED_RGBA_S3TC_DXT3_EXT,136:n.COMPRESSED_SRGB_ALPHA_S3TC_DXT3_EXT,137:n.COMPRESSED_RGBA_S3TC_DXT5_EXT,138:n.COMPRESSED_SRGB_ALPHA_S3TC_DXT5_EXT,139:n.COMPRESSED_RED_RGTC1_EXT,140:n.COMPRESSED_SIGNED_RED_RGTC1_EXT,141:n.COMPRESSED_RED_GREEN_RGTC2_EXT,142:n.COMPRESSED_SIGNED_RED_GREEN_RGTC2_EXT,147:n.COMPRESSED_RGB8_ETC2,148:n.COMPRESSED_SRGB8_ETC2,149:n.COMPRESSED_RGB8_PUNCHTHROUGH_ALPHA1_ETC2,150:n.COMPRESSED_SRGB8_PUNCHTHROUGH_ALPHA1_ETC2,151:n.COMPRESSED_RGBA8_ETC2_EAC,152:n.COMPRESSED_SRGB8_ALPHA8_ETC2_EAC,153:n.COMPRESSED_R11_EAC,154:n.COMPRESSED_SIGNED_R11_EAC,155:n.COMPRESSED_RG11_EAC,156:n.COMPRESSED_SIGNED_RG11_EAC,157:n.COMPRESSED_RGBA_ASTC_4x4_KHR,158:n.COMPRESSED_SRGB8_ALPHA8_ASTC_4x4_KHR,159:n.COMPRESSED_RGBA_ASTC_5x4_KHR,160:n.COMPRESSED_SRGB8_ALPHA8_ASTC_5X4_KHR,161:n.COMPRESSED_RGBA_ASTC_5x5_KHR,162:n.COMPRESSED_SRGB8_ALPHA8_ASTC_5x5_KHR,163:n.COMPRESSED_RGBA_ASTC_6x5_KHR,164:n.COMPRESSED_SRGB8_ALPHA8_ASTC_6x5_KHR,165:n.COMPRESSED_RGBA_ASTC_6x6_KHR,166:n.COMPRESSED_SRGB8_ALPHA8_ASTC_6x6_KHR,167:n.COMPRESSED_RGBA_ASTC_8x5_KHR,168:n.COMPRESSED_SRGB8_ALPHA8_ASTC_8x5_KHR,169:n.COMPRESSED_RGBA_ASTC_8x6_KHR,170:n.COMPRESSED_SRGB8_ALPHA8_ASTC_8x6_KHR,171:n.COMPRESSED_RGBA_ASTC_8x8_KHR,172:n.COMPRESSED_SRGB8_ALPHA8_ASTC_8x8_KHR,173:n.COMPRESSED_RGBA_ASTC_10x5_KHR,174:n.COMPRESSED_SRGB8_ALPHA8_ASTC_10x5_KHR,175:n.COMPRESSED_RGBA_ASTC_10x6_KHR,176:n.COMPRESSED_SRGB8_ALPHA8_ASTC_10x6_KHR,177:n.COMPRESSED_RGBA_ASTC_10x8_KHR,178:n.COMPRESSED_SRGB8_ALPHA8_ASTC_10x8_KHR,179:n.COMPRESSED_RGBA_ASTC_10x10_KHR,180:n.COMPRESSED_SRGB8_ALPHA8_ASTC_10x10_KHR,181:n.COMPRESSED_RGBA_ASTC_12x10_KHR,182:n.COMPRESSED_SRGB8_ALPHA8_ASTC_12x10_KHR,183:n.COMPRESSED_RGBA_ASTC_12x12_KHR,184:n.COMPRESSED_SRGB8_ALPHA8_ASTC_12x12_KHR,1000054e3:n.COMPRESSED_RGBA_PVRTC_2BPPV1_IMG,1000054001:n.COMPRESSED_RGBA_PVRTC_4BPPV1_IMG,1000066e3:n.COMPRESSED_RGBA_ASTC_4x4_KHR,1000066001:n.COMPRESSED_RGBA_ASTC_5x4_KHR,1000066002:n.COMPRESSED_RGBA_ASTC_5x5_KHR,1000066003:n.COMPRESSED_RGBA_ASTC_6x5_KHR,1000066004:n.COMPRESSED_RGBA_ASTC_6x6_KHR,1000066005:n.COMPRESSED_RGBA_ASTC_8x5_KHR,1000066006:n.COMPRESSED_RGBA_ASTC_8x6_KHR,1000066007:n.COMPRESSED_RGBA_ASTC_8x8_KHR,1000066008:n.COMPRESSED_RGBA_ASTC_10x5_KHR,1000066009:n.COMPRESSED_RGBA_ASTC_10x6_KHR,1000066010:n.COMPRESSED_RGBA_ASTC_10x8_KHR,1000066011:n.COMPRESSED_RGBA_ASTC_10x10_KHR,1000066012:n.COMPRESSED_RGBA_ASTC_12x10_KHR,1000066013:n.COMPRESSED_RGBA_ASTC_12x12_KHR};function et(e){return Cr[e]}var E=[171,75,84,88,32,50,48,187,13,10,26,10];function j(e){let t=new Uint8Array(e);return!(t.byteLength<E.length||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])}function tt(e){let t=new Uint8Array(e),r=Qe(t),o=Math.max(1,r.levels.length),s=r.pixelWidth,_=r.pixelHeight,a=et(r.vkFormat);return G(r.levels,{mipMapLevels:o,width:s,height:_,sizeFunction:i=>i.uncompressedByteLength,internalFormat:a})}var Mr={etc1:{basisFormat:0,compressed:!0,format:n.COMPRESSED_RGB_ETC1_WEBGL},etc2:{basisFormat:1,compressed:!0},bc1:{basisFormat:2,compressed:!0,format:n.COMPRESSED_RGB_S3TC_DXT1_EXT},bc3:{basisFormat:3,compressed:!0,format:n.COMPRESSED_RGBA_S3TC_DXT5_EXT},bc4:{basisFormat:4,compressed:!0},bc5:{basisFormat:5,compressed:!0},"bc7-m6-opaque-only":{basisFormat:6,compressed:!0},"bc7-m5":{basisFormat:7,compressed:!0},"pvrtc1-4-rgb":{basisFormat:8,compressed:!0,format:n.COMPRESSED_RGB_PVRTC_4BPPV1_IMG},"pvrtc1-4-rgba":{basisFormat:9,compressed:!0,format:n.COMPRESSED_RGBA_PVRTC_4BPPV1_IMG},"astc-4x4":{basisFormat:10,compressed:!0,format:n.COMPRESSED_RGBA_ASTC_4X4_KHR},"atc-rgb":{basisFormat:11,compressed:!0},"atc-rgba-interpolated-alpha":{basisFormat:12,compressed:!0},rgba32:{basisFormat:13,compressed:!1},rgb565:{basisFormat:14,compressed:!1},bgr565:{basisFormat:15,compressed:!1},rgba4444:{basisFormat:16,compressed:!1}};async function J(e,t={}){if(!t.basis?.containerFormat||t.basis.containerFormat==="auto"){if(j(e)){let o=await y(t?.core||{});return rt(o.KTX2File,e,t)}let{BasisFile:r}=await Ae(t?.core||{});return fe(r,e,t)}switch(t.basis.module){case"encoder":let r=await y(t?.core||{});switch(t.basis.containerFormat){case"ktx2":return rt(r.KTX2File,e,t);case"basis":default:return fe(r.BasisFile,e,t)}case"transcoder":default:let{BasisFile:o}=await Ae(t.core||{});return fe(o,e,t)}}function fe(e,t,r){let o=new e(new Uint8Array(t));try{if(!o.startTranscoding())throw new Error("Failed to start basis transcoding");let s=o.getNumImages(),_=[];for(let a=0;a<s;a++){let i=o.getNumLevels(a),c=[];for(let l=0;l<i;l++)c.push(xr(o,a,l,r));_.push(c)}return _}finally{o.close(),o.delete()}}function xr(e,t,r,o){let s=e.getImageWidth(t,r),_=e.getImageHeight(t,r),a=e.getHasAlpha(),{compressed:i,format:c,basisFormat:l}=ot(o,a),A=e.getImageTranscodedSizeInBytes(t,r,l),x=new Uint8Array(A);if(!e.transcodeImage(x,t,r,l,0,0))throw new Error("failed to start Basis transcoding");return{width:s,height:_,data:x,compressed:i,format:c,hasAlpha:a}}function rt(e,t,r){let o=new e(new Uint8Array(t));try{if(!o.startTranscoding())throw new Error("failed to start KTX2 transcoding");let s=o.getLevels(),_=[];for(let a=0;a<s;a++)_.push(Br(o,a,r));return[_]}finally{o.close(),o.delete()}}function Br(e,t,r){let{alphaFlag:o,height:s,width:_}=e.getImageLevelInfo(t,0,0),{compressed:a,format:i,basisFormat:c}=ot(r,o),l=e.getImageTranscodedSizeInBytes(t,0,0,c),A=new Uint8Array(l);if(!e.transcodeImage(A,t,0,0,c,0,-1,-1))throw new Error("Failed to transcode KTX2 image");return{width:_,height:s,data:A,compressed:a,levelSize:l,hasAlpha:o,format:i}}function ot(e,t){let r=e.basis?.format;return r==="auto"&&(r=Ee()),typeof r=="object"&&(r=t?r.alpha:r.noAlpha),r=r.toLowerCase(),Mr[r]}function Ee(){let e=Y();return e.has("astc")?"astc-4x4":e.has("dxt")?{alpha:"bc3",noAlpha:"bc1"}:e.has("pvrtc")?{alpha:"pvrtc1-4-rgba",noAlpha:"pvrtc1-4-rgb"}:e.has("etc1")?"etc1":e.has("etc2")?"etc2":"rgb565"}var ue={dataType:null,batchType:null,name:"Basis",id:"basis",module:"textures",version:f,worker:!0,extensions:["basis","ktx2"],mimeTypes:["application/octet-stream","image/ktx2"],tests:["sB"],binary:!0,options:{basis:{format:"auto",libraryPath:"libs/",containerFormat:"auto",module:"transcoder"}}},nt={...ue,parse:J};var u={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},gr={DXT1:n.COMPRESSED_RGB_S3TC_DXT1_EXT,DXT3:n.COMPRESSED_RGBA_S3TC_DXT3_EXT,DXT5:n.COMPRESSED_RGBA_S3TC_DXT5_EXT,"ATC ":n.COMPRESSED_RGB_ATC_WEBGL,ATCA:n.COMPRESSED_RGBA_ATC_EXPLICIT_ALPHA_WEBGL,ATCI:n.COMPRESSED_RGBA_ATC_INTERPOLATED_ALPHA_WEBGL},Dr=at,Pr=Z,hr=Z,Kr={DXT1:at,DXT3:Z,DXT5:Z,"ATC ":Dr,ATCA:Pr,ATCI:hr};function st(e){return new Uint32Array(e,0,u.HEADER_LENGTH)[u.MAGIC_NUMBER_INDEX]===u.MAGIC_NUMBER}function _t(e){let t=new Int32Array(e,0,u.HEADER_LENGTH),r=t[u.HEADER_PF_FOURCC_INDEX];p(Boolean(t[u.HEADER_PF_FLAGS_INDEX]&u.DDPF_FOURCC),"DDS: Unsupported format, must contain a FourCC code");let o=Fr(r),s=gr[o],_=Kr[o];p(s&&_,`DDS: Unknown pixel format ${r}`);let a=1;t[u.HEADER_FLAGS_INDEX]&u.DDSD_MIPMAPCOUNT&&(a=Math.max(1,t[u.MIPMAPCOUNT_INDEX]));let i=t[u.HEADER_WIDTH_INDEX],c=t[u.HEADER_HEIGHT_INDEX],l=t[u.HEADER_SIZE_INDEX]+4,A=new Uint8Array(e,l);return G(A,{mipMapLevels:a,width:i,height:c,sizeFunction:_,internalFormat:s})}function at(e,t){return(e+3>>2)*(t+3>>2)*8}function Z(e,t){return(e+3>>2)*(t+3>>2)*16}function Fr(e){return String.fromCharCode(e&255,e>>8&255,e>>16&255,e>>24&255)}var d={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},Gr={0:[n.COMPRESSED_RGB_PVRTC_2BPPV1_IMG],1:[n.COMPRESSED_RGBA_PVRTC_2BPPV1_IMG],2:[n.COMPRESSED_RGB_PVRTC_4BPPV1_IMG],3:[n.COMPRESSED_RGBA_PVRTC_4BPPV1_IMG],6:[n.COMPRESSED_RGB_ETC1_WEBGL],7:[n.COMPRESSED_RGB_S3TC_DXT1_EXT],9:[n.COMPRESSED_RGBA_S3TC_DXT3_EXT],11:[n.COMPRESSED_RGBA_S3TC_DXT5_EXT],22:[n.COMPRESSED_RGB8_ETC2],23:[n.COMPRESSED_RGBA8_ETC2_EAC],24:[n.COMPRESSED_RGB8_PUNCHTHROUGH_ALPHA1_ETC2],25:[n.COMPRESSED_R11_EAC],26:[n.COMPRESSED_RG11_EAC],27:[n.COMPRESSED_RGBA_ASTC_4X4_KHR,n.COMPRESSED_SRGB8_ALPHA8_ASTC_4X4_KHR],28:[n.COMPRESSED_RGBA_ASTC_5X4_KHR,n.COMPRESSED_SRGB8_ALPHA8_ASTC_5X4_KHR],29:[n.COMPRESSED_RGBA_ASTC_5X5_KHR,n.COMPRESSED_SRGB8_ALPHA8_ASTC_5X5_KHR],30:[n.COMPRESSED_RGBA_ASTC_6X5_KHR,n.COMPRESSED_SRGB8_ALPHA8_ASTC_6X5_KHR],31:[n.COMPRESSED_RGBA_ASTC_6X6_KHR,n.COMPRESSED_SRGB8_ALPHA8_ASTC_6X6_KHR],32:[n.COMPRESSED_RGBA_ASTC_8X5_KHR,n.COMPRESSED_SRGB8_ALPHA8_ASTC_8X5_KHR],33:[n.COMPRESSED_RGBA_ASTC_8X6_KHR,n.COMPRESSED_SRGB8_ALPHA8_ASTC_8X6_KHR],34:[n.COMPRESSED_RGBA_ASTC_8X8_KHR,n.COMPRESSED_SRGB8_ALPHA8_ASTC_8X8_KHR],35:[n.COMPRESSED_RGBA_ASTC_10X5_KHR,n.COMPRESSED_SRGB8_ALPHA8_ASTC_10X5_KHR],36:[n.COMPRESSED_RGBA_ASTC_10X6_KHR,n.COMPRESSED_SRGB8_ALPHA8_ASTC_10X6_KHR],37:[n.COMPRESSED_RGBA_ASTC_10X8_KHR,n.COMPRESSED_SRGB8_ALPHA8_ASTC_10X8_KHR],38:[n.COMPRESSED_RGBA_ASTC_10X10_KHR,n.COMPRESSED_SRGB8_ALPHA8_ASTC_10X10_KHR],39:[n.COMPRESSED_RGBA_ASTC_12X10_KHR,n.COMPRESSED_SRGB8_ALPHA8_ASTC_12X10_KHR],40:[n.COMPRESSED_RGBA_ASTC_12X12_KHR,n.COMPRESSED_SRGB8_ALPHA8_ASTC_12X12_KHR]},Lr={0:it,1:it,2:ct,3:ct,6:N,7:N,9:U,11:U,22:N,23:U,24:N,25:N,26:U,27:U,28:Ir,29:yr,30:Nr,31:Ur,32:wr,33:br,34:Hr,35:Vr,36:Xr,37:vr,38:kr,39:Wr,40:zr};function Rt(e){let r=new Uint32Array(e,0,d.HEADER_LENGTH)[d.MAGIC_NUMBER_INDEX];return r===d.MAGIC_NUMBER||r===d.MAGIC_NUMBER_EXTRA}function lt(e){let t=new Uint32Array(e,0,d.HEADER_LENGTH),r=t[d.PIXEL_FORMAT_INDEX],o=t[d.COLOUR_SPACE_INDEX],s=Gr[r]||[],_=s.length>1&&o?s[1]:s[0],a=Lr[r],i=t[d.MIPMAPCOUNT_INDEX],c=t[d.WIDTH_INDEX],l=t[d.HEIGHT_INDEX],A=d.HEADER_SIZE+t[d.METADATA_SIZE_INDEX],x=new Uint8Array(e,A);return G(x,{mipMapLevels:i,width:c,height:l,sizeFunction:a,internalFormat:_})}function it(e,t){return e=Math.max(e,16),t=Math.max(t,8),e*t/4}function ct(e,t){return e=Math.max(e,8),t=Math.max(t,8),e*t/2}function N(e,t){return Math.floor((e+3)/4)*Math.floor((t+3)/4)*8}function U(e,t){return Math.floor((e+3)/4)*Math.floor((t+3)/4)*16}function Ir(e,t){return Math.floor((e+4)/5)*Math.floor((t+3)/4)*16}function yr(e,t){return Math.floor((e+4)/5)*Math.floor((t+4)/5)*16}function Nr(e,t){return Math.floor((e+5)/6)*Math.floor((t+4)/5)*16}function Ur(e,t){return Math.floor((e+5)/6)*Math.floor((t+5)/6)*16}function wr(e,t){return Math.floor((e+7)/8)*Math.floor((t+4)/5)*16}function br(e,t){return Math.floor((e+7)/8)*Math.floor((t+5)/6)*16}function Hr(e,t){return Math.floor((e+7)/8)*Math.floor((t+7)/8)*16}function Vr(e,t){return Math.floor((e+9)/10)*Math.floor((t+4)/5)*16}function Xr(e,t){return Math.floor((e+9)/10)*Math.floor((t+5)/6)*16}function vr(e,t){return Math.floor((e+9)/10)*Math.floor((t+7)/8)*16}function kr(e,t){return Math.floor((e+9)/10)*Math.floor((t+9)/10)*16}function Wr(e,t){return Math.floor((e+11)/12)*Math.floor((t+9)/10)*16}function zr(e,t){return Math.floor((e+11)/12)*Math.floor((t+11)/12)*16}function St(e){if(j(e))return tt(e);if(st(e))return _t(e);if(Rt(e))return lt(e);throw new Error("Texture container format not recognized")}var me={dataType:null,batchType:null,name:"Texture Containers",id:"compressed-texture",module:"textures",version:f,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":{libraryPath:"libs/",useBasis:!1}}},At={...me,parse:async(e,t)=>(t={...t},t?.["compressed-texture"]?.useBasis?(t.basis={format:{alpha:"BC3",noAlpha:"BC1"},...t.basis,containerFormat:"ktx2",module:"encoder"},(await J(e,t))[0]):St(e))};var de={dataType:null,batchType:null,id:"crunch",name:"Crunch",module:"textures",version:f,worker:!0,extensions:["crn"],mimeTypes:["image/crn","image/x-crn","application/octet-stream"],binary:!0,options:{crunch:{libraryPath:"libs/"}}};var pe=new Uint32Array([305419896]),$r=new Uint8Array(pe.buffer,pe.byteOffset,pe.byteLength),Yr=$r[0]!==18,Tt=Yr,jr={u1:Uint8Array,i1:Int8Array,u2:Uint16Array,i2:Int16Array,u4:Uint32Array,i4:Int32Array,f4:Float32Array,f8:Float64Array};function Oe(e,t){let r=new DataView(e),{header:o,headerEndOffset:s}=Jr(r),_=o.descr,a=jr[_.slice(1,3)];if(!a)throw new Error(`Unimplemented type ${_}`);let c=o.shape?.reduce((A,x)=>A*x)*a.BYTES_PER_ELEMENT;if(e.byteLength<s+c)throw new Error("Buffer overflow");let l=new a(e.slice(s,s+c));if(_[0]===">"&&Tt||_[0]==="<"&&!Tt)throw new Error("Incorrect endianness");return{data:l,header:o}}function Jr(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 s=t<=2?"latin1":"utf-8",_=new TextDecoder(s),a=new Uint8Array(e.buffer,r,o),i=_.decode(a);return r+=o,{header:JSON.parse(i.replace(/'/g,'"').replace("False","false").replace("(","[").replace(/,*\),*/g,"]")),headerEndOffset:r}}var Zr=new Uint8Array([147,78,85,77,80,89]),Ce={dataType:null,batchType:null,name:"NPY",id:"npy",module:"textures",version:f,worker:!0,extensions:["npy"],mimeTypes:[],tests:[Zr.buffer],options:{npy:{}}},ft={...Ce,parseSync:Oe,parse:async(e,t)=>Oe(e,t)};var Et={DECODER:"crunch.js"};async function ut(e,t,r){let o=["texture-compressor","--type","s3tc","--compression","DXT1","--quality","normal","--input",e,"--output",t];return await new K().start({command:"npx",arguments:o,spawn:r}),t}var mt={name:"DDS Texture Container",id:"dds",module:"textures",version:f,extensions:["dds"],mimeTypes:["image/vnd-ms.dds","image/x-dds","application/octet-stream"],options:{texture:{format:"auto",compression:"auto",quality:"auto",mipmap:!1,flipY:!1,toolFlags:""}},encodeURLtoURL:ut,encode(){throw new Error("Not implemented")}};async function dt(e,t={}){let{useSRGB:r=!1,qualityLevel:o=10,encodeUASTC:s=!1,mipmaps:_=!1}=t?.["ktx2-basis-writer"]||{},{BasisEncoder:a}=await y(t.core||{}),i=new a;try{let c=new Uint8Array(e.width*e.height*4);i.setCreateKTX2File(!0),i.setKTX2UASTCSupercompression(!0),i.setKTX2SRGBTransferFunc(!0),i.setSliceSourceImage(0,e.data,e.width,e.height,!1),i.setPerceptual(r),i.setMipSRGB(r),i.setQualityLevel(o),i.setUASTC(s),i.setMipGen(_);let l=i.encode(c);return c.subarray(0,l).buffer}catch(c){throw console.error("Basis Universal Supercompressed GPU Texture encoder Error: ",c),c}finally{i.delete()}}var pt={name:"Basis Universal Supercompressed GPU Texture",id:"ktx2-basis-writer",module:"textures",version:f,extensions:["ktx2"],mimeTypes:["image/ktx2"],options:{["ktx2-basis-writer"]:{useSRGB:!1,qualityLevel:10,encodeUASTC:!1,mipmaps:!1}},encode:dt};var Ot="4.4.0-alpha.9";var qr=globalThis.loaders?.parseImageNode,Me=typeof Image<"u",xe=typeof ImageBitmap<"u",Qr=Boolean(qr),Be=_e?!0:Qr;function Ct(e){switch(e){case"auto":return xe||Me||Be;case"imagebitmap":return xe;case"image":return Me;case"data":return Be;default:throw new Error(`@loaders.gl/images: image ${e} not supported in this environment`)}}function Mt(){if(xe)return"imagebitmap";if(Me)return"image";if(Be)return"data";throw new Error("Install '@loaders.gl/polyfills' to parse images under Node.js")}function xt(e){let t=eo(e);if(!t)throw new Error("Not an image");return t}function ge(e){return q(e)}function q(e){switch(xt(e)){case"data":return e;case"image":case"imagebitmap":let t=document.createElement("canvas"),r=t.getContext("2d");if(!r)throw new Error("getImageData");return t.width=e.width,t.height=e.height,r.drawImage(e,0,0),r.getImageData(0,0,e.width,e.height);default:throw new Error("getImageData")}}function eo(e){return typeof ImageBitmap<"u"&&e instanceof ImageBitmap?"imagebitmap":typeof Image<"u"&&e instanceof Image?"image":e&&typeof e=="object"&&e.data&&e.width&&e.height?"data":null}var to=/^data:image\/svg\+xml/,ro=/\.svg((\?|#).*)?$/;function Q(e){return e&&(to.test(e)||ro.test(e))}function Bt(e,t){if(Q(t)){let o=new TextDecoder().decode(e);try{typeof unescape=="function"&&typeof encodeURIComponent=="function"&&(o=unescape(encodeURIComponent(o)))}catch(_){throw new Error(_.message)}return`data:image/svg+xml;base64,${btoa(o)}`}return De(e,t)}function De(e,t){if(Q(t))throw new Error("SVG cannot be parsed directly to imagebitmap");return new Blob([new Uint8Array(e)])}async function ee(e,t,r){let o=Bt(e,r),s=self.URL||self.webkitURL,_=typeof o!="string"&&s.createObjectURL(o);try{return await oo(_||o,t)}finally{_&&s.revokeObjectURL(_)}}async function oo(e,t){let r=new Image;return r.src=e,t.image&&t.image.decode&&r.decode?(await r.decode(),r):await new Promise((o,s)=>{try{r.onload=()=>o(r),r.onerror=_=>{let a=_ instanceof Error?_.message:"error";s(new Error(a))}}catch(_){s(_)}})}var gt=!0;async function Dt(e,t,r){let o;Q(r)?o=await ee(e,t,r):o=De(e,r);let s=t&&t.imagebitmap;return await no(o,s)}async function no(e,t=null){if((so(t)||!gt)&&(t=null),t)try{return await createImageBitmap(e,t)}catch(r){console.warn(r),gt=!1}return await createImageBitmap(e)}function so(e){if(!e)return!0;for(let t in e)if(Object.prototype.hasOwnProperty.call(e,t))return!1;return!0}function Pt(e){return!co(e,"ftyp",4)||!(e[8]&96)?null:_o(e)}function _o(e){switch(ao(e,8,12).replace("\0"," ").trim()){case"avif":case"avis":return{extension:"avif",mimeType:"image/avif"};default:return null}}function ao(e,t,r){return String.fromCharCode(...e.slice(t,r))}function io(e){return[...e].map(t=>t.charCodeAt(0))}function co(e,t,r=0){let o=io(t);for(let s=0;s<o.length;++s)if(o[s]!==e[s+r])return!1;return!0}var M=!1,w=!0;function te(e){let t=b(e);return lo(t)||To(t)||So(t)||Ao(t)||Ro(t)}function Ro(e){let t=new Uint8Array(e instanceof DataView?e.buffer:e),r=Pt(t);return r?{mimeType:r.mimeType,width:0,height:0}:null}function lo(e){let t=b(e);return t.byteLength>=24&&t.getUint32(0,M)===2303741511?{mimeType:"image/png",width:t.getUint32(16,M),height:t.getUint32(20,M)}:null}function So(e){let t=b(e);return t.byteLength>=10&&t.getUint32(0,M)===1195984440?{mimeType:"image/gif",width:t.getUint16(6,w),height:t.getUint16(8,w)}:null}function Ao(e){let t=b(e);return t.byteLength>=14&&t.getUint16(0,M)===16973&&t.getUint32(2,w)===t.byteLength?{mimeType:"image/bmp",width:t.getUint32(18,w),height:t.getUint32(22,w)}:null}function To(e){let t=b(e);if(!(t.byteLength>=3&&t.getUint16(0,M)===65496&&t.getUint8(2)===255))return null;let{tableMarkers:o,sofMarkers:s}=fo(),_=2;for(;_+9<t.byteLength;){let a=t.getUint16(_,M);if(s.has(a))return{mimeType:"image/jpeg",height:t.getUint16(_+5,M),width:t.getUint16(_+7,M)};if(!o.has(a))return null;_+=2,_+=t.getUint16(_,M)}return null}function fo(){let e=new Set([65499,65476,65484,65501,65534]);for(let r=65504;r<65520;++r)e.add(r);return{tableMarkers:e,sofMarkers:new Set([65472,65473,65474,65475,65477,65478,65479,65481,65482,65483,65485,65486,65487,65502])}}function b(e){if(e instanceof DataView)return e;if(ArrayBuffer.isView(e))return new DataView(e.buffer);if(e instanceof ArrayBuffer)return new DataView(e);throw new Error("toDataView")}async function ht(e,t){let{mimeType:r}=te(e)||{},o=globalThis.loaders?.parseImageNode;return p(o),await o(e,r)}async function Kt(e,t,r){t=t||{};let s=(t.image||{}).type||"auto",{url:_}=r||{},a=Eo(s),i;switch(a){case"imagebitmap":i=await Dt(e,t,_);break;case"image":i=await ee(e,t,_);break;case"data":i=await ht(e,t);break;default:p(!1)}return s==="data"&&(i=q(i)),i}function Eo(e){switch(e){case"auto":case"data":return Mt();default:return Ct(e),e}}var uo=["png","jpg","jpeg","gif","webp","bmp","ico","svg","avif"],mo=["image/png","image/jpeg","image/gif","image/webp","image/avif","image/bmp","image/vnd.microsoft.icon","image/svg+xml"],po={image:{type:"auto",decode:!0}},g={dataType:null,batchType:null,id:"image",module:"images",name:"Images",version:Ot,mimeTypes:mo,extensions:uo,parse:Kt,tests:[e=>Boolean(te(new DataView(e)))],options:po};function re(e,t,r){let o=typeof e=="function"?e({...t,...r}):e,s=t.baseUrl;return s&&(o=s[s.length-1]==="/"?`${s}${o}`:`${s}/${o}`),le(o)}var Oo=e=>e&&typeof e=="object";async function Ft(e,t,r={}){return await Pe(e,t,r)}async function Pe(e,t,r){return Array.isArray(e)?await Mo(e,t,r):Oo(e)?await Co(e,t,r):await t(e,r)}async function Co(e,t,r){let o=[],s={};for(let _ in e){let a=e[_],i=Pe(a,t,r).then(c=>{s[_]=c});o.push(i)}return await Promise.all(o),s}async function Mo(e,t,r={}){let o=e.map(s=>Pe(s,t,r));return await Promise.all(o)}async function L(e,t,r){return await Ft(e,o=>he(o,t,r))}async function he(e,t,r){let s=await(await fetch(e,r.fetch)).arrayBuffer();return await t(s,r)}async function Gt(e,t={}){let r=await H(e,t);return await L(r,g.parse,t)}async function H(e,t,r={}){let o=t&&t.image&&t.image.mipLevels||0;return o!==0?await xo(e,o,t,r):re(e,t,r)}async function xo(e,t,r,o){let s=[];if(t==="auto"){let _=re(e,r,{...o,lod:0}),a=await he(_,g.parse,r),{width:i,height:c}=ge(a);t=Bo({width:i,height:c}),s.push(_)}p(t>0);for(let _=s.length;_<t;++_){let a=re(e,r,{...o,lod:_});s.push(a)}return s}function Bo(e){return 1+Math.floor(Math.log2(Math.max(e.width,e.height)))}async function Lt(e,t,r={}){let o=await go(e,t,r);return await L(o,g.parse,r)}async function go(e,t,r={}){let o=[];for(let s=0;s<e;s++){let _=H(t,r,{index:s});o.push(_)}return await Promise.all(o)}var Do=34069,Po=34070,ho=34071,Ko=34072,Fo=34073,Go=34074,It=[{face:Do,direction:"right",axis:"x",sign:"positive"},{face:Po,direction:"left",axis:"x",sign:"negative"},{face:ho,direction:"top",axis:"y",sign:"positive"},{face:Ko,direction:"bottom",axis:"y",sign:"negative"},{face:Fo,direction:"front",axis:"z",sign:"positive"},{face:Go,direction:"back",axis:"z",sign:"negative"}];async function Lo(e,t){let r={},o=[],s=0;for(let _=0;_<It.length;++_){let a=It[s],i=H(e,t,{...a,index:s++}).then(c=>{r[a.face]=c});o.push(i)}return await Promise.all(o),r}async function yt(e,t={}){let r=await Lo(e,t);return await L(r,g.parse,t)}var Io={name:"Basis Universal Supercompressed GPU Texture",id:"ktx2-basis-writer",module:"textures",version:f,extensions:["ktx2"],worker:!0,options:{useSRGB:!1,qualityLevel:10,encodeUASTC:!1,mipmaps:!1}};return tr(V);})();
|
|
7
|
+
"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.0";function pn(){return globalThis._loadersgl_?.version||(globalThis._loadersgl_=globalThis._loadersgl_||{},globalThis._loadersgl_.version="4.4.0"),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.0",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.0";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 ho(e){let t=Do(e);if(!t)throw new Error("Not an image");return t}function J(e){return We(e)}function We(e){switch(ho(e)){case"data":return e;case"image":case"imagebitmap":let t=document.createElement("canvas"),r=t.getContext("2d");if(!r)throw new Error("getImageData");return t.width=e.width,t.height=e.height,r.drawImage(e,0,0),r.getImageData(0,0,e.width,e.height);default:throw new Error("getImageData")}}function Do(e){return typeof ImageBitmap<"u"&&e instanceof ImageBitmap?"imagebitmap":typeof Image<"u"&&e instanceof Image?"image":e&&typeof e=="object"&&e.data&&e.width&&e.height?"data":null}var zs=/^data:image\/svg\+xml/,js=/\.svg((\?|#).*)?$/;function $e(e){return e&&(zs.test(e)||js.test(e))}function wo(e,t){if($e(t)){let o=new TextDecoder().decode(e);try{typeof unescape=="function"&&typeof encodeURIComponent=="function"&&(o=unescape(encodeURIComponent(o)))}catch(s){throw new Error(s.message)}return`data:image/svg+xml;base64,${btoa(o)}`}return fr(e,t)}function fr(e,t){if($e(t))throw new Error("SVG cannot be parsed directly to imagebitmap");return new Blob([new Uint8Array(e)])}async function ze(e,t,r){let o=wo(e,r),n=self.URL||self.webkitURL,s=typeof o!="string"&&n.createObjectURL(o);try{return await Ys(s||o,t)}finally{s&&n.revokeObjectURL(s)}}async function Ys(e,t){let r=new Image;return r.src=e,t.image&&t.image.decode&&r.decode?(await r.decode(),r):await new Promise((o,n)=>{try{r.onload=()=>o(r),r.onerror=s=>{let _=s instanceof Error?s.message:"error";n(new Error(_))}}catch(s){n(s)}})}var Ko=!0;async function Fo(e,t,r){let o;$e(r)?o=await ze(e,t,r):o=fr(e,r);let n=t&&t.imagebitmap;return await Js(o,n)}async function Js(e,t=null){if((Zs(t)||!Ko)&&(t=null),t)try{return await createImageBitmap(e,t)}catch(r){console.warn(r),Ko=!1}return await createImageBitmap(e)}function Zs(e){if(!e)return!0;for(let t in e)if(Object.prototype.hasOwnProperty.call(e,t))return!1;return!0}function yo(e){return!t_(e,"ftyp",4)||!(e[8]&96)?null:qs(e)}function qs(e){switch(Qs(e,8,12).replace("\0"," ").trim()){case"avif":case"avis":return{extension:"avif",mimeType:"image/avif"};default:return null}}function Qs(e,t,r){return String.fromCharCode(...e.slice(t,r))}function e_(e){return[...e].map(t=>t.charCodeAt(0))}function t_(e,t,r=0){let o=e_(t);for(let n=0;n<o.length;++n)if(o[n]!==e[n+r])return!1;return!0}var L=!1,ne=!0;function je(e){let t=se(e);return o_(t)||__(t)||n_(t)||s_(t)||r_(t)}function r_(e){let t=new Uint8Array(e instanceof DataView?e.buffer:e),r=yo(t);return r?{mimeType:r.mimeType,width:0,height:0}:null}function o_(e){let t=se(e);return t.byteLength>=24&&t.getUint32(0,L)===2303741511?{mimeType:"image/png",width:t.getUint32(16,L),height:t.getUint32(20,L)}:null}function n_(e){let t=se(e);return t.byteLength>=10&&t.getUint32(0,L)===1195984440?{mimeType:"image/gif",width:t.getUint16(6,ne),height:t.getUint16(8,ne)}:null}function s_(e){let t=se(e);return t.byteLength>=14&&t.getUint16(0,L)===16973&&t.getUint32(2,ne)===t.byteLength?{mimeType:"image/bmp",width:t.getUint32(18,ne),height:t.getUint32(22,ne)}:null}function __(e){let t=se(e);if(!(t.byteLength>=3&&t.getUint16(0,L)===65496&&t.getUint8(2)===255))return null;let{tableMarkers:o,sofMarkers:n}=a_(),s=2;for(;s+9<t.byteLength;){let _=t.getUint16(s,L);if(n.has(_))return{mimeType:"image/jpeg",height:t.getUint16(s+5,L),width:t.getUint16(s+7,L)};if(!o.has(_))return null;s+=2,s+=t.getUint16(s,L)}return null}function a_(){let e=new Set([65499,65476,65484,65501,65534]);for(let r=65504;r<65520;++r)e.add(r);return{tableMarkers:e,sofMarkers:new Set([65472,65473,65474,65475,65477,65478,65479,65481,65482,65483,65485,65486,65487,65502])}}function se(e){if(e instanceof DataView)return e;if(ArrayBuffer.isView(e))return new DataView(e.buffer);if(e instanceof ArrayBuffer)return new DataView(e);throw new Error("toDataView")}async function Io(e,t){let{mimeType:r}=je(e)||{},o=globalThis.loaders?.parseImageNode;return B(o),await o(e,r)}async function Ho(e,t,r){t=t||{};let n=(t.image||{}).type||"auto",{url:s}=r||{},_=i_(n),a;switch(_){case"imagebitmap":a=await Fo(e,t,s);break;case"image":a=await ze(e,t,s);break;case"data":a=await Io(e,t);break;default:B(!1)}return n==="data"&&(a=We(a)),a}function i_(e){switch(e){case"auto":case"data":return Po();default:return Lo(e),e}}var c_=["png","jpg","jpeg","gif","webp","bmp","ico","svg","avif"],R_=["image/png","image/jpeg","image/gif","image/webp","image/avif","image/bmp","image/vnd.microsoft.icon","image/svg+xml"],u_={image:{type:"auto",decode:!0}},Ye={dataType:null,batchType:null,id:"image",module:"images",name:"Images",version:bo,mimeTypes:R_,extensions:c_,parse:Ho,tests:[e=>Boolean(je(new DataView(e)))],options:u_};var S_=e=>e&&typeof e=="object";async function Uo(e,t,r={}){return await Ar(e,t,r)}async function Ar(e,t,r){return Array.isArray(e)?await m_(e,t,r):S_(e)?await l_(e,t,r):await t(e,r)}async function l_(e,t,r){let o=[],n={};for(let s in e){let _=e[s],a=Ar(_,t,r).then(i=>{n[s]=i});o.push(a)}return await Promise.all(o),n}async function m_(e,t,r={}){let o=e.map(n=>Ar(n,t,r));return await Promise.all(o)}var U=[{face:34069,name:"+X",direction:"right",axis:"x",sign:"positive"},{face:34070,name:"-X",direction:"left",axis:"x",sign:"negative"},{face:34071,name:"+Y",direction:"top",axis:"y",sign:"positive"},{face:34072,name:"-Y",direction:"bottom",axis:"y",sign:"negative"},{face:34073,name:"+Z",direction:"front",axis:"z",sign:"positive"},{face:34074,name:"-Z",direction:"back",axis:"z",sign:"negative"}];async function d(e,t,r={},o){let n=Xo(e);if(n.shape!==t)throw new Error(`Expected ${t} manifest, got ${n.shape}`);return await E_(n,r,o)}function w(e,t){try{return Xo(e).shape===t}catch{return!1}}async function E_(e,t={},r){let o=L_(t),n=await f_(e,o,r),s=await N(n,o,r);return h_(e.shape,s)}async function N(e,t={},r){let o=D(t);return await Uo(e,async n=>await qe(n,o,r))}async function qe(e,t={},r){let o=A_(e,t,r),s=await B_(t,r)(o),_=b_(t);if(r){let i=P_(o,s,r);return await ot(s,[Ye],_,i)}let a=await s.arrayBuffer();return await Ye.parse(a,_)}async function f_(e,t={},r){switch(e.shape){case"image-texture":return await T_(e,t,r);case"image-texture-array":if(!Array.isArray(e.layers)||e.layers.length===0)throw new Error("image-texture-array manifest must define one or more layers");return await Promise.all(e.layers.map(async(o,n)=>await vo(o,t,r,{index:n})));case"image-texture-cube":return await No(e,t,r);case"image-texture-cube-array":if(!Array.isArray(e.layers)||e.layers.length===0)throw new Error("image-texture-cube-array manifest must define one or more layers");return await Promise.all(e.layers.map(async(o,n)=>await No(o,t,r,{index:n})));default:throw new Error("Unsupported composite image manifest")}}function D(e={}){if(e.core?.baseUrl)return e;let t=e.baseUrl;return t?{...e,core:{...e.core,baseUrl:t}}:e}function A_(e,t={},r){let o=ge(e);if(w_(e))return o;let n=d_(t,r);if(!n){if(o!==e||e.startsWith("@"))return o;throw new Error(`Unable to resolve relative image URL ${e} without a base URL`)}return ge(O_(n,e))}function Xo(e){let t=JSON.parse(e);if(!t?.shape)throw new Error("Composite image manifest must contain a shape field");return t}async function T_(e,t,r){if((e.image||e.mipmaps)&&e.template)throw new Error("image-texture manifest must define image, mipmaps, or template source");if(e.image&&e.mipmaps)throw new Error("image-texture manifest must define image, mipmaps, or template source");if(e.image)return e.image;if(e.mipmaps?.length)return e.mipmaps;if(e.template)return await ko({mipLevels:e.mipLevels??"auto",template:e.template},t,r,{});throw new Error("image-texture manifest must define image, mipmaps, or template source")}async function No(e,t,r,o={}){let n={};for(let{face:s,name:_,direction:a,axis:i,sign:c}of U){let l=e.faces?.[_]||e.faces?.[a];if(!l)throw new Error(`image-texture-cube manifest is missing ${_} face`);n[s]=await vo(l,t,r,{...o,face:_,direction:a,axis:i,sign:c})}return n}async function vo(e,t,r,o){if(typeof e=="string"||Array.isArray(e)&&e.length>0)return e;if(C_(e))return await ko(e,t,r,o);throw new Error("Composite image source entries must be strings or non-empty mip arrays")}async function ko(e,t,r,o){let n=e.mipLevels==="auto"?await g_(e.template,t,r,o):e.mipLevels;if(!Number.isFinite(n)||n<=0)throw new Error(`Invalid mipLevels value ${e.mipLevels}`);let s=[];for(let _=0;_<n;_++)s.push(Wo(e.template,{...o,lod:_}));return s}async function g_(e,t,r,o){if(!e.includes("{lod}"))throw new Error("Template sources with mipLevels: auto must include a {lod} placeholder");let n=Wo(e,{...o,lod:0}),s=await qe(n,D(t),r),{width:_,height:a}=J(s);return 1+Math.floor(Math.log2(Math.max(_,a)))}function Wo(e,t){let r="";for(let o=0;o<e.length;o++){let n=e[o];if(n==="\\"){let i=e[o+1];if(i==="{"||i==="}"||i==="\\"){r+=i,o++;continue}throw new Error(`Invalid escape sequence \\${i||""} in template ${e}`)}if(n==="}")throw new Error(`Unexpected } in template ${e}`);if(n!=="{"){r+=n;continue}let s=p_(e,o+1);if(s<0)throw new Error(`Unterminated placeholder in template ${e}`);let _=e.slice(o+1,s);if(!/^[a-z][a-zA-Z0-9]*$/.test(_))throw new Error(`Invalid placeholder {${_}} in template ${e}`);let a=x_(_,t);if(a===void 0)throw new Error(`Template ${e} uses unsupported placeholder {${_}} for this source`);r+=String(a),o=s}return r}function p_(e,t){for(let r=t;r<e.length;r++){let o=e[r];if(o==="\\"){r++;continue}if(o==="{")throw new Error(`Nested placeholders are not supported in template ${e}`);if(o==="}")return r}return-1}function x_(e,t){switch(e){case"lod":return t.lod;case"index":return t.index;case"face":return t.face;case"direction":return t.direction;case"axis":return t.axis;case"sign":return t.sign;default:return}}function C_(e){return typeof e=="object"&&e!==null&&!Array.isArray(e)}function d_(e,t){return t?.baseUrl?t.baseUrl:e.baseUrl?gr(e.baseUrl):e.core?.baseUrl?G_(e.core.baseUrl):null}function gr(e){return e.endsWith("/")?e.slice(0,-1):e}function G_(e){return gr(I.dirname(e))}function O_(e,t){if(M_(e))return new URL(t,`${gr(e)}/`).toString();let r=e.startsWith("/")?e:`/${e}`,o=I.resolve(r,t);return e.startsWith("/")?o:o.slice(1)}function M_(e){return e.startsWith("http:")||e.startsWith("https:")||e.startsWith("file:")||e.startsWith("blob:")}function B_(e,t){let r=e.fetch??e.core?.fetch;return t?.fetch?t.fetch:typeof r=="function"?r:r&&typeof r=="object"?o=>fetch(o,r):fetch}function b_(e){let t=e.core,r={...e};if(delete r.baseUrl,!t?.baseUrl)return r;let o={...t};return delete o.baseUrl,{...r,core:o}}function L_(e){return e.image?.type||typeof ImageBitmap>"u"?e:{...e,image:{...e.image,type:"imagebitmap"}}}function P_(e,t,r){let o=t.url||e,[n,s=""]=o.split("?");return{...r,url:o,response:t,filename:I.filename(n),baseUrl:I.dirname(n),queryString:s}}function h_(e,t){switch(e){case"image-texture":{let r=Je(t);return{shape:"texture",type:"2d",format:Ze(r),data:r}}case"image-texture-array":{let r=t.map(o=>Je(o));return{shape:"texture",type:"2d-array",format:Ze(r[0]),data:r}}case"image-texture-cube":{let r=U.map(({face:o})=>Je(t[o]));return{shape:"texture",type:"cube",format:Ze(r[0]),data:r}}case"image-texture-cube-array":{let r=t.map(o=>U.map(({face:n})=>Je(o[n])));return{shape:"texture",type:"cube-array",format:Ze(r[0][0]),data:r}}default:throw new Error(`Unsupported composite image shape ${e}`)}}function Je(e){if(Array.isArray(e)){if(e.length===0)throw new Error("Composite image members must not be empty");if(e.every(Tr))return e;if(e.every(ke))return e.map(t=>Vo(t));if(e.every(t=>Array.isArray(t)&&t.every(Tr))){if(e.length!==1)throw new Error("Composite image members must resolve to a single image or mip chain");return e[0]}}if(D_(e)){if(e.type!=="2d")throw new Error(`Composite image members must resolve to 2d textures, got ${e.type}`);return e.data}if(Tr(e))return[e];if(ke(e))return[Vo(e)];throw new Error("Composite image members must resolve to an image, mip chain, or texture")}function Vo(e){let{width:t,height:r}=J(e);return{shape:"texture-level",compressed:!1,width:t,height:r,imageBitmap:typeof ImageBitmap<"u"&&e instanceof ImageBitmap?e:void 0,data:new Uint8Array(0),textureFormat:"rgba8unorm"}}function Ze(e){return e[0]?.textureFormat||"rgba8unorm"}function Tr(e){return Boolean(e&&typeof e=="object"&&"shape"in e&&e.shape==="texture-level")}function D_(e){return Boolean(e&&typeof e=="object"&&"shape"in e&&e.shape==="texture")}function w_(e){return e.startsWith("data:")||e.startsWith("blob:")||e.startsWith("file:")||e.startsWith("http:")||e.startsWith("https:")||e.startsWith("/")}var $o={dataType:null,batchType:null,id:"texture",name:"Texture",module:"textures",version:u,extensions:[],mimeTypes:[],text:!0,worker:!1,testText:e=>w(e,"image-texture"),options:{image:{}},parse:async(e,t,r)=>await d(new TextDecoder().decode(e),"image-texture",t,r),parseText:async(e,t,r)=>await d(e,"image-texture",t,r)};var zo={dataType:null,batchType:null,id:"texture-array",name:"Texture Array",module:"textures",version:u,extensions:[],mimeTypes:[],text:!0,worker:!1,testText:e=>w(e,"image-texture-array"),options:{image:{}},parse:async(e,t,r)=>await d(new TextDecoder().decode(e),"image-texture-array",t,r),parseText:async(e,t,r)=>await d(e,"image-texture-array",t,r)};var jo={dataType:null,batchType:null,id:"texture-cube",name:"Texture Cube",module:"textures",version:u,extensions:[],mimeTypes:[],text:!0,worker:!1,testText:e=>w(e,"image-texture-cube"),options:{image:{}},parse:async(e,t,r)=>await d(new TextDecoder().decode(e),"image-texture-cube",t,r),parseText:async(e,t,r)=>await d(e,"image-texture-cube",t,r)};var Yo={dataType:null,batchType:null,id:"texture-cube-array",name:"Texture Cube Array",module:"textures",version:u,extensions:[],mimeTypes:[],text:!0,worker:!1,testText:e=>w(e,"image-texture-cube-array"),options:{image:{}},parse:async(e,t,r)=>await d(new TextDecoder().decode(e),"image-texture-cube-array",t,r),parseText:async(e,t,r)=>await d(e,"image-texture-cube-array",t,r)};var Jo={DECODER:"crunch.js"};async function Zo(e,t,r){let o=["texture-compressor","--type","s3tc","--compression","DXT1","--quality","normal","--input",e,"--output",t];return await new v().start({command:"npx",arguments:o,spawn:r}),t}var qo={name:"DDS Texture Container",id:"dds",module:"textures",version:u,extensions:["dds"],mimeTypes:["image/vnd-ms.dds","image/x-dds","application/octet-stream"],options:{texture:{format:"auto",compression:"auto",quality:"auto",mipmap:!1,flipY:!1,toolFlags:""}},encodeURLtoURL:Zo,encode(){throw new Error("Not implemented")}};async function Qo(e,t={}){let{useSRGB:r=!1,qualityLevel:o=10,encodeUASTC:n=!1,mipmaps:s=!1}=t?.["ktx2-basis-writer"]||{},{BasisEncoder:_}=await ee(q(t)),a=new _;try{let i=new Uint8Array(e.width*e.height*4);a.setCreateKTX2File(!0),a.setKTX2UASTCSupercompression(!0),a.setKTX2SRGBTransferFunc(!0),a.setSliceSourceImage(0,e.data,e.width,e.height,!1),a.setPerceptual(r),a.setMipSRGB(r),a.setQualityLevel(o),a.setUASTC(n),a.setMipGen(s);let c=a.encode(i);return i.subarray(0,c).buffer}catch(i){throw console.error("Basis Universal Supercompressed GPU Texture encoder Error: ",i),i}finally{a.delete()}}var en={name:"Basis Universal Supercompressed GPU Texture",id:"ktx2-basis-writer",module:"textures",version:u,extensions:["ktx2"],mimeTypes:["image/ktx2"],options:{["ktx2-basis-writer"]:{useSRGB:!1,qualityLevel:10,encodeUASTC:!1,mipmaps:!1}},encode:Qo};function Qe(e,t,r){return typeof e=="function"?e({...t,...r}):e}async function tn(e,t={}){let r=await _e(e,t);return await N(r,D(t))}async function _e(e,t,r={}){let o=t&&t.image&&t.image.mipLevels||0;return o!==0?await K_(e,o,t,r):Qe(e,t,r)}async function K_(e,t,r,o){let n=[],s=D(r);if(t==="auto"){let _=Qe(e,r,{...o,lod:0}),a=await qe(_,s),{width:i,height:c}=J(a);t=F_({width:i,height:c}),n.push(_)}B(t>0);for(let _=n.length;_<t;++_){let a=Qe(e,r,{...o,lod:_});n.push(a)}return n}function F_(e){return 1+Math.floor(Math.log2(Math.max(e.width,e.height)))}async function rn(e,t,r={}){let o=await y_(e,t,r);return await N(o,D(r))}async function y_(e,t,r={}){let o=[];for(let n=0;n<e;n++){let s=_e(t,r,{index:n});o.push(s)}return await Promise.all(o)}async function I_(e,t){let r={},o=[],n=0;for(let s=0;s<U.length;++s){let _=U[n],a=_e(e,t,{..._,index:n++}).then(i=>{r[_.face]=i});o.push(a)}return await Promise.all(o),r}async function on(e,t={}){let r=await I_(e,t);return await N(r,D(t))}var H_={name:"Basis Universal Supercompressed GPU Texture",id:"ktx2-basis-writer",module:"textures",version:u,extensions:["ktx2"],worker:!0,options:{useSRGB:!1,qualityLevel:10,encodeUASTC:!1,mipmaps:!1}};return gn(ae);})();
|
|
9
8
|
return __exports__;
|
|
10
9
|
});
|