999精品在线视频,手机成人午夜在线视频,久久不卡国产精品无码,中日无码在线观看,成人av手机在线观看,日韩精品亚洲一区中文字幕,亚洲av无码人妻,四虎国产在线观看 ?

基于GLUT的OpenGL應用程序框架構(gòu)建

2007-08-25 01:30:42王繼東等
智能計算機與應用 2007年4期
關(guān)鍵詞:程序設置功能

王繼東等

王繼東龐明勇李建生

摘要:介紹了GLUT的設計原理和功能,闡述了基于GLUT構(gòu)建OpenGL應用程序框架的步驟。并給出一個具體的應用程序?qū)嵗?/p>

關(guān)鍵詞:GLUTOpenGL應用程序框架

1GLUT設計原理與功能

GLUT是用ANSI C和FORTRAN語言實現(xiàn)的一個編程接口,其API是獨立于窗口系統(tǒng)的,所以它不返回任何活動的窗口句柄、指針及其他數(shù)據(jù)結(jié)構(gòu)。GLUT簡化了應用OpennGL渲染的過程,通過GLUT的API只需簡單的幾步就能為OpenGL創(chuàng)建一個可供渲染的窗口。它的設計和OpennGL一樣也是基于狀態(tài)機的,當前窗口和當前菜單是GLUT兩個最重要的狀態(tài),OpenGL中的函數(shù)一般只作用于這些狀態(tài)綁定的窗口。根據(jù)簡單應用程序的一般要求,GLUT合理地預定義了大部分的初始狀態(tài),從而簡化了狀態(tài)設置過程。

GLUT提供的功能包括多窗口OpenGL渲染、回調(diào)模式驅(qū)動的程序執(zhí)行方式、完整的輸入設備、提供系統(tǒng)閑置時調(diào)用的idle函數(shù)、提供彈出式菜單、提供常用的線框和實體模型的繪制、支持圖像/圖形字體的繪制、其它的窗口管理功能(包括管理重疊層)等,這些功能基本滿足了OpenGL圖形應用程序開發(fā)的需要。

2基于GLUT構(gòu)建OpenGL應用程序框架的方法

基于GLUT構(gòu)建OpenGL的應用程序框架可以按照以下幾個步驟進行:

(1)初始化和創(chuàng)建窗口。在任何GLUT子程序之前,應首先調(diào)用能夠處理命令行選項的gutlnit()函數(shù)對GLUT庫進行初始化,然后,再調(diào)用glutInitDisplayMode()、glu-tlnitWindowSize()、glutInitWindowPosition()對窗口的顯示模式、大小以及窗口在屏幕中的位置進行設置,最后,調(diào)用gutCreateWindow()函數(shù)創(chuàng)建新窗口;(2)設置OoenGL初始狀態(tài)。一般在窗口創(chuàng)建成功后,我們將要對OpenGL初始狀態(tài)進行設置。如使用glColor*()函數(shù)設置當前顏色,使用glLingIlt*()函數(shù)設置光源屬性,使用gIBlendFunc()函數(shù)設置混合操作,使用glEnable()和glDisable()函數(shù)激活和關(guān)閉各種狀態(tài)開關(guān)等;(3)注冊回調(diào)函數(shù)。在程序進入主循環(huán)之前,應對回調(diào)函數(shù)進行0注冊。常用的注冊回調(diào)函數(shù)有:glutDisplayFunc()函數(shù)、glutReshapeFunc()函數(shù)、glutKeyboardFunc()函數(shù)、glutSpecialFunc()函數(shù)、glutInit()函數(shù)。(4)進入GLUT事件處理循環(huán)。在完成前面所有設置后,就可以通過glutMainLoop()函數(shù)進入GLUT事件處理循環(huán)。當某事件被激活,應用程序?qū)⒄{(diào)用相應的已注冊回調(diào)函數(shù)實現(xiàn)特定的功能,如窗口重繪、鍵盤交互、鼠標交互等。

3應用程序?qū)嵗?/p>

在Windows2000和VC6.0環(huán)境下,建立一個基于GLUT的簡單OpenGL程序?qū)嵗嵗饕抢L制一個半透明紋理的正方體,并可以使用鍵盤上的Home鍵和方向鍵控制正方體旋轉(zhuǎn)。

3.1 Include文件及程序庫鏈接設置

把glut.h、glut32.1ib文件復制到VC6.0程序文件夾下的子文件夾中(glut.h復制到Microsoft Visual Stu-dioVC98IncludeGL,glut32.1ib復制到Microsoft VisualStudioVC98Lib),把glut32.dll復制到操作系統(tǒng)所在文件夾的子文件夾中(一般為WlNNTsystem32)。

打開VC6.0建立一個空的Win32控制臺程序并新建一個C++源文件。在C++源文件的開始處,除了包含其他必要頭文件以外還必須包含GLUT頭文件,代碼為:#in-elude。因為glut.h文件中已包含了glu.h和g1.h文件,所以不需要再使用include命令包含這兩個文件了。

程序庫的鏈接可以通過VC6.0的菜單選項“Project->settings”設置,不過這里我們使用更加靈活方便的命令行完成,這樣在Debug模式與Release模式之間切換時就不會出錯。代碼如下:

3.2程序主函數(shù)的編寫

基于GLUT的OpenGL應用程序框架主要在main()函數(shù)中構(gòu)建,代碼如下:

3.3 OpenGL繪制與交互

4結(jié)束語

開發(fā)者使用GLUT能夠在不考慮開發(fā)平臺的基礎上直接進行OpenGL圖形開發(fā),提高了應用程序的開發(fā)效率降低了開發(fā)的門檻。

猜你喜歡
程序設置功能
也談詩的“功能”
中華詩詞(2022年6期)2022-12-31 06:41:24
中隊崗位該如何設置
少先隊活動(2021年4期)2021-07-23 01:46:22
試論我國未決羈押程序的立法完善
人大建設(2019年12期)2019-05-21 02:55:44
“程序猿”的生活什么樣
關(guān)于非首都功能疏解的幾點思考
英國與歐盟正式啟動“離婚”程序程序
本刊欄目設置說明
中俄臨床醫(yī)學專業(yè)課程設置的比較與思考
創(chuàng)衛(wèi)暗訪程序有待改進
中西醫(yī)結(jié)合治療甲狀腺功能亢進癥31例
主站蜘蛛池模板: 亚洲av片在线免费观看| 精品国产一区91在线| 亚洲第一视频区| 国产免费黄| 亚洲经典在线中文字幕| 欧美亚洲日韩不卡在线在线观看| 久久国产亚洲偷自| 综合色亚洲| 噜噜噜综合亚洲| 色婷婷视频在线| 久久综合成人| 欧美日本在线播放| 亚洲黄色成人| 国产v精品成人免费视频71pao| 亚洲欧美自拍中文| 精品久久蜜桃| 全午夜免费一级毛片| 亚洲国产中文在线二区三区免| 欧美亚洲网| 亚洲高清免费在线观看| 国产一区在线视频观看| 欧美午夜在线视频| 亚洲综合18p| 亚洲精品成人福利在线电影| 一级爆乳无码av| 国产激情无码一区二区免费| 亚洲无码日韩一区| 九色在线观看视频| 欧美成人精品一区二区| AⅤ色综合久久天堂AV色综合| 最新日韩AV网址在线观看| 尤物亚洲最大AV无码网站| 一级片免费网站| 国产成人免费手机在线观看视频 | 久久综合亚洲色一区二区三区| 成年女人a毛片免费视频| 欧美综合区自拍亚洲综合绿色| 久久黄色视频影| 婷婷六月激情综合一区| 性69交片免费看| 91毛片网| 久久免费成人| 成人av专区精品无码国产| 国产成人久久777777| 天堂岛国av无码免费无禁网站| 国产成人h在线观看网站站| 精品久久蜜桃| 91在线播放免费不卡无毒| 免费在线观看av| 国产成人亚洲无吗淙合青草| 国产成人高清精品免费软件 | 亚洲综合极品香蕉久久网| 999国内精品久久免费视频| 夜夜爽免费视频| 国产在线日本| 国产微拍一区二区三区四区| 国产精品网曝门免费视频| 中文成人在线视频| 国产在线观看一区精品| 国产永久在线观看| 亚洲一区二区三区麻豆| 中文字幕2区| 亚洲二区视频| 内射人妻无码色AV天堂| 啪啪永久免费av| 狠狠操夜夜爽| 国产精选自拍| 国产成人亚洲综合A∨在线播放| 欧美三級片黃色三級片黃色1| 免费人成视网站在线不卡| 97精品久久久大香线焦| 无码视频国产精品一区二区| 国产黄色视频综合| 在线观看的黄网| 青青操视频在线| 九九热这里只有国产精品| 日韩欧美成人高清在线观看| 精品视频91| 青青久久91| 777国产精品永久免费观看| 精品1区2区3区| 1024你懂的国产精品|