@loaders.gl/textures 4.4.0-alpha.15 → 4.4.0-alpha.17

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (74) hide show
  1. package/README.md +44 -0
  2. package/dist/basis-loader.d.ts +17 -8
  3. package/dist/basis-loader.d.ts.map +1 -1
  4. package/dist/basis-loader.js.map +1 -1
  5. package/dist/basis-worker-node.js +317 -188
  6. package/dist/basis-worker.js +252 -123
  7. package/dist/compressed-texture-worker.js +1035 -326
  8. package/dist/crunch-worker.js +141 -82
  9. package/dist/dist.dev.js +1220 -334
  10. package/dist/dist.min.js +1 -2
  11. package/dist/index.cjs +657 -317
  12. package/dist/index.cjs.map +4 -4
  13. package/dist/index.d.ts +2 -4
  14. package/dist/index.d.ts.map +1 -1
  15. package/dist/index.js +1 -3
  16. package/dist/index.js.map +1 -1
  17. package/dist/ktx2-basis-writer-worker-node.js +2 -2
  18. package/dist/ktx2-basis-writer-worker.js +2 -2
  19. package/dist/lib/gl-extensions.d.ts +164 -58
  20. package/dist/lib/gl-extensions.d.ts.map +1 -1
  21. package/dist/lib/gl-extensions.js +175 -66
  22. package/dist/lib/gl-extensions.js.map +1 -1
  23. package/dist/lib/parsers/parse-basis.d.ts +16 -1
  24. package/dist/lib/parsers/parse-basis.d.ts.map +1 -1
  25. package/dist/lib/parsers/parse-basis.js +216 -43
  26. package/dist/lib/parsers/parse-basis.js.map +1 -1
  27. package/dist/lib/parsers/parse-crunch.d.ts.map +1 -1
  28. package/dist/lib/parsers/parse-crunch.js +4 -4
  29. package/dist/lib/parsers/parse-crunch.js.map +1 -1
  30. package/dist/lib/parsers/parse-dds.d.ts.map +1 -1
  31. package/dist/lib/parsers/parse-dds.js +7 -7
  32. package/dist/lib/parsers/parse-dds.js.map +1 -1
  33. package/dist/lib/parsers/parse-ktx.d.ts.map +1 -1
  34. package/dist/lib/parsers/parse-ktx.js +7 -0
  35. package/dist/lib/parsers/parse-ktx.js.map +1 -1
  36. package/dist/lib/parsers/parse-pvr.d.ts.map +1 -1
  37. package/dist/lib/parsers/parse-pvr.js +28 -70
  38. package/dist/lib/parsers/parse-pvr.js.map +1 -1
  39. package/dist/lib/utils/detect-supported-texture-formats.d.ts +14 -0
  40. package/dist/lib/utils/detect-supported-texture-formats.d.ts.map +1 -0
  41. package/dist/lib/utils/detect-supported-texture-formats.js +197 -0
  42. package/dist/lib/utils/detect-supported-texture-formats.js.map +1 -0
  43. package/dist/lib/utils/extract-mipmap-images.d.ts +2 -2
  44. package/dist/lib/utils/extract-mipmap-images.d.ts.map +1 -1
  45. package/dist/lib/utils/extract-mipmap-images.js +12 -2
  46. package/dist/lib/utils/extract-mipmap-images.js.map +1 -1
  47. package/dist/lib/utils/ktx-format-helper.d.ts +2 -1
  48. package/dist/lib/utils/ktx-format-helper.d.ts.map +1 -1
  49. package/dist/lib/utils/ktx-format-helper.js +67 -109
  50. package/dist/lib/utils/ktx-format-helper.js.map +1 -1
  51. package/dist/lib/utils/texture-format-map.d.ts +3 -0
  52. package/dist/lib/utils/texture-format-map.d.ts.map +1 -0
  53. package/dist/lib/utils/texture-format-map.js +71 -0
  54. package/dist/lib/utils/texture-format-map.js.map +1 -0
  55. package/dist/lib/utils/version.js +1 -1
  56. package/dist/npy-worker.js +1 -1
  57. package/package.json +6 -6
  58. package/src/basis-loader.ts +21 -8
  59. package/src/index.ts +2 -4
  60. package/src/lib/gl-extensions.ts +186 -81
  61. package/src/lib/parsers/parse-basis.ts +274 -40
  62. package/src/lib/parsers/parse-crunch.ts +13 -6
  63. package/src/lib/parsers/parse-dds.ts +16 -9
  64. package/src/lib/parsers/parse-ktx.ts +12 -2
  65. package/src/lib/parsers/parse-pvr.ts +72 -72
  66. package/src/lib/utils/detect-supported-texture-formats.ts +210 -0
  67. package/src/lib/utils/extract-mipmap-images.ts +15 -4
  68. package/src/lib/utils/ktx-format-helper.ts +124 -111
  69. package/src/lib/utils/texture-format-map.ts +135 -0
  70. package/dist/lib/utils/texture-formats.d.ts +0 -8
  71. package/dist/lib/utils/texture-formats.d.ts.map +0 -1
  72. package/dist/lib/utils/texture-formats.js +0 -51
  73. package/dist/lib/utils/texture-formats.js.map +0 -1
  74. 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.15";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.15"),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=t.spawn||{},i=r.spawn(t.command,o,a);this.childProcess=i,i.stdout?.on("data",c=>{console.log(c.toString())}),i.stderr?.on("data",c=>{console.log(`Child process wrote to stderr: "${c}".`),t.ignoreStderr||(this._clearTimeout(),_(new Error(c)))}),i.on("error",c=>{console.log(`Child process errored with ${c}`),this._clearTimeout(),_(c)}),i.on("close",c=>{console.log(`Child process exited with ${c}`),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.15";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 g_=Object.create;var lt=Object.defineProperty;var p_=Object.getOwnPropertyDescriptor;var O_=Object.getOwnPropertyNames;var B_=Object.getPrototypeOf,M_=Object.prototype.hasOwnProperty;var P_=(e,t)=>()=>(t||e((t={exports:{}}).exports,t),t.exports),d_=(e,t)=>{for(var r in t)lt(e,r,{get:t[r],enumerable:!0})},Tt=(e,t,r,_)=>{if(t&&typeof t=="object"||typeof t=="function")for(let o of O_(t))!M_.call(e,o)&&o!==r&&lt(e,o,{get:()=>t[o],enumerable:!(_=p_(t,o))||_.enumerable});return e},mt=(e,t,r)=>(Tt(e,t,"default"),r&&Tt(r,t,"default")),L_=(e,t,r)=>(r=e!=null?g_(B_(e)):{},Tt(t||!e||!e.__esModule?lt(r,"default",{value:e,enumerable:!0}):r,e)),D_=e=>Tt(lt({},"__esModule",{value:!0}),e);var or=P_((Pn,_r)=>{_r.exports=globalThis.loaders});var Et={};d_(Et,{BASIS_EXTERNAL_LIBRARIES:()=>I,BasisLoader:()=>hr,BasisWorkerLoader:()=>Ie,CRUNCH_EXTERNAL_LIBRARIES:()=>kr,CompressedTextureLoader:()=>Vr,CompressedTextureWorkerLoader:()=>we,CompressedTextureWriter:()=>$r,CrunchLoader:()=>Ne,CrunchWorkerLoader:()=>Ne,GL_COMPRESSED_R11_EAC:()=>Ot,GL_COMPRESSED_RED_GREEN_RGTC2_EXT:()=>jt,GL_COMPRESSED_RED_RGTC1_EXT:()=>zt,GL_COMPRESSED_RG11_EAC:()=>Bt,GL_COMPRESSED_RGB8_ETC2:()=>Mt,GL_COMPRESSED_RGB8_PUNCHTHROUGH_ALPHA1_ETC2:()=>Pt,GL_COMPRESSED_RGBA8_ETC2_EAC:()=>$,GL_COMPRESSED_RGBA_ASTC_10x10_KHR:()=>ot,GL_COMPRESSED_RGBA_ASTC_10x5_KHR:()=>et,GL_COMPRESSED_RGBA_ASTC_10x6_KHR:()=>rt,GL_COMPRESSED_RGBA_ASTC_10x8_KHR:()=>_t,GL_COMPRESSED_RGBA_ASTC_12x10_KHR:()=>nt,GL_COMPRESSED_RGBA_ASTC_12x12_KHR:()=>st,GL_COMPRESSED_RGBA_ASTC_4x4_KHR:()=>y,GL_COMPRESSED_RGBA_ASTC_5x4_KHR:()=>j,GL_COMPRESSED_RGBA_ASTC_5x5_KHR:()=>Y,GL_COMPRESSED_RGBA_ASTC_6x5_KHR:()=>J,GL_COMPRESSED_RGBA_ASTC_6x6_KHR:()=>Z,GL_COMPRESSED_RGBA_ASTC_8x5_KHR:()=>q,GL_COMPRESSED_RGBA_ASTC_8x6_KHR:()=>Q,GL_COMPRESSED_RGBA_ASTC_8x8_KHR:()=>tt,GL_COMPRESSED_RGBA_ATC_EXPLICIT_ALPHA_WEBGL:()=>Me,GL_COMPRESSED_RGBA_ATC_INTERPOLATED_ALPHA_WEBGL:()=>ht,GL_COMPRESSED_RGBA_BPTC_UNORM_EXT:()=>Le,GL_COMPRESSED_RGBA_PVRTC_2BPPV1_IMG:()=>Lt,GL_COMPRESSED_RGBA_PVRTC_4BPPV1_IMG:()=>z,GL_COMPRESSED_RGBA_S3TC_DXT1_EXT:()=>fe,GL_COMPRESSED_RGBA_S3TC_DXT3_EXT:()=>W,GL_COMPRESSED_RGBA_S3TC_DXT5_EXT:()=>N,GL_COMPRESSED_RGB_ATC_WEBGL:()=>bt,GL_COMPRESSED_RGB_BPTC_SIGNED_FLOAT_EXT:()=>no,GL_COMPRESSED_RGB_BPTC_UNSIGNED_FLOAT_EXT:()=>so,GL_COMPRESSED_RGB_ETC1_WEBGL:()=>Dt,GL_COMPRESSED_RGB_PVRTC_2BPPV1_IMG:()=>Be,GL_COMPRESSED_RGB_PVRTC_4BPPV1_IMG:()=>dt,GL_COMPRESSED_RGB_S3TC_DXT1_EXT:()=>w,GL_COMPRESSED_SIGNED_R11_EAC:()=>Ge,GL_COMPRESSED_SIGNED_RED_GREEN_RGTC2_EXT:()=>de,GL_COMPRESSED_SIGNED_RED_RGTC1_EXT:()=>Pe,GL_COMPRESSED_SIGNED_RG11_EAC:()=>xe,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:()=>Kt,GL_COMPRESSED_SRGB8_ALPHA8_ASTC_5x4_KHR:()=>Ht,GL_COMPRESSED_SRGB8_ALPHA8_ASTC_5x5_KHR:()=>Ft,GL_COMPRESSED_SRGB8_ALPHA8_ASTC_6x5_KHR:()=>It,GL_COMPRESSED_SRGB8_ALPHA8_ASTC_6x6_KHR:()=>wt,GL_COMPRESSED_SRGB8_ALPHA8_ASTC_8x5_KHR:()=>Nt,GL_COMPRESSED_SRGB8_ALPHA8_ASTC_8x6_KHR:()=>yt,GL_COMPRESSED_SRGB8_ALPHA8_ASTC_8x8_KHR:()=>Ut,GL_COMPRESSED_SRGB8_ALPHA8_ETC2_EAC:()=>pe,GL_COMPRESSED_SRGB8_ETC2:()=>ge,GL_COMPRESSED_SRGB8_PUNCHTHROUGH_ALPHA1_ETC2:()=>Oe,GL_COMPRESSED_SRGB_ALPHA_BPTC_UNORM_EXT:()=>oo,GL_COMPRESSED_SRGB_ALPHA_S3TC_DXT1_EXT:()=>be,GL_COMPRESSED_SRGB_ALPHA_S3TC_DXT3_EXT:()=>he,GL_COMPRESSED_SRGB_ALPHA_S3TC_DXT5_EXT:()=>Ke,GL_COMPRESSED_SRGB_S3TC_DXT1_EXT:()=>De,GL_EXTENSIONS_CONSTANTS:()=>ao,GL_RGB:()=>eo,GL_RGB565:()=>Ce,GL_RGB5_A1:()=>_o,GL_RGBA:()=>ro,GL_RGBA4:()=>fr,GL_RGBA8:()=>Gr,KTX2BasisWriter:()=>jr,KTX2BasisWriterWorker:()=>Bn,NPYLoader:()=>vr,NPYWorkerLoader:()=>Ve,loadImageTexture:()=>s_,loadImageTextureArray:()=>a_,loadImageTextureCube:()=>R_});mt(Et,L_(or(),1));var T="4.4.0-alpha.17";function G(e,t){if(!e)throw new Error(t||"loader assertion failed.")}var x={self:typeof self<"u"&&self,window:typeof window<"u"&&window,global:typeof global<"u"&&global,document:typeof document<"u"&&document},b_=x.self||x.window||x.global||{},h_=x.window||x.self||x.global||{},K_=x.global||x.self||x.window||{},H_=x.document||{};var se=Boolean(typeof process!="object"||String(process)!=="[object process]"||process.browser);var nr=typeof process<"u"&&process.version&&/v([0-9]*)/.exec(process.version),F_=nr&&parseFloat(nr[1])||0;var Ct=globalThis,I_=globalThis.document||{},ft=globalThis.process||{},w_=globalThis.console,bn=globalThis.navigator||{};function sr(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 P(){return!(typeof process=="object"&&String(process)==="[object process]"&&!process?.browser)||sr()}var ae="4.1.1";function D(e,t){if(!e)throw new Error(t||"Assertion failed")}function ie(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 D(Number.isFinite(t)&&t>=0),t}function ar(e){let{logLevel:t,message:r}=e;e.logLevel=ie(t);let _=e.args?Array.from(e.args):[];for(;_.length&&_.shift()!==r;);switch(typeof t){case"string":case"function":r!==void 0&&_.unshift(r),e.message=t;break;case"object":Object.assign(e,t);break;default:}typeof e.message=="function"&&(e.message=e.message());let o=typeof e.message;return D(o==="string"||o==="object"),Object.assign(e,{args:_},e.opts)}var d=()=>{},Gt=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,..._){return this._log("log",t,r,_)}info(t,r,..._){return this._log("info",t,r,_)}once(t,r,..._){return this._log("once",t,r,_,{once:!0})}_log(t,r,_,o,n={}){let s=ar({logLevel:r,message:_,args:this._buildArgs(r,_,o),opts:n});return this._createLogFunction(t,s,n)}_buildArgs(t,r,_){return[t,r,..._]}_createLogFunction(t,r,_){if(!this._shouldLog(r.logLevel))return d;let o=this._getOnceTag(_.tag??r.tag??r.message);if((_.once||r.once)&&o!==void 0){if(this._onceCache.has(o))return d;this._onceCache.add(o)}return this._emit(t,r)}_shouldLog(t){return this.getLevel()>=ie(t)}_getOnceTag(t){if(t!==void 0)try{return typeof t=="string"?t:String(t)}catch{return}}};function y_(e){try{let t=window[e],r="__storage_test__";return t.setItem(r,r),t.removeItem(r),t}catch{return null}}var xt=class{constructor(t,r,_="sessionStorage"){this.storage=y_(_),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 Rr(e,t=8){let r=Math.max(t-e.length,0);return`${" ".repeat(r)}${e}`}var gt;(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"})(gt||(gt={}));var U_=10;function cr(e){return typeof e!="string"?e:(e=e.toUpperCase(),gt[e]||gt.WHITE)}function Sr(e,t,r){return!P&&typeof e=="string"&&(t&&(e=`\x1B[${cr(t)}m${e}\x1B[39m`),r&&(e=`\x1B[${cr(r)+U_}m${e}\x1B[49m`)),e}function Er(e,t=["constructor"]){let r=Object.getPrototypeOf(e),_=Object.getOwnPropertyNames(r),o=e;for(let n of _){let s=o[n];typeof s=="function"&&(t.find(a=>n===a)||(o[n]=s.bind(e)))}}function b(){let e;if(P()&&Ct.performance)e=Ct?.performance?.now?.();else if("hrtime"in ft){let t=ft?.hrtime?.();e=t[0]*1e3+t[1]/1e6}else e=Date.now();return e}var h={debug:P()&&console.debug||console.log,log:console.log,info:console.info,warn:console.warn,error:console.error},Re={enabled:!0,level:0},B=class extends Gt{constructor({id:t}={id:""}){super({level:0}),this.VERSION=ae,this._startTs=b(),this._deltaTs=b(),this.userData={},this.LOG_THROTTLE_TIMEOUT=0,this.id=t,this.userData={},this._storage=new xt(`__probe-${this.id}__`,{[this.id]:Re}),this.timeStamp(`${this.id} started`),Er(this),Object.seal(this)}isEnabled(){return this._getConfiguration().enabled}getLevel(){return this._getConfiguration().level}getTotal(){return Number((b()-this._startTs).toPrecision(10))}getDelta(){return Number((b()-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:h.warn,once:!0})}error(t,...r){return this._log("error",0,t,r,{method:h.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,..._){return this._log("log",t,r,_,{method:h.log,time:!0,once:!0})}log(t,r,..._){return this._log("log",t,r,_,{method:h.debug})}info(t,r,..._){return this._log("info",t,r,_,{method:console.info})}once(t,r,..._){return this._log("once",t,r,_,{method:h.debug||h.info,once:!0})}table(t,r,_){return r?this._log("table",t,r,_&&[_]||[],{method:console.table||d,tag:X_(r)}):d}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||d})}group(t,r,_={collapsed:!1}){let o=(_.collapsed?console.groupCollapsed:console.group)||console.info;return this._log("group",t,r,[],{method:o})}groupCollapsed(t,r,_={}){return this.group(t,r,Object.assign({},_,{collapsed:!0}))}groupEnd(t){return this._log("groupEnd",t,"",[],{method:console.groupEnd||d})}withGroup(t,r,_){this.group(t,r)();try{_()}finally{this.groupEnd(t)()}}trace(){console.trace&&console.trace()}_shouldLog(t){return this.isEnabled()&&super._shouldLog(t)}_emit(t,r){let _=r.method;D(_),r.total=this.getTotal(),r.delta=this.getDelta(),this._deltaTs=b();let o=V_(this.id,r.message,r);return _.bind(console,o,...r.args)}_getConfiguration(){return this._storage.config[this.id]||this._updateConfiguration(Re),this._storage.config[this.id]}_updateConfiguration(t){let r=this._storage.config[this.id]||{...Re};this._storage.setConfiguration({[this.id]:{...r,...t}})}};B.VERSION=ae;function V_(e,t,r){if(typeof t=="string"){let _=r.time?Rr(ir(r.total)):"";t=r.time?`${e}: ${_} ${t}`:`${e}: ${t}`,t=Sr(t,r.color,r.background)}return t}function X_(e){for(let t in e)for(let r in e[t])return r||"untitled";return"empty"}globalThis.probe={};var as=new B({id:"@probe.gl/log"});var ce="4.4.0-alpha.17",v_=ce[0]>="0"&&ce[0]<="9"?`v${ce}`:"";function k_(){let e=new B({id:"loaders.gl"});return globalThis.loaders||={},globalThis.loaders.log=e,globalThis.loaders.version=v_,globalThis.probe||={},globalThis.probe.loaders=e,e}var Se=k_();function Ee(e){globalThis.loaders||={},globalThis.loaders.modules||={},Object.assign(globalThis.loaders.modules,e)}function Ae(e){return globalThis.loaders?.modules?.[e]||null}function W_(){return globalThis._loadersgl_?.version||(globalThis._loadersgl_=globalThis._loadersgl_||{},globalThis._loadersgl_.version="4.4.0-alpha.17"),globalThis._loadersgl_.version}var Ar=W_();function ur(e,t){if(!e)throw new Error(t||"loaders.gl assertion failed.")}var g={self:typeof self<"u"&&self,window:typeof window<"u"&&window,global:typeof global<"u"&&global,document:typeof document<"u"&&document},ls=g.self||g.window||g.global||{},ms=g.window||g.self||g.global||{},Cs=g.global||g.self||g.window||{},fs=g.document||{};var K=typeof process!="object"||String(process)!=="[object process]"||process.browser,pt=typeof importScripts=="function",Gs=typeof window<"u"&&typeof window.orientation<"u",Tr=typeof process<"u"&&process.version&&/v([0-9]*)/.exec(process.version),xs=Tr&&parseFloat(Tr[1])||0;var ue={};async function H(e,t=null,r={},_=null){return t&&(e=lr(e,t,r,_)),ue[e]=ue[e]||$_(e),await ue[e]}function lr(e,t,r={},_=null){if(r?.core)throw new Error("loadLibrary: options.core must be pre-normalized");if(!r.useLocalLibraries&&e.startsWith("http"))return e;_=_||e;let o=r.modules||{};return o[_]?o[_]:K?r.CDN?(ur(r.CDN.startsWith("http")),`${r.CDN}/${t}@${Ar}/dist/libs/${_}`):pt?`../src/libs/${_}`:`modules/${t}/src/libs/${_}`:`modules/${t}/dist/libs/${_}`}async function $_(e){if(e.endsWith("wasm"))return await j_(e);if(!K){let{requireFromFile:r}=globalThis.loaders||{};try{let _=await r?.(e);return _||!e.includes("/dist/libs/")?_:await r?.(e.replace("/dist/libs/","/src/libs/"))}catch(_){if(e.includes("/dist/libs/"))try{return await r?.(e.replace("/dist/libs/","/src/libs/"))}catch{}return console.error(_),null}}if(pt)return importScripts(e);let t=await Y_(e);return z_(t,e)}function z_(e,t){if(!K){let{requireFromString:_}=globalThis.loaders||{};return _?.(e,t)}if(pt)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 j_(e){let{readFileAsArrayBuffer:t}=globalThis.loaders||{};if(K||!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 Y_(e){let{readFileAsText:t}=globalThis.loaders||{};if(K||!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 F=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()}};var J_="",mr={};function Te(e){for(let t in mr)if(e.startsWith(t)){let r=mr[t];e=e.replace(t,r)}return!e.startsWith("http://")&&!e.startsWith("https://")&&(e=`${J_}${e}`),e}var I={TRANSCODER:"basis_transcoder.js",TRANSCODER_WASM:"basis_transcoder.wasm",ENCODER:"basis_encoder.js",ENCODER_WASM:"basis_encoder.wasm"},Cr;async function me(e){Ee(e.modules);let t=Ae("basis");return t||(Cr||=Z_(e),await Cr)}async function Z_(e){let t=null,r=null;return[t,r]=await Promise.all([await H(I.TRANSCODER,"textures",e),await H(I.TRANSCODER_WASM,"textures",e)]),t=t||globalThis.BASIS,await q_(t,r)}function q_(e,t){let r={};return t&&(r.wasmBinary=t),new Promise(_=>{e(r).then(o=>{let{BasisFile:n,initializeBasis:s}=o;s(),_({BasisFile:n})})})}var le;async function k(e){let t=e.modules||{};return t.basisEncoder?t.basisEncoder:(le=le||Q_(e),await le)}async function Q_(e){let t=null,r=null;return[t,r]=await Promise.all([await H(I.ENCODER,"textures",e),await H(I.ENCODER_WASM,"textures",e)]),t=t||globalThis.BASIS,await to(t,r)}function to(e,t){let r={};return t&&(r.wasmBinary=t),new Promise(_=>{e(r).then(o=>{let{BasisFile:n,KTX2File:s,initializeBasis:a,BasisEncoder:i}=o;a(),_({BasisFile:n,KTX2File:s,BasisEncoder:i})})})}var eo=6407,ro=6408,fr=32854,_o=32855,Gr=32856,Ce=36194,w=33776,fe=33777,W=33778,N=33779,Ot=37488,Ge=37489,Bt=37490,xe=37491,Mt=37492,$=37493,ge=37494,pe=37495,Pt=37496,Oe=37497,dt=35840,Be=35841,z=35842,Lt=35843,Dt=36196,bt=35986,Me=35987,ht=34798,y=37808,j=37809,Y=37810,J=37811,Z=37812,q=37813,Q=37814,tt=37815,et=37816,rt=37817,_t=37818,ot=37819,nt=37820,st=37821,Kt=37840,Ht=37841,Ft=37842,It=37843,wt=37844,Nt=37845,yt=37846,Ut=37847,Vt=37848,Xt=37849,vt=37850,kt=37851,Wt=37852,$t=37853,zt=36283,Pe=36284,jt=36285,de=36286,Le=36492,oo=36493,no=36494,so=36495,De=35916,be=35917,he=35918,Ke=35919,ao={RGB:6407,RGBA:6408,RGBA4:32854,RGB5_A1:32855,RGBA8:32856,RGB565:36194,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 io=["","WEBKIT_","MOZ_"],xr={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-rbg-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-rbg2unorm-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 Yt=null;function gr(e){if(!Yt){e=e||Ro()||void 0,Yt=new Set;for(let t of io)for(let r in xr)if(e&&e.getExtension(`${t}${r}`))for(let _ of xr[r])Yt.add(_)}return Yt}function Ro(){try{return document.createElement("canvas").getContext("webgl")}catch{return null}}var He=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}},L=class{constructor(t,r,_,o){this._dataView=void 0,this._littleEndian=void 0,this._offset=void 0,this._dataView=new DataView(t.buffer,t.byteOffset+r,_),this._littleEndian=o,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),_=t+2**32*r;return this._offset+=8,_}_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 _=this._offset,o=0;for(;this._dataView.getUint8(this._offset)!==r&&o<t;)o++,this._offset++;return o<t&&this._offset++,new Uint8Array(this._dataView.buffer,this._dataView.byteOffset+_,o)}};var Ys=new Uint8Array([0]),A=[171,75,84,88,32,50,48,187,13,10,26,10];function pr(e){return new TextDecoder().decode(e)}function Or(e){let t=new Uint8Array(e.buffer,e.byteOffset,A.length);if(t[0]!==A[0]||t[1]!==A[1]||t[2]!==A[2]||t[3]!==A[3]||t[4]!==A[4]||t[5]!==A[5]||t[6]!==A[6]||t[7]!==A[7]||t[8]!==A[8]||t[9]!==A[9]||t[10]!==A[10]||t[11]!==A[11])throw new Error("Missing KTX 2.0 identifier.");let r=new He,_=17*Uint32Array.BYTES_PER_ELEMENT,o=new L(e,A.length,_,!0);r.vkFormat=o._nextUint32(),r.typeSize=o._nextUint32(),r.pixelWidth=o._nextUint32(),r.pixelHeight=o._nextUint32(),r.pixelDepth=o._nextUint32(),r.layerCount=o._nextUint32(),r.faceCount=o._nextUint32();let n=o._nextUint32();r.supercompressionScheme=o._nextUint32();let s=o._nextUint32(),a=o._nextUint32(),i=o._nextUint32(),c=o._nextUint32(),S=o._nextUint64(),E=o._nextUint64(),At=n*3*8,oe=new L(e,A.length+_,At,!0);for(let u=0;u<n;u++)r.levels.push({levelData:new Uint8Array(e.buffer,e.byteOffset+oe._nextUint64(),oe._nextUint64()),uncompressedByteLength:oe._nextUint64()});let R=new L(e,s,a,!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:[]},c_=6,S_=4,E_=(ne.descriptorBlockSize/4-c_)/S_;for(let u=0;u<E_;u++){let O={bitOffset:R._nextUint16(),bitLength:R._nextUint8(),channelType:R._nextUint8(),samplePosition:[R._nextUint8(),R._nextUint8(),R._nextUint8(),R._nextUint8()],sampleLower:-1/0,sampleUpper:1/0};O.channelType&64?(O.sampleLower=R._nextInt32(),O.sampleUpper=R._nextInt32()):(O.sampleLower=R._nextUint32(),O.sampleUpper=R._nextUint32()),ne.samples[u]=O}r.dataFormatDescriptor.length=0,r.dataFormatDescriptor.push(ne);let v=new L(e,i,c,!0);for(;v._offset<c;){let u=v._nextUint32(),O=v._scan(u),ut=pr(O);if(r.keyValue[ut]=v._nextUint8Array(u-O.byteLength-1),ut.match(/^ktx/i)){let rr=pr(r.keyValue[ut]);r.keyValue[ut]=rr.substring(0,rr.lastIndexOf("\0"))}let x_=u%4?4-u%4:0;v._skip(x_)}if(E<=0)return r;let C=new L(e,S,E,!0),A_=C._nextUint16(),u_=C._nextUint16(),Ye=C._nextUint32(),Je=C._nextUint32(),Ze=C._nextUint32(),T_=C._nextUint32(),qe=[];for(let u=0;u<n;u++)qe.push({imageFlags:C._nextUint32(),rgbSliceByteOffset:C._nextUint32(),rgbSliceByteLength:C._nextUint32(),alphaSliceByteOffset:C._nextUint32(),alphaSliceByteLength:C._nextUint32()});let Qe=S+C._offset,tr=Qe+Ye,er=tr+Je,l_=er+Ze,m_=new Uint8Array(e.buffer,e.byteOffset+Qe,Ye),C_=new Uint8Array(e.buffer,e.byteOffset+tr,Je),f_=new Uint8Array(e.buffer,e.byteOffset+er,Ze),G_=new Uint8Array(e.buffer,e.byteOffset+l_,T_);return r.globalData={endpointCount:A_,selectorCount:u_,imageDescs:qe,endpointsData:m_,selectorsData:C_,tablesData:f_,extendedData:G_},r}var co={[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-rbg2unorm-webgl",[35843]:"pvrtc-rgba2unorm-webgl",[36196]:"etc1-rbg-unorm-webgl",[35986]:"atc-rgb-unorm-webgl",[35987]:"atc-rgba-unorm-webgl",[34798]:"atc-rgbai-unorm-webgl"};function Br(e){if(e!==void 0)return co[e]}function U(e,t){let r=new Array(t.mipMapLevels),_=t.internalFormat,o=_===void 0?void 0:Br(_),n=t.width,s=t.height,a=0;for(let i=0;i<t.mipMapLevels;++i){let c=Eo(t,n,s,e,i),E={shape:"texture-level",compressed:!0,data:So(e,i,a,c),width:n,height:s,levelSize:c};_!==void 0&&(E.format=_),o&&(E.textureFormat=o),r[i]=E,n=Math.max(1,n>>1),s=Math.max(1,s>>1),a+=c}return r}function So(e,t,r,_){return Array.isArray(e)?e[t].levelData:new Uint8Array(e.buffer,e.byteOffset+r,_)}function Eo(e,t,r,_,o){return Array.isArray(_)?e.sizeFunction(_[o]):e.sizeFunction(t,r)}var Ao={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 Mr(e){return Ao[e]}var l=[171,75,84,88,32,50,48,187,13,10,26,10];function Jt(e){let t=new Uint8Array(e);return!(t.byteLength<l.length||t[0]!==l[0]||t[1]!==l[1]||t[2]!==l[2]||t[3]!==l[3]||t[4]!==l[4]||t[5]!==l[5]||t[6]!==l[6]||t[7]!==l[7]||t[8]!==l[8]||t[9]!==l[9]||t[10]!==l[10]||t[11]!==l[11])}function Pr(e){let t=new Uint8Array(e),r=Or(t),_=Math.max(1,r.levels.length),o=r.pixelWidth,n=r.pixelHeight,s=Mr(r.vkFormat);return s===void 0&&Se.warn(`KTX2 container vkFormat ${r.vkFormat} does not map to a known WebGL format; returning texture levels without format metadata.`)(),U(r.levels,{mipMapLevels:_,width:o,height:n,sizeFunction:a=>a.uncompressedByteLength,internalFormat:s})}var Dr={etc1:{basisFormat:0,compressed:!0,format:36196,textureFormat:"etc1-rbg-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"}},Ra=Object.freeze(Object.keys(Dr));async function Zt(e,t={}){if(!t.basis?.containerFormat||t.basis.containerFormat==="auto"){if(Jt(e)){let _=await k(t?.core||{});return dr(_.KTX2File,e,t)}let{BasisFile:r}=await me(t?.core||{});return Fe(r,e,t)}switch(t.basis.module){case"encoder":let r=await k(t?.core||{});switch(t.basis.containerFormat){case"ktx2":return dr(r.KTX2File,e,t);case"basis":default:return Fe(r.BasisFile,e,t)}case"transcoder":default:let{BasisFile:_}=await me(t.core||{});return Fe(_,e,t)}}function Fe(e,t,r){let _=new e(new Uint8Array(t));try{if(!_.startTranscoding())throw new Error("Failed to start basis transcoding");let o=_.getNumImages(),n=[];for(let s=0;s<o;s++){let a=_.getNumLevels(s),i=[];for(let c=0;c<a;c++)i.push(uo(_,s,c,r));n.push(i)}return n}finally{_.close(),_.delete()}}function uo(e,t,r,_){let o=e.getImageWidth(t,r),n=e.getImageHeight(t,r),s=e.getHasAlpha(),{compressed:a,format:i,basisFormat:c,textureFormat:S}=br(_,s),E=e.getImageTranscodedSizeInBytes(t,r,c),At=new Uint8Array(E);if(!e.transcodeImage(At,t,r,c,0,0))throw new Error("failed to start Basis transcoding");return{shape:"texture-level",width:o,height:n,data:At,compressed:a,...i!==void 0?{format:i}:{},...S!==void 0?{textureFormat:S}:{},hasAlpha:s}}function dr(e,t,r){let _=new e(new Uint8Array(t));try{if(!_.startTranscoding())throw new Error("failed to start KTX2 transcoding");let o=_.getLevels(),n=[];for(let s=0;s<o;s++)n.push(To(_,s,r));return[n]}finally{_.close(),_.delete()}}function To(e,t,r){let{alphaFlag:_,height:o,width:n}=e.getImageLevelInfo(t,0,0),{compressed:s,format:a,basisFormat:i,textureFormat:c}=br(r,_),S=e.getImageTranscodedSizeInBytes(t,0,0,i),E=new Uint8Array(S);if(!e.transcodeImage(E,t,0,0,i,0,-1,-1))throw new Error("Failed to transcode KTX2 image");return{shape:"texture-level",width:n,height:o,data:E,compressed:s,...a!==void 0?{format:a}:{},...c!==void 0?{textureFormat:c}:{},levelSize:S,hasAlpha:_}}function br(e,t){let r=e.basis?.format||"auto";r==="auto"&&(r=e.basis?.supportedTextureFormats?Lr(e.basis.supportedTextureFormats):Lr()),typeof r=="object"&&(r=t?r.alpha:r.noAlpha);let _=r.toLowerCase(),o=Dr[_];if(!o)throw new Error(`Unknown Basis format ${r}`);return o}function Lr(e=gr()){let t=new Set(e);return V(t,["astc-4x4-unorm","astc-4x4-unorm-srgb"])?"astc-4x4":V(t,["bc7-rgba-unorm","bc7-rgba-unorm-srgb"])?{alpha:"bc7-m5",noAlpha:"bc7-m6-opaque-only"}:V(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"}:V(t,["pvrtc-rgb4unorm-webgl","pvrtc-rgba4unorm-webgl","pvrtc-rbg2unorm-webgl","pvrtc-rgba2unorm-webgl"])?{alpha:"pvrtc1-4-rgba",noAlpha:"pvrtc1-4-rgb"}:V(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-rbg-unorm-webgl")?"etc1":V(t,["atc-rgb-unorm-webgl","atc-rgba-unorm-webgl","atc-rgbai-unorm-webgl"])?{alpha:"atc-rgba-interpolated-alpha",noAlpha:"atc-rgb"}:"rgb565"}function V(e,t){return t.some(r=>e.has(r))}var Ie={dataType:null,batchType:null,name:"Basis",id:"basis",module:"textures",version:T,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"}}},hr={...Ie,parse:Zt};var m={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},lo={DXT1:33776,DXT3:33778,DXT5:33779,"ATC ":35986,ATCA:35987,ATCI:34798},mo=Fr,Co=qt,fo=qt,Go={DXT1:Fr,DXT3:qt,DXT5:qt,"ATC ":mo,ATCA:Co,ATCI:fo};function Kr(e){return new Uint32Array(e,0,m.HEADER_LENGTH)[m.MAGIC_NUMBER_INDEX]===m.MAGIC_NUMBER}function Hr(e){let t=new Int32Array(e,0,m.HEADER_LENGTH),r=t[m.HEADER_PF_FOURCC_INDEX];G(Boolean(t[m.HEADER_PF_FLAGS_INDEX]&m.DDPF_FOURCC),"DDS: Unsupported format, must contain a FourCC code");let _=xo(r),o=lo[_],n=Go[_];G(o&&n,`DDS: Unknown pixel format ${r}`);let s=1;t[m.HEADER_FLAGS_INDEX]&m.DDSD_MIPMAPCOUNT&&(s=Math.max(1,t[m.MIPMAPCOUNT_INDEX]));let a=t[m.HEADER_WIDTH_INDEX],i=t[m.HEADER_HEIGHT_INDEX],c=t[m.HEADER_SIZE_INDEX]+4,S=new Uint8Array(e,c);return U(S,{mipMapLevels:s,width:a,height:i,sizeFunction:n,internalFormat:o})}function Fr(e,t){return(e+3>>2)*(t+3>>2)*8}function qt(e,t){return(e+3>>2)*(t+3>>2)*16}function xo(e){return String.fromCharCode(e&255,e>>8&255,e>>16&255,e>>24&255)}var f={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},go={0:[35841],1:[35843],2:[35840],3:[35842],6:[36196],7:[33776],9:[33778],11:[33779],22:[37492],23:[37493],24:[37496],25:[37488],26:[37490],27:[37808,37840],28:[37809,37841],29:[37810,37842],30:[37811,37843],31:[37812,37844],32:[37813,37845],33:[37814,37846],34:[37815,37847],35:[37816,37848],36:[37817,37849],37:[37818,37850],38:[37819,37851],39:[37820,37852],40:[37821,37853]},po={0:Ir,1:Ir,2:wr,3:wr,6:at,7:at,9:it,11:it,22:at,23:it,24:at,25:at,26:it,27:it,28:Oo,29:Bo,30:Mo,31:Po,32:Lo,33:Do,34:bo,35:ho,36:Ko,37:Ho,38:Fo,39:Io,40:wo};function Nr(e){let r=new Uint32Array(e,0,f.HEADER_LENGTH)[f.MAGIC_NUMBER_INDEX];return r===f.MAGIC_NUMBER||r===f.MAGIC_NUMBER_EXTRA}function yr(e){let t=new Uint32Array(e,0,f.HEADER_LENGTH),r=t[f.PIXEL_FORMAT_INDEX],_=t[f.COLOUR_SPACE_INDEX],o=go[r]||[],n=o.length>1&&_?o[1]:o[0],s=po[r],a=t[f.MIPMAPCOUNT_INDEX],i=t[f.WIDTH_INDEX],c=t[f.HEIGHT_INDEX],S=f.HEADER_SIZE+t[f.METADATA_SIZE_INDEX],E=new Uint8Array(e,S);return U(E,{mipMapLevels:a,width:i,height:c,sizeFunction:s,internalFormat:n})}function Ir(e,t){return e=Math.max(e,16),t=Math.max(t,8),e*t/4}function wr(e,t){return e=Math.max(e,8),t=Math.max(t,8),e*t/2}function at(e,t){return Math.floor((e+3)/4)*Math.floor((t+3)/4)*8}function it(e,t){return Math.floor((e+3)/4)*Math.floor((t+3)/4)*16}function Oo(e,t){return Math.floor((e+4)/5)*Math.floor((t+3)/4)*16}function Bo(e,t){return Math.floor((e+4)/5)*Math.floor((t+4)/5)*16}function Mo(e,t){return Math.floor((e+5)/6)*Math.floor((t+4)/5)*16}function Po(e,t){return Math.floor((e+5)/6)*Math.floor((t+5)/6)*16}function Lo(e,t){return Math.floor((e+7)/8)*Math.floor((t+4)/5)*16}function Do(e,t){return Math.floor((e+7)/8)*Math.floor((t+5)/6)*16}function bo(e,t){return Math.floor((e+7)/8)*Math.floor((t+7)/8)*16}function ho(e,t){return Math.floor((e+9)/10)*Math.floor((t+4)/5)*16}function Ko(e,t){return Math.floor((e+9)/10)*Math.floor((t+5)/6)*16}function Ho(e,t){return Math.floor((e+9)/10)*Math.floor((t+7)/8)*16}function Fo(e,t){return Math.floor((e+9)/10)*Math.floor((t+9)/10)*16}function Io(e,t){return Math.floor((e+11)/12)*Math.floor((t+9)/10)*16}function wo(e,t){return Math.floor((e+11)/12)*Math.floor((t+11)/12)*16}function Ur(e){if(Jt(e))return Pr(e);if(Kr(e))return Hr(e);if(Nr(e))return yr(e);throw new Error("Texture container format not recognized")}var we={dataType:null,batchType:null,name:"Texture Containers",id:"compressed-texture",module:"textures",version:T,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}}},Vr={...we,parse:async(e,t)=>(t={...t},t?.["compressed-texture"]?.useBasis?(t.basis={format:{alpha:"BC3",noAlpha:"BC1"},...t.basis,containerFormat:"ktx2",module:"encoder"},(await Zt(e,t))[0]):Ur(e))};var Ne={dataType:null,batchType:null,id:"crunch",name:"Crunch",module:"textures",version:T,worker:!0,extensions:["crn"],mimeTypes:["image/crn","image/x-crn","application/octet-stream"],binary:!0,options:{crunch:{libraryPath:"libs/"}}};var ye=new Uint32Array([305419896]),No=new Uint8Array(ye.buffer,ye.byteOffset,ye.byteLength),yo=No[0]!==18,Xr=yo,Uo={u1:Uint8Array,i1:Int8Array,u2:Uint16Array,i2:Int16Array,u4:Uint32Array,i4:Int32Array,f4:Float32Array,f8:Float64Array};function Ue(e,t){let r=new DataView(e),{header:_,headerEndOffset:o}=Vo(r),n=_.descr,s=Uo[n.slice(1,3)];if(!s)throw new Error(`Unimplemented type ${n}`);let i=_.shape?.reduce((S,E)=>S*E)*s.BYTES_PER_ELEMENT;if(e.byteLength<o+i)throw new Error("Buffer overflow");let c=new s(e.slice(o,o+i));if(n[0]===">"&&Xr||n[0]==="<"&&!Xr)throw new Error("Incorrect endianness");return{data:c,header:_}}function Vo(e){let t=e.getUint8(6),r=8,_;t>=2?(_=e.getUint32(r,!0),r+=4):(_=e.getUint16(r,!0),r+=2);let o=t<=2?"latin1":"utf-8",n=new TextDecoder(o),s=new Uint8Array(e.buffer,r,_),a=n.decode(s);return r+=_,{header:JSON.parse(a.replace(/'/g,'"').replace("False","false").replace("(","[").replace(/,*\),*/g,"]")),headerEndOffset:r}}var Xo=new Uint8Array([147,78,85,77,80,89]),Ve={dataType:null,batchType:null,name:"NPY",id:"npy",module:"textures",version:T,worker:!0,extensions:["npy"],mimeTypes:[],tests:[Xo.buffer],options:{npy:{}}},vr={...Ve,parseSync:Ue,parse:async(e,t)=>Ue(e,t)};var kr={DECODER:"crunch.js"};async function Wr(e,t,r){let _=["texture-compressor","--type","s3tc","--compression","DXT1","--quality","normal","--input",e,"--output",t];return await new F().start({command:"npx",arguments:_,spawn:r}),t}var $r={name:"DDS Texture Container",id:"dds",module:"textures",version:T,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:Wr,encode(){throw new Error("Not implemented")}};async function zr(e,t={}){let{useSRGB:r=!1,qualityLevel:_=10,encodeUASTC:o=!1,mipmaps:n=!1}=t?.["ktx2-basis-writer"]||{},{BasisEncoder:s}=await k(t.core||{}),a=new s;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(_),a.setUASTC(o),a.setMipGen(n);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 jr={name:"Basis Universal Supercompressed GPU Texture",id:"ktx2-basis-writer",module:"textures",version:T,extensions:["ktx2"],mimeTypes:["image/ktx2"],options:{["ktx2-basis-writer"]:{useSRGB:!1,qualityLevel:10,encodeUASTC:!1,mipmaps:!1}},encode:zr};var Yr="4.4.0-alpha.17";var vo=globalThis.loaders?.parseImageNode,Xe=typeof Image<"u",ve=typeof ImageBitmap<"u",ko=Boolean(vo),ke=se?!0:ko;function Jr(e){switch(e){case"auto":return ve||Xe||ke;case"imagebitmap":return ve;case"image":return Xe;case"data":return ke;default:throw new Error(`@loaders.gl/images: image ${e} not supported in this environment`)}}function Zr(){if(ve)return"imagebitmap";if(Xe)return"image";if(ke)return"data";throw new Error("Install '@loaders.gl/polyfills' to parse images under Node.js")}function qr(e){let t=Wo(e);if(!t)throw new Error("Not an image");return t}function We(e){return Qt(e)}function Qt(e){switch(qr(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 Wo(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 $o=/^data:image\/svg\+xml/,zo=/\.svg((\?|#).*)?$/;function te(e){return e&&($o.test(e)||zo.test(e))}function Qr(e,t){if(te(t)){let _=new TextDecoder().decode(e);try{typeof unescape=="function"&&typeof encodeURIComponent=="function"&&(_=unescape(encodeURIComponent(_)))}catch(n){throw new Error(n.message)}return`data:image/svg+xml;base64,${btoa(_)}`}return $e(e,t)}function $e(e,t){if(te(t))throw new Error("SVG cannot be parsed directly to imagebitmap");return new Blob([new Uint8Array(e)])}async function ee(e,t,r){let _=Qr(e,r),o=self.URL||self.webkitURL,n=typeof _!="string"&&o.createObjectURL(_);try{return await jo(n||_,t)}finally{n&&o.revokeObjectURL(n)}}async function jo(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)=>{try{r.onload=()=>_(r),r.onerror=n=>{let s=n instanceof Error?n.message:"error";o(new Error(s))}}catch(n){o(n)}})}var t_=!0;async function e_(e,t,r){let _;te(r)?_=await ee(e,t,r):_=$e(e,r);let o=t&&t.imagebitmap;return await Yo(_,o)}async function Yo(e,t=null){if((Jo(t)||!t_)&&(t=null),t)try{return await createImageBitmap(e,t)}catch(r){console.warn(r),t_=!1}return await createImageBitmap(e)}function Jo(e){if(!e)return!0;for(let t in e)if(Object.prototype.hasOwnProperty.call(e,t))return!1;return!0}function r_(e){return!tn(e,"ftyp",4)||!(e[8]&96)?null:Zo(e)}function Zo(e){switch(qo(e,8,12).replace("\0"," ").trim()){case"avif":case"avis":return{extension:"avif",mimeType:"image/avif"};default:return null}}function qo(e,t,r){return String.fromCharCode(...e.slice(t,r))}function Qo(e){return[...e].map(t=>t.charCodeAt(0))}function tn(e,t,r=0){let _=Qo(t);for(let o=0;o<_.length;++o)if(_[o]!==e[o+r])return!1;return!0}var p=!1,Rt=!0;function re(e){let t=ct(e);return rn(t)||nn(t)||_n(t)||on(t)||en(t)}function en(e){let t=new Uint8Array(e instanceof DataView?e.buffer:e),r=r_(t);return r?{mimeType:r.mimeType,width:0,height:0}:null}function rn(e){let t=ct(e);return t.byteLength>=24&&t.getUint32(0,p)===2303741511?{mimeType:"image/png",width:t.getUint32(16,p),height:t.getUint32(20,p)}:null}function _n(e){let t=ct(e);return t.byteLength>=10&&t.getUint32(0,p)===1195984440?{mimeType:"image/gif",width:t.getUint16(6,Rt),height:t.getUint16(8,Rt)}:null}function on(e){let t=ct(e);return t.byteLength>=14&&t.getUint16(0,p)===16973&&t.getUint32(2,Rt)===t.byteLength?{mimeType:"image/bmp",width:t.getUint32(18,Rt),height:t.getUint32(22,Rt)}:null}function nn(e){let t=ct(e);if(!(t.byteLength>=3&&t.getUint16(0,p)===65496&&t.getUint8(2)===255))return null;let{tableMarkers:_,sofMarkers:o}=sn(),n=2;for(;n+9<t.byteLength;){let s=t.getUint16(n,p);if(o.has(s))return{mimeType:"image/jpeg",height:t.getUint16(n+5,p),width:t.getUint16(n+7,p)};if(!_.has(s))return null;n+=2,n+=t.getUint16(n,p)}return null}function sn(){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 ct(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 __(e,t){let{mimeType:r}=re(e)||{},_=globalThis.loaders?.parseImageNode;return G(_),await _(e,r)}async function o_(e,t,r){t=t||{};let o=(t.image||{}).type||"auto",{url:n}=r||{},s=an(o),a;switch(s){case"imagebitmap":a=await e_(e,t,n);break;case"image":a=await ee(e,t,n);break;case"data":a=await __(e,t);break;default:G(!1)}return o==="data"&&(a=Qt(a)),a}function an(e){switch(e){case"auto":case"data":return Zr();default:return Jr(e),e}}var Rn=["png","jpg","jpeg","gif","webp","bmp","ico","svg","avif"],cn=["image/png","image/jpeg","image/gif","image/webp","image/avif","image/bmp","image/vnd.microsoft.icon","image/svg+xml"],Sn={image:{type:"auto",decode:!0}},M={dataType:null,batchType:null,id:"image",module:"images",name:"Images",version:Yr,mimeTypes:cn,extensions:Rn,parse:o_,tests:[e=>Boolean(re(new DataView(e)))],options:Sn};function _e(e,t,r){let _=typeof e=="function"?e({...t,...r}):e,o=t.baseUrl;return o&&(_=o[o.length-1]==="/"?`${o}${_}`:`${o}/${_}`),Te(_)}var En=e=>e&&typeof e=="object";async function n_(e,t,r={}){return await ze(e,t,r)}async function ze(e,t,r){return Array.isArray(e)?await un(e,t,r):En(e)?await An(e,t,r):await t(e,r)}async function An(e,t,r){let _=[],o={};for(let n in e){let s=e[n],a=ze(s,t,r).then(i=>{o[n]=i});_.push(a)}return await Promise.all(_),o}async function un(e,t,r={}){let _=e.map(o=>ze(o,t,r));return await Promise.all(_)}async function X(e,t,r){return await n_(e,_=>je(_,t,r))}async function je(e,t,r){let o=await(await fetch(e,r.fetch)).arrayBuffer();return await t(o,r)}async function s_(e,t={}){let r=await St(e,t);return await X(r,M.parse,t)}async function St(e,t,r={}){let _=t&&t.image&&t.image.mipLevels||0;return _!==0?await Tn(e,_,t,r):_e(e,t,r)}async function Tn(e,t,r,_){let o=[];if(t==="auto"){let n=_e(e,r,{..._,lod:0}),s=await je(n,M.parse,r),{width:a,height:i}=We(s);t=ln({width:a,height:i}),o.push(n)}G(t>0);for(let n=o.length;n<t;++n){let s=_e(e,r,{..._,lod:n});o.push(s)}return o}function ln(e){return 1+Math.floor(Math.log2(Math.max(e.width,e.height)))}async function a_(e,t,r={}){let _=await mn(e,t,r);return await X(_,M.parse,r)}async function mn(e,t,r={}){let _=[];for(let o=0;o<e;o++){let n=St(t,r,{index:o});_.push(n)}return await Promise.all(_)}var Cn=34069,fn=34070,Gn=34071,xn=34072,gn=34073,pn=34074,i_=[{face:Cn,direction:"right",axis:"x",sign:"positive"},{face:fn,direction:"left",axis:"x",sign:"negative"},{face:Gn,direction:"top",axis:"y",sign:"positive"},{face:xn,direction:"bottom",axis:"y",sign:"negative"},{face:gn,direction:"front",axis:"z",sign:"positive"},{face:pn,direction:"back",axis:"z",sign:"negative"}];async function On(e,t){let r={},_=[],o=0;for(let n=0;n<i_.length;++n){let s=i_[o],a=St(e,t,{...s,index:o++}).then(i=>{r[s.face]=i});_.push(a)}return await Promise.all(_),r}async function R_(e,t={}){let r=await On(e,t);return await X(r,M.parse,t)}var Bn={name:"Basis Universal Supercompressed GPU Texture",id:"ktx2-basis-writer",module:"textures",version:T,extensions:["ktx2"],worker:!0,options:{useSRGB:!1,qualityLevel:10,encodeUASTC:!1,mipmaps:!1}};return D_(Et);})();
9
8
  return __exports__;
10
9
  });