CeresEngine 0.2.0
A game development framework
Loading...
Searching...
No Matches
CeresEngine::GPUCommandQueue Class Referenceabstract

#include <CeresEngine/RenderAPI/GPUCommandQueue.hpp>

Inheritance diagram for CeresEngine::GPUCommandQueue:
CeresEngine::TDeviceObject< GPUCommandQueueDescriptor > CeresEngine::GPUDeviceObject CeresEngine::GPUObject CeresEngine::GLCommandQueue CeresEngine::MKCommandQueue CeresEngine::MTCommandQueue CeresEngine::NLCommandQueue CeresEngine::VKCommandQueue CeresEngine::WGCommandQueue

Public Member Functions

 GPUCommandQueue (const GPUCommandQueue &)=delete
 Deleted copy constructor.
 
GPUCommandQueueoperator= (const GPUCommandQueue &)=delete
 
 GPUCommandQueue (GPUCommandQueue &&)=delete
 Deleted move constructor.
 
GPUCommandQueueoperator= (GPUCommandQueue &&)=delete
 
virtual GPUCommandBufferPtr createCommandBuffer (const GPUCommandBufferDescriptor &descriptor)=0
 Creates a new CommandBuffer object.
 
virtual Async submit (GPUCommandBuffer &commandBuffer)=0
 Submits a command buffer to be executed on the queue.
 
virtual void wait ()=0
 Blocks the CPU until the GPU has finished executing the submitted command buffer.
 
 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.
 

Additional Inherited Members

- Public Types inherited from CeresEngine::TDeviceObject< GPUCommandQueueDescriptor >
using Descriptor = GPUCommandQueueDescriptor
 An type-alias to the descriptor struct type.
 
- 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.
 

Constructor & Destructor Documentation

◆ GPUCommandQueue() [1/2]

CeresEngine::GPUCommandQueue::GPUCommandQueue ( const GPUCommandQueue )
delete

Deleted copy constructor.

◆ GPUCommandQueue() [2/2]

CeresEngine::GPUCommandQueue::GPUCommandQueue ( GPUCommandQueue &&  )
delete

Deleted move constructor.

Member Function Documentation

◆ createCommandBuffer()

virtual GPUCommandBufferPtr CeresEngine::GPUCommandQueue::createCommandBuffer ( const GPUCommandBufferDescriptor descriptor)
pure virtual

Creates a new CommandBuffer object.

Parameters
descriptorA structure that describes the object to be created.
Returns
The created CommandBuffer object.

Implemented in CeresEngine::MTCommandQueue, CeresEngine::MKCommandQueue, CeresEngine::NLCommandQueue, CeresEngine::GLCommandQueue, CeresEngine::VKCommandQueue, and CeresEngine::WGCommandQueue.

◆ operator=() [1/2]

GPUCommandQueue & CeresEngine::GPUCommandQueue::operator= ( const GPUCommandQueue )
delete

◆ operator=() [2/2]

GPUCommandQueue & CeresEngine::GPUCommandQueue::operator= ( GPUCommandQueue &&  )
delete

◆ submit()

virtual Async CeresEngine::GPUCommandQueue::submit ( GPUCommandBuffer commandBuffer)
pure virtual

Submits a command buffer to be executed on the queue.

Parameters
commandBufferThe command buffer to be executed.
Returns
An async object that will be marked as complete once the command buffer execution is complete.

Implemented in CeresEngine::MTCommandQueue, CeresEngine::MKCommandQueue, CeresEngine::NLCommandQueue, CeresEngine::GLCommandQueue, CeresEngine::VKCommandQueue, and CeresEngine::WGCommandQueue.

◆ TDeviceObject() [1/3]

Inherited constructors.

◆ TDeviceObject() [2/3]

CeresEngine::TDeviceObject< TDescriptor, TParent >::TDeviceObject ( GPUDevice device,
const Descriptor descriptor 
)
inlineexplicit

Inherited constructors.

◆ TDeviceObject() [3/3]

CeresEngine::TDeviceObject< TDescriptor, TParent >::TDeviceObject ( TDeviceObject &&  )
delete

Inherited constructors.

◆ wait()

virtual void CeresEngine::GPUCommandQueue::wait ( )
pure virtual

Blocks the CPU until the GPU has finished executing the submitted command buffer.

Implemented in CeresEngine::MTCommandQueue, CeresEngine::MKCommandQueue, CeresEngine::NLCommandQueue, CeresEngine::GLCommandQueue, CeresEngine::VKCommandQueue, and CeresEngine::WGCommandQueue.


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