Add VertexBuffer class
This commit is contained in:
@@ -5,6 +5,9 @@
|
||||
*/
|
||||
|
||||
#include "ResourceManager.hpp"
|
||||
|
||||
#include <Scene/VertexBuffer.hpp>
|
||||
|
||||
#include "ManagedBuffer.hpp"
|
||||
#include "MemoryAllocation.hpp"
|
||||
#include "Scene/Vertex.hpp"
|
||||
@@ -21,6 +24,7 @@
|
||||
#include "Vulkan/Scene/VulkanTexture.hpp"
|
||||
#include "Vulkan/Scene/VulkanCamera.hpp"
|
||||
#include "Vulkan/Scene/VulkanUniformBuffer.hpp"
|
||||
#include "Vulkan/Scene/VulkanVertexBuffer.hpp"
|
||||
|
||||
namespace OpenVulkano::Vulkan
|
||||
{
|
||||
@@ -173,6 +177,21 @@ namespace OpenVulkano::Vulkan
|
||||
return geometry->GetRenderResource();
|
||||
}
|
||||
|
||||
VulkanVertexBuffer* ResourceManager::PrepareVertexBuffer(Scene::VertexBuffer* vbo)
|
||||
{
|
||||
const std::unique_lock lock(mutex);
|
||||
if(!vbo->HasRenderResource())
|
||||
{
|
||||
ManagedBuffer::Ptr vertexBuffer =
|
||||
CreateDeviceOnlyBufferWithData(vbo->size, vk::BufferUsageFlagBits::eVertexBuffer, vbo->data);
|
||||
ManagedBuffer::Ptr indexBuffer;
|
||||
VulkanVertexBuffer* vkVbo = new VulkanVertexBuffer(vbo, vertexBuffer);
|
||||
vertexBuffers.emplace_back(vkVbo);
|
||||
return vkVbo;
|
||||
}
|
||||
return vbo->GetRenderResource();
|
||||
}
|
||||
|
||||
void ResourceManager::PrepareMaterial(Scene::Material* material)
|
||||
{
|
||||
if (material->texture && !material->texture->HasRenderResource())
|
||||
|
||||
Reference in New Issue
Block a user