From 36fa845060c20d4c07642bb8c0b985bc6877a1f0 Mon Sep 17 00:00:00 2001 From: namark <namark@disroot.org> Date: Tue, 17 Dec 2019 03:11:30 +0400 Subject: [PATCH] Framebuffer size getter for gl_window, and a couple of minor const noexcept changes. --- source/simple/graphical/gl_window.cpp | 11 +++++++++-- source/simple/graphical/gl_window.h | 6 ++++-- 2 files changed, 13 insertions(+), 4 deletions(-) diff --git a/source/simple/graphical/gl_window.cpp b/source/simple/graphical/gl_window.cpp index c024486..ec9febb 100644 --- a/source/simple/graphical/gl_window.cpp +++ b/source/simple/graphical/gl_window.cpp @@ -71,7 +71,7 @@ void gl_window::update() noexcept SDL_GL_SwapWindow(guts().get()); } -auto gl_window::vsync() -> vsync_mode +auto gl_window::vsync() const noexcept -> vsync_mode { return static_cast<vsync_mode>(SDL_GL_GetSwapInterval()); } @@ -82,9 +82,16 @@ void gl_window::require_vsync(vsync_mode mode) SDL_GL_SetSwapInterval(support::to_integer(mode)) ); } -bool gl_window::request_vsync(vsync_mode mode) +bool gl_window::request_vsync(vsync_mode mode) noexcept { return !sdlcore::utils::check_error( SDL_GL_SetSwapInterval(support::to_integer(mode)) ); } +int2 gl_window::framebuffer_size() const noexcept +{ + int2 size; + SDL_GL_GetDrawableSize(guts().get(), &size.x(), &size.y()); + return size; +} + diff --git a/source/simple/graphical/gl_window.h b/source/simple/graphical/gl_window.h index 4fb1131..5c002a7 100644 --- a/source/simple/graphical/gl_window.h +++ b/source/simple/graphical/gl_window.h @@ -262,10 +262,12 @@ namespace simple::graphical void update() noexcept; - vsync_mode vsync(); - bool request_vsync(vsync_mode); + vsync_mode vsync() const noexcept; + bool request_vsync(vsync_mode) noexcept; void require_vsync(vsync_mode); + int2 framebuffer_size() const noexcept; + }; -- GitLab