diff options
author | Bastien Montagne <montagne29@wanadoo.fr> | 2019-02-04 19:27:01 +0300 |
---|---|---|
committer | Bastien Montagne <montagne29@wanadoo.fr> | 2019-02-05 11:49:50 +0300 |
commit | b26c9dfcb2ef19054f23cceb9988e8a8cce24b12 (patch) | |
tree | 2d41b75437f926ba2b223ce962926a30d2365f85 /source/blender/blenkernel | |
parent | 8ebb8add85d92e3d3b4a7c4e978ba775acefd098 (diff) |
Cleanup: initial regrouping of ID create/copy flags.
Those two first sets of flags should represent some common use cases.
The goal here is to reduce verbosity of calls to BKE_id_copy_ex, and
help make it more obvious the 'common behaviours' of ID copying across
codebase.
Diffstat (limited to 'source/blender/blenkernel')
-rw-r--r-- | source/blender/blenkernel/BKE_library.h | 9 | ||||
-rw-r--r-- | source/blender/blenkernel/intern/library.c | 2 | ||||
-rw-r--r-- | source/blender/blenkernel/intern/particle_system.c | 5 |
3 files changed, 11 insertions, 5 deletions
diff --git a/source/blender/blenkernel/BKE_library.h b/source/blender/blenkernel/BKE_library.h index 6584a975671..0438ac95ce2 100644 --- a/source/blender/blenkernel/BKE_library.h +++ b/source/blender/blenkernel/BKE_library.h @@ -105,6 +105,15 @@ enum { LIB_ID_COPY_KEEP_LIB = 1 << 25, /* EXCEPTION! Deep-copy shapekeys used by copied obdata ID. */ LIB_ID_COPY_SHAPEKEY = 1 << 26, + + /* *** Helper 'defines' gathering most common flag sets. *** */ + /* Shapekeys are not real ID's, more like local data to geometry IDs... */ + LIB_ID_COPY_DEFAULT = LIB_ID_COPY_SHAPEKEY, + /* Generate a local copy, outside of bmain, to work on (used by COW e.g.). */ + LIB_ID_COPY_LOCALIZE = LIB_ID_CREATE_NO_MAIN | + LIB_ID_CREATE_NO_USER_REFCOUNT | + LIB_ID_CREATE_NO_DEG_TAG | + LIB_ID_COPY_CACHES, }; void BKE_libblock_copy_ex(struct Main *bmain, const struct ID *id, struct ID **r_newid, const int flag); diff --git a/source/blender/blenkernel/intern/library.c b/source/blender/blenkernel/intern/library.c index d4009912300..1cf07c8c669 100644 --- a/source/blender/blenkernel/intern/library.c +++ b/source/blender/blenkernel/intern/library.c @@ -715,7 +715,7 @@ bool BKE_id_copy_ex(Main *bmain, const ID *id, ID **r_newid, const int flag) */ bool BKE_id_copy(Main *bmain, const ID *id, ID **newid) { - return BKE_id_copy_ex(bmain, id, newid, LIB_ID_COPY_SHAPEKEY); + return BKE_id_copy_ex(bmain, id, newid, LIB_ID_COPY_DEFAULT); } /** Does a mere memory swap over the whole IDs data (including type-specific memory). diff --git a/source/blender/blenkernel/intern/particle_system.c b/source/blender/blenkernel/intern/particle_system.c index 008ef0b02bf..77422ca20e3 100644 --- a/source/blender/blenkernel/intern/particle_system.c +++ b/source/blender/blenkernel/intern/particle_system.c @@ -4195,10 +4195,7 @@ static ParticleSettings *particle_settings_localize(ParticleSettings *particle_s BKE_id_copy_ex(NULL, (ID *)&particle_settings->id, (ID **)&particle_settings_local, - (LIB_ID_CREATE_NO_MAIN | - LIB_ID_CREATE_NO_USER_REFCOUNT | - LIB_ID_CREATE_NO_DEG_TAG | - LIB_ID_COPY_CACHES)); + LIB_ID_COPY_LOCALIZE); return particle_settings_local; } |