日韩久久久精品,亚洲精品久久久久久久久久久,亚洲欧美一区二区三区国产精品 ,一区二区福利

glut庫(kù)下的主要函數(shù):

系統(tǒng) 1991 0

?glut庫(kù)下的主要函數(shù):?

一。初始化?

?void?glutInit(int*?argc,char**?argv)?

?這個(gè)函數(shù)用來(lái)初始化GLUT庫(kù)。對(duì)應(yīng)main函數(shù)的形式應(yīng)是:int?main(int?argc,char*?argv[]);?

?這個(gè)函數(shù)從main函數(shù)獲取其兩個(gè)參數(shù)。?

??

?void?glutInitWindowSize(int?width,int?height);?

?void?glutInitWindowPosition(int?x,int?y);?

?這兩個(gè)函數(shù)很好理解是設(shè)置glut程序要產(chǎn)生的窗口的大小和位置(左上角)。以像素為單位。?

?void?glutInitDisplayMode(unsigned?int?mode);?

?設(shè)置圖形顯示模式。參數(shù)mode的可選值為:?

?GLUT_RGBA:當(dāng)未指明GLUT—RGBA或GLUT—INDEX時(shí),是默認(rèn)使用的模式。表明欲建立RGBA模式的窗口。?

?GLUT_RGB:與GLUT—RGBA作用相同。?

?GLUT_INDEX:指明為顏色索引模式。?

?GLUT_SINGLE:只使用單緩存?

?GLUT_DOUBLE:使用雙緩存。以避免把計(jì)算機(jī)作圖的過(guò)程都表現(xiàn)出來(lái),或者為了平滑地實(shí)現(xiàn)動(dòng)畫(huà)。?

?GLUT_ACCUM:讓窗口使用累加的緩存。?

?GLUT_ALPHA:讓顏色緩沖區(qū)使用alpha組件。?

?GLUT_DEPTH:使用深度緩存。?

?GLUT_STENCIL:使用模板緩存。?

?GLUT_MULTISAMPLE:讓窗口支持多例程。?

?GLUT_STEREO:使窗口支持立體。?

?GLUT_LUMINACE:luminance是亮度的意思。但是很遺憾,在多數(shù)OpenGL平臺(tái)上,不被支持。?

--------------------------------------------------------------------------------?

二。事件處理(Event?Processing)?

?void??glutMainLoop(void)?

?讓glut程序進(jìn)入事件循環(huán)。在一個(gè)glut程序中最多只能調(diào)用一次。一旦調(diào)用,會(huì)直到程序結(jié)束才返回。??

--------------------------------------------------------------------------------?

三。窗口管理(Window?Management)?

?int?glutCreateWindow(char*?name);?

?產(chǎn)生一個(gè)頂層的窗口。name?作為窗口的名字,也就是窗口標(biāo)題欄顯示的內(nèi)容。?

?返回值是生成窗口的標(biāo)記符,可用函數(shù)glutGetWindow()加以引用。?

?int?glutCreateSubWindow(int?win,int?x,int?y,int?width,int?height);?

?創(chuàng)建一個(gè)子窗口。win是其父窗口的標(biāo)記符。x,y是相對(duì)父窗口的位移,以像素表示。?

?width,height是子窗口的寬和高。?

?void?glutSetWindow(int?win);?

?int?glutGetWindow(void);?

?功能分別是:設(shè)置標(biāo)記符為win的窗口為當(dāng)前窗口;返回當(dāng)前窗口的標(biāo)記符。?

?void?glutDestroyWindow(int?win);?

?銷毀以win標(biāo)記的窗口。?

?void?glutPostRedisplay(void);?

?將當(dāng)前窗口打上標(biāo)記,標(biāo)記其需要再次顯示。?

?void?glutSwapBuffers(void);?

?當(dāng)窗口模式為雙緩存時(shí),此函數(shù)的功能就是把后臺(tái)緩存的內(nèi)容交換到前臺(tái)顯示。當(dāng)然,只有單緩存時(shí),使用它的功能跟用glFlush()一樣。?

?而使用雙緩存是為了把完整圖畫(huà)一次性顯示在窗口上,或者是為了實(shí)現(xiàn)動(dòng)畫(huà)。?

?void?glutPositionWindow(int?x,int?y);?

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

?void?glutReshapeWindow(int?width,int?height);?

?改變當(dāng)前窗口的大小。?

?width,height是當(dāng)前窗口新的寬度和高度值,當(dāng)然只能是正值。?

?void?glutFullscreen(void);?

?讓當(dāng)前窗口全屏顯示。當(dāng)前窗口是頂層窗口時(shí)才有效。?

?void?glutPopWindow(void);?

?void?glutPushWindow(void);?

?對(duì)頂層窗口和子窗口均有效。改變當(dāng)前窗口在棧中相對(duì)于其它窗口的次序。?

?void?glutShowWindow(void);?

?void?glutHideWindow(void);?

?void?glutIconifyWindow(void);?

?這三個(gè)函數(shù)作用是改變當(dāng)前窗口的顯示狀態(tài)。?

?glutShowWindow讓當(dāng)前窗口可視(這時(shí)它還是可能被其它窗口擋住)。?

?glutHideWindow讓當(dāng)前窗口成為不可視狀態(tài)。?

?glutIconifyWindow讓當(dāng)前窗口成為一個(gè)圖標(biāo),也即是最小化。?

?glutSetWindowTitle(char*?name);?

?glutSetIconTitle(char*?name);?

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

?glutSetCursor(int?cursor);?

?設(shè)置當(dāng)前窗口的光標(biāo)樣式。?

?cursor可選值有許多:如GLUT_CURSOR_RIGHT_ARROW指向右邊的光標(biāo),GLUT_CURSOR_LEFT_ARROW指向左邊的光標(biāo),GLUT_CURSOR_INFO成為手狀。?

GLUT_CURSOR_DESTROY呈叉狀,GLUT_CURSOR_HELP呈現(xiàn)問(wèn)號(hào)的形狀。?

等等。??

--------------------------------------------------------------------------------?

四。窗口的覆蓋管理?

void?glutEstablishOverlay(void);?

對(duì)當(dāng)前窗口創(chuàng)建覆蓋圖層。該覆蓋圖的模式由初始化顯示模式函數(shù)glutDisplayMode()決定。glutLayerGet(GLUT_OVERLAY_POSSIBLE)可用以設(shè)置對(duì)于當(dāng)前窗口,是否允許產(chǎn)生由初始化顯示模式函數(shù)規(guī)定其模式的覆蓋圖層。?

void?glutUserLayer(GLenum?layer);?

枚舉量layer可選值為:GLUT_NORMAL,GLUT_OVERLAY.分別選取正常位平面或覆蓋平面。?

void?glutRemoveLayer(void);?

除去覆蓋圖。當(dāng)沒(méi)有覆蓋圖層時(shí),調(diào)用這條語(yǔ)句也是安全的,這時(shí)系統(tǒng)不做任何事。?

void?glutPostOverlayRedisplay(void);?

標(biāo)記該覆蓋圖層為需要重新顯示的狀態(tài)。?

void?glutShowOverlay(void);?

void?glutHideOverlay(void);?

顯示當(dāng)前窗口的覆蓋圖層;隱藏覆蓋圖層。這兩條語(yǔ)句即時(shí)執(zhí)行。注意一下,只有窗口可視時(shí),使用glutShowOverlay才能使其覆蓋圖層可視。當(dāng)窗口被其他窗口遮擋時(shí),其覆蓋圖層也被遮擋從而不可視。?

?

二。事件處理(Event?Processing)?

?void??glutMainLoop(void)?

?讓glut程序進(jìn)入事件循環(huán)。在一個(gè)glut程序中最多只能調(diào)用一次。一旦調(diào)用,會(huì)直到程序結(jié)束才返回。?

三。窗口管理(Window?Management)?

?int?glutCreateWindow(char*?name);?

?產(chǎn)生一個(gè)頂層的窗口。name?作為窗口的名字,也就是窗口標(biāo)題欄顯示的內(nèi)容。?

?返回值是生成窗口的標(biāo)記符,可用函數(shù)glutGetWindow()加以引用。?

?int?glutCreateSubWindow(int?win,int?x,int?y,int?width,int?height);?

?創(chuàng)建一個(gè)子窗口。win是其父窗口的標(biāo)記符。x,y是相對(duì)父窗口的位移,以像素表示。?

?width,height是子窗口的寬和高。?

?void?glutSetWindow(int?win);?

?int?glutGetWindow(void);?

?功能分別是:設(shè)置標(biāo)記符為win的窗口為當(dāng)前窗口;返回當(dāng)前窗口的標(biāo)記符。?

?void?glutDestroyWindow(int?win);?

?銷毀以win標(biāo)記的窗口。?

?void?glutPostRedisplay(void);?

?將當(dāng)前窗口打上標(biāo)記,標(biāo)記其需要再次顯示。?

?void?glutSwapBuffers(void);?

?當(dāng)窗口模式為雙緩存時(shí),此函數(shù)的功能就是把后臺(tái)緩存的內(nèi)容交換到前臺(tái)顯示。當(dāng)然,只有單緩存時(shí),使用它的功能跟用glFlush()一樣。?

?而使用雙緩存是為了把完整圖畫(huà)一次性顯示在窗口上,或者是為了實(shí)現(xiàn)動(dòng)畫(huà)。?

?void?glutPositionWindow(int?x,int?y);?

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

?void?glutReshapeWindow(int?width,int?height);?

?改變當(dāng)前窗口的大小。?

?width,height是當(dāng)前窗口新的寬度和高度值,當(dāng)然只能是正值。?

?void?glutFullscreen(void);?

?讓當(dāng)前窗口全屏顯示。當(dāng)前窗口是頂層窗口時(shí)才有效。?

?void?glutPopWindow(void);?

?void?glutPushWindow(void);?

?對(duì)頂層窗口和子窗口均有效。改變當(dāng)前窗口在棧中相對(duì)于其它窗口的次序。?

?void?glutShowWindow(void);?

?void?glutHideWindow(void);?

?void?glutIconifyWindow(void);?

?這三個(gè)函數(shù)作用是改變當(dāng)前窗口的顯示狀態(tài)。?

?glutShowWindow讓當(dāng)前窗口可視(這時(shí)它還是可能被其它窗口擋住)。?

?glutHideWindow讓當(dāng)前窗口成為不可視狀態(tài)。?

?glutIconifyWindow讓當(dāng)前窗口成為一個(gè)圖標(biāo),也即是最小化。?

?glutSetWindowTitle(char*?name);?

?glutSetIconTitle(char*?name);?

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

?glutSetCursor(int?cursor);?

?設(shè)置當(dāng)前窗口的光標(biāo)樣式。?

?cursor可選值有許多:如GLUT_CURSOR_RIGHT_ARROW指向右邊的光標(biāo),GLUT_CURSOR_LEFT_ARROW指向左邊的光標(biāo),GLUT_CURSOR_INFO成為手狀。?

GLUT_CURSOR_DESTROY呈叉狀,GLUT_CURSOR_HELP呈現(xiàn)問(wèn)號(hào)的形狀。?

等等。?

四。窗口的覆蓋管理?

void?glutEstablishOverlay(void);?

對(duì)當(dāng)前窗口創(chuàng)建覆蓋圖層。該覆蓋圖的模式由初始化顯示模式函數(shù)glutDisplayMode()決定。glutLayerGet(GLUT_OVERLAY_POSSIBLE)可用以設(shè)置對(duì)于當(dāng)前窗口,是否允許產(chǎn)生由初始化顯示模式函數(shù)規(guī)定其模式的覆蓋圖層。?

void?glutUserLayer(GLenum?layer);?

枚舉量layer可選值為:GLUT_NORMAL,GLUT_OVERLAY.分別選取正常位平面或覆蓋平面。?

void?glutRemoveLayer(void);?

除去覆蓋圖。當(dāng)沒(méi)有覆蓋圖層時(shí),調(diào)用這條語(yǔ)句也是安全的,這時(shí)系統(tǒng)不做任何事。?

void?glutPostOverlayRedisplay(void);?

標(biāo)記該覆蓋圖層為需要重新顯示的狀態(tài)。?

void?glutShowOverlay(void);?

void?glutHideOverlay(void);?

顯示當(dāng)前窗口的覆蓋圖層;隱藏覆蓋圖層。這兩條語(yǔ)句即時(shí)執(zhí)行。注意一下,只有窗口可視時(shí),使用glutShowOverlay才能使其覆蓋圖層可視。當(dāng)窗口被其他窗口遮擋時(shí),其覆蓋圖層

glut庫(kù)下的主要函數(shù):


更多文章、技術(shù)交流、商務(wù)合作、聯(lián)系博主

微信掃碼或搜索:z360901061

微信掃一掃加我為好友

QQ號(hào)聯(lián)系: 360901061

您的支持是博主寫(xiě)作最大的動(dòng)力,如果您喜歡我的文章,感覺(jué)我的文章對(duì)您有幫助,請(qǐng)用微信掃描下面二維碼支持博主2元、5元、10元、20元等您想捐的金額吧,狠狠點(diǎn)擊下面給點(diǎn)支持吧,站長(zhǎng)非常感激您!手機(jī)微信長(zhǎng)按不能支付解決辦法:請(qǐng)將微信支付二維碼保存到相冊(cè),切換到微信,然后點(diǎn)擊微信右上角掃一掃功能,選擇支付二維碼完成支付。

【本文對(duì)您有幫助就好】

您的支持是博主寫(xiě)作最大的動(dòng)力,如果您喜歡我的文章,感覺(jué)我的文章對(duì)您有幫助,請(qǐng)用微信掃描上面二維碼支持博主2元、5元、10元、自定義金額等您想捐的金額吧,站長(zhǎng)會(huì)非常 感謝您的哦!!!

發(fā)表我的評(píng)論
最新評(píng)論 總共0條評(píng)論
主站蜘蛛池模板: 望城县| 峨山| 乳山市| 安塞县| 安泽县| 抚顺县| 神池县| 平谷区| 夏邑县| 长子县| 定安县| 青冈县| 斗六市| 汝城县| 千阳县| 武陟县| 阳春市| 霍州市| 建德市| 衡山县| 夏津县| 台山市| 阜平县| 闻喜县| 武乡县| 民丰县| 天水市| 黄大仙区| 英超| 九寨沟县| 水富县| 黄平县| 诸暨市| 台州市| 历史| 新兴县| 朝阳区| 鄱阳县| 梨树县| 贡觉县| 湾仔区|