mirror of
https://github.com/reactos/reactos.git
synced 2025-02-23 17:05:46 +00:00
[GDI32_APITEST]
- Add tests for GetDIBColorTable and SetPixel, - Add more tests for CreateBitmap, GetPixel, PatBlt svn path=/trunk/; revision=56492
This commit is contained in:
parent
5c32d6c764
commit
f0771d26df
7 changed files with 466 additions and 7 deletions
|
@ -37,6 +37,7 @@ list(APPEND SOURCE
|
|||
GdiSetAttrs.c
|
||||
GetClipRgn.c
|
||||
GetCurrentObject.c
|
||||
GetDIBColorTable.c
|
||||
GetDIBits.c
|
||||
GetObject.c
|
||||
GetRandomRgn.c
|
||||
|
@ -48,9 +49,11 @@ list(APPEND SOURCE
|
|||
PatBlt.c
|
||||
Rectangle.c
|
||||
SelectObject.c
|
||||
SetBrushOrgEx.c
|
||||
SetDCPenColor.c
|
||||
SetDIBits.c
|
||||
SetMapMode.c
|
||||
SetPixel.c
|
||||
SetSysColors.c
|
||||
SetWindowExtEx.c
|
||||
SetWorldTransform.c
|
||||
|
|
|
@ -11,6 +11,85 @@
|
|||
|
||||
#define DEFAULT_BITMAP 21
|
||||
|
||||
void Test_CreateBitmap_Params()
|
||||
{
|
||||
HBITMAP hbmp;
|
||||
|
||||
/* All of these should get us the default bitmap */
|
||||
hbmp = CreateBitmap(0, 0, 0, 0, NULL);
|
||||
ok(hbmp == GetStockObject(21), "should get the default bitmap\n");
|
||||
hbmp = CreateBitmap(1, 0, 0, 0, NULL);
|
||||
ok(hbmp == GetStockObject(21), "should get the default bitmap\n");
|
||||
hbmp = CreateBitmap(0, 1, 0, 0, NULL);
|
||||
ok(hbmp == GetStockObject(21), "should get the default bitmap\n");
|
||||
hbmp = CreateBitmap(0, 1, 1, 0, NULL);
|
||||
ok(hbmp == GetStockObject(21), "should get the default bitmap\n");
|
||||
hbmp = CreateBitmap(0, 1, 63, 33, NULL);
|
||||
ok(hbmp == GetStockObject(21), "should get the default bitmap\n");
|
||||
hbmp = CreateBitmap(0, -4, -32, 233, NULL);
|
||||
ok(hbmp == GetStockObject(21), "should get the default bitmap\n");
|
||||
|
||||
SetLastError(0);
|
||||
hbmp = CreateBitmap(1, -1, 1, 0, NULL);
|
||||
ok(hbmp == 0, "\n");
|
||||
ok_err(ERROR_INVALID_PARAMETER);
|
||||
|
||||
SetLastError(0);
|
||||
hbmp = CreateBitmap(-1, 1, 1, 0, NULL);
|
||||
ok(hbmp == 0, "\n");
|
||||
ok_err(ERROR_INVALID_PARAMETER);
|
||||
|
||||
SetLastError(0);
|
||||
hbmp = CreateBitmap(-1, 1, 1, 1, NULL);
|
||||
ok(hbmp == 0, "\n");
|
||||
ok_err(ERROR_INVALID_PARAMETER);
|
||||
|
||||
SetLastError(0);
|
||||
hbmp = CreateBitmap(1, -1, 1, 1, NULL);
|
||||
ok(hbmp == 0, "\n");
|
||||
ok_err(ERROR_INVALID_PARAMETER);
|
||||
|
||||
/* Check if an overflow in cPlanes * cBitsPixel is handled */
|
||||
SetLastError(0);
|
||||
hbmp = CreateBitmap(1, 1, 2, 0x80000004, NULL);
|
||||
ok(hbmp == 0, "\n");
|
||||
ok_err(ERROR_INVALID_PARAMETER);
|
||||
|
||||
/* Check for maximum width */
|
||||
hbmp = CreateBitmap(0x7FFFFFF, 1, 1, 1, NULL);
|
||||
ok(hbmp != 0, "\n");
|
||||
DeleteObject(hbmp);
|
||||
SetLastError(0);
|
||||
hbmp = CreateBitmap(0x8000000, 1, 1, 1, NULL);
|
||||
ok(hbmp == 0, "\n");
|
||||
ok_err(ERROR_INVALID_PARAMETER);
|
||||
|
||||
/* Check for maximum height */
|
||||
hbmp = CreateBitmap(1, 0x1FFFFF00, 1, 1, NULL);
|
||||
ok(hbmp != 0, "\n");
|
||||
DeleteObject(hbmp);
|
||||
SetLastError(0);
|
||||
hbmp = CreateBitmap(1, 0x1FFFFFFF, 1, 1, NULL);
|
||||
ok(hbmp == 0, "\n");
|
||||
ok_err(0);
|
||||
|
||||
/* Check for overflow in width * height */
|
||||
hbmp = CreateBitmap(0x20000, 0x1FFFF, 1, 1, NULL);
|
||||
ok(hbmp != 0, "\n");
|
||||
DeleteObject(hbmp);
|
||||
SetLastError(0);
|
||||
hbmp = CreateBitmap(0x20000, 0x20000, 1, 1, NULL);
|
||||
ok(hbmp == 0, "\n");
|
||||
ok_err(0);
|
||||
|
||||
/* Check huge allocation */
|
||||
SetLastError(0);
|
||||
hbmp = CreateBitmap(0x2000, 0x20000, 32, 1, NULL);
|
||||
ok(hbmp == 0, "\n");
|
||||
ok_err(ERROR_INVALID_PARAMETER);
|
||||
|
||||
}
|
||||
|
||||
void Test_CreateBitmap()
|
||||
{
|
||||
HBITMAP hbmp;
|
||||
|
@ -20,10 +99,8 @@ void Test_CreateBitmap()
|
|||
hbmp = CreateBitmap(0, 0, 0, 0, NULL);
|
||||
ok(hbmp != 0, "should get a 1x1 bitmap\n");
|
||||
ok(hbmp == GetStockObject(DEFAULT_BITMAP), "\n");
|
||||
|
||||
result = GetObject(hbmp, sizeof(bitmap), &bitmap);
|
||||
ok(result > 0, "result = %d\n", result);
|
||||
|
||||
ok(bitmap.bmType == 0, "bmType = %ld\n", bitmap.bmType);
|
||||
ok(bitmap.bmWidth == 1, "bmWidth = %ld\n", bitmap.bmWidth);
|
||||
ok(bitmap.bmHeight == 1, "bmHeight = %ld\n", bitmap.bmHeight);
|
||||
|
@ -31,19 +108,27 @@ void Test_CreateBitmap()
|
|||
ok(bitmap.bmPlanes == 1, "bmPlanes = %d\n", bitmap.bmPlanes);
|
||||
ok(bitmap.bmBitsPixel == 1, "bmBitsPixel = %d\n", bitmap.bmBitsPixel);
|
||||
ok(bitmap.bmBits == 0, "bmBits = %p\n", bitmap.bmBits);
|
||||
|
||||
DeleteObject(hbmp);
|
||||
|
||||
hbmp = CreateBitmap(1, -1, 1, 0, NULL);
|
||||
ok(hbmp == 0, "\n");
|
||||
hbmp = CreateBitmap(1, 2, 1, 1, NULL);
|
||||
ok(hbmp != 0, "should get a 1x2 bitmap\n");
|
||||
result = GetObject(hbmp, sizeof(bitmap), &bitmap);
|
||||
ok(result > 0, "result = %d\n", result);
|
||||
ok(bitmap.bmType == 0, "bmType = %ld\n", bitmap.bmType);
|
||||
ok(bitmap.bmWidth == 1, "bmWidth = %ld\n", bitmap.bmWidth);
|
||||
ok(bitmap.bmHeight == 2, "bmHeight = %ld\n", bitmap.bmHeight);
|
||||
ok(bitmap.bmWidthBytes == 2, "bmWidthBytes = %ld\n", bitmap.bmWidthBytes);
|
||||
ok(bitmap.bmPlanes == 1, "bmPlanes = %d\n", bitmap.bmPlanes);
|
||||
ok(bitmap.bmBitsPixel == 1, "bmBitsPixel = %d\n", bitmap.bmBitsPixel);
|
||||
ok(bitmap.bmBits == 0, "bmBits = %p\n", bitmap.bmBits);
|
||||
DeleteObject(hbmp);
|
||||
|
||||
hbmp = CreateBitmap(-1, 1, 1, 0, NULL);
|
||||
ok(hbmp == 0, "\n");
|
||||
|
||||
}
|
||||
|
||||
START_TEST(CreateBitmap)
|
||||
{
|
||||
Test_CreateBitmap_Params();
|
||||
Test_CreateBitmap();
|
||||
}
|
||||
|
||||
|
|
105
rostests/apitests/gdi32/GetDIBColorTable.c
Normal file
105
rostests/apitests/gdi32/GetDIBColorTable.c
Normal file
|
@ -0,0 +1,105 @@
|
|||
/*
|
||||
* PROJECT: ReactOS api tests
|
||||
* LICENSE: GPL - See COPYING in the top level directory
|
||||
* PURPOSE: Test for ...
|
||||
* PROGRAMMERS: Timo Kreuzer
|
||||
*/
|
||||
|
||||
#include <stdio.h>
|
||||
#include <wine/test.h>
|
||||
#include <windows.h>
|
||||
|
||||
void Test_GetDIBColorTable()
|
||||
{
|
||||
struct
|
||||
{
|
||||
BITMAPINFOHEADER bmiHeader;
|
||||
ULONG bmiColors[8];
|
||||
} bmibuffer;
|
||||
BITMAPINFO *pbmi = (PVOID)&bmibuffer;
|
||||
HBITMAP hbmp, hbmpOld;
|
||||
HDC hdc;
|
||||
PBYTE pjBits;
|
||||
UINT cColors;
|
||||
ULONG aulColors[257];
|
||||
|
||||
hdc = CreateCompatibleDC(0);
|
||||
ok(hdc != 0, "failed\n");
|
||||
|
||||
SetLastError(0);
|
||||
cColors = GetDIBColorTable(hdc, 0, 257, (RGBQUAD*)aulColors);
|
||||
ok_long(cColors, 2);
|
||||
ok_err(0);
|
||||
|
||||
hbmp = CreateBitmap(1, 1, 1, 1, NULL);
|
||||
ok(hbmp != 0, "\n");
|
||||
hbmpOld = SelectObject(hdc, hbmp);
|
||||
ok(hbmpOld != 0, "Failed to select bitmap\n");
|
||||
cColors = GetDIBColorTable(hdc, 0, 257, (RGBQUAD*)aulColors);
|
||||
ok_long(cColors, 2);
|
||||
ok_err(0);
|
||||
SelectObject(hdc, hbmpOld);
|
||||
DeleteObject(hbmp);
|
||||
|
||||
/* Initialize a BITMAPINFO */
|
||||
pbmi->bmiHeader.biSize = sizeof(BITMAPINFOHEADER);
|
||||
pbmi->bmiHeader.biWidth = 2;
|
||||
pbmi->bmiHeader.biHeight = 2;
|
||||
pbmi->bmiHeader.biPlanes = 1;
|
||||
pbmi->bmiHeader.biBitCount = 8;
|
||||
pbmi->bmiHeader.biCompression = BI_RGB;
|
||||
pbmi->bmiHeader.biSizeImage = 0;
|
||||
pbmi->bmiHeader.biXPelsPerMeter = 1;
|
||||
pbmi->bmiHeader.biYPelsPerMeter = 1;
|
||||
pbmi->bmiHeader.biClrUsed = 3;
|
||||
pbmi->bmiHeader.biClrImportant = 0;
|
||||
bmibuffer.bmiColors[0] = 0xff0000;
|
||||
bmibuffer.bmiColors[1] = 0x00ff00;
|
||||
bmibuffer.bmiColors[2] = 0x0000ff;
|
||||
|
||||
hbmp = CreateDIBSection(hdc, pbmi, DIB_RGB_COLORS, (PVOID*)&pjBits, 0, 0 );
|
||||
ok( hbmp != NULL, "error=%ld\n", GetLastError() );
|
||||
SelectObject(hdc, hbmp);
|
||||
|
||||
cColors = GetDIBColorTable(hdc, 0, 257, (RGBQUAD*)aulColors);
|
||||
ok_long(cColors, 256);
|
||||
ok_long(aulColors[0], 0xff0000);
|
||||
ok_long(aulColors[1], 0x00ff00);
|
||||
ok_long(aulColors[2], 0x0000ff);
|
||||
ok_long(aulColors[3], 0x000000);
|
||||
|
||||
|
||||
cColors = SetDIBColorTable(hdc, 0, 4, (RGBQUAD*)aulColors);
|
||||
ok_long(cColors, 4);
|
||||
|
||||
aulColors[3] = 0x000F0F;
|
||||
cColors = SetDIBColorTable(hdc, 0, 4, (RGBQUAD*)aulColors);
|
||||
ok_long(cColors, 4);
|
||||
|
||||
cColors = GetDIBColorTable(hdc, 0, 257, (RGBQUAD*)aulColors);
|
||||
ok_long(cColors, 256);
|
||||
ok_long(aulColors[0], 0xff0000);
|
||||
ok_long(aulColors[1], 0x00ff00);
|
||||
ok_long(aulColors[2], 0x0000ff);
|
||||
ok_long(aulColors[3], 0x000F0F);
|
||||
|
||||
|
||||
SelectObject(hdc, GetStockObject(21));
|
||||
DeleteObject(hbmp);
|
||||
|
||||
bmibuffer.bmiColors[0] = 1;
|
||||
bmibuffer.bmiColors[1] = 2;
|
||||
bmibuffer.bmiColors[2] = 3;
|
||||
|
||||
hbmp = CreateDIBSection(hdc, pbmi, DIB_PAL_COLORS, (PVOID*)&pjBits, 0, 0 );
|
||||
ok( hbmp != NULL, "error=%ld\n", GetLastError() );
|
||||
SelectObject(hdc, hbmp);
|
||||
|
||||
|
||||
}
|
||||
|
||||
START_TEST(GetDIBColorTable)
|
||||
{
|
||||
Test_GetDIBColorTable();
|
||||
}
|
||||
|
|
@ -28,6 +28,13 @@ void Test_GetPixel_1bpp()
|
|||
color = GetPixel(hdc, 1, 0);
|
||||
ok(color == 0, "Wrong color at 1,0 : 0x%08x\n", (UINT)color);
|
||||
|
||||
SetBkColor(hdc, 0x0000FF);
|
||||
SetTextColor(hdc, 0x00FF00);
|
||||
color = GetPixel(hdc, 0, 0);
|
||||
ok(color == 0xFFFFFF, "Wrong color at 0,0 : 0x%08x\n", (UINT)color);
|
||||
color = GetPixel(hdc, 1, 0);
|
||||
ok(color == 0, "Wrong color at 1,0 : 0x%08x\n", (UINT)color);
|
||||
|
||||
SetBkColor(hdc, 0x12345678);
|
||||
SetTextColor(hdc, 0x87654321);
|
||||
color = GetPixel(hdc, 0, 0);
|
||||
|
|
|
@ -13,6 +13,68 @@ HBITMAP ghbmpTarget;
|
|||
PULONG gpulTargetBits;
|
||||
HDC hdcTarget;
|
||||
|
||||
void Test_PatBlt_Params()
|
||||
{
|
||||
BOOL ret;
|
||||
ULONG i, rop;
|
||||
HDC hdc;
|
||||
|
||||
/* Test a rop that contains only the operation index */
|
||||
ret = PatBlt(hdcTarget, 0, 0, 1, 1, PATCOPY & 0x00FF0000);
|
||||
ok_long(ret, 1);
|
||||
|
||||
/* Test an invalid rop */
|
||||
SetLastError(0);
|
||||
ok_long(PatBlt(hdcTarget, 0, 0, 1, 1, SRCCOPY) , 0);
|
||||
ok_err(0);
|
||||
|
||||
/* Test all rops */
|
||||
for (i = 0; i < 256; i++)
|
||||
{
|
||||
rop = i << 16;
|
||||
ret = PatBlt(hdcTarget, 0, 0, 1, 1, rop);
|
||||
|
||||
/* Only these should succeed (they use no source) */
|
||||
if ((i == 0) || (i == 5) || (i == 10) || (i == 15) || (i == 80) ||
|
||||
(i == 85) || (i == 90) || (i == 95) || (i == 160) || (i == 165) ||
|
||||
(i == 170) || (i == 175) || (i == 240) || (i == 245) ||
|
||||
(i == 250) || (i == 255))
|
||||
{
|
||||
ok(ret == 1, "index %ld failed, but should succeed\n", i);
|
||||
}
|
||||
else
|
||||
{
|
||||
ok(ret == 0, "index %ld succeeded, but should fail\n", i);
|
||||
}
|
||||
}
|
||||
|
||||
/* Test quaternary rop, the background part is simply ignored */
|
||||
ret = PatBlt(hdcTarget, 0, 0, 1, 1, MAKEROP4(PATCOPY, PATINVERT));
|
||||
ok_long(ret, 1);
|
||||
ret = PatBlt(hdcTarget, 0, 0, 1, 1, MAKEROP4(PATCOPY, SRCCOPY));
|
||||
ok_long(ret, 1);
|
||||
ret = PatBlt(hdcTarget, 0, 0, 1, 1, MAKEROP4(SRCCOPY, PATCOPY));
|
||||
ok_long(ret, 0);
|
||||
|
||||
/* Test an info DC */
|
||||
hdc = CreateICA("DISPLAY", NULL, NULL, NULL);
|
||||
ok(hdc != 0, "\n");
|
||||
SetLastError(0);
|
||||
ok_long(PatBlt(hdc, 0, 0, 1, 1, PATCOPY), 1);
|
||||
ok_err(0);
|
||||
DeleteDC(hdc);
|
||||
|
||||
/* Test a mem DC without selecting a bitmap */
|
||||
hdc = CreateCompatibleDC(NULL);
|
||||
ok(hdc != 0, "\n");
|
||||
ok_long(PatBlt(hdc, 0, 0, 1, 1, PATCOPY), 1);
|
||||
ok_err(0);
|
||||
DeleteDC(hdc);
|
||||
|
||||
|
||||
|
||||
}
|
||||
|
||||
void Test_BrushOrigin()
|
||||
{
|
||||
ULONG aulBits[2] = {0x5555AAAA, 0};
|
||||
|
@ -100,6 +162,10 @@ START_TEST(PatBlt)
|
|||
return;
|
||||
}
|
||||
|
||||
Test_PatBlt_Params();
|
||||
|
||||
Test_BrushOrigin();
|
||||
|
||||
|
||||
}
|
||||
|
||||
|
|
187
rostests/apitests/gdi32/SetPixel.c
Normal file
187
rostests/apitests/gdi32/SetPixel.c
Normal file
|
@ -0,0 +1,187 @@
|
|||
/*
|
||||
* PROJECT: ReactOS api tests
|
||||
* LICENSE: GPL - See COPYING in the top level directory
|
||||
* PURPOSE: Test for SetPixel
|
||||
* PROGRAMMERS: Timo Kreuzer
|
||||
*/
|
||||
|
||||
#include <stdio.h>
|
||||
#include <wine/test.h>
|
||||
#include <windows.h>
|
||||
|
||||
static struct
|
||||
{
|
||||
WORD palVersion;
|
||||
WORD palNumEntries;
|
||||
PALETTEENTRY logpalettedata[8];
|
||||
} gpal =
|
||||
{
|
||||
0x300, 8,
|
||||
{
|
||||
{ 0x10, 0x20, 0x30, PC_NOCOLLAPSE },
|
||||
{ 0x20, 0x30, 0x40, PC_NOCOLLAPSE },
|
||||
{ 0x30, 0x40, 0x50, PC_NOCOLLAPSE },
|
||||
{ 0x40, 0x50, 0x60, PC_NOCOLLAPSE },
|
||||
{ 0x50, 0x60, 0x70, PC_NOCOLLAPSE },
|
||||
{ 0x60, 0x70, 0x80, PC_NOCOLLAPSE },
|
||||
{ 0x70, 0x80, 0x90, PC_NOCOLLAPSE },
|
||||
{ 0x80, 0x90, 0xA0, PC_NOCOLLAPSE },
|
||||
}
|
||||
};
|
||||
|
||||
void Test_SetPixel_Params()
|
||||
{
|
||||
HDC hdc;
|
||||
|
||||
SetLastError(0);
|
||||
ok_long(SetPixel(0, 0, 0, RGB(255,255,255)), -1);
|
||||
ok_err(ERROR_INVALID_HANDLE);
|
||||
|
||||
/* Test an info DC */
|
||||
hdc = CreateICA("DISPLAY", NULL, NULL, NULL);
|
||||
ok(hdc != 0, "\n");
|
||||
SetLastError(0);
|
||||
ok_long(SetPixel(hdc, 0, 0, 0), -1);
|
||||
ok_long(SetPixel(hdc, 0, 0, RGB(255,255,255)), -1);
|
||||
ok_err(0);
|
||||
DeleteDC(hdc);
|
||||
|
||||
/* Test a mem DC without selecting a bitmap */
|
||||
hdc = CreateCompatibleDC(NULL);
|
||||
ok(hdc != 0, "\n");
|
||||
SetLastError(0);
|
||||
ok_long(SetPixel(hdc, 0, 0, 0), -1);
|
||||
ok_err(0);
|
||||
DeleteDC(hdc);
|
||||
|
||||
/* Test deleted DC */
|
||||
ok_long(SetPixel(hdc, 0, 0, 0), -1);
|
||||
|
||||
}
|
||||
|
||||
void Test_SetPixel_PAL()
|
||||
{
|
||||
struct
|
||||
{
|
||||
BITMAPINFOHEADER bmiHeader;
|
||||
WORD bmiColors[8];
|
||||
} bmibuffer;
|
||||
BITMAPINFO *pbmi = (PVOID)&bmibuffer;
|
||||
HBITMAP hbmp;
|
||||
HDC hdc;
|
||||
HPALETTE hpal, hpalOld;
|
||||
PULONG pulBits;
|
||||
ULONG i;
|
||||
|
||||
/* Initialize the BITMAPINFO */
|
||||
pbmi->bmiHeader.biSize = sizeof(BITMAPINFOHEADER);
|
||||
pbmi->bmiHeader.biWidth = 1;
|
||||
pbmi->bmiHeader.biHeight = 1;
|
||||
pbmi->bmiHeader.biPlanes = 1;
|
||||
pbmi->bmiHeader.biBitCount = 8;
|
||||
pbmi->bmiHeader.biCompression = BI_RGB;
|
||||
pbmi->bmiHeader.biSizeImage = 0;
|
||||
pbmi->bmiHeader.biXPelsPerMeter = 1;
|
||||
pbmi->bmiHeader.biYPelsPerMeter = 1;
|
||||
pbmi->bmiHeader.biClrUsed = 8;
|
||||
pbmi->bmiHeader.biClrImportant = 0;
|
||||
for( i = 0; i < 8; i++ )
|
||||
{
|
||||
bmibuffer.bmiColors[i] = i + 1;
|
||||
}
|
||||
|
||||
/* Create a memory DC */
|
||||
hdc = CreateCompatibleDC(0);
|
||||
ok(hdc != 0, "failed\n");
|
||||
|
||||
/* Create a DIB section and select it */
|
||||
hbmp = CreateDIBSection(hdc, pbmi, DIB_PAL_COLORS, (PVOID*)&pulBits, 0, 0 );
|
||||
ok(hbmp != NULL, "CreateDIBSection failed with error %ld\n", GetLastError());
|
||||
ok(SelectObject(hdc, hbmp) != 0, "SelectObject failed\n");
|
||||
|
||||
ok_long(SetPixel(hdc, 0, 0, 0), 0);
|
||||
ok_long(pulBits[0], 8);
|
||||
ok_long(SetPixel(hdc, 0, 0, 1), 0);
|
||||
ok_long(pulBits[0], 8);
|
||||
ok_long(SetPixel(hdc, 0, 0, RGB(255,255,255)), 0xc0dcc0);
|
||||
ok_long(pulBits[0], 7);
|
||||
|
||||
ok_long(SetPixel(hdc, 0, 0, RGB(255,0,0)), 0x80);
|
||||
ok_long(pulBits[0], 0);
|
||||
|
||||
/* Test DIBINDEX */
|
||||
ok_long(SetPixel(hdc, 0, 0, DIBINDEX(0)), 0x80);
|
||||
ok_long(pulBits[0], 0);
|
||||
ok_long(SetPixel(hdc, 0, 0, DIBINDEX(1)), 0x8000);
|
||||
ok_long(pulBits[0], 1);
|
||||
ok_long(SetPixel(hdc, 0, 0, DIBINDEX(7)), 0xc0dcc0);
|
||||
ok_long(pulBits[0], 7);
|
||||
ok_long(SetPixel(hdc, 0, 0, DIBINDEX(8)), 0);
|
||||
ok_long(pulBits[0], 8);
|
||||
ok_long(SetPixel(hdc, 0, 0, DIBINDEX(126)), 0);
|
||||
ok_long(pulBits[0], 126);
|
||||
ok_long(SetPixel(hdc, 0, 0, DIBINDEX(0x123456)), 0);
|
||||
ok_long(pulBits[0], 0x56);
|
||||
|
||||
/* Test PALETTEINDEX */
|
||||
ok_long(SetPixel(hdc, 0, 0, PALETTEINDEX(0)), 0);
|
||||
ok_long(pulBits[0], 8);
|
||||
ok_long(SetPixel(hdc, 0, 0, PALETTEINDEX(1)), 0x80);
|
||||
ok_long(pulBits[0], 0);
|
||||
ok_long(SetPixel(hdc, 0, 0, PALETTEINDEX(2)), 0x8000);
|
||||
ok_long(pulBits[0], 1);
|
||||
|
||||
/* Delete the DIB section */
|
||||
DeleteObject(hbmp);
|
||||
|
||||
|
||||
/* Initialize the logical palette and select it */
|
||||
hpal = CreatePalette((LOGPALETTE*)&gpal);
|
||||
hpalOld = SelectPalette(hdc, hpal, FALSE);
|
||||
ok(hpalOld != NULL, "error=%ld\n", GetLastError());
|
||||
|
||||
|
||||
/* Create a DIB section and select it */
|
||||
hbmp = CreateDIBSection(hdc, pbmi, DIB_PAL_COLORS, (PVOID*)&pulBits, 0, 0 );
|
||||
ok(hbmp != NULL, "CreateDIBSection failed with error %ld\n", GetLastError());
|
||||
ok(SelectObject(hdc, hbmp) != 0, "SelectObject failed\n");
|
||||
|
||||
ok_long(SetPixel(hdc, 0, 0, 0), 0);
|
||||
ok_long(pulBits[0], 8);
|
||||
|
||||
ok_long(SetPixel(hdc, 0, 0, RGB(255,0,0)), 0x605040);
|
||||
ok_long(pulBits[0], 2);
|
||||
|
||||
/* Test DIBINDEX */
|
||||
ok_long(SetPixel(hdc, 0, 0, DIBINDEX(0)), 0x403020);
|
||||
ok_long(pulBits[0], 0);
|
||||
ok_long(SetPixel(hdc, 0, 0, DIBINDEX(1)), 0x504030);
|
||||
ok_long(pulBits[0], 1);
|
||||
ok_long(SetPixel(hdc, 0, 0, DIBINDEX(7)), 0x302010);
|
||||
ok_long(pulBits[0], 7);
|
||||
ok_long(SetPixel(hdc, 0, 0, DIBINDEX(8)), 0);
|
||||
ok_long(pulBits[0], 8);
|
||||
ok_long(SetPixel(hdc, 0, 0, DIBINDEX(126)), 0);
|
||||
ok_long(pulBits[0], 126);
|
||||
ok_long(SetPixel(hdc, 0, 0, DIBINDEX(0x123456)), 0);
|
||||
ok_long(pulBits[0], 0x56);
|
||||
|
||||
/* Test PALETTEINDEX */
|
||||
ok_long(SetPixel(hdc, 0, 0, PALETTEINDEX(0)), 0x302010);
|
||||
ok_long(pulBits[0], 7);
|
||||
ok_long(SetPixel(hdc, 0, 0, PALETTEINDEX(1)), 0x403020);
|
||||
ok_long(pulBits[0], 0);
|
||||
ok_long(SetPixel(hdc, 0, 0, PALETTEINDEX(253)), 0x302010);
|
||||
ok_long(pulBits[0], 7);
|
||||
ok_long(SetPixel(hdc, 0, 0, PALETTEINDEX(254)), 0x302010);
|
||||
ok_long(pulBits[0], 7);
|
||||
|
||||
|
||||
}
|
||||
|
||||
START_TEST(SetPixel)
|
||||
{
|
||||
Test_SetPixel_Params();
|
||||
Test_SetPixel_PAL();
|
||||
}
|
||||
|
|
@ -39,6 +39,7 @@ extern void func_GdiReleaseLocalDC(void);
|
|||
extern void func_GdiSetAttrs(void);
|
||||
extern void func_GetClipRgn(void);
|
||||
extern void func_GetCurrentObject(void);
|
||||
extern void func_GetDIBColorTable(void);
|
||||
extern void func_GetDIBits(void);
|
||||
extern void func_GetPixel(void);
|
||||
extern void func_GetObject(void);
|
||||
|
@ -50,9 +51,11 @@ extern void func_MaskBlt(void);
|
|||
extern void func_PatBlt(void);
|
||||
extern void func_Rectangle(void);
|
||||
extern void func_SelectObject(void);
|
||||
extern void func_SetBrushOrgEx(void);
|
||||
extern void func_SetDCPenColor(void);
|
||||
extern void func_SetDIBits(void);
|
||||
extern void func_SetMapMode(void);
|
||||
extern void func_SetPixel(void);
|
||||
extern void func_SetSysColors(void);
|
||||
extern void func_SetWindowExtEx(void);
|
||||
extern void func_SetWorldTransform(void);
|
||||
|
@ -93,6 +96,7 @@ const struct test winetest_testlist[] =
|
|||
{ "GdiSetAttrs", func_GdiSetAttrs },
|
||||
{ "GetClipRgn", func_GetClipRgn },
|
||||
{ "GetCurrentObject", func_GetCurrentObject },
|
||||
{ "GetDIBColorTable", func_GetDIBColorTable },
|
||||
{ "GetDIBits", func_GetDIBits },
|
||||
{ "GetPixel", func_GetPixel },
|
||||
{ "GetObject", func_GetObject },
|
||||
|
@ -104,9 +108,11 @@ const struct test winetest_testlist[] =
|
|||
{ "PatBlt", func_PatBlt },
|
||||
{ "Rectangle", func_Rectangle },
|
||||
{ "SelectObject", func_SelectObject },
|
||||
{ "SetBrushOrgEx", func_SetBrushOrgEx },
|
||||
{ "SetDCPenColor", func_SetDCPenColor },
|
||||
{ "SetDIBits", func_SetDIBits },
|
||||
{ "SetMapMode", func_SetMapMode },
|
||||
{ "SetPixel", func_SetPixel },
|
||||
{ "SetSysColors", func_SetSysColors },
|
||||
{ "SetWindowExtEx", func_SetWindowExtEx },
|
||||
{ "SetWorldTransform", func_SetWorldTransform },
|
||||
|
|
Loading…
Reference in a new issue