Welcome to mirror list, hosted at ThFree Co, Russian Federation.

git.blender.org/blender.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
path: root/source
diff options
context:
space:
mode:
authorMaxime Curioni <maxime.curioni@gmail.com>2008-12-10 18:30:43 +0300
committerMaxime Curioni <maxime.curioni@gmail.com>2008-12-10 18:30:43 +0300
commiteaae4090c1ade6ed1d8eb321e492e277035e5c54 (patch)
treef3b1bf2830528d947ab05f3c3bc315ad62c6999a /source
parent12debd47dda063ef3a504441ecf21f4edb34e502 (diff)
replaced "Shape loading" message with "Importing triangular meshes into Blender"
handled case when scene is empty made controller's view map as public variable
Diffstat (limited to 'source')
-rwxr-xr-xsource/blender/freestyle/intern/app_blender/Controller.cpp6
-rwxr-xr-xsource/blender/freestyle/intern/app_blender/Controller.h6
-rw-r--r--source/blender/freestyle/intern/app_blender/api.cpp39
-rw-r--r--source/blender/freestyle/intern/scene_graph/BlenderFileLoader.cpp2
-rw-r--r--source/blender/render/intern/source/rendercore.c5
5 files changed, 25 insertions, 33 deletions
diff --git a/source/blender/freestyle/intern/app_blender/Controller.cpp b/source/blender/freestyle/intern/app_blender/Controller.cpp
index 6fa31cdd03d..64bcdd5acb8 100755
--- a/source/blender/freestyle/intern/app_blender/Controller.cpp
+++ b/source/blender/freestyle/intern/app_blender/Controller.cpp
@@ -180,8 +180,12 @@ int Controller::LoadMesh(Render *re)
return 1;
}
- cout << "Scene loaded\n" << endl;
+ if( blenderScene->numberOfChildren() < 1) {
+ cout << "Empty scene" << endl;
+ return 1;
+ }
+ cout << "Scene loaded" << endl;
printf("Mesh cleaning : %lf\n", _Chrono.stop());
_SceneNumFaces += loader.numFacesRead();
diff --git a/source/blender/freestyle/intern/app_blender/Controller.h b/source/blender/freestyle/intern/app_blender/Controller.h
index 76aa071ddd3..8521cdc7f68 100755
--- a/source/blender/freestyle/intern/app_blender/Controller.h
+++ b/source/blender/freestyle/intern/app_blender/Controller.h
@@ -140,6 +140,10 @@ public:
void resetInterpreter();
+public:
+ // Viewmap data structure
+ ViewMap * _ViewMap;
+
private:
// Main Window:
@@ -168,8 +172,6 @@ private:
// Winged-Edge structure
WingedEdge* _winged_edge;
-
- ViewMap * _ViewMap;
// Silhouette structure:
//std::vector<SShape*> _SShapes;
diff --git a/source/blender/freestyle/intern/app_blender/api.cpp b/source/blender/freestyle/intern/app_blender/api.cpp
index 9ac8dfe989a..c91efa89466 100644
--- a/source/blender/freestyle/intern/app_blender/api.cpp
+++ b/source/blender/freestyle/intern/app_blender/api.cpp
@@ -140,7 +140,8 @@ extern "C" {
controller->Clear();
// load mesh
- controller->LoadMesh(re);
+ if( controller->LoadMesh(re) ) // returns if scene cannot be loaded or if empty
+ return;
// add style module
cout << "Module: " << style_module << endl;
@@ -161,37 +162,19 @@ extern "C" {
// compute view map
controller->ComputeViewMap();
}
-
- // void FRS_render_GL(Render* re) {
- //
- //
- // // build strokes
- // controller->DrawStrokes();
- //
- // cout << "Rendering Freestyle with OpenGL" << endl;
- //
- // // render strokes
- // view->workingBuffer = GL_BACK;
- // view->draw();
- //
- // // display result
- // RenderResult rres;
- // RE_GetResultImage(re, &rres);
- // view->readPixels(0, 0, re->winx, re->winy, AppGLWidget::RGBA, rres.rectf );
- // re->result->renlay = render_get_active_layer(re, re->result);
- // re->display_draw(re->result, NULL);
- //
- // controller->CloseFile();
- // }
void FRS_render_Blender(Render* re) {
- // build strokes
- controller->DrawStrokes();
+ if( controller->_ViewMap ) {
+ // build strokes
+ controller->DrawStrokes();
- cout << "Rendering Freestyle with Blender's internal renderer" << endl;
- controller->RenderBlender(re);
- controller->CloseFile();
+ cout << "Rendering Freestyle with Blender's internal renderer" << endl;
+ controller->RenderBlender(re);
+ controller->CloseFile();
+ } else {
+ cout << "Freestyle cannot be used because the view map is not available" << endl;
+ }
}
#ifdef __cplusplus
diff --git a/source/blender/freestyle/intern/scene_graph/BlenderFileLoader.cpp b/source/blender/freestyle/intern/scene_graph/BlenderFileLoader.cpp
index bede99e4da3..7c3d41d0018 100644
--- a/source/blender/freestyle/intern/scene_graph/BlenderFileLoader.cpp
+++ b/source/blender/freestyle/intern/scene_graph/BlenderFileLoader.cpp
@@ -18,7 +18,7 @@ NodeGroup* BlenderFileLoader::Load()
ObjectInstanceRen *obi;
ObjectRen *obr;
- cout << "Shape loading" << endl;
+ cout << "\nImporting triangular meshes into Blender" << endl;
// creation of the scene root node
_Scene = new NodeGroup;
diff --git a/source/blender/render/intern/source/rendercore.c b/source/blender/render/intern/source/rendercore.c
index 5f7967d85db..46fcd99a6e6 100644
--- a/source/blender/render/intern/source/rendercore.c
+++ b/source/blender/render/intern/source/rendercore.c
@@ -908,7 +908,10 @@ static void freestyle_enhance_add(RenderPart *pa, RenderLayer *rl)
int totsample;
int x, y, od;
float* freestyle;
-
+
+ if( R.freestyle_render == NULL || R.freestyle_render->result == NULL )
+ return;
+
freestyle_rl = render_get_active_layer( R.freestyle_render, R.freestyle_render->result );
if( freestyle_rl->rectf == NULL)
return;