diff --git a/source/simple/graphical/gl_window.cpp b/source/simple/graphical/gl_window.cpp index c024486b6c5182631649d218d3958d08b900ff3d..ec9febb2917f0e37b9496a500577002f90db8cb9 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 4fb11318437bf6b44103755f0db4d97f2c29a5db..5c002a77038db9a022890c73941319d1a6dcec90 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; + };