UNPKG

xgpu

Version:

XGPU is an extendable library for WebGPU that provides a higher-level, easy-to-use interface for building rendering engines or processing numeric data. It handles automatic data binding, buffer alignment, variable declarations in shaders, and more. XGPU i

75 lines (74 loc) 2.77 kB
/// <reference types="dist" /> import { ComputeShader } from "../shader/ComputeShader"; import { ImageTextureIO } from "../shader/resources/ImageTextureIO"; import { VertexBuffer } from "../shader/resources/VertexBuffer"; import { VertexBufferIO } from "../shader/resources/VertexBufferIO"; import { Pipeline } from "./Pipeline"; import { ImageTexture } from "../shader/resources/ImageTexture"; export declare class ComputePipeline extends Pipeline { static ON_COMPUTE_SHADER_CODE_BUILT: string; static ON_COMPUTE_BEGIN: string; static ON_COMPUTE_END: string; static ON_GPU_PIPELINE_BUILT: string; static ON_INIT_FROM_OBJECT: string; static ON_DESTROY: string; static ON_DEVICE_LOST: string; static ON_UPDATE_RESOURCES: string; static ON_SUBMIT_QUEUE: string; computeShader: ComputeShader; protected gpuComputePipeline: GPUComputePipeline; workgroups: number[]; protected dispatchWorkgroup: number[]; protected bufferSize: number; protected textureSize: number[]; protected stagingBuffer: GPUBuffer; protected bufferIOs: VertexBuffer[]; protected textureIOs: ImageTexture[]; onComputeBegin: () => void; onComputeEnd: () => void; onShaderBuild: (shaderInfos: { code: string; }) => void; constructor(); set useRenderPipeline(b: boolean); initFromObject(descriptor: { bindgroups?: any; computeShader: { outputs?: any; main: string; inputs?: any; constants?: string; } | string | ComputeShader; [key: string]: unknown; }): { [key: string]: unknown; bindgroups?: any; computeShader: { outputs?: any; main: string; inputs?: any; constants?: string; } | string | ComputeShader; }; destroy(): void; setWorkgroups(x: number, y?: number, z?: number): void; setDispatchWorkgroup(x?: number, y?: number, z?: number): void; protected vertexBufferIOs: VertexBufferIO[]; protected imageTextureIOs: ImageTextureIO[]; protected resourceIOs: (VertexBufferIO | ImageTextureIO)[]; protected nbVertexMax: number; protected widthMax: number; protected heightMax: number; protected initResourceIOs(): void; protected deviceId: number; protected lastFrameTime: number; update(): void; protected setupDefaultWorkgroups(): void; protected rebuildingAfterDeviceLost: boolean; clearAfterDeviceLostAndRebuild(): void; buildGpuPipeline(): GPUComputePipeline; private firstFrame; private processingFirstFrame; private waitingFrame; nextFrame(): Promise<void>; }