@luma.gl/core
Advanced tools
Comparing version 9.1.0-beta.1 to 9.1.0-beta.3
@@ -48,3 +48,3 @@ // luma.gl | ||
// @ts-expect-error no-undef | ||
typeof "9.1.0-beta.1" !== 'undefined' ? "9.1.0-beta.1" : 'running from source'; | ||
typeof "9.1.0-beta.3" !== 'undefined' ? "9.1.0-beta.3" : 'running from source'; | ||
spector; | ||
@@ -51,0 +51,0 @@ preregisteredAdapters = new Map(); |
@@ -7,3 +7,3 @@ (function webpackUniversalModuleDefinition(root, factory) { | ||
else root['luma'] = factory();})(globalThis, function () { | ||
"use strict";var __exports__=(()=>{var ne=Object.defineProperty;var Pt=Object.getOwnPropertyDescriptor;var _t=Object.getOwnPropertyNames;var Ct=Object.prototype.hasOwnProperty;var Lt=(r,e,t)=>e in r?ne(r,e,{enumerable:!0,configurable:!0,writable:!0,value:t}):r[e]=t;var Bt=(r,e)=>{for(var t in e)ne(r,t,{get:e[t],enumerable:!0})},Rt=(r,e,t,n)=>{if(e&&typeof e=="object"||typeof e=="function")for(let i of _t(e))!Ct.call(r,i)&&i!==t&&ne(r,i,{get:()=>e[i],enumerable:!(n=Pt(e,i))||n.enumerable});return r};var Mt=r=>Rt(ne({},"__esModule",{value:!0}),r);var a=(r,e,t)=>(Lt(r,typeof e!="symbol"?e+"":e,t),t);var wr={};Bt(wr,{Adapter:()=>be,Buffer:()=>h,CanvasContext:()=>W,CommandBuffer:()=>J,CommandEncoder:()=>K,ComputePass:()=>q,ComputePipeline:()=>Z,Device:()=>_,DeviceFeatures:()=>ge,DeviceLimits:()=>pe,ExternalTexture:()=>V,Framebuffer:()=>Y,QuerySet:()=>re,RenderPass:()=>A,RenderPipeline:()=>X,Resource:()=>c,Sampler:()=>j,Shader:()=>O,Texture:()=>m,TextureView:()=>G,TransformFeedback:()=>te,UniformBlock:()=>$,UniformBufferLayout:()=>F,UniformStore:()=>Te,VertexArray:()=>ee,_BufferLayoutHelper:()=>ve,_getTextureFormatDefinition:()=>M,_getTextureFormatTable:()=>at,decodeShaderAttributeType:()=>xe,decodeShaderUniformType:()=>we,decodeTextureFormat:()=>he,decodeVertexFormat:()=>Q,getAttributeInfosFromLayouts:()=>Ge,getDataTypeFromTypedArray:()=>Xe,getScratchArray:()=>xt,getTextureFormatCapabilities:()=>me,getTypedArrayFromDataType:()=>vt,getVertexFormatFromAttribute:()=>At,log:()=>l,luma:()=>lt});var ie=globalThis,Dt=globalThis.document||{},se=globalThis.process||{},It=globalThis.console,Tr=globalThis.navigator||{};function Ze(r){if(typeof window<"u"&&window.process?.type==="renderer"||typeof process<"u"&&Boolean(process.versions?.electron))return!0;let e=typeof navigator<"u"&&navigator.userAgent,t=r||e;return Boolean(t&&t.indexOf("Electron")>=0)}function y(){return!(typeof process=="object"&&String(process)==="[object process]"&&!process?.browser)||Ze()}var Ae="4.0.7";function z(){let r;if(typeof window<"u"&&window.performance)r=window.performance.now();else if(typeof process<"u"&&process.hrtime){let e=process.hrtime();r=e[0]*1e3+e[1]/1e6}else r=Date.now();return r}var E=class{constructor(e,t){this.sampleSize=1,this.time=0,this.count=0,this.samples=0,this.lastTiming=0,this.lastSampleTime=0,this.lastSampleCount=0,this._count=0,this._time=0,this._samples=0,this._startTime=0,this._timerPending=!1,this.name=e,this.type=t,this.reset()}reset(){return this.time=0,this.count=0,this.samples=0,this.lastTiming=0,this.lastSampleTime=0,this.lastSampleCount=0,this._count=0,this._time=0,this._samples=0,this._startTime=0,this._timerPending=!1,this}setSampleSize(e){return this.sampleSize=e,this}incrementCount(){return this.addCount(1),this}decrementCount(){return this.subtractCount(1),this}addCount(e){return this._count+=e,this._samples++,this._checkSampling(),this}subtractCount(e){return this._count-=e,this._samples++,this._checkSampling(),this}addTime(e){return this._time+=e,this.lastTiming=e,this._samples++,this._checkSampling(),this}timeStart(){return this._startTime=z(),this._timerPending=!0,this}timeEnd(){return this._timerPending?(this.addTime(z()-this._startTime),this._timerPending=!1,this._checkSampling(),this):this}getSampleAverageCount(){return this.sampleSize>0?this.lastSampleCount/this.sampleSize:0}getSampleAverageTime(){return this.sampleSize>0?this.lastSampleTime/this.sampleSize:0}getSampleHz(){return this.lastSampleTime>0?this.sampleSize/(this.lastSampleTime/1e3):0}getAverageCount(){return this.samples>0?this.count/this.samples:0}getAverageTime(){return this.samples>0?this.time/this.samples:0}getHz(){return this.time>0?this.samples/(this.time/1e3):0}_checkSampling(){this._samples===this.sampleSize&&(this.lastSampleTime=this._time,this.lastSampleCount=this._count,this.count+=this._count,this.time+=this._time,this.samples+=this._samples,this._time=0,this._count=0,this._samples=0)}};var L=class{constructor(e){this.stats={},this.id=e.id,this.stats={},this._initializeStats(e.stats),Object.seal(this)}get(e,t="count"){return this._getOrCreate({name:e,type:t})}get size(){return Object.keys(this.stats).length}reset(){for(let e of Object.values(this.stats))e.reset();return this}forEach(e){for(let t of Object.values(this.stats))e(t)}getTable(){let e={};return this.forEach(t=>{e[t.name]={time:t.time||0,count:t.count||0,average:t.getAverageTime()||0,hz:t.getHz()||0}}),e}_initializeStats(e=[]){e.forEach(t=>this._getOrCreate(t))}_getOrCreate(e){let{name:t,type:n}=e,i=this.stats[t];return i||(e instanceof E?i=e:i=new E(t,n),this.stats[t]=i),i}};var Ee=class{stats=new Map;getStats(e){return this.get(e)}get(e){return this.stats.has(e)||this.stats.set(e,new L({id:e})),this.stats.get(e)}},oe=new Ee;function $t(r){try{let e=window[r],t="__storage_test__";return e.setItem(t,t),e.removeItem(t),e}catch{return null}}var ae=class{constructor(e,t,n="sessionStorage"){this.storage=$t(n),this.id=e,this.config=t,this._loadConfiguration()}getConfiguration(){return this.config}setConfiguration(e){if(Object.assign(this.config,e),this.storage){let t=JSON.stringify(this.config);this.storage.setItem(this.id,t)}}_loadConfiguration(){let e={};if(this.storage){let t=this.storage.getItem(this.id);e=t?JSON.parse(t):{}}return Object.assign(this.config,e),this}};function qe(r){let e;return r<10?e=`${r.toFixed(2)}ms`:r<100?e=`${r.toFixed(1)}ms`:r<1e3?e=`${r.toFixed(0)}ms`:e=`${(r/1e3).toFixed(2)}s`,e}function Ke(r,e=8){let t=Math.max(e-r.length,0);return`${" ".repeat(t)}${r}`}var ce;(function(r){r[r.BLACK=30]="BLACK",r[r.RED=31]="RED",r[r.GREEN=32]="GREEN",r[r.YELLOW=33]="YELLOW",r[r.BLUE=34]="BLUE",r[r.MAGENTA=35]="MAGENTA",r[r.CYAN=36]="CYAN",r[r.WHITE=37]="WHITE",r[r.BRIGHT_BLACK=90]="BRIGHT_BLACK",r[r.BRIGHT_RED=91]="BRIGHT_RED",r[r.BRIGHT_GREEN=92]="BRIGHT_GREEN",r[r.BRIGHT_YELLOW=93]="BRIGHT_YELLOW",r[r.BRIGHT_BLUE=94]="BRIGHT_BLUE",r[r.BRIGHT_MAGENTA=95]="BRIGHT_MAGENTA",r[r.BRIGHT_CYAN=96]="BRIGHT_CYAN",r[r.BRIGHT_WHITE=97]="BRIGHT_WHITE"})(ce||(ce={}));var zt=10;function Je(r){return typeof r!="string"?r:(r=r.toUpperCase(),ce[r]||ce.WHITE)}function Qe(r,e,t){return!y&&typeof r=="string"&&(e&&(r=`\x1B[${Je(e)}m${r}\x1B[39m`),t&&(r=`\x1B[${Je(t)+zt}m${r}\x1B[49m`)),r}function et(r,e=["constructor"]){let t=Object.getPrototypeOf(r),n=Object.getOwnPropertyNames(t),i=r;for(let s of n){let o=i[s];typeof o=="function"&&(e.find(u=>s===u)||(i[s]=o.bind(r)))}}function H(r,e){if(!r)throw new Error(e||"Assertion failed")}function P(){let r;if(y()&&ie.performance)r=ie?.performance?.now?.();else if("hrtime"in se){let e=se?.hrtime?.();r=e[0]*1e3+e[1]/1e6}else r=Date.now();return r}var B={debug:y()&&console.debug||console.log,log:console.log,info:console.info,warn:console.warn,error:console.error},Ht={enabled:!0,level:0};function R(){}var tt={},rt={once:!0},T=class{constructor({id:e}={id:""}){this.VERSION=Ae,this._startTs=P(),this._deltaTs=P(),this.userData={},this.LOG_THROTTLE_TIMEOUT=0,this.id=e,this.userData={},this._storage=new ae(`__probe-${this.id}__`,Ht),this.timeStamp(`${this.id} started`),et(this),Object.seal(this)}set level(e){this.setLevel(e)}get level(){return this.getLevel()}isEnabled(){return this._storage.config.enabled}getLevel(){return this._storage.config.level}getTotal(){return Number((P()-this._startTs).toPrecision(10))}getDelta(){return Number((P()-this._deltaTs).toPrecision(10))}set priority(e){this.level=e}get priority(){return this.level}getPriority(){return this.level}enable(e=!0){return this._storage.setConfiguration({enabled:e}),this}setLevel(e){return this._storage.setConfiguration({level:e}),this}get(e){return this._storage.config[e]}set(e,t){this._storage.setConfiguration({[e]:t})}settings(){console.table?console.table(this._storage.config):console.log(this._storage.config)}assert(e,t){if(!e)throw new Error(t||"Assertion failed")}warn(e){return this._getLogFunction(0,e,B.warn,arguments,rt)}error(e){return this._getLogFunction(0,e,B.error,arguments)}deprecated(e,t){return this.warn(`\`${e}\` is deprecated and will be removed in a later version. Use \`${t}\` instead`)}removed(e,t){return this.error(`\`${e}\` has been removed. Use \`${t}\` instead`)}probe(e,t){return this._getLogFunction(e,t,B.log,arguments,{time:!0,once:!0})}log(e,t){return this._getLogFunction(e,t,B.debug,arguments)}info(e,t){return this._getLogFunction(e,t,console.info,arguments)}once(e,t){return this._getLogFunction(e,t,B.debug||B.info,arguments,rt)}table(e,t,n){return t?this._getLogFunction(e,t,console.table||R,n&&[n],{tag:Ut(t)}):R}time(e,t){return this._getLogFunction(e,t,console.time?console.time:console.info)}timeEnd(e,t){return this._getLogFunction(e,t,console.timeEnd?console.timeEnd:console.info)}timeStamp(e,t){return this._getLogFunction(e,t,console.timeStamp||R)}group(e,t,n={collapsed:!1}){let i=nt({logLevel:e,message:t,opts:n}),{collapsed:s}=n;return i.method=(s?console.groupCollapsed:console.group)||console.info,this._getLogFunction(i)}groupCollapsed(e,t,n={}){return this.group(e,t,Object.assign({},n,{collapsed:!0}))}groupEnd(e){return this._getLogFunction(e,"",console.groupEnd||R)}withGroup(e,t,n){this.group(e,t)();try{n()}finally{this.groupEnd(e)()}}trace(){console.trace&&console.trace()}_shouldLog(e){return this.isEnabled()&&this.getLevel()>=it(e)}_getLogFunction(e,t,n,i,s){if(this._shouldLog(e)){s=nt({logLevel:e,message:t,args:i,opts:s}),n=n||s.method,H(n),s.total=this.getTotal(),s.delta=this.getDelta(),this._deltaTs=P();let o=s.tag||s.message;if(s.once&&o)if(!tt[o])tt[o]=P();else return R;return t=Nt(this.id,s.message,s),n.bind(console,t,...s.args)}return R}};T.VERSION=Ae;function it(r){if(!r)return 0;let e;switch(typeof r){case"number":e=r;break;case"object":e=r.logLevel||r.priority||0;break;default:return 0}return H(Number.isFinite(e)&&e>=0),e}function nt(r){let{logLevel:e,message:t}=r;r.logLevel=it(e);let n=r.args?Array.from(r.args):[];for(;n.length&&n.shift()!==t;);switch(typeof e){case"string":case"function":t!==void 0&&n.unshift(t),r.message=e;break;case"object":Object.assign(r,e);break;default:}typeof r.message=="function"&&(r.message=r.message());let i=typeof r.message;return H(i==="string"||i==="object"),Object.assign(r,{args:n},r.opts)}function Nt(r,e,t){if(typeof e=="string"){let n=t.time?Ke(qe(t.total)):"";e=t.time?`${r}: ${n} ${e}`:`${r}: ${e}`,e=Qe(e,t.color,t.background)}return e}function Ut(r){for(let e in r)for(let t in r[e])return t||"untitled";return"empty"}globalThis.probe={};var sn=new T({id:"@probe.gl/log"});var l=new T({id:"luma.gl"});var Pe={};function v(r="id"){Pe[r]=Pe[r]||1;let e=Pe[r]++;return`${r}-${e}`}var c=class{toString(){return`${this[Symbol.toStringTag]||this.constructor.name}:"${this.id}"`}id;props;userData={};_device;destroyed=!1;allocatedBytes=0;_attachedResources=new Set;constructor(e,t,n){if(!e)throw new Error("no device");this._device=e,this.props=kt(t,n);let i=this.props.id!=="undefined"?this.props.id:v(this[Symbol.toStringTag]);this.props.id=i,this.id=i,this.userData=this.props.userData||{},this.addStats()}destroy(){this.destroyResource()}delete(){return this.destroy(),this}getProps(){return this.props}attachResource(e){this._attachedResources.add(e)}detachResource(e){this._attachedResources.delete(e)}destroyAttachedResource(e){this._attachedResources.delete(e)&&e.destroy()}destroyAttachedResources(){for(let e of Object.values(this._attachedResources))e.destroy();this._attachedResources=new Set}destroyResource(){this.destroyAttachedResources(),this.removeStats(),this.destroyed=!0}removeStats(){let e=this._device.statsManager.getStats("Resource Counts"),t=this[Symbol.toStringTag];e.get(`${t}s Active`).decrementCount()}trackAllocatedMemory(e,t=this[Symbol.toStringTag]){let n=this._device.statsManager.getStats("Resource Counts");n.get("GPU Memory").addCount(e),n.get(`${t} Memory`).addCount(e),this.allocatedBytes=e}trackDeallocatedMemory(e=this[Symbol.toStringTag]){let t=this._device.statsManager.getStats("Resource Counts");t.get("GPU Memory").subtractCount(this.allocatedBytes),t.get(`${e} Memory`).subtractCount(this.allocatedBytes),this.allocatedBytes=0}addStats(){let e=this._device.statsManager.getStats("Resource Counts"),t=this[Symbol.toStringTag];e.get("Resources Created").incrementCount(),e.get(`${t}s Created`).incrementCount(),e.get(`${t}s Active`).incrementCount()}};a(c,"defaultProps",{id:"undefined",handle:void 0,userData:void 0});function kt(r,e){let t={...e};for(let n in r)r[n]!==void 0&&(t[n]=r[n]);return t}var N=class extends c{get[Symbol.toStringTag](){return"Buffer"}usage;indexType;updateTimestamp;constructor(e,t){let n={...t};(t.usage||0)&N.INDEX&&!t.indexType&&(t.data instanceof Uint32Array?n.indexType="uint32":t.data instanceof Uint16Array&&(n.indexType="uint16")),delete n.data,super(e,n,N.defaultProps),this.usage=n.usage||0,this.indexType=n.indexType,this.updateTimestamp=e.incrementTimestamp()}clone(e){return this.device.createBuffer({...this.props,...e})}readSyncWebGL(e,t){throw new Error("not implemented")}debugData=new ArrayBuffer(0);_setDebugData(e,t,n){let i=ArrayBuffer.isView(e)?e.buffer:e,s=Math.min(e?e.byteLength:n,N.DEBUG_DATA_MAX_LENGTH);i===null?this.debugData=new ArrayBuffer(s):t===0&&n===i.byteLength?this.debugData=i.slice(0,s):this.debugData=i.slice(t,t+s)}},h=N;a(h,"defaultProps",{...c.defaultProps,usage:0,byteLength:0,byteOffset:0,data:null,indexType:"uint16",mappedAtCreation:!1}),a(h,"MAP_READ",1),a(h,"MAP_WRITE",2),a(h,"COPY_SRC",4),a(h,"COPY_DST",8),a(h,"INDEX",16),a(h,"VERTEX",32),a(h,"UNIFORM",64),a(h,"STORAGE",128),a(h,"INDIRECT",256),a(h,"QUERY_RESOLVE",512),a(h,"DEBUG_DATA_MAX_LENGTH",32);function ue(r){let e=st[r],t=Wt(e),n=r.includes("norm"),i=!n&&!r.startsWith("float"),s=r.startsWith("s");return{dataType:st[r],byteLength:t,integer:i,signed:s,normalized:n}}function Wt(r){return Gt[r]}var st={uint8:"uint8",sint8:"sint8",unorm8:"uint8",snorm8:"sint8",uint16:"uint16",sint16:"sint16",unorm16:"uint16",snorm16:"sint16",float16:"float16",float32:"float32",uint32:"uint32",sint32:"sint32"},Gt={uint8:1,sint8:1,uint16:2,sint16:2,float16:2,float32:4,uint32:4,sint32:4};var p="texture-compression-bc",d="texture-compression-astc",w="texture-compression-etc2",Vt="texture-compression-etc1-webgl",le="texture-compression-pvrtc-webgl",_e="texture-compression-atc-webgl",fe="float32-renderable-webgl",Ce="float16-renderable-webgl",Ot="rgb9e5ufloat-renderable-webgl",Le="snorm8-renderable-webgl",U="norm16-renderable-webgl",Be="snorm16-renderable-webgl",de="float32-filterable",ot="float16-filterable-webgl";function M(r){let e=ct[r];if(!e)throw new Error(`Unsupported texture format ${r}`);return e}function at(){return ct}var ct={r8unorm:{},r8snorm:{render:Le},r8uint:{},r8sint:{},rg8unorm:{},rg8snorm:{render:Le},rg8uint:{},rg8sint:{},r16uint:{},r16sint:{},r16float:{render:Ce,filter:"float16-filterable-webgl"},"r16unorm-webgl":{f:U},"r16snorm-webgl":{f:Be},"rgba4unorm-webgl":{channels:"rgba",bitsPerChannel:[4,4,4,4],packed:!0},"rgb565unorm-webgl":{channels:"rgb",bitsPerChannel:[5,6,5,0],packed:!0},"rgb5a1unorm-webgl":{channels:"rgba",bitsPerChannel:[5,5,5,1],packed:!0},"rgb8unorm-webgl":{},"rgb8snorm-webgl":{},rgba8unorm:{},"rgba8unorm-srgb":{},rgba8snorm:{render:Le},rgba8uint:{},rgba8sint:{},bgra8unorm:{},"bgra8unorm-srgb":{},rg16uint:{},rg16sint:{},rg16float:{render:Ce,filter:ot},"rg16unorm-webgl":{render:U},"rg16snorm-webgl":{render:Be},r32uint:{},r32sint:{},r32float:{render:fe,filter:de},rgb9e5ufloat:{channels:"rgb",packed:!0,render:Ot},rg11b10ufloat:{channels:"rgb",bitsPerChannel:[11,11,10,0],packed:!0,p:1,render:fe},rgb10a2unorm:{channels:"rgba",bitsPerChannel:[10,10,10,2],packed:!0,p:1},rgb10a2uint:{channels:"rgba",bitsPerChannel:[10,10,10,2],packed:!0,p:1},"rgb16unorm-webgl":{f:U},"rgb16snorm-webgl":{f:U},rg32uint:{},rg32sint:{},rg32float:{render:!1,filter:de},rgba16uint:{},rgba16sint:{},rgba16float:{render:Ce,filter:ot},"rgba16unorm-webgl":{render:U},"rgba16snorm-webgl":{render:Be},"rgb32float-webgl":{render:fe,filter:de},rgba32uint:{},rgba32sint:{},rgba32float:{render:fe,filter:de},stencil8:{attachment:"stencil",bitsPerChannel:[8,0,0,0],dataType:"uint8"},depth16unorm:{attachment:"depth",bitsPerChannel:[16,0,0,0],dataType:"uint16"},depth24plus:{attachment:"depth",bitsPerChannel:[24,0,0,0],dataType:"uint32"},depth32float:{attachment:"depth",bitsPerChannel:[32,0,0,0],dataType:"float32"},"depth24plus-stencil8":{attachment:"depth-stencil",bitsPerChannel:[24,8,0,0],packed:!0},"depth32float-stencil8":{attachment:"depth-stencil",bitsPerChannel:[32,8,0,0],packed:!0},"bc1-rgb-unorm-webgl":{f:p},"bc1-rgb-unorm-srgb-webgl":{f:p},"bc1-rgba-unorm":{f:p},"bc1-rgba-unorm-srgb":{f:p},"bc2-rgba-unorm":{f:p},"bc2-rgba-unorm-srgb":{f:p},"bc3-rgba-unorm":{f:p},"bc3-rgba-unorm-srgb":{f:p},"bc4-r-unorm":{f:p},"bc4-r-snorm":{f:p},"bc5-rg-unorm":{f:p},"bc5-rg-snorm":{f:p},"bc6h-rgb-ufloat":{f:p},"bc6h-rgb-float":{f:p},"bc7-rgba-unorm":{f:p},"bc7-rgba-unorm-srgb":{f:p},"etc2-rgb8unorm":{f:w},"etc2-rgb8unorm-srgb":{f:w},"etc2-rgb8a1unorm":{f:w},"etc2-rgb8a1unorm-srgb":{f:w},"etc2-rgba8unorm":{f:w},"etc2-rgba8unorm-srgb":{f:w},"eac-r11unorm":{f:w},"eac-r11snorm":{f:w},"eac-rg11unorm":{f:w},"eac-rg11snorm":{f:w},"astc-4x4-unorm":{f:d},"astc-4x4-unorm-srgb":{f:d},"astc-5x4-unorm":{f:d},"astc-5x4-unorm-srgb":{f:d},"astc-5x5-unorm":{f:d},"astc-5x5-unorm-srgb":{f:d},"astc-6x5-unorm":{f:d},"astc-6x5-unorm-srgb":{f:d},"astc-6x6-unorm":{f:d},"astc-6x6-unorm-srgb":{f:d},"astc-8x5-unorm":{f:d},"astc-8x5-unorm-srgb":{f:d},"astc-8x6-unorm":{f:d},"astc-8x6-unorm-srgb":{f:d},"astc-8x8-unorm":{f:d},"astc-8x8-unorm-srgb":{f:d},"astc-10x5-unorm":{f:d},"astc-10x5-unorm-srgb":{f:d},"astc-10x6-unorm":{f:d},"astc-10x6-unorm-srgb":{f:d},"astc-10x8-unorm":{f:d},"astc-10x8-unorm-srgb":{f:d},"astc-10x10-unorm":{f:d},"astc-10x10-unorm-srgb":{f:d},"astc-12x10-unorm":{f:d},"astc-12x10-unorm-srgb":{f:d},"astc-12x12-unorm":{f:d},"astc-12x12-unorm-srgb":{f:d},"pvrtc-rgb4unorm-webgl":{f:le},"pvrtc-rgba4unorm-webgl":{f:le},"pvrtc-rbg2unorm-webgl":{f:le},"pvrtc-rgba2unorm-webgl":{f:le},"etc1-rbg-unorm-webgl":{f:Vt},"atc-rgb-unorm-webgl":{f:_e},"atc-rgba-unorm-webgl":{f:_e},"atc-rgbai-unorm-webgl":{f:_e}};var jt=["bc1","bc2","bc3","bc4","bc5","bc6","bc7","etc1","etc2","eac","atc","astc","pvrtc"],Yt=/^(r|rg|rgb|rgba|bgra)([0-9]*)([a-z]*)(-srgb)?(-webgl)?$/;function Re(r){return jt.some(e=>r.startsWith(e))}function he(r){let e=Xt(r);if(Re(r)){e.channels="rgb",e.components=3,e.bytesPerPixel=1,e.srgb=!1,e.compressed=!0;let n=Zt(r);n&&(e.blockWidth=n.blockWidth,e.blockHeight=n.blockHeight)}let t=Yt.exec(r);if(t){let[,n,i,s,o,u]=t,f=`${s}${i}`,b=ue(f),g=b.byteLength*8,x=n.length,Et=[g,x>=2?g:0,x>=3?g:0,x>=4?g:0];e={format:r,attachment:e.attachment,dataType:b.dataType,components:x,channels:n,integer:b.integer,signed:b.signed,normalized:b.normalized,bitsPerChannel:Et,bytesPerPixel:b.byteLength*n.length,packed:e.packed,srgb:e.srgb},u==="-webgl"&&(e.webgl=!0),o==="-srgb"&&(e.srgb=!0)}return r.endsWith("-webgl")&&(e.webgl=!0),r.endsWith("-srgb")&&(e.srgb=!0),e}function Xt(r){let e=M(r),t=e.bytesPerPixel||1,n=e.bitsPerChannel||[8,8,8,8];return delete e.bitsPerChannel,delete e.bytesPerPixel,delete e.f,delete e.render,delete e.filter,delete e.blend,delete e.store,{...e,format:r,attachment:e.attachment||"color",channels:e.channels||"r",components:e.components||e.channels?.length||1,bytesPerPixel:t,bitsPerChannel:n,dataType:e.dataType||"uint8",srgb:e.srgb??!1,packed:e.packed??!1,webgl:e.webgl??!1,integer:e.integer??!1,signed:e.signed??!1,normalized:e.normalized??!1,compressed:e.compressed??!1}}function Zt(r){let t=/.*-(\d+)x(\d+)-.*/.exec(r);if(t){let[,n,i]=t;return{blockWidth:Number(n),blockHeight:Number(i)}}return null}function me(r){let e=M(r),t={format:r,create:e.f??!0,render:e.render??!0,filter:e.filter??!0,blend:e.blend??!0,store:e.store??!0},n=he(r),i=r.startsWith("depth")||r.startsWith("stencil"),s=n?.signed,o=n?.integer,u=n?.webgl;return t.render&&=!s,t.filter&&=!i&&!s&&!o&&!u,t}var pe=class{},ge=class{features;disabledFeatures;constructor(e=[],t){this.features=new Set(e),this.disabledFeatures=t||{}}*[Symbol.iterator](){yield*this.features}has(e){return!this.disabledFeatures?.[e]&&this.features.has(e)}},Me=class{get[Symbol.toStringTag](){return"Device"}constructor(e){this.props={...Me.defaultProps,...e},this.id=this.props.id||v(this[Symbol.toStringTag].toLowerCase())}id;props;userData={};statsManager=oe;timestamp=0;_lumaData={};getTextureFormatCapabilities(e){let t=me(e),n=o=>(typeof o=="string"?this.features.has(o):o)??!0,i=n(t.create),s={format:e,create:i,render:i&&n(t.render),filter:i&&n(t.filter),blend:i&&n(t.blend),store:i&&n(t.store)};return this._getDeviceSpecificTextureFormatCapabilities(s)}isTextureFormatSupported(e,t){return this.getTextureFormatCapabilities(e).create}isTextureFormatFilterable(e){return this.getTextureFormatCapabilities(e).filter}isTextureFormatRenderable(e){return this.getTextureFormatCapabilities(e).render}isTextureFormatCompressed(e){return Re(e)}loseDevice(){return!1}reportError(e){this.props.onError(e)}getDefaultCanvasContext(){if(!this.canvasContext)throw new Error("Device has no default CanvasContext. See props.createCanvasContext");return this.canvasContext}createCommandEncoder(e={}){throw new Error("not implemented")}incrementTimestamp(){return this.timestamp++}onError(e){this.props.onError(e)}getCanvasContext(){return this.getDefaultCanvasContext()}readPixelsToArrayWebGL(e,t){throw new Error("not implemented")}readPixelsToBufferWebGL(e,t){throw new Error("not implemented")}setParametersWebGL(e){throw new Error("not implemented")}getParametersWebGL(e){throw new Error("not implemented")}withParametersWebGL(e,t){throw new Error("not implemented")}clearWebGL(e){throw new Error("not implemented")}resetWebGL(){throw new Error("not implemented")}_normalizeBufferProps(e){(e instanceof ArrayBuffer||ArrayBuffer.isView(e))&&(e={data:e});let t={...e};return(e.usage||0)&h.INDEX&&!e.indexType&&(e.data instanceof Uint32Array?t.indexType="uint32":e.data instanceof Uint16Array?t.indexType="uint16":l.warn("indices buffer content must be of type uint16 or uint32")()),t}},_=Me;a(_,"defaultProps",{id:null,powerPreference:"high-performance",failIfMajorPerformanceCaveat:!1,createCanvasContext:void 0,webgl:{},onError:e=>l.error(e.message)(),onResize:(e,t)=>{let[n,i]=e.getPixelSize(),[s,o]=t.oldPixelSize;l.log(1,`${e} Resized ${s}x${o} => ${n}x${i}px`)()},onVisibilityChange:e=>l.log(1,`${e} Visibility changed ${e.isVisible}`)(),onDevicePixelRatioChange:(e,t)=>l.log(1,`${e} DPR changed ${t.oldRatio} => ${e.devicePixelRatio}`)(),debug:l.get("debug")||void 0,debugShaders:l.get("debug-shaders")||void 0,debugFramebuffers:Boolean(l.get("debug-framebuffers")),debugFactories:Boolean(l.get("debug-factories")),debugWebGL:Boolean(l.get("debug-webgl")),debugSpectorJS:void 0,debugSpectorJSUrl:void 0,_requestMaxLimits:!0,_cacheShaders:!1,_cachePipelines:!1,_cacheDestroyPolicy:"unused",_initializeFeatures:!0,_disabledFeatures:{"compilation-status-async-webgl":!0},_resourceDefaults:{},_handle:void 0});var qt=y()&&typeof document<"u",Kt=()=>qt&&document.readyState==="complete",Jt="set luma.log.level=1 (or higher) to trace rendering",ut="No matching device found. Ensure `@luma.gl/webgl` and/or `@luma.gl/webgpu` modules are imported.",D=class{stats=oe;log=l;VERSION="9.1.0-beta.1";spector;preregisteredAdapters=new Map;constructor(){if(globalThis.luma){if(globalThis.luma.VERSION!==this.VERSION)throw l.error(`Found luma.gl ${globalThis.luma.VERSION} while initialzing ${this.VERSION}`)(),l.error("'yarn why @luma.gl/core' can help identify the source of the conflict")(),new Error("luma.gl - multiple versions detected: see console log");l.error("This version of luma.gl has already been initialized")()}l.log(1,`${this.VERSION} - ${Jt}`)(),globalThis.luma=this}registerAdapters(e){for(let t of e)this.preregisteredAdapters.set(t.type,t)}getSupportedAdapters(e=[]){let t=this.getAdapterMap(e);return Array.from(t).map(([,n])=>n).filter(n=>n.isSupported?.()).map(n=>n.type)}getBestAvailableAdapter(e=[]){let t=this.getAdapterMap(e);return t.get("webgpu")?.isSupported?.()?"webgpu":t.get("webgl")?.isSupported?.()?"webgl":null}setDefaultDeviceProps(e){Object.assign(D.defaultProps,e)}async createDevice(e={}){e={...D.defaultProps,...e},e.waitForPageLoad&&await D.pageLoaded;let t=this.getAdapterMap(e.adapters),n=e.type||"";n==="best-available"&&(n=this.getBestAvailableAdapter(e.adapters)||n);let o=await(this.getAdapterMap(e.adapters)||t).get(n)?.create?.(e);if(o)return o;throw new Error(ut)}async attachDevice(e){let t=this.getAdapterMap(e.adapters),n="";e.handle instanceof WebGL2RenderingContext&&(n="webgl"),e.createCanvasContext&&await D.pageLoaded,e.handle===null&&(n="unknown");let s=await t.get(n)?.attach?.(null);if(s)return s;throw new Error(ut)}enforceWebGL2(e=!0,t=[]){let i=this.getAdapterMap(t).get("webgl");i||l.warn("enforceWebGL2: webgl adapter not found")(),i?.enforceWebGL2?.(e)}getAdapterMap(e=[]){let t=new Map(this.preregisteredAdapters);for(let n of e)t.set(n.type,n);return t}registerDevices(e){l.warn("luma.registerDevices() is deprecated, use luma.registerAdapters() instead");for(let t of e){let n=t.adapter;n&&this.preregisteredAdapters.set(n.type,n)}}},k=D;a(k,"defaultProps",{..._.defaultProps,type:"best-available",adapters:void 0,waitForPageLoad:!0}),a(k,"pageLoaded",Qt().then(()=>{l.probe(2,"DOM is loaded")()}));var lt=new k;function Qt(){return Kt()||typeof window>"u"?Promise.resolve():new Promise(r=>{window.addEventListener("load",()=>r())})}var be=class{};var De=class{id;props;canvas;htmlCanvas;offscreenCanvas;type;_initializedResolvers=ir();initialized;isInitialized=!1;isVisible=!0;devicePixelRatio;pixelWidth;pixelHeight;drawingBufferWidth;drawingBufferHeight;_resizeObserver;_intersectionObserver;_canvasSizeInfo={clientWidth:0,clientHeight:0,devicePixelRatio:1};toString(){return`${this[Symbol.toStringTag]}(${this.id})`}constructor(e){if(this.props={...De.defaultProps,...e},e=this.props,this.initialized=this._initializedResolvers.promise,y()?e.canvas?typeof e.canvas=="string"?this.canvas=tr(e.canvas):this.canvas=e.canvas:this.canvas=rr(e):this.canvas={width:e.width||1,height:e.height||1},this.canvas instanceof HTMLCanvasElement?(this.id=e.id||this.canvas.id,this.type="html-canvas",this.htmlCanvas=this.canvas):this.canvas instanceof OffscreenCanvas?(this.id=e.id||"offscreen-canvas",this.type="offscreen-canvas",this.offscreenCanvas=this.canvas):(this.id=e.id||"node-canvas-context",this.type="node"),this.pixelWidth=this.canvas.width,this.pixelHeight=this.canvas.height,this.drawingBufferWidth=this.canvas.width,this.drawingBufferHeight=this.canvas.height,this.devicePixelRatio=globalThis.devicePixelRatio||1,this.canvas instanceof HTMLCanvasElement){this._intersectionObserver=new IntersectionObserver(t=>this._handleIntersection(t)),this._intersectionObserver.observe(this.canvas),this._resizeObserver=new ResizeObserver(t=>this._handleResize(t));try{this._resizeObserver.observe(this.canvas,{box:"device-pixel-content-box"})}catch{this._resizeObserver.observe(this.canvas,{box:"content-box"})}setTimeout(()=>this._observeDevicePixelRatio(),0)}}getCSSSize(){return this.canvas instanceof HTMLCanvasElement?[this.canvas.clientWidth,this.canvas.clientHeight]:[this.pixelWidth,this.pixelHeight]}getPixelSize(){return[this.pixelWidth,this.pixelHeight]}getDrawingBufferSize(){return[this.drawingBufferWidth,this.drawingBufferHeight]}getMaxDrawingBufferSize(){let e=this.device.limits.maxTextureDimension2D;return[e,e]}setDrawingBufferSize(e,t){this.canvas.width=e,this.canvas.height=t,this.drawingBufferWidth=e,this.drawingBufferHeight=t}getAspect(){let[e,t]=this.getPixelSize();return e/t}getDevicePixelRatio(e){return typeof OffscreenCanvas<"u"&&this.canvas instanceof OffscreenCanvas||(e=e===void 0?this.props.useDevicePixels:e,!e||e<=0)?1:e===!0?typeof window<"u"&&window.devicePixelRatio||1:e}cssToDeviceRatio(){try{let[e]=this.getDrawingBufferSize(),{clientWidth:t}=this._canvasSizeInfo;return t?e/t:1}catch{return 1}}cssToDevicePixels(e,t=!0){let n=this.cssToDeviceRatio(),[i,s]=this.getDrawingBufferSize();return nr(e,n,i,s,t)}_setAutoCreatedCanvasId(e){this.htmlCanvas?.id==="lumagl-auto-created-canvas"&&(this.htmlCanvas.id=e)}_handleIntersection(e){let t=e.find(i=>i.target===this.canvas);if(!t)return;let n=t.isIntersecting;this.isVisible!==n&&(this.isVisible=n,this.device.props.onVisibilityChange(this))}_handleResize(e){let t=e.find(f=>f.target===this.canvas);if(!t)return;let n=t.devicePixelContentBoxSize?.[0].inlineSize||t.contentBoxSize[0].inlineSize*devicePixelRatio,i=t.devicePixelContentBoxSize?.[0].blockSize||t.contentBoxSize[0].blockSize*devicePixelRatio,s=this.getPixelSize(),[o,u]=this.getMaxDrawingBufferSize();this.pixelWidth=Math.max(1,Math.min(n,o)),this.pixelHeight=Math.max(1,Math.min(i,u)),this.props.autoResize&&(this.setDrawingBufferSize(this.pixelWidth,this.pixelHeight),this.updateSize(this.getDrawingBufferSize())),this._initializedResolvers.resolve(),this.isInitialized=!0,this.device.props.onResize(this,{oldPixelSize:s})}_observeDevicePixelRatio(){let e=this.devicePixelRatio;this.devicePixelRatio=window.devicePixelRatio,this.device.props.onDevicePixelRatioChange(this,{oldRatio:e}),matchMedia(`(resolution: ${this.devicePixelRatio}dppx)`).addEventListener("change",()=>this._observeDevicePixelRatio(),{once:!0})}_setDevicePixelRatio(e,t={}){if(!this.htmlCanvas)return;let n="width"in t?t.width:this.htmlCanvas.clientWidth,i="height"in t?t.height:this.htmlCanvas.clientHeight;(!n||!i)&&(l.log(1,"Canvas clientWidth/clientHeight is 0")(),e=1,n=this.htmlCanvas.width||1,i=this.htmlCanvas.height||1);let s=this._canvasSizeInfo;if(s.clientWidth!==n||s.clientHeight!==i||s.devicePixelRatio!==e){let o=e,u=Math.floor(n*o),f=Math.floor(i*o);if(this.htmlCanvas.width=u,this.htmlCanvas.height=f,this.device.gl){let[g,x]=this.getDrawingBufferSize();(g!==u||x!==f)&&(o=Math.min(g/n,x/i),this.htmlCanvas.width=Math.floor(n*o),this.htmlCanvas.height=Math.floor(i*o),l.warn("Device pixel ratio clamped")()),this._canvasSizeInfo.clientWidth=n,this._canvasSizeInfo.clientHeight=i,this._canvasSizeInfo.devicePixelRatio=e}}}},W=De;a(W,"defaultProps",{id:void 0,canvas:null,width:800,height:600,useDevicePixels:!0,autoResize:!0,container:null,visible:!0,alphaMode:"opaque",colorSpace:"srgb"});function er(r){if(typeof r=="string"){let e=document.getElementById(r);if(!e)throw new Error(`${r} is not an HTML element`);return e}return r||document.body}function tr(r){let e=document.getElementById(r);if(!(e instanceof HTMLCanvasElement))throw new Error("Object is not a canvas element");return e}function rr(r){let{width:e,height:t}=r,n=document.createElement("canvas");n.id=v("lumagl-auto-created-canvas"),n.width=e||1,n.height=t||1,n.style.width=Number.isFinite(e)?`${e}px`:"100%",n.style.height=Number.isFinite(t)?`${t}px`:"100%",r?.visible||(n.style.visibility="hidden");let i=er(r?.container||null);return i.insertBefore(n,i.firstChild),n}function nr(r,e,t,n,i){let s=r,o=ft(s[0],e,t),u=dt(s[1],e,n,i),f=ft(s[0]+1,e,t),b=f===t-1?f:f-1;f=dt(s[1]+1,e,n,i);let g;return i?(f=f===0?f:f+1,g=u,u=f):g=f===n-1?f:f-1,{x:o,y:u,width:Math.max(b-o+1,1),height:Math.max(g-u+1,1)}}function ft(r,e,t){return Math.min(Math.round(r*e),t-1)}function dt(r,e,t,n){return n?Math.max(0,t-1-Math.round(r*e)):Math.min(Math.round(r*e),t-1)}function ir(){let r,e;return{promise:new Promise((n,i)=>{r=n,e=i}),resolve:r,reject:e}}var S=class extends c{get[Symbol.toStringTag](){return"Texture"}toString(){return`Texture(${this.id},${this.format},${this.width}x${this.height})`}dimension;format;width;height;depth;mipLevels;updateTimestamp;constructor(e,t){if(t=S.normalizeProps(e,t),super(e,t,S.defaultProps),this.dimension=this.props.dimension,this.format=this.props.format,this.width=this.props.width,this.height=this.props.height,this.depth=this.props.depth,this.props.width===void 0||this.props.height===void 0){let n=S.getTextureDataSize(this.props.data);this.width=n?.width||1,this.height=n?.height||1}this.props.mipmaps&&this.props.mipLevels===void 0&&(this.props.mipLevels="pyramid"),this.mipLevels=this.props.mipLevels==="pyramid"?S.getMipLevelCount(this.width,this.height):this.props.mipLevels||1,this.updateTimestamp=e.incrementTimestamp()}clone(e){return this.device.createTexture({...this.props,...e})}static isExternalImage(e){return typeof ImageData<"u"&&e instanceof ImageData||typeof ImageBitmap<"u"&&e instanceof ImageBitmap||typeof HTMLImageElement<"u"&&e instanceof HTMLImageElement||typeof HTMLVideoElement<"u"&&e instanceof HTMLVideoElement||typeof VideoFrame<"u"&&e instanceof VideoFrame||typeof HTMLCanvasElement<"u"&&e instanceof HTMLCanvasElement||typeof OffscreenCanvas<"u"&&e instanceof OffscreenCanvas}static getExternalImageSize(e){if(typeof ImageData<"u"&&e instanceof ImageData||typeof ImageBitmap<"u"&&e instanceof ImageBitmap||typeof HTMLCanvasElement<"u"&&e instanceof HTMLCanvasElement||typeof OffscreenCanvas<"u"&&e instanceof OffscreenCanvas)return{width:e.width,height:e.height};if(typeof HTMLImageElement<"u"&&e instanceof HTMLImageElement)return{width:e.naturalWidth,height:e.naturalHeight};if(typeof HTMLVideoElement<"u"&&e instanceof HTMLVideoElement)return{width:e.videoWidth,height:e.videoHeight};if(typeof VideoFrame<"u"&&e instanceof VideoFrame)return{width:e.displayWidth,height:e.displayHeight};throw new Error("Unknown image type")}static isTextureLevelData(e){let t=e?.data;return ArrayBuffer.isView(t)}static getTextureDataSize(e){if(!e||ArrayBuffer.isView(e))return null;if(Array.isArray(e))return S.getTextureDataSize(e[0]);if(S.isExternalImage(e))return S.getExternalImageSize(e);if(e&&typeof e=="object"&&e.constructor===Object){let n=Object.values(e)[0];return{width:n.width,height:n.height}}throw new Error("texture size deduction failed")}static normalizeTextureData(e,t){let n;return ArrayBuffer.isView(e)?n=[{data:e,width:t.width,height:t.height}]:Array.isArray(e)?n=e:n=[e],n}static getMipLevelCount(e,t){return Math.floor(Math.log2(Math.max(e,t)))+1}static getCubeFaceDepth(e){switch(e){case"+X":return 0;case"-X":return 1;case"+Y":return 2;case"-Y":return 3;case"+Z":return 4;case"-Z":return 5;default:throw new Error(e)}}static normalizeProps(e,t){let n={...t},i=e?.props?._resourceDefaults?.texture||{};Object.assign(n,i);let{width:s,height:o}=n;return typeof s=="number"&&(n.width=Math.max(1,Math.ceil(s))),typeof o=="number"&&(n.height=Math.max(1,Math.ceil(o))),n}},m=S;a(m,"COPY_SRC",1),a(m,"COPY_DST",2),a(m,"TEXTURE",4),a(m,"STORAGE",8),a(m,"RENDER_ATTACHMENT",16),a(m,"CubeFaces",["+X","-X","+Y","-Y","+Z","-Z"]),a(m,"defaultProps",{...c.defaultProps,data:null,dimension:"2d",format:"rgba8unorm",width:void 0,height:void 0,depth:1,mipmaps:!1,compressed:!1,usage:0,mipLevels:void 0,samples:void 0,sampler:{},view:void 0,flipY:void 0}),a(m,"defaultCopyExternalImageOptions",{image:void 0,sourceX:0,sourceY:0,width:void 0,height:void 0,depth:1,mipLevel:0,x:0,y:0,z:0,aspect:"all",colorSpace:"srgb",premultipliedAlpha:!1,flipY:!1});var Ie=class extends c{get[Symbol.toStringTag](){return"TextureView"}constructor(e,t){super(e,t,Ie.defaultProps)}},G=Ie;a(G,"defaultProps",{...c.defaultProps,format:void 0,dimension:void 0,aspect:"all",baseMipLevel:0,mipLevelCount:void 0,baseArrayLayer:0,arrayLayerCount:void 0});var Fe=class extends c{get[Symbol.toStringTag](){return"ExternalTexture"}constructor(e,t){super(e,t,Fe.defaultProps)}},V=Fe;a(V,"defaultProps",{...c.defaultProps,source:void 0,colorSpace:"srgb"});function mt(r,e,t){let n="",i=e.split(/\r?\n/),s=r.slice().sort((o,u)=>o.lineNum-u.lineNum);switch(t?.showSourceCode||"no"){case"all":let o=0;for(let u=1;u<=i.length;u++)for(n+=pt(i[u-1],u,t);s.length>o&&s[o].lineNum===u;){let f=s[o++];n+=ht(f,i,f.lineNum,{...t,inlineSource:!1})}return n;case"issues":case"no":for(let u of r)n+=ht(u,i,u.lineNum,{inlineSource:t?.showSourceCode!=="no"});return n}}function ht(r,e,t,n){if(n?.inlineSource){let s=sr(e,t),o=r.linePos>0?`${" ".repeat(r.linePos+5)}^^^ | ||
"use strict";var __exports__=(()=>{var ne=Object.defineProperty;var Pt=Object.getOwnPropertyDescriptor;var _t=Object.getOwnPropertyNames;var Ct=Object.prototype.hasOwnProperty;var Lt=(r,e,t)=>e in r?ne(r,e,{enumerable:!0,configurable:!0,writable:!0,value:t}):r[e]=t;var Bt=(r,e)=>{for(var t in e)ne(r,t,{get:e[t],enumerable:!0})},Rt=(r,e,t,n)=>{if(e&&typeof e=="object"||typeof e=="function")for(let i of _t(e))!Ct.call(r,i)&&i!==t&&ne(r,i,{get:()=>e[i],enumerable:!(n=Pt(e,i))||n.enumerable});return r};var Mt=r=>Rt(ne({},"__esModule",{value:!0}),r);var a=(r,e,t)=>(Lt(r,typeof e!="symbol"?e+"":e,t),t);var wr={};Bt(wr,{Adapter:()=>be,Buffer:()=>h,CanvasContext:()=>W,CommandBuffer:()=>J,CommandEncoder:()=>K,ComputePass:()=>q,ComputePipeline:()=>Z,Device:()=>_,DeviceFeatures:()=>ge,DeviceLimits:()=>pe,ExternalTexture:()=>V,Framebuffer:()=>Y,QuerySet:()=>re,RenderPass:()=>A,RenderPipeline:()=>X,Resource:()=>c,Sampler:()=>j,Shader:()=>O,Texture:()=>m,TextureView:()=>G,TransformFeedback:()=>te,UniformBlock:()=>$,UniformBufferLayout:()=>F,UniformStore:()=>Te,VertexArray:()=>ee,_BufferLayoutHelper:()=>ve,_getTextureFormatDefinition:()=>M,_getTextureFormatTable:()=>at,decodeShaderAttributeType:()=>xe,decodeShaderUniformType:()=>we,decodeTextureFormat:()=>he,decodeVertexFormat:()=>Q,getAttributeInfosFromLayouts:()=>Ge,getDataTypeFromTypedArray:()=>Xe,getScratchArray:()=>xt,getTextureFormatCapabilities:()=>me,getTypedArrayFromDataType:()=>vt,getVertexFormatFromAttribute:()=>At,log:()=>l,luma:()=>lt});var ie=globalThis,Dt=globalThis.document||{},se=globalThis.process||{},It=globalThis.console,Tr=globalThis.navigator||{};function Ze(r){if(typeof window<"u"&&window.process?.type==="renderer"||typeof process<"u"&&Boolean(process.versions?.electron))return!0;let e=typeof navigator<"u"&&navigator.userAgent,t=r||e;return Boolean(t&&t.indexOf("Electron")>=0)}function y(){return!(typeof process=="object"&&String(process)==="[object process]"&&!process?.browser)||Ze()}var Ae="4.0.7";function z(){let r;if(typeof window<"u"&&window.performance)r=window.performance.now();else if(typeof process<"u"&&process.hrtime){let e=process.hrtime();r=e[0]*1e3+e[1]/1e6}else r=Date.now();return r}var E=class{constructor(e,t){this.sampleSize=1,this.time=0,this.count=0,this.samples=0,this.lastTiming=0,this.lastSampleTime=0,this.lastSampleCount=0,this._count=0,this._time=0,this._samples=0,this._startTime=0,this._timerPending=!1,this.name=e,this.type=t,this.reset()}reset(){return this.time=0,this.count=0,this.samples=0,this.lastTiming=0,this.lastSampleTime=0,this.lastSampleCount=0,this._count=0,this._time=0,this._samples=0,this._startTime=0,this._timerPending=!1,this}setSampleSize(e){return this.sampleSize=e,this}incrementCount(){return this.addCount(1),this}decrementCount(){return this.subtractCount(1),this}addCount(e){return this._count+=e,this._samples++,this._checkSampling(),this}subtractCount(e){return this._count-=e,this._samples++,this._checkSampling(),this}addTime(e){return this._time+=e,this.lastTiming=e,this._samples++,this._checkSampling(),this}timeStart(){return this._startTime=z(),this._timerPending=!0,this}timeEnd(){return this._timerPending?(this.addTime(z()-this._startTime),this._timerPending=!1,this._checkSampling(),this):this}getSampleAverageCount(){return this.sampleSize>0?this.lastSampleCount/this.sampleSize:0}getSampleAverageTime(){return this.sampleSize>0?this.lastSampleTime/this.sampleSize:0}getSampleHz(){return this.lastSampleTime>0?this.sampleSize/(this.lastSampleTime/1e3):0}getAverageCount(){return this.samples>0?this.count/this.samples:0}getAverageTime(){return this.samples>0?this.time/this.samples:0}getHz(){return this.time>0?this.samples/(this.time/1e3):0}_checkSampling(){this._samples===this.sampleSize&&(this.lastSampleTime=this._time,this.lastSampleCount=this._count,this.count+=this._count,this.time+=this._time,this.samples+=this._samples,this._time=0,this._count=0,this._samples=0)}};var L=class{constructor(e){this.stats={},this.id=e.id,this.stats={},this._initializeStats(e.stats),Object.seal(this)}get(e,t="count"){return this._getOrCreate({name:e,type:t})}get size(){return Object.keys(this.stats).length}reset(){for(let e of Object.values(this.stats))e.reset();return this}forEach(e){for(let t of Object.values(this.stats))e(t)}getTable(){let e={};return this.forEach(t=>{e[t.name]={time:t.time||0,count:t.count||0,average:t.getAverageTime()||0,hz:t.getHz()||0}}),e}_initializeStats(e=[]){e.forEach(t=>this._getOrCreate(t))}_getOrCreate(e){let{name:t,type:n}=e,i=this.stats[t];return i||(e instanceof E?i=e:i=new E(t,n),this.stats[t]=i),i}};var Ee=class{stats=new Map;getStats(e){return this.get(e)}get(e){return this.stats.has(e)||this.stats.set(e,new L({id:e})),this.stats.get(e)}},oe=new Ee;function $t(r){try{let e=window[r],t="__storage_test__";return e.setItem(t,t),e.removeItem(t),e}catch{return null}}var ae=class{constructor(e,t,n="sessionStorage"){this.storage=$t(n),this.id=e,this.config=t,this._loadConfiguration()}getConfiguration(){return this.config}setConfiguration(e){if(Object.assign(this.config,e),this.storage){let t=JSON.stringify(this.config);this.storage.setItem(this.id,t)}}_loadConfiguration(){let e={};if(this.storage){let t=this.storage.getItem(this.id);e=t?JSON.parse(t):{}}return Object.assign(this.config,e),this}};function qe(r){let e;return r<10?e=`${r.toFixed(2)}ms`:r<100?e=`${r.toFixed(1)}ms`:r<1e3?e=`${r.toFixed(0)}ms`:e=`${(r/1e3).toFixed(2)}s`,e}function Ke(r,e=8){let t=Math.max(e-r.length,0);return`${" ".repeat(t)}${r}`}var ce;(function(r){r[r.BLACK=30]="BLACK",r[r.RED=31]="RED",r[r.GREEN=32]="GREEN",r[r.YELLOW=33]="YELLOW",r[r.BLUE=34]="BLUE",r[r.MAGENTA=35]="MAGENTA",r[r.CYAN=36]="CYAN",r[r.WHITE=37]="WHITE",r[r.BRIGHT_BLACK=90]="BRIGHT_BLACK",r[r.BRIGHT_RED=91]="BRIGHT_RED",r[r.BRIGHT_GREEN=92]="BRIGHT_GREEN",r[r.BRIGHT_YELLOW=93]="BRIGHT_YELLOW",r[r.BRIGHT_BLUE=94]="BRIGHT_BLUE",r[r.BRIGHT_MAGENTA=95]="BRIGHT_MAGENTA",r[r.BRIGHT_CYAN=96]="BRIGHT_CYAN",r[r.BRIGHT_WHITE=97]="BRIGHT_WHITE"})(ce||(ce={}));var zt=10;function Je(r){return typeof r!="string"?r:(r=r.toUpperCase(),ce[r]||ce.WHITE)}function Qe(r,e,t){return!y&&typeof r=="string"&&(e&&(r=`\x1B[${Je(e)}m${r}\x1B[39m`),t&&(r=`\x1B[${Je(t)+zt}m${r}\x1B[49m`)),r}function et(r,e=["constructor"]){let t=Object.getPrototypeOf(r),n=Object.getOwnPropertyNames(t),i=r;for(let s of n){let o=i[s];typeof o=="function"&&(e.find(u=>s===u)||(i[s]=o.bind(r)))}}function H(r,e){if(!r)throw new Error(e||"Assertion failed")}function P(){let r;if(y()&&ie.performance)r=ie?.performance?.now?.();else if("hrtime"in se){let e=se?.hrtime?.();r=e[0]*1e3+e[1]/1e6}else r=Date.now();return r}var B={debug:y()&&console.debug||console.log,log:console.log,info:console.info,warn:console.warn,error:console.error},Ht={enabled:!0,level:0};function R(){}var tt={},rt={once:!0},T=class{constructor({id:e}={id:""}){this.VERSION=Ae,this._startTs=P(),this._deltaTs=P(),this.userData={},this.LOG_THROTTLE_TIMEOUT=0,this.id=e,this.userData={},this._storage=new ae(`__probe-${this.id}__`,Ht),this.timeStamp(`${this.id} started`),et(this),Object.seal(this)}set level(e){this.setLevel(e)}get level(){return this.getLevel()}isEnabled(){return this._storage.config.enabled}getLevel(){return this._storage.config.level}getTotal(){return Number((P()-this._startTs).toPrecision(10))}getDelta(){return Number((P()-this._deltaTs).toPrecision(10))}set priority(e){this.level=e}get priority(){return this.level}getPriority(){return this.level}enable(e=!0){return this._storage.setConfiguration({enabled:e}),this}setLevel(e){return this._storage.setConfiguration({level:e}),this}get(e){return this._storage.config[e]}set(e,t){this._storage.setConfiguration({[e]:t})}settings(){console.table?console.table(this._storage.config):console.log(this._storage.config)}assert(e,t){if(!e)throw new Error(t||"Assertion failed")}warn(e){return this._getLogFunction(0,e,B.warn,arguments,rt)}error(e){return this._getLogFunction(0,e,B.error,arguments)}deprecated(e,t){return this.warn(`\`${e}\` is deprecated and will be removed in a later version. Use \`${t}\` instead`)}removed(e,t){return this.error(`\`${e}\` has been removed. Use \`${t}\` instead`)}probe(e,t){return this._getLogFunction(e,t,B.log,arguments,{time:!0,once:!0})}log(e,t){return this._getLogFunction(e,t,B.debug,arguments)}info(e,t){return this._getLogFunction(e,t,console.info,arguments)}once(e,t){return this._getLogFunction(e,t,B.debug||B.info,arguments,rt)}table(e,t,n){return t?this._getLogFunction(e,t,console.table||R,n&&[n],{tag:Ut(t)}):R}time(e,t){return this._getLogFunction(e,t,console.time?console.time:console.info)}timeEnd(e,t){return this._getLogFunction(e,t,console.timeEnd?console.timeEnd:console.info)}timeStamp(e,t){return this._getLogFunction(e,t,console.timeStamp||R)}group(e,t,n={collapsed:!1}){let i=nt({logLevel:e,message:t,opts:n}),{collapsed:s}=n;return i.method=(s?console.groupCollapsed:console.group)||console.info,this._getLogFunction(i)}groupCollapsed(e,t,n={}){return this.group(e,t,Object.assign({},n,{collapsed:!0}))}groupEnd(e){return this._getLogFunction(e,"",console.groupEnd||R)}withGroup(e,t,n){this.group(e,t)();try{n()}finally{this.groupEnd(e)()}}trace(){console.trace&&console.trace()}_shouldLog(e){return this.isEnabled()&&this.getLevel()>=it(e)}_getLogFunction(e,t,n,i,s){if(this._shouldLog(e)){s=nt({logLevel:e,message:t,args:i,opts:s}),n=n||s.method,H(n),s.total=this.getTotal(),s.delta=this.getDelta(),this._deltaTs=P();let o=s.tag||s.message;if(s.once&&o)if(!tt[o])tt[o]=P();else return R;return t=Nt(this.id,s.message,s),n.bind(console,t,...s.args)}return R}};T.VERSION=Ae;function it(r){if(!r)return 0;let e;switch(typeof r){case"number":e=r;break;case"object":e=r.logLevel||r.priority||0;break;default:return 0}return H(Number.isFinite(e)&&e>=0),e}function nt(r){let{logLevel:e,message:t}=r;r.logLevel=it(e);let n=r.args?Array.from(r.args):[];for(;n.length&&n.shift()!==t;);switch(typeof e){case"string":case"function":t!==void 0&&n.unshift(t),r.message=e;break;case"object":Object.assign(r,e);break;default:}typeof r.message=="function"&&(r.message=r.message());let i=typeof r.message;return H(i==="string"||i==="object"),Object.assign(r,{args:n},r.opts)}function Nt(r,e,t){if(typeof e=="string"){let n=t.time?Ke(qe(t.total)):"";e=t.time?`${r}: ${n} ${e}`:`${r}: ${e}`,e=Qe(e,t.color,t.background)}return e}function Ut(r){for(let e in r)for(let t in r[e])return t||"untitled";return"empty"}globalThis.probe={};var sn=new T({id:"@probe.gl/log"});var l=new T({id:"luma.gl"});var Pe={};function v(r="id"){Pe[r]=Pe[r]||1;let e=Pe[r]++;return`${r}-${e}`}var c=class{toString(){return`${this[Symbol.toStringTag]||this.constructor.name}:"${this.id}"`}id;props;userData={};_device;destroyed=!1;allocatedBytes=0;_attachedResources=new Set;constructor(e,t,n){if(!e)throw new Error("no device");this._device=e,this.props=kt(t,n);let i=this.props.id!=="undefined"?this.props.id:v(this[Symbol.toStringTag]);this.props.id=i,this.id=i,this.userData=this.props.userData||{},this.addStats()}destroy(){this.destroyResource()}delete(){return this.destroy(),this}getProps(){return this.props}attachResource(e){this._attachedResources.add(e)}detachResource(e){this._attachedResources.delete(e)}destroyAttachedResource(e){this._attachedResources.delete(e)&&e.destroy()}destroyAttachedResources(){for(let e of Object.values(this._attachedResources))e.destroy();this._attachedResources=new Set}destroyResource(){this.destroyAttachedResources(),this.removeStats(),this.destroyed=!0}removeStats(){let e=this._device.statsManager.getStats("Resource Counts"),t=this[Symbol.toStringTag];e.get(`${t}s Active`).decrementCount()}trackAllocatedMemory(e,t=this[Symbol.toStringTag]){let n=this._device.statsManager.getStats("Resource Counts");n.get("GPU Memory").addCount(e),n.get(`${t} Memory`).addCount(e),this.allocatedBytes=e}trackDeallocatedMemory(e=this[Symbol.toStringTag]){let t=this._device.statsManager.getStats("Resource Counts");t.get("GPU Memory").subtractCount(this.allocatedBytes),t.get(`${e} Memory`).subtractCount(this.allocatedBytes),this.allocatedBytes=0}addStats(){let e=this._device.statsManager.getStats("Resource Counts"),t=this[Symbol.toStringTag];e.get("Resources Created").incrementCount(),e.get(`${t}s Created`).incrementCount(),e.get(`${t}s Active`).incrementCount()}};a(c,"defaultProps",{id:"undefined",handle:void 0,userData:void 0});function kt(r,e){let t={...e};for(let n in r)r[n]!==void 0&&(t[n]=r[n]);return t}var N=class extends c{get[Symbol.toStringTag](){return"Buffer"}usage;indexType;updateTimestamp;constructor(e,t){let n={...t};(t.usage||0)&N.INDEX&&!t.indexType&&(t.data instanceof Uint32Array?n.indexType="uint32":t.data instanceof Uint16Array&&(n.indexType="uint16")),delete n.data,super(e,n,N.defaultProps),this.usage=n.usage||0,this.indexType=n.indexType,this.updateTimestamp=e.incrementTimestamp()}clone(e){return this.device.createBuffer({...this.props,...e})}readSyncWebGL(e,t){throw new Error("not implemented")}debugData=new ArrayBuffer(0);_setDebugData(e,t,n){let i=ArrayBuffer.isView(e)?e.buffer:e,s=Math.min(e?e.byteLength:n,N.DEBUG_DATA_MAX_LENGTH);i===null?this.debugData=new ArrayBuffer(s):t===0&&n===i.byteLength?this.debugData=i.slice(0,s):this.debugData=i.slice(t,t+s)}},h=N;a(h,"defaultProps",{...c.defaultProps,usage:0,byteLength:0,byteOffset:0,data:null,indexType:"uint16",mappedAtCreation:!1}),a(h,"MAP_READ",1),a(h,"MAP_WRITE",2),a(h,"COPY_SRC",4),a(h,"COPY_DST",8),a(h,"INDEX",16),a(h,"VERTEX",32),a(h,"UNIFORM",64),a(h,"STORAGE",128),a(h,"INDIRECT",256),a(h,"QUERY_RESOLVE",512),a(h,"DEBUG_DATA_MAX_LENGTH",32);function ue(r){let e=st[r],t=Wt(e),n=r.includes("norm"),i=!n&&!r.startsWith("float"),s=r.startsWith("s");return{dataType:st[r],byteLength:t,integer:i,signed:s,normalized:n}}function Wt(r){return Gt[r]}var st={uint8:"uint8",sint8:"sint8",unorm8:"uint8",snorm8:"sint8",uint16:"uint16",sint16:"sint16",unorm16:"uint16",snorm16:"sint16",float16:"float16",float32:"float32",uint32:"uint32",sint32:"sint32"},Gt={uint8:1,sint8:1,uint16:2,sint16:2,float16:2,float32:4,uint32:4,sint32:4};var p="texture-compression-bc",d="texture-compression-astc",w="texture-compression-etc2",Vt="texture-compression-etc1-webgl",le="texture-compression-pvrtc-webgl",_e="texture-compression-atc-webgl",fe="float32-renderable-webgl",Ce="float16-renderable-webgl",Ot="rgb9e5ufloat-renderable-webgl",Le="snorm8-renderable-webgl",U="norm16-renderable-webgl",Be="snorm16-renderable-webgl",de="float32-filterable",ot="float16-filterable-webgl";function M(r){let e=ct[r];if(!e)throw new Error(`Unsupported texture format ${r}`);return e}function at(){return ct}var ct={r8unorm:{},r8snorm:{render:Le},r8uint:{},r8sint:{},rg8unorm:{},rg8snorm:{render:Le},rg8uint:{},rg8sint:{},r16uint:{},r16sint:{},r16float:{render:Ce,filter:"float16-filterable-webgl"},"r16unorm-webgl":{f:U},"r16snorm-webgl":{f:Be},"rgba4unorm-webgl":{channels:"rgba",bitsPerChannel:[4,4,4,4],packed:!0},"rgb565unorm-webgl":{channels:"rgb",bitsPerChannel:[5,6,5,0],packed:!0},"rgb5a1unorm-webgl":{channels:"rgba",bitsPerChannel:[5,5,5,1],packed:!0},"rgb8unorm-webgl":{},"rgb8snorm-webgl":{},rgba8unorm:{},"rgba8unorm-srgb":{},rgba8snorm:{render:Le},rgba8uint:{},rgba8sint:{},bgra8unorm:{},"bgra8unorm-srgb":{},rg16uint:{},rg16sint:{},rg16float:{render:Ce,filter:ot},"rg16unorm-webgl":{render:U},"rg16snorm-webgl":{render:Be},r32uint:{},r32sint:{},r32float:{render:fe,filter:de},rgb9e5ufloat:{channels:"rgb",packed:!0,render:Ot},rg11b10ufloat:{channels:"rgb",bitsPerChannel:[11,11,10,0],packed:!0,p:1,render:fe},rgb10a2unorm:{channels:"rgba",bitsPerChannel:[10,10,10,2],packed:!0,p:1},rgb10a2uint:{channels:"rgba",bitsPerChannel:[10,10,10,2],packed:!0,p:1},"rgb16unorm-webgl":{f:U},"rgb16snorm-webgl":{f:U},rg32uint:{},rg32sint:{},rg32float:{render:!1,filter:de},rgba16uint:{},rgba16sint:{},rgba16float:{render:Ce,filter:ot},"rgba16unorm-webgl":{render:U},"rgba16snorm-webgl":{render:Be},"rgb32float-webgl":{render:fe,filter:de},rgba32uint:{},rgba32sint:{},rgba32float:{render:fe,filter:de},stencil8:{attachment:"stencil",bitsPerChannel:[8,0,0,0],dataType:"uint8"},depth16unorm:{attachment:"depth",bitsPerChannel:[16,0,0,0],dataType:"uint16"},depth24plus:{attachment:"depth",bitsPerChannel:[24,0,0,0],dataType:"uint32"},depth32float:{attachment:"depth",bitsPerChannel:[32,0,0,0],dataType:"float32"},"depth24plus-stencil8":{attachment:"depth-stencil",bitsPerChannel:[24,8,0,0],packed:!0},"depth32float-stencil8":{attachment:"depth-stencil",bitsPerChannel:[32,8,0,0],packed:!0},"bc1-rgb-unorm-webgl":{f:p},"bc1-rgb-unorm-srgb-webgl":{f:p},"bc1-rgba-unorm":{f:p},"bc1-rgba-unorm-srgb":{f:p},"bc2-rgba-unorm":{f:p},"bc2-rgba-unorm-srgb":{f:p},"bc3-rgba-unorm":{f:p},"bc3-rgba-unorm-srgb":{f:p},"bc4-r-unorm":{f:p},"bc4-r-snorm":{f:p},"bc5-rg-unorm":{f:p},"bc5-rg-snorm":{f:p},"bc6h-rgb-ufloat":{f:p},"bc6h-rgb-float":{f:p},"bc7-rgba-unorm":{f:p},"bc7-rgba-unorm-srgb":{f:p},"etc2-rgb8unorm":{f:w},"etc2-rgb8unorm-srgb":{f:w},"etc2-rgb8a1unorm":{f:w},"etc2-rgb8a1unorm-srgb":{f:w},"etc2-rgba8unorm":{f:w},"etc2-rgba8unorm-srgb":{f:w},"eac-r11unorm":{f:w},"eac-r11snorm":{f:w},"eac-rg11unorm":{f:w},"eac-rg11snorm":{f:w},"astc-4x4-unorm":{f:d},"astc-4x4-unorm-srgb":{f:d},"astc-5x4-unorm":{f:d},"astc-5x4-unorm-srgb":{f:d},"astc-5x5-unorm":{f:d},"astc-5x5-unorm-srgb":{f:d},"astc-6x5-unorm":{f:d},"astc-6x5-unorm-srgb":{f:d},"astc-6x6-unorm":{f:d},"astc-6x6-unorm-srgb":{f:d},"astc-8x5-unorm":{f:d},"astc-8x5-unorm-srgb":{f:d},"astc-8x6-unorm":{f:d},"astc-8x6-unorm-srgb":{f:d},"astc-8x8-unorm":{f:d},"astc-8x8-unorm-srgb":{f:d},"astc-10x5-unorm":{f:d},"astc-10x5-unorm-srgb":{f:d},"astc-10x6-unorm":{f:d},"astc-10x6-unorm-srgb":{f:d},"astc-10x8-unorm":{f:d},"astc-10x8-unorm-srgb":{f:d},"astc-10x10-unorm":{f:d},"astc-10x10-unorm-srgb":{f:d},"astc-12x10-unorm":{f:d},"astc-12x10-unorm-srgb":{f:d},"astc-12x12-unorm":{f:d},"astc-12x12-unorm-srgb":{f:d},"pvrtc-rgb4unorm-webgl":{f:le},"pvrtc-rgba4unorm-webgl":{f:le},"pvrtc-rbg2unorm-webgl":{f:le},"pvrtc-rgba2unorm-webgl":{f:le},"etc1-rbg-unorm-webgl":{f:Vt},"atc-rgb-unorm-webgl":{f:_e},"atc-rgba-unorm-webgl":{f:_e},"atc-rgbai-unorm-webgl":{f:_e}};var jt=["bc1","bc2","bc3","bc4","bc5","bc6","bc7","etc1","etc2","eac","atc","astc","pvrtc"],Yt=/^(r|rg|rgb|rgba|bgra)([0-9]*)([a-z]*)(-srgb)?(-webgl)?$/;function Re(r){return jt.some(e=>r.startsWith(e))}function he(r){let e=Xt(r);if(Re(r)){e.channels="rgb",e.components=3,e.bytesPerPixel=1,e.srgb=!1,e.compressed=!0;let n=Zt(r);n&&(e.blockWidth=n.blockWidth,e.blockHeight=n.blockHeight)}let t=Yt.exec(r);if(t){let[,n,i,s,o,u]=t,f=`${s}${i}`,b=ue(f),g=b.byteLength*8,x=n.length,Et=[g,x>=2?g:0,x>=3?g:0,x>=4?g:0];e={format:r,attachment:e.attachment,dataType:b.dataType,components:x,channels:n,integer:b.integer,signed:b.signed,normalized:b.normalized,bitsPerChannel:Et,bytesPerPixel:b.byteLength*n.length,packed:e.packed,srgb:e.srgb},u==="-webgl"&&(e.webgl=!0),o==="-srgb"&&(e.srgb=!0)}return r.endsWith("-webgl")&&(e.webgl=!0),r.endsWith("-srgb")&&(e.srgb=!0),e}function Xt(r){let e=M(r),t=e.bytesPerPixel||1,n=e.bitsPerChannel||[8,8,8,8];return delete e.bitsPerChannel,delete e.bytesPerPixel,delete e.f,delete e.render,delete e.filter,delete e.blend,delete e.store,{...e,format:r,attachment:e.attachment||"color",channels:e.channels||"r",components:e.components||e.channels?.length||1,bytesPerPixel:t,bitsPerChannel:n,dataType:e.dataType||"uint8",srgb:e.srgb??!1,packed:e.packed??!1,webgl:e.webgl??!1,integer:e.integer??!1,signed:e.signed??!1,normalized:e.normalized??!1,compressed:e.compressed??!1}}function Zt(r){let t=/.*-(\d+)x(\d+)-.*/.exec(r);if(t){let[,n,i]=t;return{blockWidth:Number(n),blockHeight:Number(i)}}return null}function me(r){let e=M(r),t={format:r,create:e.f??!0,render:e.render??!0,filter:e.filter??!0,blend:e.blend??!0,store:e.store??!0},n=he(r),i=r.startsWith("depth")||r.startsWith("stencil"),s=n?.signed,o=n?.integer,u=n?.webgl;return t.render&&=!s,t.filter&&=!i&&!s&&!o&&!u,t}var pe=class{},ge=class{features;disabledFeatures;constructor(e=[],t){this.features=new Set(e),this.disabledFeatures=t||{}}*[Symbol.iterator](){yield*this.features}has(e){return!this.disabledFeatures?.[e]&&this.features.has(e)}},Me=class{get[Symbol.toStringTag](){return"Device"}constructor(e){this.props={...Me.defaultProps,...e},this.id=this.props.id||v(this[Symbol.toStringTag].toLowerCase())}id;props;userData={};statsManager=oe;timestamp=0;_lumaData={};getTextureFormatCapabilities(e){let t=me(e),n=o=>(typeof o=="string"?this.features.has(o):o)??!0,i=n(t.create),s={format:e,create:i,render:i&&n(t.render),filter:i&&n(t.filter),blend:i&&n(t.blend),store:i&&n(t.store)};return this._getDeviceSpecificTextureFormatCapabilities(s)}isTextureFormatSupported(e,t){return this.getTextureFormatCapabilities(e).create}isTextureFormatFilterable(e){return this.getTextureFormatCapabilities(e).filter}isTextureFormatRenderable(e){return this.getTextureFormatCapabilities(e).render}isTextureFormatCompressed(e){return Re(e)}loseDevice(){return!1}reportError(e){this.props.onError(e)}getDefaultCanvasContext(){if(!this.canvasContext)throw new Error("Device has no default CanvasContext. See props.createCanvasContext");return this.canvasContext}createCommandEncoder(e={}){throw new Error("not implemented")}incrementTimestamp(){return this.timestamp++}onError(e){this.props.onError(e)}getCanvasContext(){return this.getDefaultCanvasContext()}readPixelsToArrayWebGL(e,t){throw new Error("not implemented")}readPixelsToBufferWebGL(e,t){throw new Error("not implemented")}setParametersWebGL(e){throw new Error("not implemented")}getParametersWebGL(e){throw new Error("not implemented")}withParametersWebGL(e,t){throw new Error("not implemented")}clearWebGL(e){throw new Error("not implemented")}resetWebGL(){throw new Error("not implemented")}_normalizeBufferProps(e){(e instanceof ArrayBuffer||ArrayBuffer.isView(e))&&(e={data:e});let t={...e};return(e.usage||0)&h.INDEX&&!e.indexType&&(e.data instanceof Uint32Array?t.indexType="uint32":e.data instanceof Uint16Array?t.indexType="uint16":l.warn("indices buffer content must be of type uint16 or uint32")()),t}},_=Me;a(_,"defaultProps",{id:null,powerPreference:"high-performance",failIfMajorPerformanceCaveat:!1,createCanvasContext:void 0,webgl:{},onError:e=>l.error(e.message)(),onResize:(e,t)=>{let[n,i]=e.getPixelSize(),[s,o]=t.oldPixelSize;l.log(1,`${e} Resized ${s}x${o} => ${n}x${i}px`)()},onVisibilityChange:e=>l.log(1,`${e} Visibility changed ${e.isVisible}`)(),onDevicePixelRatioChange:(e,t)=>l.log(1,`${e} DPR changed ${t.oldRatio} => ${e.devicePixelRatio}`)(),debug:l.get("debug")||void 0,debugShaders:l.get("debug-shaders")||void 0,debugFramebuffers:Boolean(l.get("debug-framebuffers")),debugFactories:Boolean(l.get("debug-factories")),debugWebGL:Boolean(l.get("debug-webgl")),debugSpectorJS:void 0,debugSpectorJSUrl:void 0,_requestMaxLimits:!0,_cacheShaders:!1,_cachePipelines:!1,_cacheDestroyPolicy:"unused",_initializeFeatures:!0,_disabledFeatures:{"compilation-status-async-webgl":!0},_resourceDefaults:{},_handle:void 0});var qt=y()&&typeof document<"u",Kt=()=>qt&&document.readyState==="complete",Jt="set luma.log.level=1 (or higher) to trace rendering",ut="No matching device found. Ensure `@luma.gl/webgl` and/or `@luma.gl/webgpu` modules are imported.",D=class{stats=oe;log=l;VERSION="9.1.0-beta.3";spector;preregisteredAdapters=new Map;constructor(){if(globalThis.luma){if(globalThis.luma.VERSION!==this.VERSION)throw l.error(`Found luma.gl ${globalThis.luma.VERSION} while initialzing ${this.VERSION}`)(),l.error("'yarn why @luma.gl/core' can help identify the source of the conflict")(),new Error("luma.gl - multiple versions detected: see console log");l.error("This version of luma.gl has already been initialized")()}l.log(1,`${this.VERSION} - ${Jt}`)(),globalThis.luma=this}registerAdapters(e){for(let t of e)this.preregisteredAdapters.set(t.type,t)}getSupportedAdapters(e=[]){let t=this.getAdapterMap(e);return Array.from(t).map(([,n])=>n).filter(n=>n.isSupported?.()).map(n=>n.type)}getBestAvailableAdapter(e=[]){let t=this.getAdapterMap(e);return t.get("webgpu")?.isSupported?.()?"webgpu":t.get("webgl")?.isSupported?.()?"webgl":null}setDefaultDeviceProps(e){Object.assign(D.defaultProps,e)}async createDevice(e={}){e={...D.defaultProps,...e},e.waitForPageLoad&&await D.pageLoaded;let t=this.getAdapterMap(e.adapters),n=e.type||"";n==="best-available"&&(n=this.getBestAvailableAdapter(e.adapters)||n);let o=await(this.getAdapterMap(e.adapters)||t).get(n)?.create?.(e);if(o)return o;throw new Error(ut)}async attachDevice(e){let t=this.getAdapterMap(e.adapters),n="";e.handle instanceof WebGL2RenderingContext&&(n="webgl"),e.createCanvasContext&&await D.pageLoaded,e.handle===null&&(n="unknown");let s=await t.get(n)?.attach?.(null);if(s)return s;throw new Error(ut)}enforceWebGL2(e=!0,t=[]){let i=this.getAdapterMap(t).get("webgl");i||l.warn("enforceWebGL2: webgl adapter not found")(),i?.enforceWebGL2?.(e)}getAdapterMap(e=[]){let t=new Map(this.preregisteredAdapters);for(let n of e)t.set(n.type,n);return t}registerDevices(e){l.warn("luma.registerDevices() is deprecated, use luma.registerAdapters() instead");for(let t of e){let n=t.adapter;n&&this.preregisteredAdapters.set(n.type,n)}}},k=D;a(k,"defaultProps",{..._.defaultProps,type:"best-available",adapters:void 0,waitForPageLoad:!0}),a(k,"pageLoaded",Qt().then(()=>{l.probe(2,"DOM is loaded")()}));var lt=new k;function Qt(){return Kt()||typeof window>"u"?Promise.resolve():new Promise(r=>{window.addEventListener("load",()=>r())})}var be=class{};var De=class{id;props;canvas;htmlCanvas;offscreenCanvas;type;_initializedResolvers=ir();initialized;isInitialized=!1;isVisible=!0;devicePixelRatio;pixelWidth;pixelHeight;drawingBufferWidth;drawingBufferHeight;_resizeObserver;_intersectionObserver;_canvasSizeInfo={clientWidth:0,clientHeight:0,devicePixelRatio:1};toString(){return`${this[Symbol.toStringTag]}(${this.id})`}constructor(e){if(this.props={...De.defaultProps,...e},e=this.props,this.initialized=this._initializedResolvers.promise,y()?e.canvas?typeof e.canvas=="string"?this.canvas=tr(e.canvas):this.canvas=e.canvas:this.canvas=rr(e):this.canvas={width:e.width||1,height:e.height||1},this.canvas instanceof HTMLCanvasElement?(this.id=e.id||this.canvas.id,this.type="html-canvas",this.htmlCanvas=this.canvas):this.canvas instanceof OffscreenCanvas?(this.id=e.id||"offscreen-canvas",this.type="offscreen-canvas",this.offscreenCanvas=this.canvas):(this.id=e.id||"node-canvas-context",this.type="node"),this.pixelWidth=this.canvas.width,this.pixelHeight=this.canvas.height,this.drawingBufferWidth=this.canvas.width,this.drawingBufferHeight=this.canvas.height,this.devicePixelRatio=globalThis.devicePixelRatio||1,this.canvas instanceof HTMLCanvasElement){this._intersectionObserver=new IntersectionObserver(t=>this._handleIntersection(t)),this._intersectionObserver.observe(this.canvas),this._resizeObserver=new ResizeObserver(t=>this._handleResize(t));try{this._resizeObserver.observe(this.canvas,{box:"device-pixel-content-box"})}catch{this._resizeObserver.observe(this.canvas,{box:"content-box"})}setTimeout(()=>this._observeDevicePixelRatio(),0)}}getCSSSize(){return this.canvas instanceof HTMLCanvasElement?[this.canvas.clientWidth,this.canvas.clientHeight]:[this.pixelWidth,this.pixelHeight]}getPixelSize(){return[this.pixelWidth,this.pixelHeight]}getDrawingBufferSize(){return[this.drawingBufferWidth,this.drawingBufferHeight]}getMaxDrawingBufferSize(){let e=this.device.limits.maxTextureDimension2D;return[e,e]}setDrawingBufferSize(e,t){this.canvas.width=e,this.canvas.height=t,this.drawingBufferWidth=e,this.drawingBufferHeight=t}getAspect(){let[e,t]=this.getPixelSize();return e/t}getDevicePixelRatio(e){return typeof OffscreenCanvas<"u"&&this.canvas instanceof OffscreenCanvas||(e=e===void 0?this.props.useDevicePixels:e,!e||e<=0)?1:e===!0?typeof window<"u"&&window.devicePixelRatio||1:e}cssToDeviceRatio(){try{let[e]=this.getDrawingBufferSize(),{clientWidth:t}=this._canvasSizeInfo;return t?e/t:1}catch{return 1}}cssToDevicePixels(e,t=!0){let n=this.cssToDeviceRatio(),[i,s]=this.getDrawingBufferSize();return nr(e,n,i,s,t)}_setAutoCreatedCanvasId(e){this.htmlCanvas?.id==="lumagl-auto-created-canvas"&&(this.htmlCanvas.id=e)}_handleIntersection(e){let t=e.find(i=>i.target===this.canvas);if(!t)return;let n=t.isIntersecting;this.isVisible!==n&&(this.isVisible=n,this.device.props.onVisibilityChange(this))}_handleResize(e){let t=e.find(f=>f.target===this.canvas);if(!t)return;let n=t.devicePixelContentBoxSize?.[0].inlineSize||t.contentBoxSize[0].inlineSize*devicePixelRatio,i=t.devicePixelContentBoxSize?.[0].blockSize||t.contentBoxSize[0].blockSize*devicePixelRatio,s=this.getPixelSize(),[o,u]=this.getMaxDrawingBufferSize();this.pixelWidth=Math.max(1,Math.min(n,o)),this.pixelHeight=Math.max(1,Math.min(i,u)),this.props.autoResize&&(this.setDrawingBufferSize(this.pixelWidth,this.pixelHeight),this.updateSize(this.getDrawingBufferSize())),this._initializedResolvers.resolve(),this.isInitialized=!0,this.device.props.onResize(this,{oldPixelSize:s})}_observeDevicePixelRatio(){let e=this.devicePixelRatio;this.devicePixelRatio=window.devicePixelRatio,this.device.props.onDevicePixelRatioChange(this,{oldRatio:e}),matchMedia(`(resolution: ${this.devicePixelRatio}dppx)`).addEventListener("change",()=>this._observeDevicePixelRatio(),{once:!0})}_setDevicePixelRatio(e,t={}){if(!this.htmlCanvas)return;let n="width"in t?t.width:this.htmlCanvas.clientWidth,i="height"in t?t.height:this.htmlCanvas.clientHeight;(!n||!i)&&(l.log(1,"Canvas clientWidth/clientHeight is 0")(),e=1,n=this.htmlCanvas.width||1,i=this.htmlCanvas.height||1);let s=this._canvasSizeInfo;if(s.clientWidth!==n||s.clientHeight!==i||s.devicePixelRatio!==e){let o=e,u=Math.floor(n*o),f=Math.floor(i*o);if(this.htmlCanvas.width=u,this.htmlCanvas.height=f,this.device.gl){let[g,x]=this.getDrawingBufferSize();(g!==u||x!==f)&&(o=Math.min(g/n,x/i),this.htmlCanvas.width=Math.floor(n*o),this.htmlCanvas.height=Math.floor(i*o),l.warn("Device pixel ratio clamped")()),this._canvasSizeInfo.clientWidth=n,this._canvasSizeInfo.clientHeight=i,this._canvasSizeInfo.devicePixelRatio=e}}}},W=De;a(W,"defaultProps",{id:void 0,canvas:null,width:800,height:600,useDevicePixels:!0,autoResize:!0,container:null,visible:!0,alphaMode:"opaque",colorSpace:"srgb"});function er(r){if(typeof r=="string"){let e=document.getElementById(r);if(!e)throw new Error(`${r} is not an HTML element`);return e}return r||document.body}function tr(r){let e=document.getElementById(r);if(!(e instanceof HTMLCanvasElement))throw new Error("Object is not a canvas element");return e}function rr(r){let{width:e,height:t}=r,n=document.createElement("canvas");n.id=v("lumagl-auto-created-canvas"),n.width=e||1,n.height=t||1,n.style.width=Number.isFinite(e)?`${e}px`:"100%",n.style.height=Number.isFinite(t)?`${t}px`:"100%",r?.visible||(n.style.visibility="hidden");let i=er(r?.container||null);return i.insertBefore(n,i.firstChild),n}function nr(r,e,t,n,i){let s=r,o=ft(s[0],e,t),u=dt(s[1],e,n,i),f=ft(s[0]+1,e,t),b=f===t-1?f:f-1;f=dt(s[1]+1,e,n,i);let g;return i?(f=f===0?f:f+1,g=u,u=f):g=f===n-1?f:f-1,{x:o,y:u,width:Math.max(b-o+1,1),height:Math.max(g-u+1,1)}}function ft(r,e,t){return Math.min(Math.round(r*e),t-1)}function dt(r,e,t,n){return n?Math.max(0,t-1-Math.round(r*e)):Math.min(Math.round(r*e),t-1)}function ir(){let r,e;return{promise:new Promise((n,i)=>{r=n,e=i}),resolve:r,reject:e}}var S=class extends c{get[Symbol.toStringTag](){return"Texture"}toString(){return`Texture(${this.id},${this.format},${this.width}x${this.height})`}dimension;format;width;height;depth;mipLevels;updateTimestamp;constructor(e,t){if(t=S.normalizeProps(e,t),super(e,t,S.defaultProps),this.dimension=this.props.dimension,this.format=this.props.format,this.width=this.props.width,this.height=this.props.height,this.depth=this.props.depth,this.props.width===void 0||this.props.height===void 0){let n=S.getTextureDataSize(this.props.data);this.width=n?.width||1,this.height=n?.height||1}this.props.mipmaps&&this.props.mipLevels===void 0&&(this.props.mipLevels="pyramid"),this.mipLevels=this.props.mipLevels==="pyramid"?S.getMipLevelCount(this.width,this.height):this.props.mipLevels||1,this.updateTimestamp=e.incrementTimestamp()}clone(e){return this.device.createTexture({...this.props,...e})}static isExternalImage(e){return typeof ImageData<"u"&&e instanceof ImageData||typeof ImageBitmap<"u"&&e instanceof ImageBitmap||typeof HTMLImageElement<"u"&&e instanceof HTMLImageElement||typeof HTMLVideoElement<"u"&&e instanceof HTMLVideoElement||typeof VideoFrame<"u"&&e instanceof VideoFrame||typeof HTMLCanvasElement<"u"&&e instanceof HTMLCanvasElement||typeof OffscreenCanvas<"u"&&e instanceof OffscreenCanvas}static getExternalImageSize(e){if(typeof ImageData<"u"&&e instanceof ImageData||typeof ImageBitmap<"u"&&e instanceof ImageBitmap||typeof HTMLCanvasElement<"u"&&e instanceof HTMLCanvasElement||typeof OffscreenCanvas<"u"&&e instanceof OffscreenCanvas)return{width:e.width,height:e.height};if(typeof HTMLImageElement<"u"&&e instanceof HTMLImageElement)return{width:e.naturalWidth,height:e.naturalHeight};if(typeof HTMLVideoElement<"u"&&e instanceof HTMLVideoElement)return{width:e.videoWidth,height:e.videoHeight};if(typeof VideoFrame<"u"&&e instanceof VideoFrame)return{width:e.displayWidth,height:e.displayHeight};throw new Error("Unknown image type")}static isTextureLevelData(e){let t=e?.data;return ArrayBuffer.isView(t)}static getTextureDataSize(e){if(!e||ArrayBuffer.isView(e))return null;if(Array.isArray(e))return S.getTextureDataSize(e[0]);if(S.isExternalImage(e))return S.getExternalImageSize(e);if(e&&typeof e=="object"&&e.constructor===Object){let n=Object.values(e)[0];return{width:n.width,height:n.height}}throw new Error("texture size deduction failed")}static normalizeTextureData(e,t){let n;return ArrayBuffer.isView(e)?n=[{data:e,width:t.width,height:t.height}]:Array.isArray(e)?n=e:n=[e],n}static getMipLevelCount(e,t){return Math.floor(Math.log2(Math.max(e,t)))+1}static getCubeFaceDepth(e){switch(e){case"+X":return 0;case"-X":return 1;case"+Y":return 2;case"-Y":return 3;case"+Z":return 4;case"-Z":return 5;default:throw new Error(e)}}static normalizeProps(e,t){let n={...t},i=e?.props?._resourceDefaults?.texture||{};Object.assign(n,i);let{width:s,height:o}=n;return typeof s=="number"&&(n.width=Math.max(1,Math.ceil(s))),typeof o=="number"&&(n.height=Math.max(1,Math.ceil(o))),n}},m=S;a(m,"COPY_SRC",1),a(m,"COPY_DST",2),a(m,"TEXTURE",4),a(m,"STORAGE",8),a(m,"RENDER_ATTACHMENT",16),a(m,"CubeFaces",["+X","-X","+Y","-Y","+Z","-Z"]),a(m,"defaultProps",{...c.defaultProps,data:null,dimension:"2d",format:"rgba8unorm",width:void 0,height:void 0,depth:1,mipmaps:!1,compressed:!1,usage:0,mipLevels:void 0,samples:void 0,sampler:{},view:void 0,flipY:void 0}),a(m,"defaultCopyExternalImageOptions",{image:void 0,sourceX:0,sourceY:0,width:void 0,height:void 0,depth:1,mipLevel:0,x:0,y:0,z:0,aspect:"all",colorSpace:"srgb",premultipliedAlpha:!1,flipY:!1});var Ie=class extends c{get[Symbol.toStringTag](){return"TextureView"}constructor(e,t){super(e,t,Ie.defaultProps)}},G=Ie;a(G,"defaultProps",{...c.defaultProps,format:void 0,dimension:void 0,aspect:"all",baseMipLevel:0,mipLevelCount:void 0,baseArrayLayer:0,arrayLayerCount:void 0});var Fe=class extends c{get[Symbol.toStringTag](){return"ExternalTexture"}constructor(e,t){super(e,t,Fe.defaultProps)}},V=Fe;a(V,"defaultProps",{...c.defaultProps,source:void 0,colorSpace:"srgb"});function mt(r,e,t){let n="",i=e.split(/\r?\n/),s=r.slice().sort((o,u)=>o.lineNum-u.lineNum);switch(t?.showSourceCode||"no"){case"all":let o=0;for(let u=1;u<=i.length;u++)for(n+=pt(i[u-1],u,t);s.length>o&&s[o].lineNum===u;){let f=s[o++];n+=ht(f,i,f.lineNum,{...t,inlineSource:!1})}return n;case"issues":case"no":for(let u of r)n+=ht(u,i,u.lineNum,{inlineSource:t?.showSourceCode!=="no"});return n}}function ht(r,e,t,n){if(n?.inlineSource){let s=sr(e,t),o=r.linePos>0?`${" ".repeat(r.linePos+5)}^^^ | ||
`:"";return` | ||
@@ -10,0 +10,0 @@ ${s}${o}${r.type.toUpperCase()}: ${r.message} |
{ | ||
"name": "@luma.gl/core", | ||
"version": "9.1.0-beta.1", | ||
"version": "9.1.0-beta.3", | ||
"description": "The luma.gl core Device API", | ||
@@ -49,3 +49,3 @@ "license": "MIT", | ||
}, | ||
"gitHead": "e04bfb138f96d690992f0e0a67b358cbe23bd59f" | ||
"gitHead": "b673476aa69ceb25c4fb605fb2e9dba6ddd20b37" | ||
} |
Sorry, the diff of this file is not supported yet
License Policy Violation
LicenseThis package is not allowed per your license policy. Review the package's license to ensure compliance.
Found 1 instance in 1 package
License Policy Violation
LicenseThis package is not allowed per your license policy. Review the package's license to ensure compliance.
Found 1 instance in 1 package