Module: wine Branch: master Commit: 18b891694266435edfeece184ab7cecf3d59f56b URL: http://source.winehq.org/git/wine.git/?a=commit;h=18b891694266435edfeece184a...
Author: Tony Wasserka tony.wasserka@freenet.de Date: Sat Aug 21 12:54:38 2010 +0200
d3dx9: Black out pixels which are outside the source rect in D3DXLoadSurfaceFromMemory if no stretching is used.
---
dlls/d3dx9_36/surface.c | 7 ++++++- 1 files changed, 6 insertions(+), 1 deletions(-)
diff --git a/dlls/d3dx9_36/surface.c b/dlls/d3dx9_36/surface.c index 487f06f..ca4fd25 100644 --- a/dlls/d3dx9_36/surface.c +++ b/dlls/d3dx9_36/surface.c @@ -526,6 +526,7 @@ static void make_argb_color(CONST struct argb_conversion_info *info, CONST DWORD * * Copies the source buffer to the destination buffer, performing * any necessary format conversion and color keying. + * Pixels outsize the source rect are blacked out. * Works only for ARGB formats with 1 - 4 bytes per pixel. */ static void copy_simple_data(CONST BYTE *src, UINT srcpitch, POINT srcsize, CONST PixelFormatDesc *srcformat, @@ -555,8 +556,12 @@ static void copy_simple_data(CONST BYTE *src, UINT srcpitch, POINT srcsize, C srcptr += srcformat->bytes_per_pixel; destptr += destformat->bytes_per_pixel; } + + if(srcsize.x < destsize.x) /* black out remaining pixels */ + ZeroMemory(destptr, destformat->bytes_per_pixel * (destsize.x - srcsize.x)); } - /* TODO: Black out unused pixels */ + if(srcsize.y < destsize.y) /* black out remaining pixels */ + ZeroMemory(dest + srcsize.y * destpitch, destpitch * (destsize.y - srcsize.y)); }
/************************************************************