Author: tkreuzer
Date: Mon Feb 28 18:01:12 2011
New Revision: 50937

URL: http://svn.reactos.org/svn/reactos?rev=50937&view=rev
Log:
[GDI32_APITEST]
More tests for MaskBlt

Modified:
    trunk/rostests/apitests/gdi32/MaskBlt.c

Modified: trunk/rostests/apitests/gdi32/MaskBlt.c
URL: 
http://svn.reactos.org/svn/reactos/trunk/rostests/apitests/gdi32/MaskBlt.c?rev=50937&r1=50936&r2=50937&view=diff
==============================================================================
--- trunk/rostests/apitests/gdi32/MaskBlt.c [iso-8859-1] (original)
+++ trunk/rostests/apitests/gdi32/MaskBlt.c [iso-8859-1] Mon Feb 28 18:01:12 
2011
@@ -45,51 +45,104 @@
     ok(ret == 1, "MaskBlt failed (%d)\n", ret);
     ok (pjBitsDst[0] == 0xF0, "pjBitsDst[0] == 0x%x\n", pjBitsDst[0]);
 
-
-
 }
 
-void Test_MaskBlt_RGBA()
+void Test_MaskBlt_16bpp()
+{
+    HDC hdcDst, hdcSrc;
+       BITMAPINFO bmi1 = {{sizeof(BITMAPINFOHEADER), 8, 1, 1, 1, BI_RGB, 0, 
10, 10, 0,0}};
+       BITMAPINFO bmi32 = {{sizeof(BITMAPINFOHEADER), 8, 1, 1, 16, BI_RGB, 0, 
10, 10, 0,0}};
+    HBITMAP hbmDst, hbmSrc, hbmMsk;
+    PUCHAR pjBitsMsk;
+    PUSHORT pusBitsDst, pusBitsSrc;
+    BOOL ret;
+
+    /* Create a dest dc and bitmap */
+    hdcDst = CreateCompatibleDC(NULL);
+       hbmDst = CreateDIBSection(hdcDst, &bmi32, DIB_RGB_COLORS, 
(PVOID*)&pusBitsDst, NULL, 0);
+    SelectObject(hdcDst, hbmDst);
+
+    /* Create a source dc and bitmap */
+    hdcSrc = CreateCompatibleDC(NULL);
+       hbmSrc = CreateDIBSection(hdcSrc, &bmi32, DIB_RGB_COLORS, 
(PVOID*)&pusBitsSrc, NULL, 0);
+    SelectObject(hdcSrc, hbmSrc);
+       ok(hdcSrc && hbmSrc, "\n");
+
+    /* Create a 1 bpp mask bitmap */
+       hbmMsk = CreateDIBSection(hdcDst, &bmi1, DIB_RGB_COLORS, 
(PVOID*)&pjBitsMsk, NULL, 0);
+       ok(hbmMsk != 0, "CreateDIBSection failed\n");
+
+    /* Do the masking */
+    pusBitsDst[0] = 0x1234;
+    pusBitsDst[1] = 0x5678;
+    pusBitsSrc[0] = 0x4321;
+    pusBitsSrc[1] = 0x8765;
+    pjBitsMsk[0] = 0x80;
+    ret = MaskBlt(hdcDst, 0, 0, 8, 1, hdcSrc, 0, 0, hbmMsk, 0, 0, 
MAKEROP4(SRCCOPY, 0xAA0000));
+    ok(ret == 1, "MaskBlt failed (%d)\n", ret);
+    ok (pusBitsDst[0] == 0x4321, "pusBitsDst[0] == 0x%x\n", pusBitsDst[0]);
+    ok (pusBitsDst[1] == 0x5678, "pusBitsDst[0] == 0x%x\n", pusBitsDst[1]);
+
+    pusBitsDst[0] = 0x1234;
+    pusBitsDst[1] = 0x5678;
+    ret = MaskBlt(hdcDst, 0, 0, 8, 1, hdcSrc, 0, 0, hbmMsk, 0, 0, 
MAKEROP4(SRCPAINT, MERGEPAINT));
+    ok(ret == 1, "MaskBlt failed (%d)\n", ret);
+    ok (pusBitsDst[0] == 0x5335, "pusBitsDst[0] == 0x%x\n", pusBitsDst[0]);
+    ok (pusBitsDst[1] == 0x7efa, "pusBitsDst[0] == 0x%x\n", pusBitsDst[1]);
+}
+
+void Test_MaskBlt_32bpp()
 {
     HDC hdcDst, hdcSrc;
        BITMAPINFO bmi1 = {{sizeof(BITMAPINFOHEADER), 8, 1, 1, 1, BI_RGB, 0, 
10, 10, 0,0}};
        BITMAPINFO bmi32 = {{sizeof(BITMAPINFOHEADER), 8, 1, 1, 32, BI_RGB, 0, 
10, 10, 0,0}};
     HBITMAP hbmDst, hbmSrc, hbmMsk;
-    PUCHAR pjBitsDst, pjBitsSrc, pjBitsMsk;
+    PUCHAR pjBitsMsk;
+    PULONG pulBitsDst, pulBitsSrc;
     BOOL ret;
 
     /* Create a dest dc and bitmap */
     hdcDst = CreateCompatibleDC(NULL);
-       hbmDst = CreateDIBSection(hdcDst, &bmi32, DIB_RGB_COLORS, 
(PVOID*)&pjBitsDst, NULL, 0);
+       hbmDst = CreateDIBSection(hdcDst, &bmi32, DIB_RGB_COLORS, 
(PVOID*)&pulBitsDst, NULL, 0);
     SelectObject(hdcDst, hbmDst);
 
     /* Create a source dc and bitmap */
     hdcSrc = CreateCompatibleDC(NULL);
-       hbmSrc = CreateDIBSection(hdcSrc, &bmi32, DIB_RGB_COLORS, 
(PVOID*)&pjBitsSrc, NULL, 0);
+       hbmSrc = CreateDIBSection(hdcSrc, &bmi32, DIB_RGB_COLORS, 
(PVOID*)&pulBitsSrc, NULL, 0);
     SelectObject(hdcSrc, hbmSrc);
+       ok(hdcSrc && hbmSrc, "\n");
 
     /* Create a 1 bpp mask bitmap */
        hbmMsk = CreateDIBSection(hdcDst, &bmi1, DIB_RGB_COLORS, 
(PVOID*)&pjBitsMsk, NULL, 0);
+       ok(hbmMsk != 0, "CreateDIBSection failed\n");
 
     /* Do the masking */
-    pjBitsDst[0] = 0xAA;
-    pjBitsSrc[0] = 0xCC;
-    pjBitsMsk[0] = 0xF0;
+    pulBitsDst[0] = 0x12345678;
+    pulBitsDst[1] = 0x9abcdef0;
+    pulBitsSrc[0] = 0x87684321;
+    pulBitsSrc[1] = 0x0fedcba9;
+    pjBitsMsk[0] = 0x80;
     ret = MaskBlt(hdcDst, 0, 0, 8, 1, hdcSrc, 0, 0, hbmMsk, 0, 0, 
MAKEROP4(SRCCOPY, 0xAA0000));
     ok(ret == 1, "MaskBlt failed (%d)\n", ret);
-    ok (pjBitsDst[0] == 0xCA, "pjBitsDst[0] == 0x%x\n", pjBitsDst[0]);
+    ok (pulBitsDst[0] == 0x87684321, "pulBitsDst[0] == 0x%lx\n", 
pulBitsDst[0]);
+    ok (pulBitsDst[1] == 0x9abcdef0, "pulBitsDst[0] == 0x%lx\n", 
pulBitsDst[1]);
 
-    pjBitsDst[0] = 0x00;
-    pjBitsSrc[0] = 0xFF;
-    pjBitsMsk[0] = 0xF0;
-    ret = MaskBlt(hdcDst, 0, 0, 8, 1, hdcSrc, 0, 0, hbmMsk, 0, 0, 
MAKEROP4(SRCCOPY, 0xAA0000));
+    pulBitsDst[0] = 0x12345678;
+    pulBitsDst[1] = 0x9abcdef0;
+    ret = MaskBlt(hdcDst, 0, 0, 8, 1, hdcSrc, 0, 0, hbmMsk, 0, 0, 
MAKEROP4(SRCPAINT, MERGEPAINT));
     ok(ret == 1, "MaskBlt failed (%d)\n", ret);
-    ok (pjBitsDst[0] == 0xF0, "pjBitsDst[0] == 0x%x\n", pjBitsDst[0]);
-
+    ok (pulBitsDst[0] == 0x977c5779, "pulBitsDst[0] == 0x%lx\n", 
pulBitsDst[0]);
+    ok (pulBitsDst[1] == 0xfabefef6, "pulBitsDst[0] == 0x%lx\n", 
pulBitsDst[1]);
 }
 
 START_TEST(MaskBlt)
 {
     Test_MaskBlt_1bpp();
+    switch (GetDeviceCaps(GetDC(NULL), BITSPIXEL))
+    {
+        case 16: Test_MaskBlt_16bpp();
+        case 32: Test_MaskBlt_32bpp();
+    }
+    
 }
 


Reply via email to