UNPKG

modern-canvas

Version:

A JavaScript WebGL rendering engine. only the ESM.

30 lines (29 loc) 1.36 kB
import type { BufferLike, GeometryLike, Topology } from '../../shared'; import type { GlRenderer } from '../GlRenderer'; import type { GlProgram } from '../shader'; import { GlSystem } from '../system'; export interface GlDrawOptions { topology?: Topology; size?: number; start?: number; instanceCount?: number; } export declare class GlGeometrySystem extends GlSystem { protected _geometryVaoHash: Record<number, Record<string, WebGLVertexArrayObject>>; hasInstance: boolean; current: GeometryLike | null; currentVao: WebGLVertexArrayObject | null; install(renderer: GlRenderer): void; bind(geometry: GeometryLike | null, program?: GlProgram): void; protected getVao(geometry: GeometryLike, program: GlProgram): WebGLVertexArrayObject; protected _getBuffers(geometry: GeometryLike): BufferLike[]; protected _ensureAttributes(geometry: GeometryLike, program: GlProgram, buffers: BufferLike[]): void; protected _createVao(geometry: GeometryLike, program: GlProgram): WebGLVertexArrayObject; protected _activateVao(geometry: GeometryLike, glProgram: GlProgram): void; updateBuffers(): void; protected _getSignature(geometry: GeometryLike, program: GlProgram): string; unbind(): void; getSize(geometry: GeometryLike): number; draw(options?: GlDrawOptions): this; reset(): void; }