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

正文內容

基于opengl的vxworks圖形界面開發(fā)畢業(yè)論文-閱讀頁

2025-07-08 22:08本頁面
  

【正文】 處理。l 調色板的設定:WindML 的圖形界面是以像素為單位的,一般采用配色表來選擇顏色,先在配色表上配置好每一種顏色的R、 G、 B 值, 并用其在配色表中的索引值代表這種顏色。定義顏色對應表后, 在應用程序中使用uglColorAlloc()函數(shù)將顏色對應表中的這些顏色定位于顏色對照表(也叫調色板) 中, 就可以在程序中使用這些顏色了。圖形上下文包含了繪圖特征信息, 大部分的繪圖操作只有通過指定圖形上下文, 定義了繪圖特征才可以進行。 本章小結本章節(jié)主要敘述了VxWorks操作系統(tǒng)及其實時微內核Wind的特性,并介紹了VxWorks的集成開發(fā)環(huán)境Tornado的特點及各個組件的功能;詳細介紹了VxWorks的媒體庫WindML,對其事件服務機制、主要的圖形庫API和WindML程序開發(fā)的流程做了詳細說明。但沒有一種三維工具軟件包在交互式三維圖形建模能力、外部設備管理以及編程方便程度上能夠與OpenGL[20]相比擬。它被定義為“一個圖形硬件的軟件接口”。OpenGL不僅是一個圖形庫,它更是一個應用程序接口API。OpenGL最初是SGI公司為其圖形工作站開發(fā)的、獨立于窗口操作系統(tǒng)和硬件環(huán)境的圖形開發(fā)環(huán)境,其目的是將用戶從具體的硬件中解放出來,完全不用理解這些系統(tǒng)的結構和指令系統(tǒng),只要按照規(guī)定的格式書寫應用程序就可以在任何支持該語言的硬件平臺上執(zhí)行。,OpenGL后成為工業(yè)標準,由成立于1992年的OpenGL Architecture Review Board(ARB)ARB體系評審委員會控制。只有通過了ARB規(guī)范全部測試的實現(xiàn)才能稱為OpenGL,現(xiàn)在的ARB投票成員包括SGI、Intel、IBM、nVIDIA、ATi、Microsoft、Apple等公司。OpenGL ,就在于啟動并開發(fā)硬件的可編程能力。l 使用它,圖形軟件生產廠商再不用為各種不同的機型開發(fā)設計不同的軟件,只要操作系統(tǒng)使用了OpenGL適配器就可以達到相同的效果;l 它可以運行在當前各種流行的操作系統(tǒng)上,如MacOS、Unix、Windows95/98/NT/2000、Linux、OPENStep、python、BeOS等,并且很容易從一個平臺移植到另一個平臺上。許多軟件廠商也紛紛以OpenGL為基礎開發(fā)出自己的產品,例如著名的GIS軟件ARC/INFO;l OpenGL完全獨立于各種網(wǎng)絡協(xié)議和網(wǎng)絡拓撲結構。這些函數(shù)使得編程人員能夠指定對象并對其操作,從而生成高質量色彩豐富的三維物體。與其它圖形程序設計接口不同,OpenGL提供了十分清晰明了的圖形函數(shù),因此初學的程序設計員也能利用OpenGL的圖形處理能力和1670萬種色彩的調色板很快地設計出三維圖形以及三維交互軟件。OpenGL不要求開發(fā)者把三維物體模型的數(shù)據(jù)寫成固定的數(shù)據(jù)格式,這樣開發(fā)者不但可以直接使用自己的數(shù)據(jù),而且可以利用其它不同格式的數(shù)據(jù)源。這種靈活性極大地節(jié)省了開發(fā)者的時間,提高了軟件開發(fā)效益。在所有指令中,有些調用簡單的幾何對象,另外一些調用將影響到這些幾何對象的描繪,包括如何光照、著色、以及如何從用戶的二維或三維模型空間映射到屏幕。它采用C語言風格,提供大量的函數(shù)來進行圖形的處理和顯示。所有OpenGL函數(shù)采用了以下格式:庫前綴根命令可選的參數(shù)個數(shù)可選的參數(shù)類型。i代表int型,f代表float型,d代表double型,u代表無符號整型。我們用glVertex*()來表示這一類函數(shù)。從圖可以看出,gl是核心,glu是對gl的部分封裝。glut是跨平臺的OpenGL程序的工具包,比aux功能強大。下面逐一對這些庫進行詳細介紹。這部分函數(shù)用于常規(guī)的、核心的圖形處理。: OpenGL核心庫函數(shù)函數(shù)名稱函數(shù)主要功能描述glBegin(),glEnd()繪制基本幾何圖元的函數(shù)glNormal*()glVertex*()glPushMatrix()矩陣操作、幾何變換和投影變換的函數(shù)glPopMatrix()glLoadMatrix()glMultMatrix()glTranslate*(),glRotate*(),glScale*()幾何變換函數(shù)glColor*(),glIndex*()顏色、光照和材質的函數(shù)glLight*(),glLightModel*()glMaterial()glTexImage1D(),glTexImage2D()紋理映射函數(shù)glBlendFunc()特殊效果函數(shù)glHint()反走樣函數(shù)glRasterPos*()光柵化、象素操作函數(shù)glRenderMode()渲染模式2.OpenGL實用庫 The OpenGL Utility Library(GLU)包含有43個函數(shù),函數(shù)名的前綴為glu。GLU為了減輕繁重的編程工作,封裝了OpenGL函數(shù),GLU函數(shù)通過調用核心庫的函數(shù),為開發(fā)者提供相對簡單的用法,實現(xiàn)一些較為復雜的操作。: OpenGL GLU庫函數(shù)函數(shù)名稱函數(shù)主要功能描述gluPerspective()gluOrtho2D()gluLookAt()定義投影方式函數(shù)gluPickMatrix()拾取投影視景體函數(shù)gluNewTess()gluDeleteTess()gluTessVertex()gluTessCallback()gluBeginPolygon()gluEndPolygon()gluNextContour()多邊形鑲嵌工具gluScaleImage()gluBuild1Dmipmaps()gluBuild2Dmipmaps()輔助紋理貼圖函數(shù)gluNewQuadric()gluSphere()gluCylinder()gluDisk()gluPartialDisk()gluDeleteQuadric()二次曲面繪制工具,主要有繪制球面、錐面、柱面、圓環(huán)面gluNewNurbsRenderer()gluNurbsCurve()gluBeginSurface()gluEndSurface()gluBeginCurve()gluNurbsProperty()主要用來定義和繪制Nurbs曲線和曲面gluProject()gluUnProject()投影矩陣計算gluErrorString()錯誤反饋工具:獲取出錯信息的字符串3.OpenGL輔助庫包含有31個函數(shù),函數(shù)名前綴為aux。aux庫在windows實現(xiàn)有很多錯誤,因此很容易導致頻繁的崩潰。OpenGL中的輔助庫不能在所有的OpenGL平臺上運行。glut是不依賴于窗口平臺的OpenGL工具包,由Mark KLilgrad在SGI編寫(現(xiàn)在在nVIDIA),目的是隱藏不同窗口平臺API的復雜度。由于glut中的窗口管理函數(shù)是不依賴于運行環(huán)境的,因此OpenGL中的工具庫可以在XWindow,Windows NT,OS/2等系統(tǒng)下運行,特別適合于開發(fā)不需要復雜界面的OpenGL示例程序。: OpenGL GLUT庫函數(shù)函數(shù)名稱主要功能描述glutInit()glutInitDisplayMode()glutInitWindowSize()glutInitWindowPosition()窗口操作函數(shù)glutDisPlayFunc()glutPostRedisplay()glutReshapeFunc()glutTimerFunc()glutKeyboardFunc()glutMouseFunc()回調函數(shù) Mesa庫Mesa[22]是OpenGL在Linux上的一個實現(xiàn),它比較完整的包含了OpenGL標準的API。應用程序OpenGL MotifWidget or SimiliarGLUT軟件或者硬件層GLX,AGL Or WGLOSGLGLU Mesa庫的組織結構 OpenGL/Mesa庫的移植 工作概述宿主機的開發(fā)環(huán)境為Windows XP,使用的軟件工具和版本分別為Tornado for x86,VxWorks ,WindML for Tornado ,Mesa 。WindML的安裝和編譯工作相對要容易些,其操作都實現(xiàn)了圖形化操作,只要按著說明一步一步就可實現(xiàn),在此就不重點說明。 重要數(shù)據(jù)結構和函數(shù)的引入Mesa庫中的GL API可以直接操作底層硬件,但是繪圖初始化的工作,例如與設備相關的信息以及繪圖設備的初始化等工作都是通過UGL來完成的。所以在編譯Mesa庫之前,先要引入幾個重要的數(shù)據(jù)結構和函數(shù)[23]。為了實現(xiàn)上述Mesa與UGL的結合,先要引入一個新的非常重要的描述符表,即uglMesaContext。 /*核心的GL描述符*/GLvisual* glVisual。/*depth,stencil,accum,等*/GLsizei rowLength。 /*像素大小*/GLint bufferSize。/*屏幕大小*/UGL_DEVICE_ID devId。 /*UGL圖形上下文*/GLboolean windMLFlag。同時windMLFlag如果被置為真,那么相當于回復到了單一UGL的狀態(tài),Mesa被屏蔽。/*顯示列表保存函數(shù)表*/struct _glapi_table* Exec。/*驅動函數(shù)指針表*/struct dd_function_table Driver。/*這個函數(shù)被glDrawPixels調用來進行畫點操作*/}這里說明了上下層間是如何關聯(lián)的。下面描述用來創(chuàng)建這個結構體的重要函數(shù)uglMesaCreateNewContext():UGL_MESA_CONTEXT uglMesaCreateNewContext(){/*申請UGL_MESA_CONTEXT */umc=( UGL_MESA_CONTEXT)MALLOC_STRUCT(uglMesaContext)。}這個uglmesa_init_pointers完成如下賦值:uglmesa_init_pointers(GLcontext* ctx) {ctx = _swrast_Accum。ctx = clear。ctx = _swrast_ CopyPixels。ctx = _swrast_ ReadPixels。在正確創(chuàng)建了需要的UGL_Mesa描述符表后,因為系統(tǒng)中可能創(chuàng)建了多個描述符表,在設備繪圖前,要將當前使用的描述符表與frame buffer以及特定的繪圖設備進行綁定。 使用改進后的庫下面通過一個簡單的實例來說明應用程序應該怎么來使用加載過上述數(shù)據(jù)結構和函數(shù)的庫。下面是這個函數(shù)的實現(xiàn)程序:void WindMLFunc(UGL_BOOL windMLMode){/*ugl初始化*/uglInitialize()。keyboardDevId)。eventServiceId)。/*新增的uglmesa context創(chuàng)建*/uglMesaCreateNewContext(UGL_MESA_DOUBLE)。/*gl初始化*/initGL()。/*清除關閉工作*/uglEventQDestroy(eventServiceId,qId)。uglDeinitialize()。不同于原來在WindML下,繪圖由UGL 2D API通過ugl_ugl_driver這樣一個結構體來調用驅動相關的繪圖操作。uglMesaCreateNewContext()在創(chuàng)建時會傳入一個參數(shù)mode,這個參數(shù)決定了uglmeasContext中的標志windMLFlag,表示是否完全是WindML的函數(shù)調用模式,如果是那么在具體調用繪圖函數(shù)時會通過保存在uglmesaContext中的ugl_ugl_driver指針gc切換到windml的驅動,否則將會使用mesa的底層驅動。然后在Tornado下,建立一個基于SIMNTgnu的可下載工程,然后添加相關的Mesa源文件到工程里。把“ . .\\target\src\Mesa\include\”、。然后就可以編譯了,編譯成功后會在你工程目錄下生成“.a”文件。當需要用Mesa來實現(xiàn)三維圖形顯示的時候,我們只需要在編譯相應的VxWorks應用程序前,更改Tornado工程Builds選項卡中Marcos選項,然后編譯工程即可。 搭建虛擬開發(fā)環(huán)境如同前面介紹,VxWorks與多數(shù)嵌入式系統(tǒng)的調試開發(fā)方式一樣,都是基于交叉式編譯環(huán)境。雖然許多集成開發(fā)環(huán)境附帶模擬軟件,但僅限于指令集的模擬,均無法模擬物理的目標機硬件平臺,因而在其上只能進行應用程序的象征性模擬開發(fā)。在這種情況下,我們就應該構造一個模擬的開發(fā)環(huán)境,這樣雖然會犧牲一部分的實時性,但降低了開發(fā)成本,提供了接近于真實的模擬環(huán)境。主要的步驟如下:1)編譯系統(tǒng)首先構建VMware虛擬PC上VxWorks BSP。在編譯VxWorks映像時,我們需要包括兩個重要的組件:Telnet server 和 Target shell。另外,需要把所有 C++相關的選項都包含進去;2)制作引導磁盤引導軟盤用來引導VxWorks操作系統(tǒng)映象,通過命令mkboot a: bootrom,在軟盤上建立VxWorks系統(tǒng)引導分區(qū),并將引導程序復制到軟盤上;3)配置FTP服務器FTP服務器用于在系統(tǒng)成功引導之后,下載VxWorks的運行時映像,這里使用Tornado自帶的FTP服務器。4)創(chuàng)建VxWorks虛擬機使用VMWare創(chuàng)建VxWorks虛擬機,在選擇操作系統(tǒng)類型時,選擇“Other”,其余選項均使用缺省值。 VxWorks啟動界面5)調配聯(lián)機調試環(huán)境裝好VxWorks系統(tǒng)后,下一步就希望將自己編寫的應用程序下載到目標機進行調試,以下為具體的配
點擊復制文檔內容
試題試卷相關推薦
文庫吧 www.dybbs8.com
備案圖鄂ICP備17016276號-1