diff options
author | Richard Antalik <richardantalik@gmail.com> | 2019-04-29 00:13:41 +0300 |
---|---|---|
committer | Richard Antalik <richardantalik@gmail.com> | 2019-04-29 00:50:48 +0300 |
commit | 337cac760ba9d198fc45459f4274a94a87558528 (patch) | |
tree | d9f1c3cb901547ef4434c38c2a390795d0fff8f1 /source/blender/blenloader | |
parent | 1b65ec0a9b9be2aef7db88be3c6deaaa135ab382 (diff) |
VSE: Cache rewrite
This patch implements new cache system.
Aim is to give user more control over cache, so it can be maximally
utilized. This is done through sequencer timeline side panel
in category proxy & cache.
Cached images are also visualized in timeline, controled by
sequencer timeline view->cache menu
Functional changes:
- NOT use IMB_moviecache API
- refactor names of cached image types
- each scene owns 1 sequencer cache
- merge preprocess cache into per-sequencer cache
- cache links images rendered per frame in order as they are created
- add cache content visualization tool
- add RNA properties to control the cache
More info can be found in design notes in blenkernel/intern/seqcache.c
and in https://developer.blender.org/D4443
Reviewed By: brecht
Differential Revision: https://developer.blender.org/D4443
Diffstat (limited to 'source/blender/blenloader')
-rw-r--r-- | source/blender/blenloader/intern/readfile.c | 1 | ||||
-rw-r--r-- | source/blender/blenloader/intern/versioning_280.c | 18 |
2 files changed, 18 insertions, 1 deletions
diff --git a/source/blender/blenloader/intern/readfile.c b/source/blender/blenloader/intern/readfile.c index 6646a46be56..bb766d7c6db 100644 --- a/source/blender/blenloader/intern/readfile.c +++ b/source/blender/blenloader/intern/readfile.c @@ -6735,6 +6735,7 @@ static void direct_link_scene(FileData *fd, Scene *sce) ed = sce->ed = newdataadr(fd, sce->ed); ed->act_seq = newdataadr(fd, ed->act_seq); + ed->cache = NULL; /* recursive link sequences, lb will be correctly initialized */ link_recurs_seq(fd, &ed->seqbase); diff --git a/source/blender/blenloader/intern/versioning_280.c b/source/blender/blenloader/intern/versioning_280.c index 73109cd9a6b..1359684e221 100644 --- a/source/blender/blenloader/intern/versioning_280.c +++ b/source/blender/blenloader/intern/versioning_280.c @@ -1077,6 +1077,14 @@ static void do_versions_seq_unique_name_all_strips(Scene *sce, ListBase *seqbase } } +static void do_versions_seq_set_cache_defaults(Editing *ed) +{ + ed->cache_flag = SEQ_CACHE_STORE_FINAL_OUT; + ed->cache_flag |= SEQ_CACHE_VIEW_FINAL_OUT; + ed->cache_flag |= SEQ_CACHE_VIEW_ENABLE; + ed->recycle_max_cost = 10.0f; +} + void blo_do_versions_280(FileData *fd, Library *UNUSED(lib), Main *bmain) { bool use_collection_compat_28 = true; @@ -3242,7 +3250,7 @@ void blo_do_versions_280(FileData *fd, Library *UNUSED(lib), Main *bmain) } } - { + if (!MAIN_VERSION_ATLEAST(bmain, 280, 60)) { if (!DNA_struct_elem_find(fd->filesdna, "bSplineIKConstraint", "short", "yScaleMode")) { for (Object *ob = bmain->objects.first; ob; ob = ob->id.next) { if (ob->pose) { @@ -3300,6 +3308,14 @@ void blo_do_versions_280(FileData *fd, Library *UNUSED(lib), Main *bmain) BKE_animdata_main_cb(bmain, do_version_bbone_scale_animdata_cb, NULL); } + for (Scene *sce = bmain->scenes.first; sce != NULL; sce = sce->id.next) { + if (sce->ed != NULL) { + do_versions_seq_set_cache_defaults(sce->ed); + } + } + } + + { /* Versioning code until next subversion bump goes here. */ } } |