diff options
author | Brecht Van Lommel <brechtvanlommel@pandora.be> | 2011-11-07 21:30:52 +0400 |
---|---|---|
committer | Brecht Van Lommel <brechtvanlommel@pandora.be> | 2011-11-07 21:30:52 +0400 |
commit | 448731834839bbddee02558080dd9a5e586f6f21 (patch) | |
tree | cc8fc6d72f842ecfee7a467c9ac7bae1c3e55fd3 /source | |
parent | 69ad40f9ea81ddf5cd0d83dc21cc7f66a8008765 (diff) |
Nodes: add socket option to hide the default value in the UI, to be used for
sockets that get their default value if no node is connected from elsewhere,
e.g. a texture coordinate.
Diffstat (limited to 'source')
-rw-r--r-- | source/blender/blenkernel/BKE_node.h | 1 | ||||
-rw-r--r-- | source/blender/editors/space_node/node_draw.c | 5 | ||||
-rw-r--r-- | source/blender/nodes/intern/node_socket.c | 2 | ||||
-rw-r--r-- | source/blender/nodes/shader/nodes/node_shader_texture.c | 2 |
4 files changed, 7 insertions, 3 deletions
diff --git a/source/blender/blenkernel/BKE_node.h b/source/blender/blenkernel/BKE_node.h index 278e57125c5..6080981dc32 100644 --- a/source/blender/blenkernel/BKE_node.h +++ b/source/blender/blenkernel/BKE_node.h @@ -83,6 +83,7 @@ typedef struct bNodeSocketTemplate { float val1, val2, val3, val4; /* default alloc value for inputs */ float min, max; PropertySubType subtype; + int flag; /* after this line is used internal only */ struct bNodeSocket *sock; /* used to hold verified socket */ diff --git a/source/blender/editors/space_node/node_draw.c b/source/blender/editors/space_node/node_draw.c index c2a2f319c28..a932f1b10d9 100644 --- a/source/blender/editors/space_node/node_draw.c +++ b/source/blender/editors/space_node/node_draw.c @@ -108,7 +108,8 @@ void ED_node_changed_update(ID *id, bNode *node) WM_main_add_notifier(NC_WORLD|ND_WORLD_DRAW, id); } else if(treetype==NTREE_COMPOSIT) { - nodeUpdate(edittree, node); + if(node) + nodeUpdate(edittree, node); /* don't use NodeTagIDChanged, it gives far too many recomposites for image, scene layers, ... */ node= node_tree_get_editgroup(nodetree); @@ -691,7 +692,7 @@ static void node_draw_basis(const bContext *C, ARegion *ar, SpaceNode *snode, bN node_socket_circle_draw(ntree, sock, NODE_SOCKSIZE); - if (sock->link) { + if (sock->link || (sock->flag & SOCK_HIDE_VALUE)) { uiDefBut(node->block, LABEL, 0, sock->name, sock->locx+NODE_DYS, sock->locy-NODE_DYS, node->width-NODE_DY, NODE_DY, NULL, 0, 0, 0, 0, ""); } diff --git a/source/blender/nodes/intern/node_socket.c b/source/blender/nodes/intern/node_socket.c index 4a851a3acac..9381eff30dd 100644 --- a/source/blender/nodes/intern/node_socket.c +++ b/source/blender/nodes/intern/node_socket.c @@ -305,6 +305,7 @@ struct bNodeSocket *node_add_input_from_template(struct bNodeTree *ntree, struct default: sock = nodeAddSocket(ntree, node, SOCK_IN, stemp->name, stemp->type); } + sock->flag |= stemp->flag; return sock; } @@ -351,6 +352,7 @@ static bNodeSocket *verify_socket_template(bNodeTree *ntree, bNode *node, int in sock->type= stemp->type; /* in future, read this from tydefs! */ if(stemp->limit==0) sock->limit= 0xFFF; else sock->limit= stemp->limit; + sock->flag |= stemp->flag; /* Copy the property range and subtype parameters in case the template changed. * NOT copying the actual value here, only button behavior changes! diff --git a/source/blender/nodes/shader/nodes/node_shader_texture.c b/source/blender/nodes/shader/nodes/node_shader_texture.c index 42460e141e2..dbf9fdbdb7e 100644 --- a/source/blender/nodes/shader/nodes/node_shader_texture.c +++ b/source/blender/nodes/shader/nodes/node_shader_texture.c @@ -36,7 +36,7 @@ /* **************** TEXTURE ******************** */ static bNodeSocketTemplate sh_node_texture_in[]= { - { SOCK_VECTOR, 1, "Vector", 0.0f, 0.0f, 0.0f, 1.0f, -1.0f, 1.0f, PROP_NONE}, /* no limit */ + { SOCK_VECTOR, 1, "Vector", 0.0f, 0.0f, 0.0f, 1.0f, -1.0f, 1.0f, PROP_NONE, SOCK_HIDE_VALUE}, /* no limit */ { -1, 0, "" } }; static bNodeSocketTemplate sh_node_texture_out[]= { |