日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

DirectFB的架构介绍

發布時間:2024/1/17 编程问答 40 豆豆
生活随笔 收集整理的這篇文章主要介紹了 DirectFB的架构介绍 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

作者:EasyWave???????????????????????????????????? ? 時間:2014.09.13

類別:開源GUI系統-DirectFB簡介?? ? ? ? ? 聲明:轉載,請保留鏈接

注意:如有錯誤,歡迎指正。這些是我學習的日志文章......

***************************************************************************************************************************

一:DirectFB簡介

??? ? DirectFB是一個輕量級的提供硬件圖形加速,輸入設備處理和抽象的圖形庫,它集成了支持半透明的視窗系統以及在LinuxFramebuffer驅動之上的多層顯示。它是一個用軟件封裝當前硬件無法支持的圖形算法來完成硬件加速的層。DirectFB是為嵌入式系統而設計。它是以最小的資源開銷來實現最高的硬件加速性能。

??? ? DirectFB是圖形API存在于Frame Buffer層之上與高級圖形管理層如GTK+等之下的。它可以以很小的系統資源占用來提供圖形硬件加速功能,提供類如多路a通道渲染模型等高級圖像操作。它不修改Linux內核,除了標準C庫沒有其他庫的依賴。應用在了基于Linux系統的DTV顯示系統的研發和其他有關Linux顯示界面的項目上。支持市面上絕大多數顯示卡,支持鍵盤、鼠標、遙控器、游戲手柄、觸摸屏等輸入設備。支持JPEG、PNG、GIF、mpeg1/2、AVI、MOV、Flash、Video4Linux、DirectFB bitmap font和TrueType等音視頻文件和字體。

?

二:DirectFB在系統的位置
??? ? 從GUI整個系統架構來講,對于一般的MMP,DTV和STB來說,下面圖中是比較經典的結構。 DirectFB都處于QT,GTK+這樣的高級GUI框架的下面,Linux系統驅動的上面。如下圖所示:

?? 從功能上面來講,下面圖中比較形象的說明了DirectFB的主要作用:圖形,文字的處理(DirectFB把TS經過Decoder處理之后的碼流,再加上圖形和文字,一起傳給視頻的芯片),如下圖所示:

?

?

三:DirectFB GUI的架構

?? ? 對于上層的GUI高級框架來說,DirectFB是透明的,下圖是一個更加細化的DirectFB的結構圖:

???? ? 對于底層的驅動來說,DirectFB里面負責和硬件打交道的顯卡的驅動(gfxdriver)和顯示系統(system),這里面gfxdriver是和各個硬件平臺相關的,有可能需要自己寫。 為了更易于理解DirectFB,需要先介紹幾個DirectFB里面的概念:

  • Layers:代表互相獨立的圖形緩存。大多數嵌入式設備都有多個layer。多個layer根據對應的alpha值混合 在一起,從而顯示出來。?
  • Surface:代表一塊預留的內存,來保存像素數據。DirectFB中的Drawing,Bilitting操作就是基于 surface的。Surface的內存根據設定,可以從系統中分配,也可以從顯卡的內存中分配。
  • Primary Surface:代表一個特殊layer的特殊surface。如果primary surface是單緩沖的,任何對于 primary surface的操作都會直接反應到顯示屏上。
  • Subsurface:是一個surfac的子集,但是自身并不占有任何內存。
  • Window/Windowstack:控制一個layer中的surface該顯示什么。Window屬于某個背景可以設定的layer。 每個window有自己的surface,window用這個surface來組合圖像。?

???? ? 比如說下圖中有三個Layer,最下面的Layer是一幅背景圖,中間的Layer是一個透明的帶有一個“igel”的Layer,最上面是一個透明的帶有subtitle的Layer,最后我們在顯示器中看到的就是各個Layer的混合。

????? ? 再比如說下面這幅圖,Lower Layer是一個全屏模式的Layer,它的背景圖片渲染在自己的SurFace上面。Video area是一個SurFace,用來顯示video。Upper Layer通過window stack/window 來顯示應用程序的內容,而且Upper Layer是一個透明的Layer,這樣混合之后,可以透過上面的Layer看到下面的video。

總結

以上是生活随笔為你收集整理的DirectFB的架构介绍的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。