[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