summaryrefslogtreecommitdiff
path: root/display.cpp
diff options
context:
space:
mode:
authorDan Goodliffe <dan@randomdan.homeip.net>2021-01-17 18:54:26 +0000
committerDan Goodliffe <dan@randomdan.homeip.net>2021-01-17 18:54:26 +0000
commit43a87590f45aa6e55724d30d0c2d0d34b407a57e (patch)
tree21ce8e8886f8aa58b159419b7d885f57d9a37580 /display.cpp
parentInitial commit (diff)
downloadilt-43a87590f45aa6e55724d30d0c2d0d34b407a57e.tar.bz2
ilt-43a87590f45aa6e55724d30d0c2d0d34b407a57e.tar.xz
ilt-43a87590f45aa6e55724d30d0c2d0d34b407a57e.zip
First cut modernizing and sanitizing
Diffstat (limited to 'display.cpp')
-rw-r--r--display.cpp19
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);
}