aboutsummaryrefslogtreecommitdiff
path: root/backends/graphics
diff options
context:
space:
mode:
authorJohannes Schickel2011-08-11 04:25:46 +0200
committerJohannes Schickel2011-08-11 04:28:44 +0200
commit0f6e231356305043bc7f66ae1cbe2c3a0607c68a (patch)
treeecf6fe17e0621359daed47c45afa40fa822ab600 /backends/graphics
parent2739d8fa205c22319de37bfde570b7a39f9f2c13 (diff)
downloadscummvm-rg350-0f6e231356305043bc7f66ae1cbe2c3a0607c68a.tar.gz
scummvm-rg350-0f6e231356305043bc7f66ae1cbe2c3a0607c68a.tar.bz2
scummvm-rg350-0f6e231356305043bc7f66ae1cbe2c3a0607c68a.zip
SDL: Implement a hellish workaround to fix bug #3368143.
The bug in question is "SDL/OpenGL: Crash when switching renderer backend". To fix it I added a stupid graphics state copying to the SDL backend, in case the graphics manager is switched. The implementation of this is considered a pure workaround, no one should ever do it like this in reality... I just want to die when looking at this... Not sure why I actually committed it. Anyway it at least makes the OpenGL backend testable for those who do not want to fiddle with the config file directly.
Diffstat (limited to 'backends/graphics')
-rw-r--r--backends/graphics/surfacesdl/surfacesdl-graphics.cpp5
1 files changed, 4 insertions, 1 deletions
diff --git a/backends/graphics/surfacesdl/surfacesdl-graphics.cpp b/backends/graphics/surfacesdl/surfacesdl-graphics.cpp
index 81c439e7e2..146200148a 100644
--- a/backends/graphics/surfacesdl/surfacesdl-graphics.cpp
+++ b/backends/graphics/surfacesdl/surfacesdl-graphics.cpp
@@ -249,7 +249,10 @@ void SurfaceSdlGraphicsManager::setFeatureState(OSystem::Feature f, bool enable)
}
bool SurfaceSdlGraphicsManager::getFeatureState(OSystem::Feature f) {
- assert(_transactionMode == kTransactionNone);
+ // We need to allow this to be called from within a transaction, since we
+ // currently use it to retreive the graphics state, when switching from
+ // SDL->OpenGL mode for example.
+ //assert(_transactionMode == kTransactionNone);
switch (f) {
case OSystem::kFeatureFullscreenMode: