跳到主要内容

功能及约束说明

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输入填充颜色。

返回值说明

父主题: 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。

返回值说明

父主题: TDE图形绘制功能

功能及约束说明

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叠加图形层管理功能

在线提单