SDL: Make activateManager/deactivateManager SdlGraphicsManager specific.

We can do this now that we can use virtual inheritance and dynamic_cast
because we enabled RTTI.
This commit is contained in:
Johannes Schickel 2013-10-24 00:06:32 +02:00
parent 281672e171
commit ea6d38d5f3
5 changed files with 22 additions and 30 deletions

View file

@ -91,7 +91,7 @@ OSystem_SDL::~OSystem_SDL() {
delete _savefileManager;
_savefileManager = 0;
if (_graphicsManager) {
_graphicsManager->deactivateManager();
dynamic_cast<SdlGraphicsManager *>(_graphicsManager)->deactivateManager();
}
delete _graphicsManager;
_graphicsManager = 0;
@ -240,7 +240,7 @@ void OSystem_SDL::initBackend() {
// so the virtual keyboard can be initialized, but we have to add the
// graphics manager as an event observer after initializing the event
// manager.
_graphicsManager->activateManager();
dynamic_cast<SdlGraphicsManager *>(_graphicsManager)->activateManager();
}
#if defined(USE_TASKBAR)
@ -585,14 +585,14 @@ bool OSystem_SDL::setGraphicsMode(int mode) {
// manager, delete and create the new mode graphics manager
if (_graphicsMode >= _firstGLMode && mode < _firstGLMode) {
debug(1, "switching to plain SDL graphics");
_graphicsManager->deactivateManager();
dynamic_cast<SdlGraphicsManager *>(_graphicsManager)->deactivateManager();
delete _graphicsManager;
_graphicsManager = new SurfaceSdlGraphicsManager(_eventSource);
switchedManager = true;
} else if (_graphicsMode < _firstGLMode && mode >= _firstGLMode) {
debug(1, "switching to OpenGL graphics");
_graphicsManager->deactivateManager();
dynamic_cast<SdlGraphicsManager *>(_graphicsManager)->deactivateManager();
delete _graphicsManager;
_graphicsManager = new OpenGLSdlGraphicsManager(_desktopWidth, _desktopHeight, _eventSource);
@ -602,7 +602,7 @@ bool OSystem_SDL::setGraphicsMode(int mode) {
_graphicsMode = mode;
if (switchedManager) {
_graphicsManager->activateManager();
dynamic_cast<SdlGraphicsManager *>(_graphicsManager)->activateManager();
_graphicsManager->beginGFXTransaction();
#ifdef USE_RGB_COLOR