mirror of
https://github.com/reactos/reactos.git
synced 2025-05-17 16:27:00 +00:00
[GDI32_APITEST]
Add tests for DPtoLP - More tests for CombineTransform, CreateBitmapIndirect and SelectObject svn path=/trunk/; revision=50404
This commit is contained in:
parent
e1efc7ca51
commit
8bf0247095
6 changed files with 289 additions and 69 deletions
|
@ -12,11 +12,34 @@
|
|||
#include <reactos/win32k/ntgdityp.h>
|
||||
#include <reactos/win32k/ntgdihdl.h>
|
||||
|
||||
#define ok_int(x, y) ok(x == y, "Wrong value for " #x ", expected " #y ", got %ld\n", (long)x);
|
||||
#define ok_flt(x, y) ok(x == y, "Wrong value for " #x ", expected " #y ", got %f\n", (double)x);
|
||||
|
||||
#define ok_xform(xform, m11, m12, m21, m22, dx, dy) \
|
||||
ok_flt(xform.eM11, m11); \
|
||||
ok_flt(xform.eM12, m12); \
|
||||
ok_flt(xform.eM21, m21); \
|
||||
ok_flt(xform.eM22, m22); \
|
||||
ok_flt(xform.eDx, dx); \
|
||||
ok_flt(xform.eDy, dy);
|
||||
|
||||
void Test_CombineTransform()
|
||||
{
|
||||
XFORM xform1, xform2, xform3;
|
||||
BOOL ret;
|
||||
|
||||
/* Test NULL paramters */
|
||||
SetLastError(ERROR_SUCCESS);
|
||||
ret = CombineTransform(&xform3, &xform1, NULL);
|
||||
ok_int(ret, 0);
|
||||
ret = CombineTransform(&xform3, NULL, &xform2);
|
||||
ok_int(ret, 0);
|
||||
ret = CombineTransform(NULL, &xform1, &xform2);
|
||||
ok_int(ret, 0);
|
||||
ret = CombineTransform(&xform3, &xform1, &xform2);
|
||||
ok_int(ret, 0);
|
||||
ok_int(GetLastError(), ERROR_SUCCESS);
|
||||
|
||||
/* 2 Identity matrices */
|
||||
xform1.eM11 = 1.0;
|
||||
xform1.eM12 = 0;
|
||||
|
@ -27,80 +50,49 @@ void Test_CombineTransform()
|
|||
xform2 = xform1;
|
||||
SetLastError(ERROR_SUCCESS);
|
||||
ret = CombineTransform(&xform3, &xform1, &xform2);
|
||||
ok(ret == 1, "expected ret = 1, got %d\n", ret);
|
||||
ok(xform3.eM11 == 1.0, "eM11: Expected 1.0, got %f\n", xform3.eM11);
|
||||
ok(xform3.eM12 == 0, "eM11: Expected 0, got %f\n", xform3.eM12);
|
||||
ok(xform3.eM21 == 0, "eM11: Expected 0, got %f\n", xform3.eM21);
|
||||
ok(xform3.eM22 == 1.0, "eM11: Expected 1.0, got %f\n", xform3.eM22);
|
||||
ok(xform3.eDx == 0, "eM11: Expected 0, got %f\n", xform3.eDx);
|
||||
ok(xform3.eDy == 0, "eM11: Expected 0, got %f\n", xform3.eDy);
|
||||
ok(GetLastError() == ERROR_SUCCESS, "Exected ERROR_SUCCESS, got %ld\n", GetLastError());
|
||||
ok_int(ret, 1);
|
||||
ok_xform(xform3, 1.0, 0., 0., 1.0, 0., 0.);
|
||||
ok_int(GetLastError(), ERROR_SUCCESS);
|
||||
|
||||
/* 2 Identity matrices with offsets */
|
||||
xform1.eDx = 20.0;
|
||||
xform1.eDy = -100;
|
||||
ret = CombineTransform(&xform3, &xform1, &xform2);
|
||||
ok(ret == 1, "expected ret = 1, got %d\n", ret);
|
||||
ok(xform3.eM11 == 1.0, "eM11: Expected 1.0, got %f\n", xform3.eM11);
|
||||
ok(xform3.eM12 == 0, "eM11: Expected 0, got %f\n", xform3.eM12);
|
||||
ok(xform3.eM21 == 0, "eM11: Expected 0, got %f\n", xform3.eM21);
|
||||
ok(xform3.eM22 == 1.0, "eM11: Expected 1.0, got %f\n", xform3.eM22);
|
||||
ok(xform3.eDx == 20.0, "eM11: Expected 20.0, got %f\n", xform3.eDx);
|
||||
ok(xform3.eDy == -100, "eM11: Expected -100, got %f\n", xform3.eDy);
|
||||
ok_int(ret, 1);
|
||||
ok_xform(xform3, 1.0, 0., 0., 1.0, 20.0, -100.0);
|
||||
|
||||
xform2.eDx = -60.0;
|
||||
xform2.eDy = -20;
|
||||
ret = CombineTransform(&xform3, &xform1, &xform2);
|
||||
ok(ret == 1, "expected ret = 1, got %d\n", ret);
|
||||
ok(xform3.eDx == -40.0, "eM11: Expected 40.0, got %f\n", xform3.eDx);
|
||||
ok(xform3.eDy == -120.0, "eM11: Expected -120.0, got %f\n", xform3.eDy);
|
||||
ok_int(ret, 1);
|
||||
ok_flt(xform3.eDx, -40.0);
|
||||
ok_flt(xform3.eDy, -120.0);
|
||||
|
||||
/* add some stretching */
|
||||
xform2.eM11 = 2;
|
||||
xform2.eM22 = 4;
|
||||
ret = CombineTransform(&xform3, &xform1, &xform2);
|
||||
ok(ret == 1, "expected ret = 1, got %d\n", ret);
|
||||
ok(xform3.eM11 == 2.0, "eM11: Expected 2.0, got %f\n", xform3.eM11);
|
||||
ok(xform3.eM12 == 0, "eM11: Expected 0, got %f\n", xform3.eM12);
|
||||
ok(xform3.eM21 == 0, "eM11: Expected 0, got %f\n", xform3.eM21);
|
||||
ok(xform3.eM22 == 4.0, "eM11: Expected 4.0, got %f\n", xform3.eM22);
|
||||
ok(xform3.eDx == -20.0, "eM11: Expected 20.0, got %f\n", xform3.eDx);
|
||||
ok(xform3.eDy == -420.0, "eM11: Expected 420.0, got %f\n", xform3.eDy);
|
||||
ok_int(ret, 1);
|
||||
ok_xform(xform3, 2.0, 0., 0., 4.0, -20.0, -420.0);
|
||||
|
||||
/* add some more stretching */
|
||||
xform1.eM11 = -2.5;
|
||||
xform1.eM22 = 0.5;
|
||||
ret = CombineTransform(&xform3, &xform1, &xform2);
|
||||
ok(ret == 1, "expected ret = 1, got %d\n", ret);
|
||||
ok(xform3.eM11 == -5.0, "eM11: Expected -5.0, got %f\n", xform3.eM11);
|
||||
ok(xform3.eM12 == 0, "eM11: Expected 0, got %f\n", xform3.eM12);
|
||||
ok(xform3.eM21 == 0, "eM11: Expected 0, got %f\n", xform3.eM21);
|
||||
ok(xform3.eM22 == 2.0, "eM11: Expected 2.0, got %f\n", xform3.eM22);
|
||||
ok(xform3.eDx == -20.0, "eM11: Expected 20.0, got %f\n", xform3.eDx);
|
||||
ok(xform3.eDy == -420.0, "eM11: Expected 420.0, got %f\n", xform3.eDy);
|
||||
ok_int(ret, 1);
|
||||
ok_xform(xform3, -5.0, 0., 0., 2.0, -20.0, -420.0);
|
||||
|
||||
xform1.eM12 = 2.0;
|
||||
xform1.eM21 = -0.5;
|
||||
ret = CombineTransform(&xform3, &xform1, &xform2);
|
||||
ok(ret == 1, "expected ret = 1, got %d\n", ret);
|
||||
ok(xform3.eM11 == -5.0, "eM11: Expected -5.0, got %f\n", xform3.eM11);
|
||||
ok(xform3.eM12 == 8.0, "eM11: Expected 8.0, got %f\n", xform3.eM12);
|
||||
ok(xform3.eM21 == -1.0, "eM11: Expected -1.0, got %f\n", xform3.eM21);
|
||||
ok(xform3.eM22 == 2.0, "eM11: Expected 2.0, got %f\n", xform3.eM22);
|
||||
ok(xform3.eDx == -20.0, "eM11: Expected 20.0, got %f\n", xform3.eDx);
|
||||
ok(xform3.eDy == -420.0, "eM11: Expected 420.0, got %f\n", xform3.eDy);
|
||||
ok_int(ret, 1);
|
||||
ok_xform(xform3, -5.0, 8.0, -1.0, 2.0, -20.0, -420.0);
|
||||
|
||||
xform2.eM12 = 4.0;
|
||||
xform2.eM21 = 6.5;
|
||||
ret = CombineTransform(&xform3, &xform1, &xform2);
|
||||
ok(ret == 1, "expected ret = 1, got %d\n", ret);
|
||||
ok(xform3.eM11 == 8.0, "eM11: Expected 8.0, got %f\n", xform3.eM11);
|
||||
ok(xform3.eM12 == -2.0, "eM11: Expected -2.0, got %f\n", xform3.eM12);
|
||||
ok(xform3.eM21 == 2.25, "eM11: Expected 2.25, got %f\n", xform3.eM21);
|
||||
ok(xform3.eM22 == 0.00, "eM11: Expected 0.00, got %f\n", xform3.eM22);
|
||||
ok(xform3.eDx == -670.0, "eM11: Expected -670.0, got %f\n", xform3.eDx);
|
||||
ok(xform3.eDy == -340.0, "eM11: Expected -340.0, got %f\n", xform3.eDy);
|
||||
ret = CombineTransform(&xform3, &xform1, &xform2);
|
||||
ok(ret == 1, "expected ret = 1, got %d\n", ret);
|
||||
ok_int(ret, 1);
|
||||
ok_xform(xform3, 8.0, -2.0, 2.25, 0.0, -670.0, -340.0);
|
||||
|
||||
xform1.eM11 = 1.;
|
||||
xform1.eM12 = 0;
|
||||
|
@ -118,48 +110,63 @@ void Test_CombineTransform()
|
|||
xform1.eDx = 4294967167.999999762;
|
||||
ok(xform1.eDx == 4294967296.0, "float rounding error.\n");
|
||||
ret = CombineTransform(&xform3, &xform1, &xform2);
|
||||
ok(ret == 0, "expected ret = 0, got %d\n", ret);
|
||||
ok(GetLastError() == ERROR_SUCCESS, "Exected ERROR_SUCCESS, got %ld\n", GetLastError());
|
||||
ok_int(ret, 0);
|
||||
ok_int(GetLastError(), ERROR_SUCCESS);
|
||||
|
||||
xform1.eDx = -4294967167.999999761;
|
||||
ok(xform1.eDx == -4294967040.0, "float rounding error.\n");
|
||||
ret = CombineTransform(&xform3, &xform1, &xform2);
|
||||
ok(ret == 1, "expected ret = 1, got %d\n", ret);
|
||||
ok_int(ret, 1);
|
||||
|
||||
xform1.eDx = -4294967167.999999762;
|
||||
ok(xform1.eDx == -4294967296.0, "float rounding error.\n");
|
||||
ret = CombineTransform(&xform3, &xform1, &xform2);
|
||||
ok(ret == 0, "expected ret = 0, got %d\n", ret);
|
||||
ok(GetLastError() == ERROR_SUCCESS, "Exected ERROR_SUCCESS, got %ld\n", GetLastError());
|
||||
ok_int(ret, 0);
|
||||
ok_int(GetLastError(), ERROR_SUCCESS);
|
||||
|
||||
xform1.eDx = 0;
|
||||
xform1.eDy = 4294967167.999999761;
|
||||
ok(xform1.eDy == 4294967040.0, "float rounding error.\n");
|
||||
ret = CombineTransform(&xform3, &xform1, &xform2);
|
||||
ok(ret == 1, "expected ret = 1, got %d\n", ret);
|
||||
ok_int(ret, 1);
|
||||
|
||||
xform2.eDy = 1;
|
||||
ret = CombineTransform(&xform3, &xform1, &xform2);
|
||||
ok_int(ret, 1);
|
||||
|
||||
xform1.eDy = 4294967167.999999762;
|
||||
ok(xform1.eDy == 4294967296.0, "float rounding error.\n");
|
||||
ret = CombineTransform(&xform3, &xform1, &xform2);
|
||||
ok(ret == 0, "expected ret = 0, got %d\n", ret);
|
||||
ok(GetLastError() == ERROR_SUCCESS, "Exected ERROR_SUCCESS, got %ld\n", GetLastError());
|
||||
ok_int(ret, 0);
|
||||
ok_int(GetLastError(), ERROR_SUCCESS);
|
||||
|
||||
xform1.eDy = -4294967167.999999761;
|
||||
ok(xform1.eDy == -4294967040.0, "float rounding error.\n");
|
||||
ret = CombineTransform(&xform3, &xform1, &xform2);
|
||||
ok(ret == 1, "expected ret = 1, got %d\n", ret);
|
||||
ok_int(ret, 1);
|
||||
|
||||
xform1.eDy = -4294967167.999999762;
|
||||
ok(xform1.eDy == -4294967296.0, "float rounding error.\n");
|
||||
ret = CombineTransform(&xform3, &xform1, &xform2);
|
||||
ok(ret == 0, "expected ret = 0, got %d\n", ret);
|
||||
ok(GetLastError() == ERROR_SUCCESS, "Exected ERROR_SUCCESS, got %ld\n", GetLastError());
|
||||
ok_int(ret, 0);
|
||||
ok_int(GetLastError(), ERROR_SUCCESS);
|
||||
|
||||
xform2.eDy = 10000;
|
||||
ret = CombineTransform(&xform3, &xform1, &xform2);
|
||||
ok_int(ret, 1);
|
||||
|
||||
xform1.eDx = -4294967167.999999762;
|
||||
xform1.eM11 = 1000.0;
|
||||
xform2.eM11 = 1000.0;
|
||||
ret = CombineTransform(&xform3, &xform1, &xform2);
|
||||
ok_int(ret, 0);
|
||||
ok_int(GetLastError(), ERROR_SUCCESS);
|
||||
|
||||
xform1.eDx = 100000.0;
|
||||
xform2.eM11 = 100000.0;
|
||||
ret = CombineTransform(&xform3, &xform1, &xform2);
|
||||
ok(ret == 0, "expected ret = 0, got %d\n", ret);
|
||||
ok(GetLastError() == ERROR_SUCCESS, "Exected ERROR_SUCCESS, got %ld\n", GetLastError());
|
||||
ok_int(ret, 0);
|
||||
ok_int(GetLastError(), ERROR_SUCCESS);
|
||||
|
||||
/* Some undefined values */
|
||||
*(DWORD*)&xform1.eM11 = 0xffc00000; // (0.0F/0.0F)
|
||||
|
@ -171,14 +178,14 @@ void Test_CombineTransform()
|
|||
xform2 = xform1;
|
||||
SetLastError(ERROR_SUCCESS);
|
||||
ret = CombineTransform(&xform3, &xform1, &xform2);
|
||||
ok(ret == 1, "expected ret = 1, got %d\n", ret);
|
||||
ok_int(ret, 1);
|
||||
ok(*(DWORD*)&xform3.eM11 == 0xffc00000, "eM11: Expected 0xffc00000, got 0x%lx\n", *(DWORD*)&xform3.eM11);
|
||||
ok(xform3.eM12 == 0, "eM12: Expected 0, got %f\n", xform3.eM12);
|
||||
ok(xform3.eM21 == 0, "eM21: Expected 0, got %f\n", xform3.eM21);
|
||||
ok(*(DWORD*)&xform3.eM22 == 0x7f800000, "eM22: Expected 0x7f800000, got 0x%lx\n", *(DWORD*)&xform3.eM22);
|
||||
ok(xform3.eDx == 0, "eDx: Expected 0, got %f\n", xform3.eDx);
|
||||
ok(xform3.eDy == 0, "eDy: Expected 0, got %f\n", xform3.eDy);
|
||||
ok(GetLastError() == ERROR_SUCCESS, "Exected ERROR_SUCCESS, got %ld\n", GetLastError());
|
||||
ok_int(GetLastError(), ERROR_SUCCESS);
|
||||
|
||||
/* Some undefined values */
|
||||
xform2.eM11 = 1.;
|
||||
|
@ -186,14 +193,15 @@ void Test_CombineTransform()
|
|||
xform2.eM12 = 1.;
|
||||
xform2.eM21 = 1.;
|
||||
ret = CombineTransform(&xform3, &xform1, &xform2);
|
||||
ok(ret == 1, "expected ret = 1, got %d\n", ret);
|
||||
ok(*(DWORD*)&xform3.eM11 == 0xffc00000, "eM11: Expected 0xffc00000, got 0x%lx\n", *(DWORD*)&xform3.eM11);
|
||||
ok(*(DWORD*)&xform3.eM12 == 0xffc00000, "eM12: Expected 0xffc00000, got 0x%lx\n", *(DWORD*)&xform3.eM12);
|
||||
ok(*(DWORD*)&xform3.eM21 == 0x7f800000, "eM21: Expected 0x7f800000, got 0x%lx\n", *(DWORD*)&xform3.eM21);
|
||||
ok(*(DWORD*)&xform3.eM22 == 0x7f800000, "eM22: Expected 0x7f800000, got 0x%lx\n", *(DWORD*)&xform3.eM22);
|
||||
ok_int(ret, 1);
|
||||
|
||||
ok_int(*(DWORD*)&xform3.eM11, 0xffc00000);
|
||||
ok_int(*(DWORD*)&xform3.eM12, 0xffc00000);
|
||||
ok_int(*(DWORD*)&xform3.eM21, 0x7f800000);
|
||||
ok_int(*(DWORD*)&xform3.eM22, 0x7f800000);
|
||||
ok(xform3.eDx == 0, "eDx: Expected 0, got %f\n", xform3.eDx);
|
||||
ok(xform3.eDy == 0, "eDy: Expected 0, got %f\n", xform3.eDy);
|
||||
ok(GetLastError() == ERROR_SUCCESS, "Exected ERROR_SUCCESS, got %ld\n", GetLastError());
|
||||
ok_int(GetLastError(), ERROR_SUCCESS);
|
||||
|
||||
}
|
||||
|
||||
|
|
|
@ -59,6 +59,17 @@ void Test_CreateBitmapIndirect()
|
|||
win_hBmp = CreateBitmapIndirect(&win_bitmap);
|
||||
ok(win_hBmp != 0, "CreateBitmapIndirect failed\n");
|
||||
|
||||
RtlZeroMemory(&win_bitmap,sizeof(BITMAP));
|
||||
win_bitmap.bmBits = 0;
|
||||
win_bitmap.bmBitsPixel = 8;
|
||||
win_bitmap.bmHeight = 0xF000;
|
||||
win_bitmap.bmPlanes = 1;
|
||||
win_bitmap.bmType = 1;
|
||||
win_bitmap.bmWidth = 0x8000;
|
||||
win_bitmap.bmWidthBytes = win_bitmap.bmWidth;
|
||||
win_hBmp = CreateBitmapIndirect(&win_bitmap);
|
||||
ok(win_hBmp != 0, "CreateBitmapIndirect failed\n");
|
||||
|
||||
DeleteObject(win_hBmp);
|
||||
}
|
||||
|
||||
|
|
191
rostests/apitests/gdi32/DPtoLP.c
Normal file
191
rostests/apitests/gdi32/DPtoLP.c
Normal file
|
@ -0,0 +1,191 @@
|
|||
/*
|
||||
* 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>
|
||||
|
||||
#define ok_int(x, y) ok(x == y, "Wrong value for " #x ", expected " #y ", got %ld\n", (long)x);
|
||||
|
||||
void Test_DPtoLP_Params()
|
||||
{
|
||||
BOOL ret;
|
||||
HDC hdc;
|
||||
POINT apt[2];
|
||||
|
||||
apt[0].x = 0;
|
||||
apt[0].y = 0;
|
||||
apt[1].x = -1000;
|
||||
apt[1].y = 1000;
|
||||
|
||||
SetLastError(ERROR_SUCCESS);
|
||||
ret = DPtoLP(NULL, NULL, 0);
|
||||
ok(ret == 1, "Expected ret == 1, got %d\n", ret);
|
||||
ok(GetLastError() == ERROR_SUCCESS, "Exected ERROR_SUCCESS, got %ld\n", GetLastError());
|
||||
|
||||
ret = DPtoLP(NULL, NULL, -1);
|
||||
ok(ret == 1, "Expected ret == 1, got %d\n", ret);
|
||||
ok(GetLastError() == ERROR_SUCCESS, "Exected ERROR_SUCCESS, got %ld\n", GetLastError());
|
||||
|
||||
ret = DPtoLP(NULL, (PVOID)0x80000000, -1);
|
||||
ok(ret == 1, "Expected ret == 1, got %d\n", ret);
|
||||
ok(GetLastError() == ERROR_SUCCESS, "Exected ERROR_SUCCESS, got %ld\n", GetLastError());
|
||||
|
||||
ret = DPtoLP(NULL, NULL, 2);
|
||||
ok(ret == 0, "Expected ret == 0, got %d\n", ret);
|
||||
ok(GetLastError() == ERROR_INVALID_PARAMETER, "Exected ERROR_INVALID_PARAMETER, got %ld\n", GetLastError());
|
||||
|
||||
SetLastError(ERROR_SUCCESS);
|
||||
ret = DPtoLP(NULL, apt, 2);
|
||||
ok(ret == 0, "Expected ret == 0, got %d\n", ret);
|
||||
ok(GetLastError() == ERROR_INVALID_PARAMETER, "Exected ERROR_INVALID_PARAMETER, got %ld\n", GetLastError());
|
||||
|
||||
SetLastError(ERROR_SUCCESS);
|
||||
ret = DPtoLP(NULL, apt, 0);
|
||||
ok(ret == 1, "Expected ret == 1, got %d\n", ret);
|
||||
ok(GetLastError() == ERROR_SUCCESS, "Exected ERROR_SUCCESS, got %ld\n", GetLastError());
|
||||
|
||||
SetLastError(ERROR_SUCCESS);
|
||||
ret = DPtoLP(NULL, apt, -2);
|
||||
ok(ret == 1, "Expected ret == 1, got %d\n", ret);
|
||||
ok(GetLastError() == ERROR_SUCCESS, "Exected ERROR_SUCCESS, got %ld\n", GetLastError());
|
||||
|
||||
SetLastError(ERROR_SUCCESS);
|
||||
ret = DPtoLP((HDC)-4, apt, -2);
|
||||
ok(ret == 1, "Expected ret == 1, got %d\n", ret);
|
||||
ok(GetLastError() == ERROR_SUCCESS, "Exected ERROR_SUCCESS, got %ld\n", GetLastError());
|
||||
|
||||
hdc = GetDC(0);
|
||||
SetLastError(ERROR_SUCCESS);
|
||||
ret = DPtoLP(hdc, NULL, 2);
|
||||
ok(ret == 1, "Expected ret == 1, got %d\n", ret);
|
||||
ok(GetLastError() == ERROR_SUCCESS, "Exected ERROR_SUCCESS, got %ld\n", GetLastError());
|
||||
|
||||
hdc = GetDC(0);
|
||||
SetLastError(ERROR_SUCCESS);
|
||||
ret = DPtoLP(hdc, (PVOID)0x80000000, 2);
|
||||
ok(ret == 1, "Expected ret == 1, got %d\n", ret);
|
||||
ok(GetLastError() == ERROR_SUCCESS, "Exected ERROR_SUCCESS, got %ld\n", GetLastError());
|
||||
|
||||
|
||||
ReleaseDC(0, hdc);
|
||||
}
|
||||
|
||||
void Test_DPtoLP()
|
||||
{
|
||||
BOOL ret;
|
||||
HDC hdc;
|
||||
POINT apt[2];
|
||||
XFORM xform;
|
||||
|
||||
apt[0].x = 1;
|
||||
apt[0].y = 1;
|
||||
apt[1].x = -1000;
|
||||
apt[1].y = 1000;
|
||||
|
||||
hdc = GetDC(0);
|
||||
|
||||
SetMapMode(hdc, MM_TEXT);
|
||||
ret = DPtoLP(hdc, apt, 2);
|
||||
ok(ret == 1, "Expected ret == 1, got %d\n", ret);
|
||||
ok_int(apt[0].x, 1);
|
||||
ok_int(apt[0].y, 1);
|
||||
ok_int(apt[1].x, -1000);
|
||||
ok_int(apt[1].y, 1000);
|
||||
|
||||
SetMapMode(hdc, MM_LOMETRIC);
|
||||
ret = DPtoLP(hdc, apt, 2);
|
||||
ok(ret == 1, "Expected ret == 1, got %d\n", ret);
|
||||
ok_int(apt[0].x, 4);
|
||||
ok_int(apt[0].y, -4);
|
||||
ok_int(apt[1].x, -3527);
|
||||
ok_int(apt[1].y, -3527);
|
||||
|
||||
SetGraphicsMode(hdc, GM_ADVANCED);
|
||||
SetMapMode(hdc, MM_ANISOTROPIC);
|
||||
|
||||
xform.eM11 = 1.;
|
||||
xform.eM12 = 0.;
|
||||
xform.eM21 = 0.;
|
||||
xform.eM22 = 1.;
|
||||
xform.eDx = 4294967167.999999761;
|
||||
xform.eDy = 1.;
|
||||
ret = SetWorldTransform(hdc, &xform);
|
||||
ok(ret == 1, "ret\n");
|
||||
|
||||
ret = DPtoLP(hdc, apt, 2);
|
||||
ok(ret == 1, "Expected ret == 0, got %d\n", ret);
|
||||
ok_int(apt[0].x, 526);
|
||||
ok_int(apt[0].y, 13);
|
||||
ok_int(apt[1].x, -11929);
|
||||
ok_int(apt[1].y, 12440);
|
||||
|
||||
xform.eM11 = 10000000.;
|
||||
ret = SetWorldTransform(hdc, &xform);
|
||||
ret = DPtoLP(hdc, apt, 2);
|
||||
ok(ret == 1, "Expected ret == 0, got %d\n", ret);
|
||||
ok_int(apt[0].x, -429);
|
||||
ok_int(apt[0].y, -47);
|
||||
ok_int(apt[1].x, -429);
|
||||
ok_int(apt[1].y, -43881);
|
||||
|
||||
xform.eM11 = 1.;
|
||||
xform.eDx = 4294967167.999999762; // this is too big
|
||||
ret = SetWorldTransform(hdc, &xform);
|
||||
ok(ret == 1, "ret\n");
|
||||
ret = DPtoLP(hdc, apt, 2);
|
||||
ok(ret == 0, "Expected ret == 0, got %d\n", ret);
|
||||
ok_int(apt[0].x, -429);
|
||||
ok_int(apt[0].y, -47);
|
||||
ok_int(apt[1].x, -429);
|
||||
ok_int(apt[1].y, -43881);
|
||||
|
||||
xform.eM11 = 2.;
|
||||
xform.eDx = 4294967167.999999762;
|
||||
ret = SetWorldTransform(hdc, &xform);
|
||||
ok(ret == 1, "ret\n");
|
||||
ret = DPtoLP(hdc, apt, 2);
|
||||
ok(ret == 1, "Expected ret == 1, got %d\n", ret);
|
||||
ok_int(apt[0].x, 2147482891);
|
||||
ok_int(apt[0].y, 165);
|
||||
ok_int(apt[1].x, 2147482891);
|
||||
ok_int(apt[1].y, 154782);
|
||||
|
||||
apt[0].x = 1;
|
||||
apt[0].y = 1;
|
||||
apt[1].x = -1000;
|
||||
apt[1].y = 1000;
|
||||
|
||||
xform.eM11 = 10000000.;
|
||||
ret = SetWorldTransform(hdc, &xform);
|
||||
ok(ret == 1, "ret\n");
|
||||
ret = DPtoLP(hdc, apt, 2);
|
||||
ok(ret == 1, "Expected ret == 1, got %d\n", ret);
|
||||
ok_int(apt[0].x, -429);
|
||||
ok_int(apt[0].y, -5);
|
||||
ok_int(apt[1].x, -429);
|
||||
ok_int(apt[1].y, -3528);
|
||||
|
||||
xform.eM11 = 1000000.;
|
||||
ret = SetWorldTransform(hdc, &xform);
|
||||
ok(ret == 1, "ret\n");
|
||||
ret = DPtoLP(hdc, apt, 2);
|
||||
ok(ret == 1, "Expected ret == 1, got %d\n", ret);
|
||||
ok_int(apt[0].x, -4295);
|
||||
ok_int(apt[0].y, 17);
|
||||
ok_int(apt[1].x, -4295);
|
||||
ok_int(apt[1].y, 12443);
|
||||
|
||||
ReleaseDC(0, hdc);
|
||||
}
|
||||
|
||||
START_TEST(DPtoLP)
|
||||
{
|
||||
Test_DPtoLP_Params();
|
||||
Test_DPtoLP();
|
||||
}
|
||||
|
|
@ -113,6 +113,13 @@ void Test_SelectObject()
|
|||
hOldObj = SelectObject(hDC, hOldObj);
|
||||
RTEST(hOldObj == hNewObj);
|
||||
|
||||
/* Test invalid BITMAP */
|
||||
hNewObj = CreateBitmap(2, 2, 1, 4, &bmBits);
|
||||
ok(hNewObj != NULL, "CreateBitmap failed. Skipping tests.\n");
|
||||
if (hNewObj == NULL) return;
|
||||
hOldObj = SelectObject(hDC, hNewObj);
|
||||
ok(hOldObj == NULL, "should fail\n");
|
||||
|
||||
/* Test CLIOBJ */
|
||||
|
||||
/* Test PATH */
|
||||
|
|
|
@ -19,6 +19,7 @@
|
|||
<file>CreateFontIndirect.c</file>
|
||||
<file>CreatePen.c</file>
|
||||
<file>CreateRectRgn.c</file>
|
||||
<file>DPtoLP.c</file>
|
||||
<file>EngAcquireSemaphore.c</file>
|
||||
<file>EngCreateSemaphore.c</file>
|
||||
<file>EngDeleteSemaphore.c</file>
|
||||
|
|
|
@ -15,6 +15,7 @@ extern void func_CreateFont(void);
|
|||
extern void func_CreateFontIndirect(void);
|
||||
extern void func_CreatePen(void);
|
||||
extern void func_CreateRectRgn(void);
|
||||
extern void func_DPtoLP(void);
|
||||
extern void func_EngAcquireSemaphore(void);
|
||||
extern void func_EngCreateSemaphore(void);
|
||||
extern void func_EngDeleteSemaphore(void);
|
||||
|
@ -59,6 +60,7 @@ const struct test winetest_testlist[] =
|
|||
{ "CreateFontIndirect", func_CreateFontIndirect },
|
||||
{ "CreatePen", func_CreatePen },
|
||||
{ "CreateRectRgn", func_CreateRectRgn },
|
||||
{ "DPtoLP", func_DPtoLP },
|
||||
{ "EngAcquireSemaphore", func_EngAcquireSemaphore },
|
||||
{ "EngCreateSemaphore", func_EngCreateSemaphore },
|
||||
{ "EngDeleteSemaphore", func_EngDeleteSemaphore },
|
||||
|
|
Loading…
Reference in a new issue