playcanvas
Version:
Open-source WebGL/WebGPU 3D engine for the web
101 lines (100 loc) • 2.57 kB
TypeScript
/**
* @import { GraphicsDevice } from '../platform/graphics/graphics-device.js'
*/
/**
* Records performance-related statistics related to the application.
*/
export class ApplicationStats {
/**
* Create a new ApplicationStats instance.
*
* @param {GraphicsDevice} device - The graphics device.
*/
constructor(device: GraphicsDevice);
frame: {
fps: number;
ms: number;
dt: number;
updateStart: number;
updateTime: number;
renderStart: number;
renderTime: number;
physicsStart: number;
physicsTime: number;
scriptUpdateStart: number;
scriptUpdate: number;
scriptPostUpdateStart: number;
scriptPostUpdate: number;
animUpdateStart: number;
animUpdate: number;
cullTime: number;
sortTime: number;
skinTime: number;
morphTime: number;
instancingTime: number;
triangles: number;
gsplats: number;
gsplatSort: number;
gsplatBufferCopy: number;
otherPrimitives: number;
shaders: number;
materials: number;
cameras: number;
shadowMapUpdates: number;
shadowMapTime: number;
depthMapTime: number;
forwardTime: number;
lightClustersTime: number;
lightClusters: number;
_timeToCountFrames: number;
_fpsAccum: number;
};
drawCalls: {
forward: number;
depth: number;
shadow: number;
immediate: number;
misc: number;
total: number;
skinned: number;
instanced: number;
removedByInstancing: number;
};
misc: {
renderTargetCreationTime: number;
};
particles: {
updatesPerFrame: number;
_updatesPerFrame: number;
frameTime: number;
_frameTime: number;
};
shaders: {
vsCompiled: number;
fsCompiled: number;
linked: number;
materialShaders: number;
compileTime: number;
};
vram: {
texShadow: number;
texAsset: number;
texLightmap: number;
tex: number;
vb: number;
ib: number;
ub: number;
sb: number;
};
gpu: Map<any, any>;
get scene(): any;
get lightmapper(): any;
get batcher(): any;
/**
* Called at the end of each frame to reset per-frame statistics.
*
* @ignore
*/
frameEnd(): void;
}
import type { GraphicsDevice } from '../platform/graphics/graphics-device.js';