幀緩衝裝置內部原理

這是關於幀緩衝裝置內部原理的一些文件的初步開始。

作者


幀緩衝裝置 API 使用的結構體

以下結構體在幀緩衝裝置中發揮作用。它們定義在 <linux/fb.h> 中。

  1. 核心外部(使用者空間)

  • struct fb_fix_screeninfo

    關於幀緩衝裝置和特定影片模式的裝置無關的不可更改的資訊。可以使用 FBIOGET_FSCREENINFO ioctl 獲取此資訊。

  • struct fb_var_screeninfo

    關於幀緩衝裝置和特定影片模式的裝置無關的可更改的資訊。可以使用 FBIOGET_VSCREENINFO ioctl 獲取此資訊,並使用 FBIOPUT_VSCREENINFO ioctl 更新此資訊。 如果只想平移螢幕,可以使用 FBIOPAN_DISPLAY ioctl。

  • struct fb_cmap

    裝置無關的顏色表資訊。可以使用 FBIOGETCMAP 和 FBIOPUTCMAP ioctl 獲取和設定顏色表。

  1. 核心內部

  • struct fb_info

    關於特定幀緩衝裝置例項的通用資訊、API 和底層資訊(插槽號、板地址等)。

  • struct par

    裝置相關的資訊,唯一地定義此特定硬體的影片模式。

幀緩衝裝置 API 使用的視覺效果

單色 (FB_VISUAL_MONO01 和 FB_VISUAL_MONO10)

每個畫素要麼是黑色,要麼是白色。

偽彩色 (FB_VISUAL_PSEUDOCOLOR 和 FB_VISUAL_STATIC_PSEUDOCOLOR)

整個畫素值被饋送到一個可程式設計的查詢表中,該查詢表為每個可能的畫素值都有一種顏色(包括紅色、綠色和藍色的強度),並顯示該顏色。

真彩色 (FB_VISUAL_TRUECOLOR)

畫素值被分解為紅色、綠色和藍色欄位。

直接彩色 (FB_VISUAL_DIRECTCOLOR)

畫素值被分解為紅色、綠色和藍色欄位,每個欄位都在單獨的紅色、綠色和藍色查詢表中查詢。

灰度顯示

灰度和靜態灰度是偽彩色和靜態偽彩色的特殊變體,其中紅色、綠色和藍色分量始終彼此相等。