Welcome to mirror list, hosted at ThFree Co, Russian Federation.

git.blender.org/blender.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorBastien Montagne <montagne29@wanadoo.fr>2018-05-23 16:52:35 +0300
committerBastien Montagne <montagne29@wanadoo.fr>2018-05-23 16:55:13 +0300
commit4a2213dc9a15d6fbff49cde6f919f27b7fbecf89 (patch)
treebd2f7093ad3446a454f63c85ba2a800178f6ae01 /source/blender/modifiers/intern/MOD_warp.c
parenta455e35343a46af48dc8c8b53356c09368509591 (diff)
Fix modifiers not using depsgraph time for texture evaluation.
Texture animation seems to be broken anyway currently, but at leat modifier side it should now be OK.
Diffstat (limited to 'source/blender/modifiers/intern/MOD_warp.c')
-rw-r--r--source/blender/modifiers/intern/MOD_warp.c12
1 files changed, 8 insertions, 4 deletions
diff --git a/source/blender/modifiers/intern/MOD_warp.c b/source/blender/modifiers/intern/MOD_warp.c
index f6585521269..4df71d91e3e 100644
--- a/source/blender/modifiers/intern/MOD_warp.c
+++ b/source/blender/modifiers/intern/MOD_warp.c
@@ -45,6 +45,8 @@
#include "BKE_texture.h"
#include "BKE_colortools.h"
+#include "DEG_depsgraph.h"
+
#include "RE_shader_ext.h"
#include "MOD_util.h"
@@ -149,9 +151,11 @@ static void updateDepsgraph(ModifierData *md, const ModifierUpdateDepsgraphConte
}
static void warpModifier_do(
- WarpModifierData *wmd, Object *ob,
+ WarpModifierData *wmd, const ModifierEvalContext *ctx,
Mesh *mesh, float (*vertexCos)[3], int numVerts)
{
+ Object *ob = ctx->object;
+ Depsgraph *depsgraph = ctx->depsgraph;
float obinv[4][4];
float mat_from[4][4];
float mat_from_inv[4][4];
@@ -213,7 +217,7 @@ static void warpModifier_do(
tex_co = MEM_malloc_arrayN(numVerts, sizeof(*tex_co), "warpModifier_do tex_co");
get_texture_coords_mesh((MappingInfoModifierData *)wmd, ob, mesh, vertexCos, tex_co);
- modifier_init_texture(wmd->modifier.scene, wmd->texture);
+ modifier_init_texture(depsgraph, wmd->texture);
}
for (i = 0; i < numVerts; i++) {
@@ -316,7 +320,7 @@ static void deformVerts(
BLI_assert(mesh_src->totvert == numVerts);
- warpModifier_do((WarpModifierData *)md, ctx->object, mesh_src, vertexCos, numVerts);
+ warpModifier_do((WarpModifierData *)md, ctx, mesh_src, vertexCos, numVerts);
}
static void deformVertsEM(
@@ -331,7 +335,7 @@ static void deformVertsEM(
BLI_assert(mesh_src->totvert == numVerts);
- warpModifier_do((WarpModifierData *)md, ctx->object, mesh_src, vertexCos, numVerts);
+ warpModifier_do((WarpModifierData *)md, ctx, mesh_src, vertexCos, numVerts);
if (!mesh) {
BKE_id_free(NULL, mesh_src);