[Bf-blender-cvs] SVN commit: /data/svn/bf-blender [19166] branches/soc-2008-mxcurioni/source /blender/freestyle/intern/scene_graph/BlenderFileLoader.cpp: Fixed an issue regarding render layers.
Tamito Kajiyama
rd6t-kjym at asahi-net.or.jp
Mon Mar 2 04:31:19 CET 2009
Revision: 19166
http://projects.blender.org/plugins/scmsvn/viewcvs.php?view=rev&root=bf-blender&revision=19166
Author: kjym3
Date: 2009-03-02 04:30:59 +0100 (Mon, 02 Mar 2009)
Log Message:
-----------
Fixed an issue regarding render layers. Now the Freestyle renderer builds a view map based on selected object layers in a render layer, instead of the global selection of object layers. This allows, for example, to have two render layers, one for rendering solid faces in all object layers, and the other for rendering outlines of objects in selected object layers by Freestyle. At the moment, the number of Freestyle-enabled render layers is restricted to one -- a better fix is in the future work.
Modified Paths:
--------------
branches/soc-2008-mxcurioni/source/blender/freestyle/intern/scene_graph/BlenderFileLoader.cpp
Modified: branches/soc-2008-mxcurioni/source/blender/freestyle/intern/scene_graph/BlenderFileLoader.cpp
===================================================================
--- branches/soc-2008-mxcurioni/source/blender/freestyle/intern/scene_graph/BlenderFileLoader.cpp 2009-03-02 02:21:18 UTC (rev 19165)
+++ branches/soc-2008-mxcurioni/source/blender/freestyle/intern/scene_graph/BlenderFileLoader.cpp 2009-03-02 03:30:59 UTC (rev 19166)
@@ -19,12 +19,30 @@
ObjectRen *obr;
cout << "\n=== Importing triangular meshes into Blender ===" << endl;
+
+ SceneRenderLayer *srl, *active_srl = NULL;
+ int count = 0;
+ for(srl= (SceneRenderLayer *)_re->scene->r.layers.first; srl; srl= srl->next) {
+ if(srl->layflag & SCE_LAY_FRS) {
+ if (!active_srl) active_srl = srl;
+ count++;
+ }
+ }
+ if (count > 1) {
+ cout << "Warning: Freestyle is enabled in the following " << count << " scene render layers:" << endl;
+ for(srl= (SceneRenderLayer *)_re->scene->r.layers.first; srl; srl= srl->next)
+ if(srl->layflag & SCE_LAY_FRS)
+ cout << " \"" << srl->name << "\"" << ((active_srl == srl) ? " (only this is taken into account)" : "") << endl;
+ }
// creation of the scene root node
_Scene = new NodeGroup;
int id = 0;
for(obi= (ObjectInstanceRen *) _re->instancetable.first; obi; obi=obi->next) {
+ if (!(obi->lay & _re->scene->lay & active_srl->lay))
+ continue;
+
obr= obi->obr;
if( obr->totvlak > 0)
More information about the Bf-blender-cvs
mailing list