forked from jeromeetienne/threex.rendererstats
-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy paththreex.rendererstats.js
66 lines (54 loc) · 2.14 KB
/
threex.rendererstats.js
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
/**
* @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.memory.programs;
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;
}
}
};