Module: wine Branch: stable Commit: 5d489c26e4cc12534f7993218e6d01c025f9fd40 URL: https://source.winehq.org/git/wine.git/?a=commit;h=5d489c26e4cc12534f7993218...
Author: Nikolay Sivov nsivov@codeweavers.com Date: Tue Feb 11 12:24:59 2020 +0300
dwrite: Add partial implementation for IDWriteFontFaceReference1::CreateFontFace().
Signed-off-by: Nikolay Sivov nsivov@codeweavers.com Signed-off-by: Alexandre Julliard julliard@winehq.org (cherry picked from commit 6ee109c5aab14ef7382b69a92862cd740ffd0ef2) Signed-off-by: Michael Stefaniuc mstefani@winehq.org
---
dlls/dwrite/font.c | 16 ++++++++++++++-- dlls/dwrite/tests/font.c | 4 ++++ 2 files changed, 18 insertions(+), 2 deletions(-)
diff --git a/dlls/dwrite/font.c b/dlls/dwrite/font.c index 9280b5d32a..9989427625 100644 --- a/dlls/dwrite/font.c +++ b/dlls/dwrite/font.c @@ -6263,9 +6263,21 @@ static HRESULT WINAPI fontfacereference_EnqueueFileFragmentDownloadRequest(IDWri
static HRESULT WINAPI fontfacereference1_CreateFontFace(IDWriteFontFaceReference1 *iface, IDWriteFontFace5 **fontface) { - FIXME("%p, %p.\n", iface, fontface); + struct dwrite_fontfacereference *reference = impl_from_IDWriteFontFaceReference1(iface); + IDWriteFontFace3 *fontface3; + HRESULT hr;
- return E_NOTIMPL; + TRACE("%p, %p.\n", iface, fontface); + + /* FIXME: created instance should likely respect given axis. */ + if (SUCCEEDED(hr = IDWriteFontFaceReference1_CreateFontFaceWithSimulations(iface, reference->simulations, + &fontface3))) + { + hr = IDWriteFontFace3_QueryInterface(fontface3, &IID_IDWriteFontFace5, (void **)fontface); + IDWriteFontFace3_Release(fontface3); + } + + return hr; }
static UINT32 WINAPI fontfacereference1_GetFontAxisValueCount(IDWriteFontFaceReference1 *iface) diff --git a/dlls/dwrite/tests/font.c b/dlls/dwrite/tests/font.c index d7bcfb1f0a..b2892b8e85 100644 --- a/dlls/dwrite/tests/font.c +++ b/dlls/dwrite/tests/font.c @@ -9537,6 +9537,10 @@ static void test_font_resource(void) ok(hr == S_OK, "Failed to get axis values, hr %#x.\n", hr); ok(axis_values[0].axisTag == DWRITE_FONT_AXIS_TAG_WEIGHT, "Unexpected axis tag.\n");
+ hr = IDWriteFontFaceReference1_CreateFontFace(reference, &fontface5); + ok(hr == S_OK, "Failed to create a font face, hr %#x.\n", hr); + IDWriteFontFace5_Release(fontface5); + IDWriteFontFaceReference1_Release(reference);
IDWriteFontFile_Release(fontfile);