[Bf-blender-cvs] SVN commit: /data/svn/bf-blender [15973] trunk/blender/source/blender/ blenkernel: Fix for [#17421] Issue with Displace modifier not updating with
Ben Batt
benbatt at gmail.com
Tue Aug 5 16:42:05 CEST 2008
Revision: 15973
http://projects.blender.org/plugins/scmsvn/viewcvs.php?view=rev&root=bf-blender&revision=15973
Author: artificer
Date: 2008-08-05 16:42:04 +0200 (Tue, 05 Aug 2008)
Log Message:
-----------
Fix for [#17421] Issue with Displace modifier not updating with
animated textures
I have added a dependsOnTime function for the Displace modifier which checks
if the displacement texture has IPOs, is a plugin, or uses an animated image.
Modified Paths:
--------------
trunk/blender/source/blender/blenkernel/BKE_texture.h
trunk/blender/source/blender/blenkernel/intern/modifier.c
trunk/blender/source/blender/blenkernel/intern/texture.c
Modified: trunk/blender/source/blender/blenkernel/BKE_texture.h
===================================================================
--- trunk/blender/source/blender/blenkernel/BKE_texture.h 2008-08-05 13:05:11 UTC (rev 15972)
+++ trunk/blender/source/blender/blenkernel/BKE_texture.h 2008-08-05 14:42:04 UTC (rev 15973)
@@ -73,6 +73,7 @@
struct EnvMap *BKE_add_envmap(void);
struct EnvMap *BKE_copy_envmap(struct EnvMap *env);
+int BKE_texture_dependsOnTime(const struct Tex *texture);
#endif
Modified: trunk/blender/source/blender/blenkernel/intern/modifier.c
===================================================================
--- trunk/blender/source/blender/blenkernel/intern/modifier.c 2008-08-05 13:05:11 UTC (rev 15972)
+++ trunk/blender/source/blender/blenkernel/intern/modifier.c 2008-08-05 14:42:04 UTC (rev 15973)
@@ -2999,6 +2999,20 @@
return dataMask;
}
+static int displaceModifier_dependsOnTime(ModifierData *md)
+{
+ DisplaceModifierData *dmd = (DisplaceModifierData *)md;
+
+ if(dmd->texture)
+ {
+ return BKE_texture_dependsOnTime(dmd->texture);
+ }
+ else
+ {
+ return 0;
+ }
+}
+
static void displaceModifier_foreachObjectLink(ModifierData *md, Object *ob,
ObjectWalkFunc walk, void *userData)
{
@@ -7354,6 +7368,7 @@
mti->initData = displaceModifier_initData;
mti->copyData = displaceModifier_copyData;
mti->requiredDataMask = displaceModifier_requiredDataMask;
+ mti->dependsOnTime = displaceModifier_dependsOnTime;
mti->foreachObjectLink = displaceModifier_foreachObjectLink;
mti->foreachIDLink = displaceModifier_foreachIDLink;
mti->updateDepgraph = displaceModifier_updateDepgraph;
Modified: trunk/blender/source/blender/blenkernel/intern/texture.c
===================================================================
--- trunk/blender/source/blender/blenkernel/intern/texture.c 2008-08-05 13:05:11 UTC (rev 15972)
+++ trunk/blender/source/blender/blenkernel/intern/texture.c 2008-08-05 14:42:04 UTC (rev 15973)
@@ -845,3 +845,31 @@
}
/* ------------------------------------------------------------------------- */
+int BKE_texture_dependsOnTime(const struct Tex *texture)
+{
+ if(texture->plugin)
+ {
+ // assume all plugins depend on time
+ return 1;
+ }
+ else if(texture->ima)
+ {
+ if(texture->ima->source == IMA_SRC_SEQUENCE ||
+ texture->ima->source == IMA_SRC_MOVIE ||
+ texture->ima->source == IMA_SRC_GENERATED)
+ {
+ return 1;
+ }
+ }
+ else if(texture->ipo)
+ {
+ // assume any ipo means the texture is animated
+ return 1;
+ }
+ else
+ {
+ return 0;
+ }
+}
+
+/* ------------------------------------------------------------------------- */
More information about the Bf-blender-cvs
mailing list