UDocumentation UE5.7 10.02.2026 (Source)
API documentation for Unreal Engine 5.7
FD3D12Texture Class Reference

#include <D3D12Texture.h>

+ Inheritance diagram for FD3D12Texture:

Public Member Functions

 FD3D12Texture ()=delete
 
 FD3D12Texture (const FRHITextureCreateDesc &InDesc, class FD3D12Device *InParent)
 
virtual ~FD3D12Texture ()
 
virtual FReturnedRefCountValue AddRef () const override
 
virtual uint32 Release () const override
 
virtual uint32 GetRefCount () const override
 
virtual voidGetTextureBaseRHI () override final
 
virtual voidGetNativeResource () const override final
 
virtual FRHIDescriptorHandle GetDefaultBindlessHandle () const override
 
bool IsStreamable () const
 
bool SkipsFastClearFinalize () const
 
const FTextureRHIRefGetAliasingSourceTexture () const
 
void GetReadBackHeapDesc (D3D12_PLACED_SUBRESOURCE_FOOTPRINT &OutFootprint, uint32 Subresource) const
 
bool HasCreatedRTVsPerSlice () const
 
bool HasRenderTargetViews () const
 
TConstArrayView< TSharedPtr< FD3D12RenderTargetView > > GetRenderTargetViews () const
 
FD3D12ShaderResourceViewGetShaderResourceView () const
 
FD3D12RenderTargetViewGetRenderTargetView (int32 MipIndex, int32 ArraySliceIndex) const
 
FD3D12DepthStencilViewGetDepthStencilView (FExclusiveDepthStencil AccessType) const
 
void UploadInitialData (FRHICommandListBase &RHICmdList, FD3D12ResourceLocation &&SourceLocation, ED3D12Access InDestinationD3D12Access)
 
void CreateViews (FD3D12Texture *FirstLinkedObject)
 
void SetCreatedRTVsPerSlice (bool Value, int32 InRTVArraySize)
 
void SetNumRTVs (int32 Num)
 
void EmplaceRTV (D3D12_RENDER_TARGET_VIEW_DESC const &RTVDesc, int32 Index, FD3D12Texture *FirstLinkedObject)
 
void EmplaceDSV (D3D12_DEPTH_STENCIL_VIEW_DESC const &DSVDesc, int32 Index, FD3D12Texture *FirstLinkedObject)
 
void EmplaceSRV (D3D12_SHADER_RESOURCE_VIEW_DESC const &SRVDesc, FD3D12Texture *FirstLinkedObject)
 
FRHILockTextureResult Lock (FRHICommandListBase &RHICmdList, const FRHILockTextureArgs &Arguments)
 
void Unlock (FRHICommandListBase &RHICmdList, const FRHILockTextureArgs &Arguments)
 
void UpdateTexture2D (FRHICommandListBase &RHICmdList, uint32 MipIndex, const struct FUpdateTextureRegion2D &UpdateRegion, uint32 SourcePitch, const uint8 *SourceData)
 
void UpdateTexture (FD3D12CommandContext &Context, uint32 MipIndex, uint32 DestX, uint32 DestY, uint32 DestZ, const D3D12_TEXTURE_COPY_LOCATION &SourceCopyLocation)
 
void CopyTextureRegion (FD3D12CommandContext &Context, uint32 DestX, uint32 DestY, uint32 DestZ, FD3D12Texture *SourceTexture, const D3D12_BOX &SourceBox)
 
void AliasResources (FD3D12Texture *Texture)
 
void SetAliasingSource (FTextureRHIRef &SourceTextureRHI)
 
void ReuseStagingBuffer (TUniquePtr< FD3D12LockedResource > &&LockedResource, uint32 Subresource)
 
- Public Member Functions inherited from FRHITexture
virtual const FRHITextureDescGetDesc () const
 
virtual class FRHITextureReferenceGetTextureReference ()
 
virtual voidGetNativeShaderResourceView () const
 
virtual void GetWriteMaskProperties (void *&OutData, uint32 &OutSize)
 
FIntVector GetSizeXYZ () const
 
FIntVector GetMipDimensions (uint8 MipIndex) const
 
bool IsMultisampled () const
 
bool HasClearValue () const
 
FLinearColor GetClearColor () const
 
void GetDepthStencilClearValue (float &OutDepth, uint32 &OutStencil) const
 
float GetDepthClearValue () const
 
uint32 GetStencilClearValue () const
 
void SetLastRenderTime (float InLastRenderTime)
 
double GetLastRenderTime () const
 
RHI_API void SetName (FName InName)
 
FRHITextureGetTexture2D ()
 
FRHITextureGetTexture2DArray ()
 
FRHITextureGetTexture3D ()
 
FRHITextureGetTextureCube ()
 
uint32 GetSizeX () const
 
uint32 GetSizeY () const
 
FIntPoint GetSizeXY () const
 
uint32 GetSizeZ () const
 
uint32 GetNumMips () const
 
EPixelFormat GetFormat () const
 
ETextureCreateFlags GetFlags () const
 
uint32 GetNumSamples () const
 
const FClearValueBinding GetClearBinding () const
 
uint32 GetSize () const
 
- Public Member Functions inherited from FRHIViewableResource
ERHIAccess GetTrackedAccess_Unsafe () const
 
FName GetName () const
 
- Public Member Functions inherited from FRHIResource
RHI_API FRHIResource (ERHIResourceType InResourceType)
 
uint32 AddRef () const
 
uint32 Release () const
 
uint32 GetRefCount () const
 
bool IsValid () const
 
void DisableLifetimeExtension ()
 
ERHIResourceType GetType () const
 
FName GetOwnerName () const
 
void SetOwnerName (FName InOwnerName)
 
- Public Member Functions inherited from FD3D12BaseShaderResource
FD3D12ResourceGetResource () const
 
void AddRenameListener (FD3D12ShaderResourceRenameListener *InRenameListener)
 
void RemoveRenameListener (FD3D12ShaderResourceRenameListener *InRenameListener)
 
bool HasLinkedViews () const
 
void ResourceRenamed (FD3D12ContextArray const &Contexts)
 
 FD3D12BaseShaderResource (FD3D12Device *InParent)
 
 ~FD3D12BaseShaderResource ()
 
- Public Member Functions inherited from FD3D12DeviceChild
 FD3D12DeviceChild (FD3D12Device *InParent=nullptr)
 
FORCEINLINE FD3D12DeviceGetParentDevice () const
 
FD3D12DeviceGetParentDevice_Unsafe () const
 
- Public Member Functions inherited from IRefCountedObject
virtual ~IRefCountedObject ()
 
- Public Member Functions inherited from FD3D12LinkedAdapterObject< FD3D12Texture >
 ~FD3D12LinkedAdapterObject ()
 
FORCEINLINE bool IsHeadLink () const
 
FD3D12TextureGetLinkedObject (uint32 GPUIndex) const
 
FD3D12TextureGetFirstLinkedObject () const
 
FRHIGPUMask GetLinkedObjectsGPUMask () const
 
FLinkedObjectIterator begin ()
 
FLinkedObjectIterator end ()
 

Static Public Member Functions

static bool CanBe4KAligned (const FD3D12ResourceDesc &Desc, EPixelFormat UEFormat)
 
- Static Public Member Functions inherited from FD3D12LinkedAdapterObject< FD3D12Texture >
static ReturnType * CreateLinkedObjects (FRHIGPUMask GPUMask, const CreationParameterFunction &pfnGetCreationParameter, const CreationCoreFunction &pfnCreationCore)
 

Protected Attributes

TSharedPtr< FD3D12ShaderResourceViewShaderResourceView
 
bool bCreatedRTVsPerSlice { false }
 
int32 RTVArraySizePerMip {}
 
TArray< TSharedPtr< FD3D12RenderTargetView >, TInlineAllocator< 1 > > RenderTargetViews
 
TSharedPtr< FD3D12DepthStencilViewDepthStencilViews [FExclusiveDepthStencil::MaxIndex]
 
TMap< uint32, TUniquePtr< FD3D12LockedResource > > LockedMap
 
TUniquePtr< D3D12_PLACED_SUBRESOURCE_FOOTPRINTFirstSubresourceFootprint
 
FTextureRHIRef AliasingSourceTexture
 
- Protected Attributes inherited from FRHIViewableResource
FName Name
 
- Protected Attributes inherited from FD3D12DeviceChild
FD3D12DeviceParent
 

Additional Inherited Members

- Public Types inherited from FD3D12LinkedAdapterObject< FD3D12Texture >
using LinkedObjectType = FD3D12Texture
 
using FDualLinkedObjectIterator = TD3D12DualLinkedObjectIterator< FD3D12Texture, FD3D12Texture >
 
- Public Attributes inherited from FD3D12BaseShaderResource
FD3D12ResourceLocation ResourceLocation
 
- Protected Member Functions inherited from FRHITexture
 FRHITexture ()=delete
 
RHI_API FRHITexture (const FRHITextureCreateDesc &CreateDesc)
 
RHI_API FRHITexture (ERHIResourceType InResourceType)
 
- Protected Member Functions inherited from FRHIViewableResource
 FRHIViewableResource (ERHIResourceType InResourceType, ERHIAccess InAccess, const TCHAR *InName, FName InOwnerName)
 
virtual void SetTrackedAccessFromContext (FRHITrackedAccess InTrackedAccess)
 
void TakeOwnership (FRHIViewableResource &Other)
 
void ReleaseOwnership ()
 
- Protected Member Functions inherited from FRHIResource
virtual RHI_API ~FRHIResource ()
 
- Protected Member Functions inherited from FD3D12LinkedAdapterObject< FD3D12Texture >
 FD3D12LinkedAdapterObject ()
 

Detailed Description

D3D12 RHI Texture class

Constructor & Destructor Documentation

◆ FD3D12Texture() [1/2]

FD3D12Texture::FD3D12Texture ( )
delete

◆ FD3D12Texture() [2/2]

FD3D12Texture::FD3D12Texture ( const FRHITextureCreateDesc InDesc,
class FD3D12Device InParent 
)
inline

Initialization constructor.

◆ ~FD3D12Texture()

FD3D12Texture::~FD3D12Texture ( )
virtual

Member Function Documentation

◆ AddRef()

virtual FReturnedRefCountValue FD3D12Texture::AddRef ( ) const
inlineoverridevirtual

Implements IRefCountedObject.

◆ AliasResources()

void FD3D12Texture::AliasResources ( FD3D12Texture Texture)

◆ CanBe4KAligned()

bool FD3D12Texture::CanBe4KAligned ( const FD3D12ResourceDesc Desc,
EPixelFormat  UEFormat 
)
static

◆ CopyTextureRegion()

void FD3D12Texture::CopyTextureRegion ( FD3D12CommandContext Context,
uint32  DestX,
uint32  DestY,
uint32  DestZ,
FD3D12Texture SourceTexture,
const D3D12_BOX SourceBox 
)

◆ CreateViews()

void FD3D12Texture::CreateViews ( FD3D12Texture FirstLinkedObject)

◆ EmplaceDSV()

void FD3D12Texture::EmplaceDSV ( D3D12_DEPTH_STENCIL_VIEW_DESC const &  DSVDesc,
int32  Index,
FD3D12Texture FirstLinkedObject 
)
inline

◆ EmplaceRTV()

void FD3D12Texture::EmplaceRTV ( D3D12_RENDER_TARGET_VIEW_DESC const &  RTVDesc,
int32  Index,
FD3D12Texture FirstLinkedObject 
)
inline

◆ EmplaceSRV()

void FD3D12Texture::EmplaceSRV ( D3D12_SHADER_RESOURCE_VIEW_DESC const &  SRVDesc,
FD3D12Texture FirstLinkedObject 
)
inline

◆ GetAliasingSourceTexture()

const FTextureRHIRef & FD3D12Texture::GetAliasingSourceTexture ( ) const
inline

◆ GetDefaultBindlessHandle()

FRHIDescriptorHandle FD3D12Texture::GetDefaultBindlessHandle ( ) const
overridevirtual

Reimplemented from FRHITexture.

◆ GetDepthStencilView()

FD3D12DepthStencilView * FD3D12Texture::GetDepthStencilView ( FExclusiveDepthStencil  AccessType) const
inline

◆ GetNativeResource()

void * FD3D12Texture::GetNativeResource ( ) const
finaloverridevirtual

Returns access to the platform-specific native resource pointer. This is designed to be used to provide plugins with access to the underlying resource and should be used very carefully or not at all.

Returns
The pointer to the native resource or NULL if it not initialized or not supported for this resource type for some reason

Reimplemented from FRHITexture.

◆ GetReadBackHeapDesc()

void FD3D12Texture::GetReadBackHeapDesc ( D3D12_PLACED_SUBRESOURCE_FOOTPRINT OutFootprint,
uint32  Subresource 
) const

◆ GetRefCount()

virtual uint32 FD3D12Texture::GetRefCount ( ) const
inlineoverridevirtual

Implements IRefCountedObject.

◆ GetRenderTargetView()

FD3D12RenderTargetView * FD3D12Texture::GetRenderTargetView ( int32  MipIndex,
int32  ArraySliceIndex 
) const
inline

◆ GetRenderTargetViews()

TConstArrayView< TSharedPtr< FD3D12RenderTargetView > > FD3D12Texture::GetRenderTargetViews ( ) const
inline

◆ GetShaderResourceView()

FD3D12ShaderResourceView * FD3D12Texture::GetShaderResourceView ( ) const
inline

◆ GetTextureBaseRHI()

virtual void * FD3D12Texture::GetTextureBaseRHI ( )
inlinefinaloverridevirtual

Returns access to the platform-specific RHI texture baseclass. This is designed to provide the RHI with fast access to its base classes in the face of multiple inheritance.

Returns
The pointer to the platform-specific RHI texture baseclass or NULL if it not initialized or not supported for this RHI

Reimplemented from FRHITexture.

◆ HasCreatedRTVsPerSlice()

bool FD3D12Texture::HasCreatedRTVsPerSlice ( ) const
inline

◆ HasRenderTargetViews()

bool FD3D12Texture::HasRenderTargetViews ( ) const
inline

◆ IsStreamable()

bool FD3D12Texture::IsStreamable ( ) const
inline

◆ Lock()

FRHILockTextureResult FD3D12Texture::Lock ( FRHICommandListBase RHICmdList,
const FRHILockTextureArgs Arguments 
)

◆ Release()

virtual uint32 FD3D12Texture::Release ( ) const
inlineoverridevirtual

Implements IRefCountedObject.

◆ ReuseStagingBuffer()

void FD3D12Texture::ReuseStagingBuffer ( TUniquePtr< FD3D12LockedResource > &&  LockedResource,
uint32  Subresource 
)

◆ SetAliasingSource()

void FD3D12Texture::SetAliasingSource ( FTextureRHIRef SourceTextureRHI)
inline

◆ SetCreatedRTVsPerSlice()

void FD3D12Texture::SetCreatedRTVsPerSlice ( bool  Value,
int32  InRTVArraySize 
)
inline

◆ SetNumRTVs()

void FD3D12Texture::SetNumRTVs ( int32  Num)
inline

◆ SkipsFastClearFinalize()

bool FD3D12Texture::SkipsFastClearFinalize ( ) const
inline

◆ Unlock()

void FD3D12Texture::Unlock ( FRHICommandListBase RHICmdList,
const FRHILockTextureArgs Arguments 
)

◆ UpdateTexture()

void FD3D12Texture::UpdateTexture ( FD3D12CommandContext Context,
uint32  MipIndex,
uint32  DestX,
uint32  DestY,
uint32  DestZ,
const D3D12_TEXTURE_COPY_LOCATION SourceCopyLocation 
)

◆ UpdateTexture2D()

void FD3D12Texture::UpdateTexture2D ( FRHICommandListBase RHICmdList,
uint32  MipIndex,
const struct FUpdateTextureRegion2D UpdateRegion,
uint32  SourcePitch,
const uint8 SourceData 
)

◆ UploadInitialData()

void FD3D12Texture::UploadInitialData ( FRHICommandListBase RHICmdList,
FD3D12ResourceLocation &&  SourceLocation,
ED3D12Access  InDestinationD3D12Access 
)

Member Data Documentation

◆ AliasingSourceTexture

FTextureRHIRef FD3D12Texture::AliasingSourceTexture
protected

◆ bCreatedRTVsPerSlice

bool FD3D12Texture::bCreatedRTVsPerSlice { false }
protected

◆ DepthStencilViews

TSharedPtr<FD3D12DepthStencilView> FD3D12Texture::DepthStencilViews[FExclusiveDepthStencil::MaxIndex]
protected

◆ FirstSubresourceFootprint

TUniquePtr<D3D12_PLACED_SUBRESOURCE_FOOTPRINT> FD3D12Texture::FirstSubresourceFootprint
mutableprotected

◆ LockedMap

TMap<uint32, TUniquePtr<FD3D12LockedResource> > FD3D12Texture::LockedMap
protected

◆ RenderTargetViews

TArray<TSharedPtr<FD3D12RenderTargetView>, TInlineAllocator<1> > FD3D12Texture::RenderTargetViews
protected

◆ RTVArraySizePerMip

int32 FD3D12Texture::RTVArraySizePerMip {}
protected

◆ ShaderResourceView

TSharedPtr<FD3D12ShaderResourceView> FD3D12Texture::ShaderResourceView
protected

The documentation for this class was generated from the following files: