create BKE_scene_layer_active

This commit is contained in:
Dalai Felinto
2017-02-08 16:05:24 +01:00
parent a38298f4dd
commit 260f97b3d9
5 changed files with 14 additions and 6 deletions

View File

@@ -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);

View File

@@ -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));
}
}

View File

@@ -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

View File

@@ -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;

View File

@@ -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 */