Correct polygon's direction for overriding.
[chise/kage.git] / kagecgi / kagepoly.c
1 // kagepoly.c\r
2 //\r
3 \r
4 #include <stdio.h>\r
5 #include <stdlib.h>\r
6 #include "kagecgi.h"\r
7 #include "kage.h"\r
8 \r
9 void fillPolygon(struct kPoint *p, int number, int col, unsigned char **image){\r
10         int i, ix, iy;\r
11         Region rgn;\r
12         XRectangle rect;\r
13         \r
14         for(i = 0; i < number; i++){\r
15                         xpoly[i].x = p[i].X;\r
16                         xpoly[i].y = p[i].Y;\r
17         }\r
18         rgn = XPolygonRegion(xpoly, number, EvenOddRule);\r
19         XClipBox(rgn, &rect);\r
20         \r
21         for(ix = rect.x ; ix <= rect.x + rect.width; ix++){\r
22                 for(iy = rect.y ; iy <= rect.y + rect.height; iy++){\r
23                         if(XPointInRegion(rgn, ix, iy) && ix >= 0 && iy >= 0 && ix < canvasWidth && iy < canvasHeight){\r
24                                 image[iy][ix] = col;\r
25                         }\r
26                 }\r
27         }\r
28 }\r
29 \r