現在地 >> メニュー >> freeglut >> freeglut編03

glutSetOption


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 ⇒ プログラム実行し続ける
という3つの処理が用意されている。

サンプルコード


目次

― その他 ―

Wiki内検索

計測中...(07.10.8〜)

Save The World






▲よろしければ広告のクリックもお願いします


▲ランキングに参加しました

管理人/副管理人のみ編集できます