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