Render resource handling for camera

This commit is contained in:
Georg Hagen
2024-08-21 15:09:49 +02:00
parent 2d08b3ab91
commit 6f19758beb
4 changed files with 24 additions and 33 deletions

View File

@@ -213,7 +213,7 @@ namespace OpenVulkano::Vulkan
VulkanCamera* ResourceManager::PrepareCamera(Scene::Camera* camera)
{
const std::unique_lock lock(mutex);
if (!camera->renderCamera)
if (!camera->HasRenderResource())
{
const vk::DeviceSize allocSize = Utils::Align(Scene::Camera::SIZE, uniformBufferAlignment);
const uint32_t imgs = context->swapChain.GetImageCount();
@@ -221,12 +221,10 @@ namespace OpenVulkano::Vulkan
buffer->Map();
UniformBuffer* uBuffer = new UniformBuffer();
uBuffer->Init(std::move(buffer), allocSize, allocSize, GetDescriptorLayoutSet(Scene::Camera::DESCRIPTOR_SET_LAYOUT_BINDING), Scene::Camera::DESCRIPTOR_SET_LAYOUT_BINDING, 1);
VulkanCamera* vkCam = new VulkanCamera();
vkCam->Init(camera, uBuffer);
VulkanCamera* vkCam = new VulkanCamera(camera, uBuffer);
cameras.emplace_back(vkCam);
camera->renderCamera = vkCam;
}
return static_cast<VulkanCamera*>(camera->renderCamera);
return static_cast<VulkanCamera*>(camera->GetRenderResource());
}
UniformBuffer* ResourceManager::CreateUniformBuffer(const DescriptorSetLayoutBinding& binding, size_t size, void* data, uint32_t setId, bool hostVis)