• <ins id="pjuwb"></ins>
    <blockquote id="pjuwb"><pre id="pjuwb"></pre></blockquote>
    <noscript id="pjuwb"></noscript>
          <sup id="pjuwb"><pre id="pjuwb"></pre></sup>
            <dd id="pjuwb"></dd>
            <abbr id="pjuwb"></abbr>

            (轉(zhuǎn))glut函數(shù)詳解(10)--設(shè)備控制API

            void glutIgnoreKeyRepeat(int ignore);

            確認(rèn)是否忽略自動的連續(xù)擊鍵(即當(dāng)一個鍵被長時間按下不松開時,判斷其為一次擊鍵或是多次擊鍵).只對當(dāng)前窗口有效.對glutKeyboardFunc()和glutSpecialFunc()兩個回調(diào)函數(shù)起作用.

            參數(shù):
            ignore:(相當(dāng)于布爾值)
                 0  :不忽略,即認(rèn)為是連續(xù)擊鍵
                非0:忽略,即認(rèn)為是一次擊鍵
             
            //*******************************************************************************************
             
            void glutSetKeyRepeat(int repeatMode);

            設(shè)置自動連續(xù)擊鍵模式的狀態(tài)

            參數(shù):repeatMode:
            GLUT_KEY_REPEAT_OFF    :關(guān)閉自動連續(xù)擊鍵
            GLUT_KEY_REPEAT_ON     :打開自動連續(xù)擊鍵
            GLUT_KEY_REPEAT_DEFAULT:將自動連續(xù)擊鍵模式重置為默認(rèn)狀態(tài)
            注意:這個函數(shù)工作在全局范圍內(nèi),即它會影響所有窗口而不僅僅是當(dāng)前窗口,所以當(dāng)關(guān)閉了自動連續(xù)擊鍵模式后,確保在關(guān)閉當(dāng)前程序銷毀前,將自動連續(xù)擊鍵模式重置為默認(rèn)狀態(tài).

            這個函數(shù)的安全性不好,最好使用安全性高的glutIgnoreKeyRepeat(),盡量將操作限制在當(dāng)前窗口,而不要輕易使用工作在全局狀態(tài)下的函數(shù).
             
            //*******************************************************************************************


            void glutForceJoystickFunc(void);
            強(qiáng)制調(diào)用當(dāng)前窗口注冊的操縱桿回調(diào)函數(shù)glutJoystickFunc()一次.

            posted @ 2009-03-03 15:37 小蟲蟲 閱讀(592) | 評論 (0)編輯 收藏

            (轉(zhuǎn))glut函數(shù)詳解(11)--狀態(tài)查詢API

            int glutGet(GLenum state);

            檢索指定的GLUT狀態(tài)

            參數(shù):
            state:指定要檢索的狀態(tài)類型,為以下常量:
              GLUT_WINDOW_X:當(dāng)前窗口的x坐標(biāo),以像素為單位.
              GLUT_WINDOW_Y:當(dāng)前窗口的y坐標(biāo),以像素為單位.
              GLUT_WINDOW_WIDTH:當(dāng)其窗口的寬度,以像素為單位.
              GLUT_WINDOW_HEIGHT:當(dāng)前窗口的高度,以像素為單位.
              GLUT_WINDOW_BUFFER_SIZE:當(dāng)前窗口中,顏色分量占用的位數(shù),即用多少bit表示顏色分量.
              GLUT_WINDOW_STENCIL_SIZE:當(dāng)前窗口中,蒙板分量占用的位數(shù),即用多少bit表示蒙板分量.
              GLUT_WINDOW_DEPTH_SIZE:當(dāng)前窗口中,深度分量占用的位數(shù),即用多少bit表示深度分量.
              GLUT_WINDOW_RED_SIZE:當(dāng)前窗口中,紅色分量占用的位數(shù),即用多少bit表示紅色分量.
              GLUT_WINDOW_GREEN_SIZE:當(dāng)前窗口中,綠色分量占用的位數(shù),即用多少bit表示綠色分量.
              GLUT_WINDOW_BLUE_SIZE:當(dāng)前窗口中,藍(lán)色分量占用的位數(shù),即用多少bit表示藍(lán)色分量.
              GLUT_WINDOW_ALPHA_SIZE:當(dāng)前窗口中,alpha色分量占用的位數(shù),即用多少bit表示alpha色分量.
              GLUT_WINDOW_ACCUM_RED_SIZE:當(dāng)前窗口累積緩存中,紅色分量占用的位數(shù),即用多少bit表示紅色分量.
              GLUT_WINDOW_ACCUM_GREEN_SIZE:當(dāng)前窗口累積緩存中,綠色分量占用的位數(shù),即用多少bit表示綠色分量.
              GLUT_WINDOW_ACCUM_BLUE_SIZE:當(dāng)前窗口累積緩存中,藍(lán)色分量占用的位數(shù),即用多少bit表示藍(lán)色分量.
              GLUT_WINDOW_ACCUM_ALPHA_SIZE:當(dāng)前窗口累積緩存中,alpha色分量占用的位數(shù),即用多少bit表示alpha色分量.
              GLUT_WINDOW_DOUBLEBUFFER:如果窗口式雙緩存模式,返回1,否則返回0.
              GLUT_WINDOW_RGBA:如果窗口是RGBA模式,返回1,否則返回0.
              GLUT_WINDOW_PARENT:查詢當(dāng)前窗口的父窗口個數(shù),如果為頂層窗口返回0.
              GLUT_WINDOW_NUM_CHILDREN:查詢當(dāng)前窗口的子窗口個數(shù).
              GLUT_WINDOW_NUM_SAMPLES:查詢多重采樣的采樣點(diǎn)個數(shù).
              GLUT_WINDOW_STEREO:查詢是否使用立體模式,是則返回1,否則返回0.
              GLUT_WINDOW_CURSOR:返回光標(biāo)的整數(shù)標(biāo)示.
              GLUT_SCREEN_HEIGHT:屏幕的高度,以像素為單位.
              GLUT_SCREEN_WIDTH:屏幕的寬度,以像素為單位.
              GLUT_SCREEN_WIDTH_MM:屏幕的寬度,以毫米為單位.
              GLUT_SCREEN_HEIGHT_MM:屏幕的高度,以毫米為單位.
              GLUT_MENU_NUM_ITEMS:查詢當(dāng)前菜單包含的菜單項的個數(shù).
              GLUT_DISPLAY_MODE_POSSIBLE:查詢窗口系統(tǒng)是否支持當(dāng)前的顯示模式,1表示支持,0表示不支持.
              GLUT_INIT_DISPLAY_MODE:初始窗口的顯示模式.
              GLUT_INIT_WINDOW_X:初始窗口的x坐標(biāo).
              GLUT_INIT_WINDOW_Y:初始窗口的y坐標(biāo).
              GLUT_INIT_WINDOW_WIDTH:初始窗口的寬度.
              GLUT_INIT_WINDOW_HEIGHT:初始窗口的高度.
              GLUT_ELAPSED_TIME:返回兩次調(diào)用glutGet(GLUT_ELAPSED_TIME)的時間間隔,單位為毫秒,返回值根據(jù)查詢的內(nèi)容返回相應(yīng)的值,無效的狀態(tài)名返回-1.
              GLUT_WINDOW_COLORMAP_SIZE:返回顏色索引表的大小.

            //*******************************************************************************************

            int glutDeviceGet(GLenum type);

            檢索設(shè)備信息

            參數(shù):
            type:要檢索的設(shè)備信息的名字,為以下常量:
              GLUT_HAS_KEYBOARD 如果鍵盤可用,返回非0值,否則,返回0.
              GLUT_HAS_MOUSE 如果鼠標(biāo)可用,返回非0值,否則,返回0.
              GLUT_NUM_MOUSE_BUTTONS 返回鼠標(biāo)支持的按鍵數(shù),如果鼠標(biāo)不可用,返回0,返回值0,表示檢索的設(shè)備不存在,非0表示設(shè)備可用.
              GLUT_HAS_SPACEBALL:如果spaceball可用,返回非0值,否則,返回0.
              GLUT_HAS_DIAL_AND_BUTTON_BOX:如果撥號按鍵盒可用,返回非0值,否則,返回0.
              GLUT_HAS_TABLET:如果圖形板可用,返回非0值,否則,返回0.
              GLUT_NUM_SPACEBALL_BUTTONS:返回spaceball支持的按鍵數(shù),如果spaceball不存在,返回0.
              GLUT_NUM_BUTTON_BOX_BUTTONS:返回?fù)芴柊存I盒支持的按鍵數(shù),如果撥號按鍵盒不存在,返回0.
              GLUT_NUM_DIALS:返回?fù)芴柊存I盒支持的撥號數(shù),如果撥號按鍵盒不存在,返回0.
              GLUT_NUM_TABLET_BUTTONS:返回圖形板支持的按鍵數(shù),如果圖形板不存在,返回0.
              GLUT_DEVICE_IGNORE_KEY_REPEAT:如果當(dāng)前窗口被設(shè)置成關(guān)閉自動重復(fù)按鍵,則返回非0值.
              GLUT_DEVICE_KEY_REPEAT:返回自動重復(fù)按鍵的設(shè)置狀態(tài).(說明文件上說是返回連續(xù)擊鍵的速率,其實此說法有誤.)
              GLUT_HAS_JOYSTICK:如果操縱桿可用,返回非0值,否則,返回0.
              GLUT_OWNS_JOYSTICK:如果glut認(rèn)為已經(jīng)成功獲得操縱桿的使用權(quán),則返回非0值.否則,返回0.
              GLUT_JOYSTICK_BUTTONS:返回操縱桿支持的按鍵數(shù),如果操縱桿不存在,返回0.
              GLUT_JOYSTICK_AXES:返回操縱桿支持的操縱軸數(shù),如果操縱桿不存在,返回0.
              GLUT_JOYSTICK_POLL_RATE:返回當(dāng)前窗口操縱桿被拉動的速率.
            (注:對操縱桿的查詢限制在操縱桿的數(shù)量為1;鼠標(biāo)被默認(rèn)為存在,并且其按鍵數(shù)默認(rèn)是3.)

             //******************************************************************************************
            int glutExtensionSupported(const char *name);

            判定是否支持特定的OpenGL擴(kuò)展

            參數(shù):
            extension:指定要測試的OpenGL擴(kuò)展的名稱,如果給定擴(kuò)展獲得支持,函數(shù)返回非0,否則返回0.
            必須要有一個有效的當(dāng)前窗口來調(diào)用glutExtensionSupported().它只返回OpenGL擴(kuò)展信息,這意味著窗口系統(tǒng)依賴的擴(kuò)展不被glutExtensionSupported()反映.
            例子:
            if(!glutExtensionSupported("GL_EXT_texture"))
            {
             fprintf(stderr, "Missing the texture extension!");
             exit(1);
            }

             //******************************************************************************************
             int glutGetModifiers(void);

            返回組合功能鍵的狀態(tài)

            返回值為以下定義的常量
              GLUT_ACTIVE_SHIFT:當(dāng)按下shift鍵時
              GLUT_ACTIVE_CTRL:當(dāng)按下ctrl鍵時
              GLUT_ACTIVE_ALT:當(dāng)按下alt鍵時

             //******************************************************************************************
             int glutLayerGet(GLenum type);

            查詢屬于當(dāng)前窗口的重疊層的狀態(tài)

            參數(shù):
            type:查詢的重疊層狀態(tài)常量:
              GLUT_OVERLAY_POSSIBLE:在給定的初始顯示模式下,能否為當(dāng)前窗口創(chuàng)建重疊層.如果能,返回1;如果不能,返回0.
              GLUT_LAYER_IN_USE:返回當(dāng)前的使用層,為GLUT_NORMAL(使用正常的顏色層)或GLUT_OVERLAY(使用重疊層).
              GLUT_HAS_OVERLAY:判斷當(dāng)前窗口是否創(chuàng)建了重疊層.
              GLUT_NORMAL_DAMAGED:如果當(dāng)前窗口的圖像層在上一次顯示回調(diào)函數(shù)調(diào)用后已經(jīng)破壞,則返回TRUE.
              GLUT_OVERLAY_DAMAGED:如果當(dāng)前窗口的重疊層在上一次顯示回調(diào)函數(shù)調(diào)用后已經(jīng)破壞,則返回TRUE.
              GLUT_TRANSPARENT_INDEX:返回當(dāng)前窗口覆蓋層的透明顏色索引值,如果沒有覆蓋層則返回-1.


            posted @ 2009-03-03 15:37 小蟲蟲 閱讀(983) | 評論 (0)編輯 收藏

            (轉(zhuǎn))glut函數(shù)詳解(9)--回調(diào)API

            void glutDisplayFunc(void (*func)(void));

            注冊當(dāng)前窗口的顯示回調(diào)函數(shù)

            參數(shù):
            func:形為void func()的函數(shù),完成具體的繪制操作

            這個函數(shù)告訴GLUT當(dāng)窗口內(nèi)容必須被繪制時,那個函數(shù)將被調(diào)用.當(dāng)窗口改變大小或者從被覆蓋的狀態(tài)中恢復(fù),或者由于調(diào)用glutPostRedisplay()函數(shù)要求GLUT更新時,執(zhí)行func參數(shù)指定的函數(shù).
             
             
            //*******************************************************************************************
             
            void glutReshapeFunc(void (*func)(int width, int height));

            指定當(dāng)窗口的大小改變時調(diào)用的函數(shù)

            參數(shù):
            func:形如void func(int width, int height)
            處理窗口大小改變的函數(shù).
            width,height:為窗口改變后長寬.

            這個函數(shù)確定一個回調(diào)函數(shù),每當(dāng)窗口的大小或形狀改變時(包括窗口第一次創(chuàng)建),GLUT將會調(diào)用這個函數(shù),這個回調(diào)函數(shù)接受這個窗口新的長寬作為輸入?yún)?shù).
             
             
            //*******************************************************************************************
             
            void glutKeyboardFunc(void (*func)(unsigned char key, int x, int y));

            注冊當(dāng)前窗口的鍵盤回調(diào)函數(shù)

            參數(shù):
            func:形如void func(unsigned char key, int x, int y)
            key:按鍵的ASCII碼
            x,y:當(dāng)按下鍵時鼠標(biāo)的坐標(biāo),相對于窗口左上角,以像素為單位

            當(dāng)敲擊鍵盤按鍵(除了特殊按鍵,即glutSpecialFunc()中處理的按鍵,詳見glutSpecialFunc())時調(diào)用.


            //******************************************************************************************
             void glutMouseFunc(void (*func)(int button, int state, int x, int y));

            注冊當(dāng)前窗口的鼠標(biāo)回調(diào)函數(shù)

            參數(shù):
            func:形如void func(int button, int state, int x, int y);
            button:鼠標(biāo)的按鍵,為以下定義的常量
              GLUT_LEFT_BUTTON:鼠標(biāo)左鍵
              GLUT_MIDDLE_BUTTON:鼠標(biāo)中鍵
              GLUT_RIGHT_BUTTON:鼠標(biāo)右鍵
            state:鼠標(biāo)按鍵的動作,為以下定義的常量
              GLUT_UP:鼠標(biāo)釋放
              GLUT_DOWN:鼠標(biāo)按下
            x,y:鼠標(biāo)按下式,光標(biāo)相對于窗口左上角的位置

            當(dāng)點(diǎn)擊鼠標(biāo)時調(diào)用.


            //******************************************************************************************
            void glutMotionFunc(void (*func)(int x, int y));

            當(dāng)鼠標(biāo)在窗口中按下并移動時調(diào)用glutMotionFunc注冊的回調(diào)函數(shù)

            void glutPassiveMotionFunc(void (*func)(int x, int y));

            當(dāng)鼠標(biāo)在窗口中移動時調(diào)用glutPassiveMotionFunc注冊的回調(diào)函數(shù)

            參數(shù):
            func:形如void func(int x, int y);
            x,y:鼠標(biāo)按下式,光標(biāo)相對于窗口左上角的位置,以像素為單位


            //*******************************************************************************************
            void glutEntryFunc(void (*func)(int state));

            設(shè)置鼠標(biāo)的進(jìn)出窗口的回調(diào)函數(shù)

            參數(shù):
            func:形如void func(int state);注冊的鼠標(biāo)進(jìn)出回調(diào)函數(shù)
            state:鼠標(biāo)的進(jìn)出狀態(tài),為以下常量之一
              GLUT_LEFT 鼠標(biāo)離開窗口
              GLUT_RIGHT 鼠標(biāo)進(jìn)入窗口

            當(dāng)窗口取得焦點(diǎn)或失去焦點(diǎn)時調(diào)用這個函數(shù),當(dāng)鼠標(biāo)進(jìn)入窗口區(qū)域并點(diǎn)擊時,state為GLUT_RIGHT,當(dāng)鼠標(biāo)離開窗口區(qū)域點(diǎn)擊其他窗口時,state為GLUT_LEFT.

            //******************************************************************************************

            void glutVisibilityFunc(void (*func)(int state));

            設(shè)置當(dāng)前窗口的可視回調(diào)函數(shù)

            參數(shù):
            func:形如void func(int state);指定的可視回調(diào)函數(shù)
            state:窗口的可視性,為以下常量
              GLUT_NOT_VISIBLE 窗口完全不可見
              GLUT_VISIBLE 窗口可見或部分可見

            這個函數(shù)設(shè)置當(dāng)前窗口的可視回調(diào)函數(shù),當(dāng)窗口的可視性改變時,該窗口的可視回調(diào)函數(shù)被調(diào)用.只要窗口中的任何一個像素是可見的,或者他的任意一個子窗口中任意一個像素是可見的,GLUT則認(rèn)為窗口是可見的.

            //*******************************************************************************************
            void glutIdleFunc(void (*func)(void));

            設(shè)置空閑回調(diào)函數(shù)

            參數(shù):
            func:形如void func(void);

            當(dāng)系統(tǒng)空閑時調(diào)用.

            //*******************************************************************************************
             void glutTimerFunc(unsigned int millis, void (*func)(int value), int value);

            注冊一個回調(diào)函數(shù),當(dāng)指定時間值到達(dá)后,由GLUT調(diào)用注冊的函數(shù)一次

            參數(shù):
            millis:等待的時間,以毫秒為單位
            unc:形如void func(int value)
            value:指定的一個數(shù)值,用來傳遞到回調(diào)函數(shù)func中

            這個函數(shù)注冊了一個回調(diào)函數(shù),當(dāng)指定的毫秒數(shù)到達(dá)后,這個函數(shù)就調(diào)用注冊的函數(shù),value參數(shù)用來向這個注冊的函數(shù)中傳遞參數(shù). 但只能觸發(fā)一次,若要連續(xù)觸發(fā),則需在func中重新設(shè)置計時函數(shù)glutTimerFunc();

            //*******************************************************************************************
            void glutMenuStateFunc(void (*func)(int state));

            注冊菜單狀態(tài)回調(diào)函數(shù)

            參數(shù):
            func:形如void func(int state);
            state:
              GLUT_MENU_IN_USE:菜單被使用.
              GLUT_MENU_NOT_IN_USE:菜單不再被使用,即菜單被關(guān)閉.
            如果state代入GLUT_MENU_IN_USE,則當(dāng)菜單被使用時調(diào)用該函數(shù);
            如果state代入GLUT_MENU_NOT_IN_USE,則當(dāng)菜單被關(guān)閉時調(diào)用該函數(shù).

            //*******************************************************************************************

            void glutMenuStatusFunc(void (*func)(int status, int x, int y));
            設(shè)置菜單狀態(tài)回調(diào)函數(shù)
            參數(shù):
            func:形如void func(int status, int x, int y);
            status:當(dāng)前是否使用菜單,為以下定義的常量
            GLUT_MENU_IN_USE:菜單正在使用
            GLUT_MENU_NOT_IN_USE:菜單未被使用
            x,y:鼠標(biāo)按下時,光標(biāo)相對于窗口左上角的位置
            這個函數(shù)調(diào)用時glut程序判定是否正在使用菜單,當(dāng)彈出菜單時,調(diào)用注冊的菜單狀態(tài)回調(diào)函數(shù),同時status設(shè)置為常量GLUT_MENU_IN_USE,當(dāng)菜單使用完畢時,也調(diào)用菜單狀態(tài)回調(diào)函數(shù),此時status變量變?yōu)镚LUT_MENU_NOT_IN_USE.從已彈出的菜單中再彈出的菜單不產(chǎn)生菜單狀態(tài)回調(diào)過程.每個glut程序只有一個菜單狀態(tài)回調(diào)函數(shù). 此函數(shù)與上面一個函數(shù)相比,只是多傳了一個光標(biāo)位置,其他相同.

            //*******************************************************************************************
            void glutSpecialFunc(void (*func)(int key, int x, int y));

            設(shè)置當(dāng)前窗口的特定鍵的回調(diào)函數(shù)

            參數(shù):
            Func:形如void func(int key, int x, int y);
            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:當(dāng)按下鍵時鼠標(biāo)的坐標(biāo),相對于窗口左上角,以像素為單位

            注意:ESC,回車和delete鍵由ASCII碼產(chǎn)生,即可以用glutKeyboardFunc()處理. 當(dāng)在鍵盤上敲擊上述按鍵時調(diào)用該函數(shù).注意與glutKeyboardFunc()的區(qū)別.

            //*******************************************************************************************

            void glutSpaceballMotionFunc(void (*func)(int x, int y, int z));

            注冊一個當(dāng)前窗口的spaceball平移的回調(diào)函數(shù)

            參數(shù):
            func:形如void func(int x, int y, int z);
            x,y,z:spaceball的三維空間坐標(biāo).
            paceball即一種特殊的帶3D滾輪的鼠標(biāo),不僅可以前后轉(zhuǎn)動,更可以在三維空間里滾動,具體圖片,可以在百度里搜索.

            當(dāng)spaceball在當(dāng)前注冊的窗口內(nèi)平移時,調(diào)用該函數(shù).

            //*******************************************************************************************
            void glutSpaceballRotateFunc(void (*func)(int x, int y, int z));

            注冊一個當(dāng)前窗口的spaceball轉(zhuǎn)動的回調(diào)函數(shù)

            參數(shù):
            func:形如void func(int x, int y, int z);
            當(dāng)spaceball在當(dāng)前注冊的窗口內(nèi)滾動時調(diào)用.

            //*******************************************************************************************

            void glutSpaceballButtonFunc(void (*func)(int button, int state));

            注冊當(dāng)前窗口的spaceball的按鍵回調(diào)函數(shù).

            參數(shù):
            func:形如void func(int button, int state);
            button:按鍵編號,從1開始,可用的按鍵編號可以通過glutDeviceGet(GLUT_NUM_SPACEBALL_BUTTONS)查詢.
            state:按鍵狀態(tài)
              GLUT_UP:按鍵釋放
              GLUT_DOWN:按鍵按下

            當(dāng)spaceball在當(dāng)前窗口中敲擊相應(yīng)的按鍵時調(diào)用.

            //*******************************************************************************************

            void glutButtonBoxFunc(void (*func)(int button, int state));

            注冊當(dāng)前窗口的撥號按鍵盒按鍵回調(diào)函數(shù)

            參數(shù):
            func:形如void func(int button, int state);
            button:按鍵編號,從1開始,可用的按鍵號可通過glutDeviceGet(GLUT_NUM_BUTTON_BOX_BUTTONS)查詢
            state:按鍵狀態(tài)
              GLUT_UP:按鍵釋放
              GLUT_DOWN:按鍵按下

            當(dāng)撥號按鍵盒按鍵被按下時調(diào)用.


            //*******************************************************************************************

            void glutDialsFunc(void (*func)(int dial, int value));

            注冊當(dāng)前窗口的撥號按鍵盒撥號回調(diào)函數(shù).

            參數(shù):
            func:形如void func(int dial, value);
            dial:dial的編號,從1開始,可通過glutDeviceGet(GLUT_NUM_DIALS)查詢可用編號.
            value:dial所撥的值,value是每次所撥的值的累加,直到溢出.

            當(dāng)撥號按鍵盒撥號時被調(diào)用.

            //*******************************************************************************************
            void glutTabletMotionFunc(void (*func)(int x, int y));

            注冊圖形板移動回調(diào)函數(shù)

            參數(shù):
            func:形如void func(int x, int y);
            x,y:圖形板移動的坐標(biāo).

            當(dāng)圖形板移動時調(diào)用.

             //******************************************************************************************
            void glutTabletButtonFunc(void (*func)(int button, int state, int x, int y));

            注冊當(dāng)前窗口的圖形板按鍵回調(diào)函數(shù)

            參數(shù):
            func:形如void func(int button, int state, int x, int y);
            button:按鍵號,通過glutDeviceGet(GLUT_NUM_TABLET_BUTTONS)查詢可用鍵號.
            state:按鍵狀態(tài).
              GLUT_UP:按鍵被按下
              GLUT_DOWN:按鍵被釋放

            x,y:當(dāng)按鍵狀態(tài)改變時,相對于窗口的坐標(biāo).

             //******************************************************************************************
            void glutOverlayDisplayFunc(void (*func)(void));

            注冊當(dāng)前窗口的重疊層的顯示回調(diào)函數(shù)

            參數(shù):
            func:形如void func(void);指向重疊層的顯示回調(diào)函數(shù).

            這個函數(shù)告訴GLUT當(dāng)窗口內(nèi)容必須被繪制時,那個函數(shù)將被調(diào)用.當(dāng)窗口改變大小或者從被覆蓋的狀態(tài)中恢復(fù),或者由于調(diào)用glutPostOverlayRedisplay()函數(shù)要求GLUT更新時,執(zhí)行func參數(shù)指定的函數(shù).

            //*******************************************************************************************

            void glutWindowStatusFunc(void (*func)(int state));

            注冊當(dāng)前窗口狀態(tài)的回調(diào)函數(shù).

            參數(shù):
            func:形如void func(int state);
            state:窗口狀態(tài).
              GLUT_HIDDEN:窗口不可見
              GLUT_FULLY_RETAINED:窗口完全未被遮擋
              GLUT_PARTIALLY_RETAINED:窗口部分遮擋
              GLUT_FULLY_COVERED:窗口被全部遮擋

            當(dāng)窗口狀態(tài)發(fā)生相應(yīng)改變時調(diào)用.

            //*******************************************************************************************

            void glutKeyboardUpFunc(void (*func)(unsigned char key, int x, int y));

            注冊釋放普通按鍵的回調(diào)函數(shù)

            參數(shù):
            func:形如void func(unsigned char key, int x, int y);
            key:按鍵的ASCII碼.
            x,y:釋放按鍵時鼠標(biāo)相對于窗口的位置,以像素為單位.

            當(dāng)普通按鍵被釋放時調(diào)用.

            //*******************************************************************************************


            void glutSpecialUpFunc(void (*func)(int key, int x, int y));

            注冊釋放特殊按鍵的回調(diào)函數(shù)

            參數(shù):
            func:形如void func(int key, int x, int y);
            key:特殊按鍵的標(biāo)識
              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:釋放特殊按鍵時鼠標(biāo)相對于窗口的位置,以像素為單位.

            當(dāng)特殊按鍵被釋放時調(diào)用.

            //******************************************************************************************
            void glutJoystickFunc(void (*func)(unsigned int buttonMask, int x, int y, int z), int pollInterval);

            注冊操縱桿的回調(diào)函數(shù)

            參數(shù):
            buttonMask:操縱桿按鍵
            GLUT_JOYSTICK_BUTTON_A
            GLUT_JOYSTICK_BUTTON_B
            GLUT_JOYSTICK_BUTTON_C
            GLUT_JOYSTICK_BUTTON_D
            x,y,z:操縱桿在三維空間內(nèi)移動的位移量
            pollInterval:確定檢測操縱桿的間隔時間,其單位為毫秒.

            該函數(shù)在兩種情況下被調(diào)用:
            1.在pollInterval所規(guī)定的時間間隔內(nèi)調(diào)用.
            2.在調(diào)用glutForceJoystickFunc()函數(shù)時調(diào)用一次glutJoystickFunc();

            posted @ 2009-03-03 15:36 小蟲蟲 閱讀(1099) | 評論 (0)編輯 收藏

            (轉(zhuǎn))glut函數(shù)詳解(8)--調(diào)試API

            void glutReportErrors(void);

            這個函數(shù)打印出OpenGL的運(yùn)行時錯誤,它應(yīng)該只被用在debug中,因為它的調(diào)用會降低OpenGL的速度,它所做的僅僅是不斷調(diào)用glGetError()直到?jīng)]有錯誤產(chǎn)生.每一個錯誤都以GLUT warning形式報告,并由gluErrorString()產(chǎn)生相應(yīng)的錯誤信息.

            posted @ 2009-03-03 15:34 小蟲蟲 閱讀(443) | 評論 (0)編輯 收藏

            (轉(zhuǎn))glut函數(shù)詳解(7)--字體處理API

            void glutBitmapCharacter(void *font, int character);

            繪制一個圖像字符

            int glutBitmapWidth(void *font, int character);

            返回一個圖像字符的寬度

            參數(shù):
            font:要使用的圖像字體,如下表所示:
              GLUT_BITMAP_8_BY_13:一種固定寬度字體,每個字符都放在一個8x13像素的矩形框內(nèi)
              GLUT_BITMAP_9_BY_15:一種固定寬度字體,每個字符都放在一個9x15像素的矩形框內(nèi)
              GLUT_BITMAP_TIMES_ROMAN_10:一種10點(diǎn)均勻間距的Times Roman字體
              GLUT_BITMAP_TIMES_ROMAN_24:一種24點(diǎn)均勻間距的Times Roman字體
              GLUT_BITMAP_HELVETICA_10:一種10點(diǎn)均勻間距的Helvetica字體
              GLUT_BITMAP_HELVETICA_12:一種12點(diǎn)均勻間距的Helvetica字體
              GLUT_BITMAP_HELVETICA_18:一種18點(diǎn)均勻間距的Helvetica字體  character:繪制的字符的ASCII碼.


            int glutBitmapLength(void *font, const unsigned char *string);

            獲取一個圖像字符串的寬度.

            參數(shù):
            font:同上.
            string:想要測量寬度的字符串.

             
            //*******************************************************************************************

            void glutStrokeCharacter(void *font, int character);

            繪制一個圖形字符

            int glutStrokeWidth(void *font, int character);

            返回一個圖形字體的寬度

            參數(shù):
            font:要使用的圖形字體,如下表所示:
              GLUT_STROKE_ROMAN 一種等間距的Roman Simplex字體,僅包括32到127的ASCII字符
              GLUT_STROKE_MONO_ROMAN 一種單一間距的Roman Simplex字體,僅包括32到127的ASCII字符
            Character:繪制的字符的ASCII碼.


            int glutStrokeLength(void *font, const unsigned char *string);

            獲取一個圖形字符串的寬度

            參數(shù):
            font:同上.
            string:想要測量寬度的字符串.

            posted @ 2009-03-03 15:32 小蟲蟲 閱讀(1018) | 評論 (0)編輯 收藏

            (轉(zhuǎn))glut函數(shù)詳解(6)--顏色索引表管理API

            void glutSetColor(int cell, GLfloat red, GLfloat green, GLfloat blue);

            設(shè)置當(dāng)前窗口當(dāng)前層一個顏色表單元的顏色
            參數(shù):
            cell:索引值,標(biāo)記在顏色表中的位置,其值從0開始,并且必須小于顏色表的最大單元數(shù).
            當(dāng)前顏色表的大小可通過調(diào)用glutGet(GLUT_WINDOW_COLORMAP_SIZE)獲得.
            red:紅色成分
            green:綠色成分
            blue:藍(lán)色成分

            //*******************************************************************************************
            GLfloat glutGetColor(int cell, int component);

            獲取指定的顏色索引的顏色值.
            參數(shù):
            cell:索引值,標(biāo)記在顏色表中的位置,其值從0開始,并且必須小于顏色表的最大單元數(shù).
            當(dāng)前顏色表的大小可通過調(diào)用glutGet(GLUT_WINDOW_COLORMAP_SIZE)獲得.
            component:選擇下列的值:
              GLUT_RED:讓函數(shù)返回該索引的紅色成分.
              GLUT_GREEN:讓函數(shù)返回該索引的綠色成分.
              GLUT_BLUE:讓函數(shù)返回該索引的藍(lán)色成分.

            //*******************************************************************************************
            void glutCopyColormap(int win);

            將邏輯顏色表從指定的窗口拷貝到當(dāng)前窗口
            參數(shù):win:窗口標(biāo)識符,邏輯顏色表從該窗口拷貝到當(dāng)前的窗口.

            posted @ 2009-03-03 15:31 小蟲蟲 閱讀(813) | 評論 (0)編輯 收藏

            (轉(zhuǎn))glut函數(shù)詳解(5)--內(nèi)建模型API

            void glutWireSphere(GLdouble radius, GLint slices, GLint stacks);

            繪制線框球體

            void glutSolidSphere(GLdouble radius, GLint slices, GLint stacks);

            繪制實心球體

            參數(shù):
            radius:球體的半徑
            slices:球體圍繞z軸分割的數(shù)目
            stacks:球體沿著z軸分割的數(shù)目
            繪制中心在模型坐標(biāo)原點(diǎn),半徑為radius的球體,球體圍繞z軸分割slices次,球體沿著z軸分割stacks次

            //*******************************************************************************************

            void glutWireCone(GLdouble base, GLdouble height, GLint slices, GLint stacks);

            繪制線框圓錐體

            void glutSolidCone(GLdouble base, GLdouble height, GLint slices, GLint stacks);

            繪制實心圓錐體

            參數(shù):
            radius:圓錐體的半徑
            height:圓錐體的高
            slices:圓錐體圍繞z軸分割的數(shù)目
            stacks:圓錐體沿著z軸分割的數(shù)目
            圓錐體的軸為z軸方向,它的基底位于z=0的平面內(nèi),頂點(diǎn)z=height,圓錐體圍繞z軸分割slices個數(shù)目,沿著z軸分割stacks個數(shù)目.

            //*******************************************************************************************

            void glutWireCube(GLdouble size);

            繪制線框立方體

            void glutSolidCube(GLdouble size);

            繪制實心立方體

            參數(shù):size:立方體的邊長

            //*******************************************************************************************

            void glutWireTorus(GLdouble innerRadius, GLdouble outerRadius, GLint sides, GLint rings);

            繪制線框圓環(huán)

            void glutSolidTorus(GLdouble innerRadius, GLdouble outerRadius, GLint sides, GLint rings);

            繪制實心圓環(huán)

            參數(shù):
            innerRadius:圓環(huán)的內(nèi)半徑
            outerRadius:圓環(huán)的外半徑
            nsides:圓環(huán)腔的分割數(shù)
            rings:圓環(huán)的環(huán)線數(shù)

            //*******************************************************************************************

            void glutWireDodecahedron(void);

            繪制線框十二面體

            void glutSolidDodecahedron(void);

            繪制實心十二面體

            //*******************************************************************************************

            void glutWireTeapot(GLdouble size);

            繪制線框茶壺

            void glutSolidTeapot(GLdouble size);

            繪制實心茶壺

            參數(shù):size:茶壺的相對大小

            //*******************************************************************************************

            void glutWireOctahedron(void);

            繪制線框八面體

            void glutSolidOctahedron(void);

            繪制實心八面體

            //*******************************************************************************************

            void glutWireTetrahedron(void);

            繪制線框四面體

            void glutSolidTetrahedron(void);

            繪制實心四面體

            //*******************************************************************************************

            void glutWireIcosahedron(void);

            繪制線框二十面體

            void glutSolidIcosahedron(void);

            繪制實心二十面體


            posted @ 2009-03-03 15:30 小蟲蟲 閱讀(1507) | 評論 (0)編輯 收藏

            (轉(zhuǎn))glut函數(shù)詳解(4)--菜單API

            int glutCreateMenu(void (*func)(int value));

            創(chuàng)建一個新的彈出示菜單
            參數(shù):
            func:形如void func(int a);當(dāng)點(diǎn)擊菜單時,調(diào)用這個回調(diào)函數(shù)
            value:傳遞給回調(diào)函數(shù)的數(shù)值,它由所選擇的菜單條目對應(yīng)的整數(shù)值所決定
            這個函數(shù)創(chuàng)建一個新的彈出式菜單,并返回一個唯一的標(biāo)識次菜單的整型標(biāo)識符,并將新建的彈出菜單與func函數(shù)關(guān)聯(lián)在一起,這樣,當(dāng)選擇此菜單中的一個菜單條目時,調(diào)用回調(diào)函數(shù)func.

            //******************************************************************************************
            void glutDestroyMenu(int menu);

            刪除指定的菜單
            menu:被刪除的菜單的標(biāo)識符

            //******************************************************************************************

            int glutGetMenu(void);

            獲取當(dāng)前菜單的標(biāo)識符

            //******************************************************************************************
            void glutSetMenu(int menu);

            設(shè)置為當(dāng)前菜單
            menu:被設(shè)置為當(dāng)前菜單的標(biāo)識符

            //******************************************************************************************

            void glutAddMenuEntry(const char *label, int value);

            添加一個菜單條目
            參數(shù):
            label:菜單條目的名稱
            value:傳遞到菜單處理函數(shù)的值,即在glutCreateMenu中注冊的回調(diào)函數(shù)
            如果用戶選擇了這個菜單條目,對應(yīng)的菜單回調(diào)函數(shù)就被調(diào)用,并以value值作為傳遞給此回調(diào)函數(shù)的參數(shù):

             //*****************************************************************************************

            void glutAddSubMenu(const char *label, int submenu);

            在當(dāng)前菜單的底部增加一個子菜單的觸發(fā)條目
            參數(shù):
            label:子菜單觸發(fā)條目的名稱
            submenu:子菜單的標(biāo)識符

             //*****************************************************************************************

            void glutChangeToMenuEntry(int item, const char *label, int value);

            更改當(dāng)前菜單中指定菜單項
            參數(shù):
            item:更改菜單項的索引(最頂層的菜單項的索引為1)
            label:菜單條目的名稱
            value:傳遞到菜單處理函數(shù)的值,即在glutCreateMenu中注冊的回調(diào)函數(shù)

             //*****************************************************************************************

            void glutChangeToSubMenu(int item, const char *label, int submenu);

            將指定的當(dāng)前菜單中菜單項變?yōu)樽硬藛斡|發(fā)條目
            參數(shù):
            item:更改菜單項的索引(最頂層的菜單項的索引為1)
            label:子菜單觸發(fā)條目的名稱
            submenu:子菜單的標(biāo)識符

             //*****************************************************************************************

            void glutRemoveMenuItem(int item);

            刪除指定的菜單項
            參數(shù):
            item:當(dāng)前菜單中要刪除的菜單項的索引(最頂層的菜單項的索引為1)

             //*****************************************************************************************
            void glutAttachMenu(int button);

            把當(dāng)前窗口的一個鼠標(biāo)按鍵與當(dāng)前菜單關(guān)聯(lián)起來

            void glutDetachMenu(int button);

            解除鼠標(biāo)按鍵與彈出式菜單的關(guān)聯(lián)關(guān)系

            參數(shù):
            button:指明何種鼠標(biāo)按鍵,可用的符號為以下三種:
            GLUT_LEFT_BUTTON 鼠標(biāo)左鍵
            GLUT_RIGHT_BUTTON 鼠標(biāo)右鍵
            GLUT_MIDDLE_BUTTON 鼠標(biāo)中鍵

            posted @ 2009-03-03 15:29 小蟲蟲 閱讀(976) | 評論 (0)編輯 收藏

            (轉(zhuǎn))glut函數(shù)詳解(3)--重疊層API

            void glutEstablishOverlay(void);

            創(chuàng)建當(dāng)前窗口的重疊層,該重疊層的顯示模式由初始顯示模式?jīng)Q定,應(yīng)在調(diào)用glutEstablishOverlay之前調(diào)用,glutInitDisplayMode函數(shù)來設(shè)置初始的顯示模式. 實現(xiàn)重疊層需要硬件的支持,并不是所有的系統(tǒng)都提供該支持,如果系統(tǒng)不支持重疊層,那么對glutEstablishOverlay函數(shù)的調(diào)用就會引起運(yùn)行錯誤,GLUT將終止程序的運(yùn)行.可以調(diào)用glutLayerGet(GLUT_OVERPLAY_POSSIBLE)來判斷系統(tǒng)是否支持在當(dāng)前窗口中當(dāng)前的顯示模式下創(chuàng)建重疊層.

            //*****************************************************************************************

            void glutRemoveOverlay(void);

            刪除當(dāng)前層的重疊層

            //*****************************************************************************************
            void glutUseLayer(GLenum layer);

            改變當(dāng)前窗口的使用層
            參數(shù):layer:指定窗口的使用層,為
            GLUT_NORMAL:使用正常的顏色層
            GLUT_OVERLAY:使用重疊層

             //****************************************************************************************

            void glutPostOverlayRedisplay(void);

            標(biāo)記當(dāng)前窗口的重疊層需要重繪

            //****************************************************************************************
            void glutPostWindowOverlayRedisplay(int win);

            標(biāo)記指定窗口的重疊層需要重繪
            參數(shù):win:需要重繪的窗口的重疊層的標(biāo)識符

             //***************************************************************************************

            void glutShowOverlay(void);

            顯示當(dāng)前窗口的重疊層

            void glutHideOverlay(void);

            隱藏當(dāng)前窗口的重疊層

            這兩條語句即時執(zhí)行.注意一下,只有窗口可視時,使用glutShowOverlay才能使其覆蓋圖層可視.當(dāng)窗口被其他窗口遮擋時,其覆蓋圖層也被遮擋從而不可視.

            posted @ 2009-03-03 15:27 小蟲蟲 閱讀(538) | 評論 (0)編輯 收藏

            (轉(zhuǎn))glut函數(shù)詳解(2)--窗口API


            int glutCreateWindow(const char *title);

            產(chǎn)生一個頂層的窗口.title作為窗口的名字,也就是窗口標(biāo)題欄顯示的內(nèi)容.
            返回值是生成窗口的標(biāo)記符,可用函數(shù)glutGetWindow()加以引用.
             
            //******************************************************************************************
             
            int glutCreateSubWindow(int win, int x, int y, int width, int height);
             
            創(chuàng)建一個子窗口.win是其父窗口的標(biāo)記符.x,y是子窗口左上角相對父窗口的位移,以像素表示.width,height是子窗口的寬和高.

             //*****************************************************************************************
            void glutDestroyWindow(int win);

            銷毀窗口,win是所要銷毀的窗口的標(biāo)識符.這個函數(shù)銷毀指定的窗口以及與窗口關(guān)聯(lián)的OpenGL上下文,重疊層,子窗口等一切與此窗口相關(guān)的內(nèi)容.

             //*****************************************************************************************
            void glutPostRedisplay(void);

            標(biāo)記當(dāng)前窗口的圖像層需要重新繪制,在glutMainLoop函數(shù)的事件處理循環(huán)的下一個循環(huán)中,將調(diào)用該窗口的顯示回調(diào)函數(shù)重繪該窗口的圖像層.

             //******************************************************************************************
            void glutPostWindowRedisplay(int win);

            標(biāo)記指定的窗口需重繪,在glutMainLoop函數(shù)的事件處理循環(huán)的下一個循環(huán)中,將調(diào)用該窗口的顯示回調(diào)函數(shù)重繪該窗口的圖像層.
            參數(shù):win:需刷新的窗口標(biāo)識符

            //******************************************************************************************

            void glutSwapBuffers(void);

            當(dāng)窗口模式為雙緩存時,此函數(shù)的功能就是把后臺緩存的內(nèi)容交換到前臺顯示.當(dāng)然,只有單緩存時,使用它的功能跟用glFlush()一樣.而使用雙緩存是為了把完整圖畫一次性顯示在窗口上,或者是為了實現(xiàn)動畫.

            //******************************************************************************************

            int glutGetWindow(void);

            返回當(dāng)前窗口的標(biāo)識符

            //*****************************************************************************************

            void glutSetWindow(int win);

            設(shè)置標(biāo)記符為win的窗口為當(dāng)前窗口

            //****************************************************************************************

            void glutSetWindowTitle(const char *title);

            設(shè)置當(dāng)前窗口(必須是頂層窗口)的標(biāo)題,窗口一旦建立后,窗口標(biāo)題就可以由這個函數(shù)來改變

            //****************************************************************************************

             void glutSetIconTitle(const char *title);

            設(shè)置當(dāng)前窗口(必須是頂層窗口)圖標(biāo)化時的標(biāo)題.

             //***************************************************************************************

             void glutPositionWindow(int x, int y);

            改變當(dāng)前窗口的位置:當(dāng)前窗口是頂層窗口時,x,y是相對于屏幕的的位移;當(dāng)前窗口若是子窗口時,x,y是相對其父窗口原點(diǎn)的位移.

             //***************************************************************************************

             void glutReshapeWindow(int width, int height);

            改變當(dāng)前窗口的大小.width,height是當(dāng)前窗口新的寬度和高度值,當(dāng)然只能是正值.

             //***************************************************************************************
             void glutPopWindow(void);

            在同一個父窗口的子窗口中,使當(dāng)前的子窗口與排列在它前一個位置的子窗***換位置

            void glutPushWindow(void);

            在同一個父窗口的子窗口中,使當(dāng)前的子窗口與排列在它后一個位置的子窗***換位置

            這兩個函數(shù)對頂層窗口和子窗口都起作用,但函數(shù)的結(jié)果并不立即發(fā)生,直到下一個事件循環(huán).

             //****************************************************************************************

             void glutIconifyWindow(void);

            讓當(dāng)前窗口成為一個圖標(biāo),也即是最小化,使當(dāng)前窗口圖標(biāo)化顯示.

             //****************************************************************************************

            void glutShowWindow(void);

            顯示當(dāng)前窗口(這時它還是可能被其它窗口擋?。?

            //*****************************************************************************************
            void glutHideWindow(void);

            隱藏當(dāng)前窗口

            //****************************************************************************************

            void glutFullScreen(void);

            把當(dāng)前窗口用全屏顯示,當(dāng)前窗口是頂層窗口時才有效.

            //****************************************************************************************

             void glutSetCursor(int cursor);

            設(shè)置當(dāng)前窗口的光標(biāo)樣式.
            參數(shù):
            cursor:指定鼠標(biāo)的形狀,為下面的一種值光標(biāo)的形狀
            /* Basic arrows. */
            GLUT_CURSOR_RIGHT_ARROW
            GLUT_CURSOR_LEFT_ARROW
            /* Symbolic cursor shapes. */
            GLUT_CURSOR_INFO
            GLUT_CURSOR_DESTROY
            GLUT_CURSOR_HELP
            GLUT_CURSOR_CYCLE
            GLUT_CURSOR_SPRAY
            GLUT_CURSOR_WAIT
            GLUT_CURSOR_TEXT
            GLUT_CURSOR_CROSSHAIR
            /* Directional cursors. */
            GLUT_CURSOR_UP_DOWN
            GLUT_CURSOR_LEFT_RIGHT
            /* Sizing cursors. */
            GLUT_CURSOR_TOP_SIDE
            GLUT_CURSOR_BOTTOM_SIDE
            GLUT_CURSOR_LEFT_SIDE
            GLUT_CURSOR_RIGHT_SIDE
            GLUT_CURSOR_TOP_LEFT_CORNER
            GLUT_CURSOR_TOP_RIGHT_CORNER
            GLUT_CURSOR_BOTTOM_RIGHT_CORNER
            GLUT_CURSOR_BOTTOM_LEFT_CORNER
            /* Fullscreen crosshair (if available). */
            GLUT_CURSOR_FULL_CROSSHAIR:
            (在全屏模式下使用,等同于GLUT_CURSOR_CROSSHAIR)
            /* Blank cursor. */
            GLUT_CURSOR_NONE:不顯示鼠標(biāo)
            /* Inherit from parent window. */
            GLUT_CURSOR_INHERIT:使用父窗口的鼠標(biāo)

             //****************************************************************************************

            void glutWarpPointer(int x, int y);

            這個函數(shù)將鼠標(biāo)指針移動到一個相對于當(dāng)前窗口左上角的新的位置,以窗口左上角為原點(diǎn),右為X軸正方向,下為Y軸正方向,參數(shù)x,y是在這個坐標(biāo)系中的點(diǎn),可以為負(fù)值.如果坐標(biāo)值超出屏幕可見范圍,則將該值強(qiáng)行控制在屏幕可見范圍以內(nèi).一般情況下這個函數(shù)最好不要使用, 因為鼠標(biāo)動作還是留給用戶控制比較人性化.

            posted @ 2009-03-03 15:26 小蟲蟲 閱讀(1222) | 評論 (0)編輯 收藏

            僅列出標(biāo)題
            共3頁: 1 2 3 
            <2009年4月>
            2930311234
            567891011
            12131415161718
            19202122232425
            262728293012
            3456789

            導(dǎo)航

            統(tǒng)計

            常用鏈接

            留言簿(5)

            隨筆分類

            隨筆檔案

            搜索

            最新評論

            閱讀排行榜

            評論排行榜

            久久精品18| 97精品伊人久久大香线蕉app| 91精品国产91热久久久久福利 | 日产精品99久久久久久| 人妻无码αv中文字幕久久| 伊人久久大香线焦AV综合影院| 国产精品99久久久久久宅男小说| 久久人妻少妇嫩草AV蜜桃| 久久亚洲中文字幕精品一区| 国产成人久久精品一区二区三区| 五月丁香综合激情六月久久| 99久久国产综合精品成人影院| 中文国产成人精品久久亚洲精品AⅤ无码精品| 久久亚洲中文字幕精品一区| 国产一区二区三区久久| 成人久久免费网站| 亚洲国产精品无码久久青草| 久久精品国产福利国产秒| 99精品久久久久久久婷婷| 久久嫩草影院免费看夜色| 国产亚洲精品美女久久久| 国产亚洲精久久久久久无码77777 国产亚洲精品久久久久秋霞 | 久久国产精品无| 久久久久99精品成人片牛牛影视| 亚洲国产欧洲综合997久久| 亚洲v国产v天堂a无码久久| 伊人久久大香线蕉精品不卡| 国产午夜福利精品久久| 午夜肉伦伦影院久久精品免费看国产一区二区三区| 国内精品伊人久久久久777| 亚洲国产一成人久久精品| 久久亚洲美女精品国产精品| 久久久青草久久久青草| 国内精品伊人久久久久网站| 欧美粉嫩小泬久久久久久久 | 国产精品中文久久久久久久| 99久久香蕉国产线看观香| 99久久99久久精品免费看蜜桃| segui久久国产精品| 日本久久久久亚洲中字幕| 精品无码久久久久久久久久|