OGLplus  (0.59.0) a C++ wrapper for rendering APIs

surface_attribs.hpp
Go to the documentation of this file.
1 #ifndef EGLPLUS_EGL_API_SURFACE_ATTRIBS_HPP
9 #define EGLPLUS_EGL_API_SURFACE_ATTRIBS_HPP
10 
11 #include "config.hpp"
12 #include "enum_types.hpp"
13 #include <eagine/key_val_list.hpp>
14 
15 namespace eagine::eglp {
16 
22  using conv_type = egl_types::int_type;
25 
26  static constexpr auto terminator() noexcept -> egl_types::int_type {
27 #ifdef EGL_NONE
28  return EGL_NONE;
29 #else
30  return 0;
31 #endif
32  }
33 };
34 
37 template <std::size_t N>
39 
44 
48 static constexpr auto
49 operator|(surface_attribute key, egl_types::int_type value) noexcept
51  return {key, value};
52 }
53 
57 static constexpr auto
58 operator|(surface_attribute key, texture_format value) noexcept
60  return {key, egl_types::int_type(value)};
61 }
62 
66 static constexpr auto
67 operator|(surface_attribute key, texture_target value) noexcept
69  return {key, egl_types::int_type(value)};
70 }
71 
75 static constexpr auto
76 operator|(surface_attribute key, gl_colorspace value) noexcept
78  return {key, egl_types::int_type(value)};
79 }
80 
84 static constexpr auto operator|(surface_attribute key, bool value) noexcept
86 #if defined(EGL_TRUE) && defined(EGL_FALSE)
87  return {key, value ? EGL_TRUE : EGL_FALSE};
88 #else
89  return {key, value ? 1 : 0};
90 #endif
91 }
92 
93 } // namespace eagine::eglp
94 
95 #endif // EGLPLUS_EGL_API_SURFACE_ATTRIBS_HPP
EGL-related code is placed in this namespace.
Definition: eglplus.hpp:11
A single key/value pair for a key/value list.
Definition: key_val_list.hpp:27
Collection of aliases for EGL types.
Definition: config.hpp:52
Template for classes wrapping static key/value typically attribute lists.
Definition: key_val_list.hpp:21
Typed enumeration for EGL surface attribute constants.
Definition: enum_types.hpp:76
key_value_list_element< surface_attrib_traits > surface_attribute_value
Alias for EGL config attribute list key/value pair.
Definition: surface_attribs.hpp:43
egl_types::int_type value_type
Alias for the value type.
Definition: surface_attribs.hpp:24
Traits for EGL rendering surface attribute key/value list traits.
Definition: surface_attribs.hpp:19
EGLint int_type
Signed integer type.
Definition: config.hpp:116

Copyright © 2015-2021 Matúš Chochlík.
<chochlik -at -gmail.com>
Documentation generated on Tue Apr 13 2021 by Doxygen (version 1.8.17).