diff options
Diffstat (limited to 'display.cpp')
-rw-r--r-- | display.cpp | 19 |
1 files changed, 8 insertions, 11 deletions
diff --git a/display.cpp b/display.cpp index 4317933..b4a42d7 100644 --- a/display.cpp +++ b/display.cpp @@ -1,6 +1,6 @@ #include "display.h"
#include <GL/glew.h>
-#include <iostream>
+#include <stdexcept>
Display::Display(int width, int height, const std::string & title)
{
@@ -14,13 +14,12 @@ Display::Display(int width, int height, const std::string & title) SDL_GL_SetAttribute(SDL_GL_DEPTH_SIZE, 16);
SDL_GL_SetAttribute(SDL_GL_DOUBLEBUFFER, 1);
- m_window = SDL_CreateWindow(
- title.c_str(), SDL_WINDOWPOS_CENTERED, SDL_WINDOWPOS_CENTERED, width, height, SDL_WINDOW_OPENGL);
- m_glContext = SDL_GL_CreateContext(m_window);
+ m_window = m_window.create(SDL_CreateWindow, SDL_DestroyWindow, title.c_str(), SDL_WINDOWPOS_CENTERED,
+ SDL_WINDOWPOS_CENTERED, width, height, SDL_WINDOW_OPENGL);
+ m_glContext = m_glContext.create(SDL_GL_CreateContext, SDL_GL_DeleteContext, m_window);
- GLenum res = glewInit();
- if (res != GLEW_OK) {
- std::cerr << "Glew failed to initialize!" << std::endl;
+ if (glewInit() != GLEW_OK) {
+ throw std::runtime_error {"Glew failed to initialize!"};
}
glEnable(GL_DEPTH_TEST);
@@ -31,20 +30,18 @@ Display::Display(int width, int height, const std::string & title) Display::~Display()
{
- SDL_GL_DeleteContext(m_glContext);
- SDL_DestroyWindow(m_window);
SDL_Quit();
}
void
-Display::Clear(float r, float g, float b, float a)
+Display::Clear(float r, float g, float b, float a) const
{
glClearColor(r, g, b, a);
glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT);
}
void
-Display::SwapBuffers()
+Display::SwapBuffers() const
{
SDL_GL_SwapWindow(m_window);
}
|