Commit: a6167306a29d1acf1a36539604612c98a7051273
Author: Antony Riakiotakis
Date:   Wed Apr 22 19:34:37 2015 +0200
Branches: gooseberry
https://developer.blender.org/rBa6167306a29d1acf1a36539604612c98a7051273

Merge branch 'master' into gooseberry

Conflicts:
        source/blender/editors/interface/interface_handlers.c
        source/blender/editors/space_sequencer/sequencer_draw.c

===================================================================



===================================================================

diff --cc source/blender/editors/include/ED_screen.h
index e23f155,b7c261c..b22221b
--- a/source/blender/editors/include/ED_screen.h
+++ b/source/blender/editors/include/ED_screen.h
@@@ -66,10 -66,8 +66,11 @@@ void    ED_region_header_init(struct AR
  void    ED_region_header(const struct bContext *C, struct ARegion *ar);
  void    ED_region_toggle_hidden(struct bContext *C, struct ARegion *ar);
  void    ED_region_info_draw(struct ARegion *ar, const char *text, int block, 
float fill_color[4]);
+ void    ED_region_image_metadata_draw(struct ARegion *ar, struct ImBuf *ibuf, 
float zoomx, float zoomy);
  void    ED_region_grid_draw(struct ARegion *ar, float zoomx, float zoomy);
 +void    ED_region_draw_backdrop_view3d(const struct bContext *C, struct 
Object *camera, const float alpha,
 +                                       const float width, const float height, 
const float x, const float y,
 +                                       const float zoomx, const float zoomy, 
const bool draw_background);
  float ED_region_blend_factor(struct ARegion *ar);
  void  ED_region_visible_rect(struct ARegion *ar, struct rcti *rect);
  
diff --cc source/blender/editors/space_sequencer/sequencer_draw.c
index bd7b78b,abe2e86..a076068
--- a/source/blender/editors/space_sequencer/sequencer_draw.c
+++ b/source/blender/editors/space_sequencer/sequencer_draw.c
@@@ -999,7 -980,77 +999,77 @@@ void sequencer_display_size(Scene *scen
        }
  }
  
+ static void sequencer_draw_gpencil(const bContext *C)
+ {
+       /* draw grease-pencil (image aligned) */
+       ED_gpencil_draw_2dimage(C);
+ 
+       /* ortho at pixel level */
+       UI_view2d_view_restore(C);
+ 
+       /* draw grease-pencil (screen aligned) */
+       ED_gpencil_draw_view2d(C, 0);
+ }
+ 
+ /* draws content borders plus safety borders if needed */
+ static void sequencer_draw_borders(const SpaceSeq *sseq, const View2D *v2d, 
const Scene *scene)
+ {
+       float x1 = v2d->tot.xmin;
+       float y1 = v2d->tot.ymin;
+       float x2 = v2d->tot.xmax;
+       float y2 = v2d->tot.ymax;
+ 
+       /* border */
+       setlinestyle(3);
+ 
+       UI_ThemeColorBlendShade(TH_WIRE, TH_BACK, 1.0, 0);
+ 
+       glBegin(GL_LINE_LOOP);
+       glVertex2f(x1 - 0.5f, y1 - 0.5f);
+       glVertex2f(x1 - 0.5f, y2 + 0.5f);
+       glVertex2f(x2 + 0.5f, y2 + 0.5f);
+       glVertex2f(x2 + 0.5f, y1 - 0.5f);
+       glEnd();
+ 
+       /* safety border */
+       if (sseq->flag & SEQ_SHOW_SAFE_MARGINS) {
+               UI_draw_safe_areas(
+                       x1, x2, y1, y2,
+                       scene->safe_areas.title,
+                       scene->safe_areas.action);
+ 
+               if (sseq->flag & SEQ_SHOW_SAFE_CENTER) {
+                       UI_draw_safe_areas(
+                               x1, x2, y1, y2,
+                               scene->safe_areas.title_center,
+                               scene->safe_areas.action_center);
+               }
+       }
+ 
+       setlinestyle(0);
+ }
+ 
+ /* draws checkerboard background for transparent content */
+ static void sequencer_draw_background(const SpaceSeq *sseq, View2D *v2d, 
const float viewrect[2])
+ {
+       /* setting up the view */
+       UI_view2d_totRect_set(v2d, viewrect[0] + 0.5f, viewrect[1] + 0.5f);
+       UI_view2d_curRect_validate(v2d);
+       UI_view2d_view_ortho(v2d);
+ 
+       /* only draw alpha for main buffer */
+       if (sseq->mainb == SEQ_DRAW_IMG_IMBUF) {
+               if (sseq->flag & SEQ_USE_ALPHA) {
+                       glEnable(GL_BLEND);
+                       glBlendFunc(GL_SRC_ALPHA, GL_ONE_MINUS_SRC_ALPHA);
+ 
+                       fdrawcheckerboard(v2d->tot.xmin, v2d->tot.ymin, 
v2d->tot.xmax, v2d->tot.ymax);
+                       glColor4f(1.0, 1.0, 1.0, 1.0);
+               }
+       }
+ }
+ 
 -void draw_image_seq(const bContext *C, Scene *scene, ARegion *ar, SpaceSeq 
*sseq, int cfra, int frame_ofs, bool draw_overlay, bool draw_backdrop)
 +void draw_image_seq(const bContext *C, Scene *scene, ARegion *ar, SpaceSeq 
*sseq, int cfra, int frame_ofs, bool draw_overlay, bool draw_overdrop)
  {
        struct Main *bmain = CTX_data_main(C);
        struct ImBuf *ibuf = NULL;
@@@ -1115,28 -1179,10 +1198,28 @@@
                }
        }
  
 -      if (!draw_backdrop) {
 -              sequencer_draw_background(sseq, v2d, viewrect);
 +      /* without this colors can flicker from previous opengl state */
 +      glColor4ub(255, 255, 255, 255);
 +
 +      if (!draw_overdrop) {
 +              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 */
 +              UI_view2d_view_ortho(v2d);
 +              
 +              /* only draw alpha for main buffer */
 +              if (sseq->mainb == SEQ_DRAW_IMG_IMBUF) {
 +                      if (sseq->flag & SEQ_USE_ALPHA) {
 +                              glEnable(GL_BLEND);
 +                              glBlendFunc(GL_SRC_ALPHA, 
GL_ONE_MINUS_SRC_ALPHA);
 +                              
 +                              fdrawcheckerboard(v2d->tot.xmin, v2d->tot.ymin, 
v2d->tot.xmax, v2d->tot.ymax);
 +                              glColor4f(1.0, 1.0, 1.0, 1.0);
 +                      }
 +              }
        }
-       
+ 
        if (scope) {
                IMB_freeImBuf(ibuf);
                ibuf = scope;
@@@ -1284,59 -1351,21 +1367,21 @@@
  
        if (!scope)
                IMB_freeImBuf(ibuf);
-       
-       if (sseq->mainb == SEQ_DRAW_IMG_IMBUF) {
- 
-               float x1 = v2d->tot.xmin;
-               float y1 = v2d->tot.ymin;
-               float x2 = v2d->tot.xmax;
-               float y2 = v2d->tot.ymax;
- 
-               /* border */
-               setlinestyle(3);
- 
-               UI_ThemeColorBlendShade(TH_WIRE, TH_BACK, 1.0, 0);
  
-               glBegin(GL_LINE_LOOP);
-               glVertex2f(x1 - 0.5f, y1 - 0.5f);
-               glVertex2f(x1 - 0.5f, y2 + 0.5f);
-               glVertex2f(x2 + 0.5f, y2 + 0.5f);
-               glVertex2f(x2 + 0.5f, y1 - 0.5f);
-               glEnd();
- 
-               /* safety border */
-               if (sseq->flag & SEQ_SHOW_SAFE_MARGINS) {
-                       UI_draw_safe_areas(
-                               x1, x2, y1, y2,
-                               scene->safe_areas.title,
-                               scene->safe_areas.action);
- 
-                       if (sseq->flag & SEQ_SHOW_SAFE_CENTER) {
-                               UI_draw_safe_areas(
-                                       x1, x2, y1, y2,
-                                       scene->safe_areas.title_center,
-                                       scene->safe_areas.action_center);
-                       }
-               }
 -      if (draw_backdrop) {
++      if (draw_overdrop) {
+               return;
+       }
  
-               setlinestyle(0);
+       if (sseq->mainb == SEQ_DRAW_IMG_IMBUF) {
+               sequencer_draw_borders(sseq, v2d, scene);
        }
-       
-       if (sseq->flag & SEQ_SHOW_GPENCIL) {
-               if (is_imbuf) {
-                       /* draw grease-pencil (image aligned) */
-                       ED_gpencil_draw_2dimage(C);
-               }
+ 
+       if (draw_gpencil && is_imbuf) {
+               sequencer_draw_gpencil(C);
        }
-       
-       /* ortho at pixel level */
-       UI_view2d_view_restore(C);
-       
-       if (sseq->flag & SEQ_SHOW_GPENCIL) {
-               if (is_imbuf) {
-                       /* draw grease-pencil (screen aligned) */
-                       ED_gpencil_draw_view2d(C, 0);
-               }
+       else {
+               /* ortho at pixel level */
+               UI_view2d_view_restore(C);
        }

_______________________________________________
Bf-blender-cvs mailing list
Bf-blender-cvs@blender.org
http://lists.blender.org/mailman/listinfo/bf-blender-cvs

Reply via email to