亚洲免费av电影一区二区三区,日韩爱爱视频,51精品视频一区二区三区,91视频爱爱,日韩欧美在线播放视频,中文字幕少妇AV,亚洲电影中文字幕,久久久久亚洲av成人网址,久久综合视频网站,国产在线不卡免费播放

        ?

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

        2007-08-25 01:30:42王繼東等
        智能計算機(jī)與應(yīng)用 2007年4期
        關(guān)鍵詞:文件夾調(diào)用實例

        王繼東等

        王繼東龐明勇李建生

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

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

        1GLUT設(shè)計原理與功能

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

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

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

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

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

        3應(yīng)用程序?qū)嵗?/p>

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

        3.1 Include文件及程序庫鏈接設(shè)置

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

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

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

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

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

        3.3 OpenGL繪制與交互

        4結(jié)束語

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

        猜你喜歡
        文件夾調(diào)用實例
        磁力文件夾
        核電項目物項調(diào)用管理的應(yīng)用研究
        LabWindows/CVI下基于ActiveX技術(shù)的Excel調(diào)用
        調(diào)動右鍵 解決文件夾管理三大難題
        基于系統(tǒng)調(diào)用的惡意軟件檢測技術(shù)研究
        TC一鍵直達(dá)常用文件夾
        電腦迷(2015年1期)2015-04-29 21:24:13
        完形填空Ⅱ
        完形填空Ⅰ
        利用RFC技術(shù)實現(xiàn)SAP系統(tǒng)接口通信
        老师露出两个奶球让我吃奶头| 国产一区二区三区视频大全| 日韩精品一区二区三区视频| 老熟女老女人国产老太| 国产成人久久综合第一区| 日本在线一区二区在线| 日韩女同精品av在线观看| 亚洲a∨国产av综合av下载| 国产高颜值大学生情侣酒店| 自拍偷拍亚洲一区| 免费观看在线一区二区| 国产av天堂一区二区二区| 少妇被黑人嗷嗷大叫视频| 亚洲 欧美 综合 在线 精品| 午夜免费啪视频| 中文字幕一区二区三区人妻少妇| 日本欧美在线播放| 毛片色片av色在线观看| 国产91清纯白嫩初高中在线观看| 国产成本人片无码免费2020| 国产精品视频一区二区噜噜| 草莓视频一区二区精品| 亚洲综合免费在线视频| 精品成人av人一区二区三区| 中文字幕在线亚洲精品| 国产成熟人妻换╳╳╳╳| 激情内射亚洲一区二区三区爱妻| 无码久久精品蜜桃| 极品美女调教喷水网站| 强奸乱伦影音先锋| 少女高清影视在线观看动漫 | 亚洲精品国偷拍自产在线观看| 亚洲国产成人久久综合一区77| 日本口爆吞精在线视频| 99热久久只有这里是精品| 国产乱精品女同自线免费| 农村欧美丰满熟妇xxxx| 亚洲制服无码一区二区三区| av毛片一区二区少妇颜射| 精品女同一区二区三区| 欧美日韩亚洲中文字幕二区|