From f7b4a4e2f194cc5f7d96fea76ac8b8db1c772295 Mon Sep 17 00:00:00 2001 From: Alexandre Julliard Date: Wed, 21 Jul 2004 03:41:27 +0000 Subject: [PATCH] Moved LineDDA implementation to dlls/gdi/painting.c. --- dlls/gdi/Makefile.in | 1 - dlls/gdi/painting.c | 57 +++++++++++++++++++++++++++++++++++++++++ objects/linedda.c | 71 ---------------------------------------------------- 3 files changed, 57 insertions(+), 72 deletions(-) delete mode 100644 objects/linedda.c diff --git a/dlls/gdi/Makefile.in b/dlls/gdi/Makefile.in index 81e64c68685..5e669f30f12 100644 --- a/dlls/gdi/Makefile.in +++ b/dlls/gdi/Makefile.in @@ -24,7 +24,6 @@ C_SRCS = \ $(TOPOBJDIR)/objects/enhmetafile.c \ $(TOPOBJDIR)/objects/font.c \ $(TOPOBJDIR)/objects/gdiobj.c \ - $(TOPOBJDIR)/objects/linedda.c \ $(TOPOBJDIR)/objects/metafile.c \ $(TOPOBJDIR)/objects/palette.c \ $(TOPOBJDIR)/objects/pen.c \ diff --git a/dlls/gdi/painting.c b/dlls/gdi/painting.c index 947ee68540c..7d5289e8870 100644 --- a/dlls/gdi/painting.c +++ b/dlls/gdi/painting.c @@ -877,6 +877,63 @@ BOOL WINAPI PolyDraw(HDC hdc, const POINT *lppt, const BYTE *lpbTypes, return TRUE; } + +/********************************************************************** + * LineDDA (GDI32.@) + */ +BOOL WINAPI LineDDA(INT nXStart, INT nYStart, INT nXEnd, INT nYEnd, + LINEDDAPROC callback, LPARAM lParam ) +{ + INT xadd = 1, yadd = 1; + INT err,erradd; + INT cnt; + INT dx = nXEnd - nXStart; + INT dy = nYEnd - nYStart; + + if (dx < 0) + { + dx = -dx; + xadd = -1; + } + if (dy < 0) + { + dy = -dy; + yadd = -1; + } + if (dx > dy) /* line is "more horizontal" */ + { + err = 2*dy - dx; erradd = 2*dy - 2*dx; + for(cnt = 0;cnt <= dx; cnt++) + { + callback(nXStart,nYStart,lParam); + if (err > 0) + { + nYStart += yadd; + err += erradd; + } + else err += 2*dy; + nXStart += xadd; + } + } + else /* line is "more vertical" */ + { + err = 2*dx - dy; erradd = 2*dx - 2*dy; + for(cnt = 0;cnt <= dy; cnt++) + { + callback(nXStart,nYStart,lParam); + if (err > 0) + { + nXStart += xadd; + err += erradd; + } + else err += 2*dx; + nYStart += yadd; + } + } + return TRUE; +} + + /****************************************************************** * * *Very* simple bezier drawing code, diff --git a/objects/linedda.c b/objects/linedda.c deleted file mode 100644 index a99da9e08e5..00000000000 --- a/objects/linedda.c +++ /dev/null @@ -1,71 +0,0 @@ -/* - * LineDDA - * - * Copyright 1993 Bob Amstadt - * - * This library is free software; you can redistribute it and/or - * modify it under the terms of the GNU Lesser General Public - * License as published by the Free Software Foundation; either - * version 2.1 of the License, or (at your option) any later version. - * - * This library is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - * Lesser General Public License for more details. - * - * You should have received a copy of the GNU Lesser General Public - * License along with this library; if not, write to the Free Software - * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA - */ - -#include -#include -#include "windef.h" -#include "winbase.h" -#include "wingdi.h" - -/********************************************************************** - * LineDDA (GDI32.@) - */ -BOOL WINAPI LineDDA(INT nXStart, INT nYStart, INT nXEnd, INT nYEnd, - LINEDDAPROC callback, LPARAM lParam ) -{ - INT xadd = 1, yadd = 1; - INT err,erradd; - INT cnt; - INT dx = nXEnd - nXStart; - INT dy = nYEnd - nYStart; - - if (dx < 0) { - dx = -dx; xadd = -1; - } - if (dy < 0) { - dy = -dy; yadd = -1; - } - if (dx > dy) { /* line is "more horizontal" */ - err = 2*dy - dx; erradd = 2*dy - 2*dx; - for(cnt = 0;cnt <= dx; cnt++) { - callback(nXStart,nYStart,lParam); - if (err > 0) { - nYStart += yadd; - err += erradd; - } else { - err += 2*dy; - } - nXStart += xadd; - } - } else { /* line is "more vertical" */ - err = 2*dx - dy; erradd = 2*dx - 2*dy; - for(cnt = 0;cnt <= dy; cnt++) { - callback(nXStart,nYStart,lParam); - if (err > 0) { - nXStart += xadd; - err += erradd; - } else { - err += 2*dx; - } - nYStart += yadd; - } - } - return TRUE; -} -- 2.11.4.GIT