X-Git-Url: https://git.localhorst.tv/?a=blobdiff_plain;f=src%2Finit.cpp;h=a56674c309506b5ac8f0876be5338b8241dfebf3;hb=e53a0e2e711a7d8bd9b0ddacd1360aa14370643f;hp=061e848e073691af5fcedca51763e4af97c91a80;hpb=41e0223ec090142bf03066f4f5fc1f5005095072;p=blank.git diff --git a/src/init.cpp b/src/init.cpp index 061e848..a56674c 100644 --- a/src/init.cpp +++ b/src/init.cpp @@ -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); }