diff options
author | Ton Roosendaal <ton@blender.org> | 2006-02-02 20:54:22 +0300 |
---|---|---|
committer | Ton Roosendaal <ton@blender.org> | 2006-02-02 20:54:22 +0300 |
commit | f493e8ed2e6af6d1ed4d37906ce445b914374f63 (patch) | |
tree | 66dce17b2d824624ffcd9134b8982c2eb5ef12c5 /source/blender/src/editnode.c | |
parent | ccbc32abed93fa47f1099f9893a59b8a901b4f56 (diff) |
features & fixes:
- Enabled Groups to execute in Compositor. They were ignored still.
Note; inside of groups nothing is cached, so a change of a group input
will recalculate it fully. This is needed because groups are linked
data (instances use same internal nodes).
- Made Composit node "Viewer" display correctly input for images with
1/2/3/4 channels.
- Added pass rendering, tested now with only regular Materials. For
Material nodes this is quite more complex... since they cannot be
easily separated in passes (each Material does a full shade)
In this commit all pass render is disabled though, will continue work on
that later.
Sneak preview: http://www.blender.org/bf/rt.jpg (temporal image)
- What did remain is the 'Normal' pass output. Normal works very nice for
relighting effects. Use the "Normal Node" to define where more or less
light should be. (Use "Value Map" node to tweak influence of the
Normal node 'dot' output.)
- EVIL bug fix: I've spend almost a day finding it... when combining AO and
mirror render, the event queue was totally screwing up... two things not
related at all!
Found out error was in ray-mirror code, which was using partially
uninitialized 'ShadeInput' data to pass on to render code.
- Another fix; made sure that while thread render, the threads don't get
events, only the main program will do. Might fix issues reported by
people on linux/windows.
Diffstat (limited to 'source/blender/src/editnode.c')
-rw-r--r-- | source/blender/src/editnode.c | 30 |
1 files changed, 18 insertions, 12 deletions
diff --git a/source/blender/src/editnode.c b/source/blender/src/editnode.c index c192d801b65..19036c64d14 100644 --- a/source/blender/src/editnode.c +++ b/source/blender/src/editnode.c @@ -194,6 +194,18 @@ static void load_node_image(char *str) /* called from fileselect */ } } +static bNode *snode_get_editgroup(SpaceNode *snode) +{ + bNode *gnode; + + /* get the groupnode */ + for(gnode= snode->nodetree->nodes.first; gnode; gnode= gnode->next) + if(gnode->flag & NODE_GROUP_EDIT) + break; + return gnode; +} + + static void composit_node_event(SpaceNode *snode, short event) { @@ -219,7 +231,12 @@ static void composit_node_event(SpaceNode *snode, short event) /* B_NODE_EXEC */ { bNode *node= BLI_findlink(&snode->edittree->nodes, event-B_NODE_EXEC); - if(node) NodeTagChanged(snode->edittree, node); + if(node) { + NodeTagChanged(snode->edittree, node); + node= snode_get_editgroup(snode); + if(node) + NodeTagChanged(snode->nodetree, node); + } snode_handle_recalc(snode); } } @@ -385,17 +402,6 @@ static void node_set_active(SpaceNode *snode, bNode *node) } } -static bNode *snode_get_editgroup(SpaceNode *snode) -{ - bNode *gnode; - - /* get the groupnode */ - for(gnode= snode->nodetree->nodes.first; gnode; gnode= gnode->next) - if(gnode->flag & NODE_GROUP_EDIT) - break; - return gnode; -} - static void snode_make_group_editable(SpaceNode *snode, bNode *gnode) { bNode *node; |