diff options
author | Peter Schlaile <peter@schlaile.de> | 2007-11-18 20:39:30 +0300 |
---|---|---|
committer | Peter Schlaile <peter@schlaile.de> | 2007-11-18 20:39:30 +0300 |
commit | dc6ac56d318ad9f2952a1d91dba13f1bd723768a (patch) | |
tree | 9ac90aea3a0bacea065a4922ce106f1252120971 /source/blender/makesdna | |
parent | 6d5396fc65fe81f0d999d12df6b64156358b1e60 (diff) |
General cleanup in sequencer:
- Seperated StripData into
StripData
TStripData
where StripData holds only image-filenames and TStripData holds
the working information needed for ImBuf caching.
=> Large drop in memory usage, if you used a lot of movie and meta strips.
=> Fixed bugs in "duplicate" on the way (imbufs where copied around without
taking reference counting seriously...)
=> Code is much cleaner now
- Added defines for TStripData->ok
Finally figured out, what the magic values ment and named them properly :)
- Got rid of Sequence->curelem.
Reason: very bad idea(tm) for multi threading with more than one render
thread. Still not there, but this was a real show stopper on the way.
Diffstat (limited to 'source/blender/makesdna')
-rw-r--r-- | source/blender/makesdna/DNA_sequence_types.h | 15 |
1 files changed, 11 insertions, 4 deletions
diff --git a/source/blender/makesdna/DNA_sequence_types.h b/source/blender/makesdna/DNA_sequence_types.h index 839d804fbea..bc574228cca 100644 --- a/source/blender/makesdna/DNA_sequence_types.h +++ b/source/blender/makesdna/DNA_sequence_types.h @@ -46,12 +46,15 @@ struct Scene; typedef struct StripElem { char name[80]; +} StripElem; + +typedef struct TStripElem { struct ImBuf *ibuf; - struct StripElem *se1, *se2, *se3; + struct TStripElem *se1, *se2, *se3; short ok; short pad; int nr; -} StripElem; +} TStripElem; typedef struct Strip { struct Strip *next, *prev; @@ -59,6 +62,7 @@ typedef struct Strip { StripElem *stripdata; char dir[160]; int orx, ory; + TStripElem *tstripdata; } Strip; @@ -87,7 +91,6 @@ typedef struct PluginSeq { /* WATCH IT: first part identical to ID (for use in ipo's) */ typedef struct Sequence { - struct Sequence *next, *prev; void *tmp; /* tmp var for copying, and tagging for linked selection */ void *lib; /* needed (to be like ipo), else it will raise libdata warnings, this should never be used */ @@ -104,7 +107,8 @@ typedef struct Sequence { int sfra; /* starting frame according to the timeline of the scene. */ Strip *strip; - StripElem *curelem; /* reference the current frame - value from give_stripelem */ + int pad2; + int pad3; struct Ipo *ipo; struct Scene *scene; @@ -234,6 +238,9 @@ typedef struct SpeedControlVars { #define SEQ_COLOR 28 #define SEQ_SPEED 29 +#define STRIPELEM_FAILED 0 +#define STRIPELEM_OK 1 +#define STRIPELEM_META 2 #endif |