Fix wrong display of movie clip cache with mask overlay enabled
authorSergey Sharybin <sergey.vfx@gmail.com>
Fri, 20 Dec 2013 16:16:53 +0000 (22:16 +0600)
committerSergey Sharybin <sergey.vfx@gmail.com>
Fri, 20 Dec 2013 16:17:43 +0000 (22:17 +0600)
source/blender/editors/space_clip/clip_draw.c
source/blender/editors/space_clip/clip_intern.h
source/blender/editors/space_clip/space_clip.c

index 796071639131faa25ba934daa34ff8af221eb3a5..c029ced5688fdafe65db4231821c29fa8cfc6abb 100644 (file)
@@ -180,6 +180,7 @@ static void draw_movieclip_cache(SpaceClip *sc, ARegion *ar, MovieClip *clip, Sc
        MovieTrackingReconstruction *reconstruction = BKE_tracking_get_active_reconstruction(tracking);
 
        glEnable(GL_BLEND);
+       glBlendFunc(GL_SRC_ALPHA, GL_ONE_MINUS_SRC_ALPHA);
 
        /* cache background */
        glColor4ub(128, 128, 255, 64);
@@ -1799,6 +1800,14 @@ void clip_draw_main(const bContext *C, SpaceClip *sc, ARegion *ar)
        draw_movieclip_notes(sc, ar);
 }
 
+void clip_draw_cache_and_notes(const bContext *C, SpaceClip *sc, ARegion *ar)
+{
+       Scene *scene = CTX_data_scene(C);
+       MovieClip *clip = ED_space_clip_get_clip(sc);
+       draw_movieclip_cache(sc, ar, clip, scene);
+       draw_movieclip_notes(sc, ar);
+}
+
 /* draw grease pencil */
 void clip_draw_grease_pencil(bContext *C, int onlyv2d)
 {
index 513014a2d0defc5de5df5141c06136b391777276..af9d8f9713890c0a00c4755fe864a0ba8a276c86 100644 (file)
@@ -73,6 +73,7 @@ void CLIP_OT_dopesheet_view_all(struct wmOperatorType *ot);
 void clip_draw_main(const struct bContext *C, struct SpaceClip *sc, struct ARegion *ar);
 void clip_draw_grease_pencil(struct bContext *C, int onlyv2d);
 void clip_draw_curfra_label(const int framenr, const float x, const float y);
+void clip_draw_cache_and_notes(const bContext *C, SpaceClip *sc, ARegion *ar);
 
 /* clip_editor.c */
 void clip_start_prefetch_job(const struct bContext *C);
index adc902bf4bac4eb60464a9bf475e141defc33b7b..2cabb595fb77c8378aae3d97cec4cd42b5547406 100644 (file)
@@ -1214,6 +1214,8 @@ static void clip_main_area_draw(const bContext *C, ARegion *ar)
                glPopMatrix();
        }
 
+       clip_draw_cache_and_notes(C, sc, ar);
+
        if (sc->flag & SC_SHOW_GPENCIL) {
                /* Grease Pencil */
                clip_draw_grease_pencil((bContext *)C, true);