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
57 lines (56 loc) • 2.51 kB
TypeScript
/// <reference types="dist" />
import { IShaderResource } from "./IShaderResource";
export type TextureSamplerDescriptor = {
minFilter?: "nearest" | "linear";
magFilter?: "nearest" | "linear";
addressModeU?: "clamp-to-edge" | "repeat" | "mirror-repeat";
addressModeV?: "clamp-to-edge" | "repeat" | "mirror-repeat";
addressModeW?: "clamp-to-edge" | "repeat" | "mirror-repeat";
mipmapFilter?: "nearest" | "linear";
lodMinClamp?: number;
lodMaxClamp?: number;
maxAnisotropy?: number;
compare?: "never" | "less" | "equal" | "less-equal" | "greater" | "not-equal" | "greater-equal" | "always";
};
export declare class TextureSampler implements IShaderResource {
mustBeTransfered: boolean;
gpuResource: GPUSampler;
descriptor: TextureSamplerDescriptor;
constructor(descriptor?: {
minFilter?: "nearest" | "linear";
magFilter?: "nearest" | "linear";
addressModeU?: "clamp-to-edge" | "repeat" | "mirror-repeat";
addressModeV?: "clamp-to-edge" | "repeat" | "mirror-repeat";
addressModeW?: "clamp-to-edge" | "repeat" | "mirror-repeat";
mipmapFilter?: "nearest" | "linear";
lodMinClamp?: number;
lodMaxClamp?: number;
maxAnisotropy?: number;
compare?: "never" | "less" | "equal" | "less-equal" | "greater" | "not-equal" | "greater-equal" | "always";
});
clone(): TextureSampler;
get isComparison(): boolean;
get isFiltering(): boolean;
setAddressModes(u?: GPUAddressMode, v?: GPUAddressMode, w?: GPUAddressMode): void;
setFilterModes(min?: GPUFilterMode, mag?: GPUFilterMode, mipmap?: GPUMipmapFilterMode): void;
setClamp(min?: number, max?: number): void;
setCompareFunction(compareType?: "never" | "less" | "equal" | "less-equal" | "greater" | "not-equal" | "greater-equal" | "always"): void;
setMaxAnisotropy(n: number): void;
protected deviceId: number;
createGpuResource(): void;
destroyGpuResource(): void;
update(): void;
createDeclaration(varName: string, bindingId: number, groupId?: number): string;
createBindGroupLayoutEntry(bindingId: number): {
binding: number;
visibility: number;
sampler: {
type: string;
};
};
createBindGroupEntry(bindingId: number): {
binding: number;
resource: GPUSampler;
};
setPipelineType(pipelineType: "compute" | "render" | "compute_mixed"): void;
}