瀏覽代碼

WebGLRenderer3: Added info object.

Mr.doob 12 年之前
父節點
當前提交
b0bbc35a50
共有 1 個文件被更改,包括 31 次插入0 次删除
  1. 31 0
      examples/js/renderers/WebGLRenderer3.js

+ 31 - 0
examples/js/renderers/WebGLRenderer3.js

@@ -21,6 +21,8 @@ THREE.WebGLRenderer3 = function ( parameters ) {
 
 	parameters = parameters || {};
 
+	var scope = this;
+
 	var canvas = parameters.canvas !== undefined ? parameters.canvas : document.createElement( 'canvas' );
 
 	var devicePixelRatio = parameters.devicePixelRatio !== undefined
@@ -177,6 +179,8 @@ THREE.WebGLRenderer3 = function ( parameters ) {
 
 		buffers[ geometry.id ] = buffer;
 
+		scope.info.memory.geometries ++;
+
 		return buffer;
 
 	};
@@ -269,6 +273,8 @@ THREE.WebGLRenderer3 = function ( parameters ) {
 				programsCache[ code ] = program;
 				programs[ material.id ] = program;
 
+				scope.info.memory.programs ++;
+
 			} else {
 
 				console.error( 'VALIDATE_STATUS: ' + gl.getProgramParameter( program, gl.VALIDATE_STATUS ) );
@@ -309,6 +315,27 @@ THREE.WebGLRenderer3 = function ( parameters ) {
 
 	};
 
+	this.info = {
+
+		memory: {
+
+			programs: 0,
+			geometries: 0,
+			textures: 0
+
+		},
+
+		render: {
+
+			calls: 0,
+			vertices: 0,
+			faces: 0,
+			points: 0
+
+		}
+
+	};
+
 	this.domElement = canvas;
 	this.extensions = extensions;
 
@@ -566,6 +593,8 @@ THREE.WebGLRenderer3 = function ( parameters ) {
 
 		gl.drawArrays( gl.TRIANGLES, 0, buffer.count );
 
+		scope.info.render.calls ++;
+
 	};
 
 	this.render = function ( scene, camera ) {
@@ -584,6 +613,8 @@ THREE.WebGLRenderer3 = function ( parameters ) {
 		objectsOpaque.length = 0;
 		objectsTransparent.length = 0;
 
+		scope.info.render.calls = 0;
+
 		currentBuffer = undefined;
 		currentMaterial = undefined;
 		currentProgram = undefined;