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:
Diffstat (limited to 'source/blender/modifiers/intern/MOD_uvproject.c')
-rw-r--r--source/blender/modifiers/intern/MOD_uvproject.c14
1 files changed, 9 insertions, 5 deletions
diff --git a/source/blender/modifiers/intern/MOD_uvproject.c b/source/blender/modifiers/intern/MOD_uvproject.c
index 8c9fbefa27a..0da96ba1a38 100644
--- a/source/blender/modifiers/intern/MOD_uvproject.c
+++ b/source/blender/modifiers/intern/MOD_uvproject.c
@@ -125,6 +125,7 @@ typedef struct Projector {
static Mesh *uvprojectModifier_do(
UVProjectModifierData *umd,
+ const ModifierEvalContext *ctx,
Object *ob, Mesh *mesh)
{
float (*coords)[3], (*co)[3];
@@ -141,11 +142,14 @@ static Mesh *uvprojectModifier_do(
float scay = umd->scaley ? umd->scaley : 1.0f;
int free_uci = 0;
- for (i = 0; i < umd->num_projectors; ++i)
- if (umd->projectors[i])
- projectors[num_projectors++].ob = umd->projectors[i];
+ for (i = 0; i < umd->num_projectors; ++i) {
+ if (umd->projectors[i] != NULL) {
+ projectors[num_projectors++].ob = DEG_get_evaluated_object(ctx->depsgraph, umd->projectors[i]);
+ }
+ }
- if (num_projectors == 0) return mesh;
+ if (num_projectors == 0)
+ return mesh;
/* make sure there are UV Maps available */
@@ -317,7 +321,7 @@ static Mesh *applyModifier(
Mesh *result;
UVProjectModifierData *umd = (UVProjectModifierData *) md;
- result = uvprojectModifier_do(umd, ctx->object, mesh);
+ result = uvprojectModifier_do(umd, ctx, ctx->object, mesh);
return result;
}