Vulkan: Fix linking problem

Former-commit-id: 8f4df471a2745a32e6b131a4bd83345bdb9b304e [formerly 479e6489039b511b08a63535845293a84460ed87]
Former-commit-id: 064509430d76e54466709c3288db9443956759c9
This commit is contained in:
Lynix 2016-07-04 18:14:40 +02:00
parent 8bc7998b46
commit 4ff36108b2
4 changed files with 29 additions and 9 deletions

View File

@ -15,13 +15,14 @@ namespace Nz
{ {
namespace Vk namespace Vk
{ {
class NAZARA_VULKAN_API CommandBuffer class CommandBuffer
{ {
friend CommandPool; friend CommandPool;
public: public:
inline CommandBuffer();
CommandBuffer(const CommandBuffer&) = delete; CommandBuffer(const CommandBuffer&) = delete;
CommandBuffer(CommandBuffer&& commandBuffer); inline CommandBuffer(CommandBuffer&& commandBuffer);
inline ~CommandBuffer(); inline ~CommandBuffer();
inline bool Begin(const VkCommandBufferBeginInfo& info); inline bool Begin(const VkCommandBufferBeginInfo& info);
@ -37,9 +38,9 @@ namespace Nz
inline VkResult GetLastErrorCode() const; inline VkResult GetLastErrorCode() const;
CommandBuffer& operator=(const CommandBuffer&) = delete; CommandBuffer& operator=(const CommandBuffer&) = delete;
CommandBuffer& operator=(CommandBuffer&&) = delete; CommandBuffer& operator=(CommandBuffer&& commandBuffer);
inline operator VkCommandBuffer(); inline operator VkCommandBuffer() const;
private: private:
inline CommandBuffer(CommandPool& pool, VkCommandBuffer handle); inline CommandBuffer(CommandPool& pool, VkCommandBuffer handle);

View File

@ -11,6 +11,12 @@ namespace Nz
{ {
namespace Vk namespace Vk
{ {
inline CommandBuffer::CommandBuffer() :
m_pool(),
m_handle(VK_NULL_HANDLE)
{
}
inline CommandBuffer::CommandBuffer(CommandPool& pool, VkCommandBuffer handle) : inline CommandBuffer::CommandBuffer(CommandPool& pool, VkCommandBuffer handle) :
m_pool(&pool), m_pool(&pool),
m_handle(handle) m_handle(handle)
@ -140,7 +146,20 @@ namespace Nz
return m_lastErrorCode; 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; return m_handle;
} }

View File

@ -31,8 +31,8 @@ namespace Nz
Semaphore& operator=(Semaphore&&) = delete; Semaphore& operator=(Semaphore&&) = delete;
private: private:
static VkResult CreateHelper(const DeviceHandle& device, const VkSemaphoreCreateInfo* createInfo, const VkAllocationCallbacks* allocator, VkSemaphore* handle); static inline 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 void DestroyHelper(const DeviceHandle& device, VkSemaphore handle, const VkAllocationCallbacks* allocator);
}; };
} }
} }

View File

@ -21,12 +21,12 @@ namespace Nz
return Create(device, createInfo, allocator); 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); 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); return device->vkDestroySemaphore(*device, handle, allocator);
} }