diff --git a/pipi-php/php_pipi.c b/pipi-php/php_pipi.c index 553dfbd..dd52451 100644 --- a/pipi-php/php_pipi.c +++ b/pipi-php/php_pipi.c @@ -78,6 +78,7 @@ static function_entry pipi_functions[] = { PHP_FE(pipi_tile, NULL) PHP_FE(pipi_flood_fill, NULL) PHP_FE(pipi_draw_line, NULL) + PHP_FE(pipi_draw_rectangle, NULL) PHP_FE(pipi_draw_polyline, NULL) PHP_FE(pipi_draw_bezier4, NULL) PHP_FE(pipi_reduce, NULL) @@ -691,6 +692,9 @@ PHP_FUNCTION(pipi_flood_fill) { PHP_FUNCTION(pipi_draw_line) { } +PHP_FUNCTION(pipi_draw_rectangle) { +} + PHP_FUNCTION(pipi_draw_polyline) { } diff --git a/pipi-php/php_pipi.h b/pipi-php/php_pipi.h index 6b47bde..59cfc09 100644 --- a/pipi-php/php_pipi.h +++ b/pipi-php/php_pipi.h @@ -90,6 +90,7 @@ PHP_FUNCTION(pipi_order); PHP_FUNCTION(pipi_tile); PHP_FUNCTION(pipi_flood_fill); PHP_FUNCTION(pipi_draw_line); +PHP_FUNCTION(pipi_draw_rectangle); PHP_FUNCTION(pipi_draw_polyline); PHP_FUNCTION(pipi_draw_bezier4); PHP_FUNCTION(pipi_reduce); diff --git a/pipi/paint/line.c b/pipi/paint/line.c index bf142dc..452e5aa 100644 --- a/pipi/paint/line.c +++ b/pipi/paint/line.c @@ -111,6 +111,23 @@ int pipi_draw_line(pipi_image_t *img , int xa, int ya, int xb, int yb, uint32_t return 0; } +int pipi_draw_rectangle(pipi_image_t *img , int xa, int ya, int xb, int yb, uint32_t c, int aa) +{ + while(ya < yb) + { + pipi_draw_line(img, xa, ya, xb, ya, c, aa); + ya++; + } + + while(ya > yb) + { + pipi_draw_line(img, xa, ya, xb, ya, c, aa); + ya--; + } + + return pipi_draw_line(img, xa, yb, xb, yb, c, aa); +} + int pipi_draw_polyline(pipi_image_t *img, int const x[], int const y[], int n, uint32_t c, int aa) { diff --git a/pipi/pipi.h b/pipi/pipi.h index cd5d935..f2b218f 100644 --- a/pipi/pipi.h +++ b/pipi/pipi.h @@ -194,6 +194,7 @@ __extern pipi_image_t *pipi_tile(pipi_image_t *, int, int); __extern int pipi_flood_fill(pipi_image_t *, int, int, float, float, float, float); __extern int pipi_draw_line(pipi_image_t *, int, int, int, int, uint32_t, int); +__extern int pipi_draw_rectangle(pipi_image_t *, int, int, int, int, uint32_t, int); __extern int pipi_draw_polyline(pipi_image_t *, int const[], int const[], int , uint32_t, int); __extern int pipi_draw_bezier4(pipi_image_t *,int, int, int, int, int, int, int, int, uint32_t, int, int);