From f947204ae283c7ccfd71abe2694de2007407f35a Mon Sep 17 00:00:00 2001 From: Georg Hagen Date: Sun, 7 Jul 2024 23:50:33 +0200 Subject: [PATCH] Move DataFormat to vk Format conversion to cast operator --- openVulkanoCpp/Scene/DataFormat.hpp | 10 ++++++++++ openVulkanoCpp/Vulkan/Image.cpp | 6 ++---- openVulkanoCpp/Vulkan/Image.hpp | 2 +- 3 files changed, 13 insertions(+), 5 deletions(-) diff --git a/openVulkanoCpp/Scene/DataFormat.hpp b/openVulkanoCpp/Scene/DataFormat.hpp index e33f466..2e3a4f1 100644 --- a/openVulkanoCpp/Scene/DataFormat.hpp +++ b/openVulkanoCpp/Scene/DataFormat.hpp @@ -9,6 +9,11 @@ #include #include +namespace vk +{ + enum class Format; +} + namespace OpenVulkano { class DataFormat @@ -361,6 +366,11 @@ namespace OpenVulkano return m_format; } + [[nodiscard]] operator const vk::Format&() const + { + return reinterpret_cast(m_format); + } + static DataFormat GetFromName(std::string_view name); private: Format m_format; diff --git a/openVulkanoCpp/Vulkan/Image.cpp b/openVulkanoCpp/Vulkan/Image.cpp index c7b5985..544af49 100644 --- a/openVulkanoCpp/Vulkan/Image.cpp +++ b/openVulkanoCpp/Vulkan/Image.cpp @@ -35,11 +35,9 @@ namespace OpenVulkano::Vulkan {}, nullptr, nullptr, imgMemBarrier); } - void Image::Init(const Device* device, const DataFormat format, 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, reinterpret_cast(format), resolution, 1, 1 }; + vk::ImageCreateInfo imgCreateInfo { {}, vk::ImageType::e2D, 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 efc24e8..0b10a24 100644 --- a/openVulkanoCpp/Vulkan/Image.hpp +++ b/openVulkanoCpp/Vulkan/Image.hpp @@ -39,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 DataFormat format, const vk::Extent3D& resolution); + void Init(const Device* device, const DataFormat& format, const vk::Extent3D& resolution); void SetLayout(vk::CommandBuffer& cmdBuffer, const vk::ImageSubresourceRange& subResourceRange, vk::ImageLayout newLayout, vk::ImageLayout oldLayout = vk::ImageLayout::eUndefined) const;