Add VulkanTextureDynamic

This commit is contained in:
Georg Hagen
2024-07-07 00:24:51 +02:00
parent add09b59af
commit 2b05518c61
3 changed files with 25 additions and 17 deletions

View File

@@ -145,7 +145,6 @@ namespace OpenVulkano::Vulkan
void ResourceManager::PrepareMaterial(Scene::Material* material)
{
const std::unique_lock lock(mutex);
if (material->texture && !material->texture->renderTexture)
{
PrepareTexture(material->texture);
@@ -378,7 +377,13 @@ namespace OpenVulkano::Vulkan
VulkanTexture* ResourceManager::PrepareTexture(Scene::Texture* texture)
{
VulkanTexture* vkTexture = new VulkanTexture();
const std::unique_lock lock(mutex);
if (texture->renderTexture) return static_cast<VulkanTexture*>(texture->renderTexture);
VulkanTexture* vkTexture;
if (texture->updateFrequency == Scene::UpdateFrequency::Never)
vkTexture = new VulkanTexture();
else
vkTexture = new VulkanTextureDynamic();
vkTexture->Init(this, texture, GetDescriptorLayoutSet(Scene::Texture::DESCRIPTOR_SET_LAYOUT_BINDING), Scene::Texture::DESCRIPTOR_SET_LAYOUT_BINDING);