[Bf-blender-cvs] [a616730] gooseberry: Merge branch 'master' into gooseberry

Antony Riakiotakis noreply at git.blender.org
Wed Apr 22 19:39:21 CEST 2015


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);
  	}




More information about the Bf-blender-cvs mailing list