Commit 1eb2913a authored by Nikolay Sivov's avatar Nikolay Sivov Committed by Alexandre Julliard

dwrite: Added GetCurrentTransform() for a render target.

parent d59011a9
......@@ -36,6 +36,7 @@ struct rendertarget {
IDWriteBitmapRenderTarget IDWriteBitmapRenderTarget_iface;
LONG ref;
DWRITE_MATRIX m;
SIZE size;
HDC hdc;
};
......@@ -144,8 +145,11 @@ static HRESULT WINAPI rendertarget_SetPixelsPerDip(IDWriteBitmapRenderTarget *if
static HRESULT WINAPI rendertarget_GetCurrentTransform(IDWriteBitmapRenderTarget *iface, DWRITE_MATRIX *transform)
{
struct rendertarget *This = impl_from_IDWriteBitmapRenderTarget(iface);
FIXME("(%p)->(%p): stub\n", This, transform);
return E_NOTIMPL;
TRACE("(%p)->(%p)\n", This, transform);
*transform = This->m;
return S_OK;
}
static HRESULT WINAPI rendertarget_SetCurrentTransform(IDWriteBitmapRenderTarget *iface, DWRITE_MATRIX const *transform)
......@@ -213,6 +217,10 @@ static HRESULT create_rendertarget(HDC hdc, UINT32 width, UINT32 height, IDWrite
return hr;
}
target->m.m11 = target->m.m22 = 1.0;
target->m.m12 = target->m.m21 = 0.0;
target->m.dx = target->m.dy = 0.0;
*ret = &target->IDWriteBitmapRenderTarget_iface;
return S_OK;
......
......@@ -199,6 +199,7 @@ static void test_CreateBitmapRenderTarget(void)
IDWriteBitmapRenderTarget *target, *target2;
IDWriteGdiInterop *interop;
HBITMAP hbm, hbm2;
DWRITE_MATRIX m;
DIBSECTION ds;
HRESULT hr;
SIZE size;
......@@ -321,6 +322,16 @@ if (0) /* crashes on native */
ok(ds.dsBm.bmBitsPixel == 1, "got %d\n", ds.dsBm.bmBitsPixel);
ok(!ds.dsBm.bmBits, "got %p\n", ds.dsBm.bmBits);
/* transform tests */
if (0) /* crashes on native */
hr = IDWriteBitmapRenderTarget_GetCurrentTransform(target, NULL);
memset(&m, 0xcc, sizeof(m));
hr = IDWriteBitmapRenderTarget_GetCurrentTransform(target, &m);
ok(hr == S_OK, "got 0x%08x\n", hr);
ok(m.m11 == 1.0 && m.m22 == 1.0 && m.m12 == 0.0 && m.m21 == 0.0, "got %.1f,%.1f,%.1f,%.1f\n", m.m11, m.m22, m.m12, m.m21);
ok(m.dx == 0.0 && m.dy == 0.0, "got %.1f,%.1f\n", m.dx, m.dy);
IDWriteBitmapRenderTarget_Release(target);
IDWriteGdiInterop_Release(interop);
}
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment