From 7975c0d35ac51c915140c6ebd78c981f9e37549b Mon Sep 17 00:00:00 2001 From: Campbell Barton Date: Mon, 16 Feb 2015 13:19:22 +1100 Subject: cleanup: split VSE view-size into own function --- .../editors/space_sequencer/sequencer_draw.c | 61 ++++++++++++---------- 1 file changed, 32 insertions(+), 29 deletions(-) (limited to 'source/blender/editors') diff --git a/source/blender/editors/space_sequencer/sequencer_draw.c b/source/blender/editors/space_sequencer/sequencer_draw.c index 93eb5a1db3d..b63c46cba01 100644 --- a/source/blender/editors/space_sequencer/sequencer_draw.c +++ b/source/blender/editors/space_sequencer/sequencer_draw.c @@ -952,6 +952,32 @@ static ImBuf *sequencer_make_scope(Scene *scene, ImBuf *ibuf, ImBuf *(*make_scop return scope; } +static void sequencer_display_size(Scene *scene, SpaceSeq *sseq, float r_viewrect[2]) +{ + float render_size, proxy_size; + + if (sseq->render_size == SEQ_PROXY_RENDER_SIZE_SCENE) { + render_size = (float)scene->r.size / 100.0f; + proxy_size = 1.0f; + } + else { + render_size = (float)sseq->render_size / 100.0f; + proxy_size = render_size; + } + + r_viewrect[0] = (render_size * (float)scene->r.xsch); + r_viewrect[1] = (render_size * (float)scene->r.ysch); + + /* rectx = viewrectx + 0.5f; */ /* UNUSED */ + /* recty = viewrecty + 0.5f; */ /* UNUSED */ + + if (sseq->mainb == SEQ_DRAW_IMG_IMBUF) { + r_viewrect[0] *= scene->r.xasp / scene->r.yasp; + r_viewrect[0] /= proxy_size; + r_viewrect[1] /= proxy_size; + } +} + void draw_image_seq(const bContext *C, Scene *scene, ARegion *ar, SpaceSeq *sseq, int cfra, int frame_ofs, bool draw_overlay, bool draw_backdrop) { struct Main *bmain = CTX_data_main(C); @@ -959,9 +985,7 @@ void draw_image_seq(const bContext *C, Scene *scene, ARegion *ar, SpaceSeq *sseq struct ImBuf *scope = NULL; struct View2D *v2d = &ar->v2d; /* int rectx, recty; */ /* UNUSED */ - float viewrectx, viewrecty; - float render_size; - float proxy_size; + float viewrect[2]; float col[3]; GLuint texid; GLuint last_texid; @@ -1007,28 +1031,7 @@ void draw_image_seq(const bContext *C, Scene *scene, ARegion *ar, SpaceSeq *sseq if (ibuf->rect == NULL && ibuf->rect_float == NULL) return; - - if (sseq->render_size == SEQ_PROXY_RENDER_SIZE_SCENE) { - render_size = scene->r.size; - proxy_size = 100.0f; - } - else { - render_size = sseq->render_size; - proxy_size = render_size; - } - - viewrectx = (render_size * (float)scene->r.xsch) / 100.0f; - viewrecty = (render_size * (float)scene->r.ysch) / 100.0f; - - /* rectx = viewrectx + 0.5f; */ /* UNUSED */ - /* recty = viewrecty + 0.5f; */ /* UNUSED */ - - if (sseq->mainb == SEQ_DRAW_IMG_IMBUF) { - viewrectx *= scene->r.xasp / scene->r.yasp; - viewrectx /= proxy_size / 100.0f; - viewrecty /= proxy_size / 100.0f; - } - + sequencer_display_size(scene, sseq, viewrect); if (sseq->mainb != SEQ_DRAW_IMG_IMBUF || sseq->zebra != 0) { SequencerScopes *scopes = &sseq->scopes; @@ -1076,8 +1079,8 @@ void draw_image_seq(const bContext *C, Scene *scene, ARegion *ar, SpaceSeq *sseq /* future files may have new scopes we don't catch above */ if (scope) { scopes->reference_ibuf = ibuf; - viewrectx = scope->x; - viewrecty = scope->y; + viewrect[0] = scope->x; + viewrect[1] = scope->y; } else { scopes->reference_ibuf = NULL; @@ -1088,7 +1091,7 @@ void draw_image_seq(const bContext *C, Scene *scene, ARegion *ar, SpaceSeq *sseq glColor4ub(255, 255, 255, 255); if (!draw_backdrop) { - UI_view2d_totRect_set(v2d, viewrectx + 0.5f, viewrecty + 0.5f); + UI_view2d_totRect_set(v2d, viewrect[0] + 0.5f, viewrect[1] + 0.5f); UI_view2d_curRect_validate(v2d); /* setting up the view - actual drawing starts here */ @@ -1227,7 +1230,7 @@ void draw_image_seq(const bContext *C, Scene *scene, ARegion *ar, SpaceSeq *sseq } else if (draw_backdrop) { float aspect = BLI_rcti_size_x(&ar->winrct) / (float)BLI_rcti_size_y(&ar->winrct); - float image_aspect = viewrectx / viewrecty; + float image_aspect = viewrect[0] / viewrect[1]; float imagex, imagey; if (aspect >= image_aspect) { -- cgit v1.2.3