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:
-rw-r--r--release/scripts/startup/bl_ui/space_view3d.py68
-rw-r--r--source/blender/blenkernel/BKE_layer.h3
-rw-r--r--source/blender/blenkernel/intern/context.c2
-rw-r--r--source/blender/blenkernel/intern/layer.c14
-rw-r--r--source/blender/blenkernel/intern/scene.c5
-rw-r--r--source/blender/editors/render/render_shading.c2
-rw-r--r--source/blender/editors/space_buttons/buttons_context.c4
-rw-r--r--source/blender/editors/space_outliner/outliner_tree.c2
-rw-r--r--source/blender/editors/space_view3d/view3d_draw_legacy.c5
9 files changed, 24 insertions, 81 deletions
diff --git a/release/scripts/startup/bl_ui/space_view3d.py b/release/scripts/startup/bl_ui/space_view3d.py
index f605712510a..9ed59d830e3 100644
--- a/release/scripts/startup/bl_ui/space_view3d.py
+++ b/release/scripts/startup/bl_ui/space_view3d.py
@@ -3146,74 +3146,6 @@ class VIEW3D_PT_viewport_debug(Panel):
col.row(align=True).prop(view, "debug_background", expand=True)
-class VIEW3D_PT_collections_editor(Panel):
- bl_space_type = 'VIEW_3D'
- bl_region_type = 'UI'
- bl_label = "Collections"
- bl_options = {'DEFAULT_CLOSED'}
-
- @classmethod
- def poll(cls, context):
- return context.space_data
-
- def draw(self, context):
- layout = self.layout
- layer = context.render_layer
- active_collection = context.layer_collection
-
- col = layout.column()
- box = col.box()
-
- index = -1
- for collection in layer.collections:
- index = self._draw_layer_collection(box, index, active_collection, collection, True, True)
-
- row = layout.row(align=True)
- row.operator("collections.collection_new", text="", icon='NEW')
- row.operator("collections.override_new", text="", icon='LINK_AREA')
- row.operator("collections.collection_link", text="", icon='LINKED')
- row.operator("collections.collection_unlink", text="", icon='UNLINKED')
- row.operator("collections.delete", text="", icon='X')
-
- def _draw_layer_collection(self, box, index, active_collection, collection, is_active, is_draw, depth=0):
- index += 1
- nested_collections = collection.collections
-
- if is_draw:
- row = box.row()
- row.active = is_active
- is_collection_selected = (collection == active_collection)
-
- if is_collection_selected:
- sub_box = row.box()
- row = sub_box.row()
-
- row.label(text="{0}{1}{2}".format(
- " " * depth,
- u'\u21b3 ' if depth else "",
- collection.name))
-
- row.prop(collection, "hide", text="", emboss=False)
- row.prop(collection, "hide_select", text="", emboss=False)
-
- row.operator("collections.select", text="", icon='BLANK1' if is_collection_selected else 'HAND', emboss=False).collection_index=index
-
- if nested_collections:
- row.prop(collection, "is_unfolded", text="", emboss=False)
- else:
- row.label(icon='BLANK1')
-
- if not collection.is_unfolded:
- is_draw = False
-
- is_active &= not collection.hide
-
- for nested_collection in nested_collections:
- index = self._draw_layer_collection(box, index, active_collection, nested_collection, is_active, is_draw, depth + 1)
-
- return index
-
-
class VIEW3D_PT_grease_pencil(GreasePencilDataPanel, Panel):
bl_space_type = 'VIEW_3D'
bl_region_type = 'UI'
diff --git a/source/blender/blenkernel/BKE_layer.h b/source/blender/blenkernel/BKE_layer.h
index 6e12b82e558..7021f0ea0b0 100644
--- a/source/blender/blenkernel/BKE_layer.h
+++ b/source/blender/blenkernel/BKE_layer.h
@@ -54,7 +54,8 @@ struct Scene;
struct SceneCollection;
struct SceneLayer;
-struct SceneLayer *BKE_scene_layer_active(struct Scene *scene);
+struct SceneLayer *BKE_scene_layer_render_active(struct Scene *scene);
+struct SceneLayer *BKE_scene_layer_context_active(struct Scene *scene);
struct SceneLayer *BKE_scene_layer_add(struct Scene *scene, const char *name);
bool BKE_scene_layer_remove(struct Main *bmain, struct Scene *scene, struct SceneLayer *sl);
diff --git a/source/blender/blenkernel/intern/context.c b/source/blender/blenkernel/intern/context.c
index 39c595dfdba..560d84c1d2d 100644
--- a/source/blender/blenkernel/intern/context.c
+++ b/source/blender/blenkernel/intern/context.c
@@ -906,7 +906,7 @@ SceneLayer *CTX_data_scene_layer(const bContext *C)
return sl;
}
else {
- return BKE_scene_layer_active(CTX_data_scene(C));
+ return BKE_scene_layer_context_active(CTX_data_scene(C));
}
}
diff --git a/source/blender/blenkernel/intern/layer.c b/source/blender/blenkernel/intern/layer.c
index 1fae242a644..2d1b77867f9 100644
--- a/source/blender/blenkernel/intern/layer.c
+++ b/source/blender/blenkernel/intern/layer.c
@@ -60,8 +60,9 @@ static void object_bases_Iterator_next(Iterator *iter, const int flag);
/**
* Returns the SceneLayer to be used for rendering
+ * Most of the time BKE_scene_layer_context_active should be used instead
*/
-SceneLayer *BKE_scene_layer_active(struct Scene *scene)
+SceneLayer *BKE_scene_layer_render_active(Scene *scene)
{
SceneLayer *sl = BLI_findlink(&scene->render_layers, scene->active_layer);
BLI_assert(sl);
@@ -69,6 +70,17 @@ SceneLayer *BKE_scene_layer_active(struct Scene *scene)
}
/**
+ * Returns the SceneLayer to be used for drawing, outliner, and
+ * other context related areas.
+ */
+SceneLayer *BKE_scene_layer_context_active(Scene *scene)
+{
+ /* waiting for workspace to get the layer from context*/
+ TODO_LAYER_CONTEXT;
+ return BKE_scene_layer_render_active(scene);
+}
+
+/**
* Add a new renderlayer
* by default, a renderlayer has the master collection
*/
diff --git a/source/blender/blenkernel/intern/scene.c b/source/blender/blenkernel/intern/scene.c
index 3a7428b1b50..8f3783bc4a3 100644
--- a/source/blender/blenkernel/intern/scene.c
+++ b/source/blender/blenkernel/intern/scene.c
@@ -1704,8 +1704,7 @@ Base *_setlooper_base_step(Scene **sce_iter, Base *base)
/* first time looping, return the scenes first base */
/* for the first loop we should get the layer from context */
- TODO_LAYER_CONTEXT;
- SceneLayer *sl = BKE_scene_layer_active((*sce_iter));
+ SceneLayer *sl = BKE_scene_layer_context_active((*sce_iter));
if (sl->object_bases.first) {
return (Base *)sl->object_bases.first;
@@ -1717,7 +1716,7 @@ Base *_setlooper_base_step(Scene **sce_iter, Base *base)
next_set:
/* reached the end, get the next base in the set */
while ((*sce_iter = (*sce_iter)->set)) {
- SceneLayer *sl = BKE_scene_layer_active((*sce_iter));
+ SceneLayer *sl = BKE_scene_layer_render_active((*sce_iter));
base = (Base *)sl->object_bases.first;
if (base) {
diff --git a/source/blender/editors/render/render_shading.c b/source/blender/editors/render/render_shading.c
index 986e9623fef..490182b17ed 100644
--- a/source/blender/editors/render/render_shading.c
+++ b/source/blender/editors/render/render_shading.c
@@ -653,7 +653,7 @@ void SCENE_OT_render_layer_add(wmOperatorType *ot)
static int render_layer_remove_exec(bContext *C, wmOperator *UNUSED(op))
{
Scene *scene = CTX_data_scene(C);
- SceneLayer *sl = BKE_scene_layer_active(scene);
+ SceneLayer *sl = BKE_scene_layer_context_active(scene);
if (!BKE_scene_layer_remove(CTX_data_main(C), scene, sl)) {
return OPERATOR_CANCELLED;
diff --git a/source/blender/editors/space_buttons/buttons_context.c b/source/blender/editors/space_buttons/buttons_context.c
index 34213d3d565..3727c29d9d0 100644
--- a/source/blender/editors/space_buttons/buttons_context.c
+++ b/source/blender/editors/space_buttons/buttons_context.c
@@ -181,8 +181,8 @@ static int buttons_context_path_object(ButsContextPath *path)
/* if we have a scene, use the scene's active object */
else if (buttons_context_path_scene(path)) {
scene = path->ptr[path->len - 1].data;
- TODO_LAYER_CONTEXT; /* use context, not active one */
- SceneLayer *sl = BKE_scene_layer_active(scene);
+
+ SceneLayer *sl = BKE_scene_layer_context_active(scene);
ob = (sl->basact) ? sl->basact->object : NULL;
if (ob) {
diff --git a/source/blender/editors/space_outliner/outliner_tree.c b/source/blender/editors/space_outliner/outliner_tree.c
index 1ba33970aad..bbabb9e2d7a 100644
--- a/source/blender/editors/space_outliner/outliner_tree.c
+++ b/source/blender/editors/space_outliner/outliner_tree.c
@@ -1849,7 +1849,7 @@ void outliner_build_tree(Main *mainvar, Scene *scene, SceneLayer *sl, SpaceOops
outliner_add_orphaned_datablocks(mainvar, soops);
}
else if (soops->outlinevis == SO_COLLECTIONS) {
- outliner_add_collections(soops, BLI_findlink(&scene->render_layers, scene->active_layer), scene);
+ outliner_add_collections(soops, BKE_scene_layer_context_active(scene), scene);
}
else {
ten = outliner_add_element(soops, &soops->tree, OBACT_NEW, NULL, 0, 0);
diff --git a/source/blender/editors/space_view3d/view3d_draw_legacy.c b/source/blender/editors/space_view3d/view3d_draw_legacy.c
index d23b2ac23c1..c4d980ec7e9 100644
--- a/source/blender/editors/space_view3d/view3d_draw_legacy.c
+++ b/source/blender/editors/space_view3d/view3d_draw_legacy.c
@@ -1259,8 +1259,7 @@ void ED_view3d_draw_depth(Scene *scene, ARegion *ar, View3D *v3d, bool alphaover
short flag = v3d->flag;
float glalphaclip = U.glalphaclip;
int obcenter_dia = U.obcenter_dia;
- TODO_LAYER_CONTEXT; /* we should pass context, really */
- SceneLayer *sl = BKE_scene_layer_active(scene);
+ SceneLayer *sl = BKE_scene_layer_context_active(scene);
/* no need for color when drawing depth buffer */
const short dflag_depth = DRAW_CONSTCOLOR;
/* temp set drawtype to solid */
@@ -1548,7 +1547,7 @@ static void view3d_draw_objects(
const char **grid_unit,
const bool do_bgpic, const bool draw_offscreen, GPUFX *fx)
{
- SceneLayer *sl = C ? CTX_data_scene_layer(C) : BKE_scene_layer_active(scene);
+ SceneLayer *sl = C ? CTX_data_scene_layer(C) : BKE_scene_layer_render_active(scene);
RegionView3D *rv3d = ar->regiondata;
Base *base;
const bool do_camera_frame = !draw_offscreen;