aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--backends/graphics/openglsdl/openglsdl-graphics.cpp12
-rw-r--r--backends/graphics/openglsdl/openglsdl-graphics.h3
2 files changed, 15 insertions, 0 deletions
diff --git a/backends/graphics/openglsdl/openglsdl-graphics.cpp b/backends/graphics/openglsdl/openglsdl-graphics.cpp
index d789e9f25b..1ac892b5b1 100644
--- a/backends/graphics/openglsdl/openglsdl-graphics.cpp
+++ b/backends/graphics/openglsdl/openglsdl-graphics.cpp
@@ -40,6 +40,11 @@ OpenGLSdlGraphicsManager::OpenGLSdlGraphicsManager()
// Disable OS cursor
SDL_ShowCursor(SDL_DISABLE);
+
+ // Get desktop resolution
+ const SDL_VideoInfo *videoInfo = SDL_GetVideoInfo();
+ _desktopWidth = videoInfo->current_w;
+ _desktopHeight = videoInfo->current_h;
}
OpenGLSdlGraphicsManager::~OpenGLSdlGraphicsManager() {
@@ -229,6 +234,13 @@ bool OpenGLSdlGraphicsManager::loadGFXMode() {
// Iterate over all available fullscreen modes
for (int i = 0; const SDL_Rect *mode = availableModes[i]; i++) {
+ // Prefer the native resolution over other modes
+ if(mode->w == _desktopWidth && mode->h == _desktopHeight) {
+ bestMode = mode;
+ bestModeIndex = i;
+ break;
+ }
+
if (mode->w < _videoMode.hardwareWidth)
continue;
if (mode->h < _videoMode.hardwareHeight)
diff --git a/backends/graphics/openglsdl/openglsdl-graphics.h b/backends/graphics/openglsdl/openglsdl-graphics.h
index 9b0a3df36f..144b961378 100644
--- a/backends/graphics/openglsdl/openglsdl-graphics.h
+++ b/backends/graphics/openglsdl/openglsdl-graphics.h
@@ -84,6 +84,9 @@ protected:
SDL_Surface *_hwscreen;
bool _screenResized;
+
+ int _desktopWidth;
+ int _desktopHeight;
};
#endif