[Bf-blender-cvs] [7167468] layer-manager: Apply soc-2016-layer_manager as patch onto blender2.8

Julian Eisel noreply at git.blender.org
Thu Oct 13 16:31:13 CEST 2016


Commit: 71674680d64ddf525d690bc3aec3b9482092de03
Author: Julian Eisel
Date:   Thu Oct 13 16:15:47 2016 +0200
Branches: layer-manager
https://developer.blender.org/rB71674680d64ddf525d690bc3aec3b9482092de03

Apply soc-2016-layer_manager as patch onto blender2.8

Creates a new branch layer-manager (based on blender2.8), old one will be removed (but will stay available at https://github.com/julianeisel/blender.git). Had lots of conflicts, lets hope nothing got lost :)

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

M	build_files/cmake/macros.cmake
M	release/scripts/startup/bl_ui/__init__.py
A	release/scripts/startup/bl_ui/space_layers.py
M	release/scripts/startup/bl_ui/space_view3d.py
M	source/blender/alembic/intern/abc_exporter.cc
M	source/blender/blenkernel/BKE_context.h
A	source/blender/blenkernel/BKE_layer.h
M	source/blender/blenkernel/BKE_object.h
M	source/blender/blenkernel/CMakeLists.txt
M	source/blender/blenkernel/intern/anim.c
M	source/blender/blenkernel/intern/blender.c
M	source/blender/blenkernel/intern/context.c
M	source/blender/blenkernel/intern/depsgraph.c
M	source/blender/blenkernel/intern/dynamicpaint.c
M	source/blender/blenkernel/intern/effect.c
A	source/blender/blenkernel/intern/layer.c
M	source/blender/blenkernel/intern/library_query.c
M	source/blender/blenkernel/intern/library_remap.c
M	source/blender/blenkernel/intern/object.c
M	source/blender/blenkernel/intern/object_dupli.c
A	source/blender/blenkernel/intern/object_layer.c
M	source/blender/blenkernel/intern/scene.c
M	source/blender/blenkernel/intern/softbody.c
M	source/blender/blenloader/intern/readfile.c
M	source/blender/blenloader/intern/versioning_270.c
M	source/blender/blenloader/intern/writefile.c
M	source/blender/collada/DocumentImporter.cpp
M	source/blender/collada/EffectExporter.cpp
M	source/blender/depsgraph/intern/builder/deg_builder_nodes.cc
M	source/blender/depsgraph/intern/builder/deg_builder_relations.cc
M	source/blender/editors/CMakeLists.txt
M	source/blender/editors/animation/anim_channels_edit.c
M	source/blender/editors/animation/anim_filter.c
M	source/blender/editors/armature/editarmature_sketch.c
M	source/blender/editors/include/BIF_glutil.h
M	source/blender/editors/include/ED_object.h
A	source/blender/editors/include/ED_scene.h
M	source/blender/editors/include/ED_screen.h
M	source/blender/editors/include/ED_space_api.h
M	source/blender/editors/include/UI_interface.h
M	source/blender/editors/include/UI_interface_icons.h
M	source/blender/editors/interface/interface_icons.c
M	source/blender/editors/interface/interface_widgets.c
M	source/blender/editors/interface/resources.c
M	source/blender/editors/object/object_add.c
M	source/blender/editors/object/object_edit.c
M	source/blender/editors/object/object_relations.c
M	source/blender/editors/object/object_select.c
M	source/blender/editors/object/object_vgroup.c
M	source/blender/editors/render/render_preview.c
A	source/blender/editors/scene/CMakeLists.txt
A	source/blender/editors/scene/layer_types.c
M	source/blender/editors/screen/glutil.c
M	source/blender/editors/screen/screen_context.c
M	source/blender/editors/screen/screen_ops.c
M	source/blender/editors/space_api/spacetypes.c
M	source/blender/editors/space_clip/tracking_ops_orient.c
M	source/blender/editors/space_info/info_stats.c
A	source/blender/editors/space_layers/CMakeLists.txt
A	source/blender/editors/space_layers/layers_draw.c
A	source/blender/editors/space_layers/layers_intern.h
A	source/blender/editors/space_layers/layers_ops.c
A	source/blender/editors/space_layers/layers_util.c
A	source/blender/editors/space_layers/space_layers.c
M	source/blender/editors/space_logic/logic_window.c
M	source/blender/editors/space_nla/nla_channels.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_tools.c
M	source/blender/editors/space_outliner/outliner_tree.c
M	source/blender/editors/space_time/space_time.c
M	source/blender/editors/space_view3d/drawobject.c
M	source/blender/editors/space_view3d/space_view3d.c
M	source/blender/editors/space_view3d/view3d_draw_legacy.c
M	source/blender/editors/space_view3d/view3d_edit.c
M	source/blender/editors/space_view3d/view3d_header.c
M	source/blender/editors/space_view3d/view3d_intern.h
M	source/blender/editors/space_view3d/view3d_select.c
M	source/blender/editors/space_view3d/view3d_view.c
M	source/blender/editors/transform/transform_conversions.c
M	source/blender/editors/transform/transform_manipulator.c
M	source/blender/editors/transform/transform_orientations.c
M	source/blender/editors/transform/transform_snap_object.c
M	source/blender/editors/util/CMakeLists.txt
M	source/blender/editors/uvedit/uvedit_draw.c
M	source/blender/freestyle/intern/blender_interface/BlenderStrokeRenderer.cpp
M	source/blender/gpu/intern/gpu_draw.c
M	source/blender/makesdna/DNA_object_types.h
M	source/blender/makesdna/DNA_outliner_types.h
M	source/blender/makesdna/DNA_scene_types.h
M	source/blender/makesdna/DNA_space_types.h
M	source/blender/makesdna/DNA_userdef_types.h
M	source/blender/makesdna/DNA_view3d_types.h
M	source/blender/makesrna/RNA_access.h
M	source/blender/makesrna/intern/rna_object_api.c
M	source/blender/makesrna/intern/rna_object_force.c
M	source/blender/makesrna/intern/rna_pose.c
M	source/blender/makesrna/intern/rna_scene.c
M	source/blender/makesrna/intern/rna_space.c
M	source/blender/makesrna/intern/rna_userdef.c
M	source/blender/modifiers/intern/MOD_cloth.c
M	source/blender/modifiers/intern/MOD_dynamicpaint.c
M	source/blender/modifiers/intern/MOD_fluidsim.c
M	source/blender/modifiers/intern/MOD_smoke.c
M	source/blender/python/intern/bpy_rna_callback.c
M	source/blender/render/intern/source/convertblender.c
M	source/blender/render/intern/source/envmap.c
M	source/blender/windowmanager/WM_types.h
M	source/blender/windowmanager/intern/wm_init_exit.c
M	source/blender/windowmanager/intern/wm_keymap.c
M	source/creator/creator.c

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

diff --git a/build_files/cmake/macros.cmake b/build_files/cmake/macros.cmake
index 5a67ac9..b1fcd95 100644
--- a/build_files/cmake/macros.cmake
+++ b/build_files/cmake/macros.cmake
@@ -572,6 +572,7 @@ function(SETUP_BLENDER_SORTED_LIBS)
 		bf_editor_space_userpref
 		bf_editor_space_view3d
 		bf_editor_space_clip
+		bf_editor_space_layers
 
 		bf_editor_transform
 		bf_editor_util
@@ -585,6 +586,7 @@ function(SETUP_BLENDER_SORTED_LIBS)
 		bf_editor_armature
 		bf_editor_physics
 		bf_editor_render
+		bf_editor_scene
 		bf_editor_screen
 		bf_editor_sculpt_paint
 		bf_editor_sound
diff --git a/release/scripts/startup/bl_ui/__init__.py b/release/scripts/startup/bl_ui/__init__.py
index ac15039..5ccd698 100644
--- a/release/scripts/startup/bl_ui/__init__.py
+++ b/release/scripts/startup/bl_ui/__init__.py
@@ -68,6 +68,7 @@ _modules = [
     "space_graph",
     "space_image",
     "space_info",
+    "space_layers",
     "space_logic",
     "space_nla",
     "space_node",
diff --git a/release/scripts/startup/bl_ui/space_layers.py b/release/scripts/startup/bl_ui/space_layers.py
new file mode 100644
index 0000000..1c2a55e
--- /dev/null
+++ b/release/scripts/startup/bl_ui/space_layers.py
@@ -0,0 +1,38 @@
+# ##### BEGIN GPL LICENSE BLOCK #####
+#
+#  This program is free software; you can redistribute it and/or
+#  modify it under the terms of the GNU General Public License
+#  as published by the Free Software Foundation; either version 2
+#  of the License, or (at your option) any later version.
+#
+#  This program is distributed in the hope that it will be useful,
+#  but WITHOUT ANY WARRANTY; without even the implied warranty of
+#  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+#  GNU General Public License for more details.
+#
+#  You should have received a copy of the GNU General Public License
+#  along with this program; if not, write to the Free Software Foundation,
+#  Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+#
+# ##### END GPL LICENSE BLOCK #####
+
+# <pep8 compliant>
+import bpy
+from bpy.types import Header, Menu
+
+
+class LAYERS_HT_header(Header):
+    bl_space_type = 'LAYER_MANAGER'
+
+    def draw(self, context):
+        layout = self.layout
+
+        layout.template_header()
+
+        row = layout.row(align=True)
+        row.operator("layers.layer_add", text="", icon='NEW')
+        row.operator("layers.group_add", text="", icon='NEWFOLDER')
+        row.operator("layers.remove", text="", icon='X')
+
+if __name__ == "__main__":  # only for live edit.
+    bpy.utils.register_module(__name__)
diff --git a/release/scripts/startup/bl_ui/space_view3d.py b/release/scripts/startup/bl_ui/space_view3d.py
index 36ada1e..abbcebc 100644
--- a/release/scripts/startup/bl_ui/space_view3d.py
+++ b/release/scripts/startup/bl_ui/space_view3d.py
@@ -3231,6 +3231,9 @@ class VIEW3D_PT_view3d_shading(Panel):
         if not scene.render.use_shading_nodes:
             col.prop(gs, "material_mode", text="")
 
+        if view.viewport_shade in {'BOUNDBOX', 'WIREFRAME', 'SOLID'}:
+            col.prop(view, "use_wire_color")
+
         if view.viewport_shade == 'SOLID':
             col.prop(view, "show_textured_solid")
             col.prop(view, "use_matcap")
diff --git a/source/blender/alembic/intern/abc_exporter.cc b/source/blender/alembic/intern/abc_exporter.cc
index 5e66d6c..18df568 100644
--- a/source/blender/alembic/intern/abc_exporter.cc
+++ b/source/blender/alembic/intern/abc_exporter.cc
@@ -55,6 +55,7 @@ extern "C" {
 #include "BKE_idprop.h"
 #include "BKE_main.h"
 #include "BKE_modifier.h"
+#include "BKE_object.h"
 #include "BKE_scene.h"
 }
 
@@ -340,9 +341,8 @@ void AbcExporter::operator()(Main *bmain, float &progress, bool &was_canceled)
 
 void AbcExporter::createTransformWritersHierarchy(EvaluationContext *eval_ctx)
 {
-	Base *base = static_cast<Base *>(m_scene->base.first);
-
-	while (base) {
+	BKE_BASES_ITER_START(m_scene, base)
+	{
 		Object *ob = base->object;
 
 		if (export_object(&m_settings, ob)) {
@@ -358,25 +358,22 @@ void AbcExporter::createTransformWritersHierarchy(EvaluationContext *eval_ctx)
 					exploreTransform(eval_ctx, ob, ob->parent, NULL);
 			}
 		}
-
-		base = base->next;
 	}
+	BKE_BASES_ITER_END;
 }
 
 void AbcExporter::createTransformWritersFlat()
 {
-	Base *base = static_cast<Base *>(m_scene->base.first);
-
-	while (base) {
+	BKE_BASES_ITER_START(m_scene, base)
+	{
 		Object *ob = base->object;
 
 		if (export_object(&m_settings, ob) && object_is_shape(ob)) {
 			std::string name = get_id_name(ob);
 			m_xforms[name] = new AbcTransformWriter(ob, m_writer->archive().getTop(), 0, m_trans_sampling_index, m_settings);
 		}
-
-		base = base->next;
 	}
+	BKE_BASES_ITER_END;
 }
 
 void AbcExporter::exploreTransform(EvaluationContext *eval_ctx, Object *ob, Object *parent, Object *dupliObParent)
@@ -444,14 +441,12 @@ void AbcExporter::createTransformWriter(Object *ob, Object *parent, Object *dupl
 
 void AbcExporter::createShapeWriters(EvaluationContext *eval_ctx)
 {
-	Base *base = static_cast<Base *>(m_scene->base.first);
-
-	while (base) {
+	BKE_BASES_ITER_START(m_scene, base)
+	{
 		Object *ob = base->object;
 		exploreObject(eval_ctx, ob, NULL);
-
-		base = base->next;
 	}
+	BKE_BASES_ITER_END;
 }
 
 void AbcExporter::exploreObject(EvaluationContext *eval_ctx, Object *ob, Object *dupliObParent)
diff --git a/source/blender/blenkernel/BKE_context.h b/source/blender/blenkernel/BKE_context.h
index c6795f8..c1ac313 100644
--- a/source/blender/blenkernel/BKE_context.h
+++ b/source/blender/blenkernel/BKE_context.h
@@ -165,6 +165,7 @@ struct SpaceAction *CTX_wm_space_action(const bContext *C);
 struct SpaceInfo *CTX_wm_space_info(const bContext *C);
 struct SpaceUserPref *CTX_wm_space_userpref(const bContext *C);
 struct SpaceClip *CTX_wm_space_clip(const bContext *C);
+struct SpaceLayers *CTX_wm_space_layers(const bContext *C);
 
 void CTX_wm_manager_set(bContext *C, struct wmWindowManager *wm);
 void CTX_wm_window_set(bContext *C, struct wmWindow *win);
diff --git a/source/blender/blenkernel/BKE_layer.h b/source/blender/blenkernel/BKE_layer.h
new file mode 100644
index 0000000..7901d22
--- /dev/null
+++ b/source/blender/blenkernel/BKE_layer.h
@@ -0,0 +1,130 @@
+/*
+ * ***** BEGIN GPL LICENSE BLOCK *****
+ *
+ * This program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License
+ * as published by the Free Software Foundation; either version 2
+ * of the License, or (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software Foundation,
+ * Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+ *
+ * The Original Code is Copyright (C) 2016 Blender Foundation.
+ * All rights reserved.
+ *
+ * Contributor(s): none yet.
+ *
+ * ***** END GPL LICENSE BLOCK *****
+ */
+
+/** \file BKE_layer.h
+ *  \ingroup bke
+ */
+
+#ifndef __BKE_LAYER_H__
+#define __BKE_LAYER_H__
+
+struct bContext;
+struct uiLayout;
+
+#include "DNA_space_types.h"
+
+
+/* -------------------------------------------------------------------- */
+/* Layer Tree */
+
+typedef bool (*LayerTreeIterFunc)(LayerTreeItem *, void *);
+
+/**
+ * LayerTree.type
+ * Defines the type used for the layer tree.
+ */
+typedef enum eLayerTree_Type {
+	LAYER_TREETYPE_OBJECT,
+//	LAYER_TREETYPE_GPENCIL,
+//	LAYER_TREETYPE_ARMATURE,
+//	...
+} eLayerTree_Type;
+
+LayerTree *BKE_layertree_new(const eLayerTree_Type type);
+LayerTree *BKE_layertree_copy(const LayerTree *original_tree);
+void BKE_layertree_delete(LayerTree *ltree);
+
+bool BKE_layertree_iterate(const LayerTree *ltree, LayerTreeIterFunc foreach, void *customdata, const bool inverse);
+int  BKE_layertree_get_totitems(const LayerTree *ltree);
+
+/**
+ * Macro to iterate over all layer items of a tree.
+ * Don't call #BKE_layeritem_remove inside, it will mess up iteration.
+ */
+#define BKE_LAYERTREE_ITER_START(ltree, start_at, idx_name, litem_name) \
+	for (int idx_name = start_at; idx_name < BKE_layertree_get_totitems(ltree); idx_name++) { \
+		LayerTreeItem *litem_name = ltree->items_all[idx_name];
+#define BKE_LAYERTREE_ITER_END } (void)0
+
+/* -------------------------------------------------------------------- */
+/* Layer Types */
+
+typedef enum eLayerTreeItem_Type {
+	LAYER_ITEMTYPE_LAYER = 0,
+	LAYER_ITEMTYPE_GROUP, /* layer group */
+	LAYER_ITEMTYPE_COMP,  /* compositing layer (wireframes, SSAO, blending type, etc) */
+
+	LAYER_ITEMTYPE_TOT,   /* always last! */
+} eLayerTreeItem_Type;
+
+typedef struct LayerType {
+	/* idname is needed to support reading custom (.py defined) layers. During normal runtime
+	 * using type below should be preferred though, avoids slow string comparisons */
+	const char *idname;
+	eLayerTreeItem_Type type;
+
+	/* drawing of the item in the list */
+	void (*draw)(const struct bContext *, struct LayerTreeItem *, struct uiLayout *); /* LayerItemDrawFunc */
+	/* drawing of the expanded layer settings (gear wheel icon) */
+	void (*draw_settings)(const struct bContext *, struct LayerTreeItem *, struct uiLayout *); /* LayerItemDrawSettingsFunc */
+
+	/* Optional callback called when duplicating a layer */
+	void (*copy)(struct LayerTreeItem *copied_item, const struct LayerTreeItem *original_item);
+	/* Optional free callback. Don't free item itself! */
+	void (*free)(struct LayerTreeItem *);
+
+	/* rna for properties */
+	struct StructRNA *srna;
+} LayerType;
+
+void BKE_layertype_append(void (*ltfunc)(LayerType *));
+void BKE_layertypes_free(void);
+LayerType *BKE_layertype_find(const char *idname);
+
+/* -------------------------------------------------------------------- */
+/* Layer Tree Item */
+
+typedef void  (*LayerItemDrawFunc)(const struct bContext *, struct LayerTreeItem *, struct uiLayout *layout);
+typedef void  (*LayerItemDrawSettingsFunc)(const struct bContext *, struct LayerTreeItem *, struct uiLayout

@@ Diff output truncated at 10240 characters. @@




More information about the Bf-blender-cvs mailing list