Move DataFormat to vk Format conversion to cast operator

This commit is contained in:
Georg Hagen
2024-07-07 23:50:33 +02:00
parent aabc24616d
commit f947204ae2
3 changed files with 13 additions and 5 deletions

View File

@@ -9,6 +9,11 @@
#include <cinttypes>
#include <string_view>
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<const vk::Format&>(m_format);
}
static DataFormat GetFromName(std::string_view name);
private:
Format m_format;

View File

@@ -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<const vk::Format&>(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;

View File

@@ -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;