Vulkan/Queue: Fix const and move

Former-commit-id: 503accc10d97b206bb0493b429327f1b739d0953 [formerly f87f3476138fd34f8e3dbaa3683eb5b9b70c60b8]
Former-commit-id: 566e7f0d1140b2437036f324baaededbbd3d198a
This commit is contained in:
Lynix 2016-07-04 18:16:45 +02:00
parent 92a9662137
commit f6b683eae2
2 changed files with 27 additions and 13 deletions

View File

@ -18,6 +18,7 @@ namespace Nz
class Queue
{
public:
inline Queue();
inline Queue(const DeviceHandle& device, VkQueue queue);
inline Queue(const Queue& queue);
inline Queue(Queue&& queue);
@ -26,23 +27,23 @@ namespace Nz
inline const DeviceHandle& GetDevice() const;
inline VkResult GetLastErrorCode() const;
inline bool Present(const VkPresentInfoKHR& presentInfo);
inline bool Present(VkSwapchainKHR swapchain, UInt32 imageIndex, VkSemaphore waitSemaphore = VK_NULL_HANDLE);
inline bool Present(const VkPresentInfoKHR& presentInfo) const;
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(UInt32 submitCount, const VkSubmitInfo* submits, 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) const;
inline bool WaitIdle();
inline bool WaitIdle() const;
Queue& operator=(const Queue& queue) = delete;
Queue& operator=(Queue&&) = delete;
inline Queue& operator=(Queue&&);
inline operator VkQueue();
protected:
DeviceHandle m_device;
VkQueue m_handle;
VkResult m_lastErrorCode;
mutable VkResult m_lastErrorCode;
};
}
}

View File

@ -11,6 +11,11 @@ namespace Nz
{
namespace Vk
{
inline Queue::Queue() :
Queue(DeviceHandle(), VK_NULL_HANDLE)
{
}
inline Queue::Queue(const DeviceHandle& device, VkQueue queue) :
m_device(device),
m_handle(queue),
@ -42,7 +47,7 @@ namespace Nz
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);
if (m_lastErrorCode != VkResult::VK_SUCCESS)
@ -51,7 +56,7 @@ namespace Nz
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 =
{
@ -68,12 +73,12 @@ namespace Nz
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);
}
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);
if (m_lastErrorCode != VkResult::VK_SUCCESS)
@ -82,7 +87,7 @@ namespace Nz
return true;
}
inline bool Queue::WaitIdle()
inline bool Queue::WaitIdle() const
{
m_lastErrorCode = m_device->vkQueueWaitIdle(m_handle);
if (m_lastErrorCode != VkResult::VK_SUCCESS)
@ -91,11 +96,19 @@ namespace Nz
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()
{
return m_handle;
}
}
}