6.2.4.4.1. 概述

ZX-RTT SDK 通过 mpp 中间件,对外提供一套统一的接口来控制显示驱动,屏蔽操作系统内核和裸机方案的差异。

接口功能:

  1. 获取图层个数

  2. 获取图层能力

  3. 获取图层配置数据

  4. 更新图层配置数据

  5. 支持同时更新多图层配置数据

  6. 支持图层 scaler 设置

  7. 支持 alpha blending 设置

  8. 支持 color key

  9. 支持 disp prop 色彩设置

6.2.4.4.2. mpp 接口

struct mpp_fb;

struct mpp_fb *mpp_fb_open(void);

void mpp_fb_close(struct mpp_fb *fb);

int mpp_fb_probe(void);

int mpp_fb_ioctl(struct mpp_fb *fb, int cmd, void *args);

6.2.4.4.2.1. mpp_fb_open

接口定义

struct mpp_fb *mpp_fb_open(void);

功能说明

获取一个 mpp_fb 句柄

参数定义

void

返回值

非空:成功

NULL:失败

注意事项

6.2.4.4.2.2. mpp_fb_close

接口定义

void mpp_fb_close(struct mpp_fb *fb);

功能说明

释放 mpp_fb 句柄

参数定义

fb: mpp_fb 句柄

返回值

void

注意事项

6.2.4.4.2.3. mpp_fb_probe

接口定义

int mpp_fb_probe(void);

功能说明

probe fb

参数定义

void

返回值

0:成功

<0:失败

注意事项

多次调用也只会 probe 一次,需要在 mpp_fb_open() 操作前调用

6.2.4.4.2.4. mpp_fb_ioctl

接口定义

int mpp_fb_ioctl(struct mpp_fb *fb, int cmd, void *args);

功能说明

ioctl 调用,控制显示驱动

参数定义

fb: mpp fb 文件句柄

cmd: 操作命名

args: ioctl 调用私有数据

返回值

0:成功

<0:失败

注意事项

6.2.4.4.3. ioctl cmd

6.2.4.4.3.1. AICFB_WAIT_FOR_VSYNC

接口定义

int mpp_fb_ioctl(int fd, unsigned long cmd, unsigned int *pvalue);

功能说明

等待Vsync信号

参数定义

CMD: AICFB_WAIT_FOR_VSYNC pvalue:该值无意义,可为NULL

返回值

0:成功 -1:失败

注意事项

6.2.4.4.3.2. AICFB_GET_LAYER_NUM

接口定义

int mpp_fb_ioctl(int fd, unsigned long cmd, struct aicfb_layer_num *pvalue);

功能说明

获取显示图层的个数, 包括UI 图层个数和Video 图层

参数定义

CMD: AICFB_GET_LAYER_NUM player_num: 参考结构体 struct aicfb_layer_num 定义

返回值

0:成功 -1:失败

注意事项

6.2.4.4.3.3. AICFB_GET_LAYER_CAPABILITY

接口定义

int mpp_fb_ioctl(int fd, unsigned long cmd, struct aicfb_layer_capability *player_cap);

功能说明

获取当前图层的能力

参数定义

CMD: AICFB_GET_LAYER_CAPABILITY player_cap: 参考结构体 struct aicfb_layer_capability 定义

返回值

0:成功 -1:失败

注意事项

调用接口前要先填写结构体中的 layer_id

6.2.4.4.3.4. AICFB_GET_LAYER_CONFIG

接口定义

int mpp_fb_ioctl(int fd, unsigned long cmd, struct aicfb_layer_data *player_conf);

功能说明

获取图层配置信息

参数定义

CMD: AICFB_GET_LAYER_CONFIG player_conf: 参考结构体 struct aicfb_layer_data 定义

返回值

0:成功 -1:失败

注意事项

调用接口前要先填写结构体中的layer_id,如果是多矩形窗口要同时填写rect_win_id

6.2.4.4.3.5. AICFB_UPDATE_LAYER_CONFIG

接口定义

int mpp_fb_ioctl(int fd, unsigned long cmd, struct aicfb_layer_data *player_conf)

功能说明

更新图层配置信息

参数定义

CMD: AICFB_UPDATE_LAYER_CONFIG player_ocnf:参考结构体 struct aicfb_layer_data 定义

返回值

0: 成功 -1:失败

注意事项

如果是仅更新图层的部分config data 信息,

可以先调用接口AICFB_GET_LAYER_CONFIG,获取当前图层信息,

然后再修改要更新的图像信息,最后再调用此接口更新图层信息

6.2.4.4.3.6. AICFB_UPDATE_LAYER_CONFIG_LISTS

接口定义

int mpp_fb_ioctl(int fd, unsigned long cmd, struct aicfb_config_lists *player_lists);

功能说明

更新图层配置数据列表

参数定义

CMD: AICFB_UPDATE_LAYER_CONFIG_LISTS aicfb_config_lists player_lists: 参考结构体 struct aicfb_config_lists 定义

返回值

0:成功 -1:失败

注意事项

通过此接口可以同时更新多个图层或者多个窗口的配置信息

通过此接口调用的好处是相关图层配置的更新可以同时生效

6.2.4.4.3.7. AICFB_GET_ALPHA_CONFIG

接口定义

int mpp_fb_ioctl(int fd, unsigned long cmd, struct aicfb_alpha_config *alpha);

功能说明

获取当前图层的Alpha配置

参数定义

CMD: AICFB_GET_ALPHA_CONFIG alpha: 参结考构体 struct aicfb_alpha_config 定义

返回值

0:成功 -1:失败

注意事项

6.2.4.4.3.8. AICFB_UPDATE_ALPHA_CONFIG

接口定义

int mpp_fb_ioctl(int fd, unsigned long cmd, struct aicfb_alpha_config *alpha);

功能说明

更新当前图层的Alpha配置

参数定义

CMD: AICFB_UPDATE_ALPHA_CONFIG alpha: 参结考构体 struct aicfb_alpha_config 定义

返回值

0:成功 -1:失败

注意事项

6.2.4.4.3.9. AICFB_GET_CK_CONFIG

接口定义

int mpp_fb_ioctl(int fd, unsigned long cmd, struct aicfb_ck_config *player_ck);

功能说明

获取当前图层的CK配置

参数定义

CMD: AICFB_GET_CK_CONFIG player_ck: 参考结构体 struct aicfb_ck_config 定义

返回值

0:成功 -1:当前图层不支持 color key

注意事项

6.2.4.4.3.10. AICFB_UPDATE_CK_CONFIG

接口定义

int mpp_fb_ioctl(int fd, unsigned long cmd, struct aicfb_ck_config *player_ck);

功能说明

更新当前图层的CK配置

参数定义

CMD: AICFB_SET_CK_CONFIG player_ck: 参考结构体 struct aicfb_ck_config 定义

返回值

0: 成功 -1:当前图层不支持 color key

注意事项

6.2.4.4.3.11. AICFB_GET_SCREENINFO

接口定义

int mpp_fb_ioctl(int fd, unsigned long cmd, struct aicfb_screeninfo *pscreen_size);

功能说明

获取当前LCD外设 和 framebuffer 信息

参数定义

CMD: AICFB_GET_SCREEN_SIZE pscreen_size: 结构体 struct aicfb_screeninfo

返回值

0:成功 -1:失败

注意事项

6.2.4.4.3.12. AICFB_POWERON

接口定义

int mpp_fb_ioctl(int fd, unsigned long cmd, unsigned int zero);

功能说明

enable LCD 外设

参数定义

CMD: AICFB_POWERON zero: NULL

返回值

0:成功 -1:失败

注意事项

多次调用只会 enable 一次

6.2.4.4.3.13. AICFB_POWEROFF

接口定义

int mpp_fb_ioctl(int fd, unsigned long cmd, unsigned int zero);

功能说明

disable LCD 外设

参数定义

CMD: AICFB_POWEROFF zero: NULL

返回值

0:成功 -1:失败

注意事项