UDocumentation UE5.7 10.02.2026 (Source)
API documentation for Unreal Engine 5.7
SlateRHIFontTexture.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 "Fonts/FontTypes.h"
8#include "TextureResource.h"
9
15class FSlateFontTextureRHIResource : public TSlateTexture<FTextureRHIRef>, public FTextureResource
16{
17public:
24
26 virtual uint32 GetWidth() const override { return Width; }
27 virtual uint32 GetHeight() const override { return Height; }
28
30 virtual uint32 GetSizeX() const override { return Width; }
31 virtual uint32 GetSizeY() const override { return Height; }
32 virtual FString GetFriendlyName() const override { return TEXT("FSlateFontTextureRHIResource"); }
33
35 virtual void InitRHI(FRHICommandListBase& RHICmdList) override;
36 virtual void ReleaseRHI() override;
37
39 ESlateFontAtlasContentType GetContentType() const { return ContentType; }
40
41private:
42 EPixelFormat GetRHIPixelFormat() const;
43
45 uint32 Width;
47 uint32 Height;
51 TArray<uint8> TempData;
52};
53
58{
59public:
62
66 virtual class FSlateShaderResource* GetSlateTexture() const override { return FontTexture.Get(); }
67 virtual class FTextureResource* GetEngineTexture() override { return FontTexture.Get(); }
68 virtual void ConditionalUpdateTexture() override;
69 virtual void ReleaseResources() override;
70private:
72};
73
78{
79public:
82
86 virtual class FSlateShaderResource* GetSlateTexture() const override { return FontTexture.Get(); }
87 virtual class FTextureResource* GetEngineTexture() override { return FontTexture.Get(); }
88 virtual ESlateFontAtlasContentType GetContentType() const override { return FontTexture->GetContentType(); }
89 virtual void ReleaseRenderingResources() override
90 {
92 }
93 virtual void GetAtlasDataCopy(TArray<uint8>& OutData) const override;
94
95 void ReleaseResources();
96private:
97 void UpdateTextureFromSource(const uint32 SourceWidth, const uint32 SourceHeight, const TArray<uint8>& SourceData);
98private:
99 struct FPendingSourceData
100 {
102 : SourceWidth(InSourceWidth)
103 , SourceHeight(InSourceHeight)
104 , SourceData(MoveTemp(InSourceData))
105 {
106 }
107
108 uint32 SourceWidth;
109 uint32 SourceHeight;
110 TArray<uint8> SourceData;
111 };
112
113 TUniquePtr<FPendingSourceData> PendingSourceData;
114
116};
#define TEXT(x)
Definition Platform.h:1272
UE_FORCEINLINE_HINT TSharedRef< CastToType, Mode > StaticCastSharedRef(TSharedRef< CastFromType, Mode > const &InSharedRef)
Definition SharedPointer.h:127
EPixelFormat
Definition PixelFormat.h:16
ESlateFontAtlasContentType
Definition TextureAtlas.h:17
ESlateTextureAtlasPaddingStyle
Definition TextureAtlas.h:31
UE_INTRINSIC_CAST UE_REWRITE constexpr std::remove_reference_t< T > && MoveTemp(T &&Obj) noexcept
Definition UnrealTemplate.h:520
uint32_t uint32
Definition binka_ue_file_header.h:6
Definition RHICommandList.h:455
Definition SlateRHIFontTexture.h:58
virtual class FSlateShaderResource * GetSlateTexture() const override
Definition SlateRHIFontTexture.h:66
virtual class FTextureResource * GetEngineTexture() override
Definition SlateRHIFontTexture.h:67
~FSlateFontAtlasRHI()
Definition SlateRHIFontTexture.cpp:125
virtual void ReleaseResources() override
Definition SlateRHIFontTexture.cpp:129
virtual void ConditionalUpdateTexture() override
Definition SlateRHIFontTexture.cpp:136
Definition FontTypes.h:173
Definition SlateRHIFontTexture.h:16
virtual uint32 GetHeight() const override
Definition SlateRHIFontTexture.h:27
virtual FString GetFriendlyName() const override
Definition SlateRHIFontTexture.h:32
virtual void InitRHI(FRHICommandListBase &RHICmdList) override
Definition SlateRHIFontTexture.cpp:15
virtual uint32 GetSizeY() const override
Definition SlateRHIFontTexture.h:31
ESlateFontAtlasContentType GetContentType() const
Definition SlateRHIFontTexture.h:39
virtual uint32 GetWidth() const override
Definition SlateRHIFontTexture.h:26
virtual void ReleaseRHI() override
Definition SlateRHIFontTexture.cpp:84
virtual uint32 GetSizeX() const override
Definition SlateRHIFontTexture.h:30
Definition SlateRHIFontTexture.h:78
virtual void ReleaseRenderingResources() override
Definition SlateRHIFontTexture.h:89
virtual ESlateFontAtlasContentType GetContentType() const override
Definition SlateRHIFontTexture.h:88
virtual class FSlateShaderResource * GetSlateTexture() const override
Definition SlateRHIFontTexture.h:86
virtual class FTextureResource * GetEngineTexture() override
Definition SlateRHIFontTexture.h:87
void ReleaseResources()
Definition SlateRHIFontTexture.cpp:208
virtual void GetAtlasDataCopy(TArray< uint8 > &OutData) const override
Definition SlateRHIFontTexture.cpp:202
~FSlateFontTextureRHI()
Definition SlateRHIFontTexture.cpp:198
Definition SlateShaderResource.h:44
Definition TextureResource.h:103
Definition FontTypes.h:136
Definition Array.h:670
Definition SlateShaderResource.h:173
Definition UniquePtr.h:107
UE_FORCEINLINE_HINT T * Get() const
Definition UniquePtr.h:324