/******************************************************************* * WinMain *******************************************************************/ int APIENTRY _tWinMain( HINSTANCE hInstance, HINSTANCE hPrevInstance, LPTSTR lpCmdLine, int nCmdShow ) { //set up the application window if ( !initWindow(hWnd, hInstance, 800 , 600)) return -1; //initialize raw input if ( !InitializeRawInput() ) return -1; //create renderer if (!renderer.Initialize(&hWnd) ) return -1; //initialize test scene if (!renderer.InitializeScene() ) return -1; renderer.SetShadowMapBias( smBias); //camera setup float eye[3] = {0, 10, -10}, fp[3] = {9,9,0}, u[3] = {0,1,0}; camera.PositionCamera(eye, fp, u); camera.SetPerspectiveProjectionLH( 0.785f, 4.0f/3, 1.0f, 1000.0f); camera.SetMovementSpeed( 10.0f ); camera.Update(); //show first frame and welcome message renderer.RenderFrame(); MessageBox( hWnd, L"T = Toggle Shadow Map Filtering\nY = Toggle Shadow Map Resolution\nU = Toggle Shadow Map Generation Method\n +/- = Adjust shadow map bias", L"DirectX10 Tutorial 10 - Shadow Mapping", MB_ICONINFORMATION ); //frame timer HRTimer fTimer; fTimer.Reset(); //main message loop MSG msg = {0}; while (WM_QUIT != msg.message) { if (PeekMessage(&msg, NULL, 0, 0, PM_REMOVE) == TRUE) { TranslateMessage(&msg); DispatchMessage(&msg); } else { //limit FPS to 60FPS - hack to reduce GPU squealing while ( fTimer.GetElapsedTimeMilliseconds() < 16 ); renderer.RenderFrame(); camera.Update(); fTimer.Reset(); } } //cleanup return 0; }
/******************************************************************* * WinMain *******************************************************************/ int APIENTRY _tWinMain( HINSTANCE hInstance, HINSTANCE hPrevInstance, LPTSTR lpCmdLine, int nCmdShow ) { RedirectIOToConsole(); // Set up the application window if (!InitWindow( hInstance, nCmdShow, hWnd)) return 0; //set up direct x manager if (!dx.initialize(&hWnd , &hInstance)) return 0; // showing cursor: //ShowCursor(TRUE); //hTimer.StartTimer(); // Main message loop hTimer.Reset(); MSG msg = {0}; while (WM_QUIT != msg.message) { if (PeekMessage(&msg, NULL, 0, 0, PM_REMOVE) == TRUE) { TranslateMessage(&msg); DispatchMessage(&msg); } else { //hTimer. hTimer.UpdateTime(); dx.renderScene(&hTimer); } } return (int) msg.wParam; }
int main() { #ifdef _DEBUG _CrtSetDbgFlag( _CRTDBG_ALLOC_MEM_DF | _CRTDBG_LEAK_CHECK_DF ); _CrtDumpMemoryLeaks(); #endif srand((unsigned int)time(NULL)); _wmkdir(L"TempFiles"); //ContructExample(); printf("Timer is started!\n"); timer.Reset(); if (!FirstStep()) { printf("First step: error occured!\n"); _getch(); return 0; } if (!SecondStep()) { printf("Second step: error occured!\n"); _getch(); return 0; } #ifdef DEBUG_INFO FILE *pFile = nullptr; fopen_s(&pFile, "task2result.txt", "rb"); if (!pFile) { printf("task2result file hasn't readed: error occured!\n"); _getch(); return 0; } int *pTempArray = new int[MAX_ELEMS_IN_MEM]; while (!feof(pFile)) { int nNumReadedNumbs = 0; if (!(nNumReadedNumbs = fread_s(pTempArray, MAX_ELEMS_IN_MEM * 4, 4, MAX_ELEMS_IN_MEM, pFile))) break; for (int i = 0; i < nNumReadedNumbs; i++) { printf("%d ", pTempArray[i]); } } printf("\n\n"); delete[] pTempArray; fclose(pFile); #endif //printf("Test: %d\n", i); printf("The task has done!\n"); printf("Time: %0.5f\n", timer.GetElapsed()); //_getch(); return 0; }