ThreeJS-Webpack-ES6-Boilerp.../src/js/app/helpers/stats.js

56 lines
1.4 KiB
JavaScript

// Local vars for rStats
let rS, bS, glS, tS;
export default class Stats {
constructor(renderer) {
this.renderer = renderer;
}
setUp() {
bS = new BrowserStats();
glS = new glStats();
tS = new threeStats(this.renderer.threeRenderer);
rS = new rStats({
CSSPath: './css/',
userTimingAPI: true,
values: {
frame: { caption: 'Total frame time (ms)', over: 16, average: true, avgMs: 100 },
fps: { caption: 'Framerate (FPS)', below: 30 },
calls: { caption: 'Calls (three.js)', over: 3000 },
raf: { caption: 'Time since last rAF (ms)', average: true, avgMs: 100 },
rstats: { caption: 'rStats update (ms)', average: true, avgMs: 100 },
texture: { caption: 'GenTex', average: true, avgMs: 100 }
},
groups: [
{ caption: 'Framerate', values: ['fps', 'raf'] },
{ caption: 'Frame Budget', values: ['frame', 'texture', 'setup', 'render'] }
],
fractions: [
{ base: 'frame', steps: ['texture', 'setup', 'render'] }
],
plugins: [bS, tS]
});
}
static start() {
rS('frame').start();
glS.start();
rS('rAF').tick();
rS('FPS').frame();
rS('render').start();
}
static end() {
rS('render').end(); // render finished
rS('frame').end(); // frame finished
// Local rStats update
rS('rStats').start();
rS().update();
rS('rStats').end();
}
}