#include <CommandQueue.h>
Inherits AZ::RHI::DeviceObject.
Inherited by AZ::DX12::CommandQueue, AZ::Metal::CommandQueue, AZ::Null::CommandQueue, and AZ::Vulkan::CommandQueue.
Public Types | |
using | Command = AZStd::function< void(void *commandQueue)> |
Public Member Functions | |
AZ_CLASS_ALLOCATOR (CommandQueue, AZ::SystemAllocator) | |
ResultCode | Init (Device &device, const CommandQueueDescriptor &descriptor) |
void | Shutdown () |
void | QueueCommand (Command command) |
void | FlushCommands () |
RHI::HardwareQueueClass | GetHardwareQueueClass () const |
const CommandQueueDescriptor & | GetDescriptor () 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. | |
Device & | GetDevice () 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. | |
Protected Member Functions | |
virtual void | ExecuteWork (const ExecuteWorkRequest &request)=0 |
virtual void | WaitForIdle ()=0 |
virtual void * | GetNativeQueue ()=0 |
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 |
Additional Inherited Members | |
Protected Attributes inherited from AZ::RHI::Object | |
AZStd::atomic_int | m_useCount = 0 |
Base class that provides the backend API the ability to add commands to a queue which are executed on a separate thread
|
virtual |
Shuts down the object. Derived classes can make this public if it fits with their lifecycle model (i.e. if they use an explicit Init / Shutdown). By default, it is private in order to maintain consistency with a simpler RAII lifecycle.
Reimplemented from AZ::RHI::Object.