Huw Davies : gdi32/tests: Add tests for 24 bpp brushes.

Alexandre Julliard julliard at winehq.org
Wed Jun 1 12:11:08 CDT 2011


Module: wine
Branch: master
Commit: cc4c2529620a3eaf78440a8ba2e71e55ff44bb58
URL:    http://source.winehq.org/git/wine.git/?a=commit;h=cc4c2529620a3eaf78440a8ba2e71e55ff44bb58

Author: Huw Davies <huw at codeweavers.com>
Date:   Wed Jun  1 09:41:42 2011 +0100

gdi32/tests: Add tests for 24 bpp brushes.

---

 dlls/gdi32/tests/dib.c |   50 ++++++++++++++++++++++++++++++++++++++++++-----
 1 files changed, 44 insertions(+), 6 deletions(-)

diff --git a/dlls/gdi32/tests/dib.c b/dlls/gdi32/tests/dib.c
index e1ef345..c750a46 100644
--- a/dlls/gdi32/tests/dib.c
+++ b/dlls/gdi32/tests/dib.c
@@ -93,6 +93,7 @@ static const char *sha1_graphics_a8r8g8b8[] =
     "b2261353decda2712b83538ab434a49ce21f3172",
     "ef654fedcb494dae79559f4db8b691ae2d522a3f",
     "a694872f38e66a7ff471440c3e6a9310ef78328a",
+    "c311dd74325e8cebfc8529a6d24a6fa4ecb7137e",
     "d7398de15b2837a58a62a701ca1b3384625afec4",
     "a78b28472bb7ff480ddedd06b9cf2daa775fa7ae",
     "5246ef357e7317b9d141a3294d300c195da76cb7",
@@ -121,6 +122,7 @@ static const char *sha1_graphics_a8b8g8r8[] =
     "1f1fc165a4dae7ba118ddccb58a279bfe3876b0a",
     "66da15b6780a4ca3b3d2eb1d1dba4e30f7b74964",
     "42fefefe4435570fa8038ec759140c66c76570e9",
+    "ca7e859647b9498b53fdd92543ad8aea98ff46f3",
     "3369889a67d6c79a24ee15f7d14374f9995215e4",
     "473a1fd07df800c87a5d3286b642ace10c61c6af",
     "10cd25a0ed5cd8f978d7d68236f81d949b938e84",
@@ -149,6 +151,7 @@ static const char *sha1_graphics_24[] =
     "1036b91d93e31cd1d4740d0c8642e115e5a38188",
     "3469776cc7d8f6fd3bce17a39eec0b4092294e49",
     "1cb7f3fcf42c9ca47a0689195ced239a09d3c308",
+    "413a7989969c229dee4ab1798362f32f96cf0a10",
     "0bb222e540b82720d4971e4a2fc626899af03e03",
     "adc20832d8c43f1cf372d8392535492013cd2306",
     "45649794dcbcabda487f66f7a80fc1bec79047a1",
@@ -177,6 +180,7 @@ static const char *sha1_graphics_r5g5b5[] =
     "449092689226a1172b6086ba1181d6b6d6499f26",
     "5c636ffadec10fbe440b552fe6436f3dbc607dcf",
     "4aac89fc18c128eddb69eea658272af53138a1cb",
+    "897d16f4d6a6ddad685d23ed7828d4f676539b75",
     "9d21bcfdeaf1ca5d47eb823bdefc24d7a95f4f56",
     "6daaf945a955928c5c124c880522ca4634fb2343",
     "12a288390d16e1efa99d4185301de48a4d433b14",
@@ -205,6 +209,7 @@ static const char *sha1_graphics_r4g4b4[] =
     "25fcb75aa687aac35b8f72640889fe92413e00c5",
     "dbc8d66b419880108793db91c05766c0c6efd86d",
     "6092ccbab6b6e073c6ac8244d122f2cfc453aa38",
+    "e61a4f2657a444d8c49f84fb944f9f847667bf2b",
     "32b6e0aa79b7e96cd0ab2da167f6463c011023a8",
     "1d283aa4d2b2114f7809fe59357d590c7c779aa7",
     "29640e2ddd2d3016da14507c3ce9b2ce32f39bb4",
@@ -233,6 +238,7 @@ static const char *sha1_graphics_8[] =
     "73e2859ce849f756f954718ce3c90f02e31712b6",
     "196d832d283bf642d2e481e5452ca175f7902761",
     "9552f48b88982633a44001227abb847dae4d06b0",
+    "6e375e1485a1e45ac6ab10af49645d5fb2e76dff",
     "cfc67c325c7cdf96d90af9b3cceb8d0504cbb3b0",
     "7262364067e03c7fa498af1d59d228d6c63b460e",
     "5241241a355a667ef0834049adf4218e8b3f16b8",
@@ -261,6 +267,7 @@ static const char *sha1_graphics_4[] =
     "3b53d24178cfacba53103a44dfd5d072b15a6781",
     "fa0d5f2d9419d8310fe4af7a290d13c5026c77de",
     "5070ecae5085209508f7450d5f21c69737a178e9",
+    "d17f4358ae529f920960ed89e535902ee13b0033",
     "0f44e12ecd1ea7e39433890443626d4fc35204a4",
     "eb38683e812fd13dca971ba8f4cfd2b6820d3524",
     "73bbc83f88f1aaa6df0158b63e70bb3165163163",
@@ -435,7 +442,8 @@ static const RECT rectangles[] =
     {200,  40, 210,  43}  /* height == 3 */
 };
 
-static const BITMAPINFOHEADER dib_brush_header_32   = {sizeof(BITMAPINFOHEADER), 16, -16, 1, 32, BI_RGB, 0, 0, 0, 0, 0};
+static const BITMAPINFOHEADER dib_brush_header_8888 = {sizeof(BITMAPINFOHEADER), 16, -16, 1, 32, BI_RGB, 0, 0, 0, 0, 0};
+static const BITMAPINFOHEADER dib_brush_header_24   = {sizeof(BITMAPINFOHEADER), 16, -16, 1, 24, BI_RGB, 0, 0, 0, 0, 0};
 static const BITMAPINFOHEADER dib_brush_header_555  = {sizeof(BITMAPINFOHEADER), 16, -16, 1, 16, BI_RGB, 0, 0, 0, 0, 0};
 static const BITMAPINFOHEADER dib_brush_header_8    = {sizeof(BITMAPINFOHEADER), 16, -16, 1,  8, BI_RGB, 0, 0, 0, 0, 0};
 static const BITMAPINFOHEADER dib_brush_header_4    = {sizeof(BITMAPINFOHEADER), 16, -16, 1,  4, BI_RGB, 0, 0, 0, 0, 0};
@@ -618,9 +626,9 @@ static void draw_graphics(HDC hdc, BITMAPINFO *bmi, BYTE *bits, const char ***sh
 
     ExtSelectClipRgn(hdc, NULL, RGN_COPY);
 
-    /* DIB pattern brush */
+    /* 8888 DIB pattern brush */
 
-    brush_bi->bmiHeader = dib_brush_header_32;
+    brush_bi->bmiHeader = dib_brush_header_8888;
     brush_bits = (BYTE*)brush_bi + sizeof(BITMAPINFOHEADER);
     memset(brush_bits, 0, 16 * 16 * sizeof(DWORD));
     brush_bits[2] = 0xff;
@@ -645,13 +653,13 @@ static void draw_graphics(HDC hdc, BITMAPINFO *bmi, BYTE *bits, const char ***sh
             y += 25;
         }
     }
-    compare_hash(bmi, bits, sha1, "top-down dib brush patblt");
+    compare_hash(bmi, bits, sha1, "top-down 8888 dib brush patblt");
     memset(bits, 0xcc, dib_size);
 
     SelectObject(hdc, orig_brush);
     DeleteObject(dib_brush);
 
-    /* Bottom-up DIB pattern brush */
+    /* 8888 bottom-up DIB pattern brush */
 
     brush_bi->bmiHeader.biHeight = -brush_bi->bmiHeader.biHeight;
 
@@ -675,9 +683,39 @@ static void draw_graphics(HDC hdc, BITMAPINFO *bmi, BYTE *bits, const char ***sh
             y += 25;
         }
     }
-    compare_hash(bmi, bits, sha1, "bottom-up dib brush patblt");
+    compare_hash(bmi, bits, sha1, "bottom-up 8888 dib brush patblt");
     memset(bits, 0xcc, dib_size);
 
+    /* 24 bpp dib pattern brush */
+
+    brush_bi->bmiHeader = dib_brush_header_24;
+    brush_bits = (BYTE*)brush_bi + sizeof(BITMAPINFOHEADER);
+    memset(brush_bits, 0, 16 * 16 * 3);
+    brush_bits[0] = brush_bits[3] = brush_bits[6] = brush_bits[8] = 0xff;
+    brush_bits[49] = brush_bits[52] = 0xff;
+
+    dib_brush = CreateDIBPatternBrushPt(brush_bi, DIB_RGB_COLORS);
+
+    SelectObject(hdc, dib_brush);
+    SetBrushOrgEx(hdc, 1, 1, NULL);
+
+    for(i = 0, y = 10; i < 256; i++)
+    {
+        BOOL ret;
+
+        if(!rop_uses_src(rop3[i]))
+        {
+            ret = PatBlt(hdc, 10 + i, y, 100, 20, rop3[i]);
+            ok(ret, "got FALSE for %x\n", rop3[i]);
+            y += 25;
+        }
+    }
+    compare_hash(bmi, bits, sha1, "top-down 24 bpp brush patblt");
+    memset(bits, 0xcc, dib_size);
+
+    SelectObject(hdc, orig_brush);
+    DeleteObject(dib_brush);
+
     /* 555 dib pattern brush */
 
     brush_bi->bmiHeader = dib_brush_header_555;




More information about the wine-cvs mailing list