[Bf-blender-cvs] [41fac4fa76d] blender2.8: Modifiers: Make input of modifier stack referencing copied CD layers

Sergey Sharybin noreply at git.blender.org
Wed May 30 17:00:56 CEST 2018


Commit: 41fac4fa76d677ce6bf8b1411d46dd18d04d6943
Author: Sergey Sharybin
Date:   Wed May 30 16:25:35 2018 +0200
Branches: blender2.8
https://developer.blender.org/rB41fac4fa76d677ce6bf8b1411d46dd18d04d6943

Modifiers: Make input of modifier stack referencing copied CD layers

The idea is to allow modifier stack to reference custom data layers
from copied version of mesh datablock.

===================================================================

M	source/blender/blenkernel/intern/DerivedMesh.c

===================================================================

diff --git a/source/blender/blenkernel/intern/DerivedMesh.c b/source/blender/blenkernel/intern/DerivedMesh.c
index c8d5bb5ffd7..3c9e0efa12e 100644
--- a/source/blender/blenkernel/intern/DerivedMesh.c
+++ b/source/blender/blenkernel/intern/DerivedMesh.c
@@ -1294,7 +1294,11 @@ static Mesh *create_orco_mesh(Object *ob, Mesh *me, BMEditMesh *em, int layer)
 	else {
 		BKE_id_copy_ex(
 		        NULL, &me->id, (ID **)&mesh,
-		        LIB_ID_CREATE_NO_MAIN | LIB_ID_CREATE_NO_USER_REFCOUNT | LIB_ID_CREATE_NO_DEG_TAG, false);
+		        (LIB_ID_CREATE_NO_MAIN |
+		         LIB_ID_CREATE_NO_USER_REFCOUNT |
+		         LIB_ID_CREATE_NO_DEG_TAG |
+		         LIB_ID_COPY_CD_REFERENCE),
+		        false);
 	}
 
 	orco = get_orco_coords_dm(ob, em, layer, &free);
@@ -2125,7 +2129,11 @@ static void mesh_calc_modifiers(
 		if (r_deform_mesh) {
 			BKE_id_copy_ex(
 			        NULL, &me->id, (ID **)r_deform_mesh,
-			        LIB_ID_CREATE_NO_MAIN | LIB_ID_CREATE_NO_USER_REFCOUNT | LIB_ID_CREATE_NO_DEG_TAG, false);
+			        (LIB_ID_CREATE_NO_MAIN |
+			         LIB_ID_CREATE_NO_USER_REFCOUNT |
+			         LIB_ID_CREATE_NO_DEG_TAG |
+			         LIB_ID_COPY_CD_REFERENCE),
+			        false);
 
 			/* XXX: Is build_shapekey_layers ever even true? This should have crashed long ago... */
 			BLI_assert(!build_shapekey_layers);
@@ -2268,7 +2276,11 @@ static void mesh_calc_modifiers(
 			else {
 				BKE_id_copy_ex(
 				        NULL, &me->id, (ID **)&mesh,
-				        LIB_ID_CREATE_NO_MAIN | LIB_ID_CREATE_NO_USER_REFCOUNT | LIB_ID_CREATE_NO_DEG_TAG, false);
+				        (LIB_ID_CREATE_NO_MAIN |
+				         LIB_ID_CREATE_NO_USER_REFCOUNT |
+				         LIB_ID_CREATE_NO_DEG_TAG |
+				         LIB_ID_COPY_CD_REFERENCE),
+				        false);
 				ASSERT_IS_VALID_MESH(mesh);
 
 				// XXX: port to Mesh if build_shapekey_layers can ever be true
@@ -2439,7 +2451,11 @@ static void mesh_calc_modifiers(
 	else {
 		BKE_id_copy_ex(
 		        NULL, &me->id, (ID **)&final_mesh,
-		        LIB_ID_CREATE_NO_MAIN | LIB_ID_CREATE_NO_USER_REFCOUNT | LIB_ID_CREATE_NO_DEG_TAG, false);
+		        (LIB_ID_CREATE_NO_MAIN |
+		         LIB_ID_CREATE_NO_USER_REFCOUNT |
+		         LIB_ID_CREATE_NO_DEG_TAG |
+		         LIB_ID_COPY_CD_REFERENCE),
+		        false);
 
 		//if (build_shapekey_layers) {
 		//	add_shapekey_layers(final_mesh, me, ob);



More information about the Bf-blender-cvs mailing list