View Issue Details

IDProjectCategoryView StatusLast Update
0002550NoesisGUIUnrealpublic2023-03-30 12:11
Reportersfernandez Assigned Tosfernandez  
PrioritynormalSeveritymajor 
Status resolvedResolutionfixed 
Product Version3.2.0 
Target Version3.2.1Fixed in Version3.2.1 
Summary0002550: Font Fallbacks defined in Noesis settings don't work
Description

Default FontFaces specified into Noesis settings are ignored.

PlatformAny

Activities

sfernandez

sfernandez

2023-03-30 12:11

manager   ~0008391

This is the patch:

Index: NoesisSettings.cpp

--- NoesisSettings.cpp (revision 12413)
+++ NoesisSettings.cpp (revision 12414)
@@ -79,12 +79,15 @@
}
}

-static void GetFamilyNames(const TArray<uint8>& FontData, TArray<Noesis::FixedString<128>>& FamilyNames)
+static void GetFamilyNames(const TArray<uint8>& FontData, TArray<Noesis::FixedString<128>>& FamilyNames,

  • const Noesis::String& Path)
    {
  • Noesis::Ptr<Noesis::MemoryStream> Stream = Noesis::MakePtr<Noesis::MemoryStream>(FontData.GetData(), FontData.Num());
  • Noesis::Fonts::GetTypefaces(Stream, [&FamilyNames](const Noesis::Typeface& Typeface)
  • Noesis::MemoryStream Stream(FontData.GetData(), FontData.Num());
  • Noesis::Fonts::GetTypefaces(&Stream, [&FamilyNames, &Path](const Noesis::Typeface& Typeface)
    {
  • FamilyNames.AddUnique(Typeface.familyName);
  • Noesis::FixedString<512> PathFamilyName(Path.Str());
  • PathFamilyName.Append(Typeface.familyName);
  • FamilyNames.AddUnique(PathFamilyName.Str());
    });
    }

@@ -100,6 +103,9 @@

DefaultFontRefs.Empty(DefaultFonts.Num());
  • FString PackageRoot, PackagePath, PackageName;

  • Noesis::String PathStr;

  • TArray<Noesis::FixedString<128>> FamilyNamesStr;
    for (auto& FontFallback : DefaultFonts)
    {
    @@ -110,6 +116,10 @@
    DefaultFontRefs.Add(FontFace);
    NoesisRuntime.RegisterFont(FontFace);

  • UPackage* Package = FontFace->GetOutermost();

  • FPackageName::SplitLongPackageName(Package->GetPathName(), PackageRoot, PackagePath, PackageName, false);

  • PathStr = TCHAR_TO_UTF8(*(PackageRoot.LeftChop(1) + ";component" / PackagePath / "#"));

  • #if !WITH_EDITORONLY_DATA
    if (FontFace->GetLoadingPolicy() != EFontLoadingPolicy::Inline)
    {
    @@ -116,7 +126,7 @@
    TArray<uint8> FileData;
    FFileHelper::LoadFileToArray(FileData, *FontFace->GetFontFilename());

  • GetFamilyNames(FileData, FamilyNamesStr);

  • GetFamilyNames(FileData, FamilyNamesStr, PathStr);
    }
    else
    #endif
    @@ -125,7 +135,7 @@
    const FFontFaceData& FontFaceData = FontFaceDataRef.Get();
    const TArray<uint8>& FontFaceDataArray = FontFaceData.GetData();

  • GetFamilyNames(FontFaceDataArray, FamilyNamesStr);

  • GetFamilyNames(FontFaceDataArray, FamilyNamesStr, PathStr);
    }
    }
    }

Issue History

Date Modified Username Field Change
2023-03-30 11:55 sfernandez New Issue
2023-03-30 11:55 sfernandez Assigned To => sfernandez
2023-03-30 11:55 sfernandez Status new => assigned
2023-03-30 11:55 sfernandez Target Version => 3.2.1
2023-03-30 12:11 sfernandez Status assigned => resolved
2023-03-30 12:11 sfernandez Resolution open => fixed
2023-03-30 12:11 sfernandez Fixed in Version => 3.2.1
2023-03-30 12:11 sfernandez Note Added: 0008391