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
diff options
context:
space:
mode:
authorBrecht Van Lommel <brechtvanlommel@pandora.be>2012-03-28 13:07:35 +0400
committerBrecht Van Lommel <brechtvanlommel@pandora.be>2012-03-28 13:07:35 +0400
commitd87995a6b1d03aaa647c9233ca2e6469f2ef7805 (patch)
treedb84209b2664e7f58397f368ba60e086b37ac021 /intern/cycles/blender/blender_sync.cpp
parent33740c5eb56884929b70a394e5b3dc7ceb0cfc91 (diff)
Cycles: add rendered draw mode option in 3d view header to show the active
render layer rather than the viewport layers.
Diffstat (limited to 'intern/cycles/blender/blender_sync.cpp')
-rw-r--r--intern/cycles/blender/blender_sync.cpp51
1 files changed, 32 insertions, 19 deletions
diff --git a/intern/cycles/blender/blender_sync.cpp b/intern/cycles/blender/blender_sync.cpp
index 9fb2c6e1328..e88f74eea68 100644
--- a/intern/cycles/blender/blender_sync.cpp
+++ b/intern/cycles/blender/blender_sync.cpp
@@ -189,29 +189,42 @@ void BlenderSync::sync_film()
void BlenderSync::sync_render_layers(BL::SpaceView3D b_v3d, const char *layer)
{
+ string layername;
+
+ /* 3d view */
if(b_v3d) {
- render_layer.scene_layer = get_layer(b_v3d.layers());
- render_layer.layer = render_layer.scene_layer;
- render_layer.holdout_layer = 0;
- render_layer.material_override = PointerRNA_NULL;
+ PointerRNA cscene = RNA_pointer_get(&b_scene.ptr, "cycles");
+
+ if(RNA_boolean_get(&cscene, "preview_active_layer")) {
+ BL::RenderLayers layers(b_scene.render().ptr);
+ layername = layers.active().name();
+ layer = layername.c_str();
+ }
+ else {
+ render_layer.scene_layer = get_layer(b_v3d.layers());
+ render_layer.layer = render_layer.scene_layer;
+ render_layer.holdout_layer = 0;
+ render_layer.material_override = PointerRNA_NULL;
+ return;
+ }
}
- else {
- BL::RenderSettings r = b_scene.render();
- BL::RenderSettings::layers_iterator b_rlay;
- bool first_layer = true;
-
- for(r.layers.begin(b_rlay); b_rlay != r.layers.end(); ++b_rlay) {
- if((!layer && first_layer) || (layer && b_rlay->name() == layer)) {
- render_layer.name = b_rlay->name();
- render_layer.scene_layer = get_layer(b_scene.layers());
- render_layer.layer = get_layer(b_rlay->layers());
- render_layer.holdout_layer = get_layer(b_rlay->layers_zmask());
- render_layer.layer |= render_layer.holdout_layer;
- render_layer.material_override = b_rlay->material_override();
- }
- first_layer = false;
+ /* render layer */
+ BL::RenderSettings r = b_scene.render();
+ BL::RenderSettings::layers_iterator b_rlay;
+ bool first_layer = true;
+
+ for(r.layers.begin(b_rlay); b_rlay != r.layers.end(); ++b_rlay) {
+ if((!layer && first_layer) || (layer && b_rlay->name() == layer)) {
+ render_layer.name = b_rlay->name();
+ render_layer.scene_layer = get_layer(b_scene.layers());
+ render_layer.layer = get_layer(b_rlay->layers());
+ render_layer.holdout_layer = get_layer(b_rlay->layers_zmask());
+ render_layer.layer |= render_layer.holdout_layer;
+ render_layer.material_override = b_rlay->material_override();
}
+
+ first_layer = false;
}
}