UDocumentation UE5.7 10.02.2026 (Source)
API documentation for Unreal Engine 5.7
CompositeFont.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"
8#include "UObject/GCObject.h"
9#include "UObject/Class.h"
10#include "CompositeFont.generated.h"
11
12class UFontBulkData;
13struct FFontFaceData;
14
15namespace UE
16{
17namespace Slate
18{
19class FPreprocessedFontGeometry;
20}
21}
22
23UENUM()
25{
27 Default,
29 Auto,
35 None,
36};
37
38UENUM()
40{
44 Stream,
46 Inline,
47};
48
49UENUM()
57
62
68{
69public:
72
75
78
80 bool HasData() const
81 {
82 return Data.Num() > 0;
83 }
84
87
90
92 const TArray<uint8>& GetData() const
93 {
94 return Data;
95 }
96
99 {
100 return PreprocessedFontGeometries;
101 }
102
105
108
114
120
121private:
123 SLATECORE_API void TrackMemoryUsage() const;
124 SLATECORE_API void UntrackMemoryUsage() const;
125
127 TArray<uint8> Data;
128
130 TArray<UE::Slate::FPreprocessedFontGeometry> PreprocessedFontGeometries;
131};
132
141
143USTRUCT()
145{
147
148
150
152 SLATECORE_API explicit FFontData(const UObject* const InFontFaceAsset, const int32 InSubFaceIndex = 0);
153
156
158 SLATECORE_API bool HasFont() const;
159
161 SLATECORE_API const FString& GetFontFilename() const;
162
164 SLATECORE_API EFontHinting GetHinting() const;
165
167 SLATECORE_API EFontLoadingPolicy GetLoadingPolicy() const;
168
170 SLATECORE_API int32 GetSubFaceIndex() const;
171
173 SLATECORE_API void SetSubFaceIndex(const int32 InSubFaceIndex);
174
176 SLATECORE_API EFontLayoutMethod GetLayoutMethod() const;
177
179 SLATECORE_API bool IsAscendOverridden() const;
180
182 SLATECORE_API int32 GetAscendOverriddenValue() const;
183
185 SLATECORE_API bool IsDescendOverridden() const;
186
188 SLATECORE_API int32 GetDescendOverriddenValue() const;
189
191 SLATECORE_API int32 GetStrikeBrushHeightPercentage() const;
192
194 SLATECORE_API FFontFaceDataConstPtr GetFontFaceData() const;
195
197 SLATECORE_API const UObject* GetFontFaceAsset() const;
198
200 SLATECORE_API FFontRasterizationSettings GetFontRasterizationSettings() const;
201
202#if WITH_EDITORONLY_DATA
204 SLATECORE_API bool HasLegacyData() const;
205
208
211#endif // WITH_EDITORONLY_DATA
212
214 SLATECORE_API bool operator==(const FFontData& Other) const;
215
217 SLATECORE_API bool operator!=(const FFontData& Other) const;
218
220 friend inline uint32 GetTypeHash(const FFontData& Key)
221 {
222 uint32 KeyHash = 0;
223
224 if (Key.FontFaceAsset)
225 {
226 KeyHash = HashCombine(KeyHash, GetTypeHash(Key.FontFaceAsset));
227 }
228 else
229 {
230 KeyHash = HashCombine(KeyHash, Key.FontFilenameHash);
231 KeyHash = HashCombine(KeyHash, GetTypeHash(Key.Hinting));
232 KeyHash = HashCombine(KeyHash, GetTypeHash(Key.LoadingPolicy));
233 }
234 KeyHash = HashCombine(KeyHash, GetTypeHash(Key.SubFaceIndex));
235
236 return KeyHash;
237 }
238
242 {
244 return Ar;
245 }
246
248 SLATECORE_API void AddReferencedObjects(FReferenceCollector& Collector);
249
250private:
255 UPROPERTY()
256 FString FontFilename;
257
262 uint32 FontFilenameHash;
263
268 UPROPERTY()
269 EFontHinting Hinting;
270
275 UPROPERTY()
276 EFontLoadingPolicy LoadingPolicy;
277
282 UPROPERTY()
283 int32 SubFaceIndex;
284
288 UPROPERTY()
289 TObjectPtr<const UObject> FontFaceAsset;
290
291#if WITH_EDITORONLY_DATA
296 UPROPERTY()
298
303 UPROPERTY()
305#endif // WITH_EDITORONLY_DATA
306};
307
308template<>
310{
311 enum
312 {
315 };
316};
317
319USTRUCT()
350
352USTRUCT()
379
380USTRUCT()
382{
384
385
387 : Typeface()
388 , ScalingFactor(1.0f)
389 {
390 }
391
393 UPROPERTY()
394 FTypeface Typeface;
395
397 UPROPERTY()
398 float ScalingFactor;
399};
400
401USTRUCT()
403{
405
406
408 {
409 }
410
412 UPROPERTY()
413 TArray<FInt32Range> CharacterRanges;
414
416 UPROPERTY()
417 FString Cultures;
418
419#if WITH_EDITORONLY_DATA
421 UPROPERTY()
422 FName EditorName;
423#endif
424};
425
426USTRUCT()
428{
430
431
433 : DefaultTypeface()
434 , SubTypefaces()
435#if WITH_EDITORONLY_DATA
436 , HistoryRevision(0)
437#endif // WITH_EDITORONLY_DATA
438 {
439 }
440
444 , SubTypefaces()
446 , HistoryRevision(0)
447#endif // WITH_EDITORONLY_DATA
448 {
449 }
450
451#if WITH_EDITORONLY_DATA
453 void MakeDirty()
454 {
456 }
457#endif // WITH_EDITORONLY_DATA
458
460 UPROPERTY()
461 FTypeface DefaultTypeface;
462
464 UPROPERTY()
465 FCompositeFallbackFont FallbackTypeface;
466
468 UPROPERTY()
470
472 UPROPERTY(EditAnywhere, Category = RuntimeFont)
473 bool bEnableAscentDescentOverride = true;
474
475#if WITH_EDITORONLY_DATA
481#endif // WITH_EDITORONLY_DATA
482
485 {
486 return bEnableAscentDescentOverride;
487 }
488};
489
495{
500
506
507 // FGCObject interface
508 SLATECORE_API virtual void AddReferencedObjects(FReferenceCollector& Collector) override;
509 SLATECORE_API virtual FString GetReferencerName() const override;
510};
TSharedPtr< const FFontFaceData, ESPMode::ThreadSafe > FFontFaceDataConstPtr
Definition CompositeFont.h:60
EFontHinting
Definition CompositeFont.h:25
EFontLayoutMethod
Definition CompositeFont.h:51
EFontLoadingPolicy
Definition CompositeFont.h:40
TSharedRef< const FFontFaceData, ESPMode::ThreadSafe > FFontFaceDataConstRef
Definition CompositeFont.h:61
TSharedRef< FFontFaceData, ESPMode::ThreadSafe > FFontFaceDataRef
Definition CompositeFont.h:59
TSharedPtr< FFontFaceData, ESPMode::ThreadSafe > FFontFaceDataPtr
Definition CompositeFont.h:58
#define WITH_EDITORONLY_DATA
Definition CoreMiscDefines.h:24
FPlatformTypes::SIZE_T SIZE_T
An unsigned integer the same size as a pointer, the same as UPTRINT.
Definition Platform.h:1150
FPlatformTypes::int32 int32
A 32-bit signed integer.
Definition Platform.h:1125
UE_FORCEINLINE_HINT TSharedRef< CastToType, Mode > StaticCastSharedRef(TSharedRef< CastFromType, Mode > const &InSharedRef)
Definition SharedPointer.h:127
return true
Definition ExternalRpcRegistry.cpp:601
EFontRasterizationMode
Definition FontRasterizationMode.h:11
UE_FORCEINLINE_HINT bool operator!=(const FIndexedPointer &Other) const
Definition LockFreeList.h:76
#define UPROPERTY(...)
UObject definition macros.
Definition ObjectMacros.h:744
#define UENUM(...)
Definition ObjectMacros.h:749
#define USTRUCT(...)
Definition ObjectMacros.h:746
#define GENERATED_USTRUCT_BODY(...)
Definition ObjectMacros.h:767
constexpr uint32 HashCombine(uint32 A, uint32 C)
Definition TypeHash.h:36
UE_INTRINSIC_CAST UE_REWRITE constexpr std::remove_reference_t< T > && MoveTemp(T &&Obj) noexcept
Definition UnrealTemplate.h:520
if(Failed) console_printf("Failed.\n")
uint8_t uint8
Definition binka_ue_file_header.h:8
uint32_t uint32
Definition binka_ue_file_header.h:6
Definition Archive.h:1208
virtual void Serialize(void *V, int64 Length)
Definition Archive.h:1689
Definition GCObject.h:128
Definition NameTypes.h:617
Definition UObjectGlobals.h:2492
Definition ArrayView.h:139
Definition Array.h:670
UE_REWRITE SizeType Num() const
Definition Array.h:1144
Definition SharedPointer.h:692
Definition SharedPointer.h:153
Definition Class.h:3793
Definition FontBulkData.h:13
Definition Object.h:95
Definition SScissorRectBox.cpp:10
Definition AdvancedWidgetsModule.cpp:13
Definition CompositeFont.h:382
Definition CompositeFont.h:428
bool IsAscentDescentOverrideEnabled() const
Definition CompositeFont.h:484
FCompositeFont(const FName &InFontName, FString InFontFilename, const EFontHinting InHinting, const EFontLoadingPolicy InLoadingPolicy)
Definition CompositeFont.h:442
Definition CompositeFont.h:403
Definition CompositeFont.h:145
friend uint32 GetTypeHash(const FFontData &Key)
Definition CompositeFont.h:220
friend FArchive & operator<<(FArchive &Ar, FFontData &InFontData)
Definition CompositeFont.h:241
Definition CompositeFont.h:68
bool HasData() const
Definition CompositeFont.h:80
SLATECORE_API SIZE_T GetAllocatedSize() const
Definition CompositeFont.cpp:50
const TArray< uint8 > & GetData() const
Definition CompositeFont.h:92
static FFontFaceDataRef MakeFontFaceData()
Definition CompositeFont.h:110
static FFontFaceDataRef MakeFontFaceData(TArray< uint8 > &&InData)
Definition CompositeFont.h:116
TArrayView< const UE::Slate::FPreprocessedFontGeometry > GetPreprocessedFontGeometries() const
Definition CompositeFont.h:98
SLATECORE_API void SetData(TArray< uint8 > &&InData)
Definition CompositeFont.cpp:35
SLATECORE_API void SetPreprocessedFontGeometries(TArray< UE::Slate::FPreprocessedFontGeometry > &&InPreprocessedFontGeometries)
Definition CompositeFont.cpp:43
SLATECORE_API FFontFaceData()
Definition CompositeFont.cpp:20
SLATECORE_API ~FFontFaceData()
Definition CompositeFont.cpp:30
Definition CompositeFont.h:135
int32 DistanceFieldPpem
Definition CompositeFont.h:139
EFontRasterizationMode Mode
Definition CompositeFont.h:137
Definition CompositeFont.h:495
virtual SLATECORE_API FString GetReferencerName() const override
Definition CompositeFont.cpp:415
FStandaloneCompositeFont(const FName &InFontName, FString InFontFilename, const EFontHinting InHinting, const EFontLoadingPolicy InLoadingPolicy)
Definition CompositeFont.h:502
FStandaloneCompositeFont()
Definition CompositeFont.h:497
virtual SLATECORE_API void AddReferencedObjects(FReferenceCollector &Collector) override
Definition CompositeFont.cpp:399
Definition CompositeFont.h:321
FTypefaceEntry(const FName &InFontName)
Definition CompositeFont.h:330
FTypefaceEntry(const FName &InFontName, FString InFontFilename, const EFontHinting InHinting, const EFontLoadingPolicy InLoadingPolicy)
Definition CompositeFont.h:336
Definition CompositeFont.h:354
FTypeface & AppendFont(const FName &InFontName, FString InFontFilename, const EFontHinting InHinting, const EFontLoadingPolicy InLoadingPolicy)
Definition CompositeFont.h:369
FTypeface(const FName &InFontName, FString InFontFilename, const EFontHinting InHinting, const EFontLoadingPolicy InLoadingPolicy)
Definition CompositeFont.h:363
Definition ObjectPtr.h:488
Definition StructOpsTypeTraits.h:11
@ WithIdenticalViaEquality
Definition StructOpsTypeTraits.h:18
@ WithSerializer
Definition StructOpsTypeTraits.h:23
Definition StructOpsTypeTraits.h:46