summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorChris Wilson <chris@chris-wilson.co.uk>2011-08-11 23:12:32 +0100
committerChris Wilson <chris@chris-wilson.co.uk>2011-08-12 18:43:06 +0100
commitb8e8c4cf9a10834923d7185d379d6457687912a1 (patch)
tree049f756bdfbc13166422ac92cbd7726ad17f649e
parent99c129dd1302faaa1b10dca494d414a5738ddaf3 (diff)
downloadcairo-b8e8c4cf9a10834923d7185d379d6457687912a1.tar.gz
util/show-polygon: Show end-points
Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
-rw-r--r--util/show-polygon.c23
1 files changed, 17 insertions, 6 deletions
diff --git a/util/show-polygon.c b/util/show-polygon.c
index 7c9031ced..5549cf20a 100644
--- a/util/show-polygon.c
+++ b/util/show-polygon.c
@@ -49,7 +49,7 @@ 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;
@@ -59,6 +59,17 @@ static void draw_edges (cairo_t *cr, polygon_t *p, int dir)
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];
+
+ if (e->dir != dir)
+ continue;
+
cairo_move_to (cr, e->p1.x, e->p1.y);
cairo_line_to (cr, e->p2.x, e->p2.y);
}
@@ -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);