[Scummvm-devel] Re: CVS: scummvm/base main.cpp,1.55,1.57
Eugene Sandulenko
sev at scummvm.org
Mon Nov 22 17:41:14 CET 2004
> // Start GFX transaction
> system->beginGFXTransaction();
>
> // See if the game should default to 1x scaler
> if (useDefaultGraphicsMode && (detector._game.features & GF_DEFAULT_TO_1X_SCALER)) {
> system->setGraphicsMode(GFX_NORMAL);
....
>
> // Init the engine (this might change the screen parameters
> result = engine->init();
>
> system->endGFXTransaction();
Albeit it looks logical, this will not work with most current
engines. In their init() method they do these things:
o Start SMUSH playing (FT)
o Set cursor shape (ITE)
o Print OSD message (MT-32)
o set up palette (BASS)
All these functions need access to screen, and that means that they
cannot be called inside of transaction.
There are 2 solutions. Either add yet another OSystem function
initGfx() or move transaction into init() method.
Eugene
More information about the Scummvm-devel
mailing list