Skip to main content

FBIOPUT_VSCREENINFO

功能及约束说明

HIFB(Hisilicon FrameBuffer)支持的图形层如下表所示,其中G0、G1为超高清图形层,G2图形层为鼠标层,G3、G4图形层为标清图形层。

表1 各图层基本信息说明

图形层类型HIFB名称(fb设备)默认绑定VO设备支持颜色格式分辨率显存
G0超高清图形层fb00- ARGB8888
- ARGB1555
- ARGB4444
- 最小:32*32
- 最大(默认):1920*1080
8100KB
G1超高清图形层fb11- ARGB8888
- ARGB1555
- ARGB4444
- 最小:32*32
- 最大(默认):1920*1080
8100KB
G2鼠标层fb20- ARGB8888
- ARGB1555
- ARGB4444
- 最小:8*8
- 最大(默认):256*256
256KB
G3标清图形层fb30- ARGB8888
- ARGB1555
- ARGB4444
- CLUT4
- CLUT2
- 最小:8*8
- 最大(默认):720*576
1620KB
G4标清图形层fb41- ARGB8888
- ARGB1555
- ARGB4444
- CLUT4
- CLUT2
- 最小:8*8
- 最大(默认):720*576
1620KB

父主题: HIFB叠加图形层管理功能

FBIOGET_VSCREENINFO

函数功能

获取Framebuffer屏幕的可变信息,包括分辨率、像素格式等信息。

约束说明

  • 高清设备的图形层默认分辨率为1920*1080,鼠标层的默认分辨率为256*256,标清设备的图形层的默认分辨率为720*576,像素格式默认为ARGB8888。
  • 使用HIFB接口需先调用hi_mpi_vo_enable启用VO设备。
  • 该接口不支持多进程,多线程。

函数原型

int ioctl (int fd, FBIOGET_VSCREENINFO, fb_var_screeninfo *var)

参数说明

参数名输入/输出说明
fd输入Framebuffer设备文件描述符。 应用程序中调用open("/dev/fbx"),会返回当前VO设备对应的Framebuffer设备文件描述符。
FBIOGET_VSCREENINFO输入ioctl号。
var输出可变信息结构体指针。

返回值说明

  • 0:成功
  • 非0:失败,返回Linux内核原生错误码,请单击Link查看详细说明

父主题: HIFB叠加图形层管理功能

FBIOPUT_VSCREENINFO

功能描述

设置Framebuffer屏幕的可变信息,包括分辨率、像素格式等信息。

约束说明

  • 可见屏幕宽度(xres)与宽度方向的偏移(xoffset)的和不能超过虚拟分辨率宽度(xres_virtual),yres同理。

  • 虚拟分辨率的设置需要在当前图层的显存约束范围内(各个图层的最大/最小分辨率及显存限制如表1所示)。虚拟分辨率所需显存的计算公式如下:

  • 必须保证实际分辨率与偏移的和在虚拟分辨率范围内,否则系统会自动调整实际分辨率的大小让其在虚拟分辨率范围内。

  • 使用HIFB接口需先调用hi_mpi_vo_enable启用VO设备。

  • 该接口不支持多进程,多线程。

函数原型

int ioctl (int fd, FBIOPUT_VSCREENINFO, fb_var_screeninfo *var)

参数说明

参数名输入/输出说明
fd输入Framebuffer设备文件描述符。 应用程序中调用open("/dev/fbx"),会返回当前VO设备对应的Framebuffer设备文件描述符。
FBIOPUT_VSCREENINFO输入ioctl号。
var输入可变信息结构体指针。

返回值说明

  • 0:成功
  • 非0:失败

父主题: HIFB叠加图形层管理功能

FBIOGET_FSCREENINFO

功能描述

获取Framebuffer的固定信息,包括显存用户态地址、显存大小等信息。

约束说明

  • 使用HIFB接口需先调用hi_mpi_vo_enable启用VO设备。

  • 显存通过内核mmap函数获取用户态虚拟地址;注意该用户态虚拟地址无法被加速器访问,若需配置给加速器的用户态地址,则需使用fb_fix_screeninfo中mmio_start参数。

  • 无需显示图形层时,用户需调用内核munmap接口释放用户态虚拟地址,否则会导致该图形层不可用,且驱动无法退出。

  • 该接口不支持多进程、多线程。

函数原型

int ioctl (int fd, FBIOGET_FSCREENINFO, fb_fix_screeninfo *fix)

参数说明

参数名输入/输出说明
fd输入Framebuffer设备文件描述符。 应用程序中调用open("/dev/fbx"),会返回当前VO设备对应的Framebuffer设备文件描述符。
FBIOGET_FSCREENINFO输入ioctl号。
fix输出固定信息结构体指针。

返回值说明

  • 0:成功
  • 非0:失败

父主题: HIFB叠加图形层管理功能

FBIOPAN_DISPLAY

功能描述

设置从虚拟分辨率中的不同偏移处开始显示,实际分辨率不变,如下图所示,(xres_virtual, yres_virtual)是虚拟分辨率,(xres, yres)是实际显示的分辨率,(xoffset, yoffset)是显示的偏移。

约束说明

  • 使用HIFB接口需先调用hi_mpi_vo_enable启用VO设备。

  • 必须保证实际分辨率与偏移的和在虚拟分辨率范围内,否则设置不成功。

  • 该接口不支持多进程、多线程。

函数原型

int ioctl (int fd, FBIOPAN_DISPLAY, fb_var_screeninfo *var)

参数说明

参数名输入/输出说明
fd输入Framebuffer设备文件描述符。 应用程序中调用open("/dev/fbx"),会返回当前VO设备对应的Framebuffer设备文件描述符。
FBIOPAN_DISPLAY输入ioctl号。
var输入可变信息结构体指针。

返回值说明

  • 0:成功
  • 非0:失败

父主题: HIFB叠加图形层管理功能

在线提单