[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