]> git.localhorst.tv Git - blank.git/blobdiff - src/init.cpp
remove unused (explicit) destructors
[blank.git] / src / init.cpp
index 9010e00ba6b26c50d71514a96d48332f78d94d3c..2c1c73ad6155e0aae9654f9fa9a58f6c93477fe2 100644 (file)
@@ -2,6 +2,7 @@
 
 #include <algorithm>
 #include <SDL.h>
+#include <SDL_image.h>
 #include <stdexcept>
 #include <string>
 #include <GL/glew.h>
@@ -34,6 +35,17 @@ InitSDL::~InitSDL() {
 }
 
 
+InitIMG::InitIMG() {
+       if (IMG_Init(IMG_INIT_PNG) == 0) {
+               sdl_error("IMG_Init(IMG_INIT_PNG)");
+       }
+}
+
+InitIMG::~InitIMG() {
+       IMG_Quit();
+}
+
+
 InitGL::InitGL() {
        if (SDL_GL_SetAttribute(SDL_GL_CONTEXT_MAJOR_VERSION, 3) != 0) {
                sdl_error("SDL_GL_SetAttribute(SDL_GL_CONTEXT_MAJOR_VERSION, 3)");
@@ -50,10 +62,6 @@ InitGL::InitGL() {
        }
 }
 
-InitGL::~InitGL() {
-
-}
-
 
 Window::Window()
 : handle(SDL_CreateWindow(
@@ -71,6 +79,26 @@ Window::~Window() {
        SDL_DestroyWindow(handle);
 }
 
+void Window::GrabInput() {
+       SDL_SetWindowGrab(handle, SDL_TRUE);
+}
+
+void Window::ReleaseInput() {
+       SDL_SetWindowGrab(handle, SDL_FALSE);
+}
+
+void Window::GrabMouse() {
+       if (SDL_SetRelativeMouseMode(SDL_TRUE) != 0) {
+               sdl_error("SDL_SetRelativeMouseMode");
+       }
+}
+
+void Window::ReleaseMouse() {
+       if (SDL_SetRelativeMouseMode(SDL_FALSE) != 0) {
+               sdl_error("SDL_SetRelativeMouseMode");
+       }
+}
+
 GLContext Window::CreateContext() {
        return GLContext(handle);
 }
@@ -110,6 +138,19 @@ void GLContext::EnableVSync() {
        }
 }
 
+void GLContext::EnableDepthTest() {
+       glEnable(GL_DEPTH_TEST);
+       glDepthFunc(GL_LESS);
+}
+
+void GLContext::EnableBackfaceCulling() {
+       glEnable(GL_CULL_FACE);
+}
+
+void GLContext::Clear() {
+       glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT);
+}
+
 
 InitGLEW::InitGLEW() {
        glewExperimental = GL_TRUE;
@@ -126,8 +167,4 @@ InitGLEW::InitGLEW() {
        }
 }
 
-InitGLEW::~InitGLEW() {
-
-}
-
 }