void Logger::InitializeLogStream() { SceneManager::GetInstance()->GetStopwatch()->CreateTimer(_T("STAR_LogSaveFileTimer"), 60.0f, false, true, [&] () { SaveLogFile(); }, false); m_LogStream << _T("++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++\n\n"); m_LogStream << _T(" Star Engine version ") << STARENGINE_VERSION << std::endl << std::endl; m_LogStream << _T(" Game is build in"); #ifdef _DEBUG m_LogStream << _T(" debug mode.\n"); #else m_LogStream << _T(" release mode.\n"); #endif #if LOGGER_MIN_LEVEL < 2 m_LogStream << _T(" All Star::Logging levels are enabled.\n"); #elif LOGGER_MIN_LEVEL < 3 m_LogStream << _T(" Star::Logging level info is disabled.\n"); #elif LOGGER_MIN_LEVEL < 4 m_LogStream << _T(" Star::Logging levels info and warning is disabled.\n"); #elif LOGGER_MIN_LEVEL < 5 m_LogStream << _T(" Star::Logging levels info, warning and error is disabled.\n"); #elif LOGGER_MIN_LEVEL < 6 m_LogStream << _T(" All Star::Logging levels are disabled.\n"); #endif m_LogStream << std::endl; m_LogStream << _T(" The Star Engine is licensed under the MIT License. \n"); m_LogStream << _T(" For more information you can go to http://www.starengine.com/ \n\n"); m_LogStream << _T("++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++\n\n"); }
void Logger::SetLogSaveDelayTime(float32 seconds) { #ifndef NO_LOG_FILE SceneManager::GetInstance()->GetStopwatch()->SetTargetTimeTimer( _T("STAR_LogSaveFileTimer"), seconds, true, false); SaveLogFile(); #endif }
int APIENTRY WinMain(HINSTANCE hInstance,HINSTANCE hPrevInstance,LPSTR lpCmdLine,int nCmdShow) { RECT rect; int cc; wc.style = CS_OWNDC | CS_VREDRAW | CS_HREDRAW; wc.lpfnWndProc = WndProc; wc.cbClsExtra = wc.cbWndExtra = 0; wc.hInstance = 0; wc.hIcon = NULL; wc.hCursor = LoadCursor(0,IDC_ARROW); wc.hbrBackground = NULL; wc.lpszMenuName = NULL; wc.lpszClassName = "raytracer"; if (!RegisterClass(&wc)) return FALSE; rect.left = rect.top = 0; rect.right = SCRWIDTH, rect.bottom = SCRHEIGHT; AdjustWindowRect( &rect, WS_POPUP|WS_SYSMENU|WS_CAPTION, 0 ); rect.right -= rect.left, rect.bottom -= rect.top; wnd = CreateWindowEx( 0, "raytracer", "raytracer", WS_OVERLAPPEDWINDOW & ~WS_MAXIMIZEBOX & ~WS_THICKFRAME, CW_USEDEFAULT, CW_USEDEFAULT, rect.right, rect.bottom, 0, 0, 0, 0 ); ShowWindow(wnd,SW_NORMAL); for ( cc = 0; cc < sizeof( BITMAPINFOHEADER ) + 16; cc++ ) bitmapbuffer[cc] = 0; bh = (BITMAPINFO *)&bitmapbuffer; bh->bmiHeader.biSize = sizeof( BITMAPINFOHEADER ); bh->bmiHeader.biPlanes = 1; bh->bmiHeader.biBitCount = 32; bh->bmiHeader.biCompression = BI_BITFIELDS; bh->bmiHeader.biWidth = SCRWIDTH, bh->bmiHeader.biHeight = -SCRHEIGHT; ((unsigned long*)bh->bmiColors)[0] = 255 << 16; ((unsigned long*)bh->bmiColors)[1] = 255 << 8; ((unsigned long*)bh->bmiColors)[2] = 255; window_hdc = GetDC(wnd); SystemParametersInfo(SPI_SETSCREENSAVEACTIVE, 0, 0, 0); initConf(config); // prepare output canvas surface = new Surface(SCRWIDTH,SCRHEIGHT); buffer = surface->GetBuffer(); surface->Clear(0); AllocConsole(); //Sortie Console freopen("CONOUT$","wb",stdout); clock_scene.begin(); // ---> start clock_scene // prepare renderer Scene* maScene = new Scene(); maScene->chargerScene(config.filename); maScene->afficherScene(); tracer = new Engine(config); tracer->SetScene(maScene); tracer->SetTarget(surface->GetBuffer(),SCRWIDTH, SCRHEIGHT ); int tpos = 60; clock_scene.end(); // ---> end clock_scene system("Pause"); tracer->InitRender(); clock_render.begin(); // ---> start clock_render tracer->Render(); //calcul de l'image clock_render.end(); // ---> end clock_render SaveImage("test.ppm",tracer->GetImage()); SaveLogFile("Resultat.log",config); afficherClock(); while (1) { DrawWindow(); } FreeConsole(); // Close the console window return 1; }