33#include "VulkanDefines.h"
34#include "Base/Headers/Pointer.hpp"
35#include "Base/Headers/BaseFunctions.hpp"
36#include "Base/Headers/RWLock.h"
38struct VkCommandPool_T;
39struct VkCommandBuffer_T;
Provides a modifiable pointer that has shared ownership of a dynamically allocated object.
The connection between the NDEVR API and the Vulkan library.
A queue of commands or actions to be executed in order by the Vulkan engine.
VkCommandPool_T * command_pool
The native Vulkan command pool handle.
VkQueue_T * queue
The native Vulkan queue handle.
uint04 lastThread() const
Returns the ID of the thread that last used this queue.
uint04 m_current_thread
The thread currently using this queue.
~VulkanQueueCore()
Destructor.
uint04 currentThread() const
Returns the ID of the thread currently using this queue.
void clearLastThread()
Clears the last thread record.
void setThread(uint04 thread)
Sets the current thread using this queue.
DynamicPointer< VulkanInstance > m_instance
The Vulkan instance this queue belongs to.
VulkanQueueCore(const DynamicPointer< VulkanInstance > &instance, VkQueue_T *queue, VkCommandPool_T *command_pool)
Constructs a queue core wrapping native Vulkan queue and command pool handles.
uint04 m_last_thread
The thread that last used this queue.
VulkanQueueCore * m_core
The underlying queue core.
VkCommandPool_T * command_pool()
Returns the native Vulkan command pool handle.
VulkanQueue(VulkanQueueCore *core)
Constructs a thread-safe queue wrapper, acquiring a lock on the core.
WLock m_queue_lock
Write lock held for the duration of this object's lifetime.
VkQueue_T * queue()
Returns the native Vulkan queue handle.
~VulkanQueue()
Destructor.
Used to lock a particular variable for writing.
The primary namespace for the NDEVR SDK.
uint32_t uint04
-Defines an alias representing a 4 byte, unsigned integer -Can represent exact integer values 0 throu...