のglutCloseFunc()
ドキュメント:
ウィンドウが閉じられたときに FreeGLUT が終了するのを防ぎたいユーザーは、glutSetOption
set への使用を検討する必要がありますGLUT_ACTION_ON_WINDOW_CLOSE
。
ドキュメントにglutSetOption()
つながる:
GLUT_ACTION_ON_WINDOW_CLOSE
- ユーザーまたはシステムによってウィンドウが閉じられたときの動作を制御します。
GLUT_ACTION_EXIT
すぐにアプリケーションを終了します (デフォルト、GLUT の動作)。
GLUT_ACTION_GLUTMAINLOOP_RETURNS
メインループからすぐに戻ります。
GLUT_ACTION_CONTINUE_EXECUTION
残りのウィンドウの実行を続行します。
そしてからglutLeaveMainLoop()
:
このglutLeaveMainLoop
関数により、freeglut はイベント ループを停止します。オプションがまたはにGLUT_ACTION_ON_WINDOW_CLOSE
設定されている場合、制御は glutMainLoop を呼び出した関数に戻ります。それ以外の場合、アプリケーションは終了します。GLUT_ACTION_GLUTMAINLOOP_RETURNS
GLUT_ACTION_CONTINUE_EXECUTION
ピースをまとめる:
#include <GL/freeglut.h>
#include <iostream>
void display()
{
glClear( GL_COLOR_BUFFER_BIT );
glutSwapBuffers();
}
int main( int argc, char** argv )
{
glutInit( &argc, argv );
glutInitDisplayMode( GLUT_RGBA | GLUT_DOUBLE );
glutCreateWindow( "GLUT" );
glutDisplayFunc( display );
glutSetOption( GLUT_ACTION_ON_WINDOW_CLOSE, GLUT_ACTION_GLUTMAINLOOP_RETURNS );
std::cout << "Before glutMainLoop()!" << std::endl;
glutMainLoop();
std::cout << "Back in main()!" << std::endl;
return 0;
}