1: Hi Silicon Frame Buffer是海思平臺用來管理疊加圖形圖層的模塊,增加了層間colorkey、層間colorkey mask、層間alpha、原點偏移等功能。HIFB的壹個子設備號對應壹個疊加層,HIFB可以管理多個圖形疊加層(即。HIFB可以支持多個子設備,支持多通道輸出)。
2.2:HIFB支持的標準功能:
答:將物理視頻內存映射到虛擬內存。
b:像操作普通文件壹樣操作物理內存。
c:設置像素分辨率和像素格式,通過支持能力接口可以獲得每個疊加圖形層支持的最大分辨率和像素格式。
d:從物理存儲器的任何位置進行讀、寫、顯示和其它操作。
e:如果覆蓋圖形層支持索引格式,它支持設置和獲取256色調色板。
新增功能:
f:設置獲取ALPHa和colorkey值。
g:設置當前疊加圖形層的實際位置(從屏幕原點的偏移)。以及疊加圖形層的顯示,隱藏狀態。
5:
h:配置Hifb的物理內存大小,通過模塊參數管理疊加圖形層數。
I:增加防閃爍功能,獲取預乘模式狀態,壓縮模式狀態,獲取內存檢測狀態,圖形層刷新類型(2buffer類型)。
* 2 buffer圖形刷新類型是分配兩個緩沖區,壹個用於顯示,另壹個用於繪圖。
3.模塊加載:dictation linux framebuffer不支持在運行過程中改變分辨率、色深、時序等顯示屬性,所以當linux啟動內核或者加載模塊時,相應的選項通過參數傳遞給linux framebuffer,內核啟動參數可以在內核加載器中配置。
HIFB驅動只能在加載時設置物理內存大小。(物理內存大小壹旦設置就不能更改)Video = "hifb: VRAM 0 _ size: xxx,VRAM 1 _ size: xxx,…",其中VRAM _ size: xxx表示為疊加的圖形層n配置xxx K字節的物理內存。
先加載fb.ko,再加載hifb.ko參數。
對於標準Fb模式:
vramn _ size * 1024 & gt;= xres _ virtual * yres _ virtual * bpp;
其中:xres_virtual * yres_virtual是虛擬分辨率,bpp是每像素的字節數。
* * * * * vramn _ size必須是PAGE_SIZE(4K字節)的倍數,否則HiFB驅動程序會強制將其設置為PAGE_SIZE。
多個,四舍五入
默認參數值配置Hi3536
video="hifb:vram0_size:32400,
vram1_size:8100,vram2_size:1620,vram3_size:32,vram4_size:32" softcursor="off "
4.HifB開發步驟:
答:調用open打開指定設備Hifb設備。
b:調用ioctl,設置hifb的像素格式和屏幕高度寬度等參數。
c:調用ioctl函數獲取Hifb分配的物理內存的大小和跨度等固定信息。可以使用層間colorkey(壹張圖片的顏色被扣除疊加在另壹張圖片上)、層間Alpha點(透明度參數)、廉價原點等等。
d:物理視頻內存映射到虛擬內存
e:完成具體的繪圖任務。