FBIOPUT_VSCREENINFO
功能及约束说明
HIFB(Hisilicon FrameBuffer)支持的图形层如下表所示,其中G0、G1为超高清图形层,G2图形层为鼠标层,G3、G4图形层为标清图形层。
表1 各图层基本信息说明
| 图形层 | 类型 | HIFB名称(fb设备) | 默认绑定VO设备 | 支持颜色格式 | 分辨率 | 显存 |
|---|---|---|---|---|---|---|
| G0 | 超高清图形层 | fb0 | 0 | - ARGB8888 - ARGB1555 - ARGB4444 | - 最小:32*32 - 最大(默认):1920*1080 | 8100KB |
| G1 | 超高清图形层 | fb1 | 1 | - ARGB8888 - ARGB1555 - ARGB4444 | - 最小:32*32 - 最大(默认):1920*1080 | 8100KB |
| G2 | 鼠标层 | fb2 | 0 | - ARGB8888 - ARGB1555 - ARGB4444 | - 最小:8*8 - 最大(默认):256*256 | 256KB |
| G3 | 标清图形层 | fb3 | 0 | - ARGB8888 - ARGB1555 - ARGB4444 - CLUT4 - CLUT2 | - 最小:8*8 - 最大(默认):720*576 | 1620KB |
| G4 | 标清图形层 | fb4 | 1 | - 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叠加图形层管理功能
在线提单