Add render resource handling for geometry
This commit is contained in:
@@ -153,7 +153,7 @@ namespace OpenVulkano::Vulkan
|
||||
VulkanGeometry* ResourceManager::PrepareGeometry(Scene::Geometry* geometry)
|
||||
{
|
||||
const std::unique_lock lock(mutex);
|
||||
if(!geometry->renderGeo)
|
||||
if(!geometry->HasRenderResource())
|
||||
{
|
||||
ManagedBuffer::Ptr vertexBuffer =
|
||||
CreateDeviceOnlyBufferWithData(sizeof(Vertex) * geometry->GetVertexCount(), vk::BufferUsageFlagBits::eVertexBuffer, geometry->GetVertices());
|
||||
@@ -162,14 +162,13 @@ namespace OpenVulkano::Vulkan
|
||||
indexBuffer = CreateDeviceOnlyBufferWithData(Utils::EnumAsInt(geometry->indexType) * geometry->GetIndexCount(), vk::BufferUsageFlagBits::eIndexBuffer, geometry->GetIndices());
|
||||
VulkanGeometry* vkGeo = new VulkanGeometry(geometry, vertexBuffer, indexBuffer);
|
||||
geometries.emplace_back(vkGeo);
|
||||
geometry->renderGeo = vkGeo;
|
||||
if (geometry->ownsMemory && geometry->freeAfterUpload)
|
||||
{
|
||||
geometry->Free();
|
||||
}
|
||||
return vkGeo;
|
||||
}
|
||||
return dynamic_cast<VulkanGeometry*>(geometry->renderGeo);
|
||||
return geometry->GetRenderResource();
|
||||
}
|
||||
|
||||
void ResourceManager::PrepareMaterial(Scene::Material* material)
|
||||
|
||||
Reference in New Issue
Block a user