linux的frambuffer的相關引數

2021-07-01 18:31:20 字數 1571 閱讀 8683

如果應用程式需要知道framebuffer裝置的相關引數,必須通過ioctl()系統呼叫來完成。

在標頭檔案中定義了所有的ioctl命令字,不過,最常用的ioctl命令字是下面這兩個:fbioget_fscreeninfo和fbioget_vscreeninfo。

前者返回與framebuffer有關的固定的資訊,比如圖形硬體上實際的幀快取空間的大小、能否硬體加速等資訊。

而後者返回的是與framebuffer有關的可變資訊。

之所以可變,是因為對同樣的圖形硬體,可以工作在不同的模式下。

簡單來講,乙個支援1024x768x24圖形模式的硬體通常也能工作在800x600x16的圖形模式下。

可變的資訊就是指framebuffer的長度、寬度以及顏色深度等資訊。

這兩個命令字相關的結構體有兩個:struct fb_fix_screeninfo和struct fb_var_screeninfo。

這兩個結構體都比較大,前者用於儲存framebuffer裝置的固定資訊,後者用於儲存framebuffer裝置的可變資訊。

在呼叫ioctl()的時候,要用到這兩個結構體。

應用程式中通常要用到struct fb_var_screeninfo的下面這幾個字段:

xres、yres、bits_per_pixel,分別表示x軸的解析度、y軸的解析度以及每畫素的顏色深度(顏色深度的單位為bit/pixel),其型別定義都是無符號32位整型數。

圖形系統開發基礎(挺詳細)

又乙個framebuffer程式設計的例子。

-------------------------------------

#include

#include

#include

#include

#include

#include

#include

#include

#include

char *fb_addr;

unsigned fb_size;

int print_screen(char *buf,int width,int height);

int main(int argc,char *argv)

int print_screen(char *buf,int width,int height)

}

Linux 的學習以及linux的發展

從最早的redhat 6.2到今天的ubuntu 6.4 其中一半是工作需要一半是興趣使然。我個人覺得linux的使用和學習之路是艱難和痛苦,其原因一方面來自於linux資料和社群團隊的缺乏,另一方面是由於使用者介面的不善。linux源自傳統的unix系統,而unix系統則源自古老的大型機系統。而中...

linux 正確刪除linux的方法

如果你需要從乙個硬碟驅動器中刪除 linux 並且已經試圖用預設的 dos windows fdisk 來這麼做,你將會遇到 分割槽存在但又不存在 的問題。要刪除非 dos 分割槽的最好辦法是使用乙個理解分割槽而不單是 dos 的工具。首先,插入 red hat linux 光碟來引導系統。引導後,...

linux學習筆記 linux的啟動

系統初始化 建立終端 使用者登入系統 開啟計算機後,首先進行bios開機自檢,按照bios中設定的順序來啟動硬體 然後由作業系統接管硬體,首先讀入 boot目錄下的核心檔案 init 程序是系統所有程序的起點,你可以把它比擬成系統所有程序的老祖宗,沒有這個程序,系統中任何程序都不會啟動。init 程...