[Bf-blender-cvs] [67b014af484] blender2.8: Workspaces: active view layer now always comes from workspace, not scene.

Brecht Van Lommel noreply at git.blender.org
Thu Apr 26 17:07:36 CEST 2018


Commit: 67b014af484ad4ba6667e3cf9907422bedc8238a
Author: Brecht Van Lommel
Date:   Tue Apr 24 15:20:17 2018 +0200
Branches: blender2.8
https://developer.blender.org/rB67b014af484ad4ba6667e3cf9907422bedc8238a

Workspaces: active view layer now always comes from workspace, not scene.

Both the scene and workspace had an active view layer, and it was confusing
which settings were being used or displayed where. Now we always have one,
so there is no mismatch.

The "View Layers" tab in the properties editor is now "View Layer", no longer
showing a list of layers. Instead view layers can be added and removed with
the workspace view layer selector. They are also listed and selectable in the
outliner.

Single layer rendering uses the active view layer from the workspace.

This fixes bugs where the wrong active view layer was used, but more places
remain that are wrong and are now using the first view layer in the scene.
These are all marked with BKE_view_layer_context_active_PLACEHOLDER.

===================================================================

M	intern/cycles/blender/addon/properties.py
M	intern/cycles/blender/addon/ui.py
M	release/scripts/startup/bl_operators/freestyle.py
M	release/scripts/startup/bl_ui/properties_freestyle.py
M	release/scripts/startup/bl_ui/properties_view_layer.py
M	release/scripts/startup/bl_ui/space_node.py
M	release/scripts/startup/bl_ui/space_topbar.py
M	source/blender/blenkernel/BKE_layer.h
M	source/blender/blenkernel/BKE_linestyle.h
M	source/blender/blenkernel/BKE_scene.h
M	source/blender/blenkernel/intern/blendfile.c
M	source/blender/blenkernel/intern/layer.c
M	source/blender/blenkernel/intern/linestyle.c
M	source/blender/blenkernel/intern/scene.c
M	source/blender/blenkernel/intern/sequencer.c
M	source/blender/blenkernel/intern/tracking.c
M	source/blender/blenloader/intern/versioning_280.c
M	source/blender/depsgraph/intern/builder/deg_builder_nodes_view_layer.cc
M	source/blender/depsgraph/intern/builder/deg_builder_relations_view_layer.cc
M	source/blender/editors/object/object_bake_api.c
M	source/blender/editors/render/render_internal.c
M	source/blender/editors/render/render_opengl.c
M	source/blender/editors/render/render_preview.c
M	source/blender/editors/render/render_shading.c
M	source/blender/editors/scene/scene_edit.c
M	source/blender/editors/space_buttons/buttons_context.c
M	source/blender/editors/space_buttons/buttons_texture.c
M	source/blender/editors/space_node/node_edit.c
M	source/blender/editors/space_outliner/outliner_draw.c
M	source/blender/editors/space_outliner/outliner_select.c
M	source/blender/editors/space_outliner/outliner_tree.c
M	source/blender/editors/space_outliner/space_outliner.c
M	source/blender/editors/space_topbar/space_topbar.c
M	source/blender/makesdna/DNA_scene_types.h
M	source/blender/makesrna/intern/rna_layer.c
M	source/blender/makesrna/intern/rna_scene.c
M	source/blender/makesrna/intern/rna_space.c
M	source/blender/nodes/shader/node_shader_tree.c
M	source/blender/nodes/texture/node_texture_tree.c
M	source/blender/render/extern/include/RE_bake.h
M	source/blender/render/extern/include/RE_pipeline.h
M	source/blender/render/intern/source/external_engine.c
M	source/blender/render/intern/source/pipeline.c
M	tests/python/view_layer/test_evaluation_selectability_a.py
M	tests/python/view_layer/test_evaluation_selectability_b.py
M	tests/python/view_layer/test_evaluation_selectability_c.py
M	tests/python/view_layer/test_evaluation_selectability_d.py
M	tests/python/view_layer/test_evaluation_selectability_e.py
M	tests/python/view_layer/test_evaluation_selectability_f.py
M	tests/python/view_layer/test_evaluation_visibility_a.py
M	tests/python/view_layer/test_evaluation_visibility_b.py
M	tests/python/view_layer/test_evaluation_visibility_c.py
M	tests/python/view_layer/test_evaluation_visibility_d.py
M	tests/python/view_layer/test_evaluation_visibility_e.py
M	tests/python/view_layer/test_evaluation_visibility_f.py
M	tests/python/view_layer/test_object_copy.py
M	tests/python/view_layer/test_object_link_b.py
M	tests/python/view_layer/test_operator_context.py
M	tests/python/view_layer/view_layer_common.py

===================================================================

diff --git a/intern/cycles/blender/addon/properties.py b/intern/cycles/blender/addon/properties.py
index 0e88ed0b6ea..f3403602bea 100644
--- a/intern/cycles/blender/addon/properties.py
+++ b/intern/cycles/blender/addon/properties.py
@@ -1195,7 +1195,7 @@ class CyclesCurveRenderSettings(bpy.types.PropertyGroup):
 def update_render_passes(self, context):
     scene = context.scene
     rd = scene.render
-    view_layer = scene.view_layers.active
+    view_layer = context.view_layer
     view_layer.update_render_passes()
 
 class CyclesRenderLayerSettings(bpy.types.PropertyGroup):
diff --git a/intern/cycles/blender/addon/ui.py b/intern/cycles/blender/addon/ui.py
index 37c040e2362..98619b4f163 100644
--- a/intern/cycles/blender/addon/ui.py
+++ b/intern/cycles/blender/addon/ui.py
@@ -436,8 +436,8 @@ class CYCLES_RENDER_PT_performance(CyclesButtonsPanel, Panel):
         split.prop(cscene, "preview_start_resolution")
 
 
-class CYCLES_RENDER_PT_layer_options(CyclesButtonsPanel, Panel):
-    bl_label = "Layer"
+class CYCLES_RENDER_PT_filter(CyclesButtonsPanel, Panel):
+    bl_label = "Filter"
     bl_context = "view_layer"
 
     def draw(self, context):
@@ -446,7 +446,7 @@ class CYCLES_RENDER_PT_layer_options(CyclesButtonsPanel, Panel):
 
         scene = context.scene
         rd = scene.render
-        view_layer = scene.view_layers.active
+        view_layer = context.view_layer
 
         col = layout.column()
         col.prop(view_layer, "use_sky", "Use Environment")
@@ -471,7 +471,7 @@ class CYCLES_RENDER_PT_layer_passes(CyclesButtonsPanel, Panel):
 
         scene = context.scene
         rd = scene.render
-        view_layer = scene.view_layers.active
+        view_layer = context.view_layer
         cycles_view_layer = view_layer.cycles
 
         split = layout.split()
@@ -545,7 +545,7 @@ class CYCLES_RENDER_PT_denoising(CyclesButtonsPanel, Panel):
 
     def draw_header(self, context):
         scene = context.scene
-        view_layer = scene.view_layers.active
+        view_layer = context.view_layer
         cycles_view_layer = view_layer.cycles
         cscene = scene.cycles
         layout = self.layout
@@ -557,7 +557,7 @@ class CYCLES_RENDER_PT_denoising(CyclesButtonsPanel, Panel):
 
         scene = context.scene
         cscene = scene.cycles
-        view_layer = scene.view_layers.active
+        view_layer = context.view_layer
         cycles_view_layer = view_layer.cycles
 
         layout.active = cycles_view_layer.use_denoising
@@ -1545,7 +1545,7 @@ def get_panels():
         'DATA_PT_spot',
         'MATERIAL_PT_context_material',
         'MATERIAL_PT_preview',
-        'VIEWLAYER_PT_layer_options',
+        'VIEWLAYER_PT_filter',
         'VIEWLAYER_PT_layer_passes',
         'RENDER_PT_post_processing',
         'SCENE_PT_simplify',
@@ -1569,7 +1569,7 @@ classes = (
     CYCLES_RENDER_PT_motion_blur,
     CYCLES_RENDER_PT_film,
     CYCLES_RENDER_PT_performance,
-    CYCLES_RENDER_PT_layer_options,
+    CYCLES_RENDER_PT_filter,
     CYCLES_RENDER_PT_layer_passes,
     CYCLES_RENDER_PT_denoising,
     CYCLES_PT_post_processing,
diff --git a/release/scripts/startup/bl_operators/freestyle.py b/release/scripts/startup/bl_operators/freestyle.py
index 0cfe78879db..d3023f8e582 100644
--- a/release/scripts/startup/bl_operators/freestyle.py
+++ b/release/scripts/startup/bl_operators/freestyle.py
@@ -47,14 +47,14 @@ class SCENE_OT_freestyle_fill_range_by_selection(bpy.types.Operator):
 
     @classmethod
     def poll(cls, context):
-        view_layer = context.scene.view_layers.active
+        view_layer = context.view_layer
         return view_layer and view_layer.freestyle_settings.linesets.active
 
     def execute(self, context):
         import sys
 
         scene = context.scene
-        view_layer = scene.view_layers.active
+        view_layer = context.view_layer
         lineset = view_layer.freestyle_settings.linesets.active
         linestyle = lineset.linestyle
         # Find the modifier to work on
@@ -207,7 +207,7 @@ class SCENE_OT_freestyle_module_open(bpy.types.Operator):
 
     @classmethod
     def poll(cls, context):
-        view_layer = context.scene.view_layers.active
+        view_layer = context.view_layer
         return view_layer and view_layer.freestyle_settings.mode == 'SCRIPT'
 
     def invoke(self, context, event):
diff --git a/release/scripts/startup/bl_ui/properties_freestyle.py b/release/scripts/startup/bl_ui/properties_freestyle.py
index 84ebb21c703..a9c9d512335 100644
--- a/release/scripts/startup/bl_ui/properties_freestyle.py
+++ b/release/scripts/startup/bl_ui/properties_freestyle.py
@@ -71,11 +71,11 @@ class ViewLayerFreestyleButtonsPanel:
     @classmethod
     def poll(cls, context):
         scene = context.scene
-        rd = context.scene.render
+        rd = scene.render
         with_freestyle = bpy.app.build_options.freestyle
 
         return (scene and with_freestyle and rd.use_freestyle and
-                scene.view_layers.active and(context.engine in cls.COMPAT_ENGINES))
+                (context.engine in cls.COMPAT_ENGINES))
 
 
 class ViewLayerFreestyleEditorButtonsPanel(ViewLayerFreestyleButtonsPanel):
@@ -85,7 +85,7 @@ class ViewLayerFreestyleEditorButtonsPanel(ViewLayerFreestyleButtonsPanel):
     def poll(cls, context):
         if not super().poll(context):
             return False
-        view_layer = context.scene.view_layers.active
+        view_layer = context.view_layer
         return view_layer and view_layer.freestyle_settings.mode == 'EDITOR'
 
 
@@ -117,7 +117,7 @@ class VIEWLAYER_PT_freestyle(ViewLayerFreestyleButtonsPanel, Panel):
         layout = self.layout
 
         scene = context.scene
-        view_layer = scene.view_layers.active
+        view_layer = context.view_layer
         freestyle = view_layer.freestyle_settings
 
         layout.active = view_layer.use_freestyle
@@ -186,7 +186,7 @@ class VIEWLAYER_PT_freestyle_lineset(ViewLayerFreestyleEditorButtonsPanel, Panel
         scene = context.scene
         rd = scene.render
 
-        view_layer = scene.view_layers.active
+        view_layer = context.view_layer
         freestyle = view_layer.freestyle_settings
         lineset = freestyle.linesets.active
 
@@ -378,7 +378,7 @@ class VIEWLAYER_PT_freestyle_linestyle(ViewLayerFreestyleEditorButtonsPanel, Pan
                 row = box.row(align=True)
                 row.prop(modifier, "curvature_min")
                 row.prop(modifier, "curvature_max")
-                freestyle = context.scene.view_layers.active.freestyle_settings
+                freestyle = context.view_layer.freestyle_settings
                 if not freestyle.use_smoothness:
                     message = "Enable Face Smoothness to use this modifier"
                     self.draw_modifier_box_error(col.box(), modifier, message)
@@ -433,7 +433,7 @@ class VIEWLAYER_PT_freestyle_linestyle(ViewLayerFreestyleEditorButtonsPanel, Pan
                 row = box.row(align=True)
                 row.prop(modifier, "curvature_min")
                 row.prop(modifier, "curvature_max")
-                freestyle = context.scene.view_layers.active.freestyle_settings
+                freestyle = context.view_layer.freestyle_settings
                 if not freestyle.use_smoothness:
                     message = "Enable Face Smoothness to use this modifier"
                     self.draw_modifier_box_error(col.box(), modifier, message)
@@ -505,7 +505,7 @@ class VIEWLAYER_PT_freestyle_linestyle(ViewLayerFreestyleEditorButtonsPanel, Pan
                 row = box.row(align=True)
                 row.prop(modifier, "curvature_min")
                 row.prop(modifier, "curvature_max")
-                freestyle = context.scene.view_layers.active.freestyle_settings
+                freestyle = context.view_layer.freestyle_settings
                 if not freestyle.use_smoothness:
                     message = "Enable Face Smoothness to use this modifier"
                     self.draw_modifier_box_error(col.box(), modifier, message)
@@ -614,7 +614,7 @@ class VIEWLAYER_PT_freestyle_linestyle(ViewLayerFreestyleEditorButtonsPanel, Pan
         layout = self.layout
 
         scene = context.scene
-        view_layer = scene.view_layers.active
+        view_layer = context.view_layer
         lineset = view_layer.freestyle_settings.linesets.active
 
         layout.active = view_layer.use_freestyle
diff --git a/release/scripts/startup/bl_ui/properties_view_layer.py b/release/scripts/startup/bl_ui/properties_view_layer.py
index 28fd5bf666f..842a3f36fa2 100644
--- a/release/scripts/startup/bl_ui/properties_view_layer.py
+++ b/release/scripts/startup/bl_ui/properties_view_layer.py
@@ -32,21 +32,8 @@ class ViewLayerButtonsPanel:
         return (context.engine in cls.COMPAT_ENGINES)
 
 
-class VIEWLAYER_UL_viewlayers(UIList):
-    def draw_item(self, context, layout, data, item, icon, active_data, active_propname, index):
-        # assert(isinstance(item, bpy.types.SceneLayer)
-        layer = item
-        if self.layout_type in {'DEFAULT', 'COMPACT'}:
-            layout.prop(layer, "name", text="", icon_value=icon, emboss=False)
-            layout.prop(layer, "use", text="", index=index)
-        elif self.layout_type == 'GRID':
-            layout.alignment = 'CENTER'
-            layout.label("", icon_value=icon)
-
-
-class VIEWLAYER_PT_layers(ViewLayerButtonsPanel, Panel):
-    bl_label = "Layer List"
-    bl_options = {'HIDE_HEADER'}
+class VIEWLAYER_PT_layer(ViewLayerButtonsPanel, Panel):
+    bl_label = "View Layer"
     COMPAT_ENGINES = {'BLENDER_RENDER', 'BLENDER_CLAY', 'BLENDER_EEVEE'}
 
     def draw(self, context):
@@ -54,16 +41,10 @@ class VIEWLAYER_PT_layers(ViewLayerButtonsPanel, Panel):
 
         scene = context.scene
         rd = scene.render
+        layer = bpy.context.view_layer
 
-        row = layout.row()
-        col = row.column()
-        col.template_list("VIEWLAYER_UL_viewlayers", "", scene, "view_layers", scene.view_layers, "active_index", rows=2)
-
-        col = row.column()
-        sub = col.column(align=True)
-        sub.operator("scene.view_layer_add", icon='ZOOMIN', text="")
-        sub.operator("scene.view_layer_remove", icon='ZOOMOUT', text="")
-  

@@ Diff output truncated at 10240 characters. @@



More information about the Bf-blender-cvs mailing list