[PATCH 2/3] d2d1/tests: Basic test for ID2D1DCRenderTarget creation
Nikolay Sivov
nsivov at codeweavers.com
Mon Mar 28 15:18:35 CDT 2016
Signed-off-by: Nikolay Sivov <nsivov at codeweavers.com>
---
dlls/d2d1/tests/d2d1.c | 66 ++++++++++++++++++++++++++++++++++++++++++++++++++
1 file changed, 66 insertions(+)
diff --git a/dlls/d2d1/tests/d2d1.c b/dlls/d2d1/tests/d2d1.c
index 2a78d2c..4e879ab 100644
--- a/dlls/d2d1/tests/d2d1.c
+++ b/dlls/d2d1/tests/d2d1.c
@@ -2626,6 +2626,71 @@ todo_wine
DestroyWindow(window);
}
+static void test_dc_target(void)
+{
+ static D2D1_PIXEL_FORMAT invalid_formats[] =
+ {
+ { DXGI_FORMAT_UNKNOWN, D2D1_ALPHA_MODE_PREMULTIPLIED },
+ { DXGI_FORMAT_B8G8R8A8_UNORM, D2D1_ALPHA_MODE_UNKNOWN },
+ { DXGI_FORMAT_R8G8B8A8_UNORM, D2D1_ALPHA_MODE_PREMULTIPLIED },
+ };
+ D2D1_RENDER_TARGET_PROPERTIES desc;
+ ID2D1SolidColorBrush *brush;
+ ID2D1DCRenderTarget *rt;
+ ID2D1Factory *factory;
+ D2D1_COLOR_F color;
+ D2D1_SIZE_F size;
+ unsigned int i;
+ HRESULT hr;
+
+ hr = D2D1CreateFactory(D2D1_FACTORY_TYPE_SINGLE_THREADED, &IID_ID2D1Factory, NULL, (void **)&factory);
+ ok(SUCCEEDED(hr), "Failed to create factory, hr %#x.\n", hr);
+
+ for (i = 0; i < sizeof(invalid_formats) / sizeof(*invalid_formats); ++i)
+ {
+ desc.type = D2D1_RENDER_TARGET_TYPE_DEFAULT;
+ desc.pixelFormat = invalid_formats[i];
+ desc.dpiX = 96.0f;
+ desc.dpiY = 96.0f;
+ desc.usage = D2D1_RENDER_TARGET_USAGE_NONE;
+ desc.minLevel = D2D1_FEATURE_LEVEL_DEFAULT;
+
+ hr = ID2D1Factory_CreateDCRenderTarget(factory, &desc, &rt);
+ todo_wine
+ ok(hr == D2DERR_UNSUPPORTED_PIXEL_FORMAT, "Failed to create target, hr %#x.\n", hr);
+ }
+
+ desc.type = D2D1_RENDER_TARGET_TYPE_DEFAULT;
+ desc.pixelFormat.format = DXGI_FORMAT_B8G8R8A8_UNORM;
+ desc.pixelFormat.alphaMode = D2D1_ALPHA_MODE_PREMULTIPLIED;
+ desc.dpiX = 96.0f;
+ desc.dpiY = 96.0f;
+ desc.usage = D2D1_RENDER_TARGET_USAGE_NONE;
+ desc.minLevel = D2D1_FEATURE_LEVEL_DEFAULT;
+ hr = ID2D1Factory_CreateDCRenderTarget(factory, &desc, &rt);
+todo_wine
+ ok(SUCCEEDED(hr), "Failed to create target, hr %#x.\n", hr);
+if (SUCCEEDED(hr))
+{
+ size = ID2D1DCRenderTarget_GetSize(rt);
+ ok(size.width == 0.0f, "got width %.08e.\n", size.width);
+ ok(size.height == 0.0f, "got height %.08e.\n", size.height);
+
+ /* object creation methods work without BindDC() */
+ set_color(&color, 0.0f, 0.0f, 0.0f, 0.0f);
+ hr = ID2D1DCRenderTarget_CreateSolidColorBrush(rt, &color, NULL, &brush);
+ ok(SUCCEEDED(hr), "Failed to create brush, hr %#x.\n", hr);
+ ID2D1SolidColorBrush_Release(brush);
+
+ ID2D1DCRenderTarget_BeginDraw(rt);
+ hr = ID2D1DCRenderTarget_EndDraw(rt, NULL, NULL);
+ ok(hr == D2DERR_WRONG_STATE, "EndDraw() failed, hr %#x.\n", hr);
+
+ ID2D1DCRenderTarget_Release(rt);
+}
+ ID2D1Factory_Release(factory);
+}
+
START_TEST(d2d1)
{
test_clip();
@@ -2640,4 +2705,5 @@ START_TEST(d2d1)
test_opacity_brush();
test_create_target();
test_draw_text_layout();
+ test_dc_target();
}
--
2.8.0.rc3
More information about the wine-patches
mailing list