UDocumentation UE5.7 10.02.2026 (Source)
API documentation for Unreal Engine 5.7
FMetalResourceViewBase Class Referenceabstract

#include <MetalResources.h>

+ Inheritance diagram for FMetalResourceViewBase:

Classes

struct  FBufferView
 
struct  FTextureBufferBacked
 

Public Types

enum class  EMetalType { Null = TStorage::IndexOfType<FEmptyVariantState>() , TextureView = TStorage::IndexOfType<MTLTexturePtr>() , BufferView = TStorage::IndexOfType<FBufferView>() , TextureBufferBacked = TStorage::IndexOfType<FTextureBufferBacked>() }
 
typedef TVariant< FEmptyVariantState, MTLTexturePtr, FBufferView, FTextureBufferBackedTStorage
 
- Public Types inherited from TLinkedListBase< ContainerType, ElementType, IteratorType >
typedef IteratorType< ContainerType, ElementType > TIterator
 
typedef IteratorType< ContainerType, const ElementType > TConstIterator
 

Public Member Functions

virtual ~FMetalResourceViewBase ()
 
EMetalType GetMetalType () const
 
const MTLTexturePtrGetTextureView () const
 
const FBufferViewGetBufferView () const
 
const FTextureBufferBackedGetTextureBufferBacked () const
 
virtual void UpdateView (FMetalRHICommandContext *Context, const bool bConstructing)=0
 
- Public Member Functions inherited from TIntrusiveLinkedList< FMetalResourceViewBase >
 TIntrusiveLinkedList ()
 
- Public Member Functions inherited from TLinkedListBase< ContainerType, ElementType, IteratorType >
 TLinkedListBase ()
 
void Unlink ()
 
void LinkBefore (ContainerType *Before)
 
void LinkAfter (ContainerType *After)
 
void LinkReplace (ContainerType *Replace)
 
void LinkHead (ContainerType *&Head)
 
UE_FORCEINLINE_HINT bool IsLinked ()
 
UE_FORCEINLINE_HINT ContainerType ** GetPrevLink () const
 
UE_FORCEINLINE_HINT ContainerType * GetNextLink () const
 
UE_FORCEINLINE_HINT ContainerType * Next ()
 

Public Attributes

TArray< TTuple< MTL::Resource *, MTL::ResourceUsage > > ReferencedResources
 

Protected Member Functions

 FMetalResourceViewBase (FMetalDevice &InDevice)
 
void InitAsTextureView (MTLTexturePtr)
 
void InitAsBufferView (FMetalBufferPtr Buffer, uint32 Offset, uint32 Size)
 
void InitAsTextureBufferBacked (MTLTexturePtr Texture, FMetalBufferPtr Buffer, uint32 Offset, uint32 Size, EPixelFormat Format, bool bIsBuffer)
 
void Invalidate ()
 

Protected Attributes

FMetalDeviceDevice
 
bool bOwnsResource = true
 

Member Typedef Documentation

◆ TStorage

Member Enumeration Documentation

◆ EMetalType

Enumerator
Null 
TextureView 
BufferView 
TextureBufferBacked 

Constructor & Destructor Documentation

◆ FMetalResourceViewBase()

FMetalResourceViewBase::FMetalResourceViewBase ( FMetalDevice InDevice)
inlineprotected

◆ ~FMetalResourceViewBase()

FMetalResourceViewBase::~FMetalResourceViewBase ( )
virtual

Member Function Documentation

◆ GetBufferView()

const FBufferView & FMetalResourceViewBase::GetBufferView ( ) const
inline

◆ GetMetalType()

EMetalType FMetalResourceViewBase::GetMetalType ( ) const
inline

◆ GetTextureBufferBacked()

const FTextureBufferBacked & FMetalResourceViewBase::GetTextureBufferBacked ( ) const
inline

◆ GetTextureView()

const MTLTexturePtr & FMetalResourceViewBase::GetTextureView ( ) const
inline

◆ InitAsBufferView()

void FMetalResourceViewBase::InitAsBufferView ( FMetalBufferPtr  Buffer,
uint32  Offset,
uint32  Size 
)
protected

◆ InitAsTextureBufferBacked()

void FMetalResourceViewBase::InitAsTextureBufferBacked ( MTLTexturePtr  Texture,
FMetalBufferPtr  Buffer,
uint32  Offset,
uint32  Size,
EPixelFormat  Format,
bool  bIsBuffer 
)
protected

◆ InitAsTextureView()

void FMetalResourceViewBase::InitAsTextureView ( MTLTexturePtr  Texture)
protected

◆ Invalidate()

void FMetalResourceViewBase::Invalidate ( )
protected

◆ UpdateView()

virtual void FMetalResourceViewBase::UpdateView ( FMetalRHICommandContext Context,
const bool  bConstructing 
)
pure virtual

Member Data Documentation

◆ bOwnsResource

bool FMetalResourceViewBase::bOwnsResource = true
protected

◆ Device

FMetalDevice& FMetalResourceViewBase::Device
protected

◆ ReferencedResources

TArray<TTuple<MTL::Resource*, MTL::ResourceUsage> > FMetalResourceViewBase::ReferencedResources

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