typegpu
Version:
A thin layer between JS and WebGPU/WGSL that improves development experience and allows for faster iteration.
25 lines (24 loc) • 879 B
TypeScript
import type { StorageFlag } from '../../extension.ts';
import type { StorageTextureFormats } from './textureFormats.ts';
import type { TextureProps } from './textureProps.ts';
export interface SampledFlag {
usableAsSampled: true;
}
export interface RenderFlag {
usableAsRender: true;
}
export type LiteralToExtensionMap = {
storage: StorageFlag;
sampled: SampledFlag;
render: RenderFlag;
transient: RenderFlag;
};
export type AllowedUsages<TProps extends TextureProps> = 'sampled' | 'render' | 'transient' | (TProps['format'] extends StorageTextureFormats ? 'storage' : never);
export declare function isUsableAsSampled<T>(value: T): value is T & SampledFlag;
export declare function isUsableAsRender<T>(value: T): value is T & RenderFlag;
/**
* @category Errors
*/
export declare class NotSampledError extends Error {
constructor(value: object);
}