[Bf-blender-cvs] SVN commit: /data/svn/bf-blender [36439] trunk/blender/source/blender/ editors: Fix #27098: missing 3d view updates when editing GLSL material nodes.

Brecht Van Lommel brechtvanlommel at pandora.be
Mon May 2 14:31:09 CEST 2011


Revision: 36439
          http://projects.blender.org/scm/viewvc.php?view=rev&root=bf-blender&revision=36439
Author:   blendix
Date:     2011-05-02 12:31:09 +0000 (Mon, 02 May 2011)
Log Message:
-----------
Fix #27098: missing 3d view updates when editing GLSL material nodes.

Modified Paths:
--------------
    trunk/blender/source/blender/editors/space_node/node_edit.c
    trunk/blender/source/blender/editors/space_node/node_header.c
    trunk/blender/source/blender/editors/space_node/node_intern.h
    trunk/blender/source/blender/editors/space_view3d/space_view3d.c

Modified: trunk/blender/source/blender/editors/space_node/node_edit.c
===================================================================
--- trunk/blender/source/blender/editors/space_node/node_edit.c	2011-05-02 12:19:43 UTC (rev 36438)
+++ trunk/blender/source/blender/editors/space_node/node_edit.c	2011-05-02 12:31:09 UTC (rev 36439)
@@ -51,6 +51,7 @@
 #include "BLI_utildefines.h"
 
 #include "BKE_context.h"
+#include "BKE_depsgraph.h"
 #include "BKE_global.h"
 #include "BKE_image.h"
 #include "BKE_library.h"
@@ -234,6 +235,11 @@
 		return nodeGetActive(ntree);
 }
 
+void snode_dag_update(bContext *UNUSED(C), SpaceNode *snode)
+{
+	DAG_id_tag_update(snode->id, 0);
+}
+
 void snode_notify(bContext *C, SpaceNode *snode)
 {
 	WM_event_add_notifier(C, NC_NODE|NA_EDITED, NULL);
@@ -912,7 +918,8 @@
 		return OPERATOR_CANCELLED;
 	}
 
-	WM_event_add_notifier(C, NC_SCENE|ND_NODES, NULL);
+	snode_notify(C, snode);
+	snode_dag_update(C, snode);
 
 	return OPERATOR_FINISHED;
 }
@@ -2014,6 +2021,7 @@
 	
 	node_tree_verify_groups(snode->nodetree);
 	snode_notify(C, snode);
+	snode_dag_update(C, snode);
 
 	return OPERATOR_FINISHED;
 }
@@ -2169,6 +2177,7 @@
 			ntreeSolveOrder(snode->edittree);
 			node_tree_verify_groups(snode->nodetree);
 			snode_notify(C, snode);
+			snode_dag_update(C, snode);
 			
 			BLI_remlink(&snode->linkdrag, nldrag);
 			MEM_freeN(nldrag);
@@ -2303,6 +2312,7 @@
 
 	node_tree_verify_groups(snode->nodetree);
 	snode_notify(C, snode);
+	snode_dag_update(C, snode);
 	
 	return OPERATOR_FINISHED;
 }
@@ -2377,6 +2387,7 @@
 		ntreeSolveOrder(snode->edittree);
 		node_tree_verify_groups(snode->nodetree);
 		snode_notify(C, snode);
+		snode_dag_update(C, snode);
 		
 		return OPERATOR_FINISHED;
 	}
@@ -2436,6 +2447,8 @@
 	}
 	
 	snode_notify(C, snode);
+	snode_dag_update(C, snode);
+
 	return OPERATOR_FINISHED;
 }
 
@@ -2464,6 +2477,7 @@
 
 	RE_MergeFullSample(re, bmain, curscene, snode->nodetree);
 	snode_notify(C, snode);
+	snode_dag_update(C, snode);
 	
 	WM_cursor_wait(0);
 	return OPERATOR_FINISHED;
@@ -2572,6 +2586,7 @@
 	}
 	
 	snode_notify(C, snode);
+	snode_dag_update(C, snode);
 	
 	return OPERATOR_FINISHED;
 }
@@ -2758,6 +2773,7 @@
 	}
 	
 	snode_notify(C, snode);
+	snode_dag_update(C, snode);
 	
 	return OPERATOR_FINISHED;
 }
@@ -2799,6 +2815,7 @@
 	node_tree_verify_groups(snode->nodetree);
 
 	snode_notify(C, snode);
+	snode_dag_update(C, snode);
 	
 	return OPERATOR_FINISHED;
 }
@@ -2900,6 +2917,7 @@
 	node->id = (ID *)ima;
 	
 	snode_notify(C, snode);
+	snode_dag_update(C, snode);
 	
 	return OPERATOR_FINISHED;
 }

Modified: trunk/blender/source/blender/editors/space_node/node_header.c
===================================================================
--- trunk/blender/source/blender/editors/space_node/node_header.c	2011-05-02 12:19:43 UTC (rev 36438)
+++ trunk/blender/source/blender/editors/space_node/node_header.c	2011-05-02 12:31:09 UTC (rev 36439)
@@ -102,6 +102,7 @@
 	}
 		
 	snode_notify(C, snode);
+	snode_dag_update(C, snode);
 }
 
 static void node_auto_add_menu(bContext *C, uiLayout *layout, void *arg_nodeclass)

Modified: trunk/blender/source/blender/editors/space_node/node_intern.h
===================================================================
--- trunk/blender/source/blender/editors/space_node/node_intern.h	2011-05-02 12:19:43 UTC (rev 36438)
+++ trunk/blender/source/blender/editors/space_node/node_intern.h	2011-05-02 12:31:09 UTC (rev 36439)
@@ -95,6 +95,7 @@
 /* node_edit.c */
 void node_tree_from_ID(ID *id, bNodeTree **ntree, bNodeTree **edittree, int *treetype);
 void snode_notify(bContext *C, SpaceNode *snode);
+void snode_dag_update(bContext *C, SpaceNode *snode);
 bNode *next_node(bNodeTree *ntree);
 bNode *node_add_node(SpaceNode *snode, Scene *scene, int type, float locx, float locy);
 void snode_set_context(SpaceNode *snode, Scene *scene);

Modified: trunk/blender/source/blender/editors/space_view3d/space_view3d.c
===================================================================
--- trunk/blender/source/blender/editors/space_view3d/space_view3d.c	2011-05-02 12:19:43 UTC (rev 36438)
+++ trunk/blender/source/blender/editors/space_view3d/space_view3d.c	2011-05-02 12:31:09 UTC (rev 36439)
@@ -975,7 +975,14 @@
 					break;
 			}
 			break;
-
+		case NC_MATERIAL:
+			switch(wmn->data) {
+				case ND_NODES:
+					if(v3d->drawtype == OB_TEXTURE)
+						ED_area_tag_redraw_regiontype(sa, RGN_TYPE_WINDOW);
+					break;
+			}
+			break;
 	}
 
 #if 0 // removed since BKE_image_user_calc_frame is now called in draw_bgpic because screen_ops doesnt call the notifier.




More information about the Bf-blender-cvs mailing list