標籤:
GLUT事件處理(Event Processing)視窗管理(Window Management)函數
void glutMainLoop(void)
讓glut程式進入事件迴圈。在一個glut程式中最多隻能調用一次。一旦調用,會直到程式結束才返回。
int glutCreateWindow(char* name);
產生一個頂層的視窗。name 作為視窗的名字,也就是視窗標題列顯示的內容。
傳回值是產生視窗的標記符,可用函數glutGetWindow()加以引用。
int glutCreateSubWindow(int win,int x,int y,int width,int height);
建立一個子視窗。win是其父視窗的標記符。x,y是相對父視窗的位移,以像素表示。
width,height是子視窗的寬和高。
void glutSetWindow(int win);
int glutGetWindow(void);
功能分別是:設定標記符為win的視窗為當前視窗;返回當前視窗的標記符。
void glutDestroyWindow(int win);
銷毀以win標記的視窗。
void glutPostRedisplay(void);
將當前視窗打上標記,標記其需要再次顯示。
void glutSwapBuffers(void);
當視窗模式為雙緩衝時,此函數的功能就是把後台緩衝的內容交換到前台顯示。當然,只有單緩 存時,使用它的功能跟用glFlush()一樣。
而使用雙緩衝是為了把完整圖畫一次性顯示在視窗上,或者是為了實現動畫。
void glutPositionWindow(int x,int y);
改變當前視窗的位置:當前視窗是頂層視窗時,x,y是相對於螢幕的的位移;當前視窗若是子視窗時,x,y是相對其父視窗原點的位移。
void glutReshapeWindow(int width,int height);
改變當前視窗的大小。
width,height是當前視窗新的寬度和高度值,當然只能是正值。
void glutFullscreen(void);
讓當前視窗全螢幕顯示。當前視窗是頂層視窗時才有效。
void glutPopWindow(void);
void glutPushWindow(void);
對頂層視窗和子視窗均有效。改變當前視窗在棧中相對於其它視窗的次序。
void glutShowWindow(void);
void glutHideWindow(void);
void glutIconifyWindow(void);
這三個函數作用是改變當前視窗的顯示狀態。
- glutShowWindow讓當前視窗可視(這時它還是可能被其它視窗擋住)。
- glutHideWindow讓當前視窗成為不可視狀態。
- glutIconifyWindow讓當前視窗成為一個表徵圖,也即是最小化。
void glutSetWindowTitle(char* name);
void glutSetIconTitle(char* name);
設定當前視窗(必須是頂層視窗)的標題和表徵圖化時的標題。
void glutSetCursor(int cursor);
設定當前視窗的游標樣式。
cursor可選值有許多:如GLUT_CURSOR_RIGHT_ARROW指向右邊的游標,GLUT_CURSOR_LEFT_ARROW指向左邊的游標,GLUT_CURSOR_INFO成為手狀。
GLUT_CURSOR_DESTROY呈叉狀,GLUT_CURSOR_HELP呈現問號的形狀。等等。
轉至:http://blog.csdn.net/augusdi/article/details/7076771
OpenGL的GLUT事件處理(Event Processing)視窗管理(Window Management)函數[轉]