Changeset View
Changeset View
Standalone View
Standalone View
source/blender/blenkernel/intern/context.c
| Show First 20 Lines • Show All 915 Lines • ▼ Show 20 Lines | Scene *CTX_data_scene(const bContext *C) | ||||
| Scene *scene; | Scene *scene; | ||||
| if (ctx_data_pointer_verify(C, "scene", (void *)&scene)) | if (ctx_data_pointer_verify(C, "scene", (void *)&scene)) | ||||
| return scene; | return scene; | ||||
| else | else | ||||
| return C->data.scene; | return C->data.scene; | ||||
| } | } | ||||
| SceneLayer *CTX_data_scene_layer(const bContext *C) | ViewLayer *CTX_data_view_layer(const bContext *C) | ||||
| { | { | ||||
| SceneLayer *sl; | ViewLayer *sl; | ||||
| if (ctx_data_pointer_verify(C, "render_layer", (void *)&sl)) { | if (ctx_data_pointer_verify(C, "view_layer", (void *)&sl)) { | ||||
| return sl; | return sl; | ||||
| } | } | ||||
| else { | else { | ||||
| return BKE_scene_layer_from_workspace_get(CTX_data_scene(C), CTX_wm_workspace(C)); | return BKE_view_layer_from_workspace_get(CTX_data_scene(C), CTX_wm_workspace(C)); | ||||
| } | } | ||||
| } | } | ||||
| ViewRender *CTX_data_view_render(const bContext *C) | ViewRender *CTX_data_view_render(const bContext *C) | ||||
| { | { | ||||
| ViewRender *view_render; | ViewRender *view_render; | ||||
| if (ctx_data_pointer_verify(C, "view_render", (void *)&view_render)) { | if (ctx_data_pointer_verify(C, "view_render", (void *)&view_render)) { | ||||
| Show All 11 Lines | RenderEngineType *CTX_data_engine(const bContext *C) | ||||
| ViewRender *view_render = CTX_data_view_render(C); | ViewRender *view_render = CTX_data_view_render(C); | ||||
| return RE_engines_find(view_render->engine_id); | return RE_engines_find(view_render->engine_id); | ||||
| } | } | ||||
| /** | /** | ||||
| * This is tricky. Sometimes the user overrides the render_layer | * This is tricky. Sometimes the user overrides the render_layer | ||||
| * but not the scene_collection. In this case what to do? | * but not the scene_collection. In this case what to do? | ||||
| * | * | ||||
| * If the scene_collection is linked to the SceneLayer we use it. | * If the scene_collection is linked to the ViewLayer we use it. | ||||
| * Otherwise we fallback to the active one of the SceneLayer. | * Otherwise we fallback to the active one of the ViewLayer. | ||||
| */ | */ | ||||
| LayerCollection *CTX_data_layer_collection(const bContext *C) | LayerCollection *CTX_data_layer_collection(const bContext *C) | ||||
| { | { | ||||
| SceneLayer *sl = CTX_data_scene_layer(C); | ViewLayer *sl = CTX_data_view_layer(C); | ||||
| LayerCollection *lc; | LayerCollection *lc; | ||||
| if (ctx_data_pointer_verify(C, "layer_collection", (void *)&lc)) { | if (ctx_data_pointer_verify(C, "layer_collection", (void *)&lc)) { | ||||
| if (BKE_scene_layer_has_collection(sl, lc->scene_collection)) { | if (BKE_view_layer_has_collection(sl, lc->scene_collection)) { | ||||
| return lc; | return lc; | ||||
| } | } | ||||
| } | } | ||||
| /* fallback */ | /* fallback */ | ||||
| return BKE_layer_collection_get_active(sl); | return BKE_layer_collection_get_active(sl); | ||||
| } | } | ||||
| SceneCollection *CTX_data_scene_collection(const bContext *C) | SceneCollection *CTX_data_scene_collection(const bContext *C) | ||||
| { | { | ||||
| SceneCollection *sc; | SceneCollection *sc; | ||||
| if (ctx_data_pointer_verify(C, "scene_collection", (void *)&sc)) { | if (ctx_data_pointer_verify(C, "scene_collection", (void *)&sc)) { | ||||
| if (BKE_scene_layer_has_collection(CTX_data_scene_layer(C), sc)) { | if (BKE_view_layer_has_collection(CTX_data_view_layer(C), sc)) { | ||||
| return sc; | return sc; | ||||
| } | } | ||||
| } | } | ||||
| LayerCollection *lc = CTX_data_layer_collection(C); | LayerCollection *lc = CTX_data_layer_collection(C); | ||||
| if (lc) { | if (lc) { | ||||
| return lc->scene_collection; | return lc->scene_collection; | ||||
| } | } | ||||
| ▲ Show 20 Lines • Show All 263 Lines • ▼ Show 20 Lines | |||||
| int CTX_data_editable_gpencil_strokes(const bContext *C, ListBase *list) | int CTX_data_editable_gpencil_strokes(const bContext *C, ListBase *list) | ||||
| { | { | ||||
| return ctx_data_collection_get(C, "editable_gpencil_strokes", list); | return ctx_data_collection_get(C, "editable_gpencil_strokes", list); | ||||
| } | } | ||||
| Depsgraph *CTX_data_depsgraph(const bContext *C) | Depsgraph *CTX_data_depsgraph(const bContext *C) | ||||
| { | { | ||||
| Scene *scene = CTX_data_scene(C); | Scene *scene = CTX_data_scene(C); | ||||
| SceneLayer *scene_layer = CTX_data_scene_layer(C); | ViewLayer *view_layer = CTX_data_view_layer(C); | ||||
| return BKE_scene_get_depsgraph(scene, scene_layer, true); | return BKE_scene_get_depsgraph(scene, view_layer, true); | ||||
| } | } | ||||
| void CTX_data_eval_ctx(const bContext *C, EvaluationContext *eval_ctx) | void CTX_data_eval_ctx(const bContext *C, EvaluationContext *eval_ctx) | ||||
| { | { | ||||
| BLI_assert(C != NULL); | BLI_assert(C != NULL); | ||||
| Scene *scene = CTX_data_scene(C); | Scene *scene = CTX_data_scene(C); | ||||
| SceneLayer *scene_layer = CTX_data_scene_layer(C); | ViewLayer *view_layer = CTX_data_view_layer(C); | ||||
| RenderEngineType *engine = CTX_data_engine(C); | RenderEngineType *engine = CTX_data_engine(C); | ||||
| DEG_evaluation_context_init_from_scene(eval_ctx, | DEG_evaluation_context_init_from_scene(eval_ctx, | ||||
| scene, scene_layer, engine, | scene, view_layer, engine, | ||||
| DAG_EVAL_VIEWPORT); | DAG_EVAL_VIEWPORT); | ||||
| } | } | ||||