UDocumentation UE5.7 10.02.2026 (Source)
API documentation for Unreal Engine 5.7
LegacySlateFontInfoCache.h
Go to the documentation of this file.
1// Copyright Epic Games, Inc. All Rights Reserved.
2
3#pragma once
4
5#include "CoreMinimal.h"
6#include "UObject/GCObject.h"
8
12class FLegacySlateFontInfoCache : public FGCObject, public TSharedFromThis<FLegacySlateFontInfoCache>
13{
14public:
19 {
20 public:
21 FFallbackContext() = default;
22
24 : FontData(InFontData)
25 , Codepoint(InCodepoint)
26 {
27 }
28
29 FString ToString() const;
30
31 private:
32 const FFontData* FontData = nullptr;
33 UTF32CHAR Codepoint = 0;
34 };
35
40
45
50
55
59 bool IsLastResortFontAvailable() const;
60
65
69 const FFontData& GetLastResortFontData(const FFallbackContext& InContext);
70
71 // FGCObject interface
72 virtual void AddReferencedObjects(FReferenceCollector& Collector) override;
73 virtual FString GetReferencerName() const override;
74
75private:
77
78 struct FLegacyFontKey
79 {
80 FLegacyFontKey()
81 : Name()
82 , Hinting(EFontHinting::Default)
83 {
84 }
85
86 FLegacyFontKey(const FName& InName, const EFontHinting InHinting)
87 : Name(InName)
88 , Hinting(InHinting)
89 {
90 }
91
92 bool operator==(const FLegacyFontKey& Other) const
93 {
94 return Name == Other.Name && Hinting == Other.Hinting;
95 }
96
97 bool operator!=(const FLegacyFontKey& Other) const
98 {
99 return !(*this == Other);
100 }
101
102 friend inline uint32 GetTypeHash(const FLegacyFontKey& Key)
103 {
104 uint32 Hash = 0;
106 Hash = HashCombine(Hash, uint32(Key.Hinting));
107 return Hash;
108 }
109
110 FName Name;
111 EFontHinting Hinting;
112 };
113
114 TMap<FLegacyFontKey, TSharedPtr<const FCompositeFont>> LegacyFontNameToCompositeFont;
118
119 TSharedPtr<const FFontData> LocalizedFallbackFontData;
120 TSharedPtr<const FFontData> LastResortFontData;
121
122 FCriticalSection LastResortFontCS;
123 FCriticalSection LastResortFontDataCS;
124
125 FString LastResortFontPath;
126 bool bIsLastResortFontAvailable;
127
129};
EFontHinting
Definition CompositeFont.h:25
FPlatformTypes::UTF32CHAR UTF32CHAR
A 32-bit character containing a UTF32 (Unicode, 32-bit, fixed-width) code unit.
Definition Platform.h:1143
UE_FORCEINLINE_HINT TSharedRef< CastToType, Mode > StaticCastSharedRef(TSharedRef< CastFromType, Mode > const &InSharedRef)
Definition SharedPointer.h:127
UE::FPlatformRecursiveMutex FCriticalSection
Definition CriticalSection.h:53
constexpr uint32 HashCombine(uint32 A, uint32 C)
Definition TypeHash.h:36
uint32_t uint32
Definition binka_ue_file_header.h:6
Definition GCObject.h:128
Definition LegacySlateFontInfoCache.h:13
const FFontData & GetLastResortFontData(const FFallbackContext &InContext)
Definition LegacySlateFontInfoCache.cpp:310
TSharedRef< const FCompositeFont > GetDefaultFont()
Definition LegacySlateFontInfoCache.cpp:94
static FLegacySlateFontInfoCache & Get()
Definition LegacySlateFontInfoCache.cpp:39
bool IsLastResortFontAvailable() const
Definition LegacySlateFontInfoCache.cpp:291
TSharedPtr< const FCompositeFont > GetCompositeFont(const FName &InLegacyFontName, const EFontHinting InLegacyFontHinting)
Definition LegacySlateFontInfoCache.cpp:54
TSharedPtr< const FCompositeFont > GetSystemFont()
Definition LegacySlateFontInfoCache.cpp:273
TSharedPtr< const FCompositeFont > GetLastResortFont()
Definition LegacySlateFontInfoCache.cpp:296
virtual void AddReferencedObjects(FReferenceCollector &Collector) override
Definition LegacySlateFontInfoCache.cpp:324
virtual FString GetReferencerName() const override
Definition LegacySlateFontInfoCache.cpp:337
Definition NameTypes.h:617
Definition UObjectGlobals.h:2492
Definition UnrealString.h.inl:34
Definition SharedPointer.h:1640
Definition SharedPointer.h:692
Definition SharedPointer.h:153
uint32 GetTypeHash(const FKey &Key)
Definition BlackboardKey.h:35
const TCHAR * Name
Definition OodleDataCompression.cpp:30
bool operator!=(const FCachedAssetKey &A, const FCachedAssetKey &B)
Definition AssetDataMap.h:506
bool operator==(const FCachedAssetKey &A, const FCachedAssetKey &B)
Definition AssetDataMap.h:501
Definition CompositeFont.h:145
Definition LegacySlateFontInfoCache.h:19
FFallbackContext(const FFontData *InFontData, const UTF32CHAR InCodepoint)
Definition LegacySlateFontInfoCache.h:23
FString ToString() const
Definition LegacySlateFontInfoCache.cpp:11