diff options
Diffstat (limited to 'source/blender/makesdna')
-rw-r--r-- | source/blender/makesdna/DNA_mesh_types.h | 6 | ||||
-rw-r--r-- | source/blender/makesdna/DNA_object_types.h | 4 |
2 files changed, 10 insertions, 0 deletions
diff --git a/source/blender/makesdna/DNA_mesh_types.h b/source/blender/makesdna/DNA_mesh_types.h index f54c178f1d0..8a9a69ac178 100644 --- a/source/blender/makesdna/DNA_mesh_types.h +++ b/source/blender/makesdna/DNA_mesh_types.h @@ -75,6 +75,12 @@ struct MLoopTri_Store { /* not saved in file! */ typedef struct Mesh_Runtime { + /* Evaluated mesh for objects which do not have effective modifiers. This mesh is sued as a + * result of modifier stack evaluation. + * Since modifier stack evaluation is threaded on object level we need some synchronization. */ + struct Mesh *mesh_eval; + void *eval_mutex; + struct EditMeshData *edit_data; void *batch_cache; diff --git a/source/blender/makesdna/DNA_object_types.h b/source/blender/makesdna/DNA_object_types.h index 9bbb6f1656c..e248d60b69b 100644 --- a/source/blender/makesdna/DNA_object_types.h +++ b/source/blender/makesdna/DNA_object_types.h @@ -155,6 +155,10 @@ typedef struct Object_Runtime { * It has all modifiers applied. */ struct Mesh *mesh_eval; + /* Denotes whether the evaluated mesh is ownbed by this object or is referenced and owned by + * somebody else. */ + int is_mesh_eval_owned; + int _pad3[3]; /** * Mesh structure created during object evaluation. * It has deforemation only modifiers applied on it. |