diff options
author | Jeff Muizelaar <jeff@infidigm.net> | 2006-06-25 15:48:48 +0200 |
---|---|---|
committer | Jeff Muizelaar <jeff@freiheit.infidigm.net> | 2006-07-15 14:39:32 -0400 |
commit | fdebc369d28f70ceba228d3131753225b2dbf844 (patch) | |
tree | 6cc138af52d75e924fa3c0fe67e55b8f4fb57557 /test/degenerate-path.c | |
parent | b607cdff98e621a6650bccef20f9877a0e7aa1d9 (diff) | |
download | cairo-fdebc369d28f70ceba228d3131753225b2dbf844.tar.gz |
Modify degenerate-path test case to test dashed degenerate paths.
Diffstat (limited to 'test/degenerate-path.c')
-rw-r--r-- | test/degenerate-path.c | 54 |
1 files changed, 44 insertions, 10 deletions
diff --git a/test/degenerate-path.c b/test/degenerate-path.c index ab6a34d75..3a8ba13fb 100644 --- a/test/degenerate-path.c +++ b/test/degenerate-path.c @@ -25,41 +25,75 @@ #include "cairo-test.h" -#define IMAGE_WIDTH 40 -#define IMAGE_HEIGHT 22 +#define PAD 3.0 +#define LINE_WIDTH 6.0 + +#define ARRAY_SIZE(arr) (sizeof(arr) / sizeof(arr[0])) static cairo_test_draw_function_t draw; cairo_test_t test = { "degenerate-path", "Tests the behaviour of degenerate paths with different cap types", - IMAGE_WIDTH, IMAGE_HEIGHT, + 3*(PAD+LINE_WIDTH+PAD), 6*(LINE_WIDTH+PAD) + PAD, draw }; -#define ARRAY_SIZE(arr) (sizeof(arr) / sizeof(arr[0])) - static cairo_test_status_t draw (cairo_t *cr, int width, int height) { const cairo_line_cap_t cap[] = { CAIRO_LINE_CAP_ROUND, CAIRO_LINE_CAP_SQUARE, CAIRO_LINE_CAP_BUTT }; int i; + double dash[] = {2, 2}; cairo_set_source_rgb (cr, 1, 0, 0); for (i=0; i<ARRAY_SIZE(cap); i++) { + cairo_save (cr); + cairo_set_line_cap (cr, cap[i]); - cairo_set_line_width (cr, 6); - cairo_move_to (cr, 6, 6); - cairo_line_to (cr, 6, 6); + /* simple degenerate paths */ + cairo_set_line_width (cr, LINE_WIDTH); + cairo_move_to (cr, LINE_WIDTH, LINE_WIDTH); + cairo_line_to (cr, LINE_WIDTH, LINE_WIDTH); + cairo_stroke (cr); + + cairo_translate (cr, 0, 3*PAD); + cairo_move_to (cr, LINE_WIDTH, LINE_WIDTH); + cairo_close_path (cr); + cairo_stroke (cr); + + /* degenerate paths starting with dash on */ + cairo_set_dash (cr, dash, 2, 0.); + + cairo_translate (cr, 0, 3*PAD); + cairo_move_to (cr, LINE_WIDTH, LINE_WIDTH); + cairo_line_to (cr, LINE_WIDTH, LINE_WIDTH); cairo_stroke (cr); - cairo_move_to (cr, 6, 15); + cairo_translate (cr, 0, 3*PAD); + cairo_move_to (cr, LINE_WIDTH, LINE_WIDTH); cairo_close_path (cr); cairo_stroke (cr); - cairo_translate (cr, 12, 0); + /* degenerate paths starting with dash off */ + /* these should not draw anything */ + cairo_set_dash (cr, dash, 2, 2.); + + cairo_translate (cr, 0, 3*PAD); + cairo_move_to (cr, LINE_WIDTH, LINE_WIDTH); + cairo_line_to (cr, LINE_WIDTH, LINE_WIDTH); + cairo_stroke (cr); + + cairo_translate (cr, 0, 3*PAD); + cairo_move_to (cr, LINE_WIDTH, LINE_WIDTH); + cairo_close_path (cr); + cairo_stroke (cr); + + cairo_restore (cr); + + cairo_translate (cr, PAD+LINE_WIDTH+PAD, 0); } return CAIRO_TEST_SUCCESS; } |