FBIOGET_VSCREENINFO
hi_tde_quick_fill
函数功能
向指定TDE任务中添加快速填充命令,实现将指定的颜色数值纯色填充到目标位图的操作区域中,具体如下图所示。

约束说明
-
在调用此接口前应保证调用hi_tde_open打开TDE设备,并且调用hi_tde_begin_job获得了有效的任务句柄。
-
区域大小长度及宽度支持的区间为[1,4096]。
-
指定操作区域要和指定的位图有公共区域,否则会返回错误。
-
当前仅支持ARGB8888格式。
-
该接口不支持多进程。
函数原型
hi_s32 hi_tde_quick_fill(hi_s32 handle, const hi_tde_none_src *none_src, hi_u32 fill_data)
参数说明
| 参数名 | 输入/输出 | 说明 |
|---|---|---|
| handle | 输入 | tde任务句柄。 |
| none_src | 输入 | 无源位图操作区域位图信息结构体。 |
| fill_data | 输入 | 填充颜色。 |
返回值说明
- 0:成功
- 非0:失败,参见TDE图形绘制返回码
父主题: TDE图形绘制功能
hi_tde_pattern_fill
函数功能
向指定TDE任务中添加模式填充命令,当前仅支持Alpha Blending操作。
模式填充:输入前景位图和背景位图,将前景位图和背景位图的操作区域做附加运算后,平铺在背景位图的操作区域,若前景位图的操作区域大于背景位图的操作区域,则自动进行裁减。
Alpha Blending:通过通过计算前景和背景重叠后的混合颜色,将前景色和背景色结合获得混合后的新颜色。前景色的透明度不限,如果前景色完全透明,混合后的颜色就是背景色,如果前景色完全不透明,混合后的颜色就是前景色。介于(0, 1)中间的透明度,混合后的颜色,需要通过前景色和背景色的加权公式来计算,混合计算必须使用平直Alpha颜色值,以下是blending的12种函数红蓝组合示例:

约束说明
-
在调用此接口前应保证调用hi_tde_open打开TDE设备,并且调用hi_tde_begin_job获得了有效的任务句柄。
-
区域大小长度及宽度支持的区间为[1, 4096];前景位图宽度支持区间为[1, 256],高度为[1, 4096]。
-
若前景位图操作区域大于目标位图操作区域,则会自动进行裁剪;若前景位图操作区域大于背景位图操作区域,则自动裁减。
-
模式填充背景位图操作区域长度和宽度要和目标位图操作区域长度和宽度保持一致。
-
该操作不能做缩放。
-
操作区域要和指定的位图有公共区域,否则会返回错误。
-
当前仅支持ARGB8888格式。
-
该接口不支持多进程。
函数原型
hi_s32 hi_tde_pattern_fill(hi_s32 handle, const hi_tde_double_src *double_src, const hi_tde_pattern_fill_opt *fill_opt)
参数说明
| 参数名 | 输入/输出 | 说明 |
|---|---|---|
| handle | 输入 | tde任务句柄。 |
| double_src | 输入 | 双源位图区域信息和目标位图区域信息结构体。 |
| fill_opt | 输入 | 附加操作,当前只支持Alpha Bending。 |
返回值说明
- 0:成功
- 非0:失败,参见TDE图形绘制返回码
父主题: TDE图形绘制功能
功能及约束说明
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叠加图形层管理功能
在线提单