public void Should_Get_Near_Matching_Typeface() { using (UnitTestApplication.Start(TestServices.MockPlatformRenderInterface)) { var notoMono = new FontFamily("resm:Avalonia.Skia.UnitTests.Assets?assembly=Avalonia.Skia.UnitTests#Noto Mono"); var notoMonoCollection = SKTypefaceCollectionCache.GetOrAddTypefaceCollection(notoMono); Assert.Equal("Noto Mono", notoMonoCollection.Get(new Typeface(notoMono, weight: FontWeight.Bold)).FamilyName); } }
public void Should_Get_Near_Matching_Typeface(string familyName, FontWeight fontWeight, FontStyle fontStyle) { using (UnitTestApplication.Start(TestServices.MockPlatformRenderInterface)) { var fontFamily = new FontFamily(familyName); var typefaceCollection = SKTypefaceCollectionCache.GetOrAddTypefaceCollection(fontFamily); var actual = typefaceCollection.Get(new Typeface(fontFamily, fontStyle, fontWeight))?.FamilyName; Assert.Equal("Noto Mono", actual); } }
public void Should_Get_Null_For_Invalid_FamilyName() { using (UnitTestApplication.Start(TestServices.MockPlatformRenderInterface)) { var notoMono = new FontFamily("resm:Avalonia.Skia.UnitTests.Assets?assembly=Avalonia.Skia.UnitTests#Noto Mono"); var notoMonoCollection = SKTypefaceCollectionCache.GetOrAddTypefaceCollection(notoMono); var typeface = notoMonoCollection.Get(new Typeface("ABC")); Assert.Null(typeface); } }
public IGlyphTypefaceImpl CreateGlyphTypeface(Typeface typeface) { switch (typeface.FontFamily.Name) { case "Twitter Color Emoji": case "Noto Mono": var typefaceCollection = SKTypefaceCollectionCache.GetOrAddTypefaceCollection(typeface.FontFamily); var skTypeface = typefaceCollection.Get(typeface); return(new GlyphTypefaceImpl(skTypeface)); default: return(new GlyphTypefaceImpl(SKTypeface.FromFamilyName(typeface.FontFamily.Name, (SKFontStyleWeight)typeface.Weight, SKFontStyleWidth.Normal, (SKFontStyleSlant)typeface.Style))); } }
public void Should_Get_Typeface_For_Partial_FamilyName() { using (UnitTestApplication.Start(TestServices.MockPlatformRenderInterface)) { var fontFamily = new FontFamily("resm:Avalonia.Skia.UnitTests.Assets?assembly=Avalonia.Skia.UnitTests#T"); var fontCollection = SKTypefaceCollectionCache.GetOrAddTypefaceCollection(fontFamily); var typeface = fontCollection.Get(new Typeface(fontFamily)); Assert.NotNull(typeface); Assert.Equal("Twitter Color Emoji", typeface.FamilyName); } }
public IGlyphTypefaceImpl CreateGlyphTypeface(Typeface typeface) { SKTypeface skTypeface; switch (typeface.FontFamily.Name) { case "Twitter Color Emoji": { var typefaceCollection = SKTypefaceCollectionCache.GetOrAddTypefaceCollection(_emojiTypeface.FontFamily); skTypeface = typefaceCollection.Get(typeface); break; } case "Noto Sans": { var typefaceCollection = SKTypefaceCollectionCache.GetOrAddTypefaceCollection(_italicTypeface.FontFamily); skTypeface = typefaceCollection.Get(typeface); break; } case "Noto Sans Arabic": { var typefaceCollection = SKTypefaceCollectionCache.GetOrAddTypefaceCollection(_arabicTypeface.FontFamily); skTypeface = typefaceCollection.Get(typeface); break; } case FontFamily.DefaultFontFamilyName: case "Noto Mono": { var typefaceCollection = SKTypefaceCollectionCache.GetOrAddTypefaceCollection(_defaultTypeface.FontFamily); skTypeface = typefaceCollection.Get(_defaultTypeface); break; } default: { skTypeface = SKTypeface.FromFamilyName(typeface.FontFamily.Name, (SKFontStyleWeight)typeface.Weight, SKFontStyleWidth.Normal, (SKFontStyleSlant)typeface.Style); break; } } return(new GlyphTypefaceImpl(skTypeface)); }
public void Should_Load_Typefaces_From_Invalid_Name() { using (UnitTestApplication.Start(TestServices.MockPlatformRenderInterface)) { var notoMono = new FontFamily("resm:Avalonia.Skia.UnitTests.Assets?assembly=Avalonia.Skia.UnitTests#Noto Mono"); var colorEmoji = new FontFamily("resm:Avalonia.Skia.UnitTests.Assets?assembly=Avalonia.Skia.UnitTests#Twitter Color Emoji"); var notoMonoCollection = SKTypefaceCollectionCache.GetOrAddTypefaceCollection(notoMono); var typeface = new Typeface("ABC", FontWeight.Bold, FontStyle.Italic); Assert.Equal("Noto Mono", notoMonoCollection.Get(typeface).FamilyName); var notoColorEmojiCollection = SKTypefaceCollectionCache.GetOrAddTypefaceCollection(colorEmoji); Assert.Equal("Twitter Color Emoji", notoColorEmojiCollection.Get(typeface).FamilyName); } }
public IGlyphTypefaceImpl CreateGlyphTypeface(Typeface typeface) { SKTypeface skTypeface; switch (typeface.FontFamily.Name) { case "Noto Sans": { var typefaceCollection = SKTypefaceCollectionCache.GetOrAddTypefaceCollection(_italicTypeface.FontFamily); skTypeface = typefaceCollection.Get(typeface); break; } default: { var typefaceCollection = SKTypefaceCollectionCache.GetOrAddTypefaceCollection(_defaultTypeface.FontFamily); skTypeface = typefaceCollection.Get(_defaultTypeface); break; } } return(new GlyphTypefaceImpl(skTypeface)); }