import type Renderer from '../Renderer'; import { TriangleDrawMode } from '../Enums'; import Material from '../Material'; import InstancedAttribute from './InstancedAttribute'; export interface BufferGeometryProps { verts: number[]; mode?: TriangleDrawMode; attributes?: BufferAttributeList; indices?: number[]; stride?: number; vertexName?: string; instances?: number; instancedAttributes?: { [name: string]: InstancedAttribute; }; } declare type BufferAttributeList = { [name: string]: number[]; }; declare type BufferAttributeReference = { name: string; size: number; offset: number; }; declare type InstancedAttributeReference = { instancedAttribute: InstancedAttribute; buffer: WebGLBuffer; }; export default class BufferGeometry { protected verts: number[]; protected inputAttributes: BufferAttributeList; protected attributes: BufferAttributeReference[]; protected bufferData: Float32Array; protected buffer: WebGLBuffer; protected indices: Uint16Array; protected indexBuffer: WebGLBuffer; protected mode: TriangleDrawMode; protected stride: number; protected vertexName: string; protected vaos: Map; protected instancedAttributes: Map; protected instances: number; private renderer; constructor(props: BufferGeometryProps); private getBuffer; private getVao; draw(renderer: Renderer, material: Material): void; delete(): void; } export {};