freepeople性欧美熟妇, 色戒完整版无删减158分钟hd, 无码精品国产vα在线观看DVD, 丰满少妇伦精品无码专区在线观看,艾栗栗与纹身男宾馆3p50分钟,国产AV片在线观看,黑人与美女高潮,18岁女RAPPERDISSSUBS,国产手机在机看影片

正文內(nèi)容

基于opengl的vxworks圖形用戶界面開發(fā)畢業(yè)論文(參考版)

2025-06-21 16:20本頁(yè)面
  

【正文】 打開Tornado 開發(fā)環(huán)境,選擇“ToolsTarget ServerConfigure”菜單,彈出一個(gè)配置對(duì)話框,在“Description”中任意填寫一個(gè)名字,這里是“net00”;在“Available Back”中選擇“wdbrpc”,并在下面的IP地址框中填寫目標(biāo)機(jī)的IP地址,這里是“”(由 DEFAULT_BOOT_LINE參數(shù)決定);將“Target Server Properties”下拉框更改至“Core File and Symbols”,并在“File Path”一項(xiàng)中選擇您的映象的完整路徑,這里是“D:\vxWorks”(由DEFAULT_。配置好之后開始引導(dǎo)運(yùn)行,引導(dǎo)成功之后,系統(tǒng)會(huì)自動(dòng)從FTP服務(wù)器下載映像,并開始運(yùn)行。配置好之后讓其處于運(yùn)行狀態(tài)。前者使我們可以通過(guò)Telnet協(xié)議登錄到VxWorks操作系統(tǒng)中;后者則可以讓我們通過(guò)命令行控制VxWorks系統(tǒng)。主要工作包括編譯網(wǎng)卡驅(qū)動(dòng),以使系統(tǒng)的網(wǎng)絡(luò)功能正常運(yùn)行;,使編譯出來(lái)的系統(tǒng)引導(dǎo)程序和VxWorks的映象符合我們的要求;接著建立bootrom和VxWorks系統(tǒng)映像。本課題使用VMware軟件模擬真實(shí)的目標(biāo)機(jī)。但是,并非所有人都能擁有物理的目標(biāo)機(jī),而且由于目標(biāo)機(jī)資源有限,不能保證隨時(shí)隨地都可以被用來(lái)調(diào)試程序。為了在VxWorks系統(tǒng)下進(jìn)行包括圖形開發(fā)在內(nèi)的所有程序的開發(fā),就需要擁有一個(gè)包含CPU、存儲(chǔ)器及I/O電路的目標(biāo)機(jī)。需要說(shuō)明的是,編譯具有相關(guān)功能的VxWorks操作系統(tǒng)映像前,必須要把WindML中的plete 2D圖形庫(kù)和simulator host devices,Simulator graphics組件包含進(jìn)來(lái)。至此,Mesa圖形庫(kù)便被編譯成功。做完以上工作后,更改Tornado工程Builds選項(xiàng)卡中的C/C++ Compiler選項(xiàng),添加以下路徑:. .\\target\src\Mesa\include. .\\target\src\Mesa\src再更改Rules選項(xiàng)卡,改為archive,即生成“.a”文件。然后在“ . .\\target\h”下建立GL文件夾,用來(lái)存放OPENGL頭文件。 編譯Mesa庫(kù)首先,將Mesa程序包放置在“ . .\Tornado \target\src”下。這里的繪圖由gl接口完成。}通過(guò)這個(gè)應(yīng)用程序,可以看到UGL在這里所扮演的是一個(gè)初始化圖形設(shè)備,完成設(shè)備相關(guān)配置,事件管理這樣一個(gè)角色。uglMesaDestroyContext()。/*開始事件循環(huán)*/loopEveni()。/*uglmesa context與buffer的綁定*/uglMesaMakeCurrentContext()。/*ugl創(chuàng)建事件隊(duì)列*/uglEventQCreate(eventServiceId,100)。uglDriverFind(amp。/*ugl加載鍵盤和事件服務(wù)*/uglDriverFind(amp。VxWorks創(chuàng)建任務(wù),任務(wù)函數(shù)為WindMLFunc。完成此功能的重要函數(shù)是uglMesaMakeCurrentContext(),流程如下:1)綁定正確的清除函數(shù)到context;2)綁定buffer到context;3)調(diào)用glapi_set_context設(shè)置context。}到這里除了設(shè)備驅(qū)動(dòng)相關(guān)的細(xì)節(jié),不同層之間己經(jīng)能夠聯(lián)系到一起。ctx = _swrast_ DrawPixels。ctx = _swrast_alloc_buffers。ctx = _swrast_Bitmap。/*初始化上文提到的dd_function_table表*/uglmesa_init_pointers(umcglCtx)。uglMesaContext這個(gè)結(jié)構(gòu)體的引入很好地解決了Mesa和UGL的結(jié)合。}其中,驅(qū)動(dòng)函數(shù)表結(jié)構(gòu)定義如下:struct dd_function_table {/*僅列出此項(xiàng)*/void (*DrawPixels) ( GLcontext* ctx,GLint x,GLint y,GLsizei width,GLsizei height,GLenum format,GLenum type,const struct gl_pixelstore_attrib* unpack,const GLvoid* pixels)。/*操作執(zhí)行函數(shù)表*/struct _glapi_table* CurrentDisPatch。通過(guò)下面的分析,我們將看到下層調(diào)用的聯(lián)系:struct _GLcontextRec{/*API函數(shù)指針表*/struct _glapi_table* Save。/*WindML接口調(diào)用標(biāo)記*/}這個(gè)結(jié)構(gòu)體既包含了GL圖形描述符表,也包括了UGL圖形描述表,將兩個(gè)重要的描述符標(biāo)結(jié)合到了一起。/*顯示設(shè)備ID*/UGL_GC_ID gc。 /*字節(jié)表示的緩沖大小*/GLsizei displayWidth。 /*每行像素?cái)?shù)目*/GLint bitsPerPixel。 /*描述緩沖*/GLframebuffer* glBuffer。這個(gè)結(jié)構(gòu)體中主要的一些數(shù)據(jù)項(xiàng)如下:struct uglMesaContext{GLcontext* glCtx。我們知道,無(wú)論是UGL繪圖或者M(jìn)esa繪圖來(lái)講,他們都有各自的圖形描述表,圖形描述符表包含有相關(guān)繪圖特性的信息,并與圖形顯示設(shè)備ID直接相連,大多數(shù)繪圖操作只能通過(guò)定義有效的圖形描述符表才能決定如何進(jìn)行,應(yīng)用程序可以針對(duì)圖形顯示設(shè)備創(chuàng)建多個(gè)圖形描述符表。借助于UGL已經(jīng)提供的接口,為Mesa的繪圖做好準(zhǔn)備。而Mesa庫(kù)編譯要復(fù)雜些,下面將重點(diǎn)描述。第一步的工作是配置編譯WindML庫(kù),接著再編譯Mesa庫(kù),上述工作完成之后,VxWorks便具備了開發(fā)三維圖形的功能。它是具有同OpenGL非常相似的API的一個(gè)3D圖形庫(kù),在一定程度上Mesa利用了OpenGL的命令語(yǔ)義及狀態(tài)機(jī),它獲得了SGI(Silicon Graphics,Inc)的授權(quán),但并沒有獲得SGI的OpenGL許可證,因此也就無(wú)法成為OpenGL的替代或者同SGI聯(lián)合。對(duì)于有經(jīng)驗(yàn)的程序員來(lái)說(shuō),一般先用glut理順3D圖形代碼,然后再集成為完整的應(yīng)用程序。函數(shù)以glut開頭,它們作為aux庫(kù)功能更強(qiáng)的替代品,提供更為復(fù)雜的繪制功能。: OpenGL輔助庫(kù)函數(shù)函數(shù)名稱函數(shù)主要功能描述auxInitDisplayMode()auxInitPosition()auxReshapeFunc()窗口初始化和退出函數(shù)auxKeyFunc()auxMouseFunc()窗口處理和時(shí)間輸入函數(shù)auxSetOneColor()顏色索引裝入函數(shù)auxWireCube()auxSolidCube()auxWireBox()auxWireIcosahedron()三維物體繪制函數(shù)auxIdleFunc()背景過(guò)程管理函數(shù)auxMainLoop()程序運(yùn)行函數(shù)4.OpenGL工具庫(kù)OpenGL Utility Toolkit包含大約30多個(gè)函數(shù),函數(shù)名前綴為glut。在跨平臺(tái)的編程實(shí)例和演示中,aux很大程度上己經(jīng)被glut庫(kù)取代。這部分函數(shù)提供窗口管理、輸入輸出處理以及繪制一些簡(jiǎn)單三維物體。OpenGL中的核心庫(kù)和實(shí)用庫(kù)可以在所有的OpenGL平臺(tái)上運(yùn)行。OpenGL提供了強(qiáng)大的但是為數(shù)不多的繪圖命令,所有較復(fù)雜的繪圖都必須從點(diǎn)、線、面開始。由于許多函數(shù)可以接收不同數(shù)據(jù)類型的參數(shù),因此派生出來(lái)的函數(shù)原形多達(dá)300多個(gè)。1.OpenGL核心庫(kù)核心庫(kù)包含有115個(gè)函數(shù),函數(shù)名的前綴為gl。擴(kuò)展函數(shù)庫(kù)是硬件廠商為實(shí)現(xiàn)硬件更新利用OpenGL的擴(kuò)展機(jī)制開發(fā)的函數(shù)。glx、agl、wgl是針對(duì)不同窗口系統(tǒng)的函數(shù)。OpenGL函數(shù)庫(kù)[21]相關(guān)的API有核心庫(kù)(gl)、實(shí)用庫(kù)(glu)、輔助庫(kù)(aux)、實(shí)用工具庫(kù)(glut)、窗口庫(kù)(glx、agl、wgl)和擴(kuò)展函數(shù)庫(kù)等。例如glVertex3fv()表示了該函數(shù)屬于gl庫(kù),參數(shù)是三個(gè)float型參數(shù)指針。庫(kù)前綴有g(shù)l、glu、aux、glut、wgl、glx、agl等等,分別表示該函數(shù)屬于OpenGL哪個(gè)開發(fā)庫(kù),從函數(shù)名后面還可以看出需要多少個(gè)參數(shù)以及參數(shù)的類型。OpenGL庫(kù)函數(shù)的命名方式非常有規(guī)律。 OpenGL開發(fā)庫(kù)結(jié)構(gòu)開發(fā)基于OpenGL的應(yīng)用程序,必須先了解OpenGL的庫(kù)函數(shù)。使用OpenGL的典型描繪是:首先在幀緩沖區(qū)中定義一個(gè)窗口,然后在此窗口中進(jìn)行各種操作。通過(guò)一些轉(zhuǎn)換程序,可以很方便的將AutoCAD、3DS等圖形設(shè)計(jì)軟件制作的DFX和3DS模型文件轉(zhuǎn)換成OpenGL的頂點(diǎn)數(shù)據(jù)。OpenGL是一套底層三維圖形API,之所以稱之為底層API,是因?yàn)樗鼪]有提供幾何實(shí)體圖元,不能直接用以描述場(chǎng)景。它包括了120個(gè)圖形函數(shù),開發(fā)者可以用這些函數(shù)來(lái)建立三維模型和進(jìn)行三維實(shí)時(shí)交互。OpenGL能在網(wǎng)絡(luò)環(huán)境下以客戶機(jī)/服務(wù)器模式工作,充分發(fā)揮集群運(yùn)算的威力,是專業(yè)圖形處理、科學(xué)計(jì)算等高端應(yīng)用領(lǐng)域的標(biāo)準(zhǔn)圖形庫(kù)作為圖形硬件的軟件接口,OpenGL由幾百個(gè)指令或函數(shù)組成。許多計(jì)算機(jī)公司已經(jīng)把OpenGL集成到各種窗口和操作系統(tǒng)中,其中操作系統(tǒng)有Unix、Windows NT、DOS等,窗口系統(tǒng)有X窗口、Windows等;l 各種流行的編程語(yǔ)言都可以調(diào)用OpenGL的庫(kù)函數(shù),如:C、C++、Fortran、Ada、Java。OpenGL的最大特點(diǎn)是與硬件的無(wú)關(guān)性,獨(dú)立于硬件和窗口系統(tǒng)。最近,3Dlabs提出了OpenGL ,在OpenGL ,突破OpenGL ,希望在技術(shù)上超過(guò)DirectX D3D,成為圖像圖形世界的領(lǐng)先者。SGI等ARB成員以投票方式產(chǎn)生標(biāo)準(zhǔn),并制成規(guī)范文檔(Specification)公布,各軟硬件廠商據(jù)此開發(fā)自己系統(tǒng)上的實(shí)現(xiàn)。它源于IRIS GL,在跨平臺(tái)移植過(guò)程中發(fā)展成為OpenGL。將OpenGL稱之為SGI(視算科技)的OpenGL毫不為過(guò)。OpenGL,在真實(shí)感圖形制作上的優(yōu)秀性能使之成為諸大公司的圖形標(biāo)準(zhǔn),所以O(shè)penGL又是新一代的三維圖形工業(yè)標(biāo)準(zhǔn)。OpenGL,Open Graphics Library,是一個(gè)3D圖形和模型庫(kù)。35第三章 OpenGL/Mesa及其在VxWorks下的移植第三章 OpenGL/Mesa及其在VxWorks下的移植 OpenGL/Mesa OpenGL開發(fā)庫(kù)隨著計(jì)算機(jī)圖形學(xué)的發(fā)展,出現(xiàn)了各種三維圖形工具軟件包[19],如PHIGS、PEX、RenderMan等。WindML中使用uglGcCreate()函數(shù)來(lái)建立圖形上下文(GC) , 創(chuàng)建GC后就可以定義繪圖特征, 如簡(jiǎn)單繪圖信息, 像背景色、前景色、線類型、填充模式、默認(rèn)位圖、光柵模式、字體等等。l 圖形上下文的定義:在使用WindML API函數(shù)之前要先建立圖形上下文(GC)。colorTable[] = { { UGL_MAKE_RGB (0,0,0),0 },{ UGL_MAKE_RGB (0,255,0),0 }, ... }。下面重點(diǎn)介紹一下設(shè)定調(diào)色板和定義圖形上下文(GC),這是在調(diào)用WindML作圖API函數(shù)進(jìn)行圖形繪制必需的兩個(gè)步驟。消息循環(huán)函數(shù)起到心臟的作用, 通過(guò)不停地從消息隊(duì)列中取得消息,來(lái)維持整個(gè)程序的運(yùn)行。主要用到的API包括:輸出,輸入設(shè)備,字體驅(qū)動(dòng)的注冊(cè)u(píng)glRegistryFind();字體驅(qū)動(dòng)的創(chuàng)建uglFontCreate();設(shè)備的配色uglColorAlloc()等。清屏程序用來(lái)在每次更新顯示前清除屏幕,重新設(shè)置線型線寬和設(shè)置區(qū)域大小。第二、編寫清屏程序,結(jié)束程序和圖形繪制函數(shù)。 WindML程序開發(fā)流程在VxWorks系統(tǒng)中使用WindML進(jìn)行2D圖形顯示程序的開發(fā)從整體上來(lái)說(shuō),可以概括為三部分:第一、初始化,主要完成UGL的初始化、創(chuàng)建圖形上下文(GC)、和設(shè)置一些基本的畫圖屬性,如前景色和背景色,線的類型和寬度,圖形的填充模式,默認(rèn)的位圖,光柵覆蓋模式,當(dāng)前使用字體等。雙緩沖API能用于創(chuàng)建和管理多個(gè)后臺(tái)頁(yè)面緩沖,后臺(tái)繪制的頁(yè)面與實(shí)際的可見頁(yè)面是相互獨(dú)立的,當(dāng)缺省的GC中的位圖數(shù)量值被設(shè)置為UGL_DISPLAY_ID時(shí),不管當(dāng)前的繪制的頁(yè)面是否被設(shè)置為可見頁(yè)。7)雙緩沖:主要用于消除繪圖操作所帶來(lái)的屏幕的閃爍,利用雙緩沖API可以首先將對(duì)像繪制在后臺(tái)的頁(yè)面或緩沖中,當(dāng)繪圖操作結(jié)束時(shí),再將這些己完成的繪制的圖形顯現(xiàn)于物理顯示器上。在CLUT中包含了對(duì)應(yīng)像素的顏色信息。通用的顯示模式和架構(gòu)有如下兩種:直接色彩模式下的直接顏色(所有的色彩數(shù)據(jù)都包含在畫面的數(shù)據(jù)中);索引色(在索引色模式下,畫面緩沖中的每個(gè)像素由一個(gè)索引向量來(lái)表示)。6)顏色管理:WindML的顏色管理函數(shù)和宏提供了基本的和優(yōu)化的顏色管理功能。WindML中的2D函數(shù)提供了創(chuàng)建和刪除GC的函數(shù),并建立了GC數(shù)據(jù)結(jié)構(gòu)的域。在任何繪圖操作開始前,都必須為某個(gè)指定的輸出設(shè)備建立GC。優(yōu)點(diǎn):可以確保繪圖動(dòng)作的連續(xù)性及完整性;減少屏幕的閃爍、有效利用系統(tǒng)的資源。在本系統(tǒng)里不須光標(biāo)使用,所以不作討論。位圖是圖形應(yīng)用程序的重要部分,它占有大量的CPU資源與總線時(shí)間,因此在應(yīng)用程序開發(fā)過(guò)程中對(duì)它的應(yīng)用進(jìn)行適當(dāng)?shù)墓芾砗陀?jì)劃是非常有必要的,WindML的2D位圖API提供了靈活的位圖管理,可以使應(yīng)用程序在性能和便利中進(jìn)行平衡。return。fontDef)) = = UGL_NULL){printf( WindML:Font not found,Exiting.\n )。fontDef)。return。fontDef)) = = UGL_NULL){printf( WindML:Font not found,Exiting.\n )。fontDef)。用戶可以通過(guò)這些函數(shù)進(jìn)行字體管理,包括:
點(diǎn)擊復(fù)制文檔內(nèi)容
高考資料相關(guān)推薦
文庫(kù)吧 www.dybbs8.com
備案圖鄂ICP備17016276號(hào)-1