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;

_______________________________________________
Bf-blender-cvs mailing list
[email protected]
http://lists.blender.org/mailman/listinfo/bf-blender-cvs

Reply via email to