From f6b683eae20c312996ce983426badfb6b0e6b52e Mon Sep 17 00:00:00 2001 From: Lynix Date: Mon, 4 Jul 2016 18:16:45 +0200 Subject: [PATCH] Vulkan/Queue: Fix const and move Former-commit-id: 503accc10d97b206bb0493b429327f1b739d0953 [formerly f87f3476138fd34f8e3dbaa3683eb5b9b70c60b8] Former-commit-id: 566e7f0d1140b2437036f324baaededbbd3d198a --- include/Nazara/Vulkan/VkQueue.hpp | 15 ++++++++------- include/Nazara/Vulkan/VkQueue.inl | 25 +++++++++++++++++++------ 2 files changed, 27 insertions(+), 13 deletions(-) diff --git a/include/Nazara/Vulkan/VkQueue.hpp b/include/Nazara/Vulkan/VkQueue.hpp index b6253bc32..e4223d30d 100644 --- a/include/Nazara/Vulkan/VkQueue.hpp +++ b/include/Nazara/Vulkan/VkQueue.hpp @@ -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; }; } } diff --git a/include/Nazara/Vulkan/VkQueue.inl b/include/Nazara/Vulkan/VkQueue.inl index 89273958f..0dd156312 100644 --- a/include/Nazara/Vulkan/VkQueue.inl +++ b/include/Nazara/Vulkan/VkQueue.inl @@ -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; } - } }