diff --git a/source/blender/blenkernel/BKE_layer.h b/source/blender/blenkernel/BKE_layer.h index a1eec8653ad..51fe28a8bea 100644 --- a/source/blender/blenkernel/BKE_layer.h +++ b/source/blender/blenkernel/BKE_layer.h @@ -54,6 +54,7 @@ struct Scene; struct SceneCollection; struct SceneLayer; +struct SceneLayer *BKE_scene_layer_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 1cbf8cf01c8..a7c53dda8c7 100644 --- a/source/blender/blenkernel/intern/context.c +++ b/source/blender/blenkernel/intern/context.c @@ -914,10 +914,7 @@ SceneLayer *CTX_data_scene_layer(const bContext *C) return sl; } else { - Scene *scene = CTX_data_scene(C); - sl = BLI_findlink(&scene->render_layers, scene->active_layer); - BLI_assert(sl); - return sl; + return BKE_scene_layer_active(CTX_data_scene(C)); } } diff --git a/source/blender/blenkernel/intern/layer.c b/source/blender/blenkernel/intern/layer.c index c36a67c27b3..667b40751ed 100644 --- a/source/blender/blenkernel/intern/layer.c +++ b/source/blender/blenkernel/intern/layer.c @@ -57,6 +57,16 @@ static void object_bases_Iterator_next(Iterator *iter, const int flag); /* RenderLayer */ +/** + * Returns the SceneLayer to be used for rendering + */ +SceneLayer *BKE_scene_layer_active(struct Scene *scene) +{ + SceneLayer *sl = BLI_findlink(&scene->render_layers, scene->active_layer); + BLI_assert(sl); + return sl; +} + /** * Add a new renderlayer * by default, a renderlayer has the master collection diff --git a/source/blender/editors/render/render_shading.c b/source/blender/editors/render/render_shading.c index 984aa6e43c2..986e9623fef 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 = BLI_findlink(&scene->render_layers, scene->active_layer); + SceneLayer *sl = BKE_scene_layer_active(scene); if (!BKE_scene_layer_remove(CTX_data_main(C), scene, sl)) { return OPERATOR_CANCELLED; diff --git a/source/blender/editors/space_view3d/view3d_draw_legacy.c b/source/blender/editors/space_view3d/view3d_draw_legacy.c index 4fb0f6af489..70318d921b5 100644 --- a/source/blender/editors/space_view3d/view3d_draw_legacy.c +++ b/source/blender/editors/space_view3d/view3d_draw_legacy.c @@ -1453,7 +1453,7 @@ void ED_view3d_draw_depth(Scene *scene, ARegion *ar, View3D *v3d, bool alphaover float glalphaclip = U.glalphaclip; int obcenter_dia = U.obcenter_dia; TODO_LAYER_CONTEXT; /* we should pass context, really */ - SceneLayer *sl = BLI_findlink(&scene->render_layers, scene->active_layer); + SceneLayer *sl = BKE_scene_layer_active(scene); /* no need for color when drawing depth buffer */ const short dflag_depth = DRAW_CONSTCOLOR; /* temp set drawtype to solid */