// Copyright (C) 2016 Jérôme Leclercq // This file is part of the "Nazara Engine - Vulkan" // For conditions of distribution and use, see copyright notice in Config.hpp #pragma once #ifndef NAZARA_VULKAN_VKCOMMANDBUFFER_HPP #define NAZARA_VULKAN_VKCOMMANDBUFFER_HPP #include #include #include namespace Nz { namespace Vk { class NAZARA_VULKAN_API CommandBuffer { friend CommandPool; public: CommandBuffer(const CommandBuffer&) = delete; CommandBuffer(CommandBuffer&& commandBuffer); inline ~CommandBuffer(); inline void Free(); inline VkResult GetLastErrorCode() const; CommandBuffer& operator=(const CommandBuffer&) = delete; CommandBuffer& operator=(CommandBuffer&&) = delete; inline operator VkCommandBuffer(); private: inline CommandBuffer(CommandPool& pool, VkCommandBuffer handle); CommandPoolHandle m_pool; VkAllocationCallbacks m_allocator; VkCommandBuffer m_handle; VkResult m_lastErrorCode; }; } } #include #endif // NAZARA_VULKAN_VKCOMMANDBUFFER_HPP