forked from bartvdbraak/blender
Compositing goodie: ESC now works to stop, but it will finish the node it
was working on.
This commit is contained in:
parent
0bc3e9639b
commit
973b442075
@ -1878,7 +1878,7 @@ static int setExecutableNodes(bNodeTree *ntree, ThreadData *thd)
|
||||
}
|
||||
}
|
||||
totnode++;
|
||||
printf("node needs exec %s\n", node->name);
|
||||
// printf("node needs exec %s\n", node->name);
|
||||
|
||||
/* tag for getExecutableNode() */
|
||||
node->exec= 0;
|
||||
@ -1970,8 +1970,14 @@ void ntreeCompositExecTree(bNodeTree *ntree, RenderData *rd, int do_preview)
|
||||
else
|
||||
PIL_sleep_ms(50);
|
||||
|
||||
/* check for ready ones, and if we need to continue */
|
||||
rendering= 0;
|
||||
/* test for ESC */
|
||||
if(ntree->test_break && ntree->test_break()) {
|
||||
for(node= ntree->nodes.first; node; node= node->next)
|
||||
node->exec |= NODE_READY;
|
||||
}
|
||||
|
||||
/* check for ready ones, and if we need to continue */
|
||||
for(node= ntree->nodes.first; node; node= node->next) {
|
||||
if(node->exec & NODE_READY) {
|
||||
if((node->exec & NODE_FINISHED)==0) {
|
||||
|
@ -167,7 +167,7 @@ typedef struct bNodeTree {
|
||||
/* callbacks */
|
||||
void (*timecursor)(int nr);
|
||||
void (*stats_draw)(char *str);
|
||||
|
||||
int (*test_break)(void);
|
||||
} bNodeTree;
|
||||
|
||||
/* ntree->type, index */
|
||||
|
@ -147,10 +147,13 @@ static void snode_handle_recalc(SpaceNode *snode)
|
||||
else if(snode->treetype==NTREE_COMPOSIT) {
|
||||
if(G.scene->use_nodes) {
|
||||
snode->nodetree->timecursor= set_timecursor;
|
||||
|
||||
G.afbreek= 0;
|
||||
snode->nodetree->test_break= blender_test_break;
|
||||
|
||||
ntreeCompositExecTree(snode->nodetree, &G.scene->r, 1); /* 1 is do_previews */
|
||||
|
||||
snode->nodetree->timecursor= NULL;
|
||||
snode->nodetree->test_break= NULL;
|
||||
waitcursor(0);
|
||||
|
||||
allqueue(REDRAWNODE, 1);
|
||||
|
Loading…
Reference in New Issue
Block a user