int AgiEngine::init() { // Initialize backend _system->beginGFXTransaction(); initCommonGFX(false); _system->initSize(320, 200); _system->endGFXTransaction(); initialize(); gfx_set_palette(); return 0; }
void GUIErrorMessage(const Common::String &msg) { g_system->setWindowCaption("Error"); g_system->beginGFXTransaction(); initCommonGFX(); g_system->initSize(320, 200); g_system->launcherInitSize(640, 480);//ResidualVM specific if (g_system->endGFXTransaction() == OSystem::kTransactionSuccess) { GUI::MessageDialog dialog(msg); dialog.runModal(); } else { error("%s", msg.c_str()); } }
void initGraphics(int width, int height, const Graphics::PixelFormat *format) { g_system->beginGFXTransaction(); initCommonGFX(); #ifdef USE_RGB_COLOR if (format) g_system->initSize(width, height, format); else { Graphics::PixelFormat bestFormat = g_system->getSupportedFormats().front(); g_system->initSize(width, height, &bestFormat); } #else g_system->initSize(width, height); #endif OSystem::TransactionError gfxError = g_system->endGFXTransaction(); if (!splash && !GUI::GuiManager::instance()._launched) splashScreen(); if (gfxError == OSystem::kTransactionSuccess) return; // Error out on size switch failure if (gfxError & OSystem::kTransactionSizeChangeFailed) { Common::String message; message = Common::String::format("Could not switch to resolution: '%dx%d'.", width, height); GUIErrorMessage(message); error("%s", message.c_str()); } // Just show warnings then these occur: #ifdef USE_RGB_COLOR if (gfxError & OSystem::kTransactionFormatNotSupported) { Common::String message = _("Could not initialize color format."); GUI::MessageDialog dialog(message); dialog.runModal(); } #endif if (gfxError & OSystem::kTransactionModeSwitchFailed) { Common::String message = _("Could not switch to video mode: '"); message += ConfMan.get("gfx_mode"); message += "'."; GUI::MessageDialog dialog(message); dialog.runModal(); } if (gfxError & OSystem::kTransactionStretchModeSwitchFailed) { Common::String message = _("Could not switch to stretch mode: '"); message += ConfMan.get("stretch_mode"); message += "'."; GUI::MessageDialog dialog(message); dialog.runModal(); } if (gfxError & OSystem::kTransactionAspectRatioFailed) { GUI::MessageDialog dialog(_("Could not apply aspect ratio setting.")); dialog.runModal(); } if (gfxError & OSystem::kTransactionFullscreenFailed) { GUI::MessageDialog dialog(_("Could not apply fullscreen setting.")); dialog.runModal(); } if (gfxError & OSystem::kTransactionFilteringFailed) { GUI::MessageDialog dialog(_("Could not apply filtering setting.")); dialog.runModal(); } }
int GobEngine::init() { _snd = new Snd(this); _global = new Global(this); _anim = new Anim(); _cdrom = new CDROM(this); _dataio = new DataIO(this); _pack = new Pack(); _palanim = new PalAnim(this); _gtimer = new GTimer(); _util = new Util(this); if (_features & Gob::GF_GOB1) { _inter = new Inter_v1(this); _parse = new Parse_v1(this); _mult = new Mult_v1(this); _draw = new Draw_v1(this); _game = new Game_v1(this); _video = new Video_v1(this); _init = new Init_v1(this); _map = new Map_v1(this); _goblin = new Goblin_v1(this); _scenery = new Scenery_v1(this); } else if (_features & Gob::GF_GOB2) { _inter = new Inter_v2(this); _parse = new Parse_v2(this); _mult = new Mult_v2(this); _draw = new Draw_v2(this); _game = new Game_v2(this); _video = new Video_v2(this); _init = new Init_v2(this); _map = new Map_v2(this); _goblin = new Goblin_v2(this); _scenery = new Scenery_v2(this); } else error("GobEngine::init(): Unknown version of game engine"); if ((_features & Gob::GF_MAC) || (_features & Gob::GF_GOB1) || (_features & Gob::GF_GOB2)) { if (ConfMan.get("music_driver") == "null") _music = new Music_Dummy(this); else _music = new Music(this); } _system->beginGFXTransaction(); initCommonGFX(false); _system->initSize(320, 200); _system->endGFXTransaction(); // On some systems it's not safe to run CD audio games from the CD. if (_features & GF_CD) checkCD(); int cd_num = ConfMan.getInt("cdrom"); if (cd_num >= 0) _system->openCD(cd_num); _global->_debugFlag = 1; _global->_doRangeClamp = 1; _global->_videoMode = 0x13; _global->_useMouse = 1; _global->_soundFlags = 0; if (ConfMan.hasKey("language")) _language = Common::parseLanguage(ConfMan.get("language")); switch (_language) { case Common::FR_FRA: case Common::RU_RUS: _global->_language = 0; break; case Common::DE_DEU: _global->_language = 1; break; case Common::EN_GRB: _global->_language = 2; break; case Common::ES_ESP: _global->_language = 3; break; case Common::IT_ITA: _global->_language = 4; break; case Common::EN_USA: _global->_language = 5; break; case Common::NL_NLD: _global->_language = 6; break; case Common::KO_KOR: _global->_language = 7; break; case Common::HB_ISR: _global->_language = 8; break; default: // Default to English _global->_language = 2; break; } // FIXME: This is the ugly way of reducing redraw overhead. It works // well for 320x200 but it's unclear how well it will work for // 640x480. g_system->setFeatureState(OSystem::kFeatureAutoComputeDirtyRects, true); return 0; }