diff --git a/include/Nazara/Vulkan/VkCommandBuffer.hpp b/include/Nazara/Vulkan/VkCommandBuffer.hpp index 2dea341dd..67ec4f558 100644 --- a/include/Nazara/Vulkan/VkCommandBuffer.hpp +++ b/include/Nazara/Vulkan/VkCommandBuffer.hpp @@ -15,13 +15,14 @@ namespace Nz { namespace Vk { - class NAZARA_VULKAN_API CommandBuffer + class CommandBuffer { friend CommandPool; public: + inline CommandBuffer(); CommandBuffer(const CommandBuffer&) = delete; - CommandBuffer(CommandBuffer&& commandBuffer); + inline CommandBuffer(CommandBuffer&& commandBuffer); inline ~CommandBuffer(); inline bool Begin(const VkCommandBufferBeginInfo& info); @@ -37,9 +38,9 @@ namespace Nz inline VkResult GetLastErrorCode() const; CommandBuffer& operator=(const CommandBuffer&) = delete; - CommandBuffer& operator=(CommandBuffer&&) = delete; + CommandBuffer& operator=(CommandBuffer&& commandBuffer); - inline operator VkCommandBuffer(); + inline operator VkCommandBuffer() const; private: inline CommandBuffer(CommandPool& pool, VkCommandBuffer handle); diff --git a/include/Nazara/Vulkan/VkCommandBuffer.inl b/include/Nazara/Vulkan/VkCommandBuffer.inl index c1d0ec9bc..f3719b135 100644 --- a/include/Nazara/Vulkan/VkCommandBuffer.inl +++ b/include/Nazara/Vulkan/VkCommandBuffer.inl @@ -11,6 +11,12 @@ namespace Nz { namespace Vk { + inline CommandBuffer::CommandBuffer() : + m_pool(), + m_handle(VK_NULL_HANDLE) + { + } + inline CommandBuffer::CommandBuffer(CommandPool& pool, VkCommandBuffer handle) : m_pool(&pool), m_handle(handle) @@ -140,7 +146,20 @@ namespace Nz return m_lastErrorCode; } - inline CommandBuffer::operator VkCommandBuffer() + inline CommandBuffer& CommandBuffer::operator=(CommandBuffer&& commandBuffer) + { + m_allocator = commandBuffer.m_allocator; + m_handle = commandBuffer.m_handle; + m_lastErrorCode = commandBuffer.m_lastErrorCode; + m_pool = std::move(commandBuffer.m_pool); + m_handle = commandBuffer.m_handle; + + commandBuffer.m_handle = VK_NULL_HANDLE; + + return *this; + } + + inline CommandBuffer::operator VkCommandBuffer() const { return m_handle; } diff --git a/include/Nazara/Vulkan/VkSemaphore.hpp b/include/Nazara/Vulkan/VkSemaphore.hpp index 9fdd7d191..230a00983 100644 --- a/include/Nazara/Vulkan/VkSemaphore.hpp +++ b/include/Nazara/Vulkan/VkSemaphore.hpp @@ -31,8 +31,8 @@ namespace Nz Semaphore& operator=(Semaphore&&) = delete; private: - static VkResult CreateHelper(const DeviceHandle& device, const VkSemaphoreCreateInfo* createInfo, const VkAllocationCallbacks* allocator, VkSemaphore* handle); - static void DestroyHelper(const DeviceHandle& device, VkSemaphore handle, const VkAllocationCallbacks* allocator); + static inline VkResult CreateHelper(const DeviceHandle& device, const VkSemaphoreCreateInfo* createInfo, const VkAllocationCallbacks* allocator, VkSemaphore* handle); + static inline void DestroyHelper(const DeviceHandle& device, VkSemaphore handle, const VkAllocationCallbacks* allocator); }; } } diff --git a/include/Nazara/Vulkan/VkSemaphore.inl b/include/Nazara/Vulkan/VkSemaphore.inl index b423fd4c0..4744a12a9 100644 --- a/include/Nazara/Vulkan/VkSemaphore.inl +++ b/include/Nazara/Vulkan/VkSemaphore.inl @@ -21,12 +21,12 @@ namespace Nz return Create(device, createInfo, allocator); } - VkResult Semaphore::CreateHelper(const DeviceHandle& device, const VkSemaphoreCreateInfo* createInfo, const VkAllocationCallbacks* allocator, VkSemaphore* handle) + inline VkResult Semaphore::CreateHelper(const DeviceHandle& device, const VkSemaphoreCreateInfo* createInfo, const VkAllocationCallbacks* allocator, VkSemaphore* handle) { return device->vkCreateSemaphore(*device, createInfo, allocator, handle); } - void Semaphore::DestroyHelper(const DeviceHandle& device, VkSemaphore handle, const VkAllocationCallbacks* allocator) + inline void Semaphore::DestroyHelper(const DeviceHandle& device, VkSemaphore handle, const VkAllocationCallbacks* allocator) { return device->vkDestroySemaphore(*device, handle, allocator); }