From 4ff36108b20f379cebc7e9996b54d76f497cab31 Mon Sep 17 00:00:00 2001 From: Lynix Date: Mon, 4 Jul 2016 18:14:40 +0200 Subject: [PATCH] Vulkan: Fix linking problem Former-commit-id: 8f4df471a2745a32e6b131a4bd83345bdb9b304e [formerly 479e6489039b511b08a63535845293a84460ed87] Former-commit-id: 064509430d76e54466709c3288db9443956759c9 --- include/Nazara/Vulkan/VkCommandBuffer.hpp | 9 +++++---- include/Nazara/Vulkan/VkCommandBuffer.inl | 21 ++++++++++++++++++++- include/Nazara/Vulkan/VkSemaphore.hpp | 4 ++-- include/Nazara/Vulkan/VkSemaphore.inl | 4 ++-- 4 files changed, 29 insertions(+), 9 deletions(-) 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); }