typegpu
Version:
A thin layer between JS and WebGPU/WGSL that improves development experience and allows for faster iteration.
28 lines (27 loc) • 1.26 kB
TypeScript
import { type TgpuNamable } from '../../shared/meta.ts';
import type { ExperimentalTgpuRoot } from '../root/rootTypes.ts';
import type { TgpuDeviceOwningSoul } from '../../shared/soul.ts';
import { $internal, $soul } from '../../shared/symbols.ts';
export interface TgpuQuerySetSoul<T extends GPUQueryType = GPUQueryType> extends TgpuDeviceOwningSoul<'query-set', GPUQuerySet> {
readonly queryType: T;
readonly count: number;
}
export interface TgpuQuerySet<T extends GPUQueryType> extends TgpuNamable {
readonly resourceType: 'query-set';
readonly type: T;
readonly count: number;
readonly querySet: GPUQuerySet;
readonly destroyed: boolean;
readonly available: boolean;
readonly [$soul]: TgpuQuerySetSoul<T>;
readonly [$internal]: {
readonly readBuffer: GPUBuffer;
readonly resolveBuffer: GPUBuffer;
readonly materialize: () => GPUQuerySet;
};
resolve(): void;
read(): Promise<bigint[]>;
destroy(): void;
}
export declare function INTERNAL_createQuerySet<T extends GPUQueryType>(group: ExperimentalTgpuRoot, type: T, count: number, rawQuerySet?: GPUQuerySet): TgpuQuerySet<T>;
export declare function isQuerySet<T extends GPUQueryType>(value: unknown): value is TgpuQuerySet<T>;