leva-r3f-stats
Version:
A small plugin to display React Three Fiber stats in Leva
57 lines • 1.92 kB
TypeScript
import { StatsData } from '../types';
import { RingBuffer } from '../utils/buffer';
type StatsListener = (data: StatsData) => void;
type BufferKey = keyof Omit<StatsData, 'vsync' | 'isWebGPU' | 'gpuAccurate'>;
interface PeakValues {
triangles: number;
drawCalls: number;
lastReset: number;
}
declare class UnifiedStore {
private listeners;
private data;
buffers: Record<BufferKey | 'gpuPercent', RingBuffer>;
private peaks;
private instanceCount;
private updateScheduled;
private pendingUpdates;
subscribe(listener: StatsListener): () => void;
update(newData: Partial<StatsData>): void;
private flushUpdates;
get(): StatsData;
getPeaks(): PeakValues;
resetPeaks(): void;
resizeBuffers(size: number): void;
reset(): void;
registerInstance(): () => void;
getInstanceCount(): number;
}
export declare const unifiedStore: UnifiedStore;
export declare const statsStore: {
subscribe: (fn: StatsListener) => () => void;
update: (data: Partial<StatsData>) => void;
get: () => StatsData;
getPeaks: () => PeakValues;
resetPeaks: () => void;
reset: () => void;
registerInstance: () => () => void;
getInstanceCount: () => number;
};
export declare const globalBuffers: Record<"fps" | "ms" | "memory" | "gpu" | "cpu" | "compute" | "triangles" | "drawCalls" | "gpuPercent", RingBuffer>;
export declare const updateBufferSize: (size: number) => void;
export declare const registerInstance: () => () => void;
export declare const getInstanceCount: () => number;
export declare function createInstanceBuffers(size: number): {
destroy: () => void;
fps: RingBuffer;
ms: RingBuffer;
memory: RingBuffer;
gpu: RingBuffer;
cpu: RingBuffer;
compute: RingBuffer;
triangles: RingBuffer;
drawCalls: RingBuffer;
gpuPercent: RingBuffer;
};
export {};
//# sourceMappingURL=unifiedStore.d.ts.map