@thi.ng/vector-pools
Version:
Data structures for managing & working with strided, memory mapped vectors
31 lines • 1.29 kB
TypeScript
import type { GLType, IObjectOf, IRelease, Maybe, NumericArray, Type, TypedArray } from "@thi.ng/api";
import type { MemPool, MemPoolOpts } from "@thi.ng/malloc";
import type { ReadonlyVec, StridedVec } from "@thi.ng/vectors";
export interface AttribSpec {
type: GLType | Type;
size: number;
byteOffset: number;
stride?: number;
default?: number | ReadonlyVec;
data?: ReadonlyVec | ReadonlyVec[];
index?: number;
}
export interface AttribPoolOpts {
mem: MemPool | Partial<MemPoolOpts>;
attribs?: IObjectOf<AttribSpec>;
num: number;
resizable?: boolean;
}
export interface IVecPool extends IRelease {
malloc(size: number, type?: GLType | Type): Maybe<TypedArray>;
mallocWrapped(size: number, stride?: number, type?: GLType | Type): Maybe<StridedVec>;
mallocArray(num: number, size: number, cstride?: number, estride?: number, type?: GLType | Type): Maybe<StridedVec[]>;
free(vec: StridedVec | TypedArray): boolean;
freeAll(): void;
}
export type VecFactory = (buf: NumericArray, size: number, index: number, stride: number) => StridedVec;
/**
* See [thi.ng/logger](https://docs.thi.ng/umbrella/logger/) for usage.
*/
export declare const LOGGER: import("@thi.ng/logger/root").ProxyLogger;
//# sourceMappingURL=api.d.ts.map