CeresEngine 0.2.0
A game development framework
Loading...
Searching...
No Matches
CeresEngine::VKPipelineLayout Class Referencefinal

#include <CeresEngine/RenderAPI/Vulkan/VKPipelineLayout.hpp>

Inheritance diagram for CeresEngine::VKPipelineLayout:
CeresEngine::GPUPipelineLayout CeresEngine::VKDeviceObject< VKPipelineLayout, GPUPipelineLayout > CeresEngine::TDeviceObject< GPUPipelineLayoutDescriptor > CeresEngine::VKObject< ChildTypeName, ParentType > CeresEngine::VKDeviceObjectBase CeresEngine::GPUDeviceObject CeresEngine::VKObjectBase CeresEngine::GPUObject

Public Types

using Allocator = VKObjectAllocator
 An allocator type used to allocate new VKPipelineLayout instances from a memory pool.
 
- Public Types inherited from CeresEngine::TDeviceObject< GPUPipelineLayoutDescriptor >
using Descriptor = GPUPipelineLayoutDescriptor
 An type-alias to the descriptor struct type.
 

Public Member Functions

 VKPipelineLayout (VKDevice &device, const GPUPipelineLayoutDescriptor &descriptor)
 
 ~VKPipelineLayout () final
 
void destroy () noexcept final
 
 operator VkPipelineLayout () const noexcept
 
GPUResourceSetPtr createResourceSet (const GPUResourceSetDescriptor &descriptor, UInt32 setIndex=0) final
 
const Vector< VkDescriptorSetLayout, VKAllocator > & getDescriptorSetLayouts () const
 
VkDescriptorPool getDescriptorPool () const
 
const Vector< VKLayoutBinding > & getBindings (const UInt32 set) const
 
- Public Member Functions inherited from CeresEngine::GPUPipelineLayout
 GPUPipelineLayout (const GPUPipelineLayout &)=delete
 Deleted copy constructor.
 
GPUPipelineLayoutoperator= (const GPUPipelineLayout &)=delete
 
 GPUPipelineLayout (GPUPipelineLayout &&)=delete
 Deleted move constructor.
 
GPUPipelineLayoutoperator= (GPUPipelineLayout &&)=delete
 
 TDeviceObject (GPUDevice &device, const Descriptor &descriptor)
 Inherited constructors.
 
 TDeviceObject (const TDeviceObject &)=delete
 Inherited constructors.
 
 TDeviceObject (TDeviceObject &&)=delete
 Inherited constructors.
 
- Public Member Functions inherited from CeresEngine::TDeviceObject< GPUPipelineLayoutDescriptor >
 TDeviceObject (GPUDevice &device, const Descriptor &descriptor)
 Initializes a new RenderAPI device object instance.
 
 TDeviceObject (const TDeviceObject &)=delete
 
 TDeviceObject (TDeviceObject &&)=delete
 
 ~TDeviceObject () override=default
 
TDeviceObjectoperator= (const TDeviceObject &)=delete
 
TDeviceObjectoperator= (TDeviceObject &&)=delete
 
- Public Member Functions inherited from CeresEngine::GPUDeviceObject
 GPUDeviceObject (GPUDevice &device)
 
 ~GPUDeviceObject () override
 
- Public Member Functions inherited from CeresEngine::GPUObject
 GPUObject ()=default
 
virtual ~GPUObject ()=default
 
 GPUObject (const GPUObject &)=delete
 
GPUObjectoperator= (const GPUObject &)=delete
 
 GPUObject (GPUObject &&)=delete
 
GPUObjectoperator= (GPUObject &&)=delete
 
void retain () noexcept
 Retains the object by increment it's reference count by one.
 
bool release () noexcept
 Releases the object by decrementing it's reference count by one.
 
- Public Member Functions inherited from CeresEngine::VKDeviceObjectBase
 VKDeviceObjectBase (VKDevice &device) noexcept
 Creates a new VKDeviceObjectBase from the given device.
 
 ~VKDeviceObjectBase () noexcept
 Destroys the VKDeviceObjectBase.
 

Static Public Member Functions

static AllocatorgetAllocator () noexcept
 Returns the allocator for VKPipelineLayout.
 
static voidoperator new (size_t size) noexcept
 Allocates memory for a new instance of VKPipelineLayout.
 
static void operator delete (void *p, std::size_t size) noexcept
 Deletes memory for an instance of VKPipelineLayout.
 
- Static Public Member Functions inherited from CeresEngine::VKObject< ChildTypeName, ParentType >
static RC< ChildTypeNamecast (const RC< ParentType > &ptr)
 Casts a RC containing a ParentType pointer to a pointer to a pointer to a ChildTypeName.
 
static ChildTypeNamecast (ParentType &object)
 Casts a object of type ParentType to a object of type ChildTypeName.
 
static const ChildTypeNamecast (const ParentType &object)
 Casts a object of type ParentType to a object of type ChildTypeName.
 
static ChildTypeNamecast (ParentType *object)
 Casts a object of type ParentType to a object of type ChildTypeName.
 
static const ChildTypeNamecast (const ParentType *object)
 Casts a object of type ParentType to a object of type ChildTypeName.
 
- Static Public Member Functions inherited from CeresEngine::VKObjectBase
static voidoperator new (size_t size) noexcept
 
static void operator delete (void *p, std::size_t sz) noexcept
 

Private Attributes

const GPUPipelineLayoutDescriptor descriptorVK
 A structure that describes the pipeline layout and it's properties.
 
VkPipelineLayout mPipelineLayout = VK_NULL_HANDLE
 The Vulkan pipeline layout object.
 
Vector< VkDescriptorSetLayout, VKAllocatormDescriptorSetLayouts
 The Vulkan ResourceSet layout object.
 
VkDescriptorPool mDescriptorPool
 The Vulkan descriptor pool object.
 
Map< UInt32, Vector< VKLayoutBinding >, std::less< UInt32 >, VKAllocatormBindings
 A vector of layout bindings.
 

Additional Inherited Members

- Public Attributes inherited from CeresEngine::TDeviceObject< GPUPipelineLayoutDescriptor >
const Descriptordescriptor
 A structure that describes the object and it's properties.
 
- Public Attributes inherited from CeresEngine::GPUDeviceObject
GPUDevicedevice
 The owning device this object was created from.
 
- Public Attributes inherited from CeresEngine::VKDeviceObjectBase
VKDevicedeviceVK
 The owning VKDevice instance.
 
- Protected Member Functions inherited from CeresEngine::VKDeviceObject< VKPipelineLayout, GPUPipelineLayout >
 VKDeviceObject (VKDevice &device) noexcept
 Creates a new VKDeviceObject from the given device.
 

Member Typedef Documentation

◆ Allocator

An allocator type used to allocate new VKPipelineLayout instances from a memory pool.

Constructor & Destructor Documentation

◆ VKPipelineLayout()

CeresEngine::VKPipelineLayout::VKPipelineLayout ( VKDevice device,
const GPUPipelineLayoutDescriptor descriptor 
)

◆ ~VKPipelineLayout()

CeresEngine::VKPipelineLayout::~VKPipelineLayout ( )
final

Member Function Documentation

◆ createResourceSet()

GPUResourceSetPtr CeresEngine::VKPipelineLayout::createResourceSet ( const GPUResourceSetDescriptor descriptor,
UInt32  setIndex = 0 
)
finalvirtual

◆ destroy()

void CeresEngine::VKPipelineLayout::destroy ( )
finalvirtualnoexcept

Reimplemented from CeresEngine::GPUObject.

◆ getAllocator()

static Allocator & CeresEngine::VKPipelineLayout::getAllocator ( )
staticnoexcept

Returns the allocator for VKPipelineLayout.

◆ getBindings()

const Vector< VKLayoutBinding > & CeresEngine::VKPipelineLayout::getBindings ( const UInt32  set) const
inline
Returns
A vector of layout bindings

◆ getDescriptorPool()

VkDescriptorPool CeresEngine::VKPipelineLayout::getDescriptorPool ( ) const
inline
Returns
The Vulkan descriptor pool object

◆ getDescriptorSetLayouts()

const Vector< VkDescriptorSetLayout, VKAllocator > & CeresEngine::VKPipelineLayout::getDescriptorSetLayouts ( ) const
inline
Returns
The Vulkan ResourceSet layout object

◆ operator delete()

static void CeresEngine::VKPipelineLayout::operator delete ( void p,
std::size_t  size 
)
staticnoexcept

Deletes memory for an instance of VKPipelineLayout.

◆ operator new()

static void * CeresEngine::VKPipelineLayout::operator new ( size_t  size)
staticnoexcept

Allocates memory for a new instance of VKPipelineLayout.

◆ operator VkPipelineLayout()

CeresEngine::VKPipelineLayout::operator VkPipelineLayout ( ) const
inlinenoexcept

Member Data Documentation

◆ descriptorVK

const GPUPipelineLayoutDescriptor CeresEngine::VKPipelineLayout::descriptorVK
private

A structure that describes the pipeline layout and it's properties.

◆ mBindings

Map<UInt32, Vector<VKLayoutBinding>, std::less<UInt32>, VKAllocator> CeresEngine::VKPipelineLayout::mBindings
private

A vector of layout bindings.

◆ mDescriptorPool

VkDescriptorPool CeresEngine::VKPipelineLayout::mDescriptorPool
private

The Vulkan descriptor pool object.

◆ mDescriptorSetLayouts

Vector<VkDescriptorSetLayout, VKAllocator> CeresEngine::VKPipelineLayout::mDescriptorSetLayouts
private

The Vulkan ResourceSet layout object.

◆ mPipelineLayout

VkPipelineLayout CeresEngine::VKPipelineLayout::mPipelineLayout = VK_NULL_HANDLE
private

The Vulkan pipeline layout object.


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