Module: wine Branch: master Commit: d9c446050adc372fcf71ae43f85d7a4d36be67e2 URL: http://source.winehq.org/git/wine.git/?a=commit;h=d9c446050adc372fcf71ae43f8...
Author: Nikolay Sivov nsivov@codeweavers.com Date: Wed Apr 20 21:38:20 2016 +0300
dwrite: Implement IDWriteFont3::GetFontFaceReference().
Signed-off-by: Nikolay Sivov nsivov@codeweavers.com Signed-off-by: Alexandre Julliard julliard@winehq.org
---
dlls/dwrite/font.c | 7 +++++-- dlls/dwrite/tests/font.c | 19 +++++++++++++++++++ 2 files changed, 24 insertions(+), 2 deletions(-)
diff --git a/dlls/dwrite/font.c b/dlls/dwrite/font.c index f579e19..2a2f39f 100644 --- a/dlls/dwrite/font.c +++ b/dlls/dwrite/font.c @@ -1511,8 +1511,11 @@ static BOOL WINAPI dwritefont3_Equals(IDWriteFont3 *iface, IDWriteFont *font) static HRESULT WINAPI dwritefont3_GetFontFaceReference(IDWriteFont3 *iface, IDWriteFontFaceReference **reference) { struct dwrite_font *This = impl_from_IDWriteFont3(iface); - FIXME("(%p)->(%p): stub\n", This, reference); - return E_NOTIMPL; + + TRACE("(%p)->(%p)\n", This, reference); + + return IDWriteFactory3_CreateFontFaceReference_(This->data->factory, This->data->file, This->data->face_index, + This->data->simulations, reference); }
static BOOL WINAPI dwritefont3_HasCharacter(IDWriteFont3 *iface, UINT32 ch) diff --git a/dlls/dwrite/tests/font.c b/dlls/dwrite/tests/font.c index ae6cbcf..bad347d 100644 --- a/dlls/dwrite/tests/font.c +++ b/dlls/dwrite/tests/font.c @@ -5830,6 +5830,8 @@ static void test_CreateFontFaceReference(void) IDWriteFontFile *file, *file1; IDWriteFactory3 *factory3; IDWriteFactory *factory; + IDWriteFont3 *font3; + IDWriteFont *font; UINT32 index; WCHAR *path; HRESULT hr; @@ -5921,6 +5923,23 @@ todo_wine IDWriteFontFile_Release(file); IDWriteFontFile_Release(file1);
+ /* references returned from IDWriteFont3 */ + font = get_tahoma_instance((IDWriteFactory*)factory3, DWRITE_FONT_STYLE_NORMAL); + hr = IDWriteFont_QueryInterface(font, &IID_IDWriteFont3, (void**)&font3); + ok(hr == S_OK, "got 0x%08x\n", hr); + IDWriteFont_Release(font); + + hr = IDWriteFont3_GetFontFaceReference(font3, &ref); + ok(hr == S_OK, "got 0x%08x\n", hr); + + hr = IDWriteFont3_GetFontFaceReference(font3, &ref1); + ok(hr == S_OK, "got 0x%08x\n", hr); + ok(ref != ref1, "got %p, %p\n", ref1, ref); + + IDWriteFontFaceReference_Release(ref); + IDWriteFontFaceReference_Release(ref1); + IDWriteFont3_Release(font3); + IDWriteFactory3_Release(factory3); DELETE_FONTFILE(path); }