Allocate command buffers from pools

This commit is contained in:
Jérôme Leclercq
2020-08-27 18:31:26 +02:00
parent cbdac32f5f
commit 7c9dcdfbe4
18 changed files with 333 additions and 23 deletions

View File

@@ -7,20 +7,44 @@
namespace Nz
{
inline VulkanCommandBuffer::VulkanCommandBuffer(Vk::AutoCommandBuffer commandBuffer)
inline VulkanCommandBuffer::VulkanCommandBuffer(VulkanCommandPool& owner, std::size_t poolIndex, std::size_t bindingIndex, Vk::AutoCommandBuffer commandBuffer) :
VulkanCommandBuffer(owner, poolIndex, bindingIndex)
{
m_commandBuffers.push_back(std::move(commandBuffer));
}
inline VulkanCommandBuffer::VulkanCommandBuffer(std::vector<Vk::AutoCommandBuffer> commandBuffers) :
m_commandBuffers(std::move(commandBuffers))
inline VulkanCommandBuffer::VulkanCommandBuffer(VulkanCommandPool& owner, std::size_t poolIndex, std::size_t bindingIndex, std::vector<Vk::AutoCommandBuffer> commandBuffers) :
VulkanCommandBuffer(owner, poolIndex, bindingIndex)
{
m_commandBuffers = std::move(commandBuffers);
}
inline VulkanCommandBuffer::VulkanCommandBuffer(VulkanCommandPool& owner, std::size_t poolIndex, std::size_t bindingIndex) :
m_bindingIndex(bindingIndex),
m_poolIndex(poolIndex),
m_owner(owner)
{
}
inline std::size_t VulkanCommandBuffer::GetBindingIndex() const
{
return m_bindingIndex;
}
inline Vk::CommandBuffer& VulkanCommandBuffer::GetCommandBuffer(std::size_t imageIndex)
{
return m_commandBuffers[imageIndex].Get();
}
inline std::size_t VulkanCommandBuffer::GetPoolIndex() const
{
return m_poolIndex;
}
inline const VulkanCommandPool& VulkanCommandBuffer::GetOwner() const
{
return m_owner;
}
}
#include <Nazara/VulkanRenderer/DebugOff.hpp>