From add09b59af99648bfdba0834330517e92e702edf Mon Sep 17 00:00:00 2001 From: Georg Hagen Date: Sun, 7 Jul 2024 00:23:26 +0200 Subject: [PATCH] Handle texture data format --- openVulkanoCpp/Vulkan/Image.cpp | 4 ++-- openVulkanoCpp/Vulkan/Image.hpp | 3 ++- openVulkanoCpp/Vulkan/Scene/VulkanTexture.hpp | 2 +- 3 files changed, 5 insertions(+), 4 deletions(-) diff --git a/openVulkanoCpp/Vulkan/Image.cpp b/openVulkanoCpp/Vulkan/Image.cpp index e1616c2..b1f7172 100644 --- a/openVulkanoCpp/Vulkan/Image.cpp +++ b/openVulkanoCpp/Vulkan/Image.cpp @@ -35,11 +35,11 @@ namespace OpenVulkano::Vulkan {}, nullptr, nullptr, imgMemBarrier); } - void Image::Init(const Device* device, const vk::Extent3D& resolution) + void Image::Init(const Device* device, const DataFormat format, const vk::Extent3D& resolution) { this->device = device->device; - vk::ImageCreateInfo imgCreateInfo { {}, vk::ImageType::e2D, vk::Format::eB8G8R8A8Unorm, resolution, 1, 1 }; + vk::ImageCreateInfo imgCreateInfo { {}, vk::ImageType::e2D, reinterpret_cast(format), resolution, 1, 1 }; imgCreateInfo.usage = vk::ImageUsageFlagBits::eTransferDst | vk::ImageUsageFlagBits::eSampled; imgCreateInfo.tiling = vk::ImageTiling::eOptimal; diff --git a/openVulkanoCpp/Vulkan/Image.hpp b/openVulkanoCpp/Vulkan/Image.hpp index 9898675..e65fe1e 100644 --- a/openVulkanoCpp/Vulkan/Image.hpp +++ b/openVulkanoCpp/Vulkan/Image.hpp @@ -7,6 +7,7 @@ #pragma once #include "Buffer.hpp" +#include "Scene/DataFormat.hpp" #include "VulkanUtils.hpp" #include @@ -38,7 +39,7 @@ namespace OpenVulkano::Vulkan */ void Init(const Device* device, const vk::ImageCreateInfo& imageCreateInfo, vk::ImageViewCreateInfo imageViewCreateInfo, const vk::MemoryPropertyFlags& memoryPropertyFlags = vk::MemoryPropertyFlagBits::eDeviceLocal); - void Init(const Device* device, const vk::Extent3D& resolution); + void Init(const Device* device, const DataFormat format, const vk::Extent3D& resolution); void SetLayout(vk::CommandBuffer& cmdBuffer, vk::ImageSubresourceRange subResourceRange, vk::ImageLayout newLayout, vk::ImageLayout oldLayout = vk::ImageLayout::eUndefined) const; diff --git a/openVulkanoCpp/Vulkan/Scene/VulkanTexture.hpp b/openVulkanoCpp/Vulkan/Scene/VulkanTexture.hpp index 7893a4c..1d31e6e 100644 --- a/openVulkanoCpp/Vulkan/Scene/VulkanTexture.hpp +++ b/openVulkanoCpp/Vulkan/Scene/VulkanTexture.hpp @@ -25,7 +25,7 @@ namespace OpenVulkano::Vulkan virtual void Init(ResourceManager* resManager, Scene::Texture* texture, vk::DescriptorSetLayout* descriptorSetLayout, const DescriptorSetLayoutBinding& binding) { m_texture = texture; - Image::Init(resManager->GetContext()->device.get(), { texture->resolution.x, texture->resolution.y, texture->resolution.z }); + Image::Init(resManager->GetContext()->device.get(), texture->format, { texture->resolution.x, texture->resolution.y, texture->resolution.z }); resManager->CopyDataToImage(m_texture->size, m_texture->textureBuffer, this); texture->updated = false;