Nikolay Sivov : d2d1/tests: Test that target properties are kept during BindDC().

Alexandre Julliard julliard at winehq.org
Thu Sep 8 10:39:21 CDT 2016


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

Author: Nikolay Sivov <nsivov at codeweavers.com>
Date:   Wed Sep  7 17:33:50 2016 +0300

d2d1/tests: Test that target properties are kept during BindDC().

Signed-off-by: Nikolay Sivov <nsivov at codeweavers.com>
Signed-off-by: Henri Verbeet <hverbeet at codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard at winehq.org>

---

 dlls/d2d1/tests/d2d1.c | 39 ++++++++++++++++++++++++++++++++++++++-
 1 file changed, 38 insertions(+), 1 deletion(-)

diff --git a/dlls/d2d1/tests/d2d1.c b/dlls/d2d1/tests/d2d1.c
index dbbe7d0..0a81013 100644
--- a/dlls/d2d1/tests/d2d1.c
+++ b/dlls/d2d1/tests/d2d1.c
@@ -2654,18 +2654,23 @@ static void test_dc_target(void)
         { DXGI_FORMAT_B8G8R8A8_UNORM, D2D1_ALPHA_MODE_UNKNOWN },
         { DXGI_FORMAT_R8G8B8A8_UNORM, D2D1_ALPHA_MODE_PREMULTIPLIED },
     };
+    D2D1_TEXT_ANTIALIAS_MODE text_aa_mode;
     D2D1_RENDER_TARGET_PROPERTIES desc;
+    D2D1_MATRIX_3X2_F matrix, matrix2;
+    D2D1_ANTIALIAS_MODE aa_mode;
     ID2D1SolidColorBrush *brush;
     ID2D1DCRenderTarget *rt;
     ID2D1Factory *factory;
+    FLOAT dpi_x, dpi_y;
     D2D1_COLOR_F color;
     D2D1_SIZE_F size;
+    D2D1_TAG t1, t2;
     unsigned int i;
     HDC hdc, hdc2;
+    D2D_RECT_F r;
     COLORREF clr;
     HRESULT hr;
     RECT rect;
-    D2D_RECT_F r;
 
     hr = D2D1CreateFactory(D2D1_FACTORY_TYPE_SINGLE_THREADED, &IID_ID2D1Factory, NULL, (void **)&factory);
     ok(SUCCEEDED(hr), "Failed to create factory, hr %#x.\n", hr);
@@ -2716,6 +2721,14 @@ if (SUCCEEDED(hr))
     hr = ID2D1Factory_CreateDCRenderTarget(factory, &desc, &rt);
     ok(SUCCEEDED(hr), "Failed to create target, hr %#x.\n", hr);
 
+    aa_mode = ID2D1DCRenderTarget_GetAntialiasMode(rt);
+    ok(aa_mode == D2D1_ANTIALIAS_MODE_PER_PRIMITIVE, "Got wrong default aa mode %d.\n", aa_mode);
+    text_aa_mode = ID2D1DCRenderTarget_GetTextAntialiasMode(rt);
+    ok(text_aa_mode == D2D1_TEXT_ANTIALIAS_MODE_DEFAULT, "Got wrong default text aa mode %d.\n", text_aa_mode);
+
+    ID2D1DCRenderTarget_GetDpi(rt, &dpi_x, &dpi_y);
+    ok(dpi_x == 96.0f && dpi_y == 96.0f, "Got dpi_x %f, dpi_y %f.\n", dpi_x, dpi_y);
+
     hdc = CreateCompatibleDC(NULL);
     ok(hdc != NULL, "Failed to create an HDC.\n");
 
@@ -2725,9 +2738,33 @@ if (SUCCEEDED(hr))
     hr = ID2D1DCRenderTarget_BindDC(rt, NULL, &rect);
     ok(hr == E_INVALIDARG, "BindDC() returned %#x.\n", hr);
 
+    /* Target properties are retained during BindDC() */
+    ID2D1DCRenderTarget_SetTags(rt, 1, 2);
+    ID2D1DCRenderTarget_SetAntialiasMode(rt, D2D1_ANTIALIAS_MODE_ALIASED);
+    ID2D1DCRenderTarget_SetTextAntialiasMode(rt, D2D1_TEXT_ANTIALIAS_MODE_CLEARTYPE);
+
+    set_matrix_identity(&matrix);
+    translate_matrix(&matrix, 200.0f, 600.0f);
+    ID2D1DCRenderTarget_SetTransform(rt, &matrix);
+
     hr = ID2D1DCRenderTarget_BindDC(rt, hdc, &rect);
     ok(hr == S_OK, "BindDC() returned %#x.\n", hr);
 
+    ID2D1DCRenderTarget_GetTags(rt, &t1, &t2);
+    ok(t1 == 1 && t2 == 2, "Got wrong tags.\n");
+
+    aa_mode = ID2D1DCRenderTarget_GetAntialiasMode(rt);
+    ok(aa_mode == D2D1_ANTIALIAS_MODE_ALIASED, "Got wrong aa mode %d.\n", aa_mode);
+
+    text_aa_mode = ID2D1DCRenderTarget_GetTextAntialiasMode(rt);
+    ok(text_aa_mode == D2D1_TEXT_ANTIALIAS_MODE_CLEARTYPE, "Got wrong text aa mode %d.\n", text_aa_mode);
+
+    ID2D1DCRenderTarget_GetTransform(rt, &matrix2);
+    ok(!memcmp(&matrix, &matrix2, sizeof(matrix)), "Got wrong target transform.\n");
+
+    set_matrix_identity(&matrix);
+    ID2D1DCRenderTarget_SetTransform(rt, &matrix);
+
     /* target size comes from specified dimensions, not from selected bitmap size */
     size = ID2D1DCRenderTarget_GetSize(rt);
     ok(size.width == 32.0f, "got width %.08e.\n", size.width);




More information about the wine-cvs mailing list