34 lines
1.3 KiB
C++
34 lines
1.3 KiB
C++
/*
|
|
* This Source Code Form is subject to the terms of the Mozilla Public
|
|
* License, v. 2.0. If a copy of the MPL was not distributed with this
|
|
* file, You can obtain one at https://mozilla.org/MPL/2.0/.
|
|
*/
|
|
|
|
#include "DataFormat.hpp"
|
|
#include <magic_enum.hpp>
|
|
|
|
namespace openVulkanoCpp
|
|
{
|
|
std::string_view DataFormat::GetName() const
|
|
{
|
|
return magic_enum::enum_name(m_format);
|
|
}
|
|
|
|
DataFormat DataFormat::GetFromName(std::string_view name)
|
|
{
|
|
auto result = magic_enum::enum_cast<Format>(name);
|
|
if (result.has_value()) return { result.value() };
|
|
return { UNDEFINED };
|
|
}
|
|
|
|
bool DataFormat::IsSRGB() const
|
|
{
|
|
return m_format == R8_SRGB || m_format == R8G8_SRGB || m_format == R8G8B8_SRGB || m_format == B8G8R8_SRGB ||
|
|
m_format == B8G8R8A8_SRGB || m_format == R8G8B8A8_SRGB || m_format == A8B8G8R8_SRGB_PACK32 ||
|
|
m_format == BC1_RGB_SRGB_BLOCK || m_format == BC1_RGBA_SRGB_BLOCK || m_format == BC2_SRGB_BLOCK ||
|
|
m_format == BC3_SRGB_BLOCK || m_format == BC7_SRGB_BLOCK || m_format == ETC2_R8G8B8_SRGB_BLOCK ||
|
|
m_format == ETC2_R8G8B8A1_SRGB_BLOCK || m_format == ETC2_R8G8B8A8_SRGB_BLOCK ||
|
|
(m_format >= ASTC_4x4_SRGB_BLOCK && m_format <= ASTC_12x12_SRGB_BLOCK && !(m_format & 1)) ||
|
|
(m_format >= PVRTC1_2BPP_SRGB_BLOCK_IMG && m_format <= PVRTC2_4BPP_SRGB_BLOCK_IMG);
|
|
}
|
|
} |