[Bf-blender-cvs] SVN commit: /data/svn/bf-blender [32712] branches/particles-2010/source/ blender: Reverted last patch.

Lukas Toenne lukas.toenne at googlemail.com
Tue Oct 26 09:14:43 CEST 2010


Revision: 32712
          http://projects.blender.org/plugins/scmsvn/viewcvs.php?view=rev&root=bf-blender&revision=32712
Author:   lukastoenne
Date:     2010-10-26 09:14:31 +0200 (Tue, 26 Oct 2010)

Log Message:
-----------
Reverted last patch. While it's a nice idea in general, the use of the socket type is too diverse to be packed into a common interface struct. Using compact functions with switches is ok, as long as scattering type references over core files is avoided.

Modified Paths:
--------------
    branches/particles-2010/source/blender/blenkernel/BKE_node.h
    branches/particles-2010/source/blender/editors/space_node/node_draw.c
    branches/particles-2010/source/blender/nodes/intern/composite/node_tree_composite.c
    branches/particles-2010/source/blender/nodes/intern/node_util.c
    branches/particles-2010/source/blender/nodes/intern/node_util.h
    branches/particles-2010/source/blender/nodes/intern/shader/node_tree_shader.c
    branches/particles-2010/source/blender/nodes/intern/simulation/node_tree_simulation.c
    branches/particles-2010/source/blender/nodes/intern/texture/node_tree_texture.c

Modified: branches/particles-2010/source/blender/blenkernel/BKE_node.h
===================================================================
--- branches/particles-2010/source/blender/blenkernel/BKE_node.h	2010-10-26 05:07:09 UTC (rev 32711)
+++ branches/particles-2010/source/blender/blenkernel/BKE_node.h	2010-10-26 07:14:31 UTC (rev 32712)
@@ -86,14 +86,6 @@
 	float min, max;					/* default range for inputs */
 } bNodeSocketDefinition;
 
-typedef struct bNodeSocketTypeInfo {
-	int type;
-	int color[4];
-	int icon;
-	char ui_name[64];
-	char ui_description[256];
-} bNodeSocketTypeInfo;
-
 typedef struct bNodeType {
 	void *next,*prev;
 	int type;
@@ -196,7 +188,6 @@
 	 * individual node update calls should be made internally if this function is defined! */
 	void (*updateNode)(struct bNodeTree *ntree, struct bNode *node);
 
-	struct bNodeSocketTypeInfo *(*getSocketTypeInfo)(int type);
 	int (*compatibleSocketTypes)(int type_a, int type_b);
 	int (*preferredSocketType)(int type_a, int type_b);
 } bNodeTreeTypeInfo;

Modified: branches/particles-2010/source/blender/editors/space_node/node_draw.c
===================================================================
--- branches/particles-2010/source/blender/editors/space_node/node_draw.c	2010-10-26 05:07:09 UTC (rev 32711)
+++ branches/particles-2010/source/blender/editors/space_node/node_draw.c	2010-10-26 07:14:31 UTC (rev 32712)
@@ -532,12 +532,57 @@
 	glDisable(GL_BLEND);
 }
 
-static void socket_circle_draw(bNodeTree *ntree, bNodeSocket *sock, float size)
+void node_socket_get_color(int type, int r_col[4])
 {
-	bNodeTreeTypeInfo *tti= ntreeGetTypeInfo(ntree->type);
-	node_circle_draw(sock->locx, sock->locy, size, tti->getSocketTypeInfo(sock->type)->color);
+	switch (type) {
+	case -1:
+		r_col[0]= 0;	r_col[1]= 0;	r_col[2]= 0;	r_col[3]= 0;
+		break;
+	case SOCK_VALUE:
+		r_col[0]= 160;	r_col[1]= 160;	r_col[2]= 160;	r_col[3]= 255;
+		break;
+	case SOCK_VECTOR:
+		r_col[0]= 100;	r_col[1]= 100;	r_col[2]= 200;	r_col[3]= 255;
+		break;
+	case SOCK_RGBA:
+		r_col[0]= 200;	r_col[1]= 200;	r_col[2]= 40;	r_col[3]= 255;
+		break;
+	case SOCK_OP:
+		r_col[0]= 174;	r_col[1]= 58;	r_col[2]= 5;	r_col[3]= 255;
+		break;
+	case SOCK_ANY:
+		r_col[0]= 30;	r_col[1]= 30;	r_col[2]= 30;	r_col[3]= 255;
+		break;
+	case SOCK_INT:
+		r_col[0]= 86;	r_col[1]= 185;	r_col[2]= 86;	r_col[3]= 255;
+		break;
+	case SOCK_FLOAT:
+		r_col[0]= 124;	r_col[1]= 242;	r_col[2]= 154;	r_col[3]= 255;
+		break;
+	case SOCK_BOOL:
+		r_col[0]= 200;	r_col[1]= 137;	r_col[2]= 52;	r_col[3]= 255;
+		break;
+	case SOCK_QUAT:
+		r_col[0]= 0;	r_col[1]= 209;	r_col[2]= 225;	r_col[3]= 255;
+		break;
+	case SOCK_MATRIX:
+		r_col[0]= 131;	r_col[1]= 39;	r_col[2]= 248;	r_col[3]= 255;
+		break;
+	case SOCK_STRING:
+		r_col[0]= 180;	r_col[1]= 180;	r_col[2]= 180;	r_col[3]= 255;
+		break;
+	default:
+		r_col[0]= 100;	r_col[1]= 200;	r_col[2]= 100;	r_col[3]= 255;
+	}
 }
 
+static void socket_circle_draw(bNodeSocket *sock, float size)
+{
+	int col[4];
+	node_socket_get_color(sock->type, col);
+	node_circle_draw(sock->locx, sock->locy, size, col);
+}
+
 static void node_sync_cb(bContext *C, void *snode_v, void *node_v)
 {
 	SpaceNode *snode= snode_v;
@@ -789,7 +834,7 @@
 			if (sock->panel && sock->panel->collapsed)
 				continue;
 			
-			socket_circle_draw(ntree, sock, NODE_SOCKSIZE);
+			socket_circle_draw(sock, NODE_SOCKSIZE);
 			
 			if(sock->link==NULL) {
 			
@@ -930,7 +975,7 @@
 			if (sock->panel && sock->panel->collapsed)
 				continue;
 			
-			socket_circle_draw(ntree, sock, NODE_SOCKSIZE);
+			socket_circle_draw(sock, NODE_SOCKSIZE);
 			
 			ofs= 0;
 			UI_ThemeColor(TH_TEXT);
@@ -982,7 +1027,6 @@
 
 static void node_draw_hidden(const bContext *C, ARegion *ar, SpaceNode *snode, bNode *node)
 {
-	bNodeTree *ntree = snode->nodetree;
 	bNodeSocket *sock;
 	rctf *rct= &node->totr;
 	float dx, centy= 0.5f*(rct->ymax+rct->ymin);
@@ -1054,12 +1098,12 @@
 	/* sockets */
 	for(sock= node->inputs.first; sock; sock= sock->next) {
 		if(!(sock->flag & (SOCK_HIDDEN|SOCK_UNAVAIL)))
-			socket_circle_draw(ntree, sock, NODE_SOCKSIZE);
+			socket_circle_draw(sock, NODE_SOCKSIZE);
 	}
 	
 	for(sock= node->outputs.first; sock; sock= sock->next) {
 		if(!(sock->flag & (SOCK_HIDDEN|SOCK_UNAVAIL)))
-			socket_circle_draw(ntree, sock, NODE_SOCKSIZE);
+			socket_circle_draw(sock, NODE_SOCKSIZE);
 	}
 	
 	uiEndBlock(C, node->block);
@@ -1166,7 +1210,6 @@
 /* groups are, on creation, centered around 0,0 */
 static void node_draw_group(const bContext *C, ARegion *ar, SpaceNode *snode, bNode *gnode)
 {
-	bNodeTree *ntree = snode->nodetree;
 	bNodeTree *ngroup= (bNodeTree *)gnode->id;
 	bNodeSocket *sock;
 	rctf rect= gnode->totr;
@@ -1213,10 +1256,10 @@
 	/* group sockets */
 	for(sock= gnode->inputs.first; sock; sock= sock->next)
 		if(!(sock->flag & (SOCK_HIDDEN|SOCK_UNAVAIL)))
-			socket_circle_draw(ntree, sock, NODE_SOCKSIZE);
+			socket_circle_draw(sock, NODE_SOCKSIZE);
 	for(sock= gnode->outputs.first; sock; sock= sock->next)
 		if(!(sock->flag & (SOCK_HIDDEN|SOCK_UNAVAIL)))
-			socket_circle_draw(ntree, sock, NODE_SOCKSIZE);
+			socket_circle_draw(sock, NODE_SOCKSIZE);
 
 
 	

Modified: branches/particles-2010/source/blender/nodes/intern/composite/node_tree_composite.c
===================================================================
--- branches/particles-2010/source/blender/nodes/intern/composite/node_tree_composite.c	2010-10-26 05:07:09 UTC (rev 32711)
+++ branches/particles-2010/source/blender/nodes/intern/composite/node_tree_composite.c	2010-10-26 07:14:31 UTC (rev 32712)
@@ -289,8 +289,7 @@
 	/* endExec */			endExec,
 	/* exec */				exec,
 	/* update */			NULL,
-	/* updateNode */		updateNode,
-	/* getSocketTypeInfo */	getSocketTypeInfoDefault
+	/* updateNode */		updateNode
 };
 
 

Modified: branches/particles-2010/source/blender/nodes/intern/node_util.c
===================================================================
--- branches/particles-2010/source/blender/nodes/intern/node_util.c	2010-10-26 05:07:09 UTC (rev 32711)
+++ branches/particles-2010/source/blender/nodes/intern/node_util.c	2010-10-26 07:14:31 UTC (rev 32712)
@@ -232,35 +232,3 @@
 		}
 	}
 }
-
-bNodeSocketTypeInfo *getSocketTypeInfoDefault(int type)
-{
-	static bNodeSocketTypeInfo sockettype_value = {
-		/* type */				SOCK_VALUE,
-		/* color */				{160,160,160,255},
-		/* icon */				0,
-		/* ui_name */			"Value",
-		/* ui_description */	"Scalar value socket"
-	};
-	static bNodeSocketTypeInfo sockettype_vector = {
-		/* type */				SOCK_VECTOR,
-		/* color */				{100,100,200,255},
-		/* icon */				0,
-		/* ui_name */			"Vector",
-		/* ui_description */	"Vector socket"
-	};
-	static bNodeSocketTypeInfo sockettype_rgba = {
-		/* type */				SOCK_RGBA,
-		/* color */				{200,200,40,255},
-		/* icon */				0,
-		/* ui_name */			"Color",
-		/* ui_description */	"Color socket"
-	};
-	static bNodeSocketTypeInfo *types[] = {
-		/* SOCK_VALUE */	&sockettype_value,
-		/* SOCK_VECTOR */	&sockettype_vector,
-		/* SOCK_RGBA */		&sockettype_rgba
-	};
-	
-	return types[type];
-}

Modified: branches/particles-2010/source/blender/nodes/intern/node_util.h
===================================================================
--- branches/particles-2010/source/blender/nodes/intern/node_util.h	2010-10-26 05:07:09 UTC (rev 32711)
+++ branches/particles-2010/source/blender/nodes/intern/node_util.h	2010-10-26 07:14:31 UTC (rev 32712)
@@ -70,8 +70,6 @@
 void group_node_get_stack(struct bNode *node, struct bNodeStack *stack, struct bNodeStack **in, struct bNodeStack **out, struct bNodeStack **gin, struct bNodeStack **gout);
 void node_group_execute(struct bNodeStack *stack, void *data, struct bNode *gnode, struct bNodeStack **in, struct bNodeStack **out);
 
-struct bNodeSocketTypeInfo *getSocketTypeInfoDefault(int type);
-
 #endif
 
 // this is needed for inlining behaviour

Modified: branches/particles-2010/source/blender/nodes/intern/shader/node_tree_shader.c
===================================================================
--- branches/particles-2010/source/blender/nodes/intern/shader/node_tree_shader.c	2010-10-26 05:07:09 UTC (rev 32711)
+++ branches/particles-2010/source/blender/nodes/intern/shader/node_tree_shader.c	2010-10-26 07:14:31 UTC (rev 32712)
@@ -181,8 +181,7 @@
 	/* endExec */			endExec,
 	/* exec */				exec,
 	/* update */			NULL,
-	/* updateNode */		NULL,
-	/* getSocketTypeInfo */	getSocketTypeInfoDefault
+	/* updateNode */		NULL
 };
 
 /* GPU material from shader nodes */

Modified: branches/particles-2010/source/blender/nodes/intern/simulation/node_tree_simulation.c
===================================================================
--- branches/particles-2010/source/blender/nodes/intern/simulation/node_tree_simulation.c	2010-10-26 05:07:09 UTC (rev 32711)
+++ branches/particles-2010/source/blender/nodes/intern/simulation/node_tree_simulation.c	2010-10-26 07:14:31 UTC (rev 32712)
@@ -394,96 +394,6 @@
 		node->typeinfo->updatefunc(ntree, node);
 }
 
-static bNodeSocketTypeInfo *getSocketTypeInfo(int type)
-{
-	static bNodeSocketTypeInfo sockettype_vector = {
-		/* type */				SOCK_VECTOR,
-		/* color */				{100,100,200,255},
-		/* icon */				0,
-		/* ui_name */			"Vector",
-		/* ui_description */	"Vector socket"
-	};
-	static bNodeSocketTypeInfo sockettype_rgba = {
-		/* type */				SOCK_RGBA,
-		/* color */				{200,200,40,255},
-		/* icon */				0,
-		/* ui_name */			"Color",
-		/* ui_description */	"Color socket"
-	};
-	static bNodeSocketTypeInfo sockettype_any = {
-		/* type */				SOCK_ANY,
-		/* color */				{30,30,30,255},
-		/* icon */				0,
-		/* ui_name */			"Any",
-		/* ui_description */	"Adapting socket"
-	};
-	static bNodeSocketTypeInfo sockettype_op = {
-		/* type */				SOCK_OP,
-		/* color */				{174,58,5,255},
-		/* icon */				0,
-		/* ui_name */			"Execution",
-		/* ui_description */	"Execution control socket"
-	};
-	static bNodeSocketTypeInfo sockettype_bool = {
-		/* type */				SOCK_BOOL,
-		/* color */				{200,137,52,255},
-		/* icon */				0,
-		/* ui_name */			"Boolean",
-		/* ui_description */	"Boolean socket"
-	};
-	static bNodeSocketTypeInfo sockettype_int = {
-		/* type */				SOCK_INT,
-		/* color */				{86,185,86,255},
-		/* icon */				0,
-		/* ui_name */			"Integer",
-		/* ui_description */	"Integer socket"
-	};
-	static bNodeSocketTypeInfo sockettype_float = {
-		/* type */				SOCK_FLOAT,
-		/* color */				{124,242,154,255},
-		/* icon */				0,
-		/* ui_name */			"Float",
-		/* ui_description */	"Floating point socket"
-	};
-	static bNodeSocketTypeInfo sockettype_quat = {

@@ Diff output truncated at 10240 characters. @@




More information about the Bf-blender-cvs mailing list