//------------------------------------------------------------------------------------------- // メインエントリーポイントです. //------------------------------------------------------------------------------------------- int main( int argc, char** argv ) { #if defined(DEBUG) || defined(_DEBUG) // メモリリーク検出 _CrtSetDbgFlag(_CRTDBG_ALLOC_MEM_DF | _CRTDBG_LEAK_CHECK_DF); #endif//defined(DEBUG) || defined(_DEBUG) { glutInit( &argc, argv ); glutSetOption( GLUT_ACTION_ON_WINDOW_CLOSE, GLUT_ACTION_GLUTMAINLOOP_RETURNS ); glutInitWindowPosition( g_WindowPositionX, g_WindowPositionY ); glutInitWindowSize( g_WindowWidth, g_WindowHeight ); glutInitDisplayMode( GLUT_RGBA | GLUT_DEPTH | GLUT_DOUBLE ); glutCreateWindow( g_WindowTitle ); glutDisplayFunc( OnDisplay ); glutReshapeFunc( OnReshape ); glutIdleFunc( OnIdle ); glutMouseFunc( OnMouse ); glutMotionFunc( OnMotion ); glutPassiveMotionFunc( OnPassiveMotion ); glutKeyboardFunc( OnKeyboard ); glutSpecialFunc( OnSpecial ); if ( OnInit() ) { glutMainLoop(); } OnTerm(); } return 0; }
//------------------------------------------------------------------------------------------- // キーボード押下時の処理です. //------------------------------------------------------------------------------------------- void OnKeyboard( unsigned char key, int x, int y ) { switch( key ) { // ESCキー. case '\033': { OnTerm(); } break; default: break; } }
//------------------------------------------------------------------------------------------------- // 終了処理です. //------------------------------------------------------------------------------------------------- void App::TermApp() { // アプリケーション固有の終了処理. OnTerm(); // D3D12の終了処理. TermD3D(); // ウィンドウの終了処理. TermWnd(); // COMライブラリの終了処理. CoUninitialize(); // ポインタクリア. g_pApp = nullptr; }