UDocumentation UE5.7 10.02.2026 (Source)
API documentation for Unreal Engine 5.7
FontTypes.h
Go to the documentation of this file.
1// Copyright Epic Games, Inc. All Rights Reserved.
2#pragma once
3
4#include "Containers/Array.h"
5#include "Containers/Map.h"
6#include "Containers/Set.h"
7#include "CoreMinimal.h"
10#include "Math/UnrealMathSSE.h"
12#include "Templates/TypeHash.h"
14
16
17
19
20
22{
23public:
25 : FontInfo( InInfo )
26 , OutlineSettings(InFontOutlineSettings)
27 , Scale( InScale )
28 , KeyHash( 0 )
29 {
30 KeyHash = HashCombine(KeyHash, GetLegacyTypeHash(FontInfo));
31 KeyHash = HashCombine(KeyHash, GetTypeHash(OutlineSettings));
32 KeyHash = HashCombine(KeyHash, GetTypeHash(Scale));
33 }
34
35 inline const FSlateFontInfo& GetFontInfo() const
36 {
37 return FontInfo;
38 }
39
40 inline float GetScale() const
41 {
42 return Scale;
43 }
44
46 {
47 return OutlineSettings;
48 }
49
51 {
52 return FontInfo.IsLegacyIdenticalTo(Other.FontInfo)
53 && OutlineSettings.IsIdenticalToForCaching(Other.OutlineSettings)
54 && Scale == Other.Scale;
55 }
56
57 friend inline uint32 GetTypeHash( const FSlateFontKey& Key )
58 {
59 return Key.KeyHash;
60 }
61
62private:
63 FSlateFontInfo FontInfo;
64 FFontOutlineSettings OutlineSettings;
65 float Scale;
66 uint32 KeyHash;
67};
68
69
70template<typename ValueType>
71struct FSlateFontKeyFuncs : BaseKeyFuncs<TPair<FSlateFontKey, ValueType>, FSlateFontKey, false>
72{
73 typedef BaseKeyFuncs <
79
80 inline static const FSlateFontKey& GetSetKey(ElementInitType Element)
81 {
82 return Element.Key;
83 }
84
85 inline static bool Matches(const FSlateFontKey& A, const FSlateFontKey& B)
86 {
87 return A.IsIdenticalToForCaching(B);
88 }
89
91 {
92 return GetTypeHash(Identifier);
93 }
94};
95
96
115
131
136{
137public:
139
143 virtual class FSlateShaderResource* GetSlateTexture() const = 0;
144
148 virtual class FTextureResource* GetEngineTexture() = 0;
149
154
158 virtual void ReleaseRenderingResources() = 0;
159
166 virtual void GetAtlasDataCopy(TArray<uint8>& OutData) const = 0;
167};
168
173{
174public:
177
178 //~ Begin ISlateFontTexture interface
179 SLATECORE_API virtual ESlateFontAtlasContentType GetContentType() const override final;
180 virtual FSlateShaderResource* GetAtlasTexture() const override { return GetSlateTexture(); }
182 SLATECORE_API virtual void GetAtlasDataCopy(TArray<uint8>& OutData) const override;
183 //~ End ISlateFontTexture interface
184
188 SLATECORE_API void Flush();
189
196
204
211
212protected:
214};
215
FPlatformTypes::int16 int16
A 16-bit signed integer.
Definition Platform.h:1123
UE_FORCEINLINE_HINT TSharedRef< CastToType, Mode > StaticCastSharedRef(TSharedRef< CastFromType, Mode > const &InSharedRef)
Definition SharedPointer.h:127
#define DECLARE_MULTICAST_DELEGATE_OneParam(DelegateName, Param1Type)
Definition DelegateCombinations.h:49
ESlateFontAtlasContentType
Definition TextureAtlas.h:17
ESlateTextureAtlasPaddingStyle
Definition TextureAtlas.h:31
constexpr uint32 HashCombine(uint32 A, uint32 C)
Definition TypeHash.h:36
uint32_t uint32
Definition binka_ue_file_header.h:6
Definition FontTypes.h:173
virtual SLATECORE_API void GetAtlasDataCopy(TArray< uint8 > &OutData) const override
Definition FontTypes.cpp:20
SLATECORE_API void Flush()
Definition FontTypes.cpp:62
void EndDeferredAddCharacter(const FDeferredCharacterRenderData &CharInfo)
Definition FontTypes.cpp:47
SLATECORE_API const struct FAtlasedTextureSlot * AddCharacter(const FCharacterRenderData &CharInfo)
Definition FontTypes.cpp:25
virtual FSlateShaderResource * GetAtlasTexture() const override
Definition FontTypes.h:180
bool BeginDeferredAddCharacter(const int16 InSizeX, const int16 InSizeY, FDeferredCharacterRenderData &OutCharInfo)
Definition FontTypes.cpp:31
virtual void ReleaseRenderingResources()
Definition FontTypes.h:181
virtual SLATECORE_API ~FSlateFontAtlas()
Definition FontTypes.cpp:11
virtual SLATECORE_API ESlateFontAtlasContentType GetContentType() const override final
Definition FontTypes.cpp:15
ESlateFontAtlasContentType ContentType
Definition FontTypes.h:213
Definition FontCache.h:756
Definition SlateShaderResource.h:44
Definition TextureAtlas.h:99
virtual void ReleaseResources()=0
Definition TextureResource.h:103
Definition FontTypes.h:217
virtual FIntPoint GetAtlasSize(ESlateFontAtlasContentType InContentType) const =0
virtual ~ISlateFontAtlasFactory()
Definition FontTypes.h:219
virtual TSharedPtr< ISlateFontTexture > CreateNonAtlasedTexture(const uint32 InWidth, const uint32 InHeight, ESlateFontAtlasContentType InContentType, const TArray< uint8 > &InRawData) const =0
virtual TSharedRef< FSlateFontAtlas > CreateFontAtlas(ESlateFontAtlasContentType InContentType) const =0
Definition FontTypes.h:136
virtual ESlateFontAtlasContentType GetContentType() const =0
virtual ~ISlateFontTexture()
Definition FontTypes.h:138
virtual class FSlateShaderResource * GetSlateTexture() const =0
virtual void ReleaseRenderingResources()=0
virtual class FTextureResource * GetEngineTexture()=0
virtual void GetAtlasDataCopy(TArray< uint8 > &OutData) const =0
Definition Array.h:670
Definition SharedPointer.h:692
Definition SharedPointer.h:153
Definition SetUtilities.h:23
TCallTraits< ElementType >::ParamType ElementInitType
Definition SetUtilities.h:26
TCallTraits< InKeyType >::ParamType KeyInitType
Definition SetUtilities.h:25
Definition TextureAtlas.h:72
Definition FontTypes.h:99
int16 HorizontalOffset
Definition FontTypes.h:109
TArray< uint8 > RawPixels
Definition FontTypes.h:101
ESlateFontAtlasContentType ContentType
Definition FontTypes.h:111
int16 SizeX
Definition FontTypes.h:103
bool bSupportsOutline
Definition FontTypes.h:113
int16 VerticalOffset
Definition FontTypes.h:107
int16 SizeY
Definition FontTypes.h:105
Definition FontTypes.h:119
TArray< uint8 > RawPixels
Definition FontTypes.h:129
int16 StartU
Definition FontTypes.h:125
int16 StartV
Definition FontTypes.h:127
int16 VSize
Definition FontTypes.h:123
int16 USize
Definition FontTypes.h:121
Definition SlateFontInfo.h:37
bool IsIdenticalToForCaching(const FFontOutlineSettings &Other) const
Definition SlateFontInfo.h:87
Definition SlateFontInfo.h:147
bool IsLegacyIdenticalTo(const FSlateFontInfo &Other) const
Definition SlateFontInfo.h:283
Definition FontTypes.h:72
static const FSlateFontKey & GetSetKey(ElementInitType Element)
Definition FontTypes.h:80
Super::KeyInitType KeyInitType
Definition FontTypes.h:78
static bool Matches(const FSlateFontKey &A, const FSlateFontKey &B)
Definition FontTypes.h:85
static uint32 GetKeyHash(const FSlateFontKey &Identifier)
Definition FontTypes.h:90
Super::ElementInitType ElementInitType
Definition FontTypes.h:77
BaseKeyFuncs< TPair< FSlateFontKey, ValueType >, FSlateFontKey > Super
Definition FontTypes.h:76
Definition FontTypes.h:22
bool IsIdenticalToForCaching(const FSlateFontKey &Other) const
Definition FontTypes.h:50
const FFontOutlineSettings & GetFontOutlineSettings() const
Definition FontTypes.h:45
friend uint32 GetTypeHash(const FSlateFontKey &Key)
Definition FontTypes.h:57
FSlateFontKey(const FSlateFontInfo &InInfo, const FFontOutlineSettings &InFontOutlineSettings, const float InScale)
Definition FontTypes.h:24
float GetScale() const
Definition FontTypes.h:40
const FSlateFontInfo & GetFontInfo() const
Definition FontTypes.h:35
Definition Tuple.h:652
Definition IntPoint.h:25