modern-canvas
Version:
A JavaScript WebGL rendering engine. only the ESM.
40 lines (39 loc) • 1.09 kB
TypeScript
import type { GeometryAttributeLike } from '../../shared';
export interface GlAttribute extends Omit<GeometryAttributeLike, 'buffer'> {
location: number;
}
export interface GlUniform {
name: string;
index: number;
type: string;
size: number;
isArray: boolean;
value: any;
}
export interface GlProgramOptions {
fragment: string;
vertex: string;
name?: string;
preferredVertexPrecision?: string;
preferredFragmentPrecision?: string;
transformFeedbackVaryings?: {
names: string[];
bufferMode: 'separate' | 'interleaved';
};
}
export declare class GlProgram {
static defaultOptions: Partial<GlProgramOptions>;
readonly id: number;
fragment: string;
vertex: string;
transformFeedbackVaryings?: {
names: string[];
bufferMode: 'separate' | 'interleaved';
};
_cacheKey?: string;
attributes: Record<string, GlAttribute>;
uniforms: Record<string, GlUniform>;
constructor(options: GlProgramOptions);
destroy(): void;
static from(options: GlProgramOptions): GlProgram;
}