diff mbox

[v2,3/6] lib: use kmstest_cairo_printf_line in paint_marker

Message ID 1370460328-635-4-git-send-email-imre.deak@intel.com (mailing list archive)
State New, archived
Headers show

Commit Message

Imre Deak June 5, 2013, 7:25 p.m. UTC
Signed-off-by: Imre Deak <imre.deak@intel.com>
---
 lib/drmtest.c | 64 +++++++++++++----------------------------------------------
 1 file changed, 14 insertions(+), 50 deletions(-)

Comments

Rodrigo Vivi June 5, 2013, 7:29 p.m. UTC | #1
Reviewed-by: Rodrigo Vivi <rodrigo.vivi@gmail.com>

On Wed, Jun 5, 2013 at 4:25 PM, Imre Deak <imre.deak@intel.com> wrote:
> Signed-off-by: Imre Deak <imre.deak@intel.com>
> ---
>  lib/drmtest.c | 64 +++++++++++++----------------------------------------------
>  1 file changed, 14 insertions(+), 50 deletions(-)
>
> diff --git a/lib/drmtest.c b/lib/drmtest.c
> index 71dd06b..3ad77a8 100644
> --- a/lib/drmtest.c
> +++ b/lib/drmtest.c
> @@ -951,46 +951,12 @@ int kmstest_cairo_printf_line(cairo_t *cr, enum kmstest_text_align align,
>         return extents.width;
>  }
>
> -enum corner {
> -       topleft,
> -       topright,
> -       bottomleft,
> -       bottomright,
> -};
> -
>  static void
> -paint_marker(cairo_t *cr, int x, int y, char *str, enum corner text_location)
> +paint_marker(cairo_t *cr, int x, int y)
>  {
> -       cairo_text_extents_t extents;
> +       enum kmstest_text_align align;
>         int xoff, yoff;
>
> -       cairo_set_font_size(cr, 18);
> -       cairo_text_extents(cr, str, &extents);
> -
> -       switch (text_location) {
> -       case topleft:
> -               xoff = -20;
> -               xoff -= extents.width;
> -               yoff = -20;
> -               break;
> -       case topright:
> -               xoff = 20;
> -               yoff = -20;
> -               break;
> -       case bottomleft:
> -               xoff = -20;
> -               xoff -= extents.width;
> -               yoff = 20;
> -               break;
> -       case bottomright:
> -               xoff = 20;
> -               yoff = 20;
> -               break;
> -       default:
> -               xoff = 0;
> -               yoff = 0;
> -       }
> -
>         cairo_move_to(cr, x, y - 20);
>         cairo_line_to(cr, x, y + 20);
>         cairo_move_to(cr, x - 20, y);
> @@ -1004,12 +970,15 @@ paint_marker(cairo_t *cr, int x, int y, char *str, enum corner text_location)
>         cairo_set_line_width(cr, 2);
>         cairo_stroke(cr);
>
> +       xoff = x ? -20 : 20;
> +       align = x ? align_right : align_left;
> +
> +       yoff = y ? -20 : 20;
> +       align |= y ? align_bottom : align_top;
> +
>         cairo_move_to(cr, x + xoff, y + yoff);
> -       cairo_text_path(cr, str);
> -       cairo_set_source_rgb(cr, 0, 0, 0);
> -       cairo_stroke_preserve(cr);
> -       cairo_set_source_rgb(cr, 1, 1, 1);
> -       cairo_fill(cr);
> +       cairo_set_font_size(cr, 18);
> +       kmstest_cairo_printf_line(cr, align, 0, "(%d, %d)", x, y);
>  }
>
>  unsigned int kmstest_create_fb(int fd, int width, int height, int bpp,
> @@ -1021,7 +990,6 @@ unsigned int kmstest_create_fb(int fd, int width, int height, int bpp,
>         cairo_surface_t *surface;
>         cairo_status_t status;
>         cairo_t *cr;
> -       char buf[128];
>         unsigned int fb_id;
>
>         surface = paint_allocate_surface(fd, width, height, depth, bpp,
> @@ -1035,14 +1003,10 @@ unsigned int kmstest_create_fb(int fd, int width, int height, int bpp,
>         cairo_set_line_cap(cr, CAIRO_LINE_CAP_SQUARE);
>
>         /* Paint corner markers */
> -       snprintf(buf, sizeof buf, "(%d, %d)", 0, 0);
> -       paint_marker(cr, 0, 0, buf, bottomright);
> -       snprintf(buf, sizeof buf, "(%d, %d)", width, 0);
> -       paint_marker(cr, width, 0, buf, bottomleft);
> -       snprintf(buf, sizeof buf, "(%d, %d)", 0, height);
> -       paint_marker(cr, 0, height, buf, topright);
> -       snprintf(buf, sizeof buf, "(%d, %d)", width, height);
> -       paint_marker(cr, width, height, buf, topleft);
> +       paint_marker(cr, 0, 0);
> +       paint_marker(cr, width, 0);
> +       paint_marker(cr, 0, height);
> +       paint_marker(cr, width, height);
>
>         if (paint_func)
>                 paint_func(cr, width, height, func_arg);
> --
> 1.8.1.2
>
> _______________________________________________
> Intel-gfx mailing list
> Intel-gfx@lists.freedesktop.org
> http://lists.freedesktop.org/mailman/listinfo/intel-gfx
diff mbox

Patch

diff --git a/lib/drmtest.c b/lib/drmtest.c
index 71dd06b..3ad77a8 100644
--- a/lib/drmtest.c
+++ b/lib/drmtest.c
@@ -951,46 +951,12 @@  int kmstest_cairo_printf_line(cairo_t *cr, enum kmstest_text_align align,
 	return extents.width;
 }
 
-enum corner {
-	topleft,
-	topright,
-	bottomleft,
-	bottomright,
-};
-
 static void
-paint_marker(cairo_t *cr, int x, int y, char *str, enum corner text_location)
+paint_marker(cairo_t *cr, int x, int y)
 {
-	cairo_text_extents_t extents;
+	enum kmstest_text_align align;
 	int xoff, yoff;
 
-	cairo_set_font_size(cr, 18);
-	cairo_text_extents(cr, str, &extents);
-
-	switch (text_location) {
-	case topleft:
-		xoff = -20;
-		xoff -= extents.width;
-		yoff = -20;
-		break;
-	case topright:
-		xoff = 20;
-		yoff = -20;
-		break;
-	case bottomleft:
-		xoff = -20;
-		xoff -= extents.width;
-		yoff = 20;
-		break;
-	case bottomright:
-		xoff = 20;
-		yoff = 20;
-		break;
-	default:
-		xoff = 0;
-		yoff = 0;
-	}
-
 	cairo_move_to(cr, x, y - 20);
 	cairo_line_to(cr, x, y + 20);
 	cairo_move_to(cr, x - 20, y);
@@ -1004,12 +970,15 @@  paint_marker(cairo_t *cr, int x, int y, char *str, enum corner text_location)
 	cairo_set_line_width(cr, 2);
 	cairo_stroke(cr);
 
+	xoff = x ? -20 : 20;
+	align = x ? align_right : align_left;
+
+	yoff = y ? -20 : 20;
+	align |= y ? align_bottom : align_top;
+
 	cairo_move_to(cr, x + xoff, y + yoff);
-	cairo_text_path(cr, str);
-	cairo_set_source_rgb(cr, 0, 0, 0);
-	cairo_stroke_preserve(cr);
-	cairo_set_source_rgb(cr, 1, 1, 1);
-	cairo_fill(cr);
+	cairo_set_font_size(cr, 18);
+	kmstest_cairo_printf_line(cr, align, 0, "(%d, %d)", x, y);
 }
 
 unsigned int kmstest_create_fb(int fd, int width, int height, int bpp,
@@ -1021,7 +990,6 @@  unsigned int kmstest_create_fb(int fd, int width, int height, int bpp,
 	cairo_surface_t *surface;
 	cairo_status_t status;
 	cairo_t *cr;
-	char buf[128];
 	unsigned int fb_id;
 
 	surface = paint_allocate_surface(fd, width, height, depth, bpp,
@@ -1035,14 +1003,10 @@  unsigned int kmstest_create_fb(int fd, int width, int height, int bpp,
 	cairo_set_line_cap(cr, CAIRO_LINE_CAP_SQUARE);
 
 	/* Paint corner markers */
-	snprintf(buf, sizeof buf, "(%d, %d)", 0, 0);
-	paint_marker(cr, 0, 0, buf, bottomright);
-	snprintf(buf, sizeof buf, "(%d, %d)", width, 0);
-	paint_marker(cr, width, 0, buf, bottomleft);
-	snprintf(buf, sizeof buf, "(%d, %d)", 0, height);
-	paint_marker(cr, 0, height, buf, topright);
-	snprintf(buf, sizeof buf, "(%d, %d)", width, height);
-	paint_marker(cr, width, height, buf, topleft);
+	paint_marker(cr, 0, 0);
+	paint_marker(cr, width, 0);
+	paint_marker(cr, 0, height);
+	paint_marker(cr, width, height);
 
 	if (paint_func)
 		paint_func(cr, width, height, func_arg);