Win32: Fix Screen_FillRect() : add clipping
This commit is contained in:
parent
9f9c21de21
commit
26d0b8339f
@ -346,6 +346,24 @@ void Screen_FillRect(int x, int y, int w, int h, byte color)
|
||||
int i;
|
||||
byte * ptr;
|
||||
|
||||
if (x < 0)
|
||||
{
|
||||
w += x;
|
||||
x = 0;
|
||||
}
|
||||
if (y < 0)
|
||||
{
|
||||
h += y;
|
||||
y = 0;
|
||||
}
|
||||
if (x > Windows_DIB_width || y > Windows_DIB_height)
|
||||
return;
|
||||
if ((x + w) > Windows_DIB_width)
|
||||
w = Windows_DIB_width - x;
|
||||
if ((y + h) > Windows_DIB_height)
|
||||
h = Windows_DIB_height - y;
|
||||
if (w <= 0 || h <= 0)
|
||||
return;
|
||||
for (i = 0; i < h; i++) {
|
||||
ptr = Get_Screen_pixel_ptr(x, y + i);
|
||||
memset(ptr, color, w);
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user