UDocumentation UE5.7 10.02.2026 (Source)
API documentation for Unreal Engine 5.7
FontCache.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 "SlateGlobals.h"
13#include "Fonts/FontTypes.h"
14#include "FontCache.generated.h"
15
19class FFreeTypeFace;
24class FSlateFontCache;
29
32
34{
36 Regular = 0,
37
39 Outline,
40
42 Num,
43};
44
45
50UENUM(BlueprintType)
52{
57 Auto = 0,
58
65
71};
72
75
98
101{
115 float EmOuterSpread = 0.f;
117 float EmInnerSpread = 0.f;
118
119 struct FMetrics
120 {
122 float BearingX = 0.f;
124 float BearingY = 0.f;
126 float Width = 0.f;
128 float Height = 0.f;
129 };
134 bool bSupportsSdf = false;
136 bool bPendingRespawn = false;
138 bool Valid = false;
139};
140
203
206{
207 friend struct FFontCacheStatsKey;
208 friend class FSlateFontCache;
209
210public:
212
213 inline bool operator==(const FShapedGlyphEntryKey& Other) const
214 {
215 return FontFace == Other.FontFace
216 && FontRenderSize == Other.FontRenderSize
217 && OutlineRenderSize == Other.OutlineRenderSize
218 && OutlineMiteredCorners == Other.OutlineMiteredCorners
219 && OutlineSeparateFillAlpha == Other.OutlineSeparateFillAlpha
220 && GlyphIndex == Other.GlyphIndex
221 && FontSkew == Other.FontSkew;
222 }
223
224 inline bool operator!=(const FShapedGlyphEntryKey& Other) const
225 {
226 return !(*this == Other);
227 }
228
229 friend inline uint32 GetTypeHash(const FShapedGlyphEntryKey& Key)
230 {
231 return Key.KeyHash;
232 }
233
234private:
238 uint32 FontRenderSize;
240 int32 OutlineRenderSize;
242 bool OutlineMiteredCorners;
244 bool OutlineSeparateFillAlpha;
246 uint32 GlyphIndex;
248 uint32 KeyHash;
250 float FontSkew;
251};
252
255{
256public:
258
259 inline bool operator==(const FSdfGlyphEntryKey& Other) const
260 {
261 return FontFace == Other.FontFace
262 && GlyphIndex == Other.GlyphIndex
263 && AtlasContentType == Other.AtlasContentType
264 && Ppem == Other.Ppem
265 && SpreadCategory == Other.SpreadCategory;
266 }
267
268 inline bool operator!=(const FSdfGlyphEntryKey& Other) const
269 {
270 return !(*this == Other);
271 }
272
273 friend inline uint32 GetTypeHash(const FSdfGlyphEntryKey& Key)
274 {
275 return Key.KeyHash;
276 }
277
285 const int32 Ppem;
288
289private:
291 uint32 KeyHash;
292
294 static int32 GetSpreadCategory(float InEmOuterSpread, float InEmInnerSpread);
295};
296
299{
300public:
302
303 inline bool operator==(const FSdfGlyphTaskKey& Other) const
304 {
305 return SdfGlyphEntryKey == Other.SdfGlyphEntryKey
306 && EmOuterSpread == Other.EmOuterSpread
307 && EmInnerSpread == Other.EmInnerSpread;
308 }
309
310 inline bool operator!=(const FSdfGlyphTaskKey& Other) const
311 {
312 return !(*this == Other);
313 }
314
315 friend inline uint32 GetTypeHash(const FSdfGlyphTaskKey& Key)
316 {
317 return Key.KeyHash;
318 }
319
326
327private:
329 uint32 KeyHash;
330};
331
334{
335public:
347
349 : GlyphsToRender()
350 , TextBaseline(0)
351 , MaxTextHeight(0)
352 , bMaterialIsStencil(false)
353 , FontMaterial(nullptr)
354 , OutlineSettings()
355 , SequenceWidth(0)
356 , GlyphFontFaces()
357 , SourceIndicesToGlyphData(FSourceTextRange(0, 0))
358 , CachedFontSkew(0.f)
359 { }
360
362 const int16 InTextBaseline,
364 const UObject* InFontMaterial,
365 const bool InMaterialIsStencil,
367 const FSourceTextRange& InSourceTextRange);
369
372
375 {
376 return GlyphsToRender;
377 }
378
381 {
382 return TextBaseline;
383 }
384
387 {
388 return MaxTextHeight;
389 }
390
393 {
394 return FontMaterial;
395 }
396
398 bool IsMaterialStencil() const
399 {
400 return bMaterialIsStencil;
401 }
402
405 {
406 return OutlineSettings;
407 }
408
410 SLATECORE_API bool IsDirty() const;
411
413 float GetFontSkew() const;
414
420
427
430 {
432 : Glyph(nullptr)
433 , GlyphOffset(0)
434 , CharacterIndex(0)
435 {
436 }
437
439 : Glyph(nullptr)
440 , GlyphOffset(0)
442 {
443 }
444
451
458 };
459
465
472
479
486
488
489private:
493
496
502 enum class EEnumerateGlyphsResult : uint8 { EnumerationFailed, EnumerationAborted, EnumerationComplete };
503 typedef TFunctionRef<bool(const FShapedGlyphEntry&, int32)> FForEachShapedGlyphEntryCallback;
504 SLATECORE_API EEnumerateGlyphsResult EnumerateLogicalGlyphsInSourceRange(const int32 InStartIndex, const int32 InEndIndex, const FForEachShapedGlyphEntryCallback& InGlyphCallback) const;
505 SLATECORE_API EEnumerateGlyphsResult EnumerateVisualGlyphsInSourceRange(const int32 InStartIndex, const int32 InEndIndex, const FForEachShapedGlyphEntryCallback& InGlyphCallback) const;
506
508 struct FSourceIndexToGlyphData
509 {
510 FSourceIndexToGlyphData()
511 : GlyphIndex(INDEX_NONE)
512 , AdditionalGlyphIndices()
513 {
514 }
515
516 explicit FSourceIndexToGlyphData(const int32 InGlyphIndex)
517 : GlyphIndex(InGlyphIndex)
518 , AdditionalGlyphIndices()
519 {
520 }
521
522 bool IsValid() const
523 {
524 return GlyphIndex != INDEX_NONE;
525 }
526
527 int32 GetLowestGlyphIndex() const
528 {
529 return GlyphIndex;
530 };
531
532 int32 GetHighestGlyphIndex() const
533 {
534 return (AdditionalGlyphIndices.Num() > 0) ? AdditionalGlyphIndices.Last() : GlyphIndex;
535 }
536
537 int32 GlyphIndex;
538 TArray<int32> AdditionalGlyphIndices;
539 };
540
542 struct FSourceIndicesToGlyphData
543 {
544 public:
545 explicit FSourceIndicesToGlyphData(const FSourceTextRange& InSourceTextRange)
546 : SourceTextRange(InSourceTextRange)
547 , GlyphDataArray()
548 {
549 GlyphDataArray.SetNum(InSourceTextRange.TextLen);
550 }
551
552 inline int32 GetSourceTextStartIndex() const
553 {
554 return SourceTextRange.TextStart;
555 }
556
557 inline int32 GetSourceTextEndIndex() const
558 {
559 return SourceTextRange.TextStart + SourceTextRange.TextLen;
560 }
561
562 inline FSourceIndexToGlyphData* GetGlyphData(const int32 InSourceTextIndex)
563 {
564 const int32 InternalIndex = InSourceTextIndex - SourceTextRange.TextStart;
565 return (GlyphDataArray.IsValidIndex(InternalIndex)) ? &GlyphDataArray[InternalIndex] : nullptr;
566 }
567
568 inline const FSourceIndexToGlyphData* GetGlyphData(const int32 InSourceTextIndex) const
569 {
570 const int32 InternalIndex = InSourceTextIndex - SourceTextRange.TextStart;
571 return (GlyphDataArray.IsValidIndex(InternalIndex)) ? &GlyphDataArray[InternalIndex] : nullptr;
572 }
573
574 inline SIZE_T GetAllocatedSize() const
575 {
576 return GlyphDataArray.GetAllocatedSize();
577 }
578
579 private:
580 FSourceTextRange SourceTextRange;
581 TArray<FSourceIndexToGlyphData> GlyphDataArray;
582 };
583
585 TArray<FShapedGlyphEntry> GlyphsToRender;
587 int16 TextBaseline;
589 uint16 MaxTextHeight;
591 bool bMaterialIsStencil;
593 TObjectPtr<const UObject> FontMaterial;
595 FFontOutlineSettings OutlineSettings;
597 int32 SequenceWidth;
599 TArray<TWeakPtr<FFreeTypeFace>> GlyphFontFaces;
601 FSourceIndicesToGlyphData SourceIndicesToGlyphData;
603 float CachedFontSkew;
604
605#if SLATE_CHECK_UOBJECT_SHAPED_GLYPH_SEQUENCE
606 // Used to guard against crashes when the material object is deleted. This is expensive so we do not do it in shipping
613#endif
614};
615
658
666{
667public:
669
680
681#if WITH_EDITORONLY_DATA
683 SLATECORE_API bool IsStale() const;
684#endif // WITH_EDITORONLY_DATA
685
695
704
709
716
717private:
724 bool CanCacheCharacter(TCHAR Character, const EFontFallback MaxFontFallback) const;
725
731 const FCharacterEntry* CacheCharacter(TCHAR Character);
732
733private:
735 TMap<TCHAR, FCharacterEntry> MappedEntries;
736
738 FSlateFontKey FontKey;
740 FSlateFontCache& FontCache;
741#if WITH_EDITORONLY_DATA
744#endif // WITH_EDITORONLY_DATA
746 mutable uint16 MaxHeight;
748 mutable int16 Baseline;
749};
750
756{
757 friend FCharacterList;
758
759public:
768
770 SLATECORE_API virtual int32 GetNumAtlasPages() const override;
772 SLATECORE_API virtual bool IsAtlasPageResourceAlphaOnly(const int32 InIndex) const override;
773#if WITH_ATLAS_DEBUGGING
774 virtual FAtlasSlotInfo GetAtlasSlotInfoAtPosition(FIntPoint InPosition, int32 AtlasIndex) const override;
775#endif
791
807
812
821
826
831
835 UE_DEPRECATED(5.1, "GetOverflowEllipsisText is known to create dangling pointer. Use FShapedTextCache::FindOrAddOverflowEllipsisText.")
837
838public:
842 SLATECORE_API void FlushObject( const UObject* const InObject );
843
848
853
858
863
867 FOnReleaseFontResources& OnReleaseResources() { return OnReleaseResourcesDelegate; }
868
875 ISlateFontTexture* GetFontTexture( uint32 Index ) { return &AllFontTextures[Index].Get(); }
876
885
896
906
915 SLATECORE_API uint16 GetMaxCharacterHeight( const FSlateFontInfo& InFontInfo, float FontScale ) const;
916
925 SLATECORE_API int16 GetBaseline( const FSlateFontInfo& InFontInfo, float FontScale ) const;
926
936
946
956 SLATECORE_API int8 GetKerning( const FFontData& InFontData, const float InSize, TCHAR First, TCHAR Second, float Scale ) const;
957
961 SLATECORE_API bool HasKerning( const FFontData& InFontData ) const;
962
972
981
989
993 SLATECORE_API void RequestFlushCache(const FString& FlushReason);
994
999
1004
1005#if WITH_EDITOR && WITH_FREETYPE
1007#endif
1008
1009private:
1010 // Non-copyable
1013
1018 SLATECORE_API int32 GetAllFontTexturesIndex(const int32 InIndex) const;
1019
1023 SLATECORE_API bool FlushCache();
1024
1028 SLATECORE_API void FlushFontObjects();
1029
1031 SLATECORE_API void HandleCultureChanged();
1032
1042
1044
1045#if !UE_BUILD_SHIPPING
1047 SLATECORE_API void ConditionalDumpFontCacheStats() const;
1048#endif
1049
1050private:
1051
1054
1056 TUniquePtr<FFreeTypeCacheDirectory> FTCacheDirectory;
1057
1059 TUniquePtr<FCompositeFontCache> CompositeFontCache;
1060
1062 TUniquePtr<FSlateFontRenderer> FontRenderer;
1063
1066
1068 TUniquePtr<FSlateSdfGenerator> SdfGenerator;
1069
1072
1075
1078
1081
1083 TArray<uint8> GrayscaleFontAtlasIndices;
1084
1086 TArray<uint8> ColorFontAtlasIndices;
1087
1089 TArray<uint8> MsdfFontAtlasIndices;
1090
1092 TArray<uint8> NonAtlasedTextureIndices;
1093
1095 TArray<TSharedRef<ISlateFontTexture>> AllFontTextures;
1096
1098 TSharedRef<ISlateFontAtlasFactory> FontAtlasFactory;
1099
1101 volatile bool bFlushRequested;
1102
1104 mutable FCriticalSection FontObjectsToFlushCS;
1105
1107 TArray<const UObject*> FontObjectsToFlush;
1108
1110 FOnReleaseFontResources OnReleaseResourcesDelegate;
1111
1112 ESlateTextureAtlasThreadId OwningThread;
1113
1115 FText EllipsisText;
1116
1117};
@ INDEX_NONE
Definition CoreMiscDefines.h:150
#define UE_DEPRECATED(Version, Message)
Definition CoreMiscDefines.h:302
FPlatformTypes::int16 int16
A 16-bit signed integer.
Definition Platform.h:1123
FPlatformTypes::int8 int8
An 8-bit signed integer.
Definition Platform.h:1121
FPlatformTypes::SIZE_T SIZE_T
An unsigned integer the same size as a pointer, the same as UPTRINT.
Definition Platform.h:1150
FPlatformTypes::UTF32CHAR UTF32CHAR
A 32-bit character containing a UTF32 (Unicode, 32-bit, fixed-width) code unit.
Definition Platform.h:1143
FPlatformTypes::TCHAR TCHAR
Either ANSICHAR or WIDECHAR, depending on whether the platform supports wide characters or the requir...
Definition Platform.h:1135
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
UE::FPlatformRecursiveMutex FCriticalSection
Definition CriticalSection.h:53
SLATECORE_API ETextShapingMethod GetDefaultTextShapingMethod()
Definition FontCache.cpp:107
ETextShapingMethod
Definition FontCache.h:52
EFontCacheAtlasDataType
Definition FontCache.h:34
SLATECORE_API bool IsSlateSdfTextFeatureEnabled()
Definition FontCache.cpp:91
const bool
Definition NetworkReplayStreaming.h:178
#define UENUM(...)
Definition ObjectMacros.h:749
UE_FORCEINLINE_HINT bool IsValid(const UObject *Test)
Definition Object.h:1875
EFontFallback
Definition SlateFontInfo.h:23
ESlateTextureAtlasThreadId
Definition TextureAtlas.h:44
ESlateFontAtlasContentType
Definition TextureAtlas.h:17
int32 InternalIndex
Definition VulkanMemory.cpp:4036
uint8_t uint8
Definition binka_ue_file_header.h:8
uint16_t uint16
Definition binka_ue_file_header.h:7
uint32_t uint32
Definition binka_ue_file_header.h:6
Definition FontCache.h:666
SLATECORE_API int8 GetKerning(TCHAR FirstChar, TCHAR SecondChar, const EFontFallback MaxFontFallback)
Definition FontCache.cpp:717
SLATECORE_API int16 GetBaseline() const
Definition FontCache.cpp:759
SLATECORE_API const FCharacterEntry & GetCharacter(TCHAR Character, const EFontFallback MaxFontFallback)
Definition FontCache.cpp:788
SLATECORE_API uint16 GetMaxHeight() const
Definition FontCache.cpp:749
Definition FontCacheCompositeFont.h:203
Definition ContainerAllocationPolicies.h:1660
Definition FontCacheFreeType.h:448
Definition FontCacheFreeType.h:533
Definition FontCacheFreeType.h:228
Definition FontCacheFreeType.h:418
Definition FontCacheFreeType.h:473
Definition FontCacheFreeType.h:199
Definition NameTypes.h:617
Definition UObjectGlobals.h:2492
Definition SlateTextShaper.h:19
Definition FontCache.h:334
SLATECORE_API bool IsDirty() const
Definition FontCache.cpp:304
SLATECORE_API FGlyphOffsetResult GetGlyphAtOffset(FSlateFontCache &InFontCache, const int32 InHorizontalOffset, const int32 InStartOffset=0) const
Definition FontCache.cpp:351
SLATECORE_API ~FShapedGlyphSequence()
Definition FontCache.cpp:293
SLATECORE_API void AddReferencedObjects(FReferenceCollector &Collector)
Definition FontCache.cpp:542
int16 GetTextBaseline() const
Definition FontCache.h:380
float GetFontSkew() const
Definition FontCache.cpp:317
uint16 GetMaxTextHeight() const
Definition FontCache.h:386
bool IsMaterialStencil() const
Definition FontCache.h:398
const FFontOutlineSettings & GetFontOutlineSettings() const
Definition FontCache.h:404
const TArray< FShapedGlyphEntry > & GetGlyphsToRender() const
Definition FontCache.h:374
SLATECORE_API TOptional< int8 > GetKerning(const int32 InIndex) const
Definition FontCache.cpp:503
FShapedGlyphSequence()
Definition FontCache.h:348
SLATECORE_API int32 GetMeasuredWidth() const
Definition FontCache.cpp:322
SLATECORE_API FShapedGlyphSequencePtr GetSubSequence(const int32 InStartIndex, const int32 InEndIndex) const
Definition FontCache.cpp:517
const UObject * GetFontMaterial() const
Definition FontCache.h:392
SLATECORE_API SIZE_T GetAllocatedSize() const
Definition FontCache.cpp:299
Definition TextureAtlas.h:283
Definition FontCache.h:756
virtual SLATECORE_API FSlateShaderResource * GetAtlasPageResource(const int32 InIndex) const override
Definition FontCache.cpp:953
SLATECORE_API void GetUnderlineMetrics(const FSlateFontInfo &InFontInfo, const float FontScale, int16 &OutUnderlinePos, int16 &OutUnderlineThickness) const
Definition FontCache.cpp:1635
SLATECORE_API uint16 GetMaxCharacterHeight(const FSlateFontInfo &InFontInfo, float FontScale) const
Definition FontCache.cpp:1625
SLATECORE_API void UpdateCache()
Definition FontCache.cpp:1872
ISlateFontTexture * GetFontTexture(uint32 Index)
Definition FontCache.h:875
SLATECORE_API void ReleaseResources()
Definition FontCache.cpp:1945
SLATECORE_API void GetStrikeMetrics(const FSlateFontInfo &InFontInfo, const float FontScale, int16 &OutStrikeLinePos, int16 &OutStrikeLineThickness) const
Definition FontCache.cpp:1640
SLATECORE_API int8 GetKerning(const FFontData &InFontData, const float InSize, TCHAR First, TCHAR Second, float Scale) const
Definition FontCache.cpp:1645
SLATECORE_API void RequestFlushCache(const FString &FlushReason)
Definition FontCache.cpp:1675
SLATECORE_API class FCharacterList & GetCharacterList(const FSlateFontInfo &InFontInfo, float FontScale, const FFontOutlineSettings &InOutlineSettings=FFontOutlineSettings::NoOutline)
Definition FontCache.cpp:1244
SLATECORE_API TArray< FString > GetAvailableFontSubFaces(FFontFaceDataConstRef InMemory) const
Definition FontCache.cpp:1665
SLATECORE_API const FFontData & GetFontDataForCodepoint(const FSlateFontInfo &InFontInfo, const UTF32CHAR InCodepoint, float &OutScalingFactor) const
Definition FontCache.cpp:1615
SLATECORE_API FShapedGlyphFontAtlasData GetShapedGlyphFontAtlasData(const FShapedGlyphEntry &InShapedGlyph, const FFontOutlineSettings &InOutlineSettings)
Definition FontCache.cpp:1270
SLATECORE_API bool CanLoadCodepoint(const FFontData &InFontData, const UTF32CHAR InCodepoint, EFontFallback MaxFallbackLevel=EFontFallback::FF_NoFallback) const
Definition FontCache.cpp:1655
SLATECORE_API const FFontData & GetDefaultFontData(const FSlateFontInfo &InFontInfo) const
Definition FontCache.cpp:1610
virtual SLATECORE_API int32 GetNumAtlasPages() const override
Definition FontCache.cpp:948
SLATECORE_API FShapedGlyphSequenceRef GetOverflowEllipsisText(const FSlateFontInfo &InFontInfo, const float InFontScale)
Definition FontCache.cpp:1600
SLATECORE_API FShapedGlyphSequenceRef ShapeBidirectionalText(const FString &InText, const FSlateFontInfo &InFontInfo, const float InFontScale, const TextBiDi::ETextDirection InBaseDirection, const ETextShapingMethod InTextShapingMethod) const
Definition FontCache.cpp:1224
SLATECORE_API bool HasKerning(const FFontData &InFontData) const
Definition FontCache.cpp:1650
SLATECORE_API FShapedGlyphSequenceRef ShapeUnidirectionalText(const FString &InText, const FSlateFontInfo &InFontInfo, const float InFontScale, const TextBiDi::ETextDirection InTextDirection, const ETextShapingMethod InTextShapingMethod) const
Definition FontCache.cpp:1234
SLATECORE_API SIZE_T GetFontDataAssetResidentMemory(const UObject *FontDataAsset) const
Definition FontCache.cpp:2013
SLATECORE_API int16 GetBaseline(const FSlateFontInfo &InFontInfo, float FontScale) const
Definition FontCache.cpp:1630
virtual SLATECORE_API ~FSlateFontCache()
Definition FontCache.cpp:934
SLATECORE_API FSdfGlyphFontAtlasData GetSdfGlyphFontAtlasData(const FShapedGlyphEntry &InShapedGlyph, const FFontOutlineSettings &InOutlineSettings)
Definition FontCache.cpp:1325
SLATECORE_API void FlushObject(const UObject *const InObject)
Definition FontCache.cpp:1689
FOnReleaseFontResources & OnReleaseResources()
Definition FontCache.h:867
SLATECORE_API FShapedGlyphSequenceRef ShapeOverflowEllipsisText(const FSlateFontInfo &InFontInfo, const float InFontScale)
Definition FontCache.cpp:1605
SLATECORE_API void FlushCompositeFont(const FCompositeFont &InCompositeFont)
Definition FontCache.cpp:1699
SLATECORE_API const TSet< FName > & GetFontAttributes(const FFontData &InFontData) const
Definition FontCache.cpp:1660
virtual SLATECORE_API bool IsAtlasPageResourceAlphaOnly(const int32 InIndex) const override
Definition FontCache.cpp:958
SLATECORE_API bool HasLoadedFontForCodepoint(const FSlateFontInfo &InFontInfo, const UTF32CHAR InCodepoint) const
Definition FontCache.cpp:1620
SLATECORE_API bool ConditionalFlushCache()
Definition FontCache.cpp:1844
SLATECORE_API void FlushData()
Definition FontCache.cpp:1988
Definition SlateFontRenderer.h:58
Definition SlateSdfGenerator.h:9
Definition SlateShaderResource.h:44
Definition SlateTextShaper.h:64
Definition Text.h:385
Definition TextureAtlas.h:328
Definition FontTypes.h:136
Definition Array.h:670
Definition AssetRegistryState.h:50
Definition UnrealString.h.inl:34
Definition SharedPointer.h:692
Definition SharedPointer.h:153
Definition UniquePtr.h:107
Definition SharedPointer.h:1295
Definition Object.h:95
SIZE_T GetAllocatedSize(const T &Value)
Definition ManagedArray.h:93
ETextDirection
Definition Text.h:1413
@ false
Definition radaudio_common.h:23
U16 Index
Definition radfft.cpp:71
Definition TextureAtlas.h:244
Definition FontCache.h:618
uint16 USize
Definition FontCache.h:636
float FontScale
Definition FontCache.h:628
const FFontData * FontData
Definition FontCache.h:624
bool HasKerning
Definition FontCache.h:652
int16 HorizontalOffset
Definition FontCache.h:642
uint16 VSize
Definition FontCache.h:638
int16 GlobalDescender
Definition FontCache.h:644
bool SupportsOutline
Definition FontCache.h:654
int16 VerticalOffset
Definition FontCache.h:640
TSharedPtr< FFreeTypeKerningCache > KerningCache
Definition FontCache.h:626
EFontFallback FallbackLevel
Definition FontCache.h:650
TCHAR Character
Definition FontCache.h:620
uint32 GlyphIndex
Definition FontCache.h:622
float BitmapRenderScale
Definition FontCache.h:630
uint16 StartV
Definition FontCache.h:634
bool Valid
Definition FontCache.h:656
uint16 StartU
Definition FontCache.h:632
int16 XAdvance
Definition FontCache.h:646
uint8 TextureIndex
Definition FontCache.h:648
Definition FontTypes.h:99
Definition CompositeFont.h:428
Definition CompositeFont.h:145
Definition SlateFontInfo.h:37
static SLATECORE_API FFontOutlineSettings NoOutline
Definition SlateFontInfo.h:126
Definition FontCache.h:255
const uint32 GlyphIndex
Definition FontCache.h:281
friend uint32 GetTypeHash(const FSdfGlyphEntryKey &Key)
Definition FontCache.h:273
bool operator!=(const FSdfGlyphEntryKey &Other) const
Definition FontCache.h:268
const int32 SpreadCategory
Definition FontCache.h:287
const ESlateFontAtlasContentType AtlasContentType
Definition FontCache.h:283
const int32 Ppem
Definition FontCache.h:285
const TWeakPtr< FFreeTypeFace > FontFace
Definition FontCache.h:279
bool operator==(const FSdfGlyphEntryKey &Other) const
Definition FontCache.h:259
Definition FontCache.h:120
float Width
Definition FontCache.h:126
float BearingX
Definition FontCache.h:122
float BearingY
Definition FontCache.h:124
float Height
Definition FontCache.h:128
Definition FontCache.h:101
bool bSupportsSdf
Definition FontCache.h:134
uint16 StartU
Definition FontCache.h:107
bool bPendingRespawn
Definition FontCache.h:136
uint16 USize
Definition FontCache.h:111
FMetrics Metrics
Definition FontCache.h:130
bool Valid
Definition FontCache.h:138
uint8 TextureIndex
Definition FontCache.h:132
int16 VerticalOffset
Definition FontCache.h:103
uint16 VSize
Definition FontCache.h:113
uint16 StartV
Definition FontCache.h:109
int16 HorizontalOffset
Definition FontCache.h:105
float EmOuterSpread
Definition FontCache.h:115
float EmInnerSpread
Definition FontCache.h:117
Definition FontCache.h:299
bool operator==(const FSdfGlyphTaskKey &Other) const
Definition FontCache.h:303
friend uint32 GetTypeHash(const FSdfGlyphTaskKey &Key)
Definition FontCache.h:315
bool operator!=(const FSdfGlyphTaskKey &Other) const
Definition FontCache.h:310
float EmOuterSpread
Definition FontCache.h:323
const FSdfGlyphEntryKey SdfGlyphEntryKey
Definition FontCache.h:321
float EmInnerSpread
Definition FontCache.h:325
Definition FontCache.h:206
friend struct FFontCacheStatsKey
Definition FontCache.h:207
friend uint32 GetTypeHash(const FShapedGlyphEntryKey &Key)
Definition FontCache.h:229
bool operator==(const FShapedGlyphEntryKey &Other) const
Definition FontCache.h:213
bool operator!=(const FShapedGlyphEntryKey &Other) const
Definition FontCache.h:224
Definition FontCache.h:143
TSharedPtr< FShapedGlyphFaceData > FontFaceData
Definition FontCache.h:147
int16 YOffset
Definition FontCache.h:159
uint32 GlyphIndex
Definition FontCache.h:149
uint8 NumGraphemeClustersInGlyph
Definition FontCache.h:175
bool bIsVisible
Definition FontCache.h:184
SLATECORE_API bool HasValidGlyph() const
Definition FontCache.cpp:118
int16 YAdvance
Definition FontCache.h:155
TextBiDi::ETextDirection TextDirection
Definition FontCache.h:179
int16 XOffset
Definition FontCache.h:157
int8 Kerning
Definition FontCache.h:165
int32 SourceIndex
Definition FontCache.h:151
SLATECORE_API float GetBitmapRenderScale() const
Definition FontCache.cpp:132
int16 XAdvance
Definition FontCache.h:153
uint8 NumCharactersInGlyph
Definition FontCache.h:170
Definition FontCache.h:78
uint16 StartV
Definition FontCache.h:86
uint8 TextureIndex
Definition FontCache.h:92
bool Valid
Definition FontCache.h:96
uint16 USize
Definition FontCache.h:88
int16 VerticalOffset
Definition FontCache.h:80
bool SupportsOutline
Definition FontCache.h:94
int16 HorizontalOffset
Definition FontCache.h:82
uint16 StartU
Definition FontCache.h:84
uint16 VSize
Definition FontCache.h:90
const FShapedGlyphEntry * Glyph
Definition FontCache.h:453
int32 GlyphOffset
Definition FontCache.h:455
FGlyphOffsetResult()
Definition FontCache.h:431
int32 CharacterIndex
Definition FontCache.h:457
FGlyphOffsetResult(const int32 InCharacterIndex)
Definition FontCache.h:438
FGlyphOffsetResult(const FShapedGlyphEntry *InGlyph, const int32 InGlyphOffset)
Definition FontCache.h:445
Definition FontCache.h:337
int32 TextLen
Definition FontCache.h:345
int32 TextStart
Definition FontCache.h:344
FSourceTextRange(const int32 InTextStart, const int32 InTextLen)
Definition FontCache.h:338
Definition SlateFontInfo.h:147
Definition FontTypes.h:72
Definition FontTypes.h:22
Definition ObjectPtr.h:488
Definition Optional.h:131
Definition WeakObjectPtrTemplates.h:25
Definition IntPoint.h:25