int glutGet(GLenum state);
檢索指定的GLUT狀態
參數:
state:指定要檢索的狀態類型,為以下常量:
GLUT_WINDOW_X:當前窗口的x坐標,以像素為單位.
GLUT_WINDOW_Y:當前窗口的y坐標,以像素為單位.
GLUT_WINDOW_WIDTH:當其窗口的寬度,以像素為單位.
GLUT_WINDOW_HEIGHT:當前窗口的高度,以像素為單位.
GLUT_WINDOW_BUFFER_SIZE:當前窗口中,顏色分量占用的位數,即用多少bit表示顏色分量.
GLUT_WINDOW_STENCIL_SIZE:當前窗口中,蒙板分量占用的位數,即用多少bit表示蒙板分量.
GLUT_WINDOW_DEPTH_SIZE:當前窗口中,深度分量占用的位數,即用多少bit表示深度分量.
GLUT_WINDOW_RED_SIZE:當前窗口中,紅色分量占用的位數,即用多少bit表示紅色分量.
GLUT_WINDOW_GREEN_SIZE:當前窗口中,綠色分量占用的位數,即用多少bit表示綠色分量.
GLUT_WINDOW_BLUE_SIZE:當前窗口中,藍色分量占用的位數,即用多少bit表示藍色分量.
GLUT_WINDOW_ALPHA_SIZE:當前窗口中,alpha色分量占用的位數,即用多少bit表示alpha色分量.
GLUT_WINDOW_ACCUM_RED_SIZE:當前窗口累積緩存中,紅色分量占用的位數,即用多少bit表示紅色分量.
GLUT_WINDOW_ACCUM_GREEN_SIZE:當前窗口累積緩存中,綠色分量占用的位數,即用多少bit表示綠色分量.
GLUT_WINDOW_ACCUM_BLUE_SIZE:當前窗口累積緩存中,藍色分量占用的位數,即用多少bit表示藍色分量.
GLUT_WINDOW_ACCUM_ALPHA_SIZE:當前窗口累積緩存中,alpha色分量占用的位數,即用多少bit表示alpha色分量.
GLUT_WINDOW_DOUBLEBUFFER:如果窗口式雙緩存模式,返回1,否則返回0.
GLUT_WINDOW_RGBA:如果窗口是RGBA模式,返回1,否則返回0.
GLUT_WINDOW_PARENT:查詢當前窗口的父窗口個數,如果為頂層窗口返回0.
GLUT_WINDOW_NUM_CHILDREN:查詢當前窗口的子窗口個數.
GLUT_WINDOW_NUM_SAMPLES:查詢多重采樣的采樣點個數.
GLUT_WINDOW_STEREO:查詢是否使用立體模式,是則返回1,否則返回0.
GLUT_WINDOW_CURSOR:返回光標的整數標示.
GLUT_SCREEN_HEIGHT:屏幕的高度,以像素為單位.
GLUT_SCREEN_WIDTH:屏幕的寬度,以像素為單位.
GLUT_SCREEN_WIDTH_MM:屏幕的寬度,以毫米為單位.
GLUT_SCREEN_HEIGHT_MM:屏幕的高度,以毫米為單位.
GLUT_MENU_NUM_ITEMS:查詢當前菜單包含的菜單項的個數.
GLUT_DISPLAY_MODE_POSSIBLE:查詢窗口系統是否支持當前的顯示模式,1表示支持,0表示不支持.
GLUT_INIT_DISPLAY_MODE:初始窗口的顯示模式.
GLUT_INIT_WINDOW_X:初始窗口的x坐標.
GLUT_INIT_WINDOW_Y:初始窗口的y坐標.
GLUT_INIT_WINDOW_WIDTH:初始窗口的寬度.
GLUT_INIT_WINDOW_HEIGHT:初始窗口的高度.
GLUT_ELAPSED_TIME:返回兩次調用glutGet(GLUT_ELAPSED_TIME)的時間間隔,單位為毫秒,返回值根據查詢的內容返回相應的值,無效的狀態名返回-1.
GLUT_WINDOW_COLORMAP_SIZE:返回顏色索引表的大小.
//*******************************************************************************************
int glutDeviceGet(GLenum type);
檢索設備信息
參數:
type:要檢索的設備信息的名字,為以下常量:
GLUT_HAS_KEYBOARD 如果鍵盤可用,返回非0值,否則,返回0.
GLUT_HAS_MOUSE 如果鼠標可用,返回非0值,否則,返回0.
GLUT_NUM_MOUSE_BUTTONS 返回鼠標支持的按鍵數,如果鼠標不可用,返回0,返回值0,表示檢索的設備不存在,非0表示設備可用.
GLUT_HAS_SPACEBALL:如果spaceball可用,返回非0值,否則,返回0.
GLUT_HAS_DIAL_AND_BUTTON_BOX:如果撥號按鍵盒可用,返回非0值,否則,返回0.
GLUT_HAS_TABLET:如果圖形板可用,返回非0值,否則,返回0.
GLUT_NUM_SPACEBALL_BUTTONS:返回spaceball支持的按鍵數,如果spaceball不存在,返回0.
GLUT_NUM_BUTTON_BOX_BUTTONS:返回撥號按鍵盒支持的按鍵數,如果撥號按鍵盒不存在,返回0.
GLUT_NUM_DIALS:返回撥號按鍵盒支持的撥號數,如果撥號按鍵盒不存在,返回0.
GLUT_NUM_TABLET_BUTTONS:返回圖形板支持的按鍵數,如果圖形板不存在,返回0.
GLUT_DEVICE_IGNORE_KEY_REPEAT:如果當前窗口被設置成關閉自動重復按鍵,則返回非0值.
GLUT_DEVICE_KEY_REPEAT:返回自動重復按鍵的設置狀態.(說明文件上說是返回連續擊鍵的速率,其實此說法有誤.)
GLUT_HAS_JOYSTICK:如果操縱桿可用,返回非0值,否則,返回0.
GLUT_OWNS_JOYSTICK:如果glut認為已經成功獲得操縱桿的使用權,則返回非0值.否則,返回0.
GLUT_JOYSTICK_BUTTONS:返回操縱桿支持的按鍵數,如果操縱桿不存在,返回0.
GLUT_JOYSTICK_AXES:返回操縱桿支持的操縱軸數,如果操縱桿不存在,返回0.
GLUT_JOYSTICK_POLL_RATE:返回當前窗口操縱桿被拉動的速率.
(注:對操縱桿的查詢限制在操縱桿的數量為1;鼠標被默認為存在,并且其按鍵數默認是3.)
//******************************************************************************************
int glutExtensionSupported(const char *name);
判定是否支持特定的OpenGL擴展
參數:
extension:指定要測試的OpenGL擴展的名稱,如果給定擴展獲得支持,函數返回非0,否則返回0.
必須要有一個有效的當前窗口來調用glutExtensionSupported().它只返回OpenGL擴展信息,這意味著窗口系統依賴的擴展不被glutExtensionSupported()反映.
例子:
if(!glutExtensionSupported("GL_EXT_texture"))
{
fprintf(stderr, "Missing the texture extension!");
exit(1);
}
//******************************************************************************************
int glutGetModifiers(void);
返回組合功能鍵的狀態
返回值為以下定義的常量
GLUT_ACTIVE_SHIFT:當按下shift鍵時
GLUT_ACTIVE_CTRL:當按下ctrl鍵時
GLUT_ACTIVE_ALT:當按下alt鍵時
//******************************************************************************************
int glutLayerGet(GLenum type);
查詢屬于當前窗口的重疊層的狀態
參數:
type:查詢的重疊層狀態常量:
GLUT_OVERLAY_POSSIBLE:在給定的初始顯示模式下,能否為當前窗口創建重疊層.如果能,返回1;如果不能,返回0.
GLUT_LAYER_IN_USE:返回當前的使用層,為GLUT_NORMAL(使用正常的顏色層)或GLUT_OVERLAY(使用重疊層).
GLUT_HAS_OVERLAY:判斷當前窗口是否創建了重疊層.
GLUT_NORMAL_DAMAGED:如果當前窗口的圖像層在上一次顯示回調函數調用后已經破壞,則返回TRUE.
GLUT_OVERLAY_DAMAGED:如果當前窗口的重疊層在上一次顯示回調函數調用后已經破壞,則返回TRUE.
GLUT_TRANSPARENT_INDEX:返回當前窗口覆蓋層的透明顏色索引值,如果沒有覆蓋層則返回-1.