Vulkan/Queue: Fix const and move
Former-commit-id: 503accc10d97b206bb0493b429327f1b739d0953 [formerly f87f3476138fd34f8e3dbaa3683eb5b9b70c60b8] Former-commit-id: 566e7f0d1140b2437036f324baaededbbd3d198a
This commit is contained in:
parent
92a9662137
commit
f6b683eae2
|
|
@ -18,6 +18,7 @@ namespace Nz
|
||||||
class Queue
|
class Queue
|
||||||
{
|
{
|
||||||
public:
|
public:
|
||||||
|
inline Queue();
|
||||||
inline Queue(const DeviceHandle& device, VkQueue queue);
|
inline Queue(const DeviceHandle& device, VkQueue queue);
|
||||||
inline Queue(const Queue& queue);
|
inline Queue(const Queue& queue);
|
||||||
inline Queue(Queue&& queue);
|
inline Queue(Queue&& queue);
|
||||||
|
|
@ -26,23 +27,23 @@ namespace Nz
|
||||||
inline const DeviceHandle& GetDevice() const;
|
inline const DeviceHandle& GetDevice() const;
|
||||||
inline VkResult GetLastErrorCode() const;
|
inline VkResult GetLastErrorCode() const;
|
||||||
|
|
||||||
inline bool Present(const VkPresentInfoKHR& presentInfo);
|
inline bool Present(const VkPresentInfoKHR& presentInfo) const;
|
||||||
inline bool Present(VkSwapchainKHR swapchain, UInt32 imageIndex, VkSemaphore waitSemaphore = VK_NULL_HANDLE);
|
inline bool Present(VkSwapchainKHR swapchain, UInt32 imageIndex, VkSemaphore waitSemaphore = VK_NULL_HANDLE) const;
|
||||||
|
|
||||||
inline bool Submit(const VkSubmitInfo& submit, VkFence fence = VK_NULL_HANDLE);
|
inline bool Submit(const VkSubmitInfo& submit, VkFence fence = VK_NULL_HANDLE) const;
|
||||||
inline bool Submit(UInt32 submitCount, const VkSubmitInfo* submits, VkFence fence = VK_NULL_HANDLE);
|
inline bool Submit(UInt32 submitCount, const VkSubmitInfo* submits, VkFence fence = VK_NULL_HANDLE) const;
|
||||||
|
|
||||||
inline bool WaitIdle();
|
inline bool WaitIdle() const;
|
||||||
|
|
||||||
Queue& operator=(const Queue& queue) = delete;
|
Queue& operator=(const Queue& queue) = delete;
|
||||||
Queue& operator=(Queue&&) = delete;
|
inline Queue& operator=(Queue&&);
|
||||||
|
|
||||||
inline operator VkQueue();
|
inline operator VkQueue();
|
||||||
|
|
||||||
protected:
|
protected:
|
||||||
DeviceHandle m_device;
|
DeviceHandle m_device;
|
||||||
VkQueue m_handle;
|
VkQueue m_handle;
|
||||||
VkResult m_lastErrorCode;
|
mutable VkResult m_lastErrorCode;
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -11,6 +11,11 @@ namespace Nz
|
||||||
{
|
{
|
||||||
namespace Vk
|
namespace Vk
|
||||||
{
|
{
|
||||||
|
inline Queue::Queue() :
|
||||||
|
Queue(DeviceHandle(), VK_NULL_HANDLE)
|
||||||
|
{
|
||||||
|
}
|
||||||
|
|
||||||
inline Queue::Queue(const DeviceHandle& device, VkQueue queue) :
|
inline Queue::Queue(const DeviceHandle& device, VkQueue queue) :
|
||||||
m_device(device),
|
m_device(device),
|
||||||
m_handle(queue),
|
m_handle(queue),
|
||||||
|
|
@ -42,7 +47,7 @@ namespace Nz
|
||||||
return m_lastErrorCode;
|
return m_lastErrorCode;
|
||||||
}
|
}
|
||||||
|
|
||||||
inline bool Queue::Present(const VkPresentInfoKHR& presentInfo)
|
inline bool Queue::Present(const VkPresentInfoKHR& presentInfo) const
|
||||||
{
|
{
|
||||||
m_lastErrorCode = m_device->vkQueuePresentKHR(m_handle, &presentInfo);
|
m_lastErrorCode = m_device->vkQueuePresentKHR(m_handle, &presentInfo);
|
||||||
if (m_lastErrorCode != VkResult::VK_SUCCESS)
|
if (m_lastErrorCode != VkResult::VK_SUCCESS)
|
||||||
|
|
@ -51,7 +56,7 @@ namespace Nz
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
|
||||||
inline bool Queue::Present(VkSwapchainKHR swapchain, UInt32 imageIndex, VkSemaphore waitSemaphore)
|
inline bool Queue::Present(VkSwapchainKHR swapchain, UInt32 imageIndex, VkSemaphore waitSemaphore) const
|
||||||
{
|
{
|
||||||
VkPresentInfoKHR presentInfo =
|
VkPresentInfoKHR presentInfo =
|
||||||
{
|
{
|
||||||
|
|
@ -68,12 +73,12 @@ namespace Nz
|
||||||
return Present(presentInfo);
|
return Present(presentInfo);
|
||||||
}
|
}
|
||||||
|
|
||||||
inline bool Queue::Submit(const VkSubmitInfo& submit, VkFence fence)
|
inline bool Queue::Submit(const VkSubmitInfo& submit, VkFence fence) const
|
||||||
{
|
{
|
||||||
return Submit(1, &submit, fence);
|
return Submit(1, &submit, fence);
|
||||||
}
|
}
|
||||||
|
|
||||||
inline bool Queue::Submit(UInt32 submitCount, const VkSubmitInfo* submits, VkFence fence)
|
inline bool Queue::Submit(UInt32 submitCount, const VkSubmitInfo* submits, VkFence fence) const
|
||||||
{
|
{
|
||||||
m_lastErrorCode = m_device->vkQueueSubmit(m_handle, submitCount, submits, fence);
|
m_lastErrorCode = m_device->vkQueueSubmit(m_handle, submitCount, submits, fence);
|
||||||
if (m_lastErrorCode != VkResult::VK_SUCCESS)
|
if (m_lastErrorCode != VkResult::VK_SUCCESS)
|
||||||
|
|
@ -82,7 +87,7 @@ namespace Nz
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
|
||||||
inline bool Queue::WaitIdle()
|
inline bool Queue::WaitIdle() const
|
||||||
{
|
{
|
||||||
m_lastErrorCode = m_device->vkQueueWaitIdle(m_handle);
|
m_lastErrorCode = m_device->vkQueueWaitIdle(m_handle);
|
||||||
if (m_lastErrorCode != VkResult::VK_SUCCESS)
|
if (m_lastErrorCode != VkResult::VK_SUCCESS)
|
||||||
|
|
@ -91,11 +96,19 @@ namespace Nz
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
inline Queue& Queue::operator=(Queue&& queue)
|
||||||
|
{
|
||||||
|
m_device = std::move(queue.m_device);
|
||||||
|
m_handle = queue.m_handle;
|
||||||
|
m_lastErrorCode = queue.m_lastErrorCode;
|
||||||
|
|
||||||
|
return *this;
|
||||||
|
}
|
||||||
|
|
||||||
inline Queue::operator VkQueue()
|
inline Queue::operator VkQueue()
|
||||||
{
|
{
|
||||||
return m_handle;
|
return m_handle;
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue