Exemplo n.º 1
0
void gp_tetragon(gp_pixmap *pixmap, gp_coord x0, gp_coord y0,
                 gp_coord x1, gp_coord y1, gp_coord x2, gp_coord y2,
                 gp_coord x3, gp_coord y3, gp_pixel pixel)
{
	GP_CHECK_PIXMAP(pixmap);

	GP_TRANSFORM_POINT(pixmap, x0, y0);
	GP_TRANSFORM_POINT(pixmap, x1, y1);
	GP_TRANSFORM_POINT(pixmap, x2, y2);
	GP_TRANSFORM_POINT(pixmap, x3, y3);

	gp_tetragon_raw(pixmap, x0, y0, x1, y1, x2, y2, x3, y3, pixel);
}
Exemplo n.º 2
0
void gp_fill_tetragon(gp_pixmap *pixmap, gp_coord x0, gp_coord y0,
                      gp_coord x1, gp_coord y1, gp_coord x2, gp_coord y2,
                      gp_coord x3, gp_coord y3, gp_pixel pixel)
{
	GP_CHECK_PIXMAP(pixmap);

	GP_TRANSFORM_POINT(pixmap, x0, y0);
	GP_TRANSFORM_POINT(pixmap, x1, y1);
	GP_TRANSFORM_POINT(pixmap, x2, y2);
	GP_TRANSFORM_POINT(pixmap, x3, y3);

	const gp_coord xy[8] = {x0, y0, x1, y1, x2, y2, x3, y3};

	gp_fill_polygon_raw(pixmap, 4, xy, pixel);
}
Exemplo n.º 3
0
void GP_FillRing(GP_Context *context, GP_Coord xcenter, GP_Coord ycenter,
                 GP_Size r1, GP_Size r2, GP_Pixel pixel)
{
	GP_CHECK_CONTEXT(context);

	GP_TRANSFORM_POINT(context, xcenter, ycenter);

	GP_FillRing_Raw(context, xcenter, ycenter, r1, r2, pixel);
}
Exemplo n.º 4
0
void GP_Circle(GP_Context *context, GP_Coord xcenter, GP_Coord ycenter,
               GP_Size r, GP_Pixel pixel)
{
	GP_CHECK_CONTEXT(context);

	GP_TRANSFORM_POINT(context, xcenter, ycenter);

	GP_Circle_Raw(context, xcenter, ycenter, r, pixel);
}
Exemplo n.º 5
0
void gp_fill_circle_seg(gp_pixmap *pixmap, gp_coord xcenter, gp_coord ycenter,
                        gp_size r, uint8_t seg_flag, gp_pixel pixel)
{
	GP_CHECK_PIXMAP(pixmap);

	GP_TRANSFORM_POINT(pixmap, xcenter, ycenter);

	gp_fill_circle_seg_raw(pixmap, xcenter, ycenter, r,
	                       transform_segments(pixmap, seg_flag), pixel);
}
Exemplo n.º 6
0
void GP_PartialEllipse(GP_Context *context, GP_Coord xcenter, GP_Coord ycenter,
                GP_Size a, GP_Size b, int start, int end, GP_Pixel pixel)
{
	GP_CHECK_CONTEXT(context);

	/* recalculate center point and swap a and b when axes are swapped */
	GP_TRANSFORM_POINT(context, xcenter, ycenter);
	GP_TRANSFORM_SWAP(context, a, b);

	GP_PartialEllipse_Raw(context, xcenter, ycenter, a, b, start, end, pixel);
}
Exemplo n.º 7
0
void GP_Polygon(GP_Context *context, unsigned int vertex_count,
                const GP_Coord *xy, GP_Pixel pixel)
{
	unsigned int i;

	GP_Coord prev_x = xy[2 * vertex_count - 2];
	GP_Coord prev_y = xy[2 * vertex_count - 1];

	GP_TRANSFORM_POINT(context, prev_x, prev_y);

	for (i = 0; i < vertex_count; i++) {
		GP_Coord x = xy[2 * i];
		GP_Coord y = xy[2 * i + 1];

		GP_TRANSFORM_POINT(context, x, y);

		GP_Line_Raw(context, prev_x, prev_y, x, y, pixel);

		prev_x = x;
		prev_y = y;
	}
}
Exemplo n.º 8
0
void gp_polygon(gp_pixmap *pixmap, unsigned int vertex_count,
                const gp_coord *xy, gp_pixel pixel)
{
	unsigned int i;

	gp_coord prev_x = xy[2 * vertex_count - 2];
	gp_coord prev_y = xy[2 * vertex_count - 1];

	GP_TRANSFORM_POINT(pixmap, prev_x, prev_y);

	for (i = 0; i < vertex_count; i++) {
		gp_coord x = xy[2 * i];
		gp_coord y = xy[2 * i + 1];

		GP_TRANSFORM_POINT(pixmap, x, y);

		gp_line_raw(pixmap, prev_x, prev_y, x, y, pixel);

		prev_x = x;
		prev_y = y;
	}
}
Exemplo n.º 9
0
void GP_FillPolygon(GP_Context *context, unsigned int vertex_count,
                    const GP_Coord *xy, GP_Pixel pixel)
{
	unsigned int i;
	GP_Coord xy_copy[2 * vertex_count];

	for (i = 0; i < vertex_count; i++) {
		unsigned int x = 2 * i;
		unsigned int y = 2 * i + 1;

		xy_copy[x] = xy[x];
		xy_copy[y] = xy[y];
		GP_TRANSFORM_POINT(context, xy_copy[x], xy_copy[y]);
	}

	GP_FillPolygon_Raw(context, vertex_count, xy_copy, pixel);
}
Exemplo n.º 10
0
void gp_fill_polygon(gp_pixmap *pixmap, unsigned int vertex_count,
                     const gp_coord *xy, gp_pixel pixel)
{
	unsigned int i;
	gp_coord xy_copy[2 * vertex_count];

	for (i = 0; i < vertex_count; i++) {
		unsigned int x = 2 * i;
		unsigned int y = 2 * i + 1;

		xy_copy[x] = xy[x];
		xy_copy[y] = xy[y];
		GP_TRANSFORM_POINT(pixmap, xy_copy[x], xy_copy[y]);
	}

	gp_fill_polygon_raw(pixmap, vertex_count, xy_copy, pixel);
}