import { AABB } from '@antv/g-lite'; import EventEmitter from 'eventemitter3'; import type { Buffer, Device, InputLayoutDescriptor, VertexStepMode } from '@antv/g-device-api'; import { BufferFrequencyHint, BufferUsage, Format, PrimitiveTopology } from '@antv/g-device-api'; import type { Mesh } from '../Mesh'; export declare function makeDataBuffer(device: Device, usage: BufferUsage, data: ArrayBufferLike, hint?: BufferFrequencyHint): Buffer; export type IndicesArray = number[] | Int32Array | Uint32Array | Uint16Array; export interface GeometryVertexBufferDescriptor { bufferIndex: number; byteStride: number; stepMode: VertexStepMode; attributes: { format: Format; bufferByteOffset: number; byteStride?: number; location: number; divisor?: number; }[]; data: ArrayBufferView; } export interface GeometryPatch { bufferIndex: number; location: number; data: ArrayBufferView; } export interface VertexBufferToUpdateDescriptor { bufferIndex: number; bufferByteOffset?: number; data: ArrayBufferView; } export declare enum GeometryEvent { CHANGED = "changed" } /** * just hold descriptors of buffers & indices, won't use underlying GPU resources */ export declare class BufferGeometry extends EventEmitter { device: Device; props: Partial; drawMode: PrimitiveTopology; vertexBuffers: Buffer[]; vertices: ArrayBufferView[]; indexBuffer: Buffer; indices: IndicesArray; inputLayoutDescriptor: InputLayoutDescriptor; vertexCount: number; instancedCount: number; indexStart: number; primitiveStart: number; dirty: boolean; meshes: Mesh[]; constructor(device: Device, props?: Partial); validate(mesh: Mesh): boolean; build(meshes: Mesh[]): void; computeBoundingBox(): AABB; setIndexBuffer(indices: IndicesArray): this; setVertexBuffer(descriptor: GeometryVertexBufferDescriptor): this; getVertexBuffer(bufferIndex: number): Buffer; updateVertexBuffer(bufferIndex: number, location: number, index: number, data: Uint8Array): void; updateIndices(indices: IndicesArray, offset?: number): this; destroy(): void; } //# sourceMappingURL=BufferGeometry.d.ts.map