標籤:
OpenGL的註冊回呼函數
void glutDisplayFunc(void (*func)(void) );
為當前視窗設定顯示回呼函數
void glutOverlayDisplayFunc(void (*func)(void) );
註冊當前視窗的重疊層的顯示回呼函數
void glutReshapeFunc(void (*Func)(int width, int height) );
指定當視窗的大小改變時調用的函數
void glutKeyboardFunc(void (*func) (unsigned char key, int x, int y) );
註冊當前視窗的鍵盤迴調函數
void glutMouseFunc(void (*func) (int button, int state, int x, int y));
註冊當前視窗的滑鼠回呼函數
func為註冊的滑鼠回呼函數,這個函數完成滑鼠事件的處理
button為滑鼠的按鍵,為以下定義的常量
GLUT_LEFT_BUTTON |
滑鼠左鍵 |
GLUT_MIDDLE_BUTTON |
滑鼠中鍵 |
GLUT_RIGHT_BUTTON |
滑鼠右鍵 |
state為滑鼠按鍵的動作,為以下定義的常量
GLUT_UP |
滑鼠釋放 |
GLUT_DOWN |
滑鼠按下 |
x,y為滑鼠按下式,游標相對於視窗左上方的位置
void glutMotionFunc(void (*func)(int x, int y));
void glutPassiveMotionFunc(void (*func)(int x, int y));
設定移動回呼函數;設定當前滑鼠移動函數
Func為註冊的滑鼠移動函數
x,y為滑鼠按下式,游標相對於視窗左上方的位置
當滑鼠在視窗中按下並移動時調用glutMotionFunc註冊的回呼函數
當滑鼠在視窗中移動時調用glutPassiveMotionFunc註冊的回呼函數
void glutVisibilityFunc(void (*func) (int state) );
設定當前視窗的可視回呼函數
Func為指定的可視回呼函數
state表示視窗的可視性,為以下常量:
GLUT_NOT_VISIBLE |
視窗完全不可見 |
GLUT_VISIBLE |
視窗可見或部分可見 |
這個函數設定當前視窗的可視回呼函數,當視窗的可視性改變時,該視窗的可視回呼函數被調用.只要視窗中的任何一個像素是可見的,或者他的任意一個子視窗中任意一個像素是可見的,GLUT則認為視窗是可見的.
void glutEntryFunc(void (*func) (int state));
設定滑鼠的進出視窗的回呼函數
Func為註冊的滑鼠進出回呼函數
state為滑鼠的進出狀態,為以下常量之一:
GLUT_LEFT |
滑鼠離開視窗 |
GLUT_RIGHT |
滑鼠進入視窗 |
當視窗取得焦點或失去焦點時調用這個函數,當滑鼠進入視窗地區並點擊時,state為GLUT_RIGHT,當滑鼠離開視窗地區點擊其他視窗時,state為GLUT_LEFT.
void glutSpecialFunc(void (*func) (int key, int x, int y))
設定當前視窗的特定鍵的回呼函數
Func為註冊的特定鍵的回呼函數
key為按下的特定鍵,為以下定義的常量:
key常量 |
描述 |
GLUT_KEY_F1 |
F1功能鍵 |
GLUT_KEY_F2 |
F2功能鍵 |
GLUT_KEY_F3 |
F3功能鍵 |
GLUT_KEY_F4 |
F4功能鍵 |
GLUT_KEY_F5 |
F5功能鍵 |
GLUT_KEY_F6 |
F6功能鍵 |
GLUT_KEY_F7 |
F7功能鍵 |
GLUT_KEY_F8 |
F8功能鍵 |
GLUT_KEY_F9 |
F9功能鍵 |
GLUT_KEY_F10 |
F10功能鍵 |
GLUT_KEY_F11 |
F11功能鍵 |
GLUT_KEY_F12 |
F12功能鍵 |
GLUT_KEY_LEFT |
左方向鍵 |
GLUT_KEY_UP |
上方向鍵 |
GLUT_KEY_RIGHT |
右方向鍵 |
GLUT_KEY_DOWN |
下方向鍵 |
GLUT_KEY_PAGE_UP |
PageUp鍵 |
GLUT_KEY_PAGE_DOWN |
PageDown鍵 |
GLUT_KEY_HOME |
Home鍵 |
GLUT_KEY_END |
End鍵 |
GLUT_KEY_INSERT |
Insert鍵 |
x,y為當按下鍵時滑鼠的座標,相對於視窗左上方,以像素為單位
注意:ESC,斷行符號和delete鍵由ASCII碼產生.
void glutMenuStatusFunc(void (*func) (int status, int x, int y));
設定菜單狀態回呼函數
func是註冊的菜單狀態回呼函數
status是當前是否使用菜單,為以下定義的常量
GLUT_MENU_IN_USE |
菜單正在使用 |
GLUT_MENU_NOT_IN_USE |
菜單未被使用 |
x,y是滑鼠按下式,游標相對於視窗左上方的位置
這個函數時glut程式判定是否正在使用菜單,當快顯功能表時,調用註冊的菜單狀態回呼函數,同時status設定為常量GLUT_MENU_IN_USE, 當菜單使用完畢時,也調用菜單狀態回呼函數,此時status變數變為GLUT_MENU_NOT_IN_USE.從已彈出的菜單中再彈出的菜單不產生菜單狀態回調過程.每個glut程式只有一個菜單狀態回呼函數.
glutSpaceballRotateFunc
glutSpaceballButtonFunc
glutButtonBoxFunc
glutDialsFunc
glutTabletMotionFunc
glutTabletButtonFunc
void glutMenuStatusFunc(void (*func) (int status, int x, int y));
設定菜單狀態回呼函數
func為註冊的菜單狀態回呼函數
status表示當前是否使用菜單,為以下定義的常量
GLUT_MENU_IN_USE |
菜單正在使用 |
GLUT_MENU_NOT_IN_USE |
菜單未被使用 |
x,y表示滑鼠按下式,游標相對於視窗左上方的位置
這個函數時glut程式判定是否正在使用菜單,當快顯功能表時,調用註冊的菜單狀態回呼函數,同時status設定為常量GLUT_MENU_IN_USE, 當菜單使用完畢時,也調用菜單狀態回呼函數,此時status變數變為GLUT_MENU_NOT_IN_USE.從已彈出的菜單中再彈出的菜單不產生菜單狀態回調過程.每個glut程式只有一個菜單狀態回呼函數.
void glutIdleFunc(void (*func) (void));
設定空閑回呼函數
func表示當系統空閑時調用的函數,它的形式為void func(void)
void glutTimerFunc(unsigned int msecs, void (*Func)(int value), int value);
註冊一個回呼函數,當指定時間值到達後,由GLUT調用註冊的函數一次
msecs是等待的時間
Func是註冊的函數
value是指定的一個數值,用來傳遞到回呼函數Func中
這個函數註冊了一個回呼函數,當指定的毫秒數到達後,這個函數就調用註冊的函數,value參數用來向這個註冊的函數中傳遞參數.
轉至:http://blog.csdn.net/augusdi/article/details/7076760
OpenGL的GLUT註冊回呼函數[轉]