[Bf-blender-cvs] [e7c92f1] master: Freestyle: Progress bar updates during mesh loading.

Tamito Kajiyama noreply at git.blender.org
Tue Jun 24 10:25:27 CEST 2014


Commit: e7c92f11453e58a3a0a455d14f011671987bddc2
Author: Tamito Kajiyama
Date:   Tue Jun 24 17:12:38 2014 +0900
https://developer.blender.org/rBe7c92f11453e58a3a0a455d14f011671987bddc2

Freestyle: Progress bar updates during mesh loading.

===================================================================

M	source/blender/freestyle/intern/blender_interface/BlenderFileLoader.cpp

===================================================================

diff --git a/source/blender/freestyle/intern/blender_interface/BlenderFileLoader.cpp b/source/blender/freestyle/intern/blender_interface/BlenderFileLoader.cpp
index 72baea1..b504d2c 100644
--- a/source/blender/freestyle/intern/blender_interface/BlenderFileLoader.cpp
+++ b/source/blender/freestyle/intern/blender_interface/BlenderFileLoader.cpp
@@ -28,6 +28,8 @@
 
 #include "BKE_global.h"
 
+#include <sstream>
+
 namespace Freestyle {
 
 BlenderFileLoader::BlenderFileLoader(Render *re, SceneRenderLayer *srl)
@@ -38,6 +40,7 @@ BlenderFileLoader::BlenderFileLoader(Render *re, SceneRenderLayer *srl)
 	_numFacesRead = 0;
 	_minEdgeSize = DBL_MAX;
 	_smooth = (srl->freestyleConfig.flags & FREESTYLE_FACE_SMOOTHNESS_FLAG) != 0;
+	_pRenderMonitor = NULL;
 }
 
 BlenderFileLoader::~BlenderFileLoader()
@@ -86,9 +89,21 @@ NodeGroup *BlenderFileLoader::Load()
 #endif
 
 	int id = 0;
+	unsigned cnt = 1;
+	unsigned cntStep = (unsigned)ceil(0.01f * _re->totinstance);
 	for (obi = (ObjectInstanceRen *)_re->instancetable.first; obi; obi = obi->next) {
-		if (_pRenderMonitor && _pRenderMonitor->testBreak())
-			break;
+		if (_pRenderMonitor) {
+			if (_pRenderMonitor->testBreak())
+				break;
+			if (cnt % cntStep == 0) {
+				stringstream ss;
+				ss << "Freestyle: Mesh loading " << (100 * cnt / _re->totinstance) << "%";
+				_pRenderMonitor->setInfo(ss.str());
+				_pRenderMonitor->progress((float)cnt / _re->totinstance);
+			}
+			cnt++;
+		}
+
 		if (!(obi->lay & _srl->lay))
 			continue;
 		char *name = obi->ob->id.name;




More information about the Bf-blender-cvs mailing list