@aardworx/wombat.rendering 0.6.0 → 0.7.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -1,15 +1,76 @@
1
- import type { IBuffer } from "./buffer.js";
1
+ import type { aval } from "@aardworx/wombat.adaptive";
2
+ import { IBuffer } from "./buffer.js";
3
+ import type { ElementType } from "./elementType.js";
2
4
  export interface BufferView {
3
- readonly buffer: IBuffer;
4
- /** Byte offset into `buffer` where the view starts. */
5
- readonly offset: number;
6
- /** Number of elements (not bytes) in the view. */
7
- readonly count: number;
8
- /** Stride between consecutive elements, in bytes. */
9
- readonly stride: number;
10
- /** Vertex format — used when bound as a vertex / instance attribute. */
11
- readonly format: GPUVertexFormat | GPUIndexFormat;
12
- /** Index format — used when bound as an index buffer. Overrides `format`. */
13
- readonly indexFormat?: GPUIndexFormat;
5
+ /** Adaptive buffer source — content changes flow through this aval. */
6
+ readonly buffer: aval<IBuffer>;
7
+ /** Element kind. Stride defaults from this when `stride` is 0/undefined. */
8
+ readonly elementType: ElementType;
9
+ /** Byte offset into `buffer` where the view starts. Default 0. */
10
+ readonly offset?: number;
11
+ /** Stride between consecutive elements in bytes. 0 = tight (= `byteSize(elementType)`). */
12
+ readonly stride?: number;
13
+ /** Integer attributes treated as normalized fixed-point floats. Default false. */
14
+ readonly normalized?: boolean;
15
+ /**
16
+ * Present iff this view was constructed from a single adaptive
17
+ * value (see `BufferView.ofValue`). Lets the backend lower the
18
+ * binding to a uniform instead of a per-vertex/per-instance
19
+ * attribute.
20
+ */
21
+ readonly singleValue?: aval<unknown>;
14
22
  }
23
+ interface WombatArrayLike {
24
+ readonly buffer: ArrayBufferLike;
25
+ readonly length: number;
26
+ }
27
+ interface OfArrayOptions {
28
+ readonly elementType?: ElementType;
29
+ readonly offset?: number;
30
+ readonly stride?: number;
31
+ readonly normalized?: boolean;
32
+ }
33
+ interface OfGPUOptions {
34
+ readonly offset?: number;
35
+ readonly stride?: number;
36
+ readonly normalized?: boolean;
37
+ }
38
+ export declare const BufferView: {
39
+ /**
40
+ * Build a view from a wombat.base packed array (`V3fArray`,
41
+ * `Uint16Array`, …) or an `aval<…>` of one. The element type is
42
+ * inferred from the array constructor; pass it explicitly via
43
+ * `opts.elementType` for unusual cases.
44
+ */
45
+ readonly ofArray: <T extends WombatArrayLike | ArrayBufferView>(a: aval<T> | T, opts?: OfArrayOptions) => BufferView;
46
+ /**
47
+ * Build a view that broadcasts a single adaptive value to every
48
+ * vertex / instance. The runtime detects the `singleValue` field
49
+ * and lowers it to a uniform binding instead of a per-element
50
+ * attribute. The `buffer` aval still carries packed bytes for
51
+ * backends that don't recognize the fast path.
52
+ */
53
+ readonly ofValue: <T>(v: aval<T> | T, elementType: ElementType) => BufferView;
54
+ /**
55
+ * Build a view backed by a user-supplied `GPUBuffer`. The
56
+ * runtime binds it directly without an upload step.
57
+ */
58
+ readonly ofGPU: (buffer: aval<GPUBuffer> | GPUBuffer, elementType: ElementType, opts?: OfGPUOptions) => BufferView;
59
+ /**
60
+ * Wrap an already-built `aval<IBuffer>` with explicit element
61
+ * type. Used by callers that compute their own `IBuffer` (e.g.
62
+ * compositing multiple attributes into one packed buffer).
63
+ */
64
+ readonly ofBuffer: (buffer: aval<IBuffer>, elementType: ElementType, opts?: OfGPUOptions) => BufferView;
65
+ /** Byte offset, defaulting to 0. */
66
+ readonly offsetOf: (v: BufferView) => number;
67
+ /**
68
+ * Stride in bytes — `v.stride` if set and non-zero, otherwise
69
+ * tight from `elementType`.
70
+ */
71
+ readonly strideOf: (v: BufferView) => number;
72
+ /** Whether this view is a single-value broadcast. */
73
+ readonly isSingleValue: (v: BufferView) => boolean;
74
+ };
75
+ export {};
15
76
  //# sourceMappingURL=bufferView.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"bufferView.d.ts","sourceRoot":"","sources":["../../src/core/bufferView.ts"],"names":[],"mappings":"AAWA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,aAAa,CAAC;AAE3C,MAAM,WAAW,UAAU;IACzB,QAAQ,CAAC,MAAM,EAAE,OAAO,CAAC;IACzB,uDAAuD;IACvD,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;IACxB,kDAAkD;IAClD,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC;IACvB,qDAAqD;IACrD,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;IACxB,wEAAwE;IACxE,QAAQ,CAAC,MAAM,EAAE,eAAe,GAAG,cAAc,CAAC;IAClD,6EAA6E;IAC7E,QAAQ,CAAC,WAAW,CAAC,EAAE,cAAc,CAAC;CACvC"}
1
+ {"version":3,"file":"bufferView.d.ts","sourceRoot":"","sources":["../../src/core/bufferView.ts"],"names":[],"mappings":"AAmBA,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,2BAA2B,CAAC;AAEtD,OAAO,EAAE,OAAO,EAAE,MAAM,aAAa,CAAC;AACtC,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,kBAAkB,CAAC;AAGpD,MAAM,WAAW,UAAU;IACzB,uEAAuE;IACvE,QAAQ,CAAC,MAAM,EAAE,IAAI,CAAC,OAAO,CAAC,CAAC;IAC/B,4EAA4E;IAC5E,QAAQ,CAAC,WAAW,EAAE,WAAW,CAAC;IAClC,kEAAkE;IAClE,QAAQ,CAAC,MAAM,CAAC,EAAE,MAAM,CAAC;IACzB,2FAA2F;IAC3F,QAAQ,CAAC,MAAM,CAAC,EAAE,MAAM,CAAC;IACzB,kFAAkF;IAClF,QAAQ,CAAC,UAAU,CAAC,EAAE,OAAO,CAAC;IAC9B;;;;;OAKG;IACH,QAAQ,CAAC,WAAW,CAAC,EAAE,IAAI,CAAC,OAAO,CAAC,CAAC;CACtC;AAQD,UAAU,eAAe;IACvB,QAAQ,CAAC,MAAM,EAAE,eAAe,CAAC;IACjC,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;CACzB;AA+CD,UAAU,cAAc;IACtB,QAAQ,CAAC,WAAW,CAAC,EAAE,WAAW,CAAC;IACnC,QAAQ,CAAC,MAAM,CAAC,EAAE,MAAM,CAAC;IACzB,QAAQ,CAAC,MAAM,CAAC,EAAE,MAAM,CAAC;IACzB,QAAQ,CAAC,UAAU,CAAC,EAAE,OAAO,CAAC;CAC/B;AAED,UAAU,YAAY;IACpB,QAAQ,CAAC,MAAM,CAAC,EAAE,MAAM,CAAC;IACzB,QAAQ,CAAC,MAAM,CAAC,EAAE,MAAM,CAAC;IACzB,QAAQ,CAAC,UAAU,CAAC,EAAE,OAAO,CAAC;CAC/B;AAOD,eAAO,MAAM,UAAU;IACrB;;;;;OAKG;uBACK,CAAC,SAAS,eAAe,GAAG,eAAe,KAC9C,IAAI,CAAC,CAAC,CAAC,GAAG,CAAC,SACR,cAAc,KACnB,UAAU;IAoBb;;;;;;OAMG;uBACK,CAAC,KACJ,IAAI,CAAC,CAAC,CAAC,GAAG,CAAC,eACD,WAAW,KACvB,UAAU;IAeb;;;OAGG;6BAEO,IAAI,CAAC,SAAS,CAAC,GAAG,SAAS,eACtB,WAAW,SAClB,YAAY,KACjB,UAAU;IAYb;;;;OAIG;gCAEO,IAAI,CAAC,OAAO,CAAC,eACR,WAAW,SAClB,YAAY,KACjB,UAAU;IAYb,oCAAoC;2BACxB,UAAU,KAAG,MAAM;IAC/B;;;OAGG;2BACS,UAAU,KAAG,MAAM;IAK/B,qDAAqD;gCACpC,UAAU,KAAG,OAAO;CAG7B,CAAC"}
@@ -1,12 +1,228 @@
1
1
  // BufferView — a typed slice of an `IBuffer` used as a vertex
2
- // attribute, instance attribute, or index source. The buffer
3
- // itself can be a real GPU buffer or host-side memory; the
4
- // runtime handles upload transparently.
2
+ // attribute, instance attribute, or index source. Mirrors
3
+ // Aardvark.Rendering's `BufferView`:
5
4
  //
6
- // `format` carries the WebGPU vertex format when this view is
7
- // bound as a vertex / instance attribute. `indexFormat` is set
8
- // when the view is bound as an index buffer; in that case
9
- // `format` is ignored. Both are optional so callers don't have
10
- // to fill in the irrelevant one.
11
- export {};
5
+ // - `buffer` is `aval<IBuffer>` so per-frame content changes flow
6
+ // through normal aval marking without reshaping the view.
7
+ // - `elementType` carries the element kind; the backend derives
8
+ // `GPUVertexFormat` / `GPUIndexFormat` and a default stride from
9
+ // it.
10
+ // - `singleValue` is set when the view was constructed from a
11
+ // single adaptive value broadcast to all instances/vertices —
12
+ // the runtime can lower it to a uniform binding instead of a
13
+ // per-vertex/per-instance attribute.
14
+ //
15
+ // The view itself is plain (not wrapped in `aval`). Structural
16
+ // fields — `elementType`, `offset`, `stride`, `normalized` — are
17
+ // eager so the binding plan / pipeline layout can be computed
18
+ // without forcing.
19
+ import { AVal } from "@aardworx/wombat.adaptive";
20
+ import { IBuffer } from "./buffer.js";
21
+ import { ElementType as ElementTypeRegistry } from "./elementType.js";
22
+ function inferElementType(arr) {
23
+ // wombat.base packed types — discover via class name. These all
24
+ // have a distinct `constructor.name` and a `buffer: ArrayBuffer`
25
+ // backing field.
26
+ const ctor = arr.constructor;
27
+ const name = ctor?.name;
28
+ switch (name) {
29
+ case "V2fArray": return "v2f";
30
+ case "V3fArray": return "v3f";
31
+ case "V4fArray": return "v4f";
32
+ case "V2iArray": return "v2i";
33
+ case "V3iArray": return "v3i";
34
+ case "V4iArray": return "v4i";
35
+ case "V2uiArray": return "v2u";
36
+ case "V3uiArray": return "v3u";
37
+ case "V4uiArray": return "v4u";
38
+ // Native typed arrays.
39
+ case "Float32Array": return "f32";
40
+ case "Uint32Array": return "u32";
41
+ case "Int32Array": return "i32";
42
+ case "Uint16Array": return "u16";
43
+ case "Int16Array": return "i16";
44
+ case "Uint8Array": return "u8";
45
+ case "Int8Array": return "i8";
46
+ }
47
+ throw new Error(`BufferView.ofArray: cannot infer ElementType from ${name ?? "unknown type"}; ` +
48
+ `pass elementType explicitly`);
49
+ }
50
+ function arrayToHostBytes(arr) {
51
+ // wombat.base packed types expose `.buffer: ArrayBuffer` covering
52
+ // exactly the packed bytes.
53
+ const a = arr;
54
+ if (a.buffer instanceof ArrayBuffer)
55
+ return a.buffer;
56
+ // Native typed array — pass through.
57
+ if (ArrayBuffer.isView(arr))
58
+ return arr;
59
+ throw new Error("BufferView.ofArray: unsupported array source");
60
+ }
61
+ function isAval(v) {
62
+ return typeof v === "object" && v !== null
63
+ && typeof v.getValue === "function";
64
+ }
65
+ export const BufferView = {
66
+ /**
67
+ * Build a view from a wombat.base packed array (`V3fArray`,
68
+ * `Uint16Array`, …) or an `aval<…>` of one. The element type is
69
+ * inferred from the array constructor; pass it explicitly via
70
+ * `opts.elementType` for unusual cases.
71
+ */
72
+ ofArray(a, opts = {}) {
73
+ const adaptive = isAval(a) ? a : AVal.constant(a);
74
+ // Determine element type — eager. We force the aval ONCE here
75
+ // to discover the array kind, which is structural; subsequent
76
+ // changes are expected to keep the same kind.
77
+ /* allow-force */
78
+ const sample = adaptive.force();
79
+ const elementType = opts.elementType ?? inferElementType(sample);
80
+ const buffer = adaptive.map((arr) => IBuffer.fromHost(arrayToHostBytes(arr)));
81
+ return {
82
+ buffer,
83
+ elementType,
84
+ ...(opts.offset !== undefined ? { offset: opts.offset } : {}),
85
+ ...(opts.stride !== undefined ? { stride: opts.stride } : {}),
86
+ ...(opts.normalized !== undefined ? { normalized: opts.normalized } : {}),
87
+ };
88
+ },
89
+ /**
90
+ * Build a view that broadcasts a single adaptive value to every
91
+ * vertex / instance. The runtime detects the `singleValue` field
92
+ * and lowers it to a uniform binding instead of a per-element
93
+ * attribute. The `buffer` aval still carries packed bytes for
94
+ * backends that don't recognize the fast path.
95
+ */
96
+ ofValue(v, elementType) {
97
+ const adaptive = isAval(v) ? v : AVal.constant(v);
98
+ const buffer = adaptive.map((value) => {
99
+ const bytes = ElementTypeRegistry.byteSize(elementType);
100
+ const ab = new ArrayBuffer(bytes);
101
+ packSingle(value, elementType, ab);
102
+ return IBuffer.fromHost(ab);
103
+ });
104
+ return {
105
+ buffer,
106
+ elementType,
107
+ singleValue: adaptive,
108
+ };
109
+ },
110
+ /**
111
+ * Build a view backed by a user-supplied `GPUBuffer`. The
112
+ * runtime binds it directly without an upload step.
113
+ */
114
+ ofGPU(buffer, elementType, opts = {}) {
115
+ const adaptive = isAval(buffer) ? buffer : AVal.constant(buffer);
116
+ const ibuffer = adaptive.map((b) => IBuffer.fromGPU(b));
117
+ return {
118
+ buffer: ibuffer,
119
+ elementType,
120
+ ...(opts.offset !== undefined ? { offset: opts.offset } : {}),
121
+ ...(opts.stride !== undefined ? { stride: opts.stride } : {}),
122
+ ...(opts.normalized !== undefined ? { normalized: opts.normalized } : {}),
123
+ };
124
+ },
125
+ /**
126
+ * Wrap an already-built `aval<IBuffer>` with explicit element
127
+ * type. Used by callers that compute their own `IBuffer` (e.g.
128
+ * compositing multiple attributes into one packed buffer).
129
+ */
130
+ ofBuffer(buffer, elementType, opts = {}) {
131
+ return {
132
+ buffer,
133
+ elementType,
134
+ ...(opts.offset !== undefined ? { offset: opts.offset } : {}),
135
+ ...(opts.stride !== undefined ? { stride: opts.stride } : {}),
136
+ ...(opts.normalized !== undefined ? { normalized: opts.normalized } : {}),
137
+ };
138
+ },
139
+ // ---------- accessors ----------
140
+ /** Byte offset, defaulting to 0. */
141
+ offsetOf(v) { return v.offset ?? 0; },
142
+ /**
143
+ * Stride in bytes — `v.stride` if set and non-zero, otherwise
144
+ * tight from `elementType`.
145
+ */
146
+ strideOf(v) {
147
+ return v.stride !== undefined && v.stride > 0
148
+ ? v.stride
149
+ : ElementTypeRegistry.byteSize(v.elementType);
150
+ },
151
+ /** Whether this view is a single-value broadcast. */
152
+ isSingleValue(v) {
153
+ return v.singleValue !== undefined;
154
+ },
155
+ };
156
+ // ---------------------------------------------------------------------------
157
+ // Single-value packing — write one element of `elementType` into a
158
+ // fresh ArrayBuffer. The runtime usually shortcuts this via
159
+ // `singleValue` (lifted to a uniform), so this path runs only for
160
+ // backends that don't recognize the broadcast.
161
+ // ---------------------------------------------------------------------------
162
+ function packSingle(value, t, dst) {
163
+ // Lazy import to avoid a hard dep on wombat.base shapes here. We
164
+ // peek at `_data` (the typed-array view exposed by every wombat
165
+ // math type) and copy its bytes into the destination.
166
+ const v = value;
167
+ if (v._data !== undefined) {
168
+ const src = v._data;
169
+ switch (t) {
170
+ case "v2f":
171
+ case "v3f":
172
+ case "v4f":
173
+ case "m22f":
174
+ case "m33f":
175
+ case "m44f":
176
+ case "f32": {
177
+ const out = new Float32Array(dst);
178
+ for (let i = 0; i < src.length; i++)
179
+ out[i] = src[i];
180
+ return;
181
+ }
182
+ case "v2i":
183
+ case "v3i":
184
+ case "v4i":
185
+ case "i32": {
186
+ const out = new Int32Array(dst);
187
+ for (let i = 0; i < src.length; i++)
188
+ out[i] = src[i];
189
+ return;
190
+ }
191
+ case "v2u":
192
+ case "v3u":
193
+ case "v4u":
194
+ case "u32": {
195
+ const out = new Uint32Array(dst);
196
+ for (let i = 0; i < src.length; i++)
197
+ out[i] = src[i];
198
+ return;
199
+ }
200
+ }
201
+ }
202
+ // Scalars and unbranded values.
203
+ switch (t) {
204
+ case "f32":
205
+ new Float32Array(dst)[0] = value;
206
+ return;
207
+ case "u32":
208
+ new Uint32Array(dst)[0] = value;
209
+ return;
210
+ case "i32":
211
+ new Int32Array(dst)[0] = value;
212
+ return;
213
+ case "u16":
214
+ new Uint16Array(dst)[0] = value;
215
+ return;
216
+ case "i16":
217
+ new Int16Array(dst)[0] = value;
218
+ return;
219
+ case "u8":
220
+ new Uint8Array(dst)[0] = value;
221
+ return;
222
+ case "i8":
223
+ new Int8Array(dst)[0] = value;
224
+ return;
225
+ }
226
+ throw new Error(`BufferView.ofValue: cannot pack ${typeof value} as ${t}`);
227
+ }
12
228
  //# sourceMappingURL=bufferView.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"bufferView.js","sourceRoot":"","sources":["../../src/core/bufferView.ts"],"names":[],"mappings":"AAAA,8DAA8D;AAC9D,6DAA6D;AAC7D,2DAA2D;AAC3D,wCAAwC;AACxC,EAAE;AACF,8DAA8D;AAC9D,+DAA+D;AAC/D,0DAA0D;AAC1D,+DAA+D;AAC/D,iCAAiC"}
1
+ {"version":3,"file":"bufferView.js","sourceRoot":"","sources":["../../src/core/bufferView.ts"],"names":[],"mappings":"AAAA,8DAA8D;AAC9D,0DAA0D;AAC1D,qCAAqC;AACrC,EAAE;AACF,oEAAoE;AACpE,8DAA8D;AAC9D,kEAAkE;AAClE,qEAAqE;AACrE,UAAU;AACV,gEAAgE;AAChE,kEAAkE;AAClE,iEAAiE;AACjE,yCAAyC;AACzC,EAAE;AACF,+DAA+D;AAC/D,iEAAiE;AACjE,8DAA8D;AAC9D,mBAAmB;AAGnB,OAAO,EAAE,IAAI,EAAE,MAAM,2BAA2B,CAAC;AACjD,OAAO,EAAE,OAAO,EAAE,MAAM,aAAa,CAAC;AAEtC,OAAO,EAAE,WAAW,IAAI,mBAAmB,EAAE,MAAM,kBAAkB,CAAC;AAiCtE,SAAS,gBAAgB,CAAC,GAAY;IACpC,gEAAgE;IAChE,iEAAiE;IACjE,iBAAiB;IACjB,MAAM,IAAI,GAAI,GAA2C,CAAC,WAAW,CAAC;IACtE,MAAM,IAAI,GAAG,IAAI,EAAE,IAAI,CAAC;IACxB,QAAQ,IAAI,EAAE,CAAC;QACb,KAAK,UAAU,CAAC,CAAC,OAAO,KAAK,CAAC;QAC9B,KAAK,UAAU,CAAC,CAAC,OAAO,KAAK,CAAC;QAC9B,KAAK,UAAU,CAAC,CAAC,OAAO,KAAK,CAAC;QAC9B,KAAK,UAAU,CAAC,CAAC,OAAO,KAAK,CAAC;QAC9B,KAAK,UAAU,CAAC,CAAC,OAAO,KAAK,CAAC;QAC9B,KAAK,UAAU,CAAC,CAAC,OAAO,KAAK,CAAC;QAC9B,KAAK,WAAW,CAAC,CAAC,OAAO,KAAK,CAAC;QAC/B,KAAK,WAAW,CAAC,CAAC,OAAO,KAAK,CAAC;QAC/B,KAAK,WAAW,CAAC,CAAC,OAAO,KAAK,CAAC;QAC/B,uBAAuB;QACvB,KAAK,cAAc,CAAC,CAAC,OAAO,KAAK,CAAC;QAClC,KAAK,aAAa,CAAC,CAAE,OAAO,KAAK,CAAC;QAClC,KAAK,YAAY,CAAC,CAAG,OAAO,KAAK,CAAC;QAClC,KAAK,aAAa,CAAC,CAAE,OAAO,KAAK,CAAC;QAClC,KAAK,YAAY,CAAC,CAAG,OAAO,KAAK,CAAC;QAClC,KAAK,YAAY,CAAC,CAAG,OAAO,IAAI,CAAC;QACjC,KAAK,WAAW,CAAC,CAAI,OAAO,IAAI,CAAC;IACnC,CAAC;IACD,MAAM,IAAI,KAAK,CACb,qDAAqD,IAAI,IAAI,cAAc,IAAI;QAC/E,6BAA6B,CAC9B,CAAC;AACJ,CAAC;AAED,SAAS,gBAAgB,CAAC,GAAY;IACpC,kEAAkE;IAClE,4BAA4B;IAC5B,MAAM,CAAC,GAAG,GAA2B,CAAC;IACtC,IAAI,CAAC,CAAC,MAAM,YAAY,WAAW;QAAE,OAAO,CAAC,CAAC,MAAM,CAAC;IACrD,qCAAqC;IACrC,IAAI,WAAW,CAAC,MAAM,CAAC,GAAsB,CAAC;QAAE,OAAO,GAAsB,CAAC;IAC9E,MAAM,IAAI,KAAK,CAAC,8CAA8C,CAAC,CAAC;AAClE,CAAC;AAmBD,SAAS,MAAM,CAAI,CAAU;IAC3B,OAAO,OAAO,CAAC,KAAK,QAAQ,IAAI,CAAC,KAAK,IAAI;WACrC,OAAQ,CAA4B,CAAC,QAAQ,KAAK,UAAU,CAAC;AACpE,CAAC;AAED,MAAM,CAAC,MAAM,UAAU,GAAG;IACxB;;;;;OAKG;IACH,OAAO,CACL,CAAc,EACd,OAAuB,EAAE;QAEzB,MAAM,QAAQ,GAAG,MAAM,CAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC;QACrD,8DAA8D;QAC9D,8DAA8D;QAC9D,8CAA8C;QAC9C,iBAAiB;QACjB,MAAM,MAAM,GAAG,QAAQ,CAAC,KAAK,EAAE,CAAC;QAChC,MAAM,WAAW,GAAG,IAAI,CAAC,WAAW,IAAI,gBAAgB,CAAC,MAAM,CAAC,CAAC;QACjE,MAAM,MAAM,GAAG,QAAQ,CAAC,GAAG,CAAC,CAAC,GAAG,EAAW,EAAE,CAC3C,OAAO,CAAC,QAAQ,CAAC,gBAAgB,CAAC,GAAG,CAAC,CAAC,CACxC,CAAC;QACF,OAAO;YACL,MAAM;YACN,WAAW;YACX,GAAG,CAAC,IAAI,CAAC,MAAM,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,MAAM,EAAE,IAAI,CAAC,MAAM,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;YAC7D,GAAG,CAAC,IAAI,CAAC,MAAM,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,MAAM,EAAE,IAAI,CAAC,MAAM,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;YAC7D,GAAG,CAAC,IAAI,CAAC,UAAU,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,UAAU,EAAE,IAAI,CAAC,UAAU,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;SAC1E,CAAC;IACJ,CAAC;IAED;;;;;;OAMG;IACH,OAAO,CACL,CAAc,EACd,WAAwB;QAExB,MAAM,QAAQ,GAAG,MAAM,CAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC;QACrD,MAAM,MAAM,GAAG,QAAQ,CAAC,GAAG,CAAC,CAAC,KAAK,EAAW,EAAE;YAC7C,MAAM,KAAK,GAAG,mBAAmB,CAAC,QAAQ,CAAC,WAAW,CAAC,CAAC;YACxD,MAAM,EAAE,GAAG,IAAI,WAAW,CAAC,KAAK,CAAC,CAAC;YAClC,UAAU,CAAC,KAAK,EAAE,WAAW,EAAE,EAAE,CAAC,CAAC;YACnC,OAAO,OAAO,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC;QAC9B,CAAC,CAAC,CAAC;QACH,OAAO;YACL,MAAM;YACN,WAAW;YACX,WAAW,EAAE,QAAQ;SACtB,CAAC;IACJ,CAAC;IAED;;;OAGG;IACH,KAAK,CACH,MAAmC,EACnC,WAAwB,EACxB,OAAqB,EAAE;QAEvB,MAAM,QAAQ,GAAG,MAAM,CAAY,MAAM,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC;QAC5E,MAAM,OAAO,GAAG,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAC,EAAW,EAAE,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC;QACjE,OAAO;YACL,MAAM,EAAE,OAAO;YACf,WAAW;YACX,GAAG,CAAC,IAAI,CAAC,MAAM,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,MAAM,EAAE,IAAI,CAAC,MAAM,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;YAC7D,GAAG,CAAC,IAAI,CAAC,MAAM,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,MAAM,EAAE,IAAI,CAAC,MAAM,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;YAC7D,GAAG,CAAC,IAAI,CAAC,UAAU,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,UAAU,EAAE,IAAI,CAAC,UAAU,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;SAC1E,CAAC;IACJ,CAAC;IAED;;;;OAIG;IACH,QAAQ,CACN,MAAqB,EACrB,WAAwB,EACxB,OAAqB,EAAE;QAEvB,OAAO;YACL,MAAM;YACN,WAAW;YACX,GAAG,CAAC,IAAI,CAAC,MAAM,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,MAAM,EAAE,IAAI,CAAC,MAAM,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;YAC7D,GAAG,CAAC,IAAI,CAAC,MAAM,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,MAAM,EAAE,IAAI,CAAC,MAAM,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;YAC7D,GAAG,CAAC,IAAI,CAAC,UAAU,KAAK,SAAS,CAAC,CAAC,CAAC,EAAE,UAAU,EAAE,IAAI,CAAC,UAAU,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;SAC1E,CAAC;IACJ,CAAC;IAED,kCAAkC;IAElC,oCAAoC;IACpC,QAAQ,CAAC,CAAa,IAAY,OAAO,CAAC,CAAC,MAAM,IAAI,CAAC,CAAC,CAAC,CAAC;IACzD;;;OAGG;IACH,QAAQ,CAAC,CAAa;QACpB,OAAO,CAAC,CAAC,MAAM,KAAK,SAAS,IAAI,CAAC,CAAC,MAAM,GAAG,CAAC;YAC3C,CAAC,CAAC,CAAC,CAAC,MAAM;YACV,CAAC,CAAC,mBAAmB,CAAC,QAAQ,CAAC,CAAC,CAAC,WAAW,CAAC,CAAC;IAClD,CAAC;IACD,qDAAqD;IACrD,aAAa,CAAC,CAAa;QACzB,OAAO,CAAC,CAAC,WAAW,KAAK,SAAS,CAAC;IACrC,CAAC;CACO,CAAC;AAEX,8EAA8E;AAC9E,mEAAmE;AACnE,4DAA4D;AAC5D,kEAAkE;AAClE,+CAA+C;AAC/C,8EAA8E;AAE9E,SAAS,UAAU,CAAC,KAAc,EAAE,CAAc,EAAE,GAAgB;IAClE,iEAAiE;IACjE,gEAAgE;IAChE,sDAAsD;IACtD,MAAM,CAAC,GAAG,KAAsC,CAAC;IACjD,IAAI,CAAC,CAAC,KAAK,KAAK,SAAS,EAAE,CAAC;QAC1B,MAAM,GAAG,GAAG,CAAC,CAAC,KAAK,CAAC;QACpB,QAAQ,CAAC,EAAE,CAAC;YACV,KAAK,KAAK,CAAC;YAAC,KAAK,KAAK,CAAC;YAAC,KAAK,KAAK,CAAC;YACnC,KAAK,MAAM,CAAC;YAAC,KAAK,MAAM,CAAC;YAAC,KAAK,MAAM,CAAC;YACtC,KAAK,KAAK,CAAC,CAAC,CAAC;gBACX,MAAM,GAAG,GAAG,IAAI,YAAY,CAAC,GAAG,CAAC,CAAC;gBAClC,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,GAAG,CAAC,MAAM,EAAE,CAAC,EAAE;oBAAE,GAAG,CAAC,CAAC,CAAC,GAAG,GAAG,CAAC,CAAC,CAAE,CAAC;gBACtD,OAAO;YACT,CAAC;YACD,KAAK,KAAK,CAAC;YAAC,KAAK,KAAK,CAAC;YAAC,KAAK,KAAK,CAAC;YAAC,KAAK,KAAK,CAAC,CAAC,CAAC;gBAC/C,MAAM,GAAG,GAAG,IAAI,UAAU,CAAC,GAAG,CAAC,CAAC;gBAChC,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,GAAG,CAAC,MAAM,EAAE,CAAC,EAAE;oBAAE,GAAG,CAAC,CAAC,CAAC,GAAG,GAAG,CAAC,CAAC,CAAE,CAAC;gBACtD,OAAO;YACT,CAAC;YACD,KAAK,KAAK,CAAC;YAAC,KAAK,KAAK,CAAC;YAAC,KAAK,KAAK,CAAC;YAAC,KAAK,KAAK,CAAC,CAAC,CAAC;gBAC/C,MAAM,GAAG,GAAG,IAAI,WAAW,CAAC,GAAG,CAAC,CAAC;gBACjC,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,GAAG,CAAC,MAAM,EAAE,CAAC,EAAE;oBAAE,GAAG,CAAC,CAAC,CAAC,GAAG,GAAG,CAAC,CAAC,CAAE,CAAC;gBACtD,OAAO;YACT,CAAC;QACH,CAAC;IACH,CAAC;IACD,gCAAgC;IAChC,QAAQ,CAAC,EAAE,CAAC;QACV,KAAK,KAAK;YAAE,IAAI,YAAY,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,KAAe,CAAC;YAAC,OAAO;QAC/D,KAAK,KAAK;YAAE,IAAI,WAAW,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAI,KAAe,CAAC;YAAC,OAAO;QAC/D,KAAK,KAAK;YAAE,IAAI,UAAU,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAK,KAAe,CAAC;YAAC,OAAO;QAC/D,KAAK,KAAK;YAAE,IAAI,WAAW,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAI,KAAe,CAAC;YAAC,OAAO;QAC/D,KAAK,KAAK;YAAE,IAAI,UAAU,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAK,KAAe,CAAC;YAAC,OAAO;QAC/D,KAAK,IAAI;YAAG,IAAI,UAAU,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAK,KAAe,CAAC;YAAC,OAAO;QAC/D,KAAK,IAAI;YAAG,IAAI,SAAS,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,GAAM,KAAe,CAAC;YAAC,OAAO;IACjE,CAAC;IACD,MAAM,IAAI,KAAK,CAAC,mCAAmC,OAAO,KAAK,OAAO,CAAC,EAAE,CAAC,CAAC;AAC7E,CAAC"}
@@ -0,0 +1,16 @@
1
+ export type ElementType = "f32" | "u32" | "i32" | "u16" | "i16" | "u8" | "i8" | "v2f" | "v3f" | "v4f" | "v2i" | "v3i" | "v4i" | "v2u" | "v3u" | "v4u" | "m22f" | "m33f" | "m44f" | "c4b" | "c3b";
2
+ export declare const ElementType: {
3
+ /** Size of one element in bytes. */
4
+ readonly byteSize: (t: ElementType) => number;
5
+ /**
6
+ * GPUVertexFormat for use as a vertex / instance attribute.
7
+ * `normalized=true` only affects integer types — picks the `unorm`
8
+ * / `snorm` form. Matrix types are not directly supported as
9
+ * vertex formats; the auto-instancing pass splits them into
10
+ * column attributes upstream.
11
+ */
12
+ readonly toVertexFormat: (t: ElementType, normalized?: boolean) => GPUVertexFormat;
13
+ /** Index format. Throws unless the type is `u16` or `u32`. */
14
+ readonly toIndexFormat: (t: ElementType) => GPUIndexFormat;
15
+ };
16
+ //# sourceMappingURL=elementType.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"elementType.d.ts","sourceRoot":"","sources":["../../src/core/elementType.ts"],"names":[],"mappings":"AAQA,MAAM,MAAM,WAAW,GAEnB,KAAK,GAAG,KAAK,GAAG,KAAK,GACrB,KAAK,GAAG,KAAK,GACb,IAAI,GAAI,IAAI,GAEZ,KAAK,GAAG,KAAK,GAAG,KAAK,GAErB,KAAK,GAAG,KAAK,GAAG,KAAK,GAErB,KAAK,GAAG,KAAK,GAAG,KAAK,GAErB,MAAM,GAAG,MAAM,GAAG,MAAM,GAExB,KAAK,GAAG,KAAK,CAAC;AAElB,eAAO,MAAM,WAAW;IACtB,oCAAoC;2BACxB,WAAW,KAAG,MAAM;IAgBhC;;;;;;OAMG;iCACe,WAAW,2BAAuB,eAAe;IA4BnE,8DAA8D;gCAC7C,WAAW,KAAG,cAAc;CAKrC,CAAC"}
@@ -0,0 +1,80 @@
1
+ // ElementType — the data type of a single element in a BufferView.
2
+ //
3
+ // Mirrors Aardvark.Rendering's `BufferView.ElementType : System.Type`
4
+ // pattern: structural information about the element kept separate
5
+ // from the per-frame buffer content. The runtime maps `ElementType`
6
+ // to a `GPUVertexFormat`/`GPUIndexFormat` and a byte size at
7
+ // pipeline-layout time.
8
+ export const ElementType = {
9
+ /** Size of one element in bytes. */
10
+ byteSize(t) {
11
+ switch (t) {
12
+ case "f32":
13
+ case "u32":
14
+ case "i32": return 4;
15
+ case "u16":
16
+ case "i16": return 2;
17
+ case "u8":
18
+ case "i8": return 1;
19
+ case "v2f":
20
+ case "v2i":
21
+ case "v2u": return 8;
22
+ case "v3f":
23
+ case "v3i":
24
+ case "v3u": return 12;
25
+ case "v4f":
26
+ case "v4i":
27
+ case "v4u": return 16;
28
+ case "m22f": return 16;
29
+ case "m33f": return 36;
30
+ case "m44f": return 64;
31
+ case "c4b": return 4;
32
+ case "c3b": return 3;
33
+ }
34
+ },
35
+ /**
36
+ * GPUVertexFormat for use as a vertex / instance attribute.
37
+ * `normalized=true` only affects integer types — picks the `unorm`
38
+ * / `snorm` form. Matrix types are not directly supported as
39
+ * vertex formats; the auto-instancing pass splits them into
40
+ * column attributes upstream.
41
+ */
42
+ toVertexFormat(t, normalized = false) {
43
+ switch (t) {
44
+ case "f32": return "float32";
45
+ case "u32": return "uint32";
46
+ case "i32": return "sint32";
47
+ case "v2f": return "float32x2";
48
+ case "v3f": return "float32x3";
49
+ case "v4f": return "float32x4";
50
+ case "v2i": return "sint32x2";
51
+ case "v3i": return "sint32x3";
52
+ case "v4i": return "sint32x4";
53
+ case "v2u": return "uint32x2";
54
+ case "v3u": return "uint32x3";
55
+ case "v4u": return "uint32x4";
56
+ case "u16": return normalized ? "unorm16x2" : "uint16";
57
+ case "i16": return normalized ? "snorm16x2" : "sint16";
58
+ case "u8": return normalized ? "unorm8x4" : "uint8";
59
+ case "i8": return normalized ? "snorm8x4" : "sint8";
60
+ case "c4b": return normalized ? "unorm8x4" : "uint8x4";
61
+ case "c3b":
62
+ // No 3-component byte format in WebGPU; promoted to x4 with
63
+ // a dummy fourth byte by the upload path.
64
+ throw new Error(`ElementType.toVertexFormat: c3b cannot be a vertex format directly; pad to c4b`);
65
+ case "m22f":
66
+ case "m33f":
67
+ case "m44f":
68
+ throw new Error(`ElementType.toVertexFormat: ${t} is a matrix; split into column attributes first`);
69
+ }
70
+ },
71
+ /** Index format. Throws unless the type is `u16` or `u32`. */
72
+ toIndexFormat(t) {
73
+ if (t === "u16")
74
+ return "uint16";
75
+ if (t === "u32")
76
+ return "uint32";
77
+ throw new Error(`ElementType.toIndexFormat: ${t} is not a valid index type (use u16 or u32)`);
78
+ },
79
+ };
80
+ //# sourceMappingURL=elementType.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"elementType.js","sourceRoot":"","sources":["../../src/core/elementType.ts"],"names":[],"mappings":"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"}
@@ -1,6 +1,7 @@
1
1
  export { IBuffer, } from "./buffer.js";
2
2
  export type { HostBufferSource, } from "./buffer.js";
3
- export type { BufferView, } from "./bufferView.js";
3
+ export { BufferView, } from "./bufferView.js";
4
+ export { ElementType, } from "./elementType.js";
4
5
  export type { ClearColor, ClearValues, } from "./clear.js";
5
6
  export type { Command, CopySpec, BufferCopy, TextureCopy, BufferCopyRange, } from "./command.js";
6
7
  export type { DrawCall, IndexedDrawCall, NonIndexedDrawCall, } from "./drawCall.js";
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/core/index.ts"],"names":[],"mappings":"AAMA,OAAO,EACL,OAAO,GACR,MAAM,aAAa,CAAC;AACrB,YAAY,EACV,gBAAgB,GACjB,MAAM,aAAa,CAAC;AAErB,YAAY,EACV,UAAU,GACX,MAAM,iBAAiB,CAAC;AAEzB,YAAY,EACV,UAAU,EACV,WAAW,GACZ,MAAM,YAAY,CAAC;AAEpB,YAAY,EACV,OAAO,EACP,QAAQ,EACR,UAAU,EACV,WAAW,EACX,eAAe,GAChB,MAAM,cAAc,CAAC;AAEtB,YAAY,EACV,QAAQ,EACR,eAAe,EACf,kBAAkB,GACnB,MAAM,eAAe,CAAC;AAEvB,YAAY,EACV,YAAY,GACb,MAAM,kBAAkB,CAAC;AAE1B,YAAY,EACV,+BAA+B,EAC/B,oBAAoB,GACrB,MAAM,2BAA2B,CAAC;AAEnC,YAAY,EACV,mBAAmB,EACnB,UAAU,EACV,QAAQ,EACR,cAAc,EACd,UAAU,EACV,SAAS,EACT,wBAAwB,EACxB,eAAe,EACf,eAAe,EACf,kBAAkB,EAClB,oBAAoB,EACpB,qBAAqB,EACrB,iBAAiB,EACjB,eAAe,EACf,gBAAgB,EAChB,YAAY,EACZ,QAAQ,GACT,MAAM,oBAAoB,CAAC;AAE5B,OAAO,EAAE,aAAa,EAAE,MAAM,oBAAoB,CAAC;AAEnD,YAAY,EACV,YAAY,GACb,MAAM,mBAAmB,CAAC;AAE3B,OAAO,EACL,UAAU,GACX,MAAM,iBAAiB,CAAC;AAEzB,YAAY,EACV,WAAW,GACZ,MAAM,iBAAiB,CAAC;AAEzB,OAAO,EACL,QAAQ,GACT,MAAM,cAAc,CAAC;AAEtB,OAAO,EACL,QAAQ,GACT,MAAM,cAAc,CAAC;AACtB,YAAY,EACV,qBAAqB,EACrB,iBAAiB,EACjB,gBAAgB,GACjB,MAAM,cAAc,CAAC;AAEtB,YAAY,EACV,aAAa,EACb,cAAc,EACd,aAAa,EACb,aAAa,EACb,MAAM,EACN,UAAU,EACV,WAAW,EACX,gBAAgB,EAChB,UAAU,EACV,gBAAgB,EAChB,WAAW,EACX,KAAK,EACL,SAAS,EACT,iBAAiB,EACjB,MAAM,EACN,WAAW,EACX,gBAAgB,EAChB,gBAAgB,GACjB,MAAM,aAAa,CAAC;AAErB,OAAO,EACL,gBAAgB,GACjB,MAAM,uBAAuB,CAAC;AAE/B,OAAO,EACL,UAAU,EACV,UAAU,GACX,MAAM,cAAc,CAAC;AAEtB,OAAO,EACL,aAAa,GACd,MAAM,oBAAoB,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/core/index.ts"],"names":[],"mappings":"AAMA,OAAO,EACL,OAAO,GACR,MAAM,aAAa,CAAC;AACrB,YAAY,EACV,gBAAgB,GACjB,MAAM,aAAa,CAAC;AAErB,OAAO,EACL,UAAU,GACX,MAAM,iBAAiB,CAAC;AAEzB,OAAO,EACL,WAAW,GACZ,MAAM,kBAAkB,CAAC;AAE1B,YAAY,EACV,UAAU,EACV,WAAW,GACZ,MAAM,YAAY,CAAC;AAEpB,YAAY,EACV,OAAO,EACP,QAAQ,EACR,UAAU,EACV,WAAW,EACX,eAAe,GAChB,MAAM,cAAc,CAAC;AAEtB,YAAY,EACV,QAAQ,EACR,eAAe,EACf,kBAAkB,GACnB,MAAM,eAAe,CAAC;AAEvB,YAAY,EACV,YAAY,GACb,MAAM,kBAAkB,CAAC;AAE1B,YAAY,EACV,+BAA+B,EAC/B,oBAAoB,GACrB,MAAM,2BAA2B,CAAC;AAEnC,YAAY,EACV,mBAAmB,EACnB,UAAU,EACV,QAAQ,EACR,cAAc,EACd,UAAU,EACV,SAAS,EACT,wBAAwB,EACxB,eAAe,EACf,eAAe,EACf,kBAAkB,EAClB,oBAAoB,EACpB,qBAAqB,EACrB,iBAAiB,EACjB,eAAe,EACf,gBAAgB,EAChB,YAAY,EACZ,QAAQ,GACT,MAAM,oBAAoB,CAAC;AAE5B,OAAO,EAAE,aAAa,EAAE,MAAM,oBAAoB,CAAC;AAEnD,YAAY,EACV,YAAY,GACb,MAAM,mBAAmB,CAAC;AAE3B,OAAO,EACL,UAAU,GACX,MAAM,iBAAiB,CAAC;AAEzB,YAAY,EACV,WAAW,GACZ,MAAM,iBAAiB,CAAC;AAEzB,OAAO,EACL,QAAQ,GACT,MAAM,cAAc,CAAC;AAEtB,OAAO,EACL,QAAQ,GACT,MAAM,cAAc,CAAC;AACtB,YAAY,EACV,qBAAqB,EACrB,iBAAiB,EACjB,gBAAgB,GACjB,MAAM,cAAc,CAAC;AAEtB,YAAY,EACV,aAAa,EACb,cAAc,EACd,aAAa,EACb,aAAa,EACb,MAAM,EACN,UAAU,EACV,WAAW,EACX,gBAAgB,EAChB,UAAU,EACV,gBAAgB,EAChB,WAAW,EACX,KAAK,EACL,SAAS,EACT,iBAAiB,EACjB,MAAM,EACN,WAAW,EACX,gBAAgB,EAChB,gBAAgB,GACjB,MAAM,aAAa,CAAC;AAErB,OAAO,EACL,gBAAgB,GACjB,MAAM,uBAAuB,CAAC;AAE/B,OAAO,EACL,UAAU,EACV,UAAU,GACX,MAAM,cAAc,CAAC;AAEtB,OAAO,EACL,aAAa,GACd,MAAM,oBAAoB,CAAC"}
@@ -4,6 +4,8 @@
4
4
  // `prepareRenderObject`, `runRenderTask`, etc. live in higher
5
5
  // packages (`resources`, `commands`, `runtime`).
6
6
  export { IBuffer, } from "./buffer.js";
7
+ export { BufferView, } from "./bufferView.js";
8
+ export { ElementType, } from "./elementType.js";
7
9
  export { PipelineState } from "./pipelineState.js";
8
10
  export { RenderTree, } from "./renderTree.js";
9
11
  export { ISampler, } from "./sampler.js";
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/core/index.ts"],"names":[],"mappings":"AAAA,iDAAiD;AACjD,EAAE;AACF,2DAA2D;AAC3D,8DAA8D;AAC9D,iDAAiD;AAEjD,OAAO,EACL,OAAO,GACR,MAAM,aAAa,CAAC;AAyDrB,OAAO,EAAE,aAAa,EAAE,MAAM,oBAAoB,CAAC;AAMnD,OAAO,EACL,UAAU,GACX,MAAM,iBAAiB,CAAC;AAMzB,OAAO,EACL,QAAQ,GACT,MAAM,cAAc,CAAC;AAEtB,OAAO,EACL,QAAQ,GACT,MAAM,cAAc,CAAC;AA4BtB,OAAO,EACL,gBAAgB,GACjB,MAAM,uBAAuB,CAAC;AAE/B,OAAO,EACL,UAAU,EACV,UAAU,GACX,MAAM,cAAc,CAAC;AAEtB,OAAO,EACL,aAAa,GACd,MAAM,oBAAoB,CAAC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/core/index.ts"],"names":[],"mappings":"AAAA,iDAAiD;AACjD,EAAE;AACF,2DAA2D;AAC3D,8DAA8D;AAC9D,iDAAiD;AAEjD,OAAO,EACL,OAAO,GACR,MAAM,aAAa,CAAC;AAKrB,OAAO,EACL,UAAU,GACX,MAAM,iBAAiB,CAAC;AAEzB,OAAO,EACL,WAAW,GACZ,MAAM,kBAAkB,CAAC;AAkD1B,OAAO,EAAE,aAAa,EAAE,MAAM,oBAAoB,CAAC;AAMnD,OAAO,EACL,UAAU,GACX,MAAM,iBAAiB,CAAC;AAMzB,OAAO,EACL,QAAQ,GACT,MAAM,cAAc,CAAC;AAEtB,OAAO,EACL,QAAQ,GACT,MAAM,cAAc,CAAC;AA4BtB,OAAO,EACL,gBAAgB,GACjB,MAAM,uBAAuB,CAAC;AAE/B,OAAO,EACL,UAAU,EACV,UAAU,GACX,MAAM,cAAc,CAAC;AAEtB,OAAO,EACL,aAAa,GACd,MAAM,oBAAoB,CAAC"}
@@ -33,9 +33,9 @@ export interface RenderObject {
33
33
  * individual buffer values are reactive. The shader's required-input
34
34
  * set is fixed at compile; the map must contain at least those names.
35
35
  */
36
- readonly vertexAttributes: HashMap<string, aval<BufferView>>;
36
+ readonly vertexAttributes: HashMap<string, BufferView>;
37
37
  /** name → instance buffer view; e.g. "modelMatrix", "instanceColor". */
38
- readonly instanceAttributes?: HashMap<string, aval<BufferView>>;
38
+ readonly instanceAttributes?: HashMap<string, BufferView>;
39
39
  /** name → uniform value; runtime packs into UBO based on shader layout. */
40
40
  readonly uniforms: HashMap<string, aval<unknown>>;
41
41
  /** name → texture source (CPU image or pre-built GPUTexture). */
@@ -45,7 +45,7 @@ export interface RenderObject {
45
45
  /** name → storage buffer source. */
46
46
  readonly storageBuffers?: HashMap<string, aval<IBuffer>>;
47
47
  /** Index buffer for indexed draws. */
48
- readonly indices?: aval<BufferView>;
48
+ readonly indices?: BufferView;
49
49
  readonly drawCall: aval<DrawCall>;
50
50
  }
51
51
  //# sourceMappingURL=renderObject.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"renderObject.d.ts","sourceRoot":"","sources":["../../src/core/renderObject.ts"],"names":[],"mappings":"AAUA,OAAO,KAAK,EAAE,OAAO,EAAE,IAAI,EAAE,MAAM,2BAA2B,CAAC;AAC/D,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,aAAa,CAAC;AAC3C,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,iBAAiB,CAAC;AAClD,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,eAAe,CAAC;AAC9C,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,cAAc,CAAC;AAC7C,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,cAAc,CAAC;AAC7C,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,oBAAoB,CAAC;AACxD,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,aAAa,CAAC;AAE1C,MAAM,WAAW,YAAY;IAC3B;;;;;;;;;;;;;;;;OAgBG;IACH,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;IACxB,QAAQ,CAAC,aAAa,EAAE,aAAa,CAAC;IAEtC;;;;;;OAMG;IACH,QAAQ,CAAC,gBAAgB,EAAE,OAAO,CAAC,MAAM,EAAE,IAAI,CAAC,UAAU,CAAC,CAAC,CAAC;IAC7D,wEAAwE;IACxE,QAAQ,CAAC,kBAAkB,CAAC,EAAE,OAAO,CAAC,MAAM,EAAE,IAAI,CAAC,UAAU,CAAC,CAAC,CAAC;IAChE,2EAA2E;IAC3E,QAAQ,CAAC,QAAQ,EAAE,OAAO,CAAC,MAAM,EAAE,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC;IAClD,iEAAiE;IACjE,QAAQ,CAAC,QAAQ,EAAE,OAAO,CAAC,MAAM,EAAE,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC;IACnD,kEAAkE;IAClE,QAAQ,CAAC,QAAQ,EAAE,OAAO,CAAC,MAAM,EAAE,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC;IACnD,oCAAoC;IACpC,QAAQ,CAAC,cAAc,CAAC,EAAE,OAAO,CAAC,MAAM,EAAE,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC;IAEzD,sCAAsC;IACtC,QAAQ,CAAC,OAAO,CAAC,EAAE,IAAI,CAAC,UAAU,CAAC,CAAC;IACpC,QAAQ,CAAC,QAAQ,EAAE,IAAI,CAAC,QAAQ,CAAC,CAAC;CACnC"}
1
+ {"version":3,"file":"renderObject.d.ts","sourceRoot":"","sources":["../../src/core/renderObject.ts"],"names":[],"mappings":"AAUA,OAAO,KAAK,EAAE,OAAO,EAAE,IAAI,EAAE,MAAM,2BAA2B,CAAC;AAC/D,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,aAAa,CAAC;AAC3C,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,iBAAiB,CAAC;AAClD,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,eAAe,CAAC;AAC9C,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,cAAc,CAAC;AAC7C,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,cAAc,CAAC;AAC7C,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,oBAAoB,CAAC;AACxD,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,aAAa,CAAC;AAE1C,MAAM,WAAW,YAAY;IAC3B;;;;;;;;;;;;;;;;OAgBG;IACH,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC;IACxB,QAAQ,CAAC,aAAa,EAAE,aAAa,CAAC;IAEtC;;;;;;OAMG;IACH,QAAQ,CAAC,gBAAgB,EAAE,OAAO,CAAC,MAAM,EAAE,UAAU,CAAC,CAAC;IACvD,wEAAwE;IACxE,QAAQ,CAAC,kBAAkB,CAAC,EAAE,OAAO,CAAC,MAAM,EAAE,UAAU,CAAC,CAAC;IAC1D,2EAA2E;IAC3E,QAAQ,CAAC,QAAQ,EAAE,OAAO,CAAC,MAAM,EAAE,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC;IAClD,iEAAiE;IACjE,QAAQ,CAAC,QAAQ,EAAE,OAAO,CAAC,MAAM,EAAE,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC;IACnD,kEAAkE;IAClE,QAAQ,CAAC,QAAQ,EAAE,OAAO,CAAC,MAAM,EAAE,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC;IACnD,oCAAoC;IACpC,QAAQ,CAAC,cAAc,CAAC,EAAE,OAAO,CAAC,MAAM,EAAE,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC;IAEzD,sCAAsC;IACtC,QAAQ,CAAC,OAAO,CAAC,EAAE,UAAU,CAAC;IAC9B,QAAQ,CAAC,QAAQ,EAAE,IAAI,CAAC,QAAQ,CAAC,CAAC;CACnC"}
@@ -1,4 +1,4 @@
1
- import { AdaptiveResource, type CompiledEffect, type FramebufferSignature, type ProgramInterface, type RenderObject } from "../core/index.js";
1
+ import { AdaptiveResource, BufferView, type CompiledEffect, type FramebufferSignature, type ProgramInterface, type RenderObject } from "../core/index.js";
2
2
  import { type AdaptiveToken, type aval } from "@aardworx/wombat.adaptive";
3
3
  interface VertexBindingInfo {
4
4
  readonly name: string;
@@ -66,7 +66,7 @@ export declare class PreparedRenderObject {
66
66
  private _pipelineCtx;
67
67
  private _pipelineState;
68
68
  private readonly _bindGroupCache;
69
- constructor(device: GPUDevice, vertexBindings: readonly VertexBindingInfo[], vertexBuffers: ReadonlyMap<string, AdaptiveResource<GPUBuffer>>, vertexViews: ReadonlyMap<string, aval<import("../core/index.js").BufferView>>, indexBuffer: AdaptiveResource<GPUBuffer> | undefined, indexFormat: GPUIndexFormat | undefined, indices: aval<import("../core/index.js").BufferView> | undefined, groups: readonly GroupDesc[], drawCall: aval<import("../core/index.js").DrawCall>, pipelineCtx: PipelineBuildContext, pipelineState: import("../core/index.js").PipelineState);
69
+ constructor(device: GPUDevice, vertexBindings: readonly VertexBindingInfo[], vertexBuffers: ReadonlyMap<string, AdaptiveResource<GPUBuffer>>, vertexViews: ReadonlyMap<string, BufferView>, indexBuffer: AdaptiveResource<GPUBuffer> | undefined, indexFormat: GPUIndexFormat | undefined, indices: BufferView | undefined, groups: readonly GroupDesc[], drawCall: aval<import("../core/index.js").DrawCall>, pipelineCtx: PipelineBuildContext, pipelineState: import("../core/index.js").PipelineState);
70
70
  /** Internal — exposed for tests. The PipelineState the RO is reading. */
71
71
  get pipelineState(): import("../core/index.js").PipelineState;
72
72
  acquire(): void;
@@ -1 +1 @@
1
- {"version":3,"file":"preparedRenderObject.d.ts","sourceRoot":"","sources":["../../src/resources/preparedRenderObject.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"preparedRenderObject.d.ts","sourceRoot":"","sources":["../../src/resources/preparedRenderObject.ts"],"names":[],"mappings":"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"}