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
TypeScript
/// <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;
}