Add buffer support

This commit is contained in:
Jérôme Leclercq
2018-03-09 16:49:01 +01:00
parent 9b8e8042e4
commit cd31e6c397
27 changed files with 452 additions and 295 deletions

View File

@@ -9,25 +9,26 @@
#include <Nazara/Prerequisites.hpp>
#include <Nazara/Utility/AbstractBuffer.hpp>
#include <Nazara/Utility/SoftwareBuffer.hpp>
#include <Nazara/VulkanRenderer/Config.hpp>
#include <Nazara/VulkanRenderer/Wrapper/Buffer.hpp>
#include <Nazara/VulkanRenderer/Wrapper/DeviceMemory.hpp>
#include <vector>
namespace Nz
{
//TODO: Move all the software stuff to the Renderer
class Buffer;
class NAZARA_VULKANRENDERER_API VulkanBuffer : public AbstractBuffer
{
public:
inline VulkanBuffer(Buffer* parent, BufferType type);
inline VulkanBuffer(const Vk::DeviceHandle& device, Buffer* parent, BufferType type);
VulkanBuffer(const VulkanBuffer&) = delete;
VulkanBuffer(VulkanBuffer&&) = delete; ///TODO
virtual ~VulkanBuffer();
bool Fill(const void* data, UInt32 offset, UInt32 size) override;
inline Nz::Vk::Buffer& GetBufferHandle();
bool Initialize(UInt32 size, BufferUsageFlags usage) override;
DataStorage GetStorage() const override;
@@ -39,8 +40,11 @@ namespace Nz
VulkanBuffer& operator=(VulkanBuffer&&) = delete; ///TODO
private:
BufferUsageFlags m_usage;
SoftwareBuffer m_softwareData;
Buffer* m_parent;
BufferType m_type;
Nz::Vk::Buffer m_buffer;
Nz::Vk::DeviceHandle m_device;
Nz::Vk::DeviceMemory m_memory;
};
}