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); } _______________________________________________ Bf-blender-cvs mailing list Bf-blender-cvs@blender.org List details, subscription details or unsubscribe: https://lists.blender.org/mailman/listinfo/bf-blender-cvs