typegpu 0.5.5 → 0.5.7
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/LICENSE.md +11 -12
- package/README.md +13 -5
- package/chunk-5RYM4COI.js +4 -0
- package/chunk-5RYM4COI.js.map +1 -0
- package/chunk-FHOQ6WZE.cjs +2 -0
- package/chunk-FHOQ6WZE.cjs.map +1 -0
- package/chunk-ODKBWWHU.cjs +4 -0
- package/chunk-ODKBWWHU.cjs.map +1 -0
- package/chunk-SMTSXYNG.js +2 -0
- package/chunk-SMTSXYNG.js.map +1 -0
- package/data/index.cjs +1 -1
- package/data/index.cjs.map +1 -1
- package/data/index.d.cts +5 -23
- package/data/index.d.ts +5 -23
- package/data/index.js +1 -1
- package/index.cjs +23 -19
- package/index.cjs.map +1 -1
- package/index.d.cts +4 -1045
- package/index.d.ts +4 -1045
- package/index.js +23 -19
- package/index.js.map +1 -1
- package/package.json +3 -2
- package/std/index.cjs +1 -1
- package/std/index.cjs.map +1 -1
- package/std/index.d.cts +53 -4
- package/std/index.d.ts +53 -4
- package/std/index.js +1 -1
- package/std/index.js.map +1 -1
- package/tgpuComputeFn-DH8_PcIR.d.cts +3042 -0
- package/tgpuComputeFn-DH8_PcIR.d.ts +3042 -0
- package/attributes-BcDZsQCE.d.cts +0 -159
- package/attributes-DsIdcdq4.d.ts +0 -159
- package/chunk-A6AAWPBU.cjs +0 -2
- package/chunk-A6AAWPBU.cjs.map +0 -1
- package/chunk-HZAXWB4J.js +0 -2
- package/chunk-HZAXWB4J.js.map +0 -1
- package/chunk-T5Y2EQPZ.js +0 -4
- package/chunk-T5Y2EQPZ.js.map +0 -1
- package/chunk-VUYQ2ZIK.cjs +0 -4
- package/chunk-VUYQ2ZIK.cjs.map +0 -1
- package/dataTypes-ts2Ccted.d.cts +0 -1382
- package/dataTypes-ts2Ccted.d.ts +0 -1382
- package/sampler-CPNwYXSH.d.ts +0 -369
- package/sampler-DeX4AnIZ.d.cts +0 -369
package/index.cjs
CHANGED
@@ -1,26 +1,30 @@
|
|
1
|
-
"use strict";Object.defineProperty(exports, "__esModule", {value: true}); function _nullishCoalesce(lhs, rhsFn) { if (lhs != null) { return lhs; } else { return rhsFn(); } } function _optionalChain(ops) { let lastAccessLHS = undefined; let value = ops[0]; let i = 1; while (i < ops.length) { const op = ops[i]; const fn = ops[i + 1]; i += 2; if ((op === 'optionalAccess' || op === 'optionalCall') && value == null) { return undefined; } if (op === 'access' || op === 'optionalAccess') { lastAccessLHS = value; value = fn(value); } else if (op === 'call' || op === 'optionalCall') { value = fn((...args) => value.call(lastAccessLHS, ...args)); lastAccessLHS = undefined; } } return value; } var _class; var _class2; var _class3; var _class4; var _class5; var _class6; var _class7; var _class8; var _class9; var _class10; var _class11; var _class12; var _class13; var _class14; var _class15; var _class16; var _class17; var _class18; var _class19; var _class20; var _class21; var _class22; var _class23; var _class24; var _class25; var _class26; var _class27; var _class28;var
|
2
|
-
|
1
|
+
"use strict";Object.defineProperty(exports, "__esModule", {value: true}); function _interopRequireWildcard(obj) { if (obj && obj.__esModule) { return obj; } else { var newObj = {}; if (obj != null) { for (var key in obj) { if (Object.prototype.hasOwnProperty.call(obj, key)) { newObj[key] = obj[key]; } } } newObj.default = obj; return newObj; } } function _nullishCoalesce(lhs, rhsFn) { if (lhs != null) { return lhs; } else { return rhsFn(); } } function _optionalChain(ops) { let lastAccessLHS = undefined; let value = ops[0]; let i = 1; while (i < ops.length) { const op = ops[i]; const fn = ops[i + 1]; i += 2; if ((op === 'optionalAccess' || op === 'optionalCall') && value == null) { return undefined; } if (op === 'access' || op === 'optionalAccess') { lastAccessLHS = value; value = fn(value); } else if (op === 'call' || op === 'optionalCall') { value = fn((...args) => value.call(lastAccessLHS, ...args)); lastAccessLHS = undefined; } } return value; } var _class; var _class2; var _class3; var _class4; var _class5; var _class6; var _class7; var _class8; var _class9; var _class10; var _class11; var _class12; var _class13; var _class14; var _class15; var _class16; var _class17; var _class18; var _class19; var _class20; var _class21; var _class22; var _class23; var _class24; var _class25; var _class26; var _class27; var _class28;var _chunkFHOQ6WZEcjs = require('./chunk-FHOQ6WZE.cjs');var _chunkODKBWWHUcjs = require('./chunk-ODKBWWHU.cjs');function H(e){return _optionalChain([e, 'optionalAccess', _2 => _2.resourceType])==="slot"}function q(e){return _optionalChain([e, 'optionalAccess', _3 => _3.resourceType])==="derived"}function Ne(e){return _optionalChain([e, 'optionalAccess', _4 => _4["~providing"]])!==void 0}function ge(e){return _optionalChain([e, 'optionalAccess', _5 => _5.resourceType])==="accessor"}function pt(e,t){throw new Error(`Failed to handle ${e} at ${t}`)}var U={type:"unknown"};function je(e){return typeof _optionalChain([e, 'optionalAccess', _6 => _6["~resolve"]])=="function"}function J(e){return typeof e=="number"||typeof e=="boolean"||typeof e=="string"||je(e)||_chunkODKBWWHUcjs.A.call(void 0, e)||H(e)||q(e)||Ne(e)}function nn(e){return!!e&&typeof e=="object"&&"getMappedRange"in e&&"mapAsync"in e}function lt(e){return _optionalChain([e, 'optionalAccess', _7 => _7.resourceType])==="buffer-usage"}function Xt(e){return!!e&&typeof e=="object"&&!!_optionalChain([e, 'optionalAccess', _8 => _8[_chunkODKBWWHUcjs.a], 'optionalAccess', _9 => _9.dataType])}function Zt(e){return!!_optionalChain([e, 'optionalAccess', _10 => _10[_chunkODKBWWHUcjs.a]])}var sa=["vec2f","vec2h","vec2i","vec2u","vec2<bool>","vec3f","vec3h","vec3i","vec3u","vec3<bool>","vec4f","vec4h","vec4i","vec4u","vec4<bool>","struct"],ia={f:{1:_chunkODKBWWHUcjs.T,2:_chunkODKBWWHUcjs.V,3:_chunkODKBWWHUcjs._,4:_chunkODKBWWHUcjs.da},h:{1:_chunkODKBWWHUcjs.U,2:_chunkODKBWWHUcjs.W,3:_chunkODKBWWHUcjs.$,4:_chunkODKBWWHUcjs.ea},i:{1:_chunkODKBWWHUcjs.S,2:_chunkODKBWWHUcjs.X,3:_chunkODKBWWHUcjs.aa,4:_chunkODKBWWHUcjs.fa},u:{1:_chunkODKBWWHUcjs.R,2:_chunkODKBWWHUcjs.Y,3:_chunkODKBWWHUcjs.ba,4:_chunkODKBWWHUcjs.ga},b:{1:_chunkODKBWWHUcjs.Q,2:_chunkODKBWWHUcjs.Z,3:_chunkODKBWWHUcjs.ca,4:_chunkODKBWWHUcjs.ha}},an={vec2f:_chunkODKBWWHUcjs.V,vec2h:_chunkODKBWWHUcjs.W,vec2i:_chunkODKBWWHUcjs.X,vec2u:_chunkODKBWWHUcjs.Y,"vec2<bool>":_chunkODKBWWHUcjs.Z,vec3f:_chunkODKBWWHUcjs._,vec3h:_chunkODKBWWHUcjs.$,vec3i:_chunkODKBWWHUcjs.aa,vec3u:_chunkODKBWWHUcjs.ba,"vec3<bool>":_chunkODKBWWHUcjs.ca,vec4f:_chunkODKBWWHUcjs.da,vec4h:_chunkODKBWWHUcjs.ea,vec4i:_chunkODKBWWHUcjs.fa,vec4u:_chunkODKBWWHUcjs.ga,"vec4<bool>":_chunkODKBWWHUcjs.ha,mat2x2f:_chunkODKBWWHUcjs.ja,mat3x3f:_chunkODKBWWHUcjs.ka,mat4x4f:_chunkODKBWWHUcjs.la},on={vec2f:_chunkODKBWWHUcjs.T,vec2h:_chunkODKBWWHUcjs.U,vec2i:_chunkODKBWWHUcjs.S,vec2u:_chunkODKBWWHUcjs.R,"vec2<bool>":_chunkODKBWWHUcjs.Q,vec3f:_chunkODKBWWHUcjs.T,vec3h:_chunkODKBWWHUcjs.U,vec3i:_chunkODKBWWHUcjs.S,vec3u:_chunkODKBWWHUcjs.R,"vec3<bool>":_chunkODKBWWHUcjs.Q,vec4f:_chunkODKBWWHUcjs.T,vec4h:_chunkODKBWWHUcjs.U,vec4i:_chunkODKBWWHUcjs.S,vec4u:_chunkODKBWWHUcjs.R,"vec4<bool>":_chunkODKBWWHUcjs.Q,mat2x2f:_chunkODKBWWHUcjs.V,mat3x3f:_chunkODKBWWHUcjs._,mat4x4f:_chunkODKBWWHUcjs.da};function ce(e,t){if(typeof e=="string"||typeof e=="number"||typeof e=="boolean")return U;if(q(e)||H(e)){let o=_chunkODKBWWHUcjs.o.call(void 0, );if(!o)throw new Error("Resolution context not found when unwrapping slot or derived");let s=o.unwrap(e);return mt(s)}let r=e;for(Xt(r)&&(r=r[_chunkODKBWWHUcjs.a].dataType);_chunkODKBWWHUcjs.K.call(void 0, r);)r=r.inner;let n="kind"in r?r.kind:r.type;if(n==="struct")return _nullishCoalesce(r.propTypes[t], () => (U));let a=t.length;if(sa.includes(n)&&a>=1&&a<=4){let o=n.includes("bool")?"b":n[4],s=ia[o][a];if(s)return s}return _chunkODKBWWHUcjs.A.call(void 0, r)?r:U}function er(e){if(_chunkODKBWWHUcjs.A.call(void 0, e)){if(_chunkODKBWWHUcjs.B.call(void 0, e))return e.elementType;if(e.type in on)return on[e.type]}return U}function mt(e){if(Xt(e))return e[_chunkODKBWWHUcjs.a].dataType;if(typeof e=="string")return U;if(typeof e=="number")return _nullishCoalesce(_optionalChain([ft, 'call', _11 => _11(String(e)), 'optionalAccess', _12 => _12.dataType]), () => (U));if(typeof e=="boolean")return _chunkODKBWWHUcjs.Q;if("kind"in e){let t=e.kind;if(t in an)return an[t]}return _chunkODKBWWHUcjs.A.call(void 0, e)||je(e)?e:U}function ft(e){if(/^0x[0-9a-f]+$/i.test(e))return{value:e,dataType:_chunkODKBWWHUcjs.O};if(/^0b[01]+$/i.test(e))return{value:`${Number.parseInt(e.slice(2),2)}`,dataType:_chunkODKBWWHUcjs.O};if(/^-?(?:\d+\.\d*|\d*\.\d+)$/i.test(e))return{value:e,dataType:_chunkODKBWWHUcjs.P};if(/^-?\d+(?:\.\d+)?e-?\d+$/i.test(e))return{value:e,dataType:_chunkODKBWWHUcjs.P};if(/^-?\d+$/i.test(e))return{value:e,dataType:_chunkODKBWWHUcjs.O}}var tr={rank:Number.POSITIVE_INFINITY,action:"none"};function Ue(e){return e.type==="decorated"?e.inner:e}function sn(e){return _chunkODKBWWHUcjs.w.call(void 0, e)?_chunkODKBWWHUcjs.ia[e.type]:void 0}function dt(e,t){let r=Ue(e),n=Ue(t);if(r.type===n.type)return{rank:0,action:"none"};if(r.type==="abstractFloat"){if(n.type==="f32")return{rank:1,action:"none"};if(n.type==="f16")return{rank:2,action:"none"}}if(r.type==="abstractInt"){if(n.type==="i32")return{rank:3,action:"none"};if(n.type==="u32")return{rank:4,action:"none"};if(n.type==="abstractFloat")return{rank:5,action:"none"};if(n.type==="f32")return{rank:6,action:"none"};if(n.type==="f16")return{rank:7,action:"none"}}if(_chunkODKBWWHUcjs.w.call(void 0, r)&&_chunkODKBWWHUcjs.w.call(void 0, n)){let a=sn(r),o=sn(n);if(a&&o)return dt(a,o)}return _chunkODKBWWHUcjs.z.call(void 0, r)&&_chunkODKBWWHUcjs.z.call(void 0, n)?{rank:0,action:"none"}:tr}function ua(e,t){let r=Ue(e),n=Ue(t);if(r.type==="ptr"&&dt(r.inner,n).rank<Number.POSITIVE_INFINITY)return{rank:0,action:"deref"};if(n.type==="ptr"&&dt(r,n.inner).rank<Number.POSITIVE_INFINITY)return{rank:1,action:"ref"};let a={f32:0,f16:1,i32:2,u32:3,bool:4};if(r.type in a&&n.type in a){let o=r.type,s=n.type;if(o!==s){let i=a[o];return{rank:a[s]<i?10:20,action:"cast",targetType:n}}}return tr}function pa(e,t,r){let n=dt(e,t);return n.rank<Number.POSITIVE_INFINITY?n:r?ua(e,t):tr}function un(e,t,r){let n,a=Number.POSITIVE_INFINITY,o=new Map;for(let u of t){let d=0,g=[],c=!0;for(let y of e){let x=pa(y,u,r);if(x.rank===Number.POSITIVE_INFINITY){c=!1;break}d+=x.rank,g.push(x)}c&&d<a&&(a=d,n=u,o.set(n,g))}if(!n)return;let i=o.get(n).map((u,d)=>({sourceIndex:d,action:u.action,...u.action==="cast"&&{targetType:u.targetType}})),l=i.some(u=>u.action==="cast");return{targetType:n,actions:i,hasImplicitConversions:l}}function rr(e){return e.type==="abstractFloat"?_chunkODKBWWHUcjs.T:e.type==="abstractInt"?_chunkODKBWWHUcjs.S:e}function pn(e,t){if(e.length===0)return;let r=[...new Set(e.map(Ue))],n=t?[...new Set(t.map(Ue))]:r,a=un(e,n,!1);if(a)return a;let o=un(e,n,!0);if(o)return o.hasImplicitConversions=o.actions.some(s=>s.action==="cast"),o}function A(e,t){return J(t.value)?e.resolve(t.value):String(t.value)}function la(e,t,r,n){if(r.action==="none")return{value:t.value,dataType:n};let a=A(e,t);switch(r.action){case"ref":return{value:`&${a}`,dataType:n};case"deref":return{value:`*${a}`,dataType:n};case"cast":return{value:`${e.resolve(n)}(${a})`,dataType:n};default:pt(r.action,"applyActionToSnippet")}}function W(e,t,r){let n=t.map(o=>o.dataType);if(n.some(o=>o===U))return;let a=pn(n,r);if(a)return a.hasImplicitConversions&&console.warn(`Implicit conversions from [
|
2
|
+
${t.map(o=>` ${o.value}: ${o.dataType.type}`).join(`,
|
3
|
+
`)}
|
4
|
+
] to ${a.targetType.type} are supported, but not recommended.
|
5
|
+
Consider using explicit conversions instead.`),t.map((o,s)=>{let i=a.actions[s];return _chunkODKBWWHUcjs.f.call(void 0, i,"Action should not be undefined"),la(e,o,i,a.targetType)})}function nr(e,t,r){return Object.keys(t.propTypes).map(a=>{let o=r[a];if(!o)throw new Error(`Missing property ${a}`);let s=t.propTypes[a];return _nullishCoalesce(_optionalChain([W, 'call', _13 => _13(e,[o],[s]), 'optionalAccess', _14 => _14[0]]), () => (o))})}function ar(e){if(J(e))return{value:e,dataType:mt(e)};if(Array.isArray(e)){let t=e.map(ar).filter(Boolean),r=_chunkODKBWWHUcjs.o.call(void 0, );if(!r)throw new Error("Tried to coerce array without a context");let n=W(r,t),a=_optionalChain([pn, 'call', _15 => _15(t.map(o=>o.dataType)), 'optionalAccess', _16 => _16.targetType]);return!n||!a?{value:e,dataType:U}:{value:n.map(o=>o.value).join(", "),dataType:_chunkFHOQ6WZEcjs.da.call(void 0, rr(a),e.length)}}if(typeof e!="object"){let t=ft(String(e));if(t)return t}return{value:e,dataType:U}}var Y={get(e,t){if(t in e)return Reflect.get(e,t);if(t!=="~providing")return t==="toString"||t===Symbol.toStringTag||t===Symbol.toPrimitive?()=>e.toString():new Proxy({"~resolve":r=>`${r.resolve(e)}.${String(t)}`,toString:()=>`.value(...).${String(t)}:${_nullishCoalesce(_chunkODKBWWHUcjs.c.call(void 0, e), () => ("<unnamed>"))}`,[_chunkODKBWWHUcjs.a]:{dataType:ce(e[_chunkODKBWWHUcjs.a].dataType,String(t))}},Y)}};function ze(e){let t=e;for(;H(t)||q(t)||ge(t)||lt(t);)t=t.value;return t}function ln(e,t){return new or(e,t)}var or=class{constructor(t,r){this.dataType=t;this._value=r;this[_chunkODKBWWHUcjs.a]={dataType:t}}$name(t){return _chunkODKBWWHUcjs.d.call(void 0, this,t),this}"~resolve"(t){let r=t.names.makeUnique(_chunkODKBWWHUcjs.c.call(void 0, this)),n=t.resolveValue(this._value,this.dataType);return t.addDeclaration(`const ${r} = ${n};`),r}toString(){return`const:${_nullishCoalesce(_chunkODKBWWHUcjs.c.call(void 0, this), () => ("<unnamed>"))}`}get value(){return _chunkODKBWWHUcjs.r.call(void 0, )?new Proxy({"~resolve":t=>t.resolve(this),toString:()=>`.value:${_nullishCoalesce(_chunkODKBWWHUcjs.c.call(void 0, this), () => ("<unnamed>"))}`,[_chunkODKBWWHUcjs.a]:{dataType:this.dataType}},Y):this._value}};function Q(e,t){for(let[r,n]of Object.entries(t))e[r]=n,_chunkODKBWWHUcjs.e.call(void 0, n)&&_chunkODKBWWHUcjs.c.call(void 0, n)===void 0&&n.$name(r)}function dn(e,t,r){let n=[...e.matchAll(/:\s*(?<arg>.*?)\s*[,)]/g)].map(a=>a?a[1]:void 0);r(Object.fromEntries(t.flatMap((a,o)=>{let s=n?n[o]:void 0;return _chunkODKBWWHUcjs.C.call(void 0, a)&&s!==void 0?[[s,a]]:[]})))}function Be(e,t,r){let n=e.match(/->\s(?<output>[\w\d_]+)\s{/),a=n?_optionalChain([n, 'access', _17 => _17[1], 'optionalAccess', _18 => _18.trim, 'call', _19 => _19()]):void 0;_chunkODKBWWHUcjs.C.call(void 0, t)&&a&&!/\s/g.test(a)&&r({[a]:t})}function da(e){return new RegExp(`(?<![\\w\\$_.])${e.replaceAll(".","\\.").replaceAll("$","\\$")}(?![\\w\\$_])`,"g")}function ye(e,t,r){return Object.entries(t).reduce((n,[a,o])=>J(o)||_chunkFHOQ6WZEcjs.d.call(void 0, o)?n.replaceAll(da(a),e.resolve(o)):o!==null&&typeof o=="object"?(_nullishCoalesce([...r.matchAll(new RegExp(`${a.replaceAll(".","\\.").replaceAll("$","\\$")}\\.(?<prop>.*?)(?![\\w\\$_])`,"g"))].map(i=>i[1]), () => ([]))).reduce((i,l)=>l&&l in o?ye(e,{[`${a}.${l}`]:o[l]},i):i,n):n,r)}function mn(e){return new sr(e)}var sr= (_class =class{constructor(t){;_class.prototype.__init.call(this);this.declaration=t}__init() {this.externalsToApply=[]}$uses(t){return this.externalsToApply.push(t),this}"~resolve"(t){let r={};for(let a of this.externalsToApply)Q(r,a);let n=ye(t,r,this.declaration);return t.addDeclaration(n),""}toString(){return`declare: ${this.declaration}`}}, _class);var fn=new WeakMap;function gn(e){return fn.get(e)}function cn(e,t,r){return fn.set(e,{ast:t,externals:r}),e}function yn(e){return()=>{throw new Error(`The function "${_nullishCoalesce(e, () => ("<unnamed>"))}" is invokable only on the GPU. If you want to use it on the CPU, mark it with the "kernel & js" directive.`)}}function Ke(e){return typeof _optionalChain([e, 'optionalAccess', _20 => _20.format])=="string"}function Tn(e,t){let r=[];if(_chunkFHOQ6WZEcjs.i.call(void 0, e)){if(!Ke(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:_nullishCoalesce(_chunkFHOQ6WZEcjs.h.call(void 0, e), () => (0))}]}]}}let n=[],a=new WeakMap,o=0;for(let[s,i]of Object.entries(e)){if(_chunkFHOQ6WZEcjs.ia.call(void 0, i))continue;let l=t[s];if(!l)throw new Error(`An attribute by the name of '${s}' was not provided to the shader.`);let u=l._layout,d=a.get(u);d||(r.push(u),d=[],n.push({arrayStride:u.stride,stepMode:u.stepMode,attributes:d}),a.set(u,d)),o=_nullishCoalesce(_chunkFHOQ6WZEcjs.h.call(void 0, i), () => (o)),d.push({format:l.format,offset:l.offset,shaderLocation:o++})}return{usedVertexLayouts:r,bufferDefinitions:n}}var ma=["bool","f32","f16","i32","u32","vec2f","vec3f","vec4f","vec2h","vec3h","vec4h","vec2i","vec3i","vec4i","vec2u","vec3u","vec4u","vec2<bool>","vec3<bool>","vec4<bool>","mat2x2f","mat3x3f","mat4x4f"];function fa(e){return ma.includes(e.type)}function ir(e,[t,r]){return` ${_chunkFHOQ6WZEcjs.ja.call(void 0, r)}${t}: ${e.resolve(r)},
|
6
|
+
`}function ga(e,t){let r=e.names.makeUnique(_chunkODKBWWHUcjs.c.call(void 0, t));return e.addDeclaration(`
|
3
7
|
struct ${r} {
|
4
|
-
${Object.entries(t.propTypes).map(n=>
|
5
|
-
`),r}function
|
8
|
+
${Object.entries(t.propTypes).map(n=>ir(e,n)).join("")}}
|
9
|
+
`),r}function ca(e,t){let r=e.names.makeUnique(_chunkODKBWWHUcjs.c.call(void 0, t));return e.addDeclaration(`
|
6
10
|
struct ${r} {
|
7
|
-
${Object.entries(t.propTypes).map(n=>
|
11
|
+
${Object.entries(t.propTypes).map(n=>Ke(n[1])?ir(e,[n[0],_chunkFHOQ6WZEcjs.j[n[1].format]]):ir(e,n)).join("")}
|
8
12
|
}
|
9
|
-
`),r}function
|
10
|
-
${t
|
13
|
+
`),r}function ya(e,t){let r=e.resolve(t.elementType);return t.elementCount===0?`array<${r}>`:`array<${r}, ${t.elementCount}>`}function Ta(e,t){let r=e.resolve(Ke(t.elementType)?_chunkFHOQ6WZEcjs.j[t.elementType.format]:t.elementType);return t.elementCount===0?`array<${r}>`:`array<${r}, ${t.elementCount}>`}function ur(e,t){if(_chunkFHOQ6WZEcjs.d.call(void 0, t))return t.type==="unstruct"?ca(e,t):t.type==="disarray"?Ta(e,t):t.type==="loose-decorated"?e.resolve(Ke(t.inner)?_chunkFHOQ6WZEcjs.j[t.inner.format]:t.inner):e.resolve(_chunkFHOQ6WZEcjs.j[t.type]);if(fa(t))return t.type;if(t.type==="struct")return ga(e,t);if(t.type==="array")return ya(e,t);if(t.type==="atomic")return`atomic<${ur(e,t.inner)}>`;if(t.type==="decorated")return e.resolve(t.inner);if(t.type==="ptr")return t.addressSpace==="storage"?`ptr<storage, ${e.resolve(t.inner)}, ${t.access==="read-write"?"read_write":t.access}>`:`ptr<${t.addressSpace}, ${e.resolve(t.inner)}>`;if(t.type==="abstractInt"||t.type==="abstractFloat")throw new Error("Abstract types have no concrete representation in WGSL");if(t.type==="void")throw new Error("Void has no representation in WGSL");pt(t,"resolveData")}var _typedbinary = require('typed-binary');function xa(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 B=xa;var xn=new WeakMap;function gt(e){let t=xn.get(e);if(t)return t;let r=new _typedbinary.Measurer,n={},a;for(let o in e.propTypes){let s=e.propTypes[o];if(s===void 0)throw new Error(`Property ${o} is undefined in struct`);let i=r.size;B(r,_chunkFHOQ6WZEcjs.f.call(void 0, e)?_chunkFHOQ6WZEcjs.$.call(void 0, s):_chunkFHOQ6WZEcjs._.call(void 0, s)),a&&(a.padding=r.size-i);let l=_chunkFHOQ6WZEcjs.ba.call(void 0, s);n[o]={offset:r.size,size:l},a=n[o],r.add(l)}return a&&(a.padding=_chunkFHOQ6WZEcjs.a.call(void 0, _chunkFHOQ6WZEcjs.ba.call(void 0, e),_chunkFHOQ6WZEcjs._.call(void 0, e))-r.size),xn.set(e,n),n}var yt=(()=>{try{return new Function("return true"),!0}catch (e2){return!1}})(),pr=new WeakMap,lr={u32:"u32",vec2u:"u32",vec3u:"u32",vec4u:"u32",i32:"i32",vec2i:"i32",vec3i:"i32",vec4i:"i32",f32:"f32",vec2f:"f32",vec3f:"f32",vec4f:"f32",vec2h:"f32",vec3h:"f32",vec4h:"f32",mat2x2f:"f32",mat3x3f:"f32",mat4x4f:"f32"},dr={u32:"setUint32",i32:"setInt32",f32:"setFloat32"};function ct(e,t,r){if(_chunkODKBWWHUcjs.E.call(void 0, e)||_chunkODKBWWHUcjs.K.call(void 0, e))return ct(e.inner,t,r);if(_chunkODKBWWHUcjs.C.call(void 0, e)||_chunkFHOQ6WZEcjs.f.call(void 0, e)){let a=gt(e),o=Object.entries(a).sort((i,l)=>i[1].offset-l[1].offset),s="";for(let[i,l]of o){let u=e.propTypes[i];u&&(s+=ct(u,`(${t} + ${l.offset})`,`${r}.${i}`))}return s}if(_chunkODKBWWHUcjs.B.call(void 0, e)||_chunkFHOQ6WZEcjs.e.call(void 0, e)){let a=e,o=_chunkFHOQ6WZEcjs.a.call(void 0, _chunkFHOQ6WZEcjs.ba.call(void 0, a.elementType),_chunkFHOQ6WZEcjs._.call(void 0, a.elementType)),s="";return s+=`for (let i = 0; i < ${a.elementCount}; i++) {
|
14
|
+
`,s+=ct(a.elementType,`(${t} + i * ${o})`,`${r}[i]`),s+=`}
|
15
|
+
`,s}if(_chunkODKBWWHUcjs.w.call(void 0, e)){let a=lr[e.type],o="",s=dr[a],i=["x","y","z","w"],l=_chunkODKBWWHUcjs.u.call(void 0, e)?2:_chunkODKBWWHUcjs.v.call(void 0, e)?3:4;for(let u=0;u<l;u++)o+=`output.${s}((${t} + ${u*4}), ${r}.${i[u]}, littleEndian);
|
16
|
+
`;return o}if(_chunkODKBWWHUcjs.z.call(void 0, e)){let a=lr[e.type],o=dr[a],s=_chunkODKBWWHUcjs.x.call(void 0, e)?2:_chunkODKBWWHUcjs.y.call(void 0, e)?3:4,i=s*s,l=_chunkFHOQ6WZEcjs.a.call(void 0, s*4,8),u="";for(let d=0;d<i;d++){let g=Math.floor(d/s),c=d%s,y=g*l+c*4;u+=`output.${o}((${t} + ${y}), ${r}.columns[${g}].${["x","y","z","w"][c]}, littleEndian);
|
17
|
+
`}return u}let n=lr[e.type];return`output.${dr[n]}(${t}, ${r}, littleEndian);
|
18
|
+
`}function Tt(e){if(pr.has(e))return pr.get(e);let t=ct(e,"offset","value"),r=new Function("output","offset","value","littleEndian=true",t);return pr.set(e,r),r}var Re={bool(){throw new Error("Booleans are not host-shareable")},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)},"vec2<bool>"(){throw new Error("Booleans are not host-shareable")},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)},"vec3<bool>"(){throw new Error("Booleans are not host-shareable")},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)},"vec4<bool>"(){throw new Error("Booleans are not host-shareable")},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=_chunkFHOQ6WZEcjs._.call(void 0, t);B(e,n);for(let[a,o]of Object.entries(t.propTypes))B(e,_chunkFHOQ6WZEcjs._.call(void 0, o)),ne(e,o,r[a]);B(e,n)},array(e,t,r){if(t.elementCount===0)throw new Error("Cannot write using a runtime-sized schema.");let n=_chunkFHOQ6WZEcjs._.call(void 0, t);B(e,n);let a=e.currentByteOffset;for(let o=0;o<Math.min(t.elementCount,r.length);o++)B(e,n),ne(e,t.elementType,r[o]);e.seekTo(a+_chunkFHOQ6WZEcjs.ba.call(void 0, t))},ptr(){throw new Error("Pointers are not host-shareable")},atomic(e,t,r){_optionalChain([Re, 'access', _21 => _21[t.inner.type], 'optionalCall', _22 => _22(e,t,r)])},decorated(e,t,r){let n=_chunkFHOQ6WZEcjs.$.call(void 0, t);B(e,n);let a=e.currentByteOffset;_optionalChain([Re, 'access', _23 => _23[_optionalChain([t, 'access', _24 => _24.inner, 'optionalAccess', _25 => _25.type])], 'optionalCall', _26 => _26(e,t.inner,r)]),e.seekTo(a+_chunkFHOQ6WZEcjs.ba.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){let n=_chunkFHOQ6WZEcjs._.call(void 0, t);B(e,n);let a=e.currentByteOffset;for(let o=0;o<Math.min(t.elementCount,r.length);o++)B(e,n),_optionalChain([Re, 'access', _27 => _27[_optionalChain([t, 'access', _28 => _28.elementType, 'optionalAccess', _29 => _29.type])], 'optionalCall', _30 => _30(e,t.elementType,r[o])]);e.seekTo(a+_chunkFHOQ6WZEcjs.ba.call(void 0, t))},unstruct(e,t,r){for(let[n,a]of Object.entries(t.propTypes))_optionalChain([Re, 'access', _31 => _31[a.type], 'optionalCall', _32 => _32(e,a,r[n])])},"loose-decorated"(e,t,r){let n=_chunkFHOQ6WZEcjs.$.call(void 0, t);B(e,n);let a=e.currentByteOffset,o=Re[_optionalChain([t, 'access', _33 => _33.inner, 'optionalAccess', _34 => _34.type])];return _optionalChain([o, 'optionalCall', _35 => _35(e,t.inner,r)]),e.seekTo(a+_chunkFHOQ6WZEcjs.ba.call(void 0, t)),r}};function ne(e,t,r){let n=Re[t.type];if(!n)throw new Error(`Cannot write data of type '${t.type}'.`);n(e,t,r)}var Te={bool(){throw new Error("Booleans are not host-shareable")},f32(e){return e.readFloat32()},f16(e){return e.readFloat16()},i32(e){return e.readInt32()},u32(e){return e.readUint32()},vec2f(e){return _chunkODKBWWHUcjs.V.call(void 0, e.readFloat32(),e.readFloat32())},vec3f(e){return _chunkODKBWWHUcjs._.call(void 0, e.readFloat32(),e.readFloat32(),e.readFloat32())},vec4f(e){return _chunkODKBWWHUcjs.da.call(void 0, e.readFloat32(),e.readFloat32(),e.readFloat32(),e.readFloat32())},vec2h(e){return _chunkODKBWWHUcjs.W.call(void 0, e.readFloat16(),e.readFloat16())},vec3h(e){return _chunkODKBWWHUcjs.$.call(void 0, e.readFloat16(),e.readFloat16(),e.readFloat16())},vec4h(e){return _chunkODKBWWHUcjs.ea.call(void 0, e.readFloat16(),e.readFloat16(),e.readFloat16(),e.readFloat16())},vec2i(e){return _chunkODKBWWHUcjs.X.call(void 0, e.readInt32(),e.readInt32())},vec3i(e){return _chunkODKBWWHUcjs.aa.call(void 0, e.readInt32(),e.readInt32(),e.readInt32())},vec4i(e){return _chunkODKBWWHUcjs.fa.call(void 0, e.readInt32(),e.readInt32(),e.readInt32(),e.readInt32())},vec2u(e){return _chunkODKBWWHUcjs.Y.call(void 0, e.readUint32(),e.readUint32())},vec3u(e){return _chunkODKBWWHUcjs.ba.call(void 0, e.readUint32(),e.readUint32(),e.readUint32())},vec4u(e){return _chunkODKBWWHUcjs.ga.call(void 0, e.readUint32(),e.readUint32(),e.readUint32(),e.readUint32())},"vec2<bool>"(){throw new Error("Booleans are not host-shareable")},"vec3<bool>"(){throw new Error("Booleans are not host-shareable")},"vec4<bool>"(){throw new Error("Booleans are not host-shareable")},mat2x2f(e){return _chunkODKBWWHUcjs.ja.call(void 0, e.readFloat32(),e.readFloat32(),e.readFloat32(),e.readFloat32())},mat3x3f(e){let t=()=>{let r=e.readFloat32();return e.readFloat32(),r};return _chunkODKBWWHUcjs.ka.call(void 0, e.readFloat32(),e.readFloat32(),t(),e.readFloat32(),e.readFloat32(),t(),e.readFloat32(),e.readFloat32(),t())},mat4x4f(e){return _chunkODKBWWHUcjs.la.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=_chunkFHOQ6WZEcjs._.call(void 0, t);B(e,r);let n={};for(let[a,o]of Object.entries(t.propTypes))B(e,_chunkFHOQ6WZEcjs._.call(void 0, o)),n[a]=M(e,o);return B(e,r),n},array(e,t){if(t.elementCount===0)throw new Error("Cannot read using a runtime-sized schema.");let r=_chunkFHOQ6WZEcjs._.call(void 0, t),n=[];for(let a=0;a<t.elementCount;a++){B(e,r);let o=t.elementType,s=M(e,o);n.push(s)}return B(e,r),n},ptr(){throw new Error("Pointers are not host-shareable")},atomic(e,t){return M(e,t.inner)},decorated(e,t){let r=_chunkFHOQ6WZEcjs.$.call(void 0, t);B(e,r);let n=e.currentByteOffset,a=M(e,t.inner);return e.seekTo(n+_chunkFHOQ6WZEcjs.ba.call(void 0, t)),a},uint8:e=>e.readUint8(),uint8x2:e=>_chunkODKBWWHUcjs.Y.call(void 0, e.readUint8(),e.readUint8()),uint8x4:e=>_chunkODKBWWHUcjs.ga.call(void 0, e.readUint8(),e.readUint8(),e.readUint8(),e.readUint8()),sint8:e=>e.readInt8(),sint8x2:e=>_chunkODKBWWHUcjs.X.call(void 0, e.readInt8(),e.readInt8()),sint8x4:e=>_chunkODKBWWHUcjs.fa.call(void 0, e.readInt8(),e.readInt8(),e.readInt8(),e.readInt8()),unorm8:e=>e.readUint8()/255,unorm8x2:e=>_chunkODKBWWHUcjs.V.call(void 0, e.readUint8()/255,e.readUint8()/255),unorm8x4:e=>_chunkODKBWWHUcjs.da.call(void 0, e.readUint8()/255,e.readUint8()/255,e.readUint8()/255,e.readUint8()/255),snorm8:e=>(e.readUint8()-128)/127,snorm8x2:e=>_chunkODKBWWHUcjs.V.call(void 0, (e.readUint8()-128)/127,(e.readUint8()-128)/127),snorm8x4:e=>_chunkODKBWWHUcjs.da.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=>_chunkODKBWWHUcjs.Y.call(void 0, e.readUint16(),e.readUint16()),uint16x4:e=>_chunkODKBWWHUcjs.ga.call(void 0, e.readUint16(),e.readUint16(),e.readUint16(),e.readUint16()),sint16:e=>e.readInt16(),sint16x2:e=>_chunkODKBWWHUcjs.X.call(void 0, e.readInt16(),e.readInt16()),sint16x4:e=>_chunkODKBWWHUcjs.fa.call(void 0, e.readInt16(),e.readInt16(),e.readInt16(),e.readInt16()),unorm16:e=>e.readUint16()/65535,unorm16x2:e=>_chunkODKBWWHUcjs.V.call(void 0, e.readUint16()/65535,e.readUint16()/65535),unorm16x4:e=>_chunkODKBWWHUcjs.da.call(void 0, e.readUint16()/65535,e.readUint16()/65535,e.readUint16()/65535,e.readUint16()/65535),snorm16:e=>(e.readUint16()-32768)/32767,snorm16x2:e=>_chunkODKBWWHUcjs.V.call(void 0, Te.snorm16(e),Te.snorm16(e)),snorm16x4:e=>_chunkODKBWWHUcjs.da.call(void 0, Te.snorm16(e),Te.snorm16(e),Te.snorm16(e),Te.snorm16(e)),float16(e){return e.readFloat16()},float16x2:e=>_chunkODKBWWHUcjs.V.call(void 0, e.readFloat16(),e.readFloat16()),float16x4:e=>_chunkODKBWWHUcjs.da.call(void 0, e.readFloat16(),e.readFloat16(),e.readFloat16(),e.readFloat16()),float32:e=>e.readFloat32(),float32x2:e=>_chunkODKBWWHUcjs.V.call(void 0, e.readFloat32(),e.readFloat32()),float32x3:e=>_chunkODKBWWHUcjs._.call(void 0, e.readFloat32(),e.readFloat32(),e.readFloat32()),float32x4:e=>_chunkODKBWWHUcjs.da.call(void 0, e.readFloat32(),e.readFloat32(),e.readFloat32(),e.readFloat32()),uint32:e=>e.readUint32(),uint32x2:e=>_chunkODKBWWHUcjs.Y.call(void 0, e.readUint32(),e.readUint32()),uint32x3:e=>_chunkODKBWWHUcjs.ba.call(void 0, e.readUint32(),e.readUint32(),e.readUint32()),uint32x4:e=>_chunkODKBWWHUcjs.ga.call(void 0, e.readUint32(),e.readUint32(),e.readUint32(),e.readUint32()),sint32:e=>e.readInt32(),sint32x2:e=>_chunkODKBWWHUcjs.X.call(void 0, e.readInt32(),e.readInt32()),sint32x3:e=>_chunkODKBWWHUcjs.aa.call(void 0, e.readInt32(),e.readInt32(),e.readInt32()),sint32x4:e=>_chunkODKBWWHUcjs.fa.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 _chunkODKBWWHUcjs.da.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 _chunkODKBWWHUcjs.da.call(void 0, n,r,t,a)},unstruct(e,t){let r={};for(let[n,a]of Object.entries(t.propTypes))r[n]=M(e,a);return r},disarray(e,t){let r=_chunkFHOQ6WZEcjs._.call(void 0, t),n=[];for(let a=0;a<t.elementCount;a++)B(e,r),n.push(M(e,t.elementType));return B(e,r),n},"loose-decorated"(e,t){B(e,_chunkFHOQ6WZEcjs.$.call(void 0, t));let r=e.currentByteOffset,n=M(e,t.inner);return e.seekTo(r+_chunkFHOQ6WZEcjs.ba.call(void 0, t)),n}};function M(e,t){let r=Te[t.type];if(!r)throw new Error(`Cannot read data of type '${t.type}'.`);return r(e,t)}function hn(e,t){let r=_chunkFHOQ6WZEcjs.ba.call(void 0, e);if(r===0||t===void 0||t===null)return[];let n=new ArrayBuffer(r),a=new (0, _typedbinary.BufferWriter)(n),o=[];function s(u,d,g,c){if(d!=null){if(_chunkODKBWWHUcjs.C.call(void 0, u)||_chunkFHOQ6WZEcjs.f.call(void 0, u)){let y=gt(u);for(let[x,h]of Object.entries(y)){let T=u.propTypes[x];if(!T)continue;let D=d[x];D!==void 0&&s(T,D,g+h.offset,_nullishCoalesce(h.padding, () => (c)))}return}if(_chunkODKBWWHUcjs.B.call(void 0, u)||_chunkFHOQ6WZEcjs.e.call(void 0, u)){let y=u,x=_chunkFHOQ6WZEcjs.a.call(void 0, _chunkFHOQ6WZEcjs.ba.call(void 0, y.elementType),_chunkFHOQ6WZEcjs._.call(void 0, y.elementType));if(!Array.isArray(d))throw new Error("Partial value for array must be an array");let h=_nullishCoalesce(d, () => ([]));h.sort((T,D)=>T.idx-D.idx);for(let{idx:T,value:D}of h)s(y.elementType,D,g+T*x,x-_chunkFHOQ6WZEcjs.ba.call(void 0, y.elementType))}else{let y=_chunkFHOQ6WZEcjs.ba.call(void 0, u);a.seekTo(g),ne(a,u,d),o.push({start:g,end:g+y,padding:c})}}}if(s(e,t,0),o.length===0)return[];let i=[],l=o[0];for(let u=1;u<o.length;u++){let d=o[u];if(!d||!l)throw new Error("Internal error: missing segment");d.start===l.end+(_nullishCoalesce(l.padding, () => (0)))?(l.end=d.end,l.padding=d.padding):(i.push({data:new Uint8Array(n,l.start,l.end-l.start)}),l=d)}if(!l)throw new Error("Internal error: missing segment");return i.push({data:new Uint8Array(n,l.start,l.end-l.start)}),i}function xe(e){return!!_optionalChain([e, 'optionalAccess', _36 => _36.usableAsStorage])}var He=class e extends Error{constructor(t){super(`Resource '${_nullishCoalesce(_chunkODKBWWHUcjs.c.call(void 0, t), () => ("<unnamed>"))}' cannot be bound as 'storage'. Use .$usage('storage') to allow it.`),Object.setPrototypeOf(this,e.prototype)}};function xt(e){return!!e.usableAsUniform}var vn={uniform:"uniform",mutable:"storage, read_write",readonly:"storage, read"},qe= (_class2 =class{constructor(t,r){;_class2.prototype.__init2.call(this);this.usage=t;this.buffer=r;this[_chunkODKBWWHUcjs.a]={dataType:r.dataType},this[_chunkODKBWWHUcjs.b]=r}__init2() {this.resourceType="buffer-usage"}$name(t){return this.buffer.$name(t),this}"~resolve"(t){let r=t.names.makeUnique(_chunkODKBWWHUcjs.c.call(void 0, this)),{group:n,binding:a}=t.allocateFixedEntry(this.usage==="uniform"?{uniform:this.buffer.dataType}:{storage:this.buffer.dataType,access:this.usage},this.buffer),o=vn[this.usage];return t.addDeclaration(`@group(${n}) @binding(${a}) var<${o}> ${r}: ${t.resolve(this.buffer.dataType)};`),r}write(t){this.buffer.write(t)}toString(){return`${this.usage}:${_nullishCoalesce(_chunkODKBWWHUcjs.c.call(void 0, this), () => ("<unnamed>"))}`}get value(){if(!_chunkODKBWWHUcjs.r.call(void 0, ))throw new Error("Cannot access buffer's value directly in JS.");return new Proxy({"~resolve":t=>t.resolve(this),toString:()=>`.value:${_nullishCoalesce(_chunkODKBWWHUcjs.c.call(void 0, this), () => ("<unnamed>"))}`,[_chunkODKBWWHUcjs.a]:{dataType:this.buffer.dataType}},Y)}}, _class2),Je= (_class3 =class{constructor(t,r,n){;_class3.prototype.__init3.call(this);this.usage=t;this.dataType=r;this._membership=n;this[_chunkODKBWWHUcjs.a]={dataType:r},_chunkODKBWWHUcjs.d.call(void 0, this,n.key)}__init3() {this.resourceType="buffer-usage"}"~resolve"(t){let r=t.names.makeUnique(_chunkODKBWWHUcjs.c.call(void 0, this)),n=t.allocateLayoutEntry(this._membership.layout),a=vn[this.usage];return t.addDeclaration(`@group(${n}) @binding(${this._membership.idx}) var<${a}> ${r}: ${t.resolve(this.dataType)};`),r}toString(){return`${this.usage}:${_nullishCoalesce(_chunkODKBWWHUcjs.c.call(void 0, this), () => ("<unnamed>"))}`}get value(){if(!_chunkODKBWWHUcjs.r.call(void 0, ))throw new Error("Cannot access buffer's value directly in JS.");return new Proxy({"~resolve":t=>t.resolve(this),toString:()=>`.value:${_nullishCoalesce(_chunkODKBWWHUcjs.c.call(void 0, this), () => ("<unnamed>"))}`,[_chunkODKBWWHUcjs.a]:{dataType:this.dataType}},Y)}}, _class3),wn=new WeakMap;function mr(e){if(!xe(e))throw new Error(`Cannot pass ${e} to asMutable, as it is not allowed to be used as storage. To allow it, call .$usage('storage') when creating the buffer.`);let t=wn.get(e);return t||(t=new qe("mutable",e),wn.set(e,t)),t}var bn=new WeakMap;function fr(e){if(!xe(e))throw new Error(`Cannot pass ${e} to asReadonly, as it is not allowed to be used as storage. To allow it, call .$usage('storage') when creating the buffer.`);let t=bn.get(e);return t||(t=new qe("readonly",e),bn.set(e,t)),t}var Sn=new WeakMap;function gr(e){if(!xt(e))throw new Error(`Cannot pass ${e} to asUniform, as it is not allowed to be used as a uniform. To allow it, call .$usage('uniform') when creating the buffer.`);let t=Sn.get(e);return t||(t=new qe("uniform",e),Sn.set(e,t)),t}var va={uniform:gr,mutable:mr,readonly:fr};function Fn(e,t,r){return _chunkODKBWWHUcjs.A.call(void 0, t)?new ht(e,t,r):new ht(e,t,r,["storage","uniform"])}function ae(e){return e.resourceType==="buffer"}function Da(e){return!!e.usableAsVertex}var Dn=_typedbinary.getSystemEndianness.call(void 0, ),ht= (_class4 =class{constructor(t,r,n,a){;_class4.prototype.__init4.call(this);_class4.prototype.__init5.call(this);_class4.prototype.__init6.call(this);_class4.prototype.__init7.call(this);_class4.prototype.__init8.call(this);_class4.prototype.__init9.call(this);_class4.prototype.__init10.call(this);this._group=t;this.dataType=r;this.initialOrBuffer=n;this._disallowedUsages=a;nn(n)?(this._ownBuffer=!1,this._buffer=n):(this._ownBuffer=!0,this.initial=n)}__init4() {this.resourceType="buffer"}__init5() {this.flags=GPUBufferUsage.COPY_DST|GPUBufferUsage.COPY_SRC}__init6() {this._buffer=null}__init7() {this._destroyed=!1}__init8() {this.usableAsUniform=!1}__init9() {this.usableAsStorage=!1}__init10() {this.usableAsVertex=!1}get buffer(){let t=this._group.device;if(this._destroyed)throw new Error("This buffer has been destroyed");if(!this._buffer&&(this._buffer=t.createBuffer({size:_chunkFHOQ6WZEcjs.ba.call(void 0, this.dataType),usage:this.flags,mappedAtCreation:!!this.initial,label:_nullishCoalesce(_chunkODKBWWHUcjs.c.call(void 0, this), () => ("<unnamed>"))}),this.initial)){let r=new (0, _typedbinary.BufferWriter)(this._buffer.getMappedRange());ne(r,this.dataType,this.initial),this._buffer.unmap()}return this._buffer}get destroyed(){return this._destroyed}$name(t){return _chunkODKBWWHUcjs.d.call(void 0, this,t),this._buffer&&(this._buffer.label=t),this}$usage(...t){for(let r of t){if(_optionalChain([this, 'access', _37 => _37._disallowedUsages, 'optionalAccess', _38 => _38.includes, 'call', _39 => _39(r)]))throw new Error(`Buffer of type ${this.dataType.type} cannot be used as ${r}`);this.flags|=r==="uniform"?GPUBufferUsage.UNIFORM:0,this.flags|=r==="storage"?GPUBufferUsage.STORAGE:0,this.flags|=r==="vertex"?GPUBufferUsage.VERTEX:0,this.usableAsUniform=this.usableAsUniform||r==="uniform",this.usableAsStorage=this.usableAsStorage||r==="storage",this.usableAsVertex=this.usableAsVertex||r==="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)}compileWriter(){if(yt)Tt(this.dataType);else throw new Error("This environment does not allow eval")}write(t){let r=this.buffer,n=this._group.device;if(r.mapState==="mapped"){let o=r.getMappedRange();if(yt){Tt(this.dataType)(new DataView(o),0,t,Dn==="little");return}ne(new (0, _typedbinary.BufferWriter)(o),this.dataType,t);return}let a=_chunkFHOQ6WZEcjs.ba.call(void 0, this.dataType);this._hostBuffer||(this._hostBuffer=new ArrayBuffer(a)),this._group.flush(),yt?Tt(this.dataType)(new DataView(this._hostBuffer),0,t,Dn==="little"):ne(new (0, _typedbinary.BufferWriter)(this._hostBuffer),this.dataType,t),n.queue.writeBuffer(r,0,this._hostBuffer,0,a)}writePartial(t){let r=this.buffer,n=this._group.device,a=hn(this.dataType,t);if(r.mapState==="mapped"){let o=r.getMappedRange(),s=new Uint8Array(o);for(let i of a)s.set(i.data,i.data.byteOffset)}else for(let o of a)n.queue.writeBuffer(r,o.data.byteOffset,o.data,0,o.data.byteLength)}copyFrom(t){if(this.buffer.mapState==="mapped")throw new Error("Cannot copy to a mapped buffer.");let r=_chunkFHOQ6WZEcjs.ba.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 s=t.getMappedRange();return M(new (0, _typedbinary.BufferReader)(s),this.dataType)}if(t.usage&GPUBufferUsage.MAP_READ){await t.mapAsync(GPUMapMode.READ);let s=t.getMappedRange(),i=M(new (0, _typedbinary.BufferReader)(s),this.dataType);return t.unmap(),i}let n=r.createBuffer({size:_chunkFHOQ6WZEcjs.ba.call(void 0, this.dataType),usage:GPUBufferUsage.COPY_DST|GPUBufferUsage.MAP_READ}),a=r.createCommandEncoder();a.copyBufferToBuffer(t,0,n,0,_chunkFHOQ6WZEcjs.ba.call(void 0, this.dataType)),r.queue.submit([a.finish()]),await r.queue.onSubmittedWorkDone(),await n.mapAsync(GPUMapMode.READ,0,_chunkFHOQ6WZEcjs.ba.call(void 0, this.dataType));let o=M(new (0, _typedbinary.BufferReader)(n.getMappedRange()),this.dataType);return n.unmap(),n.destroy(),o}as(t){return _optionalChain([va, 'access', _40 => _40[t], 'optionalCall', _41 => _41(this)])}destroy(){this._destroyed||(this._destroyed=!0,this._ownBuffer&&_optionalChain([this, 'access', _42 => _42._buffer, 'optionalAccess', _43 => _43.destroy, 'call', _44 => _44()]))}toString(){return`buffer:${_nullishCoalesce(_chunkODKBWWHUcjs.c.call(void 0, this), () => ("<unnamed>"))}`}}, _class4);function An(e){return new Tr(e)}function In(e){return new xr(e)}function Ye(e){let t=e;return _optionalChain([t, 'optionalAccess', _45 => _45.resourceType])==="sampler"&&!!t[_chunkODKBWWHUcjs.a]}function Qe(e){let t=e;return _optionalChain([t, 'optionalAccess', _46 => _46.resourceType])==="sampler-comparison"&&!!t[_chunkODKBWWHUcjs.a]}var wt= (_class5 =class{constructor(t){;_class5.prototype.__init11.call(this);this._membership=t;this[_chunkODKBWWHUcjs.a]={},_chunkODKBWWHUcjs.d.call(void 0, this,t.key)}__init11() {this.resourceType="sampler"}"~resolve"(t){let r=t.names.makeUnique(_chunkODKBWWHUcjs.c.call(void 0, this)),n=t.allocateLayoutEntry(this._membership.layout);return t.addDeclaration(`@group(${n}) @binding(${this._membership.idx}) var ${r}: sampler;`),r}toString(){return`${this.resourceType}:${_nullishCoalesce(_chunkODKBWWHUcjs.c.call(void 0, this), () => ("<unnamed>"))}`}}, _class5),bt= (_class6 =class{constructor(t){;_class6.prototype.__init12.call(this);this._membership=t;this[_chunkODKBWWHUcjs.a]={},_chunkODKBWWHUcjs.d.call(void 0, this,t.key)}__init12() {this.resourceType="sampler-comparison"}"~resolve"(t){let r=t.names.makeUnique(_chunkODKBWWHUcjs.c.call(void 0, this)),n=t.allocateLayoutEntry(this._membership.layout);return t.addDeclaration(`@group(${n}) @binding(${this._membership.idx}) var ${r}: sampler_comparison;`),r}toString(){return`${this.resourceType}:${_nullishCoalesce(_chunkODKBWWHUcjs.c.call(void 0, this), () => ("<unnamed>"))}`}}, _class6),Tr= (_class7 =class{constructor(t){;_class7.prototype.__init13.call(this);_class7.prototype.__init14.call(this);this._props=t;this[_chunkODKBWWHUcjs.a]={unwrap:r=>(this._sampler||(this._sampler=r.device.createSampler({...this._props,label:_nullishCoalesce(_chunkODKBWWHUcjs.c.call(void 0, this), () => ("<unnamed>"))})),this._sampler)},this._filtering=t.minFilter==="linear"||t.magFilter==="linear"||t.mipmapFilter==="linear"}__init13() {this.resourceType="sampler"}__init14() {this._sampler=null}$name(t){return _chunkODKBWWHUcjs.d.call(void 0, this,t),this}"~resolve"(t){let r=t.names.makeUnique(_chunkODKBWWHUcjs.c.call(void 0, this)),{group:n,binding:a}=t.allocateFixedEntry({sampler:this._filtering?"filtering":"non-filtering"},this);return t.addDeclaration(`@group(${n}) @binding(${a}) var ${r}: sampler;`),r}toString(){return`${this.resourceType}:${_nullishCoalesce(_chunkODKBWWHUcjs.c.call(void 0, this), () => ("<unnamed>"))}`}}, _class7),xr= (_class8 =class{constructor(t){;_class8.prototype.__init15.call(this);_class8.prototype.__init16.call(this);this._props=t;this[_chunkODKBWWHUcjs.a]={unwrap:r=>(this._sampler||(this._sampler=r.device.createSampler({...this._props,label:_nullishCoalesce(_chunkODKBWWHUcjs.c.call(void 0, this), () => ("<unnamed>"))})),this._sampler)}}__init15() {this.resourceType="sampler-comparison"}__init16() {this._sampler=null}$name(t){return _chunkODKBWWHUcjs.d.call(void 0, this,t),this}"~resolve"(t){let r=t.names.makeUnique(_chunkODKBWWHUcjs.c.call(void 0, this)),{group:n,binding:a}=t.allocateFixedEntry({sampler:"comparison"},this);return t.addDeclaration(`@group(${n}) @binding(${a}) var ${r}: sampler_comparison;`),r}toString(){return`${this.resourceType}:${_nullishCoalesce(_chunkODKBWWHUcjs.c.call(void 0, this), () => ("<unnamed>"))}`}}, _class8);var St= (_class9 =class{constructor(t){;_class9.prototype.__init17.call(this);this._membership=t;_chunkODKBWWHUcjs.d.call(void 0, this,t.key)}__init17() {this.resourceType="external-texture"}"~resolve"(t){let r=t.names.makeUnique(_chunkODKBWWHUcjs.c.call(void 0, this)),n=t.allocateLayoutEntry(this._membership.layout);return t.addDeclaration(`@group(${n}) @binding(${this._membership.idx}) var ${r}: texture_external;`),r}toString(){return`${this.resourceType}:${_nullishCoalesce(_chunkODKBWWHUcjs.c.call(void 0, this), () => ("<unnamed>"))}`}}, _class9);var Un={r8unorm:_chunkODKBWWHUcjs.T,r8snorm:_chunkODKBWWHUcjs.T,r8uint:_chunkODKBWWHUcjs.R,r8sint:_chunkODKBWWHUcjs.S,r16uint:_chunkODKBWWHUcjs.R,r16sint:_chunkODKBWWHUcjs.S,r16float:_chunkODKBWWHUcjs.T,rg8unorm:_chunkODKBWWHUcjs.T,rg8snorm:_chunkODKBWWHUcjs.T,rg8uint:_chunkODKBWWHUcjs.R,rg8sint:_chunkODKBWWHUcjs.S,r32uint:_chunkODKBWWHUcjs.R,r32sint:_chunkODKBWWHUcjs.S,r32float:_chunkODKBWWHUcjs.T,rg16uint:_chunkODKBWWHUcjs.R,rg16sint:_chunkODKBWWHUcjs.S,rg16float:_chunkODKBWWHUcjs.T,rgba8unorm:_chunkODKBWWHUcjs.T,"rgba8unorm-srgb":_chunkODKBWWHUcjs.T,rgba8snorm:_chunkODKBWWHUcjs.T,rgba8uint:_chunkODKBWWHUcjs.R,rgba8sint:_chunkODKBWWHUcjs.S,bgra8unorm:_chunkODKBWWHUcjs.T,"bgra8unorm-srgb":_chunkODKBWWHUcjs.T,rgb9e5ufloat:_chunkODKBWWHUcjs.T,rgb10a2uint:_chunkODKBWWHUcjs.R,rgb10a2unorm:_chunkODKBWWHUcjs.T,rg11b10ufloat:_chunkODKBWWHUcjs.T,rg32uint:_chunkODKBWWHUcjs.R,rg32sint:_chunkODKBWWHUcjs.S,rg32float:_chunkODKBWWHUcjs.T,rgba16uint:_chunkODKBWWHUcjs.R,rgba16sint:_chunkODKBWWHUcjs.S,rgba16float:_chunkODKBWWHUcjs.T,rgba32uint:_chunkODKBWWHUcjs.R,rgba32sint:_chunkODKBWWHUcjs.S,rgba32float:_chunkODKBWWHUcjs.T,stencil8:_chunkODKBWWHUcjs.T,depth16unorm:_chunkODKBWWHUcjs.T,depth24plus:_chunkODKBWWHUcjs.T,"depth24plus-stencil8":_chunkODKBWWHUcjs.T,depth32float:_chunkODKBWWHUcjs.T,"depth32float-stencil8":_chunkODKBWWHUcjs.T,"bc1-rgba-unorm":_chunkODKBWWHUcjs.T,"bc1-rgba-unorm-srgb":_chunkODKBWWHUcjs.T,"bc2-rgba-unorm":_chunkODKBWWHUcjs.T,"bc2-rgba-unorm-srgb":_chunkODKBWWHUcjs.T,"bc3-rgba-unorm":_chunkODKBWWHUcjs.T,"bc3-rgba-unorm-srgb":_chunkODKBWWHUcjs.T,"bc4-r-unorm":_chunkODKBWWHUcjs.T,"bc4-r-snorm":_chunkODKBWWHUcjs.T,"bc5-rg-unorm":_chunkODKBWWHUcjs.T,"bc5-rg-snorm":_chunkODKBWWHUcjs.T,"bc6h-rgb-ufloat":_chunkODKBWWHUcjs.T,"bc6h-rgb-float":_chunkODKBWWHUcjs.T,"bc7-rgba-unorm":_chunkODKBWWHUcjs.T,"bc7-rgba-unorm-srgb":_chunkODKBWWHUcjs.T,"etc2-rgb8unorm":_chunkODKBWWHUcjs.T,"etc2-rgb8unorm-srgb":_chunkODKBWWHUcjs.T,"etc2-rgb8a1unorm":_chunkODKBWWHUcjs.T,"etc2-rgb8a1unorm-srgb":_chunkODKBWWHUcjs.T,"etc2-rgba8unorm":_chunkODKBWWHUcjs.T,"etc2-rgba8unorm-srgb":_chunkODKBWWHUcjs.T,"eac-r11unorm":_chunkODKBWWHUcjs.T,"eac-r11snorm":_chunkODKBWWHUcjs.T,"eac-rg11unorm":_chunkODKBWWHUcjs.T,"eac-rg11snorm":_chunkODKBWWHUcjs.T,"astc-4x4-unorm":_chunkODKBWWHUcjs.T,"astc-4x4-unorm-srgb":_chunkODKBWWHUcjs.T,"astc-5x4-unorm":_chunkODKBWWHUcjs.T,"astc-5x4-unorm-srgb":_chunkODKBWWHUcjs.T,"astc-5x5-unorm":_chunkODKBWWHUcjs.T,"astc-5x5-unorm-srgb":_chunkODKBWWHUcjs.T,"astc-6x5-unorm":_chunkODKBWWHUcjs.T,"astc-6x5-unorm-srgb":_chunkODKBWWHUcjs.T,"astc-6x6-unorm":_chunkODKBWWHUcjs.T,"astc-6x6-unorm-srgb":_chunkODKBWWHUcjs.T,"astc-8x5-unorm":_chunkODKBWWHUcjs.T,"astc-8x5-unorm-srgb":_chunkODKBWWHUcjs.T,"astc-8x6-unorm":_chunkODKBWWHUcjs.T,"astc-8x6-unorm-srgb":_chunkODKBWWHUcjs.T,"astc-8x8-unorm":_chunkODKBWWHUcjs.T,"astc-8x8-unorm-srgb":_chunkODKBWWHUcjs.T,"astc-10x5-unorm":_chunkODKBWWHUcjs.T,"astc-10x5-unorm-srgb":_chunkODKBWWHUcjs.T,"astc-10x6-unorm":_chunkODKBWWHUcjs.T,"astc-10x6-unorm-srgb":_chunkODKBWWHUcjs.T,"astc-10x8-unorm":_chunkODKBWWHUcjs.T,"astc-10x8-unorm-srgb":_chunkODKBWWHUcjs.T,"astc-10x10-unorm":_chunkODKBWWHUcjs.T,"astc-10x10-unorm-srgb":_chunkODKBWWHUcjs.T,"astc-12x10-unorm":_chunkODKBWWHUcjs.T,"astc-12x10-unorm-srgb":_chunkODKBWWHUcjs.T,"astc-12x12-unorm":_chunkODKBWWHUcjs.T,"astc-12x12-unorm-srgb":_chunkODKBWWHUcjs.T},Xe={rgba8unorm:_chunkODKBWWHUcjs.da,rgba8snorm:_chunkODKBWWHUcjs.da,rgba8uint:_chunkODKBWWHUcjs.ga,rgba8sint:_chunkODKBWWHUcjs.fa,rgba16uint:_chunkODKBWWHUcjs.ga,rgba16sint:_chunkODKBWWHUcjs.fa,rgba16float:_chunkODKBWWHUcjs.da,r32uint:_chunkODKBWWHUcjs.ga,r32sint:_chunkODKBWWHUcjs.fa,r32float:_chunkODKBWWHUcjs.da,rg32uint:_chunkODKBWWHUcjs.ga,rg32sint:_chunkODKBWWHUcjs.fa,rg32float:_chunkODKBWWHUcjs.da,rgba32uint:_chunkODKBWWHUcjs.ga,rgba32sint:_chunkODKBWWHUcjs.fa,rgba32float:_chunkODKBWWHUcjs.da,bgra8unorm:_chunkODKBWWHUcjs.da},Bn={f32:"float",u32:"uint",i32:"sint"},Rn={float:_chunkODKBWWHUcjs.T,"unfilterable-float":_chunkODKBWWHUcjs.T,uint:_chunkODKBWWHUcjs.R,sint:_chunkODKBWWHUcjs.S,depth:_chunkODKBWWHUcjs.T};function Cn(e,t){return new hr(e,t)}function X(e){return _optionalChain([e, 'optionalAccess', _47 => _47.resourceType])==="texture"&&!!e[_chunkODKBWWHUcjs.a]}function Ze(e){return _optionalChain([e, 'optionalAccess', _48 => _48.resourceType])==="texture-storage-view"&&!!e[_chunkODKBWWHUcjs.a]}function et(e){return _optionalChain([e, 'optionalAccess', _49 => _49.resourceType])==="texture-sampled-view"&&!!e[_chunkODKBWWHUcjs.a]}var Pn={mutable:"read_write",readonly:"read",writeonly:"write"},hr= (_class10 =class{constructor(t,r){;_class10.prototype.__init18.call(this);_class10.prototype.__init19.call(this);_class10.prototype.__init20.call(this);_class10.prototype.__init21.call(this);_class10.prototype.__init22.call(this);_class10.prototype.__init23.call(this);_class10.prototype.__init24.call(this);this.props=t;this._branch=r;this[_chunkODKBWWHUcjs.a]={unwrap:()=>{if(this._destroyed)throw new Error("This texture has been destroyed");return this._texture||(this._texture=this._branch.device.createTexture({label:_nullishCoalesce(_chunkODKBWWHUcjs.c.call(void 0, this), () => ("<unnamed>")),format:this.props.format,size:this.props.size,usage:this._flags,dimension:_nullishCoalesce(this.props.dimension, () => ("2d")),viewFormats:_nullishCoalesce(this.props.viewFormats, () => ([])),mipLevelCount:_nullishCoalesce(this.props.mipLevelCount, () => (1)),sampleCount:_nullishCoalesce(this.props.sampleCount, () => (1))})),this._texture}}}__init18() {this.resourceType="texture"}__init19() {this.usableAsSampled=!1}__init20() {this.usableAsStorage=!1}__init21() {this.usableAsRender=!1}__init22() {this._destroyed=!1}__init23() {this._flags=GPUTextureUsage.COPY_DST|GPUTextureUsage.COPY_SRC}__init24() {this._texture=null}$name(t){return _chunkODKBWWHUcjs.d.call(void 0, this,t),this}$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||=r,this.usableAsSampled||=n,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){if(!this.usableAsStorage)throw new Error("Unusable as storage");let n=_nullishCoalesce(_optionalChain([t, 'optionalAccess', _50 => _50.format]), () => (this.props.format)),a=Xe[n];return _chunkODKBWWHUcjs.f.call(void 0, !!a,`Unsupported storage texture format: ${n}`),new wr(_nullishCoalesce(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){if(!this.usableAsSampled)throw new Error("Unusable as sampled");let r=_nullishCoalesce(_optionalChain([t, 'optionalAccess', _51 => _51.format]), () => (this.props.format));if(!Xe[r])throw new Error(`Unsupported storage texture format: ${r}`);return new br(t,this)}destroy(){this._destroyed||(this._destroyed=!0,_optionalChain([this, 'access', _52 => _52._texture, 'optionalAccess', _53 => _53.destroy, 'call', _54 => _54()]))}}, _class10),Ft={"1d":"1d","2d":"2d","2d-array":"2d_array",cube:"cube","cube-array":"cube_array","3d":"3d"},wr= (_class11 =class{constructor(t,r,n){;_class11.prototype.__init25.call(this);this.access=r;this._texture=n;this[_chunkODKBWWHUcjs.a]={unwrap:()=>(this._view||(this._view=this._texture[_chunkODKBWWHUcjs.a].unwrap().createView({label:`${_nullishCoalesce(_chunkODKBWWHUcjs.c.call(void 0, this), () => ("<unnamed>"))} - View`,format:this._format,dimension:this.dimension})),this._view)},this[_chunkODKBWWHUcjs.b]=n,this.dimension=_nullishCoalesce(_nullishCoalesce(_optionalChain([t, 'optionalAccess', _55 => _55.dimension]), () => (n.props.dimension)), () => ("2d")),this._format=_nullishCoalesce(_optionalChain([t, 'optionalAccess', _56 => _56.format]), () => (n.props.format)),this.texelDataType=Xe[this._format]}__init25() {this.resourceType="texture-storage-view"}$name(t){return this._texture.$name(t),this}"~resolve"(t){let r=t.names.makeUnique(_chunkODKBWWHUcjs.c.call(void 0, this)),{group:n,binding:a}=t.allocateFixedEntry({storageTexture:this._format,access:this.access,viewDimension:this.dimension},this),o=`texture_storage_${Ft[this.dimension]}`;return t.addDeclaration(`@group(${n}) @binding(${a}) var ${r}: ${o}<${this._format}, ${Pn[this.access]}>;`),r}toString(){return`${this.resourceType}:${_nullishCoalesce(_chunkODKBWWHUcjs.c.call(void 0, this), () => ("<unnamed>"))}`}}, _class11),vt= (_class12 =class{constructor(t,r,n,a){;_class12.prototype.__init26.call(this);this._format=t;this.dimension=r;this.access=n;this._membership=a;this[_chunkODKBWWHUcjs.a]={},this.texelDataType=Xe[this._format],_chunkODKBWWHUcjs.d.call(void 0, this,a.key)}__init26() {this.resourceType="texture-storage-view"}"~resolve"(t){let r=t.names.makeUnique(_chunkODKBWWHUcjs.c.call(void 0, this)),n=t.allocateLayoutEntry(this._membership.layout),a=`texture_storage_${Ft[this.dimension]}`;return t.addDeclaration(`@group(${n}) @binding(${this._membership.idx}) var ${r}: ${a}<${this._format}, ${Pn[this.access]}>;`),r}toString(){return`${this.resourceType}:${_nullishCoalesce(_chunkODKBWWHUcjs.c.call(void 0, this), () => ("<unnamed>"))}`}}, _class12),br= (_class13 =class{constructor(t,r){;_class13.prototype.__init27.call(this);this._props=t;this._texture=r;this[_chunkODKBWWHUcjs.a]={unwrap:()=>(this._view||(this._view=this._texture[_chunkODKBWWHUcjs.a].unwrap().createView({label:`${_nullishCoalesce(_chunkODKBWWHUcjs.c.call(void 0, this), () => ("<unnamed>"))} - View`,...this._props})),this._view)},this[_chunkODKBWWHUcjs.b]=r,this.dimension=_nullishCoalesce(_nullishCoalesce(_optionalChain([t, 'optionalAccess', _57 => _57.dimension]), () => (r.props.dimension)), () => ("2d")),this._format=_nullishCoalesce(_optionalChain([t, 'optionalAccess', _58 => _58.format]), () => (r.props.format)),this.channelDataType=Un[this._format]}__init27() {this.resourceType="texture-sampled-view"}$name(t){return this._texture.$name(t),this}"~resolve"(t){let r=t.names.makeUnique(_chunkODKBWWHUcjs.c.call(void 0, this)),n=(_nullishCoalesce(this._texture.props.sampleCount, () => (1)))>1,{group:a,binding:o}=t.allocateFixedEntry({texture:Bn[this.channelDataType.type],viewDimension:this.dimension,multisampled:n},this),s=n?"texture_multisampled_2d":`texture_${Ft[this.dimension]}`;return t.addDeclaration(`@group(${a}) @binding(${o}) var ${r}: ${s}<${t.resolve(this.channelDataType)}>;`),r}toString(){return`${this.resourceType}:${_nullishCoalesce(_chunkODKBWWHUcjs.c.call(void 0, this), () => ("<unnamed>"))}`}}, _class13),Dt= (_class14 =class{constructor(t,r,n,a){;_class14.prototype.__init28.call(this);this.dimension=r;this._multisampled=n;this._membership=a;this[_chunkODKBWWHUcjs.a]={},_chunkODKBWWHUcjs.d.call(void 0, this,a.key),this.channelDataType=Rn[t]}__init28() {this.resourceType="texture-sampled-view"}"~resolve"(t){let r=t.names.makeUnique(_chunkODKBWWHUcjs.c.call(void 0, this)),n=t.allocateLayoutEntry(this._membership.layout),a=this._multisampled?"texture_multisampled_2d":`texture_${Ft[this.dimension]}`;return t.addDeclaration(`@group(${n}) @binding(${this._membership.idx}) var ${r}: ${a}<${t.resolve(this.channelDataType)}>;`),r}toString(){return`${this.resourceType}:${_nullishCoalesce(_chunkODKBWWHUcjs.c.call(void 0, this), () => ("<unnamed>"))}`}}, _class14);function Sr(e){return!!_optionalChain([e, 'optionalAccess', _59 => _59.usableAsSampled])}function Fa(e){return!!_optionalChain([e, 'optionalAccess', _60 => _60.usableAsRender])}var At=class e extends Error{constructor(t){super(`Resource '${_nullishCoalesce(_chunkODKBWWHUcjs.c.call(void 0, t), () => ("<unnamed>"))}' cannot be bound as 'sampled'. Use .$usage('sampled') to allow it.`),Object.setPrototypeOf(this,e.prototype)}};function It(e){return new Dr(e)}function Ut(e){return!!e&&e.resourceType==="bind-group-layout"}function Fr(e){return!!e&&e.resourceType==="bind-group"}var vr=class e extends Error{constructor(t,r){super(`Bind group '${_nullishCoalesce(t, () => ("<unnamed>"))}' is missing a required binding '${r}'`),Object.setPrototypeOf(this,e.prototype)}},Vn=["compute"],Ce=["compute","vertex","fragment"],Dr= (_class15 =class{constructor(t){;_class15.prototype.__init29.call(this);_class15.prototype.__init30.call(this);_class15.prototype.__init31.call(this);_class15.prototype.__init32.call(this);this.entries=t;let r=0;for(let[n,a]of Object.entries(t)){if(a===null){r++;continue}let o={layout:this,key:n,idx:r};if("uniform"in a&&(this.bound[n]=new Je("uniform",a.uniform,o)),"storage"in a){let s="type"in a.storage?a.storage:a.storage(0);this.bound[n]=new Je(_nullishCoalesce(a.access, () => ("readonly")),s,o)}"texture"in a&&(this.bound[n]=new Dt(a.texture,_nullishCoalesce(a.viewDimension, () => ("2d")),_nullishCoalesce(a.multisampled, () => (!1)),o)),"storageTexture"in a&&(this.bound[n]=new vt(a.storageTexture,_nullishCoalesce(a.viewDimension, () => ("2d")),_nullishCoalesce(a.access, () => ("writeonly")),o)),"externalTexture"in a&&(this.bound[n]=new St(o)),"sampler"in a&&(a.sampler==="comparison"?this.bound[n]=new bt(o):this.bound[n]=new wt(o)),"texture"in a||"storageTexture"in a||"externalTexture"in a||"sampler"in a?this.value[n]=this.bound[n]:Object.defineProperty(this.value,n,{get:()=>this.bound[n].value}),r++}}__init29() {this.resourceType="bind-group-layout"}__init30() {this.bound={}}__init31() {this.value={}}__init32() {this.$=this.value}toString(){return`bindGroupLayout:${_nullishCoalesce(_chunkODKBWWHUcjs.c.call(void 0, this), () => ("<unnamed>"))}`}get index(){return this._index}$name(t){return _chunkODKBWWHUcjs.d.call(void 0, this,t),this}$idx(t){return this._index=t,this}unwrap(t){return t.device.createBindGroupLayout({label:_nullishCoalesce(_chunkODKBWWHUcjs.c.call(void 0, this), () => ("<unnamed>")),entries:Object.values(this.entries).map((n,a)=>{if(n===null)return null;let o=n.visibility,s={binding:a,visibility:0};if("uniform"in n)o=_nullishCoalesce(o, () => (Ce)),s.buffer={type:"uniform"};else if("storage"in n)o=_nullishCoalesce(o, () => ((n.access==="mutable"?Vn:Ce))),s.buffer={type:n.access==="mutable"?"storage":"read-only-storage"};else if("sampler"in n)o=_nullishCoalesce(o, () => (Ce)),s.sampler={type:n.sampler};else if("texture"in n)o=_nullishCoalesce(o, () => (Ce)),s.texture={sampleType:n.texture,viewDimension:_nullishCoalesce(n.viewDimension, () => ("2d")),multisampled:_nullishCoalesce(n.multisampled, () => (!1))};else if("storageTexture"in n){let i=_nullishCoalesce(n.access, () => ("writeonly"));o=_nullishCoalesce(o, () => ((i==="readonly"?Ce:Vn))),s.storageTexture={format:n.storageTexture,access:{mutable:"read-write",readonly:"read-only",writeonly:"write-only"}[i],viewDimension:_nullishCoalesce(n.viewDimension, () => ("2d"))}}else"externalTexture"in n&&(o=_nullishCoalesce(o, () => (Ce)),s.externalTexture={});return _optionalChain([o, 'optionalAccess', _61 => _61.includes, 'call', _62 => _62("compute")])&&(s.visibility|=GPUShaderStage.COMPUTE),_optionalChain([o, 'optionalAccess', _63 => _63.includes, 'call', _64 => _64("vertex")])&&(s.visibility|=GPUShaderStage.VERTEX),_optionalChain([o, 'optionalAccess', _65 => _65.includes, 'call', _66 => _66("fragment")])&&(s.visibility|=GPUShaderStage.FRAGMENT),s}).filter(n=>n!==null)})}}, _class15),Pe= (_class16 =class{constructor(t,r){;_class16.prototype.__init33.call(this);this.layout=t;this.entries=r;for(let n of Object.keys(t.entries))if(t.entries[n]!==null&&!(n in r))throw new vr(_chunkODKBWWHUcjs.c.call(void 0, t),n)}__init33() {this.resourceType="bind-group"}unwrap(t){return t.device.createBindGroup({label:_nullishCoalesce(_chunkODKBWWHUcjs.c.call(void 0, this.layout), () => ("<unnamed>")),layout:t.unwrap(this.layout),entries:Object.entries(this.layout.entries).map(([n,a],o)=>{if(a===null)return null;let s=this.entries[n];if(s===void 0)throw new Error(`'${n}' is a resource required to populate bind group layout '${_nullishCoalesce(_chunkODKBWWHUcjs.c.call(void 0, this.layout), () => ("<unnamed>"))}'.`);if("uniform"in a){let i;if(ae(s)){if(!xt(s))throw new (0, _chunkODKBWWHUcjs.i)(s);i={buffer:t.unwrap(s)}}else i={buffer:s};return{binding:o,resource:i}}if("storage"in a){let i;if(ae(s)){if(!xe(s))throw new He(s);i={buffer:t.unwrap(s)}}else i={buffer:s};return{binding:o,resource:i}}if("texture"in a){let i;if(X(s)){if(!Sr(s))throw new At(s);i=t.unwrap(s.createView("sampled"))}else et(s)?i=t.unwrap(s):i=s;return{binding:o,resource:i}}if("storageTexture"in a){let i;if(X(s)){if(!xe(s))throw new He(s);a.access==="readonly"?i=t.unwrap(s.createView("readonly")):a.access==="mutable"?i=t.unwrap(s.createView("mutable")):i=t.unwrap(s.createView("writeonly"))}else Ze(s)?i=t.unwrap(s):i=s;return{binding:o,resource:i}}if("sampler"in a)return Ye(s)||Qe(s)?{binding:o,resource:t.unwrap(s)}:{binding:o,resource:s};if("externalTexture"in a)return{binding:o,resource:s};throw new Error(`Malformed bind group entry: ${s} (${JSON.stringify(s)})`)}).filter(n=>n!==null)})}}, _class16);var _tinyest = require('tinyest'); var Aa = _interopRequireWildcard(_tinyest);var{NodeTypeCatalog:v}=Aa,Ia=["==","!=","<","<=",">",">=","<<",">>","+","-","*","/","%","|","^","&","&&","||"],Ua=["&&","||","==","!=","<","<=",">",">="];function $n(e,t,r){return r?Ua.includes(t)?_chunkODKBWWHUcjs.Q:t==="="?r:e:t==="!"||t==="~"?_chunkODKBWWHUcjs.Q:e}function Ba(e){throw new Error(`'${JSON.stringify(e)}' was not handled by the WGSL generator.`)}function kn(e,t){return{value:t?"true":"false",dataType:_chunkODKBWWHUcjs.Q}}function En(e,[t,r]){e.pushBlockScope();try{return`${e.indent()}{
|
19
|
+
${r.map(n=>he(e,n)).join(`
|
11
20
|
`)}
|
12
|
-
${e.dedent()}}`}finally{e.popBlockScope()}}function
|
13
|
-
${
|
21
|
+
${e.dedent()}}`}finally{e.popBlockScope()}}function Ra(e,t,r){return e.defineVariable(t,r)}function Ar(e,t){let r=e.getById(t);if(!r)throw new Error(`Identifier ${t} not found`);return r}function V(e,t){if(typeof t=="string")return Ar(e,t);if(typeof t=="boolean")return kn(e,t);if(t[0]===v.logicalExpr||t[0]===v.binaryExpr||t[0]===v.assignmentExpr){let[r,n,a,o]=t,s=V(e,n),i=V(e,o),l=W(e,[s,i]),[u,d]=l||[s,i],g=A(e,u),c=A(e,d),y=$n(u.dataType,a,d.dataType);return{value:Ia.includes(a)?`(${g} ${a} ${c})`:`${g} ${a} ${c}`,dataType:y}}if(t[0]===v.postUpdate){let[r,n,a]=t,o=V(e,a);return{value:`${A(e,o)}${n}`,dataType:o.dataType}}if(t[0]===v.unaryExpr){let[r,n,a]=t,o=V(e,a),s=A(e,o),i=$n(o.dataType,n);return{value:`${n}${s}`,dataType:i}}if(t[0]===v.memberAccess){let[r,n,a]=t,o=V(e,n);if(_chunkODKBWWHUcjs.D.call(void 0, o.dataType))return{value:`(*${o.value}).${a}`,dataType:_chunkFHOQ6WZEcjs.i.call(void 0, o.dataType.inner)?ce(o.dataType.inner,a):U};if(typeof o.value=="string")return{value:`${o.value}.${a}`,dataType:_chunkFHOQ6WZEcjs.i.call(void 0, o.dataType)?ce(o.dataType,a):U};if(_chunkODKBWWHUcjs.B.call(void 0, o.dataType)&&a==="length")return o.dataType.elementCount===0?{value:`arrayLength(&${e.resolve(o.value)})`,dataType:_chunkODKBWWHUcjs.R}:{value:String(o.dataType.elementCount),dataType:_chunkODKBWWHUcjs.O};let s=o.value[a];if(o.dataType.type!=="unknown")return _chunkODKBWWHUcjs.z.call(void 0, o.dataType)&&a==="columns"?{value:o.value,dataType:o.dataType}:{value:s,dataType:ce(o.dataType,a)};if(J(o.value))return{value:s,dataType:ce(o.value,a)};if(typeof o.value=="object"){let i=J(s)?mt(s):U;return{value:s,dataType:i}}throw new Error(`Cannot access member ${a} of ${o.value}`)}if(t[0]===v.indexAccess){let[r,n,a]=t,o=V(e,n),s=V(e,a),i=A(e,o),l=A(e,s);return _chunkODKBWWHUcjs.D.call(void 0, o.dataType)?{value:`(*${i})[${l}]`,dataType:_chunkFHOQ6WZEcjs.i.call(void 0, o.dataType.inner)?er(o.dataType.inner):U}:{value:`${i}[${l}]`,dataType:_chunkFHOQ6WZEcjs.i.call(void 0, o.dataType)?er(o.dataType):U}}if(t[0]===v.numericLiteral){let r=ft(t[1]);if(!r)throw new Error(`Invalid numeric literal ${t[1]}`);return r}if(t[0]===v.call){let[r,n,a]=t,o=V(e,n),s=o.value;e.callStack.push(s);let i=a.map(y=>V(e,y)),l=i.map(y=>({value:A(e,y),dataType:y.dataType})),u=l.map(y=>y.value);if(e.callStack.pop(),typeof s=="string")return{value:`${s}(${u.join(", ")})`,dataType:o.dataType};if(_chunkODKBWWHUcjs.C.call(void 0, s))return{value:`${e.resolve(s)}(${u.join(", ")})`,dataType:o.dataType};if(!Zt(s))throw new Error(`Function ${String(s)} has not been created using TypeGPU APIs. Did you mean to wrap the function with tgpu.fn(args, return)(...) ?`);let d=_optionalChain([s, 'access', _67 => _67[_chunkODKBWWHUcjs.a], 'optionalAccess', _68 => _68.argTypes]),g;!d||d==="keep"?g=l:d==="coerce"?g=_nullishCoalesce(W(e,l), () => (l)):g=(Array.isArray(d)?d.map((x,h)=>[x,l[h]]).filter(([,x])=>!!x):typeof d=="function"?d(...l).map((x,h)=>[x,l[h]]).filter(([,x])=>!!x):Object.entries(d).map(([x,h])=>{let T=(_optionalChain([i, 'access', _69 => _69[0], 'optionalAccess', _70 => _70.value]))[x];if(!T)throw new Error(`Missing argument ${x} in function call`);return[h,T]})).map(([x,h])=>{let T=_optionalChain([W, 'call', _71 => _71(e,[h],[x]), 'optionalAccess', _72 => _72[0]]);if(!T)throw new Error(`Cannot convert ${e.resolve(h.dataType)} to ${e.resolve(x)}`);return T});let c=s(...g);return{value:A(e,c),dataType:c.dataType}}if(t[0]===v.objectExpr){let r=t[1],n=e.callStack[e.callStack.length-1];if(_chunkODKBWWHUcjs.C.call(void 0, n)){let a=Object.keys(n.propTypes),o=Object.fromEntries(a.map(i=>{let l=r[i];if(l===void 0)throw new Error(`Missing property ${i} in object literal for struct ${n}`);return[i,V(e,l)]}));return{value:nr(e,n,o).map(i=>A(e,i)).join(", "),dataType:n}}if(Zt(n)){let a=_optionalChain([n, 'access', _73 => _73[_chunkODKBWWHUcjs.a], 'optionalAccess', _74 => _74.argTypes]);if(typeof a=="object"&&a!==null){let o=Object.keys(a),s={};for(let i of o){let l=r[i];if(l===void 0)throw new Error(`Missing property ${i} in object literal for function ${n}`);let u=V(e,l),d=a[i],g=W(e,[u],[d]);s[i]=_nullishCoalesce(_optionalChain([g, 'optionalAccess', _75 => _75[0]]), () => (u))}return{value:s,dataType:U}}}throw new Error("Object expressions are only allowed as return values of functions or as arguments to structs.")}if(t[0]===v.arrayExpr){let[r,n]=t,a=n.map(g=>V(e,g));if(a.length===0)throw new Error("Cannot create empty array literal.");let o=W(e,a);if(!o)throw new Error("The given values cannot be automatically converted to a common type. Consider explicitly casting them.");let s=_optionalChain([o, 'access', _76 => _76[0], 'optionalAccess', _77 => _77.dataType]),i=s.type==="abstractFloat"?_chunkODKBWWHUcjs.T:s.type==="abstractInt"?_chunkODKBWWHUcjs.S:s,u=`array<${e.resolve(i)}, ${a.length}>`,d=o.map(g=>A(e,g));return{value:`${u}( ${d.join(", ")} )`,dataType:_chunkFHOQ6WZEcjs.da.call(void 0, i,a.length)}}if(t[0]===v.stringLiteral)throw new Error("Cannot use string literals in TGSL.");if(t[0]===v.preUpdate)throw new Error("Cannot use pre-updates in TGSL.");Ba(t)}function Bt(e){return typeof e!="object"||e[0]!==v.block?[v.block,[e]]:e}function he(e,t){if(typeof t=="string")return`${e.pre}${A(e,Ar(e,t))};`;if(typeof t=="boolean")return`${e.pre}${A(e,kn(e,t))};`;if(t[0]===v.return){let r=t[1],n=r!==void 0?A(e,V(e,r)):void 0;if(_chunkODKBWWHUcjs.C.call(void 0, e.callStack[e.callStack.length-1])&&typeof r=="object"&&r[0]===v.objectExpr){let a=e.resolve(e.callStack[e.callStack.length-1]);return`${e.pre}return ${a}(${n});`}return n?`${e.pre}return ${n};`:`${e.pre}return;`}if(t[0]===v.if){let[r,n,a,o]=t,s=V(e,n),i=s,l=W(e,[s],[_chunkODKBWWHUcjs.Q]);_optionalChain([l, 'optionalAccess', _78 => _78[0]])&&([i]=l);let u=A(e,i);e.indent();let d=he(e,Bt(a));e.dedent(),e.indent();let g=o?he(e,Bt(o)):void 0;return e.dedent(),g?`${e.pre}if (${u})
|
22
|
+
${d}
|
14
23
|
${e.pre}else
|
15
|
-
${
|
16
|
-
${
|
17
|
-
${
|
18
|
-
${
|
19
|
-
`,s+=tt(a.elementType,`(${t} + i * ${o})`,`${r}[i]`),s+=`}
|
20
|
-
`,s}if(_chunkVUYQ2ZIKcjs.V.call(void 0, e)){let a=Nt[e.type],o="",s=jt[a],i=["x","y","z","w"],p=_chunkVUYQ2ZIKcjs.T.call(void 0, e)?2:_chunkVUYQ2ZIKcjs.U.call(void 0, e)?3:4;for(let u=0;u<p;u++)o+=`output.${s}((${t} + ${u*4}), ${r}.${i[u]}, littleEndian);
|
21
|
-
`;return o}if(_chunkVUYQ2ZIKcjs.Y.call(void 0, e)){let a=Nt[e.type],o=jt[a],s=_chunkVUYQ2ZIKcjs.W.call(void 0, e)?2:_chunkVUYQ2ZIKcjs.X.call(void 0, e)?3:4,i=s*s,p=_chunkA6AAWPBUcjs.aa.call(void 0, s*4,8),u="";for(let d=0;d<i;d++){let m=Math.floor(d/s),T=d%s,f=m*p+T*4;u+=`output.${o}((${t} + ${f}), ${r}.columns[${m}].${["x","y","z","w"][T]}, littleEndian);
|
22
|
-
`}return u}let n=Nt[e.type];return`output.${jt[n]}(${t}, ${r}, littleEndian);
|
23
|
-
`}function nt(e){if(Mt.has(e))return Mt.get(e);let t=tt(e,"offset","value"),r=new Function("output","offset","value","littleEndian=true",t);return Mt.set(e,r),r}var Se={bool(){throw new Error("Booleans are not host-shareable")},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)},"vec2<bool>"(){throw new Error("Booleans are not host-shareable")},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)},"vec3<bool>"(){throw new Error("Booleans are not host-shareable")},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)},"vec4<bool>"(){throw new Error("Booleans are not host-shareable")},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=_chunkA6AAWPBUcjs.Z.call(void 0, t);w(e,n);for(let[a,o]of Object.entries(t.propTypes))w(e,_chunkA6AAWPBUcjs.Z.call(void 0, o)),X(e,o,r[a]);w(e,n)},array(e,t,r){if(t.elementCount===0)throw new Error("Cannot write using a runtime-sized schema.");let n=_chunkA6AAWPBUcjs.Z.call(void 0, t);w(e,n);let a=e.currentByteOffset;for(let o=0;o<Math.min(t.elementCount,r.length);o++)w(e,n),X(e,t.elementType,r[o]);e.seekTo(a+_chunkA6AAWPBUcjs.ba.call(void 0, t))},ptr(){throw new Error("Pointers are not host-shareable")},atomic(e,t,r){_optionalChain([Se, 'access', _20 => _20[t.inner.type], 'optionalCall', _21 => _21(e,t,r)])},decorated(e,t,r){let n=_chunkA6AAWPBUcjs._.call(void 0, t);w(e,n);let a=e.currentByteOffset;_optionalChain([Se, 'access', _22 => _22[_optionalChain([t, 'access', _23 => _23.inner, 'optionalAccess', _24 => _24.type])], 'optionalCall', _25 => _25(e,t.inner,r)]),e.seekTo(a+_chunkA6AAWPBUcjs.ba.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){let n=_chunkA6AAWPBUcjs.Z.call(void 0, t);w(e,n);let a=e.currentByteOffset;for(let o=0;o<Math.min(t.elementCount,r.length);o++)w(e,n),_optionalChain([Se, 'access', _26 => _26[_optionalChain([t, 'access', _27 => _27.elementType, 'optionalAccess', _28 => _28.type])], 'optionalCall', _29 => _29(e,t.elementType,r[o])]);e.seekTo(a+_chunkA6AAWPBUcjs.ba.call(void 0, t))},unstruct(e,t,r){for(let[n,a]of Object.entries(t.propTypes))_optionalChain([Se, 'access', _30 => _30[a.type], 'optionalCall', _31 => _31(e,a,r[n])])},"loose-decorated"(e,t,r){let n=_chunkA6AAWPBUcjs._.call(void 0, t);w(e,n);let a=e.currentByteOffset,o=Se[_optionalChain([t, 'access', _32 => _32.inner, 'optionalAccess', _33 => _33.type])];return _optionalChain([o, 'optionalCall', _34 => _34(e,t.inner,r)]),e.seekTo(a+_chunkA6AAWPBUcjs.ba.call(void 0, t)),r}};function X(e,t,r){let n=Se[t.type];if(!n)throw new Error(`Cannot write data of type '${t.type}'.`);n(e,t,r)}var le={bool(){throw new Error("Booleans are not host-shareable")},f32(e){return e.readFloat32()},f16(e){return e.readFloat16()},i32(e){return e.readInt32()},u32(e){return e.readUint32()},vec2f(e){return _chunkVUYQ2ZIKcjs.r.call(void 0, e.readFloat32(),e.readFloat32())},vec3f(e){return _chunkVUYQ2ZIKcjs.w.call(void 0, e.readFloat32(),e.readFloat32(),e.readFloat32())},vec4f(e){return _chunkVUYQ2ZIKcjs.B.call(void 0, e.readFloat32(),e.readFloat32(),e.readFloat32(),e.readFloat32())},vec2h(e){return _chunkVUYQ2ZIKcjs.s.call(void 0, e.readFloat16(),e.readFloat16())},vec3h(e){return _chunkVUYQ2ZIKcjs.x.call(void 0, e.readFloat16(),e.readFloat16(),e.readFloat16())},vec4h(e){return _chunkVUYQ2ZIKcjs.C.call(void 0, e.readFloat16(),e.readFloat16(),e.readFloat16(),e.readFloat16())},vec2i(e){return _chunkVUYQ2ZIKcjs.t.call(void 0, e.readInt32(),e.readInt32())},vec3i(e){return _chunkVUYQ2ZIKcjs.y.call(void 0, e.readInt32(),e.readInt32(),e.readInt32())},vec4i(e){return _chunkVUYQ2ZIKcjs.D.call(void 0, e.readInt32(),e.readInt32(),e.readInt32(),e.readInt32())},vec2u(e){return _chunkVUYQ2ZIKcjs.u.call(void 0, e.readUint32(),e.readUint32())},vec3u(e){return _chunkVUYQ2ZIKcjs.z.call(void 0, e.readUint32(),e.readUint32(),e.readUint32())},vec4u(e){return _chunkVUYQ2ZIKcjs.E.call(void 0, e.readUint32(),e.readUint32(),e.readUint32(),e.readUint32())},"vec2<bool>"(){throw new Error("Booleans are not host-shareable")},"vec3<bool>"(){throw new Error("Booleans are not host-shareable")},"vec4<bool>"(){throw new Error("Booleans are not host-shareable")},mat2x2f(e){return _chunkVUYQ2ZIKcjs.G.call(void 0, e.readFloat32(),e.readFloat32(),e.readFloat32(),e.readFloat32())},mat3x3f(e){let t=()=>{let r=e.readFloat32();return e.readFloat32(),r};return _chunkVUYQ2ZIKcjs.H.call(void 0, e.readFloat32(),e.readFloat32(),t(),e.readFloat32(),e.readFloat32(),t(),e.readFloat32(),e.readFloat32(),t())},mat4x4f(e){return _chunkVUYQ2ZIKcjs.I.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=_chunkA6AAWPBUcjs.Z.call(void 0, t);w(e,r);let n={};for(let[a,o]of Object.entries(t.propTypes))w(e,_chunkA6AAWPBUcjs.Z.call(void 0, o)),n[a]=$(e,o);return w(e,r),n},array(e,t){if(t.elementCount===0)throw new Error("Cannot read using a runtime-sized schema.");let r=_chunkA6AAWPBUcjs.Z.call(void 0, t),n=[];for(let a=0;a<t.elementCount;a++){w(e,r);let o=t.elementType,s=$(e,o);n.push(s)}return w(e,r),n},ptr(){throw new Error("Pointers are not host-shareable")},atomic(e,t){return $(e,t.inner)},decorated(e,t){let r=_chunkA6AAWPBUcjs._.call(void 0, t);w(e,r);let n=e.currentByteOffset,a=$(e,t.inner);return e.seekTo(n+_chunkA6AAWPBUcjs.ba.call(void 0, t)),a},uint8:e=>e.readUint8(),uint8x2:e=>_chunkVUYQ2ZIKcjs.u.call(void 0, e.readUint8(),e.readUint8()),uint8x4:e=>_chunkVUYQ2ZIKcjs.E.call(void 0, e.readUint8(),e.readUint8(),e.readUint8(),e.readUint8()),sint8:e=>e.readInt8(),sint8x2:e=>_chunkVUYQ2ZIKcjs.t.call(void 0, e.readInt8(),e.readInt8()),sint8x4:e=>_chunkVUYQ2ZIKcjs.D.call(void 0, e.readInt8(),e.readInt8(),e.readInt8(),e.readInt8()),unorm8:e=>e.readUint8()/255,unorm8x2:e=>_chunkVUYQ2ZIKcjs.r.call(void 0, e.readUint8()/255,e.readUint8()/255),unorm8x4:e=>_chunkVUYQ2ZIKcjs.B.call(void 0, e.readUint8()/255,e.readUint8()/255,e.readUint8()/255,e.readUint8()/255),snorm8:e=>(e.readUint8()-128)/127,snorm8x2:e=>_chunkVUYQ2ZIKcjs.r.call(void 0, (e.readUint8()-128)/127,(e.readUint8()-128)/127),snorm8x4:e=>_chunkVUYQ2ZIKcjs.B.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=>_chunkVUYQ2ZIKcjs.u.call(void 0, e.readUint16(),e.readUint16()),uint16x4:e=>_chunkVUYQ2ZIKcjs.E.call(void 0, e.readUint16(),e.readUint16(),e.readUint16(),e.readUint16()),sint16:e=>e.readInt16(),sint16x2:e=>_chunkVUYQ2ZIKcjs.t.call(void 0, e.readInt16(),e.readInt16()),sint16x4:e=>_chunkVUYQ2ZIKcjs.D.call(void 0, e.readInt16(),e.readInt16(),e.readInt16(),e.readInt16()),unorm16:e=>e.readUint16()/65535,unorm16x2:e=>_chunkVUYQ2ZIKcjs.r.call(void 0, e.readUint16()/65535,e.readUint16()/65535),unorm16x4:e=>_chunkVUYQ2ZIKcjs.B.call(void 0, e.readUint16()/65535,e.readUint16()/65535,e.readUint16()/65535,e.readUint16()/65535),snorm16:e=>(e.readUint16()-32768)/32767,snorm16x2:e=>_chunkVUYQ2ZIKcjs.r.call(void 0, le.snorm16(e),le.snorm16(e)),snorm16x4:e=>_chunkVUYQ2ZIKcjs.B.call(void 0, le.snorm16(e),le.snorm16(e),le.snorm16(e),le.snorm16(e)),float16(e){return e.readFloat16()},float16x2:e=>_chunkVUYQ2ZIKcjs.r.call(void 0, e.readFloat16(),e.readFloat16()),float16x4:e=>_chunkVUYQ2ZIKcjs.B.call(void 0, e.readFloat16(),e.readFloat16(),e.readFloat16(),e.readFloat16()),float32:e=>e.readFloat32(),float32x2:e=>_chunkVUYQ2ZIKcjs.r.call(void 0, e.readFloat32(),e.readFloat32()),float32x3:e=>_chunkVUYQ2ZIKcjs.w.call(void 0, e.readFloat32(),e.readFloat32(),e.readFloat32()),float32x4:e=>_chunkVUYQ2ZIKcjs.B.call(void 0, e.readFloat32(),e.readFloat32(),e.readFloat32(),e.readFloat32()),uint32:e=>e.readUint32(),uint32x2:e=>_chunkVUYQ2ZIKcjs.u.call(void 0, e.readUint32(),e.readUint32()),uint32x3:e=>_chunkVUYQ2ZIKcjs.z.call(void 0, e.readUint32(),e.readUint32(),e.readUint32()),uint32x4:e=>_chunkVUYQ2ZIKcjs.E.call(void 0, e.readUint32(),e.readUint32(),e.readUint32(),e.readUint32()),sint32:e=>e.readInt32(),sint32x2:e=>_chunkVUYQ2ZIKcjs.t.call(void 0, e.readInt32(),e.readInt32()),sint32x3:e=>_chunkVUYQ2ZIKcjs.y.call(void 0, e.readInt32(),e.readInt32(),e.readInt32()),sint32x4:e=>_chunkVUYQ2ZIKcjs.D.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 _chunkVUYQ2ZIKcjs.B.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 _chunkVUYQ2ZIKcjs.B.call(void 0, n,r,t,a)},unstruct(e,t){let r={};for(let[n,a]of Object.entries(t.propTypes))r[n]=$(e,a);return r},disarray(e,t){let r=_chunkA6AAWPBUcjs.Z.call(void 0, t),n=[];for(let a=0;a<t.elementCount;a++)w(e,r),n.push($(e,t.elementType));return w(e,r),n},"loose-decorated"(e,t){w(e,_chunkA6AAWPBUcjs._.call(void 0, t));let r=e.currentByteOffset,n=$(e,t.inner);return e.seekTo(r+_chunkA6AAWPBUcjs.ba.call(void 0, t)),n}};function $(e,t){let r=le[t.type];if(!r)throw new Error(`Cannot read data of type '${t.type}'.`);return r(e,t)}function an(e,t){let r=_chunkA6AAWPBUcjs.ba.call(void 0, e);if(r===0||t===void 0||t===null)return[];let n=new ArrayBuffer(r),a=new (0, _typedbinary.BufferWriter)(n),o=[];function s(u,d,m,T){if(d!=null){if(_chunkVUYQ2ZIKcjs.$.call(void 0, u)||_chunkA6AAWPBUcjs.e.call(void 0, u)){let f=et(u);for(let[g,D]of Object.entries(f)){let S=u.propTypes[g];if(!S)continue;let I=d[g];I!==void 0&&s(S,I,m+D.offset,_nullishCoalesce(D.padding, () => (T)))}return}if(_chunkVUYQ2ZIKcjs._.call(void 0, u)||_chunkA6AAWPBUcjs.d.call(void 0, u)){let f=u,g=_chunkA6AAWPBUcjs.aa.call(void 0, _chunkA6AAWPBUcjs.ba.call(void 0, f.elementType),_chunkA6AAWPBUcjs.Z.call(void 0, f.elementType));if(!Array.isArray(d))throw new Error("Partial value for array must be an array");let D=d;D.sort((S,I)=>S.idx-I.idx);for(let{idx:S,value:I}of D)s(f.elementType,I,m+S*g,g-_chunkA6AAWPBUcjs.ba.call(void 0, f.elementType))}else{let f=_chunkA6AAWPBUcjs.ba.call(void 0, u);a.seekTo(m),X(a,u,d),o.push({start:m,end:m+f,padding:T})}}}if(s(e,t,0),o.length===0)return[];let i=[],p=o[0];for(let u=1;u<o.length;u++){let d=o[u];if(!d||!p)throw new Error("Internal error: missing segment");d.start===p.end+(_nullishCoalesce(p.padding, () => (0)))?(p.end=d.end,p.padding=d.padding):(i.push({data:new Uint8Array(n,p.start,p.end-p.start)}),p=d)}if(!p)throw new Error("Internal error: missing segment");return i.push({data:new Uint8Array(n,p.start,p.end-p.start)}),i}function de(e){return!!_optionalChain([e, 'optionalAccess', _35 => _35.usableAsStorage])}var $e=class e extends Error{constructor(t){super(`Resource '${_nullishCoalesce(t.label, () => ("<unnamed>"))}' cannot be bound as 'storage'. Use .$usage('storage') to allow it.`),Object.setPrototypeOf(this,e.prototype)}};function at(e){return!!e.usableAsUniform}var pn={uniform:"uniform",mutable:"storage, read_write",readonly:"storage, read"},Oe= (_class2 =class{constructor(t,r){;_class2.prototype.__init2.call(this);this.usage=t;this.buffer=r;this[_chunkVUYQ2ZIKcjs.n]={dataType:r.dataType}}__init2() {this.resourceType="buffer-usage"}get label(){return this.buffer.label}$name(t){return this.buffer.$name(t),this}"~resolve"(t){let r=t.names.makeUnique(this.label),{group:n,binding:a}=t.allocateFixedEntry(this.usage==="uniform"?{uniform:this.buffer.dataType}:{storage:this.buffer.dataType,access:this.usage},this.buffer),o=pn[this.usage];return t.addDeclaration(`@group(${n}) @binding(${a}) var<${o}> ${r}: ${t.resolve(this.buffer.dataType)};`),r}write(t){this.buffer.write(t)}toString(){return`${this.usage}:${_nullishCoalesce(this.label, () => ("<unnamed>"))}`}get value(){if(!_chunkVUYQ2ZIKcjs.m.call(void 0, ))throw new Error("Cannot access buffer's value directly in JS.");return new Proxy({"~resolve":t=>t.resolve(this),toString:()=>`.value:${_nullishCoalesce(this.label, () => ("<unnamed>"))}`,[_chunkVUYQ2ZIKcjs.n]:{dataType:this.buffer.dataType}},M)}}, _class2),Ge= (_class3 =class{constructor(t,r,n){;_class3.prototype.__init3.call(this);this.usage=t;this.dataType=r;this._membership=n;this[_chunkVUYQ2ZIKcjs.n]={dataType:r}}__init3() {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=pn[this.usage];return t.addDeclaration(`@group(${n}) @binding(${this._membership.idx}) var<${a}> ${r}: ${t.resolve(this.dataType)};`),r}toString(){return`${this.usage}:${_nullishCoalesce(this.label, () => ("<unnamed>"))}`}get value(){if(!_chunkVUYQ2ZIKcjs.m.call(void 0, ))throw new Error("Cannot access buffer's value directly in JS.");return new Proxy({"~resolve":t=>t.resolve(this),toString:()=>`.value:${_nullishCoalesce(this.label, () => ("<unnamed>"))}`,[_chunkVUYQ2ZIKcjs.n]:{dataType:this.dataType}},M)}}, _class3),on=new WeakMap;function zt(e){if(!de(e))throw new Error(`Cannot pass ${e} to asMutable, as it is not allowed to be used as storage. To allow it, call .$usage('storage') when creating the buffer.`);let t=on.get(e);return t||(t=new Oe("mutable",e),on.set(e,t)),t}var sn=new WeakMap;function Kt(e){if(!de(e))throw new Error(`Cannot pass ${e} to asReadonly, as it is not allowed to be used as storage. To allow it, call .$usage('storage') when creating the buffer.`);let t=sn.get(e);return t||(t=new Oe("readonly",e),sn.set(e,t)),t}var un=new WeakMap;function qt(e){if(!at(e))throw new Error(`Cannot pass ${e} to asUniform, as it is not allowed to be used as a uniform. To allow it, call .$usage('uniform') when creating the buffer.`);let t=un.get(e);return t||(t=new Oe("uniform",e),un.set(e,t)),t}var sa={uniform:qt,mutable:zt,readonly:Kt};function dn(e,t,r){return _chunkVUYQ2ZIKcjs.Z.call(void 0, t)?new ot(e,t,r):new ot(e,t,r,["storage","uniform"])}function Z(e){return e.resourceType==="buffer"}function ia(e){return!!e.usableAsVertex}var ln=_typedbinary.getSystemEndianness.call(void 0, ),ot= (_class4 =class{constructor(t,r,n,a){;_class4.prototype.__init4.call(this);_class4.prototype.__init5.call(this);_class4.prototype.__init6.call(this);_class4.prototype.__init7.call(this);_class4.prototype.__init8.call(this);_class4.prototype.__init9.call(this);_class4.prototype.__init10.call(this);this._group=t;this.dataType=r;this.initialOrBuffer=n;this._disallowedUsages=a;$r(n)?(this._ownBuffer=!1,this._buffer=n):(this._ownBuffer=!0,this.initial=n)}__init4() {this.resourceType="buffer"}__init5() {this.flags=GPUBufferUsage.COPY_DST|GPUBufferUsage.COPY_SRC}__init6() {this._buffer=null}__init7() {this._destroyed=!1}__init8() {this.usableAsUniform=!1}__init9() {this.usableAsStorage=!1}__init10() {this.usableAsVertex=!1}get label(){return this._label}get buffer(){let t=this._group.device;if(this._destroyed)throw new Error("This buffer has been destroyed");if(!this._buffer&&(this._buffer=t.createBuffer({size:_chunkA6AAWPBUcjs.ba.call(void 0, this.dataType),usage:this.flags,mappedAtCreation:!!this.initial,label:_nullishCoalesce(this.label, () => ("<unnamed>"))}),this.initial)){let r=new (0, _typedbinary.BufferWriter)(this._buffer.getMappedRange());X(r,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){for(let r of t){if(_optionalChain([this, 'access', _36 => _36._disallowedUsages, 'optionalAccess', _37 => _37.includes, 'call', _38 => _38(r)]))throw new Error(`Buffer of type ${this.dataType.type} cannot be used as ${r}`);this.flags|=r==="uniform"?GPUBufferUsage.UNIFORM:0,this.flags|=r==="storage"?GPUBufferUsage.STORAGE:0,this.flags|=r==="vertex"?GPUBufferUsage.VERTEX:0,this.usableAsUniform=this.usableAsUniform||r==="uniform",this.usableAsStorage=this.usableAsStorage||r==="storage",this.usableAsVertex=this.usableAsVertex||r==="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)}compileWriter(){if(rt)nt(this.dataType);else throw new Error("This environment does not allow eval")}write(t){let r=this.buffer,n=this._group.device;if(r.mapState==="mapped"){let o=r.getMappedRange();if(rt){nt(this.dataType)(new DataView(o),0,t,ln==="little");return}X(new (0, _typedbinary.BufferWriter)(o),this.dataType,t);return}let a=_chunkA6AAWPBUcjs.ba.call(void 0, this.dataType);this._hostBuffer||(this._hostBuffer=new ArrayBuffer(a)),this._group.flush(),rt?nt(this.dataType)(new DataView(this._hostBuffer),0,t,ln==="little"):X(new (0, _typedbinary.BufferWriter)(this._hostBuffer),this.dataType,t),n.queue.writeBuffer(r,0,this._hostBuffer,0,a)}writePartial(t){let r=this.buffer,n=this._group.device,a=an(this.dataType,t);if(r.mapState==="mapped"){let o=r.getMappedRange(),s=new Uint8Array(o);for(let i of a)s.set(i.data,i.data.byteOffset)}else for(let o of a)n.queue.writeBuffer(r,o.data.byteOffset,o.data,0,o.data.byteLength)}copyFrom(t){if(this.buffer.mapState==="mapped")throw new Error("Cannot copy to a mapped buffer.");let r=_chunkA6AAWPBUcjs.ba.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 s=t.getMappedRange();return $(new (0, _typedbinary.BufferReader)(s),this.dataType)}if(t.usage&GPUBufferUsage.MAP_READ){await t.mapAsync(GPUMapMode.READ);let s=t.getMappedRange(),i=$(new (0, _typedbinary.BufferReader)(s),this.dataType);return t.unmap(),i}let n=r.createBuffer({size:_chunkA6AAWPBUcjs.ba.call(void 0, this.dataType),usage:GPUBufferUsage.COPY_DST|GPUBufferUsage.MAP_READ}),a=r.createCommandEncoder();a.copyBufferToBuffer(t,0,n,0,_chunkA6AAWPBUcjs.ba.call(void 0, this.dataType)),r.queue.submit([a.finish()]),await r.queue.onSubmittedWorkDone(),await n.mapAsync(GPUMapMode.READ,0,_chunkA6AAWPBUcjs.ba.call(void 0, this.dataType));let o=$(new (0, _typedbinary.BufferReader)(n.getMappedRange()),this.dataType);return n.unmap(),n.destroy(),o}as(t){return _optionalChain([sa, 'access', _39 => _39[t], 'optionalCall', _40 => _40(this)])}destroy(){this._destroyed||(this._destroyed=!0,this._ownBuffer&&_optionalChain([this, 'access', _41 => _41._buffer, 'optionalAccess', _42 => _42.destroy, 'call', _43 => _43()]))}toString(){return`buffer:${_nullishCoalesce(this._label, () => ("<unnamed>"))}`}}, _class4);function mn(e){return new Yt(e)}function gn(e){return new Qt(e)}function We(e){return _optionalChain([e, 'optionalAccess', _44 => _44.resourceType])==="sampler"}function Me(e){return _optionalChain([e, 'optionalAccess', _45 => _45.resourceType])==="sampler-comparison"}var st= (_class5 =class{constructor(t){;_class5.prototype.__init11.call(this);this._membership=t}__init11() {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(){return`${this.resourceType}:${_nullishCoalesce(this.label, () => ("<unnamed>"))}`}}, _class5),it= (_class6 =class{constructor(t){;_class6.prototype.__init12.call(this);this._membership=t}__init12() {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(){return`${this.resourceType}:${_nullishCoalesce(this.label, () => ("<unnamed>"))}`}}, _class6),Yt= (_class7 =class{constructor(t){;_class7.prototype.__init13.call(this);_class7.prototype.__init14.call(this);this._props=t;this._filtering=t.minFilter==="linear"||t.magFilter==="linear"||t.mipmapFilter==="linear"}__init13() {this.resourceType="sampler"}__init14() {this._sampler=null}unwrap(t){return this._sampler||(this._sampler=t.device.createSampler({...this._props,label:_nullishCoalesce(this._label, () => ("<unnamed>"))})),this._sampler}get label(){return this._label}$name(t){return this._label=t,this}"~resolve"(t){let r=t.names.makeUnique(this._label),{group:n,binding:a}=t.allocateFixedEntry({sampler:this._filtering?"filtering":"non-filtering"},this);return t.addDeclaration(`@group(${n}) @binding(${a}) var ${r}: sampler;`),r}toString(){return`${this.resourceType}:${_nullishCoalesce(this.label, () => ("<unnamed>"))}`}}, _class7),Qt= (_class8 =class{constructor(t){;_class8.prototype.__init15.call(this);_class8.prototype.__init16.call(this);this._props=t}__init15() {this.resourceType="sampler-comparison"}__init16() {this._sampler=null}unwrap(t){return this._sampler||(this._sampler=t.device.createSampler({...this._props,label:_nullishCoalesce(this._label, () => ("<unnamed>"))})),this._sampler}get label(){return this._label}$name(t){return this._label=t,this}"~resolve"(t){let r=t.names.makeUnique(this.label),{group:n,binding:a}=t.allocateFixedEntry({sampler:"comparison"},this);return t.addDeclaration(`@group(${n}) @binding(${a}) var ${r}: sampler_comparison;`),r}toString(){return`${this.resourceType}:${_nullishCoalesce(this.label, () => ("<unnamed>"))}`}}, _class8);var ut= (_class9 =class{constructor(t){;_class9.prototype.__init17.call(this);this._membership=t}__init17() {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(){return`${this.resourceType}:${_nullishCoalesce(this.label, () => ("<unnamed>"))}`}}, _class9);var fn={r8unorm:_chunkVUYQ2ZIKcjs.P,r8snorm:_chunkVUYQ2ZIKcjs.P,r8uint:_chunkVUYQ2ZIKcjs.N,r8sint:_chunkVUYQ2ZIKcjs.O,r16uint:_chunkVUYQ2ZIKcjs.N,r16sint:_chunkVUYQ2ZIKcjs.O,r16float:_chunkVUYQ2ZIKcjs.P,rg8unorm:_chunkVUYQ2ZIKcjs.P,rg8snorm:_chunkVUYQ2ZIKcjs.P,rg8uint:_chunkVUYQ2ZIKcjs.N,rg8sint:_chunkVUYQ2ZIKcjs.O,r32uint:_chunkVUYQ2ZIKcjs.N,r32sint:_chunkVUYQ2ZIKcjs.O,r32float:_chunkVUYQ2ZIKcjs.P,rg16uint:_chunkVUYQ2ZIKcjs.N,rg16sint:_chunkVUYQ2ZIKcjs.O,rg16float:_chunkVUYQ2ZIKcjs.P,rgba8unorm:_chunkVUYQ2ZIKcjs.P,"rgba8unorm-srgb":_chunkVUYQ2ZIKcjs.P,rgba8snorm:_chunkVUYQ2ZIKcjs.P,rgba8uint:_chunkVUYQ2ZIKcjs.N,rgba8sint:_chunkVUYQ2ZIKcjs.O,bgra8unorm:_chunkVUYQ2ZIKcjs.P,"bgra8unorm-srgb":_chunkVUYQ2ZIKcjs.P,rgb9e5ufloat:_chunkVUYQ2ZIKcjs.P,rgb10a2uint:_chunkVUYQ2ZIKcjs.N,rgb10a2unorm:_chunkVUYQ2ZIKcjs.P,rg11b10ufloat:_chunkVUYQ2ZIKcjs.P,rg32uint:_chunkVUYQ2ZIKcjs.N,rg32sint:_chunkVUYQ2ZIKcjs.O,rg32float:_chunkVUYQ2ZIKcjs.P,rgba16uint:_chunkVUYQ2ZIKcjs.N,rgba16sint:_chunkVUYQ2ZIKcjs.O,rgba16float:_chunkVUYQ2ZIKcjs.P,rgba32uint:_chunkVUYQ2ZIKcjs.N,rgba32sint:_chunkVUYQ2ZIKcjs.O,rgba32float:_chunkVUYQ2ZIKcjs.P,stencil8:_chunkVUYQ2ZIKcjs.P,depth16unorm:_chunkVUYQ2ZIKcjs.P,depth24plus:_chunkVUYQ2ZIKcjs.P,"depth24plus-stencil8":_chunkVUYQ2ZIKcjs.P,depth32float:_chunkVUYQ2ZIKcjs.P,"depth32float-stencil8":_chunkVUYQ2ZIKcjs.P,"bc1-rgba-unorm":_chunkVUYQ2ZIKcjs.P,"bc1-rgba-unorm-srgb":_chunkVUYQ2ZIKcjs.P,"bc2-rgba-unorm":_chunkVUYQ2ZIKcjs.P,"bc2-rgba-unorm-srgb":_chunkVUYQ2ZIKcjs.P,"bc3-rgba-unorm":_chunkVUYQ2ZIKcjs.P,"bc3-rgba-unorm-srgb":_chunkVUYQ2ZIKcjs.P,"bc4-r-unorm":_chunkVUYQ2ZIKcjs.P,"bc4-r-snorm":_chunkVUYQ2ZIKcjs.P,"bc5-rg-unorm":_chunkVUYQ2ZIKcjs.P,"bc5-rg-snorm":_chunkVUYQ2ZIKcjs.P,"bc6h-rgb-ufloat":_chunkVUYQ2ZIKcjs.P,"bc6h-rgb-float":_chunkVUYQ2ZIKcjs.P,"bc7-rgba-unorm":_chunkVUYQ2ZIKcjs.P,"bc7-rgba-unorm-srgb":_chunkVUYQ2ZIKcjs.P,"etc2-rgb8unorm":_chunkVUYQ2ZIKcjs.P,"etc2-rgb8unorm-srgb":_chunkVUYQ2ZIKcjs.P,"etc2-rgb8a1unorm":_chunkVUYQ2ZIKcjs.P,"etc2-rgb8a1unorm-srgb":_chunkVUYQ2ZIKcjs.P,"etc2-rgba8unorm":_chunkVUYQ2ZIKcjs.P,"etc2-rgba8unorm-srgb":_chunkVUYQ2ZIKcjs.P,"eac-r11unorm":_chunkVUYQ2ZIKcjs.P,"eac-r11snorm":_chunkVUYQ2ZIKcjs.P,"eac-rg11unorm":_chunkVUYQ2ZIKcjs.P,"eac-rg11snorm":_chunkVUYQ2ZIKcjs.P,"astc-4x4-unorm":_chunkVUYQ2ZIKcjs.P,"astc-4x4-unorm-srgb":_chunkVUYQ2ZIKcjs.P,"astc-5x4-unorm":_chunkVUYQ2ZIKcjs.P,"astc-5x4-unorm-srgb":_chunkVUYQ2ZIKcjs.P,"astc-5x5-unorm":_chunkVUYQ2ZIKcjs.P,"astc-5x5-unorm-srgb":_chunkVUYQ2ZIKcjs.P,"astc-6x5-unorm":_chunkVUYQ2ZIKcjs.P,"astc-6x5-unorm-srgb":_chunkVUYQ2ZIKcjs.P,"astc-6x6-unorm":_chunkVUYQ2ZIKcjs.P,"astc-6x6-unorm-srgb":_chunkVUYQ2ZIKcjs.P,"astc-8x5-unorm":_chunkVUYQ2ZIKcjs.P,"astc-8x5-unorm-srgb":_chunkVUYQ2ZIKcjs.P,"astc-8x6-unorm":_chunkVUYQ2ZIKcjs.P,"astc-8x6-unorm-srgb":_chunkVUYQ2ZIKcjs.P,"astc-8x8-unorm":_chunkVUYQ2ZIKcjs.P,"astc-8x8-unorm-srgb":_chunkVUYQ2ZIKcjs.P,"astc-10x5-unorm":_chunkVUYQ2ZIKcjs.P,"astc-10x5-unorm-srgb":_chunkVUYQ2ZIKcjs.P,"astc-10x6-unorm":_chunkVUYQ2ZIKcjs.P,"astc-10x6-unorm-srgb":_chunkVUYQ2ZIKcjs.P,"astc-10x8-unorm":_chunkVUYQ2ZIKcjs.P,"astc-10x8-unorm-srgb":_chunkVUYQ2ZIKcjs.P,"astc-10x10-unorm":_chunkVUYQ2ZIKcjs.P,"astc-10x10-unorm-srgb":_chunkVUYQ2ZIKcjs.P,"astc-12x10-unorm":_chunkVUYQ2ZIKcjs.P,"astc-12x10-unorm-srgb":_chunkVUYQ2ZIKcjs.P,"astc-12x12-unorm":_chunkVUYQ2ZIKcjs.P,"astc-12x12-unorm-srgb":_chunkVUYQ2ZIKcjs.P},Ne={rgba8unorm:_chunkVUYQ2ZIKcjs.B,rgba8snorm:_chunkVUYQ2ZIKcjs.B,rgba8uint:_chunkVUYQ2ZIKcjs.E,rgba8sint:_chunkVUYQ2ZIKcjs.D,rgba16uint:_chunkVUYQ2ZIKcjs.E,rgba16sint:_chunkVUYQ2ZIKcjs.D,rgba16float:_chunkVUYQ2ZIKcjs.B,r32uint:_chunkVUYQ2ZIKcjs.E,r32sint:_chunkVUYQ2ZIKcjs.D,r32float:_chunkVUYQ2ZIKcjs.B,rg32uint:_chunkVUYQ2ZIKcjs.E,rg32sint:_chunkVUYQ2ZIKcjs.D,rg32float:_chunkVUYQ2ZIKcjs.B,rgba32uint:_chunkVUYQ2ZIKcjs.E,rgba32sint:_chunkVUYQ2ZIKcjs.D,rgba32float:_chunkVUYQ2ZIKcjs.B,bgra8unorm:_chunkVUYQ2ZIKcjs.B},Tn={f32:"float",u32:"uint",i32:"sint"},yn={float:_chunkVUYQ2ZIKcjs.P,"unfilterable-float":_chunkVUYQ2ZIKcjs.P,uint:_chunkVUYQ2ZIKcjs.N,sint:_chunkVUYQ2ZIKcjs.O,depth:_chunkVUYQ2ZIKcjs.P};function cn(e,t){return new Xt(e,t)}function q(e){return _optionalChain([e, 'optionalAccess', _46 => _46.resourceType])==="texture"}function je(e){return _optionalChain([e, 'optionalAccess', _47 => _47.resourceType])==="texture-storage-view"}function ze(e){return _optionalChain([e, 'optionalAccess', _48 => _48.resourceType])==="texture-sampled-view"}var xn={mutable:"read_write",readonly:"read",writeonly:"write"},Xt= (_class10 =class{constructor(t,r){;_class10.prototype.__init18.call(this);_class10.prototype.__init19.call(this);_class10.prototype.__init20.call(this);_class10.prototype.__init21.call(this);_class10.prototype.__init22.call(this);_class10.prototype.__init23.call(this);_class10.prototype.__init24.call(this);this.props=t;this._branch=r}__init18() {this.resourceType="texture"}__init19() {this.usableAsSampled=!1}__init20() {this.usableAsStorage=!1}__init21() {this.usableAsRender=!1}__init22() {this._destroyed=!1}__init23() {this._flags=GPUTextureUsage.COPY_DST|GPUTextureUsage.COPY_SRC}__init24() {this._texture=null}get label(){return this._label}$name(t){return this._label=t,this}unwrap(){if(this._destroyed)throw new Error("This texture has been destroyed");return this._texture||(this._texture=this._branch.device.createTexture({label:_nullishCoalesce(this._label, () => ("<unnamed>")),format:this.props.format,size:this.props.size,usage:this._flags,dimension:_nullishCoalesce(this.props.dimension, () => ("2d")),viewFormats:_nullishCoalesce(this.props.viewFormats, () => ([])),mipLevelCount:_nullishCoalesce(this.props.mipLevelCount, () => (1)),sampleCount:_nullishCoalesce(this.props.sampleCount, () => (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||=r,this.usableAsSampled||=n,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){if(!this.usableAsStorage)throw new Error("Unusable as storage");let n=_nullishCoalesce(_optionalChain([t, 'optionalAccess', _49 => _49.format]), () => (this.props.format)),a=Ne[n];return _chunkVUYQ2ZIKcjs.a.call(void 0, !!a,`Unsupported storage texture format: ${n}`),new Zt(_nullishCoalesce(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){if(!this.usableAsSampled)throw new Error("Unusable as sampled");let r=_nullishCoalesce(_optionalChain([t, 'optionalAccess', _50 => _50.format]), () => (this.props.format));if(!Ne[r])throw new Error(`Unsupported storage texture format: ${r}`);return new er(t,this)}destroy(){this._destroyed||(this._destroyed=!0,_optionalChain([this, 'access', _51 => _51._texture, 'optionalAccess', _52 => _52.destroy, 'call', _53 => _53()]))}}, _class10),dt={"1d":"1d","2d":"2d","2d-array":"2d_array",cube:"cube","cube-array":"cube_array","3d":"3d"},Zt= (_class11 =class{constructor(t,r,n){;_class11.prototype.__init25.call(this);this.access=r;this._texture=n;this.dimension=_nullishCoalesce(_nullishCoalesce(_optionalChain([t, 'optionalAccess', _54 => _54.dimension]), () => (n.props.dimension)), () => ("2d")),this._format=_nullishCoalesce(_optionalChain([t, 'optionalAccess', _55 => _55.format]), () => (n.props.format)),this.texelDataType=Ne[this._format]}__init25() {this.resourceType="texture-storage-view"}get label(){return this._texture.label}$name(t){return this._texture.$name(t),this}unwrap(){return this._view||(this._view=this._texture.unwrap().createView({label:`${_nullishCoalesce(this.label, () => ("<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_${dt[this.dimension]}`;return t.addDeclaration(`@group(${n}) @binding(${a}) var ${r}: ${o}<${this._format}, ${xn[this.access]}>;`),r}toString(){return`${this.resourceType}:${_nullishCoalesce(this.label, () => ("<unnamed>"))}`}}, _class11),pt= (_class12 =class{constructor(t,r,n,a){;_class12.prototype.__init26.call(this);this._format=t;this.dimension=r;this.access=n;this._membership=a;this.texelDataType=Ne[this._format]}__init26() {this.resourceType="texture-storage-view"}get label(){return this._membership.key}"~resolve"(t){let r=t.names.makeUnique(this.label),n=t.allocateLayoutEntry(this._membership.layout),a=`texture_storage_${dt[this.dimension]}`;return t.addDeclaration(`@group(${n}) @binding(${this._membership.idx}) var ${r}: ${a}<${this._format}, ${xn[this.access]}>;`),r}toString(){return`${this.resourceType}:${_nullishCoalesce(this.label, () => ("<unnamed>"))}`}}, _class12),er= (_class13 =class{constructor(t,r){;_class13.prototype.__init27.call(this);this._props=t;this._texture=r;this.dimension=_nullishCoalesce(_nullishCoalesce(_optionalChain([t, 'optionalAccess', _56 => _56.dimension]), () => (r.props.dimension)), () => ("2d")),this._format=_nullishCoalesce(_optionalChain([t, 'optionalAccess', _57 => _57.format]), () => (r.props.format)),this.channelDataType=fn[this._format]}__init27() {this.resourceType="texture-sampled-view"}get label(){return this._texture.label}$name(t){return this._texture.$name(t),this}unwrap(){return this._view||(this._view=this._texture.unwrap().createView({label:`${_nullishCoalesce(this.label, () => ("<unnamed>"))} - View`,...this._props})),this._view}"~resolve"(t){let r=t.names.makeUnique(this.label),n=(_nullishCoalesce(this._texture.props.sampleCount, () => (1)))>1,{group:a,binding:o}=t.allocateFixedEntry({texture:Tn[this.channelDataType.type],viewDimension:this.dimension,multisampled:n},this),s=n?"texture_multisampled_2d":`texture_${dt[this.dimension]}`;return t.addDeclaration(`@group(${a}) @binding(${o}) var ${r}: ${s}<${t.resolve(this.channelDataType)}>;`),r}toString(){return`${this.resourceType}:${_nullishCoalesce(this.label, () => ("<unnamed>"))}`}}, _class13),lt= (_class14 =class{constructor(t,r,n,a){;_class14.prototype.__init28.call(this);this.dimension=r;this._multisampled=n;this._membership=a;this.channelDataType=yn[t]}__init28() {this.resourceType="texture-sampled-view"}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_${dt[this.dimension]}`;return t.addDeclaration(`@group(${n}) @binding(${this._membership.idx}) var ${r}: ${a}<${t.resolve(this.channelDataType)}>;`),r}toString(){return`${this.resourceType}:${_nullishCoalesce(this.label, () => ("<unnamed>"))}`}}, _class14);function tr(e){return!!_optionalChain([e, 'optionalAccess', _58 => _58.usableAsSampled])}function ua(e){return!!_optionalChain([e, 'optionalAccess', _59 => _59.usableAsRender])}var mt=class e extends Error{constructor(t){super(`Resource '${_nullishCoalesce(t.label, () => ("<unnamed>"))}' cannot be bound as 'sampled'. Use .$usage('sampled') to allow it.`),Object.setPrototypeOf(this,e.prototype)}};function gt(e){return new nr(e)}function ft(e){return!!e&&e.resourceType==="bind-group-layout"}function ar(e){return!!e&&e.resourceType==="bind-group"}var rr=class e extends Error{constructor(t,r){super(`Bind group '${_nullishCoalesce(t, () => ("<unnamed>"))}' is missing a required binding '${r}'`),Object.setPrototypeOf(this,e.prototype)}},bn=["compute"],ve=["compute","vertex","fragment"],nr= (_class15 =class{constructor(t){;_class15.prototype.__init29.call(this);_class15.prototype.__init30.call(this);_class15.prototype.__init31.call(this);_class15.prototype.__init32.call(this);this.entries=t;let r=0;for(let[n,a]of Object.entries(t)){if(a===null){r++;continue}let o={idx:r,key:n,layout:this};if("uniform"in a&&(this.bound[n]=new Ge("uniform",a.uniform,o)),"storage"in a){let s="type"in a.storage?a.storage:a.storage(0);this.bound[n]=new Ge(_nullishCoalesce(a.access, () => ("readonly")),s,o)}"texture"in a&&(this.bound[n]=new lt(a.texture,_nullishCoalesce(a.viewDimension, () => ("2d")),_nullishCoalesce(a.multisampled, () => (!1)),o)),"storageTexture"in a&&(this.bound[n]=new pt(a.storageTexture,_nullishCoalesce(a.viewDimension, () => ("2d")),_nullishCoalesce(a.access, () => ("writeonly")),o)),"externalTexture"in a&&(this.bound[n]=new ut(o)),"sampler"in a&&(a.sampler==="comparison"?this.bound[n]=new it(o):this.bound[n]=new st(o)),"texture"in a||"storageTexture"in a||"externalTexture"in a||"sampler"in a?this.value[n]=this.bound[n]:Object.defineProperty(this.value,n,{get:()=>this.bound[n].value}),r++}}__init29() {this.resourceType="bind-group-layout"}__init30() {this.bound={}}__init31() {this.value={}}__init32() {this.$=this.value}toString(){return`bindGroupLayout:${_nullishCoalesce(this._label, () => ("<unnamed>"))}`}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){return t.device.createBindGroupLayout({label:_nullishCoalesce(this.label, () => ("<unnamed>")),entries:Object.values(this.entries).map((n,a)=>{if(n===null)return null;let o=n.visibility,s={binding:a,visibility:0};if("uniform"in n)o=_nullishCoalesce(o, () => (ve)),s.buffer={type:"uniform"};else if("storage"in n)o=_nullishCoalesce(o, () => ((n.access==="mutable"?bn:ve))),s.buffer={type:n.access==="mutable"?"storage":"read-only-storage"};else if("sampler"in n)o=_nullishCoalesce(o, () => (ve)),s.sampler={type:n.sampler};else if("texture"in n)o=_nullishCoalesce(o, () => (ve)),s.texture={sampleType:n.texture,viewDimension:_nullishCoalesce(n.viewDimension, () => ("2d")),multisampled:_nullishCoalesce(n.multisampled, () => (!1))};else if("storageTexture"in n){let i=_nullishCoalesce(n.access, () => ("writeonly"));o=_nullishCoalesce(o, () => ((i==="readonly"?ve:bn))),s.storageTexture={format:n.storageTexture,access:{mutable:"read-write",readonly:"read-only",writeonly:"write-only"}[i],viewDimension:_nullishCoalesce(n.viewDimension, () => ("2d"))}}else"externalTexture"in n&&(o=_nullishCoalesce(o, () => (ve)),s.externalTexture={});return _optionalChain([o, 'optionalAccess', _60 => _60.includes, 'call', _61 => _61("compute")])&&(s.visibility|=GPUShaderStage.COMPUTE),_optionalChain([o, 'optionalAccess', _62 => _62.includes, 'call', _63 => _63("vertex")])&&(s.visibility|=GPUShaderStage.VERTEX),_optionalChain([o, 'optionalAccess', _64 => _64.includes, 'call', _65 => _65("fragment")])&&(s.visibility|=GPUShaderStage.FRAGMENT),s}).filter(n=>n!==null)})}}, _class15),De= (_class16 =class{constructor(t,r){;_class16.prototype.__init33.call(this);this.layout=t;this.entries=r;for(let n of Object.keys(t.entries))if(t.entries[n]!==null&&!(n in r))throw new rr(t.label,n)}__init33() {this.resourceType="bind-group"}unwrap(t){return t.device.createBindGroup({label:_nullishCoalesce(this.layout.label, () => ("<unnamed>")),layout:t.unwrap(this.layout),entries:Object.entries(this.layout.entries).map(([n,a],o)=>{if(a===null)return null;let s=this.entries[n];if(s===void 0)throw new Error(`'${n}' is a resource required to populate bind group layout '${_nullishCoalesce(this.layout.label, () => ("<unnamed>"))}'.`);if("uniform"in a){let i;if(Z(s)){if(!at(s))throw new (0, _chunkVUYQ2ZIKcjs.d)(s);i={buffer:t.unwrap(s)}}else i={buffer:s};return{binding:o,resource:i}}if("storage"in a){let i;if(Z(s)){if(!de(s))throw new $e(s);i={buffer:t.unwrap(s)}}else i={buffer:s};return{binding:o,resource:i}}if("texture"in a){let i;if(q(s)){if(!tr(s))throw new mt(s);i=t.unwrap(s.createView("sampled"))}else ze(s)?i=t.unwrap(s):i=s;return{binding:o,resource:i}}if("storageTexture"in a){let i;if(q(s)){if(!de(s))throw new $e(s);a.access==="readonly"?i=t.unwrap(s.createView("readonly")):a.access==="mutable"?i=t.unwrap(s.createView("mutable")):i=t.unwrap(s.createView("writeonly"))}else je(s)?i=t.unwrap(s):i=s;return{binding:o,resource:i}}if("sampler"in a)return We(s)||Me(s)?{binding:o,resource:t.unwrap(s)}:{binding:o,resource:s};if("externalTexture"in a)return{binding:o,resource:s};throw new Error(`Malformed bind group entry: ${s} (${JSON.stringify(s)})`)}).filter(n=>n!==null)})}}, _class16);var hn="#CATCHALL#",sr= (_class17 =class{constructor() { _class17.prototype.__init34.call(this);_class17.prototype.__init35.call(this); }__init34() {this._stack=[]}__init35() {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})}popItem(){this.pop("item")}pushSlotBindings(t){this._stack.push({type:"slotBinding",bindingMap:new WeakMap(t)})}popSlotBindings(){this.pop("slotBinding")}pushFunctionScope(t,r,n){this._stack.push({type:"functionScope",args:t,returnType:r,externalMap:n})}popFunctionScope(){this.pop("functionScope")}pushBlockScope(){this._stack.push({type:"blockScope",declarations:new Map})}popBlockScope(){this.pop("blockScope")}pop(t){let r=this._stack[this._stack.length-1];if(!r||t&&r.type!==t)throw new Error(`Internal error, expected a ${t} layer to be on top.`);this._stack.pop(),t==="item"&&this._itemDepth--}readSlot(t){for(let r=this._stack.length-1;r>=0;--r){let n=this._stack[r];if(_optionalChain([n, 'optionalAccess', _66 => _66.type])==="item")n.usedSlots.add(t);else if(_optionalChain([n, 'optionalAccess', _67 => _67.type])==="slotBinding"){let a=n.bindingMap.get(t);if(a!==void 0)return a}else if(!(_optionalChain([n, 'optionalAccess', _68 => _68.type])==="functionScope"||_optionalChain([n, 'optionalAccess', _69 => _69.type])==="blockScope"))throw new Error("Unknown layer type.")}return t.defaultValue}getSnippetById(t){for(let r=this._stack.length-1;r>=0;--r){let n=this._stack[r];if(_optionalChain([n, 'optionalAccess', _70 => _70.type])==="functionScope"){let a=n.args.find(s=>s.value===t);if(a!==void 0)return a;let o=n.externalMap[t];return o!==void 0?{value:o,dataType:z(o)?he(o):A}:void 0}if(_optionalChain([n, 'optionalAccess', _71 => _71.type])==="blockScope"){let a=n.declarations.get(t);if(a!==void 0)return{value:t,dataType:a}}}}defineBlockVariable(t,r){for(let n=this._stack.length-1;n>=0;--n){let a=this._stack[n];if(_optionalChain([a, 'optionalAccess', _72 => _72.type])==="blockScope")return a.declarations.set(t,r),{value:t,dataType:r}}throw new Error("No block scope found to define a variable in.")}}, _class17),Tt=[""," "," "," "," "," "," "," "," "],or=Tt.length-1,ir= (_class18 =class{constructor() { _class18.prototype.__init36.call(this); }__init36() {this.identLevel=0}get pre(){return _nullishCoalesce(Tt[this.identLevel], () => (Tt[or].repeat(this.identLevel/or)+Tt[this.identLevel%or]))}indent(){let t=this.pre;return this.identLevel++,t}dedent(){return this.identLevel--,this.pre}}, _class18),ur= (_class19 =class{__init37() {this._memoizedResolves=new WeakMap}__init38() {this._memoizedDerived=new WeakMap}__init39() {this._indentController=new ir}__init40() {this._itemStateStack=new sr}__init41() {this._declarations=[]}__init42() {this[_chunkVUYQ2ZIKcjs.n]={itemStateStack:this._itemStateStack}}__init43() {this.bindGroupLayoutsToPlaceholderMap=new Map}__init44() {this._nextFreeLayoutPlaceholderIdx=0}__init45() {this.fixedBindings=[]}__init46() {this.callStack=[]}constructor(t){;_class19.prototype.__init37.call(this);_class19.prototype.__init38.call(this);_class19.prototype.__init39.call(this);_class19.prototype.__init40.call(this);_class19.prototype.__init41.call(this);_class19.prototype.__init42.call(this);_class19.prototype.__init43.call(this);_class19.prototype.__init44.call(this);_class19.prototype.__init45.call(this);_class19.prototype.__init46.call(this);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){let r=this._itemStateStack.getSnippetById(t);return r===void 0?null:r}defineVariable(t,r){return this._itemStateStack.defineBlockVariable(t,r)}pushBlockScope(){this._itemStateStack.pushBlockScope()}popBlockScope(){this._itemStateStack.popBlockScope()}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);try{return{head:pr(this,t.args,t.returnType),body:rn(this,t.body)}}finally{this._itemStateStack.popFunctionScope()}}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:hn,binding:n}}readSlot(t){let r=this._itemStateStack.readSlot(t);if(r===void 0)throw new (0, _chunkVUYQ2ZIKcjs.c)(t);return r}withSlots(t,r){this._itemStateStack.pushSlotBindings(t);try{return r()}finally{this._itemStateStack.popSlotBindings()}}unwrap(t){if(Ve(t))return this.withSlots(t["~providing"].pairs,()=>this.unwrap(t["~providing"].inner));let r=t;for(;;)if(E(r))r=this.readSlot(r);else if(k(r))r=this._getOrCompute(r);else break;return r}_getOrCompute(t){let r=_nullishCoalesce(this._memoizedDerived.get(t), () => ([]));this._itemStateStack.pushItem();try{for(let o of r)if([...o.slotToValueMap.entries()].every(([i,p])=>i.areEqual(this._itemStateStack.readSlot(i),p)))return o.result;_chunkVUYQ2ZIKcjs.k.call(void 0, _chunkVUYQ2ZIKcjs.h.CPU);let n;try{n=t["~compute"]()}finally{_chunkVUYQ2ZIKcjs.l.call(void 0, _chunkVUYQ2ZIKcjs.h.CPU)}let a=new Map;for(let o of this._itemStateStack.topItem.usedSlots)a.set(o,this._itemStateStack.readSlot(o));return r.push({slotToValueMap:a,result:n}),this._memoizedDerived.set(t,r),n}catch(n){throw n instanceof _chunkVUYQ2ZIKcjs.b?n.appendToTrace(t):new (0, _chunkVUYQ2ZIKcjs.b)(n,[t])}finally{this._itemStateStack.popItem()}}_getOrInstantiate(t){let r=_nullishCoalesce(this._memoizedResolves.get(t), () => ([]));this._itemStateStack.pushItem();try{for(let o of r)if([...o.slotToValueMap.entries()].every(([i,p])=>i.areEqual(this._itemStateStack.readSlot(i),p)))return o.result;let n;_chunkA6AAWPBUcjs.h.call(void 0, t)?n=Gt(this,t):k(t)||E(t)?n=this.resolve(this.unwrap(t)):Vt(t)?n=t["~resolve"](this):n=this.resolveValue(t);let a=new Map;for(let o of this._itemStateStack.topItem.usedSlots)a.set(o,this._itemStateStack.readSlot(o));return r.push({slotToValueMap:a,result:n}),this._memoizedResolves.set(t,r),n}catch(n){throw n instanceof _chunkVUYQ2ZIKcjs.b?n.appendToTrace(t):new (0, _chunkVUYQ2ZIKcjs.b)(n,[t])}finally{this._itemStateStack.popItem()}}resolve(t){if(Ve(t))return this.withSlots(t["~providing"].pairs,()=>this.resolve(t["~providing"].inner));if(t&&typeof t=="object"||typeof t=="function"){if(this._itemStateStack.itemDepth===0)try{_chunkVUYQ2ZIKcjs.k.call(void 0, _chunkVUYQ2ZIKcjs.h.GPU);let r=_chunkVUYQ2ZIKcjs.i.call(void 0, this,()=>this._getOrInstantiate(t));return`${[...this._declarations].join(`
|
24
|
+
${g}`:`${e.pre}if (${u})
|
25
|
+
${d}`}if(t[0]===v.let||t[0]===v.const){let[r,n,a]=t,o=a!==void 0?V(e,a):void 0;if(!o)throw new Error(`Cannot create variable '${n}' without an initial value.`);if(_chunkFHOQ6WZEcjs.d.call(void 0, o.dataType))throw new Error(`Cannot create variable '${n}' with loose data type.`);Ra(e,n,rr(o.dataType));let s=A(e,Ar(e,n));if(typeof a=="object"&&a[0]===v.objectExpr&&_chunkODKBWWHUcjs.C.call(void 0, e.callStack[e.callStack.length-1])){let i=e.callStack[e.callStack.length-1],l=a[1],u={};for(let[c,y]of Object.entries(l)){if(!y)throw new Error(`Missing property ${c} in object literal`);u[c]=V(e,y)}let d=nr(e,i,u),g=e.resolve(i);return`${e.pre}var ${s} = ${g}(${d.map(c=>A(e,c)).join(", ")});`}return`${e.pre}var ${s} = ${A(e,o)};`}if(t[0]===v.block)return En(e,t);if(t[0]===v.for){let[r,n,a,o,s]=t,i=n?he(e,n):void 0,l=i?i.slice(0,-1):"",u=a?V(e,a):void 0,d=u;if(u){let h=W(e,[u],[_chunkODKBWWHUcjs.Q]);_optionalChain([h, 'optionalAccess', _79 => _79[0]])&&([d]=h)}let g=d?A(e,d):"",c=o?he(e,o):void 0,y=c?c.slice(0,-1):"";e.indent();let x=he(e,Bt(s));return e.dedent(),`${e.pre}for (${l}; ${g}; ${y})
|
26
|
+
${x}`}if(t[0]===v.while){let[r,n,a]=t,o=V(e,n),s=o;if(o){let u=W(e,[o],[_chunkODKBWWHUcjs.Q]);_optionalChain([u, 'optionalAccess', _80 => _80[0]])&&([s]=u)}let i=A(e,s);e.indent();let l=he(e,Bt(a));return e.dedent(),`${e.pre}while (${i})
|
27
|
+
${l}`}return t[0]===v.continue?`${e.pre}continue;`:t[0]===v.break?`${e.pre}break;`:`${e.pre}${A(e,V(e,t))};`}function Ln(e,t){return En(e,t)}var _n="#CATCHALL#",Ur= (_class17 =class{constructor() { _class17.prototype.__init34.call(this);_class17.prototype.__init35.call(this); }__init34() {this._stack=[]}__init35() {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})}popItem(){this.pop("item")}pushSlotBindings(t){this._stack.push({type:"slotBinding",bindingMap:new WeakMap(t)})}popSlotBindings(){this.pop("slotBinding")}pushFunctionScope(t,r,n){this._stack.push({type:"functionScope",args:t,returnType:r,externalMap:n})}popFunctionScope(){this.pop("functionScope")}pushBlockScope(){this._stack.push({type:"blockScope",declarations:new Map})}popBlockScope(){this.pop("blockScope")}pop(t){let r=this._stack[this._stack.length-1];if(!r||t&&r.type!==t)throw new Error(`Internal error, expected a ${t} layer to be on top.`);this._stack.pop(),t==="item"&&this._itemDepth--}readSlot(t){for(let r=this._stack.length-1;r>=0;--r){let n=this._stack[r];if(_optionalChain([n, 'optionalAccess', _81 => _81.type])==="item")n.usedSlots.add(t);else if(_optionalChain([n, 'optionalAccess', _82 => _82.type])==="slotBinding"){let a=n.bindingMap.get(t);if(a!==void 0)return a}else if(!(_optionalChain([n, 'optionalAccess', _83 => _83.type])==="functionScope"||_optionalChain([n, 'optionalAccess', _84 => _84.type])==="blockScope"))throw new Error("Unknown layer type.")}return t.defaultValue}getSnippetById(t){for(let r=this._stack.length-1;r>=0;--r){let n=this._stack[r];if(_optionalChain([n, 'optionalAccess', _85 => _85.type])==="functionScope"){let a=n.args.find(s=>s.value===t);if(a!==void 0)return a;let o=n.externalMap[t];return o!=null?ar(o):void 0}if(_optionalChain([n, 'optionalAccess', _86 => _86.type])==="blockScope"){let a=n.declarations.get(t);if(a!==void 0)return{value:t,dataType:a}}}}defineBlockVariable(t,r){for(let n=this._stack.length-1;n>=0;--n){let a=this._stack[n];if(_optionalChain([a, 'optionalAccess', _87 => _87.type])==="blockScope")return a.declarations.set(t,r),{value:t,dataType:r}}throw new Error("No block scope found to define a variable in.")}}, _class17),Rt=[""," "," "," "," "," "," "," "," "],Ir=Rt.length-1,Br= (_class18 =class{constructor() { _class18.prototype.__init36.call(this); }__init36() {this.identLevel=0}get pre(){return _nullishCoalesce(Rt[this.identLevel], () => (Rt[Ir].repeat(this.identLevel/Ir)+Rt[this.identLevel%Ir]))}indent(){let t=this.pre;return this.identLevel++,t}dedent(){return this.identLevel--,this.pre}}, _class18),Rr= (_class19 =class{__init37() {this._memoizedResolves=new WeakMap}__init38() {this._memoizedDerived=new WeakMap}__init39() {this._indentController=new Br}__init40() {this._itemStateStack=new Ur}__init41() {this._declarations=[]}__init42() {this[_chunkODKBWWHUcjs.a]={itemStateStack:this._itemStateStack}}__init43() {this.bindGroupLayoutsToPlaceholderMap=new Map}__init44() {this._nextFreeLayoutPlaceholderIdx=0}__init45() {this.fixedBindings=[]}__init46() {this.callStack=[]}constructor(t){;_class19.prototype.__init37.call(this);_class19.prototype.__init38.call(this);_class19.prototype.__init39.call(this);_class19.prototype.__init40.call(this);_class19.prototype.__init41.call(this);_class19.prototype.__init42.call(this);_class19.prototype.__init43.call(this);_class19.prototype.__init44.call(this);_class19.prototype.__init45.call(this);_class19.prototype.__init46.call(this);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){let r=this._itemStateStack.getSnippetById(t);return r===void 0?null:r}defineVariable(t,r){return this._itemStateStack.defineBlockVariable(t,r)}pushBlockScope(){this._itemStateStack.pushBlockScope()}popBlockScope(){this._itemStateStack.popBlockScope()}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);try{return{head:Cr(this,t.args,t.returnType),body:Ln(this,t.body)}}finally{this._itemStateStack.popFunctionScope()}}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:_n,binding:n}}readSlot(t){let r=this._itemStateStack.readSlot(t);if(r===void 0)throw new (0, _chunkODKBWWHUcjs.h)(t);return r}withSlots(t,r){this._itemStateStack.pushSlotBindings(t);try{return r()}finally{this._itemStateStack.popSlotBindings()}}unwrap(t){if(Ne(t))return this.withSlots(t["~providing"].pairs,()=>this.unwrap(t["~providing"].inner));let r=t;for(;;)if(H(r))r=this.readSlot(r);else if(q(r))r=this._getOrCompute(r);else break;return r}_getOrCompute(t){let r=_nullishCoalesce(this._memoizedDerived.get(t), () => ([]));this._itemStateStack.pushItem();try{for(let o of r)if([...o.slotToValueMap.entries()].every(([i,l])=>i.areEqual(this._itemStateStack.readSlot(i),l)))return o.result;_chunkODKBWWHUcjs.p.call(void 0, _chunkODKBWWHUcjs.m.CPU);let n;try{n=t["~compute"]()}finally{_chunkODKBWWHUcjs.q.call(void 0, _chunkODKBWWHUcjs.m.CPU)}let a=new Map;for(let o of this._itemStateStack.topItem.usedSlots)a.set(o,this._itemStateStack.readSlot(o));return r.push({slotToValueMap:a,result:n}),this._memoizedDerived.set(t,r),n}catch(n){throw n instanceof _chunkODKBWWHUcjs.g?n.appendToTrace(t):new (0, _chunkODKBWWHUcjs.g)(n,[t])}finally{this._itemStateStack.popItem()}}_getOrInstantiate(t){let r=_nullishCoalesce(this._memoizedResolves.get(t), () => ([]));this._itemStateStack.pushItem();try{for(let o of r)if([...o.slotToValueMap.entries()].every(([i,l])=>i.areEqual(this._itemStateStack.readSlot(i),l)))return o.result;let n;_chunkFHOQ6WZEcjs.i.call(void 0, t)?n=ur(this,t):q(t)||H(t)?n=this.resolve(this.unwrap(t)):je(t)?n=t["~resolve"](this):n=this.resolveValue(t);let a=new Map;for(let o of this._itemStateStack.topItem.usedSlots)a.set(o,this._itemStateStack.readSlot(o));return r.push({slotToValueMap:a,result:n}),this._memoizedResolves.set(t,r),n}catch(n){throw n instanceof _chunkODKBWWHUcjs.g?n.appendToTrace(t):new (0, _chunkODKBWWHUcjs.g)(n,[t])}finally{this._itemStateStack.popItem()}}resolve(t){if(Ne(t))return this.withSlots(t["~providing"].pairs,()=>this.resolve(t["~providing"].inner));if(t&&typeof t=="object"||typeof t=="function"){if(this._itemStateStack.itemDepth===0)try{_chunkODKBWWHUcjs.p.call(void 0, _chunkODKBWWHUcjs.m.GPU);let r=_chunkODKBWWHUcjs.n.call(void 0, this,()=>this._getOrInstantiate(t));return`${[...this._declarations].join(`
|
24
28
|
|
25
|
-
`)}${r}`}finally{_chunkVUYQ2ZIKcjs.l.call(void 0, _chunkVUYQ2ZIKcjs.h.GPU)}return this._getOrInstantiate(t)}return String(t)}resolveValue(t,r){if(z(t))return this.resolve(t);if(r&&_chunkVUYQ2ZIKcjs._.call(void 0, r))return`array(${t.map(n=>this.resolveValue(n,r.elementType))})`;if(Array.isArray(t))return`array(${t.map(n=>this.resolveValue(n))})`;if(r&&_chunkVUYQ2ZIKcjs.$.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} (as json: ${JSON.stringify(t)}) of schema ${r} is not resolvable to WGSL`)}}, _class19);function Fe(e,t){let r=new ur(t),n=r.resolve(e),a=r.bindGroupLayoutsToPlaceholderMap,o=[],s=new Set([...a.keys()].map(m=>m.index).filter(m=>m!==void 0)),i=_chunkVUYQ2ZIKcjs.o.call(void 0, s),p=r.fixedBindings.map((m,T)=>[String(T),m.layoutEntry]),u=()=>{let m=i.next().value,T=gt(Object.fromEntries(p));return o[m]=T,n=n.replaceAll(hn,String(m)),[m,new De(T,Object.fromEntries(r.fixedBindings.map((f,g)=>[String(g),f.resource])))]},d=p.length>0?u():null;for(let[m,T]of a.entries()){let f=_nullishCoalesce(m.index, () => (i.next().value));o[f]=m,n=n.replaceAll(T,String(f))}return{code:n,bindGroupLayouts:o,catchall:d}}function pr(e,t,r){let n=t.map(a=>`${a.value}: ${e.resolve(a.dataType)}`).join(", ");return r!==void 0?`(${n}) -> ${_chunkA6AAWPBUcjs.ja.call(void 0, r)} ${e.resolve(r)}`:`(${n})`}function ee(e,t){let r=[];return typeof t=="string"&&(e.isEntry?(Array.isArray(e.argTypes)&&_chunkVUYQ2ZIKcjs.$.call(void 0, e.argTypes[0])&&r.push({In:e.argTypes[0]}),_chunkVUYQ2ZIKcjs.$.call(void 0, e.returnType)&&r.push({Out:e.returnType})):Array.isArray(e.argTypes)&&(zr(t,Array.isArray(e.argTypes)?e.argTypes:Object.values(e.argTypes),n=>r.push(n)),we(t,e.returnType,n=>r.push(n)))),{label:void 0,applyExternals(n){r.push(n)},resolve(n,a=""){let o={};for(let i of r)K(o,i);let s=n.names.makeUnique(this.label);if(typeof t=="string"){let i="";if(!e.isEntry)i=Array.isArray(e.argTypes)?"":pr(n,Object.entries(e.argTypes).map(([u,d])=>({value:u,dataType:d})),e.returnType);else{let u=Array.isArray(e.argTypes)&&_chunkVUYQ2ZIKcjs.$.call(void 0, e.argTypes[0])?"(in: In)":"()",d=_chunkVUYQ2ZIKcjs.Z.call(void 0, e.returnType)?_chunkA6AAWPBUcjs.ja.call(void 0, e.returnType):"",m=e.returnType!==void 0?_chunkVUYQ2ZIKcjs.$.call(void 0, e.returnType)?"-> Out":`-> ${d!==""?d:"@location(0)"} ${n.resolve(e.returnType)}`:"";i=`${u} ${m} `}let p=ue(n,o,`${i}${t.trim()}`);n.addDeclaration(`${a}fn ${s}${p}`)}else{let i=Hr(t);if(_optionalChain([i, 'optionalAccess', _73 => _73.externals])){let f=Object.fromEntries(Object.entries(i.externals).filter(([g])=>!(g in o)));K(o,f)}let p=_nullishCoalesce(_optionalChain([i, 'optionalAccess', _74 => _74.ast]), () => (n.transpileFn(String(t))));p.argNames.type==="destructured-object"&&K(o,Object.fromEntries(p.argNames.props.map(({prop:f,alias:g})=>[g,f]))),!Array.isArray(e.argTypes)&&p.argNames.type==="identifiers"&&p.argNames.names[0]!==void 0&&K(o,{[p.argNames.names[0]]:Object.fromEntries(Object.keys(e.argTypes).map(f=>[f,f]))});let u=p.externalNames.filter(f=>!(f in o));if(u.length>0)throw new (0, _chunkVUYQ2ZIKcjs.e)(this.label,u);let d=Array.isArray(e.argTypes)?p.argNames.type==="identifiers"?e.argTypes.map((f,g)=>({value:_nullishCoalesce((p.argNames.type==="identifiers"?p.argNames.names[g]:void 0), () => (`arg_${g}`)),dataType:f})):[]:Object.entries(e.argTypes).map(([f,g])=>({value:f,dataType:g})),{head:m,body:T}=n.fnToWgsl({args:d,returnType:e.returnType,body:p.body,externalMap:o});n.addDeclaration(`${a}fn ${s}${n.resolve(m)}${n.resolve(T)}`)}return s}}}function wn(e){let t=0;return Object.fromEntries(Object.entries(e).map(([r,n])=>{if(_chunkA6AAWPBUcjs.ia.call(void 0, n))return[r,n];let a=_chunkA6AAWPBUcjs.g.call(void 0, n);return a!==void 0?(t=a+1,[r,n]):[r,_chunkA6AAWPBUcjs.da.call(void 0, n,{type:"@location",value:t++})]}))}function yt(e){return _chunkA6AAWPBUcjs.h.call(void 0, e)?_chunkA6AAWPBUcjs.g.call(void 0, e)!==void 0?e:_chunkA6AAWPBUcjs.ga.call(void 0, 0,e):_chunkA6AAWPBUcjs.ka.call(void 0, wn(e))}function Ae(e){return _chunkA6AAWPBUcjs.ka.call(void 0, wn(e))}function te(e,...t){return pa(e)?la(e,...t):e}function pa(e){return Array.isArray(e)&&"raw"in e&&Array.isArray(e.raw)&&e.raw.every(t=>typeof t=="string")}function la(e,...t){return e.slice(1).reduce((r,n,a)=>`${r}${t[a]}${n}`,e[0])}function Sn(e){let t={argTypes:e.in&&Object.keys(e.in).length!==0?[Ae(e.in)]:[],returnType:void 0,workgroupSize:[_nullishCoalesce(e.workgroupSize[0], () => (1)),_nullishCoalesce(e.workgroupSize[1], () => (1)),_nullishCoalesce(e.workgroupSize[2], () => (1))],isEntry:!0},r=(n,...a)=>da(t,e.workgroupSize,te(n,...a));return Object.assign(Object.assign(r,t),{does:r})}function da(e,t,r){let n=ee(e,r),a=e.argTypes[0];return{shell:e,get label(){return n.label},$uses(o){return n.applyExternals(o),this},$name(o){return n.label=o,N(a)&&a.$name(`${o}_Input`),this},"~resolve"(o){return n.resolve(o,`@compute @workgroup_size(${t.join(", ")}) `)},toString(){return`computeFn:${_nullishCoalesce(this.label, () => ("<unnamed>"))}`}}}function vn(e,t){let r={argTypes:e,returnType:t,isEntry:!1},n=(a,...o)=>ga(r,te(a,...o));return Object.assign(Object.assign(n,r),{does:n})}function lr(e){return _optionalChain([e, 'optionalAccess', _75 => _75.resourceType])==="function"}function ma([e,t]){return`${_nullishCoalesce(e.label, () => ("<unnamed>"))}=${t}`}function ga(e,t){let r=ee(e,t),n={shell:e,resourceType:"function",$uses(s){return r.applyExternals(s),this},$name(s){return r.label=s,this},with(s,i){return Dn(o,[[ie(s)?s.slot:s,i]])},"~resolve"(s){if(typeof t=="string")return r.resolve(s);let i=s;if(i.callStack===void 0)throw new Error("Cannot resolve a TGSL function outside of a generation context");try{return i.callStack.push(e.returnType),r.resolve(s)}finally{i.callStack.pop()}}},a=_chunkVUYQ2ZIKcjs.p.call(void 0, (...s)=>{if(typeof t=="string")throw new Error("Cannot execute on the CPU functions constructed with raw WGSL");return t(...s)},(...s)=>({value:new ct(o,s.map(i=>i.value)),dataType:_nullishCoalesce(e.returnType, () => (A))}));a[_chunkVUYQ2ZIKcjs.n].implementation=t;let o=Object.assign(a,n);return Object.defineProperty(o,"label",{get:()=>r.label}),Object.defineProperty(o,"toString",{value:()=>`fn:${_nullishCoalesce(r.label, () => ("<unnamed>"))}`}),o}function Dn(e,t){let r={resourceType:"function",shell:e.shell,"~providing":{inner:e,pairs:t},$uses(o){return e.$uses(o),this},$name(o){return e.$name(o),this},with(o,s){return Dn(a,[...t,[ie(o)?o.slot:o,s]])}},n=_chunkVUYQ2ZIKcjs.p.call(void 0, (...o)=>e(...o),(...o)=>({value:new ct(a,o.map(s=>s.value)),dataType:_nullishCoalesce(e.shell.returnType, () => (A))})),a=Object.assign(n,r);return Object.defineProperty(a,"label",{get:()=>e.label}),Object.defineProperty(a,"toString",{value(){return`fn:${_nullishCoalesce(e.label, () => ("<unnamed>"))}[${t.map(ma).join(", ")}]`}}),a[_chunkVUYQ2ZIKcjs.n].implementation=e[_chunkVUYQ2ZIKcjs.n].implementation,a}var ct=class{constructor(t,r){this._fn=t;this._params=r}get label(){return this._fn.label}"~resolve"(t){return t.resolve(`${t.resolve(this._fn)}(${this._params.map(r=>t.resolve(r)).join(", ")})`)}toString(){return`call:${_nullishCoalesce(this.label, () => ("<unnamed>"))}`}};function Fn(e){let t={argTypes:e.in&&Object.keys(e.in).length!==0?[Ae(e.in)]:[],targets:e.out,returnType:Object.keys(e.out).length!==0?yt(e.out):void 0,isEntry:!0},r=(n,...a)=>fa(t,te(n,...a));return Object.assign(Object.assign(r,t),{does:r})}function fa(e,t){let r=ee(e,t),n=e.returnType,a=e.argTypes[0];return typeof t=="string"&&we(t,n,s=>r.applyExternals(s)),{shell:e,outputType:n,get label(){return r.label},$uses(s){return r.applyExternals(s),this},$name(s){return r.label=s,N(n)&&n.$name(`${s}_Output`),N(a)&&a.$name(`${s}_Input`),this},"~resolve"(s){if(typeof t=="string")return r.resolve(s,"@fragment ");let i=s;if(i.callStack===void 0)throw new Error("Cannot resolve a TGSL function outside of a generation context");try{return i.callStack.push(n),r.resolve(s,"@fragment ")}finally{i.callStack.pop()}},toString(){return`fragmentFn:${_nullishCoalesce(this.label, () => ("<unnamed>"))}`}}}function An(e){let t={attributes:[_nullishCoalesce(e.in, () => ({}))],returnType:Object.keys(e.out).length!==0?yt(e.out):void 0,argTypes:e.in&&Object.keys(e.in).length!==0?[Ae(e.in)]:[],isEntry:!0},r=(n,...a)=>Ta(t,te(n,...a));return Object.assign(Object.assign(r,t),{does:r})}function Ta(e,t){let r=ee(e,t),n=e.returnType,a=e.argTypes[0];return typeof t=="string"&&we(t,n,o=>r.applyExternals(o)),{shell:e,outputType:n,inputType:a,get label(){return r.label},$uses(o){return r.applyExternals(o),this},$name(o){return r.label=o,N(n)&&n.$name(`${o}_Output`),N(a)&&a.$name(`${o}_Input`),this},"~resolve"(o){if(typeof t=="string")return r.resolve(o,"@vertex ");let s=o;if(s.callStack===void 0)throw new Error("Cannot resolve a TGSL function outside of a generation context");try{return s.callStack.push(n),r.resolve(o,"@vertex ")}finally{s.callStack.pop()}},toString(){return`vertexFn:${_nullishCoalesce(this.label, () => ("<unnamed>"))}`}}}var re= (_class20 =class{constructor() { _class20.prototype.__init47.call(this); }__init47() {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++}`}}, _class20),ne= exports.StrictNameRegistry = (_class21 =class{constructor() { _class21.prototype.__init48.call(this); }__init48() {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}}, _class21);function Un(e){let{externals:t,template:r,names:n,unstable_jitTranspiler:a}=e,o={};K(o,_nullishCoalesce(t, () => ({})));let s={"~resolve"(p){return ue(p,o,_nullishCoalesce(r, () => ("")))},toString:()=>"<root>"},{code:i}=Fe(s,{names:n==="strict"?new ne:new re,jitTranspiler:a});return i}var Ke= (_class22 =class{constructor(t){;_class22.prototype.__init49.call(this);this._make=t}__init49() {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}}, _class22);function In(e,t,r){return new dr(new mr(e,t,r),{})}function Bn(e){return _optionalChain([e, 'optionalAccess', _76 => _76.resourceType])==="compute-pipeline"}var dr= (_class23 =class e{constructor(t,r){;_class23.prototype.__init50.call(this);this._core=t;this._priors=r}__init50() {this.resourceType="compute-pipeline"}get label(){return this._core.label}get rawPipeline(){return this._core.unwrap().pipeline}with(t,r){return new e(this._core,{bindGroupLayoutMap:new Map([..._nullishCoalesce(this._priors.bindGroupLayoutMap, () => ([])),[t,r]])})}dispatchWorkgroups(t,r,n){let a=this._core.unwrap(),{branch:o,label:s}=this._core,i=o.commandEncoder.beginComputePass({label:_nullishCoalesce(s, () => ("<unnamed>"))});i.setPipeline(a.pipeline);let p=new Set(a.bindGroupLayouts);if(a.bindGroupLayouts.forEach((u,d)=>{if(a.catchall&&d===a.catchall[0])i.setBindGroup(d,o.unwrap(a.catchall[1])),p.delete(u);else{let m=_optionalChain([this, 'access', _77 => _77._priors, 'access', _78 => _78.bindGroupLayoutMap, 'optionalAccess', _79 => _79.get, 'call', _80 => _80(u)]);m!==void 0&&(p.delete(u),i.setBindGroup(d,o.unwrap(m)))}}),p.size>0)throw new (0, _chunkVUYQ2ZIKcjs.f)(p);i.dispatchWorkgroups(t,r,n),i.end()}$name(t){return this._core.label=t,this}}, _class23),mr=class{constructor(t,r,n){this.branch=t;this._slotBindings=r;this._entryFn=n}unwrap(){if(this._memo===void 0){let t=this.branch.device,{code:r,bindGroupLayouts:n,catchall:a}=Fe({"~resolve":o=>(o.withSlots(this._slotBindings,()=>{o.resolve(this._entryFn)}),""),toString:()=>`computePipeline:${_nullishCoalesce(this.label, () => ("<unnamed>"))}`},{names:this.branch.nameRegistry,jitTranspiler:this.branch.jitTranspiler});a!==null&&_optionalChain([n, 'access', _81 => _81[a[0]], 'optionalAccess', _82 => _82.$name, 'call', _83 => _83(`${_nullishCoalesce(this.label, () => ("<unnamed>"))} - Automatic Bind Group & Layout`)]),this._memo={pipeline:t.createComputePipeline({label:_nullishCoalesce(this.label, () => ("<unnamed>")),layout:t.createPipelineLayout({label:`${_nullishCoalesce(this.label, () => ("<unnamed>"))} - Pipeline Layout`,bindGroupLayouts:n.map(o=>this.branch.unwrap(o))}),compute:{module:t.createShaderModule({label:`${_nullishCoalesce(this.label, () => ("<unnamed>"))} - Shader`,code:r})}}),bindGroupLayouts:n,catchall:a}}return this._memo}};function Tr(e,t="vertex"){return new fr(e,t)}function bt(e){return _optionalChain([e, 'optionalAccess', _84 => _84.resourceType])==="vertex-layout"}var gr=Symbol("defaultAttribEntry");function xt(e,t,r,n,a){if(_chunkVUYQ2ZIKcjs.ha.call(void 0, t)||_chunkA6AAWPBUcjs.f.call(void 0, t)){let o=_chunkA6AAWPBUcjs.g.call(void 0, t);return o!==void 0&&(n[_nullishCoalesce(a, () => (gr))]=o),xt(e,t.inner,_chunkA6AAWPBUcjs.aa.call(void 0, r,_chunkA6AAWPBUcjs._.call(void 0, t)),n)}if(_chunkVUYQ2ZIKcjs.$.call(void 0, t)){let o=r;return Object.fromEntries(Object.entries(t.propTypes).map(([s,i])=>{o=_chunkA6AAWPBUcjs.aa.call(void 0, o,_chunkA6AAWPBUcjs.Z.call(void 0, i));let p=[s,xt(e,i,o,n,s)];return o+=_chunkA6AAWPBUcjs.ba.call(void 0, i),p}))}if(_chunkA6AAWPBUcjs.e.call(void 0, t)){let o=r;return Object.fromEntries(Object.entries(t.propTypes).map(([s,i])=>{o=_chunkA6AAWPBUcjs.aa.call(void 0, o,_chunkA6AAWPBUcjs._.call(void 0, i));let p=[s,xt(e,i,o,n,s)];return o+=_chunkA6AAWPBUcjs.ba.call(void 0, i),p}))}if("type"in t&&typeof t.type=="string"){if(_chunkA6AAWPBUcjs.a.includes(t.type))return{_layout:e,format:t.type,offset:r};let o=_chunkA6AAWPBUcjs.b[t.type];if(o)return{_layout:e,format:o,offset:r}}throw new Error(`Unsupported data used in vertex layout: ${String(t)}`)}var fr= (_class24 =class{constructor(t,r){;_class24.prototype.__init51.call(this);_class24.prototype.__init52.call(this);this.schemaForCount=t;this.stepMode=r;let n=t(0);this.stride=_chunkA6AAWPBUcjs.aa.call(void 0, _chunkA6AAWPBUcjs.ba.call(void 0, n.elementType),_chunkA6AAWPBUcjs.Z.call(void 0, n)),this.attrib=xt(this,n.elementType,0,this._customLocationMap)}__init51() {this.resourceType="vertex-layout"}__init52() {this._customLocationMap={}}get label(){return this._label}get vertexLayout(){if(this._customLocationMap[gr]!==void 0){if(typeof this.attrib.format!="string"||typeof this.attrib.offset!="number")throw new Error("Single attribute vertex layouts must have a format and offset.");return{arrayStride:this.stride,stepMode:this.stepMode,attributes:[{format:this.attrib.format,offset:this.attrib.offset,shaderLocation:this._customLocationMap[gr]}]}}if(!Object.keys(this.attrib).every(r=>this._customLocationMap[r]!==void 0))throw new Error("All attributes must have custom locations in order to unwrap a vertex layout.");return{arrayStride:this.stride,stepMode:this.stepMode,attributes:[...Object.entries(this.attrib).map(([r,n])=>({format:n.format,offset:n.offset,shaderLocation:this._customLocationMap[r]}))]}}$name(t){return this._label=t,this}}, _class24);function ya(e){return typeof _optionalChain([e, 'optionalAccess', _85 => _85.loadOp])=="string"}function Rn(e,t){if(_chunkA6AAWPBUcjs.h.call(void 0, e)){if(!ya(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 ca(e){return typeof _optionalChain([e, 'optionalAccess', _86 => _86.format])=="string"}function Pn(e,t){if(_chunkA6AAWPBUcjs.h.call(void 0, e)){if(!ca(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 _n(e){return new yr(new cr(e),{})}function Ln(e){return _optionalChain([e, 'optionalAccess', _87 => _87.resourceType])==="render-pipeline"}var yr= (_class25 =class e{constructor(t,r){;_class25.prototype.__init53.call(this);this.core=t;this.priors=r}__init53() {this.resourceType="render-pipeline"}get label(){return this.core.label}$name(t){return this.core.label=t,this}with(t,r){if(ft(t))return new e(this.core,{...this.priors,bindGroupLayoutMap:new Map([..._nullishCoalesce(this.priors.bindGroupLayoutMap, () => ([])),[t,r]])});if(bt(t))return new e(this.core,{...this.priors,vertexLayoutMap:new Map([..._nullishCoalesce(this.priors.vertexLayoutMap, () => ([])),[t,r]])});throw new Error("Unsupported value passed into .with()")}withColorAttachment(t){return new e(this.core,{...this.priors,colorAttachment:t})}withDepthStencilAttachment(t){return new e(this.core,{...this.priors,depthStencilAttachment:t})}draw(t,r,n,a){let o=this.core.unwrap(),{branch:s,fragmentFn:i}=this.core.options,u={colorAttachments:Rn(i.shell.targets,_nullishCoalesce(this.priors.colorAttachment, () => ({}))).map(g=>q(g.view)?{...g,view:s.unwrap(g.view).createView()}:g)};if(this.core.label!==void 0&&(u.label=this.core.label),this.priors.depthStencilAttachment!==void 0){let g=this.priors.depthStencilAttachment;q(g.view)?u.depthStencilAttachment={...g,view:s.unwrap(g.view).createView()}:u.depthStencilAttachment=g}let d=s.commandEncoder.beginRenderPass(u);d.setPipeline(o.pipeline);let m=new Set(o.bindGroupLayouts);o.bindGroupLayouts.forEach((g,D)=>{if(o.catchall&&D===o.catchall[0])d.setBindGroup(D,s.unwrap(o.catchall[1])),m.delete(g);else{let S=_optionalChain([this, 'access', _88 => _88.priors, 'access', _89 => _89.bindGroupLayoutMap, 'optionalAccess', _90 => _90.get, 'call', _91 => _91(g)]);S!==void 0&&(m.delete(g),d.setBindGroup(D,s.unwrap(S)))}});let T=new Set(this.core.usedVertexLayouts);if(this.core.usedVertexLayouts.forEach((g,D)=>{let S=_optionalChain([this, 'access', _92 => _92.priors, 'access', _93 => _93.vertexLayoutMap, 'optionalAccess', _94 => _94.get, 'call', _95 => _95(g)]);S&&(T.delete(g),d.setVertexBuffer(D,s.unwrap(S)))}),m.size>0)throw new (0, _chunkVUYQ2ZIKcjs.f)(m);if(T.size>0)throw new (0, _chunkVUYQ2ZIKcjs.g)(T);d.draw(t,r,n,a),d.end(),s.flush()}}, _class25),cr=class{constructor(t){this.options=t;let r=Xr(t.vertexFn.shell.attributes[0],t.vertexAttribs);this._vertexBufferLayouts=r.bufferDefinitions,this.usedVertexLayouts=r.usedVertexLayouts,this._targets=Pn(t.fragmentFn.shell.targets,t.targets)}unwrap(){if(this._memo===void 0){let{branch:t,vertexFn:r,fragmentFn:n,slotBindings:a,primitiveState:o,depthStencilState:s,multisampleState:i}=this.options,{code:p,bindGroupLayouts:u,catchall:d}=Fe({"~resolve":g=>(g.withSlots(a,()=>{g.resolve(r),g.resolve(n)}),""),toString:()=>`renderPipeline:${_nullishCoalesce(this.label, () => ("<unnamed>"))}`},{names:t.nameRegistry,jitTranspiler:t.jitTranspiler});d!==null&&_optionalChain([u, 'access', _96 => _96[d[0]], 'optionalAccess', _97 => _97.$name, 'call', _98 => _98(`${_nullishCoalesce(this.label, () => ("<unnamed>"))} - Automatic Bind Group & Layout`)]);let m=t.device,T=m.createShaderModule({label:`${_nullishCoalesce(this.label, () => ("<unnamed>"))} - Shader`,code:p}),f={layout:m.createPipelineLayout({label:`${_nullishCoalesce(this.label, () => ("<unnamed>"))} - Pipeline Layout`,bindGroupLayouts:u.map(g=>t.unwrap(g))}),vertex:{module:T,buffers:this._vertexBufferLayouts},fragment:{module:T,targets:this._targets}};this.label!==void 0&&(f.label=this.label),o&&(f.primitive=o),s&&(f.depthStencil=s),i&&(f.multisample=i),this._memo={pipeline:m.createRenderPipeline(f),bindGroupLayouts:u,catchall:d}}return this._memo}};var xr=class e{constructor(t,r){this._getRoot=t;this._slotBindings=r}with(t,r){return new e(this._getRoot,[...this._slotBindings,[ie(t)?t.slot:t,r]])}withCompute(t){return new br(this._getRoot(),this._slotBindings,t)}withVertex(t,r){return new hr({branch:this._getRoot(),primitiveState:void 0,depthStencilState:void 0,slotBindings:this._slotBindings,vertexFn:t,vertexAttribs:r,multisampleState:void 0})}},br=class{constructor(t,r,n){this._root=t;this._slotBindings=r;this._entryFn=n}createPipeline(){return In(this._root,this._slotBindings,this._entryFn)}},hr=class{constructor(t){this._options=t}withFragment(t,r,n){return _chunkVUYQ2ZIKcjs.a.call(void 0, typeof t!="string","Just type mismatch validation"),_chunkVUYQ2ZIKcjs.a.call(void 0, typeof r!="string","Just type mismatch validation"),new wr({...this._options,fragmentFn:t,targets:r})}},wr=class e{constructor(t){this._options=t}withPrimitive(t){return new e({...this._options,primitiveState:t})}withDepthStencil(t){return new e({...this._options,depthStencilState:t})}withMultisample(t){return new e({...this._options,multisampleState:t})}createPipeline(){return _n(this._options)}},ht= (_class26 =class extends xr{constructor(r,n,a,o){super(()=>this,[]);_class26.prototype.__init54.call(this);_class26.prototype.__init55.call(this);_class26.prototype.__init56.call(this);_class26.prototype.__init57.call(this);;this.device=r;this.nameRegistry=n;this.jitTranspiler=a;this._ownDevice=o;this["~unstable"]=this}__init54() {this._disposables=[]}__init55() {this._unwrappedBindGroupLayouts=new Ke(r=>r.unwrap(this))}__init56() {this._unwrappedBindGroups=new Ke(r=>r.unwrap(this))}__init57() {this._commandEncoder=null}get commandEncoder(){return this._commandEncoder||(this._commandEncoder=this.device.createCommandEncoder()),this._commandEncoder}createBuffer(r,n){let a=dn(this,r,n);return this._disposables.push(a),a}createUniform(r,n){return this.createBuffer(r,n).$usage("uniform").as("uniform")}createMutable(r,n){return this.createBuffer(r,n).$usage("storage").as("mutable")}createReadonly(r,n){return this.createBuffer(r,n).$usage("storage").as("readonly")}createBindGroup(r,n){return new De(r,n)}destroy(){for(let r of this._disposables)r.destroy();this._ownDevice&&this.device.destroy()}createTexture(r){let n=cn(r,this);return this._disposables.push(n),n}unwrap(r){if(Bn(r))return r.rawPipeline;if(Ln(r))return r.core.unwrap().pipeline;if(ft(r))return this._unwrappedBindGroupLayouts.getOrMake(r);if(ar(r))return this._unwrappedBindGroups.getOrMake(r);if(Z(r))return r.buffer;if(q(r)||je(r)||ze(r))return r.unwrap();if(bt(r))return r.vertexLayout;if(We(r)){if("unwrap"in r)return r.unwrap(this);throw new Error("Cannot unwrap laid-out sampler.")}if(Me(r)){if("unwrap"in r)return r.unwrap(this);throw new Error("Cannot unwrap laid-out comparison sampler.")}throw new Error(`Unknown resource type: ${r}`)}beginRenderPass(r,n){let a=this.commandEncoder.beginRenderPass(r),o=new Map,s=new Map,i,p=()=>{if(!i)throw new Error("Cannot draw without a call to pass.setPipeline");let{core:u,priors:d}=i,m=u.unwrap();a.setPipeline(m.pipeline);let T=new Set(m.bindGroupLayouts);m.bindGroupLayouts.forEach((g,D)=>{if(m.catchall&&D===m.catchall[0])a.setBindGroup(D,this.unwrap(m.catchall[1])),T.delete(g);else{let S=_nullishCoalesce(_optionalChain([d, 'access', _99 => _99.bindGroupLayoutMap, 'optionalAccess', _100 => _100.get, 'call', _101 => _101(g)]), () => (o.get(g)));S!==void 0&&(T.delete(g),ar(S)?a.setBindGroup(D,this.unwrap(S)):a.setBindGroup(D,S))}});let f=new Set;if(u.usedVertexLayouts.forEach((g,D)=>{let S=_optionalChain([d, 'access', _102 => _102.vertexLayoutMap, 'optionalAccess', _103 => _103.get, 'call', _104 => _104(g)]),I=S?{buffer:S,offset:void 0,size:void 0}:s.get(g);!I||!I.buffer?f.add(g):Z(I.buffer)?a.setVertexBuffer(D,this.unwrap(I.buffer),I.offset,I.size):a.setVertexBuffer(D,I.buffer,I.offset,I.size)}),T.size>0)throw new (0, _chunkVUYQ2ZIKcjs.f)(T);if(f.size>0)throw new (0, _chunkVUYQ2ZIKcjs.g)(f)};n({setViewport(...u){a.setViewport(...u)},setScissorRect(...u){a.setScissorRect(...u)},setBlendConstant(...u){a.setBlendConstant(...u)},setStencilReference(...u){a.setStencilReference(...u)},beginOcclusionQuery(...u){a.beginOcclusionQuery(...u)},endOcclusionQuery(...u){a.endOcclusionQuery(...u)},executeBundles(...u){a.executeBundles(...u)},setPipeline(u){i=u},setIndexBuffer:(u,d,m,T)=>{Z(u)?a.setIndexBuffer(this.unwrap(u),d,m,T):a.setIndexBuffer(u,d,m,T)},setVertexBuffer(u,d,m,T){s.set(u,{buffer:d,offset:m,size:T})},setBindGroup(u,d){o.set(u,d)},draw(u,d,m,T){p(),a.draw(u,d,m,T)},drawIndexed(...u){p(),a.drawIndexed(...u)},drawIndirect(...u){p(),a.drawIndirect(...u)},drawIndexedIndirect(...u){p(),a.drawIndexedIndirect(...u)}}),a.end()}flush(){this._commandEncoder&&(this.device.queue.submit([this._commandEncoder.finish()]),this._commandEncoder=null)}}, _class26);async function Cn(e){let{adapter:t,device:r,unstable_names:n="random",unstable_jitTranspiler:a}=_nullishCoalesce(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 ht(await o.requestDevice(r),n==="random"?new re:new ne,a,!0)}function Vn(e){let{device:t,unstable_names:r="random",unstable_jitTranspiler:n}=_nullishCoalesce(e, () => ({}));return new ht(t,r==="random"?new re:new ne,n,!1)}function wt(e){return new Sr(e)}var Sr= (_class27 =class{constructor(t=void 0){;_class27.prototype.__init58.call(this);this.defaultValue=t}__init58() {this.resourceType="slot"}$name(t){return this.label=t,this}areEqual(t,r){return Object.is(t,r)}toString(){return`slot:${_nullishCoalesce(this.label, () => ("<unnamed>"))}`}get value(){let t=_chunkVUYQ2ZIKcjs.j.call(void 0, );if(!t)throw new Error("Cannot access tgpu.slot's value outside of resolution.");return Ee(t.unwrap(this))}}, _class27);function En(e,t){return new vr(e,t)}var vr= (_class28 =class{constructor(t,r=void 0){;_class28.prototype.__init59.call(this);this.schema=t;this.defaultValue=r;this.slot=wt(r)}__init59() {this.resourceType="accessor"}$name(t){return this.label=t,this.slot.$name(t),this}toString(){return`accessor:${_nullishCoalesce(this.label, () => ("<unnamed>"))}`}get value(){if(!_chunkVUYQ2ZIKcjs.j.call(void 0, ))throw new Error("Cannot access tgpu.accessor's value outside of resolution.");return new Proxy({"~resolve":r=>r.resolve(this),toString:()=>`.value:${_nullishCoalesce(this.label, () => ("<unnamed>"))}`,[_chunkVUYQ2ZIKcjs.n]:{dataType:this.schema}},M)}"~resolve"(t){let r=t.unwrap(this.slot);return Ze(r)?t.resolve(r):lr(r)?`${t.resolve(r)}()`:t.resolveValue(r,this.schema)}}, _class28);function kn(e){return ba(e)}function xa([e,t]){return`${_nullishCoalesce(e.label, () => ("<unnamed>"))}=${t}`}function ba(e){return{resourceType:"derived","~compute":e,[_chunkVUYQ2ZIKcjs.q]:void 0,get value(){let r=_chunkVUYQ2ZIKcjs.j.call(void 0, );if(!r)throw new Error("Cannot access tgpu.derived's value outside of resolution.");return Ee(r.unwrap(this))},with(r,n){return $n(this,[[r,n]])},toString(){return"derived"}}}function $n(e,t){return{resourceType:"derived",[_chunkVUYQ2ZIKcjs.q]:void 0,"~compute"(){throw new Error("'~compute' should never be read on bound derived items.")},"~providing":{inner:e,pairs:t},get value(){let n=_chunkVUYQ2ZIKcjs.j.call(void 0, );if(!n)throw new Error("Cannot access tgpu.derived's value outside of resolution.");return Ee(n.unwrap(this))},with(n,a){return $n(e,[...t,[n,a]])},toString(){return`derived[${t.map(xa).join(", ")}]`}}}function On(e,t){return new St("private",e,t)}function Gn(e){return new St("workgroup",e)}var St=class{constructor(t,r,n){this.scope=t;this._dataType=r;this._initialValue=n}$name(t){return this._label=t,this}"~resolve"(t){let r=t.names.makeUnique(this._label);return this._initialValue?t.addDeclaration(`var<${this.scope}> ${r}: ${t.resolve(this._dataType)} = ${t.resolveValue(this._initialValue,this._dataType)};`):t.addDeclaration(`var<${this.scope}> ${r}: ${t.resolve(this._dataType)};`),r}get label(){return this._label}toString(){return`var:${_nullishCoalesce(this.label, () => ("<unnamed>"))}`}get value(){if(!_chunkVUYQ2ZIKcjs.m.call(void 0, ))throw new Error("Cannot access tgpu.var's value directly in JS.");return new Proxy({"~resolve":t=>t.resolve(this),toString:()=>`.value:${_nullishCoalesce(this.label, () => ("<unnamed>"))}`,[_chunkVUYQ2ZIKcjs.n]:{dataType:this._dataType}},M)}};var Wn={bindGroupLayout:gt,vertexLayout:Tr,init:Cn,initFromDevice:Vn,resolve:Un,"~unstable":{fn:vn,fragmentFn:Fn,vertexFn:An,computeFn:Sn,vertexLayout:Tr,derived:kn,slot:wt,accessor:En,privateVar:On,workgroupVar:Gn,const:jr,declare:Kr,sampler:mn,comparisonSampler:gn}},Mu= exports.default =Wn;Object.assign(Wn,{__assignAst:Jr,__removedJsImpl:Yr});exports.MissingBindGroupsError = _chunkVUYQ2ZIKcjs.f; exports.MissingLinksError = _chunkVUYQ2ZIKcjs.e; exports.MissingSlotValueError = _chunkVUYQ2ZIKcjs.c; exports.MissingVertexBuffersError = _chunkVUYQ2ZIKcjs.g; exports.NotUniformError = _chunkVUYQ2ZIKcjs.d; exports.RandomNameRegistry = re; exports.ResolutionError = _chunkVUYQ2ZIKcjs.b; exports.StrictNameRegistry = ne; exports.default = Mu; exports.isBuffer = Z; exports.isComparisonSampler = Me; exports.isDerived = k; exports.isSampledTextureView = ze; exports.isSampler = We; exports.isSlot = E; exports.isStorageTextureView = je; exports.isTexture = q; exports.isTgpuFn = lr; exports.isUsableAsRender = ua; exports.isUsableAsSampled = tr; exports.isUsableAsStorage = de; exports.isUsableAsUniform = at; exports.isUsableAsVertex = ia; exports.tgpu = Wn; exports.unstable_asMutable = zt; exports.unstable_asReadonly = Kt; exports.unstable_asUniform = qt;
|
29
|
+
`)}${r}`}finally{_chunkODKBWWHUcjs.q.call(void 0, _chunkODKBWWHUcjs.m.GPU)}return this._getOrInstantiate(t)}return String(t)}resolveValue(t,r){if(J(t))return this.resolve(t);if(r&&_chunkODKBWWHUcjs.B.call(void 0, r))return`array(${t.map(n=>this.resolveValue(n,r.elementType))})`;if(Array.isArray(t))return`array(${t.map(n=>this.resolveValue(n))})`;if(r&&_chunkODKBWWHUcjs.C.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} (as json: ${JSON.stringify(t)}) of schema ${r} is not resolvable to WGSL`)}}, _class19);function Ve(e,t){let r=new Rr(t),n=r.resolve(e),a=r.bindGroupLayoutsToPlaceholderMap,o=[],s=new Set([...a.keys()].map(g=>g.index).filter(g=>g!==void 0)),i=_chunkODKBWWHUcjs.M.call(void 0, s),l=r.fixedBindings.map((g,c)=>[String(c),g.layoutEntry]),u=()=>{let g=i.next().value,c=It(Object.fromEntries(l));return o[g]=c,n=n.replaceAll(_n,String(g)),[g,new Pe(c,Object.fromEntries(r.fixedBindings.map((y,x)=>[String(x),y.resource])))]},d=l.length>0?u():null;for(let[g,c]of a.entries()){let y=_nullishCoalesce(g.index, () => (i.next().value));o[y]=g,n=n.replaceAll(c,String(y))}return{code:n,bindGroupLayouts:o,catchall:d}}function Cr(e,t,r){let n=t.map(a=>`${a.value}: ${e.resolve(a.dataType)}`).join(", ");return r!==void 0?`(${n}) -> ${_chunkFHOQ6WZEcjs.ja.call(void 0, r)} ${e.resolve(r)}`:`(${n})`}function oe(e,t){let r=[];typeof t=="string"&&(e.isEntry?(Array.isArray(e.argTypes)&&_chunkODKBWWHUcjs.C.call(void 0, e.argTypes[0])&&r.push({In:e.argTypes[0]}),_chunkODKBWWHUcjs.C.call(void 0, e.returnType)&&r.push({Out:e.returnType})):Array.isArray(e.argTypes)&&(dn(t,Array.isArray(e.argTypes)?e.argTypes:Object.values(e.argTypes),o=>r.push(o)),Be(t,e.returnType,o=>r.push(o))));let n={applyExternals(o){r.push(o)},resolve(o,s=""){let i={};for(let u of r)Q(i,u);let l=o.names.makeUnique(_chunkODKBWWHUcjs.c.call(void 0, this));if(typeof t=="string"){let u="";if(!e.isEntry)u=Array.isArray(e.argTypes)?"":Cr(o,Object.entries(e.argTypes).map(([g,c])=>({value:g,dataType:c})),e.returnType);else{let g=Array.isArray(e.argTypes)&&_chunkODKBWWHUcjs.C.call(void 0, e.argTypes[0])?"(in: In)":"()",c=_chunkODKBWWHUcjs.A.call(void 0, e.returnType)?_chunkFHOQ6WZEcjs.ja.call(void 0, e.returnType):"",y=e.returnType!==void 0?_chunkODKBWWHUcjs.C.call(void 0, e.returnType)?"-> Out":`-> ${c!==""?c:"@location(0)"} ${o.resolve(e.returnType)}`:"";u=`${g} ${y} `}let d=ye(o,i,`${u}${t.trim()}`);o.addDeclaration(`${s}fn ${l}${d}`)}else{let u=gn(t);if(_optionalChain([u, 'optionalAccess', _88 => _88.externals])){let h=Object.fromEntries(Object.entries(u.externals).filter(([T])=>!(T in i)));Q(i,h)}let d=_nullishCoalesce(_optionalChain([u, 'optionalAccess', _89 => _89.ast]), () => (o.transpileFn(String(t))));d.argNames.type==="destructured-object"&&Q(i,Object.fromEntries(d.argNames.props.map(({prop:h,alias:T})=>[T,h]))),!Array.isArray(e.argTypes)&&d.argNames.type==="identifiers"&&d.argNames.names[0]!==void 0&&Q(i,{[d.argNames.names[0]]:Object.fromEntries(Object.keys(e.argTypes).map(h=>[h,h]))});let g=d.externalNames.filter(h=>!(h in i));if(g.length>0)throw new (0, _chunkODKBWWHUcjs.j)(_chunkODKBWWHUcjs.c.call(void 0, this),g);let c=Array.isArray(e.argTypes)?d.argNames.type==="identifiers"?e.argTypes.map((h,T)=>({value:_nullishCoalesce((d.argNames.type==="identifiers"?d.argNames.names[T]:void 0), () => (`arg_${T}`)),dataType:h})):[]:Object.entries(e.argTypes).map(([h,T])=>({value:h,dataType:T})),{head:y,body:x}=o.fnToWgsl({args:c,returnType:e.returnType,body:d.body,externalMap:i});o.addDeclaration(`${s}fn ${l}${o.resolve(y)}${o.resolve(x)}`)}return l}},a=_chunkODKBWWHUcjs.c.call(void 0, t);return a!==void 0&&_chunkODKBWWHUcjs.d.call(void 0, n,a),n}function On(e){let t=0;return Object.fromEntries(Object.entries(e).map(([r,n])=>{if(_chunkFHOQ6WZEcjs.ia.call(void 0, n))return[r,n];let a=_chunkFHOQ6WZEcjs.h.call(void 0, n);return a!==void 0?(t=a+1,[r,n]):[r,_chunkFHOQ6WZEcjs.ga.call(void 0, t++,n)]}))}function Ct(e){return _chunkFHOQ6WZEcjs.i.call(void 0, e)?_chunkODKBWWHUcjs.L.call(void 0, e)?void 0:_chunkFHOQ6WZEcjs.h.call(void 0, e)!==void 0?e:_chunkFHOQ6WZEcjs.ga.call(void 0, 0,e):_chunkFHOQ6WZEcjs.ka.call(void 0, On(e))}function $e(e){return _chunkFHOQ6WZEcjs.ka.call(void 0, On(e))}function se(e,...t){return Ca(e)?Pa(e,...t):e}function Ca(e){return Array.isArray(e)&&"raw"in e&&Array.isArray(e.raw)&&e.raw.every(t=>typeof t=="string")}function Pa(e,...t){return e.slice(1).reduce((r,n,a)=>`${r}${t[a]}${n}`,e[0])}function Gn(e){let t={argTypes:e.in&&Object.keys(e.in).length!==0?[$e(e.in)]:[],returnType:void 0,workgroupSize:[_nullishCoalesce(e.workgroupSize[0], () => (1)),_nullishCoalesce(e.workgroupSize[1], () => (1)),_nullishCoalesce(e.workgroupSize[2], () => (1))],isEntry:!0},r=(n,...a)=>Va(t,e.workgroupSize,se(n,...a));return Object.assign(Object.assign(r,t),{does:r})}function Va(e,t,r){let n=oe(e,r),a=e.argTypes[0];return{shell:e,$uses(o){return n.applyExternals(o),this},[_chunkODKBWWHUcjs.b]:n,$name(o){return _chunkODKBWWHUcjs.d.call(void 0, n,o),_chunkODKBWWHUcjs.e.call(void 0, a)&&a.$name(`${o}_Input`),this},"~resolve"(o){return n.resolve(o,`@compute @workgroup_size(${t.join(", ")}) `)},toString(){return`computeFn:${_nullishCoalesce(_chunkODKBWWHUcjs.c.call(void 0, n), () => ("<unnamed>"))}`}}}function Wn(e,t){let r={[_chunkODKBWWHUcjs.a]:!0,argTypes:e,returnType:t,isEntry:!1},n=(a,...o)=>ka(r,se(a,...o));return Object.assign(Object.assign(n,r),{does:n})}function Pr(e){return _optionalChain([e, 'optionalAccess', _90 => _90.resourceType])==="function"}function $a([e,t]){return`${_nullishCoalesce(_chunkODKBWWHUcjs.c.call(void 0, e), () => ("<unnamed>"))}=${t}`}function ka(e,t){let r=oe(e,t),n={[_chunkODKBWWHUcjs.a]:{implementation:t,argTypes:e.argTypes},shell:e,resourceType:"function",$uses(s){return r.applyExternals(s),this},[_chunkODKBWWHUcjs.b]:r,$name(s){return _chunkODKBWWHUcjs.d.call(void 0, r,s),this},with(s,i){return Mn(o,[[ge(s)?s.slot:s,i]])},"~resolve"(s){if(typeof t=="string")return r.resolve(s);let i=s;if(i.callStack===void 0)throw new Error("Cannot resolve a TGSL function outside of a generation context");try{return i.callStack.push(e.returnType),r.resolve(s)}finally{i.callStack.pop()}}},a=_chunkODKBWWHUcjs.N.call(void 0, (...s)=>{if(typeof t=="string")throw new Error("Cannot execute on the CPU functions constructed with raw WGSL");return t(...s)},(...s)=>({value:new Pt(o,s.map(i=>i.value)),dataType:_nullishCoalesce(e.returnType, () => (U))}),e.argTypes);a[_chunkODKBWWHUcjs.a].implementation=t;let o=Object.assign(a,n);return Object.defineProperty(o,"toString",{value(){return`fn:${_nullishCoalesce(_chunkODKBWWHUcjs.c.call(void 0, r), () => ("<unnamed>"))}`}}),o}function Mn(e,t){let r={[_chunkODKBWWHUcjs.a]:{implementation:e[_chunkODKBWWHUcjs.a].implementation,argTypes:e[_chunkODKBWWHUcjs.a].argTypes},resourceType:"function",shell:e.shell,"~providing":{inner:e,pairs:t},$uses(o){return e.$uses(o),this},[_chunkODKBWWHUcjs.b]:e,$name(o){return e.$name(o),this},with(o,s){return Mn(a,[...t,[ge(o)?o.slot:o,s]])}},n=_chunkODKBWWHUcjs.N.call(void 0, (...o)=>e(...o),(...o)=>({value:new Pt(a,o.map(s=>s.value)),dataType:_nullishCoalesce(e.shell.returnType, () => (U))}),e.shell.argTypes),a=Object.assign(n,r);return Object.defineProperty(a,"toString",{value(){return`fn:${_nullishCoalesce(_chunkODKBWWHUcjs.c.call(void 0, e), () => ("<unnamed>"))}[${t.map($a).join(", ")}]`}}),a[_chunkODKBWWHUcjs.a].implementation=e[_chunkODKBWWHUcjs.a].implementation,a}var Pt=class{constructor(t,r){this._fn=t;this._params=r;this[_chunkODKBWWHUcjs.b]=t}"~resolve"(t){return t.resolve(`${t.resolve(this._fn)}(${this._params.map(r=>t.resolve(r)).join(", ")})`)}toString(){return`call:${_nullishCoalesce(_chunkODKBWWHUcjs.c.call(void 0, this), () => ("<unnamed>"))}`}};function Nn(e){let t={argTypes:e.in&&Object.keys(e.in).length!==0?[$e(e.in)]:[],targets:e.out,returnType:Ct(e.out),isEntry:!0},r=(n,...a)=>Ea(t,se(n,...a));return Object.assign(Object.assign(r,t),{does:r})}function Ea(e,t){let r=oe(e,t),n=e.returnType,a=e.argTypes[0];return typeof t=="string"&&Be(t,n,s=>r.applyExternals(s)),{shell:e,outputType:n,$uses(s){return r.applyExternals(s),this},[_chunkODKBWWHUcjs.b]:r,$name(s){return _chunkODKBWWHUcjs.d.call(void 0, r,s),_chunkODKBWWHUcjs.e.call(void 0, n)&&n.$name(`${s}_Output`),_chunkODKBWWHUcjs.e.call(void 0, a)&&a.$name(`${s}_Input`),this},"~resolve"(s){if(typeof t=="string")return r.resolve(s,"@fragment ");let i=s;if(i.callStack===void 0)throw new Error("Cannot resolve a TGSL function outside of a generation context");try{return i.callStack.push(n),r.resolve(s,"@fragment ")}finally{i.callStack.pop()}},toString(){return`fragmentFn:${_nullishCoalesce(_chunkODKBWWHUcjs.c.call(void 0, r), () => ("<unnamed>"))}`}}}function jn(e){let t={attributes:[_nullishCoalesce(e.in, () => ({}))],returnType:Object.keys(e.out).length!==0?Ct(e.out):void 0,argTypes:e.in&&Object.keys(e.in).length!==0?[$e(e.in)]:[],isEntry:!0},r=(n,...a)=>La(t,se(n,...a));return Object.assign(Object.assign(r,t),{does:r})}function La(e,t){let r=oe(e,t),n=e.returnType,a=e.argTypes[0];return typeof t=="string"&&Be(t,n,o=>r.applyExternals(o)),{shell:e,outputType:n,inputType:a,$uses(o){return r.applyExternals(o),this},[_chunkODKBWWHUcjs.b]:r,$name(o){return _chunkODKBWWHUcjs.d.call(void 0, r,o),_chunkODKBWWHUcjs.e.call(void 0, n)&&n.$name(`${o}_Output`),_chunkODKBWWHUcjs.e.call(void 0, a)&&a.$name(`${o}_Input`),this},"~resolve"(o){if(typeof t=="string")return r.resolve(o,"@vertex ");let s=o;if(s.callStack===void 0)throw new Error("Cannot resolve a TGSL function outside of a generation context");try{return s.callStack.push(n),r.resolve(o,"@vertex ")}finally{s.callStack.pop()}},toString(){return`vertexFn:${_nullishCoalesce(_chunkODKBWWHUcjs.c.call(void 0, r), () => ("<unnamed>"))}`}}}var ie= (_class20 =class{constructor() { _class20.prototype.__init47.call(this); }__init47() {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++}`}}, _class20),ue= exports.StrictNameRegistry = (_class21 =class{constructor() { _class21.prototype.__init48.call(this); }__init48() {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}}, _class21);function zn(e){let{externals:t,template:r,names:n,unstable_jitTranspiler:a}=e,o={};Q(o,_nullishCoalesce(t, () => ({})));let s={"~resolve"(l){return ye(l,o,_nullishCoalesce(r, () => ("")))},toString:()=>"<root>"},{code:i}=Ve(s,{names:n==="strict"?new ue:new ie,jitTranspiler:a});return i}var tt= (_class22 =class{constructor(t){;_class22.prototype.__init49.call(this);this._make=t}__init49() {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}}, _class22);function Kn(e,t,r){return new Vr(new $r(e,t,r),{})}function Hn(e){let t=e;return _optionalChain([t, 'optionalAccess', _91 => _91.resourceType])==="compute-pipeline"&&!!t[_chunkODKBWWHUcjs.a]}var Vr= (_class23 =class e{constructor(t,r){;_class23.prototype.__init50.call(this);this._core=t;this._priors=r;this[_chunkODKBWWHUcjs.a]={get rawPipeline(){return t.unwrap().pipeline}},this[_chunkODKBWWHUcjs.b]=t}__init50() {this.resourceType="compute-pipeline"}get rawPipeline(){return this._core.unwrap().pipeline}with(t,r){return new e(this._core,{bindGroupLayoutMap:new Map([..._nullishCoalesce(this._priors.bindGroupLayoutMap, () => ([])),[t,r]])})}dispatchWorkgroups(t,r,n){let a=this._core.unwrap(),{branch:o}=this._core,s=o.commandEncoder.beginComputePass({label:_nullishCoalesce(_chunkODKBWWHUcjs.c.call(void 0, this._core), () => ("<unnamed>"))});s.setPipeline(a.pipeline);let i=new Set(a.bindGroupLayouts);if(a.bindGroupLayouts.forEach((l,u)=>{if(a.catchall&&u===a.catchall[0])s.setBindGroup(u,o.unwrap(a.catchall[1])),i.delete(l);else{let d=_optionalChain([this, 'access', _92 => _92._priors, 'access', _93 => _93.bindGroupLayoutMap, 'optionalAccess', _94 => _94.get, 'call', _95 => _95(l)]);d!==void 0&&(i.delete(l),s.setBindGroup(u,o.unwrap(d)))}}),i.size>0)throw new (0, _chunkODKBWWHUcjs.k)(i);s.dispatchWorkgroups(t,r,n),s.end()}$name(t){return _chunkODKBWWHUcjs.d.call(void 0, this._core,t),this}}, _class23),$r=class{constructor(t,r,n){this.branch=t;this._slotBindings=r;this._entryFn=n}unwrap(){if(this._memo===void 0){let t=this.branch.device,{code:r,bindGroupLayouts:n,catchall:a}=Ve({"~resolve":o=>(o.withSlots(this._slotBindings,()=>{o.resolve(this._entryFn)}),""),toString:()=>`computePipeline:${_nullishCoalesce(_chunkODKBWWHUcjs.c.call(void 0, this), () => ("<unnamed>"))}`},{names:this.branch.nameRegistry,jitTranspiler:this.branch.jitTranspiler});a!==null&&_optionalChain([n, 'access', _96 => _96[a[0]], 'optionalAccess', _97 => _97.$name, 'call', _98 => _98(`${_nullishCoalesce(_chunkODKBWWHUcjs.c.call(void 0, this), () => ("<unnamed>"))} - Automatic Bind Group & Layout`)]),this._memo={pipeline:t.createComputePipeline({label:_nullishCoalesce(_chunkODKBWWHUcjs.c.call(void 0, this), () => ("<unnamed>")),layout:t.createPipelineLayout({label:`${_nullishCoalesce(_chunkODKBWWHUcjs.c.call(void 0, this), () => ("<unnamed>"))} - Pipeline Layout`,bindGroupLayouts:n.map(o=>this.branch.unwrap(o))}),compute:{module:t.createShaderModule({label:`${_nullishCoalesce(_chunkODKBWWHUcjs.c.call(void 0, this), () => ("<unnamed>"))} - Shader`,code:r})}}),bindGroupLayouts:n,catchall:a}}return this._memo}};function Lr(e,t="vertex"){return new Er(e,t)}function $t(e){return _optionalChain([e, 'optionalAccess', _99 => _99.resourceType])==="vertex-layout"}var kr=Symbol("defaultAttribEntry");function Vt(e,t,r,n,a){if(_chunkODKBWWHUcjs.K.call(void 0, t)||_chunkFHOQ6WZEcjs.g.call(void 0, t)){let o=_chunkFHOQ6WZEcjs.h.call(void 0, t);return o!==void 0&&(n[_nullishCoalesce(a, () => (kr))]=o),Vt(e,t.inner,_chunkFHOQ6WZEcjs.a.call(void 0, r,_chunkFHOQ6WZEcjs.$.call(void 0, t)),n)}if(_chunkODKBWWHUcjs.C.call(void 0, t)){let o=r;return Object.fromEntries(Object.entries(t.propTypes).map(([s,i])=>{o=_chunkFHOQ6WZEcjs.a.call(void 0, o,_chunkFHOQ6WZEcjs._.call(void 0, i));let l=[s,Vt(e,i,o,n,s)];return o+=_chunkFHOQ6WZEcjs.ba.call(void 0, i),l}))}if(_chunkFHOQ6WZEcjs.f.call(void 0, t)){let o=r;return Object.fromEntries(Object.entries(t.propTypes).map(([s,i])=>{o=_chunkFHOQ6WZEcjs.a.call(void 0, o,_chunkFHOQ6WZEcjs.$.call(void 0, i));let l=[s,Vt(e,i,o,n,s)];return o+=_chunkFHOQ6WZEcjs.ba.call(void 0, i),l}))}if("type"in t&&typeof t.type=="string"){if(_chunkFHOQ6WZEcjs.b.includes(t.type))return{_layout:e,format:t.type,offset:r};let o=_chunkFHOQ6WZEcjs.c[t.type];if(o)return{_layout:e,format:o,offset:r}}throw new Error(`Unsupported data used in vertex layout: ${String(t)}`)}var Er= (_class24 =class{constructor(t,r){;_class24.prototype.__init51.call(this);_class24.prototype.__init52.call(this);this.schemaForCount=t;this.stepMode=r;let n=t(0);this.stride=_chunkFHOQ6WZEcjs.a.call(void 0, _chunkFHOQ6WZEcjs.ba.call(void 0, n.elementType),_chunkFHOQ6WZEcjs._.call(void 0, n)),this.attrib=Vt(this,n.elementType,0,this._customLocationMap)}__init51() {this.resourceType="vertex-layout"}__init52() {this._customLocationMap={}}get vertexLayout(){if(this._customLocationMap[kr]!==void 0){if(typeof this.attrib.format!="string"||typeof this.attrib.offset!="number")throw new Error("Single attribute vertex layouts must have a format and offset.");return{arrayStride:this.stride,stepMode:this.stepMode,attributes:[{format:this.attrib.format,offset:this.attrib.offset,shaderLocation:this._customLocationMap[kr]}]}}if(!Object.keys(this.attrib).every(r=>this._customLocationMap[r]!==void 0))throw new Error("All attributes must have custom locations in order to unwrap a vertex layout.");return{arrayStride:this.stride,stepMode:this.stepMode,attributes:[...Object.entries(this.attrib).map(([r,n])=>({format:n.format,offset:n.offset,shaderLocation:this._customLocationMap[r]}))]}}$name(t){return _chunkODKBWWHUcjs.d.call(void 0, this,t),this}}, _class24);function _a(e){return typeof _optionalChain([e, 'optionalAccess', _100 => _100.loadOp])=="string"}function qn(e,t){if(_chunkFHOQ6WZEcjs.i.call(void 0, e)){if(!_a(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 Oa(e){return typeof _optionalChain([e, 'optionalAccess', _101 => _101.format])=="string"}function Jn(e,t){if(_chunkFHOQ6WZEcjs.i.call(void 0, e)){if(_chunkODKBWWHUcjs.L.call(void 0, e))return[];if(!Oa(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 Yn(e){return new _r(new Or(e),{})}function Qn(e){let t=e;return _optionalChain([t, 'optionalAccess', _102 => _102.resourceType])==="render-pipeline"&&!!t[_chunkODKBWWHUcjs.a]}var _r= (_class25 =class e{__init53() {this.resourceType="render-pipeline"}constructor(t,r){;_class25.prototype.__init53.call(this);this[_chunkODKBWWHUcjs.a]={core:t,priors:r},this[_chunkODKBWWHUcjs.b]=t}$name(t){return _chunkODKBWWHUcjs.d.call(void 0, this[_chunkODKBWWHUcjs.a].core,t),this}with(t,r){let n=this[_chunkODKBWWHUcjs.a];if(Ut(t))return new e(n.core,{...n.priors,bindGroupLayoutMap:new Map([..._nullishCoalesce(n.priors.bindGroupLayoutMap, () => ([])),[t,r]])});if($t(t))return new e(n.core,{...n.priors,vertexLayoutMap:new Map([..._nullishCoalesce(n.priors.vertexLayoutMap, () => ([])),[t,r]])});throw new Error("Unsupported value passed into .with()")}withColorAttachment(t){let r=this[_chunkODKBWWHUcjs.a];return new e(r.core,{...r.priors,colorAttachment:t})}withDepthStencilAttachment(t){let r=this[_chunkODKBWWHUcjs.a];return new e(r.core,{...r.priors,depthStencilAttachment:t})}draw(t,r,n,a){let o=this[_chunkODKBWWHUcjs.a],s=o.core.unwrap(),{branch:i,fragmentFn:l}=o.core.options,d={colorAttachments:qn(l.shell.targets,_nullishCoalesce(o.priors.colorAttachment, () => ({}))).map(T=>X(T.view)?{...T,view:i.unwrap(T.view).createView()}:T)},g=_chunkODKBWWHUcjs.c.call(void 0, o.core);if(g!==void 0&&(d.label=g),o.priors.depthStencilAttachment!==void 0){let T=o.priors.depthStencilAttachment;X(T.view)?d.depthStencilAttachment={...T,view:i.unwrap(T.view).createView()}:d.depthStencilAttachment=T}let c=i.commandEncoder.beginRenderPass(d);c.setPipeline(s.pipeline);let y=new Set(s.bindGroupLayouts);s.bindGroupLayouts.forEach((T,D)=>{if(s.catchall&&D===s.catchall[0])c.setBindGroup(D,i.unwrap(s.catchall[1])),y.delete(T);else{let ke=_optionalChain([o, 'access', _103 => _103.priors, 'access', _104 => _104.bindGroupLayoutMap, 'optionalAccess', _105 => _105.get, 'call', _106 => _106(T)]);ke!==void 0&&(y.delete(T),c.setBindGroup(D,i.unwrap(ke)))}});let x=new Set(o.core.usedVertexLayouts);if(o.core.usedVertexLayouts.forEach((T,D)=>{let ke=_optionalChain([o, 'access', _107 => _107.priors, 'access', _108 => _108.vertexLayoutMap, 'optionalAccess', _109 => _109.get, 'call', _110 => _110(T)]);ke&&(x.delete(T),c.setVertexBuffer(D,i.unwrap(ke)))}),y.size>0)throw new (0, _chunkODKBWWHUcjs.k)(y);if(x.size>0)throw new (0, _chunkODKBWWHUcjs.l)(x);c.draw(t,r,n,a),c.end(),i.flush()}}, _class25),Or=class{constructor(t){this.options=t;let r=Tn(t.vertexFn.shell.attributes[0],t.vertexAttribs);this._vertexBufferLayouts=r.bufferDefinitions,this.usedVertexLayouts=r.usedVertexLayouts,this._targets=Jn(t.fragmentFn.shell.targets,t.targets)}unwrap(){if(this._memo===void 0){let{branch:t,vertexFn:r,fragmentFn:n,slotBindings:a,primitiveState:o,depthStencilState:s,multisampleState:i}=this.options,{code:l,bindGroupLayouts:u,catchall:d}=Ve({"~resolve":h=>(h.withSlots(a,()=>{h.resolve(r),h.resolve(n)}),""),toString:()=>`renderPipeline:${_nullishCoalesce(_chunkODKBWWHUcjs.c.call(void 0, this), () => ("<unnamed>"))}`},{names:t.nameRegistry,jitTranspiler:t.jitTranspiler});d!==null&&_optionalChain([u, 'access', _111 => _111[d[0]], 'optionalAccess', _112 => _112.$name, 'call', _113 => _113(`${_nullishCoalesce(_chunkODKBWWHUcjs.c.call(void 0, this), () => ("<unnamed>"))} - Automatic Bind Group & Layout`)]);let g=t.device,c=g.createShaderModule({label:`${_nullishCoalesce(_chunkODKBWWHUcjs.c.call(void 0, this), () => ("<unnamed>"))} - Shader`,code:l}),y={layout:g.createPipelineLayout({label:`${_nullishCoalesce(_chunkODKBWWHUcjs.c.call(void 0, this), () => ("<unnamed>"))} - Pipeline Layout`,bindGroupLayouts:u.map(h=>t.unwrap(h))}),vertex:{module:c,buffers:this._vertexBufferLayouts},fragment:{module:c,targets:this._targets}},x=_chunkODKBWWHUcjs.c.call(void 0, this);x!==void 0&&(y.label=x),o&&(y.primitive=o),s&&(y.depthStencil=s),i&&(y.multisample=i),this._memo={pipeline:g.createRenderPipeline(y),bindGroupLayouts:u,catchall:d}}return this._memo}};var Gr=class e{constructor(t,r){this._getRoot=t;this._slotBindings=r}with(t,r){return new e(this._getRoot,[...this._slotBindings,[ge(t)?t.slot:t,r]])}withCompute(t){return new Wr(this._getRoot(),this._slotBindings,t)}withVertex(t,r){return new Mr({branch:this._getRoot(),primitiveState:void 0,depthStencilState:void 0,slotBindings:this._slotBindings,vertexFn:t,vertexAttribs:r,multisampleState:void 0})}},Wr=class{constructor(t,r,n){this._root=t;this._slotBindings=r;this._entryFn=n}createPipeline(){return Kn(this._root,this._slotBindings,this._entryFn)}},Mr=class{constructor(t){this._options=t}withFragment(t,r,n){return _chunkODKBWWHUcjs.f.call(void 0, typeof t!="string","Just type mismatch validation"),_chunkODKBWWHUcjs.f.call(void 0, typeof r!="string","Just type mismatch validation"),new Nr({...this._options,fragmentFn:t,targets:r})}},Nr=class e{constructor(t){this._options=t}withPrimitive(t){return new e({...this._options,primitiveState:t})}withDepthStencil(t){return new e({...this._options,depthStencilState:t})}withMultisample(t){return new e({...this._options,multisampleState:t})}createPipeline(){return Yn(this._options)}},kt= (_class26 =class extends Gr{constructor(r,n,a,o){super(()=>this,[]);_class26.prototype.__init54.call(this);_class26.prototype.__init55.call(this);_class26.prototype.__init56.call(this);_class26.prototype.__init57.call(this);;this.device=r;this.nameRegistry=n;this.jitTranspiler=a;this._ownDevice=o;this["~unstable"]=this}__init54() {this._disposables=[]}__init55() {this._unwrappedBindGroupLayouts=new tt(r=>r.unwrap(this))}__init56() {this._unwrappedBindGroups=new tt(r=>r.unwrap(this))}__init57() {this._commandEncoder=null}get commandEncoder(){return this._commandEncoder||(this._commandEncoder=this.device.createCommandEncoder()),this._commandEncoder}createBuffer(r,n){let a=Fn(this,r,n);return this._disposables.push(a),a}createUniform(r,n){return this.createBuffer(r,n).$usage("uniform").as("uniform")}createMutable(r,n){return this.createBuffer(r,n).$usage("storage").as("mutable")}createReadonly(r,n){return this.createBuffer(r,n).$usage("storage").as("readonly")}createBindGroup(r,n){return new Pe(r,n)}destroy(){for(let r of this._disposables)r.destroy();this._ownDevice&&this.device.destroy()}createTexture(r){let n=Cn(r,this);return this._disposables.push(n),n}unwrap(r){if(Hn(r))return r[_chunkODKBWWHUcjs.a].rawPipeline;if(Qn(r))return r[_chunkODKBWWHUcjs.a].core.unwrap().pipeline;if(Ut(r))return this._unwrappedBindGroupLayouts.getOrMake(r);if(Fr(r))return this._unwrappedBindGroups.getOrMake(r);if(ae(r))return r.buffer;if(X(r))return r[_chunkODKBWWHUcjs.a].unwrap();if(Ze(r)){if(r[_chunkODKBWWHUcjs.a].unwrap)return r[_chunkODKBWWHUcjs.a].unwrap();throw new Error("Cannot unwrap laid-out texture view.")}if(et(r)){if(r[_chunkODKBWWHUcjs.a].unwrap)return r[_chunkODKBWWHUcjs.a].unwrap();throw new Error("Cannot unwrap laid-out texture view.")}if($t(r))return r.vertexLayout;if(Ye(r)){if(r[_chunkODKBWWHUcjs.a].unwrap)return r[_chunkODKBWWHUcjs.a].unwrap(this);throw new Error("Cannot unwrap laid-out sampler.")}if(Qe(r)){if(r[_chunkODKBWWHUcjs.a].unwrap)return r[_chunkODKBWWHUcjs.a].unwrap(this);throw new Error("Cannot unwrap laid-out comparison sampler.")}throw new Error(`Unknown resource type: ${r}`)}beginRenderPass(r,n){let a=this.commandEncoder.beginRenderPass(r),o=new Map,s=new Map,i,l=()=>{if(!i)throw new Error("Cannot draw without a call to pass.setPipeline");let{core:u,priors:d}=i[_chunkODKBWWHUcjs.a],g=u.unwrap();a.setPipeline(g.pipeline);let c=new Set(g.bindGroupLayouts);g.bindGroupLayouts.forEach((x,h)=>{if(g.catchall&&h===g.catchall[0])a.setBindGroup(h,this.unwrap(g.catchall[1])),c.delete(x);else{let T=_nullishCoalesce(_optionalChain([d, 'access', _114 => _114.bindGroupLayoutMap, 'optionalAccess', _115 => _115.get, 'call', _116 => _116(x)]), () => (o.get(x)));T!==void 0&&(c.delete(x),Fr(T)?a.setBindGroup(h,this.unwrap(T)):a.setBindGroup(h,T))}});let y=new Set;if(u.usedVertexLayouts.forEach((x,h)=>{let T=_optionalChain([d, 'access', _117 => _117.vertexLayoutMap, 'optionalAccess', _118 => _118.get, 'call', _119 => _119(x)]),D=T?{buffer:T,offset:void 0,size:void 0}:s.get(x);!D||!D.buffer?y.add(x):ae(D.buffer)?a.setVertexBuffer(h,this.unwrap(D.buffer),D.offset,D.size):a.setVertexBuffer(h,D.buffer,D.offset,D.size)}),c.size>0)throw new (0, _chunkODKBWWHUcjs.k)(c);if(y.size>0)throw new (0, _chunkODKBWWHUcjs.l)(y)};n({setViewport(...u){a.setViewport(...u)},setScissorRect(...u){a.setScissorRect(...u)},setBlendConstant(...u){a.setBlendConstant(...u)},setStencilReference(...u){a.setStencilReference(...u)},beginOcclusionQuery(...u){a.beginOcclusionQuery(...u)},endOcclusionQuery(...u){a.endOcclusionQuery(...u)},executeBundles(...u){a.executeBundles(...u)},setPipeline(u){i=u},setIndexBuffer:(u,d,g,c)=>{ae(u)?a.setIndexBuffer(this.unwrap(u),d,g,c):a.setIndexBuffer(u,d,g,c)},setVertexBuffer(u,d,g,c){s.set(u,{buffer:d,offset:g,size:c})},setBindGroup(u,d){o.set(u,d)},draw(u,d,g,c){l(),a.draw(u,d,g,c)},drawIndexed(...u){l(),a.drawIndexed(...u)},drawIndirect(...u){l(),a.drawIndirect(...u)},drawIndexedIndirect(...u){l(),a.drawIndexedIndirect(...u)}}),a.end()}flush(){this._commandEncoder&&(this.device.queue.submit([this._commandEncoder.finish()]),this._commandEncoder=null)}}, _class26);async function Xn(e){let{adapter:t,device:r,unstable_names:n="random",unstable_jitTranspiler:a}=_nullishCoalesce(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 kt(await o.requestDevice(r),n==="random"?new ie:new ue,a,!0)}function Zn(e){let{device:t,unstable_names:r="random",unstable_jitTranspiler:n}=_nullishCoalesce(e, () => ({}));return new kt(t,r==="random"?new ie:new ue,n,!1)}function Et(e){return new jr(e)}var jr= (_class27 =class{constructor(t=void 0){;_class27.prototype.__init58.call(this);this.defaultValue=t}__init58() {this.resourceType="slot"}$name(t){return _chunkODKBWWHUcjs.d.call(void 0, this,t),this}areEqual(t,r){return Object.is(t,r)}toString(){return`slot:${_nullishCoalesce(_chunkODKBWWHUcjs.c.call(void 0, this), () => ("<unnamed>"))}`}get value(){let t=_chunkODKBWWHUcjs.o.call(void 0, );if(!t)throw new Error("Cannot access tgpu.slot's value outside of resolution.");return ze(t.unwrap(this))}}, _class27);function ea(e,t){return new zr(e,t)}var zr= (_class28 =class{constructor(t,r=void 0){;_class28.prototype.__init59.call(this);this.schema=t;this.defaultValue=r;this.slot=Et(r),this[_chunkODKBWWHUcjs.b]=this.slot}__init59() {this.resourceType="accessor"}$name(t){return this.slot.$name(t),this}toString(){return`accessor:${_nullishCoalesce(_chunkODKBWWHUcjs.c.call(void 0, this), () => ("<unnamed>"))}`}get value(){if(!_chunkODKBWWHUcjs.o.call(void 0, ))throw new Error("Cannot access tgpu.accessor's value outside of resolution.");return new Proxy({"~resolve":r=>r.resolve(this),toString:()=>`.value:${_nullishCoalesce(_chunkODKBWWHUcjs.c.call(void 0, this), () => ("<unnamed>"))}`,[_chunkODKBWWHUcjs.a]:{dataType:this.schema}},Y)}"~resolve"(t){let r=t.unwrap(this.slot);return lt(r)?t.resolve(r):Pr(r)?`${t.resolve(r)}()`:t.resolveValue(r,this.schema)}}, _class28);function ta(e){return Wa(e)}function Ga([e,t]){return`${_nullishCoalesce(_chunkODKBWWHUcjs.c.call(void 0, e), () => ("<unnamed>"))}=${t}`}function Wa(e){if(_chunkODKBWWHUcjs.o.call(void 0, ))throw new Error("Cannot create tgpu.derived objects at the resolution stage.");return{resourceType:"derived","~compute":e,[_chunkODKBWWHUcjs.s]:void 0,get value(){let r=_chunkODKBWWHUcjs.o.call(void 0, );if(!r)throw new Error("Cannot access tgpu.derived's value outside of resolution.");return ze(r.unwrap(this))},with(r,n){return ra(this,[[r,n]])},toString(){return"derived"}}}function ra(e,t){return{resourceType:"derived",[_chunkODKBWWHUcjs.s]:void 0,"~compute"(){throw new Error("'~compute' should never be read on bound derived items.")},"~providing":{inner:e,pairs:t},get value(){let n=_chunkODKBWWHUcjs.o.call(void 0, );if(!n)throw new Error("Cannot access tgpu.derived's value outside of resolution.");return ze(n.unwrap(this))},with(n,a){return ra(e,[...t,[n,a]])},toString(){return`derived[${t.map(Ga).join(", ")}]`}}}function na(e,t){return new Lt("private",e,t)}function aa(e){return new Lt("workgroup",e)}var Lt=class{constructor(t,r,n){this.scope=t;this._dataType=r;this._initialValue=n}"~resolve"(t){let r=t.names.makeUnique(_chunkODKBWWHUcjs.c.call(void 0, this));return this._initialValue?t.addDeclaration(`var<${this.scope}> ${r}: ${t.resolve(this._dataType)} = ${t.resolveValue(this._initialValue,this._dataType)};`):t.addDeclaration(`var<${this.scope}> ${r}: ${t.resolve(this._dataType)};`),r}$name(t){return _chunkODKBWWHUcjs.d.call(void 0, this,t),this}toString(){return`var:${_nullishCoalesce(_chunkODKBWWHUcjs.c.call(void 0, this), () => ("<unnamed>"))}`}get value(){if(!_chunkODKBWWHUcjs.r.call(void 0, ))throw new Error("Cannot access tgpu.var's value directly in JS.");return new Proxy({"~resolve":t=>t.resolve(this),toString:()=>`.value:${_nullishCoalesce(_chunkODKBWWHUcjs.c.call(void 0, this), () => ("<unnamed>"))}`,[_chunkODKBWWHUcjs.a]:{dataType:this._dataType}},Y)}};var oa={bindGroupLayout:It,vertexLayout:Lr,init:Xn,initFromDevice:Zn,resolve:zn,"~unstable":{fn:Wn,fragmentFn:Nn,vertexFn:jn,computeFn:Gn,vertexLayout:Lr,derived:ta,slot:Et,accessor:ea,privateVar:na,workgroupVar:aa,const:ln,declare:mn,sampler:An,comparisonSampler:In}},jp= exports.default =oa;Object.assign(oa,{__assignAst:cn,__removedJsImpl:yn});exports.MissingBindGroupsError = _chunkODKBWWHUcjs.k; exports.MissingLinksError = _chunkODKBWWHUcjs.j; exports.MissingSlotValueError = _chunkODKBWWHUcjs.h; exports.MissingVertexBuffersError = _chunkODKBWWHUcjs.l; exports.NotUniformError = _chunkODKBWWHUcjs.i; exports.RandomNameRegistry = ie; exports.ResolutionError = _chunkODKBWWHUcjs.g; exports.StrictNameRegistry = ue; exports.default = jp; exports.isBuffer = ae; exports.isComparisonSampler = Qe; exports.isDerived = q; exports.isSampledTextureView = et; exports.isSampler = Ye; exports.isSlot = H; exports.isStorageTextureView = Ze; exports.isTexture = X; exports.isTgpuFn = Pr; exports.isUsableAsRender = Fa; exports.isUsableAsSampled = Sr; exports.isUsableAsStorage = xe; exports.isUsableAsUniform = xt; exports.isUsableAsVertex = Da; exports.tgpu = oa; exports.unstable_asMutable = mr; exports.unstable_asReadonly = fr; exports.unstable_asUniform = gr;
|
26
30
|
//# sourceMappingURL=index.cjs.map
|