crosFrameData = function(seq, startTime, frameElapsedTime, jsElapsedTime) {
this.seq = seq;
this.startTime = startTime;
this.frameElapsedTime = frameElapsedTime;
this.jsElapsedTime = jsElapsedTime;
}
crosFpsCounter = function() {
this.totalElapsedTime = 0.0;
this.totalRenderTime = 0.0;
this.totalFrames = 0;
this.buffer_size = 120;
this.frameDataBuf = new Array();
}
crosFpsCounter.prototype.update = function(
startTime, frameElapsedTime, jsElapsedTime) {
this.totalFrameElapsedTime += frameElapsedTime;
this.totalJSElapsedTime += jsElapsedTime;
this.frameDataBuf[this.totalFrames % this.buffer_size] = new crosFrameData(
this.totalFrames, startTime, frameElapsedTime, jsElapsedTime);
this.totalFrames += 1;
}
crosFpsCounter.prototype.reset = function() {
this.totalFrameElapsedTime = 0.0;
this.totalJSElapsedTime = 0.0;
this.totalFrames = 0;
this.frameDataBuf = new Array();
}
crosFpsCounter.prototype.getAvgFps = function() {
return this.totalFrames / this.totalFrameElapsedTime;
}
crosFpsCounter.prototype.getAvgRenderTime = function() {
return this.totalJSElapsedTime / this.totalFrames;
}
crosFpsCounter.prototype.getFrameData = function() {
return this.frameDataBuf;
}