Module: wine Branch: master Commit: ce2c593d64edd9f304501d5b41771a05e3f1c815 URL: http://source.winehq.org/git/wine.git/?a=commit;h=ce2c593d64edd9f304501d5b41...
Author: Huw Davies huw@codeweavers.com Date: Wed Jun 1 09:41:40 2011 +0100
gdi32/tests: Add tests for 24 bpp dibs.
---
dlls/gdi32/tests/dib.c | 49 +++++++++++++++++++++++++++++++++++++++++++++++- 1 files changed, 48 insertions(+), 1 deletions(-)
diff --git a/dlls/gdi32/tests/dib.c b/dlls/gdi32/tests/dib.c index 4322ed8..e1ef345 100644 --- a/dlls/gdi32/tests/dib.c +++ b/dlls/gdi32/tests/dib.c @@ -130,6 +130,34 @@ static const char *sha1_graphics_a8b8g8r8[] = NULL };
+static const char *sha1_graphics_24[] = +{ + "e993b15c9bd14fb45a15310450b7083c44e42665", + "edbd7bab3d957fbc85e89612197cf918f5f5af20", + "6a7efb3b6e0b49336df1bd2937ca09a11d976531", + "236eb5ca9da70ec7cc719cd2fd291bab14000257", + "f98023c7cd8c068f2d7a77ce3600004b90ea12d6", + "5c4cb9cea2226fc671bb4a11f8253343ee94bb4b", + "fd4be592483623dbc800fe28210a1f0daa71999b", + "788b8de98c47974fa9f232a6042ae4ca546ddb7d", + "a8772e6c44ba633fb384a7c4b50b435f1406107e", + "883bc8f305c602edca785e21cd00f488583fb13f", + "3bac4e80993f49dc3926e30524115fca9d7a8026", + "91369e35be29059a0665782541db4c8b324c6bb2", + "0fa8cf332a56bb6d7e14e85861fdd60f51d70501", + "593d694cdcc8349b3bfc8257041dbcb27e61da45", + "1036b91d93e31cd1d4740d0c8642e115e5a38188", + "3469776cc7d8f6fd3bce17a39eec0b4092294e49", + "1cb7f3fcf42c9ca47a0689195ced239a09d3c308", + "0bb222e540b82720d4971e4a2fc626899af03e03", + "adc20832d8c43f1cf372d8392535492013cd2306", + "45649794dcbcabda487f66f7a80fc1bec79047a1", + "b4df692ac70a5f9f303270df4641ab014c6cbf46", + "8bc3128ba47891366fd7b02fde7ca19100e64b9f", + "e649e00efe7fea1eb8b17f7867fe089e5270c44b", + NULL +}; + static const char *sha1_graphics_r5g5b5[] = { "2a2ab8b3c019e70b788ade028b0e9e53ffc529ae", @@ -630,7 +658,11 @@ static void draw_graphics(HDC hdc, BITMAPINFO *bmi, BYTE *bits, const char ***sh dib_brush = CreateDIBPatternBrushPt(brush_bi, DIB_RGB_COLORS);
SelectObject(hdc, dib_brush); - SetBrushOrgEx(hdc, 100, 100, NULL); + + /* This used to set the x origin to 100 as well, but + there's a Windows bug for 24 bpp where the brush's x offset + is incorrectly calculated for rops that involve both D and P */ + SetBrushOrgEx(hdc, 4, 100, NULL);
for(i = 0, y = 10; i < 256; i++) { @@ -884,6 +916,21 @@ static void test_simple_graphics(void) SelectObject(mem_dc, orig_bm); DeleteObject(dib);
+ /* 24 */ + trace("24\n"); + bmi->bmiHeader.biBitCount = 24; + bmi->bmiHeader.biCompression = BI_RGB; + + dib = CreateDIBSection(0, bmi, DIB_RGB_COLORS, (void**)&bits, NULL, 0); + ok(dib != NULL, "ret NULL\n"); + orig_bm = SelectObject(mem_dc, dib); + + sha1 = sha1_graphics_24; + draw_graphics(mem_dc, bmi, bits, &sha1); + + SelectObject(mem_dc, orig_bm); + DeleteObject(dib); + /* r5g5b5 */ trace("555\n"); bmi->bmiHeader.biBitCount = 16;