[Bf-blender-cvs] SVN commit: /data/svn/bf-blender [28948] trunk/blender/source/blender: Fix [#21521] Displacement modifier does not update when modifing texture
Matt Ebb
matt at mke3.net
Mon May 24 09:30:50 CEST 2010
Revision: 28948
http://projects.blender.org/plugins/scmsvn/viewcvs.php?view=rev&root=bf-blender&revision=28948
Author: broken
Date: 2010-05-24 09:30:50 +0200 (Mon, 24 May 2010)
Log Message:
-----------
Fix [#21521] Displacement modifier does not update when modifing texture
Depgraph now handles texture dependencies - textures can affect objects/data via modifiers.
Modified Paths:
--------------
trunk/blender/source/blender/blenkernel/intern/depsgraph.c
trunk/blender/source/blender/editors/space_view3d/space_view3d.c
Modified: trunk/blender/source/blender/blenkernel/intern/depsgraph.c
===================================================================
--- trunk/blender/source/blender/blenkernel/intern/depsgraph.c 2010-05-24 07:14:55 UTC (rev 28947)
+++ trunk/blender/source/blender/blenkernel/intern/depsgraph.c 2010-05-24 07:30:50 UTC (rev 28948)
@@ -2250,6 +2250,16 @@
}
}
+static void dag_id_flush_update__isDependentTexture(void *userData, Object *ob, ID **idpoin)
+{
+ struct { ID *id; int is_dependent; } *data = userData;
+
+ if(*idpoin && GS((*idpoin)->name)==ID_TE) {
+ if (data->id == (*idpoin))
+ data->is_dependent = 1;
+ }
+}
+
void DAG_id_flush_update(ID *id, short flag)
{
Main *bmain= G.main;
@@ -2304,6 +2314,17 @@
}
}
+ /* set flags based on textures - can influence depgraph via modifiers */
+ if(idtype == ID_TE) {
+ for(obt=bmain->object.first; obt; obt= obt->id.next) {
+ struct { ID *id; int is_dependent; } data = {id, 0};
+
+ modifiers_foreachIDLink(obt, dag_id_flush_update__isDependentTexture, &data);
+ if (data.is_dependent)
+ obt->recalc |= OB_RECALC_DATA;
+ }
+ }
+
/* set flags based on ShapeKey */
if(idtype == ID_KE) {
for(obt=bmain->object.first; obt; obt= obt->id.next) {
Modified: trunk/blender/source/blender/editors/space_view3d/space_view3d.c
===================================================================
--- trunk/blender/source/blender/editors/space_view3d/space_view3d.c 2010-05-24 07:14:55 UTC (rev 28947)
+++ trunk/blender/source/blender/editors/space_view3d/space_view3d.c 2010-05-24 07:30:50 UTC (rev 28948)
@@ -610,6 +610,10 @@
* more context than just the region */
ED_region_tag_redraw(ar);
break;
+ case NC_TEXTURE:
+ /* same as above */
+ ED_region_tag_redraw(ar);
+ break;
case NC_SPACE:
if(wmn->data == ND_SPACE_VIEW3D) {
if (wmn->subtype == NS_VIEW3D_GPU) {
More information about the Bf-blender-cvs
mailing list