diff options
author | Ton Roosendaal <ton@blender.org> | 2006-01-28 18:21:04 +0300 |
---|---|---|
committer | Ton Roosendaal <ton@blender.org> | 2006-01-28 18:21:04 +0300 |
commit | 45c7b2c5c2bc20296a581e1b6a1cb3908f11732f (patch) | |
tree | 3c84b86ee52f12f5ae967791182ce71e003abee4 /source/blender/makesdna | |
parent | 80bd3a1e9897044334d3384be27b52efc6541fef (diff) |
Orange: made Compositing more interactive. It now has an event based
system tracking changes in nodes, making sure only these nodes and
the ones that depend, are executed.
Further the 'time cursor' now counts down to indicate which node is being
done.
Also: you now can disable the "use nodes" button in the header, edit all
changes, and when you press that button again it nicely executes the
changes.
Still on the todo:
- make compositing threaded
- find a way to nicely exit compositing on input events... so the UI
keeps being responsive
- idea; a 'percentage' menu in header to enforce calculations on smaller
images temporally
Diffstat (limited to 'source/blender/makesdna')
-rw-r--r-- | source/blender/makesdna/DNA_node_types.h | 10 |
1 files changed, 7 insertions, 3 deletions
diff --git a/source/blender/makesdna/DNA_node_types.h b/source/blender/makesdna/DNA_node_types.h index 700de9531da..853857f6915 100644 --- a/source/blender/makesdna/DNA_node_types.h +++ b/source/blender/makesdna/DNA_node_types.h @@ -51,7 +51,7 @@ typedef struct bNodeStack { short hasinput; /* when input has link, tagged before executing */ short hasoutput; /* when output is linked, tagged before executing */ short datatype; /* type of data pointer */ - short pad1; + short pad; } bNodeStack; /* ns->datatype, shadetree only */ @@ -109,7 +109,7 @@ typedef struct bNode { short done, level; /* both for dependency and sorting */ short lasty, menunr; /* lasty: check preview render status, menunr: browse ID blocks */ short stack_index; /* for groupnode, offset in global caller stack */ - short pad; + short nr; /* number of this node in list, used for exec events */ ListBase inputs, outputs; struct ID *id; /* optional link to libdata */ @@ -119,7 +119,8 @@ typedef struct bNode { float locx, locy; /* root offset for drawing */ float width, miniwidth; short custom1, custom2; /* to be abused for buttons */ - int pad1; + + short need_exec, pad1; /* need_exec is set to optimize execution */ rctf totr; /* entire boundbox */ rctf butr; /* optional buttons area */ @@ -164,6 +165,9 @@ typedef struct bNodeTree { struct bNodeType **alltypes; /* type definitions, set on fileread, no read/write */ struct bNodeType *owntype; /* for groups or dynamic trees, no read/write */ + /* callbacks */ + void (*timecursor)(int nr); + } bNodeTree; /* ntree->type, index */ |