@spearwolf/twopoint5d
Version:
Create 2.5D realtime graphics and pixelart with WebGL and three.js
41 lines • 2.02 kB
TypeScript
import { BufferGeometry, InstancedBufferGeometry } from 'three/webgpu';
import { VOBufferPool } from './VOBufferPool.js';
import { VertexObjectDescriptor } from './VertexObjectDescriptor.js';
import { VertexObjectPool } from './VertexObjectPool.js';
import type { BufferLike, VertexAttributeUsageType, VertexObjectDescription } from './types.js';
type TouchBuffersType = {
[Type in VertexAttributeUsageType]?: boolean;
};
type TouchInstancedBuffersType = {
base?: TouchBuffersType;
instanced?: TouchBuffersType;
};
export declare class InstancedVOBufferGeometry extends InstancedBufferGeometry {
#private;
readonly basePool?: VOBufferPool;
readonly baseBuffers?: Map<string, BufferLike>;
readonly baseBufferSerials: Map<string, number>;
readonly instancedBufferSerials: Map<string, number>;
readonly instancedPool: VOBufferPool;
readonly instancedBuffers: Map<string, BufferLike>;
readonly extraInstancedPools: Map<string, VOBufferPool>;
readonly extraInstancedBuffers: Map<string, Map<string, BufferLike>>;
readonly extraInstancedBufferSerials: Map<string, Map<string, number>>;
constructor(...args: [VOBufferPool | VertexObjectDescriptor | VertexObjectDescription, number, BufferGeometry] | [
VOBufferPool | VertexObjectDescriptor | VertexObjectDescription,
number,
VOBufferPool | VertexObjectDescriptor | VertexObjectDescription,
number?
]);
attachInstancedPool(name: string, pool: VertexObjectPool<any> | VertexObjectDescriptor | VertexObjectDescription, options?: {
autoDispose?: boolean;
}): VertexObjectPool<any>;
detachInstancedPool(name: string): VOBufferPool | undefined;
dispose(): void;
touchAttributes(...attrNames: string[]): void;
touchBuffers(bufferTypes: TouchInstancedBuffersType | TouchBuffersType): void;
touch(...args: Array<string | TouchBuffersType | TouchInstancedBuffersType>): void;
update(): void;
}
export {};
//# sourceMappingURL=InstancedVOBufferGeometry.d.ts.map