typegpu
Version:
A thin layer between JS and WebGPU/WGSL that improves development experience and allows for faster iteration.
59 lines (58 loc) • 1.35 kB
TypeScript
import * as d from '../data/index.ts';
type SerializedDataAttrib = {
type: 'align';
value: number;
} | {
type: 'size';
value: number;
} | {
type: 'location';
value: number;
} | {
type: 'interpolate';
value: string;
} | {
type: 'builtin';
value: string;
} | {
type: 'invariant';
};
export type SerializedDataSchema = {
type: 'd';
key: string;
} | {
type: 'array';
element: SerializedDataSchema;
count: number;
} | {
type: 'disarray';
element: SerializedDataSchema;
count: number;
} | {
type: 'struct';
props: [string, SerializedDataSchema][];
} | {
type: 'unstruct';
props: [string, SerializedDataSchema][];
} | {
type: 'atomic';
inner: SerializedDataSchema;
} | {
type: 'decorated';
inner: SerializedDataSchema;
attribs: SerializedDataAttrib[];
} | {
type: 'sampled-texture';
kind: d.WgslTexture['type'];
sampleType: SerializedDataSchema;
} | {
type: 'storage-texture';
kind: d.WgslStorageTexture['type'];
format: d.WgslStorageTexture['format'];
access: d.WgslStorageTexture['access'];
} | {
type: 'external-texture';
};
export declare function serializeDataSchema(schema: d.BaseData): SerializedDataSchema;
export declare function deserializeDataSchema(schema: SerializedDataSchema): d.AnyData;
export {};