[Bf-blender-cvs] SVN commit: /data/svn/bf-blender [53054] trunk/blender/source/blender/ editors: Fix region overlap drawing over render info text in image editor and 3d view .

Brecht Van Lommel brechtvanlommel at pandora.be
Sun Dec 16 10:37:18 CET 2012


Revision: 53054
          http://projects.blender.org/scm/viewvc.php?view=rev&root=bf-blender&revision=53054
Author:   blendix
Date:     2012-12-16 09:37:15 +0000 (Sun, 16 Dec 2012)
Log Message:
-----------
Fix region overlap drawing over render info text in image editor and 3d view.

Modified Paths:
--------------
    trunk/blender/source/blender/editors/include/ED_screen.h
    trunk/blender/source/blender/editors/screen/area.c
    trunk/blender/source/blender/editors/space_view3d/view3d_draw.c

Modified: trunk/blender/source/blender/editors/include/ED_screen.h
===================================================================
--- trunk/blender/source/blender/editors/include/ED_screen.h	2012-12-16 08:43:05 UTC (rev 53053)
+++ trunk/blender/source/blender/editors/include/ED_screen.h	2012-12-16 09:37:15 UTC (rev 53054)
@@ -67,7 +67,9 @@
 void    ED_region_info_draw(struct ARegion *ar, const char *text, int block, float alpha);
 void    ED_region_grid_draw(struct ARegion *ar, float zoomx, float zoomy);
 float	ED_region_blend_factor(struct ARegion *ar);
+int		ED_region_overlapping_offset(struct ARegion *ar);
 
+
 /* spaces */
 void    ED_spacetypes_init(void);
 void    ED_spacetypes_keymap(struct wmKeyConfig *keyconf);

Modified: trunk/blender/source/blender/editors/screen/area.c
===================================================================
--- trunk/blender/source/blender/editors/screen/area.c	2012-12-16 08:43:05 UTC (rev 53053)
+++ trunk/blender/source/blender/editors/screen/area.c	2012-12-16 09:37:15 UTC (rev 53054)
@@ -1852,7 +1852,7 @@
 
 	/* text */
 	UI_ThemeColor(TH_TEXT_HI);
-	BLF_position(fontid, 12, rect.ymin + 5, 0.0f);
+	BLF_position(fontid, 12 + ED_region_overlapping_offset(ar), rect.ymin + 5, 0.0f);
 	BLF_draw(fontid, text, BLF_DRAW_STR_DUMMY_MAX);
 }
 
@@ -1915,3 +1915,23 @@
 	}
 	glEnd();
 }
+
+/* checks overlapping region for labels, axes, icons */
+int ED_region_overlapping_offset(ARegion *ar)
+{
+	ARegion *arn = ar;
+	
+	/* too lazy to pass on area listbase */
+	while (arn->prev)
+		arn = arn->prev;
+	
+	/* check if a region overlaps with the current one */
+	for (; arn; arn = arn->next) {
+		if (ar != arn)
+			if (ar->winrct.xmin == arn->winrct.xmin)
+				if (ar->winrct.ymin == arn->winrct.ymin)
+					return arn->winrct.xmax - arn->winrct.xmin;
+	}
+	return 0;
+}
+

Modified: trunk/blender/source/blender/editors/space_view3d/view3d_draw.c
===================================================================
--- trunk/blender/source/blender/editors/space_view3d/view3d_draw.c	2012-12-16 08:43:05 UTC (rev 53053)
+++ trunk/blender/source/blender/editors/space_view3d/view3d_draw.c	2012-12-16 09:37:15 UTC (rev 53054)
@@ -563,26 +563,7 @@
 	if (v3d->zbuf && scene->obedit) glDepthMask(1);
 }
 
-/* checks overlapping region for labels, axes, icons */
-static int draw_name_offset(ARegion *ar)
-{
-	ARegion *arn = ar;
-	
-	/* too lazy to pass on area listbase */
-	while (arn->prev)
-		arn = arn->prev;
-	
-	/* check if a region overlaps with the current one */
-	for (; arn; arn = arn->next) {
-		if (ar != arn)
-			if (ar->winrct.xmin == arn->winrct.xmin)
-				if (ar->winrct.ymin == arn->winrct.ymin)
-					return arn->winrct.xmax - arn->winrct.xmin;
-	}
-	return 0;
-}
 
-
 static void drawcursor(Scene *scene, ARegion *ar, View3D *v3d)
 {
 	int co[2];
@@ -615,7 +596,7 @@
 {
 	const float k = U.rvisize;   /* axis size */
 	const float toll = 0.5;      /* used to see when view is quasi-orthogonal */
-	const float startx = k + 1.0f + draw_name_offset(ar); /* axis center in screen coordinates, x=y */
+	const float startx = k + 1.0f + ED_region_overlapping_offset(ar); /* axis center in screen coordinates, x=y */
 	const float starty = k + 1.0f;
 	float ydisp = 0.0;          /* vertical displacement to allow obj info text */
 	int bright = 25 * (float)U.rvibright + 5; /* axis alpha (rvibright has range 0-10) */
@@ -810,7 +791,7 @@
 	glEnable(GL_BLEND);
 	glBlendFunc(GL_SRC_ALPHA,  GL_ONE_MINUS_SRC_ALPHA); 
 	
-	UI_icon_draw(5.0 + draw_name_offset(ar), 5.0, icon);
+	UI_icon_draw(5.0 + ED_region_overlapping_offset(ar), 5.0, icon);
 	
 	glDisable(GL_BLEND);
 }
@@ -878,7 +859,7 @@
 
 	if (name) {
 		UI_ThemeColor(TH_TEXT_HI);
-		BLF_draw_default_ascii(U.widget_unit + draw_name_offset(ar),  ar->winy - U.widget_unit, 0.0f, name, sizeof(tmpstr));
+		BLF_draw_default_ascii(U.widget_unit + ED_region_overlapping_offset(ar),  ar->winy - U.widget_unit, 0.0f, name, sizeof(tmpstr));
 	}
 }
 
@@ -888,7 +869,7 @@
 static void draw_selected_name(ARegion *ar, Scene *scene, Object *ob)
 {
 	char info[256], *markern;
-	short offset = 30 + draw_name_offset(ar);
+	short offset = 30 + ED_region_overlapping_offset(ar);
 	
 	/* get name of marker on current frame (if available) */
 	markern = BKE_scene_find_marker_name(scene, CFRA);
@@ -971,7 +952,7 @@
 	}
 	
 	if (U.uiflag & USER_SHOW_ROTVIEWICON)
-		offset = U.widget_unit + (U.rvisize * 2) + draw_name_offset(ar);
+		offset = U.widget_unit + (U.rvisize * 2) + ED_region_overlapping_offset(ar);
 
 	BLF_draw_default(offset, 0.5f * U.widget_unit, 0.0f, info, sizeof(info));
 }
@@ -3234,7 +3215,7 @@
 				BLI_snprintf(numstr, sizeof(numstr), "%s x %.4g", grid_unit, v3d->grid);
 			}
 
-			BLF_draw_default_ascii(draw_name_offset(ar) + U.widget_unit,
+			BLF_draw_default_ascii(ED_region_overlapping_offset(ar) + U.widget_unit,
 			                       ar->winy - (USER_SHOW_VIEWPORTNAME ? 2 * U.widget_unit : U.widget_unit), 0.0f,
 			                       numstr[0] ? numstr : grid_unit, sizeof(numstr));
 		}




More information about the Bf-blender-cvs mailing list