[Bf-blender-cvs] SVN commit: /data/svn/bf-blender [22600] branches/blender2.5/blender/source /blender: Fixed some redraw problems with texture nodes.

Robin Allen roblovski at gmail.com
Tue Aug 18 16:31:13 CEST 2009


Revision: 22600
          http://projects.blender.org/plugins/scmsvn/viewcvs.php?view=rev&root=bf-blender&revision=22600
Author:   kakbarnf
Date:     2009-08-18 16:31:13 +0200 (Tue, 18 Aug 2009)

Log Message:
-----------
Fixed some redraw problems with texture nodes.

Modified Paths:
--------------
    branches/blender2.5/blender/source/blender/blenkernel/intern/node.c
    branches/blender2.5/blender/source/blender/editors/space_node/node_draw.c
    branches/blender2.5/blender/source/blender/editors/space_node/node_edit.c
    branches/blender2.5/blender/source/blender/editors/space_node/space_node.c
    branches/blender2.5/blender/source/blender/nodes/intern/TEX_nodes/TEX_output.c
    branches/blender2.5/blender/source/blender/nodes/intern/TEX_util.c

Modified: branches/blender2.5/blender/source/blender/blenkernel/intern/node.c
===================================================================
--- branches/blender2.5/blender/source/blender/blenkernel/intern/node.c	2009-08-18 12:58:51 UTC (rev 22599)
+++ branches/blender2.5/blender/source/blender/blenkernel/intern/node.c	2009-08-18 14:31:13 UTC (rev 22600)
@@ -950,9 +950,6 @@
 	if(ntype->initfunc!=NULL)
 		ntype->initfunc(node);
 	
-	if(type==TEX_NODE_OUTPUT)
-		ntreeTexAssignIndex(ntree, node);
-
 	nodeAddSockets(node, ntype);
 	
 	return node;
@@ -1021,9 +1018,6 @@
 	nnode->new_node= NULL;
 	nnode->preview= NULL;
 	
-	if(node->type==TEX_NODE_OUTPUT)
-		ntreeTexAssignIndex(ntree, node);
-
 	return nnode;
 }
 

Modified: branches/blender2.5/blender/source/blender/editors/space_node/node_draw.c
===================================================================
--- branches/blender2.5/blender/source/blender/editors/space_node/node_draw.c	2009-08-18 12:58:51 UTC (rev 22599)
+++ branches/blender2.5/blender/source/blender/editors/space_node/node_draw.c	2009-08-18 14:31:13 UTC (rev 22600)
@@ -607,9 +607,9 @@
 			}
 			WM_event_add_notifier(C, NC_SCENE|ND_NODES, CTX_data_scene(C));
 		}			
-		
-	//	else if(snode->treetype==NTREE_TEXTURE)
-	//		texture_node_event(snode, val);
+		else if(snode->treetype==NTREE_TEXTURE) {
+			WM_event_add_notifier(C, NC_TEXTURE|ND_NODES, snode->id);
+		}
 	}
 	
 }

Modified: branches/blender2.5/blender/source/blender/editors/space_node/node_edit.c
===================================================================
--- branches/blender2.5/blender/source/blender/editors/space_node/node_edit.c	2009-08-18 12:58:51 UTC (rev 22599)
+++ branches/blender2.5/blender/source/blender/editors/space_node/node_edit.c	2009-08-18 14:31:13 UTC (rev 22600)
@@ -213,10 +213,8 @@
 		WM_event_add_notifier(C, NC_MATERIAL|ND_NODES, snode->id);
 	else if(snode->treetype==NTREE_COMPOSIT)
 		WM_event_add_notifier(C, NC_SCENE|ND_NODES, snode->id);
-	else if(snode->treetype==NTREE_TEXTURE) {
-		// ntreeTexUpdatePreviews(snode->nodetree); /* XXX texture nodes should follow shader node methods (ton) */
-		// XXX BIF_preview_changed(ID_TE);
-	}
+	else if(snode->treetype==NTREE_TEXTURE)
+		WM_event_add_notifier(C, NC_TEXTURE|ND_NODES, snode->id);
 }
 
 #if 0

Modified: branches/blender2.5/blender/source/blender/editors/space_node/space_node.c
===================================================================
--- branches/blender2.5/blender/source/blender/editors/space_node/space_node.c	2009-08-18 12:58:51 UTC (rev 22599)
+++ branches/blender2.5/blender/source/blender/editors/space_node/space_node.c	2009-08-18 14:31:13 UTC (rev 22600)
@@ -152,12 +152,16 @@
 			if(wmn->data==ND_FILEREAD)
 				ED_area_tag_refresh(sa);
 			break;
-				
+			
+		/* future: add ID checks? */
 		case NC_MATERIAL:
-			/* future: add ID check? */
 			if(wmn->data==ND_SHADING)
 				ED_area_tag_refresh(sa);
 			break;
+		case NC_TEXTURE:
+			if(wmn->data==ND_NODES)
+				ED_area_tag_refresh(sa);
+			break;
 	}
 }
 
@@ -280,6 +284,9 @@
 		case NC_MATERIAL:
 			ED_region_tag_redraw(ar);
 			break;
+		case NC_TEXTURE:
+			ED_region_tag_redraw(ar);
+			break;
 	}
 }
 

Modified: branches/blender2.5/blender/source/blender/nodes/intern/TEX_nodes/TEX_output.c
===================================================================
--- branches/blender2.5/blender/source/blender/nodes/intern/TEX_nodes/TEX_output.c	2009-08-18 12:58:51 UTC (rev 22599)
+++ branches/blender2.5/blender/source/blender/nodes/intern/TEX_nodes/TEX_output.c	2009-08-18 14:31:13 UTC (rev 22600)
@@ -152,6 +152,26 @@
 	}
 }
 
+static void assign_index(struct bNode *node)
+{
+	bNode *tnode;
+	int index = 1;
+	
+	tnode = node;
+	while(tnode->prev)
+		tnode = tnode->prev;
+	
+	check_index:
+	for(; tnode; tnode= tnode->next)
+		if(tnode->type == TEX_NODE_OUTPUT && tnode != node)
+			if(tnode->custom1 == index) {
+				index ++;
+				goto check_index;
+			}
+			
+	node->custom1 = index;
+}
+
 static void init(bNode *node)
 {
 	TexNodeOutput *tno = MEM_callocN(sizeof(TexNodeOutput), "TEX_output");
@@ -159,17 +179,16 @@
 	
 	strcpy(tno->name, "Default");
 	unique_name(node);
-	ntreeTexAssignIndex(0, node);
+	assign_index(node);
 }
 
 static void copy(bNode *orig, bNode *new)
 {
 	node_copy_standard_storage(orig, new);
 	unique_name(new);
-	ntreeTexAssignIndex(0, new);
+	assign_index(new);
 }
 
-
 bNodeType tex_node_output= {
 	/* *next,*prev     */  NULL, NULL,
 	/* type code       */  TEX_NODE_OUTPUT,

Modified: branches/blender2.5/blender/source/blender/nodes/intern/TEX_util.c
===================================================================
--- branches/blender2.5/blender/source/blender/nodes/intern/TEX_util.c	2009-08-18 12:58:51 UTC (rev 22599)
+++ branches/blender2.5/blender/source/blender/nodes/intern/TEX_util.c	2009-08-18 14:31:13 UTC (rev 22600)
@@ -297,26 +297,3 @@
 	return str;
 }
 
-void ntreeTexAssignIndex(struct bNodeTree *ntree, struct bNode *node)
-{
-	bNode *tnode;
-	int index = 1;
-	
-	if(ntree) 
-		tnode = ntree->nodes.first;
-	else {
-		tnode = node;
-		while(tnode->prev) tnode = tnode->prev;
-	}
-	
-	check_index:
-	for(; tnode; tnode= tnode->next)
-		if(tnode->type == TEX_NODE_OUTPUT && tnode != node)
-			if(tnode->custom1 == index) {
-				index ++;
-				goto check_index;
-			}
-			
-	node->custom1 = index;
-}
-





More information about the Bf-blender-cvs mailing list