luma.gl/test/utils/resource-tracker.ts
2023-05-02 15:39:55 -04:00

25 lines
791 B
TypeScript

/* global luma */
export function getResourceCounts() {
// @ts-ignore
const resourceStats = luma.stats.get('Resource Counts');
return {
Texture2D: resourceStats.get('Texture2Ds Active').count,
Buffer: resourceStats.get('Buffers Active').count
};
}
export function getLeakedResources(startCounts: Record<string, number>, endCounts: Record<string, number>): number | null {
let leakedResources = null;
const info = 'leaking: ';
for (const resourceName in endCounts) {
const leakCount = endCounts[resourceName] - startCounts[resourceName];
if (leakCount !== 0) {
leakedResources = Object.assign({}, leakedResources, {
[resourceName]: leakCount,
info: `${info} ${resourceName}: ${leakCount}, `
});
}
}
return leakedResources;
}