From: Jérôme Gardou Date: Tue, 1 Mar 2011 20:50:47 +0000 (+0000) Subject: [GDI32_APITEST] X-Git-Tag: ReactOS-0.3.13~97 X-Git-Url: https://git.reactos.org/?p=reactos.git;a=commitdiff_plain;h=a5115608c929f2b222204c3b97abf92f5cfbef7e [GDI32_APITEST] - add a basic test for SetDIBits svn path=/trunk/; revision=50946 --- diff --git a/rostests/apitests/gdi32/CMakeLists.txt b/rostests/apitests/gdi32/CMakeLists.txt index 75490291dc7..30885c9f0c9 100644 --- a/rostests/apitests/gdi32/CMakeLists.txt +++ b/rostests/apitests/gdi32/CMakeLists.txt @@ -40,6 +40,7 @@ list(APPEND SOURCE MaskBlt.c SelectObject.c SetDCPenColor.c + SetDIBits.c SetMapMode.c SetSysColors.c SetWindowExtEx.c diff --git a/rostests/apitests/gdi32/SetDIBits.c b/rostests/apitests/gdi32/SetDIBits.c new file mode 100644 index 00000000000..42dc0604988 --- /dev/null +++ b/rostests/apitests/gdi32/SetDIBits.c @@ -0,0 +1,56 @@ +/* + * PROJECT: ReactOS api tests + * LICENSE: GPL - See COPYING in the top level directory + * PURPOSE: Test for SetDIBits + * PROGRAMMERS: Jérôme Gardou + */ + +#include +#include +#include + + +void Test_SetDIBits() +{ + char buffer[sizeof(BITMAPINFOHEADER)+2*sizeof(RGBQUAD)]; + ULONG* dibBuffer; + BITMAPINFO* pBMI = (BITMAPINFO*)buffer; + DWORD bits1bpp[2] = {0, 1}; + HBITMAP hbmp; + int ret; + + ZeroMemory(buffer, sizeof(buffer)); + + pBMI->bmiHeader.biSize=sizeof(BITMAPINFOHEADER); + pBMI->bmiHeader.biWidth=2; + pBMI->bmiHeader.biHeight=1; + pBMI->bmiHeader.biPlanes=1; + pBMI->bmiHeader.biBitCount=32; + pBMI->bmiHeader.biCompression=BI_RGB; + pBMI->bmiHeader.biSizeImage=0; + pBMI->bmiHeader.biXPelsPerMeter=0; + pBMI->bmiHeader.biYPelsPerMeter=0; + pBMI->bmiHeader.biClrUsed=0; + pBMI->bmiHeader.biClrImportant=0; + + hbmp = CreateDIBSection(NULL, pBMI, DIB_RGB_COLORS, (PVOID*)&dibBuffer, NULL, 0); + ok(hbmp!=NULL, "Failed to create a DIB section\n"); + + pBMI->bmiHeader.biBitCount = 1; + pBMI->bmiColors[0].rgbBlue = 0xFF; + pBMI->bmiColors[0].rgbGreen = 0xFF; + pBMI->bmiColors[0].rgbRed = 0xFF; + + ret = SetDIBits(NULL, hbmp, 0, 1, bits1bpp, pBMI, DIB_RGB_COLORS); + ok(ret == 1, "Copied %i scanlines\n", ret); + + ok(dibBuffer[0] = 0xFFFFFF, "Wrong color 0x%08x after SetDIBits\n", (unsigned int)dibBuffer[0]); + ok(dibBuffer[1] = 0xFFFFFF, "Wrong color 0x%08x after SetDIBits\n", (unsigned int)dibBuffer[1]); + + DeleteObject(hbmp); +} + +START_TEST(SetDIBits) +{ + Test_SetDIBits(); +} diff --git a/rostests/apitests/gdi32/gdi32_apitest.rbuild b/rostests/apitests/gdi32/gdi32_apitest.rbuild index ec6849d5a4b..25dc88f055f 100644 --- a/rostests/apitests/gdi32/gdi32_apitest.rbuild +++ b/rostests/apitests/gdi32/gdi32_apitest.rbuild @@ -47,6 +47,7 @@ MaskBlt.c SelectObject.c SetDCPenColor.c + SetDIBits.c SetMapMode.c SetSysColors.c SetWindowExtEx.c diff --git a/rostests/apitests/gdi32/testlist.c b/rostests/apitests/gdi32/testlist.c index a2afeccdcd2..c9b59d3a0ae 100644 --- a/rostests/apitests/gdi32/testlist.c +++ b/rostests/apitests/gdi32/testlist.c @@ -43,6 +43,7 @@ extern void func_GetTextFace(void); extern void func_MaskBlt(void); extern void func_SelectObject(void); extern void func_SetDCPenColor(void); +extern void func_SetDIBits(void); extern void func_SetMapMode(void); extern void func_SetSysColors(void); extern void func_SetWindowExtEx(void); @@ -88,6 +89,7 @@ const struct test winetest_testlist[] = { "MaskBlt", func_MaskBlt }, { "SelectObject", func_SelectObject }, { "SetDCPenColor", func_SetDCPenColor }, + { "SetDIBits", func_SetDIBits }, { "SetMapMode", func_SetMapMode }, { "SetSysColors", func_SetSysColors }, { "SetWindowExtEx", func_SetWindowExtEx },