Lluvia
ImageAddressMode.h
Go to the documentation of this file.
1 
8 #ifndef LLUVIA_CORE_IMAGE_IMAGE_ADDRESS_MODE_H_
9 #define LLUVIA_CORE_IMAGE_IMAGE_ADDRESS_MODE_H_
10 
12 
13 namespace ll {
14 
26 enum class ImageAddressMode : uint32_t {
27  Repeat = 0,
28  MirroredRepeat = 1,
29  ClampToEdge = 2,
30  ClampToBorder = 3,
32 };
33 
34 namespace impl {
35 
41  constexpr const std::array<std::tuple<const char*, ll::ImageAddressMode>, 5> ImageAddressModeStrings {{
42  std::make_tuple("Repeat", ll::ImageAddressMode::Repeat),
43  std::make_tuple("MirroredRepeat", ll::ImageAddressMode::MirroredRepeat),
44  std::make_tuple("ClampToEdge", ll::ImageAddressMode::ClampToEdge),
45  std::make_tuple("ClampToBorder", ll::ImageAddressMode::ClampToBorder),
46  std::make_tuple("MirrorClampToEdge", ll::ImageAddressMode::MirrorClampToEdge),
47  }};
48 
49 } // namespace impl
50 
60 template <typename T = std::string>
62 {
63  return impl::enumToString<ll::ImageAddressMode, ll::impl::ImageAddressModeStrings.size(), ll::impl::ImageAddressModeStrings>(std::forward<ll::ImageAddressMode>(value));
64 }
65 
81 template <typename T>
83 {
85 }
86 
87 } // namespace ll
88 
89 #endif // LLUVIA_CORE_IMAGE_IMAGE_ADDRESS_MODE_H_
Enums.
constexpr const std::array< std::tuple< const char *, ll::ImageAddressMode >, 5 > ImageAddressModeStrings
Image filter mode strings used for converting ll::ImageAddressMode to std::string and vice-versa.
Definition: ImageAddressMode.h:41
E stringToEnum(T &&stringValue)
Definition: enums.h:172
std::string enumToString(E &&value) noexcept
Definition: enums.h:146
Definition: Buffer.h:28
ImageAddressMode
Image address mode.
Definition: ImageAddressMode.h:26
T imageAddressModeToString(ll::ImageAddressMode &&value) noexcept
Converts from ll::ImageAddressMode enum value to std::string.
Definition: ImageAddressMode.h:61
ll::ImageAddressMode stringToImageAddressMode(T &&stringValue)
Converts from a string-like object to ll::ImageAddressMode enum.
Definition: ImageAddressMode.h:82