2023年全國碩士研究生考試考研英語一試題真題(含答案詳解+作文范文)_第1頁
已閱讀1頁,還剩4頁未讀, 繼續(xù)免費閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)

文檔簡介

1、EGLVersion1.4閱讀理解閱讀理解1.1.概覽概覽EGL是介于各種粉刷(rendering)API如(OpenGL,OpenVG等)和底層窗口系統(tǒng)平臺之間的接口。EGL提供各種機(jī)制創(chuàng)建圖形context和粉刷surface供客戶API使用。同時,EGL也在繪圖的過程中為本地繪圖平臺和客戶api提供同步機(jī)制。EGL提供遠(yuǎn)程和間接粉刷機(jī)制,而GLXAPI則有這個機(jī)制。2.2.EGLEGL操作操作2.12.1本地窗口系統(tǒng)和粉刷本地窗口

2、系統(tǒng)和粉刷APIAPIEGL可以在多個操作系統(tǒng)(塞班嵌入式linuxunixwindows等)和多種本地窗口(XMicrosoftWindows)中實現(xiàn)。EGL的實現(xiàn)也可能允許本地其他的粉刷api來粉刷EGLsurface,如(Xlib,GDI)。2.1.12.1.1常數(shù)類型常數(shù)類型1.EGLBoolean:egl的boolean類型,值可以是EGL_TRUE(1)和EGL_FALSE(0).2.EGLint:類似于int類型。2.1.

3、22.1.2DisplayDisplay大部分EGL調(diào)用都會使用EGLDisplay參數(shù),它代表一個抽象的屏幕。2.22.2粉刷上下文和繪圖平面(粉刷上下文和繪圖平面(RenderingRenderingContextsContextsDrawingDrawingSurfacesSurfaces)EGL的一個最主要的目的就是提供粉刷上下文和繪圖平面的創(chuàng)建函數(shù)供客戶端API使用。EGL定義了多種繪圖平面類型,統(tǒng)稱EGLSurface。主要

4、包括如下三類:(1)windowsurface:可以將里面的圖形緩沖畫到屏幕上。(2)pbufferssurface:數(shù)據(jù)存在內(nèi)存緩沖上,不能畫在屏幕上。(3)pixmapssurface:本地api可以訪問的內(nèi)存數(shù)據(jù)緩沖。EGLSurface是依照各自的EGLConfig來進(jìn)行的(其實就是創(chuàng)建EGLSurface的函數(shù)需要EGLCongif做參數(shù))。EGLConfig描述了所創(chuàng)建的平面需要的顏色深度,類型,輔助緩沖等一些信息。輔助緩存

5、是對應(yīng)于EGLSurface的,而不是context。如果很多context向同一個surface畫圖,則context之間會共享這些緩沖。Surface和Context之間有一種兼容性的說法,滿足兼容性條件后,surface才能被context使用。這些條件是:(1)支持相同類型的顏色緩沖。(顏色緩沖類型包括RGBluminance等)(2)具有相同的顏色緩沖深度和輔助緩沖深度。這里的深度只各個顏色深度都要相同,比如RGB565與RG

6、B4444中,雖然顏色深度總和都是16bitpixel,但是每個維度的深度不一樣。因此,他們是不兼容的。輔助緩沖有一個特例,如果某個輔助緩沖對于某個客戶API是沒有意義的(不需要的),那么,這種緩沖不考慮兼容性。如,一個surface包含顏色緩沖和stencilbuffer,當(dāng)OpenVG粉刷api下的Context包含相同的顏色緩沖時,他們是兼容的。因為,OpenVG不需要stencilbuffer。(3)surface和contex

7、t需要在相同類型的客戶api(都是opengl或都是openVG等)創(chuàng)建函數(shù)下創(chuàng)建。(4)他們的創(chuàng)建函數(shù)中使用的display參數(shù)是一樣的。滿足兼容條件時,一個context可以往多個EGLSurface上作畫,一個EGLSurface也可以對應(yīng)多個context。2.2.12.2.1使用粉刷上下文(使用粉刷上下文(RenderingRenderingContextContext)OpenGLES定義了客戶端狀態(tài)和服務(wù)端狀態(tài)。因此,Op

8、enGLES的context包含客戶和服務(wù)端兩個狀態(tài)。OpenVG則沒有。OpenGLES和OpenVG客戶API都采用了隱含的context作為粉刷入口點,而不是在繪圖函數(shù)中傳入Context參數(shù)。因此,EGL會提供一個函數(shù)(makeCurrent(…))來使某個context變成當(dāng)前使用狀態(tài)。每個線程最多可以為每個支持的客戶端api(openglopenVG等)創(chuàng)建一個當(dāng)前粉刷context。另外,同一時刻,一個context只能被

9、一個線程置成當(dāng)前。2.2.22.2.2粉刷模式粉刷模式EGL支持兩種粉刷模式:后備緩沖和單緩沖。(backbufferedsinglebuffered)后備緩沖可以用在window和pbuffer兩種surface中,EGL負(fù)責(zé)相關(guān)的內(nèi)存申請和使用。單緩沖則用在pixmapsurface中,其內(nèi)存格式和本地系統(tǒng)使用的pixmap格式一樣,可供本地窗口系統(tǒng)函數(shù)訪問。當(dāng)然,某些些客戶api比如Opengl和OpenVG,也支持單緩沖的win

10、dowsurface。不管是單緩沖還是后備緩沖的surface都可以通過eglCopyBuffers()函數(shù),拷貝到指定的本地pixmap中。EGLsurface對應(yīng)的本地窗口縮放時,EGL的windowsurface也需要跟著縮放。一般的實現(xiàn)過程是,本地操作系統(tǒng)和窗口系統(tǒng)執(zhí)行一個的回調(diào)函數(shù)通知EGL改變窗口大小,這個改變對客戶端api是透明的。也有一些EGL實現(xiàn),是通過(1)EGLBooleaneglGetConfigs(EGLDis

11、playdpyEGLConfigconfigsEGLintconfig_sizeEGLintnum_config)查詢所有指定display下的EGLCongifs,num_config返回了可用的數(shù)目。(2)EGLBooleaneglChooseConfig(EGLDisplaydpyconstEGLintattrib_listEGLConfigconfigsEGLintconfig_sizeEGLintnum_config)傳入需求

12、的屬性列表,看是否有合適的config。(3)EGLBooleaneglGetConfigAttrib(EGLDisplaydpyEGLConfigconfigEGLintattributeEGLintvalue)查詢某個config的某些屬性值。3.53.5粉刷表面(粉刷表面(RenderingRenderingSurfaceSurface)(1)EGLSurfaceeglCreateWindowSurfaceeglCreateWin

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 眾賞文庫僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論