[Top][All Lists]
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Stratagus-CVS] stratagus/src/video linedraw.c
From: |
Nehal Mistry |
Subject: |
[Stratagus-CVS] stratagus/src/video linedraw.c |
Date: |
Thu, 20 Nov 2003 21:10:51 -0500 |
CVSROOT: /cvsroot/stratagus
Module name: stratagus
Branch:
Changes by: Nehal Mistry <address@hidden> 03/11/20 21:10:51
Modified files:
src/video : linedraw.c
Log message:
can draw circles now
Patches:
Index: stratagus/src/video/linedraw.c
diff -u stratagus/src/video/linedraw.c:1.45 stratagus/src/video/linedraw.c:1.46
--- stratagus/src/video/linedraw.c:1.45 Thu Nov 20 20:26:11 2003
+++ stratagus/src/video/linedraw.c Thu Nov 20 21:10:50 2003
@@ -27,7 +27,7 @@
// Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA
// 02111-1307, USA.
//
-// $Id: linedraw.c,v 1.45 2003/11/21 01:26:11 nehalmistry Exp $
+// $Id: linedraw.c,v 1.46 2003/11/21 02:10:50 nehalmistry Exp $
//@{
@@ -780,28 +780,104 @@
VideoFillRectangle(color, x, y, w, h);
}
-global void VideoDrawCircleClip(SDL_Color color, int x, int y,
- int w)
+global void VideoDrawCircle(SDL_Color color, int x, int y, int r)
{
-// DebugCheck(1);
+ int p;
+ int px;
+ int py;
+
+ p = 1 - r;
+ py = r;
+
+ for (px = 0; px <= py + 1; ++px) {
+ VideoDrawPixel(color, x + px, y + py);
+ VideoDrawPixel(color, x + px, y - py);
+ VideoDrawPixel(color, x - px, y + py);
+ VideoDrawPixel(color, x - px, y - py);
+
+ VideoDrawPixel(color, x + py, y + px);
+ VideoDrawPixel(color, x + py, y - px);
+ VideoDrawPixel(color, x - py, y + px);
+ VideoDrawPixel(color, x - py, y - px);
+
+ if (p < 0) {
+ p += 2 * px + 3;
+ } else {
+ p += 2 * (px - py) + 5;
+ py -= 1;
+ }
+ }
+}
+
+global void VideoDrawCircleClip(SDL_Color color, int x, int y, int r)
+{
+ // FIXME: clip
+ VideoDrawCircle(color, x, y, r);
}
global void VideoDrawTransCircleClip(SDL_Color color, int x, int y,
- int w, unsigned char alpha)
+ int r, unsigned char alpha)
{
-// DebugCheck(1);
+ // FIXME: clip, trans
+ VideoDrawCircle(color, x, y, r);
+}
+
+global void VideoFillCircle(SDL_Color color, int x, int y, int r)
+{
+ int p;
+ int px;
+ int py;
+ int f;
+
+ p = 1 - r;
+ py = r;
+
+ for (px = 0; px <= py + 1; ++px) {
+ VideoDrawPixel(color, x + px, y + py);
+ VideoDrawPixel(color, x + px, y - py);
+ VideoDrawPixel(color, x - px, y + py);
+ VideoDrawPixel(color, x - px, y - py);
+
+ VideoDrawPixel(color, x + py, y + px);
+ VideoDrawPixel(color, x + py, y - px);
+ VideoDrawPixel(color, x - py, y + px);
+ VideoDrawPixel(color, x - py, y - px);
+
+ // Fill It
+ for (f = 0; f < py; ++f) {
+ VideoDrawPixel(color, x + px, y + f);
+ VideoDrawPixel(color, x + px, y - f);
+ VideoDrawPixel(color, x - px, y + f);
+ VideoDrawPixel(color, x - px, y - f);
+ }
+ for (f = 0; f < px; ++f) {
+ VideoDrawPixel(color, x + py, y + f);
+ VideoDrawPixel(color, x + py, y - f);
+ VideoDrawPixel(color, x - py, y + f);
+ VideoDrawPixel(color, x - py, y - f);
+ }
+
+
+ if (p < 0) {
+ p += 2 * px + 3;
+ } else {
+ p += 2 * (px - py) + 5;
+ py -= 1;
+ }
+ }
}
-global void VideoFillCircleClip(SDL_Color color, int x, int y,
- int w)
+global void VideoFillCircleClip(SDL_Color color, int x, int y, int r)
{
-// DebugCheck(1);
+ // FIXME: clip
+ VideoFillCircle(color, x, y, r);
}
global void VideoFillTransCircleClip(SDL_Color color, int x, int y,
- int w, unsigned char alpha)
+ int r, unsigned char alpha)
{
-// DebugCheck(1);
+ // FIXME: clip, trans
+ VideoFillCircle(color, x, y, r);
}
global void DebugTestDisplayLines(void)
- [Stratagus-CVS] stratagus/src/video linedraw.c, Nehal Mistry, 2003/11/18
- [Stratagus-CVS] stratagus/src/video linedraw.c,
Nehal Mistry <=
- [Stratagus-CVS] stratagus/src/video linedraw.c, Nehal Mistry, 2003/11/21
- [Stratagus-CVS] stratagus/src/video linedraw.c, Nehal Mistry, 2003/11/22
- [Stratagus-CVS] stratagus/src/video linedraw.c, Nehal Mistry, 2003/11/27
- [Stratagus-CVS] stratagus/src/video linedraw.c, Nehal Mistry, 2003/11/27
- [Stratagus-CVS] stratagus/src/video linedraw.c, Nehal Mistry, 2003/11/27
- [Stratagus-CVS] stratagus/src/video linedraw.c, Nehal Mistry, 2003/11/28
- [Stratagus-CVS] stratagus/src/video linedraw.c, Nehal Mistry, 2003/11/29