UDocumentation UE5.7 10.02.2026 (Source)
API documentation for Unreal Engine 5.7
SlateTextures.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 "RenderResource.h"
10#include "TextureResource.h"
11#include "Engine/Texture.h"
13
18{
19public:
22
24
25 ENGINE_API virtual void Cleanup() override;
26
27 virtual uint32 GetWidth() const override { return Width; }
28 virtual uint32 GetHeight() const override { return Height; }
29
31 ENGINE_API virtual void InitRHI(FRHICommandListBase& RHICmdList) override;
32
34 ENGINE_API virtual void ReleaseRHI() override;
35
40
44 bool IsValid() const { return IsValidRef( ShaderResource ); }
45
50
52
59
69
74
78 EPixelFormat GetPixelFormat() const { return PixelFormat; }
79
80 // FSlateUpdatableTexture interface
81 virtual FSlateShaderResource* GetSlateResource() override {return this;}
82 virtual FRenderResource* GetRenderResource() override {return this;}
83 ENGINE_API virtual void ResizeTexture( uint32 Width, uint32 Height ) override;
84 ENGINE_API virtual void UpdateTexture(const TArray<uint8>& Bytes) override;
85 ENGINE_API virtual void UpdateTextureThreadSafe(const TArray<uint8>& Bytes) override;
86 ENGINE_API virtual void UpdateTextureThreadSafeRaw(uint32 Width, uint32 Height, const void* Buffer, const FIntRect& Dirty) override;
88 virtual void UpdateTextureThreadSafeWithKeyedTextureHandle(void* TextureHandle, int KeyLockVal, int KeyUnlockVal, const FIntRect& Dirty = FIntRect()) override {}
89protected:
94private:
96
98 ETextureCreateFlags TexCreateFlags;
102 EPixelFormat PixelFormat;
104 bool bCreateEmptyTexture;
105};
106
110class FSlateRenderTargetRHI : public TSlateTexture<FTextureRHIRef>, public FRenderResource
111{
112public:
119
120 virtual void InitRHI(FRHICommandListBase& RHICmdList) override {}
121
125 virtual void ReleaseRHI() override
126 {
128 }
129
130 virtual uint32 GetWidth() const override { return Width; }
131 virtual uint32 GetHeight() const override { return Height; }
132
137
139private:
141 uint32 Width;
143 uint32 Height;
144};
145
147{
148public:
149
152
154 virtual void SetSize(int32 InSizeX,int32 InSizeY);
155
156public:
157 // FTextureRenderTargetResource implementation
158 virtual void ClampSize(int32 SizeX,int32 SizeY) override;
159
160 // FRenderResource implementation
161 virtual void InitRHI(FRHICommandListBase& RHICmdList) override;
162 virtual void ReleaseRHI() override;
163
164 // FRenderTarget interface
165 virtual uint32 GetSizeX() const override;
166 virtual uint32 GetSizeY() const override;
167 virtual FIntPoint GetSizeXY() const override;
168 virtual float GetDisplayGamma() const override;
169
170protected:
171
172 // FDeferredUpdateResource implementation
173 virtual void UpdateDeferredResource(FRHICommandListImmediate& RHICmdList, bool bClearRenderTarget=true) override;
174
175
176private:
177 FLinearColor ClearColor;
178 int32 TargetSizeX,TargetSizeY;
179
180 uint8 Format;
181 ESamplerFilter Filter;
182 TextureAddress AddressX;
183 TextureAddress AddressY;
184 float TargetGamma;
185};
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
bool IsValidRef(const FVertexBufferAndSRV &Buffer)
Definition GPUSkinVertexFactory.h:92
UE::Math::TIntRect< int32 > FIntRect
Definition MathFwd.h:133
EPixelFormat
Definition PixelFormat.h:16
#define TexCreate_None
Definition RHIDefinitions.h:1191
ESamplerFilter
Definition RHIDefinitions.h:326
ETextureCreateFlags
Definition RHIDefinitions.h:1091
TextureAddress
Definition TextureDefines.h:496
uint8_t uint8
Definition binka_ue_file_header.h:8
uint32_t uint32
Definition binka_ue_file_header.h:6
Definition RenderDeferredCleanup.h:11
Definition RHICommandList.h:455
Definition RHICommandList.h:4626
Definition RenderResource.h:37
Definition SlateTextures.h:111
virtual void InitRHI(FRHICommandListBase &RHICmdList) override
Definition SlateTextures.h:120
FSlateRenderTargetRHI(FTextureRHIRef InRenderTargetTexture, uint32 InWidth, uint32 InHeight)
Definition SlateTextures.h:113
virtual void ReleaseRHI() override
Definition SlateTextures.h:125
virtual uint32 GetHeight() const override
Definition SlateTextures.h:131
ENGINE_API void SetRHIRef(FTextureRHIRef InRenderTargetTexture, uint32 InWidth, uint32 InHeight)
Definition SlateTextures.cpp:292
virtual uint32 GetWidth() const override
Definition SlateTextures.h:130
FTextureRHIRef GetRHIRef() const
Definition SlateTextures.h:138
Definition SlateShaderResource.h:44
Definition SlateTextures.h:18
virtual ENGINE_API void InitRHI(FRHICommandListBase &RHICmdList) override
Definition SlateTextures.cpp:45
virtual FRenderResource * GetRenderResource() override
Definition SlateTextures.h:82
virtual ENGINE_API ~FSlateTexture2DRHIRef()
Definition SlateTextures.cpp:32
virtual ENGINE_API void UpdateTextureThreadSafe(const TArray< uint8 > &Bytes) override
Definition SlateTextures.cpp:238
virtual ENGINE_API void Cleanup() override
Definition SlateTextures.cpp:37
virtual ENGINE_API void ResizeTexture(uint32 Width, uint32 Height) override
Definition SlateTextures.cpp:172
FTextureRHIRef GetRHIRef() const
Definition SlateTextures.h:51
virtual ENGINE_API void UpdateTextureThreadSafeRaw(uint32 Width, uint32 Height, const void *Buffer, const FIntRect &Dirty) override
Definition SlateTextures.cpp:258
ENGINE_API void Resize(uint32 Width, uint32 Height)
Definition SlateTextures.cpp:127
ENGINE_API void SetRHIRef(FTextureRHIRef InRenderTargetTexture, uint32 InWidth, uint32 InHeight)
Definition SlateTextures.cpp:134
EPixelFormat GetPixelFormat() const
Definition SlateTextures.h:78
virtual ENGINE_API void UpdateTextureThreadSafeWithTextureData(FSlateTextureData *BulkData) override
Definition SlateTextures.cpp:268
ENGINE_API void SetTextureData(FSlateTextureDataPtr NewTextureData)
Definition SlateTextures.cpp:142
ENGINE_API void ClearTextureData()
Definition SlateTextures.cpp:166
uint32 Width
Definition SlateTextures.h:91
virtual ENGINE_API void UpdateTexture(const TArray< uint8 > &Bytes) override
Definition SlateTextures.cpp:221
virtual uint32 GetHeight() const override
Definition SlateTextures.h:28
virtual ENGINE_API void ReleaseRHI() override
Definition SlateTextures.cpp:114
bool IsValid() const
Definition SlateTextures.h:44
virtual FSlateShaderResource * GetSlateResource() override
Definition SlateTextures.h:81
uint32 Height
Definition SlateTextures.h:93
virtual uint32 GetWidth() const override
Definition SlateTextures.h:27
virtual void UpdateTextureThreadSafeWithKeyedTextureHandle(void *TextureHandle, int KeyLockVal, int KeyUnlockVal, const FIntRect &Dirty=FIntRect()) override
Definition SlateTextures.h:88
Definition SlateTextures.h:147
virtual void SetSize(int32 InSizeX, int32 InSizeY)
Definition SlateTextures.cpp:316
virtual void InitRHI(FRHICommandListBase &RHICmdList) override
Definition SlateTextures.cpp:341
virtual uint32 GetSizeY() const override
Definition SlateTextures.cpp:406
virtual void ReleaseRHI() override
Definition SlateTextures.cpp:375
virtual uint32 GetSizeX() const override
Definition SlateTextures.cpp:401
virtual void UpdateDeferredResource(FRHICommandListImmediate &RHICmdList, bool bClearRenderTarget=true) override
Definition SlateTextures.cpp:388
virtual float GetDisplayGamma() const override
Definition SlateTextures.cpp:416
virtual FIntPoint GetSizeXY() const override
Definition SlateTextures.cpp:411
virtual void ClampSize(int32 SizeX, int32 SizeY) override
Definition SlateTextures.cpp:327
Definition SlateUpdatableTexture.h:15
Definition TextureResource.h:363
Definition Array.h:670
UE_FORCEINLINE_HINT void SafeRelease()
Definition RefCounting.h:599
Definition SharedPointer.h:692
Definition SlateShaderResource.h:173
FTextureRHIRef ShaderResource
Definition SlateShaderResource.h:213
Definition Color.h:48
Definition SlateTextureData.h:19
Definition IntPoint.h:25