はい、あなたはglut…Func
いつでも呼び出すことができます。たとえば、あなたはキーボードハンドラ関数に持っている可能性があり、(文脈キー)
void keyfunc_edit(unsigned char key, int x, int y);
void keyfunc_select(unsigned char key, int x, int y);
void keyfunc_edit(unsigned char key, int x, int y)
{
switch(key){
case 'x':
case 'X':
/* switch to select mode */
glutKeyboardFunc(keyfunc_select);
break;
}
void keyfunc_select(unsigned char key, int x, int y)
{
switch(key){
case 'e':
case 'E':
/* switch to edit mode */
glutKeyboardFunc(keyfunc_edit);
break;
}
あなたはいつでも、ディスプレイ、アイドルなどのためのコールバックを切り替えることができますので、これは、任意の GLUTコールバックのために働くそれらを切り替えます。たとえば、ロード・スクリーンを表示したいとしたら、ディスプレイ・コールバックをロード・スクリーン表示機能に切り替え、ロードが完了してシーン・レンダリング機能に変わるのは理にかなっています。