@luma.gl/webgpu 9.0.0-alpha.40 → 9.0.0-alpha.41

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.
@@ -1 +1 @@
1
- {"version":3,"file":"webgpu-buffer.d.ts","sourceRoot":"","sources":["../../../src/adapter/resources/webgpu-buffer.ts"],"names":[],"mappings":";AACA,OAAO,EAAC,MAAM,EAAE,WAAW,EAAC,MAAM,eAAe,CAAC;AAClD,OAAO,KAAK,EAAC,YAAY,EAAC,MAAM,kBAAkB,CAAC;AAMnD,qBAAa,YAAa,SAAQ,MAAM;IACtC,QAAQ,CAAC,MAAM,EAAE,YAAY,CAAC;IAC9B,QAAQ,CAAC,MAAM,EAAE,SAAS,CAAC;IAC3B,QAAQ,CAAC,UAAU,EAAE,MAAM,CAAC;gBAEhB,MAAM,EAAE,YAAY,EAAE,KAAK,EAAE,WAAW;IAyB3C,OAAO,IAAI,IAAI;IAKf,KAAK,CAAC,IAAI,EAAE,eAAe,EAAE,UAAU,SAAI;IAUrC,SAAS,CAAC,UAAU,GAAE,MAAU,EAAE,UAAU,GAAE,MAAwB,GAAG,OAAO,CAAC,WAAW,CAAC;IAmB5G,YAAY,CAAC,UAAU,EAAE,UAAU,EAAE,UAAU,GAAG,IAAI;IAQtD,QAAQ,CAAC,IAAI,EAAE,MAAM,EAAE,MAAM,GAAE,MAAU,EAAE,IAAI,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAIxE,cAAc,CAAC,MAAM,GAAE,MAAU,EAAE,IAAI,CAAC,EAAE,MAAM,GAAG,WAAW;IAI9D,KAAK,IAAI,IAAI;CAGd"}
1
+ {"version":3,"file":"webgpu-buffer.d.ts","sourceRoot":"","sources":["../../../src/adapter/resources/webgpu-buffer.ts"],"names":[],"mappings":";AACA,OAAO,EAAC,MAAM,EAAE,WAAW,EAAC,MAAM,eAAe,CAAC;AAClD,OAAO,KAAK,EAAC,YAAY,EAAC,MAAM,kBAAkB,CAAC;AAMnD,qBAAa,YAAa,SAAQ,MAAM;IACtC,QAAQ,CAAC,MAAM,EAAE,YAAY,CAAC;IAC9B,QAAQ,CAAC,MAAM,EAAE,SAAS,CAAC;IAC3B,QAAQ,CAAC,UAAU,EAAE,MAAM,CAAC;gBAEhB,MAAM,EAAE,YAAY,EAAE,KAAK,EAAE,WAAW;IA4B3C,OAAO,IAAI,IAAI;IAKf,KAAK,CAAC,IAAI,EAAE,eAAe,EAAE,UAAU,SAAI;IAUrC,SAAS,CAAC,UAAU,GAAE,MAAU,EAAE,UAAU,GAAE,MAAwB,GAAG,OAAO,CAAC,WAAW,CAAC;IAmB5G,YAAY,CAAC,UAAU,EAAE,UAAU,EAAE,UAAU,GAAG,IAAI;IAQtD,QAAQ,CAAC,IAAI,EAAE,MAAM,EAAE,MAAM,GAAE,MAAU,EAAE,IAAI,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAIxE,cAAc,CAAC,MAAM,GAAE,MAAU,EAAE,IAAI,CAAC,EAAE,MAAM,GAAG,WAAW;IAI9D,KAAK,IAAI,IAAI;CAGd"}
@@ -12,8 +12,9 @@ export class WebGPUBuffer extends Buffer {
12
12
  this.device = device;
13
13
  this.byteLength = getByteLength(props);
14
14
  const mapBuffer = Boolean(props.data);
15
+ const size = Math.ceil(this.byteLength / 4) * 4;
15
16
  this.handle = this.props.handle || this.device.handle.createBuffer({
16
- size: this.byteLength,
17
+ size,
17
18
  usage: this.props.usage || GPUBufferUsage.VERTEX | GPUBufferUsage.COPY_DST,
18
19
  mappedAtCreation: this.props.mappedAtCreation || mapBuffer,
19
20
  label: this.props.id
@@ -1 +1 @@
1
- {"version":3,"file":"webgpu-buffer.js","names":["Buffer","getByteLength","props","_props$data","byteLength","data","WebGPUBuffer","constructor","device","handle","mapBuffer","Boolean","createBuffer","size","usage","GPUBufferUsage","VERTEX","COPY_DST","mappedAtCreation","label","id","_writeMapped","unmap","destroy","write","byteOffset","arguments","length","undefined","queue","writeBuffer","buffer","readAsync","tempBuffer","MAP_READ","commandEncoder","createCommandEncoder","copyBufferToBuffer","submit","finish","mapAsync","GPUMapMode","READ","arrayBuffer","getMappedRange","slice","typedArray","set","mode","offset"],"sources":["../../../src/adapter/resources/webgpu-buffer.ts"],"sourcesContent":["// WEBGPU Buffer implementation\nimport {Buffer, BufferProps} from '@luma.gl/core';\nimport type {WebGPUDevice} from '../webgpu-device';\n\nfunction getByteLength(props: BufferProps): number {\n return props.byteLength || props.data?.byteLength || 0;\n}\n\nexport class WebGPUBuffer extends Buffer {\n readonly device: WebGPUDevice;\n readonly handle: GPUBuffer;\n readonly byteLength: number;\n\n constructor(device: WebGPUDevice, props: BufferProps) {\n super(device, props);\n this.device = device;\n\n this.byteLength = getByteLength(props);\n const mapBuffer = Boolean(props.data);\n\n this.handle = this.props.handle || this.device.handle.createBuffer({\n size: this.byteLength,\n // usage defaults to vertex\n usage: this.props.usage || (GPUBufferUsage.VERTEX | GPUBufferUsage.COPY_DST),\n mappedAtCreation: this.props.mappedAtCreation || mapBuffer,\n label: this.props.id\n });\n\n if (props.data) {\n this._writeMapped(props.data);\n // this.handle.writeAsync({data: props.data, map: false, unmap: false});\n }\n\n if (mapBuffer && !props.mappedAtCreation) {\n this.handle.unmap();\n }\n }\n\n override destroy(): void {\n this.handle.destroy();\n }\n\n // WebGPU provides multiple ways to write a buffer...\n override write(data: ArrayBufferView, byteOffset = 0) {\n this.device.handle.queue.writeBuffer(\n this.handle,\n byteOffset,\n data.buffer,\n data.byteOffset,\n data.byteLength\n );\n }\n\n override async readAsync(byteOffset: number = 0, byteLength: number = this.byteLength): Promise<ArrayBuffer> {\n // We need MAP_READ flag, but only COPY_DST buffers can have MAP_READ flag, so we need to create a temp buffer\n const tempBuffer = new WebGPUBuffer(this.device, {usage: Buffer.MAP_READ | Buffer.COPY_DST, byteLength});\n\n // Now do a GPU-side copy into the temp buffer we can actually read.\n // TODO - we are spinning up an independent command queue here, what does this mean\n const commandEncoder = this.device.handle.createCommandEncoder();\n commandEncoder.copyBufferToBuffer(this.handle, byteOffset, tempBuffer.handle, 0, byteLength);\n this.device.handle.queue.submit([commandEncoder.finish()]);\n\n // Map the temp buffer and read the data.\n await tempBuffer.handle.mapAsync(GPUMapMode.READ, byteOffset, byteLength);\n const arrayBuffer = tempBuffer.handle.getMappedRange().slice(0);\n tempBuffer.handle.unmap();\n tempBuffer.destroy();\n\n return arrayBuffer;\n }\n\n _writeMapped<TypedArray>(typedArray: TypedArray): void {\n const arrayBuffer = this.handle.getMappedRange();\n // @ts-expect-error\n new typedArray.constructor(arrayBuffer).set(typedArray);\n }\n\n // WEBGPU API\n\n mapAsync(mode: number, offset: number = 0, size?: number): Promise<void> {\n return this.handle.mapAsync(mode, offset, size);\n }\n\n getMappedRange(offset: number = 0, size?: number): ArrayBuffer {\n return this.handle.getMappedRange(offset, size);\n }\n\n unmap(): void {\n this.handle.unmap();\n }\n}\n"],"mappings":"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"}
1
+ {"version":3,"file":"webgpu-buffer.js","names":["Buffer","getByteLength","props","_props$data","byteLength","data","WebGPUBuffer","constructor","device","handle","mapBuffer","Boolean","size","Math","ceil","createBuffer","usage","GPUBufferUsage","VERTEX","COPY_DST","mappedAtCreation","label","id","_writeMapped","unmap","destroy","write","byteOffset","arguments","length","undefined","queue","writeBuffer","buffer","readAsync","tempBuffer","MAP_READ","commandEncoder","createCommandEncoder","copyBufferToBuffer","submit","finish","mapAsync","GPUMapMode","READ","arrayBuffer","getMappedRange","slice","typedArray","set","mode","offset"],"sources":["../../../src/adapter/resources/webgpu-buffer.ts"],"sourcesContent":["// WEBGPU Buffer implementation\nimport {Buffer, BufferProps} from '@luma.gl/core';\nimport type {WebGPUDevice} from '../webgpu-device';\n\nfunction getByteLength(props: BufferProps): number {\n return props.byteLength || props.data?.byteLength || 0;\n}\n\nexport class WebGPUBuffer extends Buffer {\n readonly device: WebGPUDevice;\n readonly handle: GPUBuffer;\n readonly byteLength: number;\n\n constructor(device: WebGPUDevice, props: BufferProps) {\n super(device, props);\n this.device = device;\n\n this.byteLength = getByteLength(props);\n const mapBuffer = Boolean(props.data);\n\n // WebGPU buffers must be aligned to 4 bytes\n const size = Math.ceil(this.byteLength / 4) * 4;\n\n this.handle = this.props.handle || this.device.handle.createBuffer({\n size,\n // usage defaults to vertex\n usage: this.props.usage || (GPUBufferUsage.VERTEX | GPUBufferUsage.COPY_DST),\n mappedAtCreation: this.props.mappedAtCreation || mapBuffer,\n label: this.props.id\n });\n\n if (props.data) {\n this._writeMapped(props.data);\n // this.handle.writeAsync({data: props.data, map: false, unmap: false});\n }\n\n if (mapBuffer && !props.mappedAtCreation) {\n this.handle.unmap();\n }\n }\n\n override destroy(): void {\n this.handle.destroy();\n }\n\n // WebGPU provides multiple ways to write a buffer...\n override write(data: ArrayBufferView, byteOffset = 0) {\n this.device.handle.queue.writeBuffer(\n this.handle,\n byteOffset,\n data.buffer,\n data.byteOffset,\n data.byteLength\n );\n }\n\n override async readAsync(byteOffset: number = 0, byteLength: number = this.byteLength): Promise<ArrayBuffer> {\n // We need MAP_READ flag, but only COPY_DST buffers can have MAP_READ flag, so we need to create a temp buffer\n const tempBuffer = new WebGPUBuffer(this.device, {usage: Buffer.MAP_READ | Buffer.COPY_DST, byteLength});\n\n // Now do a GPU-side copy into the temp buffer we can actually read.\n // TODO - we are spinning up an independent command queue here, what does this mean\n const commandEncoder = this.device.handle.createCommandEncoder();\n commandEncoder.copyBufferToBuffer(this.handle, byteOffset, tempBuffer.handle, 0, byteLength);\n this.device.handle.queue.submit([commandEncoder.finish()]);\n\n // Map the temp buffer and read the data.\n await tempBuffer.handle.mapAsync(GPUMapMode.READ, byteOffset, byteLength);\n const arrayBuffer = tempBuffer.handle.getMappedRange().slice(0);\n tempBuffer.handle.unmap();\n tempBuffer.destroy();\n\n return arrayBuffer;\n }\n\n _writeMapped<TypedArray>(typedArray: TypedArray): void {\n const arrayBuffer = this.handle.getMappedRange();\n // @ts-expect-error\n new typedArray.constructor(arrayBuffer).set(typedArray);\n }\n\n // WEBGPU API\n\n mapAsync(mode: number, offset: number = 0, size?: number): Promise<void> {\n return this.handle.mapAsync(mode, offset, size);\n }\n\n getMappedRange(offset: number = 0, size?: number): ArrayBuffer {\n return this.handle.getMappedRange(offset, size);\n }\n\n unmap(): void {\n this.handle.unmap();\n }\n}\n"],"mappings":"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"}
package/dist/dist.dev.js CHANGED
@@ -2209,8 +2209,9 @@ var __exports__ = (() => {
2209
2209
  this.device = device;
2210
2210
  this.byteLength = getByteLength(props);
2211
2211
  const mapBuffer = Boolean(props.data);
2212
+ const size = Math.ceil(this.byteLength / 4) * 4;
2212
2213
  this.handle = this.props.handle || this.device.handle.createBuffer({
2213
- size: this.byteLength,
2214
+ size,
2214
2215
  // usage defaults to vertex
2215
2216
  usage: this.props.usage || GPUBufferUsage.VERTEX | GPUBufferUsage.COPY_DST,
2216
2217
  mappedAtCreation: this.props.mappedAtCreation || mapBuffer,
package/dist/index.cjs CHANGED
@@ -79,8 +79,9 @@ var WebGPUBuffer = class extends import_core.Buffer {
79
79
  this.device = device;
80
80
  this.byteLength = getByteLength(props);
81
81
  const mapBuffer = Boolean(props.data);
82
+ const size = Math.ceil(this.byteLength / 4) * 4;
82
83
  this.handle = this.props.handle || this.device.handle.createBuffer({
83
- size: this.byteLength,
84
+ size,
84
85
  // usage defaults to vertex
85
86
  usage: this.props.usage || GPUBufferUsage.VERTEX | GPUBufferUsage.COPY_DST,
86
87
  mappedAtCreation: this.props.mappedAtCreation || mapBuffer,
package/dist.min.js CHANGED
@@ -7,7 +7,7 @@
7
7
  var __exports__=(()=>{var Vr=Object.create;var Re=Object.defineProperty;var zr=Object.getOwnPropertyDescriptor;var Hr=Object.getOwnPropertyNames;var $r=Object.getPrototypeOf,Yr=Object.prototype.hasOwnProperty;var Qe=(t,n)=>()=>(n||t((n={exports:{}}).exports,n),n.exports),Kr=(t,n)=>{for(var e in n)Re(t,e,{get:n[e],enumerable:!0})},mt=(t,n,e,r)=>{if(n&&typeof n=="object"||typeof n=="function")for(let i of Hr(n))!Yr.call(t,i)&&i!==e&&Re(t,i,{get:()=>n[i],enumerable:!(r=zr(n,i))||r.enumerable});return t};var et=(t,n,e)=>(e=t!=null?Vr($r(t)):{},mt(n||!t||!t.__esModule?Re(e,"default",{value:t,enumerable:!0}):e,t)),qr=t=>mt(Re({},"__esModule",{value:!0}),t);var yt=Qe((si,K)=>{function rt(t){return K.exports=rt=typeof Symbol=="function"&&typeof Symbol.iterator=="symbol"?function(n){return typeof n}:function(n){return n&&typeof Symbol=="function"&&n.constructor===Symbol&&n!==Symbol.prototype?"symbol":typeof n},K.exports.__esModule=!0,K.exports.default=K.exports,rt(t)}K.exports=rt,K.exports.__esModule=!0,K.exports.default=K.exports});var wt=Qe((ui,q)=>{var bt=yt().default;function _t(){"use strict";q.exports=_t=function(){return t},q.exports.__esModule=!0,q.exports.default=q.exports;var t={},n=Object.prototype,e=n.hasOwnProperty,r=Object.defineProperty||function(p,f,l){p[f]=l.value},i=typeof Symbol=="function"?Symbol:{},o=i.iterator||"@@iterator",a=i.asyncIterator||"@@asyncIterator",s=i.toStringTag||"@@toStringTag";function u(p,f,l){return Object.defineProperty(p,f,{value:l,enumerable:!0,configurable:!0,writable:!0}),p[f]}try{u({},"")}catch{u=function(l,y,P){return l[y]=P}}function c(p,f,l,y){var P=f&&f.prototype instanceof O?f:O,S=Object.create(P.prototype),E=new $(y||[]);return r(S,"_invoke",{value:Q(p,l,E)}),S}function v(p,f,l){try{return{type:"normal",arg:p.call(f,l)}}catch(y){return{type:"throw",arg:y}}}t.wrap=c;var h={};function O(){}function w(){}function T(){}var k={};u(k,o,function(){return this});var z=Object.getPrototypeOf,I=z&&z(z(re([])));I&&I!==n&&e.call(I,o)&&(k=I);var M=T.prototype=O.prototype=Object.create(k);function F(p){["next","throw","return"].forEach(function(f){u(p,f,function(l){return this._invoke(f,l)})})}function G(p,f){function l(P,S,E,D){var N=v(p[P],p,S);if(N.type!=="throw"){var ne=N.arg,X=ne.value;return X&&bt(X)=="object"&&e.call(X,"__await")?f.resolve(X.__await).then(function(oe){l("next",oe,E,D)},function(oe){l("throw",oe,E,D)}):f.resolve(X).then(function(oe){ne.value=oe,E(ne)},function(oe){return l("throw",oe,E,D)})}D(N.arg)}var y;r(this,"_invoke",{value:function(S,E){function D(){return new f(function(N,ne){l(S,E,N,ne)})}return y=y?y.then(D,D):D()}})}function Q(p,f,l){var y="suspendedStart";return function(P,S){if(y==="executing")throw new Error("Generator is already running");if(y==="completed"){if(P==="throw")throw S;return{value:void 0,done:!0}}for(l.method=P,l.arg=S;;){var E=l.delegate;if(E){var D=ce(E,l);if(D){if(D===h)continue;return D}}if(l.method==="next")l.sent=l._sent=l.arg;else if(l.method==="throw"){if(y==="suspendedStart")throw y="completed",l.arg;l.dispatchException(l.arg)}else l.method==="return"&&l.abrupt("return",l.arg);y="executing";var N=v(p,f,l);if(N.type==="normal"){if(y=l.done?"completed":"suspendedYield",N.arg===h)continue;return{value:N.arg,done:l.done}}N.type==="throw"&&(y="completed",l.method="throw",l.arg=N.arg)}}}function ce(p,f){var l=f.method,y=p.iterator[l];if(y===void 0)return f.delegate=null,l==="throw"&&p.iterator.return&&(f.method="return",f.arg=void 0,ce(p,f),f.method==="throw")||l!=="return"&&(f.method="throw",f.arg=new TypeError("The iterator does not provide a '"+l+"' method")),h;var P=v(y,p.iterator,f.arg);if(P.type==="throw")return f.method="throw",f.arg=P.arg,f.delegate=null,h;var S=P.arg;return S?S.done?(f[p.resultName]=S.value,f.next=p.nextLoc,f.method!=="return"&&(f.method="next",f.arg=void 0),f.delegate=null,h):S:(f.method="throw",f.arg=new TypeError("iterator result is not an object"),f.delegate=null,h)}function ee(p){var f={tryLoc:p[0]};1 in p&&(f.catchLoc=p[1]),2 in p&&(f.finallyLoc=p[2],f.afterLoc=p[3]),this.tryEntries.push(f)}function te(p){var f=p.completion||{};f.type="normal",delete f.arg,p.completion=f}function $(p){this.tryEntries=[{tryLoc:"root"}],p.forEach(ee,this),this.reset(!0)}function re(p){if(p||p===""){var f=p[o];if(f)return f.call(p);if(typeof p.next=="function")return p;if(!isNaN(p.length)){var l=-1,y=function P(){for(;++l<p.length;)if(e.call(p,l))return P.value=p[l],P.done=!1,P;return P.value=void 0,P.done=!0,P};return y.next=y}}throw new TypeError(bt(p)+" is not iterable")}return w.prototype=T,r(M,"constructor",{value:T,configurable:!0}),r(T,"constructor",{value:w,configurable:!0}),w.displayName=u(T,s,"GeneratorFunction"),t.isGeneratorFunction=function(p){var f=typeof p=="function"&&p.constructor;return!!f&&(f===w||(f.displayName||f.name)==="GeneratorFunction")},t.mark=function(p){return Object.setPrototypeOf?Object.setPrototypeOf(p,T):(p.__proto__=T,u(p,s,"GeneratorFunction")),p.prototype=Object.create(M),p},t.awrap=function(p){return{__await:p}},F(G.prototype),u(G.prototype,a,function(){return this}),t.AsyncIterator=G,t.async=function(p,f,l,y,P){P===void 0&&(P=Promise);var S=new G(c(p,f,l,y),P);return t.isGeneratorFunction(f)?S:S.next().then(function(E){return E.done?E.value:S.next()})},F(M),u(M,s,"Generator"),u(M,o,function(){return this}),u(M,"toString",function(){return"[object Generator]"}),t.keys=function(p){var f=Object(p),l=[];for(var y in f)l.push(y);return l.reverse(),function P(){for(;l.length;){var S=l.pop();if(S in f)return P.value=S,P.done=!1,P}return P.done=!0,P}},t.values=re,$.prototype={constructor:$,reset:function(f){if(this.prev=0,this.next=0,this.sent=this._sent=void 0,this.done=!1,this.delegate=null,this.method="next",this.arg=void 0,this.tryEntries.forEach(te),!f)for(var l in this)l.charAt(0)==="t"&&e.call(this,l)&&!isNaN(+l.slice(1))&&(this[l]=void 0)},stop:function(){this.done=!0;var f=this.tryEntries[0].completion;if(f.type==="throw")throw f.arg;return this.rval},dispatchException:function(f){if(this.done)throw f;var l=this;function y(ne,X){return E.type="throw",E.arg=f,l.next=ne,X&&(l.method="next",l.arg=void 0),!!X}for(var P=this.tryEntries.length-1;P>=0;--P){var S=this.tryEntries[P],E=S.completion;if(S.tryLoc==="root")return y("end");if(S.tryLoc<=this.prev){var D=e.call(S,"catchLoc"),N=e.call(S,"finallyLoc");if(D&&N){if(this.prev<S.catchLoc)return y(S.catchLoc,!0);if(this.prev<S.finallyLoc)return y(S.finallyLoc)}else if(D){if(this.prev<S.catchLoc)return y(S.catchLoc,!0)}else{if(!N)throw new Error("try statement without catch or finally");if(this.prev<S.finallyLoc)return y(S.finallyLoc)}}}},abrupt:function(f,l){for(var y=this.tryEntries.length-1;y>=0;--y){var P=this.tryEntries[y];if(P.tryLoc<=this.prev&&e.call(P,"finallyLoc")&&this.prev<P.finallyLoc){var S=P;break}}S&&(f==="break"||f==="continue")&&S.tryLoc<=l&&l<=S.finallyLoc&&(S=null);var E=S?S.completion:{};return E.type=f,E.arg=l,S?(this.method="next",this.next=S.finallyLoc,h):this.complete(E)},complete:function(f,l){if(f.type==="throw")throw f.arg;return f.type==="break"||f.type==="continue"?this.next=f.arg:f.type==="return"?(this.rval=this.arg=f.arg,this.method="return",this.next="end"):f.type==="normal"&&l&&(this.next=l),h},finish:function(f){for(var l=this.tryEntries.length-1;l>=0;--l){var y=this.tryEntries[l];if(y.finallyLoc===f)return this.complete(y.completion,y.afterLoc),te(y),h}},catch:function(f){for(var l=this.tryEntries.length-1;l>=0;--l){var y=this.tryEntries[l];if(y.tryLoc===f){var P=y.completion;if(P.type==="throw"){var S=P.arg;te(y)}return S}}throw new Error("illegal catch attempt")},delegateYield:function(f,l,y){return this.delegate={iterator:re(f),resultName:l,nextLoc:y},this.method==="next"&&(this.arg=void 0),h}},t}q.exports=_t,q.exports.__esModule=!0,q.exports.default=q.exports});var Ee=Qe((ci,St)=>{var Te=wt()();St.exports=Te;try{regeneratorRuntime=Te}catch{typeof globalThis=="object"?globalThis.regeneratorRuntime=Te:Function("r","regeneratorRuntime = r")(Te)}});var ko={};Kr(ko,{WebGPUBuffer:()=>qe,WebGPUDevice:()=>ht,WebGPUSampler:()=>W,WebGPUShader:()=>Je,WebGPUTexture:()=>Xe});function H(t){return H=typeof Symbol=="function"&&typeof Symbol.iterator=="symbol"?function(n){return typeof n}:function(n){return n&&typeof Symbol=="function"&&n.constructor===Symbol&&n!==Symbol.prototype?"symbol":typeof n},H(t)}function tt(t,n){if(H(t)!=="object"||t===null)return t;var e=t[Symbol.toPrimitive];if(e!==void 0){var r=e.call(t,n||"default");if(H(r)!=="object")return r;throw new TypeError("@@toPrimitive must return a primitive value.")}return(n==="string"?String:Number)(t)}function be(t){var n=tt(t,"string");return H(n)==="symbol"?n:String(n)}function C(t,n,e){return n=be(n),n in t?Object.defineProperty(t,n,{value:e,enumerable:!0,configurable:!0,writable:!0}):t[n]=e,t}function gt(t,n,e,r,i,o,a){try{var s=t[o](a),u=s.value}catch(c){e(c);return}s.done?n(u):Promise.resolve(u).then(r,i)}function Y(t){return function(){var n=this,e=arguments;return new Promise(function(r,i){var o=t.apply(n,e);function a(u){gt(o,r,i,a,s,"next",u)}function s(u){gt(o,r,i,a,s,"throw",u)}a(void 0)})}}function m(t,n){if(!(t instanceof n))throw new TypeError("Cannot call a class as a function")}function vt(t,n){for(var e=0;e<n.length;e++){var r=n[e];r.enumerable=r.enumerable||!1,r.configurable=!0,"value"in r&&(r.writable=!0),Object.defineProperty(t,be(r.key),r)}}function g(t,n,e){return n&&vt(t.prototype,n),e&&vt(t,e),Object.defineProperty(t,"prototype",{writable:!1}),t}function _e(t){if(t===void 0)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return t}function we(t,n){return we=Object.setPrototypeOf?Object.setPrototypeOf.bind():function(r,i){return r.__proto__=i,r},we(t,n)}function b(t,n){if(typeof n!="function"&&n!==null)throw new TypeError("Super expression must either be null or a function");t.prototype=Object.create(n&&n.prototype,{constructor:{value:t,writable:!0,configurable:!0}}),Object.defineProperty(t,"prototype",{writable:!1}),n&&we(t,n)}function _(t,n){if(n&&(H(n)==="object"||typeof n=="function"))return n;if(n!==void 0)throw new TypeError("Derived constructors may only return object or undefined");return _e(t)}function d(t){return d=Object.setPrototypeOf?Object.getPrototypeOf.bind():function(e){return e.__proto__||Object.getPrototypeOf(e)},d(t)}var Ce=et(Ee(),1);function Se(t){if(typeof window<"u"&&typeof window.process=="object"&&window.process.type==="renderer"||typeof process<"u"&&typeof process.versions=="object"&&Boolean(process.versions.electron))return!0;let n=typeof navigator=="object"&&typeof navigator.userAgent=="string"&&navigator.userAgent,e=t||n;return!!(e&&e.indexOf("Electron")>=0)}function j(){return!(typeof process=="object"&&String(process)==="[object process]"&&!process.browser)||Se()}var Xr=globalThis.self||globalThis.window||globalThis.global,fe=globalThis.window||globalThis.self||globalThis.global,Jr=globalThis.document||{},ie=globalThis.process||{},Zr=globalThis.console,Pt=globalThis.navigator||{};var Ae=typeof __VERSION__<"u"?__VERSION__:"untranspiled source",mi=j();var nt=globalThis;function Be(t){if(!t&&!j())return"Node";if(Se(t))return"Electron";let n=t||Pt.userAgent||"";if(n.indexOf("Edge")>-1)return"Edge";let e=n.indexOf("MSIE ")!==-1,r=n.indexOf("Trident/")!==-1;return e||r?"IE":nt.chrome?"Chrome":nt.safari?"Safari":nt.mozInnerScreenX?"Firefox":"Unknown"}function Qr(t){try{let n=window[t],e="__storage_test__";return n.setItem(e,e),n.removeItem(e),n}catch{return null}}var je=class{constructor(n,e){let r=arguments.length>2&&arguments[2]!==void 0?arguments[2]:"sessionStorage";this.storage=void 0,this.id=void 0,this.config=void 0,this.storage=Qr(r),this.id=n,this.config=e,this._loadConfiguration()}getConfiguration(){return this.config}setConfiguration(n){if(Object.assign(this.config,n),this.storage){let e=JSON.stringify(this.config);this.storage.setItem(this.id,e)}}_loadConfiguration(){let n={};if(this.storage){let e=this.storage.getItem(this.id);n=e?JSON.parse(e):{}}return Object.assign(this.config,n),this}};function xt(t){let n;return t<10?n="".concat(t.toFixed(2),"ms"):t<100?n="".concat(t.toFixed(1),"ms"):t<1e3?n="".concat(t.toFixed(0),"ms"):n="".concat((t/1e3).toFixed(2),"s"),n}function Ot(t){let n=arguments.length>1&&arguments[1]!==void 0?arguments[1]:8,e=Math.max(n-t.length,0);return"".concat(" ".repeat(e)).concat(t)}function Ie(t,n,e){let r=arguments.length>3&&arguments[3]!==void 0?arguments[3]:600,i=t.src.replace(/\(/g,"%28").replace(/\)/g,"%29");t.width>r&&(e=Math.min(e,r/t.width));let o=t.width*e,a=t.height*e,s=["font-size:1px;","padding:".concat(Math.floor(a/2),"px ").concat(Math.floor(o/2),"px;"),"line-height:".concat(a,"px;"),"background:url(".concat(i,");"),"background-size:".concat(o,"px ").concat(a,"px;"),"color:transparent;"].join("");return["".concat(n," %c+"),s]}var De;(function(t){t[t.BLACK=30]="BLACK",t[t.RED=31]="RED",t[t.GREEN=32]="GREEN",t[t.YELLOW=33]="YELLOW",t[t.BLUE=34]="BLUE",t[t.MAGENTA=35]="MAGENTA",t[t.CYAN=36]="CYAN",t[t.WHITE=37]="WHITE",t[t.BRIGHT_BLACK=90]="BRIGHT_BLACK",t[t.BRIGHT_RED=91]="BRIGHT_RED",t[t.BRIGHT_GREEN=92]="BRIGHT_GREEN",t[t.BRIGHT_YELLOW=93]="BRIGHT_YELLOW",t[t.BRIGHT_BLUE=94]="BRIGHT_BLUE",t[t.BRIGHT_MAGENTA=95]="BRIGHT_MAGENTA",t[t.BRIGHT_CYAN=96]="BRIGHT_CYAN",t[t.BRIGHT_WHITE=97]="BRIGHT_WHITE"})(De||(De={}));var en=10;function Ct(t){return typeof t!="string"?t:(t=t.toUpperCase(),De[t]||De.WHITE)}function Rt(t,n,e){if(!j&&typeof t=="string"){if(n){let r=Ct(n);t="\x1B[".concat(r,"m").concat(t,"\x1B[39m")}if(e){let r=Ct(e);t="\x1B[".concat(r+en,"m").concat(t,"\x1B[49m")}}return t}function Tt(t){let n=arguments.length>1&&arguments[1]!==void 0?arguments[1]:["constructor"],e=Object.getPrototypeOf(t),r=Object.getOwnPropertyNames(e),i=t;for(let o of r){let a=i[o];typeof a=="function"&&(n.find(s=>o===s)||(i[o]=a.bind(t)))}}function le(t,n){if(!t)throw new Error(n||"Assertion failed")}function ae(){let t;if(j()&&fe.performance){var n,e;t=fe===null||fe===void 0||(n=fe.performance)===null||n===void 0||(e=n.now)===null||e===void 0?void 0:e.call(n)}else if("hrtime"in ie){var r;let i=ie===null||ie===void 0||(r=ie.hrtime)===null||r===void 0?void 0:r.call(ie);t=i[0]*1e3+i[1]/1e6}else t=Date.now();return t}var pe={debug:j()&&console.debug||console.log,log:console.log,info:console.info,warn:console.warn,error:console.error},tn={enabled:!0,level:0};function U(){}var Et={},At={once:!0},J=class{constructor(){let{id:n}=arguments.length>0&&arguments[0]!==void 0?arguments[0]:{id:""};this.id=void 0,this.VERSION=Ae,this._startTs=ae(),this._deltaTs=ae(),this._storage=void 0,this.userData={},this.LOG_THROTTLE_TIMEOUT=0,this.id=n,this.userData={},this._storage=new je("__probe-".concat(this.id,"__"),tn),this.timeStamp("".concat(this.id," started")),Tt(this),Object.seal(this)}set level(n){this.setLevel(n)}get level(){return this.getLevel()}isEnabled(){return this._storage.config.enabled}getLevel(){return this._storage.config.level}getTotal(){return Number((ae()-this._startTs).toPrecision(10))}getDelta(){return Number((ae()-this._deltaTs).toPrecision(10))}set priority(n){this.level=n}get priority(){return this.level}getPriority(){return this.level}enable(){let n=arguments.length>0&&arguments[0]!==void 0?arguments[0]:!0;return this._storage.setConfiguration({enabled:n}),this}setLevel(n){return this._storage.setConfiguration({level:n}),this}get(n){return this._storage.config[n]}set(n,e){this._storage.setConfiguration({[n]:e})}settings(){console.table?console.table(this._storage.config):console.log(this._storage.config)}assert(n,e){le(n,e)}warn(n){return this._getLogFunction(0,n,pe.warn,arguments,At)}error(n){return this._getLogFunction(0,n,pe.error,arguments)}deprecated(n,e){return this.warn("`".concat(n,"` is deprecated and will be removed in a later version. Use `").concat(e,"` instead"))}removed(n,e){return this.error("`".concat(n,"` has been removed. Use `").concat(e,"` instead"))}probe(n,e){return this._getLogFunction(n,e,pe.log,arguments,{time:!0,once:!0})}log(n,e){return this._getLogFunction(n,e,pe.debug,arguments)}info(n,e){return this._getLogFunction(n,e,console.info,arguments)}once(n,e){return this._getLogFunction(n,e,pe.debug||pe.info,arguments,At)}table(n,e,r){return e?this._getLogFunction(n,e,console.table||U,r&&[r],{tag:an(e)}):U}image(n){let{logLevel:e,priority:r,image:i,message:o="",scale:a=1}=n;return this._shouldLog(e||r)?j()?on({image:i,message:o,scale:a}):nn({image:i,message:o,scale:a}):U}time(n,e){return this._getLogFunction(n,e,console.time?console.time:console.info)}timeEnd(n,e){return this._getLogFunction(n,e,console.timeEnd?console.timeEnd:console.info)}timeStamp(n,e){return this._getLogFunction(n,e,console.timeStamp||U)}group(n,e){let r=arguments.length>2&&arguments[2]!==void 0?arguments[2]:{collapsed:!1},i=Bt({logLevel:n,message:e,opts:r}),{collapsed:o}=r;return i.method=(o?console.groupCollapsed:console.group)||console.info,this._getLogFunction(i)}groupCollapsed(n,e){let r=arguments.length>2&&arguments[2]!==void 0?arguments[2]:{};return this.group(n,e,Object.assign({},r,{collapsed:!0}))}groupEnd(n){return this._getLogFunction(n,"",console.groupEnd||U)}withGroup(n,e,r){this.group(n,e)();try{r()}finally{this.groupEnd(n)()}}trace(){console.trace&&console.trace()}_shouldLog(n){return this.isEnabled()&&this.getLevel()>=jt(n)}_getLogFunction(n,e,r,i,o){if(this._shouldLog(n)){o=Bt({logLevel:n,message:e,args:i,opts:o}),r=r||o.method,le(r),o.total=this.getTotal(),o.delta=this.getDelta(),this._deltaTs=ae();let a=o.tag||o.message;if(o.once&&a)if(!Et[a])Et[a]=ae();else return U;return e=rn(this.id,o.message,o),r.bind(console,e,...o.args)}return U}};J.VERSION=Ae;function jt(t){if(!t)return 0;let n;switch(typeof t){case"number":n=t;break;case"object":n=t.logLevel||t.priority||0;break;default:return 0}return le(Number.isFinite(n)&&n>=0),n}function Bt(t){let{logLevel:n,message:e}=t;t.logLevel=jt(n);let r=t.args?Array.from(t.args):[];for(;r.length&&r.shift()!==e;);switch(typeof n){case"string":case"function":e!==void 0&&r.unshift(e),t.message=n;break;case"object":Object.assign(t,n);break;default:}typeof t.message=="function"&&(t.message=t.message());let i=typeof t.message;return le(i==="string"||i==="object"),Object.assign(t,{args:r},t.opts)}function rn(t,n,e){if(typeof n=="string"){let r=e.time?Ot(xt(e.total)):"";n=e.time?"".concat(t,": ").concat(r," ").concat(n):"".concat(t,": ").concat(n),n=Rt(n,e.color,e.background)}return n}function nn(t){let{image:n,message:e="",scale:r=1}=t;return console.warn("removed"),U}function on(t){let{image:n,message:e="",scale:r=1}=t;if(typeof n=="string"){let o=new Image;return o.onload=()=>{let a=Ie(o,e,r);console.log(...a)},o.src=n,U}let i=n.nodeName||"";if(i.toLowerCase()==="img")return console.log(...Ie(n,e,r)),U;if(i.toLowerCase()==="canvas"){let o=new Image;return o.onload=()=>console.log(...Ie(o,e,r)),o.src=n.toDataURL(),U}return U}function an(t){for(let n in t)for(let e in t[n])return e||"untitled";return"empty"}var $i=new J({id:"@probe.gl/log"});var x=new J({id:"luma.gl"});function Pe(){let t;if(typeof window<"u"&&window.performance)t=window.performance.now();else if(typeof process<"u"&&process.hrtime){let n=process.hrtime();t=n[0]*1e3+n[1]/1e6}else t=Date.now();return t}var se=class{constructor(n,e){this.name=void 0,this.type=void 0,this.sampleSize=1,this.time=0,this.count=0,this.samples=0,this.lastTiming=0,this.lastSampleTime=0,this.lastSampleCount=0,this._count=0,this._time=0,this._samples=0,this._startTime=0,this._timerPending=!1,this.name=n,this.type=e,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(n){return this.sampleSize=n,this}incrementCount(){return this.addCount(1),this}decrementCount(){return this.subtractCount(1),this}addCount(n){return this._count+=n,this._samples++,this._checkSampling(),this}subtractCount(n){return this._count-=n,this._samples++,this._checkSampling(),this}addTime(n){return this._time+=n,this.lastTiming=n,this._samples++,this._checkSampling(),this}timeStart(){return this._startTime=Pe(),this._timerPending=!0,this}timeEnd(){return this._timerPending?(this.addTime(Pe()-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 de=class{constructor(n){this.id=void 0,this.stats={},this.id=n.id,this.stats={},this._initializeStats(n.stats),Object.seal(this)}get(n){let e=arguments.length>1&&arguments[1]!==void 0?arguments[1]:"count";return this._getOrCreate({name:n,type:e})}get size(){return Object.keys(this.stats).length}reset(){for(let n of Object.values(this.stats))n.reset();return this}forEach(n){for(let e of Object.values(this.stats))n(e)}getTable(){let n={};return this.forEach(e=>{n[e.name]={time:e.time||0,count:e.count||0,average:e.getAverageTime()||0,hz:e.getHz()||0}}),n}_initializeStats(){(arguments.length>0&&arguments[0]!==void 0?arguments[0]:[]).forEach(e=>this._getOrCreate(e))}_getOrCreate(n){let{name:e,type:r}=n,i=this.stats[e];return i||(n instanceof se?i=n:i=new se(e,r),this.stats[e]=i),i}};var sn=function(){function t(){m(this,t),this.stats=new Map}var n=t.prototype;return n.getStats=function(r){return this.get(r)},n.get=function(r){return this.stats.has(r)||this.stats.set(r,new de({id:r})),this.stats.get(r)},g(t)}(),Ge=new sn;function un(){var t=typeof __VERSION__<"u"?__VERSION__:"untranspiled source",n="set luma.log.level=1 (or higher) to trace rendering";if(globalThis.luma&&globalThis.luma.VERSION!==t)throw new Error("luma.gl - multiple VERSIONs detected: ".concat(globalThis.luma.VERSION," vs ").concat(t));return globalThis.luma||(j()&&x.log(1,"luma.gl ".concat(t," - ").concat(n))(),globalThis.luma=globalThis.luma||{VERSION:t,version:t,log:x,stats:Ge}),t}var It=un();var ot={};function ue(){var t=arguments.length>0&&arguments[0]!==void 0?arguments[0]:"id";ot[t]=ot[t]||1;var n=ot[t]++;return"".concat(t,"-").concat(n)}function Ne(t){var n=!0;for(var e in t){n=!1;break}return n}function Dt(t,n){var e=Object.keys(t);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(t);n&&(r=r.filter(function(i){return Object.getOwnPropertyDescriptor(t,i).enumerable})),e.push.apply(e,r)}return e}function cn(t){for(var n=1;n<arguments.length;n++){var e=arguments[n]!=null?arguments[n]:{};n%2?Dt(Object(e),!0).forEach(function(r){C(t,r,e[r])}):Object.getOwnPropertyDescriptors?Object.defineProperties(t,Object.getOwnPropertyDescriptors(e)):Dt(Object(e)).forEach(function(r){Object.defineProperty(t,r,Object.getOwnPropertyDescriptor(e,r))})}return t}var R=function(){function t(e,r,i){if(m(this,t),this.id=void 0,this.props=void 0,this.userData={},this.device=void 0,this._device=void 0,this.destroyed=!1,this.allocatedBytes=0,this._attachedResources=new Set,!e)throw new Error("no device");this._device=e,this.props=fn(r,i);var o=this.props.id!=="undefined"?this.props.id:ue(this[Symbol.toStringTag]);this.props.id=o,this.id=o,this.userData=this.props.userData||{},this.addStats()}var n=t.prototype;return n.destroy=function(){this.destroyResource()},n.delete=function(){return this.destroy(),this},n.toString=function(){return"".concat(this[Symbol.toStringTag]||this.constructor.name,"(").concat(this.id,")")},n.getProps=function(){return this.props},n.attachResource=function(r){this._attachedResources.add(r)},n.detachResource=function(r){this._attachedResources.delete(r)},n.destroyAttachedResource=function(r){this._attachedResources.delete(r)&&r.destroy()},n.destroyAttachedResources=function(){for(var r=0,i=Object.values(this._attachedResources);r<i.length;r++){var o=i[r];o.destroy()}this._attachedResources=new Set},n.destroyResource=function(){this.destroyAttachedResources(),this.removeStats(),this.destroyed=!0},n.removeStats=function(){var r=this._device.statsManager.getStats("Resource Counts"),i=this[Symbol.toStringTag];r.get("".concat(i,"s Active")).decrementCount()},n.trackAllocatedMemory=function(r){var i=arguments.length>1&&arguments[1]!==void 0?arguments[1]:this[Symbol.toStringTag],o=this._device.statsManager.getStats("Resource Counts");o.get("GPU Memory").addCount(r),o.get("".concat(i," Memory")).addCount(r),this.allocatedBytes=r},n.trackDeallocatedMemory=function(){var r=arguments.length>0&&arguments[0]!==void 0?arguments[0]:this[Symbol.toStringTag],i=this._device.statsManager.getStats("Resource Counts");i.get("GPU Memory").subtractCount(this.allocatedBytes),i.get("".concat(r," Memory")).subtractCount(this.allocatedBytes),this.allocatedBytes=0},n.addStats=function(){var r=this._device.statsManager.getStats("Resource Counts"),i=this[Symbol.toStringTag];r.get("Resources Created").incrementCount(),r.get("".concat(i,"s Created")).incrementCount(),r.get("".concat(i,"s Active")).incrementCount()},g(t)}();R.defaultProps={id:"undefined",handle:void 0,userData:void 0};function fn(t,n){var e=cn({},n);for(var r in t)t[r]!==void 0&&(e[r]=t[r]);return e}var Nt;function Gt(t,n){var e=Object.keys(t);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(t);n&&(r=r.filter(function(i){return Object.getOwnPropertyDescriptor(t,i).enumerable})),e.push.apply(e,r)}return e}function it(t){for(var n=1;n<arguments.length;n++){var e=arguments[n]!=null?arguments[n]:{};n%2?Gt(Object(e),!0).forEach(function(r){C(t,r,e[r])}):Object.getOwnPropertyDescriptors?Object.defineProperties(t,Object.getOwnPropertyDescriptors(e)):Gt(Object(e)).forEach(function(r){Object.defineProperty(t,r,Object.getOwnPropertyDescriptor(e,r))})}return t}function ln(t){var n=pn();return function(){var r=d(t),i;if(n){var o=d(this).constructor;i=Reflect.construct(r,arguments,o)}else i=r.apply(this,arguments);return _(this,i)}}function pn(){if(typeof Reflect>"u"||!Reflect.construct||Reflect.construct.sham)return!1;if(typeof Proxy=="function")return!0;try{return Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],function(){})),!0}catch{return!1}}Nt=Symbol.toStringTag;var A=function(t){b(e,t);var n=ln(e);function e(i,o){var a;m(this,e);var s=it({},o);return(o.usage||0)&e.INDEX&&!o.indexType&&(o.data instanceof Uint32Array?s.indexType="uint32":o.data instanceof Uint16Array&&(s.indexType="uint16")),a=n.call(this,i,s,e.defaultProps),a.usage=void 0,a.indexType=void 0,a.byteLength=void 0,a.usage=o.usage||0,a.indexType=s.indexType,a}var r=e.prototype;return r.write=function(o,a){throw new Error("not implemented")},r.readAsync=function(o,a){throw new Error("not implemented")},r.getData=function(){throw new Error("not implemented")},g(e,[{key:Nt,get:function(){return"Buffer"}}]),e}(R);A.defaultProps=it(it({},R.defaultProps),{},{usage:0,byteLength:0,byteOffset:0,data:null,indexType:"uint16",mappedAtCreation:!1});A.MAP_READ=1;A.MAP_WRITE=2;A.COPY_SRC=4;A.COPY_DST=8;A.INDEX=16;A.VERTEX=32;A.UNIFORM=64;A.STORAGE=128;A.INDIRECT=256;A.QUERY_RESOLVE=512;var Mt;function Lt(t,n){var e=Object.keys(t);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(t);n&&(r=r.filter(function(i){return Object.getOwnPropertyDescriptor(t,i).enumerable})),e.push.apply(e,r)}return e}function at(t){for(var n=1;n<arguments.length;n++){var e=arguments[n]!=null?arguments[n]:{};n%2?Lt(Object(e),!0).forEach(function(r){C(t,r,e[r])}):Object.getOwnPropertyDescriptors?Object.defineProperties(t,Object.getOwnPropertyDescriptors(e)):Lt(Object(e)).forEach(function(r){Object.defineProperty(t,r,Object.getOwnPropertyDescriptor(e,r))})}return t}var dn={id:null,type:"best-available",canvas:null,container:null,webgl2:!0,webgl1:!0,manageState:!0,width:800,height:600,debug:Boolean(x.get("debug")),break:[],gl:null};Mt=Symbol.toStringTag;var Le=function(){function t(e){m(this,t),this.id=void 0,this.statsManager=Ge,this.props=void 0,this.userData={},this._lumaData={},this.info=void 0,this.lost=void 0,this.canvasContext=void 0,this.props=at(at({},dn),e),this.id=this.props.id||ue(this[Symbol.toStringTag].toLowerCase())}var n=t.prototype;return n.loseDevice=function(){return!1},n.getCanvasContext=function(){if(!this.canvasContext)throw new Error("Device has no CanvasContext");return this.canvasContext},n.createTexture=function(r){return(r instanceof Promise||typeof r=="string")&&(r={data:r}),this._createTexture(r)},n.createCommandEncoder=function(){var r=arguments.length>0&&arguments[0]!==void 0?arguments[0]:{};throw new Error("not implemented")},n._getBufferProps=function(r){(r instanceof ArrayBuffer||ArrayBuffer.isView(r))&&(r={data:r});var i=at({},r);return(r.usage||0)&A.INDEX&&!r.indexType&&(r.data instanceof Uint32Array?i.indexType="uint32":r.data instanceof Uint16Array?i.indexType="uint16":x.warn("indices buffer content must be of integer type")()),i},g(t,[{key:Mt,get:function(){return"Device"}}]),t}();Le.VERSION=It;function st(t){if(Array.isArray(t))return t}function ut(t,n){var e=t==null?null:typeof Symbol<"u"&&t[Symbol.iterator]||t["@@iterator"];if(e!=null){var r,i,o,a,s=[],u=!0,c=!1;try{if(o=(e=e.call(t)).next,n===0){if(Object(e)!==e)return;u=!1}else for(;!(u=(r=o.call(e)).done)&&(s.push(r.value),s.length!==n);u=!0);}catch(v){c=!0,i=v}finally{try{if(!u&&e.return!=null&&(a=e.return(),Object(a)!==a))return}finally{if(c)throw i}}return s}}function Me(t,n){(n==null||n>t.length)&&(n=t.length);for(var e=0,r=new Array(n);e<n;e++)r[e]=t[e];return r}function ct(t,n){if(t){if(typeof t=="string")return Me(t,n);var e=Object.prototype.toString.call(t).slice(8,-1);if(e==="Object"&&t.constructor&&(e=t.constructor.name),e==="Map"||e==="Set")return Array.from(t);if(e==="Arguments"||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(e))return Me(t,n)}}function ft(){throw new TypeError(`Invalid attempt to destructure non-iterable instance.
8
8
  In order to be iterable, non-array objects must have a [Symbol.iterator]() method.`)}function B(t,n){return st(t)||ut(t,n)||ct(t,n)||ft()}function hn(t,n){var e=typeof Symbol<"u"&&t[Symbol.iterator]||t["@@iterator"];if(!e){if(Array.isArray(t)||(e=mn(t))||n&&t&&typeof t.length=="number"){e&&(t=e);var r=0,i=function(){};return{s:i,n:function(){return r>=t.length?{done:!0}:{done:!1,value:t[r++]}},e:function(c){throw c},f:i}}throw new TypeError(`Invalid attempt to iterate non-iterable instance.
9
9
  In order to be iterable, non-array objects must have a [Symbol.iterator]() method.`)}var o=!0,a=!1,s;return{s:function(){e=e.call(t)},n:function(){var c=e.next();return o=c.done,c},e:function(c){a=!0,s=c},f:function(){try{!o&&e.return!=null&&e.return()}finally{if(a)throw s}}}}function mn(t,n){if(t){if(typeof t=="string")return kt(t,n);var e=Object.prototype.toString.call(t).slice(8,-1);if(e==="Object"&&t.constructor&&(e=t.constructor.name),e==="Map"||e==="Set")return Array.from(t);if(e==="Arguments"||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(e))return kt(t,n)}}function kt(t,n){(n==null||n>t.length)&&(n=t.length);for(var e=0,r=new Array(n);e<n;e++)r[e]=t[e];return r}function Ft(t,n){var e=Object.keys(t);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(t);n&&(r=r.filter(function(i){return Object.getOwnPropertyDescriptor(t,i).enumerable})),e.push.apply(e,r)}return e}function Ut(t){for(var n=1;n<arguments.length;n++){var e=arguments[n]!=null?arguments[n]:{};n%2?Ft(Object(e),!0).forEach(function(r){C(t,r,e[r])}):Object.getOwnPropertyDescriptors?Object.defineProperties(t,Object.getOwnPropertyDescriptors(e)):Ft(Object(e)).forEach(function(r){Object.defineProperty(t,r,Object.getOwnPropertyDescriptor(e,r))})}return t}var gn=j()&&typeof document<"u",ke=function(){return gn&&document.readyState==="complete"},vn={canvas:null,width:800,height:600,useDevicePixels:!0,autoResize:!0,container:null,visible:!0,colorSpace:"srgb",alphaMode:"opaque"},he=function(){function t(e){var r=this;if(m(this,t),this.device=void 0,this.id=void 0,this.props=void 0,this.canvas=void 0,this.htmlCanvas=void 0,this.offscreenCanvas=void 0,this.type=void 0,this.width=1,this.height=1,this.resizeObserver=void 0,this._canvasSizeInfo={clientWidth:0,clientHeight:0,devicePixelRatio:1},this.props=Ut(Ut({},vn),e),e=this.props,!j()){this.id="node-canvas-context",this.type="node",this.width=this.props.width,this.height=this.props.height,this.canvas=null;return}if(e.canvas)typeof e.canvas=="string"?this.canvas=_n(e.canvas):this.canvas=e.canvas;else{var i,o,a=wn(e),s=bn(((i=e)===null||i===void 0?void 0:i.container)||null);s.insertBefore(a,s.firstChild),this.canvas=a,(o=e)!==null&&o!==void 0&&o.visible||(this.canvas.style.visibility="hidden")}this.canvas instanceof HTMLCanvasElement?(this.id=this.canvas.id,this.type="html-canvas",this.htmlCanvas=this.canvas):(this.id="offscreen-canvas",this.type="offscreen-canvas",this.offscreenCanvas=this.canvas),this.canvas instanceof HTMLCanvasElement&&e.autoResize&&(this.resizeObserver=new ResizeObserver(function(u){var c=hn(u),v;try{for(c.s();!(v=c.n()).done;){var h=v.value;h.target===r.canvas&&r.update()}}catch(O){c.e(O)}finally{c.f()}}),this.resizeObserver.observe(this.canvas))}var n=t.prototype;return n.getDevicePixelRatio=function(r){if(typeof OffscreenCanvas<"u"&&this.canvas instanceof OffscreenCanvas||(r=r===void 0?this.props.useDevicePixels:r,!r||r<=0))return 1;if(r===!0){var i=typeof window<"u"&&window.devicePixelRatio;return i||1}return r},n.getPixelSize=function(){switch(this.type){case"node":return[this.width,this.height];case"offscreen-canvas":return[this.canvas.width,this.canvas.height];case"html-canvas":var r=this.getDevicePixelRatio(),i=this.canvas;return i.parentElement?[i.clientWidth*r,i.clientHeight*r]:[this.canvas.width,this.canvas.height];default:throw new Error(this.type)}},n.getAspect=function(){var r=this.getPixelSize(),i=B(r,2),o=i[0],a=i[1];return o/a},n.cssToDeviceRatio=function(){try{var r=this.getDrawingBufferSize(),i=B(r,1),o=i[0],a=this._canvasSizeInfo.clientWidth;return a?o/a:1}catch{return 1}},n.cssToDevicePixels=function(r){var i=arguments.length>1&&arguments[1]!==void 0?arguments[1]:!0,o=this.cssToDeviceRatio(),a=this.getDrawingBufferSize(),s=B(a,2),u=s[0],c=s[1];return Sn(r,o,u,c,i)},n.setDevicePixelRatio=function(r){var i=arguments.length>1&&arguments[1]!==void 0?arguments[1]:{};if(this.htmlCanvas){var o="width"in i?i.width:this.htmlCanvas.clientWidth,a="height"in i?i.height:this.htmlCanvas.clientHeight;(!o||!a)&&(x.log(1,"Canvas clientWidth/clientHeight is 0")(),r=1,o=this.htmlCanvas.width||1,a=this.htmlCanvas.height||1);var s=this._canvasSizeInfo;if(s.clientWidth!==o||s.clientHeight!==a||s.devicePixelRatio!==r){var u=r,c=Math.floor(o*u),v=Math.floor(a*u);this.htmlCanvas.width=c,this.htmlCanvas.height=v;var h=this.getDrawingBufferSize(),O=B(h,2),w=O[0],T=O[1];(w!==c||T!==v)&&(u=Math.min(w/o,T/a),this.htmlCanvas.width=Math.floor(o*u),this.htmlCanvas.height=Math.floor(a*u),x.warn("Device pixel ratio clamped")()),this._canvasSizeInfo.clientWidth=o,this._canvasSizeInfo.clientHeight=a,this._canvasSizeInfo.devicePixelRatio=r}}},n.getDrawingBufferSize=function(){var r=this.device.gl;if(!r)throw new Error("canvas size");return[r.drawingBufferWidth,r.drawingBufferHeight]},n._setAutoCreatedCanvasId=function(r){var i;((i=this.htmlCanvas)===null||i===void 0?void 0:i.id)==="lumagl-auto-created-canvas"&&(this.htmlCanvas.id=r)},g(t,null,[{key:"isPageLoaded",get:function(){return ke()}}]),t}();he.pageLoaded=yn();function yn(){return ke()||typeof window>"u"?Promise.resolve():new Promise(function(t){window.addEventListener("load",function(){return t()})})}function bn(t){if(typeof t=="string"){var n=document.getElementById(t);if(!n&&!ke())throw new Error("Accessing '".concat(t,"' before page was loaded"));if(!n)throw new Error("".concat(t," is not an HTML element"));return n}else if(t)return t;return document.body}function _n(t){var n=document.getElementById(t);if(!n&&!ke())throw new Error("Accessing '".concat(t,"' before page was loaded"));if(!(n instanceof HTMLCanvasElement))throw new Error("'".concat(n,"' is not a canvas element"));return n}function wn(t){var n=t.width,e=t.height,r=document.createElement("canvas");return r.id="lumagl-auto-created-canvas",r.width=n||1,r.height=e||1,r.style.width=Number.isFinite(n)?"".concat(n,"px"):"100%",r.style.height=Number.isFinite(e)?"".concat(e,"px"):"100%",r}function Sn(t,n,e,r,i){var o=t,a=Wt(o[0],n,e),s=Vt(o[1],n,r,i),u=Wt(o[0]+1,n,e),c=u===e-1?u:u-1;u=Vt(o[1]+1,n,r,i);var v;return i?(u=u===0?u:u+1,v=s,s=u):v=u===r-1?u:u-1,{x:a,y:s,width:Math.max(c-a+1,1),height:Math.max(v-s+1,1)}}function Wt(t,n,e){var r=Math.min(Math.round(t*n),e-1);return r}function Vt(t,n,e,r){return r?Math.max(0,e-1-Math.round(t*n)):Math.min(Math.round(t*n),e-1)}var $t;function zt(t,n){var e=Object.keys(t);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(t);n&&(r=r.filter(function(i){return Object.getOwnPropertyDescriptor(t,i).enumerable})),e.push.apply(e,r)}return e}function Ht(t){for(var n=1;n<arguments.length;n++){var e=arguments[n]!=null?arguments[n]:{};n%2?zt(Object(e),!0).forEach(function(r){C(t,r,e[r])}):Object.getOwnPropertyDescriptors?Object.defineProperties(t,Object.getOwnPropertyDescriptors(e)):zt(Object(e)).forEach(function(r){Object.defineProperty(t,r,Object.getOwnPropertyDescriptor(e,r))})}return t}function Pn(t){var n=xn();return function(){var r=d(t),i;if(n){var o=d(this).constructor;i=Reflect.construct(r,arguments,o)}else i=r.apply(this,arguments);return _(this,i)}}function xn(){if(typeof Reflect>"u"||!Reflect.construct||Reflect.construct.sham)return!1;if(typeof Proxy=="function")return!0;try{return Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],function(){})),!0}catch{return!1}}$t=Symbol.toStringTag;var L=function(t){b(e,t);var n=Pn(e);function e(r,i){var o,a=arguments.length>2&&arguments[2]!==void 0?arguments[2]:e.defaultProps;return m(this,e),o=n.call(this,r,i,a),o.dimension=void 0,o.format=void 0,o.width=void 0,o.height=void 0,o.depth=void 0,o.sampler=void 0,o.dimension=o.props.dimension,o.format=o.props.format,o.width=o.props.width,o.height=o.props.height,o.depth=o.props.depth,o}return g(e,[{key:$t,get:function(){return"Texture"}}]),e}(R);L.defaultProps=Ht(Ht({},R.defaultProps),{},{data:null,dimension:"2d",format:"rgba8unorm",width:void 0,height:void 0,depth:1,mipmaps:!0,sampler:{},compressed:!1,usage:0,mipLevels:void 0,samples:void 0,type:void 0});L.COPY_SRC=1;L.COPY_DST=2;L.TEXTURE_BINDING=4;L.STORAGE_BINDING=8;L.RENDER_ATTACHMENT=16;var qt;function Yt(t,n){var e=Object.keys(t);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(t);n&&(r=r.filter(function(i){return Object.getOwnPropertyDescriptor(t,i).enumerable})),e.push.apply(e,r)}return e}function Kt(t){for(var n=1;n<arguments.length;n++){var e=arguments[n]!=null?arguments[n]:{};n%2?Yt(Object(e),!0).forEach(function(r){C(t,r,e[r])}):Object.getOwnPropertyDescriptors?Object.defineProperties(t,Object.getOwnPropertyDescriptors(e)):Yt(Object(e)).forEach(function(r){Object.defineProperty(t,r,Object.getOwnPropertyDescriptor(e,r))})}return t}function On(t){var n=Cn();return function(){var r=d(t),i;if(n){var o=d(this).constructor;i=Reflect.construct(r,arguments,o)}else i=r.apply(this,arguments);return _(this,i)}}function Cn(){if(typeof Reflect>"u"||!Reflect.construct||Reflect.construct.sham)return!1;if(typeof Proxy=="function")return!0;try{return Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],function(){})),!0}catch{return!1}}qt=Symbol.toStringTag;var Fe=function(t){b(e,t);var n=On(e);function e(r,i){return m(this,e),n.call(this,r,i,e.defaultProps)}return g(e,[{key:qt,get:function(){return"ExternalTexture"}}]),e}(R);Fe.defaultProps=Kt(Kt({},R.defaultProps),{},{source:null,colorSpace:"srgb"});var Zt;function Xt(t,n){var e=Object.keys(t);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(t);n&&(r=r.filter(function(i){return Object.getOwnPropertyDescriptor(t,i).enumerable})),e.push.apply(e,r)}return e}function Jt(t){for(var n=1;n<arguments.length;n++){var e=arguments[n]!=null?arguments[n]:{};n%2?Xt(Object(e),!0).forEach(function(r){C(t,r,e[r])}):Object.getOwnPropertyDescriptors?Object.defineProperties(t,Object.getOwnPropertyDescriptors(e)):Xt(Object(e)).forEach(function(r){Object.defineProperty(t,r,Object.getOwnPropertyDescriptor(e,r))})}return t}function Rn(t){var n=Tn();return function(){var r=d(t),i;if(n){var o=d(this).constructor;i=Reflect.construct(r,arguments,o)}else i=r.apply(this,arguments);return _(this,i)}}function Tn(){if(typeof Reflect>"u"||!Reflect.construct||Reflect.construct.sham)return!1;if(typeof Proxy=="function")return!0;try{return Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],function(){})),!0}catch{return!1}}Zt=Symbol.toStringTag;var Ue=function(t){b(e,t);var n=Rn(e);function e(r,i){var o;return m(this,e),o=n.call(this,r,i,e.defaultProps),o.stage=void 0,o.source=void 0,o.stage=o.props.stage,o.source=o.props.source,o}return g(e,[{key:Zt,get:function(){return"Shader"}}]),e}(R);Ue.defaultProps=Jt(Jt({},R.defaultProps),{},{stage:"vertex",source:"",sourceMap:null,language:"auto",shaderType:0});var tr;function Qt(t,n){var e=Object.keys(t);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(t);n&&(r=r.filter(function(i){return Object.getOwnPropertyDescriptor(t,i).enumerable})),e.push.apply(e,r)}return e}function er(t){for(var n=1;n<arguments.length;n++){var e=arguments[n]!=null?arguments[n]:{};n%2?Qt(Object(e),!0).forEach(function(r){C(t,r,e[r])}):Object.getOwnPropertyDescriptors?Object.defineProperties(t,Object.getOwnPropertyDescriptors(e)):Qt(Object(e)).forEach(function(r){Object.defineProperty(t,r,Object.getOwnPropertyDescriptor(e,r))})}return t}function En(t){var n=An();return function(){var r=d(t),i;if(n){var o=d(this).constructor;i=Reflect.construct(r,arguments,o)}else i=r.apply(this,arguments);return _(this,i)}}function An(){if(typeof Reflect>"u"||!Reflect.construct||Reflect.construct.sham)return!1;if(typeof Proxy=="function")return!0;try{return Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],function(){})),!0}catch{return!1}}tr=Symbol.toStringTag;var me=function(t){b(e,t);var n=En(e);function e(r,i){return m(this,e),n.call(this,r,i,e.defaultProps)}return g(e,[{key:tr,get:function(){return"Sampler"}}]),e}(R);me.defaultProps=er(er({},R.defaultProps),{},{type:"color-sampler",addressModeU:"clamp-to-edge",addressModeV:"clamp-to-edge",addressModeW:"clamp-to-edge",magFilter:"nearest",minFilter:"nearest",mipmapFilter:"nearest",lodMinClamp:0,lodMaxClamp:32,compare:"less-equal",maxAnisotropy:1});var nr;function rr(t,n){var e=Object.keys(t);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(t);n&&(r=r.filter(function(i){return Object.getOwnPropertyDescriptor(t,i).enumerable})),e.push.apply(e,r)}return e}function ge(t){for(var n=1;n<arguments.length;n++){var e=arguments[n]!=null?arguments[n]:{};n%2?rr(Object(e),!0).forEach(function(r){C(t,r,e[r])}):Object.getOwnPropertyDescriptors?Object.defineProperties(t,Object.getOwnPropertyDescriptors(e)):rr(Object(e)).forEach(function(r){Object.defineProperty(t,r,Object.getOwnPropertyDescriptor(e,r))})}return t}function Bn(t){var n=jn();return function(){var r=d(t),i;if(n){var o=d(this).constructor;i=Reflect.construct(r,arguments,o)}else i=r.apply(this,arguments);return _(this,i)}}function jn(){if(typeof Reflect>"u"||!Reflect.construct||Reflect.construct.sham)return!1;if(typeof Proxy=="function")return!0;try{return Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],function(){})),!0}catch{return!1}}nr=Symbol.toStringTag;var We=function(t){b(e,t);var n=Bn(e);function e(i){var o,a=arguments.length>1&&arguments[1]!==void 0?arguments[1]:{};return m(this,e),o=n.call(this,i,a,e.defaultProps),o.width=void 0,o.height=void 0,o.colorAttachments=[],o.depthStencilAttachment=null,o.width=o.props.width,o.height=o.props.height,o}var r=e.prototype;return r.resize=function(o){var a=!o;if(o){var s=Array.isArray(o)?o:[o.width,o.height],u=B(s,2),c=u[0],v=u[1];a=a||v!==this.height||c!==this.width,this.width=c,this.height=v}a&&(x.log(2,"Resizing framebuffer ".concat(this.id," to ").concat(this.width,"x").concat(this.height))(),this.resizeAttachments(this.width,this.height))},r.autoCreateAttachmentTextures=function(){var o=this;if(this.colorAttachments=this.props.colorAttachments.map(function(s){if(typeof s=="string"){var u=o.createColorTexture(s);return o.attachResource(u),u}return s}),this.props.depthStencilAttachment)if(typeof this.props.depthStencilAttachment=="string"){var a=this.createDepthStencilTexture(this.props.depthStencilAttachment);this.attachResource(a),this.depthStencilAttachment=a}else this.depthStencilAttachment=this.props.depthStencilAttachment},r.createColorTexture=function(o){return this.device.createTexture({id:"color-attachment",usage:L.RENDER_ATTACHMENT,format:o,width:this.width,height:this.height})},r.createDepthStencilTexture=function(o){return this.device.createTexture({id:"depth-stencil-attachment",usage:L.RENDER_ATTACHMENT,format:o,width:this.width,height:this.height})},r.resizeAttachments=function(o,a){for(var s=0;s<this.colorAttachments.length;++s)if(this.colorAttachments[s]){var u=this.device._createTexture(ge(ge({},this.colorAttachments[s].props),{},{width:o,height:a}));this.destroyAttachedResource(this.colorAttachments[s]),this.colorAttachments[s]=u,this.attachResource(u)}if(this.depthStencilAttachment){var c=this.device._createTexture(ge(ge({},this.depthStencilAttachment.props),{},{width:o,height:a}));this.destroyAttachedResource(this.depthStencilAttachment),this.depthStencilAttachment=c,this.attachResource(c)}},g(e,[{key:nr,get:function(){return"Framebuffer"}}]),e}(R);We.defaultProps=ge(ge({},R.defaultProps),{},{width:1,height:1,colorAttachments:[],depthStencilAttachment:null});var ar;function or(t,n){var e=Object.keys(t);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(t);n&&(r=r.filter(function(i){return Object.getOwnPropertyDescriptor(t,i).enumerable})),e.push.apply(e,r)}return e}function ir(t){for(var n=1;n<arguments.length;n++){var e=arguments[n]!=null?arguments[n]:{};n%2?or(Object(e),!0).forEach(function(r){C(t,r,e[r])}):Object.getOwnPropertyDescriptors?Object.defineProperties(t,Object.getOwnPropertyDescriptors(e)):or(Object(e)).forEach(function(r){Object.defineProperty(t,r,Object.getOwnPropertyDescriptor(e,r))})}return t}function In(t){var n=Dn();return function(){var r=d(t),i;if(n){var o=d(this).constructor;i=Reflect.construct(r,arguments,o)}else i=r.apply(this,arguments);return _(this,i)}}function Dn(){if(typeof Reflect>"u"||!Reflect.construct||Reflect.construct.sham)return!1;if(typeof Proxy=="function")return!0;try{return Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],function(){})),!0}catch{return!1}}ar=Symbol.toStringTag;var Ve=function(t){b(e,t);var n=In(e);function e(r,i){var o;return m(this,e),o=n.call(this,r,i,e.defaultProps),o.hash="",o.vs=void 0,o.fs=void 0,o.shaderLayout=void 0,o.bufferLayout=void 0,o.shaderLayout=o.props.shaderLayout,o.bufferLayout=o.props.bufferLayout||[],o}return g(e,[{key:ar,get:function(){return"RenderPipeline"}}]),e}(R);Ve.defaultProps=ir(ir({},R.defaultProps),{},{vs:null,vsEntryPoint:"",vsConstants:{},fs:null,fsEntryPoint:"",fsConstants:{},shaderLayout:null,bufferLayout:[],topology:"triangle-list",parameters:{},vertexCount:0,instanceCount:0,bindings:{},uniforms:{}});var cr;function sr(t,n){var e=Object.keys(t);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(t);n&&(r=r.filter(function(i){return Object.getOwnPropertyDescriptor(t,i).enumerable})),e.push.apply(e,r)}return e}function ur(t){for(var n=1;n<arguments.length;n++){var e=arguments[n]!=null?arguments[n]:{};n%2?sr(Object(e),!0).forEach(function(r){C(t,r,e[r])}):Object.getOwnPropertyDescriptors?Object.defineProperties(t,Object.getOwnPropertyDescriptors(e)):sr(Object(e)).forEach(function(r){Object.defineProperty(t,r,Object.getOwnPropertyDescriptor(e,r))})}return t}function Gn(t){var n=Nn();return function(){var r=d(t),i;if(n){var o=d(this).constructor;i=Reflect.construct(r,arguments,o)}else i=r.apply(this,arguments);return _(this,i)}}function Nn(){if(typeof Reflect>"u"||!Reflect.construct||Reflect.construct.sham)return!1;if(typeof Proxy=="function")return!0;try{return Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],function(){})),!0}catch{return!1}}cr=Symbol.toStringTag;var ze=function(t){b(e,t);var n=Gn(e);function e(r,i){var o;return m(this,e),o=n.call(this,r,i,e.defaultProps),o.hash="",o}return g(e,[{key:cr,get:function(){return"ComputePipeline"}}]),e}(R);ze.defaultProps=ur(ur({},R.defaultProps),{},{cs:void 0,csEntryPoint:void 0,csConstants:{},shaderLayout:[]});var pr;function fr(t,n){var e=Object.keys(t);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(t);n&&(r=r.filter(function(i){return Object.getOwnPropertyDescriptor(t,i).enumerable})),e.push.apply(e,r)}return e}function lr(t){for(var n=1;n<arguments.length;n++){var e=arguments[n]!=null?arguments[n]:{};n%2?fr(Object(e),!0).forEach(function(r){C(t,r,e[r])}):Object.getOwnPropertyDescriptors?Object.defineProperties(t,Object.getOwnPropertyDescriptors(e)):fr(Object(e)).forEach(function(r){Object.defineProperty(t,r,Object.getOwnPropertyDescriptor(e,r))})}return t}function Ln(t){var n=Mn();return function(){var r=d(t),i;if(n){var o=d(this).constructor;i=Reflect.construct(r,arguments,o)}else i=r.apply(this,arguments);return _(this,i)}}function Mn(){if(typeof Reflect>"u"||!Reflect.construct||Reflect.construct.sham)return!1;if(typeof Proxy=="function")return!0;try{return Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],function(){})),!0}catch{return!1}}pr=Symbol.toStringTag;var He=function(t){b(e,t);var n=Ln(e);function e(r,i){return m(this,e),n.call(this,r,i,e.defaultProps)}return g(e,[{key:pr,get:function(){return"RenderPass"}}]),e}(R);He.defaultProps=lr(lr({},R.defaultProps),{},{framebuffer:null,parameters:void 0,clearColor:[0,0,0,0],clearDepth:1,clearStencil:0,depthReadOnly:!1,stencilReadOnly:!1,discard:!1});var hr;function dr(t,n){var e=Object.keys(t);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(t);n&&(r=r.filter(function(i){return Object.getOwnPropertyDescriptor(t,i).enumerable})),e.push.apply(e,r)}return e}function kn(t){for(var n=1;n<arguments.length;n++){var e=arguments[n]!=null?arguments[n]:{};n%2?dr(Object(e),!0).forEach(function(r){C(t,r,e[r])}):Object.getOwnPropertyDescriptors?Object.defineProperties(t,Object.getOwnPropertyDescriptors(e)):dr(Object(e)).forEach(function(r){Object.defineProperty(t,r,Object.getOwnPropertyDescriptor(e,r))})}return t}function Fn(t){var n=Un();return function(){var r=d(t),i;if(n){var o=d(this).constructor;i=Reflect.construct(r,arguments,o)}else i=r.apply(this,arguments);return _(this,i)}}function Un(){if(typeof Reflect>"u"||!Reflect.construct||Reflect.construct.sham)return!1;if(typeof Proxy=="function")return!0;try{return Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],function(){})),!0}catch{return!1}}hr=Symbol.toStringTag;var $e=function(t){b(e,t);var n=Fn(e);function e(r,i){return m(this,e),n.call(this,r,i,R.defaultProps)}return g(e,[{key:hr,get:function(){return"ComputePass"}}]),e}(R);$e.defaultProps=kn({},R.defaultProps);function mr(t){var n=B(Vn[t],2),e=n[0],r=n[1],i=e==="i32"||e==="u32",o=e!=="u32",a=zn[e]*r,s=Wn(e,r);return{dataType:e,components:r,defaultVertexFormat:s,byteLength:a,integer:i,signed:o}}function Wn(t,n){var e;switch(t){case"f32":e="float32";break;case"i32":e="sint32";break;case"u32":e="uint32";break;case"f16":return n<=2?"float16x2":"float16x4"}return n===1?e:"".concat(e,"x").concat(n)}var Vn={f32:["f32",1],"vec2<f32>":["f32",2],"vec3<f32>":["f32",3],"vec4<f32>":["f32",4],f16:["f16",1],"vec2<f16>":["f16",2],"vec3<f16>":["f16",3],"vec4<f16>":["f16",4],i32:["i32",1],"vec2<i32>":["i32",2],"vec3<i32>":["i32",3],"vec4<i32>":["i32",4],u32:["u32",1],"vec2<u32>":["u32",2],"vec3<u32>":["u32",3],"vec4<u32>":["u32",4]},zn={f32:4,f16:2,i32:4,u32:4};function vr(t){var n=gr[t],e=Hn(n),r=t.includes("norm"),i=!r&&!t.startsWith("float"),o=t.startsWith("s");return{dataType:gr[t],byteLength:e,integer:i,signed:o,normalized:r}}function Hn(t){var n=$n[t];return n}var gr={uint8:"uint8",sint8:"sint8",unorm8:"uint8",snorm8:"sint8",uint16:"uint16",sint16:"sint16",unorm16:"uint16",snorm16:"sint16",float16:"float16",float32:"float32",uint32:"uint32",sint32:"sint32"},$n={uint8:1,sint8:1,uint16:2,sint16:2,float16:2,float32:4,uint32:4,sint32:4};function Z(t){var n;t.endsWith("-webgl")&&(t.replace("-webgl",""),n=!0);var e=t.split("x"),r=B(e,2),i=r[0],o=r[1],a=i,s=o?parseInt(o):1,u=vr(a),c={type:a,components:s,byteLength:u.byteLength*s,integer:u.integer,signed:u.signed,normalized:u.normalized};return n&&(c.webglOnly=!0),c}function xe(t,n){var e=typeof Symbol<"u"&&t[Symbol.iterator]||t["@@iterator"];if(!e){if(Array.isArray(t)||(e=Yn(t))||n&&t&&typeof t.length=="number"){e&&(t=e);var r=0,i=function(){};return{s:i,n:function(){return r>=t.length?{done:!0}:{done:!1,value:t[r++]}},e:function(c){throw c},f:i}}throw new TypeError(`Invalid attempt to iterate non-iterable instance.
10
- In order to be iterable, non-array objects must have a [Symbol.iterator]() method.`)}var o=!0,a=!1,s;return{s:function(){e=e.call(t)},n:function(){var c=e.next();return o=c.done,c},e:function(c){a=!0,s=c},f:function(){try{!o&&e.return!=null&&e.return()}finally{if(a)throw s}}}}function Yn(t,n){if(t){if(typeof t=="string")return yr(t,n);var e=Object.prototype.toString.call(t).slice(8,-1);if(e==="Object"&&t.constructor&&(e=t.constructor.name),e==="Map"||e==="Set")return Array.from(t);if(e==="Arguments"||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(e))return yr(t,n)}}function yr(t,n){(n==null||n>t.length)&&(n=t.length);for(var e=0,r=new Array(n);e<n;e++)r[e]=t[e];return r}function Ye(t,n){var e={},r=xe(t.attributes),i;try{for(r.s();!(i=r.n()).done;){var o=i.value;e[o.name]=Kn(t,n,o.name)}}catch(a){r.e(a)}finally{r.f()}return e}function br(t,n){for(var e=arguments.length>2&&arguments[2]!==void 0?arguments[2]:16,r=Ye(t,n),i=new Array(e).fill(null),o=0,a=Object.values(r);o<a.length;o++){var s=a[o];i[s.location]=s}return i}function Kn(t,n,e){var r=qn(t,e),i=Xn(n,e);if(!r)return null;var o=mr(r.type),a=i?.vertexFormat||o.defaultVertexFormat,s=Z(a);return{attributeName:i?.attributeName||r.name,bufferName:i?.bufferName||r.name,location:r.location,shaderType:r.type,shaderDataType:o.dataType,shaderComponents:o.components,vertexFormat:a,bufferDataType:s.type,bufferComponents:s.components,normalized:s.normalized,integer:o.integer,stepMode:i?.stepMode||r.stepMode,byteOffset:i?.byteOffset||0,byteStride:i?.byteStride||0}}function qn(t,n){var e=t.attributes.find(function(r){return r.name===n});return e||x.warn('shader layout attribute "'.concat(n,'" not present in shader')),e||null}function Xn(t,n){Jn(t);var e=Zn(t,n);return e||(e=Qn(t,n),e)?e:(x.warn('layout for attribute "'.concat(n,'" not present in buffer layout')),null)}function Jn(t){var n=xe(t),e;try{for(n.s();!(e=n.n()).done;){var r=e.value;(r.attributes&&r.format||!r.attributes&&!r.format)&&x.warn("BufferLayout ".concat(name," must have either 'attributes' or 'format' field"))}}catch(i){n.e(i)}finally{n.f()}}function Zn(t,n){var e=xe(t),r;try{for(e.s();!(r=e.n()).done;){var i=r.value;if(i.format&&i.name===n)return{attributeName:i.name,bufferName:n,stepMode:i.stepMode,vertexFormat:i.format,byteOffset:0,byteStride:i.byteStride||0}}}catch(o){e.e(o)}finally{e.f()}return null}function Qn(t,n){var e=xe(t),r;try{for(e.s();!(r=e.n()).done;){var i,o=r.value,a=o.byteStride;if(typeof o.byteStride!="number"){var s=xe(o.attributes||[]),u;try{for(s.s();!(u=s.n()).done;){var c=u.value,v=Z(c.format);a+=v.byteLength}}catch(O){s.e(O)}finally{s.f()}}var h=(i=o.attributes)===null||i===void 0?void 0:i.find(function(O){return O.attribute===n});if(h)return{attributeName:h.attribute,bufferName:o.name,stepMode:o.stepMode,vertexFormat:h.format,byteOffset:h.byteOffset,byteStride:a}}}catch(O){e.e(O)}finally{e.f()}return null}var Sr;function _r(t,n){var e=Object.keys(t);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(t);n&&(r=r.filter(function(i){return Object.getOwnPropertyDescriptor(t,i).enumerable})),e.push.apply(e,r)}return e}function wr(t){for(var n=1;n<arguments.length;n++){var e=arguments[n]!=null?arguments[n]:{};n%2?_r(Object(e),!0).forEach(function(r){C(t,r,e[r])}):Object.getOwnPropertyDescriptors?Object.defineProperties(t,Object.getOwnPropertyDescriptors(e)):_r(Object(e)).forEach(function(r){Object.defineProperty(t,r,Object.getOwnPropertyDescriptor(e,r))})}return t}function eo(t){var n=to();return function(){var r=d(t),i;if(n){var o=d(this).constructor;i=Reflect.construct(r,arguments,o)}else i=r.apply(this,arguments);return _(this,i)}}function to(){if(typeof Reflect>"u"||!Reflect.construct||Reflect.construct.sham)return!1;if(typeof Proxy=="function")return!0;try{return Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],function(){})),!0}catch{return!1}}Sr=Symbol.toStringTag;var Ke=function(t){b(e,t);var n=eo(e);function e(r,i){var o;return m(this,e),o=n.call(this,r,i,e.defaultProps),o.maxVertexAttributes=void 0,o.attributeInfos=void 0,o.indexBuffer=null,o.attributes=void 0,o.maxVertexAttributes=r.limits.maxVertexAttributes,o.attributes=new Array(o.maxVertexAttributes).fill(null),o.attributeInfos=br(i.renderPipeline.shaderLayout,i.renderPipeline.bufferLayout,o.maxVertexAttributes),o}return g(e,[{key:Sr,get:function(){return"VertexArray"}}]),e}(R);Ke.defaultProps=wr(wr({},R.defaultProps),{},{renderPipeline:null});var lt=et(Ee(),1);function ro(t){var n=no();return function(){var r=d(t),i;if(n){var o=d(this).constructor;i=Reflect.construct(r,arguments,o)}else i=r.apply(this,arguments);return _(this,i)}}function no(){if(typeof Reflect>"u"||!Reflect.construct||Reflect.construct.sham)return!1;if(typeof Proxy=="function")return!0;try{return Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],function(){})),!0}catch{return!1}}function oo(t){var n;return t.byteLength||((n=t.data)===null||n===void 0?void 0:n.byteLength)||0}var qe=function(t){b(e,t);var n=ro(e);function e(i,o){var a;m(this,e),a=n.call(this,i,o),a.device=void 0,a.handle=void 0,a.byteLength=void 0,a.device=i,a.byteLength=oo(o);var s=Boolean(o.data);return a.handle=a.props.handle||a.device.handle.createBuffer({size:a.byteLength,usage:a.props.usage||GPUBufferUsage.VERTEX|GPUBufferUsage.COPY_DST,mappedAtCreation:a.props.mappedAtCreation||s,label:a.props.id}),o.data&&a._writeMapped(o.data),s&&!o.mappedAtCreation&&a.handle.unmap(),a}var r=e.prototype;return r.destroy=function(){this.handle.destroy()},r.write=function(o){var a=arguments.length>1&&arguments[1]!==void 0?arguments[1]:0;this.device.handle.queue.writeBuffer(this.handle,a,o.buffer,o.byteOffset,o.byteLength)},r.readAsync=function(){var i=Y(lt.default.mark(function a(){var s,u,c,v,h,O=arguments;return lt.default.wrap(function(T){for(;;)switch(T.prev=T.next){case 0:return s=O.length>0&&O[0]!==void 0?O[0]:0,u=O.length>1&&O[1]!==void 0?O[1]:this.byteLength,c=new e(this.device,{usage:A.MAP_READ|A.COPY_DST,byteLength:u}),v=this.device.handle.createCommandEncoder(),v.copyBufferToBuffer(this.handle,s,c.handle,0,u),this.device.handle.queue.submit([v.finish()]),T.next=8,c.handle.mapAsync(GPUMapMode.READ,s,u);case 8:return h=c.handle.getMappedRange().slice(0),c.handle.unmap(),c.destroy(),T.abrupt("return",h);case 12:case"end":return T.stop()}},a,this)}));function o(){return i.apply(this,arguments)}return o}(),r._writeMapped=function(o){var a=this.handle.getMappedRange();new o.constructor(a).set(o)},r.mapAsync=function(o){var a=arguments.length>1&&arguments[1]!==void 0?arguments[1]:0,s=arguments.length>2?arguments[2]:void 0;return this.handle.mapAsync(o,a,s)},r.getMappedRange=function(){var o=arguments.length>0&&arguments[0]!==void 0?arguments[0]:0,a=arguments.length>1?arguments[1]:void 0;return this.handle.getMappedRange(o,a)},r.unmap=function(){this.handle.unmap()},g(e)}(A);function ve(t){if(t.includes("webgl"))throw new Error("webgl-only format");return t}function Pr(t,n){var e=Object.keys(t);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(t);n&&(r=r.filter(function(i){return Object.getOwnPropertyDescriptor(t,i).enumerable})),e.push.apply(e,r)}return e}function io(t){for(var n=1;n<arguments.length;n++){var e=arguments[n]!=null?arguments[n]:{};n%2?Pr(Object(e),!0).forEach(function(r){C(t,r,e[r])}):Object.getOwnPropertyDescriptors?Object.defineProperties(t,Object.getOwnPropertyDescriptors(e)):Pr(Object(e)).forEach(function(r){Object.defineProperty(t,r,Object.getOwnPropertyDescriptor(e,r))})}return t}function ao(t){var n=so();return function(){var r=d(t),i;if(n){var o=d(this).constructor;i=Reflect.construct(r,arguments,o)}else i=r.apply(this,arguments);return _(this,i)}}function so(){if(typeof Reflect>"u"||!Reflect.construct||Reflect.construct.sham)return!1;if(typeof Proxy=="function")return!0;try{return Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],function(){})),!0}catch{return!1}}var W=function(t){b(e,t);var n=ao(e);function e(i,o){var a;m(this,e),a=n.call(this,i,o),a.device=void 0,a.handle=void 0,a.device=i;var s=io({},a.props);return s.type!=="comparison-sampler"&&delete s.compare,a.handle=a.handle||a.device.handle.createSampler(s),a.handle.label=a.props.id,a}var r=e.prototype;return r.destroy=function(){},g(e)}(me);function uo(t){var n=co();return function(){var r=d(t),i;if(n){var o=d(this).constructor;i=Reflect.construct(r,arguments,o)}else i=r.apply(this,arguments);return _(this,i)}}function co(){if(typeof Reflect>"u"||!Reflect.construct||Reflect.construct.sham)return!1;if(typeof Proxy=="function")return!0;try{return Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],function(){})),!0}catch{return!1}}var fo={"1d":"1d","2d":"2d","2d-array":"2d",cube:"2d","cube-array":"2d","3d":"3d"},Xe=function(t){b(e,t);var n=uo(e);function e(i,o){var a;if(m(this,e),a=n.call(this,i,o),a.device=void 0,a.handle=void 0,a.view=void 0,a.sampler=void 0,a.height=void 0,a.width=void 0,typeof a.props.format=="number")throw new Error("number format");return a.device=i,a.handle=a.props.handle||a.createHandle(),a.props.data&&a.setData({data:a.props.data}),a.width=a.handle.width,a.height=a.handle.height,a.sampler=o.sampler instanceof W?o.sampler:new W(a.device,o.sampler),a.view=a.handle.createView({}),a}var r=e.prototype;return r.createHandle=function(){var o,a;if(typeof this.props.format=="number")throw new Error("number format");var s=this.props.width||((o=this.props.data)===null||o===void 0?void 0:o.width)||1,u=this.props.height||((a=this.props.data)===null||a===void 0?void 0:a.height)||1;return this.device.handle.createTexture({size:{width:s,height:u,depthOrArrayLayers:this.props.depth},dimension:fo[this.props.dimension],format:ve(this.props.format),usage:this.props.usage,mipLevelCount:this.props.mipLevels,sampleCount:this.props.samples})},r.destroy=function(){this.handle.destroy()},r.setSampler=function(o){return this.sampler=o instanceof W?o:new W(this.device,o),this},r.setData=function(o){return this.setImage({source:o.data})},r.setImage=function(o){var a=o.source,s=o.width,u=s===void 0?o.source.width:s,c=o.height,v=c===void 0?o.source.height:c,h=o.depth,O=h===void 0?1:h,w=o.sourceX,T=w===void 0?0:w,k=o.sourceY,z=k===void 0?0:k,I=o.mipLevel,M=I===void 0?0:I,F=o.x,G=F===void 0?0:F,Q=o.y,ce=Q===void 0?0:Q,ee=o.z,te=ee===void 0?0:ee,$=o.aspect,re=$===void 0?"all":$,p=o.colorSpace,f=p===void 0?"srgb":p,l=o.premultipliedAlpha,y=l===void 0?!1:l;return this.device.handle.queue.copyExternalImageToTexture({source:a,origin:[T,z]},{texture:this.handle,origin:[G,ce,te],mipLevel:M,aspect:re,colorSpace:f,premultipliedAlpha:y},[u,v,O]),{width:u,height:v}},g(e)}(L);function lo(t){var n=po();return function(){var r=d(t),i;if(n){var o=d(this).constructor;i=Reflect.construct(r,arguments,o)}else i=r.apply(this,arguments);return _(this,i)}}function po(){if(typeof Reflect>"u"||!Reflect.construct||Reflect.construct.sham)return!1;if(typeof Proxy=="function")return!0;try{return Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],function(){})),!0}catch{return!1}}var xr=function(t){b(e,t);var n=lo(e);function e(i,o){var a;return m(this,e),a=n.call(this,i,o),a.device=void 0,a.handle=void 0,a.sampler=void 0,a.device=i,a.handle=a.props.handle||a.device.handle.importExternalTexture({source:o.source,colorSpace:o.colorSpace}),a.sampler=null,a}var r=e.prototype;return r.destroy=function(){},r.setSampler=function(o){return this.sampler=o instanceof W?o:new W(this.device,o),this},g(e)}(Fe);var Oe=et(Ee(),1);function ho(t){var n=mo();return function(){var r=d(t),i;if(n){var o=d(this).constructor;i=Reflect.construct(r,arguments,o)}else i=r.apply(this,arguments);return _(this,i)}}function mo(){if(typeof Reflect>"u"||!Reflect.construct||Reflect.construct.sham)return!1;if(typeof Proxy=="function")return!0;try{return Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],function(){})),!0}catch{return!1}}var Je=function(t){b(e,t);var n=ho(e);function e(i,o){var a;return m(this,e),a=n.call(this,i,o),a.device=void 0,a.handle=void 0,a.device=i,a.device.handle.pushErrorScope("validation"),a.handle=a.props.handle||a.createHandle(),a.handle.label=a.props.id,a._checkCompilationError(a.device.handle.popErrorScope()),a}var r=e.prototype;return r._checkCompilationError=function(){var i=Y(Oe.default.mark(function a(s){var u,c;return Oe.default.wrap(function(h){for(;;)switch(h.prev=h.next){case 0:return h.next=2,s;case 2:if(u=h.sent,!u){h.next=9;break}return h.next=6,this.compilationInfo();case 6:throw c=h.sent,x.error("Shader compilation error: ".concat(u.message),c)(),new Error("Shader compilation error: ".concat(u.message));case 9:case"end":return h.stop()}},a,this)}));function o(a){return i.apply(this,arguments)}return o}(),r.destroy=function(){},r.createHandle=function(){var o=this,a=this.props,s=a.source,u=a.stage,c=this.props.language;switch(c==="auto"&&(c=s.includes("->")?"wgsl":"glsl"),c){case"wgsl":return this.device.handle.createShaderModule({code:s});case"glsl":return this.device.handle.createShaderModule({code:s,transform:function(h){return o.device.glslang.compileGLSL(h,u)}});default:throw new Error(c)}},r.compilationInfo=function(){var i=Y(Oe.default.mark(function a(){var s;return Oe.default.wrap(function(c){for(;;)switch(c.prev=c.next){case 0:return c.next=2,this.handle.getCompilationInfo();case 2:return s=c.sent,c.abrupt("return",s.messages);case 4:case"end":return c.stop()}},a,this)}));function o(){return i.apply(this,arguments)}return o}(),g(e)}(Ue);function Or(t,n){var e=Object.keys(t);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(t);n&&(r=r.filter(function(i){return Object.getOwnPropertyDescriptor(t,i).enumerable})),e.push.apply(e,r)}return e}function Cr(t){for(var n=1;n<arguments.length;n++){var e=arguments[n]!=null?arguments[n]:{};n%2?Or(Object(e),!0).forEach(function(r){C(t,r,e[r])}):Object.getOwnPropertyDescriptors?Object.defineProperties(t,Object.getOwnPropertyDescriptors(e)):Or(Object(e)).forEach(function(r){Object.defineProperty(t,r,Object.getOwnPropertyDescriptor(e,r))})}return t}function V(t){return t.depthStencil=t.depthStencil||{format:"depth24plus",stencilFront:{},stencilBack:{},depthWriteEnabled:!1,depthCompare:"less-equal"},t.depthStencil}var go={cullMode:function(n,e,r){r.primitive=r.primitive||{},r.primitive.cullMode=e},frontFace:function(n,e,r){r.primitive=r.primitive||{},r.primitive.frontFace=e},depthWriteEnabled:function(n,e,r){var i=V(r);i.depthWriteEnabled=e},depthCompare:function(n,e,r){var i=V(r);i.depthCompare=e},depthFormat:function(n,e,r){var i=V(r);i.format=e},depthBias:function(n,e,r){var i=V(r);i.depthBias=e},depthBiasSlopeScale:function(n,e,r){var i=V(r);i.depthBiasSlopeScale=e},depthBiasClamp:function(n,e,r){var i=V(r);i.depthBiasClamp=e},stencilReadMask:function(n,e,r){var i=V(r);i.stencilReadMask=e},stencilWriteMask:function(n,e,r){var i=V(r);i.stencilWriteMask=e},stencilCompare:function(n,e,r){var i=V(r);i.stencilFront.compare=e,i.stencilBack.compare=e},stencilPassOperation:function(n,e,r){var i=V(r);i.stencilFront.passOp=e,i.stencilBack.passOp=e},stencilFailOperation:function(n,e,r){var i=V(r);i.stencilFront.failOp=e,i.stencilBack.failOp=e},stencilDepthFailOperation:function(n,e,r){var i=V(r);i.stencilFront.depthFailOp=e,i.stencilBack.depthFailOp=e},sampleCount:function(n,e,r){r.multisample=r.multisample||{},r.multisample.count=e},sampleMask:function(n,e,r){r.multisample=r.multisample||{},r.multisample.mask=e},sampleAlphaToCoverageEnabled:function(n,e,r){r.multisample=r.multisample||{},r.multisample.alphaToCoverageEnabled=e},colorMask:function(n,e,r){var i=Rr(r);i[0].writeMask=e},blendColorOperation:function(n,e,r){Rr(r)}},vo={primitive:{cullMode:"back",topology:"triangle-list"},vertex:{module:void 0,entryPoint:"main"},fragment:{module:void 0,entryPoint:"main",targets:[]},layout:"auto"};function Tr(t){var n=arguments.length>1&&arguments[1]!==void 0?arguments[1]:{};Object.assign(t,Cr(Cr({},vo),t)),yo(t,n)}function yo(t,n){for(var e=0,r=Object.entries(n);e<r.length;e++){var i=B(r[e],2),o=i[0],a=i[1],s=go[o];if(!s)throw new Error("Illegal parameter ".concat(o));s(o,a,t)}}function Rr(t){var n,e,r,i;if(t.fragment.targets=((n=t.fragment)===null||n===void 0?void 0:n.targets)||[],!Array.isArray((e=t.fragment)===null||e===void 0?void 0:e.targets))throw new Error("colorstate");if(((r=t.fragment)===null||r===void 0||(r=r.targets)===null||r===void 0?void 0:r.length)===0){var o;(o=t.fragment.targets)===null||o===void 0||o.push({})}return(i=t.fragment)===null||i===void 0?void 0:i.targets}function Er(t,n,e,r){var i=_o(r,e);return t.createBindGroup({layout:n,entries:i})}function bo(t,n){var e=t.bindings.find(function(r){return r.name===n});return e||x.warn("Binding ".concat(n," not set: Not found in shader layout."))(),e}function _o(t,n){for(var e=[],r=0,i=Object.entries(t);r<i.length;r++){var o=B(i[r],2),a=o[0],s=o[1],u=bo(n,a);u&&e.push(wo(s,u.location))}return e}function wo(t,n){if(t instanceof A)return{binding:n,resource:{buffer:t.handle}};if(t instanceof me)return{binding:n,resource:t.handle};if(t instanceof L)return{binding:n,resource:t.handle.createView()};throw new Error("invalid binding")}function ye(t,n){var e=typeof Symbol<"u"&&t[Symbol.iterator]||t["@@iterator"];if(!e){if(Array.isArray(t)||(e=So(t))||n&&t&&typeof t.length=="number"){e&&(t=e);var r=0,i=function(){};return{s:i,n:function(){return r>=t.length?{done:!0}:{done:!1,value:t[r++]}},e:function(c){throw c},f:i}}throw new TypeError(`Invalid attempt to iterate non-iterable instance.
10
+ In order to be iterable, non-array objects must have a [Symbol.iterator]() method.`)}var o=!0,a=!1,s;return{s:function(){e=e.call(t)},n:function(){var c=e.next();return o=c.done,c},e:function(c){a=!0,s=c},f:function(){try{!o&&e.return!=null&&e.return()}finally{if(a)throw s}}}}function Yn(t,n){if(t){if(typeof t=="string")return yr(t,n);var e=Object.prototype.toString.call(t).slice(8,-1);if(e==="Object"&&t.constructor&&(e=t.constructor.name),e==="Map"||e==="Set")return Array.from(t);if(e==="Arguments"||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(e))return yr(t,n)}}function yr(t,n){(n==null||n>t.length)&&(n=t.length);for(var e=0,r=new Array(n);e<n;e++)r[e]=t[e];return r}function Ye(t,n){var e={},r=xe(t.attributes),i;try{for(r.s();!(i=r.n()).done;){var o=i.value;e[o.name]=Kn(t,n,o.name)}}catch(a){r.e(a)}finally{r.f()}return e}function br(t,n){for(var e=arguments.length>2&&arguments[2]!==void 0?arguments[2]:16,r=Ye(t,n),i=new Array(e).fill(null),o=0,a=Object.values(r);o<a.length;o++){var s=a[o];i[s.location]=s}return i}function Kn(t,n,e){var r=qn(t,e),i=Xn(n,e);if(!r)return null;var o=mr(r.type),a=i?.vertexFormat||o.defaultVertexFormat,s=Z(a);return{attributeName:i?.attributeName||r.name,bufferName:i?.bufferName||r.name,location:r.location,shaderType:r.type,shaderDataType:o.dataType,shaderComponents:o.components,vertexFormat:a,bufferDataType:s.type,bufferComponents:s.components,normalized:s.normalized,integer:o.integer,stepMode:i?.stepMode||r.stepMode,byteOffset:i?.byteOffset||0,byteStride:i?.byteStride||0}}function qn(t,n){var e=t.attributes.find(function(r){return r.name===n});return e||x.warn('shader layout attribute "'.concat(n,'" not present in shader')),e||null}function Xn(t,n){Jn(t);var e=Zn(t,n);return e||(e=Qn(t,n),e)?e:(x.warn('layout for attribute "'.concat(n,'" not present in buffer layout')),null)}function Jn(t){var n=xe(t),e;try{for(n.s();!(e=n.n()).done;){var r=e.value;(r.attributes&&r.format||!r.attributes&&!r.format)&&x.warn("BufferLayout ".concat(name," must have either 'attributes' or 'format' field"))}}catch(i){n.e(i)}finally{n.f()}}function Zn(t,n){var e=xe(t),r;try{for(e.s();!(r=e.n()).done;){var i=r.value;if(i.format&&i.name===n)return{attributeName:i.name,bufferName:n,stepMode:i.stepMode,vertexFormat:i.format,byteOffset:0,byteStride:i.byteStride||0}}}catch(o){e.e(o)}finally{e.f()}return null}function Qn(t,n){var e=xe(t),r;try{for(e.s();!(r=e.n()).done;){var i,o=r.value,a=o.byteStride;if(typeof o.byteStride!="number"){var s=xe(o.attributes||[]),u;try{for(s.s();!(u=s.n()).done;){var c=u.value,v=Z(c.format);a+=v.byteLength}}catch(O){s.e(O)}finally{s.f()}}var h=(i=o.attributes)===null||i===void 0?void 0:i.find(function(O){return O.attribute===n});if(h)return{attributeName:h.attribute,bufferName:o.name,stepMode:o.stepMode,vertexFormat:h.format,byteOffset:h.byteOffset,byteStride:a}}}catch(O){e.e(O)}finally{e.f()}return null}var Sr;function _r(t,n){var e=Object.keys(t);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(t);n&&(r=r.filter(function(i){return Object.getOwnPropertyDescriptor(t,i).enumerable})),e.push.apply(e,r)}return e}function wr(t){for(var n=1;n<arguments.length;n++){var e=arguments[n]!=null?arguments[n]:{};n%2?_r(Object(e),!0).forEach(function(r){C(t,r,e[r])}):Object.getOwnPropertyDescriptors?Object.defineProperties(t,Object.getOwnPropertyDescriptors(e)):_r(Object(e)).forEach(function(r){Object.defineProperty(t,r,Object.getOwnPropertyDescriptor(e,r))})}return t}function eo(t){var n=to();return function(){var r=d(t),i;if(n){var o=d(this).constructor;i=Reflect.construct(r,arguments,o)}else i=r.apply(this,arguments);return _(this,i)}}function to(){if(typeof Reflect>"u"||!Reflect.construct||Reflect.construct.sham)return!1;if(typeof Proxy=="function")return!0;try{return Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],function(){})),!0}catch{return!1}}Sr=Symbol.toStringTag;var Ke=function(t){b(e,t);var n=eo(e);function e(r,i){var o;return m(this,e),o=n.call(this,r,i,e.defaultProps),o.maxVertexAttributes=void 0,o.attributeInfos=void 0,o.indexBuffer=null,o.attributes=void 0,o.maxVertexAttributes=r.limits.maxVertexAttributes,o.attributes=new Array(o.maxVertexAttributes).fill(null),o.attributeInfos=br(i.renderPipeline.shaderLayout,i.renderPipeline.bufferLayout,o.maxVertexAttributes),o}return g(e,[{key:Sr,get:function(){return"VertexArray"}}]),e}(R);Ke.defaultProps=wr(wr({},R.defaultProps),{},{renderPipeline:null});var lt=et(Ee(),1);function ro(t){var n=no();return function(){var r=d(t),i;if(n){var o=d(this).constructor;i=Reflect.construct(r,arguments,o)}else i=r.apply(this,arguments);return _(this,i)}}function no(){if(typeof Reflect>"u"||!Reflect.construct||Reflect.construct.sham)return!1;if(typeof Proxy=="function")return!0;try{return Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],function(){})),!0}catch{return!1}}function oo(t){var n;return t.byteLength||((n=t.data)===null||n===void 0?void 0:n.byteLength)||0}var qe=function(t){b(e,t);var n=ro(e);function e(i,o){var a;m(this,e),a=n.call(this,i,o),a.device=void 0,a.handle=void 0,a.byteLength=void 0,a.device=i,a.byteLength=oo(o);var s=Boolean(o.data),u=Math.ceil(a.byteLength/4)*4;return a.handle=a.props.handle||a.device.handle.createBuffer({size:u,usage:a.props.usage||GPUBufferUsage.VERTEX|GPUBufferUsage.COPY_DST,mappedAtCreation:a.props.mappedAtCreation||s,label:a.props.id}),o.data&&a._writeMapped(o.data),s&&!o.mappedAtCreation&&a.handle.unmap(),a}var r=e.prototype;return r.destroy=function(){this.handle.destroy()},r.write=function(o){var a=arguments.length>1&&arguments[1]!==void 0?arguments[1]:0;this.device.handle.queue.writeBuffer(this.handle,a,o.buffer,o.byteOffset,o.byteLength)},r.readAsync=function(){var i=Y(lt.default.mark(function a(){var s,u,c,v,h,O=arguments;return lt.default.wrap(function(T){for(;;)switch(T.prev=T.next){case 0:return s=O.length>0&&O[0]!==void 0?O[0]:0,u=O.length>1&&O[1]!==void 0?O[1]:this.byteLength,c=new e(this.device,{usage:A.MAP_READ|A.COPY_DST,byteLength:u}),v=this.device.handle.createCommandEncoder(),v.copyBufferToBuffer(this.handle,s,c.handle,0,u),this.device.handle.queue.submit([v.finish()]),T.next=8,c.handle.mapAsync(GPUMapMode.READ,s,u);case 8:return h=c.handle.getMappedRange().slice(0),c.handle.unmap(),c.destroy(),T.abrupt("return",h);case 12:case"end":return T.stop()}},a,this)}));function o(){return i.apply(this,arguments)}return o}(),r._writeMapped=function(o){var a=this.handle.getMappedRange();new o.constructor(a).set(o)},r.mapAsync=function(o){var a=arguments.length>1&&arguments[1]!==void 0?arguments[1]:0,s=arguments.length>2?arguments[2]:void 0;return this.handle.mapAsync(o,a,s)},r.getMappedRange=function(){var o=arguments.length>0&&arguments[0]!==void 0?arguments[0]:0,a=arguments.length>1?arguments[1]:void 0;return this.handle.getMappedRange(o,a)},r.unmap=function(){this.handle.unmap()},g(e)}(A);function ve(t){if(t.includes("webgl"))throw new Error("webgl-only format");return t}function Pr(t,n){var e=Object.keys(t);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(t);n&&(r=r.filter(function(i){return Object.getOwnPropertyDescriptor(t,i).enumerable})),e.push.apply(e,r)}return e}function io(t){for(var n=1;n<arguments.length;n++){var e=arguments[n]!=null?arguments[n]:{};n%2?Pr(Object(e),!0).forEach(function(r){C(t,r,e[r])}):Object.getOwnPropertyDescriptors?Object.defineProperties(t,Object.getOwnPropertyDescriptors(e)):Pr(Object(e)).forEach(function(r){Object.defineProperty(t,r,Object.getOwnPropertyDescriptor(e,r))})}return t}function ao(t){var n=so();return function(){var r=d(t),i;if(n){var o=d(this).constructor;i=Reflect.construct(r,arguments,o)}else i=r.apply(this,arguments);return _(this,i)}}function so(){if(typeof Reflect>"u"||!Reflect.construct||Reflect.construct.sham)return!1;if(typeof Proxy=="function")return!0;try{return Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],function(){})),!0}catch{return!1}}var W=function(t){b(e,t);var n=ao(e);function e(i,o){var a;m(this,e),a=n.call(this,i,o),a.device=void 0,a.handle=void 0,a.device=i;var s=io({},a.props);return s.type!=="comparison-sampler"&&delete s.compare,a.handle=a.handle||a.device.handle.createSampler(s),a.handle.label=a.props.id,a}var r=e.prototype;return r.destroy=function(){},g(e)}(me);function uo(t){var n=co();return function(){var r=d(t),i;if(n){var o=d(this).constructor;i=Reflect.construct(r,arguments,o)}else i=r.apply(this,arguments);return _(this,i)}}function co(){if(typeof Reflect>"u"||!Reflect.construct||Reflect.construct.sham)return!1;if(typeof Proxy=="function")return!0;try{return Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],function(){})),!0}catch{return!1}}var fo={"1d":"1d","2d":"2d","2d-array":"2d",cube:"2d","cube-array":"2d","3d":"3d"},Xe=function(t){b(e,t);var n=uo(e);function e(i,o){var a;if(m(this,e),a=n.call(this,i,o),a.device=void 0,a.handle=void 0,a.view=void 0,a.sampler=void 0,a.height=void 0,a.width=void 0,typeof a.props.format=="number")throw new Error("number format");return a.device=i,a.handle=a.props.handle||a.createHandle(),a.props.data&&a.setData({data:a.props.data}),a.width=a.handle.width,a.height=a.handle.height,a.sampler=o.sampler instanceof W?o.sampler:new W(a.device,o.sampler),a.view=a.handle.createView({}),a}var r=e.prototype;return r.createHandle=function(){var o,a;if(typeof this.props.format=="number")throw new Error("number format");var s=this.props.width||((o=this.props.data)===null||o===void 0?void 0:o.width)||1,u=this.props.height||((a=this.props.data)===null||a===void 0?void 0:a.height)||1;return this.device.handle.createTexture({size:{width:s,height:u,depthOrArrayLayers:this.props.depth},dimension:fo[this.props.dimension],format:ve(this.props.format),usage:this.props.usage,mipLevelCount:this.props.mipLevels,sampleCount:this.props.samples})},r.destroy=function(){this.handle.destroy()},r.setSampler=function(o){return this.sampler=o instanceof W?o:new W(this.device,o),this},r.setData=function(o){return this.setImage({source:o.data})},r.setImage=function(o){var a=o.source,s=o.width,u=s===void 0?o.source.width:s,c=o.height,v=c===void 0?o.source.height:c,h=o.depth,O=h===void 0?1:h,w=o.sourceX,T=w===void 0?0:w,k=o.sourceY,z=k===void 0?0:k,I=o.mipLevel,M=I===void 0?0:I,F=o.x,G=F===void 0?0:F,Q=o.y,ce=Q===void 0?0:Q,ee=o.z,te=ee===void 0?0:ee,$=o.aspect,re=$===void 0?"all":$,p=o.colorSpace,f=p===void 0?"srgb":p,l=o.premultipliedAlpha,y=l===void 0?!1:l;return this.device.handle.queue.copyExternalImageToTexture({source:a,origin:[T,z]},{texture:this.handle,origin:[G,ce,te],mipLevel:M,aspect:re,colorSpace:f,premultipliedAlpha:y},[u,v,O]),{width:u,height:v}},g(e)}(L);function lo(t){var n=po();return function(){var r=d(t),i;if(n){var o=d(this).constructor;i=Reflect.construct(r,arguments,o)}else i=r.apply(this,arguments);return _(this,i)}}function po(){if(typeof Reflect>"u"||!Reflect.construct||Reflect.construct.sham)return!1;if(typeof Proxy=="function")return!0;try{return Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],function(){})),!0}catch{return!1}}var xr=function(t){b(e,t);var n=lo(e);function e(i,o){var a;return m(this,e),a=n.call(this,i,o),a.device=void 0,a.handle=void 0,a.sampler=void 0,a.device=i,a.handle=a.props.handle||a.device.handle.importExternalTexture({source:o.source,colorSpace:o.colorSpace}),a.sampler=null,a}var r=e.prototype;return r.destroy=function(){},r.setSampler=function(o){return this.sampler=o instanceof W?o:new W(this.device,o),this},g(e)}(Fe);var Oe=et(Ee(),1);function ho(t){var n=mo();return function(){var r=d(t),i;if(n){var o=d(this).constructor;i=Reflect.construct(r,arguments,o)}else i=r.apply(this,arguments);return _(this,i)}}function mo(){if(typeof Reflect>"u"||!Reflect.construct||Reflect.construct.sham)return!1;if(typeof Proxy=="function")return!0;try{return Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],function(){})),!0}catch{return!1}}var Je=function(t){b(e,t);var n=ho(e);function e(i,o){var a;return m(this,e),a=n.call(this,i,o),a.device=void 0,a.handle=void 0,a.device=i,a.device.handle.pushErrorScope("validation"),a.handle=a.props.handle||a.createHandle(),a.handle.label=a.props.id,a._checkCompilationError(a.device.handle.popErrorScope()),a}var r=e.prototype;return r._checkCompilationError=function(){var i=Y(Oe.default.mark(function a(s){var u,c;return Oe.default.wrap(function(h){for(;;)switch(h.prev=h.next){case 0:return h.next=2,s;case 2:if(u=h.sent,!u){h.next=9;break}return h.next=6,this.compilationInfo();case 6:throw c=h.sent,x.error("Shader compilation error: ".concat(u.message),c)(),new Error("Shader compilation error: ".concat(u.message));case 9:case"end":return h.stop()}},a,this)}));function o(a){return i.apply(this,arguments)}return o}(),r.destroy=function(){},r.createHandle=function(){var o=this,a=this.props,s=a.source,u=a.stage,c=this.props.language;switch(c==="auto"&&(c=s.includes("->")?"wgsl":"glsl"),c){case"wgsl":return this.device.handle.createShaderModule({code:s});case"glsl":return this.device.handle.createShaderModule({code:s,transform:function(h){return o.device.glslang.compileGLSL(h,u)}});default:throw new Error(c)}},r.compilationInfo=function(){var i=Y(Oe.default.mark(function a(){var s;return Oe.default.wrap(function(c){for(;;)switch(c.prev=c.next){case 0:return c.next=2,this.handle.getCompilationInfo();case 2:return s=c.sent,c.abrupt("return",s.messages);case 4:case"end":return c.stop()}},a,this)}));function o(){return i.apply(this,arguments)}return o}(),g(e)}(Ue);function Or(t,n){var e=Object.keys(t);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(t);n&&(r=r.filter(function(i){return Object.getOwnPropertyDescriptor(t,i).enumerable})),e.push.apply(e,r)}return e}function Cr(t){for(var n=1;n<arguments.length;n++){var e=arguments[n]!=null?arguments[n]:{};n%2?Or(Object(e),!0).forEach(function(r){C(t,r,e[r])}):Object.getOwnPropertyDescriptors?Object.defineProperties(t,Object.getOwnPropertyDescriptors(e)):Or(Object(e)).forEach(function(r){Object.defineProperty(t,r,Object.getOwnPropertyDescriptor(e,r))})}return t}function V(t){return t.depthStencil=t.depthStencil||{format:"depth24plus",stencilFront:{},stencilBack:{},depthWriteEnabled:!1,depthCompare:"less-equal"},t.depthStencil}var go={cullMode:function(n,e,r){r.primitive=r.primitive||{},r.primitive.cullMode=e},frontFace:function(n,e,r){r.primitive=r.primitive||{},r.primitive.frontFace=e},depthWriteEnabled:function(n,e,r){var i=V(r);i.depthWriteEnabled=e},depthCompare:function(n,e,r){var i=V(r);i.depthCompare=e},depthFormat:function(n,e,r){var i=V(r);i.format=e},depthBias:function(n,e,r){var i=V(r);i.depthBias=e},depthBiasSlopeScale:function(n,e,r){var i=V(r);i.depthBiasSlopeScale=e},depthBiasClamp:function(n,e,r){var i=V(r);i.depthBiasClamp=e},stencilReadMask:function(n,e,r){var i=V(r);i.stencilReadMask=e},stencilWriteMask:function(n,e,r){var i=V(r);i.stencilWriteMask=e},stencilCompare:function(n,e,r){var i=V(r);i.stencilFront.compare=e,i.stencilBack.compare=e},stencilPassOperation:function(n,e,r){var i=V(r);i.stencilFront.passOp=e,i.stencilBack.passOp=e},stencilFailOperation:function(n,e,r){var i=V(r);i.stencilFront.failOp=e,i.stencilBack.failOp=e},stencilDepthFailOperation:function(n,e,r){var i=V(r);i.stencilFront.depthFailOp=e,i.stencilBack.depthFailOp=e},sampleCount:function(n,e,r){r.multisample=r.multisample||{},r.multisample.count=e},sampleMask:function(n,e,r){r.multisample=r.multisample||{},r.multisample.mask=e},sampleAlphaToCoverageEnabled:function(n,e,r){r.multisample=r.multisample||{},r.multisample.alphaToCoverageEnabled=e},colorMask:function(n,e,r){var i=Rr(r);i[0].writeMask=e},blendColorOperation:function(n,e,r){Rr(r)}},vo={primitive:{cullMode:"back",topology:"triangle-list"},vertex:{module:void 0,entryPoint:"main"},fragment:{module:void 0,entryPoint:"main",targets:[]},layout:"auto"};function Tr(t){var n=arguments.length>1&&arguments[1]!==void 0?arguments[1]:{};Object.assign(t,Cr(Cr({},vo),t)),yo(t,n)}function yo(t,n){for(var e=0,r=Object.entries(n);e<r.length;e++){var i=B(r[e],2),o=i[0],a=i[1],s=go[o];if(!s)throw new Error("Illegal parameter ".concat(o));s(o,a,t)}}function Rr(t){var n,e,r,i;if(t.fragment.targets=((n=t.fragment)===null||n===void 0?void 0:n.targets)||[],!Array.isArray((e=t.fragment)===null||e===void 0?void 0:e.targets))throw new Error("colorstate");if(((r=t.fragment)===null||r===void 0||(r=r.targets)===null||r===void 0?void 0:r.length)===0){var o;(o=t.fragment.targets)===null||o===void 0||o.push({})}return(i=t.fragment)===null||i===void 0?void 0:i.targets}function Er(t,n,e,r){var i=_o(r,e);return t.createBindGroup({layout:n,entries:i})}function bo(t,n){var e=t.bindings.find(function(r){return r.name===n});return e||x.warn("Binding ".concat(n," not set: Not found in shader layout."))(),e}function _o(t,n){for(var e=[],r=0,i=Object.entries(t);r<i.length;r++){var o=B(i[r],2),a=o[0],s=o[1],u=bo(n,a);u&&e.push(wo(s,u.location))}return e}function wo(t,n){if(t instanceof A)return{binding:n,resource:{buffer:t.handle}};if(t instanceof me)return{binding:n,resource:t.handle};if(t instanceof L)return{binding:n,resource:t.handle.createView()};throw new Error("invalid binding")}function ye(t,n){var e=typeof Symbol<"u"&&t[Symbol.iterator]||t["@@iterator"];if(!e){if(Array.isArray(t)||(e=So(t))||n&&t&&typeof t.length=="number"){e&&(t=e);var r=0,i=function(){};return{s:i,n:function(){return r>=t.length?{done:!0}:{done:!1,value:t[r++]}},e:function(c){throw c},f:i}}throw new TypeError(`Invalid attempt to iterate non-iterable instance.
11
11
  In order to be iterable, non-array objects must have a [Symbol.iterator]() method.`)}var o=!0,a=!1,s;return{s:function(){e=e.call(t)},n:function(){var c=e.next();return o=c.done,c},e:function(c){a=!0,s=c},f:function(){try{!o&&e.return!=null&&e.return()}finally{if(a)throw s}}}}function So(t,n){if(t){if(typeof t=="string")return Ar(t,n);var e=Object.prototype.toString.call(t).slice(8,-1);if(e==="Object"&&t.constructor&&(e=t.constructor.name),e==="Map"||e==="Set")return Array.from(t);if(e==="Arguments"||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(e))return Ar(t,n)}}function Ar(t,n){(n==null||n>t.length)&&(n=t.length);for(var e=0,r=new Array(n);e<n;e++)r[e]=t[e];return r}function pt(t){if(t.endsWith("-webgl"))throw new Error("WebGPU does not support vertex format ".concat(t));return t}function jr(t,n){var e=Ye(t,n),r=[],i=new Set,o=ye(n),a;try{for(o.s();!(a=o.n()).done;){var s=a.value,u=[],c="vertex",v=0;if(s.attributes){var h=ye(s.attributes),O;try{for(h.s();!(O=h.n()).done;){var w=O.value,T=w.attribute,k=Br(t,T,i);c=k.stepMode||"vertex",u.push({format:pt(w.format||s.format),offset:w.byteOffset,shaderLocation:k.location}),v+=Z(s.format).byteLength}}catch(G){h.e(G)}finally{h.f()}}else{var z=Br(t,s.name,i);v=Z(s.format).byteLength,c=z.stepMode||"vertex",u.push({format:pt(s.format),offset:0,shaderLocation:z.location})}r.push({arrayStride:s.byteStride||v,stepMode:c||"vertex",attributes:u})}}catch(G){o.e(G)}finally{o.f()}var I=ye(t.attributes),M;try{for(I.s();!(M=I.n()).done;){var F=M.value;i.has(F.name)||r.push({arrayStride:Z("float32x3").byteLength,stepMode:F.stepMode||"vertex",attributes:[{format:pt("float32x3"),offset:0,shaderLocation:F.location}]})}}catch(G){I.e(G)}finally{I.f()}return r}function Ir(t,n){var e=new Set,r=0,i={},o=ye(n),a;try{for(o.s();!(a=o.n()).done;){var s=a.value;if("attributes"in s){var u=ye(s.attributes),c;try{for(u.s();!(c=u.n()).done;){var v=c.value;e.add(v.attribute)}}catch(T){u.e(T)}finally{u.f()}}else e.add(s.name);i[s.name]=r++}}catch(T){o.e(T)}finally{o.f()}var h=ye(t.attributes),O;try{for(h.s();!(O=h.n()).done;){var w=O.value;e.has(w.name)||(i[w.name]=r++)}}catch(T){h.e(T)}finally{h.f()}return i}function Br(t,n,e){var r=t.attributes.find(function(i){return i.name===n});if(!r)throw new Error("Unknown attribute ".concat(n));if(e.has(n))throw new Error("Duplicate attribute ".concat(n));return e.add(n),r}function Po(t){var n=xo();return function(){var r=d(t),i;if(n){var o=d(this).constructor;i=Reflect.construct(r,arguments,o)}else i=r.apply(this,arguments);return _(this,i)}}function xo(){if(typeof Reflect>"u"||!Reflect.construct||Reflect.construct.sham)return!1;if(typeof Proxy=="function")return!0;try{return Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],function(){})),!0}catch{return!1}}var Dr=function(t){b(e,t);var n=Po(e);function e(i,o){var a;if(m(this,e),a=n.call(this,i,o),a.device=void 0,a.handle=void 0,a.vs=void 0,a.fs=null,a._bufferSlots=void 0,a._buffers=void 0,a._indexBuffer=null,a._bindGroupLayout=null,a._bindGroup=null,a.device=i,a.handle=a.props.handle,!a.handle){var s=a._getRenderPipelineDescriptor();x.groupCollapsed(1,"new WebGPURenderPipeline(".concat(a.id,")"))(),x.probe(1,JSON.stringify(s,null,2))(),x.groupEnd(1)(),a.handle=a.device.handle.createRenderPipeline(s)}return a.handle.label=a.props.id,a.vs=o.vs,a.fs=o.fs,a._bufferSlots=Ir(a.props.shaderLayout,a.props.bufferLayout),a._buffers=new Array(Object.keys(a._bufferSlots).length).fill(null),a}var r=e.prototype;return r.destroy=function(){},r.setIndexBuffer=function(o){this._indexBuffer=o},r.setAttributes=function(o){for(var a=0,s=Object.entries(o);a<s.length;a++){var u=B(s[a],2),c=u[0],v=u[1],h=this._bufferSlots[c];if(h>=0)this._buffers[h]=v;else throw new Error("Setting attribute '".concat(c,"' not listed in shader layout for program ").concat(this.id))}},r.setConstantAttributes=function(o){throw new Error("not implemented")},r.setBindings=function(o){Ne(this.props.bindings)||(Object.assign(this.props.bindings,o),this._bindGroupLayout=this._bindGroupLayout||this.handle.getBindGroupLayout(0),this._bindGroup=Er(this.device.handle,this._bindGroupLayout,this.props.shaderLayout,this.props.bindings))},r.setUniforms=function(o){if(!Ne(o))throw new Error("WebGPU does not support uniforms")},r._getBuffers=function(){return this._buffers},r._getBindGroup=function(){return this._bindGroup},r._getRenderPipelineDescriptor=function(){var o={module:this.props.vs.handle,entryPoint:this.props.vsEntryPoint||"main",buffers:jr(this.props.shaderLayout,this.props.bufferLayout)},a;if(this.props.fs){var s;a={module:this.props.fs.handle,entryPoint:this.props.fsEntryPoint||"main",targets:[{format:ve((s=this.device)===null||s===void 0||(s=s.canvasContext)===null||s===void 0?void 0:s.format)}]}}switch(this.props.topology){case"triangle-fan-webgl":case"line-loop-webgl":throw new Error("WebGPU does not support primitive topology ".concat(this.props.topology));default:}var u={vertex:o,fragment:a,primitive:{topology:this.props.topology},layout:"auto"};return Tr(u,this.props.parameters),u},r.draw=function(o){var a=o.renderPass||this.device.getDefaultRenderPass();a.handle.setPipeline(this.handle);var s=this._getBindGroup();s&&a.handle.setBindGroup(0,s),this._setAttributeBuffers(a),o.indexCount?a.handle.drawIndexed(o.indexCount,o.instanceCount,o.firstIndex,o.baseVertex,o.firstInstance):a.handle.draw(o.vertexCount||0,o.instanceCount||1,o.firstInstance)},r._setAttributeBuffers=function(o){var a=this;this._indexBuffer&&o.handle.setIndexBuffer(this._indexBuffer.handle,this._indexBuffer.props.indexType);for(var s=this._getBuffers(),u=function(h){var O=s[h];if(!O){var w=a.props.shaderLayout.attributes.find(function(T){return T.location===h});throw new Error("No buffer provided for attribute '".concat(w?.name||"","' in Model '").concat(a.props.id,"'"))}o.handle.setVertexBuffer(h,O.handle)},c=0;c<s.length;++c)u(c)},g(e)}(Ve);function Oo(t){var n=Co();return function(){var r=d(t),i;if(n){var o=d(this).constructor;i=Reflect.construct(r,arguments,o)}else i=r.apply(this,arguments);return _(this,i)}}function Co(){if(typeof Reflect>"u"||!Reflect.construct||Reflect.construct.sham)return!1;if(typeof Proxy=="function")return!0;try{return Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],function(){})),!0}catch{return!1}}var Gr=function(t){b(e,t);var n=Oo(e);function e(i,o){var a;m(this,e),a=n.call(this,i,o),a.device=void 0,a.handle=void 0,a.device=i;var s=a.props.cs.handle;return a.handle=a.props.handle||a.device.handle.createComputePipeline({label:a.props.id,compute:{module:s,entryPoint:a.props.csEntryPoint},layout:"auto"}),a}var r=e.prototype;return r._getBindGroupLayout=function(){return this.handle.getBindGroupLayout(0)},g(e)}(ze);function Ro(t){var n=To();return function(){var r=d(t),i;if(n){var o=d(this).constructor;i=Reflect.construct(r,arguments,o)}else i=r.apply(this,arguments);return _(this,i)}}function To(){if(typeof Reflect>"u"||!Reflect.construct||Reflect.construct.sham)return!1;if(typeof Proxy=="function")return!0;try{return Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],function(){})),!0}catch{return!1}}var Nr=function(t){b(e,t);var n=Ro(e);function e(i){var o,a=arguments.length>1&&arguments[1]!==void 0?arguments[1]:{};m(this,e),o=n.call(this,i,a),o.device=void 0,o.handle=void 0,o.pipeline=null,o.device=i;var s=a.framebuffer||i.canvasContext.getCurrentFramebuffer(),u=o.getRenderPassDescriptor(s);return x.groupCollapsed(1,"new WebGPURenderPass(".concat(o.id,")"))(),x.probe(1,JSON.stringify(u,null,2))(),x.groupEnd(1)(),o.handle=o.props.handle||i.commandEncoder.beginRenderPass(u),o.handle.label=o.props.id,o}var r=e.prototype;return r.destroy=function(){},r.end=function(){this.handle.end()},r.setPipeline=function(o){this.pipeline=o,this.handle.setPipeline(this.pipeline.handle)},r.setBindings=function(o){var a,s;(a=this.pipeline)===null||a===void 0||a.setBindings(o);var u=(s=this.pipeline)===null||s===void 0?void 0:s._getBindGroup();u&&this.handle.setBindGroup(0,u)},r.setIndexBuffer=function(o,a){var s=arguments.length>2&&arguments[2]!==void 0?arguments[2]:0,u=arguments.length>3?arguments[3]:void 0;this.handle.setIndexBuffer(o.handle,a,s,u)},r.setVertexBuffer=function(o,a){var s=arguments.length>2&&arguments[2]!==void 0?arguments[2]:0;this.handle.setVertexBuffer(o,a.handle,s)},r.draw=function(o){o.indexCount?this.handle.drawIndexed(o.indexCount,o.instanceCount,o.firstIndex,o.baseVertex,o.firstInstance):this.handle.draw(o.vertexCount||0,o.instanceCount||1,o.firstIndex,o.firstInstance)},r.drawIndirect=function(){},r.setParameters=function(o){var a=o.blendConstant,s=o.stencilReference,u=o.scissorRect,c=o.viewport;a&&this.handle.setBlendConstant(a),s&&this.handle.setStencilReference(s),u&&this.handle.setScissorRect(u[0],u[1],u[2],u[3]),c&&this.handle.setViewport(c[0],c[1],c[2],c[3],c[4],c[5])},r.pushDebugGroup=function(o){this.handle.pushDebugGroup(o)},r.popDebugGroup=function(){this.handle.popDebugGroup()},r.insertDebugMarker=function(o){this.handle.insertDebugMarker(o)},r.getRenderPassDescriptor=function(o){var a=this,s={colorAttachments:[]};if(s.colorAttachments=o.colorAttachments.map(function(h){return{loadOp:a.props.clearColor!==!1?"clear":"load",colorClearValue:a.props.clearColor||[0,0,0,0],storeOp:a.props.discard?"discard":"store",view:h.handle.createView()}}),o.depthStencilAttachment){s.depthStencilAttachment={view:o.depthStencilAttachment.handle.createView()};var u=s.depthStencilAttachment;this.props.depthReadOnly&&(u.depthReadOnly=!0),u.depthClearValue=this.props.clearDepth||0;var c=!0;c&&(u.depthLoadOp=this.props.clearDepth!==!1?"clear":"load",u.depthStoreOp="store");var v=!1;v&&(u.stencilLoadOp=this.props.clearStencil!==!1?"clear":"load",u.stencilStoreOp="store")}return s},g(e)}(He);function Eo(t){var n=Ao();return function(){var r=d(t),i;if(n){var o=d(this).constructor;i=Reflect.construct(r,arguments,o)}else i=r.apply(this,arguments);return _(this,i)}}function Ao(){if(typeof Reflect>"u"||!Reflect.construct||Reflect.construct.sham)return!1;if(typeof Proxy=="function")return!0;try{return Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],function(){})),!0}catch{return!1}}var Lr=function(t){b(e,t);var n=Eo(e);function e(i,o){var a,s;return m(this,e),s=n.call(this,i,o),s.device=void 0,s.handle=void 0,s._bindGroupLayout=null,s.device=i,s.handle=s.props.handle||((a=i.commandEncoder)===null||a===void 0?void 0:a.beginComputePass({label:s.props.id})),s}var r=e.prototype;return r.destroy=function(){},r.end=function(){this.handle.end()},r.setPipeline=function(o){var a=o;this.handle.setPipeline(a.handle),this._bindGroupLayout=a._getBindGroupLayout()},r.setBindings=function(o){throw new Error("fix me")},r.dispatch=function(o,a,s){this.handle.dispatchWorkgroups(o,a,s)},r.dispatchIndirect=function(o){var a=arguments.length>1&&arguments[1]!==void 0?arguments[1]:0;this.handle.dispatchWorkgroupsIndirect(o.handle,a)},r.pushDebugGroup=function(o){this.handle.pushDebugGroup(o)},r.popDebugGroup=function(){this.handle.popDebugGroup()},r.insertDebugMarker=function(o){this.handle.insertDebugMarker(o)},g(e)}($e);var Mr;function Bo(t){var n=jo();return function(){var r=d(t),i;if(n){var o=d(this).constructor;i=Reflect.construct(r,arguments,o)}else i=r.apply(this,arguments);return _(this,i)}}function jo(){if(typeof Reflect>"u"||!Reflect.construct||Reflect.construct.sham)return!1;if(typeof Proxy=="function")return!0;try{return Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],function(){})),!0}catch{return!1}}Mr=Symbol.toStringTag;var kr=function(t){b(e,t);var n=Bo(e);e.isConstantAttributeZeroSupported=function(o){return o.info.type==="webgl2"||Be()==="Chrome"};function e(i,o){var a;return m(this,e),a=n.call(this,i,o),a.device=void 0,a.handle=void 0,a.device=i,a}var r=e.prototype;return r.destroy=function(){},r.setIndexBuffer=function(o){this.indexBuffer=o},r.setBuffer=function(o,a){this.attributes[o]=a},r.setConstant=function(o,a){x.warn("".concat(this.id," constant attributes not supported on WebGPU"))},r.bindBeforeRender=function(o,a,s){var u=o,c=this.indexBuffer;u.handle.setIndexBuffer(c?.handle,c?.indexType);for(var v=0;v<this.maxVertexAttributes;v++){var h=this.attributes[v];u.handle.setVertexBuffer(v,h.handle)}},r.unbindAfterRender=function(o){},g(e,[{key:Mr,get:function(){return"WebGPUVertexArray"}}]),e}(Ke);function Io(t){var n=Do();return function(){var r=d(t),i;if(n){var o=d(this).constructor;i=Reflect.construct(r,arguments,o)}else i=r.apply(this,arguments);return _(this,i)}}function Do(){if(typeof Reflect>"u"||!Reflect.construct||Reflect.construct.sham)return!1;if(typeof Proxy=="function")return!0;try{return Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],function(){})),!0}catch{return!1}}var Fr=function(t){b(e,t);var n=Io(e);function e(r,i){var o;return m(this,e),o=n.call(this,r,i),o.device=void 0,o.device=r,o.autoCreateAttachmentTextures(),o}return g(e)}(We);function Go(t){var n=No();return function(){var r=d(t),i;if(n){var o=d(this).constructor;i=Reflect.construct(r,arguments,o)}else i=r.apply(this,arguments);return _(this,i)}}function No(){if(typeof Reflect>"u"||!Reflect.construct||Reflect.construct.sham)return!1;if(typeof Proxy=="function")return!0;try{return Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],function(){})),!0}catch{return!1}}var dt=function(t){b(e,t);var n=Go(e);function e(i,o,a){var s;return m(this,e),s=n.call(this,a),s.device=void 0,s.gpuCanvasContext=void 0,s.format=navigator.gpu.getPreferredCanvasFormat(),s.depthStencilFormat="depth24plus",s.depthStencilAttachment=null,s.device=i,s.width=-1,s.height=-1,s._setAutoCreatedCanvasId("".concat(s.device.id,"-canvas")),s.gpuCanvasContext=s.canvas.getContext("webgpu"),s.format="bgra8unorm",s}var r=e.prototype;return r.destroy=function(){this.gpuCanvasContext.unconfigure()},r.getCurrentTexture=function(){return this.device._createTexture({id:"default-render-target",handle:this.gpuCanvasContext.getCurrentTexture()})},r.getCurrentFramebuffer=function(){this.update();var o=this.getCurrentTexture();return this.width=o.width,this.height=o.height,this._createDepthStencilAttachment(),new Fr(this.device,{colorAttachments:[o],depthStencilAttachment:this.depthStencilAttachment})},r.update=function(){var o=this.getPixelSize(),a=B(o,2),s=a[0],u=a[1],c=s!==this.width||u!==this.height;c&&(this.width=s,this.height=u,this.depthStencilAttachment&&(this.depthStencilAttachment.destroy(),this.depthStencilAttachment=null),this.gpuCanvasContext.configure({device:this.device.handle,format:ve(this.format),colorSpace:this.props.colorSpace,alphaMode:this.props.alphaMode}),x.log(1,"Resized to ".concat(this.width,"x").concat(this.height,"px"))())},r.resize=function(o){this.update()},r._createDepthStencilAttachment=function(){return this.depthStencilAttachment||(this.depthStencilAttachment=this.device.createTexture({id:"depth-stencil-target",format:this.depthStencilFormat,width:this.width,height:this.height,usage:GPUTextureUsage.RENDER_ATTACHMENT})),this.depthStencilAttachment},g(e)}(he);function Ur(t,n){var e=Object.keys(t);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(t);n&&(r=r.filter(function(i){return Object.getOwnPropertyDescriptor(t,i).enumerable})),e.push.apply(e,r)}return e}function Wr(t){for(var n=1;n<arguments.length;n++){var e=arguments[n]!=null?arguments[n]:{};n%2?Ur(Object(e),!0).forEach(function(r){C(t,r,e[r])}):Object.getOwnPropertyDescriptors?Object.defineProperties(t,Object.getOwnPropertyDescriptors(e)):Ur(Object(e)).forEach(function(r){Object.defineProperty(t,r,Object.getOwnPropertyDescriptor(e,r))})}return t}function Lo(t){var n=Mo();return function(){var r=d(t),i;if(n){var o=d(this).constructor;i=Reflect.construct(r,arguments,o)}else i=r.apply(this,arguments);return _(this,i)}}function Mo(){if(typeof Reflect>"u"||!Reflect.construct||Reflect.construct.sham)return!1;if(typeof Proxy=="function")return!0;try{return Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],function(){})),!0}catch{return!1}}var ht=function(t){b(e,t);var n=Lo(e);e.isSupported=function(){return Boolean(typeof navigator<"u"&&navigator.gpu)},e.create=function(){var i=Y(Ce.default.mark(function a(s){var u,c,v,h;return Ce.default.wrap(function(w){for(;;)switch(w.prev=w.next){case 0:if(navigator.gpu){w.next=2;break}throw new Error("WebGPU not available. Open in Chrome Canary and turn on chrome://flags/#enable-unsafe-webgpu");case 2:return x.groupCollapsed(1,"WebGPUDevice created")(),w.next=5,navigator.gpu.requestAdapter({powerPreference:"high-performance"});case 5:if(u=w.sent,u){w.next=8;break}throw new Error("Failed to request WebGPU adapter");case 8:return w.next=10,u.requestAdapterInfo();case 10:return c=w.sent,x.probe(1,"Adapter available",c)(),w.next=14,u.requestDevice({requiredFeatures:u.features});case 14:if(v=w.sent,x.probe(1,"GPUDevice available")(),typeof s.canvas!="string"){w.next=20;break}return w.next=19,he.pageLoaded;case 19:x.probe(1,"DOM is loaded")();case 20:return h=new e(v,u,s),x.probe(1,"Device created",h.info)(),x.table(1,h.info)(),x.groupEnd(1)(),w.abrupt("return",h);case 25:case"end":return w.stop()}},a)}));function o(a){return i.apply(this,arguments)}return o}();function e(i,o,a){var s;return m(this,e),s=n.call(this,Wr(Wr({},a),{},{id:a.id||ue("webgpu-device")})),s.handle=void 0,s.adapter=void 0,s.lost=void 0,s.canvasContext=null,s.commandEncoder=null,s.renderPass=null,s._info=void 0,s._isLost=!1,s.features=void 0,s.handle=i,s.adapter=o,s._info={type:"webgpu",vendor:s.adapter.__brand,renderer:"",version:"",gpu:"unknown",shadingLanguages:["wgsl"],shadingLanguageVersions:{glsl:"450",wgsl:"100"},vendorMasked:"",rendererMasked:""},s.lost=new Promise(function(){var u=Y(Ce.default.mark(function c(v){var h;return Ce.default.wrap(function(w){for(;;)switch(w.prev=w.next){case 0:return w.next=2,s.handle.lost;case 2:h=w.sent,s._isLost=!0,v({reason:"destroyed",message:h.message});case 5:case"end":return w.stop()}},c)}));return function(c){return u.apply(this,arguments)}}()),s.canvasContext=new dt(_e(s),s.adapter,{canvas:a.canvas}),s.features=s._getFeatures(),s}var r=e.prototype;return r.destroy=function(){this.handle.destroy()},r.isTextureFormatSupported=function(o){return!o.includes("webgl")},r.isTextureFormatFilterable=function(o){return this.isTextureFormatSupported(o)},r.isTextureFormatRenderable=function(o){return this.isTextureFormatSupported(o)},r.createBuffer=function(o){var a=this._getBufferProps(o);return new qe(this,a)},r._createTexture=function(o){return new Xe(this,o)},r.createExternalTexture=function(o){return new xr(this,o)},r.createShader=function(o){return new Je(this,o)},r.createSampler=function(o){return new W(this,o)},r.createRenderPipeline=function(o){return new Dr(this,o)},r.createFramebuffer=function(o){throw new Error("Not implemented")},r.createComputePipeline=function(o){return new Gr(this,o)},r.createVertexArray=function(o){return new kr(this,o)},r.beginRenderPass=function(o){return this.commandEncoder=this.commandEncoder||this.handle.createCommandEncoder(),new Nr(this,o)},r.beginComputePass=function(o){return this.commandEncoder=this.commandEncoder||this.handle.createCommandEncoder(),new Lr(this,o)},r.createCanvasContext=function(o){return new dt(this,this.adapter,o)},r.getDefaultRenderPass=function(){throw new Error("a")},r.submit=function(){var o,a=(o=this.commandEncoder)===null||o===void 0?void 0:o.finish();a&&this.handle.queue.submit([a]),this.commandEncoder=null},r._getFeatures=function(){var o=new Set(this.handle.features);return o.has("depth-clamping")&&(o.delete("depth-clamping"),o.add("depth-clip-control")),o.has("texture-compression-bc")&&o.add("texture-compression-bc5-webgl"),o.add("webgpu"),o.add("timer-query-webgl"),o.add("vertex-array-object-webgl1"),o.add("instanced-rendering-webgl1"),o.add("multiple-render-targets-webgl1"),o.add("index-uint32-webgl1"),o.add("blend-minmax-webgl1"),o.add("texture-blend-float-webgl1"),o.add("texture-formats-srgb-webgl1"),o.add("texture-formats-depth-webgl1"),o.add("texture-formats-float32-webgl1"),o.add("texture-formats-float16-webgl1"),o.add("texture-filter-linear-float32-webgl"),o.add("texture-filter-linear-float16-webgl"),o.add("texture-filter-anisotropic-webgl"),o.add("texture-renderable-rgba32float-webgl"),o.add("texture-renderable-float32-webgl"),o.add("texture-renderable-float16-webgl"),o.add("glsl-frag-data"),o.add("glsl-frag-depth"),o.add("glsl-derivatives"),o.add("glsl-texture-lod"),o},r.copyExternalImageToTexture=function(o){var a,s=o.source,u=o.sourceX,c=u===void 0?0:u,v=o.sourceY,h=v===void 0?0:v,O=o.texture,w=o.mipLevel,T=w===void 0?0:w,k=o.aspect,z=k===void 0?"all":k,I=o.colorSpace,M=I===void 0?"display-p3":I,F=o.premultipliedAlpha,G=F===void 0?!1:F,Q=o.width,ce=Q===void 0?O.width:Q,ee=o.height,te=ee===void 0?O.height:ee,$=o.depth,re=$===void 0?1:$,p=O;(a=this.handle)===null||a===void 0||a.queue.copyExternalImageToTexture({source:s,origin:[c,h]},{texture:p.handle,origin:[0,0,0],mipLevel:T,aspect:z,colorSpace:M,premultipliedAlpha:G},[ce,te,re])},g(e,[{key:"info",get:function(){return this._info}},{key:"limits",get:function(){return this.handle.limits}},{key:"isLost",get:function(){return this._isLost}}]),e}(Le);ht.type="webgpu";return qr(ko);})();
12
12
  /*! Bundled license information:
13
13
 
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@luma.gl/webgpu",
3
- "version": "9.0.0-alpha.40",
3
+ "version": "9.0.0-alpha.41",
4
4
  "description": "WebGPU adapter for the luma.gl API",
5
5
  "type": "module",
6
6
  "license": "MIT",
@@ -37,9 +37,9 @@
37
37
  },
38
38
  "dependencies": {
39
39
  "@babel/runtime": "^7.0.0",
40
- "@luma.gl/core": "9.0.0-alpha.40",
40
+ "@luma.gl/core": "9.0.0-alpha.41",
41
41
  "@probe.gl/env": "^4.0.2",
42
42
  "@webgpu/types": "^0.1.34"
43
43
  },
44
- "gitHead": "5a6f2bc7a4d24a65b74ae905844ad5bfc36c5645"
44
+ "gitHead": "e8a5f47c6890d0b1883979c09114676b8fa90cc6"
45
45
  }
@@ -18,8 +18,11 @@ export class WebGPUBuffer extends Buffer {
18
18
  this.byteLength = getByteLength(props);
19
19
  const mapBuffer = Boolean(props.data);
20
20
 
21
+ // WebGPU buffers must be aligned to 4 bytes
22
+ const size = Math.ceil(this.byteLength / 4) * 4;
23
+
21
24
  this.handle = this.props.handle || this.device.handle.createBuffer({
22
- size: this.byteLength,
25
+ size,
23
26
  // usage defaults to vertex
24
27
  usage: this.props.usage || (GPUBufferUsage.VERTEX | GPUBufferUsage.COPY_DST),
25
28
  mappedAtCreation: this.props.mappedAtCreation || mapBuffer,