GameEnginePtr GameEngine::GetInstance( ) { if ( !_instance ) { _instance = GameEnginePtr(new GameEngine); } return _instance; }
bool EngineMain::Initialize(const EngineParameters& param) { m_pEngineConfig = EngineConfigPtr(new EngineConfig); if(m_pEngineConfig->Load(param.config_file.c_str()) == false) { return false; } m_pGameEngine = GameEnginePtr(new GameEngine); CoreParameters core_param; core_param.input.module = m_pEngineConfig->Settings(L"sys_input", 0); core_param.input.app_handle = param.app_handle; core_param.graphics.app_handle = param.app_handle; core_param.graphics.module = m_pEngineConfig->Settings(L"sys_graphics", 0); core_param.graphics.width = 800; core_param.graphics.height = 600; if(m_pGameEngine->Initialize(core_param) == false) { return false; } m_pGameManager = GameManagerPtr(new GameManager); if(m_pGameManager->Initialize(m_pEngineConfig->Settings(L"game", 0)) == false) { return false; } GameInterface* pGame = m_pGameManager->GetGame(); if(false == pGame->Initialize(m_pGameEngine)) { return false; } return true; }