最終更新: mikk_ni3_92 2009年11月01日(日) 19:12:47履歴
現在地 >> メニュー >> freeglut >> freeglut編03
glutSetOption関数を使って初期設定を行う事ができる。
また、この関数を使って作成したウィンドウの右上の「×」ボタンをクリックした後に、
glutMainLoopに戻ってくる設定も可能である。
注意点は、glutSetOptionの記述位置。
例えば、
オリジナルのGLUTは、「glutMainLoop関数」から戻ってくる事が出来なかった。
しかし、freeglutでは「glutSetOption関数」を使う事で、メインループから戻ってくる事が可能である。
【例】
第1引数に「GLUT_ACTION_ON_WINDOW_CLOSE」、
第2引数に「GLUT_ACTION_GLUTMAINLOOP_RETURNS」を指定すると戻ってくる。
なお、
glutSetOption関数を使って初期設定を行う事ができる。
また、この関数を使って作成したウィンドウの右上の「×」ボタンをクリックした後に、
glutMainLoopに戻ってくる設定も可能である。
void glutSetOption(GLenum eWhat, int value)
eWhat | 内容 |
GLUT_ACTION_ON_WINDOW_CLOSE | 「GLUT_ACTION_EXIT(デフォルト値)」、「GLUT_ACTION_GLUTMAINLOOP_RETURNS」、「GLUT_ACTION_CONTINUE_EXECUTION」のいずれかを指定 |
GLUT_INIT_DISPLAY_MODE | ディスプレイモードを指定 |
GLUT_INIT_WINDOW_HEIGHT | ウィンドウの初期高さを指定 |
GLUT_INIT_WINDOW_WIDTH | ウィンドウの初期幅を指定 |
GLUT_INIT_WINDOW_X | ウィンドウの初期 x座標 |
GLUT_INIT_WINDOW_Y | ウィンドウの初期 y座標 |
GLUT_RENDERING_CONTEXT | 「GLUT_CREATE_NEW_CONTEXT」 か 「GLUT_USE_CURRENT_CONTEXT」を指定。現在のレンダリングコンテキストを新しいウィンドウと共有させるかを設定 |
GLUT_WINDOW_CURSOR | 「glutSetCursor関数」のように、カーソルの設定を行う 。指定する値は「glutSetCursor関数」と同じ |
注意点は、glutSetOptionの記述位置。
例えば、
glutSetOption(GLUT_INIT_WINDOW_HEIGHT,480); //ウィンドウ作成前に指定 glutSetOption(GLUT_INIT_WINDOW_WIDTH ,640); glutCreateWindow("glutSetOption"); glutSetOption(GLUT_WINDOW_CURSOR ,GLUT_CURSOR_HELP); //ウィンドウ作成後に指定のように、「ウィンドウを作成する前に設定するもの」、「作成後に設定するもの」、「どこに書いてもよいもの」がある。
オリジナルのGLUTは、「glutMainLoop関数」から戻ってくる事が出来なかった。
しかし、freeglutでは「glutSetOption関数」を使う事で、メインループから戻ってくる事が可能である。
【例】
glutSetOption(GLUT_ACTION_ON_WINDOW_CLOSE,GLUT_ACTION_GLUTMAINLOOP_RETURNS); … … glutMainLoop(); puts("Back from the free glutMainloop()");
第1引数に「GLUT_ACTION_ON_WINDOW_CLOSE」、
第2引数に「GLUT_ACTION_GLUTMAINLOOP_RETURNS」を指定すると戻ってくる。
なお、
- GLUT_ACTION_EXIT ⇒ デフォルト値
- GLUT_ACTION_GLUTMAINLOOP_RETURNS ⇒ メインループから戻ってくる
- GLUT_ACTION_CONTINUE_EXECUTION ⇒ プログラム実行し続ける
- freeglut編03::まとめ(glutMainLoopから戻ってくる)
- freeglut編03::まとめ2(各種初期設定を行う)