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

82 lines (81 loc) 3.54 kB
/// <reference types="dist" /> import { ShaderStruct } from "../shaderParts/ShaderStruct"; import { IShaderResource } from "./IShaderResource"; import { VertexAttribute } from "./VertexAttribute"; import { VertexBufferIO } from "./VertexBufferIO"; import { StageableBuffer } from "./StageableBuffer"; export type VertexBufferDescriptor = { stepMode?: "vertex" | "instance"; accessMode?: "read" | "read_write"; usage?: GPUBufferUsageFlags; datas?: Float32Array | Int32Array | Uint32Array | Uint16Array; }; export declare class VertexBuffer extends StageableBuffer implements IShaderResource { bufferId: number; io: number; resourceIO: VertexBufferIO; mustBeTransfered: boolean; vertexArrays: VertexAttribute[]; attributes: any; gpuResource: GPUBuffer; descriptor: VertexBufferDescriptor; private _nbComponent; private _datas; nbComponentData: number; attributeChanged: boolean; constructor(attributes: any, descriptor?: { stepMode?: "vertex" | "instance"; accessMode?: "read" | "read_write"; usage?: GPUBufferUsageFlags; datas?: Float32Array | Int32Array | Uint32Array | Uint16Array; gpuUpdateMode?: "auto" | "manual"; }); clone(): VertexBuffer; protected gpuBufferIOs: GPUBuffer[]; protected gpuBufferIO_index: number; initBufferIO(buffers: GPUBuffer[]): void; get buffer(): GPUBuffer; getCurrentBuffer(): GPUBuffer; get stepMode(): "vertex" | "instance"; get length(): number; get nbComponent(): number; get nbVertex(): number; get datas(): Float32Array | Int32Array | Uint32Array | Uint16Array; set datas(f: Float32Array | Int32Array | Uint32Array | Uint16Array); setComplexDatas(datas: Float32Array | Int32Array | Uint32Array, nbComponentTotal: number): void; get attributeDescriptor(): any; private _byteCount; createArray(name: string, dataType: string, offset?: number): VertexAttribute; getAttributeByName(name: string): VertexAttribute; createDeclaration(vertexBufferName: string, bindingId: number, groupId?: number, isInput?: boolean): string; debug: boolean; createBindGroupLayoutEntry(bindingId: number): any; createBindGroupEntry(bindingId: number): any; protected pipelineType: "compute" | "render" | "compute_mixed"; setPipelineType(pipelineType: "compute" | "render" | "compute_mixed"): void; createStruct(name: string): ShaderStruct; arrayStride: number; stackAttributes(builtinOffset?: number): { stepMode: "instance" | "vertex"; arrayStride: number; attributes: any[]; }; addVertexInstance(instanceId: number, o: any): void; protected layout: any; createVertexBufferLayout(builtinOffset?: number): any; lowLevelBuffer: boolean; createLowLevelBuffer(bufferSize: number, accessMode?: "read" | "read_write", usage?: number): void; resizeLowLevelBuffer(byteLength: number, copyPreviousDataWithin?: boolean): void; updateLowLevelBuffer(buffer: ArrayBuffer, bufferOffset: number, dataOffset?: number, size?: number): void; protected _bufferSize: number; protected deviceId: number; get bufferSize(): number; createGpuResource(): void; time: number; protected destroyed: boolean; destroyGpuResource(): void; updateBuffer(): void; getVertexArrayById(id: number): VertexAttribute; protected updateAttributes(): void; update(): boolean; }