[Bf-blender-cvs] [e4f2b2be26a] blender2.8: Workspace: Move engines to workspace and Properties Editor cleanup
Dalai Felinto
noreply at git.blender.org
Mon Oct 16 21:31:03 CEST 2017
Commit: e4f2b2be26adbb5c34231598526a270559c6e183
Author: Dalai Felinto
Date: Mon Oct 16 17:15:03 2017 -0200
Branches: blender2.8
https://developer.blender.org/rBe4f2b2be26adbb5c34231598526a270559c6e183
Workspace: Move engines to workspace and Properties Editor cleanup
Engine is not stored in WorkSpaces. That defines the "context" engine, which
is used for the entire UI.
The engine used for the poll of nodes (add node menu, new nodes when "Use Nodes")
is obtained from context.
Introduce a ViewRender struct for viewport settings that are defined for
workspaces and scene. This struct will be populated with the hand-picked
settings that can be defined per workspace as per the 2.8 design.
* use_scene_settings
* properties editor: workshop + organize context path
Use Scene Settings
==================
For viewport drawing, Workspaces have an option to use the Scene render
settings (F12) instead of the viewport settings.
This way users can quickly preview the final render settings, engine and
View Layer. This will affect all the editors in that workspace, and it will be
clearly indicated in the top-bar.
Properties Editor: Add Workspace and organize context path
==========================================================
We now have the properties of:
Scene, Scene > Layer, Scene > World, Workspace
[Scene | Workspace] > Render Layer > Object
[Scene | Workspace] > Render Layer > Object > Data
(...)
Reviewers: Campbell Barton, Julian Eisel
Differential Revision: https://developer.blender.org/D2842
===================================================================
M intern/cycles/app/io_export_cycles_xml.py
M intern/cycles/blender/addon/ui.py
M release/scripts/startup/bl_ui/__init__.py
M release/scripts/startup/bl_ui/properties_collection.py
M release/scripts/startup/bl_ui/properties_data_armature.py
M release/scripts/startup/bl_ui/properties_data_camera.py
M release/scripts/startup/bl_ui/properties_data_lamp.py
M release/scripts/startup/bl_ui/properties_data_lightprobe.py
M release/scripts/startup/bl_ui/properties_data_mesh.py
M release/scripts/startup/bl_ui/properties_data_modifier.py
M release/scripts/startup/bl_ui/properties_data_speaker.py
A release/scripts/startup/bl_ui/properties_data_workspace.py
M release/scripts/startup/bl_ui/properties_freestyle.py
M release/scripts/startup/bl_ui/properties_game.py
M release/scripts/startup/bl_ui/properties_material.py
M release/scripts/startup/bl_ui/properties_object.py
M release/scripts/startup/bl_ui/properties_particle.py
M release/scripts/startup/bl_ui/properties_physics_cloth.py
M release/scripts/startup/bl_ui/properties_physics_common.py
M release/scripts/startup/bl_ui/properties_physics_dynamicpaint.py
M release/scripts/startup/bl_ui/properties_physics_field.py
M release/scripts/startup/bl_ui/properties_physics_fluid.py
M release/scripts/startup/bl_ui/properties_physics_rigidbody.py
M release/scripts/startup/bl_ui/properties_physics_rigidbody_constraint.py
M release/scripts/startup/bl_ui/properties_physics_smoke.py
M release/scripts/startup/bl_ui/properties_physics_softbody.py
M release/scripts/startup/bl_ui/properties_render.py
M release/scripts/startup/bl_ui/properties_render_layer.py
M release/scripts/startup/bl_ui/properties_scene.py
M release/scripts/startup/bl_ui/properties_texture.py
M release/scripts/startup/bl_ui/properties_world.py
M release/scripts/startup/bl_ui/space_image.py
M release/scripts/startup/bl_ui/space_info.py
M release/scripts/startup/bl_ui/space_node.py
M release/scripts/startup/bl_ui/space_view3d.py
M release/scripts/startup/bl_ui/space_view3d_toolbar.py
M release/scripts/startup/nodeitems_builtins.py
M source/blender/blenkernel/BKE_context.h
M source/blender/blenkernel/BKE_layer.h
M source/blender/blenkernel/BKE_node.h
M source/blender/blenkernel/BKE_pointcache.h
M source/blender/blenkernel/BKE_scene.h
M source/blender/blenkernel/BKE_screen.h
M source/blender/blenkernel/BKE_sequencer.h
M source/blender/blenkernel/BKE_workspace.h
M source/blender/blenkernel/intern/collision.c
M source/blender/blenkernel/intern/context.c
M source/blender/blenkernel/intern/layer.c
M source/blender/blenkernel/intern/pointcache.c
M source/blender/blenkernel/intern/scene.c
M source/blender/blenkernel/intern/sound.c
M source/blender/blenkernel/intern/workspace.c
M source/blender/blenloader/intern/versioning_280.c
M source/blender/blenloader/intern/versioning_defaults.c
M source/blender/depsgraph/DEG_depsgraph.h
M source/blender/depsgraph/intern/depsgraph_eval.cc
M source/blender/depsgraph/intern/eval/deg_eval_copy_on_write.cc
M source/blender/draw/DRW_engine.h
M source/blender/draw/engines/external/external_engine.c
M source/blender/draw/intern/DRW_render.h
M source/blender/draw/intern/draw_manager.c
M source/blender/editors/armature/editarmature_sketch.c
M source/blender/editors/curve/editcurve.c
M source/blender/editors/include/ED_screen.h
M source/blender/editors/include/ED_transform_snap_object_context.h
M source/blender/editors/include/ED_view3d.h
M source/blender/editors/interface/interface_templates.c
M source/blender/editors/mesh/editmesh_tools.c
M source/blender/editors/physics/physics_pointcache.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_update.c
M source/blender/editors/screen/area.c
M source/blender/editors/screen/screen_context.c
M source/blender/editors/screen/workspace_edit.c
M source/blender/editors/sculpt_paint/paint_image_proj.c
M source/blender/editors/space_action/space_action.c
M source/blender/editors/space_buttons/buttons_context.c
M source/blender/editors/space_buttons/space_buttons.c
M source/blender/editors/space_clip/space_clip.c
M source/blender/editors/space_file/space_file.c
M source/blender/editors/space_graph/space_graph.c
M source/blender/editors/space_image/space_image.c
M source/blender/editors/space_nla/space_nla.c
M source/blender/editors/space_node/node_edit.c
M source/blender/editors/space_node/node_templates.c
M source/blender/editors/space_node/space_node.c
M source/blender/editors/space_outliner/outliner_tree.c
M source/blender/editors/space_sequencer/space_sequencer.c
M source/blender/editors/space_text/space_text.c
M source/blender/editors/space_time/space_time.c
M source/blender/editors/space_view3d/space_view3d.c
M source/blender/editors/space_view3d/view3d_draw.c
M source/blender/editors/space_view3d/view3d_draw_legacy.c
M source/blender/editors/space_view3d/view3d_ruler.c
M source/blender/editors/space_view3d/view3d_select.c
M source/blender/editors/space_view3d/view3d_walk.c
M source/blender/editors/transform/CMakeLists.txt
M source/blender/editors/transform/transform.h
M source/blender/editors/transform/transform_conversions.c
M source/blender/editors/transform/transform_generics.c
M source/blender/editors/transform/transform_snap.c
M source/blender/editors/transform/transform_snap_object.c
M source/blender/freestyle/intern/blender_interface/BlenderStrokeRenderer.cpp
M source/blender/gpu/intern/gpu_material.c
M source/blender/makesdna/DNA_layer_types.h
M source/blender/makesdna/DNA_scene_types.h
M source/blender/makesdna/DNA_space_types.h
M source/blender/makesdna/DNA_workspace_types.h
M source/blender/makesrna/RNA_access.h
M source/blender/makesrna/intern/rna_context.c
M source/blender/makesrna/intern/rna_nodetree.c
M source/blender/makesrna/intern/rna_scene.c
M source/blender/makesrna/intern/rna_scene_api.c
M source/blender/makesrna/intern/rna_space.c
M source/blender/makesrna/intern/rna_workspace.c
M source/blender/nodes/composite/nodes/node_composite_image.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_pipeline.h
M source/blender/render/intern/include/render_types.h
M source/blender/render/intern/include/renderpipeline.h
M source/blender/render/intern/source/convertblender.c
M source/blender/render/intern/source/envmap.c
M source/blender/render/intern/source/external_engine.c
M source/blender/render/intern/source/pipeline.c
M source/blender/render/intern/source/pointdensity.c
M source/blender/windowmanager/WM_api.h
M source/blender/windowmanager/intern/wm_event_system.c
M source/blender/windowmanager/intern/wm_files.c
M source/blender/windowmanager/intern/wm_window.c
M source/blenderplayer/bad_level_call_stubs/stubs.c
M source/creator/creator_args.c
M source/gameengine/Converter/BL_BlenderDataConversion.cpp
===================================================================
diff --git a/intern/cycles/app/io_export_cycles_xml.py b/intern/cycles/app/io_export_cycles_xml.py
index 7d6d85f88af..d02487aefa4 100644
--- a/intern/cycles/app/io_export_cycles_xml.py
+++ b/intern/cycles/app/io_export_cycles_xml.py
@@ -66,8 +66,7 @@ class RenderButtonsPanel():
@classmethod
def poll(self, context):
- rd = context.scene.render
- return rd.engine == 'CYCLES'
+ return context.engine == 'CYCLES'
class PHYSICS_PT_fluid_export(RenderButtonsPanel, bpy.types.Panel):
diff --git a/intern/cycles/blender/addon/ui.py b/intern/cycles/blender/addon/ui.py
index de0ab989d8e..33b80b5695a 100644
--- a/intern/cycles/blender/addon/ui.py
+++ b/intern/cycles/blender/addon/ui.py
@@ -50,8 +50,7 @@ class CyclesButtonsPanel:
@classmethod
def poll(cls, context):
- rd = context.scene.render
- return rd.engine in cls.COMPAT_ENGINES
+ return context.engine in cls.COMPAT_ENGINES
def get_device_type(context):
@@ -1691,7 +1690,7 @@ def draw_device(self, context):
scene = context.scene
layout = self.layout
- if scene.render.engine == 'CYCLES':
+ if context.engine == 'CYCLES':
from . import engine
cscene = scene.cycles
@@ -1711,7 +1710,7 @@ def draw_pause(self, context):
layout = self.layout
scene = context.scene
- if scene.render.engine == "CYCLES":
+ if context.engine == "CYCLES":
view = context.space_data
cscene = scene.cycles
diff --git a/release/scripts/startup/bl_ui/__init__.py b/release/scripts/startup/bl_ui/__init__.py
index cc3d1ffc229..d7135ca202c 100644
--- a/release/scripts/startup/bl_ui/__init__.py
+++ b/release/scripts/startup/bl_ui/__init__.py
@@ -42,6 +42,7 @@ _modules = [
"properties_data_modifier",
"properties_data_lightprobe",
"properties_data_speaker",
+ "properties_data_workspace",
"properties_game",
"properties_mask_common",
"properties_material",
diff --git a/release/scripts/startup/bl_ui/properties_collection.py b/release/scripts/startup/bl_ui/properties_collection.py
index 9e7d29358a9..ae61dc2b74f 100644
--- a/release/scripts/startup/bl_ui/properties_collection.py
+++ b/release/scripts/startup/bl_ui/properties_collection.py
@@ -50,7 +50,7 @@ class COLLECTION_PT_clay_settings(CollectionButtonsPanel, Panel):
@classmethod
def poll(cls, context):
scene = context.scene
- return scene and (scene.render.engine in cls.COMPAT_ENGINES)
+ return scene and (scene.view_render.engine in cls.COMPAT_ENGINES)
def draw(self, context):
layout = self.layout
@@ -76,8 +76,8 @@ class COLLECTION_PT_object_mode_settings(CollectionButtonsPanel, Panel):
@classmethod
def poll(cls, context):
- ob = context.object
- return ob and (ob.mode == 'OBJECT')
+ workspace = context.workspace
+ return workspace and hasattr(workspace, 'object_mode') and (workspace.object_mode == 'OBJECT')
def draw(self, context):
layout = self.layout
@@ -95,8 +95,8 @@ class COLLECTION_PT_edit_mode_settings(CollectionButtonsPanel, Panel):
@classmethod
def poll(cls, context):
- ob = context.object
- return ob and (ob.mode == 'EDIT')
+ workspace = context.workspace
+ return workspace and hasattr(workspace, 'object_mode') and (workspace.object_mode == 'EDIT')
def draw(self, context):
layout = self.layout
@@ -119,8 +119,8 @@ class COLLECTION_PT_paint_weight_mode_settings(CollectionButtonsPanel, Panel):
@classmethod
def poll(cls, context):
- ob = context.object
- return ob and (ob.mode == 'WEIGHT_PAINT')
+ workspace = context.workspace
+ return workspace and hasattr(workspace, 'object_mode') and (workspace.object_mode == 'WEIGHT_PAINT')
def draw(self, context):
layout = self.layout
@@ -138,8 +138,8 @@ class COLLECTION_PT_paint_vertex_mode_settings(CollectionButtonsPanel, Panel):
@classmethod
def poll(cls, context):
- ob = context.object
- return ob and (ob.mode == 'VERTEX_PAINT')
+ workspace = context.workspace
+ return workspace and hasattr(workspace, 'object_mode') and (workspace.object_mode == 'VERTEX_PAINT')
def draw(self, context):
layout = self.layout
diff --git a/release/scripts/startup/bl_ui/properties_data_armature.py b/release/scripts/startup/bl_ui/properties_data_armature.py
index bed8baf8210..fbfb611e03c 100644
--- a/release/scripts/startup/bl_ui/properties_data_armature.py
+++ b/release/scripts/startup/bl_ui/properties_data_armature.py
@@ -65,7 +65,7 @@ class DATA_PT_skeleton(ArmatureButtonsPanel, Panel):
col.label(text="Protected Layers:")
col.prop(arm, "layers_protected", text="")
- if context.scene.render.engine == 'BLENDER_GAME':
+ if context.engine == 'BLENDER_GAME':
col = layout.column()
col.label(text="Deform:")
col.prop(arm, "deform_method", expand=True)
diff --git a/release/scripts/startup/bl_ui/properties_data_camera.py b/release/scripts/startup/bl_ui/properties_data_camera.py
index e0b92555735..f77c0ff40e8 100644
--- a/release/scripts/startup/bl_ui/properties_data_camera.py
+++ b/release/scripts/startup/bl_ui/properties_data_camera.py
@@ -29,7 +29,7 @@ class CameraButtonsPanel:
@classmethod
def poll(cls, context):
- engine = context.scene.render.engine
+ engine = context.engine
return context.camera and (engine in cls.COMPAT_ENGINES)
@@ -96,7 +96,7 @@ class DATA_PT_lens(CameraButtonsPanel, Panel):
col.prop(cam, "ortho_scale")
elif cam.type == 'PANO':
- engine = context.scene.render.engine
+ engine = context.engine
if engine == 'CYCLES':
ccam = cam.cycles
col.prop(ccam, "panorama_type", text="Type")
@@ -147,11 +147,11 @@ class DATA_PT_camera_stereoscopy(CameraButtonsPanel, Panel):
def draw(self, context):
layout = self.layout
- render = context.scene.render
+ view_render = context.scene.view_render
st = context.camera.stereo
cam = context.camera
- is_spherical_stereo = cam.type != 'ORTHO' and render.use_spherical_stereo
+ is_spherical_stereo = cam.type != 'ORTHO' and view_render.use_spherical_stereo
use_spherical_stereo = is_spherical_stereo and st.use_spherical_stereo
col = layout.column()
@@ -234,10 +234,10 @@ class DATA_PT_camera_dof(CameraButtonsPanel, Panel):
sub.active = (cam.dof_object is None)
sub.prop(cam, "dof_distance", text="Distance")
- if context.scene.render.engine == 'BLENDER_EEVEE':
+ if context.engine == 'BLENDER_EEVEE':
col = split.column(align=True)
col.label("Aperture:")
- engine = context.scene.render.engine
+ engine = context.engine
sub = col.column(align=True)
sub.prop(dof_options, "fstop")
sub.prop(dof_options, "blades")
diff --git a/release/scripts/startup/bl_ui/properties_data_lamp.py b/release/scripts/startup/bl_ui/properties_data_lamp.py
index 40ebdbda75d..9ee17d808cf 100644
--- a/release/scripts/startup/bl_ui/properties_data_lamp.py
+++ b/release/scripts/startup/bl_ui/properties_data_lamp.py
@@ -37,7 +37,7 @@ class DataButtonsPanel:
@classmethod
def poll(cls, context):
- engine = context.scene.render.engine
+ engine = context.engine
return context.lamp and (engine in cls.COMPAT_ENGINES)
@@ -172,7 +172,7 @@ class DATA_PT_sunsky(DataButtonsPanel, Panel):
@classmethod
def poll(cls, context):
lamp = context.lamp
- engine = context.scene.render.engine
+ engine = context.engine
return (lamp and lamp.type == 'SUN') and (engine in cls.COMPAT_ENGINES)
def draw(self, context):
@@ -244,7 +244,7 @@ class DATA_PT_shadow(DataButtonsPanel, Panel):
@classmethod
def poll(cls, context):
lamp = context.lamp
- engine = context.scene.render.engine
+ engine = context.engine
return (lamp and lamp.type in {'POINT', 'SUN', 'SPOT', 'AREA'}) and (engine in cls.COMPAT_ENGINES)
def draw(self, context):
@@ -359,7 +359,7 @@ class DATA_PT_EEVEE_shadow(DataButtonsPanel, Panel):
@classmethod
def poll(cls, context):
lamp = context.lamp
- engine = context.scene.render.engine
+ engine = context.engine
return (lamp and lamp.type in {'POINT', 'SUN', 'SPOT', 'AREA'}) and (engine in cls.COMPAT_ENGINES)
def draw_header(self, context):
@@ -422,7 +422,7 @@ class DATA_PT_area(DataButtonsPanel, Panel):
@classmethod
def poll(cls, context):
lamp = context.lamp
- engine = context.scene.render.engine
+ engine = context.engine
return (lamp and lamp.type == 'AREA') and (engine in cls.COMPAT_ENGINES)
def draw(self, context):
@@ -448,7 +448,7 @@ class DATA_PT_spot(DataButtonsPanel, Panel):
@classmethod
def poll(cls, context):
lamp = context.lamp
- engine = context.scene.render.engine
+ engine = context.engine
return (lamp and lamp.type == 'SPOT') and (engine in cls.COMPAT_ENGINES)
def draw(self, context):
@@ -483,7 +483,7 @@ class DATA_PT_spot(DataButtonsPanel, Panel):
@classmethod
def poll(cls, context):
lamp = context.lamp
- engine = context.scene.render.engine
+ engine = context.engine
return (lamp and lamp.type == 'SPOT') and (engine in cls.COMPAT_ENGINES)
def draw(self, context):
@@ -509,7 +509,7 @@ class DATA_PT_falloff_curve(DataButtonsPanel, Panel):
@classmethod
def poll(cls, context):
lamp = context.lamp
- engine = context.scene.render.engine
+ engine = context.engine
return (lamp and lamp.type in {'POINT', 'SPOT'} and lamp.falloff_type == 'CUSTOM_CURVE') and (engine in cls.COMPAT_ENGINES)
diff --git a/release/scripts/startup/bl_ui/properties_data_lightprobe.py b/release/scripts/startup/bl_ui/properties_data_lightprobe.py
index 13af5139632..b1deacb3051 100644
--- a/relea
@@ Diff output truncated at 10240 characters. @@
More information about the Bf-blender-cvs
mailing list