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.
This commit is contained in:
Sergey Sharybin
2018-05-30 16:25:35 +02:00
parent 25d4d43491
commit 41fac4fa76

View File

@@ -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);