diff options
author | Bastien Montagne <montagne29@wanadoo.fr> | 2019-02-04 19:51:15 +0300 |
---|---|---|
committer | Bastien Montagne <montagne29@wanadoo.fr> | 2019-02-05 12:53:16 +0300 |
commit | b6771ccaf6a547ae5463af7102fbe23a621c2bf2 (patch) | |
tree | 980826623272ed40a54a36c99340a4b35d0eaa88 /source/blender/blenkernel | |
parent | 72724211df13a3e2b93839511be44e7b5f72a190 (diff) |
BKE_library: id_copy: More general usage of LIB_ID_COPY_LOCALIZE.
Turns out most of our 'local working copy' cases can use same set of
flags.
Note that this commit adds LIB_ID_COPY_CACHES to all our local meshes
copying, however this is no-op since that flag is unused during mesh
copying... We may want to add another set of flags without that one at
some point, but for now it would not be useful imho.
Diffstat (limited to 'source/blender/blenkernel')
-rw-r--r-- | source/blender/blenkernel/intern/displist.c | 8 | ||||
-rw-r--r-- | source/blender/blenkernel/intern/mesh.c | 9 | ||||
-rw-r--r-- | source/blender/blenkernel/intern/mesh_convert.c | 14 | ||||
-rw-r--r-- | source/blender/blenkernel/intern/node.c | 4 | ||||
-rw-r--r-- | source/blender/blenkernel/intern/particle_distribute.c | 14 | ||||
-rw-r--r-- | source/blender/blenkernel/intern/particle_system.c | 7 |
6 files changed, 10 insertions, 46 deletions
diff --git a/source/blender/blenkernel/intern/displist.c b/source/blender/blenkernel/intern/displist.c index 28cdf3b3b36..5df8210d075 100644 --- a/source/blender/blenkernel/intern/displist.c +++ b/source/blender/blenkernel/intern/displist.c @@ -999,9 +999,7 @@ static void curve_calc_modifiers_post( if (modified) { if (vertCos) { Mesh *temp_mesh; - BKE_id_copy_ex(NULL, &modified->id, (ID **)&temp_mesh, - LIB_ID_CREATE_NO_MAIN | LIB_ID_CREATE_NO_USER_REFCOUNT | - LIB_ID_CREATE_NO_DEG_TAG | LIB_ID_COPY_NO_PREVIEW); + BKE_id_copy_ex(NULL, &modified->id, (ID **)&temp_mesh, LIB_ID_COPY_LOCALIZE); BKE_id_free(NULL, modified); modified = temp_mesh; @@ -1044,9 +1042,7 @@ static void curve_calc_modifiers_post( if (vertCos) { if (modified) { Mesh *temp_mesh; - BKE_id_copy_ex(NULL, &modified->id, (ID **)&temp_mesh, - LIB_ID_CREATE_NO_MAIN | LIB_ID_CREATE_NO_USER_REFCOUNT | - LIB_ID_CREATE_NO_DEG_TAG | LIB_ID_COPY_NO_PREVIEW); + BKE_id_copy_ex(NULL, &modified->id, (ID **)&temp_mesh, LIB_ID_COPY_LOCALIZE); BKE_id_free(NULL, modified); modified = temp_mesh; diff --git a/source/blender/blenkernel/intern/mesh.c b/source/blender/blenkernel/intern/mesh.c index 30080b64e95..93bba2cf9d2 100644 --- a/source/blender/blenkernel/intern/mesh.c +++ b/source/blender/blenkernel/intern/mesh.c @@ -609,9 +609,7 @@ Mesh *BKE_mesh_new_nomain(int verts_len, int edges_len, int tessface_len, int lo Mesh *mesh = BKE_libblock_alloc( NULL, ID_ME, BKE_idcode_to_name(ID_ME), - LIB_ID_CREATE_NO_MAIN | - LIB_ID_CREATE_NO_USER_REFCOUNT | - LIB_ID_CREATE_NO_DEG_TAG); + LIB_ID_COPY_LOCALIZE); BKE_libblock_init_empty(&mesh->id); /* don't use CustomData_reset(...); because we dont want to touch customdata */ @@ -691,10 +689,7 @@ Mesh *BKE_mesh_new_nomain_from_template( Mesh *BKE_mesh_copy_for_eval(struct Mesh *source, bool reference) { - int flags = (LIB_ID_CREATE_NO_MAIN | - LIB_ID_CREATE_NO_USER_REFCOUNT | - LIB_ID_CREATE_NO_DEG_TAG | - LIB_ID_COPY_NO_PREVIEW); + int flags = LIB_ID_COPY_LOCALIZE; if (reference) { flags |= LIB_ID_COPY_CD_REFERENCE; diff --git a/source/blender/blenkernel/intern/mesh_convert.c b/source/blender/blenkernel/intern/mesh_convert.c index b48ede55e52..ee72291b87a 100644 --- a/source/blender/blenkernel/intern/mesh_convert.c +++ b/source/blender/blenkernel/intern/mesh_convert.c @@ -1141,12 +1141,7 @@ Mesh *BKE_mesh_create_derived_for_modifier( float (*deformedVerts)[3] = BKE_mesh_vertexCos_get(me, &numVerts); mti->deformVerts(md, &mectx, NULL, deformedVerts, numVerts); - BKE_id_copy_ex( - NULL, &me->id, (ID **)&result, - LIB_ID_CREATE_NO_MAIN | - LIB_ID_CREATE_NO_USER_REFCOUNT | - LIB_ID_CREATE_NO_DEG_TAG | - LIB_ID_COPY_NO_PREVIEW); + BKE_id_copy_ex(NULL, &me->id, (ID **)&result, LIB_ID_COPY_LOCALIZE); BKE_mesh_apply_vert_coords(result, deformedVerts); if (build_shapekey_layers) @@ -1156,12 +1151,7 @@ Mesh *BKE_mesh_create_derived_for_modifier( } else { Mesh *mesh_temp; - BKE_id_copy_ex( - NULL, &me->id, (ID **)&mesh_temp, - LIB_ID_CREATE_NO_MAIN | - LIB_ID_CREATE_NO_USER_REFCOUNT | - LIB_ID_CREATE_NO_DEG_TAG | - LIB_ID_COPY_NO_PREVIEW); + BKE_id_copy_ex(NULL, &me->id, (ID **)&mesh_temp, LIB_ID_COPY_LOCALIZE); if (build_shapekey_layers) add_shapekey_layers(mesh_temp, me); diff --git a/source/blender/blenkernel/intern/node.c b/source/blender/blenkernel/intern/node.c index daa7ce80ba2..4c09c687724 100644 --- a/source/blender/blenkernel/intern/node.c +++ b/source/blender/blenkernel/intern/node.c @@ -2035,9 +2035,7 @@ bNodeTree *ntreeLocalize(bNodeTree *ntree) */ BKE_id_copy_ex( NULL, &ntree->id, (ID **)<ree, - (LIB_ID_CREATE_NO_MAIN | - LIB_ID_CREATE_NO_USER_REFCOUNT | - LIB_ID_COPY_NO_PREVIEW | + (LIB_ID_COPY_LOCALIZE | LIB_ID_COPY_NO_ANIMDATA)); for (node = ltree->nodes.first; node; node = node->next) { diff --git a/source/blender/blenkernel/intern/particle_distribute.c b/source/blender/blenkernel/intern/particle_distribute.c index b2372c40b46..2abfebfe902 100644 --- a/source/blender/blenkernel/intern/particle_distribute.c +++ b/source/blender/blenkernel/intern/particle_distribute.c @@ -858,12 +858,7 @@ static int psys_thread_context_init_distribute(ParticleThreadContext *ctx, Parti mesh = final_mesh; } else { - BKE_id_copy_ex( - NULL, ob->data, (ID **)&mesh, - LIB_ID_CREATE_NO_MAIN | - LIB_ID_CREATE_NO_USER_REFCOUNT | - LIB_ID_CREATE_NO_DEG_TAG | - LIB_ID_COPY_NO_PREVIEW); + BKE_id_copy_ex(NULL, ob->data, (ID **)&mesh, LIB_ID_COPY_LOCALIZE); } BKE_mesh_tessface_ensure(mesh); @@ -909,12 +904,7 @@ static int psys_thread_context_init_distribute(ParticleThreadContext *ctx, Parti if (psys->part->use_modifier_stack) mesh = final_mesh; else - BKE_id_copy_ex( - NULL, ob->data, (ID **)&mesh, - LIB_ID_CREATE_NO_MAIN | - LIB_ID_CREATE_NO_USER_REFCOUNT | - LIB_ID_CREATE_NO_DEG_TAG | - LIB_ID_COPY_NO_PREVIEW); + BKE_id_copy_ex(NULL, ob->data, (ID **)&mesh, LIB_ID_COPY_LOCALIZE); BKE_mesh_tessface_ensure(mesh); diff --git a/source/blender/blenkernel/intern/particle_system.c b/source/blender/blenkernel/intern/particle_system.c index 77422ca20e3..aebee71fc51 100644 --- a/source/blender/blenkernel/intern/particle_system.c +++ b/source/blender/blenkernel/intern/particle_system.c @@ -3195,12 +3195,7 @@ static void do_hair_dynamics(ParticleSimulationData *sim) clmd_effweights = psys->clmd->sim_parms->effector_weights; psys->clmd->sim_parms->effector_weights = psys->part->effector_weights; - BKE_id_copy_ex( - NULL, &psys->hair_in_mesh->id, (ID **)&psys->hair_out_mesh, - LIB_ID_CREATE_NO_MAIN | - LIB_ID_CREATE_NO_USER_REFCOUNT | - LIB_ID_CREATE_NO_DEG_TAG | - LIB_ID_COPY_NO_PREVIEW); + BKE_id_copy_ex(NULL, &psys->hair_in_mesh->id, (ID **)&psys->hair_out_mesh, LIB_ID_COPY_LOCALIZE); deformedVerts = BKE_mesh_vertexCos_get(psys->hair_out_mesh, NULL); clothModifier_do(psys->clmd, sim->depsgraph, sim->scene, sim->ob, psys->hair_in_mesh, deformedVerts); BKE_mesh_apply_vert_coords(psys->hair_out_mesh, deformedVerts); |