bool CEngineEditor::OnInit() { bool ret = wxApp::OnInit(); if ( ret ) { CLanguageManager::GetInstance()->LoadFromFile(eLT_English); m_pMainFrame = new CEditorMainFrame(wxT("FCEngineEditor")); m_pMainFrame->InitFrame(); m_pMainFrame->ChangeLanguage(); m_pMainFrame->Show(true); CEngineCenter::GetInstance()->Initialize(); CreatePtrEditor(); m_pMainFrame->InitComponentsPage(); #ifndef _DEBUG wxBitmap bmp; bmp.LoadFile(wxT("../resource/splash.png"), wxBITMAP_TYPE_PNG); CEngineSplash* pSplash = new CEngineSplash(&bmp, wxSPLASH_CENTRE_ON_SCREEN|wxSPLASH_NO_TIMEOUT, 0, m_pMainFrame, wxID_ANY, wxDefaultPosition, wxDefaultSize, wxSIMPLE_BORDER|wxSTAY_ON_TOP); pSplash->Instance(); BEATS_SAFE_DELETE(pSplash); #endif // Set working path. TCHAR szPath[MAX_PATH]; GetModuleFileName(NULL, szPath, MAX_PATH); int iStrPos = CStringHelper::GetInstance()->FindLastString(szPath, _T("\\"), false); BEATS_ASSERT(iStrPos >= 0); szPath[iStrPos] = 0; m_strWorkingPath.assign(szPath); m_pMainFrame->StartRenderUpdate(); } return ret; }
bool CEngineEditor::OnInit() { bool ret = wxApp::OnInit(); if ( ret ) { // Set working path. TCHAR szPath[MAX_PATH]; GetModuleFileName(NULL, szPath, MAX_PATH); int iStrPos = CStringHelper::GetInstance()->FindLastString(szPath, _T("\\"), false); BEATS_ASSERT(iStrPos >= 0); szPath[iStrPos] = 0; m_strWorkingPath.assign(szPath); CEditorConfig::GetInstance()->LoadFromFile(); CLanguageManager::GetInstance()->LoadFromFile(eLT_English); m_pMainFrame = new CEditorMainFrame(wxT("BeyondEngineEditor")); m_pMainFrame->InitFrame(); const TString& strSourceCodePath = CResourcePathManager::GetInstance()->GetResourcePath(CResourcePathManager::eRPT_SourceCode); std::vector<TString> scanPath; scanPath.push_back(strSourceCodePath); CEnumStrGenerator::GetInstance()->Init(scanPath, ENGINE_ENUM_INFO_FILE); #ifndef _DEBUG m_pMainFrame->Freeze(); wxBitmap bmp; if(bmp.LoadFile(wxT("../resource/splash.png"), wxBITMAP_TYPE_PNG)) { wxImage image = bmp.ConvertToImage(); image.Rescale(SPLASHWIDTH, SPLASHHEIGHT); wxBitmap splashBitmap(image); CEngineSplash* pSplash = new CEngineSplash(splashBitmap, wxSPLASH_CENTRE_ON_SCREEN|wxSPLASH_TIMEOUT, 3000, m_pMainFrame, wxID_ANY, wxDefaultPosition, wxDefaultSize, wxSIMPLE_BORDER|wxSTAY_ON_TOP); pSplash->Instance(); } else { m_pMainFrame->Thaw(); #endif m_pMainFrame->Show(true); // HACK: we can only do some initialize logic after the opengl is initialized. // We initialize OPENGL in m_pViewScreen->SetContextToCurrent() of Show() That's why we call PostInitialize here. m_pMainFrame->PostInitialize(); #ifndef _DEBUG m_pMainFrame->StartRenderUpdate();//Debug model use OnIdle instead } #endif } return ret; }