ReactOS  0.4.14-dev-297-g23e575c
NtGdiCombineRgn.c File Reference
#include <win32nt.h>
Include dependency graph for NtGdiCombineRgn.c:

Go to the source code of this file.

Functions

 START_TEST (NtGdiCombineRgn)
 

Function Documentation

◆ START_TEST()

START_TEST ( NtGdiCombineRgn  )

Definition at line 10 of file NtGdiCombineRgn.c.

11 {
12  HRGN hRgnDest, hRgn1, hRgn2;
13 // test what params are accepted for what operations
14 // 0? invalid? are params maybe ignored in some cases?
15 // LastError
16 
17  /* Preparation */
18  hRgnDest = CreateRectRgn(0,0,1,1);
19  hRgn1 = CreateRectRgn(1,1,4,4);
20  hRgn2 = CreateRectRgn(2,2,6,3);
21 
22  /* RGN_AND = 1, RGN_OR = 2, RGN_XOR = 3, RGN_DIFF = 4, RGN_COPY = 5 */
23 
24  ok_int(NtGdiCombineRgn(hRgnDest, hRgn1, hRgn2, 0), ERROR);
25  ok_int(NtGdiCombineRgn(hRgnDest, hRgn1, hRgn2, 6), ERROR);
26 
28  ok_int(NtGdiCombineRgn(hRgnDest, 0, 0, RGN_AND), ERROR);
31  ok_int(NtGdiCombineRgn(hRgnDest, hRgn1, 0, RGN_AND), ERROR);
34  ok_int(NtGdiCombineRgn(hRgnDest, 0, hRgn1, RGN_AND), ERROR);
37  ok_int(NtGdiCombineRgn(0, hRgn1, hRgn2, RGN_AND), ERROR);
39 
40  /* Create intersection */
41  ok_int(NtGdiCombineRgn(hRgnDest, hRgn1, hRgn2, RGN_AND), SIMPLEREGION);
42  SetRectRgn(hRgn1, 2, 2, 4, 3);
43  ok_int(NtGdiCombineRgn(hRgnDest, hRgnDest, hRgn1, RGN_XOR), NULLREGION);
44 
45  /* Create intersection with itself */
46  SetRectRgn(hRgnDest, 2, 2, 4, 3);
47  ok_int(NtGdiCombineRgn(hRgnDest, hRgnDest, hRgnDest, RGN_AND), SIMPLEREGION);
48  SetRectRgn(hRgn1, 2, 2, 4, 3);
49  ok_int(NtGdiCombineRgn(hRgnDest, hRgnDest, hRgn1, RGN_XOR), NULLREGION);
50 
51  /* What if 2 regions are the same */
52 }
#define ERROR_SUCCESS
Definition: deptool.c:10
#define ERROR(name)
Definition: error_private.h:53
#define ERROR_INVALID_HANDLE
Definition: compat.h:88
#define NULLREGION
Definition: wingdi.h:360
DWORD WINAPI GetLastError(VOID)
Definition: except.c:1059
#define ok_long(expression, result)
Definition: atltest.h:133
#define RGN_AND
Definition: wingdi.h:355
#define RGN_XOR
Definition: wingdi.h:359
#define ok_int(expression, result)
Definition: atltest.h:134
HRGN WINAPI CreateRectRgn(_In_ int, _In_ int, _In_ int, _In_ int)
BOOL WINAPI SetRectRgn(_In_ HRGN, _In_ int, _In_ int, _In_ int, _In_ int)
#define SetLastError(x)
Definition: compat.h:409
__kernel_entry W32KAPI INT APIENTRY NtGdiCombineRgn(_In_ HRGN hrgnDst, _In_ HRGN hrgnSrc1, _In_opt_ HRGN hrgnSrc2, _In_ INT iMode)
#define SIMPLEREGION
Definition: wingdi.h:361