2 Copyright (C) 1996-1997 Id Software, Inc.
4 This program is free software; you can redistribute it and/or
5 modify it under the terms of the GNU General Public License
6 as published by the Free Software Foundation; either version 2
7 of the License, or (at your option) any later version.
9 This program is distributed in the hope that it will be useful,
10 but WITHOUT ANY WARRANTY; without even the implied warranty of
11 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
13 See the GNU General Public License for more details.
15 You should have received a copy of the GNU General Public License
16 along with this program; if not, write to the Free Software
17 Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
20 // d_clear: clears a specified rectangle to the specified color
30 void D_FillRect (vrect_t
*rect
, int color
)
32 int rx
, ry
, rwidth
, rheight
;
39 rheight
= rect
->height
;
51 if (rx
+rwidth
> vid
.width
)
52 rwidth
= vid
.width
- rx
;
53 if (ry
+rheight
> vid
.height
)
54 rheight
= vid
.height
- rx
;
56 if (rwidth
< 1 || rheight
< 1)
59 dest
= ((byte
*)vid
.buffer
+ ry
*vid
.rowbytes
+ rx
);
61 if (((rwidth
& 0x03) == 0) && (((long)dest
& 0x03) == 0))
63 // faster aligned dword clear
64 ldest
= (unsigned *)dest
;
70 for (ry
=0 ; ry
<rheight
; ry
++)
72 for (rx
=0 ; rx
<rwidth
; rx
++)
74 ldest
= (unsigned *)((byte
*)ldest
+ vid
.rowbytes
);
79 // slower byte-by-byte clear for unaligned cases
80 for (ry
=0 ; ry
<rheight
; ry
++)
82 for (rx
=0 ; rx
<rwidth
; rx
++)