All pastes #57116 Raw Edit

Unnamed

public text v1 · immutable
#57116 ·published 2006-05-19 14:16 UTC
rendered paste body
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;