From e10e51eaba0ea035e1045a3c956a0e5bbe617698 Mon Sep 17 00:00:00 2001
From: sam <sam@92316355-f0b4-4df1-b90c-862c8a59935f>
Date: Fri, 31 Oct 2008 15:16:53 +0000
Subject: [PATCH] Quick and dirty implementation of pipi_draw_rectangle() to
 save zMoo.

git-svn-id: file:///srv/caca.zoy.org/var/lib/svn/libpipi/trunk@3164 92316355-f0b4-4df1-b90c-862c8a59935f
---
 pipi-php/php_pipi.c |  4 ++++
 pipi-php/php_pipi.h |  1 +
 pipi/paint/line.c   | 17 +++++++++++++++++
 pipi/pipi.h         |  1 +
 4 files changed, 23 insertions(+)

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);