Freestyle: Progress bar updates during mesh loading.

This commit is contained in:
Tamito Kajiyama 2014-06-24 17:12:38 +09:00
parent dd96be356d
commit e7c92f1145
1 changed files with 17 additions and 2 deletions

View File

@ -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;