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/include | |
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/include')
-rw-r--r-- | source/blender/include/BSE_sequence.h | 12 |
1 files changed, 8 insertions, 4 deletions
diff --git a/source/blender/include/BSE_sequence.h b/source/blender/include/BSE_sequence.h index ff79d417537..fdf584b38f4 100644 --- a/source/blender/include/BSE_sequence.h +++ b/source/blender/include/BSE_sequence.h @@ -37,6 +37,7 @@ struct PluginSeq; struct StripElem; +struct TStripElem; struct Strip; struct Sequence; struct ListBase; @@ -44,9 +45,9 @@ struct Editing; struct ImBuf; struct Scene; -void free_stripdata(int len, struct StripElem *se); +void free_tstripdata(int len, struct TStripElem *se); void free_strip(struct Strip *strip); -void new_stripdata(struct Sequence *seq); +void new_tstripdata(struct Sequence *seq); void free_sequence(struct Sequence *seq); void build_seqar(struct ListBase *seqbase, struct Sequence ***seqar, int *totseq); void free_editing(struct Editing *ed); @@ -57,17 +58,20 @@ void clear_scene_in_allseqs(struct Scene *sce); int evaluate_seq_frame(int cfra); struct StripElem *give_stripelem(struct Sequence *seq, int cfra); +struct TStripElem *give_tstripelem(struct Sequence *seq, int cfra); void set_meta_stripdata(struct Sequence *seqm); struct ImBuf *give_ibuf_seq(int rectx, int recty, int cfra, int chansel); /* chansel: render this channel. Default=0 (renders end result)*/ +struct ImBuf *give_ibuf_seq_direct(int rectx, int recty, int cfra, + struct Sequence * seq); /* sequence prefetch API */ void seq_start_threads(); void seq_stop_threads(); void give_ibuf_prefetch_request(int rectx, int recty, int cfra, int chanshown); void seq_wait_for_prefetch_ready(); -struct ImBuf * give_ibuf_threaded(int rectx, int recty, int cfra, - int chanshown); +struct ImBuf * give_ibuf_seq_threaded(int rectx, int recty, int cfra, + int chanshown); void free_imbuf_seq_except(int cfra); |