//---------------------------------------------------------------------------// // WinMain // //---------------------------------------------------------------------------// int APIENTRY WinMain(HINSTANCE hInstance, HINSTANCE hPrevInstance, LPSTR lpCmdLine, int nCmdShow) { CoInitialize(NULL); InitFloatToStr(); srand ((unsigned)time(NULL)); // Load launcher CLauncher Launcher; if (Launcher.Show((unsigned)hInstance)) { string lLogFile = "neonv2.log"; GESTION_MEMORIA_INIT(); GLOGSTART(LOGLISTBOX, (long)lLogFile.c_str()); CLuaPlayer *pLuaPlayer = NEW CLuaPlayer(); pLuaPlayer->Init(hInstance); while (pLuaPlayer->Update() && !s_End) { pLuaPlayer->Draw(); } DISPOSE(pLuaPlayer); GLOGEND(); GESTION_MEMORIA_END(); } IAppOptions::EndInstance(); return 0; }
int __stdcall wWinMain( HINSTANCE hInstance, HINSTANCE hPrevInstance, LPWSTR lpCmdLine, int nShowCmd ) { g_hInstance = hInstance; CLauncher la; bool runUpdate = false; // parse command line args for ( int i=0; i<__argc; i++ ) { if ( 0 == wcscmp(__wargv[i], LAUNCHER_UPDATE_KEY) ) { logger.emit() << L"cmd key " LAUNCHER_UPDATE_KEY << std::endl; runUpdate = true; } else if ( 0 == wcscmp(__wargv[i], LAUNCHER_APPDIR_KEY) && (i+1)<__argc ) { logger.emit() << L"cmd key appdir: " << __wargv[i+1] << std::endl; la.setAppDir(__wargv[i+1]); } } // run update if ( runUpdate && !la.appDir().empty() ) { logger.emit() << L"Running update" << std::endl; la.update(); } // try to update else if ( !runUpdate && la.tryUpdate() ) { logger.emit() << L"Try to run update" << std::endl; return 0; } // run application logger.emit() << L"Running application" << std::endl; int ret = la.run(); return ret; }
int main() { //MEMORY::MemoryManager.setLogMode(MEMORY::MMLM_EXTD); CLauncher launcher; if(!launcher.run()) return 0; SEngineParams params; params.Renderer = ERT_OPENGL; params.Bits = 16; params.WindowSize = dimension2du(640,480); params.FullScreen = 0; INovaEngine* Engine = createEngineEx(params); scene::ISceneCamera* cam = Engine->getSceneManager()->createSceneCamera(); cam->RegisterNode(); cam->setActive(); cam->setPosition(core::vector3df(0,0,3)); cam->setTarget(core::vector3df(0,0,-1)); cam->release(); gui::IFont* font = Engine->getResourceManager()->loadFont("myfont.fnt"); Engine->getGUIManager()->setActiveFont(font); //-------------------------------------------------------------------------- u32 FPS = 60; std::vector<u32> FpsList; while(Engine->update()) { if(FPS != Engine->getRenderer()->getFPS()) { char buf1[256]; sprintf(buf1,"fps:%f mpf:%f ppd:%d vpd:%d",Engine->getRenderer()->getFPS(),Engine->getRenderer()->getMPF(),Engine->getRenderer()->getPPD(),Engine->getRenderer()->getVPD()); Engine->getWindow()->setWindowCaption(buf1); FPS = Engine->getRenderer()->getFPS(); FpsList.push_back(FPS); } Engine->getRenderer()->begin_frame(); Engine->getGUIManager()->renderGUI(); // Engine->getGUIManager()->drawText(core::vector2ds(20,400),NULL,"Simple test (external font) 46 symbols ^_^ [@] !!"); //Engine->getGUIManager()->drawText(core::vector2ds(20,200),NULL,"Simple multiline\ntest message\nnananananana\r\nlalalalala"); Engine->getRenderer()->end_frame(); } //r + 1d + 46 = 0.2173 ms = 4608fps (0.2170ms) //r + 1d * 49 = 4.381 fps (0.2282 ms) pers 0.001838 ms //r + 7d * 7 = 1.995 fps (0.5012 ms) pers 0.007410 ms //r = 0.1380 ms = 7241fps (0.1381ms) //46 = 0.0793 ms //1 = 0.00172 ms u32 FpsM=0; for(int i = 0; i < FpsList.size(); i++) { FpsM += FpsList[i]; } FpsM/=FpsList.size()+1; printf("MFPS = %d tested:%d seconds\n",FpsM,FpsList.size()); font->release(); Engine->release(); return 0; }