Huw Davies : gdi32: Calculate the stride from the image size.

Alexandre Julliard julliard at winehq.org
Mon Feb 13 15:24:40 CST 2017


Module: wine
Branch: master
Commit: 0bec2f7965db53ca369aaa0b84d07fa73d626d5c
URL:    http://source.winehq.org/git/wine.git/?a=commit;h=0bec2f7965db53ca369aaa0b84d07fa73d626d5c

Author: Huw Davies <huw at codeweavers.com>
Date:   Mon Feb 13 14:08:04 2017 +0000

gdi32: Calculate the stride from the image size.

This allows bitmaps to be created by D3DKMTCreateDCFromMemory() which have more freedom
in their choice of stride.

Signed-off-by: Huw Davies <huw at codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard at winehq.org>

---

 dlls/gdi32/dibdrv/dc.c | 5 ++++-
 1 file changed, 4 insertions(+), 1 deletion(-)

diff --git a/dlls/gdi32/dibdrv/dc.c b/dlls/gdi32/dibdrv/dc.c
index 9bd263c..aee305f 100644
--- a/dlls/gdi32/dibdrv/dc.c
+++ b/dlls/gdi32/dibdrv/dc.c
@@ -154,7 +154,10 @@ static void init_dib_info(dib_info *dib, const BITMAPINFOHEADER *bi, int stride,
 
 void init_dib_info_from_bitmapinfo(dib_info *dib, const BITMAPINFO *info, void *bits)
 {
-    init_dib_info( dib, &info->bmiHeader, get_dib_stride( info->bmiHeader.biWidth, info->bmiHeader.biBitCount ),
+    int width_bytes = get_dib_stride( info->bmiHeader.biWidth, info->bmiHeader.biBitCount );
+    if (info->bmiHeader.biSizeImage)
+        width_bytes = info->bmiHeader.biSizeImage / abs( info->bmiHeader.biHeight );
+    init_dib_info( dib, &info->bmiHeader, width_bytes,
                    (const DWORD *)info->bmiColors, info->bmiColors, bits );
 }
 




More information about the wine-cvs mailing list