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

67 lines (66 loc) 2.72 kB
/// <reference types="dist" /> import { Pipeline } from "../pipelines/Pipeline"; import { IndexBuffer } from "../pipelines/resources/IndexBuffer"; import { Bindgroups } from "./Bindgroups"; import { ImageTexture } from "./resources/ImageTexture"; import { ImageTextureIO } from "./resources/ImageTextureIO"; import { IShaderResource } from "./resources/IShaderResource"; import { VertexBuffer } from "./resources/VertexBuffer"; import { VertexBufferIO } from "./resources/VertexBufferIO"; export declare class Bindgroup { bindgroupId: number; parent: Bindgroups; entries: any[]; elements: { name: string; resource: IShaderResource; }[]; mustRefreshBindgroup: boolean; applyDraw: boolean; protected _layout: GPUBindGroupLayout; protected _group: GPUBindGroup; name: string; protected _pingPongBindgroup: Bindgroup; vertexBufferIO: VertexBufferIO; textureIO: ImageTextureIO; resourcesIOs: (VertexBufferIO | ImageTextureIO)[]; constructor(descriptor?: any | any[]); add(name: string, resource: IShaderResource): IShaderResource; set(name: string, resource: IShaderResource): void; remove(name: string): void; getResourceName(resource: IShaderResource): string; get(name: string): IShaderResource; initFromObject(descriptor: any | any[]): IShaderResource[]; clearAfterDeviceLost(): void; protected deviceId: number; protected buildLayout(): void; private setupApplyCompleted; build(): GPUBindGroup; protected indexBuffer: IndexBuffer; protected vertexBuffers: VertexBuffer[]; protected vertexBufferReferenceByName: any; protected elementByName: any; private setupApply; setupDrawCompleted: boolean; setupDraw(force?: boolean): void; apply(renderPass: GPURenderPassEncoder | GPUComputePassEncoder): void; protected instances: any[]; protected instanceResourcesArray: any[]; get useInstances(): boolean; createInstance(instanceResources: any): void; protected _createInstance(resourcePerInstance: any): void; handleComputePipelineResourceIOs(): void; private swapElements; createPingPongBindgroup(resource1: IShaderResource[], resource2: IShaderResource[]): Bindgroup; protected renderPipelineimageIO: ImageTexture; protected renderPipelineBufferIO: VertexBuffer; handleRenderPipelineResourceIOs(): void; protected ioGroups: Bindgroup[]; protected io_index: number; debug: any; get pingPongBindgroup(): Bindgroup; get layout(): GPUBindGroupLayout; get group(): GPUBindGroup; update(pipeline: Pipeline): void; destroy(): void; }