diff options
author | Richard Antalik <richardantalik@gmail.com> | 2021-06-16 01:29:17 +0300 |
---|---|---|
committer | Richard Antalik <richardantalik@gmail.com> | 2021-06-16 01:29:17 +0300 |
commit | 1a5fa2b319e06ebbd2666987aa11240a371dcc09 (patch) | |
tree | fa19d3c2f8b603e302b063a600e78f16733b5c5d /source/blender/sequencer/SEQ_sequencer.h | |
parent | 143a81ccceaf7d3abccc5a9dd4bb3520813dd222 (diff) |
VSE: Improve animation evaluation performance
Use lookup string callback function for `sequences_all` RNA property
`rna_SequenceEditor_sequences_all_lookup_string` using a GHash for faster lookups.
When names are changed or strips are added/removed the lookup is tagged invalid.
The next time the lookup is used it will rebuild it.
Reviewed By: sergey, jbakker
Differential Revision: https://developer.blender.org/D11544
Diffstat (limited to 'source/blender/sequencer/SEQ_sequencer.h')
-rw-r--r-- | source/blender/sequencer/SEQ_sequencer.h | 11 |
1 files changed, 11 insertions, 0 deletions
diff --git a/source/blender/sequencer/SEQ_sequencer.h b/source/blender/sequencer/SEQ_sequencer.h index ad0815892f7..fd4181a5a54 100644 --- a/source/blender/sequencer/SEQ_sequencer.h +++ b/source/blender/sequencer/SEQ_sequencer.h @@ -33,6 +33,7 @@ struct Editing; struct Scene; struct Sequence; struct SequencerToolSettings; +struct SequenceLookup; /* RNA enums, just to be more readable */ enum { @@ -79,6 +80,16 @@ void SEQ_sequence_base_dupli_recursive(const struct Scene *scene_src, int dupe_flag, const int flag); +/* Defined in sequence_lookup.c */ + +typedef enum eSequenceLookupTag { + SEQ_LOOKUP_TAG_INVALID = (1 << 0), +} eSequenceLookupTag; + +struct Sequence *SEQ_sequence_lookup_by_name(const struct Scene *scene, const char *key); +void SEQ_sequence_lookup_free(const struct Scene *scene); +void SEQ_sequence_lookup_tag(const struct Scene *scene, eSequenceLookupTag tag); + #ifdef __cplusplus } #endif |