Author: tkreuzer Date: Fri May 30 19:04:16 2008 New Revision: 33781
URL: http://svn.reactos.org/svn/reactos?rev=33781&view=rev Log: patch by Jeffrey Morlan (mrnobo1024 at yahoo dot com) Testcase for NtGdiSetDIBitsToDeviceInternal See issue #3294 for more details.
Added: trunk/rostests/apitests/w32knapi/ntgdi/NtGdiSetDIBitsToDeviceInternal.c (with props) Modified: trunk/rostests/apitests/w32knapi/testlist.c
Added: trunk/rostests/apitests/w32knapi/ntgdi/NtGdiSetDIBitsToDeviceInternal.c URL: http://svn.reactos.org/svn/reactos/trunk/rostests/apitests/w32knapi/ntgdi/Nt... ============================================================================== --- trunk/rostests/apitests/w32knapi/ntgdi/NtGdiSetDIBitsToDeviceInternal.c (added) +++ trunk/rostests/apitests/w32knapi/ntgdi/NtGdiSetDIBitsToDeviceInternal.c [iso-8859-1] Fri May 30 19:04:16 2008 @@ -1,0 +1,52 @@ +INT +Test_NtGdiSetDIBitsToDeviceInternal(PTESTINFO pti) +{ + static const DWORD InBits[8] = { 0x81, 0x7E, 0x5A, 0x7E, 0x7E, 0x42, 0x7E, 0x81 }; + DWORD OutBits[8]; + + HWND hWnd = CreateWindowW(L"Static", NULL, WS_VISIBLE, + 100, 100, 200, 200, + NULL, NULL, NULL, NULL); + /* This DC has an nonzero origin */ + HDC hDC = GetDC(hWnd); + struct + { + BITMAPINFOHEADER bmiHeader; + RGBQUAD bmiColors[2]; + } bmi; + int x, y; + + bmi.bmiHeader.biSize = sizeof(BITMAPINFOHEADER); + bmi.bmiHeader.biWidth = 8; + bmi.bmiHeader.biHeight = -8; + bmi.bmiHeader.biPlanes = 1; + bmi.bmiHeader.biBitCount = 1; + bmi.bmiHeader.biCompression = 0; + bmi.bmiHeader.biSizeImage = 0; + bmi.bmiHeader.biXPelsPerMeter = 0; + bmi.bmiHeader.biYPelsPerMeter = 0; + bmi.bmiHeader.biClrUsed = 0; + bmi.bmiHeader.biClrImportant = 0; + *(DWORD *)&bmi.bmiColors[0] = 0x000000; + *(DWORD *)&bmi.bmiColors[1] = 0xFFFFFF; + + /* The destination coordinates are relative to the DC origin */ + TEST(NtGdiSetDIBitsToDeviceInternal(hDC, 2, 3, 8, 8, 0, 0, 0, 8, + (PVOID)InBits, (BITMAPINFO *)&bmi, DIB_RGB_COLORS, + sizeof(InBits), sizeof(bmi), TRUE, NULL)); + + /* Now get the data from the screen, and see if it matches */ + for (y = 0; y < 8; y++) + { + DWORD Row = 0; + for (x = 0; x < 8; x++) + Row |= (0x80 & GetPixel(hDC, 2 + x, 3 + y)) >> x; + OutBits[y] = Row; + } + TEST(memcmp(InBits, OutBits, sizeof(InBits)) == 0); + + ReleaseDC(hWnd, hDC); + DestroyWindow(hWnd); + + return APISTATUS_NORMAL; +}
Propchange: trunk/rostests/apitests/w32knapi/ntgdi/NtGdiSetDIBitsToDeviceInternal.c ------------------------------------------------------------------------------ svn:eol-style = native
Modified: trunk/rostests/apitests/w32knapi/testlist.c URL: http://svn.reactos.org/svn/reactos/trunk/rostests/apitests/w32knapi/testlist... ============================================================================== --- trunk/rostests/apitests/w32knapi/testlist.c [iso-8859-1] (original) +++ trunk/rostests/apitests/w32knapi/testlist.c [iso-8859-1] Fri May 30 19:04:16 2008 @@ -22,6 +22,7 @@ #include "ntgdi/NtGdiSelectFont.c" #include "ntgdi/NtGdiSelectPen.c" #include "ntgdi/NtGdiSetBitmapBits.c" +#include "ntgdi/NtGdiSetDIBitsToDeviceInternal.c" //#include "ntgdi/NtGdiSTROBJ_vEnumStart.c" #include "ntgdi/NtGdiGetDIBits.c" #include "ntgdi/NtGdiGetStockObject.c" @@ -64,6 +65,7 @@ { L"NtGdiGetFontResourceInfoInternalW", Test_NtGdiGetFontResourceInfoInternalW }, { L"NtGdiGetRandomRgn", Test_NtGdiGetRandomRgn }, { L"NtGdiSetBitmapBits", Test_NtGdiSetBitmapBits }, + { L"NtGdiSetDIBitsToDeviceInternal", Test_NtGdiSetDIBitsToDeviceInternal }, { L"NtGdiSelectBitmap", Test_NtGdiSelectBitmap }, { L"NtGdiSelectBrush", Test_NtGdiSelectBrush }, { L"NtGdiSelectFont", Test_NtGdiSelectFont },