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

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

Inheritance diagram for CeresEngine::VKCommandQueue:
CeresEngine::GPUCommandQueue CeresEngine::VKDeviceObject< VKCommandQueue, GPUCommandQueue > CeresEngine::TDeviceObject< GPUCommandQueueDescriptor > CeresEngine::VKObject< ChildTypeName, ParentType > CeresEngine::VKDeviceObjectBase CeresEngine::GPUDeviceObject CeresEngine::VKObjectBase CeresEngine::GPUObject

Public Member Functions

 VKCommandQueue (VKDevice &device, UInt32 familyIndex, VkQueue queue)
 
 ~VKCommandQueue () final
 
 operator VkQueue () const noexcept
 The Vulkan queue object.
 
GPUCommandBufferPtr createCommandBuffer (const GPUCommandBufferDescriptor &descriptor) final
 
Async submit (GPUCommandBuffer &commandBuffer) final
 
void wait () final
 
UInt32 getFamilyIndex () const
 The Vulkan queue getFamilyIndex index.
 
- Public Member Functions inherited from CeresEngine::GPUCommandQueue
 GPUCommandQueue (const GPUCommandQueue &)=delete
 Deleted copy constructor.
 
GPUCommandQueueoperator= (const GPUCommandQueue &)=delete
 
 GPUCommandQueue (GPUCommandQueue &&)=delete
 Deleted move constructor.
 
GPUCommandQueueoperator= (GPUCommandQueue &&)=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< GPUCommandQueueDescriptor >
 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.
 

Public Attributes

Mutex mutex
 
- Public Attributes inherited from CeresEngine::TDeviceObject< GPUCommandQueueDescriptor >
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.
 

Private Attributes

const GPUCommandQueueDescriptor mDescriptorVK
 A structure that describes the command queue and it's properties.
 
VkQueue mQueue
 The Vulkan queue object.
 
UInt32 mFamilyIndex = 0
 The Vulkan queue getFamilyIndex index.
 

Friends

class VKCommandBuffer
 

Additional Inherited Members

- Public Types inherited from CeresEngine::TDeviceObject< GPUCommandQueueDescriptor >
using Descriptor = GPUCommandQueueDescriptor
 An type-alias to the descriptor struct type.
 
- 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
 
- Protected Member Functions inherited from CeresEngine::GPUObject
virtual void destroy () noexcept
 A internal method called by the system when the object reference count reaches zero.
 
- Protected Member Functions inherited from CeresEngine::VKDeviceObject< VKCommandQueue, GPUCommandQueue >
 VKDeviceObject (VKDevice &device) noexcept
 Creates a new VKDeviceObject from the given device.
 

Constructor & Destructor Documentation

◆ VKCommandQueue()

CeresEngine::VKCommandQueue::VKCommandQueue ( VKDevice device,
UInt32  familyIndex,
VkQueue  queue 
)

◆ ~VKCommandQueue()

CeresEngine::VKCommandQueue::~VKCommandQueue ( )
final

Member Function Documentation

◆ createCommandBuffer()

GPUCommandBufferPtr CeresEngine::VKCommandQueue::createCommandBuffer ( const GPUCommandBufferDescriptor descriptor)
finalvirtual

◆ getFamilyIndex()

UInt32 CeresEngine::VKCommandQueue::getFamilyIndex ( ) const
inline

The Vulkan queue getFamilyIndex index.

◆ operator VkQueue()

CeresEngine::VKCommandQueue::operator VkQueue ( ) const
inlinenoexcept

The Vulkan queue object.

◆ submit()

Async CeresEngine::VKCommandQueue::submit ( GPUCommandBuffer commandBuffer)
finalvirtual

◆ wait()

void CeresEngine::VKCommandQueue::wait ( )
finalvirtual

Friends And Related Symbol Documentation

◆ VKCommandBuffer

Member Data Documentation

◆ mDescriptorVK

const GPUCommandQueueDescriptor CeresEngine::VKCommandQueue::mDescriptorVK
private

A structure that describes the command queue and it's properties.

◆ mFamilyIndex

UInt32 CeresEngine::VKCommandQueue::mFamilyIndex = 0
private

The Vulkan queue getFamilyIndex index.

◆ mQueue

VkQueue CeresEngine::VKCommandQueue::mQueue
private

The Vulkan queue object.

◆ mutex

Mutex CeresEngine::VKCommandQueue::mutex
mutable

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