aboutsummaryrefslogtreecommitdiff
path: root/backends/platform/sdl
diff options
context:
space:
mode:
authorJohannes Schickel2013-10-21 01:03:29 +0200
committerKamil Zbróg2013-10-24 12:59:16 +0100
commit06e4b3e060756dd1be1d86919af48afa8496e24b (patch)
treeff1b7f6e4608d91c9eceae85f5f85c54b19f6d73 /backends/platform/sdl
parent4834017476f0abf8a4724179191c7fd1ed319fa2 (diff)
downloadscummvm-rg350-06e4b3e060756dd1be1d86919af48afa8496e24b.tar.gz
scummvm-rg350-06e4b3e060756dd1be1d86919af48afa8496e24b.tar.bz2
scummvm-rg350-06e4b3e060756dd1be1d86919af48afa8496e24b.zip
SDL: Do not require a static graphics mode list in OpenGL and SurfaceSDL.
Diffstat (limited to 'backends/platform/sdl')
-rw-r--r--backends/platform/sdl/sdl.cpp15
1 files changed, 10 insertions, 5 deletions
diff --git a/backends/platform/sdl/sdl.cpp b/backends/platform/sdl/sdl.cpp
index 39865c85c6..327dfe21b9 100644
--- a/backends/platform/sdl/sdl.cpp
+++ b/backends/platform/sdl/sdl.cpp
@@ -651,21 +651,26 @@ void OSystem_SDL::setupGraphicsModes() {
_graphicsModes.clear();
_graphicsModeIds.clear();
- const OSystem::GraphicsMode *sdlGraphicsModes = SurfaceSdlGraphicsManager::supportedGraphicsModes();
- const OSystem::GraphicsMode *openglGraphicsModes = OpenGLSdlGraphicsManager::supportedGraphicsModes();
-
// Count the number of graphics modes
- const OSystem::GraphicsMode *srcMode = sdlGraphicsModes;
+ const OSystem::GraphicsMode *srcMode;
+
+ GraphicsManager *manager = new SurfaceSdlGraphicsManager(_eventSource);
+ srcMode = manager->getSupportedGraphicsModes();
while (srcMode->name) {
_graphicsModes.push_back(*srcMode);
srcMode++;
}
+ delete manager;
+
_firstGLMode = _graphicsModes.size();
- srcMode = openglGraphicsModes;
+ manager = new OpenGLSdlGraphicsManager(_desktopWidth, _desktopHeight, _eventSource);
+ srcMode = manager->getSupportedGraphicsModes();
while (srcMode->name) {
_graphicsModes.push_back(*srcMode);
srcMode++;
}
+ delete manager;
+ manager = nullptr;
// Set a null mode at the end
GraphicsMode nullMode;