[Scummvm-cvs-logs] CVS: scummvm/sword2/driver render.cpp,1.74,1.75
Max Horn
fingolfin at users.sourceforge.net
Wed Apr 27 13:31:17 CEST 2005
Update of /cvsroot/scummvm/scummvm/sword2/driver
In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv5158/sword2/driver
Modified Files:
render.cpp
Log Message:
Patch #1186744 (Common line-drawing function)
Index: render.cpp
===================================================================
RCS file: /cvsroot/scummvm/scummvm/sword2/driver/render.cpp,v
retrieving revision 1.74
retrieving revision 1.75
diff -u -d -r1.74 -r1.75
--- render.cpp 20 Apr 2005 14:45:23 -0000 1.74
+++ render.cpp 27 Apr 2005 20:29:19 -0000 1.75
@@ -21,6 +21,8 @@
#include "common/stdafx.h"
#include "common/system.h"
+#include "graphics/primitives.h"
+
#include "sword2/sword2.h"
#include "sword2/defs.h"
#include "sword2/build_display.h"
@@ -225,48 +227,7 @@
*/
void Screen::drawLine(int x0, int y0, int x1, int y1, uint8 colour) {
- drawLine(x0, y0, x1, y1, colour, &plot, this);
-}
-
-// TODO: Main line-drawing function. Move this somewhere where other engines
-// can benefit from it.
-
-void Screen::drawLine(int x0, int y0, int x1, int y1, int color, void (*plotProc)(int, int, int, void *), void *data) {
- // Bresenham's line algorithm, as described by Wikipedia
- bool steep = ABS(y1 - y0) > ABS(x1 - x0);
-
- if (steep) {
- SWAP(x0, y0);
- SWAP(x1, y1);
- }
-
- int delta_x = ABS(x1 - x0);
- int delta_y = ABS(y1 - y0);
- int err = 0;
- int delta_err = delta_y;
- int x = x0;
- int y = y0;
-
- int x_step = (x0 < x1) ? 1 : -1;
- int y_step = (y0 < y1) ? 1 : -1;
-
- if (steep)
- (*plotProc)(y, x, color, data);
- else
- (*plotProc)(x, y, color, data);
-
- while (x != x1) {
- x += x_step;
- err += delta_err;
- if (2 * err > delta_x) {
- y += y_step;
- err -= delta_x;
- }
- if (steep)
- (*plotProc)(y, x, color, data);
- else
- (*plotProc)(x, y, color, data);
- }
+ Graphics::drawLine(x0, y0, x1, y1, colour, &plot, this);
}
/**
More information about the Scummvm-git-logs
mailing list