UNPKG

typegpu

Version:

A thin layer between JS and WebGPU/WGSL that improves development experience and allows for faster iteration.

18 lines 110 kB
"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 _chunk7ACLI4JYcjs = require('./chunk-7ACLI4JY.cjs');var _chunkTF6YPHJScjs = require('./chunk-TF6YPHJS.cjs');var _chunkV4CSEIB2cjs = require('./chunk-V4CSEIB2.cjs');function sn(e){if(typeof _optionalChain([e, 'optionalAccess', _2 => _2[_chunkV4CSEIB2cjs.c]])=="function")return e[_chunkV4CSEIB2cjs.c].bind(e)}function dt(e,t){throw new Error(`Failed to handle ${e} at ${t}`)}var pa={f:{1:_chunkV4CSEIB2cjs.ka,2:_chunkV4CSEIB2cjs.ma,3:_chunkV4CSEIB2cjs.ra,4:_chunkV4CSEIB2cjs.wa},h:{1:_chunkV4CSEIB2cjs.la,2:_chunkV4CSEIB2cjs.na,3:_chunkV4CSEIB2cjs.sa,4:_chunkV4CSEIB2cjs.xa},i:{1:_chunkV4CSEIB2cjs.ja,2:_chunkV4CSEIB2cjs.oa,3:_chunkV4CSEIB2cjs.ta,4:_chunkV4CSEIB2cjs.ya},u:{1:_chunkV4CSEIB2cjs.ia,2:_chunkV4CSEIB2cjs.pa,3:_chunkV4CSEIB2cjs.ua,4:_chunkV4CSEIB2cjs.za},b:{1:_chunkV4CSEIB2cjs.ha,2:_chunkV4CSEIB2cjs.qa,3:_chunkV4CSEIB2cjs.va,4:_chunkV4CSEIB2cjs.Aa}},la={vec2f:_chunkV4CSEIB2cjs.ma,vec2h:_chunkV4CSEIB2cjs.na,vec2i:_chunkV4CSEIB2cjs.oa,vec2u:_chunkV4CSEIB2cjs.pa,"vec2<bool>":_chunkV4CSEIB2cjs.qa,vec3f:_chunkV4CSEIB2cjs.ra,vec3h:_chunkV4CSEIB2cjs.sa,vec3i:_chunkV4CSEIB2cjs.ta,vec3u:_chunkV4CSEIB2cjs.ua,"vec3<bool>":_chunkV4CSEIB2cjs.va,vec4f:_chunkV4CSEIB2cjs.wa,vec4h:_chunkV4CSEIB2cjs.xa,vec4i:_chunkV4CSEIB2cjs.ya,vec4u:_chunkV4CSEIB2cjs.za,"vec4<bool>":_chunkV4CSEIB2cjs.Aa,mat2x2f:_chunkV4CSEIB2cjs.Ca,mat3x3f:_chunkV4CSEIB2cjs.Da,mat4x4f:_chunkV4CSEIB2cjs.Ea},un={vec2f:_chunkV4CSEIB2cjs.ka,vec2h:_chunkV4CSEIB2cjs.la,vec2i:_chunkV4CSEIB2cjs.ja,vec2u:_chunkV4CSEIB2cjs.ia,"vec2<bool>":_chunkV4CSEIB2cjs.ha,vec3f:_chunkV4CSEIB2cjs.ka,vec3h:_chunkV4CSEIB2cjs.la,vec3i:_chunkV4CSEIB2cjs.ja,vec3u:_chunkV4CSEIB2cjs.ia,"vec3<bool>":_chunkV4CSEIB2cjs.ha,vec4f:_chunkV4CSEIB2cjs.ka,vec4h:_chunkV4CSEIB2cjs.la,vec4i:_chunkV4CSEIB2cjs.ja,vec4u:_chunkV4CSEIB2cjs.ia,"vec4<bool>":_chunkV4CSEIB2cjs.ha,mat2x2f:_chunkV4CSEIB2cjs.ma,mat3x3f:_chunkV4CSEIB2cjs.ra,mat4x4f:_chunkV4CSEIB2cjs.wa};function je(e,t){if(_chunkV4CSEIB2cjs.K.call(void 0, e)||_chunkV4CSEIB2cjs.W.call(void 0, e))return _nullishCoalesce(e.propTypes[t], () => (_chunkV4CSEIB2cjs.aa));if(e===_chunkV4CSEIB2cjs.ha||_chunkTF6YPHJScjs.c.call(void 0, e))return _chunkV4CSEIB2cjs.aa;let r=t.length;if(_chunkV4CSEIB2cjs.C.call(void 0, e)&&r>=1&&r<=4){let n=e.type.includes("bool")?"b":e.type[4],a=pa[n][r];if(a)return a}return _chunkV4CSEIB2cjs.aa}function Qt(e){return _chunkV4CSEIB2cjs.J.call(void 0, e)||_chunkV4CSEIB2cjs.V.call(void 0, e)?e.elementType:e.type in un?un[e.type]:_chunkV4CSEIB2cjs.aa}function Xt(e){if(/^0x[0-9a-f]+$/i.test(e))return _chunkV4CSEIB2cjs.ba.call(void 0, e,_chunkV4CSEIB2cjs.fa);if(/^0b[01]+$/i.test(e))return _chunkV4CSEIB2cjs.ba.call(void 0, `${Number.parseInt(e.slice(2),2)}`,_chunkV4CSEIB2cjs.fa);if(/^-?(?:\d+\.\d*|\d*\.\d+)$/i.test(e))return _chunkV4CSEIB2cjs.ba.call(void 0, e,_chunkV4CSEIB2cjs.ga);if(/^-?\d+(?:\.\d+)?e-?\d+$/i.test(e))return _chunkV4CSEIB2cjs.ba.call(void 0, e,_chunkV4CSEIB2cjs.ga);if(/^-?\d+$/i.test(e))return _chunkV4CSEIB2cjs.ba.call(void 0, e,_chunkV4CSEIB2cjs.fa)}var Zt={rank:Number.POSITIVE_INFINITY,action:"none"};function Ae(e){return e.type==="decorated"?e.inner:e}function pn(e){return _chunkV4CSEIB2cjs.C.call(void 0, e)?_chunkV4CSEIB2cjs.Ba[e.type]:void 0}function ft(e,t){let r=Ae(e),n=Ae(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(_chunkV4CSEIB2cjs.C.call(void 0, r)&&_chunkV4CSEIB2cjs.C.call(void 0, n)){let a=pn(r),o=pn(n);if(a&&o)return ft(a,o)}return _chunkV4CSEIB2cjs.G.call(void 0, r)&&_chunkV4CSEIB2cjs.G.call(void 0, n)?{rank:0,action:"none"}:Zt}function ma(e,t){let r=Ae(e),n=Ae(t);if(r.type==="ptr"&&ft(r.inner,n).rank<Number.POSITIVE_INFINITY)return{rank:0,action:"deref"};if(n.type==="ptr"&&ft(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,i=n.type;if(o!==i){let s=a[o];return{rank:a[i]<s?10:20,action:"cast",targetType:n}}}return Zt}function da(e,t,r){let n=ft(e,t);return n.rank<Number.POSITIVE_INFINITY?n:r?ma(e,t):Zt}function ln(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=da(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 s=o.get(n).map((u,d)=>({sourceIndex:d,action:u.action,...u.action==="cast"&&{targetType:u.targetType}})),l=s.some(u=>u.action==="cast");return{targetType:n,actions:s,hasImplicitConversions:l}}function er(e){return e.type==="abstractFloat"?_chunkV4CSEIB2cjs.ka:e.type==="abstractInt"?_chunkV4CSEIB2cjs.ja:e}function mn(e,t){if(e.length===0)return;let r=[...new Set(e.map(Ae))],n=t?[...new Set(t.map(Ae))]:r,a=ln(e,n,!1);if(a)return a;let o=ln(e,n,!0);if(o)return o.hasImplicitConversions=o.actions.some(i=>i.action==="cast"),o}function fa(e,t,r,n){if(r.action==="none")return _chunkV4CSEIB2cjs.ba.call(void 0, t.value,n);let a=e.resolve(t.value);switch(r.action){case"ref":return _chunkV4CSEIB2cjs.ba.call(void 0, `&${a}`,n);case"deref":return _chunkV4CSEIB2cjs.ba.call(void 0, `*${a}`,n);case"cast":return _chunkV4CSEIB2cjs.ba.call(void 0, `${e.resolve(n)}(${a})`,n);default:dt(r.action,"applyActionToSnippet")}}function W(e,t,r){let n=t.map(o=>o.dataType);if(n.some(o=>o===_chunkV4CSEIB2cjs.aa))return;let a=mn(n,r);if(a)return a.hasImplicitConversions&&console.warn(`Implicit conversions from [ ${t.map(o=>` ${o.value}: ${o.dataType.type}`).join(`, `)} ] to ${a.targetType.type} are supported, but not recommended. Consider using explicit conversions instead.`),t.map((o,i)=>{let s=a.actions[i];return _chunkV4CSEIB2cjs.h.call(void 0, s,"Action should not be undefined"),fa(e,o,s,a.targetType)})}function tr(e,t,r){return Object.keys(t.propTypes).map(a=>{let o=r[a];if(!o)throw new Error(`Missing property ${a}`);let i=t.propTypes[a];return _nullishCoalesce(_optionalChain([W, 'call', _3 => _3(e,[o],[i]), 'optionalAccess', _4 => _4[0]]), () => (o))})}function fe(e){if(_chunkV4CSEIB2cjs.ca.call(void 0, e))return e;if(_chunkV4CSEIB2cjs.x.call(void 0, e))return _chunkV4CSEIB2cjs.ba.call(void 0, e,e[_chunkV4CSEIB2cjs.b]);if(_chunkV4CSEIB2cjs.z.call(void 0, e)||_chunkV4CSEIB2cjs.D.call(void 0, e))return _chunkV4CSEIB2cjs.ba.call(void 0, e,la[e.kind]);if(Array.isArray(e)){let t=e.map(fe).filter(Boolean),r=_chunkV4CSEIB2cjs.q.call(void 0, );if(!r)throw new Error("Tried to coerce array without a context");let n=W(r,t),a=_optionalChain([mn, 'call', _5 => _5(t.map(o=>o.dataType)), 'optionalAccess', _6 => _6.targetType]);return!n||!a?_chunkV4CSEIB2cjs.ba.call(void 0, e,_chunkV4CSEIB2cjs.aa):_chunkV4CSEIB2cjs.ba.call(void 0, n.map(o=>o.value).join(", "),_chunk7ACLI4JYcjs.X.call(void 0, er(a),e.length))}return typeof e=="string"||typeof e=="function"||typeof e=="object"||typeof e=="symbol"||typeof e>"u"||e===null?_chunkV4CSEIB2cjs.ba.call(void 0, e,_chunkV4CSEIB2cjs.aa):typeof e=="number"||typeof e=="bigint"?_chunkV4CSEIB2cjs.ba.call(void 0, e,_nullishCoalesce(_optionalChain([Xt, 'call', _7 => _7(String(e)), 'optionalAccess', _8 => _8.dataType]), () => (_chunkV4CSEIB2cjs.aa))):typeof e=="boolean"?_chunkV4CSEIB2cjs.ba.call(void 0, e,_chunkV4CSEIB2cjs.ha):_chunkV4CSEIB2cjs.ba.call(void 0, e,_chunkV4CSEIB2cjs.aa)}var q={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(_chunkV4CSEIB2cjs.e.call(void 0, e), () => ("<unnamed>"))}`,[_chunkV4CSEIB2cjs.b]:je(e[_chunkV4CSEIB2cjs.b],String(t))},q)}};function ze(e,t){let r=t,n;for(;n=sn(r);)r=n(e);return r}function dn(e,t){return new rr(e,t)}var rr=class{constructor(t,r){this.dataType=t;this._value=r;this[_chunkV4CSEIB2cjs.a]={dataType:t}}$name(t){return _chunkV4CSEIB2cjs.f.call(void 0, this,t),this}"~resolve"(t){let r=t.names.makeUnique(_chunkV4CSEIB2cjs.e.call(void 0, this)),n=t.resolveValue(this._value,this.dataType);return t.addDeclaration(`const ${r} = ${n};`),r}toString(){return`const:${_nullishCoalesce(_chunkV4CSEIB2cjs.e.call(void 0, this), () => ("<unnamed>"))}`}[_chunkV4CSEIB2cjs.c](){return new Proxy({"~resolve":t=>t.resolve(this),toString:()=>`.value:${_nullishCoalesce(_chunkV4CSEIB2cjs.e.call(void 0, this), () => ("<unnamed>"))}`,[_chunkV4CSEIB2cjs.b]:this.dataType},q)}get value(){return _chunkV4CSEIB2cjs.t.call(void 0, )?this[_chunkV4CSEIB2cjs.c]():this._value}};function Be(e){return _optionalChain([e, 'optionalAccess', _9 => _9.resourceType])==="slot"}function Re(e){return _optionalChain([e, 'optionalAccess', _10 => _10.resourceType])==="derived"}function Ke(e){return _optionalChain([e, 'optionalAccess', _11 => _11["~providing"]])!==void 0}function He(e){return _optionalChain([e, 'optionalAccess', _12 => _12.resourceType])==="accessor"}function nr(e){return typeof _optionalChain([e, 'optionalAccess', _13 => _13["~resolve"]])=="function"}function gt(e){return typeof e=="number"||typeof e=="boolean"||typeof e=="string"||nr(e)||_chunkV4CSEIB2cjs.I.call(void 0, e)||Be(e)||Re(e)||Ke(e)}function fn(e){return!!e&&typeof e=="object"&&"getMappedRange"in e&&"mapAsync"in e}function gn(e){return _optionalChain([e, 'optionalAccess', _14 => _14.resourceType])==="buffer-usage"}function ar(e){return!!_optionalChain([e, 'optionalAccess', _15 => _15[_chunkV4CSEIB2cjs.a]])}function ge(e,t){for(let[r,n]of Object.entries(t))e[r]=n,_chunkV4CSEIB2cjs.g.call(void 0, n)&&_chunkV4CSEIB2cjs.e.call(void 0, n)===void 0&&n.$name(r)}function cn(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 i=n?n[o]:void 0;return _chunkV4CSEIB2cjs.K.call(void 0, a)&&i!==void 0?[[i,a]]:[]})))}function Pe(e,t,r){let n=e.match(/->\s(?<output>[\w\d_]+)\s{/),a=n?_optionalChain([n, 'access', _16 => _16[1], 'optionalAccess', _17 => _17.trim, 'call', _18 => _18()]):void 0;_chunkV4CSEIB2cjs.K.call(void 0, t)&&a&&!/\s/g.test(a)&&r({[a]:t})}function ga(e){return new RegExp(`(?<![\\w\\$_.])${e.replaceAll(".","\\.").replaceAll("$","\\$")}(?![\\w\\$_])`,"g")}function ce(e,t,r){return Object.entries(t).reduce((n,[a,o])=>gt(o)||_chunkV4CSEIB2cjs.U.call(void 0, o)?n.replaceAll(ga(a),e.resolve(o)):o!==null&&typeof o=="object"?(_nullishCoalesce([...r.matchAll(new RegExp(`${a.replaceAll(".","\\.").replaceAll("$","\\$")}\\.(?<prop>.*?)(?![\\w\\$_])`,"g"))].map(s=>s[1]), () => ([]))).reduce((s,l)=>l&&l in o?ce(e,{[`${a}.${l}`]:o[l]},s):s,n):n,r)}function yn(e){return new or(e)}var or= (_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)ge(r,a);let n=ce(t,r,this.declaration);return t.addDeclaration(n),""}toString(){return`declare: ${this.declaration}`}}, _class);var Tn=new WeakMap;function xn(e){return Tn.get(e)}function hn(e,t,r){return Tn.set(e,{ast:t,externals:r}),e}function wn(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.`)}}var _tinyest = require('tinyest'); var Ea = _interopRequireWildcard(_tinyest);function re(e,t){let r=[];typeof t=="string"&&(e.isEntry?(_chunkV4CSEIB2cjs.K.call(void 0, e.argTypes[0])&&r.push({In:e.argTypes[0]}),_chunkV4CSEIB2cjs.K.call(void 0, e.returnType)&&r.push({Out:e.returnType})):(cn(t,e.argTypes,o=>r.push(o)),Pe(t,e.returnType,o=>r.push(o))));let n={applyExternals(o){r.push(o)},resolve(o,i=""){let s={};for(let u of r)ge(s,u);let l=o.names.makeUnique(_chunkV4CSEIB2cjs.e.call(void 0, this));if(typeof t=="string"){let u="";if(e.isEntry){let g=_chunkV4CSEIB2cjs.K.call(void 0, e.argTypes[0])?"(in: In)":"()",c=_chunkV4CSEIB2cjs.I.call(void 0, e.returnType)?_chunk7ACLI4JYcjs.ba.call(void 0, e.returnType):"",y=e.returnType!==_chunkV4CSEIB2cjs.y?_chunkV4CSEIB2cjs.K.call(void 0, e.returnType)?"-> Out":`-> ${c!==""?c:"@location(0)"} ${o.resolve(e.returnType)}`:"";u=`${g} ${y} `}let d=ce(o,s,`${u}${t.trim()}`);o.addDeclaration(`${i}fn ${l}${d}`)}else{let u=xn(t);if(_optionalChain([u, 'optionalAccess', _19 => _19.externals])){let x=Object.fromEntries(Object.entries(u.externals).filter(([w])=>!(w in s)));ge(s,x)}let d=_nullishCoalesce(_optionalChain([u, 'optionalAccess', _20 => _20.ast]), () => (o.transpileFn(String(t)))),g=d.externalNames.filter(x=>!(x in s));if(g.length>0)throw new (0, _chunkV4CSEIB2cjs.l)(_chunkV4CSEIB2cjs.e.call(void 0, this),g);let{head:c,body:y}=o.fnToWgsl({args:e.argTypes.map((x,w)=>_chunkV4CSEIB2cjs.ba.call(void 0, _optionalChain([d, 'access', _21 => _21.params, 'access', _22 => _22[w], 'optionalAccess', _23 => _23.type])===_tinyest.FuncParameterType.identifier?d.params[w].name:`_arg_${w}`,x)),argAliases:Object.fromEntries(d.params.flatMap((x,w)=>x.type===_tinyest.FuncParameterType.destructuredObject?x.props.map(({name:b,alias:U})=>[U,_chunkV4CSEIB2cjs.ba.call(void 0, `_arg_${w}.${b}`,e.argTypes[w].propTypes[b])]):[])),returnType:e.returnType,body:d.body,externalMap:s});o.addDeclaration(`${i}fn ${l}${o.resolve(c)}${o.resolve(y)}`)}return l}},a=_chunkV4CSEIB2cjs.e.call(void 0, t);return a!==void 0&&_chunkV4CSEIB2cjs.f.call(void 0, n,a),n}function ca(e){let t=0;return Object.fromEntries(Object.entries(e).map(([r,n])=>{if(_chunk7ACLI4JYcjs.aa.call(void 0, n))return[r,n];let a=_chunkV4CSEIB2cjs._.call(void 0, n);return a!==void 0?(t=a+1,[r,n]):[r,_chunk7ACLI4JYcjs._.call(void 0, t++,n)]}))}function ne(e){return _chunkV4CSEIB2cjs.$.call(void 0, e)?_chunkV4CSEIB2cjs.T.call(void 0, e)||_chunkV4CSEIB2cjs._.call(void 0, e)!==void 0?e:_chunk7ACLI4JYcjs._.call(void 0, 0,e):_chunk7ACLI4JYcjs.ca.call(void 0, ca(e))}function ae(e,...t){return ya(e)?Ta(e,...t):e}function ya(e){return Array.isArray(e)&&"raw"in e&&Array.isArray(e.raw)&&e.raw.every(t=>typeof t=="string")}function Ta(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?[ne(e.in)]:[],returnType:_chunkV4CSEIB2cjs.y,workgroupSize:[_nullishCoalesce(e.workgroupSize[0], () => (1)),_nullishCoalesce(e.workgroupSize[1], () => (1)),_nullishCoalesce(e.workgroupSize[2], () => (1))],isEntry:!0},r=(n,...a)=>xa(t,e.workgroupSize,ae(n,...a));return Object.assign(Object.assign(r,t),{does:r})}function xa(e,t,r){let n=re(e,r),a=e.argTypes[0];return{shell:e,$uses(o){return n.applyExternals(o),this},[_chunkV4CSEIB2cjs.d]:n,$name(o){return _chunkV4CSEIB2cjs.f.call(void 0, n,o),_chunkV4CSEIB2cjs.g.call(void 0, a)&&a.$name(`${o}_Input`),this},"~resolve"(o){return n.resolve(o,`@compute @workgroup_size(${t.join(", ")}) `)},toString(){return`computeFn:${_nullishCoalesce(_chunkV4CSEIB2cjs.e.call(void 0, n), () => ("<unnamed>"))}`}}}function vn(e,t){let r={[_chunkV4CSEIB2cjs.a]:!0,argTypes:e,returnType:_nullishCoalesce(t, () => (_chunkV4CSEIB2cjs.y)),isEntry:!1},n=(a,...o)=>wa(r,ae(a,...o));return Object.assign(Object.assign(n,r),{does:n})}function ir(e){return!!_optionalChain([e, 'optionalAccess', _24 => _24[_chunkV4CSEIB2cjs.a]])&&_optionalChain([e, 'optionalAccess', _25 => _25.resourceType])==="function"}function ha([e,t]){return`${_nullishCoalesce(_chunkV4CSEIB2cjs.e.call(void 0, e), () => ("<unnamed>"))}=${t}`}function wa(e,t){let r=re(e,t),n={[_chunkV4CSEIB2cjs.a]:{implementation:t,argTypes:e.argTypes},shell:e,resourceType:"function",$uses(i){return r.applyExternals(i),this},[_chunkV4CSEIB2cjs.d]:r,$name(i){return _chunkV4CSEIB2cjs.f.call(void 0, r,i),this},with(i,s){return Dn(o,[[He(i)?i.slot:i,s]])},"~resolve"(i){if(typeof t=="string")return r.resolve(i);let s=i;if(s.callStack===void 0)throw new Error("Cannot resolve a TGSL function outside of a generation context");try{return s.callStack.push(e.returnType),r.resolve(i)}finally{s.callStack.pop()}}},a=_chunkV4CSEIB2cjs.ea.call(void 0, (...i)=>{if(typeof t=="string")throw new Error("Cannot execute on the CPU functions constructed with raw WGSL");return t(...i)},(...i)=>_chunkV4CSEIB2cjs.ba.call(void 0, new ct(o,i.map(s=>s.value)),_nullishCoalesce(e.returnType, () => (_chunkV4CSEIB2cjs.aa))),e.argTypes);a[_chunkV4CSEIB2cjs.a].implementation=t;let o=Object.assign(a,n);return Object.defineProperty(o,"toString",{value(){return`fn:${_nullishCoalesce(_chunkV4CSEIB2cjs.e.call(void 0, r), () => ("<unnamed>"))}`}}),o}function Dn(e,t){let r={[_chunkV4CSEIB2cjs.a]:{implementation:e[_chunkV4CSEIB2cjs.a].implementation,argTypes:e[_chunkV4CSEIB2cjs.a].argTypes},resourceType:"function",shell:e.shell,"~providing":{inner:e,pairs:t},$uses(o){return e.$uses(o),this},[_chunkV4CSEIB2cjs.d]:e,$name(o){return e.$name(o),this},with(o,i){return Dn(a,[...t,[He(o)?o.slot:o,i]])}},n=_chunkV4CSEIB2cjs.ea.call(void 0, (...o)=>e(...o),(...o)=>_chunkV4CSEIB2cjs.ba.call(void 0, new ct(a,o.map(i=>i.value)),_nullishCoalesce(e.shell.returnType, () => (_chunkV4CSEIB2cjs.aa))),e.shell.argTypes),a=Object.assign(n,r);return Object.defineProperty(a,"toString",{value(){return`fn:${_nullishCoalesce(_chunkV4CSEIB2cjs.e.call(void 0, e), () => ("<unnamed>"))}[${t.map(ha).join(", ")}]`}}),a[_chunkV4CSEIB2cjs.a].implementation=e[_chunkV4CSEIB2cjs.a].implementation,a}var ct=class{constructor(t,r){this._fn=t;this._params=r;this[_chunkV4CSEIB2cjs.d]=t}"~resolve"(t){return t.resolve(`${t.resolve(this._fn)}(${this._params.map(r=>t.resolve(r)).join(", ")})`)}toString(){return`call:${_nullishCoalesce(_chunkV4CSEIB2cjs.e.call(void 0, this), () => ("<unnamed>"))}`}};function Fn(e){let t={argTypes:e.in&&Object.keys(e.in).length!==0?[ne(e.in)]:[],targets:e.out,returnType:ne(e.out),isEntry:!0},r=(n,...a)=>ba(t,ae(n,...a));return Object.assign(Object.assign(r,t),{does:r})}function ba(e,t){let r=re(e,t),n=e.returnType,a=e.argTypes[0];return typeof t=="string"&&Pe(t,n,i=>r.applyExternals(i)),{shell:e,outputType:n,$uses(i){return r.applyExternals(i),this},[_chunkV4CSEIB2cjs.d]:r,$name(i){return _chunkV4CSEIB2cjs.f.call(void 0, r,i),_chunkV4CSEIB2cjs.g.call(void 0, n)&&n.$name(`${i}_Output`),_chunkV4CSEIB2cjs.g.call(void 0, a)&&a.$name(`${i}_Input`),this},"~resolve"(i){if(typeof t=="string")return r.resolve(i,"@fragment ");let s=i;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(i,"@fragment ")}finally{s.callStack.pop()}},toString(){return`fragmentFn:${_nullishCoalesce(_chunkV4CSEIB2cjs.e.call(void 0, r), () => ("<unnamed>"))}`}}}function In(e){let t={attributes:[_nullishCoalesce(e.in, () => ({}))],returnType:Object.keys(e.out).length!==0?ne(e.out):void 0,argTypes:e.in&&Object.keys(e.in).length!==0?[ne(e.in)]:[],isEntry:!0},r=(n,...a)=>Sa(t,ae(n,...a));return Object.assign(Object.assign(r,t),{does:r})}function Sa(e,t){let r=re(e,t),n=e.returnType,a=e.argTypes[0];return typeof t=="string"&&Pe(t,n,o=>r.applyExternals(o)),{shell:e,outputType:n,inputType:a,$uses(o){return r.applyExternals(o),this},[_chunkV4CSEIB2cjs.d]:r,$name(o){return _chunkV4CSEIB2cjs.f.call(void 0, r,o),_chunkV4CSEIB2cjs.g.call(void 0, n)&&n.$name(`${o}_Output`),_chunkV4CSEIB2cjs.g.call(void 0, a)&&a.$name(`${o}_Input`),this},"~resolve"(o){if(typeof t=="string")return r.resolve(o,"@vertex ");let i=o;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(o,"@vertex ")}finally{i.callStack.pop()}},toString(){return`vertexFn:${_nullishCoalesce(_chunkV4CSEIB2cjs.e.call(void 0, r), () => ("<unnamed>"))}`}}}var oe= (_class2 =class{constructor() { _class2.prototype.__init2.call(this); }__init2() {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++}`}}, _class2),ie= exports.StrictNameRegistry = (_class3 =class{constructor() { _class3.prototype.__init3.call(this); }__init3() {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}}, _class3);function qe(e){return typeof _optionalChain([e, 'optionalAccess', _26 => _26.format])=="string"}function Un(e,t){let r=[];if(_chunkV4CSEIB2cjs.$.call(void 0, e)){if(!qe(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(_chunkV4CSEIB2cjs._.call(void 0, e), () => (0))}]}]}}let n=[],a=new WeakMap,o=0;for(let[i,s]of Object.entries(e)){if(_chunk7ACLI4JYcjs.aa.call(void 0, s))continue;let l=t[i];if(!l)throw new Error(`An attribute by the name of '${i}' 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(_chunkV4CSEIB2cjs._.call(void 0, s), () => (o)),d.push({format:l.format,offset:l.offset,shaderLocation:o++})}return{usedVertexLayouts:r,bufferDefinitions:n}}var va=["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 Da(e){return va.includes(e.type)}function sr(e,[t,r]){return` ${_chunk7ACLI4JYcjs.ba.call(void 0, r)}${t}: ${e.resolve(r)}, `}function Fa(e,t){let r=e.names.makeUnique(_chunkV4CSEIB2cjs.e.call(void 0, t));return e.addDeclaration(` struct ${r} { ${Object.entries(t.propTypes).map(n=>sr(e,n)).join("")}} `),r}function Ia(e,t){let r=e.names.makeUnique(_chunkV4CSEIB2cjs.e.call(void 0, t));return e.addDeclaration(` struct ${r} { ${Object.entries(t.propTypes).map(n=>qe(n[1])?sr(e,[n[0],_chunk7ACLI4JYcjs.b[n[1].format]]):sr(e,n)).join("")} } `),r}function Ua(e,t){let r=e.resolve(t.elementType);return t.elementCount===0?`array<${r}>`:`array<${r}, ${t.elementCount}>`}function Aa(e,t){let r=e.resolve(qe(t.elementType)?_chunk7ACLI4JYcjs.b[t.elementType.format]:t.elementType);return t.elementCount===0?`array<${r}>`:`array<${r}, ${t.elementCount}>`}function ur(e,t){if(_chunkV4CSEIB2cjs.U.call(void 0, t))return t.type==="unstruct"?Ia(e,t):t.type==="disarray"?Aa(e,t):t.type==="loose-decorated"?e.resolve(qe(t.inner)?_chunk7ACLI4JYcjs.b[t.inner.format]:t.inner):e.resolve(_chunk7ACLI4JYcjs.b[t.type]);if(Da(t))return t.type;if(t.type==="struct")return Fa(e,t);if(t.type==="array")return Ua(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");dt(t,"resolveData")}var _typedbinary = require('typed-binary');function Ba(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 R=Ba;var An=new WeakMap;function yt(e){let t=An.get(e);if(t)return t;let r=new _typedbinary.Measurer,n={},a;for(let o in e.propTypes){let i=e.propTypes[o];if(i===void 0)throw new Error(`Property ${o} is undefined in struct`);let s=r.size;R(r,_chunkV4CSEIB2cjs.W.call(void 0, e)?_chunk7ACLI4JYcjs.T.call(void 0, i):_chunk7ACLI4JYcjs.S.call(void 0, i)),a&&(a.padding=r.size-s);let l=_chunk7ACLI4JYcjs.V.call(void 0, i);n[o]={offset:r.size,size:l},a=n[o],r.add(l)}return a&&(a.padding=_chunk7ACLI4JYcjs.a.call(void 0, _chunk7ACLI4JYcjs.V.call(void 0, e),_chunk7ACLI4JYcjs.S.call(void 0, e))-r.size),An.set(e,n),n}var xt=(()=>{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"},mr={u32:"setUint32",i32:"setInt32",f32:"setFloat32"};function Tt(e,t,r){if(_chunkV4CSEIB2cjs.M.call(void 0, e)||_chunkV4CSEIB2cjs.S.call(void 0, e))return Tt(e.inner,t,r);if(_chunkV4CSEIB2cjs.K.call(void 0, e)||_chunkV4CSEIB2cjs.W.call(void 0, e)){let a=yt(e),o=Object.entries(a).sort((s,l)=>s[1].offset-l[1].offset),i="";for(let[s,l]of o){let u=e.propTypes[s];u&&(i+=Tt(u,`(${t} + ${l.offset})`,`${r}.${s}`))}return i}if(_chunkV4CSEIB2cjs.J.call(void 0, e)||_chunkV4CSEIB2cjs.V.call(void 0, e)){let a=e,o=_chunk7ACLI4JYcjs.a.call(void 0, _chunk7ACLI4JYcjs.V.call(void 0, a.elementType),_chunk7ACLI4JYcjs.S.call(void 0, a.elementType)),i="";return i+=`for (let i = 0; i < ${a.elementCount}; i++) { `,i+=Tt(a.elementType,`(${t} + i * ${o})`,`${r}[i]`),i+=`} `,i}if(_chunkV4CSEIB2cjs.C.call(void 0, e)){let a=lr[e.type],o="",i=mr[a],s=["x","y","z","w"],l=_chunkV4CSEIB2cjs.A.call(void 0, e)?2:_chunkV4CSEIB2cjs.B.call(void 0, e)?3:4;for(let u=0;u<l;u++)o+=`output.${i}((${t} + ${u*4}), ${r}.${s[u]}, littleEndian); `;return o}if(_chunkV4CSEIB2cjs.G.call(void 0, e)){let a=lr[e.type],o=mr[a],i=_chunkV4CSEIB2cjs.E.call(void 0, e)?2:_chunkV4CSEIB2cjs.F.call(void 0, e)?3:4,s=i*i,l=_chunk7ACLI4JYcjs.a.call(void 0, i*4,8),u="";for(let d=0;d<s;d++){let g=Math.floor(d/i),c=d%i,y=g*l+c*4;u+=`output.${o}((${t} + ${y}), ${r}.columns[${g}].${["x","y","z","w"][c]}, littleEndian); `}return u}let n=lr[e.type];return`output.${mr[n]}(${t}, ${r}, littleEndian); `}function ht(e){if(pr.has(e))return pr.get(e);let t=Tt(e,"offset","value"),r=new Function("output","offset","value","littleEndian=true",t);return pr.set(e,r),r}var Ce={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=_chunk7ACLI4JYcjs.S.call(void 0, t);R(e,n);for(let[a,o]of Object.entries(t.propTypes))R(e,_chunk7ACLI4JYcjs.S.call(void 0, o)),se(e,o,r[a]);R(e,n)},array(e,t,r){if(t.elementCount===0)throw new Error("Cannot write using a runtime-sized schema.");let n=_chunk7ACLI4JYcjs.S.call(void 0, t);R(e,n);let a=e.currentByteOffset;for(let o=0;o<Math.min(t.elementCount,r.length);o++)R(e,n),se(e,t.elementType,r[o]);e.seekTo(a+_chunk7ACLI4JYcjs.V.call(void 0, t))},ptr(){throw new Error("Pointers are not host-shareable")},atomic(e,t,r){_optionalChain([Ce, 'access', _27 => _27[t.inner.type], 'optionalCall', _28 => _28(e,t,r)])},decorated(e,t,r){let n=_chunk7ACLI4JYcjs.T.call(void 0, t);R(e,n);let a=e.currentByteOffset;_optionalChain([Ce, 'access', _29 => _29[_optionalChain([t, 'access', _30 => _30.inner, 'optionalAccess', _31 => _31.type])], 'optionalCall', _32 => _32(e,t.inner,r)]),e.seekTo(a+_chunk7ACLI4JYcjs.V.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=_chunk7ACLI4JYcjs.S.call(void 0, t);R(e,n);let a=e.currentByteOffset;for(let o=0;o<Math.min(t.elementCount,r.length);o++)R(e,n),_optionalChain([Ce, 'access', _33 => _33[_optionalChain([t, 'access', _34 => _34.elementType, 'optionalAccess', _35 => _35.type])], 'optionalCall', _36 => _36(e,t.elementType,r[o])]);e.seekTo(a+_chunk7ACLI4JYcjs.V.call(void 0, t))},unstruct(e,t,r){for(let[n,a]of Object.entries(t.propTypes))_optionalChain([Ce, 'access', _37 => _37[a.type], 'optionalCall', _38 => _38(e,a,r[n])])},"loose-decorated"(e,t,r){let n=_chunk7ACLI4JYcjs.T.call(void 0, t);R(e,n);let a=e.currentByteOffset,o=Ce[_optionalChain([t, 'access', _39 => _39.inner, 'optionalAccess', _40 => _40.type])];return _optionalChain([o, 'optionalCall', _41 => _41(e,t.inner,r)]),e.seekTo(a+_chunk7ACLI4JYcjs.V.call(void 0, t)),r}};function se(e,t,r){let n=Ce[t.type];if(!n)throw new Error(`Cannot write data of type '${t.type}'.`);n(e,t,r)}var ye={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 _chunkV4CSEIB2cjs.ma.call(void 0, e.readFloat32(),e.readFloat32())},vec3f(e){return _chunkV4CSEIB2cjs.ra.call(void 0, e.readFloat32(),e.readFloat32(),e.readFloat32())},vec4f(e){return _chunkV4CSEIB2cjs.wa.call(void 0, e.readFloat32(),e.readFloat32(),e.readFloat32(),e.readFloat32())},vec2h(e){return _chunkV4CSEIB2cjs.na.call(void 0, e.readFloat16(),e.readFloat16())},vec3h(e){return _chunkV4CSEIB2cjs.sa.call(void 0, e.readFloat16(),e.readFloat16(),e.readFloat16())},vec4h(e){return _chunkV4CSEIB2cjs.xa.call(void 0, e.readFloat16(),e.readFloat16(),e.readFloat16(),e.readFloat16())},vec2i(e){return _chunkV4CSEIB2cjs.oa.call(void 0, e.readInt32(),e.readInt32())},vec3i(e){return _chunkV4CSEIB2cjs.ta.call(void 0, e.readInt32(),e.readInt32(),e.readInt32())},vec4i(e){return _chunkV4CSEIB2cjs.ya.call(void 0, e.readInt32(),e.readInt32(),e.readInt32(),e.readInt32())},vec2u(e){return _chunkV4CSEIB2cjs.pa.call(void 0, e.readUint32(),e.readUint32())},vec3u(e){return _chunkV4CSEIB2cjs.ua.call(void 0, e.readUint32(),e.readUint32(),e.readUint32())},vec4u(e){return _chunkV4CSEIB2cjs.za.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 _chunkV4CSEIB2cjs.Ca.call(void 0, e.readFloat32(),e.readFloat32(),e.readFloat32(),e.readFloat32())},mat3x3f(e){let t=()=>{let r=e.readFloat32();return e.readFloat32(),r};return _chunkV4CSEIB2cjs.Da.call(void 0, e.readFloat32(),e.readFloat32(),t(),e.readFloat32(),e.readFloat32(),t(),e.readFloat32(),e.readFloat32(),t())},mat4x4f(e){return _chunkV4CSEIB2cjs.Ea.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=_chunk7ACLI4JYcjs.S.call(void 0, t);R(e,r);let n={};for(let[a,o]of Object.entries(t.propTypes))R(e,_chunk7ACLI4JYcjs.S.call(void 0, o)),n[a]=N(e,o);return R(e,r),n},array(e,t){if(t.elementCount===0)throw new Error("Cannot read using a runtime-sized schema.");let r=_chunk7ACLI4JYcjs.S.call(void 0, t),n=[];for(let a=0;a<t.elementCount;a++){R(e,r);let o=t.elementType,i=N(e,o);n.push(i)}return R(e,r),n},ptr(){throw new Error("Pointers are not host-shareable")},atomic(e,t){return N(e,t.inner)},decorated(e,t){let r=_chunk7ACLI4JYcjs.T.call(void 0, t);R(e,r);let n=e.currentByteOffset,a=N(e,t.inner);return e.seekTo(n+_chunk7ACLI4JYcjs.V.call(void 0, t)),a},uint8:e=>e.readUint8(),uint8x2:e=>_chunkV4CSEIB2cjs.pa.call(void 0, e.readUint8(),e.readUint8()),uint8x4:e=>_chunkV4CSEIB2cjs.za.call(void 0, e.readUint8(),e.readUint8(),e.readUint8(),e.readUint8()),sint8:e=>e.readInt8(),sint8x2:e=>_chunkV4CSEIB2cjs.oa.call(void 0, e.readInt8(),e.readInt8()),sint8x4:e=>_chunkV4CSEIB2cjs.ya.call(void 0, e.readInt8(),e.readInt8(),e.readInt8(),e.readInt8()),unorm8:e=>e.readUint8()/255,unorm8x2:e=>_chunkV4CSEIB2cjs.ma.call(void 0, e.readUint8()/255,e.readUint8()/255),unorm8x4:e=>_chunkV4CSEIB2cjs.wa.call(void 0, e.readUint8()/255,e.readUint8()/255,e.readUint8()/255,e.readUint8()/255),snorm8:e=>(e.readUint8()-128)/127,snorm8x2:e=>_chunkV4CSEIB2cjs.ma.call(void 0, (e.readUint8()-128)/127,(e.readUint8()-128)/127),snorm8x4:e=>_chunkV4CSEIB2cjs.wa.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=>_chunkV4CSEIB2cjs.pa.call(void 0, e.readUint16(),e.readUint16()),uint16x4:e=>_chunkV4CSEIB2cjs.za.call(void 0, e.readUint16(),e.readUint16(),e.readUint16(),e.readUint16()),sint16:e=>e.readInt16(),sint16x2:e=>_chunkV4CSEIB2cjs.oa.call(void 0, e.readInt16(),e.readInt16()),sint16x4:e=>_chunkV4CSEIB2cjs.ya.call(void 0, e.readInt16(),e.readInt16(),e.readInt16(),e.readInt16()),unorm16:e=>e.readUint16()/65535,unorm16x2:e=>_chunkV4CSEIB2cjs.ma.call(void 0, e.readUint16()/65535,e.readUint16()/65535),unorm16x4:e=>_chunkV4CSEIB2cjs.wa.call(void 0, e.readUint16()/65535,e.readUint16()/65535,e.readUint16()/65535,e.readUint16()/65535),snorm16:e=>(e.readUint16()-32768)/32767,snorm16x2:e=>_chunkV4CSEIB2cjs.ma.call(void 0, ye.snorm16(e),ye.snorm16(e)),snorm16x4:e=>_chunkV4CSEIB2cjs.wa.call(void 0, ye.snorm16(e),ye.snorm16(e),ye.snorm16(e),ye.snorm16(e)),float16(e){return e.readFloat16()},float16x2:e=>_chunkV4CSEIB2cjs.ma.call(void 0, e.readFloat16(),e.readFloat16()),float16x4:e=>_chunkV4CSEIB2cjs.wa.call(void 0, e.readFloat16(),e.readFloat16(),e.readFloat16(),e.readFloat16()),float32:e=>e.readFloat32(),float32x2:e=>_chunkV4CSEIB2cjs.ma.call(void 0, e.readFloat32(),e.readFloat32()),float32x3:e=>_chunkV4CSEIB2cjs.ra.call(void 0, e.readFloat32(),e.readFloat32(),e.readFloat32()),float32x4:e=>_chunkV4CSEIB2cjs.wa.call(void 0, e.readFloat32(),e.readFloat32(),e.readFloat32(),e.readFloat32()),uint32:e=>e.readUint32(),uint32x2:e=>_chunkV4CSEIB2cjs.pa.call(void 0, e.readUint32(),e.readUint32()),uint32x3:e=>_chunkV4CSEIB2cjs.ua.call(void 0, e.readUint32(),e.readUint32(),e.readUint32()),uint32x4:e=>_chunkV4CSEIB2cjs.za.call(void 0, e.readUint32(),e.readUint32(),e.readUint32(),e.readUint32()),sint32:e=>e.readInt32(),sint32x2:e=>_chunkV4CSEIB2cjs.oa.call(void 0, e.readInt32(),e.readInt32()),sint32x3:e=>_chunkV4CSEIB2cjs.ta.call(void 0, e.readInt32(),e.readInt32(),e.readInt32()),sint32x4:e=>_chunkV4CSEIB2cjs.ya.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 _chunkV4CSEIB2cjs.wa.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 _chunkV4CSEIB2cjs.wa.call(void 0, n,r,t,a)},unstruct(e,t){let r={};for(let[n,a]of Object.entries(t.propTypes))r[n]=N(e,a);return r},disarray(e,t){let r=_chunk7ACLI4JYcjs.S.call(void 0, t),n=[];for(let a=0;a<t.elementCount;a++)R(e,r),n.push(N(e,t.elementType));return R(e,r),n},"loose-decorated"(e,t){R(e,_chunk7ACLI4JYcjs.T.call(void 0, t));let r=e.currentByteOffset,n=N(e,t.inner);return e.seekTo(r+_chunk7ACLI4JYcjs.V.call(void 0, t)),n}};function N(e,t){let r=ye[t.type];if(!r)throw new Error(`Cannot read data of type '${t.type}'.`);return r(e,t)}function Bn(e,t){let r=_chunk7ACLI4JYcjs.V.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 i(u,d,g,c){if(d!=null){if(_chunkV4CSEIB2cjs.K.call(void 0, u)||_chunkV4CSEIB2cjs.W.call(void 0, u)){let y=yt(u);for(let[x,w]of Object.entries(y)){let b=u.propTypes[x];if(!b)continue;let U=d[x];U!==void 0&&i(b,U,g+w.offset,_nullishCoalesce(w.padding, () => (c)))}return}if(_chunkV4CSEIB2cjs.J.call(void 0, u)||_chunkV4CSEIB2cjs.V.call(void 0, u)){let y=u,x=_chunk7ACLI4JYcjs.a.call(void 0, _chunk7ACLI4JYcjs.V.call(void 0, y.elementType),_chunk7ACLI4JYcjs.S.call(void 0, y.elementType));if(!Array.isArray(d))throw new Error("Partial value for array must be an array");let w=_nullishCoalesce(d, () => ([]));w.sort((b,U)=>b.idx-U.idx);for(let{idx:b,value:U}of w)i(y.elementType,U,g+b*x,x-_chunk7ACLI4JYcjs.V.call(void 0, y.elementType))}else{let y=_chunk7ACLI4JYcjs.V.call(void 0, u);a.seekTo(g),se(a,u,d),o.push({start:g,end:g+y,padding:c})}}}if(i(e,t,0),o.length===0)return[];let s=[],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):(s.push({data:new Uint8Array(n,l.start,l.end-l.start)}),l=d)}if(!l)throw new Error("Internal error: missing segment");return s.push({data:new Uint8Array(n,l.start,l.end-l.start)}),s}function Te(e){return!!_optionalChain([e, 'optionalAccess', _42 => _42.usableAsStorage])}var Je=class e extends Error{constructor(t){super(`Resource '${_nullishCoalesce(_chunkV4CSEIB2cjs.e.call(void 0, t), () => ("<unnamed>"))}' cannot be bound as 'storage'. Use .$usage('storage') to allow it.`),Object.setPrototypeOf(this,e.prototype)}};function wt(e){return!!e.usableAsUniform}var Vn={uniform:"uniform",mutable:"storage, read_write",readonly:"storage, read"},Ye= (_class4 =class{constructor(t,r){;_class4.prototype.__init4.call(this);this.usage=t;this.buffer=r;this[_chunkV4CSEIB2cjs.a]={dataType:r.dataType},this[_chunkV4CSEIB2cjs.d]=r}__init4() {this.resourceType="buffer-usage"}$name(t){return this.buffer.$name(t),this}"~resolve"(t){let r=t.names.makeUnique(_chunkV4CSEIB2cjs.e.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(_chunkV4CSEIB2cjs.e.call(void 0, this), () => ("<unnamed>"))}`}[_chunkV4CSEIB2cjs.c](){return new Proxy({"~resolve":t=>t.resolve(this),toString:()=>`.value:${_nullishCoalesce(_chunkV4CSEIB2cjs.e.call(void 0, this), () => ("<unnamed>"))}`,[_chunkV4CSEIB2cjs.b]:this.buffer.dataType},q)}get value(){if(!_chunkV4CSEIB2cjs.t.call(void 0, ))throw new Error("Cannot access buffer's value directly in JS.");return this[_chunkV4CSEIB2cjs.c]()}}, _class4),Qe= (_class5 =class{constructor(t,r,n){;_class5.prototype.__init5.call(this);this.usage=t;this.dataType=r;this._membership=n;this[_chunkV4CSEIB2cjs.a]={dataType:r},_chunkV4CSEIB2cjs.f.call(void 0, this,n.key)}__init5() {this.resourceType="buffer-usage"}"~resolve"(t){let r=t.names.makeUnique(_chunkV4CSEIB2cjs.e.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(_chunkV4CSEIB2cjs.e.call(void 0, this), () => ("<unnamed>"))}`}[_chunkV4CSEIB2cjs.c](){return new Proxy({"~resolve":t=>t.resolve(this),toString:()=>`.value:${_nullishCoalesce(_chunkV4CSEIB2cjs.e.call(void 0, this), () => ("<unnamed>"))}`,[_chunkV4CSEIB2cjs.b]:this.dataType},q)}get value(){if(!_chunkV4CSEIB2cjs.t.call(void 0, ))throw new Error("Cannot access buffer's value directly in JS.");return this[_chunkV4CSEIB2cjs.c]()}}, _class5),Rn=new WeakMap;function dr(e){if(!Te(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=Rn.get(e);return t||(t=new Ye("mutable",e),Rn.set(e,t)),t}var Pn=new WeakMap;function fr(e){if(!Te(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=Pn.get(e);return t||(t=new Ye("readonly",e),Pn.set(e,t)),t}var Cn=new WeakMap;function gr(e){if(!wt(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=Cn.get(e);return t||(t=new Ye("uniform",e),Cn.set(e,t)),t}var $a={uniform:gr,mutable:dr,readonly:fr};function kn(e,t,r){return _chunkV4CSEIB2cjs.I.call(void 0, t)?new bt(e,t,r):new bt(e,t,r,["storage","uniform"])}function ue(e){return e.resourceType==="buffer"}function ka(e){return!!e.usableAsVertex}var $n=_typedbinary.getSystemEndianness.call(void 0, ),bt= (_class6 =class{constructor(t,r,n,a){;_class6.prototype.__init6.call(this);_class6.prototype.__init7.call(this);_class6.prototype.__init8.call(this);_class6.prototype.__init9.call(this);_class6.prototype.__init10.call(this);_class6.prototype.__init11.call(this);_class6.prototype.__init12.call(this);this._group=t;this.dataType=r;this.initialOrBuffer=n;this._disallowedUsages=a;fn(n)?(this._ownBuffer=!1,this._buffer=n):(this._ownBuffer=!0,this.initial=n)}__init6() {this.resourceType="buffer"}__init7() {this.flags=GPUBufferUsage.COPY_DST|GPUBufferUsage.COPY_SRC}__init8() {this._buffer=null}__init9() {this._destroyed=!1}__init10() {this.usableAsUniform=!1}__init11() {this.usableAsStorage=!1}__init12() {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:_chunk7ACLI4JYcjs.V.call(void 0, this.dataType),usage:this.flags,mappedAtCreation:!!this.initial,label:_nullishCoalesce(_chunkV4CSEIB2cjs.e.call(void 0, this), () => ("<unnamed>"))}),this.initial)){let r=new (0, _typedbinary.BufferWriter)(this._buffer.getMappedRange());se(r,this.dataType,this.initial),this._buffer.unmap()}return this._buffer}get destroyed(){return this._destroyed}$name(t){return _chunkV4CSEIB2cjs.f.call(void 0, this,t),this._buffer&&(this._buffer.label=t),this}$usage(...t){for(let r of t){if(_optionalChain([this, 'access', _43 => _43._disallowedUsages, 'optionalAccess', _44 => _44.includes, 'call', _45 => _45(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(xt)ht(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(xt){ht(this.dataType)(new DataView(o),0,t,$n==="little");return}se(new (0, _typedbinary.BufferWriter)(o),this.dataType,t);return}let a=_chunk7ACLI4JYcjs.V.call(void 0, this.dataType);this._hostBuffer||(this._hostBuffer=new ArrayBuffer(a)),this._group.flush(),xt?ht(this.dataType)(new DataView(this._hostBuffer),0,t,$n==="little"):se(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=Bn(this.dataType,t);if(r.mapState==="mapped"){let o=r.getMappedRange(),i=new Uint8Array(o);for(let s of a)i.set(s.data,s.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=_chunk7ACLI4JYcjs.V.call(void 0, this.dataType);this._group.commandEncoder.copyBufferToBuffer(t.buffer,0,this.buffer,0,r)}async read(){this._group.flush();let t=this.buffer,r=this._group.device;if(t.mapState==="mapped"){let i=t.getMappedRange();return N(new (0, _typedbinary.BufferReader)(i),this.dataType)}if(t.usage&GPUBufferUsage.MAP_READ){await t.mapAsync(GPUMapMode.READ);let i=t.getMappedRange(),s=N(new (0, _typedbinary.BufferReader)(i),this.dataType);return t.unmap(),s}let n=r.createBuffer({size:_chunk7ACLI4JYcjs.V.call(void 0, this.dataType),usage:GPUBufferUsage.COPY_DST|GPUBufferUsage.MAP_READ}),a=r.createCommandEncoder();a.copyBufferToBuffer(t,0,n,0,_chunk7ACLI4JYcjs.V.call(void 0, this.dataType)),r.queue.submit([a.finish()]),await r.queue.onSubmittedWorkDone(),await n.mapAsync(GPUMapMode.READ,0,_chunk7ACLI4JYcjs.V.call(void 0, this.dataType));let o=N(new (0, _typedbinary.BufferReader)(n.getMappedRange()),this.dataType);return n.unmap(),n.destroy(),o}as(t){return _optionalChain([$a, 'access', _46 => _46[t], 'optionalCall', _47 => _47(this)])}destroy(){this._destroyed||(this._destroyed=!0,this._ownBuffer&&_optionalChain([this, 'access', _48 => _48._buffer, 'optionalAccess', _49 => _49.destroy, 'call', _50 => _50()]))}toString(){return`buffer:${_nullishCoalesce(_chunkV4CSEIB2cjs.e.call(void 0, th