DirectFB 綜述

目標

  • 最小的內存佔用
  • 最大可能的硬件加速
  • 支持高級圖形操作,如 multiple alpha blending mode
  • 無內核修改
  • 無依賴庫 (除了 libc)
  • 滿足 MHP 的需要

圖形操作

DirectFB 支持以下圖形功能,可硬件實現(若chipset driver 支持),也可軟件實現

  • 矩形填充/繪製
  • 三角形填充繪製
  • 畫線
  • 內存拷貝 (blitting)
  • 基於 alpha 通道的混合
  • 基於某個 alpha 元素的混合
  • 支持 Porter/Duff 定義的所有混合
  • colorizing
  • source color keying
  • Destination color keying

窗口系統

  • 支持透明/半透明窗口
  • ARGB surface

資源管理

  • 顯示層和輸入設備可以被鎖定 (用於遊戲)
  • 對顯示層、窗口和其它 surface 進行了抽象,便於全屏和窗口之間的切換

圖形驅動

使用可動態加載的驅動模塊,實現硬件加速,目前支持的芯片有:

  • Matrox Mystique/Millenium, G100, G200, G400/G450, G550
  • Via CLE266
  • ATI mach64/Rage Pro series
  • ATI Rage 128
  • ATI Radeon
  • 3dfx Voodoo3/4/5/Banshee
  • igs CyberPro 5xxx
  • S3 Savage 3/4 series
  • NeoMagic 220/2230/2360/2380
  • nVidia TNT/GeForce series
  • SiS 315
  • Intel i810
  • NSC Geode

其它芯片也可以工作,但不支持硬件加速。

輸入驅動

支持下面的輸入設備:

  • standard keyboards
  • serial and PS/2 mice
  • joysticks
  • devices using the linux input layer
  • infrared remote controls (using lirc)
  • iPAQ touchscreen
  • ucb 1x00 touchscreen
  • Microtouch touchscreen
  • Sony PI Jogdial

圖象裝載

支持如下圖象格式:

  • JPEG (通過 libjpeg 實現)
  • PNG (libpng2)
  • GIF (內部實現)
  • 其它各種格式 (通過Imlib2實現)

視頻播放

支持如下格式:

  • video4linux (/dev/video)
  • mpeg1/2 (using libmpeg3)
  • AVI (using avifile)
  • MOV (using OpenQuicktime)
  • macromedia (using libflash)

字體渲染

提供反鋸齒文本繪製,支持如下字體:

  • DirectFB bitmap font
  • TrueType (using FreeType2)

體系結構

directfb architecture
directfb architecture
訪問圖形硬件
  • 通過 framebuffer 來訪問圖形硬件,一些特殊的芯片也可以在 VESA framebuffer 下工作
  • 可在用戶空間實現硬件加速
訪問輸入設備

使用 linux kernel 提供的標準設備接口


發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章