[PATCH 2/5] gdi32/tests: Test RGBQUAD.rgbReserved in SetDIBColorTable.

Stefan Dösinger stefan at codeweavers.com
Wed May 7 08:16:35 CDT 2014


The purpose of this test is to show that wined3d does not have to clear
peFlags / rgbReserved in the next patch before passing it to gdi.
---
 dlls/gdi32/tests/bitmap.c | 44 ++++++++++++++++++++++++++++++++++++++++++++
 1 file changed, 44 insertions(+)

diff --git a/dlls/gdi32/tests/bitmap.c b/dlls/gdi32/tests/bitmap.c
index 39ca454..f989b34 100644
--- a/dlls/gdi32/tests/bitmap.c
+++ b/dlls/gdi32/tests/bitmap.c
@@ -5616,6 +5616,49 @@ static void test_SetDIBitsToDevice_RLE8(void)
     HeapFree( GetProcessHeap(), 0, info );
 }
 
+static void test_SetDIBColorTable_Reserved(void)
+{
+    HBITMAP bitmap;
+    BITMAPINFO *info;
+    void *data;
+    HDC dc;
+    RGBQUAD rgbquad;
+    UINT count;
+
+    info = HeapAlloc( GetProcessHeap(), HEAP_ZERO_MEMORY, FIELD_OFFSET( BITMAPINFO, bmiColors[256] ) );
+    info->bmiHeader.biSize = sizeof(info->bmiHeader);
+    info->bmiHeader.biHeight = 16;
+    info->bmiHeader.biWidth = 16;
+    info->bmiHeader.biBitCount = 8;
+    info->bmiHeader.biPlanes = 1;
+    info->bmiHeader.biCompression = BI_RGB;
+
+    bitmap = CreateDIBSection( 0, info, DIB_RGB_COLORS, &data, 0, 0 );
+    ok( bitmap != NULL, "CreateDIBSection error %d\n", GetLastError() );
+    HeapFree( GetProcessHeap(), 0, info );
+
+    dc = CreateCompatibleDC(0);
+    SelectObject(dc, bitmap);
+
+    rgbquad.rgbRed = 1;
+    rgbquad.rgbGreen = 2;
+    rgbquad.rgbBlue = 3;
+    rgbquad.rgbReserved = 123;
+    count = SetDIBColorTable( dc, 0, 1, &rgbquad );
+    ok( count == 1, "SetDIBColorTable returned unexpected result %u\n", count );
+    ok( rgbquad.rgbReserved == 123, "Expected rgbReserved = 123, got %u\n", rgbquad.rgbReserved );
+
+    count = GetDIBColorTable( dc, 0, 1, &rgbquad );
+    ok( count == 1, "GetDIBColorTable returned unexpected result %u\n", count );
+    ok( rgbquad.rgbRed == 1, "Expected rgbRed = 1, got %u\n", rgbquad.rgbRed );
+    ok( rgbquad.rgbGreen == 2, "Expected rgbGreen = 2, got %u\n", rgbquad.rgbGreen );
+    ok( rgbquad.rgbBlue == 3, "Expected rgbBlue = 3, got %u\n", rgbquad.rgbBlue );
+    todo_wine ok( rgbquad.rgbReserved == 0, "Expected rgbReserved = 0, got %u\n", rgbquad.rgbReserved );
+
+    DeleteDC(dc);
+    DeleteObject(bitmap);
+}
+
 START_TEST(bitmap)
 {
     HMODULE hdll;
@@ -5660,4 +5703,5 @@ START_TEST(bitmap)
     test_SetDIBits_RLE8();
     test_SetDIBitsToDevice();
     test_SetDIBitsToDevice_RLE8();
+    test_SetDIBColorTable_Reserved();
 }
-- 
1.8.5.5




More information about the wine-patches mailing list