util/show-polygon: Show end-points

Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
This commit is contained in:
Chris Wilson 2011-08-11 23:12:32 +01:00
parent 99c129dd13
commit b8e8c4cf9a

View file

@ -49,10 +49,21 @@ typedef struct _PolygonViewClass {
G_DEFINE_TYPE (PolygonView, polygon_view, GTK_TYPE_WIDGET)
static void draw_edges (cairo_t *cr, polygon_t *p, int dir)
static void draw_edges (cairo_t *cr, polygon_t *p, gdouble sf, int dir)
{
int n;
for (n = 0; n < p->num_edges; n++) {
const edge_t *e = &p->edges[n];
if (e->dir != dir)
continue;
cairo_arc (cr, e->p1.x, e->p1.y, 3/sf, 0, 2*M_PI);
cairo_arc (cr, e->p2.x, e->p2.y, 3/sf, 0, 2*M_PI);
cairo_fill (cr);
}
for (n = 0; n < p->num_edges; n++) {
const edge_t *e = &p->edges[n];
@ -69,13 +80,13 @@ static void draw_edges (cairo_t *cr, polygon_t *p, int dir)
} cairo_restore (cr);
}
static void draw_polygon (cairo_t *cr, polygon_t *p)
static void draw_polygon (cairo_t *cr, polygon_t *p, gdouble sf)
{
cairo_set_source_rgb (cr, 0.0, 0.0, 1.0);
draw_edges (cr, p, -1);
draw_edges (cr, p, sf, -1);
cairo_set_source_rgb (cr, 1.0, 0.0, 0.0);
draw_edges (cr, p, +1);
draw_edges (cr, p, sf, +1);
}
static cairo_surface_t *
@ -127,7 +138,7 @@ pixmap_create (PolygonView *self, cairo_surface_t *target)
if (polygon->num_edges == 0)
continue;
draw_polygon (cr, polygon);
draw_polygon (cr, polygon, sf);
}
} cairo_restore (cr);
@ -211,7 +222,7 @@ polygon_view_draw (PolygonView *self, cairo_t *cr)
if (polygon->num_edges == 0)
continue;
draw_polygon (cr, polygon);
draw_polygon (cr, polygon, zoom);
}
} cairo_restore (cr);