mirror of
https://github.com/reactos/reactos.git
synced 2025-08-07 05:52:57 +00:00
parent
e7846c0c67
commit
62f6e3b397
42 changed files with 2715 additions and 2715 deletions
|
@ -10,89 +10,89 @@
|
|||
void
|
||||
ReadBits(HDC hDC, PDWORD OutBits)
|
||||
{
|
||||
int x,y;
|
||||
int x,y;
|
||||
|
||||
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;
|
||||
}
|
||||
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;
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
START_TEST(NtGdiSetDIBitsToDeviceInternal)
|
||||
{
|
||||
static const DWORD InBits[8] = { 0x81, 0x7E, 0x5A, 0x7E, 0x7E, 0x42, 0x7E, 0x81 };
|
||||
DWORD OutBits[8];
|
||||
XFORM xform;
|
||||
static const DWORD InBits[8] = { 0x81, 0x7E, 0x5A, 0x7E, 0x7E, 0x42, 0x7E, 0x81 };
|
||||
DWORD OutBits[8];
|
||||
XFORM xform;
|
||||
|
||||
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;
|
||||
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;
|
||||
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));
|
||||
/* 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 */
|
||||
ReadBits(hDC, OutBits);
|
||||
/* Now get the data from the screen, and see if it matches */
|
||||
ReadBits(hDC, OutBits);
|
||||
|
||||
TEST(memcmp(InBits, OutBits, sizeof(InBits)) == 0);
|
||||
TEST(memcmp(InBits, OutBits, sizeof(InBits)) == 0);
|
||||
|
||||
/* Change transformation */
|
||||
GetWorldTransform(hDC, &xform);
|
||||
xform.eM11 = 2;
|
||||
xform.eM22 = 2;
|
||||
xform.eDx = 10;
|
||||
SetWorldTransform(hDC, &xform);
|
||||
/* Change transformation */
|
||||
GetWorldTransform(hDC, &xform);
|
||||
xform.eM11 = 2;
|
||||
xform.eM22 = 2;
|
||||
xform.eDx = 10;
|
||||
SetWorldTransform(hDC, &xform);
|
||||
|
||||
TEST(NtGdiSetDIBitsToDeviceInternal(hDC, 2, 3, 8, 8, 0, 0, 0, 8,
|
||||
(PVOID)InBits, (BITMAPINFO *)&bmi, DIB_RGB_COLORS,
|
||||
sizeof(InBits), sizeof(bmi), TRUE, NULL));
|
||||
TEST(NtGdiSetDIBitsToDeviceInternal(hDC, 2, 3, 8, 8, 0, 0, 0, 8,
|
||||
(PVOID)InBits, (BITMAPINFO *)&bmi, DIB_RGB_COLORS,
|
||||
sizeof(InBits), sizeof(bmi), TRUE, NULL));
|
||||
|
||||
xform.eM11 = 1;
|
||||
xform.eM22 = 1;
|
||||
xform.eDx = 0;
|
||||
SetWorldTransform(hDC, &xform);
|
||||
xform.eM11 = 1;
|
||||
xform.eM22 = 1;
|
||||
xform.eDx = 0;
|
||||
SetWorldTransform(hDC, &xform);
|
||||
|
||||
/* 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;
|
||||
}
|
||||
/* 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);
|
||||
TEST(memcmp(InBits, OutBits, sizeof(InBits)) == 0);
|
||||
|
||||
|
||||
ReleaseDC(hWnd, hDC);
|
||||
DestroyWindow(hWnd);
|
||||
ReleaseDC(hWnd, hDC);
|
||||
DestroyWindow(hWnd);
|
||||
|
||||
}
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue