]> git.localhorst.tv Git - blank.git/blobdiff - src/init.cpp
minor optimizations in chunk
[blank.git] / src / init.cpp
index 061e848e073691af5fcedca51763e4af97c91a80..a56674c309506b5ac8f0876be5338b8241dfebf3 100644 (file)
@@ -46,7 +46,7 @@ InitIMG::~InitIMG() {
 }
 
 
-InitGL::InitGL() {
+InitGL::InitGL(bool double_buffer, int sample_size) {
        if (SDL_GL_SetAttribute(SDL_GL_CONTEXT_MAJOR_VERSION, 3) != 0) {
                sdl_error("SDL_GL_SetAttribute(SDL_GL_CONTEXT_MAJOR_VERSION, 3)");
        }
@@ -57,8 +57,19 @@ InitGL::InitGL() {
                sdl_error("SDL_GL_SetAttribute(SDL_GL_CONTEXT_PROFILE_MASK, SDL_GL_CONTEXT_PROFILE_CORE)");
        }
 
-       if (SDL_GL_SetAttribute(SDL_GL_DOUBLEBUFFER, 1) != 0) {
-               sdl_error("SDL_GL_SetAttribute(SDL_GL_DOUBLEBUFFER, 1)");
+       if (double_buffer) {
+               if (SDL_GL_SetAttribute(SDL_GL_DOUBLEBUFFER, 1) != 0) {
+                       sdl_error("SDL_GL_SetAttribute(SDL_GL_DOUBLEBUFFER, 1)");
+               }
+       }
+
+       if (sample_size > 1) {
+               if (SDL_GL_SetAttribute(SDL_GL_MULTISAMPLEBUFFERS, 1) != 0) {
+                       sdl_error("SDL_GL_SetAttribute(SDL_GL_MULTISAMPLEBUFFERS)");
+               }
+               if (SDL_GL_SetAttribute(SDL_GL_MULTISAMPLESAMPLES, sample_size) != 0) {
+                       sdl_error("SDL_GL_SetAttribute(SDL_GL_MULTISAMPLESAMPLES)");
+               }
        }
 }
 
@@ -138,20 +149,20 @@ void GLContext::EnableVSync() {
        }
 }
 
-void GLContext::EnableDepthTest() {
+void GLContext::EnableDepthTest() noexcept {
        glEnable(GL_DEPTH_TEST);
        glDepthFunc(GL_LESS);
 }
 
-void GLContext::EnableBackfaceCulling() {
+void GLContext::EnableBackfaceCulling() noexcept {
        glEnable(GL_CULL_FACE);
 }
 
-void GLContext::Clear() {
+void GLContext::Clear() noexcept {
        glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT);
 }
 
-void GLContext::ClearDepthBuffer() {
+void GLContext::ClearDepthBuffer() noexcept {
        glClear(GL_DEPTH_BUFFER_BIT);
 }