typegpu 0.3.0-alpha.5 → 0.3.0-alpha.7

Sign up to get free protection for your applications and to get access to all the features.
package/index.cjs CHANGED
@@ -1,19 +1,15 @@
1
- "use strict";Object.defineProperty(exports, "__esModule", {value: true});var _chunkCXTZVSMHcjs = require('./chunk-CXTZVSMH.cjs');var C=class{constructor(){_chunkCXTZVSMHcjs.c.call(void 0, this,"lastUniqueId",0)}makeUnique(t){let r;return t?(r=t.replaceAll(/\s/g,"_"),r=r.replaceAll(/[^\w\d]/g,"")):r="item",`${r}_${this.lastUniqueId++}`}},k=class{constructor(){_chunkCXTZVSMHcjs.c.call(void 0, this,"_usedNames",new Set)}makeUnique(t){if(t===void 0)throw new Error("Unnamed item found when using a strict name registry");let r=0,n=t;for(;this._usedNames.has(n);)r++,n=`${t}_${r}`;return this._usedNames.add(n),n}};function ut(e,t){throw new Error(`Failed to handle ${e} at ${t}`)}var Ct=["bool","f32","f16","i32","u32","vec2f","vec3f","vec4f","vec2h","vec3h","vec4h","vec2i","vec3i","vec4i","vec2u","vec3u","vec4u","mat2x2f","mat3x3f","mat4x4f"];function kt(e){return Ct.includes(e.type)}function Mt(e,[t,r]){return` ${_chunkCXTZVSMHcjs.Ia.call(void 0, r)}${t}: ${e.resolve(r)},
2
- `}function $t(e,t){let r=e.names.makeUnique(t.label);return e.addDeclaration(`
1
+ "use strict";Object.defineProperty(exports, "__esModule", {value: true});var _chunk5DF7EEAZcjs = require('./chunk-5DF7EEAZ.cjs');var C=class{constructor(){_chunk5DF7EEAZcjs.c.call(void 0, this,"lastUniqueId",0)}makeUnique(t){let r;return t?(r=t.replaceAll(/\s/g,"_"),r=r.replaceAll(/[^\w\d]/g,"")):r="item",`${r}_${this.lastUniqueId++}`}},V=class{constructor(){_chunk5DF7EEAZcjs.c.call(void 0, this,"_usedNames",new Set)}makeUnique(t){if(t===void 0)throw new Error("Unnamed item found when using a strict name registry");let r=0,n=t;for(;this._usedNames.has(n);)r++,n=`${t}_${r}`;return this._usedNames.add(n),n}};function lt(e,t){throw new Error(`Failed to handle ${e} at ${t}`)}var $t=["bool","f32","f16","i32","u32","vec2f","vec3f","vec4f","vec2h","vec3h","vec4h","vec2i","vec3i","vec4i","vec2u","vec3u","vec4u","mat2x2f","mat3x3f","mat4x4f"];function Mt(e){return $t.includes(e.type)}function Wt(e,[t,r]){return` ${_chunk5DF7EEAZcjs.Na.call(void 0, r)}${t}: ${e.resolve(r)},
2
+ `}function Ot(e,t){let r=e.names.makeUnique(t.label);return e.addDeclaration(`
3
3
  struct ${r} {
4
- ${Object.entries(t.propTypes).map(n=>Mt(e,n)).join("")}}
5
- `),r}function Ot(e,t){let r=e.resolve(t.elementType);return t.elementCount===0?`array<${r}>`:`array<${r}, ${t.elementCount}>`}function Se(e,t){if(kt(t))return t.type;if(t.type==="struct")return $t(e,t);if(t.type==="array")return Ot(e,t);if(t.type==="atomic")return`atomic<${Se(e,t.inner)}>`;if(t.type==="decorated")return e.resolve(t.inner);ut(t,"resolveData")}var Be="Invariant failed";function ee(e,t){if(e)return;throw new Error(Be)}var N=class e extends Error{constructor(r,n){let a=n.map(o=>`- ${o}`);a.length>20&&(a=[...a.slice(0,11),"...",...a.slice(-10)]);super(`Resolution of the following tree failed:
6
- ${a.join(`
7
- `)}`);this.cause=r;this.trace=n;Object.setPrototypeOf(this,e.prototype)}appendToTrace(r){let n=[r,...this.trace];return new e(this.cause,n)}},ae=class e extends Error{constructor(r){super(`Missing value for '${r}'`);this.slot=r;Object.setPrototypeOf(this,e.prototype)}},j= exports.NotUniformError =class e extends Error{constructor(t){var r;super(`Buffer '${(r=t.label)!=null?r:"<unnamed>"}' is not bindable as a uniform. Use .$usage('uniform') to allow it.`),Object.setPrototypeOf(this,e.prototype)}};var z=class e extends Error{constructor(t){super(`Bind group was not provided for '${t!=null?t:"<unnamed>"}' layout.`),Object.setPrototypeOf(this,e.prototype)}};function*pt(e){let t=0;for(;;)e.has(t)||(yield t),t++}var U=Symbol("Unknown data type");function K(e){return!!e&&(typeof e=="object"||typeof e=="function")&&"resolve"in e}function lt(e){return typeof e=="number"||typeof e=="boolean"||typeof e=="string"||K(e)}function dt(e){return!!e&&typeof e=="object"&&"getMappedRange"in e&&"mapAsync"in e}function mt(e){return e.__brand==="TgpuSlot"}function x(e,t){return lt(t.value)||_chunkCXTZVSMHcjs.d.call(void 0, t.value)?e.resolve(t.value):String(t.value)}function Wt(e){throw new Error(`'${JSON.stringify(e)}' was not handled by the WGSL generator.`)}function gt(e,t){return t?{value:"true",dataType:_chunkCXTZVSMHcjs.u}:{value:"false",dataType:_chunkCXTZVSMHcjs.u}}function ft(e,t){return`${e.indent()}{
8
- ${t.block.map(r=>_e(e,r)).join(`
4
+ ${Object.entries(t.propTypes).map(n=>Wt(e,n)).join("")}}
5
+ `),r}function Nt(e,t){let r=e.resolve(t.elementType);return t.elementCount===0?`array<${r}>`:`array<${r}, ${t.elementCount}>`}function Se(e,t){if(Mt(t))return t.type;if(t.type==="struct")return Ot(e,t);if(t.type==="array")return Nt(e,t);if(t.type==="atomic")return`atomic<${Se(e,t.inner)}>`;if(t.type==="decorated")return e.resolve(t.inner);lt(t,"resolveData")}function N(e){return(e==null?void 0:e.resourceType)==="slot"}function ae(e){return(e==null?void 0:e.resourceType)==="derived"}function dt(e){return(e==null?void 0:e.resourceType)==="accessor"}function*mt(e){let t=0;for(;;)e.has(t)||(yield t),t++}var w=Symbol("Unknown data type");function Fe(e){return!!e&&(typeof e=="object"||typeof e=="function")&&"resolve"in e}function Q(e){return typeof e=="number"||typeof e=="boolean"||typeof e=="string"||Fe(e)||N(e)||ae(e)}function Tt(e){return!!e&&typeof e=="object"&&"getMappedRange"in e&&"mapAsync"in e}var jt=["==","!=","<","<=",">",">=","<<",">>","+","-","*","/","%","|","^","&","&&","||"];function x(e,t){return Q(t.value)||_chunk5DF7EEAZcjs.d.call(void 0, t.value)?e.resolve(t.value):String(t.value)}function zt(e){throw new Error(`'${JSON.stringify(e)}' was not handled by the WGSL generator.`)}function gt(e,t){return t?{value:"true",dataType:_chunk5DF7EEAZcjs.z}:{value:"false",dataType:_chunk5DF7EEAZcjs.z}}function ft(e,t){return`${e.indent()}{
6
+ ${t.b.map(r=>ve(e,r)).join(`
9
7
  `)}
10
- ${e.dedent()}}`}function Fe(e,t){return e.getById(t)}function S(e,t){if(typeof t=="string")return Fe(e,t);if(typeof t=="boolean")return gt(e,t);if("x2"in t){let[r,n,a]=t.x2,o=x(e,S(e,r)),i=x(e,S(e,a));return{value:`${o} ${n} ${i}`,dataType:U}}if("."in t){let[r,n]=t["."],a=S(e,r),o=x(e,S(e,n));return K(a.value)||typeof a.value=="object"?o==="value"?{value:x(e,a),dataType:U}:{value:a.value[o],dataType:U}:{value:`${x(e,a)}.${o}`,dataType:U}}if("[]"in t){let[r,n]=t["[]"],a=x(e,S(e,r)),o=x(e,S(e,n));return{value:`${a}[${o}]`,dataType:U}}if("num"in t)return{value:t.num,dataType:U};if("call"in t){let n=S(e,t.call).value,o=t.args.map(i=>S(e,i)).map(i=>x(e,i));return K(n)||typeof n=="function"?{value:n(...o),dataType:U}:{value:`${String(n)}(${o.join(", ")})`,dataType:U}}Wt(t)}function _e(e,t){if(typeof t=="string")return`${e.pre}${x(e,Fe(e,t))};`;if(typeof t=="boolean")return`${e.pre}${x(e,gt(e,t))};`;if("return"in t)return t.return===null?`${e.pre}return;`:`${e.pre}return ${x(e,S(e,t.return))};`;if("if"in t){let r=x(e,S(e,t.if));e.indent();let n=_e(e,t.do);e.dedent(),e.indent();let a=t.else?_e(e,t.else):void 0;return e.dedent(),a?`${e.pre}if (${r})
11
- ${n}
8
+ ${e.dedent()}}`}function _e(e,t){return e.getById(t)}function D(e,t){if(typeof t=="string")return _e(e,t);if(typeof t=="boolean")return gt(e,t);if("x"in t){let[r,n,a]=t.x,o=x(e,D(e,r)),i=x(e,D(e,a));return{value:jt.includes(n)?`(${o} ${n} ${i})`:`${o} ${n} ${i}`,dataType:w}}if("u"in t){let[r,n]=t.u,a=x(e,D(e,n));return{value:`${r}${a}`,dataType:w}}if("a"in t){let[r,n]=t.a,a=D(e,r),o=x(e,D(e,n));if(typeof a.value=="string")return{value:`${a.value}.${o}`,dataType:w};if(Q(a.value))return o==="value"?{value:x(e,a),dataType:w}:{value:a.value[o],dataType:w};if(typeof a.value=="object")return{value:a.value[o],dataType:w};throw new Error(`Cannot access member ${o} of ${a.value}`)}if("i"in t){let[r,n]=t.i,a=x(e,D(e,r)),o=x(e,D(e,n));return{value:`${a}[${o}]`,dataType:w}}if("n"in t)return{value:t.n,dataType:w};if("f"in t){let[r,n]=t.f,o=D(e,r).value,p=n.map(l=>D(e,l)).map(l=>x(e,l));return typeof o=="string"?{value:`${o}(${p.join(", ")})`,dataType:w}:{value:o(...p),dataType:w}}zt(t)}function ve(e,t){if(typeof t=="string")return`${e.pre}${x(e,_e(e,t))};`;if(typeof t=="boolean")return`${e.pre}${x(e,gt(e,t))};`;if("r"in t)return t.r===null?`${e.pre}return;`:`${e.pre}return ${x(e,D(e,t.r))};`;if("q"in t){let[r,n,a]=t.q,o=x(e,D(e,r));e.indent();let i=ve(e,n);e.dedent(),e.indent();let p=a?ve(e,a):void 0;return e.dedent(),p?`${e.pre}if (${o})
9
+ ${i}
12
10
  ${e.pre}else
13
- ${a}`:`${e.pre}if (${r})
14
- ${n}`}if("let"in t||"const"in t){let r=x(e,Fe(e,"let"in t?t.let:t.const)),n=t.eq?S(e,t.eq):void 0;if(!n)throw new Error("Cannot create variable without an initial value.");return`${e.pre}var ${r} = ${x(e,n)};`}return"block"in t?ft(e,t):`${e.pre}${x(e,S(e,t))};`}function Ae(e,t){return ft(e,t)}var _typedbinary = require('typed-binary');function Nt(e,t){let r="size"in e?e.size:e.currentByteOffset,n=t-1,a=r&n;"skipBytes"in e?e.skipBytes(t-a&n):e.add(t-a&n)}var T=Nt;function M(e,t){t>=0?e.writeByte(t&127):e.writeByte(t&127|128)}function $(e){let t=e.readByte();return t&128?(t&127)-128:t&127}var h={bool(e,t,r){e.writeBool(r)},f32(e,t,r){e.writeFloat32(r)},f16(e,t,r){e.writeFloat16(r)},i32(e,t,r){e.writeInt32(r)},u32(e,t,r){e.writeUint32(r)},vec2f(e,t,r){e.writeFloat32(r.x),e.writeFloat32(r.y)},vec2h(e,t,r){e.writeFloat16(r.x),e.writeFloat16(r.y)},vec2i(e,t,r){e.writeInt32(r.x),e.writeInt32(r.y)},vec2u(e,t,r){e.writeUint32(r.x),e.writeUint32(r.y)},vec3f(e,t,r){e.writeFloat32(r.x),e.writeFloat32(r.y),e.writeFloat32(r.z)},vec3h(e,t,r){e.writeFloat16(r.x),e.writeFloat16(r.y),e.writeFloat16(r.z)},vec3i(e,t,r){e.writeInt32(r.x),e.writeInt32(r.y),e.writeInt32(r.z)},vec3u(e,t,r){e.writeUint32(r.x),e.writeUint32(r.y),e.writeUint32(r.z)},vec4f(e,t,r){e.writeFloat32(r.x),e.writeFloat32(r.y),e.writeFloat32(r.z),e.writeFloat32(r.w)},vec4h(e,t,r){e.writeFloat16(r.x),e.writeFloat16(r.y),e.writeFloat16(r.z),e.writeFloat16(r.w)},vec4i(e,t,r){e.writeInt32(r.x),e.writeInt32(r.y),e.writeInt32(r.z),e.writeInt32(r.w)},vec4u(e,t,r){e.writeUint32(r.x),e.writeUint32(r.y),e.writeUint32(r.z),e.writeUint32(r.w)},mat2x2f(e,t,r){for(let n=0;n<r.length;++n)e.writeFloat32(r[n])},mat3x3f(e,t,r){for(let n=0;n<r.length;++n)e.writeFloat32(r[n])},mat4x4f(e,t,r){for(let n=0;n<r.length;++n)e.writeFloat32(r[n])},struct(e,t,r){let n=_chunkCXTZVSMHcjs.za.call(void 0, t);T(e,n);for(let[a,o]of Object.entries(t.propTypes))T(e,_chunkCXTZVSMHcjs.za.call(void 0, o)),q(e,o,r[a]);T(e,n)},array(e,t,r){if(t.elementCount===0)throw new Error("Cannot write using a runtime-sized schema.");let n=_chunkCXTZVSMHcjs.za.call(void 0, t);T(e,n);let a=e.currentByteOffset;for(let o=0;o<Math.min(t.elementCount,r.length);o++)T(e,n),q(e,t.elementType,r[o]);e.seekTo(a+_chunkCXTZVSMHcjs.Ca.call(void 0, t))},atomic(e,t,r){var n;(n=h[t.inner.type])==null||n.call(h,e,t,r)},decorated(e,t,r){var o,i;let n=_chunkCXTZVSMHcjs.Aa.call(void 0, t);T(e,n);let a=e.currentByteOffset;(i=h[(o=t.inner)==null?void 0:o.type])==null||i.call(h,e,t.inner,r),e.seekTo(a+_chunkCXTZVSMHcjs.Ca.call(void 0, t))},uint8(e,t,r){e.writeByte(r)},uint8x2(e,t,r){e.writeByte(r.x),e.writeByte(r.y)},uint8x4(e,t,r){e.writeByte(r.x),e.writeByte(r.y),e.writeByte(r.z),e.writeByte(r.w)},sint8(e,t,r){M(e,r)},sint8x2(e,t,r){M(e,r.x),M(e,r.y)},sint8x4(e,t,r){M(e,r.x),M(e,r.y),M(e,r.z),M(e,r.w)},unorm8(e,t,r){e.writeByte(Math.floor(r*255))},unorm8x2(e,t,r){e.writeByte(Math.floor(r.x*255)),e.writeByte(Math.floor(r.y*255))},unorm8x4(e,t,r){e.writeByte(Math.floor(r.x*255)),e.writeByte(Math.floor(r.y*255)),e.writeByte(Math.floor(r.z*255)),e.writeByte(Math.floor(r.w*255))},snorm8(e,t,r){e.writeByte(Math.floor(r*127+128))},snorm8x2(e,t,r){e.writeByte(Math.floor(r.x*127+128)),e.writeByte(Math.floor(r.y*127+128))},snorm8x4(e,t,r){e.writeByte(Math.floor(r.x*127+128)),e.writeByte(Math.floor(r.y*127+128)),e.writeByte(Math.floor(r.z*127+128)),e.writeByte(Math.floor(r.w*127+128))},uint16(e,t,r){let n=new ArrayBuffer(2),a=new DataView(n),o=e.endianness==="little";a.setUint16(0,r,o),e.writeSlice(new Uint8Array(n))},uint16x2(e,t,r){let n=new ArrayBuffer(4),a=new DataView(n),o=e.endianness==="little";a.setUint16(0,r.x,o),a.setUint16(2,r.y,o),e.writeSlice(new Uint8Array(n))},uint16x4(e,t,r){let n=new ArrayBuffer(8),a=new DataView(n),o=e.endianness==="little";a.setUint16(0,r.x,o),a.setUint16(2,r.y,o),a.setUint16(4,r.z,o),a.setUint16(6,r.w,o),e.writeSlice(new Uint8Array(n))},sint16(e,t,r){let n=new ArrayBuffer(2),a=new DataView(n),o=e.endianness==="little";a.setInt16(0,r,o),e.writeSlice(new Uint8Array(n))},sint16x2(e,t,r){let n=new ArrayBuffer(4),a=new DataView(n),o=e.endianness==="little";a.setInt16(0,r.x,o),a.setInt16(2,r.y,o),e.writeSlice(new Uint8Array(n))},sint16x4(e,t,r){let n=new ArrayBuffer(8),a=new DataView(n),o=e.endianness==="little";a.setInt16(0,r.x,o),a.setInt16(2,r.y,o),a.setInt16(4,r.z,o),a.setInt16(6,r.w,o),e.writeSlice(new Uint8Array(n))},unorm16(e,t,r){let n=new ArrayBuffer(2),a=new DataView(n),o=e.endianness==="little";a.setUint16(0,Math.floor(r*65535),o),e.writeSlice(new Uint8Array(n))},unorm16x2(e,t,r){let n=new ArrayBuffer(4),a=new DataView(n),o=e.endianness==="little";a.setUint16(0,Math.floor(r.x*65535),o),a.setUint16(2,Math.floor(r.y*65535),o),e.writeSlice(new Uint8Array(n))},unorm16x4(e,t,r){let n=new ArrayBuffer(8),a=new DataView(n),o=e.endianness==="little";a.setUint16(0,Math.floor(r.x*65535),o),a.setUint16(2,Math.floor(r.y*65535),o),a.setUint16(4,Math.floor(r.z*65535),o),a.setUint16(6,Math.floor(r.w*65535),o),e.writeSlice(new Uint8Array(n))},snorm16(e,t,r){let n=new ArrayBuffer(2),a=new DataView(n),o=e.endianness==="little";a.setUint16(0,Math.floor(r*32767+32768),o),e.writeSlice(new Uint8Array(n))},snorm16x2(e,t,r){let n=new ArrayBuffer(4),a=new DataView(n),o=e.endianness==="little";a.setUint16(0,Math.floor(r.x*32767+32768),o),a.setUint16(2,Math.floor(r.y*32767+32768),o),e.writeSlice(new Uint8Array(n))},snorm16x4(e,t,r){let n=new ArrayBuffer(8),a=new DataView(n),o=e.endianness==="little";a.setUint16(0,Math.floor(r.x*32767+32768),o),a.setUint16(2,Math.floor(r.y*32767+32768),o),a.setUint16(4,Math.floor(r.z*32767+32768),o),a.setUint16(6,Math.floor(r.w*32767+32768),o),e.writeSlice(new Uint8Array(n))},float16(e,t,r){e.writeFloat16(r)},float16x2(e,t,r){e.writeFloat16(r.x),e.writeFloat16(r.y)},float16x4(e,t,r){e.writeFloat16(r.x),e.writeFloat16(r.y),e.writeFloat16(r.z),e.writeFloat16(r.w)},float32(e,t,r){e.writeFloat32(r)},float32x2(e,t,r){e.writeFloat32(r.x),e.writeFloat32(r.y)},float32x3(e,t,r){e.writeFloat32(r.x),e.writeFloat32(r.y),e.writeFloat32(r.z)},float32x4(e,t,r){e.writeFloat32(r.x),e.writeFloat32(r.y),e.writeFloat32(r.z),e.writeFloat32(r.w)},uint32(e,t,r){e.writeUint32(r)},uint32x2(e,t,r){e.writeUint32(r.x),e.writeUint32(r.y)},uint32x3(e,t,r){e.writeUint32(r.x),e.writeUint32(r.y),e.writeUint32(r.z)},uint32x4(e,t,r){e.writeUint32(r.x),e.writeUint32(r.y),e.writeUint32(r.z),e.writeUint32(r.w)},sint32(e,t,r){e.writeInt32(r)},sint32x2(e,t,r){e.writeInt32(r.x),e.writeInt32(r.y)},sint32x3(e,t,r){e.writeInt32(r.x),e.writeInt32(r.y),e.writeInt32(r.z)},sint32x4(e,t,r){e.writeInt32(r.x),e.writeInt32(r.y),e.writeInt32(r.z),e.writeInt32(r.w)},"unorm10-10-10-2"(e,t,r){let n=0;n|=(r.x*1023&1023)<<22,n|=(r.x*1023&1023)<<12,n|=(r.y*1023&1023)<<2,n|=r.z*3&3,e.writeUint32(n)},"unorm8x4-bgra"(e,t,r){e.writeByte(Math.floor(r.z*255)),e.writeByte(Math.floor(r.y*255)),e.writeByte(Math.floor(r.x*255)),e.writeByte(Math.floor(r.w*255))},"loose-array"(e,t,r){var o,i;let n=_chunkCXTZVSMHcjs.za.call(void 0, t);T(e,n);let a=e.currentByteOffset;for(let p=0;p<Math.min(t.elementCount,r.length);p++)T(e,n),(i=h[(o=t.elementType)==null?void 0:o.type])==null||i.call(h,e,t.elementType,r[p]);e.seekTo(a+_chunkCXTZVSMHcjs.Ca.call(void 0, t))},"loose-struct"(e,t,r){var n;for(let[a,o]of Object.entries(t.propTypes))(n=h[o.type])==null||n.call(h,e,o,r[a])},"loose-decorated"(e,t,r){var i;let n=_chunkCXTZVSMHcjs.Aa.call(void 0, t);T(e,n);let a=e.currentByteOffset,o=h[(i=t.inner)==null?void 0:i.type];return o==null||o(e,t.inner,r),e.seekTo(a+_chunkCXTZVSMHcjs.Ca.call(void 0, t)),r}};function q(e,t,r){let n=h[t.type];if(!n)throw new Error(`Cannot write data of type '${t.type}'.`);n(e,t,r)}var jt={bool(e){return e.readBool()},f32(e){return e.readFloat32()},f16(e){return e.readFloat16()},i32(e){return e.readInt32()},u32(e){return e.readUint32()},vec2f(e){return _chunkCXTZVSMHcjs.z.call(void 0, e.readFloat32(),e.readFloat32())},vec3f(e){return _chunkCXTZVSMHcjs.D.call(void 0, e.readFloat32(),e.readFloat32(),e.readFloat32())},vec4f(e){return _chunkCXTZVSMHcjs.H.call(void 0, e.readFloat32(),e.readFloat32(),e.readFloat32(),e.readFloat32())},vec2h(e){return _chunkCXTZVSMHcjs.A.call(void 0, e.readFloat16(),e.readFloat16())},vec3h(e){return _chunkCXTZVSMHcjs.E.call(void 0, e.readFloat16(),e.readFloat16(),e.readFloat16())},vec4h(e){return _chunkCXTZVSMHcjs.I.call(void 0, e.readFloat16(),e.readFloat16(),e.readFloat16(),e.readFloat16())},vec2i(e){return _chunkCXTZVSMHcjs.B.call(void 0, e.readInt32(),e.readInt32())},vec3i(e){return _chunkCXTZVSMHcjs.F.call(void 0, e.readInt32(),e.readInt32(),e.readInt32())},vec4i(e){return _chunkCXTZVSMHcjs.J.call(void 0, e.readInt32(),e.readInt32(),e.readInt32(),e.readInt32())},vec2u(e){return _chunkCXTZVSMHcjs.C.call(void 0, e.readUint32(),e.readUint32())},vec3u(e){return _chunkCXTZVSMHcjs.G.call(void 0, e.readUint32(),e.readUint32(),e.readUint32())},vec4u(e){return _chunkCXTZVSMHcjs.K.call(void 0, e.readUint32(),e.readUint32(),e.readUint32(),e.readUint32())},mat2x2f(e){return _chunkCXTZVSMHcjs.Na.call(void 0, e.readFloat32(),e.readFloat32(),e.readFloat32(),e.readFloat32())},mat3x3f(e){let t=()=>{let r=e.readFloat32();return e.readFloat32(),r};return _chunkCXTZVSMHcjs.Oa.call(void 0, e.readFloat32(),e.readFloat32(),t(),e.readFloat32(),e.readFloat32(),t(),e.readFloat32(),e.readFloat32(),t())},mat4x4f(e){return _chunkCXTZVSMHcjs.Pa.call(void 0, e.readFloat32(),e.readFloat32(),e.readFloat32(),e.readFloat32(),e.readFloat32(),e.readFloat32(),e.readFloat32(),e.readFloat32(),e.readFloat32(),e.readFloat32(),e.readFloat32(),e.readFloat32(),e.readFloat32(),e.readFloat32(),e.readFloat32(),e.readFloat32())},struct(e,t){let r=_chunkCXTZVSMHcjs.za.call(void 0, t);T(e,r);let n={};for(let[a,o]of Object.entries(t.propTypes))T(e,_chunkCXTZVSMHcjs.za.call(void 0, o)),n[a]=A(e,o);return T(e,r),n},array(e,t){if(t.elementCount===0)throw new Error("Cannot read using a runtime-sized schema.");let r=_chunkCXTZVSMHcjs.za.call(void 0, t),n=[];for(let a=0;a<t.elementCount;a++){T(e,r);let o=t.elementType,i=A(e,o);n.push(i)}return T(e,r),n},atomic(e,t){return A(e,t.inner)},decorated(e,t){let r=_chunkCXTZVSMHcjs.Aa.call(void 0, t);T(e,r);let n=e.currentByteOffset,a=A(e,t.inner);return e.seekTo(n+_chunkCXTZVSMHcjs.Ca.call(void 0, t)),a},uint8:e=>e.readByte(),uint8x2:e=>_chunkCXTZVSMHcjs.C.call(void 0, e.readByte(),e.readByte()),uint8x4:e=>_chunkCXTZVSMHcjs.K.call(void 0, e.readByte(),e.readByte(),e.readByte(),e.readByte()),sint8:e=>$(e),sint8x2:e=>_chunkCXTZVSMHcjs.B.call(void 0, $(e),$(e)),sint8x4:e=>_chunkCXTZVSMHcjs.J.call(void 0, $(e),$(e),$(e),$(e)),unorm8:e=>e.readByte()/255,unorm8x2:e=>_chunkCXTZVSMHcjs.z.call(void 0, e.readByte()/255,e.readByte()/255),unorm8x4:e=>_chunkCXTZVSMHcjs.H.call(void 0, e.readByte()/255,e.readByte()/255,e.readByte()/255,e.readByte()/255),snorm8:e=>(e.readByte()-128)/127,snorm8x2:e=>_chunkCXTZVSMHcjs.z.call(void 0, (e.readByte()-128)/127,(e.readByte()-128)/127),snorm8x4:e=>_chunkCXTZVSMHcjs.H.call(void 0, (e.readByte()-128)/127,(e.readByte()-128)/127,(e.readByte()-128)/127,(e.readByte()-128)/127),uint16(e){let t=new ArrayBuffer(2);e.readSlice(new Uint8Array(t),0,2);let r=new DataView(t),n=e.endianness==="little";return r.getUint16(0,n)},uint16x2(e){let t=new ArrayBuffer(4);e.readSlice(new Uint8Array(t),0,4);let r=new DataView(t),n=e.endianness==="little";return _chunkCXTZVSMHcjs.C.call(void 0, r.getUint16(0,n),r.getUint16(2,n))},uint16x4(e){let t=new ArrayBuffer(8);e.readSlice(new Uint8Array(t),0,8);let r=new DataView(t),n=e.endianness==="little";return _chunkCXTZVSMHcjs.K.call(void 0, r.getUint16(0,n),r.getUint16(2,n),r.getUint16(4,n),r.getUint16(6,n))},sint16(e){let t=new ArrayBuffer(2);e.readSlice(new Uint8Array(t),0,2);let r=new DataView(t),n=e.endianness==="little";return r.getInt16(0,n)},sint16x2(e){let t=new ArrayBuffer(4);e.readSlice(new Uint8Array(t),0,4);let r=new DataView(t),n=e.endianness==="little";return _chunkCXTZVSMHcjs.B.call(void 0, r.getInt16(0,n),r.getInt16(2,n))},sint16x4(e){let t=new ArrayBuffer(8);e.readSlice(new Uint8Array(t),0,8);let r=new DataView(t),n=e.endianness==="little";return _chunkCXTZVSMHcjs.J.call(void 0, r.getInt16(0,n),r.getInt16(2,n),r.getInt16(4,n),r.getInt16(6,n))},unorm16(e){let t=new ArrayBuffer(2);e.readSlice(new Uint8Array(t),0,2);let r=new DataView(t),n=e.endianness==="little";return r.getUint16(0,n)/65535},unorm16x2(e){let t=new ArrayBuffer(4);e.readSlice(new Uint8Array(t),0,4);let r=new DataView(t),n=e.endianness==="little";return _chunkCXTZVSMHcjs.z.call(void 0, r.getUint16(0,n)/65535,r.getUint16(2,n)/65535)},unorm16x4(e){let t=new ArrayBuffer(8);e.readSlice(new Uint8Array(t),0,8);let r=new DataView(t),n=e.endianness==="little";return _chunkCXTZVSMHcjs.H.call(void 0, r.getUint16(0,n)/65535,r.getUint16(2,n)/65535,r.getUint16(4,n)/65535,r.getUint16(6,n)/65535)},snorm16(e){let t=new ArrayBuffer(2);e.readSlice(new Uint8Array(t),0,2);let r=new DataView(t),n=e.endianness==="little";return r.getInt16(0,n)/32767},snorm16x2(e){let t=new ArrayBuffer(4);e.readSlice(new Uint8Array(t),0,4);let r=new DataView(t),n=e.endianness==="little";return _chunkCXTZVSMHcjs.z.call(void 0, (r.getUint16(0,n)-32768)/32767,(r.getUint16(2,n)-32768)/32767)},snorm16x4(e){let t=new ArrayBuffer(8);e.readSlice(new Uint8Array(t),0,8);let r=new DataView(t),n=e.endianness==="little";return _chunkCXTZVSMHcjs.H.call(void 0, (r.getUint16(0,n)-32768)/32767,(r.getUint16(2,n)-32768)/32767,(r.getUint16(4,n)-32768)/32767,(r.getUint16(6,n)-32768)/32767)},float16(e){return e.readFloat16()},float16x2:e=>_chunkCXTZVSMHcjs.z.call(void 0, e.readFloat16(),e.readFloat16()),float16x4:e=>_chunkCXTZVSMHcjs.H.call(void 0, e.readFloat16(),e.readFloat16(),e.readFloat16(),e.readFloat16()),float32:e=>e.readFloat32(),float32x2:e=>_chunkCXTZVSMHcjs.z.call(void 0, e.readFloat32(),e.readFloat32()),float32x3:e=>_chunkCXTZVSMHcjs.D.call(void 0, e.readFloat32(),e.readFloat32(),e.readFloat32()),float32x4:e=>_chunkCXTZVSMHcjs.H.call(void 0, e.readFloat32(),e.readFloat32(),e.readFloat32(),e.readFloat32()),uint32:e=>e.readUint32(),uint32x2:e=>_chunkCXTZVSMHcjs.C.call(void 0, e.readUint32(),e.readUint32()),uint32x3:e=>_chunkCXTZVSMHcjs.G.call(void 0, e.readUint32(),e.readUint32(),e.readUint32()),uint32x4:e=>_chunkCXTZVSMHcjs.K.call(void 0, e.readUint32(),e.readUint32(),e.readUint32(),e.readUint32()),sint32:e=>e.readInt32(),sint32x2:e=>_chunkCXTZVSMHcjs.B.call(void 0, e.readInt32(),e.readInt32()),sint32x3:e=>_chunkCXTZVSMHcjs.F.call(void 0, e.readInt32(),e.readInt32(),e.readInt32()),sint32x4:e=>_chunkCXTZVSMHcjs.J.call(void 0, e.readInt32(),e.readInt32(),e.readInt32(),e.readInt32()),"unorm10-10-10-2"(e){let t=e.readUint32(),r=(t>>22)/1023,n=(t>>12&1023)/1023,a=(t>>2&1023)/1023,o=(t&3)/3;return _chunkCXTZVSMHcjs.H.call(void 0, r,n,a,o)},"unorm8x4-bgra"(e){let t=e.readByte()/255,r=e.readByte()/255,n=e.readByte()/255,a=e.readByte()/255;return _chunkCXTZVSMHcjs.H.call(void 0, n,r,t,a)},"loose-struct"(e,t){let r={};for(let[n,a]of Object.entries(t.propTypes))r[n]=A(e,a);return r},"loose-array"(e,t){let r=_chunkCXTZVSMHcjs.za.call(void 0, t),n=[];for(let a=0;a<t.elementCount;a++)T(e,r),n.push(A(e,t.elementType));return T(e,r),n},"loose-decorated"(e,t){T(e,_chunkCXTZVSMHcjs.Aa.call(void 0, t));let r=e.currentByteOffset,n=A(e,t.inner);return e.seekTo(r+_chunkCXTZVSMHcjs.Ca.call(void 0, t)),n}};function A(e,t){let r=jt[t.type];if(!r)throw new Error(`Cannot read data of type '${t.type}'.`);return r(e,t)}function Tt(e,t,r){return _chunkCXTZVSMHcjs.d.call(void 0, t)?new oe(e,t,r):new oe(e,t,r,["storage","uniform"])}function J(e){return e.resourceType==="buffer"}function Re(e){return!!e.usableAsUniform}function zt(e){return!!e.usableAsVertex}var oe=class{constructor(t,r,n,a){this._group=t;this.dataType=r;this.initialOrBuffer=n;this._disallowedUsages=a;_chunkCXTZVSMHcjs.c.call(void 0, this,"resourceType","buffer");_chunkCXTZVSMHcjs.c.call(void 0, this,"flags",GPUBufferUsage.COPY_DST|GPUBufferUsage.COPY_SRC);_chunkCXTZVSMHcjs.c.call(void 0, this,"_buffer",null);_chunkCXTZVSMHcjs.c.call(void 0, this,"_ownBuffer");_chunkCXTZVSMHcjs.c.call(void 0, this,"_destroyed",!1);_chunkCXTZVSMHcjs.c.call(void 0, this,"_label");_chunkCXTZVSMHcjs.c.call(void 0, this,"initial");_chunkCXTZVSMHcjs.c.call(void 0, this,"usableAsUniform",!1);_chunkCXTZVSMHcjs.c.call(void 0, this,"usableAsStorage",!1);_chunkCXTZVSMHcjs.c.call(void 0, this,"usableAsVertex",!1);dt(n)?(this._ownBuffer=!1,this._buffer=n):(this._ownBuffer=!0,this.initial=n)}get label(){return this._label}get buffer(){var r;let t=this._group.device;if(this._destroyed)throw new Error("This buffer has been destroyed");if(!this._buffer&&(this._buffer=t.createBuffer({size:_chunkCXTZVSMHcjs.Ca.call(void 0, this.dataType),usage:this.flags,mappedAtCreation:!!this.initial,label:(r=this.label)!=null?r:"<unnamed>"}),this.initial)){let n=new (0, _typedbinary.BufferWriter)(this._buffer.getMappedRange());q(n,this.dataType,this.initial),this._buffer.unmap()}return this._buffer}get destroyed(){return this._destroyed}$name(t){return this._label=t,this._buffer&&(this._buffer.label=t),this}$usage(...t){var r;for(let n of t){if((r=this._disallowedUsages)!=null&&r.includes(n))throw new Error(`Buffer of type ${this.dataType} cannot be used as ${n}`);this.flags|=n==="uniform"?GPUBufferUsage.UNIFORM:0,this.flags|=n==="storage"?GPUBufferUsage.STORAGE:0,this.flags|=n==="vertex"?GPUBufferUsage.VERTEX:0,this.usableAsUniform=this.usableAsUniform||n==="uniform",this.usableAsStorage=this.usableAsStorage||n==="storage",this.usableAsVertex=this.usableAsVertex||n==="vertex"}return this}$addFlags(t){return this.flags|=t,this}write(t){let r=this.buffer,n=this._group.device;if(r.mapState==="mapped"){let i=r.getMappedRange();q(new (0, _typedbinary.BufferWriter)(i),this.dataType,t);return}let a=_chunkCXTZVSMHcjs.Ca.call(void 0, this.dataType);this._group.flush();let o=new ArrayBuffer(a);q(new (0, _typedbinary.BufferWriter)(o),this.dataType,t),n.queue.writeBuffer(r,0,o,0,a)}copyFrom(t){if(this.buffer.mapState==="mapped")throw new Error("Cannot copy to a mapped buffer.");let r=_chunkCXTZVSMHcjs.Ca.call(void 0, this.dataType);this._group.commandEncoder.copyBufferToBuffer(t.buffer,0,this.buffer,0,r)}async read(){this._group.flush();let t=this.buffer,r=this._group.device;if(t.mapState==="mapped"){let i=t.getMappedRange();return A(new (0, _typedbinary.BufferReader)(i),this.dataType)}if(t.usage&GPUBufferUsage.MAP_READ){await t.mapAsync(GPUMapMode.READ);let i=t.getMappedRange(),p=A(new (0, _typedbinary.BufferReader)(i),this.dataType);return t.unmap(),p}let n=r.createBuffer({size:_chunkCXTZVSMHcjs.Ca.call(void 0, this.dataType),usage:GPUBufferUsage.COPY_DST|GPUBufferUsage.MAP_READ}),a=r.createCommandEncoder();a.copyBufferToBuffer(t,0,n,0,_chunkCXTZVSMHcjs.Ca.call(void 0, this.dataType)),r.queue.submit([a.finish()]),await r.queue.onSubmittedWorkDone(),await n.mapAsync(GPUMapMode.READ,0,_chunkCXTZVSMHcjs.Ca.call(void 0, this.dataType));let o=A(new (0, _typedbinary.BufferReader)(n.getMappedRange()),this.dataType);return n.unmap(),n.destroy(),o}destroy(){var t;this._destroyed||(this._destroyed=!0,this._ownBuffer&&((t=this._buffer)==null||t.destroy()))}toString(){var t;return`buffer:${(t=this._label)!=null?t:"<unnamed>"}`}};function se(e){return!!(e!=null&&e.usableAsStorage)}var ie=class e extends Error{constructor(t){var r;super(`Resource '${(r=t.label)!=null?r:"<unnamed>"}' cannot be bound as 'storage'. Use .$usage('storage') to allow it.`),Object.setPrototypeOf(this,e.prototype)}};var Kt={uniform:"uniform",mutable:"storage, read_write",readonly:"storage, read"};var te=class{constructor(t,r,n){this.usage=t;this.dataType=r;this._membership=n;_chunkCXTZVSMHcjs.c.call(void 0, this,"~repr");_chunkCXTZVSMHcjs.c.call(void 0, this,"resourceType","buffer-usage")}get label(){return this._membership.key}resolve(t){let r=t.names.makeUnique(this.label),n=t.allocateLayoutEntry(this._membership.layout),a=Kt[this.usage];return t.addDeclaration(`@group(${n}) @binding(${this._membership.idx}) var<${a}> ${r}: ${t.resolve(this.dataType)};`),r}toString(){var t;return`${this.usage}:${(t=this.label)!=null?t:"<unnamed>"}`}get value(){if(!_chunkCXTZVSMHcjs.t.call(void 0, ))throw new Error("Cannot access buffer's value directly in JS.");return this}};function qt(e){return(e==null?void 0:e.resourceType)==="sampler"}function Jt(e){return(e==null?void 0:e.resourceType)==="sampler-comparison"}var ue=class{constructor(t){this._membership=t;_chunkCXTZVSMHcjs.c.call(void 0, this,"resourceType","sampler")}get label(){return this._membership.key}resolve(t){let r=t.names.makeUnique(this.label),n=t.allocateLayoutEntry(this._membership.layout);return t.addDeclaration(`@group(${n}) @binding(${this._membership.idx}) var ${r}: sampler;`),r}},pe=class{constructor(t){this._membership=t;_chunkCXTZVSMHcjs.c.call(void 0, this,"resourceType","sampler-comparison")}get label(){return this._membership.key}resolve(t){let r=t.names.makeUnique(this.label),n=t.allocateLayoutEntry(this._membership.layout);return t.addDeclaration(`@group(${n}) @binding(${this._membership.idx}) var ${r}: sampler_comparison;`),r}};var le=class{constructor(t){this._membership=t;_chunkCXTZVSMHcjs.c.call(void 0, this,"resourceType","external-texture")}get label(){return this._membership.key}resolve(t){let r=t.names.makeUnique(this.label),n=t.allocateLayoutEntry(this._membership.layout);return t.addDeclaration(`@group(${n}) @binding(${this._membership.idx}) var ${r}: texture_external;`),r}};var yt={r8unorm:_chunkCXTZVSMHcjs.x,r8snorm:_chunkCXTZVSMHcjs.x,r8uint:_chunkCXTZVSMHcjs.v,r8sint:_chunkCXTZVSMHcjs.w,r16uint:_chunkCXTZVSMHcjs.v,r16sint:_chunkCXTZVSMHcjs.w,r16float:_chunkCXTZVSMHcjs.x,rg8unorm:_chunkCXTZVSMHcjs.x,rg8snorm:_chunkCXTZVSMHcjs.x,rg8uint:_chunkCXTZVSMHcjs.v,rg8sint:_chunkCXTZVSMHcjs.w,r32uint:_chunkCXTZVSMHcjs.v,r32sint:_chunkCXTZVSMHcjs.w,r32float:_chunkCXTZVSMHcjs.x,rg16uint:_chunkCXTZVSMHcjs.v,rg16sint:_chunkCXTZVSMHcjs.w,rg16float:_chunkCXTZVSMHcjs.x,rgba8unorm:_chunkCXTZVSMHcjs.x,"rgba8unorm-srgb":_chunkCXTZVSMHcjs.x,rgba8snorm:_chunkCXTZVSMHcjs.x,rgba8uint:_chunkCXTZVSMHcjs.v,rgba8sint:_chunkCXTZVSMHcjs.w,bgra8unorm:_chunkCXTZVSMHcjs.x,"bgra8unorm-srgb":_chunkCXTZVSMHcjs.x,rgb9e5ufloat:_chunkCXTZVSMHcjs.x,rgb10a2uint:_chunkCXTZVSMHcjs.v,rgb10a2unorm:_chunkCXTZVSMHcjs.x,rg11b10ufloat:_chunkCXTZVSMHcjs.x,rg32uint:_chunkCXTZVSMHcjs.v,rg32sint:_chunkCXTZVSMHcjs.w,rg32float:_chunkCXTZVSMHcjs.x,rgba16uint:_chunkCXTZVSMHcjs.v,rgba16sint:_chunkCXTZVSMHcjs.w,rgba16float:_chunkCXTZVSMHcjs.x,rgba32uint:_chunkCXTZVSMHcjs.v,rgba32sint:_chunkCXTZVSMHcjs.w,rgba32float:_chunkCXTZVSMHcjs.x,stencil8:_chunkCXTZVSMHcjs.x,depth16unorm:_chunkCXTZVSMHcjs.x,depth24plus:_chunkCXTZVSMHcjs.x,"depth24plus-stencil8":_chunkCXTZVSMHcjs.x,depth32float:_chunkCXTZVSMHcjs.x,"depth32float-stencil8":_chunkCXTZVSMHcjs.x,"bc1-rgba-unorm":_chunkCXTZVSMHcjs.x,"bc1-rgba-unorm-srgb":_chunkCXTZVSMHcjs.x,"bc2-rgba-unorm":_chunkCXTZVSMHcjs.x,"bc2-rgba-unorm-srgb":_chunkCXTZVSMHcjs.x,"bc3-rgba-unorm":_chunkCXTZVSMHcjs.x,"bc3-rgba-unorm-srgb":_chunkCXTZVSMHcjs.x,"bc4-r-unorm":_chunkCXTZVSMHcjs.x,"bc4-r-snorm":_chunkCXTZVSMHcjs.x,"bc5-rg-unorm":_chunkCXTZVSMHcjs.x,"bc5-rg-snorm":_chunkCXTZVSMHcjs.x,"bc6h-rgb-ufloat":_chunkCXTZVSMHcjs.x,"bc6h-rgb-float":_chunkCXTZVSMHcjs.x,"bc7-rgba-unorm":_chunkCXTZVSMHcjs.x,"bc7-rgba-unorm-srgb":_chunkCXTZVSMHcjs.x,"etc2-rgb8unorm":_chunkCXTZVSMHcjs.x,"etc2-rgb8unorm-srgb":_chunkCXTZVSMHcjs.x,"etc2-rgb8a1unorm":_chunkCXTZVSMHcjs.x,"etc2-rgb8a1unorm-srgb":_chunkCXTZVSMHcjs.x,"etc2-rgba8unorm":_chunkCXTZVSMHcjs.x,"etc2-rgba8unorm-srgb":_chunkCXTZVSMHcjs.x,"eac-r11unorm":_chunkCXTZVSMHcjs.x,"eac-r11snorm":_chunkCXTZVSMHcjs.x,"eac-rg11unorm":_chunkCXTZVSMHcjs.x,"eac-rg11snorm":_chunkCXTZVSMHcjs.x,"astc-4x4-unorm":_chunkCXTZVSMHcjs.x,"astc-4x4-unorm-srgb":_chunkCXTZVSMHcjs.x,"astc-5x4-unorm":_chunkCXTZVSMHcjs.x,"astc-5x4-unorm-srgb":_chunkCXTZVSMHcjs.x,"astc-5x5-unorm":_chunkCXTZVSMHcjs.x,"astc-5x5-unorm-srgb":_chunkCXTZVSMHcjs.x,"astc-6x5-unorm":_chunkCXTZVSMHcjs.x,"astc-6x5-unorm-srgb":_chunkCXTZVSMHcjs.x,"astc-6x6-unorm":_chunkCXTZVSMHcjs.x,"astc-6x6-unorm-srgb":_chunkCXTZVSMHcjs.x,"astc-8x5-unorm":_chunkCXTZVSMHcjs.x,"astc-8x5-unorm-srgb":_chunkCXTZVSMHcjs.x,"astc-8x6-unorm":_chunkCXTZVSMHcjs.x,"astc-8x6-unorm-srgb":_chunkCXTZVSMHcjs.x,"astc-8x8-unorm":_chunkCXTZVSMHcjs.x,"astc-8x8-unorm-srgb":_chunkCXTZVSMHcjs.x,"astc-10x5-unorm":_chunkCXTZVSMHcjs.x,"astc-10x5-unorm-srgb":_chunkCXTZVSMHcjs.x,"astc-10x6-unorm":_chunkCXTZVSMHcjs.x,"astc-10x6-unorm-srgb":_chunkCXTZVSMHcjs.x,"astc-10x8-unorm":_chunkCXTZVSMHcjs.x,"astc-10x8-unorm-srgb":_chunkCXTZVSMHcjs.x,"astc-10x10-unorm":_chunkCXTZVSMHcjs.x,"astc-10x10-unorm-srgb":_chunkCXTZVSMHcjs.x,"astc-12x10-unorm":_chunkCXTZVSMHcjs.x,"astc-12x10-unorm-srgb":_chunkCXTZVSMHcjs.x,"astc-12x12-unorm":_chunkCXTZVSMHcjs.x,"astc-12x12-unorm-srgb":_chunkCXTZVSMHcjs.x},re={rgba8unorm:_chunkCXTZVSMHcjs.H,rgba8snorm:_chunkCXTZVSMHcjs.H,rgba8uint:_chunkCXTZVSMHcjs.K,rgba8sint:_chunkCXTZVSMHcjs.J,rgba16uint:_chunkCXTZVSMHcjs.K,rgba16sint:_chunkCXTZVSMHcjs.J,rgba16float:_chunkCXTZVSMHcjs.H,r32uint:_chunkCXTZVSMHcjs.K,r32sint:_chunkCXTZVSMHcjs.J,r32float:_chunkCXTZVSMHcjs.H,rg32uint:_chunkCXTZVSMHcjs.K,rg32sint:_chunkCXTZVSMHcjs.J,rg32float:_chunkCXTZVSMHcjs.H,rgba32uint:_chunkCXTZVSMHcjs.K,rgba32sint:_chunkCXTZVSMHcjs.J,rgba32float:_chunkCXTZVSMHcjs.H,bgra8unorm:_chunkCXTZVSMHcjs.H},ct={f32:"float",u32:"uint",i32:"sint"},xt={float:_chunkCXTZVSMHcjs.x,"unfilterable-float":_chunkCXTZVSMHcjs.x,uint:_chunkCXTZVSMHcjs.v,sint:_chunkCXTZVSMHcjs.w,depth:_chunkCXTZVSMHcjs.x};function bt(e,t){return new Pe(e,t)}function I(e){return(e==null?void 0:e.resourceType)==="texture"}function Ie(e){return(e==null?void 0:e.resourceType)==="texture-storage-view"}function Ve(e){return(e==null?void 0:e.resourceType)==="texture-sampled-view"}var wt={mutable:"read_write",readonly:"read",writeonly:"write"},Pe=class{constructor(t,r){this.props=t;this._branch=r;_chunkCXTZVSMHcjs.c.call(void 0, this,"resourceType","texture");_chunkCXTZVSMHcjs.c.call(void 0, this,"usableAsSampled",!1);_chunkCXTZVSMHcjs.c.call(void 0, this,"usableAsStorage",!1);_chunkCXTZVSMHcjs.c.call(void 0, this,"usableAsRender",!1);_chunkCXTZVSMHcjs.c.call(void 0, this,"_destroyed",!1);_chunkCXTZVSMHcjs.c.call(void 0, this,"_label");_chunkCXTZVSMHcjs.c.call(void 0, this,"_flags",GPUTextureUsage.COPY_DST|GPUTextureUsage.COPY_SRC);_chunkCXTZVSMHcjs.c.call(void 0, this,"_texture",null)}get label(){return this._label}$name(t){return this._label=t,this}unwrap(){var t,r,n,a,o;if(this._destroyed)throw new Error("This texture has been destroyed");return this._texture||(this._texture=this._branch.device.createTexture({label:(t=this._label)!=null?t:"<unnamed>",format:this.props.format,size:this.props.size,usage:this._flags,dimension:(r=this.props.dimension)!=null?r:"2d",viewFormats:(n=this.props.viewFormats)!=null?n:[],mipLevelCount:(a=this.props.mipLevelCount)!=null?a:1,sampleCount:(o=this.props.sampleCount)!=null?o:1})),this._texture}$usage(...t){let r=t.includes("storage"),n=t.includes("sampled"),a=t.includes("render");return this._flags|=n?GPUTextureUsage.TEXTURE_BINDING:0,this._flags|=r?GPUTextureUsage.STORAGE_BINDING:0,this._flags|=a?GPUTextureUsage.RENDER_ATTACHMENT:0,this.usableAsStorage||(this.usableAsStorage=r),this.usableAsSampled||(this.usableAsSampled=n),this.usableAsRender||(this.usableAsRender=a),this}_asStorage(t,r){var o;if(!this.usableAsStorage)throw new Error("Unusable as storage");let n=(o=t==null?void 0:t.format)!=null?o:this.props.format,a=re[n];return ee(!!a,`Unsupported storage texture format: ${n}`),new Le(t!=null?t:{},r,this)}asReadonly(t){return this._asStorage(t,"readonly")}asWriteonly(t){return this._asStorage(t,"writeonly")}asMutable(t){return this._asStorage(t,"mutable")}asSampled(t){var a;if(!this.usableAsSampled)throw new Error("Unusable as sampled");let r=(a=t==null?void 0:t.format)!=null?a:this.props.format;if(!re[r])throw new Error(`Unsupported storage texture format: ${r}`);return new Ge(t,this)}destroy(){var t;this._destroyed||(this._destroyed=!0,(t=this._texture)==null||t.destroy())}},ge={"1d":"1d","2d":"2d","2d-array":"2d_array",cube:"cube","cube-array":"cube_array","3d":"3d"},Le=class{constructor(t,r,n){this.access=r;this._texture=n;_chunkCXTZVSMHcjs.c.call(void 0, this,"resourceType","texture-storage-view");_chunkCXTZVSMHcjs.c.call(void 0, this,"texelDataType");_chunkCXTZVSMHcjs.c.call(void 0, this,"dimension");_chunkCXTZVSMHcjs.c.call(void 0, this,"_view");_chunkCXTZVSMHcjs.c.call(void 0, this,"_format");var a,o,i;this.dimension=(o=(a=t==null?void 0:t.dimension)!=null?a:n.props.dimension)!=null?o:"2d",this._format=(i=t==null?void 0:t.format)!=null?i:n.props.format,this.texelDataType=re[this._format]}get label(){return this._texture.label}$name(t){return this._texture.$name(t),this}unwrap(){var t;return this._view||(this._view=this._texture.unwrap().createView({label:`${(t=this.label)!=null?t:"<unnamed>"} - View`,format:this._format,dimension:this.dimension})),this._view}resolve(t){let r=t.names.makeUnique(this.label),{group:n,binding:a}=t.allocateFixedEntry({storageTexture:this._format,access:this.access,viewDimension:this.dimension},this),o=`texture_storage_${ge[this.dimension]}`;return t.addDeclaration(`@group(${n}) @binding(${a}) var ${r}: ${o}<${this._format}, ${wt[this.access]}>;`),r}},de=class{constructor(t,r,n,a){this._format=t;this.dimension=r;this.access=n;this._membership=a;_chunkCXTZVSMHcjs.c.call(void 0, this,"resourceType","texture-storage-view");_chunkCXTZVSMHcjs.c.call(void 0, this,"texelDataType");this.texelDataType=re[this._format]}get label(){return this._membership.key}resolve(t){let r=t.names.makeUnique(this.label),n=t.allocateLayoutEntry(this._membership.layout),a=`texture_storage_${ge[this.dimension]}`;return t.addDeclaration(`@group(${n}) @binding(${this._membership.idx}) var ${r}: ${a}<${this._format}, ${wt[this.access]}>;`),r}},Ge=class{constructor(t,r){this._props=t;this._texture=r;_chunkCXTZVSMHcjs.c.call(void 0, this,"resourceType","texture-sampled-view");_chunkCXTZVSMHcjs.c.call(void 0, this,"channelDataType");_chunkCXTZVSMHcjs.c.call(void 0, this,"dimension");_chunkCXTZVSMHcjs.c.call(void 0, this,"_format");_chunkCXTZVSMHcjs.c.call(void 0, this,"_view");var n,a,o;this.dimension=(a=(n=t==null?void 0:t.dimension)!=null?n:r.props.dimension)!=null?a:"2d",this._format=(o=t==null?void 0:t.format)!=null?o:r.props.format,this.channelDataType=yt[this._format]}get label(){return this._texture.label}$name(t){return this._texture.$name(t),this}unwrap(){var t;return this._view||(this._view=this._texture.unwrap().createView(_chunkCXTZVSMHcjs.a.call(void 0, {label:`${(t=this.label)!=null?t:"<unnamed>"} - View`},this._props))),this._view}resolve(t){var p;let r=t.names.makeUnique(this.label),n=((p=this._texture.props.sampleCount)!=null?p:1)>1,{group:a,binding:o}=t.allocateFixedEntry({texture:ct[this.channelDataType.type],viewDimension:this.dimension,multisampled:n},this),i=n?"texture_multisampled_2d":`texture_${ge[this.dimension]}`;return t.addDeclaration(`@group(${a}) @binding(${o}) var ${r}: ${i}<${t.resolve(this.channelDataType)}>;`),r}},me=class{constructor(t,r,n,a){this.dimension=r;this._multisampled=n;this._membership=a;_chunkCXTZVSMHcjs.c.call(void 0, this,"resourceType","texture-sampled-view");_chunkCXTZVSMHcjs.c.call(void 0, this,"channelDataType");this.channelDataType=xt[t]}get label(){return this._membership.key}resolve(t){let r=t.names.makeUnique(this.label),n=t.allocateLayoutEntry(this._membership.layout),a=this._multisampled?"texture_multisampled_2d":`texture_${ge[this.dimension]}`;return t.addDeclaration(`@group(${n}) @binding(${this._membership.idx}) var ${r}: ${a}<${t.resolve(this.channelDataType)}>;`),r}};function Ce(e){return!!(e!=null&&e.usableAsSampled)}function Yt(e){return!!(e!=null&&e.usableAsRender)}var fe=class e extends Error{constructor(t){var r;super(`Resource '${(r=t.label)!=null?r:"<unnamed>"}' cannot be bound as 'sampled'. Use .$usage('sampled') to allow it.`),Object.setPrototypeOf(this,e.prototype)}};function Te(e){return new Me(e)}function ye(e){return!!e&&e.resourceType==="bind-group-layout"}function Dt(e){return!!e&&e.resourceType==="bind-group"}var ke=class e extends Error{constructor(t,r){super(`Bind group '${t!=null?t:"<unnamed>"}' is missing a required binding '${r}'`),Object.setPrototypeOf(this,e.prototype)}},ht=["compute"],Y=["compute","vertex","fragment"],Me=class{constructor(t){this.entries=t;_chunkCXTZVSMHcjs.c.call(void 0, this,"_label");_chunkCXTZVSMHcjs.c.call(void 0, this,"_index");_chunkCXTZVSMHcjs.c.call(void 0, this,"resourceType","bind-group-layout");_chunkCXTZVSMHcjs.c.call(void 0, this,"bound",{});var n,a,o,i,p;let r=0;for(let[g,l]of Object.entries(t)){if(l===null){r++;continue}let d={idx:r,key:g,layout:this};if("uniform"in l&&(this.bound[g]=new te("uniform",l.uniform,d)),"storage"in l){let f="type"in l.storage?l.storage:l.storage(0);this.bound[g]=new te((n=l.access)!=null?n:"readonly",f,d)}"texture"in l&&(this.bound[g]=new me(l.texture,(a=l.viewDimension)!=null?a:"2d",(o=l.multisampled)!=null?o:!1,d)),"storageTexture"in l&&(this.bound[g]=new de(l.storageTexture,(i=l.viewDimension)!=null?i:"2d",(p=l.access)!=null?p:"writeonly",d)),"externalTexture"in l&&(this.bound[g]=new le(d)),"sampler"in l&&(l.sampler==="comparison"?this.bound[g]=new pe(d):this.bound[g]=new ue(d)),r++}}get label(){return this._label}get index(){return this._index}$name(t){return this._label=t,this}$idx(t){return this._index=t,this}unwrap(t){var n;return t.device.createBindGroupLayout({label:(n=this.label)!=null?n:"<unnamed>",entries:Object.values(this.entries).map((a,o)=>{var g,l,d,f;if(a===null)return null;let i=a.visibility,p={binding:o,visibility:0};if("uniform"in a)i=i!=null?i:Y,p.buffer={type:"uniform"};else if("storage"in a)i=i!=null?i:a.access==="mutable"?ht:Y,p.buffer={type:a.access==="mutable"?"storage":"read-only-storage"};else if("sampler"in a)i=i!=null?i:Y,p.sampler={type:a.sampler};else if("texture"in a)i=i!=null?i:Y,p.texture={sampleType:a.texture,viewDimension:(g=a.viewDimension)!=null?g:"2d",multisampled:(l=a.multisampled)!=null?l:!1};else if("storageTexture"in a){let m=(d=a.access)!=null?d:"writeonly";i=i!=null?i:m==="readonly"?Y:ht,p.storageTexture={format:a.storageTexture,access:{mutable:"read-write",readonly:"read-only",writeonly:"write-only"}[m],viewDimension:(f=a.viewDimension)!=null?f:"2d"}}else"externalTexture"in a&&(i=i!=null?i:Y,p.externalTexture={});return i!=null&&i.includes("compute")&&(p.visibility|=GPUShaderStage.COMPUTE),i!=null&&i.includes("vertex")&&(p.visibility|=GPUShaderStage.VERTEX),i!=null&&i.includes("fragment")&&(p.visibility|=GPUShaderStage.FRAGMENT),p}).filter(a=>a!==null)})}populate(t){return new O(this,t)}},O=class{constructor(t,r){this.layout=t;this.entries=r;_chunkCXTZVSMHcjs.c.call(void 0, this,"resourceType","bind-group");for(let n of Object.keys(t.entries))if(t.entries[n]!==null&&!(n in r))throw new ke(t.label,n)}unwrap(t){var n;return t.device.createBindGroup({label:(n=this.layout.label)!=null?n:"<unnamed>",layout:t.unwrap(this.layout),entries:Object.entries(this.layout.entries).map(([a,o],i)=>{var g;if(o===null)return null;let p=this.entries[a];if(p===void 0)throw new Error(`'${a}' is a resource required to populate bind group layout '${(g=this.layout.label)!=null?g:"<unnamed>"}'.`);if("uniform"in o){let l;if(J(p)){if(!Re(p))throw new j(p);l={buffer:t.unwrap(p)}}else l={buffer:p};return{binding:i,resource:l}}if("storage"in o){let l;if(J(p)){if(!se(p))throw new j(p);l={buffer:t.unwrap(p)}}else l={buffer:p};return{binding:i,resource:l}}if("texture"in o){let l;if(I(p)){if(!Ce(p))throw new fe(p);l=t.unwrap(p.asSampled())}else l=p;return{binding:i,resource:l}}if("storageTexture"in o){let l;if(I(p)){if(!se(p))throw new ie(p);o.access==="readonly"?l=t.unwrap(p.asReadonly()):o.access==="mutable"?l=t.unwrap(p.asMutable()):l=t.unwrap(p.asReadonly())}else l=p;return{binding:i,resource:l}}if("externalTexture"in o||"sampler"in o)return{binding:i,resource:p};throw new Error(`Malformed bind group entry: ${p} (${JSON.stringify(p)})`)}).filter(a=>a!==null)})}};var Ut="#CATCHALL#",Oe=class{constructor(){_chunkCXTZVSMHcjs.c.call(void 0, this,"_stack",[]);_chunkCXTZVSMHcjs.c.call(void 0, this,"_itemDepth",0)}get itemDepth(){return this._itemDepth}get topItem(){let t=this._stack[this._stack.length-1];if(!t||t.type!=="item")throw new Error("Internal error, expected item layer to be on top.");return t}pushItem(){this._itemDepth++,this._stack.push({type:"item",usedSlots:new Set})}pushSlotBindings(t){this._stack.push({type:"slotBinding",bindingMap:new WeakMap(t)})}pushFunctionScope(t,r,n){this._stack.push({type:"functionScope",args:t,returnType:r,externalMap:n})}pop(){let t=this._stack.pop();(t==null?void 0:t.type)==="item"&&this._itemDepth--}readSlot(t){for(let r=this._stack.length-1;r>=0;--r){let n=this._stack[r];if((n==null?void 0:n.type)==="item")n.usedSlots.add(t);else if((n==null?void 0:n.type)==="slotBinding"){let a=n.bindingMap.get(t);if(a!==void 0)return a}else if(!((n==null?void 0:n.type)==="functionScope"||(n==null?void 0:n.type)==="blockScope"))throw new Error("Unknown layer type.")}return t.defaultValue}getResourceById(t){for(let r=this._stack.length-1;r>=0;--r){let n=this._stack[r];if((n==null?void 0:n.type)==="functionScope"){let a=n.args.find(i=>i.value===t);if(a!==void 0)return a;let o=n.externalMap[t];return o!==void 0?{value:o,dataType:U}:void 0}if((n==null?void 0:n.type)==="blockScope"){let a=n.declarations.get(t);if(a!==void 0)return{value:t,dataType:a}}}}},ce=[""," "," "," "," "," "," "," "," "],$e=ce.length-1,We=class{constructor(){_chunkCXTZVSMHcjs.c.call(void 0, this,"identLevel",0)}get pre(){var t;return(t=ce[this.identLevel])!=null?t:ce[$e].repeat(this.identLevel/$e)+ce[this.identLevel%$e]}indent(){let t=this.pre;return this.identLevel++,t}dedent(){return this.identLevel--,this.pre}},Ne=class{constructor(t){_chunkCXTZVSMHcjs.c.call(void 0, this,"_memoizedResolves",new WeakMap);_chunkCXTZVSMHcjs.c.call(void 0, this,"_indentController",new We);_chunkCXTZVSMHcjs.c.call(void 0, this,"_jitTranspiler");_chunkCXTZVSMHcjs.c.call(void 0, this,"_itemStateStack",new Oe);_chunkCXTZVSMHcjs.c.call(void 0, this,"_declarations",[]);_chunkCXTZVSMHcjs.c.call(void 0, this,"bindGroupLayoutsToPlaceholderMap",new Map);_chunkCXTZVSMHcjs.c.call(void 0, this,"_nextFreeLayoutPlaceholderIdx",0);_chunkCXTZVSMHcjs.c.call(void 0, this,"fixedBindings",[]);_chunkCXTZVSMHcjs.c.call(void 0, this,"names");this.names=t.names,this._jitTranspiler=t.jitTranspiler}get pre(){return this._indentController.pre}indent(){return this._indentController.indent()}dedent(){return this._indentController.dedent()}getById(t){var r;return(r=this._itemStateStack.getResourceById(t))!=null?r:{value:t,dataType:U}}transpileFn(t){if(!this._jitTranspiler)throw new Error("Tried to execute a tgpu.fn function without providing a JIT transpiler, or transpiling at build time.");return this._jitTranspiler.transpileFn(t)}fnToWgsl(t){this._itemStateStack.pushFunctionScope(t.args,t.returnType,t.externalMap);let r=Ae(this,t.body);this._itemStateStack.pop();let n=t.args.map(a=>`${a.value}: ${this.resolve(a.dataType)}`).join(", ");return{head:t.returnType!==void 0?`(${n}) -> ${this.resolve(t.returnType)}`:`(${n})`,body:r}}addDeclaration(t){this._declarations.push(t)}allocateLayoutEntry(t){let r=this.bindGroupLayoutsToPlaceholderMap,n=r.get(t);return n||(n=`#BIND_GROUP_LAYOUT_${this._nextFreeLayoutPlaceholderIdx++}#`,r.set(t,n)),n}allocateFixedEntry(t,r){let n=this.fixedBindings.length;return this.fixedBindings.push({layoutEntry:t,resource:r}),{group:Ut,binding:n}}readSlot(t){let r=this._itemStateStack.readSlot(t);if(r===void 0)throw new ae(t);return r}unwrap(t){let r=t;for(;mt(r);)r=this.readSlot(r);return r}_getOrInstantiate(t){var n;let r=(n=this._memoizedResolves.get(t))!=null?n:[];this._itemStateStack.pushItem();try{for(let i of r)if([...i.slotToValueMap.entries()].every(([g,l])=>this._itemStateStack.readSlot(g)===l))return i.result;let a=_chunkCXTZVSMHcjs.d.call(void 0, t)?Se(this,t):t.resolve(this),o=new Map;for(let i of this._itemStateStack.topItem.usedSlots)o.set(i,this._itemStateStack.readSlot(i));return r.push({slotToValueMap:o,result:a}),this._memoizedResolves.set(t,r),a}catch(a){throw a instanceof N?a.appendToTrace(t):new N(a,[t])}finally{this._itemStateStack.pop()}}resolve(t,r=[]){if(typeof t=="string"||typeof t=="number"||typeof t=="boolean")return String(t);let n=!1;r.length>0&&(n=!0,this._itemStateStack.pushSlotBindings(r));try{if(this._itemStateStack.itemDepth===0){let a=_chunkCXTZVSMHcjs.s.call(void 0, ()=>this._getOrInstantiate(t));return`${[...this._declarations].join(`
11
+ ${p}`:`${e.pre}if (${o})
12
+ ${i}`}if("l"in t||"c"in t){let[r,n]="l"in t?t.l:t.c,a=x(e,_e(e,r)),o=n?D(e,n):void 0;if(!o)throw new Error("Cannot create variable without an initial value.");return`${e.pre}var ${a} = ${x(e,o)};`}return"b"in t?ft(e,t):`${e.pre}${x(e,D(e,t))};`}function Be(e,t){return ft(e,t)}var _typedbinary = require('typed-binary');function Kt(e,t){let r="size"in e?e.size:e.currentByteOffset,n=t-1,a=r&n;"skipBytes"in e?e.skipBytes(t-a&n):e.add(t-a&n)}var g=Kt;var U={bool(e,t,r){e.writeBool(r)},f32(e,t,r){e.writeFloat32(r)},f16(e,t,r){e.writeFloat16(r)},i32(e,t,r){e.writeInt32(r)},u32(e,t,r){e.writeUint32(r)},vec2f(e,t,r){e.writeFloat32(r.x),e.writeFloat32(r.y)},vec2h(e,t,r){e.writeFloat16(r.x),e.writeFloat16(r.y)},vec2i(e,t,r){e.writeInt32(r.x),e.writeInt32(r.y)},vec2u(e,t,r){e.writeUint32(r.x),e.writeUint32(r.y)},vec3f(e,t,r){e.writeFloat32(r.x),e.writeFloat32(r.y),e.writeFloat32(r.z)},vec3h(e,t,r){e.writeFloat16(r.x),e.writeFloat16(r.y),e.writeFloat16(r.z)},vec3i(e,t,r){e.writeInt32(r.x),e.writeInt32(r.y),e.writeInt32(r.z)},vec3u(e,t,r){e.writeUint32(r.x),e.writeUint32(r.y),e.writeUint32(r.z)},vec4f(e,t,r){e.writeFloat32(r.x),e.writeFloat32(r.y),e.writeFloat32(r.z),e.writeFloat32(r.w)},vec4h(e,t,r){e.writeFloat16(r.x),e.writeFloat16(r.y),e.writeFloat16(r.z),e.writeFloat16(r.w)},vec4i(e,t,r){e.writeInt32(r.x),e.writeInt32(r.y),e.writeInt32(r.z),e.writeInt32(r.w)},vec4u(e,t,r){e.writeUint32(r.x),e.writeUint32(r.y),e.writeUint32(r.z),e.writeUint32(r.w)},mat2x2f(e,t,r){for(let n=0;n<r.length;++n)e.writeFloat32(r[n])},mat3x3f(e,t,r){for(let n=0;n<r.length;++n)e.writeFloat32(r[n])},mat4x4f(e,t,r){for(let n=0;n<r.length;++n)e.writeFloat32(r[n])},struct(e,t,r){let n=_chunk5DF7EEAZcjs.Ea.call(void 0, t);g(e,n);for(let[a,o]of Object.entries(t.propTypes))g(e,_chunk5DF7EEAZcjs.Ea.call(void 0, o)),j(e,o,r[a]);g(e,n)},array(e,t,r){if(t.elementCount===0)throw new Error("Cannot write using a runtime-sized schema.");let n=_chunk5DF7EEAZcjs.Ea.call(void 0, t);g(e,n);let a=e.currentByteOffset;for(let o=0;o<Math.min(t.elementCount,r.length);o++)g(e,n),j(e,t.elementType,r[o]);e.seekTo(a+_chunk5DF7EEAZcjs.Ha.call(void 0, t))},atomic(e,t,r){var n;(n=U[t.inner.type])==null||n.call(U,e,t,r)},decorated(e,t,r){var o,i;let n=_chunk5DF7EEAZcjs.Fa.call(void 0, t);g(e,n);let a=e.currentByteOffset;(i=U[(o=t.inner)==null?void 0:o.type])==null||i.call(U,e,t.inner,r),e.seekTo(a+_chunk5DF7EEAZcjs.Ha.call(void 0, t))},uint8(e,t,r){e.writeUint8(r)},uint8x2(e,t,r){e.writeUint8(r.x),e.writeUint8(r.y)},uint8x4(e,t,r){e.writeUint8(r.x),e.writeUint8(r.y),e.writeUint8(r.z),e.writeUint8(r.w)},sint8(e,t,r){e.writeInt8(r)},sint8x2(e,t,r){e.writeInt8(r.x),e.writeInt8(r.y)},sint8x4(e,t,r){e.writeInt8(r.x),e.writeInt8(r.y),e.writeInt8(r.z),e.writeInt8(r.w)},unorm8(e,t,r){e.writeUint8(r*255)},unorm8x2(e,t,r){e.writeUint8(r.x*255),e.writeUint8(r.y*255)},unorm8x4(e,t,r){e.writeUint8(r.x*255),e.writeUint8(r.y*255),e.writeUint8(r.z*255),e.writeUint8(r.w*255)},snorm8(e,t,r){e.writeUint8(r*127+128)},snorm8x2(e,t,r){e.writeUint8(r.x*127+128),e.writeUint8(r.y*127+128)},snorm8x4(e,t,r){e.writeUint8(r.x*127+128),e.writeUint8(r.y*127+128),e.writeUint8(r.z*127+128),e.writeUint8(r.w*127+128)},uint16(e,t,r){e.writeUint16(r)},uint16x2(e,t,r){e.writeUint16(r.x),e.writeUint16(r.y)},uint16x4(e,t,r){e.writeUint16(r.x),e.writeUint16(r.y),e.writeUint16(r.z),e.writeUint16(r.w)},sint16(e,t,r){e.writeInt16(r)},sint16x2(e,t,r){e.writeInt16(r.x),e.writeInt16(r.y)},sint16x4(e,t,r){e.writeInt16(r.x),e.writeInt16(r.y),e.writeInt16(r.z),e.writeInt16(r.w)},unorm16(e,t,r){e.writeUint16(r*65535)},unorm16x2(e,t,r){e.writeUint16(r.x*65535),e.writeUint16(r.y*65535)},unorm16x4(e,t,r){e.writeUint16(r.x*65535),e.writeUint16(r.y*65535),e.writeUint16(r.z*65535),e.writeUint16(r.w*65535)},snorm16(e,t,r){e.writeUint16(r*32767+32768)},snorm16x2(e,t,r){e.writeUint16(r.x*32767+32768),e.writeUint16(r.y*32767+32768)},snorm16x4(e,t,r){e.writeUint16(r.x*32767+32768),e.writeUint16(r.y*32767+32768),e.writeUint16(r.z*32767+32768),e.writeUint16(r.w*32767+32768)},float16(e,t,r){e.writeFloat16(r)},float16x2(e,t,r){e.writeFloat16(r.x),e.writeFloat16(r.y)},float16x4(e,t,r){e.writeFloat16(r.x),e.writeFloat16(r.y),e.writeFloat16(r.z),e.writeFloat16(r.w)},float32(e,t,r){e.writeFloat32(r)},float32x2(e,t,r){e.writeFloat32(r.x),e.writeFloat32(r.y)},float32x3(e,t,r){e.writeFloat32(r.x),e.writeFloat32(r.y),e.writeFloat32(r.z)},float32x4(e,t,r){e.writeFloat32(r.x),e.writeFloat32(r.y),e.writeFloat32(r.z),e.writeFloat32(r.w)},uint32(e,t,r){e.writeUint32(r)},uint32x2(e,t,r){e.writeUint32(r.x),e.writeUint32(r.y)},uint32x3(e,t,r){e.writeUint32(r.x),e.writeUint32(r.y),e.writeUint32(r.z)},uint32x4(e,t,r){e.writeUint32(r.x),e.writeUint32(r.y),e.writeUint32(r.z),e.writeUint32(r.w)},sint32(e,t,r){e.writeInt32(r)},sint32x2(e,t,r){e.writeInt32(r.x),e.writeInt32(r.y)},sint32x3(e,t,r){e.writeInt32(r.x),e.writeInt32(r.y),e.writeInt32(r.z)},sint32x4(e,t,r){e.writeInt32(r.x),e.writeInt32(r.y),e.writeInt32(r.z),e.writeInt32(r.w)},"unorm10-10-10-2"(e,t,r){let n=0;n|=(r.x*1023&1023)<<22,n|=(r.x*1023&1023)<<12,n|=(r.y*1023&1023)<<2,n|=r.z*3&3,e.writeUint32(n)},"unorm8x4-bgra"(e,t,r){e.writeUint8(r.z*255),e.writeUint8(r.y*255),e.writeUint8(r.x*255),e.writeUint8(r.w*255)},disarray(e,t,r){var o,i;let n=_chunk5DF7EEAZcjs.Ea.call(void 0, t);g(e,n);let a=e.currentByteOffset;for(let p=0;p<Math.min(t.elementCount,r.length);p++)g(e,n),(i=U[(o=t.elementType)==null?void 0:o.type])==null||i.call(U,e,t.elementType,r[p]);e.seekTo(a+_chunk5DF7EEAZcjs.Ha.call(void 0, t))},unstruct(e,t,r){var n;for(let[a,o]of Object.entries(t.propTypes))(n=U[o.type])==null||n.call(U,e,o,r[a])},"loose-decorated"(e,t,r){var i;let n=_chunk5DF7EEAZcjs.Fa.call(void 0, t);g(e,n);let a=e.currentByteOffset,o=U[(i=t.inner)==null?void 0:i.type];return o==null||o(e,t.inner,r),e.seekTo(a+_chunk5DF7EEAZcjs.Ha.call(void 0, t)),r}};function j(e,t,r){let n=U[t.type];if(!n)throw new Error(`Cannot write data of type '${t.type}'.`);n(e,t,r)}var k={bool(e){return e.readBool()},f32(e){return e.readFloat32()},f16(e){return e.readFloat16()},i32(e){return e.readInt32()},u32(e){return e.readUint32()},vec2f(e){return _chunk5DF7EEAZcjs.E.call(void 0, e.readFloat32(),e.readFloat32())},vec3f(e){return _chunk5DF7EEAZcjs.I.call(void 0, e.readFloat32(),e.readFloat32(),e.readFloat32())},vec4f(e){return _chunk5DF7EEAZcjs.M.call(void 0, e.readFloat32(),e.readFloat32(),e.readFloat32(),e.readFloat32())},vec2h(e){return _chunk5DF7EEAZcjs.F.call(void 0, e.readFloat16(),e.readFloat16())},vec3h(e){return _chunk5DF7EEAZcjs.J.call(void 0, e.readFloat16(),e.readFloat16(),e.readFloat16())},vec4h(e){return _chunk5DF7EEAZcjs.N.call(void 0, e.readFloat16(),e.readFloat16(),e.readFloat16(),e.readFloat16())},vec2i(e){return _chunk5DF7EEAZcjs.G.call(void 0, e.readInt32(),e.readInt32())},vec3i(e){return _chunk5DF7EEAZcjs.K.call(void 0, e.readInt32(),e.readInt32(),e.readInt32())},vec4i(e){return _chunk5DF7EEAZcjs.O.call(void 0, e.readInt32(),e.readInt32(),e.readInt32(),e.readInt32())},vec2u(e){return _chunk5DF7EEAZcjs.H.call(void 0, e.readUint32(),e.readUint32())},vec3u(e){return _chunk5DF7EEAZcjs.L.call(void 0, e.readUint32(),e.readUint32(),e.readUint32())},vec4u(e){return _chunk5DF7EEAZcjs.P.call(void 0, e.readUint32(),e.readUint32(),e.readUint32(),e.readUint32())},mat2x2f(e){return _chunk5DF7EEAZcjs.Sa.call(void 0, e.readFloat32(),e.readFloat32(),e.readFloat32(),e.readFloat32())},mat3x3f(e){let t=()=>{let r=e.readFloat32();return e.readFloat32(),r};return _chunk5DF7EEAZcjs.Ta.call(void 0, e.readFloat32(),e.readFloat32(),t(),e.readFloat32(),e.readFloat32(),t(),e.readFloat32(),e.readFloat32(),t())},mat4x4f(e){return _chunk5DF7EEAZcjs.Ua.call(void 0, e.readFloat32(),e.readFloat32(),e.readFloat32(),e.readFloat32(),e.readFloat32(),e.readFloat32(),e.readFloat32(),e.readFloat32(),e.readFloat32(),e.readFloat32(),e.readFloat32(),e.readFloat32(),e.readFloat32(),e.readFloat32(),e.readFloat32(),e.readFloat32())},struct(e,t){let r=_chunk5DF7EEAZcjs.Ea.call(void 0, t);g(e,r);let n={};for(let[a,o]of Object.entries(t.propTypes))g(e,_chunk5DF7EEAZcjs.Ea.call(void 0, o)),n[a]=A(e,o);return g(e,r),n},array(e,t){if(t.elementCount===0)throw new Error("Cannot read using a runtime-sized schema.");let r=_chunk5DF7EEAZcjs.Ea.call(void 0, t),n=[];for(let a=0;a<t.elementCount;a++){g(e,r);let o=t.elementType,i=A(e,o);n.push(i)}return g(e,r),n},atomic(e,t){return A(e,t.inner)},decorated(e,t){let r=_chunk5DF7EEAZcjs.Fa.call(void 0, t);g(e,r);let n=e.currentByteOffset,a=A(e,t.inner);return e.seekTo(n+_chunk5DF7EEAZcjs.Ha.call(void 0, t)),a},uint8:e=>e.readUint8(),uint8x2:e=>_chunk5DF7EEAZcjs.H.call(void 0, e.readUint8(),e.readUint8()),uint8x4:e=>_chunk5DF7EEAZcjs.P.call(void 0, e.readUint8(),e.readUint8(),e.readUint8(),e.readUint8()),sint8:e=>e.readInt8(),sint8x2:e=>_chunk5DF7EEAZcjs.G.call(void 0, e.readInt8(),e.readInt8()),sint8x4:e=>_chunk5DF7EEAZcjs.O.call(void 0, e.readInt8(),e.readInt8(),e.readInt8(),e.readInt8()),unorm8:e=>e.readUint8()/255,unorm8x2:e=>_chunk5DF7EEAZcjs.E.call(void 0, e.readUint8()/255,e.readUint8()/255),unorm8x4:e=>_chunk5DF7EEAZcjs.M.call(void 0, e.readUint8()/255,e.readUint8()/255,e.readUint8()/255,e.readUint8()/255),snorm8:e=>(e.readUint8()-128)/127,snorm8x2:e=>_chunk5DF7EEAZcjs.E.call(void 0, (e.readUint8()-128)/127,(e.readUint8()-128)/127),snorm8x4:e=>_chunk5DF7EEAZcjs.M.call(void 0, (e.readUint8()-128)/127,(e.readUint8()-128)/127,(e.readUint8()-128)/127,(e.readUint8()-128)/127),uint16:e=>e.readUint16(),uint16x2:e=>_chunk5DF7EEAZcjs.H.call(void 0, e.readUint16(),e.readUint16()),uint16x4:e=>_chunk5DF7EEAZcjs.P.call(void 0, e.readUint16(),e.readUint16(),e.readUint16(),e.readUint16()),sint16:e=>e.readInt16(),sint16x2:e=>_chunk5DF7EEAZcjs.G.call(void 0, e.readInt16(),e.readInt16()),sint16x4:e=>_chunk5DF7EEAZcjs.O.call(void 0, e.readInt16(),e.readInt16(),e.readInt16(),e.readInt16()),unorm16:e=>e.readUint16()/65535,unorm16x2:e=>_chunk5DF7EEAZcjs.E.call(void 0, e.readUint16()/65535,e.readUint16()/65535),unorm16x4:e=>_chunk5DF7EEAZcjs.M.call(void 0, e.readUint16()/65535,e.readUint16()/65535,e.readUint16()/65535,e.readUint16()/65535),snorm16:e=>(e.readUint16()-32768)/32767,snorm16x2:e=>_chunk5DF7EEAZcjs.E.call(void 0, k.snorm16(e),k.snorm16(e)),snorm16x4:e=>_chunk5DF7EEAZcjs.M.call(void 0, k.snorm16(e),k.snorm16(e),k.snorm16(e),k.snorm16(e)),float16(e){return e.readFloat16()},float16x2:e=>_chunk5DF7EEAZcjs.E.call(void 0, e.readFloat16(),e.readFloat16()),float16x4:e=>_chunk5DF7EEAZcjs.M.call(void 0, e.readFloat16(),e.readFloat16(),e.readFloat16(),e.readFloat16()),float32:e=>e.readFloat32(),float32x2:e=>_chunk5DF7EEAZcjs.E.call(void 0, e.readFloat32(),e.readFloat32()),float32x3:e=>_chunk5DF7EEAZcjs.I.call(void 0, e.readFloat32(),e.readFloat32(),e.readFloat32()),float32x4:e=>_chunk5DF7EEAZcjs.M.call(void 0, e.readFloat32(),e.readFloat32(),e.readFloat32(),e.readFloat32()),uint32:e=>e.readUint32(),uint32x2:e=>_chunk5DF7EEAZcjs.H.call(void 0, e.readUint32(),e.readUint32()),uint32x3:e=>_chunk5DF7EEAZcjs.L.call(void 0, e.readUint32(),e.readUint32(),e.readUint32()),uint32x4:e=>_chunk5DF7EEAZcjs.P.call(void 0, e.readUint32(),e.readUint32(),e.readUint32(),e.readUint32()),sint32:e=>e.readInt32(),sint32x2:e=>_chunk5DF7EEAZcjs.G.call(void 0, e.readInt32(),e.readInt32()),sint32x3:e=>_chunk5DF7EEAZcjs.K.call(void 0, e.readInt32(),e.readInt32(),e.readInt32()),sint32x4:e=>_chunk5DF7EEAZcjs.O.call(void 0, e.readInt32(),e.readInt32(),e.readInt32(),e.readInt32()),"unorm10-10-10-2"(e){let t=e.readUint32(),r=(t>>22)/1023,n=(t>>12&1023)/1023,a=(t>>2&1023)/1023,o=(t&3)/3;return _chunk5DF7EEAZcjs.M.call(void 0, r,n,a,o)},"unorm8x4-bgra"(e){let t=e.readByte()/255,r=e.readByte()/255,n=e.readByte()/255,a=e.readByte()/255;return _chunk5DF7EEAZcjs.M.call(void 0, n,r,t,a)},unstruct(e,t){let r={};for(let[n,a]of Object.entries(t.propTypes))r[n]=A(e,a);return r},disarray(e,t){let r=_chunk5DF7EEAZcjs.Ea.call(void 0, t),n=[];for(let a=0;a<t.elementCount;a++)g(e,r),n.push(A(e,t.elementType));return g(e,r),n},"loose-decorated"(e,t){g(e,_chunk5DF7EEAZcjs.Fa.call(void 0, t));let r=e.currentByteOffset,n=A(e,t.inner);return e.seekTo(r+_chunk5DF7EEAZcjs.Ha.call(void 0, t)),n}};function A(e,t){let r=k[t.type];if(!r)throw new Error(`Cannot read data of type '${t.type}'.`);return r(e,t)}function yt(e,t,r){return _chunk5DF7EEAZcjs.d.call(void 0, t)?new oe(e,t,r):new oe(e,t,r,["storage","uniform"])}function z(e){return e.resourceType==="buffer"}function Re(e){return!!e.usableAsUniform}function qt(e){return!!e.usableAsVertex}var oe=class{constructor(t,r,n,a){this._group=t;this.dataType=r;this.initialOrBuffer=n;this._disallowedUsages=a;_chunk5DF7EEAZcjs.c.call(void 0, this,"resourceType","buffer");_chunk5DF7EEAZcjs.c.call(void 0, this,"flags",GPUBufferUsage.COPY_DST|GPUBufferUsage.COPY_SRC);_chunk5DF7EEAZcjs.c.call(void 0, this,"_buffer",null);_chunk5DF7EEAZcjs.c.call(void 0, this,"_ownBuffer");_chunk5DF7EEAZcjs.c.call(void 0, this,"_destroyed",!1);_chunk5DF7EEAZcjs.c.call(void 0, this,"_label");_chunk5DF7EEAZcjs.c.call(void 0, this,"initial");_chunk5DF7EEAZcjs.c.call(void 0, this,"usableAsUniform",!1);_chunk5DF7EEAZcjs.c.call(void 0, this,"usableAsStorage",!1);_chunk5DF7EEAZcjs.c.call(void 0, this,"usableAsVertex",!1);Tt(n)?(this._ownBuffer=!1,this._buffer=n):(this._ownBuffer=!0,this.initial=n)}get label(){return this._label}get buffer(){var r;let t=this._group.device;if(this._destroyed)throw new Error("This buffer has been destroyed");if(!this._buffer&&(this._buffer=t.createBuffer({size:_chunk5DF7EEAZcjs.Ha.call(void 0, this.dataType),usage:this.flags,mappedAtCreation:!!this.initial,label:(r=this.label)!=null?r:"<unnamed>"}),this.initial)){let n=new (0, _typedbinary.BufferWriter)(this._buffer.getMappedRange());j(n,this.dataType,this.initial),this._buffer.unmap()}return this._buffer}get destroyed(){return this._destroyed}$name(t){return this._label=t,this._buffer&&(this._buffer.label=t),this}$usage(...t){var r;for(let n of t){if((r=this._disallowedUsages)!=null&&r.includes(n))throw new Error(`Buffer of type ${this.dataType} cannot be used as ${n}`);this.flags|=n==="uniform"?GPUBufferUsage.UNIFORM:0,this.flags|=n==="storage"?GPUBufferUsage.STORAGE:0,this.flags|=n==="vertex"?GPUBufferUsage.VERTEX:0,this.usableAsUniform=this.usableAsUniform||n==="uniform",this.usableAsStorage=this.usableAsStorage||n==="storage",this.usableAsVertex=this.usableAsVertex||n==="vertex"}return this}$addFlags(t){if(!this._ownBuffer)throw new Error("Cannot add flags to a buffer that is not managed by TypeGPU.");return t&GPUBufferUsage.MAP_READ?(this.flags=GPUBufferUsage.COPY_DST|GPUBufferUsage.MAP_READ,this):t&GPUBufferUsage.MAP_WRITE?(this.flags=GPUBufferUsage.COPY_SRC|GPUBufferUsage.MAP_WRITE,this):(this.flags|=t,this)}write(t){let r=this.buffer,n=this._group.device;if(r.mapState==="mapped"){let i=r.getMappedRange();j(new (0, _typedbinary.BufferWriter)(i),this.dataType,t);return}let a=_chunk5DF7EEAZcjs.Ha.call(void 0, this.dataType);this._group.flush();let o=new ArrayBuffer(a);j(new (0, _typedbinary.BufferWriter)(o),this.dataType,t),n.queue.writeBuffer(r,0,o,0,a)}copyFrom(t){if(this.buffer.mapState==="mapped")throw new Error("Cannot copy to a mapped buffer.");let r=_chunk5DF7EEAZcjs.Ha.call(void 0, this.dataType);this._group.commandEncoder.copyBufferToBuffer(t.buffer,0,this.buffer,0,r)}async read(){this._group.flush();let t=this.buffer,r=this._group.device;if(t.mapState==="mapped"){let i=t.getMappedRange();return A(new (0, _typedbinary.BufferReader)(i),this.dataType)}if(t.usage&GPUBufferUsage.MAP_READ){await t.mapAsync(GPUMapMode.READ);let i=t.getMappedRange(),p=A(new (0, _typedbinary.BufferReader)(i),this.dataType);return t.unmap(),p}let n=r.createBuffer({size:_chunk5DF7EEAZcjs.Ha.call(void 0, this.dataType),usage:GPUBufferUsage.COPY_DST|GPUBufferUsage.MAP_READ}),a=r.createCommandEncoder();a.copyBufferToBuffer(t,0,n,0,_chunk5DF7EEAZcjs.Ha.call(void 0, this.dataType)),r.queue.submit([a.finish()]),await r.queue.onSubmittedWorkDone(),await n.mapAsync(GPUMapMode.READ,0,_chunk5DF7EEAZcjs.Ha.call(void 0, this.dataType));let o=A(new (0, _typedbinary.BufferReader)(n.getMappedRange()),this.dataType);return n.unmap(),n.destroy(),o}destroy(){var t;this._destroyed||(this._destroyed=!0,this._ownBuffer&&((t=this._buffer)==null||t.destroy()))}toString(){var t;return`buffer:${(t=this._label)!=null?t:"<unnamed>"}`}};function se(e){return!!(e!=null&&e.usableAsStorage)}var ie=class e extends Error{constructor(t){var r;super(`Resource '${(r=t.label)!=null?r:"<unnamed>"}' cannot be bound as 'storage'. Use .$usage('storage') to allow it.`),Object.setPrototypeOf(this,e.prototype)}};var Jt={uniform:"uniform",mutable:"storage, read_write",readonly:"storage, read"};var Z=class{constructor(t,r,n){this.usage=t;this.dataType=r;this._membership=n;_chunk5DF7EEAZcjs.c.call(void 0, this,"~repr");_chunk5DF7EEAZcjs.c.call(void 0, this,"resourceType","buffer-usage")}get label(){return this._membership.key}resolve(t){let r=t.names.makeUnique(this.label),n=t.allocateLayoutEntry(this._membership.layout),a=Jt[this.usage];return t.addDeclaration(`@group(${n}) @binding(${this._membership.idx}) var<${a}> ${r}: ${t.resolve(this.dataType)};`),r}toString(){var t;return`${this.usage}:${(t=this.label)!=null?t:"<unnamed>"}`}get value(){if(!_chunk5DF7EEAZcjs.y.call(void 0, ))throw new Error("Cannot access buffer's value directly in JS.");return this}};function Yt(e){return(e==null?void 0:e.resourceType)==="sampler"}function Ht(e){return(e==null?void 0:e.resourceType)==="sampler-comparison"}var ue=class{constructor(t){this._membership=t;_chunk5DF7EEAZcjs.c.call(void 0, this,"resourceType","sampler")}get label(){return this._membership.key}resolve(t){let r=t.names.makeUnique(this.label),n=t.allocateLayoutEntry(this._membership.layout);return t.addDeclaration(`@group(${n}) @binding(${this._membership.idx}) var ${r}: sampler;`),r}toString(){var t;return`${this.resourceType}:${(t=this.label)!=null?t:"<unnamed>"}`}},pe=class{constructor(t){this._membership=t;_chunk5DF7EEAZcjs.c.call(void 0, this,"resourceType","sampler-comparison")}get label(){return this._membership.key}resolve(t){let r=t.names.makeUnique(this.label),n=t.allocateLayoutEntry(this._membership.layout);return t.addDeclaration(`@group(${n}) @binding(${this._membership.idx}) var ${r}: sampler_comparison;`),r}toString(){var t;return`${this.resourceType}:${(t=this.label)!=null?t:"<unnamed>"}`}};var le=class{constructor(t){this._membership=t;_chunk5DF7EEAZcjs.c.call(void 0, this,"resourceType","external-texture")}get label(){return this._membership.key}resolve(t){let r=t.names.makeUnique(this.label),n=t.allocateLayoutEntry(this._membership.layout);return t.addDeclaration(`@group(${n}) @binding(${this._membership.idx}) var ${r}: texture_external;`),r}toString(){var t;return`${this.resourceType}:${(t=this.label)!=null?t:"<unnamed>"}`}};var ct={r8unorm:_chunk5DF7EEAZcjs.C,r8snorm:_chunk5DF7EEAZcjs.C,r8uint:_chunk5DF7EEAZcjs.A,r8sint:_chunk5DF7EEAZcjs.B,r16uint:_chunk5DF7EEAZcjs.A,r16sint:_chunk5DF7EEAZcjs.B,r16float:_chunk5DF7EEAZcjs.C,rg8unorm:_chunk5DF7EEAZcjs.C,rg8snorm:_chunk5DF7EEAZcjs.C,rg8uint:_chunk5DF7EEAZcjs.A,rg8sint:_chunk5DF7EEAZcjs.B,r32uint:_chunk5DF7EEAZcjs.A,r32sint:_chunk5DF7EEAZcjs.B,r32float:_chunk5DF7EEAZcjs.C,rg16uint:_chunk5DF7EEAZcjs.A,rg16sint:_chunk5DF7EEAZcjs.B,rg16float:_chunk5DF7EEAZcjs.C,rgba8unorm:_chunk5DF7EEAZcjs.C,"rgba8unorm-srgb":_chunk5DF7EEAZcjs.C,rgba8snorm:_chunk5DF7EEAZcjs.C,rgba8uint:_chunk5DF7EEAZcjs.A,rgba8sint:_chunk5DF7EEAZcjs.B,bgra8unorm:_chunk5DF7EEAZcjs.C,"bgra8unorm-srgb":_chunk5DF7EEAZcjs.C,rgb9e5ufloat:_chunk5DF7EEAZcjs.C,rgb10a2uint:_chunk5DF7EEAZcjs.A,rgb10a2unorm:_chunk5DF7EEAZcjs.C,rg11b10ufloat:_chunk5DF7EEAZcjs.C,rg32uint:_chunk5DF7EEAZcjs.A,rg32sint:_chunk5DF7EEAZcjs.B,rg32float:_chunk5DF7EEAZcjs.C,rgba16uint:_chunk5DF7EEAZcjs.A,rgba16sint:_chunk5DF7EEAZcjs.B,rgba16float:_chunk5DF7EEAZcjs.C,rgba32uint:_chunk5DF7EEAZcjs.A,rgba32sint:_chunk5DF7EEAZcjs.B,rgba32float:_chunk5DF7EEAZcjs.C,stencil8:_chunk5DF7EEAZcjs.C,depth16unorm:_chunk5DF7EEAZcjs.C,depth24plus:_chunk5DF7EEAZcjs.C,"depth24plus-stencil8":_chunk5DF7EEAZcjs.C,depth32float:_chunk5DF7EEAZcjs.C,"depth32float-stencil8":_chunk5DF7EEAZcjs.C,"bc1-rgba-unorm":_chunk5DF7EEAZcjs.C,"bc1-rgba-unorm-srgb":_chunk5DF7EEAZcjs.C,"bc2-rgba-unorm":_chunk5DF7EEAZcjs.C,"bc2-rgba-unorm-srgb":_chunk5DF7EEAZcjs.C,"bc3-rgba-unorm":_chunk5DF7EEAZcjs.C,"bc3-rgba-unorm-srgb":_chunk5DF7EEAZcjs.C,"bc4-r-unorm":_chunk5DF7EEAZcjs.C,"bc4-r-snorm":_chunk5DF7EEAZcjs.C,"bc5-rg-unorm":_chunk5DF7EEAZcjs.C,"bc5-rg-snorm":_chunk5DF7EEAZcjs.C,"bc6h-rgb-ufloat":_chunk5DF7EEAZcjs.C,"bc6h-rgb-float":_chunk5DF7EEAZcjs.C,"bc7-rgba-unorm":_chunk5DF7EEAZcjs.C,"bc7-rgba-unorm-srgb":_chunk5DF7EEAZcjs.C,"etc2-rgb8unorm":_chunk5DF7EEAZcjs.C,"etc2-rgb8unorm-srgb":_chunk5DF7EEAZcjs.C,"etc2-rgb8a1unorm":_chunk5DF7EEAZcjs.C,"etc2-rgb8a1unorm-srgb":_chunk5DF7EEAZcjs.C,"etc2-rgba8unorm":_chunk5DF7EEAZcjs.C,"etc2-rgba8unorm-srgb":_chunk5DF7EEAZcjs.C,"eac-r11unorm":_chunk5DF7EEAZcjs.C,"eac-r11snorm":_chunk5DF7EEAZcjs.C,"eac-rg11unorm":_chunk5DF7EEAZcjs.C,"eac-rg11snorm":_chunk5DF7EEAZcjs.C,"astc-4x4-unorm":_chunk5DF7EEAZcjs.C,"astc-4x4-unorm-srgb":_chunk5DF7EEAZcjs.C,"astc-5x4-unorm":_chunk5DF7EEAZcjs.C,"astc-5x4-unorm-srgb":_chunk5DF7EEAZcjs.C,"astc-5x5-unorm":_chunk5DF7EEAZcjs.C,"astc-5x5-unorm-srgb":_chunk5DF7EEAZcjs.C,"astc-6x5-unorm":_chunk5DF7EEAZcjs.C,"astc-6x5-unorm-srgb":_chunk5DF7EEAZcjs.C,"astc-6x6-unorm":_chunk5DF7EEAZcjs.C,"astc-6x6-unorm-srgb":_chunk5DF7EEAZcjs.C,"astc-8x5-unorm":_chunk5DF7EEAZcjs.C,"astc-8x5-unorm-srgb":_chunk5DF7EEAZcjs.C,"astc-8x6-unorm":_chunk5DF7EEAZcjs.C,"astc-8x6-unorm-srgb":_chunk5DF7EEAZcjs.C,"astc-8x8-unorm":_chunk5DF7EEAZcjs.C,"astc-8x8-unorm-srgb":_chunk5DF7EEAZcjs.C,"astc-10x5-unorm":_chunk5DF7EEAZcjs.C,"astc-10x5-unorm-srgb":_chunk5DF7EEAZcjs.C,"astc-10x6-unorm":_chunk5DF7EEAZcjs.C,"astc-10x6-unorm-srgb":_chunk5DF7EEAZcjs.C,"astc-10x8-unorm":_chunk5DF7EEAZcjs.C,"astc-10x8-unorm-srgb":_chunk5DF7EEAZcjs.C,"astc-10x10-unorm":_chunk5DF7EEAZcjs.C,"astc-10x10-unorm-srgb":_chunk5DF7EEAZcjs.C,"astc-12x10-unorm":_chunk5DF7EEAZcjs.C,"astc-12x10-unorm-srgb":_chunk5DF7EEAZcjs.C,"astc-12x12-unorm":_chunk5DF7EEAZcjs.C,"astc-12x12-unorm-srgb":_chunk5DF7EEAZcjs.C},ee={rgba8unorm:_chunk5DF7EEAZcjs.M,rgba8snorm:_chunk5DF7EEAZcjs.M,rgba8uint:_chunk5DF7EEAZcjs.P,rgba8sint:_chunk5DF7EEAZcjs.O,rgba16uint:_chunk5DF7EEAZcjs.P,rgba16sint:_chunk5DF7EEAZcjs.O,rgba16float:_chunk5DF7EEAZcjs.M,r32uint:_chunk5DF7EEAZcjs.P,r32sint:_chunk5DF7EEAZcjs.O,r32float:_chunk5DF7EEAZcjs.M,rg32uint:_chunk5DF7EEAZcjs.P,rg32sint:_chunk5DF7EEAZcjs.O,rg32float:_chunk5DF7EEAZcjs.M,rgba32uint:_chunk5DF7EEAZcjs.P,rgba32sint:_chunk5DF7EEAZcjs.O,rgba32float:_chunk5DF7EEAZcjs.M,bgra8unorm:_chunk5DF7EEAZcjs.M},xt={f32:"float",u32:"uint",i32:"sint"},bt={float:_chunk5DF7EEAZcjs.C,"unfilterable-float":_chunk5DF7EEAZcjs.C,uint:_chunk5DF7EEAZcjs.A,sint:_chunk5DF7EEAZcjs.B,depth:_chunk5DF7EEAZcjs.C};function ht(e,t){return new Le(e,t)}function $(e){return(e==null?void 0:e.resourceType)==="texture"}function Ie(e){return(e==null?void 0:e.resourceType)==="texture-storage-view"}function Ce(e){return(e==null?void 0:e.resourceType)==="texture-sampled-view"}var wt={mutable:"read_write",readonly:"read",writeonly:"write"},Le=class{constructor(t,r){this.props=t;this._branch=r;_chunk5DF7EEAZcjs.c.call(void 0, this,"resourceType","texture");_chunk5DF7EEAZcjs.c.call(void 0, this,"usableAsSampled",!1);_chunk5DF7EEAZcjs.c.call(void 0, this,"usableAsStorage",!1);_chunk5DF7EEAZcjs.c.call(void 0, this,"usableAsRender",!1);_chunk5DF7EEAZcjs.c.call(void 0, this,"_destroyed",!1);_chunk5DF7EEAZcjs.c.call(void 0, this,"_label");_chunk5DF7EEAZcjs.c.call(void 0, this,"_flags",GPUTextureUsage.COPY_DST|GPUTextureUsage.COPY_SRC);_chunk5DF7EEAZcjs.c.call(void 0, this,"_texture",null)}get label(){return this._label}$name(t){return this._label=t,this}unwrap(){var t,r,n,a,o;if(this._destroyed)throw new Error("This texture has been destroyed");return this._texture||(this._texture=this._branch.device.createTexture({label:(t=this._label)!=null?t:"<unnamed>",format:this.props.format,size:this.props.size,usage:this._flags,dimension:(r=this.props.dimension)!=null?r:"2d",viewFormats:(n=this.props.viewFormats)!=null?n:[],mipLevelCount:(a=this.props.mipLevelCount)!=null?a:1,sampleCount:(o=this.props.sampleCount)!=null?o:1})),this._texture}$usage(...t){let r=t.includes("storage"),n=t.includes("sampled"),a=t.includes("render");return this._flags|=n?GPUTextureUsage.TEXTURE_BINDING:0,this._flags|=r?GPUTextureUsage.STORAGE_BINDING:0,this._flags|=a?GPUTextureUsage.RENDER_ATTACHMENT:0,this.usableAsStorage||(this.usableAsStorage=r),this.usableAsSampled||(this.usableAsSampled=n),this.usableAsRender||(this.usableAsRender=a),this}createView(t,r){if(t==="sampled")return this._asSampled(r);let n=r;switch(t){case"mutable":return this._asMutable(n);case"readonly":return this._asReadonly(n);case"writeonly":return this._asWriteonly(n)}}_asStorage(t,r){var o;if(!this.usableAsStorage)throw new Error("Unusable as storage");let n=(o=t==null?void 0:t.format)!=null?o:this.props.format,a=ee[n];return _chunk5DF7EEAZcjs.s.call(void 0, !!a,`Unsupported storage texture format: ${n}`),new Ge(t!=null?t:{},r,this)}_asReadonly(t){return this._asStorage(t,"readonly")}_asWriteonly(t){return this._asStorage(t,"writeonly")}_asMutable(t){return this._asStorage(t,"mutable")}_asSampled(t){var a;if(!this.usableAsSampled)throw new Error("Unusable as sampled");let r=(a=t==null?void 0:t.format)!=null?a:this.props.format;if(!ee[r])throw new Error(`Unsupported storage texture format: ${r}`);return new Ee(t,this)}destroy(){var t;this._destroyed||(this._destroyed=!0,(t=this._texture)==null||t.destroy())}},Te={"1d":"1d","2d":"2d","2d-array":"2d_array",cube:"cube","cube-array":"cube_array","3d":"3d"},Ge=class{constructor(t,r,n){this.access=r;this._texture=n;_chunk5DF7EEAZcjs.c.call(void 0, this,"resourceType","texture-storage-view");_chunk5DF7EEAZcjs.c.call(void 0, this,"texelDataType");_chunk5DF7EEAZcjs.c.call(void 0, this,"dimension");_chunk5DF7EEAZcjs.c.call(void 0, this,"_view");_chunk5DF7EEAZcjs.c.call(void 0, this,"_format");var a,o,i;this.dimension=(o=(a=t==null?void 0:t.dimension)!=null?a:n.props.dimension)!=null?o:"2d",this._format=(i=t==null?void 0:t.format)!=null?i:n.props.format,this.texelDataType=ee[this._format]}get label(){return this._texture.label}$name(t){return this._texture.$name(t),this}unwrap(){var t;return this._view||(this._view=this._texture.unwrap().createView({label:`${(t=this.label)!=null?t:"<unnamed>"} - View`,format:this._format,dimension:this.dimension})),this._view}resolve(t){let r=t.names.makeUnique(this.label),{group:n,binding:a}=t.allocateFixedEntry({storageTexture:this._format,access:this.access,viewDimension:this.dimension},this),o=`texture_storage_${Te[this.dimension]}`;return t.addDeclaration(`@group(${n}) @binding(${a}) var ${r}: ${o}<${this._format}, ${wt[this.access]}>;`),r}toString(){var t;return`${this.resourceType}:${(t=this.label)!=null?t:"<unnamed>"}`}},de=class{constructor(t,r,n,a){this._format=t;this.dimension=r;this.access=n;this._membership=a;_chunk5DF7EEAZcjs.c.call(void 0, this,"resourceType","texture-storage-view");_chunk5DF7EEAZcjs.c.call(void 0, this,"texelDataType");this.texelDataType=ee[this._format]}get label(){return this._membership.key}resolve(t){let r=t.names.makeUnique(this.label),n=t.allocateLayoutEntry(this._membership.layout),a=`texture_storage_${Te[this.dimension]}`;return t.addDeclaration(`@group(${n}) @binding(${this._membership.idx}) var ${r}: ${a}<${this._format}, ${wt[this.access]}>;`),r}toString(){var t;return`${this.resourceType}:${(t=this.label)!=null?t:"<unnamed>"}`}},Ee=class{constructor(t,r){this._props=t;this._texture=r;_chunk5DF7EEAZcjs.c.call(void 0, this,"resourceType","texture-sampled-view");_chunk5DF7EEAZcjs.c.call(void 0, this,"channelDataType");_chunk5DF7EEAZcjs.c.call(void 0, this,"dimension");_chunk5DF7EEAZcjs.c.call(void 0, this,"_format");_chunk5DF7EEAZcjs.c.call(void 0, this,"_view");var n,a,o;this.dimension=(a=(n=t==null?void 0:t.dimension)!=null?n:r.props.dimension)!=null?a:"2d",this._format=(o=t==null?void 0:t.format)!=null?o:r.props.format,this.channelDataType=ct[this._format]}get label(){return this._texture.label}$name(t){return this._texture.$name(t),this}unwrap(){var t;return this._view||(this._view=this._texture.unwrap().createView(_chunk5DF7EEAZcjs.a.call(void 0, {label:`${(t=this.label)!=null?t:"<unnamed>"} - View`},this._props))),this._view}resolve(t){var p;let r=t.names.makeUnique(this.label),n=((p=this._texture.props.sampleCount)!=null?p:1)>1,{group:a,binding:o}=t.allocateFixedEntry({texture:xt[this.channelDataType.type],viewDimension:this.dimension,multisampled:n},this),i=n?"texture_multisampled_2d":`texture_${Te[this.dimension]}`;return t.addDeclaration(`@group(${a}) @binding(${o}) var ${r}: ${i}<${t.resolve(this.channelDataType)}>;`),r}toString(){var t;return`${this.resourceType}:${(t=this.label)!=null?t:"<unnamed>"}`}},me=class{constructor(t,r,n,a){this.dimension=r;this._multisampled=n;this._membership=a;_chunk5DF7EEAZcjs.c.call(void 0, this,"resourceType","texture-sampled-view");_chunk5DF7EEAZcjs.c.call(void 0, this,"channelDataType");this.channelDataType=bt[t]}get label(){return this._membership.key}resolve(t){let r=t.names.makeUnique(this.label),n=t.allocateLayoutEntry(this._membership.layout),a=this._multisampled?"texture_multisampled_2d":`texture_${Te[this.dimension]}`;return t.addDeclaration(`@group(${n}) @binding(${this._membership.idx}) var ${r}: ${a}<${t.resolve(this.channelDataType)}>;`),r}toString(){var t;return`${this.resourceType}:${(t=this.label)!=null?t:"<unnamed>"}`}};function Ut(e){return!!(e!=null&&e.usableAsSampled)}var ge=class e extends Error{constructor(t){var r;super(`Resource '${(r=t.label)!=null?r:"<unnamed>"}' cannot be bound as 'sampled'. Use .$usage('sampled') to allow it.`),Object.setPrototypeOf(this,e.prototype)}};function fe(e){return new ke(e)}function ye(e){return!!e&&e.resourceType==="bind-group-layout"}function St(e){return!!e&&e.resourceType==="bind-group"}var Ve=class e extends Error{constructor(t,r){super(`Bind group '${t!=null?t:"<unnamed>"}' is missing a required binding '${r}'`),Object.setPrototypeOf(this,e.prototype)}},Dt=["compute"],K=["compute","vertex","fragment"],ke=class{constructor(t){this.entries=t;_chunk5DF7EEAZcjs.c.call(void 0, this,"_label");_chunk5DF7EEAZcjs.c.call(void 0, this,"_index");_chunk5DF7EEAZcjs.c.call(void 0, this,"resourceType","bind-group-layout");_chunk5DF7EEAZcjs.c.call(void 0, this,"bound",{});var n,a,o,i,p;let r=0;for(let[d,l]of Object.entries(t)){if(l===null){r++;continue}let T={idx:r,key:d,layout:this};if("uniform"in l&&(this.bound[d]=new Z("uniform",l.uniform,T)),"storage"in l){let f="type"in l.storage?l.storage:l.storage(0);this.bound[d]=new Z((n=l.access)!=null?n:"readonly",f,T)}"texture"in l&&(this.bound[d]=new me(l.texture,(a=l.viewDimension)!=null?a:"2d",(o=l.multisampled)!=null?o:!1,T)),"storageTexture"in l&&(this.bound[d]=new de(l.storageTexture,(i=l.viewDimension)!=null?i:"2d",(p=l.access)!=null?p:"writeonly",T)),"externalTexture"in l&&(this.bound[d]=new le(T)),"sampler"in l&&(l.sampler==="comparison"?this.bound[d]=new pe(T):this.bound[d]=new ue(T)),r++}}get label(){return this._label}get index(){return this._index}$name(t){return this._label=t,this}$idx(t){return this._index=t,this}unwrap(t){var n;return t.device.createBindGroupLayout({label:(n=this.label)!=null?n:"<unnamed>",entries:Object.values(this.entries).map((a,o)=>{var d,l,T,f;if(a===null)return null;let i=a.visibility,p={binding:o,visibility:0};if("uniform"in a)i=i!=null?i:K,p.buffer={type:"uniform"};else if("storage"in a)i=i!=null?i:a.access==="mutable"?Dt:K,p.buffer={type:a.access==="mutable"?"storage":"read-only-storage"};else if("sampler"in a)i=i!=null?i:K,p.sampler={type:a.sampler};else if("texture"in a)i=i!=null?i:K,p.texture={sampleType:a.texture,viewDimension:(d=a.viewDimension)!=null?d:"2d",multisampled:(l=a.multisampled)!=null?l:!1};else if("storageTexture"in a){let m=(T=a.access)!=null?T:"writeonly";i=i!=null?i:m==="readonly"?K:Dt,p.storageTexture={format:a.storageTexture,access:{mutable:"read-write",readonly:"read-only",writeonly:"write-only"}[m],viewDimension:(f=a.viewDimension)!=null?f:"2d"}}else"externalTexture"in a&&(i=i!=null?i:K,p.externalTexture={});return i!=null&&i.includes("compute")&&(p.visibility|=GPUShaderStage.COMPUTE),i!=null&&i.includes("vertex")&&(p.visibility|=GPUShaderStage.VERTEX),i!=null&&i.includes("fragment")&&(p.visibility|=GPUShaderStage.FRAGMENT),p}).filter(a=>a!==null)})}populate(t){return new M(this,t)}},M=class{constructor(t,r){this.layout=t;this.entries=r;_chunk5DF7EEAZcjs.c.call(void 0, this,"resourceType","bind-group");for(let n of Object.keys(t.entries))if(t.entries[n]!==null&&!(n in r))throw new Ve(t.label,n)}unwrap(t){var n;return t.device.createBindGroup({label:(n=this.layout.label)!=null?n:"<unnamed>",layout:t.unwrap(this.layout),entries:Object.entries(this.layout.entries).map(([a,o],i)=>{var d;if(o===null)return null;let p=this.entries[a];if(p===void 0)throw new Error(`'${a}' is a resource required to populate bind group layout '${(d=this.layout.label)!=null?d:"<unnamed>"}'.`);if("uniform"in o){let l;if(z(p)){if(!Re(p))throw new (0, _chunk5DF7EEAZcjs.v)(p);l={buffer:t.unwrap(p)}}else l={buffer:p};return{binding:i,resource:l}}if("storage"in o){let l;if(z(p)){if(!se(p))throw new (0, _chunk5DF7EEAZcjs.v)(p);l={buffer:t.unwrap(p)}}else l={buffer:p};return{binding:i,resource:l}}if("texture"in o){let l;if($(p)){if(!Ut(p))throw new ge(p);l=t.unwrap(p.createView("sampled"))}else l=p;return{binding:i,resource:l}}if("storageTexture"in o){let l;if($(p)){if(!se(p))throw new ie(p);o.access==="readonly"?l=t.unwrap(p.createView("readonly")):o.access==="mutable"?l=t.unwrap(p.createView("mutable")):l=t.unwrap(p.createView("writeonly"))}else l=p;return{binding:i,resource:l}}if("externalTexture"in o||"sampler"in o)return{binding:i,resource:p};throw new Error(`Malformed bind group entry: ${p} (${JSON.stringify(p)})`)}).filter(a=>a!==null)})}};var Ft="#CATCHALL#",Me=class{constructor(){_chunk5DF7EEAZcjs.c.call(void 0, this,"_stack",[]);_chunk5DF7EEAZcjs.c.call(void 0, this,"_itemDepth",0)}get itemDepth(){return this._itemDepth}get topItem(){let t=this._stack[this._stack.length-1];if(!t||t.type!=="item")throw new Error("Internal error, expected item layer to be on top.");return t}pushItem(){this._itemDepth++,this._stack.push({type:"item",usedSlots:new Set})}pushSlotBindings(t){this._stack.push({type:"slotBinding",bindingMap:new WeakMap(t)})}pushFunctionScope(t,r,n){this._stack.push({type:"functionScope",args:t,returnType:r,externalMap:n})}pop(){let t=this._stack.pop();(t==null?void 0:t.type)==="item"&&this._itemDepth--}readSlot(t){for(let r=this._stack.length-1;r>=0;--r){let n=this._stack[r];if((n==null?void 0:n.type)==="item")n.usedSlots.add(t);else if((n==null?void 0:n.type)==="slotBinding"){let a=n.bindingMap.get(t);if(a!==void 0)return a}else if(!((n==null?void 0:n.type)==="functionScope"||(n==null?void 0:n.type)==="blockScope"))throw new Error("Unknown layer type.")}return t.defaultValue}getResourceById(t){for(let r=this._stack.length-1;r>=0;--r){let n=this._stack[r];if((n==null?void 0:n.type)==="functionScope"){let a=n.args.find(i=>i.value===t);if(a!==void 0)return a;let o=n.externalMap[t];return o!==void 0?{value:o,dataType:w}:void 0}if((n==null?void 0:n.type)==="blockScope"){let a=n.declarations.get(t);if(a!==void 0)return{value:t,dataType:a}}}}},ce=[""," "," "," "," "," "," "," "," "],$e=ce.length-1,We=class{constructor(){_chunk5DF7EEAZcjs.c.call(void 0, this,"identLevel",0)}get pre(){var t;return(t=ce[this.identLevel])!=null?t:ce[$e].repeat(this.identLevel/$e)+ce[this.identLevel%$e]}indent(){let t=this.pre;return this.identLevel++,t}dedent(){return this.identLevel--,this.pre}},Oe=class{constructor(t){_chunk5DF7EEAZcjs.c.call(void 0, this,"_memoizedResolves",new WeakMap);_chunk5DF7EEAZcjs.c.call(void 0, this,"_memoizedDerived",new WeakMap);_chunk5DF7EEAZcjs.c.call(void 0, this,"_indentController",new We);_chunk5DF7EEAZcjs.c.call(void 0, this,"_jitTranspiler");_chunk5DF7EEAZcjs.c.call(void 0, this,"_itemStateStack",new Me);_chunk5DF7EEAZcjs.c.call(void 0, this,"_declarations",[]);_chunk5DF7EEAZcjs.c.call(void 0, this,"bindGroupLayoutsToPlaceholderMap",new Map);_chunk5DF7EEAZcjs.c.call(void 0, this,"_nextFreeLayoutPlaceholderIdx",0);_chunk5DF7EEAZcjs.c.call(void 0, this,"fixedBindings",[]);_chunk5DF7EEAZcjs.c.call(void 0, this,"names");this.names=t.names,this._jitTranspiler=t.jitTranspiler}get pre(){return this._indentController.pre}indent(){return this._indentController.indent()}dedent(){return this._indentController.dedent()}getById(t){var r;return(r=this._itemStateStack.getResourceById(t))!=null?r:{value:t,dataType:w}}transpileFn(t){if(!this._jitTranspiler)throw new Error("Tried to execute a tgpu.fn function without providing a JIT transpiler, or transpiling at build time.");return this._jitTranspiler.transpileFn(t)}fnToWgsl(t){this._itemStateStack.pushFunctionScope(t.args,t.returnType,t.externalMap);let r=Be(this,t.body);this._itemStateStack.pop();let n=t.args.map(a=>`${a.value}: ${this.resolve(a.dataType)}`).join(", ");return{head:t.returnType!==void 0?`(${n}) -> ${this.resolve(t.returnType)}`:`(${n})`,body:r}}addDeclaration(t){this._declarations.push(t)}allocateLayoutEntry(t){let r=this.bindGroupLayoutsToPlaceholderMap,n=r.get(t);return n||(n=`#BIND_GROUP_LAYOUT_${this._nextFreeLayoutPlaceholderIdx++}#`,r.set(t,n)),n}allocateFixedEntry(t,r){let n=this.fixedBindings.length;return this.fixedBindings.push({layoutEntry:t,resource:r}),{group:Ft,binding:n}}readSlot(t){let r=this._itemStateStack.readSlot(t);if(r===void 0)throw new (0, _chunk5DF7EEAZcjs.u)(t);return r}withSlots(t,r){this._itemStateStack.pushSlotBindings(t);try{return r()}finally{this._itemStateStack.pop()}}unwrap(t){let r=t;for(;;)if(N(r))r=this.readSlot(r);else if(ae(r))r=this._getOrCompute(r);else break;return r}_getOrCompute(t){var n;let r=(n=this._memoizedDerived.get(t))!=null?n:[];this._itemStateStack.pushItem();try{for(let i of r)if([...i.slotToValueMap.entries()].every(([d,l])=>d.areEqual(this._itemStateStack.readSlot(d),l)))return i.result;let a=t["~compute"](),o=new Map;for(let i of this._itemStateStack.topItem.usedSlots)o.set(i,this._itemStateStack.readSlot(i));return r.push({slotToValueMap:o,result:a}),this._memoizedDerived.set(t,r),a}catch(a){throw a instanceof _chunk5DF7EEAZcjs.t?a.appendToTrace(t):new (0, _chunk5DF7EEAZcjs.t)(a,[t])}finally{this._itemStateStack.pop()}}_getOrInstantiate(t){var n;let r=(n=this._memoizedResolves.get(t))!=null?n:[];this._itemStateStack.pushItem();try{for(let i of r)if([...i.slotToValueMap.entries()].every(([d,l])=>d.areEqual(this._itemStateStack.readSlot(d),l)))return i.result;let a=_chunk5DF7EEAZcjs.d.call(void 0, t)?Se(this,t):t.resolve(this),o=new Map;for(let i of this._itemStateStack.topItem.usedSlots)o.set(i,this._itemStateStack.readSlot(i));return r.push({slotToValueMap:o,result:a}),this._memoizedResolves.set(t,r),a}catch(a){throw a instanceof _chunk5DF7EEAZcjs.t?a.appendToTrace(t):new (0, _chunk5DF7EEAZcjs.t)(a,[t])}finally{this._itemStateStack.pop()}}resolve(t){let r=this.unwrap(t);if(typeof r=="string"||typeof r=="number"||typeof r=="boolean")return String(r);if(this._itemStateStack.itemDepth===0){let n=_chunk5DF7EEAZcjs.x.call(void 0, this,()=>this._getOrInstantiate(r));return`${[...this._declarations].join(`
15
13
 
16
- `)}${a}`}return this._getOrInstantiate(t)}finally{n&&this._itemStateStack.pop()}}};function H(e,t){var f;let r=new Ne(t),n=r.resolve(e),a=r.bindGroupLayoutsToPlaceholderMap,o=[],i=new Set([...a.keys()].map(m=>m.index).filter(m=>m!==void 0)),p=pt(i),g=r.fixedBindings.map((m,c)=>[String(c),m.layoutEntry]),l=()=>{let m=p.next().value,c=Te(Object.fromEntries(g));return o[m]=c,n=n.replaceAll(Ut,String(m)),[m,new O(c,Object.fromEntries(r.fixedBindings.map((b,v)=>[String(v),b.resource])))]},d=g.length>0?l():null;for(let[m,c]of a.entries()){let b=(f=m.index)!=null?f:p.next().value;o[b]=m,n=n.replaceAll(c,String(b))}return{code:n,bindGroupLayouts:o,catchall:d}}function St(e){return!!e&&(typeof e=="object"||typeof e=="function")&&"$name"in e}function Bt(e,t){for(let[r,n]of Object.entries(t))e[r]=n,St(n)&&(!("label"in n)||n.label===void 0)&&n.$name(r)}function Ft(e,t,r){return Object.entries(t).reduce((n,[a,o])=>{let i=K(o)||_chunkCXTZVSMHcjs.d.call(void 0, o)?e.resolve(o):String(o);return n.replaceAll(new RegExp(`(?<![\\w_])${a}(?![\\w_])`,"g"),i)},r)}function _t(e){let{input:t,extraDependencies:r,names:n,jitTranspiler:a}=e,o={};Bt(o,r!=null?r:{});let i=(Array.isArray(t)?t:[t]).filter(d=>typeof d=="string"),p=(Array.isArray(t)?t:[t]).filter(d=>typeof d!="string"),g={resolve(d){let f=i.join(`
17
-
18
- `);for(let m of p)d.resolve(m);return Ft(d,o,f)}},{code:l}=H(g,{names:n==="strict"?new k:new C,jitTranspiler:a});return l}var ne=class{constructor(t){this._make=t;_chunkCXTZVSMHcjs.c.call(void 0, this,"_map",new WeakMap)}getOrMake(t,...r){if(this._map.has(t))return this._map.get(t);let n=this._make(t,...r);return this._map.set(t,n),n}};function At(e,t,r){return new je(new ze(e,t,r),{})}function vt(e){return(e==null?void 0:e.resourceType)==="compute-pipeline"}var je=class e{constructor(t,r){this._core=t;this._priors=r;_chunkCXTZVSMHcjs.c.call(void 0, this,"resourceType","compute-pipeline")}get label(){return this._core.label}get rawPipeline(){return this._core.unwrap().pipeline}with(t,r){var n;return new e(this._core,{bindGroupLayoutMap:new Map([...(n=this._priors.bindGroupLayoutMap)!=null?n:[],[t,r]])})}dispatchWorkgroups(t,r,n){var i;let a=this._core.unwrap(),o=this._core.branch.commandEncoder.beginComputePass({label:(i=this._core.label)!=null?i:"<unnamed>"});o.setPipeline(a.pipeline),a.bindGroupLayouts.forEach((p,g)=>{var l;if(a.catchall&&g===a.catchall[0])o.setBindGroup(g,this._core.branch.unwrap(a.catchall[1]));else{let d=(l=this._priors.bindGroupLayoutMap)==null?void 0:l.get(p);if(d===void 0)throw new z(p.label);o.setBindGroup(g,this._core.branch.unwrap(d))}}),o.dispatchWorkgroups(t,r,n),o.end()}$name(t){return this._core.label=t,this}},ze=class{constructor(t,r,n){this.branch=t;this._slotBindings=r;this._entryFn=n;_chunkCXTZVSMHcjs.c.call(void 0, this,"label");_chunkCXTZVSMHcjs.c.call(void 0, this,"_memo")}unwrap(){var t,r,n,a,o;if(this._memo===void 0){let i=this.branch.device,{code:p,bindGroupLayouts:g,catchall:l}=H({resolve:d=>(d.resolve(this._entryFn,this._slotBindings),"")},{names:this.branch.nameRegistry,jitTranspiler:this.branch.jitTranspiler});l!==null&&((r=g[l[0]])==null||r.$name(`${(t=this.label)!=null?t:"<unnamed>"} - Automatic Bind Group & Layout`)),this._memo={pipeline:i.createComputePipeline({label:(n=this.label)!=null?n:"<unnamed>",layout:i.createPipelineLayout({label:`${(a=this.label)!=null?a:"<unnamed>"} - Pipeline Layout`,bindGroupLayouts:g.map(d=>this.branch.unwrap(d))}),compute:{module:i.createShaderModule({label:`${(o=this.label)!=null?o:"<unnamed>"} - Shader`,code:p})}}),bindGroupLayouts:g,catchall:l}}return this._memo}};function Ht(e){return typeof(e==null?void 0:e.format)=="string"}function Et(e,t){var i,p;let r=[];if(_chunkCXTZVSMHcjs.r.call(void 0, e)){if(!Ht(t))throw new Error("Shader expected a single attribute, not a record of attributes to be passed in.");return r.push(t._layout),{usedVertexLayouts:r,bufferDefinitions:[{arrayStride:t._layout.stride,stepMode:t._layout.stepMode,attributes:[{format:t.format,offset:t.offset,shaderLocation:(i=_chunkCXTZVSMHcjs.q.call(void 0, e))!=null?i:0}]}]}}let n=[],a=new WeakMap,o=0;for(let[g,l]of Object.entries(e)){if(_chunkCXTZVSMHcjs.Ha.call(void 0, l))continue;let d=t[g];if(!d)throw new Error(`An attribute by the name of '${g}' was not provided to the shader.`);let f=d._layout,m=a.get(f);m||(r.push(f),m=[],n.push({arrayStride:f.stride,stepMode:f.stepMode,attributes:m}),a.set(f,m)),o=(p=_chunkCXTZVSMHcjs.q.call(void 0, l))!=null?p:o,m.push({format:d.format,offset:d.offset,shaderLocation:o++})}return{usedVertexLayouts:r,bufferDefinitions:n}}function Rt(e){return(e==null?void 0:e.resourceType)==="vertex-layout"}function Xt(e){return typeof(e==null?void 0:e.loadOp)=="string"}function Pt(e,t){if(_chunkCXTZVSMHcjs.r.call(void 0, e)){if(!Xt(t))throw new Error("Expected a single color attachment, not a record.");return[t]}let r=[];for(let n of Object.keys(e)){let a=t[n];if(!a)throw new Error(`A color attachment by the name of '${n}' was not provided to the shader.`);r.push(a)}return r}function Qt(e){return typeof(e==null?void 0:e.format)=="string"}function Lt(e,t){if(_chunkCXTZVSMHcjs.r.call(void 0, e)){if(!Qt(t))throw new Error("Expected a single color target configuration, not a record.");return[t]}let r=[];for(let n of Object.keys(e)){let a=t[n];if(!a)throw new Error(`A color target by the name of '${n}' was not provided to the shader.`);r.push(a)}return r}function Gt(e){return new Ke(new qe(e),{})}var Ke=class e{constructor(t,r){this._core=t;this._priors=r;_chunkCXTZVSMHcjs.c.call(void 0, this,"resourceType","render-pipeline")}get label(){return this._core.label}$name(t){return this._core.label=t,this}with(t,r){var n,a;if(ye(t))return new e(this._core,_chunkCXTZVSMHcjs.b.call(void 0, _chunkCXTZVSMHcjs.a.call(void 0, {},this._priors),{bindGroupLayoutMap:new Map([...(n=this._priors.bindGroupLayoutMap)!=null?n:[],[t,r]])}));if(Rt(t))return new e(this._core,_chunkCXTZVSMHcjs.b.call(void 0, _chunkCXTZVSMHcjs.a.call(void 0, {},this._priors),{vertexLayoutMap:new Map([...(a=this._priors.vertexLayoutMap)!=null?a:[],[t,r]])}));throw new Error("Unsupported value passed into .with()")}withColorAttachment(t){return new e(this._core,_chunkCXTZVSMHcjs.b.call(void 0, _chunkCXTZVSMHcjs.a.call(void 0, {},this._priors),{colorAttachment:t}))}draw(t,r,n,a){var d,f;let o=this._core.unwrap(),{branch:i,fragmentFn:p}=this._core.options,g=Pt(p.shell.returnType,(d=this._priors.colorAttachment)!=null?d:{}).map(m=>I(m.view)?_chunkCXTZVSMHcjs.b.call(void 0, _chunkCXTZVSMHcjs.a.call(void 0, {},m),{view:i.unwrap(m.view).createView()}):m),l=i.commandEncoder.beginRenderPass({label:(f=this._core.label)!=null?f:"<unnamed>",colorAttachments:g});l.setPipeline(o.pipeline),o.bindGroupLayouts.forEach((m,c)=>{var b;if(o.catchall&&c===o.catchall[0])l.setBindGroup(c,i.unwrap(o.catchall[1]));else{let v=(b=this._priors.bindGroupLayoutMap)==null?void 0:b.get(m);if(v===void 0)throw new z(m.label);l.setBindGroup(c,i.unwrap(v))}}),this._core.usedVertexLayouts.forEach((m,c)=>{var v,V;let b=(v=this._priors.vertexLayoutMap)==null?void 0:v.get(m);if(!b)throw new Error(`Missing vertex buffer for layout '${(V=m.label)!=null?V:"<unnamed>"}'. Please provide it using pipeline.with(layout, buffer).(...)`);l.setVertexBuffer(c,i.unwrap(b))}),l.draw(t,r,n,a),l.end()}},qe=class{constructor(t){this.options=t;_chunkCXTZVSMHcjs.c.call(void 0, this,"label");_chunkCXTZVSMHcjs.c.call(void 0, this,"usedVertexLayouts");_chunkCXTZVSMHcjs.c.call(void 0, this,"_memo");_chunkCXTZVSMHcjs.c.call(void 0, this,"_vertexBufferLayouts");_chunkCXTZVSMHcjs.c.call(void 0, this,"_targets");let r=Et(t.vertexFn.shell.argTypes[0],t.vertexAttribs);this._vertexBufferLayouts=r.bufferDefinitions,this.usedVertexLayouts=r.usedVertexLayouts,this._targets=Lt(t.fragmentFn.shell.returnType,t.targets)}unwrap(){var t,r,n,a,o;if(this._memo===void 0){let{branch:i,vertexFn:p,fragmentFn:g,slotBindings:l,primitiveState:d}=this.options,{code:f,bindGroupLayouts:m,catchall:c}=H({resolve:V=>(V.resolve(p,l),V.resolve(g,l),"")},{names:i.nameRegistry,jitTranspiler:i.jitTranspiler});c!==null&&((r=m[c[0]])==null||r.$name(`${(t=this.label)!=null?t:"<unnamed>"} - Automatic Bind Group & Layout`));let b=i.device,v=b.createShaderModule({label:`${(n=this.label)!=null?n:"<unnamed>"} - Shader`,code:f});this._memo={pipeline:b.createRenderPipeline({label:(a=this.label)!=null?a:"<unnamed>",layout:b.createPipelineLayout({label:`${(o=this.label)!=null?o:"<unnamed>"} - Pipeline Layout`,bindGroupLayouts:m.map(V=>i.unwrap(V))}),vertex:{module:v,buffers:this._vertexBufferLayouts},fragment:{module:v,targets:this._targets},primitive:d!=null?d:{}}),bindGroupLayouts:m,catchall:c}}return this._memo}};var Je=class e{constructor(t,r){this._getRoot=t;this._slotBindings=r}with(t,r){return new e(this._getRoot,[...this._slotBindings,[t,r]])}withCompute(t){return new Ye(this._getRoot(),this._slotBindings,t)}withVertex(t,r){return new He({branch:this._getRoot(),primitiveState:void 0,slotBindings:this._slotBindings,vertexFn:t,vertexAttribs:r})}},Ye=class{constructor(t,r,n){this._root=t;this._slotBindings=r;this._entryFn=n}createPipeline(){return At(this._root,this._slotBindings,this._entryFn)}},He=class{constructor(t){this._options=t}withFragment(t,r,n){return ee(typeof t!="string","Just type mismatch validation"),ee(typeof r!="string","Just type mismatch validation"),new Xe(_chunkCXTZVSMHcjs.b.call(void 0, _chunkCXTZVSMHcjs.a.call(void 0, {},this._options),{fragmentFn:t,targets:r}))}},Xe=class e{constructor(t){this._options=t}withPrimitive(t){return new e(_chunkCXTZVSMHcjs.b.call(void 0, _chunkCXTZVSMHcjs.a.call(void 0, {},this._options),{primitiveState:t}))}createPipeline(){return Gt(this._options)}},xe=class extends Je{constructor(r,n,a,o){super(()=>this,[]);this.device=r;this.nameRegistry=n;this.jitTranspiler=a;this._ownDevice=o;_chunkCXTZVSMHcjs.c.call(void 0, this,"_disposables",[]);_chunkCXTZVSMHcjs.c.call(void 0, this,"_unwrappedBindGroupLayouts",new ne(r=>r.unwrap(this)));_chunkCXTZVSMHcjs.c.call(void 0, this,"_unwrappedBindGroups",new ne(r=>r.unwrap(this)));_chunkCXTZVSMHcjs.c.call(void 0, this,"_commandEncoder",null)}get commandEncoder(){return this._commandEncoder||(this._commandEncoder=this.device.createCommandEncoder()),this._commandEncoder}createBuffer(r,n){let a=Tt(this,r,n);return this._disposables.push(a),a}createTexture(r){let n=bt(r,this);return this._disposables.push(n),n}createBindGroup(r,n){return new O(r,n)}destroy(){for(let r of this._disposables)r.destroy();this._ownDevice&&this.device.destroy()}unwrap(r){if(vt(r))return r.rawPipeline;if(ye(r))return this._unwrappedBindGroupLayouts.getOrMake(r);if(Dt(r))return this._unwrappedBindGroups.getOrMake(r);if(J(r))return r.buffer;if(I(r)||Ie(r)||Ve(r))return r.unwrap();throw new Error(`Unknown resource type: ${r}`)}flush(){this._commandEncoder&&(this.device.queue.submit([this._commandEncoder.finish()]),this._commandEncoder=null)}};async function It(e){let{adapter:t,device:r,unstable_names:n="random",unstable_jitTranspiler:a}=e!=null?e:{};if(!navigator.gpu)throw new Error("WebGPU is not supported by this browser.");let o=await navigator.gpu.requestAdapter(t);if(!o)throw new Error("Could not find a compatible GPU");return new xe(await o.requestDevice(r),n==="random"?new C:new k,a,!0)}function Vt(e){let{device:t,unstable_names:r="random",unstable_jitTranspiler:n}=e!=null?e:{};return new xe(t,r==="random"?new C:new k,n,!1)}var Zt={Uniform:"uniform",Storage:"storage",Vertex:"vertex",bindGroupLayout:Te,init:It,initFromDevice:Vt,resolve:_t},ia= exports.default =Zt;exports.NotUniformError = j; exports.ResolutionError = N; exports.default = ia; exports.isBuffer = J; exports.isComparisonSampler = Jt; exports.isSampledTextureView = Ve; exports.isSampler = qt; exports.isStorageTextureView = Ie; exports.isTexture = I; exports.isUsableAsRender = Yt; exports.isUsableAsSampled = Ce; exports.isUsableAsStorage = se; exports.isUsableAsUniform = Re; exports.isUsableAsVertex = zt; exports.tgpu = Zt;
14
+ `)}${n}`}return this._getOrInstantiate(r)}resolveValue(t,r){if(Q(t))return this.resolve(t);if(_chunk5DF7EEAZcjs.e.call(void 0, r))return`array(${t.map(n=>this.resolveValue(n,r.elementType))})`;if(_chunk5DF7EEAZcjs.f.call(void 0, r))return`${this.resolve(r)}(${Object.entries(r.propTypes).map(([n,a])=>this.resolveValue(t[n],a))})`;throw new Error(`Value ${t} of schema ${r} is not resolvable to WGSL`)}};function q(e,t){var f;let r=new Oe(t),n=r.resolve(e),a=r.bindGroupLayoutsToPlaceholderMap,o=[],i=new Set([...a.keys()].map(m=>m.index).filter(m=>m!==void 0)),p=mt(i),d=r.fixedBindings.map((m,c)=>[String(c),m.layoutEntry]),l=()=>{let m=p.next().value,c=fe(Object.fromEntries(d));return o[m]=c,n=n.replaceAll(Ft,String(m)),[m,new M(c,Object.fromEntries(r.fixedBindings.map((b,P)=>[String(P),b.resource])))]},T=d.length>0?l():null;for(let[m,c]of a.entries()){let b=(f=m.index)!=null?f:p.next().value;o[b]=m,n=n.replaceAll(c,String(b))}return{code:n,bindGroupLayouts:o,catchall:T}}function _t(e){return!!e&&(typeof e=="object"||typeof e=="function")&&"$name"in e}function vt(e,t){for(let[r,n]of Object.entries(t))e[r]=n,_t(n)&&(!("label"in n)||n.label===void 0)&&n.$name(r)}function Bt(e,t,r){return Object.entries(t).reduce((n,[a,o])=>{let i=Fe(o)||_chunk5DF7EEAZcjs.d.call(void 0, o)||N(o)?e.resolve(o):String(o);return n.replaceAll(new RegExp(`(?<![\\w_])${a}(?![\\w_])`,"g"),i)},r)}function At(e){let{externals:t,template:r,names:n,unstable_jitTranspiler:a}=e,o={};vt(o,t!=null?t:{});let i={resolve(d){return Bt(d,o,r!=null?r:"")},toString:()=>"<root>"},{code:p}=q(i,{names:n==="strict"?new V:new C,jitTranspiler:a});return p}var te=class{constructor(t){this._make=t;_chunk5DF7EEAZcjs.c.call(void 0, this,"_map",new WeakMap)}getOrMake(t,...r){if(this._map.has(t))return this._map.get(t);let n=this._make(t,...r);return this._map.set(t,n),n}};function Pt(e,t,r){return new Ne(new je(e,t,r),{})}function Rt(e){return(e==null?void 0:e.resourceType)==="compute-pipeline"}var Ne=class e{constructor(t,r){this._core=t;this._priors=r;_chunk5DF7EEAZcjs.c.call(void 0, this,"resourceType","compute-pipeline")}get label(){return this._core.label}get rawPipeline(){return this._core.unwrap().pipeline}with(t,r){var n;return new e(this._core,{bindGroupLayoutMap:new Map([...(n=this._priors.bindGroupLayoutMap)!=null?n:[],[t,r]])})}dispatchWorkgroups(t,r,n){var i;let a=this._core.unwrap(),o=this._core.branch.commandEncoder.beginComputePass({label:(i=this._core.label)!=null?i:"<unnamed>"});o.setPipeline(a.pipeline),a.bindGroupLayouts.forEach((p,d)=>{var l;if(a.catchall&&d===a.catchall[0])o.setBindGroup(d,this._core.branch.unwrap(a.catchall[1]));else{let T=(l=this._priors.bindGroupLayoutMap)==null?void 0:l.get(p);if(T===void 0)throw new (0, _chunk5DF7EEAZcjs.w)(p.label);o.setBindGroup(d,this._core.branch.unwrap(T))}}),o.dispatchWorkgroups(t,r,n),o.end()}$name(t){return this._core.label=t,this}},je=class{constructor(t,r,n){this.branch=t;this._slotBindings=r;this._entryFn=n;_chunk5DF7EEAZcjs.c.call(void 0, this,"label");_chunk5DF7EEAZcjs.c.call(void 0, this,"_memo")}unwrap(){var t,r,n,a,o;if(this._memo===void 0){let i=this.branch.device,{code:p,bindGroupLayouts:d,catchall:l}=q({resolve:T=>(T.withSlots(this._slotBindings,()=>{T.resolve(this._entryFn)}),""),toString:()=>{var T;return`computePipeline:${(T=this.label)!=null?T:"<unnamed>"}`}},{names:this.branch.nameRegistry,jitTranspiler:this.branch.jitTranspiler});l!==null&&((r=d[l[0]])==null||r.$name(`${(t=this.label)!=null?t:"<unnamed>"} - Automatic Bind Group & Layout`)),this._memo={pipeline:i.createComputePipeline({label:(n=this.label)!=null?n:"<unnamed>",layout:i.createPipelineLayout({label:`${(a=this.label)!=null?a:"<unnamed>"} - Pipeline Layout`,bindGroupLayouts:d.map(T=>this.branch.unwrap(T))}),compute:{module:i.createShaderModule({label:`${(o=this.label)!=null?o:"<unnamed>"} - Shader`,code:p})}}),bindGroupLayouts:d,catchall:l}}return this._memo}};function Xt(e){return typeof(e==null?void 0:e.format)=="string"}function Lt(e,t){var i,p;let r=[];if(_chunk5DF7EEAZcjs.r.call(void 0, e)){if(!Xt(t))throw new Error("Shader expected a single attribute, not a record of attributes to be passed in.");return r.push(t._layout),{usedVertexLayouts:r,bufferDefinitions:[{arrayStride:t._layout.stride,stepMode:t._layout.stepMode,attributes:[{format:t.format,offset:t.offset,shaderLocation:(i=_chunk5DF7EEAZcjs.q.call(void 0, e))!=null?i:0}]}]}}let n=[],a=new WeakMap,o=0;for(let[d,l]of Object.entries(e)){if(_chunk5DF7EEAZcjs.Ma.call(void 0, l))continue;let T=t[d];if(!T)throw new Error(`An attribute by the name of '${d}' was not provided to the shader.`);let f=T._layout,m=a.get(f);m||(r.push(f),m=[],n.push({arrayStride:f.stride,stepMode:f.stepMode,attributes:m}),a.set(f,m)),o=(p=_chunk5DF7EEAZcjs.q.call(void 0, l))!=null?p:o,m.push({format:T.format,offset:T.offset,shaderLocation:o++})}return{usedVertexLayouts:r,bufferDefinitions:n}}function Gt(e){return(e==null?void 0:e.resourceType)==="vertex-layout"}function Qt(e){return typeof(e==null?void 0:e.loadOp)=="string"}function Et(e,t){if(_chunk5DF7EEAZcjs.r.call(void 0, e)){if(!Qt(t))throw new Error("Expected a single color attachment, not a record.");return[t]}let r=[];for(let n of Object.keys(e)){let a=t[n];if(!a)throw new Error(`A color attachment by the name of '${n}' was not provided to the shader.`);r.push(a)}return r}function Zt(e){return typeof(e==null?void 0:e.format)=="string"}function It(e,t){if(_chunk5DF7EEAZcjs.r.call(void 0, e)){if(!Zt(t))throw new Error("Expected a single color target configuration, not a record.");return[t]}let r=[];for(let n of Object.keys(e)){let a=t[n];if(!a)throw new Error(`A color target by the name of '${n}' was not provided to the shader.`);r.push(a)}return r}function Ct(e){return new ze(new Ke(e),{})}var ze=class e{constructor(t,r){this._core=t;this._priors=r;_chunk5DF7EEAZcjs.c.call(void 0, this,"resourceType","render-pipeline")}get label(){return this._core.label}$name(t){return this._core.label=t,this}with(t,r){var n,a;if(ye(t))return new e(this._core,_chunk5DF7EEAZcjs.b.call(void 0, _chunk5DF7EEAZcjs.a.call(void 0, {},this._priors),{bindGroupLayoutMap:new Map([...(n=this._priors.bindGroupLayoutMap)!=null?n:[],[t,r]])}));if(Gt(t))return new e(this._core,_chunk5DF7EEAZcjs.b.call(void 0, _chunk5DF7EEAZcjs.a.call(void 0, {},this._priors),{vertexLayoutMap:new Map([...(a=this._priors.vertexLayoutMap)!=null?a:[],[t,r]])}));throw new Error("Unsupported value passed into .with()")}withColorAttachment(t){return new e(this._core,_chunk5DF7EEAZcjs.b.call(void 0, _chunk5DF7EEAZcjs.a.call(void 0, {},this._priors),{colorAttachment:t}))}draw(t,r,n,a){var T,f;let o=this._core.unwrap(),{branch:i,fragmentFn:p}=this._core.options,d=Et(p.shell.returnType,(T=this._priors.colorAttachment)!=null?T:{}).map(m=>$(m.view)?_chunk5DF7EEAZcjs.b.call(void 0, _chunk5DF7EEAZcjs.a.call(void 0, {},m),{view:i.unwrap(m.view).createView()}):m),l=i.commandEncoder.beginRenderPass({label:(f=this._core.label)!=null?f:"<unnamed>",colorAttachments:d});l.setPipeline(o.pipeline),o.bindGroupLayouts.forEach((m,c)=>{var b;if(o.catchall&&c===o.catchall[0])l.setBindGroup(c,i.unwrap(o.catchall[1]));else{let P=(b=this._priors.bindGroupLayoutMap)==null?void 0:b.get(m);if(P===void 0)throw new (0, _chunk5DF7EEAZcjs.w)(m.label);l.setBindGroup(c,i.unwrap(P))}}),this._core.usedVertexLayouts.forEach((m,c)=>{var P,F;let b=(P=this._priors.vertexLayoutMap)==null?void 0:P.get(m);if(!b)throw new Error(`Missing vertex buffer for layout '${(F=m.label)!=null?F:"<unnamed>"}'. Please provide it using pipeline.with(layout, buffer).(...)`);l.setVertexBuffer(c,i.unwrap(b))}),l.draw(t,r,n,a),l.end()}},Ke=class{constructor(t){this.options=t;_chunk5DF7EEAZcjs.c.call(void 0, this,"label");_chunk5DF7EEAZcjs.c.call(void 0, this,"usedVertexLayouts");_chunk5DF7EEAZcjs.c.call(void 0, this,"_memo");_chunk5DF7EEAZcjs.c.call(void 0, this,"_vertexBufferLayouts");_chunk5DF7EEAZcjs.c.call(void 0, this,"_targets");let r=Lt(t.vertexFn.shell.argTypes[0],t.vertexAttribs);this._vertexBufferLayouts=r.bufferDefinitions,this.usedVertexLayouts=r.usedVertexLayouts,this._targets=It(t.fragmentFn.shell.returnType,t.targets)}unwrap(){var t,r,n,a,o;if(this._memo===void 0){let{branch:i,vertexFn:p,fragmentFn:d,slotBindings:l,primitiveState:T}=this.options,{code:f,bindGroupLayouts:m,catchall:c}=q({resolve:F=>(F.withSlots(l,()=>{F.resolve(p),F.resolve(d)}),""),toString:()=>{var F;return`renderPipeline:${(F=this.label)!=null?F:"<unnamed>"}`}},{names:i.nameRegistry,jitTranspiler:i.jitTranspiler});c!==null&&((r=m[c[0]])==null||r.$name(`${(t=this.label)!=null?t:"<unnamed>"} - Automatic Bind Group & Layout`));let b=i.device,P=b.createShaderModule({label:`${(n=this.label)!=null?n:"<unnamed>"} - Shader`,code:f});this._memo={pipeline:b.createRenderPipeline({label:(a=this.label)!=null?a:"<unnamed>",layout:b.createPipelineLayout({label:`${(o=this.label)!=null?o:"<unnamed>"} - Pipeline Layout`,bindGroupLayouts:m.map(F=>i.unwrap(F))}),vertex:{module:P,buffers:this._vertexBufferLayouts},fragment:{module:P,targets:this._targets},primitive:T!=null?T:{}}),bindGroupLayouts:m,catchall:c}}return this._memo}};var qe=class e{constructor(t,r){this._getRoot=t;this._slotBindings=r}with(t,r){return new e(this._getRoot,[...this._slotBindings,[dt(t)?t.slot:t,r]])}withCompute(t){return new Je(this._getRoot(),this._slotBindings,t)}withVertex(t,r){return new Ye({branch:this._getRoot(),primitiveState:void 0,slotBindings:this._slotBindings,vertexFn:t,vertexAttribs:r})}},Je=class{constructor(t,r,n){this._root=t;this._slotBindings=r;this._entryFn=n}createPipeline(){return Pt(this._root,this._slotBindings,this._entryFn)}},Ye=class{constructor(t){this._options=t}withFragment(t,r,n){return _chunk5DF7EEAZcjs.s.call(void 0, typeof t!="string","Just type mismatch validation"),_chunk5DF7EEAZcjs.s.call(void 0, typeof r!="string","Just type mismatch validation"),new He(_chunk5DF7EEAZcjs.b.call(void 0, _chunk5DF7EEAZcjs.a.call(void 0, {},this._options),{fragmentFn:t,targets:r}))}},He=class e{constructor(t){this._options=t}withPrimitive(t){return new e(_chunk5DF7EEAZcjs.b.call(void 0, _chunk5DF7EEAZcjs.a.call(void 0, {},this._options),{primitiveState:t}))}createPipeline(){return Ct(this._options)}},xe=class extends qe{constructor(r,n,a,o){super(()=>this,[]);this.device=r;this.nameRegistry=n;this.jitTranspiler=a;this._ownDevice=o;_chunk5DF7EEAZcjs.c.call(void 0, this,"_disposables",[]);_chunk5DF7EEAZcjs.c.call(void 0, this,"_unwrappedBindGroupLayouts",new te(r=>r.unwrap(this)));_chunk5DF7EEAZcjs.c.call(void 0, this,"_unwrappedBindGroups",new te(r=>r.unwrap(this)));_chunk5DF7EEAZcjs.c.call(void 0, this,"_commandEncoder",null)}get commandEncoder(){return this._commandEncoder||(this._commandEncoder=this.device.createCommandEncoder()),this._commandEncoder}createBuffer(r,n){let a=yt(this,r,n);return this._disposables.push(a),a}createTexture(r){let n=ht(r,this);return this._disposables.push(n),n}createBindGroup(r,n){return new M(r,n)}destroy(){for(let r of this._disposables)r.destroy();this._ownDevice&&this.device.destroy()}unwrap(r){if(Rt(r))return r.rawPipeline;if(ye(r))return this._unwrappedBindGroupLayouts.getOrMake(r);if(St(r))return this._unwrappedBindGroups.getOrMake(r);if(z(r))return r.buffer;if($(r)||Ie(r)||Ce(r))return r.unwrap();throw new Error(`Unknown resource type: ${r}`)}flush(){this._commandEncoder&&(this.device.queue.submit([this._commandEncoder.finish()]),this._commandEncoder=null)}};async function Vt(e){let{adapter:t,device:r,unstable_names:n="random",unstable_jitTranspiler:a}=e!=null?e:{};if(!navigator.gpu)throw new Error("WebGPU is not supported by this browser.");let o=await navigator.gpu.requestAdapter(t);if(!o)throw new Error("Could not find a compatible GPU");return new xe(await o.requestDevice(r),n==="random"?new C:new V,a,!0)}function kt(e){let{device:t,unstable_names:r="random",unstable_jitTranspiler:n}=e!=null?e:{};return new xe(t,r==="random"?new C:new V,n,!1)}var er={Uniform:"uniform",Storage:"storage",Vertex:"vertex",bindGroupLayout:fe,init:Vt,initFromDevice:kt,resolve:At},da= exports.default =er;exports.NotUniformError = _chunk5DF7EEAZcjs.v; exports.ResolutionError = _chunk5DF7EEAZcjs.t; exports.default = da; exports.isBuffer = z; exports.isComparisonSampler = Ht; exports.isSampledTextureView = Ce; exports.isSampler = Yt; exports.isStorageTextureView = Ie; exports.isUsableAsStorage = se; exports.isUsableAsUniform = Re; exports.isUsableAsVertex = qt; exports.tgpu = er;
19
15
  //# sourceMappingURL=index.cjs.map