mirror of
https://github.com/reactos/reactos.git
synced 2025-08-04 03:46:38 +00:00
patch by Jeffrey Morlan (mrnobo1024 at yahoo dot com)
Testcase for NtGdiSetDIBitsToDeviceInternal See issue #3294 for more details. svn path=/trunk/; revision=33781
This commit is contained in:
parent
58871282fd
commit
2027d8d907
2 changed files with 54 additions and 0 deletions
|
@ -0,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;
|
||||||
|
}
|
|
@ -22,6 +22,7 @@
|
||||||
#include "ntgdi/NtGdiSelectFont.c"
|
#include "ntgdi/NtGdiSelectFont.c"
|
||||||
#include "ntgdi/NtGdiSelectPen.c"
|
#include "ntgdi/NtGdiSelectPen.c"
|
||||||
#include "ntgdi/NtGdiSetBitmapBits.c"
|
#include "ntgdi/NtGdiSetBitmapBits.c"
|
||||||
|
#include "ntgdi/NtGdiSetDIBitsToDeviceInternal.c"
|
||||||
//#include "ntgdi/NtGdiSTROBJ_vEnumStart.c"
|
//#include "ntgdi/NtGdiSTROBJ_vEnumStart.c"
|
||||||
#include "ntgdi/NtGdiGetDIBits.c"
|
#include "ntgdi/NtGdiGetDIBits.c"
|
||||||
#include "ntgdi/NtGdiGetStockObject.c"
|
#include "ntgdi/NtGdiGetStockObject.c"
|
||||||
|
@ -64,6 +65,7 @@ TESTENTRY TestList[] =
|
||||||
{ L"NtGdiGetFontResourceInfoInternalW", Test_NtGdiGetFontResourceInfoInternalW },
|
{ L"NtGdiGetFontResourceInfoInternalW", Test_NtGdiGetFontResourceInfoInternalW },
|
||||||
{ L"NtGdiGetRandomRgn", Test_NtGdiGetRandomRgn },
|
{ L"NtGdiGetRandomRgn", Test_NtGdiGetRandomRgn },
|
||||||
{ L"NtGdiSetBitmapBits", Test_NtGdiSetBitmapBits },
|
{ L"NtGdiSetBitmapBits", Test_NtGdiSetBitmapBits },
|
||||||
|
{ L"NtGdiSetDIBitsToDeviceInternal", Test_NtGdiSetDIBitsToDeviceInternal },
|
||||||
{ L"NtGdiSelectBitmap", Test_NtGdiSelectBitmap },
|
{ L"NtGdiSelectBitmap", Test_NtGdiSelectBitmap },
|
||||||
{ L"NtGdiSelectBrush", Test_NtGdiSelectBrush },
|
{ L"NtGdiSelectBrush", Test_NtGdiSelectBrush },
|
||||||
{ L"NtGdiSelectFont", Test_NtGdiSelectFont },
|
{ L"NtGdiSelectFont", Test_NtGdiSelectFont },
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue