[Bf-blender-cvs] SVN commit: /data/svn/bf-blender [43971] trunk/blender/intern/cycles/ blender: Fix #30061: cycles single render layer through python operator parameter not
Brecht Van Lommel
brechtvanlommel at pandora.be
Tue Feb 7 21:51:44 CET 2012
Revision: 43971
http://projects.blender.org/scm/viewvc.php?view=rev&root=bf-blender&revision=43971
Author: blendix
Date: 2012-02-07 20:51:33 +0000 (Tue, 07 Feb 2012)
Log Message:
-----------
Fix #30061: cycles single render layer through python operator parameter not
working.
Modified Paths:
--------------
trunk/blender/intern/cycles/blender/blender_session.cpp
trunk/blender/intern/cycles/blender/blender_sync.cpp
trunk/blender/intern/cycles/blender/blender_sync.h
Modified: trunk/blender/intern/cycles/blender/blender_session.cpp
===================================================================
--- trunk/blender/intern/cycles/blender/blender_session.cpp 2012-02-07 20:39:51 UTC (rev 43970)
+++ trunk/blender/intern/cycles/blender/blender_session.cpp 2012-02-07 20:51:33 UTC (rev 43971)
@@ -191,14 +191,8 @@
BL::RenderResult::layers_iterator b_iter;
BL::RenderLayers b_rr_layers(r.ptr);
- int active = 0;
-
/* render each layer */
- for(b_rr.layers.begin(b_iter); b_iter != b_rr.layers.end(); ++b_iter, ++active) {
- /* single layer render */
- if(r.use_single_layer())
- active = b_rr_layers.active_index();
-
+ for(b_rr.layers.begin(b_iter); b_iter != b_rr.layers.end(); ++b_iter) {
/* set layer */
b_rlay = *b_iter;
@@ -226,7 +220,7 @@
session->reset(buffer_params, session_params.samples);
/* update scene */
- sync->sync_data(b_v3d, active);
+ sync->sync_data(b_v3d, b_iter->name().c_str());
/* render */
session->start();
Modified: trunk/blender/intern/cycles/blender/blender_sync.cpp
===================================================================
--- trunk/blender/intern/cycles/blender/blender_sync.cpp 2012-02-07 20:39:51 UTC (rev 43970)
+++ trunk/blender/intern/cycles/blender/blender_sync.cpp 2012-02-07 20:51:33 UTC (rev 43971)
@@ -122,7 +122,7 @@
return recalc;
}
-void BlenderSync::sync_data(BL::SpaceView3D b_v3d, int layer)
+void BlenderSync::sync_data(BL::SpaceView3D b_v3d, const char *layer)
{
sync_render_layers(b_v3d);
sync_integrator(layer);
@@ -133,7 +133,7 @@
/* Integrator */
-void BlenderSync::sync_integrator(int layer)
+void BlenderSync::sync_integrator(const char *layer)
{
PointerRNA cscene = RNA_pointer_get(&b_scene.ptr, "cycles");
@@ -155,8 +155,21 @@
integrator->no_caustics = get_boolean(cscene, "no_caustics");
integrator->seed = get_int(cscene, "seed");
- integrator->layer_flag = render_layers[layer].layer;
+ /* render layer */
+ int active_layer = 0;
+
+ if(layer) {
+ for(int i = 0; i < render_layers.size(); i++) {
+ if(render_layers[i].name == layer) {
+ active_layer = i;
+ break;
+ }
+ }
+ }
+
+ integrator->layer_flag = render_layers[active_layer].layer;
+
if(integrator->modified(previntegrator))
integrator->tag_update(scene);
}
@@ -208,6 +221,7 @@
/* single layer for now */
RenderLayerInfo rlay;
+ rlay.name = b_rlay->name();
rlay.scene_layer = get_layer(b_scene.layers());
rlay.layer = get_layer(b_rlay->layers());
rlay.material_override = b_rlay->material_override();
Modified: trunk/blender/intern/cycles/blender/blender_sync.h
===================================================================
--- trunk/blender/intern/cycles/blender/blender_sync.h 2012-02-07 20:39:51 UTC (rev 43970)
+++ trunk/blender/intern/cycles/blender/blender_sync.h 2012-02-07 20:51:33 UTC (rev 43971)
@@ -54,7 +54,7 @@
/* sync */
bool sync_recalc();
- void sync_data(BL::SpaceView3D b_v3d, int layer = 0);
+ void sync_data(BL::SpaceView3D b_v3d, const char *layer = 0);
void sync_camera(int width, int height);
void sync_view(BL::SpaceView3D b_v3d, BL::RegionView3D b_rv3d, int width, int height);
@@ -70,7 +70,7 @@
void sync_materials();
void sync_objects(BL::SpaceView3D b_v3d);
void sync_film();
- void sync_integrator(int layer);
+ void sync_integrator(const char *layer);
void sync_view();
void sync_world();
void sync_render_layers(BL::SpaceView3D b_v3d);
@@ -110,6 +110,7 @@
material_override(PointerRNA_NULL)
{}
+ string name;
uint scene_layer;
uint layer;
BL::Material material_override;
More information about the Bf-blender-cvs
mailing list