4 * Copyright 1993 Bob Amstadt
6 * This library is free software; you can redistribute it and/or
7 * modify it under the terms of the GNU Lesser General Public
8 * License as published by the Free Software Foundation; either
9 * version 2.1 of the License, or (at your option) any later version.
11 * This library is distributed in the hope that it will be useful,
12 * but WITHOUT ANY WARRANTY; without even the implied warranty of
13 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
14 * Lesser General Public License for more details.
16 * You should have received a copy of the GNU Lesser General Public
17 * License along with this library; if not, write to the Free Software
18 * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
24 #include "wine/wingdi16.h"
26 /* ### start build ### */
27 extern WORD CALLBACK
DDA_CallTo16_word_wwl(LINEDDAPROC16
,WORD
,WORD
,LONG
);
28 /* ### stop build ### */
37 static void CALLBACK
DDA_callback( INT x
, INT y
, LPARAM param
)
39 const struct linedda16_info
*info
= (struct linedda16_info
*)param
;
40 DDA_CallTo16_word_wwl( info
->proc
, x
, y
, info
->param
);
43 /**********************************************************************
46 BOOL WINAPI
LineDDA(INT nXStart
, INT nYStart
, INT nXEnd
, INT nYEnd
,
47 LINEDDAPROC callback
, LPARAM lParam
)
49 INT xadd
= 1, yadd
= 1;
52 INT dx
= nXEnd
- nXStart
;
53 INT dy
= nYEnd
- nYStart
;
61 if (dx
> dy
) { /* line is "more horizontal" */
62 err
= 2*dy
- dx
; erradd
= 2*dy
- 2*dx
;
63 for(cnt
= 0;cnt
<= dx
; cnt
++) {
64 callback(nXStart
,nYStart
,lParam
);
73 } else { /* line is "more vertical" */
74 err
= 2*dx
- dy
; erradd
= 2*dx
- 2*dy
;
75 for(cnt
= 0;cnt
<= dy
; cnt
++) {
76 callback(nXStart
,nYStart
,lParam
);
90 /**********************************************************************
93 void WINAPI
LineDDA16( INT16 nXStart
, INT16 nYStart
, INT16 nXEnd
,
94 INT16 nYEnd
, LINEDDAPROC16 proc
, LPARAM lParam
)
96 struct linedda16_info info
;
99 LineDDA( nXStart
, nYStart
, nXEnd
, nYEnd
, DDA_callback
, (LPARAM
)&info
);