UDocumentation UE5.7 10.02.2026 (Source)
API documentation for Unreal Engine 5.7
TextureRenderTarget2D.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"
7#include "RenderUtils.h"
9#include "TextureRenderTarget2D.generated.h"
10
12class UTexture2D;
14
17
19UENUM(BlueprintType)
45
47{
48 switch (RTFormat)
49 {
50 case RTF_R8: return PF_G8;
51 case RTF_RG8: return PF_R8G8;
52 case RTF_RGBA8: return PF_B8G8R8A8;
53 case RTF_RGBA8_SRGB: return PF_B8G8R8A8;
54
55 case RTF_R16f: return PF_R16F;
56 case RTF_RG16f: return PF_G16R16F;
57 case RTF_RGBA16f: return PF_FloatRGBA;
58
59 case RTF_R32f: return PF_R32_FLOAT;
60 case RTF_RG32f: return PF_G32R32F;
61 case RTF_RGBA32f: return PF_A32B32G32R32F;
62 case RTF_RGB10A2: return PF_A2B10G10R10;
63 }
64
65 ensureMsgf(false, TEXT("Unhandled ETextureRenderTargetFormat entry %u"), (uint32)RTFormat);
66 return PF_Unknown;
67}
68
69UENUM(BlueprintType)
71{
72 RTSC_1 UMETA(DisplayName = "MSAAx1"),
73 RTSC_2 UMETA(DisplayName = "MSAAx2"),
74 RTSC_4 UMETA(DisplayName = "MSAAx4"),
75 RTSC_8 UMETA(DisplayName = "MSAAx8"),
76
78};
79
81{
82 switch (InSampleCount)
83 {
84 case ETextureRenderTargetSampleCount::RTSC_1: return 1 << 0;
85 case ETextureRenderTargetSampleCount::RTSC_2: return 1 << 1;
86 case ETextureRenderTargetSampleCount::RTSC_4: return 1 << 2;
87 case ETextureRenderTargetSampleCount::RTSC_8: return 1 << 3;
88
89 default:
90 ensureMsgf(false, TEXT("Unhandled ETextureRenderTargetSampleCount entry %u"), (uint32)InSampleCount);
91 return 1;
92 }
93}
94
104{
106
107
108 UPROPERTY(EditAnywhere, BlueprintReadOnly, Category=TextureRenderTarget2D, AssetRegistrySearchable)
109 int32 SizeX;
110
112 UPROPERTY(EditAnywhere, BlueprintReadOnly, Category=TextureRenderTarget2D, AssetRegistrySearchable)
113 int32 SizeY;
114
116 UPROPERTY(EditAnywhere, BlueprintReadOnly, Category = TextureRenderTarget2D)
117 FLinearColor ClearColor;
118
120 UPROPERTY(EditAnywhere, BlueprintReadWrite, Category=TextureRenderTarget2D, AssetRegistrySearchable)
122
124 UPROPERTY(EditAnywhere, BlueprintReadWrite, Category=TextureRenderTarget2D, AssetRegistrySearchable)
126
128 UPROPERTY()
129 uint8 bForceLinearGamma:1;
130
132 uint8 bNoFastClear:1;
133
135 UPROPERTY()
136 uint8 bHDR_DEPRECATED:1;
137
139 UPROPERTY(EditAnywhere, BlueprintReadOnly, Category = TextureRenderTarget2D, meta=(DisplayName = "Shared"), AssetRegistrySearchable, AdvancedDisplay)
140 uint8 bGPUSharedFlag : 1;
141
148 UPROPERTY(EditAnywhere, BlueprintReadOnly, Category=TextureRenderTarget2D, AssetRegistrySearchable)
150
152 UPROPERTY(EditAnywhere, BlueprintReadOnly, Category = TextureRenderTarget2D, AssetRegistrySearchable)
153 uint8 bSupportsUAV : 1;
154
156 UPROPERTY(EditAnywhere, BlueprintReadOnly, Category = TextureRenderTarget2D, AssetRegistrySearchable)
157 uint8 bAutoGenerateMips : 1;
158
160 UPROPERTY(EditAnywhere, BlueprintReadOnly, Category = TextureRenderTarget2D, AssetRegistrySearchable, meta = (editcondition = "bAutoGenerateMips"))
161 TEnumAsByte<enum TextureFilter> MipsSamplerFilter;
162
164 UPROPERTY(EditAnywhere, BlueprintReadOnly, Category = TextureRenderTarget2D, AssetRegistrySearchable, meta = (editcondition = "bAutoGenerateMips"))
166
168 UPROPERTY(EditAnywhere, BlueprintReadOnly, Category = TextureRenderTarget2D, AssetRegistrySearchable, meta = (editcondition = "bAutoGenerateMips"))
170
172 UPROPERTY()
173 TEnumAsByte<enum EPixelFormat> OverrideFormat;
174
184
186 ENGINE_API void InitAutoFormat(uint32 InSizeX, uint32 InSizeY);
187
189 ENGINE_API void ResizeTarget(uint32 InSizeX, uint32 InSizeY);
190
201
202 UE_DEPRECATED(5.4, "Use CanConvertToTexture")
203 ENGINE_API ETextureSourceFormat GetTextureFormatForConversionToTexture2D() const;
204
205 //~ Begin UTextureRenderTarget Interface
206 ENGINE_API virtual bool CanConvertToTexture(ETextureSourceFormat& OutTextureSourceFormat, EPixelFormat& OutPixelFormat, FText* OutErrorMessage) const override;
207 ENGINE_API virtual TSubclassOf<UTexture> GetTextureUClass() const override;
208 ENGINE_API virtual EPixelFormat GetFormat() const override;
209 ENGINE_API virtual bool IsSRGB() const override;
210 ENGINE_API virtual float GetDisplayGamma() const override;
211 virtual ETextureClass GetRenderTargetTextureClass() const override { return ETextureClass::TwoD; }
212 //~ End UTextureRenderTarget Interface
213
221 UE_DEPRECATED(5.4, "Use URenderTarget::UpdateTexture")
223
232 UE_DEPRECATED(5.4, "Use URenderTarget::FOnTextureChangingDelegate")
234
236 UE_DEPRECATED(5.4, "Use URenderTarget::UpdateTexture")
239
244 ENGINE_API void UpdateResourceImmediate(bool bClearRenderTarget=true);
245
246 //~ Begin UTexture Interface.
247 virtual float GetSurfaceWidth() const override { return (float)SizeX; }
248 virtual float GetSurfaceHeight() const override { return (float)SizeY; }
249 virtual float GetSurfaceDepth() const override { return 0; }
250 virtual uint32 GetSurfaceArraySize() const override { return 0; }
251 ENGINE_API virtual FTextureResource* CreateResource() override;
252 ENGINE_API virtual EMaterialValueType GetMaterialType() const override;
253 virtual uint32 CalcTextureMemorySizeEnum(ETextureMipCount Enum) const override;
254 //~ End UTexture Interface.
255
256 //~ Begin UObject Interface
257#if WITH_EDITOR
258 ENGINE_API virtual void PostEditChangeProperty(FPropertyChangedEvent& PropertyChangedEvent) override;
259#endif // WITH_EDITOR
260 ENGINE_API virtual void Serialize(FArchive& Ar) override;
261 ENGINE_API virtual void PostLoad() override;
262 ENGINE_API virtual void GetResourceSizeEx(FResourceSizeEx& CumulativeResourceSize) override;
263 ENGINE_API virtual FString GetDesc() override;
264 //~ End UObject Interface
265
266 inline int32 GetNumMips() const
267 {
268 return NumMips;
269 }
270
271 virtual ETextureRenderTargetSampleCount GetSampleCount() const;
272
273private:
274 int32 NumMips;
275};
276
277
278
#define ensureMsgf( InExpression, InFormat,...)
Definition AssertionMacros.h:465
#define UE_DEPRECATED(Version, Message)
Definition CoreMiscDefines.h:302
#define TEXT(x)
Definition Platform.h:1272
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
#define DECLARE_DELEGATE_OneParam(DelegateName, Param1Type)
Definition DelegateCombinations.h:48
#define PRAGMA_ENABLE_DEPRECATION_WARNINGS
Definition GenericPlatformCompilerPreSetup.h:12
#define PRAGMA_DISABLE_DEPRECATION_WARNINGS
Definition GenericPlatformCompilerPreSetup.h:8
EMaterialValueType
Definition MaterialValueType.h:15
#define UPROPERTY(...)
UObject definition macros.
Definition ObjectMacros.h:744
EObjectFlags
Definition ObjectMacros.h:552
#define GENERATED_UCLASS_BODY(...)
Definition ObjectMacros.h:768
#define UCLASS(...)
Definition ObjectMacros.h:776
#define UENUM(...)
Definition ObjectMacros.h:749
EPixelFormat
Definition PixelFormat.h:16
@ PF_FloatRGBA
Definition PixelFormat.h:27
@ PF_G32R32F
Definition PixelFormat.h:34
@ PF_Unknown
Definition PixelFormat.h:17
@ PF_R16F
Definition PixelFormat.h:38
@ PF_R8G8
Definition PixelFormat.h:57
@ PF_G16R16F
Definition PixelFormat.h:32
@ PF_R32_FLOAT
Definition PixelFormat.h:30
@ PF_A2B10G10R10
Definition PixelFormat.h:35
@ PF_G8
Definition PixelFormat.h:20
@ PF_A32B32G32R32F
Definition PixelFormat.h:18
@ PF_B8G8R8A8
Definition PixelFormat.h:19
uint32 GetNumMips(uint32 MipSize)
Definition ReflectionEnvironmentCapture.h:20
@ CTF_Default
Definition RenderUtils.h:144
ETextureMipCount
Definition TextureDefines.h:505
ETextureSourceFormat
Definition TextureDefines.h:351
ETextureClass
Definition TextureDefines.h:299
EPixelFormat GetPixelFormatFromRenderTargetFormat(ETextureRenderTargetFormat RTFormat)
Definition TextureRenderTarget2D.h:46
ENGINE_API int32 GTextureRenderTarget2DMaxSizeX
Definition TextureRenderTarget2D.cpp:28
ENGINE_API int32 GTextureRenderTarget2DMaxSizeY
Definition TextureRenderTarget2D.cpp:29
ETextureRenderTargetSampleCount
Definition TextureRenderTarget2D.h:71
int32 GetNumFromRenderTargetSampleCount(ETextureRenderTargetSampleCount InSampleCount)
Definition TextureRenderTarget2D.h:80
ETextureRenderTargetFormat
Definition TextureRenderTarget2D.h:21
@ RTF_RGBA32f
Definition TextureRenderTarget2D.h:41
@ RTF_RG16f
Definition TextureRenderTarget2D.h:33
@ RTF_RGBA8_SRGB
Definition TextureRenderTarget2D.h:29
@ RTF_RG32f
Definition TextureRenderTarget2D.h:39
@ RTF_R16f
Definition TextureRenderTarget2D.h:31
@ RTF_R8
Definition TextureRenderTarget2D.h:23
@ RTF_RGBA16f
Definition TextureRenderTarget2D.h:35
@ RTF_RGB10A2
Definition TextureRenderTarget2D.h:43
@ RTF_R32f
Definition TextureRenderTarget2D.h:37
@ RTF_RG8
Definition TextureRenderTarget2D.h:25
@ RTF_RGBA8
Definition TextureRenderTarget2D.h:27
uint8_t uint8
Definition binka_ue_file_header.h:8
uint32_t uint32
Definition binka_ue_file_header.h:6
Definition Archive.h:1208
Definition Text.h:385
Definition TextureResource.h:103
Definition Array.h:670
Definition EnumAsByte.h:22
Definition SubclassOf.h:30
Definition Object.h:95
Definition Texture2D.h:26
Definition TextureRenderTarget2D.h:104
Definition TextureRenderTarget.h:22
Definition Color.h:48
Definition UnrealType.h:6865
Definition ResourceSize.h:31