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
223 lines (222 loc) • 7.27 kB
TypeScript
export declare class BuiltIns {
static vertexInputs: {
vertexIndex: {
builtin: string;
type: string;
};
instanceIndex: {
builtin: string;
type: string;
};
};
static vertexOutputs: {
position: {
builtin: string;
type: string;
};
Float: {
type: string;
vsOut: boolean;
};
Vec2: {
type: string;
vsOut: boolean;
};
Vec3: {
type: string;
vsOut: boolean;
};
Vec4: {
type: string;
vsOut: boolean;
};
};
static vertexDebug: {
Float: (instanceId?: number, vertexId?: number) => {
vertexId: number;
instanceId: number;
type: string;
__debug: boolean;
};
Vec2: (instanceId?: number, vertexId?: number) => {
vertexId: number;
instanceId: number;
type: string;
__debug: boolean;
};
Vec3: (instanceId?: number, vertexId?: number) => {
vertexId: number;
instanceId: number;
type: string;
__debug: boolean;
};
Vec4: (instanceId?: number, vertexId?: number) => {
vertexId: number;
instanceId: number;
type: string;
__debug: boolean;
};
Int: (instanceId?: number, vertexId?: number) => {
vertexId: number;
instanceId: number;
type: string;
__debug: boolean;
};
IVec2: (instanceId?: number, vertexId?: number) => {
vertexId: number;
instanceId: number;
type: string;
__debug: boolean;
};
IVec3: (instanceId?: number, vertexId?: number) => {
vertexId: number;
instanceId: number;
type: string;
__debug: boolean;
};
IVec4: (instanceId?: number, vertexId?: number) => {
vertexId: number;
instanceId: number;
type: string;
__debug: boolean;
};
Uint: (instanceId?: number, vertexId?: number) => {
vertexId: number;
instanceId: number;
type: string;
__debug: boolean;
};
UVec2: (instanceId?: number, vertexId?: number) => {
vertexId: number;
instanceId: number;
type: string;
__debug: boolean;
};
UVec3: (instanceId?: number, vertexId?: number) => {
vertexId: number;
instanceId: number;
type: string;
__debug: boolean;
};
UVec4: (instanceId?: number, vertexId?: number) => {
vertexId: number;
instanceId: number;
type: string;
__debug: boolean;
};
Matrix3x3: (instanceId?: number, vertexId?: number) => {
vertexId: number;
instanceId: number;
type: string;
__debug: boolean;
};
Matrix4x4: (instanceId?: number, vertexId?: number) => {
vertexId: number;
instanceId: number;
type: string;
__debug: boolean;
};
Vec4Array: (len?: number, instanceId?: number, vertexId?: number) => {
vertexId: number;
instanceId: number;
type: string;
__debug: boolean;
len: number;
isArray: boolean;
primitiveType: string;
};
IVec4Array: (len?: number, instanceId?: number, vertexId?: number) => {
vertexId: number;
instanceId: number;
type: string;
__debug: boolean;
len: number;
isArray: boolean;
primitiveType: string;
};
UVec4Array: (len?: number, instanceId?: number, vertexId?: number) => {
vertexId: number;
instanceId: number;
type: string;
__debug: boolean;
len: number;
isArray: boolean;
primitiveType: string;
};
Matrix4x4Array: (len?: number, instanceId?: number, vertexId?: number) => {
vertexId: number;
instanceId: number;
type: string;
__debug: boolean;
len: number;
isArray: boolean;
primitiveType: string;
};
};
static __initDebug(): void;
static fragmentInputs: {
frontFacing: {
builtin: string;
type: string;
};
fragDepth: {
builtin: string;
type: string;
};
sampleIndex: {
builtin: string;
type: string;
};
sampleMask: {
builtin: string;
type: string;
};
};
static fragmentOutputs: {
color: {
builtin: string;
type: string;
};
};
static computeInputs: {
localInvocationId: {
builtin: string;
type: string;
};
localInvocationIndex: {
builtin: string;
type: string;
};
globalInvocationId: {
builtin: string;
type: string;
};
workgroupId: {
builtin: string;
type: string;
};
numWorkgroup: {
builtin: string;
type: string;
};
};
static computeOutputs: {
result: {
builtin: string;
type: string;
};
};
}
type BuiltIns_vertexInputs = typeof BuiltIns.vertexInputs;
type BuiltIns_vertexOutputs = typeof BuiltIns.vertexOutputs;
type BuiltIns_fragmentInputs = typeof BuiltIns.fragmentInputs;
type BuiltIns_fragmentOutputs = typeof BuiltIns.fragmentOutputs;
type BuiltIns_computeInputs = typeof BuiltIns.computeInputs;
type BuiltIns_computeOutputs = typeof BuiltIns.computeOutputs;
export type VertexShaderInput = (BuiltIns_vertexInputs["vertexIndex"] | BuiltIns_vertexInputs["instanceIndex"]);
export type VertexShaderOutput = (BuiltIns_vertexOutputs["position"] | BuiltIns_vertexOutputs["Float"] | BuiltIns_vertexOutputs["Vec2"] | BuiltIns_vertexOutputs["Vec3"] | BuiltIns_vertexOutputs["Vec4"]);
export type FragmentShaderInput = (BuiltIns_fragmentInputs["frontFacing"] | BuiltIns_fragmentInputs["fragDepth"] | BuiltIns_fragmentInputs["sampleIndex"] | BuiltIns_fragmentInputs["sampleMask"]);
export type FragmentShaderOutputs = BuiltIns_fragmentOutputs["color"];
export type ComputeShaderInput = (BuiltIns_computeInputs["localInvocationId"] | BuiltIns_computeInputs["localInvocationIndex"] | BuiltIns_computeInputs["globalInvocationId"] | BuiltIns_computeInputs["workgroupId"] | BuiltIns_computeInputs["numWorkgroup"]);
export type ComputeShaderOutputs = BuiltIns_computeOutputs["result"];
export {};