diff options
author | Richard Antalik <richardantalik@gmail.com> | 2021-03-16 19:59:30 +0300 |
---|---|---|
committer | Richard Antalik <richardantalik@gmail.com> | 2021-03-16 20:50:32 +0300 |
commit | 91561629cd0bd622c9d1722701ab88c9e77be660 (patch) | |
tree | 30a312001766759166fa8fa25e18334d917500f3 /source/blender/blenloader | |
parent | 0449da54602b2e9a1ea58d336f190c3919f3f27a (diff) |
VSE: Simplify proxy settings
- Remove Full Render size from VSE preview size. Use just 100% instead.
- Add Use Proxies checkbox to control whether proxies are used globally
- Move preview size to top so it is most prominent
- Set default to 100% preview size and use proxies
Reviewed By: sergey, fsiddi
Differential Revision: https://developer.blender.org/D10362
Diffstat (limited to 'source/blender/blenloader')
-rw-r--r-- | source/blender/blenloader/intern/versioning_290.c | 55 | ||||
-rw-r--r-- | source/blender/blenloader/intern/versioning_defaults.c | 3 |
2 files changed, 39 insertions, 19 deletions
diff --git a/source/blender/blenloader/intern/versioning_290.c b/source/blender/blenloader/intern/versioning_290.c index 06bafb20c35..a761d348ffd 100644 --- a/source/blender/blenloader/intern/versioning_290.c +++ b/source/blender/blenloader/intern/versioning_290.c @@ -62,6 +62,7 @@ #include "BKE_multires.h" #include "BKE_node.h" +#include "IMB_imbuf.h" #include "MEM_guardedalloc.h" #include "RNA_access.h" @@ -101,6 +102,15 @@ static eSpaceSeq_Proxy_RenderSize get_sequencer_render_size(Main *bmain) return render_size; } +static bool can_use_proxy(Sequence *seq, int psize) +{ + if (seq->strip->proxy == NULL) { + return false; + } + short size_flags = seq->strip->proxy->build_size_flags; + return (seq->flag & SEQ_USE_PROXY) != 0 && psize != IMB_PROXY_NONE && (size_flags & psize) != 0; +} + /* image_size is width or height depending what RNA property is converted - X or Y. */ static void seq_convert_transform_animation(const Scene *scene, const char *path, @@ -149,7 +159,7 @@ static void seq_convert_transform_crop(const Scene *scene, image_size_x = s_elem->orig_width; image_size_y = s_elem->orig_height; - if (SEQ_can_use_proxy(seq, SEQ_rendersize_to_proxysize(render_size))) { + if (can_use_proxy(seq, SEQ_rendersize_to_proxysize(render_size))) { image_size_x /= SEQ_rendersize_to_scale_factor(render_size); image_size_y /= SEQ_rendersize_to_scale_factor(render_size); } @@ -282,7 +292,7 @@ static void seq_convert_transform_crop_2(const Scene *scene, int image_size_x = s_elem->orig_width; int image_size_y = s_elem->orig_height; - if (SEQ_can_use_proxy(seq, SEQ_rendersize_to_proxysize(render_size))) { + if (can_use_proxy(seq, SEQ_rendersize_to_proxysize(render_size))) { image_size_x /= SEQ_rendersize_to_scale_factor(render_size); image_size_y /= SEQ_rendersize_to_scale_factor(render_size); } @@ -1841,6 +1851,30 @@ void blo_do_versions_290(FileData *fd, Library *UNUSED(lib), Main *bmain) } } + if (!MAIN_VERSION_ATLEAST(bmain, 293, 12)) { + for (bScreen *screen = bmain->screens.first; screen; screen = screen->id.next) { + LISTBASE_FOREACH (ScrArea *, area, &screen->areabase) { + LISTBASE_FOREACH (SpaceLink *, sl, &area->spacedata) { + switch (sl->spacetype) { + case SPACE_SEQ: { + SpaceSeq *sseq = (SpaceSeq *)sl; + if (ELEM(sseq->render_size, + SEQ_RENDER_SIZE_PROXY_100, + SEQ_RENDER_SIZE_PROXY_75, + SEQ_RENDER_SIZE_PROXY_50, + SEQ_RENDER_SIZE_PROXY_25)) { + sseq->flag |= SEQ_USE_PROXIES; + } + if (sseq->render_size == SEQ_RENDER_SIZE_FULL) { + sseq->render_size = SEQ_RENDER_SIZE_PROXY_100; + } + } + } + } + } + } + } + /** * Versioning code until next subversion bump goes here. * @@ -1852,22 +1886,5 @@ void blo_do_versions_290(FileData *fd, Library *UNUSED(lib), Main *bmain) */ { /* Keep this block, even when empty. */ - - LISTBASE_FOREACH (bScreen *, screen, &bmain->screens) { - LISTBASE_FOREACH (ScrArea *, area, &screen->areabase) { - LISTBASE_FOREACH (SpaceLink *, sl, &area->spacedata) { - if (sl->spacetype == SPACE_SPREADSHEET) { - ListBase *regionbase = (sl == area->spacedata.first) ? &area->regionbase : - &sl->regionbase; - ARegion *new_footer = do_versions_add_region_if_not_found( - regionbase, RGN_TYPE_FOOTER, "footer for spreadsheet", RGN_TYPE_HEADER); - if (new_footer != NULL) { - new_footer->alignment = (U.uiflag & USER_HEADER_BOTTOM) ? RGN_ALIGN_TOP : - RGN_ALIGN_BOTTOM; - } - } - } - } - } } } diff --git a/source/blender/blenloader/intern/versioning_defaults.c b/source/blender/blenloader/intern/versioning_defaults.c index 52efeb1e822..10b24532014 100644 --- a/source/blender/blenloader/intern/versioning_defaults.c +++ b/source/blender/blenloader/intern/versioning_defaults.c @@ -184,6 +184,9 @@ static void blo_update_defaults_screen(bScreen *screen, SpaceSeq *seq = area->spacedata.first; seq->flag |= SEQ_SHOW_MARKERS | SEQ_SHOW_FCURVES | SEQ_ZOOM_TO_FIT | SEQ_SHOW_STRIP_OVERLAY | SEQ_SHOW_STRIP_SOURCE | SEQ_SHOW_STRIP_NAME | SEQ_SHOW_STRIP_DURATION; + + seq->render_size = SEQ_RENDER_SIZE_PROXY_100; + seq->flag |= SEQ_USE_PROXIES; } else if (area->spacetype == SPACE_TEXT) { /* Show syntax and line numbers in Script workspace text editor. */ |