[Bf-blender-cvs] SVN commit: /data/svn/bf-blender [13703] trunk/blender/source/blender: Simple but useful compositor feature:
Ton Roosendaal
ton at blender.org
Fri Feb 15 16:20:52 CET 2008
Revision: 13703
http://projects.blender.org/plugins/scmsvn/viewcvs.php?view=rev&root=bf-blender&revision=13703
Author: ton
Date: 2008-02-15 16:20:50 +0100 (Fri, 15 Feb 2008)
Log Message:
-----------
Simple but useful compositor feature:
CTRL+click on node will not only select it, but also connect the active
viewer to the top output of the node.
To evaluate: make viewing option to have this as a default on select.
Could work nice for collapsed nodes.
Modified Paths:
--------------
trunk/blender/source/blender/include/BSE_node.h
trunk/blender/source/blender/src/editnode.c
trunk/blender/source/blender/src/header_node.c
Modified: trunk/blender/source/blender/include/BSE_node.h
===================================================================
--- trunk/blender/source/blender/include/BSE_node.h 2008-02-15 14:56:56 UTC (rev 13702)
+++ trunk/blender/source/blender/include/BSE_node.h 2008-02-15 15:20:50 UTC (rev 13703)
@@ -76,6 +76,7 @@
void node_read_fullsamplelayers(struct SpaceNode *snode);
void clear_scene_in_nodes(struct Scene *sce);
void node_make_link(struct SpaceNode *snode);
+void node_active_link_viewer(struct SpaceNode *snode);
void node_transform_ext(int mode, int unused);
void node_shader_default(struct Material *ma);
Modified: trunk/blender/source/blender/src/editnode.c
===================================================================
--- trunk/blender/source/blender/src/editnode.c 2008-02-15 14:56:56 UTC (rev 13702)
+++ trunk/blender/source/blender/src/editnode.c 2008-02-15 15:20:50 UTC (rev 13703)
@@ -1316,7 +1316,48 @@
return 0;
}
+static void node_link_viewer(SpaceNode *snode, bNode *tonode)
+{
+ bNode *node;
+ /* context check */
+ if(tonode==NULL || tonode->outputs.first==NULL)
+ return;
+ if( ELEM(tonode->type, CMP_NODE_VIEWER, CMP_NODE_SPLITVIEWER))
+ return;
+
+ /* get viewer */
+ for(node= snode->edittree->nodes.first; node; node= node->next)
+ if( ELEM(node->type, CMP_NODE_VIEWER, CMP_NODE_SPLITVIEWER))
+ if(node->flag & NODE_DO_OUTPUT)
+ break;
+
+ if(node) {
+ bNodeLink *link;
+
+ /* get link to viewer */
+ for(link= snode->edittree->links.first; link; link= link->next)
+ if(link->tonode==node)
+ break;
+
+ if(link) {
+ link->fromnode= tonode;
+ link->fromsock= tonode->outputs.first;
+ NodeTagChanged(snode->edittree, node);
+
+ snode_handle_recalc(snode);
+ }
+ }
+}
+
+
+void node_active_link_viewer(SpaceNode *snode)
+{
+ bNode *node= editnode_get_active(snode->edittree);
+ if(node)
+ node_link_viewer(snode, node);
+}
+
/* return 0: nothing done */
static int node_mouse_select(SpaceNode *snode, unsigned short event)
{
@@ -1358,6 +1399,10 @@
node_set_active(snode, node);
+ /* viewer linking */
+ if(G.qual & LR_CTRLKEY)
+ node_link_viewer(snode, node);
+
/* not so nice (no event), but function below delays redraw otherwise */
force_draw(0);
Modified: trunk/blender/source/blender/src/header_node.c
===================================================================
--- trunk/blender/source/blender/src/header_node.c 2008-02-15 14:56:56 UTC (rev 13702)
+++ trunk/blender/source/blender/src/header_node.c 2008-02-15 15:20:50 UTC (rev 13703)
@@ -545,6 +545,9 @@
case 13: /* read saved full sample layers */
node_read_fullsamplelayers(snode);
break;
+ case 14: /* connect viewer */
+ node_active_link_viewer(snode);
+ break;
}
@@ -590,6 +593,12 @@
uiDefIconTextBut(block, BUTM, 1, ICON_BLANK1, "Execute Composite|E", 0, yco-=20, menuwidth, 19, NULL, 0.0, 0.0, 1, 10, "");
uiDefIconTextBut(block, BUTM, 1, ICON_BLANK1, "Read Saved Render Results|R", 0, yco-=20, menuwidth, 19, NULL, 0.0, 0.0, 1, 8, "");
uiDefIconTextBut(block, BUTM, 1, ICON_BLANK1, "Read Saved Full Sample Results|R", 0, yco-=20, menuwidth, 19, NULL, 0.0, 0.0, 1, 13, "");
+
+ uiDefBut(block, SEPR, 0, "", 0, yco-=6, menuwidth, 6, NULL, 0.0, 0.0, 0, 0, "");
+
+ uiDefIconTextBut(block, BUTM, 1, ICON_BLANK1, "Connect Node to Viewer|Ctrl LMB", 0, yco-=20, menuwidth, 19, NULL, 0.0, 0.0, 1, 14, "");
+
+ uiDefBut(block, SEPR, 0, "", 0, yco-=6, menuwidth, 6, NULL, 0.0, 0.0, 0, 0, "");
}
uiDefIconTextBut(block, BUTM, 1, ICON_BLANK1, "Show Cyclic Dependencies|C", 0, yco-=20, menuwidth, 19, NULL, 0.0, 0.0, 1, 9, "");
More information about the Bf-blender-cvs
mailing list