![內(nèi)容課件hifb api參考_第1頁](http://file4.renrendoc.com/view/ad3eb2e53fc9bb1277320a1a81710d7e/ad3eb2e53fc9bb1277320a1a81710d7e1.gif)
![內(nèi)容課件hifb api參考_第2頁](http://file4.renrendoc.com/view/ad3eb2e53fc9bb1277320a1a81710d7e/ad3eb2e53fc9bb1277320a1a81710d7e2.gif)
![內(nèi)容課件hifb api參考_第3頁](http://file4.renrendoc.com/view/ad3eb2e53fc9bb1277320a1a81710d7e/ad3eb2e53fc9bb1277320a1a81710d7e3.gif)
![內(nèi)容課件hifb api參考_第4頁](http://file4.renrendoc.com/view/ad3eb2e53fc9bb1277320a1a81710d7e/ad3eb2e53fc9bb1277320a1a81710d7e4.gif)
![內(nèi)容課件hifb api參考_第5頁](http://file4.renrendoc.com/view/ad3eb2e53fc9bb1277320a1a81710d7e/ad3eb2e53fc9bb1277320a1a81710d7e5.gif)
版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡介
2014。保留一切權(quán)利。商標(biāo) 注 LinuxFramebufferLinuxFramebuffer基本功能的基礎(chǔ)上,還擴(kuò)展了一些圖形層控制功能,如層間Alpha、設(shè)置原點(diǎn)等。本文檔主要介紹HiFB的API和數(shù)據(jù)類型以及Proc調(diào)試信息。
文檔版本01(2014-12-文檔版本00B01(2014-9-目前 1概 1概 1 1API參考 1 2API參 1API類 1ioctl函 1 3 9 9 32錯(cuò)誤 43數(shù)據(jù)類 1 1 6圖形開發(fā)輔助接 1概 1簡 1 1API參 2 7Proc調(diào)試信 1 1 1 5插圖 圖4-1輸出單元基本結(jié) 表格 1表1-2數(shù)據(jù)類型參考域說 2表2-1ioctl函數(shù)的3個(gè)參 2表2-2錯(cuò)誤 43表4-1不同在不同設(shè)備間切換圖形 2
概LinuxFramebufferLinuxFramebuffer基本功能的基礎(chǔ)上,還擴(kuò)展了一些圖形層控制功能,如層間Alpha、設(shè)置原點(diǎn)、FB擴(kuò)展模式等。APIAPI參API些接口是Linux本身提供的標(biāo)準(zhǔn)接口,主要有open、close、write、read、lseek標(biāo)準(zhǔn)接口,主要有mmap、munmap等。本文檔不對(duì)這些標(biāo)準(zhǔn)接口進(jìn)行描述。Framebuffer,這些是HiFB的新增功能。本文檔將重點(diǎn)描述該部分。ioctlintioctl(intunsignedlongintioctl(intunsignedlongCMD_DATA_TYPEintioctl(intstructfb_var_screeninfo見“3.1structfb_var_screeninfo”。ioctl0備的圖形層的默認(rèn)分辨率為720x576,像素格式默認(rèn)為ARGB1555。structfb_var_screeninfoif(ioctl(fd,FBIOGET_VSCREENINFO,&vinfo)<{return-}intioctl(intstructfb_var_screeninfoioctl0和最小分辨率可通過FBIOGET_CAPABILITY_HIFB獲取。(0,0ARGB1555的示例代碼如下:structfb_bitfieldr32={10,5,structfb_bitfieldg32={5,5,structfb_bitfieldb32={0,5,structfb_bitfielda32={15,1,0};structfb_var_screeninfovinfo;if(ioctl(fd,FBIOGET_VSCREENINFO,&vinfo)<{return-}vinfo.xres_virtual=vinfo.yres_virtual=vinfo.xres=vinfo.yres=vinfo.activate=FB_ACTIVATE_NOW;vinfo.bits_per_pixel=32;vinfo.xoffset=vinfo.yoffset=0;vinfo.red=r32;vinfo.green=g32;vinfo.blue=b32;vinfo.transp=a32;if(ioctl(fd,FBIOPUT_VSCREENINFO,&vinfo)<{return-}intioctl(intstructfb_fix_screeninfo等。信息的詳細(xì)描述請(qǐng)參見“3.1structfb_fix_screeninfo”。ioctl0FBIOPAN_DISintioctl(intstructfb_var_screeninfo(xoffset,yoffset)是顯示的偏移。
顯示圖
ioctl0最好保xoffsetyoffset16bytexoffset的值減少到能使偏移地址是16byte對(duì)齊的位置。(50,50移到(300,0)處開始顯示的PAN設(shè)置代碼如下:structfb_bitfieldr32={8,4,structfb_bitfieldg32={4,4,structfb_bitfieldb32={0,4,structfb_bitfielda32={12,4,0};structfb_var_screeninfovinfo;vinfo.xres_virtual=vinfo.yres_virtual=vinfo.xres=vinfo.yres=vinfo.activate=FB_ACTIVATE_NOW;vinfo.bits_per_pixel=32;vinfo.xoffset=vinfo.yoffset=50;vinfo.red=r32;vinfo.green=g32;vinfo.blue=b32;vinfo.transp=a32;if(ioctl(fd,FBIOPUT_VSCREENINFO,&vinfo)<{return-}vinfo.xoffset=vinfo.yoffset=if(ioctl(fd,FBIOPAN_DISY,&vinfo)<{return-}intioctl(intioctl0intioctl(intHIFB_POINT_Sioctl0intioctl(intHIFB_POINT_Sioctl0u32xeghintioctl(intHI_BOOLioctl*bShowHI_TRUE:當(dāng)前疊加層處于*bShowHI_FALSE:當(dāng)前疊加層處于0intioctl(intHI_BOOLioctl0FBIOPUT_SHOW_HIFB,&bShow),即使能對(duì)應(yīng)圖形層。intioctl(intHIFB_ALPHA_Sioctl0intioctl(intHIFB_ALPHA_Sioctl0intioctl(intioctl0intioctl(intioctl0色分量為0x3F的顏色值,具體設(shè)置如下:stColorKey.bKeyEnable=HI_TRUE;stColorKey.u32Key=0x1F2F3F;if(ioctl(fd,FBIOPUT_COLORKEY_HIFB,&stColorKey)<{return-}intioctl(intioctl0intioctl(intioctl0intioctl(intfd,ioctl0intioctl(int置alpha和colorkey屬性。ioctl0intioctl(intHI_BOOL ioctl0相應(yīng)的刷新操作后內(nèi)容才會(huì)真正得以顯示出來。其中,F(xiàn)B標(biāo)準(zhǔn)模式下的刷新操作包括:FBIOPAN_DISY、FBIOFLIP_SURFACE;而FB擴(kuò)展模式則包括:FBIO_REFRESH。另外,通過FBIOPUT_SCREEN_ORIGIN_HIFB改變?cè)c(diǎn)坐標(biāo)
intioctl(intHI_BOOL ioctl-0
intioctl(intioctl0進(jìn)行變化偵測(cè),G0015,G11631。
intioctl(intioctl-0intioctl(intHIFB_LAYER_INFO_S以及HIFB_LAYER_BUF_E的描述。ioctl0HIFB_LAYER_INFO_SstLayerInfo={0};stLayerInfo.BufMode=HIFB_LAYER_BUF_ONE;stLayerInfo.u32Mask=HIFB_LAYERMASK_BUFMODE;stLayerInfo.u32DisyWidth=360;stLayerInfo.u32DisyHeight=320;stLayerInfo.s32XPos=16;stLayerInfo.s32YPos=stLayerInfo.u32Mask|=HIFB_LAYERMASK_DISPSIZE|s32Ret=ioctl(s32Fd,FBIOPUT_LAYER_INFO,intioctl(intioctl0intioctl(intHIFB_BUFFER_Sioctl0intioctl(intioctl0intioctl(intfd,ioctl0下,調(diào)用open函數(shù)打開/dev/fb0后,就可以調(diào)用下面的函數(shù)進(jìn)行軟鼠標(biāo)的相關(guān)操作intioctl(intfd,FBIOPUT_CURSOR_INFO,HIFB_CURSOR_Sioctl0,intioctl(intfd,FBIOGET_CURSOR_INFO,HIFB_CURSOR_Sioctl0intioctl(intHI_U32ioctl0intioctl(intHI_U32ioctl0intioctl(intfd,FBIOPUT_CURSOR_STATE,HI_BOOLioctl0intioctl(intfd,FBIOGET_CURSOR_STATE,HI_BOOLioctl0intioctl(intfd,FBIOPUT_CURSOR_POS,HIFB_POINT_Sioctl0intioctl(intfd,FBIOGET_CURSOR_POS,HIFB_POINT_Sioctl0intioctl(intfd,FBIOPUT_CURSOR_COLORKEY,HIFB_COLORKEY_S*ioctl0intioctl(intfd,FBIOGET_CURSOR_COLORKEY,HIFB_COLORKEY_S*ioctl0intioctl(intfd,FBIOPUT_CURSOR_ALPHA,HIFB_ALPHA_Sioctl0intioctl(intfd,FBIOGET_CURSOR_ALPHA,HIFB_ALPHA_Sioctl0
2-20時(shí)有可能出現(xiàn)的所有錯(cuò)誤碼。這些錯(cuò)誤碼來自標(biāo)準(zhǔn)Linux的標(biāo)準(zhǔn)錯(cuò)誤碼errno查看,或者用strerror(errno)打印錯(cuò)誤信息。表2-21數(shù)據(jù)類型structstruct{u32offset; /*beginningofbitfield*/u32length; /*lengthofbitfield*/u32 /*!=0:Mostsignificantbitisrightstructfb_bitfielda16={15,1,structfb_bitfieldr16={10,5,structfb_bitfieldg16={5,5,structfb_bitfieldb16={0,5,structstruct{visibleresolutionvirtualresolutionoffsetfromvirtualtovisibleresolutionguesswhat!=0Graylevelsinsteadofcolorsfb_bitfieldbitfieldinfbmemiftruecolor,fb_bitfieldelseonlylengthissignificantfb_bitfieldblue;transparency!=0NonstandardpixelformatseeFB_ACTIVATE_*heightofpictureinmmwidthofpictureinmm(OBSOLETE)seefb_info.flags/*Timing:Allvaluesinpixclocks,exceptpixclock(ofcourse)*/u32pixclock; /*pixelclockinps(picoseconds)*/u32left_margin;/*timefromsynctopicture*/u32right_margin;/*timefrompicturetosync*/u32upper_margin;/*timefromsynctopicture*/u32lower_margin;u32 /*lengthofhorizontalsyncu32 /*lengthofverticalsyncu32 /*seeFB_SYNC_*u32 /*seeFB_VMODE_* /*anglewerotatecounterclockwise /*forfuturecompatibilityxres,使xres值與該值相等。虛擬屏幕高度(顯存中圖像高度),當(dāng)該值小于yres時(shí)會(huì)修改0)0)0)0)720x576,鼠標(biāo)層默認(rèn)的分辯率為128x128。像素格式為ARGB1555。structstructstruct{charid[16];/*identificationstringeg"TTBuiltin"*/unsignedlongsmem_start; /*Startofframebuffermem(physicaladdress)u32 /*Lengthofframebuffermemu32 /*seeFB_TYPE_*u32 /*Interleaveforinterleavednesu32 /*seeFB_VISUAL_*u16 /*zeroifnohardwarepanningu16 /*zeroifnohardwarepanningu16 /*zeroifnohardwareywrapu32line_length; /*lengthofalineinbytes*/unsignedlongmmio_start; /*StartofMemoryMappedI/O(physicaladdress)u32 /*LengthofMemoryMappedI/Ou32accel;/*Indicatetodriverwhichspecificchip/cardwehaveu16 /*forfuturecompatibility0:支持,此時(shí)該值用于表示0:支持,此時(shí)該值用于表示ypanstep,不同之處typedef{HIFB_FMT_1BPP= /*1bpp /*2bpp /*4bpp /*8bpp /*RGB444 /*RGB555 /*RGB565 /*RGB4444 /*RGB1555 /*RGB888 /*RGB8888*/typedef{HI_BOOLHI_BOOLbKeyAlpha; /*whethersupportcolorkeyalpha*/HI_BOOLbGlobalAlpha; /*whethersupportglobalalpha*/HI_BOOLbCmap; /*whethersupportcolormap*/HI_BOOLbColFmt[HIFB_FMT_BUTT];/*supportwhichcolorformat*/HI_U32u32MaxWidth; /*themaxpixelsperline*/HI_U32 /*themaxlinesHI_U32u32MinWidth; /*theminpixelsperline*/HI_U32u32MinHeight; /*theminlines*/HI_U32 /*verticaldeflickerlevel,lessthanmeansverticaldeflickerisunsupported*/HI_U32 /*horizontaldeflickerlevel,lessthanmeanshorizontaldeflickerisunsupportedHI_BOOLbDcmp;HI_BOOLbPreMul;ARGB1555格式。bGlobalAlpha=Alpha值來源于全局Alpha和像素Alpha的疊加。bGlobalAlpha=typedef{HI_U32u32PosX; /*horizontalposition*/HI_U32u32PosY; /*verticalposition*/typedef{HI_BOOLbAlphaEnable; /*alphaenableflag*/HI_BOOLbAlphaChannel; /*alphachannelenableflag*/HI_U8u8Alpha0; /*alpha0value*/HI_U8u8Alpha1; /*alpha1value*/HI_U8u8GlobalAlpha; /*globalalphavalue*/HI_U8u8;下,當(dāng)最為0時(shí),選擇該值作為Alpha疊加的Alpha下,當(dāng)最為1時(shí),選擇該值作為Alpha疊加的Alpha?對(duì)于不支持全局Alpha和像素Alpha疊加的,疊加Alpha值的計(jì)算如下所示:u8GlobalAlpha?對(duì)于支持全局Alpha和像素Alpha疊加的,疊加Alpha值的計(jì)算如下u8GlobalAlpha*pixeltypedef{HI_BOOLbKeyEnable; /*colorkey是否使*/HI_U32u32Key;typedefstruct{HI_U32u32HDfLevel; /*horizontaldeflickerlevel*/HI_U32u32VDfLevel; /*verticaldeflickerlevel*/HI_U8*pu8HDfCoef; /*horizontaldeflickercoefficient*/HI_U8*pu8VDfCoef; /*verticaldeflickercoefficient*/typedef{HI_U32u32PhyAddr;HIFB_ALPHA_SstAlpha;SurfacealphaSurfacecolorkeytypedef{HIFB_LAYER_BUF_EBufMode;HI_S32s32XPos;/**<thexposoforigionpointinscreen*/HI_S32s32YPos;/**<theyposoforigionpointinscreen*/HI_S32u32CanvasWidth;/**<thewidthofcanvasbuffer*/HI_S32u32CanvasHeight;/**<theheightofcanvasbuffer*/HI_U32u32DisyWidth;/**<thewidthofdisybufinfb*/HI_U32u32DisyHeight;/**<theheightofdisybufinfb.*/HI_U32u32ScreenWidth; /**<thewidthofscreen*/HI_U32u32ScreenHeight;/**<theheightofscreenHI_BOOLbPreMul; /**<ThedatadrawedinbufispremuldataorHI_U32 /**<parammodifymask都會(huì)改變最終的顯示分辨率,另外要求它們不能大于設(shè)備分辨率。Hi35xx的顯示設(shè)備typedef{HIFB_LAYER_ANTIFLICKER_NONE=0x0,/**<noantiflicker*/HIFB_LAYER_ANTIFLICKER_LOW=0x1,/**<lowlevel*/HIFB_LAYER_ANTIFLICKER_MIDDLE=0x2,/**<middlelevel*/HIFB_LAYER_ANTIFLICKER_HIGH=0x3,/**<highlevel*/HIFB_LAYER_ANTIFLICKER_AUTO=0x4,/**<auto*/typedef{HIFB_LAYER_BUF_DOUBLE=0x0, =0x1,HIFB_LAYER_BUF_NONE=0x2,}2buffer1buffer0buffer2buffer注:各刷新類型的含義具體見《HiFB開發(fā)指南》1.2中的“圖形層刷新類型繪圖內(nèi)容從用戶繪制buffer到顯示buffer的過程用TDE進(jìn)行搬移,因此是否支持TDEbufferVO設(shè)備。Hi35xxVO設(shè)備均不支持縮放,所以顯存分辨率與屏幕顯示分辨率總是相typedef{HIFB_LAYERMASK_BUFMODE=0x1,HIFB_LAYERMASK_ANTIFLICKER_MODE=0x2,HIFB_LAYERMASK_POS=0x4,HIFB_LAYERMASK_CANVASSIZE=0x8,HIFB_LAYERMASK_DISPSIZE=0x10,HIFB_LAYERMASK_SCREENSIZE=0x20,HIFB_LAYERMASK_BMUL=0x40,HIFB_LAYER_INFO_Sbuf模式是typedef{HIFB_RECT /*refreshtypedef{HI_U32u32PhyAddr; /**<startphysicaladdress*/HI_U32u32Width; /**<widthpixels*/HI_U32u32Height; /**<heightpixels*/HI_U32u32Pitch; /**<linepixels*/HIFB_COLOR_FMT_EenFmt;/**<colorformat*/typedef{HIFB_POINT_SstHotPos;}typedef{HI_U32u32ZoneNums;}
圖形開發(fā)輔助接口設(shè)備層是基礎(chǔ),層和若干圖形層基于設(shè)備層。設(shè)備層按照配置,輸出一定的時(shí)序信號(hào)驅(qū)動(dòng)與之相連的顯示設(shè)備輸出和圖形,同時(shí)設(shè)備層決定了設(shè)備分辨?關(guān)閉設(shè)備層時(shí),需要先關(guān)閉層和圖形層,再關(guān)閉設(shè)備層?設(shè)備層屬性變化時(shí),如切換設(shè)備輸出分辨率等,需要先關(guān)閉層和圖形層,圖形層圖形層層如何看到圖形層輸每個(gè)顯示設(shè)備都支持若干種時(shí)序輸出,SDK在此不提供默認(rèn)的設(shè)備層配置,也不在SDK使用VOU模塊控制設(shè)備層。SDK的VOU模塊提供設(shè)備層和層控制接口,VOU模塊接口詳見《HiMPP處理軟件開發(fā)參考》4.3節(jié)如何在不同設(shè)備間切換圖形APIVO0 0 HI_S32HI_MPI_VO_SetPubAttr(VO_DEVVoDev,constVO_PUB_ATTR_SHI_S32HI_MPI_VO_GetPubAttr(VO_DEVVoDev,VO_PUB_ATTR_S使 HI_S32HI_MPI_VO_Enable(VO_DEV
5Proc調(diào)試信#catlayerOpenShowStart:(0,xres,:(1280,x
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(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ì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 木工承包合同協(xié)議書
- 二零二五年度智能硬件知識(shí)產(chǎn)權(quán)授權(quán)與保密合同
- 健身房整裝清包合同樣本
- 風(fēng)力發(fā)電葉片運(yùn)輸合同
- 二零二五年度辦公室門套定制與建筑節(jié)能改造合同
- 港口物流居間合同委托書
- 電子設(shè)備采購合同
- 法院判決離婚協(xié)議書
- 醫(yī)療器械外包合同
- 設(shè)備維護(hù)管理作業(yè)指導(dǎo)書
- (2024年)肺栓塞的護(hù)理課件
- 小學(xué)數(shù)學(xué)三年級(jí)下冊(cè)第八單元《數(shù)學(xué)廣角-搭配(二)》大單元集體備課整體設(shè)計(jì)
- (高清版)TDT 1031.6-2011 土地復(fù)墾方案編制規(guī)程 第6部分:建設(shè)項(xiàng)目
- 2024年江蘇省高中學(xué)業(yè)水平測(cè)試生物試卷
- 露天采場(chǎng)危險(xiǎn)有害因素辨識(shí)
- 食品感官評(píng)價(jià)員培訓(xùn)方案
- 蘇教版一年級(jí)上、下冊(cè)勞動(dòng)與技術(shù)教案
- 柔性生產(chǎn)線技術(shù)及其影響
- 智研咨詢發(fā)布:2023年中國醫(yī)院后勤服務(wù)行業(yè)市場(chǎng)現(xiàn)狀、發(fā)展概況、未來前景分析報(bào)告
- 七上-動(dòng)點(diǎn)、動(dòng)角問題12道好題-解析
- 《企業(yè)所得稅法稅法》課件
評(píng)論
0/150
提交評(píng)論