1 /*
2  * PROJECT:         ReactOS api tests
3  * LICENSE:         GPL - See COPYING in the top level directory
4  * PURPOSE:         Test for FrameRgn
5  * PROGRAMMERS:     Timo Kreuzer
6  */
7 
8 #include "precomp.h"
9 
10 #include "init.h"
11 
12 void Test_PaintRgn()
13 {
14     RECT rc = { 0, 0, 100, 100 };
15     HRGN hrgn1, hrgn2;
16     BOOL bRet;
17     XFORM xform;
18     PULONG pulDIB = gpvDIB1;
19 
20     FillRect(ghdcDIB1, &rc, GetStockObject(BLACK_BRUSH));
21 
22     hrgn1 = CreateRectRgn(0, 0, 8, 3);
23     ok(hrgn1 != NULL, "failed to create region\n");
24 
25     hrgn2 = CreateRectRgn(2, 3, 5, 8);
26     ok(hrgn1 != NULL, "failed to create region\n");
27 
28     CombineRgn(hrgn1, hrgn1, hrgn2, RGN_OR);
29 
30     xform.eM11 = 1.0;
31     xform.eM12 = 0.5f;
32     xform.eM21 = 0.0;
33     xform.eM22 = 1.0;
34     xform.eDx = 0.0;
35     xform.eDy = 0.0;
36 
37     SetGraphicsMode(ghdcDIB1, GM_ADVANCED);
38     ok(SetWorldTransform(ghdcDIB1, &xform) == TRUE, "SetWorldTransform failed\n");
39 
40     SelectObject(ghdcDIB1, GetStockObject(WHITE_BRUSH));
41 
42     bRet = PaintRgn(ghdcDIB1, hrgn1);
43     ok(bRet == TRUE, "PaintRgn failed\n");
44 
45     ok_long(pulDIB[0], 0x00000000); // 000000000
46     ok_long(pulDIB[1], 0x000000C0); // 110000000
47     ok_long(pulDIB[2], 0x000000F0); // 111110000
48     ok_long(pulDIB[3], 0x000000FC); // 111111000
49     ok_long(pulDIB[4], 0x0000003F); // 001111110
50     ok_long(pulDIB[5], 0x0000003F); // 001111110
51     ok_long(pulDIB[6], 0x0000003B); // 001110110
52     ok_long(pulDIB[7], 0x00000038); // 001110000
53     ok_long(pulDIB[8], 0x00000038); // 001110000
54 }
55 
56 START_TEST(PaintRgn)
57 {
58     InitStuff();
59     Test_PaintRgn();
60 }
61 
62