Open 3D Engine Atom Gem API Reference 23.10.0
O3DE is an open-source, fully-featured, high-fidelity, modular 3D engine for building games and simulations, available to every industry.
AZ::Metal::NullDescriptorManager Class Reference

#include <NullDescriptorManager.h>

Inherits AZ::RHI::DeviceObject.

Public Types

enum class  ImageTypes : uint32_t {
  ReadOnly1D , ReadOnly2D , ReadOnlyCube , ReadOnly3D ,
  TextureBuffer , MultiSampleReadOnly2D , Count
}
 

Public Member Functions

 AZ_DISABLE_COPY_MOVE (NullDescriptorManager)
 
void Init (Device &device)
 Initialize the different image and buffer null descriptors.
 
void Shutdown () override
 Release all resources.
 
const MemoryViewGetNullImage (RHI::ShaderInputImageType imageType, bool isTextureBuffer=false)
 
const MemoryViewGetNullBuffer ()
 
const MemoryViewGetNullImageBuffer ()
 
id< MTLSamplerState > GetNullSampler () const
 
id< MTLHeap > GetNullDescriptorHeap () const
 
- Public Member Functions inherited from AZ::RHI::DeviceObject
 AZ_RTTI (DeviceObject, "{17D34F71-944C-4AF5-9823-627474C4C0A6}", Object)
 
bool IsInitialized () const
 Returns whether the device object is initialized.
 
DeviceGetDevice () const
 
- Public Member Functions inherited from AZ::RHI::Object
 AZ_RTTI (Object, "{E43378F1-2331-4173-94B8-990ED20E6003}")
 
void SetName (const Name &name)
 Sets the name of the object.
 
const Name & GetName () const
 Returns the name set on the object by SetName.
 
uint32_t use_count ()
 Returns the current use count of the object.
 

Additional Inherited Members

- Protected Member Functions inherited from AZ::RHI::DeviceObject
void Init (Device &device)
 The derived class should call this method to assign the device.
 
void Shutdown () override
 Clears the current bound device to null.
 
- Protected Member Functions inherited from AZ::RHI::Object
void add_ref () const
 
void release () const
 
- Protected Attributes inherited from AZ::RHI::Object
AZStd::atomic_int m_useCount = 0
 

Detailed Description

The NullDescriptorManager creates dummy resources referenced in the shader. These include images, buffers and samplers. It is needed because the shaders may sample/read from a resource which is not bound by the rendering pipeline (for example if a FeatureProcessor is disabled). In those cases we bind dummy resources provided by htis class

Member Function Documentation

◆ Shutdown()

void AZ::Metal::NullDescriptorManager::Shutdown ( )
overridevirtual

Release all resources.

Reimplemented from AZ::RHI::DeviceObject.


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