Signed-off-by: Nikolay Sivov nsivov@codeweavers.com --- dlls/dwrite/tests/font.c | 7 ------- 1 file changed, 7 deletions(-)
diff --git a/dlls/dwrite/tests/font.c b/dlls/dwrite/tests/font.c index d0940c3b145..4b31c331872 100644 --- a/dlls/dwrite/tests/font.c +++ b/dlls/dwrite/tests/font.c @@ -2460,11 +2460,6 @@ static void test_system_fontcollection(void) ok(coll2 == collection, "got %p, was %p\n", coll2, collection); IDWriteFontCollection_Release(coll2);
- hr = IDWriteFactory_GetSystemFontCollection(factory, &coll2, TRUE); - ok(hr == S_OK, "got 0x%08x\n", hr); - ok(coll2 == collection, "got %p, was %p\n", coll2, collection); - IDWriteFontCollection_Release(coll2); - factory2 = create_factory(); hr = IDWriteFactory_GetSystemFontCollection(factory2, &coll2, FALSE); ok(hr == S_OK, "got 0x%08x\n", hr); @@ -2652,10 +2647,8 @@ todo_wine hr = IDWriteFactory6_GetSystemFontCollection(factory6, FALSE, DWRITE_FONT_FAMILY_MODEL_WEIGHT_STRETCH_STYLE, &collection2); ok(hr == S_OK, "Failed to get collection, hr %#x.\n", hr); - ok(collection == (IDWriteFontCollection *)collection2, "Unexpected instance.\n"); IDWriteFontCollection2_Release(collection2); } - IDWriteFactory6_Release(factory6); } else
Signed-off-by: Nikolay Sivov nsivov@codeweavers.com --- dlls/dwrite/tests/font.c | 28 ++++++++++++++++++++-------- 1 file changed, 20 insertions(+), 8 deletions(-)
diff --git a/dlls/dwrite/tests/font.c b/dlls/dwrite/tests/font.c index 4b31c331872..e995f9441bd 100644 --- a/dlls/dwrite/tests/font.c +++ b/dlls/dwrite/tests/font.c @@ -2411,8 +2411,11 @@ static void test_GetMetrics(void)
get_combined_font_name(familyW, faceW, nameW);
- if (has_face_variations(fontface)) { - skip("%s: test does not support variable fonts.\n", wine_dbgstr_w(nameW)); + if (has_face_variations(fontface)) + { + static int once; + if (!once++) + skip("GetMetrics() test does not support variable fonts.\n"); IDWriteFontFace_Release(fontface); continue; } @@ -2841,8 +2844,11 @@ if (0) /* crashes on native */ hr = IDWriteFont_CreateFontFace(font, &fontface); ok(hr == S_OK, "got 0x%08x\n", hr);
- if (has_face_variations(fontface)) { - skip("%s: test does not support variable fonts.\n", wine_dbgstr_w(nameW)); + if (has_face_variations(fontface)) + { + static int once; + if (!once++) + skip("ConvertFontFaceToLOGFONT() test does not support variable fonts.\n"); IDWriteFontFace_Release(fontface); IDWriteFont_Release(font); continue; @@ -3810,8 +3816,11 @@ if (strcmp(winetest_platform, "wine")) {
IDWriteLocalizedStrings_Release(names);
- if (IDWriteFontFace_IsSymbolFont(fontface)) { - skip("Skipping for symbol font %s %s.\n", wine_dbgstr_w(familynameW), wine_dbgstr_w(facenameW)); + if (IDWriteFontFace_IsSymbolFont(fontface)) + { + static int once; + if (!once++) + skip("GetUnicodeRanges() test does not support symbol fonts.\n"); IDWriteFontFace_Release(fontface); continue; } @@ -4802,8 +4811,11 @@ if (0) { /* crashes on native */ has_variations = has_face_variations(fontface); IDWriteFontFace_Release(fontface);
- if (has_variations) { - skip("%s: test does not support variable fonts.\n", wine_dbgstr_w(nameW)); + if (has_variations) + { + static int once; + if (!once++) + skip("ConvertFontToLOGFONT() test does not support variable fonts.\n"); IDWriteFont_Release(font); continue; }
Signed-off-by: Nikolay Sivov nsivov@codeweavers.com --- dlls/dwrite/font.c | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-)
diff --git a/dlls/dwrite/font.c b/dlls/dwrite/font.c index 1a54d2300b1..cd90a9c051c 100644 --- a/dlls/dwrite/font.c +++ b/dlls/dwrite/font.c @@ -7157,6 +7157,10 @@ static IDWriteLocalizedStrings * fontset_entry_get_property(struct dwrite_fontse opentype_get_font_info_strings(&stream_desc, DWRITE_INFORMATIONAL_STRING_FULL_NAME, &value); else if (property == DWRITE_FONT_PROPERTY_ID_POSTSCRIPT_NAME) opentype_get_font_info_strings(&stream_desc, DWRITE_INFORMATIONAL_STRING_POSTSCRIPT_NAME, &value); + else if (property == DWRITE_FONT_PROPERTY_ID_DESIGN_SCRIPT_LANGUAGE_TAG) + opentype_get_font_info_strings(&stream_desc, DWRITE_INFORMATIONAL_STRING_DESIGN_SCRIPT_LANGUAGE_TAG, &value); + else if (property == DWRITE_FONT_PROPERTY_ID_SUPPORTED_SCRIPT_LANGUAGE_TAG) + opentype_get_font_info_strings(&stream_desc, DWRITE_INFORMATIONAL_STRING_SUPPORTED_SCRIPT_LANGUAGE_TAG, &value); else WARN("Unsupported property %u.\n", property);
@@ -7296,6 +7300,8 @@ static BOOL fontset_entry_is_matching(struct dwrite_fontset_entry *entry, DWRITE { case DWRITE_FONT_PROPERTY_ID_POSTSCRIPT_NAME: case DWRITE_FONT_PROPERTY_ID_FULL_NAME: + case DWRITE_FONT_PROPERTY_ID_DESIGN_SCRIPT_LANGUAGE_TAG: + case DWRITE_FONT_PROPERTY_ID_SUPPORTED_SCRIPT_LANGUAGE_TAG: if (!(value = fontset_entry_get_property(entry, props[i].propertyId))) return FALSE;
@@ -7307,8 +7313,6 @@ static BOOL fontset_entry_is_matching(struct dwrite_fontset_entry *entry, DWRITE case DWRITE_FONT_PROPERTY_ID_TYPOGRAPHIC_FAMILY_NAME: case DWRITE_FONT_PROPERTY_ID_WEIGHT_STRETCH_STYLE_FACE_NAME: case DWRITE_FONT_PROPERTY_ID_WIN32_FAMILY_NAME: - case DWRITE_FONT_PROPERTY_ID_DESIGN_SCRIPT_LANGUAGE_TAG: - case DWRITE_FONT_PROPERTY_ID_SUPPORTED_SCRIPT_LANGUAGE_TAG: case DWRITE_FONT_PROPERTY_ID_SEMANTIC_TAG: case DWRITE_FONT_PROPERTY_ID_WEIGHT: case DWRITE_FONT_PROPERTY_ID_STRETCH:
Signed-off-by: Nikolay Sivov nsivov@codeweavers.com --- dlls/dwrite/font.c | 28 +++++++++++++++++----------- 1 file changed, 17 insertions(+), 11 deletions(-)
diff --git a/dlls/dwrite/font.c b/dlls/dwrite/font.c index cd90a9c051c..14be1b9fc1b 100644 --- a/dlls/dwrite/font.c +++ b/dlls/dwrite/font.c @@ -2336,12 +2336,9 @@ static DWRITE_LOCALITY WINAPI dwritefontlist1_GetFontLocality(IDWriteFontList2 * return DWRITE_LOCALITY_LOCAL; }
-static HRESULT WINAPI dwritefontlist1_GetFont(IDWriteFontList2 *iface, UINT32 index, IDWriteFont3 **font) +static HRESULT fontlist_get_font(const struct dwrite_fontlist *fontlist, unsigned int index, + IDWriteFont3 **font) { - struct dwrite_fontlist *fontlist = impl_from_IDWriteFontList2(iface); - - TRACE("%p, %u, %p.\n", iface, index, font); - *font = NULL;
if (fontlist->font_count == 0) @@ -2353,9 +2350,19 @@ static HRESULT WINAPI dwritefontlist1_GetFont(IDWriteFontList2 *iface, UINT32 in return create_font(fontlist->family, index, font); }
+static HRESULT WINAPI dwritefontlist1_GetFont(IDWriteFontList2 *iface, UINT32 index, IDWriteFont3 **font) +{ + struct dwrite_fontlist *fontlist = impl_from_IDWriteFontList2(iface); + + TRACE("%p, %u, %p.\n", iface, index, font); + + return fontlist_get_font(fontlist, index, font); +} + static HRESULT WINAPI dwritefontlist1_GetFontFaceReference(IDWriteFontList2 *iface, UINT32 index, IDWriteFontFaceReference **reference) { + struct dwrite_fontlist *fontlist = impl_from_IDWriteFontList2(iface); IDWriteFont3 *font; HRESULT hr;
@@ -2363,12 +2370,11 @@ static HRESULT WINAPI dwritefontlist1_GetFontFaceReference(IDWriteFontList2 *ifa
*reference = NULL;
- hr = IDWriteFontList2_GetFont(iface, index, &font); - if (FAILED(hr)) - return hr; - - hr = IDWriteFont3_GetFontFaceReference(font, reference); - IDWriteFont3_Release(font); + if (SUCCEEDED(hr = fontlist_get_font(fontlist, index, &font))) + { + hr = IDWriteFont3_GetFontFaceReference(font, reference); + IDWriteFont3_Release(font); + }
return hr; }
Signed-off-by: Nikolay Sivov nsivov@codeweavers.com --- dlls/dwrite/tests/font.c | 7 +++++++ 1 file changed, 7 insertions(+)
diff --git a/dlls/dwrite/tests/font.c b/dlls/dwrite/tests/font.c index e995f9441bd..c14c557c92a 100644 --- a/dlls/dwrite/tests/font.c +++ b/dlls/dwrite/tests/font.c @@ -9512,6 +9512,13 @@ static void test_fontsetbuilder(void) hr = IDWriteFontSet_GetPropertyValues(fontset, 0, id, &exists, &values); ok(hr == S_OK, "Failed to get property value, hr %#x.\n", hr);
+ if (id == DWRITE_FONT_PROPERTY_ID_WEIGHT || id == DWRITE_FONT_PROPERTY_ID_STRETCH + || id == DWRITE_FONT_PROPERTY_ID_STYLE) + { + todo_wine + ok(exists, "Property %u expected to exist.\n", id); + } + if (!exists) continue;