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. @@

_______________________________________________
Bf-blender-cvs mailing list
[email protected]
http://lists.blender.org/mailman/listinfo/bf-blender-cvs

Reply via email to