Browse Source

Merge pull request #12429 from Astrak/infoRender-improvements

info autoReset
Mr.doob 7 years ago
parent
commit
815678eb37
2 changed files with 20 additions and 6 deletions
  1. 6 0
      docs/api/renderers/WebGLRenderer.html
  2. 14 6
      src/renderers/WebGLRenderer.js

+ 6 - 0
docs/api/renderers/WebGLRenderer.html

@@ -188,6 +188,12 @@
 			</li>
 		</ul>
 		</div>
+		<div>By default these data are reset at each render calls, but when using the composer or mirrors it can be preferred to reset them with a custom pattern :
+		<code>
+		renderer.info.autoReset = false;
+		renderer.info.reset();
+		</code>
+		</div>
 
 		<h3>[property:Boolean localClippingEnabled]</h3>
 		<div>Defines whether the renderer respects object-level clipping planes. Default is *false*.</div>

+ 14 - 6
src/renderers/WebGLRenderer.js

@@ -178,10 +178,22 @@ function WebGLRenderer( parameters ) {
 
 		render: _infoRender,
 		memory: _infoMemory,
-		programs: null
+		programs: null,
+		autoReset: true,
+		reset: resetInfo
 
 	};
 
+	function resetInfo () {
+
+		_infoRender.frame ++;
+		_infoRender.calls = 0;
+		_infoRender.vertices = 0;
+		_infoRender.faces = 0;
+		_infoRender.points = 0;
+
+	}
+
 	function getTargetPixelRatio() {
 
 		return _currentRenderTarget === null ? _pixelRatio : 1;
@@ -1144,11 +1156,7 @@ function WebGLRenderer( parameters ) {
 
 		//
 
-		_infoRender.frame ++;
-		_infoRender.calls = 0;
-		_infoRender.vertices = 0;
-		_infoRender.faces = 0;
-		_infoRender.points = 0;
+		if ( this.info.autoReset ) this.info.reset();
 
 		if ( renderTarget === undefined ) {