Пример #1
0
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;
}
Пример #2
0
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;
}