UDocumentation UE5.7 10.02.2026 (Source)
API documentation for Unreal Engine 5.7
TextureRenderTarget.h
Go to the documentation of this file.
1// Copyright Epic Games, Inc. All Rights Reserved.
2
10#pragma once
11
12#include "CoreMinimal.h"
14#include "Engine/Texture.h"
15#include "RenderUtils.h"
16#include "TextureRenderTarget.generated.h"
17
19
20UCLASS(abstract, MinimalAPI)
22{
24
25
26 UPROPERTY(EditAnywhere, BlueprintReadWrite, Category=TextureRenderTarget)
27 float TargetGamma;
28
30 uint32 bNeedsTwoCopies:1;
31
33 uint32 bCanCreateUAV : 1;
34
36 uint32 bTargetArraySlicesIndependently : 1;
37
42 ENGINE_API class FTextureRenderTargetResource* GetRenderTargetResource();
43
49 ENGINE_API class FTextureRenderTargetResource* GameThread_GetRenderTargetResource();
50
51
52 //~ Begin UTexture Interface
53 virtual ETextureClass GetTextureClass() const { return ETextureClass::RenderTarget; }
54 ENGINE_API virtual class FTextureResource* CreateResource() override;
55 ENGINE_API virtual EMaterialValueType GetMaterialType() const override;
56 //~ End UTexture Interface
57
65 virtual bool CanConvertToTexture(ETextureSourceFormat& OutTextureSourceFormat, EPixelFormat& OutPixelFormat, FText* OutErrorMessage = nullptr) const PURE_VIRTUAL(UTextureRenderTarget, return false;);
66
72 ENGINE_API bool CanConvertToTexture(FText* OutErrorMessage = nullptr) const;
73
77 virtual TSubclassOf<UTexture> GetTextureUClass() const PURE_VIRTUAL(GetTextureUClass, return nullptr;)
78 // GetTextureClass() will just return "RenderTarget" ; to get the sub-type (2d/cube), use GetRenderTargetTextureClass
79 virtual ETextureClass GetRenderTargetTextureClass() const PURE_VIRTUAL(GetRenderTargetTextureClass, return ETextureClass::Invalid;)
80
81 virtual EPixelFormat GetFormat() const PURE_VIRTUAL(GetFormat,return PF_Unknown;)
82 virtual bool IsSRGB() const PURE_VIRTUAL(IsSRGB,return false;)
83 virtual float GetDisplayGamma() const PURE_VIRTUAL(GetDisplayGamma,return 0.f;)
84
85 // UTextureRenderTarget default display gamma if none is set
86 // returns hard-coded 2.2
87 ENGINE_API static float GetDefaultDisplayGamma();
88
89 // get the variant of ReadPixels call that should be used
90 // either BGRA8,RGBA32F,or RGBA16F
91 // for FColor,FLinearColor, or Float16
92 static ERawImageFormat::Type GetReadPixelsFormat(EPixelFormat PF,bool bIsVolume);
93
94#if WITH_EDITOR
95
105 using FOnTextureChangingDelegate = TFunctionRef<void(UTexture* /*InTexture*/)>;
106 constexpr static auto OnTextureChangingDefault = [](UTexture*){};
108
120#endif // WITH_EDITOR
121
122protected:
123 ETextureSourceFormat ValidateTextureFormatForConversionToTextureInternal(EPixelFormat InFormat, const TArrayView<const EPixelFormat>& InCompatibleFormats, FText* OutErrorMessage) const;
124};
125
126
127
OODEFFUNC typedef void(OODLE_CALLBACK t_fp_OodleCore_Plugin_Free)(void *ptr)
#define PURE_VIRTUAL(func,...)
Definition CoreMiscDefines.h:103
UE_FORCEINLINE_HINT TSharedRef< CastToType, Mode > StaticCastSharedRef(TSharedRef< CastFromType, Mode > const &InSharedRef)
Definition SharedPointer.h:127
EMaterialValueType
Definition MaterialValueType.h:15
#define UPROPERTY(...)
UObject definition macros.
Definition ObjectMacros.h:744
EObjectFlags
Definition ObjectMacros.h:552
@ RF_NoFlags
No flags, used to avoid a cast.
Definition ObjectMacros.h:555
#define GENERATED_UCLASS_BODY(...)
Definition ObjectMacros.h:768
#define UCLASS(...)
Definition ObjectMacros.h:776
EPixelFormat
Definition PixelFormat.h:16
@ PF_Unknown
Definition PixelFormat.h:17
EConstructTextureFlags
Definition RenderUtils.h:125
@ CTF_Default
Definition RenderUtils.h:144
ETextureSourceFormat
Definition TextureDefines.h:351
ETextureClass
Definition TextureDefines.h:299
uint32_t uint32
Definition binka_ue_file_header.h:6
Definition Text.h:385
Definition TextureResource.h:363
Definition TextureResource.h:103
Definition ArrayView.h:139
Definition Array.h:670
Definition AssetRegistryState.h:50
Definition SubclassOf.h:30
Definition Object.h:95
Definition TextureRenderTarget.h:22
Definition Texture.h:1219
Type
Definition ImageCore.h:57