OpenGL的GLUT註冊回呼函數[轉]

來源:互聯網
上載者:User

標籤:

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註冊回呼函數[轉]

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.