[Bf-blender-cvs] [ec8b46d9269] temp-T73411-view-layer-lazy-cache: Introduce BKE_view_layer_active_collection_get

Monique noreply at git.blender.org
Mon Sep 5 20:44:39 CEST 2022


Commit: ec8b46d9269ba42a14351184bcbd626816860d14
Author: Monique
Date:   Thu Sep 1 15:01:24 2022 +0200
Branches: temp-T73411-view-layer-lazy-cache
https://developer.blender.org/rBec8b46d9269ba42a14351184bcbd626816860d14

Introduce BKE_view_layer_active_collection_get

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

M	source/blender/blenkernel/BKE_layer.h
M	source/blender/blenkernel/intern/layer_utils.c
M	source/blender/editors/space_buttons/buttons_context.c
M	source/blender/editors/space_info/info_stats.cc
M	source/blender/editors/space_view3d/view3d_draw.c
M	source/blender/makesrna/intern/rna_layer.c

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

diff --git a/source/blender/blenkernel/BKE_layer.h b/source/blender/blenkernel/BKE_layer.h
index d21c297f5d0..db6038f8913 100644
--- a/source/blender/blenkernel/BKE_layer.h
+++ b/source/blender/blenkernel/BKE_layer.h
@@ -549,6 +549,9 @@ struct Object *BKE_view_layer_edit_object_get(const struct ViewLayer *view_layer
 
 struct ListBase *BKE_view_layer_object_bases_get(struct ViewLayer *view_layer, const char *name);
 struct Base *BKE_view_layer_active_base_get(struct ViewLayer *view_layer, const char *name);
+
+struct LayerCollection *BKE_view_layer_active_collection_get(struct ViewLayer *view_layer,
+                                                             const char *name);
 // This should not exist in the final solution.
 const struct ListBase *BKE_view_layer_object_bases_get_const(const struct ViewLayer *view_layer,
                                                              const char *name);
diff --git a/source/blender/blenkernel/intern/layer_utils.c b/source/blender/blenkernel/intern/layer_utils.c
index 6b9058bd8d1..62e928f42d1 100644
--- a/source/blender/blenkernel/intern/layer_utils.c
+++ b/source/blender/blenkernel/intern/layer_utils.c
@@ -220,6 +220,14 @@ struct Base *BKE_view_layer_active_base_get(struct ViewLayer *view_layer, const
   // TODO: BLI_assert_msg(view_layer->flags & ..., name);
   return view_layer->basact;
 }
+
+struct LayerCollection *BKE_view_layer_active_collection_get(struct ViewLayer *view_layer,
+                                                             const char *name)
+{
+  // TODO: BLI_assert_msg(view_layer->flags & ..., name);
+  return view_layer->active_collection;
+}
+
 const struct ListBase *BKE_view_layer_object_bases_get_const(const struct ViewLayer *view_layer,
                                                              const char *UNUSED(name))
 {
diff --git a/source/blender/editors/space_buttons/buttons_context.c b/source/blender/editors/space_buttons/buttons_context.c
index 17fe6edb215..bdf5cae6749 100644
--- a/source/blender/editors/space_buttons/buttons_context.c
+++ b/source/blender/editors/space_buttons/buttons_context.c
@@ -155,7 +155,7 @@ static bool buttons_context_path_collection(const bContext *C,
   /* if we have a view layer, use the view layer's active collection */
   if (buttons_context_path_view_layer(path, window)) {
     ViewLayer *view_layer = path->ptr[path->len - 1].data;
-    Collection *c = view_layer->active_collection->collection;
+    Collection *c = BKE_view_layer_active_collection_get(view_layer, __func__)->collection;
 
     /* Do not show collection tab for master collection. */
     if (c == scene->master_collection) {
diff --git a/source/blender/editors/space_info/info_stats.cc b/source/blender/editors/space_info/info_stats.cc
index 0f872d0a02e..9095f9d6189 100644
--- a/source/blender/editors/space_info/info_stats.cc
+++ b/source/blender/editors/space_info/info_stats.cc
@@ -495,7 +495,7 @@ static void get_stats_string(
   Object *ob = BKE_view_layer_active_object_get(view_layer);
   Object *obedit = OBEDIT_FROM_OBACT(ob);
   eObjectMode object_mode = ob ? (eObjectMode)ob->mode : OB_MODE_OBJECT;
-  LayerCollection *layer_collection = view_layer->active_collection;
+  LayerCollection *layer_collection = BKE_view_layer_active_collection_get(view_layer, __func__);
 
   if (object_mode == OB_MODE_OBJECT) {
     *ofs += BLI_snprintf_rlen(info + *ofs,
diff --git a/source/blender/editors/space_view3d/view3d_draw.c b/source/blender/editors/space_view3d/view3d_draw.c
index ab9e29b8974..24340fde308 100644
--- a/source/blender/editors/space_view3d/view3d_draw.c
+++ b/source/blender/editors/space_view3d/view3d_draw.c
@@ -1306,7 +1306,7 @@ static void draw_selected_name(
   s += sprintf(s, "(%d)", cfra);
 
   if ((ob == NULL) || (ob->mode == OB_MODE_OBJECT)) {
-    LayerCollection *layer_collection = view_layer->active_collection;
+    LayerCollection *layer_collection = BKE_view_layer_active_collection_get(view_layer, __func__);
     s += sprintf(s,
                  " %s%s",
                  BKE_collection_ui_name_get(layer_collection->collection),
diff --git a/source/blender/makesrna/intern/rna_layer.c b/source/blender/makesrna/intern/rna_layer.c
index 660dc114848..1365529adbf 100644
--- a/source/blender/makesrna/intern/rna_layer.c
+++ b/source/blender/makesrna/intern/rna_layer.c
@@ -51,7 +51,7 @@
 static PointerRNA rna_ViewLayer_active_layer_collection_get(PointerRNA *ptr)
 {
   ViewLayer *view_layer = (ViewLayer *)ptr->data;
-  LayerCollection *lc = view_layer->active_collection;
+  LayerCollection *lc = BKE_view_layer_active_collection_get(view_layer, __func__);
   return rna_pointer_inherit_refine(ptr, &RNA_LayerCollection, lc);
 }



More information about the Bf-blender-cvs mailing list