diff options
Diffstat (limited to 'source/blender/blenkernel')
-rw-r--r-- | source/blender/blenkernel/BKE_context.h | 5 | ||||
-rw-r--r-- | source/blender/blenkernel/intern/context.c | 7 | ||||
-rw-r--r-- | source/blender/blenkernel/intern/paint.c | 9 |
3 files changed, 21 insertions, 0 deletions
diff --git a/source/blender/blenkernel/BKE_context.h b/source/blender/blenkernel/BKE_context.h index e50c33e258c..12525fe9a50 100644 --- a/source/blender/blenkernel/BKE_context.h +++ b/source/blender/blenkernel/BKE_context.h @@ -322,6 +322,11 @@ int CTX_data_editable_gpencil_strokes(const bContext *C, ListBase *list); struct Depsgraph *CTX_data_depsgraph(const bContext *C); +/* Will Return NULL if depsgraph is not allocated yet. + * Only used by handful of operators which are run on file load. + */ +struct Depsgraph *CTX_data_depsgraph_on_load(const bContext *C); + #ifdef __cplusplus } #endif diff --git a/source/blender/blenkernel/intern/context.c b/source/blender/blenkernel/intern/context.c index 72832e9f897..f420fd974cd 100644 --- a/source/blender/blenkernel/intern/context.c +++ b/source/blender/blenkernel/intern/context.c @@ -1244,3 +1244,10 @@ Depsgraph *CTX_data_depsgraph(const bContext *C) ViewLayer *view_layer = CTX_data_view_layer(C); return BKE_scene_get_depsgraph(scene, view_layer, true); } + +Depsgraph *CTX_data_depsgraph_on_load(const bContext *C) +{ + Scene *scene = CTX_data_scene(C); + ViewLayer *view_layer = CTX_data_view_layer(C); + return BKE_scene_get_depsgraph(scene, view_layer, false); +} diff --git a/source/blender/blenkernel/intern/paint.c b/source/blender/blenkernel/intern/paint.c index 4681f54e26f..4056a15fe47 100644 --- a/source/blender/blenkernel/intern/paint.c +++ b/source/blender/blenkernel/intern/paint.c @@ -865,6 +865,15 @@ void BKE_sculpt_update_mesh_elements( Depsgraph *depsgraph, Scene *scene, Sculpt *sd, Object *ob, bool need_pmap, bool need_mask) { + if (depsgraph == NULL) { + /* Happens on file load. + * + * We do nothing in this case, it will be taken care about on depsgraph + * evaluation. + */ + return; + } + DerivedMesh *dm; SculptSession *ss = ob->sculpt; Mesh *me = ob->data; |