顯示驅動程式和硬體 (轉)
介紹
Windows CE操作的圖形顯示風格在版本2.0中有很大變化,在版本1.0中,圖形設計介面(GDI)直接與顯示硬體相接,在版本2.0中GDI與一個或更多顯示驅動程式相連,它們反過來與顯示硬體相連。這種顯示技術使得Windows CE能使用各種不同的顯示裝置而無需對每個裝置都有硬體程式碼程式,新的Windows CE GDI將小步驟與多用途結合起來。
本論文首先考慮一個好的Windows CE顯示驅動程式具有的特徵,它討論了顯示驅動程式,應該的裝置驅動程式介面功能,同樣圖形原始引擎級別,能用來簡化寫顯示驅動程式,GDI支援裝置驅動程式亦在討論之列。
本論文然後列舉了Windows CE支援的每個畫素深度的詳細、顯示緩衝格式,並討論顯示硬體,因為顯示驅動程式是GDI與顯示裝置之間通道、顯示驅動程式的硬體支援,也需支援GDI。
Windows CE顯示驅動程式
像Windows CE大多數一樣,顯示驅動程式介面(DDI)為微軟的DDI的子集合,如果你不熟悉Windows NT DDI,在寫入你的Windows CE顯示驅動程式前,應該閱讀Windows NT裝置驅動程式包的顯示驅動程式部分。
Windows CE僅使用Windows NT DDI中最基本的圖形引擎和驅動程式.Windows CE和Windows NT的差別,有下述細節:
- Windows CE顯示驅動程式總有相同功能,GDI並不查詢驅動程式能力資訊;
- Windows CE顯示驅動程式並不拒絕複雜的操作,它調其回GDI,以使操作分成簡單幾步,因為所有Windows CE顯示驅動程式支援相同功能,GD能夠在首次顯示驅動程式前分解複雜操作。
- Windows CE顯示驅動程式被編輯成動態連結庫(.DLL)而不是庫函式(.LIB檔案)。
所有Windows CE顯示驅動程式必須執行一套DDI函式,它由.GDI呼叫初始化顯示驅動程式和繪製以顯示,除了DDI函式,這有一套VC++類,它呼叫圖形初級引擎(GPE)類,顯示驅動程式用它使硬體加速更容易,標準的顯示驅動程式呼叫GPE類和加速是基於S3Trio64的顯示硬體,如果你的顯示硬體使用不同的視像,你能夠改變GPE呼叫方式以適合你的硬體能力。
注意使用GPE類是可選擇的,你能夠不需它們而寫入你的顯示驅動程式,代價是使DDI函式的執行更加複雜,注意,由微軟提供的GPE類需要你的顯示硬體有一個flat 幀(frame)緩衝區,如果你的顯示硬體沒有,例如,它使用定製可移動視窗來連線整個視訊記憶體,它可能不能使用GPE類,為獲得更詳細資訊,參與本文中Windows CE顯示硬體推薦部分,特別是Dirty Rec s子部分。
Windows CE顯示驅動程式在許多方式上與通常的裝置驅動程式不同,最主要不同是他們不暴露I/O介面。因此,他們不能被裝置管理器管理,因此暫存器從來不能被它們呼叫。結果,這沒有特別裝置檔案或其它檔案系統記錄,以與活動顯示驅動程式相協調,顯示驅動程式裝載的機制是一個使用顯示驅動程式的應用,呼叫帶有顯示驅動程式名的Create DC函式動態連結檔案。這使Windows CE能裝載顯示驅動程式,並初始化以使裝置上下文能夠返回撥用應用預設的顯示驅動程式,當然是自動載入。
DDI函式
下面表格列舉了顯示和列印驅動程式的DDI函式顯示驅動程式,應執行此處列舉的全部顯示DDI函式。列印驅動程式則應執行全部的列印DDI函式。然而,僅有Drve Enable Drive必須由顯示驅動程式的動態連結庫(DLL)輸出。所以,僅有DrvEnableDrive必須有名稱,其它函式可隨意呼叫,因為他們由Drr Enable Driver返回的,函式指標輸出到GDI,無論誰被呼叫,總是跟隨定義在Win DDI.H檔案中的原型。
使用GPE類
標準顯示驅動程式使用圖形引擎工程(GPE)類,當GPE類可選擇時,使用它們可很容易處理寫入顯示驅動程式,如果你使用GPE類,你僅需提供所需新程式碼,來使顯示硬體功能正常操作加速。
GPE類需要你的顯示硬體使用一個flat frame緩衝區,也就是視訊記憶體必須位於一個鄰近的範圍,修正GPE類來使用一個非連續frame buffer將很費力氣。
為建立一個基於GPE類顯示驅動程式,用下述步驟:
- 為專案設一子目錄;
- 由標準驅動目錄,例如S3Trio64目錄複製檔案到你的專案目錄;
- 全面更改檔案中設定裝置名,例如將“S3Trio64”改為你的裝置名;
- 更改config.cpp以使它把你的顯示裝置,放在一個線性frame-buffer模式;
- 使指定硬體加速失效;
- 建立並測試這些非加速驅動程式GPE,將用軟體產生輸出;
- 加入你的硬體加速模式。
GDI提供的支援顯示驅動程式服務
Windows CE GDI以預先定義函式結構和一些獨立C函式形式,提供服務支援顯示驅動程式,預定製結構提供毛刷、剪下區、調色盤、刪除和填充路徑、轉化的支援、獨立的C函式提供裝置點陣圖和介面支援。
顯示緩衝格式
Windows CE GDI支援廣泛的色彩深度和色彩模式,由一色到可調的真32位RGB,每個格式也支援幾個畫素序,這依靠於顯示是否是1位、2位或4位的。
所有的顯示緩衝格式,假定了顯示畫素順序從左到右、從上到下,即畫素(0,0)在左上角畫素(Wisth-1,height-1)在右下角。
1畫素位格式
它為簡單的黑白顯示,0代表黑,1代表白。畫素被以位元組形式儲存,這樣畫素(0,0)被放在顯示記憶體第一個位元組最高位。
2畫素位格式
雖然任何4-entry調色盤都可工作,但兩象素位格式是典型地用於作為4級灰度顯示,灰度級由下列表表示:
4畫素位格式
它通常是可調色格式,frame buffer可以2畫素/一位元組或1畫素/一位元組形式。
如果你選擇,一個畫素/位元組方式執行,驅動程式將以16色調色盤的8位/畫素的顯示模式,每個位元組中相關位為低位位元組,高位位元組全為0。
8畫素位格式
它是可用軟體控制調色盤的制式,它把八位值對映成24位色。
由於執行、相容性、影像質量原因,微軟推薦使用含有預設Windows CE調色盤。
15或16畫素位格式
它是遮蔽格式,不可調色。對15或16位畫素畫素以每兩位元組儲存,15畫素位,浪費了每個字最高位,微軟推薦純紅、綠、藍的匹配如下:
在15位/畫素匹配符中,每個命令的低15位包含畫素資料,不用位為0。
24位/畫素格式
它是真彩格式,每個畫素對紅、綠、藍各儲存8位,此種格式有其優點和不足,優點是影像質量好,因為每個畫素佔3位元組,他們不浪費記憶體,不足之處是既然設計中畫素一半穿越字元邊界,在聯連和解碼畫素時將引起操作後果。
32位/畫素格式
它是另一種真彩格式,這種格式將不會使畫素超過D邊界,但記憶體利用不高,它有兩種方式安排色彩通道,一個是藍色作為每個畫素中最弱作用位元組,另一種是將紅色作為最弱作用位元組,與之相應為PAL-BGR和PAL-RGB模式,在每個畫素中你能抽取紅、綠、藍的下列匹配符合通道。
Windows CE顯示硬體推薦
微軟公司推薦使用10種Windows CE的顯示硬體,這些硬體被證明是可操作的,並使你的顯示驅動程式開發變得更容易,即使你的硬體不是所推薦的,你仍能寫入一個完全功能的顯示,驅動程式,或如果它在產品設計後期難以更改硬體設計,代價是在驅動程式和/或減少操作上附加努力。
記憶體佈局
微軟強烈推薦你顯示硬體使用線性frame緩衝區,你能夠向緩衝區讀和寫操作。所有的顯示器記憶體應該是連續、適合的,此外,應是一個線性聯接視窗覆蓋整個frame緩衝區,使用非微軟所推薦的硬體時,如果你選擇使用它,就需要對GPE類進實質性改動,詳細資訊參見本論文的使用GPE類部門。
你的顯示硬體也要使用可支援的畫素格式,儲存和畫素序組合、詳細資訊,閱讀本論文的,顯示快取格式部分。這種顯示硬體frame緩衝應有如下性質:
- 由上至下格式,畫素(0,0)在左上角,畫素(width-1,height-1)在右下方;
- frame緩衝區,記憶體中用來代表顯示中的一個掃描行的位元組數,應該是一組四位元組,甚至用未用位元組來填充每個掃描行末端;
- 整個frame緩衝區必須與可連線,而不用CPU執行空白選擇.
- Frame緩衝區:不使用bit-planes,它的每個色彩通道或暗度都有分離frame緩衝區。
Dirty Rect緩衝區
如果你希望使用GPE類來執行顯示驅動程式,但你的顯示硬體沒有被支援GPE類(例如,如果frame緩衝區非線性),然後你可能考慮寫“dirty rece driver”。
在這個模式,GPE類維持一個記憶體中獨於裝置的點陣圖(DIB),它代表frame緩衝區,當記憶體的DIB被修改時,GPE將通知dirty rect driver,以複製DIB更改的或“dirty"部分到,顯示裝置進行轉換操作。
Direy rect drivers以佔用記憶體和犧牲執行速度為代價,他們僅應做為支援硬體的最後手段,當這些硬體不能滿足GPE需求。
加速
微軟推薦你使用能加速下列操作的顯示硬體,按重要性排列如下:
- 實色填充,特別的Bit操作,它的pb0-isolid color數不是OXFFFFFFF。
- SRCCOPY Bit操作;
- 游標顯示,如果你的平臺使用游標;
- 用子畫素繪製實線;
- 匹配SRCCOPY Bit操作;
- 其它的由Windows CE裝置執行影像操作。
總結
在Windows CE 2.0中,顯示驅動程式在視覺化顯示技術中發生關鍵性作用,與本論文中提到的設計策略相協調的,顯示驅動程式和顯示硬體將允許基於Windows CE的裝置充分利用新GDI的增強影像顯示能力。
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/10752043/viewspace-988092/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- VMware ESXi安裝NVIDIA GPU顯示卡硬體驅動和配置vGPUGPU
- Win10系統驅動裝不上顯示Wnidows無法啟動這個硬體裝置程式碼19如何解決Win10
- w10怎麼升級顯示卡驅動程式 win10電腦顯示卡驅動在哪裡更新Win10
- 用 Linux 命令顯示硬體資訊Linux
- 顯示卡驅動有必要更新嗎 顯示卡驅動怎麼更新詳細教程
- win10顯示卡驅動怎麼更新 win10顯示卡驅動更新的方法Win10
- win10顯示卡驅動怎麼更新 升級顯示卡驅動的兩種方法Win10
- openEuler 安裝NVIDIA 顯示卡驅動
- Win10電腦解除安裝顯示卡驅動及重灌顯示卡驅動的方法教程Win10
- VK16K33LED數碼管顯示驅動晶片/LED數顯驅動晶片內建顯示記憶體及RC振盪電路晶片記憶體
- Debian系統顯示卡驅動從官方驅動回退到Nouveau
- 新版amd顯示卡驅動怎麼設定高效能?AMD顯示卡最新驅動設定教程
- Centos 7 安裝nvidia顯示卡驅動CentOS
- win10怎麼看顯示卡驅動版本_win10如何檢視顯示卡驅動型號Win10
- win10顯示卡驅動死活裝不上 win10解決顯示卡驅動不相容Win10
- win10怎麼聯網自動安裝硬體驅動_win10聯網自動安裝硬體驅動教程Win10
- 利用驅動精靈更新win10系統硬體驅動的方法Win10
- ZYNQ的gpio的硬體驅動庫知識
- win10自動安裝顯示卡驅動怎樣關閉_怎麼禁止win10自動安裝顯示卡驅動Win10
- LED驅動IC,數顯驅動控制電路-數碼管顯示驅動晶片-VK1629 LQFP44技術資料晶片
- linux怎麼檢視已裝好硬體驅動Linux
- LED驅動晶片(IC)-VK1616 SOP/DIP16,LED數顯/數碼管顯示驅動晶片晶片
- ubuntu 16.04 nvidia顯示卡驅動相關問題Ubuntu
- win10顯示器驅動程式無法啟動的最佳解決步驟Win10
- 顯示卡驅動安裝失敗怎麼辦 nvidia顯示卡驅動一直無法安裝怎麼解決
- win10解除安裝顯示卡驅動怎麼重灌 win10顯示卡驅動解除安裝重灌操作方法Win10
- IHS Markit:2018年智慧手機顯示器觸控和顯示整合驅動IC出貨量達4億片
- 直接在x86硬體上顯示圖片(無os)
- arch——顯示當前主機的硬體架構型別架構型別
- Better Menubar--Mac硬體資訊顯示選單欄助手Mac
- Android程式啟動與Activity顯示Android
- w10裝不了顯示卡驅動怎麼辦_重灌系統w10顯示卡驅動裝不上處理方法
- win10顯示卡驅動裝不上怎麼辦_win10顯示卡驅動安裝不上的解決方法Win10
- 永嘉VINKA-LED顯示驅動數顯驅動晶片VK1640 SOP28適用於血氧儀,溫控儀LED驅動晶片
- Omdia:2022年顯示驅動晶片短缺風險猶在晶片
- 為什麼驅動精靈檢測不到獨立顯示卡_驅動精靈檢測不到獨立顯示卡解決步驟
- win10 10240 無法安裝顯示卡驅動怎麼解決_win10顯示卡驅動裝不上修復方法Win10
- Win10系統安裝不了顯示卡驅動怎麼辦 win10無法安裝顯示卡驅動如何解決Win10
- Linux驅動程式碼顯示:新一代 Navi將繼續沿用 GCN架構LinuxGC架構