vizicities/examples/vendor/threex.rendererstats.js

67 wiersze
2.1 KiB
JavaScript
Executable File

/**
* @author mrdoob / http://mrdoob.com/
* @author jetienne / http://jetienne.com/
*/
/** @namespace */
var THREEx = THREEx || {}
/**
* provide info on THREE.WebGLRenderer
*
* @param {Object} renderer the renderer to update
* @param {Object} Camera the camera to update
*/
THREEx.RendererStats = function (){
var msMin = 100;
var msMax = 0;
var container = document.createElement( 'div' );
container.style.cssText = 'width:80px;opacity:0.9;cursor:pointer';
var msDiv = document.createElement( 'div' );
msDiv.style.cssText = 'padding:0 0 3px 3px;text-align:left;background-color:#200;';
container.appendChild( msDiv );
var msText = document.createElement( 'div' );
msText.style.cssText = 'color:#f00;font-family:Helvetica,Arial,sans-serif;font-size:9px;font-weight:bold;line-height:15px';
msText.innerHTML= 'WebGLRenderer';
msDiv.appendChild( msText );
var msTexts = [];
var nLines = 9;
for(var i = 0; i < nLines; i++){
msTexts[i] = document.createElement( 'div' );
msTexts[i].style.cssText = 'color:#f00;background-color:#311;font-family:Helvetica,Arial,sans-serif;font-size:9px;font-weight:bold;line-height:15px';
msDiv.appendChild( msTexts[i] );
msTexts[i].innerHTML= '-';
}
var lastTime = Date.now();
return {
domElement: container,
update: function(webGLRenderer){
// sanity check
console.assert(webGLRenderer instanceof THREE.WebGLRenderer)
// refresh only 30time per second
if( Date.now() - lastTime < 1000/30 ) return;
lastTime = Date.now()
var i = 0;
msTexts[i++].textContent = "== Memory =====";
msTexts[i++].textContent = "Programs: " + webGLRenderer.info.programs.length;
msTexts[i++].textContent = "Geometries: "+webGLRenderer.info.memory.geometries;
msTexts[i++].textContent = "Textures: " + webGLRenderer.info.memory.textures;
msTexts[i++].textContent = "== Render =====";
msTexts[i++].textContent = "Calls: " + webGLRenderer.info.render.calls;
msTexts[i++].textContent = "Vertices: " + webGLRenderer.info.render.vertices;
msTexts[i++].textContent = "Faces: " + webGLRenderer.info.render.faces;
msTexts[i++].textContent = "Points: " + webGLRenderer.info.render.points;
}
}
};