Просмотр исходного кода

Inspector: Reuse the last frame if there is desynchronization. (#31963)

sunag 3 месяцев назад
Родитель
Сommit
b08c95d1f4
1 измененных файлов с 10 добавлено и 1 удалено
  1. 10 1
      examples/jsm/inspector/RendererInspector.js

+ 10 - 1
examples/jsm/inspector/RendererInspector.js

@@ -74,6 +74,7 @@ export class RendererInspector extends InspectorBase {
 		this.currentFrame = null;
 		this.currentRender = null;
 		this.currentNodes = null;
+		this.lastFrame = null;
 
 		this.frames = [];
 		this.framesLib = {};
@@ -104,6 +105,8 @@ export class RendererInspector extends InspectorBase {
 
 		this.addFrame( frame );
 
+		this.lastFrame = frame;
+
 		this.currentFrame = null;
 		this.currentRender = null;
 		this.currentNodes = null;
@@ -131,7 +134,7 @@ export class RendererInspector extends InspectorBase {
 
 	getFrame() {
 
-		return this.currentFrame;
+		return this.currentFrame || this.lastFrame;
 
 	}
 
@@ -327,6 +330,8 @@ export class RendererInspector extends InspectorBase {
 
 		const frame = this.getFrame();
 
+		if ( ! frame ) return;
+
 		const currentRender = new RenderStats( uid, scene, camera, renderTarget );
 		currentRender.timestamp = performance.now();
 		currentRender.parent = this.currentRender;
@@ -349,6 +354,10 @@ export class RendererInspector extends InspectorBase {
 
 	finishRender() {
 
+		const frame = this.getFrame();
+
+		if ( ! frame ) return;
+
 		const currentRender = this.currentRender;
 		currentRender.cpu = performance.now() - currentRender.timestamp;
 

粤ICP备19079148号