/** * WebGPU Buffer Management * Utilities for creating and managing GPU buffers */ export type BufferUsage = 'storage' | 'uniform' | 'vertex' | 'index' | 'copy-src' | 'copy-dst'; export interface BufferOptions { label?: string; usage: BufferUsage[]; mappedAtCreation?: boolean; } /** * Create a GPU buffer */ export declare function createBuffer(size: number, options: BufferOptions): GPUBuffer; /** * Create a buffer and write data to it */ export declare function createBufferWithData(data: ArrayBufferView, options: BufferOptions): GPUBuffer; /** * Create a storage buffer for compute shaders */ export declare function createStorageBuffer(size: number, label?: string): GPUBuffer; /** * Create a storage buffer with initial data */ export declare function createStorageBufferWithData(data: ArrayBufferView, label?: string): GPUBuffer; /** * Create a uniform buffer */ export declare function createUniformBuffer(size: number, label?: string): GPUBuffer; /** * Create a uniform buffer with initial data */ export declare function createUniformBufferWithData(data: ArrayBufferView, label?: string): GPUBuffer; /** * Create a staging buffer for reading data back from GPU */ export declare function createStagingBuffer(size: number, label?: string): GPUBuffer; /** * Write data to a buffer */ export declare function writeBuffer(buffer: GPUBuffer, data: ArrayBufferView, bufferOffset?: number): void; /** * Read data from a GPU buffer */ export declare function readBuffer(buffer: GPUBuffer, size?: number): Promise; /** * Read buffer as Float32Array */ export declare function readBufferFloat32(buffer: GPUBuffer, count?: number): Promise; /** * Read buffer as Int32Array */ export declare function readBufferInt32(buffer: GPUBuffer, count?: number): Promise; /** * Read buffer as Uint32Array */ export declare function readBufferUint32(buffer: GPUBuffer, count?: number): Promise; /** * Copy between buffers */ export declare function copyBuffer(src: GPUBuffer, dst: GPUBuffer, size?: number, srcOffset?: number, dstOffset?: number): GPUCommandBuffer; /** * Buffer pool for reusing buffers */ export declare class BufferPool { private pools; private inUse; /** * Get a buffer from the pool or create a new one */ acquire(size: number, usage: BufferUsage[], label?: string): GPUBuffer; /** * Return a buffer to the pool */ release(buffer: GPUBuffer): void; /** * Clear the pool and destroy all buffers */ clear(): void; } /** * Get the global buffer pool */ export declare function getBufferPool(): BufferPool; //# sourceMappingURL=buffer.d.ts.map