26 #ifndef INCLUDED_SDL2Helpers_h_GUID_D901E282_40A2_4CB1_DA01_A88E21A45C94 27 #define INCLUDED_SDL2Helpers_h_GUID_D901E282_40A2_4CB1_DA01_A88E21A45C94 34 #include <SDL_opengl.h> 47 if (SDL_Init(SDL_INIT_VIDEO) < 0) {
48 throw std::runtime_error(
49 std::string(
"Could not initialize SDL") + SDL_GetError());
52 ~
Lib() { SDL_Quit(); }
55 Lib &operator=(
Lib const &) =
delete;
62 template <
typename... Args>
inline WindowPtr
createWindow(Args &&... args) {
63 WindowPtr ret(SDL_CreateWindow(std::forward<Args>(args)...),
82 template <
typename... Args>
GLContext(Args &&... args) {
83 m_context = SDL_GL_CreateContext(std::forward<Args>(args)...);
90 operator SDL_GLContext()
const {
return m_context; }
96 SDL_GLContext m_context;
101 #endif // INCLUDED_SDL2Helpers_h_GUID_D901E282_40A2_4CB1_DA01_A88E21A45C94 GLContext(Args &&... args)
Forwarding constructor.
Definition: SDL2Helpers.h:82
The main namespace for all C++ elements of the framework, internal and external.
Definition: namespace_osvr.dox:3
RAII wrapper for SDL text input start/stop.
Definition: SDL2Helpers.h:69
RAII wrapper for SDL startup/shutdown.
Definition: SDL2Helpers.h:44
WindowPtr createWindow(Args &&... args)
Smart pointer constructor for SDL_Window (forwarding)
Definition: SDL2Helpers.h:62
~GLContext()
Destructor for cleanup.
Definition: SDL2Helpers.h:87
RAII wrapper for SDL OpenGL context.
Definition: SDL2Helpers.h:79
std::shared_ptr< SDL_Window > WindowPtr
Smart pointer for SDL_Window.
Definition: SDL2Helpers.h:59