Index: hatchbrush.c =================================================================== --- hatchbrush.c (revision 60859) +++ hatchbrush.c (working copy) @@ -128,7 +128,7 @@ cairo_set_line_width (ct2, line_width); cairo_move_to (ct2, 0, hatch_size / 2.0); - cairo_line_to (ct2, hatch_size + CAIRO_AA_OFFSET_X, hatch_size / 2.0 + CAIRO_AA_OFFSET_Y); + cairo_line_to (ct2, hatch_size, hatch_size / 2.0); cairo_stroke (ct2); cairo_destroy (ct2); } @@ -199,8 +199,8 @@ cairo_set_source_rgb (ct2, (double) R / 255.0, (double) G / 255.0, (double) B / 255.0); cairo_set_line_width (ct2, line_width); - cairo_move_to (ct2, hatch_size / 2.0 + CAIRO_AA_OFFSET_X, CAIRO_AA_OFFSET_Y); - cairo_line_to (ct2, hatch_size / 2.0 + CAIRO_AA_OFFSET_X, hatch_size + CAIRO_AA_OFFSET_Y); + cairo_move_to (ct2, hatch_size / 2.0, 0); + cairo_line_to (ct2, hatch_size / 2.0, hatch_size); cairo_stroke (ct2); cairo_destroy (ct2); @@ -251,11 +251,11 @@ cairo_set_line_width (ct2, line_width); - cairo_move_to (ct2, CAIRO_AA_OFFSET_X, hatch_size / 2.0 + CAIRO_AA_OFFSET_Y); - cairo_line_to (ct2, hatch_size / 2.0 + CAIRO_AA_OFFSET_X, hatch_size + CAIRO_AA_OFFSET_Y); + cairo_move_to (ct2, 0, hatch_size / 2.0); + cairo_line_to (ct2, hatch_size / 2.0, hatch_size); - cairo_move_to (ct2, hatch_size / 2.0 + CAIRO_AA_OFFSET_X, CAIRO_AA_OFFSET_Y); - cairo_line_to (ct2, hatch_size + CAIRO_AA_OFFSET_X, hatch_size / 2.0 + CAIRO_AA_OFFSET_Y); + cairo_move_to (ct2, hatch_size / 2.0, 0); + cairo_line_to (ct2, hatch_size, hatch_size / 2.0); cairo_stroke (ct2); @@ -308,11 +308,11 @@ cairo_set_line_width (ct2, line_width); - cairo_move_to (ct2, hatch_size / 2.0 + CAIRO_AA_OFFSET_X, CAIRO_AA_OFFSET_Y); - cairo_line_to (ct2, CAIRO_AA_OFFSET_X, hatch_size / 2.0 + CAIRO_AA_OFFSET_Y); + cairo_move_to (ct2, hatch_size / 2.0, 0); + cairo_line_to (ct2, 0, hatch_size / 2.0); - cairo_move_to (ct2, hatch_size + CAIRO_AA_OFFSET_X, hatch_size / 2.0 + CAIRO_AA_OFFSET_Y); - cairo_line_to (ct2, hatch_size / 2.0 + CAIRO_AA_OFFSET_X, hatch_size + CAIRO_AA_OFFSET_Y); + cairo_move_to (ct2, hatch_size, hatch_size / 2.0); + cairo_line_to (ct2, hatch_size / 2.0, hatch_size); cairo_stroke (ct2); @@ -349,7 +349,6 @@ int R,G,B; ct2 = cairo_create (hatch); - cairo_set_line_cap(ct2, CAIRO_LINE_CAP_SQUARE); cairo_set_antialias(ct2, CAIRO_ANTIALIAS_NONE); /* draw background */ @@ -369,16 +368,20 @@ cairo_set_line_width (ct2, line_width); - if (hbr->hatchStyle == HatchStyleDottedGrid) + if (hbr->hatchStyle == HatchStyleDottedGrid) { cairo_set_dash (ct2, dash, 1, 0); + cairo_set_line_cap(ct2, CAIRO_LINE_CAP_BUTT); + } else { + cairo_set_line_cap(ct2, CAIRO_LINE_CAP_SQUARE); + } /* draw a horizontal line */ - cairo_move_to (ct2, CAIRO_AA_OFFSET_X, hatch_size / 2.0 + CAIRO_AA_OFFSET_Y); - cairo_line_to (ct2, hatch_size + CAIRO_AA_OFFSET_X, hatch_size / 2.0 + CAIRO_AA_OFFSET_Y); + cairo_move_to (ct2, 0, hatch_size / 2.0); + cairo_line_to (ct2, hatch_size, hatch_size / 2.0); /* draw a vertical line */ - cairo_move_to (ct2, hatch_size / 2.0 + CAIRO_AA_OFFSET_X, CAIRO_AA_OFFSET_Y); - cairo_line_to (ct2, hatch_size / 2.0 + CAIRO_AA_OFFSET_X, hatch_size + CAIRO_AA_OFFSET_Y); + cairo_move_to (ct2, hatch_size / 2.0, 0); + cairo_line_to (ct2, hatch_size / 2.0, hatch_size); cairo_stroke (ct2); @@ -412,7 +415,6 @@ int R,G,B; ct2 = cairo_create (hatch); - cairo_set_line_cap(ct2, CAIRO_LINE_CAP_SQUARE); if (!want_aa) { cairo_set_antialias(ct2, CAIRO_ANTIALIAS_NONE); } @@ -434,16 +436,20 @@ cairo_set_line_width (ct2, line_width); - if (hbr->hatchStyle == HatchStyleDottedDiamond) + if (hbr->hatchStyle == HatchStyleDottedDiamond) { cairo_set_dash (ct2, dash, 1, 0); + cairo_set_line_cap(ct2, CAIRO_LINE_CAP_BUTT); + } else { + cairo_set_line_cap(ct2, CAIRO_LINE_CAP_SQUARE); + } /* draw a forward diagonal line */ - cairo_move_to (ct2, CAIRO_AA_OFFSET_X, CAIRO_AA_OFFSET_Y); - cairo_line_to (ct2, hatch_size + CAIRO_AA_OFFSET_X, hatch_size + CAIRO_AA_OFFSET_Y); + cairo_move_to (ct2, 0, 0); + cairo_line_to (ct2, hatch_size, hatch_size); /* draw a backward diagonal line */ - cairo_move_to (ct2, hatch_size + CAIRO_AA_OFFSET_X, CAIRO_AA_OFFSET_Y); - cairo_line_to (ct2, CAIRO_AA_OFFSET_X, hatch_size + CAIRO_AA_OFFSET_Y); + cairo_move_to (ct2, hatch_size, 0); + cairo_line_to (ct2, 0, hatch_size); cairo_stroke (ct2); cairo_destroy (ct2); @@ -929,11 +935,11 @@ cairo_set_line_width (ct2, line_width); - cairo_move_to (ct2, hatch_wd + CAIRO_AA_OFFSET_X, CAIRO_AA_OFFSET_Y); - cairo_line_to (ct2, CAIRO_AA_OFFSET_X, hatch_ht + CAIRO_AA_OFFSET_Y); + cairo_move_to (ct2, hatch_wd, 0); + cairo_line_to (ct2, 0, hatch_ht); - cairo_move_to (ct2, CAIRO_AA_OFFSET_X, hatch_ht / 4.0 + CAIRO_AA_OFFSET_Y); - cairo_line_to (ct2, hatch_wd - hatch_wd / 4.0 + CAIRO_AA_OFFSET_X, hatch_ht + CAIRO_AA_OFFSET_Y); + cairo_move_to (ct2, 0, hatch_ht / 4.0); + cairo_line_to (ct2, hatch_wd - hatch_wd / 4.0, hatch_ht); cairo_stroke (ct2); @@ -988,12 +994,12 @@ cairo_set_line_width (ct2, line_width); /* near top left corner */ - cairo_move_to (ct2, CAIRO_AA_OFFSET_X, CAIRO_AA_OFFSET_Y); - cairo_line_to (ct2, hatch_wd + CAIRO_AA_OFFSET_X, hatch_ht + CAIRO_AA_OFFSET_Y); + cairo_move_to (ct2, 0, 0); + cairo_line_to (ct2, hatch_wd, hatch_ht); /* near top right corner */ - cairo_move_to (ct2, hatch_wd + CAIRO_AA_OFFSET_X, CAIRO_AA_OFFSET_Y); - cairo_line_to (ct2, CAIRO_AA_OFFSET_X, hatch_ht + CAIRO_AA_OFFSET_Y); + cairo_move_to (ct2, hatch_wd, 0); + cairo_line_to (ct2, 0, hatch_ht); cairo_stroke (ct2); @@ -1068,11 +1074,11 @@ cairo_set_line_width (ct2, line_width); - cairo_move_to (ct2, CAIRO_AA_OFFSET_X, hatch_size / 2.0 + CAIRO_AA_OFFSET_Y); - cairo_line_to (ct2, hatch_size / 2.0 + CAIRO_AA_OFFSET_X, hatch_size + CAIRO_AA_OFFSET_Y); + cairo_move_to (ct2, 0, hatch_size / 2.0); + cairo_line_to (ct2, hatch_size / 2.0, hatch_size); - cairo_move_to (ct2, hatch_size / 2.0 + CAIRO_AA_OFFSET_X, CAIRO_AA_OFFSET_Y); - cairo_line_to (ct2, hatch_size + CAIRO_AA_OFFSET_X, hatch_size / 2.0 + CAIRO_AA_OFFSET_Y); + cairo_move_to (ct2, hatch_size / 2.0, 0); + cairo_line_to (ct2, hatch_size, hatch_size / 2.0); cairo_stroke (ct2); @@ -1147,11 +1153,11 @@ cairo_set_line_width (ct2, line_width); - cairo_move_to (ct2, hatch_size / 2.0 + CAIRO_AA_OFFSET_X, CAIRO_AA_OFFSET_Y); - cairo_line_to (ct2, CAIRO_AA_OFFSET_X, hatch_size / 2.0 + CAIRO_AA_OFFSET_Y); + cairo_move_to (ct2, hatch_size / 2.0, 0); + cairo_line_to (ct2, 0, hatch_size / 2.0); - cairo_move_to (ct2, hatch_size + CAIRO_AA_OFFSET_X, hatch_size / 2.0 + CAIRO_AA_OFFSET_Y); - cairo_line_to (ct2, hatch_size / 2.0 + CAIRO_AA_OFFSET_X, hatch_size + CAIRO_AA_OFFSET_Y); + cairo_move_to (ct2, hatch_size, hatch_size / 2.0); + cairo_line_to (ct2, hatch_size / 2.0, hatch_size); cairo_stroke (ct2); @@ -1208,12 +1214,12 @@ if (hbr->hatchStyle == HatchStyleDashedUpwardDiagonal) { /* 45 deg slant line */ - cairo_move_to (ct2, hatch_wd + CAIRO_AA_OFFSET_X, CAIRO_AA_OFFSET_Y); - cairo_line_to (ct2, CAIRO_AA_OFFSET_X, hatch_wd + CAIRO_AA_OFFSET_Y); + cairo_move_to (ct2, hatch_wd, 0); + cairo_line_to (ct2, 0, hatch_wd); } else { /* HatchStyleDashedDownwardDiagonal */ /* -45 deg slant line */ - cairo_move_to (ct2, CAIRO_AA_OFFSET_Y, CAIRO_AA_OFFSET_Y); - cairo_line_to (ct2, hatch_wd + CAIRO_AA_OFFSET_X, hatch_wd + CAIRO_AA_OFFSET_Y); + cairo_move_to (ct2, 0, 0); + cairo_line_to (ct2, hatch_wd, hatch_wd); } cairo_stroke (ct2); @@ -1271,12 +1277,12 @@ cairo_set_line_width (ct2, line_width); /* upper left dash */ - cairo_move_to (ct2, CAIRO_AA_OFFSET_X, line_space / 2 + CAIRO_AA_OFFSET_Y); - cairo_line_to (ct2, dash_len + CAIRO_AA_OFFSET_X, line_space / 2 + CAIRO_AA_OFFSET_Y); + cairo_move_to (ct2, 0, line_space / 2); + cairo_line_to (ct2, dash_len, line_space / 2); /* lower right dash */ - cairo_move_to (ct2, hatch_wd - dash_len + CAIRO_AA_OFFSET_X, hatch_ht - line_space / 2 + CAIRO_AA_OFFSET_Y); - cairo_line_to (ct2, hatch_wd + CAIRO_AA_OFFSET_X, hatch_ht - line_space / 2 + CAIRO_AA_OFFSET_Y); + cairo_move_to (ct2, hatch_wd - dash_len, hatch_ht - line_space / 2); + cairo_line_to (ct2, hatch_wd, hatch_ht - line_space / 2); cairo_stroke (ct2); @@ -1333,12 +1339,12 @@ cairo_set_line_width (ct2, line_width); /* upper left dash */ - cairo_move_to (ct2, line_space / 2 + CAIRO_AA_OFFSET_X, CAIRO_AA_OFFSET_Y); - cairo_line_to (ct2, line_space / 2 + CAIRO_AA_OFFSET_X, dash_len + CAIRO_AA_OFFSET_Y); + cairo_move_to (ct2, line_space / 2, 0); + cairo_line_to (ct2, line_space / 2, dash_len); /* lower right dash */ - cairo_move_to (ct2, hatch_wd - line_space / 2 + CAIRO_AA_OFFSET_X, hatch_ht - dash_len + CAIRO_AA_OFFSET_Y); - cairo_line_to (ct2, hatch_wd - line_space / 2 + CAIRO_AA_OFFSET_X, hatch_ht + CAIRO_AA_OFFSET_Y); + cairo_move_to (ct2, hatch_wd - line_space / 2, hatch_ht - dash_len); + cairo_line_to (ct2, hatch_wd - line_space / 2, hatch_ht); cairo_stroke (ct2); @@ -1435,7 +1441,7 @@ int R,G,B; ct2 = cairo_create (hatch); - cairo_set_line_cap(ct2, CAIRO_LINE_CAP_SQUARE); + cairo_set_line_cap(ct2, CAIRO_LINE_CAP_BUTT); cairo_set_antialias(ct2, CAIRO_ANTIALIAS_NONE); /* draw background */ @@ -1456,14 +1462,14 @@ cairo_set_line_width (ct2, line_width); /* upper 'V' shape */ - cairo_move_to (ct2, CAIRO_AA_OFFSET_X, CAIRO_AA_OFFSET_Y); - cairo_line_to (ct2, hatch_size / 2.0 + CAIRO_AA_OFFSET_X, hatch_size / 2.0 + CAIRO_AA_OFFSET_Y); - cairo_line_to (ct2, hatch_size + CAIRO_AA_OFFSET_X, CAIRO_AA_OFFSET_Y); + cairo_move_to (ct2, 0, 0); + cairo_line_to (ct2, hatch_size / 2.0, hatch_size / 2.0); + cairo_line_to (ct2, hatch_size, 0); /* lower 'V' shape */ - cairo_move_to (ct2, CAIRO_AA_OFFSET_X, hatch_size / 2.0 + CAIRO_AA_OFFSET_Y); - cairo_line_to (ct2, hatch_size + CAIRO_AA_OFFSET_X / 2.0, hatch_size + CAIRO_AA_OFFSET_Y); - cairo_line_to (ct2, hatch_size + CAIRO_AA_OFFSET_X, hatch_size / 2.0 + CAIRO_AA_OFFSET_Y); + cairo_move_to (ct2, 0, hatch_size / 2.0); + cairo_line_to (ct2, hatch_size, hatch_size); + cairo_line_to (ct2, hatch_size, hatch_size / 2.0); cairo_stroke (ct2); @@ -1518,9 +1524,9 @@ cairo_set_line_width (ct2, line_width); /* draw a horizontal 'S' shape */ - cairo_move_to (ct2, 1.0 + CAIRO_AA_OFFSET_X, 1.0 + CAIRO_AA_OFFSET_Y); - cairo_curve_to (ct2, 1.0 + CAIRO_AA_OFFSET_X, 1.0 + CAIRO_AA_OFFSET_Y, hatch_wd / 4.0 + CAIRO_AA_OFFSET_X, hatch_ht + CAIRO_AA_OFFSET_Y, hatch_wd / 2.0 + CAIRO_AA_OFFSET_X, hatch_ht / 2.0 + CAIRO_AA_OFFSET_Y); - cairo_curve_to (ct2, hatch_wd / 2.0 + CAIRO_AA_OFFSET_X, hatch_ht / 2.0 + CAIRO_AA_OFFSET_Y, 3 * hatch_wd / 4.0 + CAIRO_AA_OFFSET_X, CAIRO_AA_OFFSET_Y, hatch_wd - 1.0 + CAIRO_AA_OFFSET_X, hatch_ht - 1.0 + CAIRO_AA_OFFSET_Y); + cairo_move_to (ct2, 1.0, 1.0); + cairo_curve_to (ct2, 1.0, 1.0, hatch_wd / 4.0, hatch_ht, hatch_wd / 2.0, hatch_ht / 2.0); + cairo_curve_to (ct2, hatch_wd / 2.0, hatch_ht / 2.0, 3 * hatch_wd / 4.0, 0, hatch_wd - 1.0, hatch_ht - 1.0); cairo_stroke (ct2); @@ -1573,10 +1579,10 @@ cairo_set_line_width (ct2, line_width); /* draw one full diagonal line and half of another diagonal line */ - cairo_move_to (ct2, CAIRO_AA_OFFSET_X, hatch_size + CAIRO_AA_OFFSET_Y); - cairo_line_to (ct2, hatch_size + CAIRO_AA_OFFSET_X, CAIRO_AA_OFFSET_Y); - cairo_move_to (ct2, hatch_size / 2.0 + CAIRO_AA_OFFSET_X, hatch_size / 2.0 + CAIRO_AA_OFFSET_Y); - cairo_line_to (ct2, hatch_size + CAIRO_AA_OFFSET_X, hatch_size + CAIRO_AA_OFFSET_Y); + cairo_move_to (ct2, 0, hatch_size); + cairo_line_to (ct2, hatch_size, 0); + cairo_move_to (ct2, hatch_size / 2.0, hatch_size / 2.0); + cairo_line_to (ct2, hatch_size, hatch_size); cairo_stroke (ct2); @@ -1630,14 +1636,14 @@ cairo_set_line_width (ct2, line_width); /* draw a 'C' shape */ - cairo_move_to (ct2, hatch_size + CAIRO_AA_OFFSET_X, CAIRO_AA_OFFSET_Y); - cairo_line_to (ct2, CAIRO_AA_OFFSET_X, CAIRO_AA_OFFSET_Y); - cairo_line_to (ct2, CAIRO_AA_OFFSET_X, hatch_size / 2.0 + CAIRO_AA_OFFSET_Y); - cairo_line_to (ct2, hatch_size + CAIRO_AA_OFFSET_X, hatch_size / 2.0 + CAIRO_AA_OFFSET_Y); + cairo_move_to (ct2, hatch_size, 0); + cairo_line_to (ct2, 0, 0); + cairo_line_to (ct2, 0, hatch_size / 2.0); + cairo_line_to (ct2, hatch_size, hatch_size / 2.0); /* draw lower connector */ - cairo_move_to (ct2, hatch_size / 2.0 + CAIRO_AA_OFFSET_X, hatch_size / 2.0 + CAIRO_AA_OFFSET_Y); - cairo_line_to (ct2, hatch_size / 2.0 + CAIRO_AA_OFFSET_X, hatch_size + CAIRO_AA_OFFSET_Y); + cairo_move_to (ct2, hatch_size / 2.0, hatch_size / 2.0); + cairo_line_to (ct2, hatch_size / 2.0, hatch_size); cairo_stroke (ct2); @@ -1671,7 +1677,7 @@ int R,G,B; ct2 = cairo_create (hatch); - cairo_set_line_cap(ct2, CAIRO_LINE_CAP_SQUARE); + cairo_set_line_cap(ct2, CAIRO_LINE_CAP_BUTT); cairo_set_antialias(ct2, CAIRO_ANTIALIAS_NONE); /* draw background */ @@ -1696,24 +1702,24 @@ * one of the other two vertices of the square and three connectors * towards the fourth vertex. */ - cairo_move_to (ct2, CAIRO_AA_OFFSET_X, hatch_size / 2.0 + CAIRO_AA_OFFSET_Y); - cairo_line_to (ct2, hatch_size / 2.0 + CAIRO_AA_OFFSET_X, CAIRO_AA_OFFSET_Y); + cairo_move_to (ct2, 0, hatch_size / 2.0); + cairo_line_to (ct2, hatch_size / 2.0, 0); /* this makes up one of the lower connectors also */ - cairo_line_to (ct2, hatch_size + CAIRO_AA_OFFSET_X, hatch_size / 2.0 + CAIRO_AA_OFFSET_Y); + cairo_line_to (ct2, hatch_size, hatch_size / 2.0); /* complete the diagonal 'C' shape */ - cairo_move_to (ct2, 3 * hatch_size / 4.0 + CAIRO_AA_OFFSET_X, hatch_size / 4.0 + CAIRO_AA_OFFSET_Y); - cairo_line_to (ct2, CAIRO_AA_OFFSET_X, hatch_size + CAIRO_AA_OFFSET_Y); + cairo_move_to (ct2, 3 * hatch_size / 4.0, hatch_size / 4.0); + cairo_line_to (ct2, 0, hatch_size); /* draw one upper connector */ - cairo_move_to (ct2, CAIRO_AA_OFFSET_X, CAIRO_AA_OFFSET_Y); - cairo_line_to (ct2, hatch_size / 4.0 + CAIRO_AA_OFFSET_X, hatch_size / 4.0 + CAIRO_AA_OFFSET_Y); + cairo_move_to (ct2, 0, 0); + cairo_line_to (ct2, hatch_size / 4.0, hatch_size / 4.0); /* draw lower connectors */ - cairo_move_to (ct2, hatch_size / 4.0 + CAIRO_AA_OFFSET_X, 3 * hatch_size / 4.0 + CAIRO_AA_OFFSET_Y); - cairo_line_to (ct2, hatch_size / 2.0 + CAIRO_AA_OFFSET_X, hatch_size + CAIRO_AA_OFFSET_Y); + cairo_move_to (ct2, hatch_size / 4.0, 3 * hatch_size / 4.0); + cairo_line_to (ct2, hatch_size / 2.0, hatch_size); - cairo_move_to (ct2, hatch_size + CAIRO_AA_OFFSET_X, hatch_size + CAIRO_AA_OFFSET_Y); - cairo_line_to (ct2, hatch_size / 2.0 + CAIRO_AA_OFFSET_X, hatch_size / 2.0 + CAIRO_AA_OFFSET_Y); + cairo_move_to (ct2, hatch_size, hatch_size); + cairo_line_to (ct2, hatch_size / 2.0, hatch_size / 2.0); cairo_stroke (ct2); @@ -1865,13 +1871,13 @@ cairo_set_line_width (ct2, line_width); /* draw two angle brackets in the foreground */ - cairo_move_to (ct2, hatch_size / 8.0 + CAIRO_AA_OFFSET_X, hatch_size / 8.0 + CAIRO_AA_OFFSET_Y); - cairo_line_to (ct2, 3 * hatch_size / 8.0 + CAIRO_AA_OFFSET_X, hatch_size / 4.0 + CAIRO_AA_OFFSET_Y); - cairo_line_to (ct2, hatch_size / 8.0 + CAIRO_AA_OFFSET_X, 3 * hatch_size / 8.0 + CAIRO_AA_OFFSET_Y); + cairo_move_to (ct2, hatch_size / 8.0, hatch_size / 8.0); + cairo_line_to (ct2, 3 * hatch_size / 8.0, hatch_size / 4.0); + cairo_line_to (ct2, hatch_size / 8.0, 3 * hatch_size / 8.0); - cairo_move_to (ct2, 7 * hatch_size / 8.0 + CAIRO_AA_OFFSET_X, 7 * hatch_size / 8.0 + CAIRO_AA_OFFSET_Y); - cairo_line_to (ct2, 5 * hatch_size / 8.0 + CAIRO_AA_OFFSET_X, 3 * hatch_size / 4.0 + CAIRO_AA_OFFSET_Y); - cairo_line_to (ct2, 7 * hatch_size / 8.0 + CAIRO_AA_OFFSET_X, 5 * hatch_size / 8.0 + CAIRO_AA_OFFSET_Y); + cairo_move_to (ct2, 7 * hatch_size / 8.0, 7 * hatch_size / 8.0); + cairo_line_to (ct2, 5 * hatch_size / 8.0, 3 * hatch_size / 4.0); + cairo_line_to (ct2, 7 * hatch_size / 8.0, 5 * hatch_size / 8.0); cairo_stroke (ct2); @@ -1965,7 +1971,7 @@ int R,G,B; ct2 = cairo_create (hatch); - cairo_set_line_cap(ct2, CAIRO_LINE_CAP_SQUARE); + cairo_set_line_cap(ct2, CAIRO_LINE_CAP_BUTT); cairo_set_antialias(ct2, CAIRO_ANTIALIAS_NONE); /* draw background */ @@ -1986,13 +1992,13 @@ cairo_set_line_width (ct2, line_width); /* draw a curve thru left top, center and right top corners */ - cairo_move_to (ct2, CAIRO_AA_OFFSET_X, CAIRO_AA_OFFSET_Y); - cairo_line_to (ct2, hatch_size / 4.0 + CAIRO_AA_OFFSET_X, hatch_size / 4.0 + CAIRO_AA_OFFSET_Y); - cairo_curve_to (ct2, hatch_size / 4.0 + CAIRO_AA_OFFSET_X, hatch_size / 4.0 + CAIRO_AA_OFFSET_Y, hatch_size / 2.0 + CAIRO_AA_OFFSET_X, hatch_size / 2.0 + CAIRO_AA_OFFSET_Y, 3 * hatch_size / 4.0 + CAIRO_AA_OFFSET_X, hatch_size / 4.0 + CAIRO_AA_OFFSET_Y); - cairo_line_to (ct2, hatch_size + CAIRO_AA_OFFSET_X, CAIRO_AA_OFFSET_Y); + cairo_move_to (ct2, 0, 0); + cairo_line_to (ct2, hatch_size / 4.0, hatch_size / 4.0); + cairo_curve_to (ct2, hatch_size / 4.0, hatch_size / 4.0, hatch_size / 2.0, hatch_size / 2.0, 3 * hatch_size / 4.0, hatch_size / 4.0); + cairo_line_to (ct2, hatch_size, 0); /* draw a quarter circle thru center and right bottom corner */ - cairo_arc (ct2, CAIRO_AA_OFFSET_X, hatch_size + CAIRO_AA_OFFSET_Y, hatch_size, -PI/4.0, 0); + cairo_arc (ct2, 0, hatch_size, hatch_size, -PI/4.0, 0); cairo_stroke (ct2); @@ -2125,16 +2131,16 @@ cairo_set_line_width (ct2, line_width); /* left middle */ - cairo_move_to (ct2, CAIRO_AA_OFFSET_X, hatch_size / 2.0 - rad / 2.0 + CAIRO_AA_OFFSET_Y); - cairo_line_to (ct2, rad / 2.0 + CAIRO_AA_OFFSET_X, hatch_size / 2.0 - rad / 2.0 + CAIRO_AA_OFFSET_Y); + cairo_move_to (ct2, 0, hatch_size / 2.0 - rad / 2.0); + cairo_line_to (ct2, rad / 2.0, hatch_size / 2.0 - rad / 2.0); /* right middle */ - cairo_move_to (ct2, hatch_size + CAIRO_AA_OFFSET_X, hatch_size / 2.0 - rad / 2.0 + CAIRO_AA_OFFSET_Y); - cairo_line_to (ct2, hatch_size - rad / 2.0 + CAIRO_AA_OFFSET_X, hatch_size / 2.0 - rad / 2.0 + CAIRO_AA_OFFSET_Y); + cairo_move_to (ct2, hatch_size, hatch_size / 2.0 - rad / 2.0); + cairo_line_to (ct2, hatch_size - rad / 2.0, hatch_size / 2.0 - rad / 2.0); /* bottom middle */ - cairo_move_to (ct2, hatch_size / 2.0 - rad / 2.0 + CAIRO_AA_OFFSET_X, hatch_size - rad / 2.0 + CAIRO_AA_OFFSET_Y); - cairo_line_to (ct2, hatch_size / 2.0 + rad / 2.0 + CAIRO_AA_OFFSET_X, hatch_size - rad / 2.0 + CAIRO_AA_OFFSET_Y); + cairo_move_to (ct2, hatch_size / 2.0 - rad / 2.0, hatch_size - rad / 2.0); + cairo_line_to (ct2, hatch_size / 2.0 + rad / 2.0, hatch_size - rad / 2.0); cairo_stroke (ct2); @@ -2478,10 +2484,13 @@ GpStatus GdipCreateHatchBrush (GpHatchStyle hatchstyle, int forecolor, int backcolor, GpHatch **brush) { + if (!brush) + return InvalidParameter; + *brush = gdip_hatch_new (); + if (!*brush) + return OutOfMemory; - g_return_val_if_fail (brush != NULL, OutOfMemory); - (*brush)->hatchStyle = hatchstyle; (*brush)->foreColor = forecolor; (*brush)->backColor = backcolor; @@ -2492,7 +2501,8 @@ GpStatus GdipGetHatchStyle (GpHatch *brush, GpHatchStyle *hatchstyle) { - g_return_val_if_fail (brush != NULL, InvalidParameter); + if (!brush || !hatchstyle) + return InvalidParameter; *hatchstyle = brush->hatchStyle; return Ok; @@ -2501,7 +2511,8 @@ GpStatus GdipGetHatchForegroundColor (GpHatch *brush, int *forecolor) { - g_return_val_if_fail (brush != NULL, InvalidParameter); + if (!brush || !forecolor) + return InvalidParameter; *forecolor = brush->foreColor; return Ok; @@ -2510,7 +2521,8 @@ GpStatus GdipGetHatchBackgroundColor (GpHatch *brush, int *backcolor) { - g_return_val_if_fail (brush != NULL, InvalidParameter); + if (!brush || !backcolor) + return InvalidParameter; *backcolor = brush->backColor; return Ok;