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

Metal RenderAPI command queue object. More...

#include <CeresEngine/RenderAPI/Metal/MTCommandQueue.hpp>

Inheritance diagram for CeresEngine::MTCommandQueue:
CeresEngine::GPUCommandQueue CeresEngine::MTDeviceObject< MTCommandQueue, GPUCommandQueue > CeresEngine::TDeviceObject< GPUCommandQueueDescriptor > CeresEngine::MTObject< ChildTypeName, ParentType > CeresEngine::GPUDeviceObject CeresEngine::GPUObject

Public Types

using MTLCommandQueueType = void *
 
- Public Types inherited from CeresEngine::TDeviceObject< GPUCommandQueueDescriptor >
using Descriptor = GPUCommandQueueDescriptor
 An type-alias to the descriptor struct type.
 

Public Member Functions

 MTCommandQueue (MTDevicePtr device)
 
 ~MTCommandQueue () final
 
 operator MTLCommandQueueType () const noexcept
 The Metal API command queue object.
 
GPUCommandBufferPtr createCommandBuffer (const GPUCommandBufferDescriptor &descriptor) final
 
Async submit (GPUCommandBuffer &commandBuffer) final
 
void wait () final
 
- 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.
 

Private Attributes

const GPUCommandQueueDescriptor mDescriptor
 The CommandQueue descriptor structure.
 
MTLCommandQueueType mCommandQueue
 The Metal API command queue object.
 
MTCommandBufferPtr mCommandBuffer
 The pending Metal command buffer.
 

Additional Inherited Members

- Static Public Member Functions inherited from CeresEngine::MTObject< 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 RC< ChildTypeNamesafeCast (const RC< ParentType > &ptr)
 Safely 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 ChildTypeNamesafeCast (ParentType *object)
 Casts a object of type ParentType to a object of type ChildTypeName.
 
static const ChildTypeNamesafeCast (const ParentType *object)
 Casts a object of type ParentType to a object of type ChildTypeName.
 
- 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.
 
- 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::MTDeviceObject< MTCommandQueue, GPUCommandQueue >
 MTDeviceObject (MTDevicePtr device)
 Creates a new MTDeviceObject from the given device.
 
- Protected Attributes inherited from CeresEngine::MTDeviceObject< MTCommandQueue, GPUCommandQueue >
MTDevicedeviceMT
 The owning MTDevice instance.
 

Detailed Description

Metal RenderAPI command queue object.

Member Typedef Documentation

◆ MTLCommandQueueType

Constructor & Destructor Documentation

◆ MTCommandQueue()

CeresEngine::MTCommandQueue::MTCommandQueue ( MTDevicePtr  device)
explicit

◆ ~MTCommandQueue()

CeresEngine::MTCommandQueue::~MTCommandQueue ( )
final

Member Function Documentation

◆ createCommandBuffer()

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

◆ operator MTLCommandQueueType()

CeresEngine::MTCommandQueue::operator MTLCommandQueueType ( ) const
inlinenoexcept

The Metal API command queue object.

◆ submit()

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

◆ wait()

void CeresEngine::MTCommandQueue::wait ( )
finalvirtual

Member Data Documentation

◆ mCommandBuffer

MTCommandBufferPtr CeresEngine::MTCommandQueue::mCommandBuffer
private

The pending Metal command buffer.

◆ mCommandQueue

MTLCommandQueueType CeresEngine::MTCommandQueue::mCommandQueue
private

The Metal API command queue object.

◆ mDescriptor

const GPUCommandQueueDescriptor CeresEngine::MTCommandQueue::mDescriptor
private

The CommandQueue descriptor structure.


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