diff options
Diffstat (limited to 'source/blender/modifiers/intern/MOD_displace.c')
-rw-r--r-- | source/blender/modifiers/intern/MOD_displace.c | 17 |
1 files changed, 10 insertions, 7 deletions
diff --git a/source/blender/modifiers/intern/MOD_displace.c b/source/blender/modifiers/intern/MOD_displace.c index ef15b5fbf7a..ac8fb91bc8d 100644 --- a/source/blender/modifiers/intern/MOD_displace.c +++ b/source/blender/modifiers/intern/MOD_displace.c @@ -53,6 +53,7 @@ #include "BKE_object.h" #include "DEG_depsgraph.h" +#include "DEG_depsgraph_query.h" #include "MEM_guardedalloc.h" @@ -137,7 +138,7 @@ static void foreachTexLink( walk(userData, ob, md, "texture"); } -static bool isDisabled(ModifierData *md, int UNUSED(useRenderParams)) +static bool isDisabled(const struct Scene *UNUSED(scene), ModifierData *md, int UNUSED(useRenderParams)) { DisplaceModifierData *dmd = (DisplaceModifierData *) md; return ((!dmd->texture && dmd->direction == MOD_DISP_DIR_RGB_XYZ) || dmd->strength == 0.0f); @@ -159,6 +160,7 @@ static void updateDepsgraph(ModifierData *md, const ModifierUpdateDepsgraphConte typedef struct DisplaceUserdata { /*const*/ DisplaceModifierData *dmd; + struct Scene *scene; struct ImagePool *pool; MDeformVert *dvert; float weight; @@ -205,7 +207,7 @@ static void displaceModifier_do_task( if (dmd->texture) { texres.nor = NULL; - BKE_texture_get_value_ex(dmd->modifier.scene, dmd->texture, tex_co[iter], &texres, data->pool, false); + BKE_texture_get_value_ex(data->scene, dmd->texture, tex_co[iter], &texres, data->pool, false); delta = texres.tin - dmd->midlevel; } else { @@ -291,14 +293,14 @@ static void displaceModifier_do( if (dmd->strength == 0.0f) return; mvert = mesh->mvert; - modifier_get_vgroup_mesh(ob, mesh, dmd->defgrp_name, &dvert, &defgrp_index); + MOD_get_vgroup(ob, mesh, dmd->defgrp_name, &dvert, &defgrp_index); if (dmd->texture) { tex_co = MEM_calloc_arrayN((size_t)numVerts, sizeof(*tex_co), "displaceModifier_do tex_co"); - get_texture_coords_mesh((MappingInfoModifierData *)dmd, ob, mesh, vertexCos, tex_co); + MOD_get_texture_coords((MappingInfoModifierData *)dmd, ob, mesh, vertexCos, tex_co); - modifier_init_texture(depsgraph, dmd->texture); + MOD_init_texture(depsgraph, dmd->texture); } else { tex_co = NULL; @@ -330,6 +332,7 @@ static void displaceModifier_do( } DisplaceUserdata data = {NULL}; + data.scene = DEG_get_evaluated_scene(ctx->depsgraph); data.dmd = dmd; data.dvert = dvert; data.weight = weight; @@ -373,7 +376,7 @@ static void deformVerts( float (*vertexCos)[3], int numVerts) { - Mesh *mesh_src = get_mesh(ctx->object, NULL, mesh, NULL, false, false); + Mesh *mesh_src = MOD_get_mesh_eval(ctx->object, NULL, mesh, NULL, false, false); BLI_assert(mesh_src->totvert == numVerts); @@ -388,7 +391,7 @@ static void deformVertsEM( ModifierData *md, const ModifierEvalContext *ctx, struct BMEditMesh *editData, Mesh *mesh, float (*vertexCos)[3], int numVerts) { - Mesh *mesh_src = get_mesh(ctx->object, editData, mesh, NULL, false, false); + Mesh *mesh_src = MOD_get_mesh_eval(ctx->object, editData, mesh, NULL, false, false); BLI_assert(mesh_src->totvert == numVerts); |