Go to the documentation of this file. 1 #ifndef OGLPLUS_GL_API_ENUM_CLASS_HPP
9 #define OGLPLUS_GL_API_ENUM_CLASS_HPP
17 namespace eagine::oglp {
30 template <
typename Self,
identifier_t Id>
45 template <
typename Self,
identifier_t Id>
59 template <
typename Self,
identifier_t Id>
69 template <
typename Self,
identifier_t Id>
87 return ::eagine::same_enum_class(a, b);
91 typename ParameterEnumClass,
95 constexpr
static bool is_enum_parameter_value_v =
96 is_enum_class_value_v<ParameterEnumClass, Parameter>&&
97 std::is_same_v<typename Parameter::tag_type, nothing_t>
98 ? std::is_convertible_v<Value, ValueType>
99 : is_enum_class_value_v<typename Parameter::tag_type, Value>;
103 #endif // OGLPLUS_GL_API_ENUM_CLASS_HPP
GLbitfield bitfield_type
Bit-field type.
Definition: config.hpp:55
Enum class for constants or enumerators (typically from a C-API).
Definition: enum_class.hpp:237
#define EAGINE_ID_V(NAME)
Macro for constructing instances of eagine::identifier_t.
Definition: identifier.hpp:359
GLenum enum_type
Enumeration type.
Definition: config.hpp:52
GLboolean bool_type
Boolean type.
Definition: config.hpp:49
GLubyte ubyte_type
Unsigned-byte type.
Definition: config.hpp:61
enum_class< Self, gl_types::enum_type, EAGINE_ID_V(GL), Id > gl_enum_class
Typed wrapper class for GLenum constants/values.
Definition: enum_class.hpp:32
Type erasure for instantiations of enum_value from a specified library.
Definition: enum_class.hpp:212
static constexpr auto same_enum_class(any_enum_class< LibId > a, any_enum_class< LibId > b) noexcept
Tests if two instances of any_enum_class belong to the same enum class.
Definition: enum_class.hpp:465
Type erasure for instantiations of enum_class from a specified library.
Definition: enum_class.hpp:385