[PATCH 1/2] d2d1/tests: DrawTextLayout() ignores effects that are not brushes
Nikolay Sivov
nsivov at codeweavers.com
Sun Oct 30 12:01:52 CDT 2016
Signed-off-by: Nikolay Sivov <nsivov at codeweavers.com>
---
Docs mention that render target enters error state if drawing effect is ID2D1Resource,
but not a brush, turns out it's not true.
dlls/d2d1/tests/d2d1.c | 22 ++++++++++++++++++++++
1 file changed, 22 insertions(+)
diff --git a/dlls/d2d1/tests/d2d1.c b/dlls/d2d1/tests/d2d1.c
index b49ed7d..cf24841 100644
--- a/dlls/d2d1/tests/d2d1.c
+++ b/dlls/d2d1/tests/d2d1.c
@@ -2637,6 +2637,8 @@ static void test_draw_text_layout(void)
DWRITE_TEXT_RANGE range;
D2D1_COLOR_F color;
ID2D1SolidColorBrush *brush, *brush2;
+ ID2D1RectangleGeometry *geometry;
+ D2D1_RECT_F rect;
if (!(device = create_device()))
{
@@ -2702,6 +2704,26 @@ static void test_draw_text_layout(void)
todo_wine
ok(hr == D2DERR_WRONG_FACTORY, "EndDraw failure expected, hr %#x.\n", hr);
+ /* Effect is d2d resource, but not a brush. */
+ rect.left = rect.top = 0.0f;
+ rect.right = rect.bottom = 10.0f;
+ hr = ID2D1Factory_CreateRectangleGeometry(factory, &rect, &geometry);
+ ok(SUCCEEDED(hr), "Failed to geometry, hr %#x.\n", hr);
+
+ range.startPosition = 0;
+ range.length = 4;
+ hr = IDWriteTextLayout_SetDrawingEffect(text_layout, (IUnknown*)geometry, range);
+ ok(SUCCEEDED(hr), "Failed to set drawing effect, hr %#x.\n", hr);
+ ID2D1RectangleGeometry_Release(geometry);
+
+ ID2D1RenderTarget_BeginDraw(rt);
+
+ origin.x = origin.y = 0.0f;
+ ID2D1RenderTarget_DrawTextLayout(rt, origin, text_layout, (ID2D1Brush*)brush, D2D1_DRAW_TEXT_OPTIONS_NONE);
+
+ hr = ID2D1RenderTarget_EndDraw(rt, NULL, NULL);
+ ok(hr == S_OK, "EndDraw failure expected, hr %#x.\n", hr);
+
IDWriteTextFormat_Release(text_format);
IDWriteTextLayout_Release(text_layout);
IDWriteFactory_Release(dwrite_factory);
--
2.10.1
More information about the wine-patches
mailing list