UDocumentation UE5.7 10.02.2026 (Source)
API documentation for Unreal Engine 5.7
RHITextureReference.h
Go to the documentation of this file.
1// Copyright Epic Games, Inc. All Rights Reserved.
2
3#pragma once
4
5#include "RHIResources.h"
6
8{
9public:
12#if PLATFORM_SUPPORTS_BINDLESS_RENDERING
14#endif
16
17 RHI_API virtual class FRHITextureReference* GetTextureReference() override;
19
20 RHI_API virtual void* GetNativeResource() const override;
21 RHI_API virtual void* GetNativeShaderResourceView() const override;
22 RHI_API virtual void* GetTextureBaseRHI() override;
23 RHI_API virtual void GetWriteMaskProperties(void*& OutData, uint32& OutSize) override;
24 RHI_API virtual const FRHITextureDesc& GetDesc() const override;
25
26#if ENABLE_RHI_VALIDATION
27 // Implement RHIValidation::FTextureResource::GetTrackerResource to use the tracker info
28 // for the referenced texture.
29 RHI_API virtual RHIValidation::FResource* GetTrackerResource() final override;
30#endif
31
33
34 static inline FRHITexture* GetDefaultTexture() { return DefaultTexture; }
35
36#if PLATFORM_SUPPORTS_BINDLESS_RENDERING
37 FRHIDescriptorHandle GetBindlessHandle() const { return BindlessHandle; }
38 bool IsBindless() const { return GetBindlessHandle().IsValid(); }
39#endif
40
41protected:
42 friend class FDynamicRHI;
43
44 // Only called from Platform Context
45 RHI_API virtual void SetTrackedAccessFromContext(FRHITrackedAccess TrackedAccess) override;
46
47 // Called only from FDynamicRHI::RHIUpdateTextureReference
52
54
55#if PLATFORM_SUPPORTS_BINDLESS_RENDERING
56 const FRHIDescriptorHandle BindlessHandle;
57#endif
58
59 // This pointer is set by the InitRHI() function on the FBlackTextureWithSRV global resource,
60 // to allow FRHITextureReference to use the global black texture when the reference is nullptr.
61 // A pointer is required since FBlackTextureWithSRV is defined in RenderCore.
64};
UE_FORCEINLINE_HINT TSharedRef< CastToType, Mode > StaticCastSharedRef(TSharedRef< CastFromType, Mode > const &InSharedRef)
Definition SharedPointer.h:127
uint32_t uint32
Definition binka_ue_file_header.h:6
Definition GlobalRenderResources.cpp:232
Definition DynamicRHI.h:206
Definition RHITextureReference.h:8
void SetReferencedTexture(FRHITexture *InTexture)
Definition RHITextureReference.h:48
RHI_API ~FRHITextureReference()
virtual RHI_API void * GetNativeShaderResourceView() const override
Definition RHITextureReference.cpp:54
virtual RHI_API void GetWriteMaskProperties(void *&OutData, uint32 &OutSize) override
Definition RHITextureReference.cpp:66
virtual RHI_API class FRHITextureReference * GetTextureReference() override
Definition RHITextureReference.cpp:30
static RHI_API TRefCountPtr< FRHITexture > DefaultTexture
Definition RHITextureReference.h:63
virtual RHI_API void * GetTextureBaseRHI() override
Definition RHITextureReference.cpp:60
virtual RHI_API const FRHITextureDesc & GetDesc() const override
Definition RHITextureReference.cpp:80
virtual RHI_API FRHIDescriptorHandle GetDefaultBindlessHandle() const override
Definition RHITextureReference.cpp:35
static FRHITexture * GetDefaultTexture()
Definition RHITextureReference.h:34
virtual RHI_API void SetTrackedAccessFromContext(FRHITrackedAccess TrackedAccess) override
Definition RHITextureReference.cpp:86
TRefCountPtr< FRHITexture > ReferencedTexture
Definition RHITextureReference.h:53
virtual RHI_API void * GetNativeResource() const override
Definition RHITextureReference.cpp:48
FRHITexture * GetReferencedTexture() const
Definition RHITextureReference.h:32
FRHITextureReference()=delete
Definition RHIResources.h:2153
Definition RefCounting.h:454
UE_FORCEINLINE_HINT ReferencedType * GetReference() const
Definition RefCounting.h:584
Definition RHIDefinitions.h:1401
bool IsValid() const
Definition RHIDefinitions.h:1420
Definition RHIResources.h:1689
Definition RHITransition.h:433