說(shuō)明公用hifb參考_第1頁(yè)
說(shuō)明公用hifb參考_第2頁(yè)
說(shuō)明公用hifb參考_第3頁(yè)
說(shuō)明公用hifb參考_第4頁(yè)
說(shuō)明公用hifb參考_第5頁(yè)
已閱讀5頁(yè),還剩96頁(yè)未讀 繼續(xù)免費(fèi)閱讀

付費(fèi)下載

下載本文檔

版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡(jiǎn)介

1、所有 ©非經(jīng)本公司形式。2018。保留一切權(quán)利。市半導(dǎo)體,任何和個(gè)人不得擅自摘抄、本文檔內(nèi)容的部分或全部,并不得以任何商標(biāo)、和其他商標(biāo)均為市半導(dǎo)體的商標(biāo)。本文檔提及的其他所有商標(biāo)或商標(biāo),由各自的所有人擁有。注意您的、服務(wù)或特性等應(yīng)受公司商業(yè)合同和條款的約束,本文檔中描述的全部或部分產(chǎn)品、服務(wù)或特性可能不在您的或使用范圍之內(nèi)。除非合同另有約定,公司對(duì)本文檔內(nèi)容不做任何明示或默示的或保證。由于版本升級(jí)或其他,本文檔內(nèi)容會(huì)不定期進(jìn)行更新。除非另有約定,本文檔僅作為使用指導(dǎo),本文檔中的所有陳述、信息和建議不任何明示或暗示的擔(dān)保。市半導(dǎo)體:518129地址:市龍崗區(qū)坂田基地電氣生產(chǎn)中心:客戶服

2、務(wù):客戶服務(wù)傳真:客戶服務(wù)郵箱:supportHiFB API 參言前言概述Hisilicon Framebuffer(以下簡(jiǎn)稱 HiFB)是數(shù)字處理平臺(tái)提供的管理圖像疊加層的模塊,它基于 Linux Framebuffer 實(shí)現(xiàn),在提供 Linux Framebuffer 基本功能的基礎(chǔ)上,還擴(kuò)展了一些圖形層功能,如層間 Alpha、設(shè)置等。本文檔主要介紹HiFB 的 API 和數(shù)據(jù)類型以及 Proc 調(diào)試信息。本文未做特殊說(shuō)明,Hi3556V100 與Hi3559V100 一致。本文未做特殊說(shuō)明,Hi3559CV100 與 Hi3559AV100 一致。lll 本文未做特殊說(shuō)明,Hi355

3、6AV100、Hi3516CV500、Hi3516DV300 與Hi3519AV100 一致。本文未做特殊說(shuō)明,Hi3559V200、Hi3556V200、Hi3516EV200、Hi3516EV300、Hi3518EV300 與Hi3516CV500 一致。l版本與本文檔相對(duì)應(yīng)的版本如下。專有和市信息半導(dǎo)體文檔版本 00B06 (2018-11-23)i所有 ©名稱版本Hi3559V100Hi3556V100Hi3559AV100ESHi3559AV100Hi3559CV100Hi3519AV100Hi3556AV100Hi3516CV500Hi3516DV300Hi3559V20

4、0Hi3556V200HiFB API 參言讀者對(duì)象本文檔(本指南)主要適用于以下工程師:技術(shù)支持工程師軟件開(kāi)發(fā)工程師ll符號(hào)約定在本文中可能出現(xiàn)下列標(biāo)志,它們所代表的含義如下。修訂修訂累積了每次文檔更新的說(shuō)明。最新版本的文檔包含以前所有文檔版本的更新內(nèi)容。文檔版本 00B06(2018-11-23)第 6 次臨時(shí)版本發(fā)布。專有和市信息半導(dǎo)體文檔版本 00B06 (2018-11-23)ii所有 ©符號(hào)說(shuō)明表示有高度潛在,如果不能避免,會(huì)導(dǎo)致或嚴(yán)重。表示有中度或低度潛在,如果不能避免,可能導(dǎo)致人員輕微或中等。表示有潛在風(fēng)險(xiǎn),如果忽視這些文本,可能導(dǎo)致設(shè)備損壞、數(shù)據(jù)丟失、設(shè)備性能降低或

5、不可預(yù)知的結(jié)果。表示能幫助您解決某個(gè)問(wèn)題或節(jié)省您的時(shí)間。表示是正文的附加信息,是對(duì)正文的強(qiáng)調(diào)和補(bǔ)充。名稱版本Hi3516EV200Hi3516EV300Hi3518EV300HiFB API 參言添加 Hi3516EV200、Hi3516EV300、Hi3518EV300 相關(guān)內(nèi)容文檔版本 00B05(2018-10-30)第 5 次臨時(shí)版本發(fā)布。2.3 小節(jié),F(xiàn)BIOPUT_VSCREENINFO 的【注意】涉及修改2.4 小節(jié),F(xiàn)BIOGET_MIRROR_MODE、FBIOPUT_COMPRESSION_HIFB、FBIO_WAITFOR_FREFRESH_DONE、FBIOGET_SC

6、REENSIZE、FBIOPUT_SCREENSIZE、FBIOGET_ROTATE_MODE、FBIOPUT_ROTATE_MODE 的【注意】涉及修改FBIOPUT_DYNAMIC_RANGE_HIFB、FBIOPUT_DYNAMIC_RANGE_HIFB 新增【差異說(shuō)明】3.2 小節(jié),HIFB_LAYER_INFO_S 的【注意】涉及修改文檔版本 00B04(2018-09-04)第 4 次臨時(shí)版本發(fā)布。2.4.1 小節(jié),F(xiàn)BIOPUT_COMPRESSION_HIFB、FBIOGET_COLORKEY_HIFB【注意】涉及修改3.2 小節(jié),HIFB_LAYER_INFO_S【注意】涉及

7、修改添加 Hi3516CV500 和 Hi3516CV300 的相關(guān)內(nèi)容文檔版本 00B03(2018-08-08)第 3 次臨時(shí)版本發(fā)布。2.4.1 小節(jié) FBIOPUT_SCREENSIZE 的【參數(shù)】涉及修改3.2 小節(jié),HIFB_LAYER_INFO_S 的【成員】涉及修改文檔版本 00B02(2018-06-20)第 2 次臨時(shí)版本發(fā)布。刪除 Hi3516A/Hi3518EV20X/Hi3519V100/Hi3519V101/Hi3516CV300 相關(guān)內(nèi)容文檔版本 00B01(2018-04-11)第 1 次臨時(shí)版本發(fā)布添加 Hi3519AV100 相關(guān)內(nèi)容專有和市信息半導(dǎo)體文檔版

8、本 00B06 (2018-11-23)iii所有 ©HiFBAPI 參考目 錄目錄前 言i1 概述1-11.1 概述1-11.2 參考域說(shuō)明1-11.2.1 API 參考域1-11.2.2 數(shù)據(jù)類型參考域1-22 API 參考2-12.1 API 類別2-12.2 ioctl 函數(shù)2-12.3 標(biāo)準(zhǔn)功能2-32.4 擴(kuò)展功能2-102.4.1 通用功能2-102.4.2 軟鼠標(biāo)功能2-432.5 錯(cuò)誤碼2-553 數(shù)據(jù)類型3-13.1 在標(biāo)準(zhǔn)中定義的數(shù)據(jù)類型3-13.2 擴(kuò)展的數(shù)據(jù)類型3-74 圖形開(kāi)發(fā)輔助接口4-14.1 概述4-14.1.1 簡(jiǎn)介4-14.1.2 注意事項(xiàng)4-2

9、4.2 API 參考4-34.3 數(shù)據(jù)結(jié)構(gòu)4-75 Proc 調(diào)試信息5-15.1 圖形層和 fb 設(shè)備號(hào)對(duì)應(yīng)關(guān)系5-15.2 單個(gè)圖形層調(diào)試信息5-15.3 圖形層的綁定關(guān)系5-6專有和市信息半導(dǎo)體文檔版本 00B06 (2018-11-23)iv所有 ©HiFBAPI 參考插圖目錄插圖目錄圖 2-1設(shè)置從虛擬分辨率中的不同偏移處開(kāi)始顯示2-8圖 4-1輸出單元基本結(jié)構(gòu)4-2專有和市信息半導(dǎo)體文檔版本 00B06 (2018-11-23)v所有 ©HiFBAPI 參考表格目錄表格目錄表 1-1 API 參考域說(shuō)明1-1表 1-2 數(shù)據(jù)類型參考域說(shuō)明1-2表 2-1 ioc

10、tl 函數(shù)的 3 個(gè)參數(shù)2-2表 2-2錯(cuò)誤碼2-55表 4-1不同在不同設(shè)備間切換圖形層4-3專有和市信息半導(dǎo)體文檔版本 00B06 (2018-11-23)vi所有 ©HiFBAPI 參考1 概述1概述1.1 概述Hisilicon Framebuffer(以下簡(jiǎn)稱 HiFB)是數(shù)字處理平臺(tái)提供的管理圖像疊加層的模塊,它基于 Linux Framebuffer 實(shí)現(xiàn),在提供 Linux Framebuffer 基本功能的基礎(chǔ)上,還擴(kuò)展了一些圖形層功能,如層間 Alpha、設(shè)置、FB 擴(kuò)展模式等。1.2 參考域說(shuō)明1.2.1 API 參考域本手冊(cè)使用 9 個(gè)參考域描述 API 的相

11、關(guān)信息,它們的作用如表 1-1 所示。表1-1 API 參考域說(shuō)明專有和市信息半導(dǎo)體文檔版本 00B06 (2018-11-23)1-1所有 ©參考域含義目的簡(jiǎn)要描述 API 的主要功能。語(yǔ)法列出調(diào)用 API 應(yīng)包括的頭文件以及 API 的原型。參數(shù)列出 API 的參數(shù)、參數(shù)說(shuō)明及參數(shù)屬性。描述簡(jiǎn)要描述 API 的工作過(guò)程。返回值列出 API 所有可能的返回值及其含義。需求列出 API 包含的頭文件和 API 編譯時(shí)要的庫(kù)文件。注意列出使用 API 時(shí)應(yīng)注意的事項(xiàng)。舉例列出使用 API 的實(shí)例。相關(guān)接口列出與本 API 相關(guān)聯(lián)的其他接口。HiFBAPI 參考1概述1.2.2 數(shù)據(jù)類型

12、參考域本手冊(cè)使用 5 個(gè)參考域描述數(shù)據(jù)類型的相關(guān)信息,它們的作用如表 1-2 所示。表1-2 數(shù)據(jù)類型參考域說(shuō)明專有和市信息半導(dǎo)體文檔版本 00B06 (2018-11-23)1-2所有 ©參考域含義說(shuō)明簡(jiǎn)要描述數(shù)據(jù)類型的主要功能。定義列出數(shù)據(jù)類型的定義語(yǔ)句。成員列出數(shù)據(jù)結(jié)構(gòu)的成員及含義。注意事項(xiàng)列出使用數(shù)據(jù)類型時(shí)應(yīng)注意的事項(xiàng)。相關(guān)數(shù)據(jù)類型和接口列出與本數(shù)據(jù)類型相關(guān)聯(lián)的其他數(shù)據(jù)類型和接口。HiFBAPI 參考2 API 參考2API 參考2.1 API 類別HiFB 的 API 分為以下幾類:文件操作類提供操作 HiFB 的接口。通過(guò)調(diào)用這些接口,可以像操作文件一樣操作疊加層。這些接

13、口是 Linux 本身提供的標(biāo)準(zhǔn)接口,主要有 open、close、write、read、lseek等。本文檔不對(duì)這些標(biāo)準(zhǔn)接口進(jìn)行描述。ll顯存類提供將物理顯存到用戶虛擬內(nèi)存空間的接口。這些接口是 Linux 本身提供的標(biāo)準(zhǔn)接口,主要有 mmap、munmap 等。本文檔不對(duì)這些標(biāo)準(zhǔn)接口進(jìn)行描述。顯存和狀態(tài)類l設(shè)置像素格式和顏色深度等屬性的接口。這些接口是 Linux 本身提供的標(biāo)準(zhǔn)接口,經(jīng)常使用。本文檔將對(duì)其進(jìn)行簡(jiǎn)要描述。層間效果和狀態(tài)類lHiFB 可以管理多個(gè)圖形疊加層,每層可以設(shè)置 Alpha 值和等。相對(duì)于 LinuxFramebuffer,這些是 HiFB 的新增功能。本文檔將重點(diǎn)描

14、述該部分。2.2 ioctl 函數(shù)HiFB 的用戶態(tài)接口以 ioctl 形式體現(xiàn),其形式如下:int ioctl(int fd,unsigned long cmd,);該函數(shù)是 Linux 標(biāo)準(zhǔn)接口,具備可變參數(shù)特性。但在 HiFB 中,實(shí)際只需要 3 個(gè)參數(shù)。因此,其語(yǔ)法形式等同于:int ioctl (int fd,unsigned long cmd,專有和市信息半導(dǎo)體文檔版本 00B06 (2018-11-23)2-1所有 ©HiFBAPI 參考2 API 參考CMD_DATA_TYPE *cmddata);其中,CMD_DATA_TYPE 隨參數(shù) cmd 的變化而變化。這 3

15、 個(gè)參數(shù)的詳細(xì)描述如表 2-1所示。表2-1 ioctl 函數(shù)的 3 個(gè)參數(shù)專有和市信息半導(dǎo)體文檔版本 00B06 (2018-11-23)2-2所有 ©參數(shù)名稱描述輸入/ 輸出FdFramebuffer 設(shè)備文件描述符,是調(diào)用 open 函數(shù)打開(kāi)Framebuffer 設(shè)備之后的返回值。輸入Cmd主要的 cmd(命令字)如下:l FBIOGET_VSCREENINFO:獲取屏幕可變信息l FBIOPUT_VSCREENINFO:設(shè)置屏幕可變信息l FBIOGET_FSCREENINFO:獲取屏幕固定信息l FBIOPAN_DISPLAY:設(shè)置 PAN 顯示l FBIOGET_CAP

16、ABILITY_HIFB:獲取疊加層的支持能力l FBIOGET_SCREEN_ORIGIN_HIFB:獲取疊加層坐標(biāo)l FBIOPUT_SCREEN_ORIGIN_HIFB:設(shè)置疊加層坐標(biāo)l FBIOGET_SHOW_HIFB:獲取疊加層顯示狀態(tài)l FBIOPUT_SHOW_HIFB:設(shè)置疊加層顯示狀態(tài)l FBIOGET_ALPHA_HIFB:獲取疊加層 Alphal FBIOPUT_ALPHA_HIFB:設(shè)置疊加層 Alphal FBIOGET_COLORKEY_HIFB:獲取疊加層的 Colorkey 屬性l FBIOPUT_COLORKEY_HIFB:設(shè)置疊加層的 Colorkey 屬

17、性l FBIOGET_MDDRDETECT_HIFB:獲取內(nèi)存?zhèn)蓽y(cè)屬性l FBIOPUT_MDDRDETECT_HIFB:設(shè)置內(nèi)存?zhèn)蓽y(cè)屬性l FBIOPUT_DYNAMIC_RANGE_HIFB:設(shè)置疊加層的目標(biāo)圖像動(dòng)態(tài)范圍l FBIOGET_DYNAMIC_RANGE_HIFB:獲取疊加層的目標(biāo)圖像動(dòng)態(tài)范圍l FBIOPUT_SCREENSIZE:設(shè)置疊加層的屏幕輸出分辨率l FBIOGET_SCREENSIZE:獲取疊加層的屏幕輸出分辨率l 軟鼠標(biāo)的一系列操作輸入HiFBAPI 參考2 API 參考2.3 標(biāo)準(zhǔn)功能FBIOGET_VSCREENINFO【目的】獲取屏幕的可變信息?!菊Z(yǔ)法】i

18、nt ioctl (int fd,FBIOGET_VSCREENINFO,struct fb_var_screeninfo*var);【描述】使用此接口獲取屏幕的可變信息,主要包括分辨率和像素格式。信息的詳細(xì)描述請(qǐng)參見(jiàn)“3.1 struct fb_var_screeninfo”?!緟?shù)】專有和市信息半導(dǎo)體文檔版本 00B06 (2018-11-23)2-3所有 ©參數(shù)名稱描述輸入/輸出fdFramebuffer 設(shè)備文件描述符輸入FBIOGET_VSCREENINFOioctl 號(hào)輸入var可變信息結(jié)構(gòu)體指針輸出參數(shù)名稱描述輸入/ 輸出cmddata各 cmd 對(duì)應(yīng)的數(shù)據(jù)類型分別是:

19、l 獲取或設(shè)置屏幕可變信息:struct fb_var_screeninfo *類型l 獲取屏幕固定信息:struct fb_fix_screeninfo *類型l 設(shè)置 PAN 顯示:struct fb_var_screeninfo *類型l 獲取疊加層支持能力:HIFB_CAPABILITY_S *類型l 獲取或設(shè)置屏幕疊加層坐標(biāo):HIFB_POINT_S *類型l 獲取或設(shè)置疊加層顯示狀態(tài):HI_BOOL *類型l 獲取或設(shè)置疊加層 Alpha:HIFB_ALPHA_S *類型l 獲取或設(shè)置內(nèi)存?zhèn)蓽y(cè)屬性:HIFB_DDRZONE_S *類型l 獲取或設(shè)置壓縮開(kāi)關(guān)狀態(tài):HI_BOOL 類型

20、l 獲取或設(shè)置圖形層動(dòng)態(tài)范圍:HIFB_DYNAMIC_RANGE_E* 類型輸入輸出HiFBAPI 參考2 API 參考【返回值】【需求】頭文件:fb.h【注意】設(shè)備的圖形層默認(rèn)分辨率為 1280x720,鼠標(biāo)層的默認(rèn)分辨率為 128x128,標(biāo)清設(shè)備的圖形層的默認(rèn)分辨率為 720x576,像素格式默認(rèn)為 ARGB1555。特別說(shuō)明:對(duì)于Hi3559AV100ES/Hi3559AV100/Hi3519AV100/Hi3516CV500/Hi3516DV300/Hi3516EllV200/Hi3516EV300/Hi3518EV300,超清和1920x1080。設(shè)備的圖形層默認(rèn)分辨率為【舉例】

21、struct fb_var_screeninfo vinfo;if (ioctl(fd, FBIOGET_VSCREENINFO, &vinfo)return -1;<0)【相關(guān)接口】FBIOPUT_VSCREENINFOFBIOPUT_VSCREENINFO【目的】設(shè)置 Framebuffer 的屏幕分辨率和像素格式等。【語(yǔ)法】int ioctl (int fd,FBIOPUT_VSCREENINFO,struct fb_var_screeninfo *var);【描述】使用此接口設(shè)置屏幕分辨率、像素格式?!緟?shù)】專有和市信息半導(dǎo)體文檔版本 00B06 (2018-11-23)

22、2-4所有 ©返回值描述01失敗HiFBAPI 參考2 API 參考【返回值】【差異說(shuō)明】【需求】頭文件:fb.h【注意】分辨率的大小必須在各疊加層支持的分辨率范圍內(nèi),各疊加層支持的最大分辨率和最小分辨率可通過(guò) FBIOGET_CAPABILITY_HIFB 獲取。必須保證實(shí)際分辨率與偏移的和在虛擬分辨率范圍內(nèi),否則系統(tǒng)會(huì)自動(dòng)調(diào)整實(shí)際分辨率的大小讓其在虛擬分辨率范圍內(nèi)。對(duì)于隔行顯示設(shè)備,要求分辨率的高度必須為偶數(shù)。除 Hi3559AV100ES、Hi3559AV100、Hi3519AV100 外,在壓縮使能時(shí),如果改變實(shí)際分辨率,需要先關(guān)閉壓縮。對(duì)于 Hi3559AV100ES、Hi

23、3559AV100、Hi3519AV100,壓縮功能在 TDE 搬移過(guò)程中完成,不涉及額外壓縮數(shù)據(jù) Buffer 的申請(qǐng)和銷毀,因此,改變實(shí)際分辨不需要關(guān)閉壓縮。如果圖形層支持縮放,可以設(shè)置顯示分辨率大于設(shè)備分辨率,這時(shí)候顯示圖像的一部分。lllll【舉例】專有和市信息半導(dǎo)體文檔版本 00B06 (2018-11-23)2-5所有 ©描述Hi3559V100/Hi3559AV100ES/Hi35 59AV100/Hi3519AV100/Hi3516CV500/Hi3516DV300支持像素格式 ARGB1555、ARGB4444 和ARGB8888Hi3516EV200/Hi3516

24、EV300/Hi351 8EV300支持像素格式 ARGB1555 和 ARGB4444返回值描述01失敗參數(shù)名稱描述輸入/輸出fdFramebuffer 設(shè)備文件描述符輸入FBIOPUT_VSCREENINFOioctl 號(hào)輸入var可變信息結(jié)構(gòu)體指針輸入HiFBAPI 參考2 API 參考設(shè)置實(shí)際分辨率為 720x576,虛擬分辨率為 720x576,偏移為(0,0), ARGB1555 的示例代碼如下:像素格式為struct struct struct structstructfb_bitfield fb_bitfield fb_bitfieldfb_bitfieldr16 g16 b1

25、6a16=10, 5, 0;5, 5, 0;0, 5, 0;15, 1, 0;vinfo;fb_var_screeninfoif (ioctl(fd, FBIOGET_VSCREENINFO,return -1;vinfo.xres_virtual = 720;vinfo.yres_virtual = 576;vinfo.xres = 720;vinfo.yres = 576;vinfo.activate = FB_ACTIVATE_NOW; vinfo.bits_per_pixel = 16;vinfo.xoffset = 0;vinfo.yoffset = 0; vinfo.red = r

26、16; vinfo.green = g16; vinfo.blue = b16; vinfo.transp= a16;if (ioctl(fd, FBIOPUT_VSCREENINFO,return -1;&vinfo)<0)&vinfo)<0)【相關(guān)接口】FBIOGET_VSCREENINFOFBIOGET_FSCREENINFO【目的】獲取 Framebuffer 的固定信息?!菊Z(yǔ)法】int ioctl (int fd,FBIOGET_FSCREENINFO,struct fb_fix_screeninfo *fix);【描述】使用此接口獲取 Framebuff

27、er 固定信息,包括顯存起始物理地址、顯存大小和行間距等。信息的詳細(xì)描述請(qǐng)參見(jiàn)“3.1 struct fb_fix_screeninfo”。專有和市信息半導(dǎo)體文檔版本 00B06 (2018-11-23)2-6所有 ©HiFBAPI 參考2 API 參考【參數(shù)】【返回值】【需求】頭文件:fb.h【注意】無(wú)。【舉例】無(wú)?!鞠嚓P(guān)接口】無(wú)。FBIOPAN_DISPLAY【目的】設(shè)置從虛擬分辨率中的不同偏移處開(kāi)始顯示?!菊Z(yǔ)法】int ioctl (int fd,FBIOPAN_DISPLAY,struct fb_var_screeninfo *var);【描述】使用此接口設(shè)置從虛擬分辨率中的

28、不同偏移處開(kāi)始顯示,實(shí)際的分辨率不變。如圖 2-1 所示:(xres_virtual, yres_virtual)是虛擬分辨率,(xres, yres)是實(shí)際顯示的分辨率, (xoffset, yoffset)是顯示的偏移。專有和市信息半導(dǎo)體文檔版本 00B06 (2018-11-23)2-7所有 ©返回值描述01失敗參數(shù)名稱描述輸入/輸出fdFramebuffer 設(shè)備文件描述符輸入FBIOGET_FSCREENINFOioctl 號(hào)輸入fix固定信息結(jié)構(gòu)體指針輸出HiFBAPI 參考2 API 參考圖2-1 設(shè)置從虛擬分辨率中的不同偏移處開(kāi)始顯示es_virtualxres_vi

29、rtual【參數(shù)】【返回值】【需求】頭文件:fb.h【注意】此接口只應(yīng)在 FB 標(biāo)準(zhǔn)模式中使用,它能把 FB 從擴(kuò)展模式切換到標(biāo)準(zhǔn)模式。l專有和市信息半導(dǎo)體文檔版本 00B06 (2018-11-23)2-8所有 ©返回值描述01失敗參數(shù)名稱描述輸入/輸出fdFramebuffer 設(shè)備文件描述符輸入FBIOPAN_DISPLAYioctl 號(hào)輸入var可變信息結(jié)構(gòu)體指針輸入yoffset(xoffset, yoffset)xoffsetyresxresyr顯示圖象HiFBAPI 參考2 API 參考l必須保證實(shí)際分辨率與偏移的和在虛擬分辨率范圍內(nèi),否則設(shè)置不。另外,最好保證 xof

30、fset 與 yoffset 形成的偏移地址是 16byte 對(duì),否則會(huì)將 xoffset 的值減少到能使偏移地址是 16byte 對(duì)位置。對(duì)于隔行顯示設(shè)備,要求分辨率的高度必須為偶數(shù)。l【舉例】設(shè)置實(shí)際分辨率為 300x300,虛擬分辨率為 720x576,起始偏移為(50,50),然后偏移到(300,0)處開(kāi)始顯示的 PAN 設(shè)置代碼如下:struct struct struct structstructfb_bitfield fb_bitfield fb_bitfieldfb_bitfieldr32 g32 b32a32=16, 8, 0;8, 8, 0;0, 8, 0;24, 8, 0

31、;vinfo;fb_var_screeninfovinfo.xres_virtual = 720;vinfo.yres_virtual = 576;vinfo.xres = 300;vinfo.yres = 300;vinfo.activate = FB_ACTIVATE_NOW; vinfo.bits_per_pixel = 32;vinfo.xoffset = 50;vinfo.yoffset = 50; vinfo.red = r32; vinfo.green = g32; vinfo.blue = b32; vinfo.transp= a32;if (ioctl(fd, FBIOPUT

32、_VSCREENINFO,return -1;&vinfo)<0)vinfo.xoffset vinfo.yoffset if (ioctl(fd,return -1;= 300;= 0; FBIOPAN_DISPLAY,&vinfo) < 0)專有和市信息半導(dǎo)體文檔版本 00B06 (2018-11-23)2-9所有 ©HiFBAPI 參考2 API 參考2.4 擴(kuò)展功能2.4.1 通用功能FBIOGET_CAPABILITY_HIFB【目的】獲取疊加層的支持能力?!菊Z(yǔ)法】int ioctl (int fd,FBIOGET_CAPABILITY_HIFB

33、,HIFB_CAPABILITY_S *pstCap);【描述】在使用某些接口前,用戶可以通過(guò)調(diào)用此接口該疊加層是否支持該功能?!緟?shù)】【返回值】【需求】頭文件:hifb.h【注意】無(wú)?!九e例】無(wú)?!鞠嚓P(guān)接口】專有和市信息半導(dǎo)體文檔版本 00B06 (2018-11-23)2-10所有 ©返回值描述01失敗參數(shù)名稱描述輸入/輸出fdFramebuffer 設(shè)備文件描述符輸入FBIOGET_CAPABILITY_HIFBioctl 號(hào)輸入pstCap支持能力結(jié)構(gòu)體指針輸出HiFBAPI 參考2 API 參考無(wú)。FBIOGET_SCREEN_ORIGIN_HIFB【目的】獲取疊加層在屏幕

34、上顯示的起始點(diǎn)坐標(biāo)?!菊Z(yǔ)法】int ioctl (int fd,FBIOGET_SCREEN_ORIGIN_HIFB,HIFB_POINT_S *pstPoint);【描述】使用此接口獲取疊加層在屏幕上顯示的起始點(diǎn)坐標(biāo)。【參數(shù)】【返回值】【需求】頭文件:hifb.h【注意】對(duì)軟鼠標(biāo)不適用?!九e例】無(wú)。【相關(guān)接口】FBIOPUT_SCREEN_ORIGIN_HIFB專有和市信息半導(dǎo)體文檔版本 00B06 (2018-11-23)2-11所有 ©返回值描述01失敗參數(shù)名稱描述輸入/輸出fdFramebuffer 設(shè)備文件描述符輸入FBIOGET_SCREEN_ORIGIN_HIFBioc

35、tl 號(hào)輸入pstPoint坐標(biāo)結(jié)構(gòu)體指針輸出HiFBAPI 參考2 API 參考FBIOPUT_SCREEN_ORIGIN_HIFB【目的】設(shè)置疊加層在屏幕上顯示的起始點(diǎn)坐標(biāo)?!菊Z(yǔ)法】int ioctl (int fd,FBIOPUT_SCREEN_ORIGIN_HIFB,HIFB_POINT_S *pstPoint);【描述】使用此接口設(shè)置疊加層在屏幕上顯示的起始點(diǎn)坐標(biāo),坐標(biāo)范圍從(0, 0)到該疊加層支持的最大分辨率減圖形層支持的最小分辨率之間?!緟?shù)】【返回值】【需求】頭文件:hifb.h【注意】超出了范圍,默認(rèn)將坐標(biāo)設(shè)置為(u32MaxWidth-l如果疊加層坐標(biāo)u32MinWidt

36、h,u32MaxHeight-u32MinHeight),其中 u32MaxWidth 和 u32MaxHeight 的值是設(shè)備時(shí)序定義的最大寬高;u32MinWidth 和 u32MinHeight 分別表示可加載的最小圖像的寬和高,可通過(guò) FBIOGET_CAPABILITY_HIFB 接口中的 u32MinWidth 和u32MinHeight 成員獲取。對(duì)于隔行顯示設(shè)備,要求坐標(biāo)的縱坐標(biāo)值為偶數(shù)。l【舉例】無(wú)。專有和市信息半導(dǎo)體文檔版本 00B06 (2018-11-23)2-12所有 ©返回值描述01失敗參數(shù)名稱描述輸入/輸出fdFramebuffer 設(shè)備文件描述符輸入F

37、BIOPUT_SCREEN_ORIGIN_HIFBioctl 號(hào)輸入pstPoint坐標(biāo)結(jié)構(gòu)體指針輸入HiFBAPI 參考2 API 參考【相關(guān)接口】FBIOGET_SCREEN_ORIGIN_HIFBFBIOGET_SHOW_HIFB【目的】獲取當(dāng)前疊加層的顯示狀態(tài)?!菊Z(yǔ)法】int ioctl (int fd,FBIOGET_SHOW_HIFB,HI_BOOL *bShow);【描述】使用此接口獲取當(dāng)前疊加層顯示狀態(tài)。【參數(shù)】【返回值】【需求】頭文件:hifb.h【注意】對(duì)軟鼠標(biāo)不適用。【舉例】專有和市信息半導(dǎo)體文檔版本 00B06 (2018-11-23)2-13所有 ©返回值描

38、述01失敗參數(shù)名稱描述輸入/輸出fdFramebuffer 設(shè)備文件描述符輸入FBIOGET_SHOW_HIFBioctl 號(hào)輸入bShow指示當(dāng)前疊加層的狀態(tài):l *bShow = HI_TRUE:當(dāng)前疊加層處于顯示狀態(tài)l *bShow = HI_FALSE:當(dāng)前疊加層處于隱藏狀態(tài)輸出HiFBAPI 參考2 API 參考無(wú)?!鞠嚓P(guān)接口】FBIOPUT_SHOW_HIFBFBIOPUT_SHOW_HIFB【目的】顯示或隱藏該疊加層。【語(yǔ)法】int ioctl (int fd,FBIOPUT_SHOW_HIFB,HI_BOOL *bShow);【描述】使用此接口設(shè)置疊加層顯示狀態(tài):顯示或隱藏?!?/p>

39、參數(shù)】【返回值】【需求】頭文件:hifb.h【注意】為正常顯示,在顯示之前,應(yīng)將 bShow 的值設(shè)為HI_TRUE 調(diào)用 ioctl(fd,FBIOPUT_SHOW_HIFB, &bShow),即使能對(duì)應(yīng)圖形層。顯示時(shí)應(yīng)保證圖形層的分辨率不超出設(shè)備分辨率。ll專有和市信息半導(dǎo)體文檔版本 00B06 (2018-11-23)2-14所有 ©返回值描述01失敗參數(shù)名稱描述輸入/輸出fdFramebuffer 設(shè)備文件描述符輸入FBIOPUT_SHOW_HIFBioctl 號(hào)輸入bShow該疊加層的顯示狀態(tài):l *bShow = HI_TRUE:顯示當(dāng)前疊加層l *bShow =

40、 HI_FALSE:隱藏當(dāng)前疊加層輸入HiFBAPI 參考2 API 參考l保證顯示設(shè)備的能力支持所要顯示的分辨率?!九e例】無(wú)?!鞠嚓P(guān)接口】FBIOGET_SHOW_HIFBFBIOGET_MIRROR_MODE【目的】獲取當(dāng)前疊加層的鏡像模式?!菊Z(yǔ)法】int ioctl (int fd,FBIOGET_MIRROR_MODE,HIFB_MIRROR_MODE_E *eMirrorMode);【描述】使用此接口獲取當(dāng)前疊加層鏡像模式?!緟?shù)】【返回值】【需求】頭文件:hifb.h【注意】只用于擴(kuò)展模式下,HIFB_LAYER_BUF_NONE 模式不支持,對(duì)軟鼠標(biāo)不適用?!九e例】專有和市信息半

41、導(dǎo)體文檔版本 00B06 (2018-11-23)2-15所有 ©返回值描述01失敗參數(shù)名稱描述輸入/輸出fdFramebuffer 設(shè)備文件描述符輸入FBIOGET_MIRROR_MODEioctl 號(hào)輸入eMirrorMode指示當(dāng)前疊加層的鏡像模式輸出HiFBAPI 參考2 API 參考無(wú)?!鞠嚓P(guān)接口】FBIOPUT_MIRROR_MODE【目的】設(shè)置當(dāng)前疊加層的鏡像模式?!菊Z(yǔ)法】int ioctl (int fd,FBIOPUT_MIRROR_MODE,HIFB_MIRROR_MODE_E *eMirrorMode);【描述】使用此接口獲取當(dāng)前疊加層鏡像模式?!緟?shù)】【返回值

42、】【需求】頭文件:hifb.h【注意】只用于擴(kuò)展模式下,對(duì)軟鼠標(biāo)不適用。不支持鏡像模式和壓縮同時(shí)做。在 HIFB_LAYER_BUF_NONE 刷新模式下不支持鏡像操作。lll【舉例】無(wú)。專有和市信息半導(dǎo)體文檔版本 00B06 (2018-11-23)2-16所有 ©返回值描述01失敗參數(shù)名稱描述輸入/輸出fdFramebuffer 設(shè)備文件描述符輸入FBIOGET_MIRROR_MODEioctl 號(hào)輸入eMirrorMode疊加層的鏡像模式輸入HiFBAPI 參考2 API 參考【相關(guān)接口】FBIOGET_ALPHA_HIFB【目的】獲取疊加層 Alpha?!菊Z(yǔ)法】int ioc

43、tl (int fd,FBIOGET_ALPHA_HIFB,HIFB_ALPHA_S *pstAlpha);【描述】使用此接口獲取當(dāng)前疊加層的 Alpha 設(shè)置?!緟?shù)】【返回值】【需求】頭文件:hifb.h【注意】請(qǐng)參見(jiàn) HIFB_ALPHA_S 的說(shuō)明?!九e例】無(wú)?!鞠嚓P(guān)接口】FBIOPUT_ALPHA_HIFB專有和市信息半導(dǎo)體文檔版本 00B06 (2018-11-23)2-17所有 ©返回值描述01失敗參數(shù)名稱描述輸入/輸出fdFramebuffer 設(shè)備文件描述符輸入FBIOGET_ALPHA_HIFBioctl 號(hào)輸入pstAlphaAlpha 結(jié)構(gòu)體指針輸出HiFBA

44、PI 參考2 API 參考FBIOPUT_ALPHA_HIFB【目的】設(shè)置疊加層的 Alpha?!菊Z(yǔ)法】int ioctl (int fd,FBIOPUT_ALPHA_HIFB,HIFB_ALPHA_S *pstAlpha);【描述】使用此接口設(shè)置當(dāng)前疊加層的 Alpha 功能?!緟?shù)】【返回值】【需求】頭文件:hifb.h【注意】請(qǐng)參見(jiàn) HIFB_ALPHA_S 的說(shuō)明?!九e例】無(wú)。【相關(guān)接口】FBIOGET_ALPHA_HIFBFBIOGET_COLORKEY_HIFB【目的】專有和市信息半導(dǎo)體文檔版本 00B06 (2018-11-23)2-18所有 ©返回值描述01失敗參數(shù)名

45、稱描述輸入/輸出fdFramebuffer 設(shè)備文件描述符輸入FBIOPUT_ALPHA_HIFBioctl 號(hào)輸入pstAlphaAlpha 結(jié)構(gòu)體指針輸入HiFBAPI 參考2 API 參考獲取疊加層的 colorkey。【語(yǔ)法】int ioctl (int fd,FBIOGET_COLORKEY_HIFB,HIFB_COLORKEY_S *pstColorKey);【描述】使用此接口獲取疊加層的 colorkey。【參數(shù)】【返回值】【差異說(shuō)明】【需求】頭文件:hifb.h【注意】專有和市信息半導(dǎo)體文檔版本 00B06 (2018-11-23)2-19所有 ©描述Hi3559V1

46、00只有一個(gè)圖形層,該圖形層支持 colorkeyHi3559AV100ES支持兩個(gè)圖形層,圖形層 G0 支持 colorkey, 圖形層 G1 支持 colorkeyHi3559AV100/Hi3519AV100支持三個(gè)圖形層,G0,G1,G3 均支持colorkey。Hi3516CV500/Hi3516DV300/Hi3516 EV200/Hi3516EV300/Hi3518EV300只有一個(gè)圖形層 G0,該圖形層支持 colorkey返回值描述01失敗參數(shù)名稱描述輸入/輸出FdFramebuffer 設(shè)備文件描述符輸入FBIOGET_COLORKEY_HIFBioctl 號(hào)輸入pstCo

47、lorKeycolorkey 結(jié)構(gòu)體指針輸出HiFBAPI 參考2 API 參考在預(yù)乘模式下不支持 colorkey 功能?!九e例】無(wú)?!鞠嚓P(guān)接口】FBIOPUT_COLORKEY_HIFBFBIOPUT_COLORKEY_HIFB【目的】設(shè)置疊加層的 colorkey?!菊Z(yǔ)法】int ioctl (int fd,FBIOPUT_COLORKEY_HIFB,HIFB_COLORKEY_S *pstColorKey);【描述】使用此接口設(shè)置當(dāng)前疊加層的 colorkey 功能?!緟?shù)】【返回值】【差異說(shuō)明】專有和市信息半導(dǎo)體文檔版本 00B06 (2018-11-23)2-20所有 ©

48、描述Hi3559V100只有一個(gè)圖形層,該圖形層支持 colorkeyHi3559AV100ES支持兩個(gè)圖形層,圖形層 G0 支持 colorkey,圖形層 G1 支持 colorkey返回值描述01失敗參數(shù)名稱描述輸入/輸出fdFramebuffer 設(shè)備文件描述符輸入FBIOPUT_COLORKEY_HIFBioctl 號(hào)輸入pstColorKeycolorkey 結(jié)構(gòu)體指針輸入HiFBAPI 參考2 API 參考【需求】頭文件:hifb.h【注意】無(wú)?!九e例】假設(shè)當(dāng)前像素格式為 ARGB8888,則要過(guò)濾掉紅色分量為 0x1F、綠色分量為 0x2F、藍(lán)色分量為 0x3F 的顏色值,具體設(shè)

49、置如下:HIFB_COLORKEY_S stColorKey;stColorKey.bKeyEnable = HI_TRUE; stColorKey.u32Key = 0x1F2F3F;if (ioctl(fd, FBIOPUT_COLORKEY_HIFB,return -1;&stColorKey)<0)【相關(guān)接口】FBIOGET_COLORKEY_HIFBFBIOGET_DEFLICKER_HIFB【目的】獲取疊加層的抗閃爍設(shè)置?!菊Z(yǔ)法】int ioctl (int fd,FBIOGET_DEFLICKER_HIFB,HIFB_DEFLICKER_S *pstDeflicke

50、r);【描述】使用此接口獲取當(dāng)前疊加層的抗閃爍設(shè)置?!緟?shù)】專有和市信息半導(dǎo)體文檔版本 00B06 (2018-11-23)2-21所有 ©參數(shù)名稱描述輸入/輸出fdFramebuffer 設(shè)備文件描述符輸入Hi3559AV100/Hi3519AV100支持三個(gè)圖形層,G0,G1,G3 均支持 colorkey。Hi3516CV500/Hi3516DV300/Hi 3516EV200/Hi3516EV300/Hi3518EV300只有一個(gè)圖形層 G0,該圖形層支持 colorkeyHiFBAPI 參考2 API 參考【返回值】【需求】頭文件:hifb.h【注意】Hi35xx不支持抗閃爍操作,所以在 Hi35xx上調(diào)用該接口返回失敗。【舉例】無(wú)?!鞠嚓P(guān)接口】FBIOPUT_DEFLICKER_

溫馨提示

  • 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。

評(píng)論

0/150

提交評(píng)論