# lcd_mem_special_t
# 概述
image
特殊的LCD。
通过重载flush函数来提交GUI绘制的结果到硬件。适用于:
- lcd 硬件不支持framebuffer,如SPI接口的屏。
- lcd 硬件支持framebuffer,但是其格式特殊,AWTK目前不支持。可以用flush进行格式转换。
# 函数
函数名称 | 说明 |
---|---|
lcd_mem_deinit | 清除 lcd_mem 对象中的数据 |
lcd_mem_get_next_fb | 获取 lcd_mem 对象中的 next_fb |
lcd_mem_get_offline_fb | 获取 lcd_mem 对象中的 offline_fb |
lcd_mem_get_online_fb | 获取 lcd_mem 对象中的 online_fb |
lcd_mem_set_next_fb | 设置 lcd_mem 对象中的 next_fb |
lcd_mem_set_offline_fb | 设置 lcd_mem 对象中的 offline_fb |
lcd_mem_set_online_fb | 设置 lcd_mem 对象中的 online_fb |
lcd_mem_set_wait_vbi | 设置等待VBI事件到来的回调函数。 |
lcd_mem_special_create | 创建lcd对象。 |
# lcd_mem_deinit 函数
- 函数功能:
清除 lcd_mem 对象中的数据
- 函数原型:
ret_t lcd_mem_deinit (lcd_mem_t* mem);
- 参数说明:
参数 | 类型 | 说明 |
---|---|---|
返回值 | ret_t | 返回RET_OK表示成功,否则表示失败。 |
mem | lcd_mem_t* | lcd_mem 对象。 |
# lcd_mem_get_next_fb 函数
- 函数功能:
获取 lcd_mem 对象中的 next_fb
- 函数原型:
uint8_t* lcd_mem_get_next_fb (lcd_mem_t* lcd);
- 参数说明:
参数 | 类型 | 说明 |
---|---|---|
返回值 | uint8_t* | 返回 next_fb 地址。 |
lcd | lcd_mem_t* | lcd_mem 对象。 |
# lcd_mem_get_offline_fb 函数
- 函数功能:
获取 lcd_mem 对象中的 offline_fb
- 函数原型:
uint8_t* lcd_mem_get_offline_fb (lcd_mem_t* lcd);
- 参数说明:
参数 | 类型 | 说明 |
---|---|---|
返回值 | uint8_t* | 返回 offline_fb 地址。 |
lcd | lcd_mem_t* | lcd_mem 对象。 |
# lcd_mem_get_online_fb 函数
- 函数功能:
获取 lcd_mem 对象中的 online_fb
- 函数原型:
uint8_t* lcd_mem_get_online_fb (lcd_mem_t* lcd);
- 参数说明:
参数 | 类型 | 说明 |
---|---|---|
返回值 | uint8_t* | 返回 online_fb 地址。 |
lcd | lcd_mem_t* | lcd_mem 对象。 |
# lcd_mem_set_next_fb 函数
- 函数功能:
设置 lcd_mem 对象中的 next_fb
- 函数原型:
ret_t lcd_mem_set_next_fb (lcd_mem_t* lcd, uint8_t* next_fb);
- 参数说明:
参数 | 类型 | 说明 |
---|---|---|
返回值 | ret_t | 返回RET_OK表示成功,否则表示失败。 |
lcd | lcd_mem_t* | lcd_mem 对象。 |
next_fb | uint8_t* | next_fb 地址。 |
# lcd_mem_set_offline_fb 函数
- 函数功能:
设置 lcd_mem 对象中的 offline_fb
- 函数原型:
ret_t lcd_mem_set_offline_fb (lcd_mem_t* lcd, uint8_t* offline_fb);
- 参数说明:
参数 | 类型 | 说明 |
---|---|---|
返回值 | ret_t | 返回RET_OK表示成功,否则表示失败。 |
lcd | lcd_mem_t* | lcd_mem 对象。 |
offline_fb | uint8_t* | offline_fb 地址。 |
# lcd_mem_set_online_fb 函数
- 函数功能:
设置 lcd_mem 对象中的 online_fb
- 函数原型:
ret_t lcd_mem_set_online_fb (lcd_mem_t* lcd, uint8_t* online_fb);
- 参数说明:
参数 | 类型 | 说明 |
---|---|---|
返回值 | ret_t | 返回RET_OK表示成功,否则表示失败。 |
lcd | lcd_mem_t* | lcd_mem 对象。 |
online_fb | uint8_t* | online_fb 地址。 |
# lcd_mem_set_wait_vbi 函数
- 函数功能:
设置等待VBI事件到来的回调函数。
VBI: vertical blank interrupt。用于2fb等待当前显示完成,以便把下一帧的数据从offline fb拷贝到online fb,从而避免因为同时访问online fb数据造成闪烁。
- 函数原型:
ret_t lcd_mem_set_wait_vbi (lcd_t* lcd, lcd_mem_wait_vbi_t wait_vbi, void* ctx);
- 参数说明:
参数 | 类型 | 说明 |
---|---|---|
返回值 | ret_t | 返回RET_OK表示成功,否则表示失败。 |
lcd | lcd_t* | lcd对象。 |
wait_vbi | lcd_mem_wait_vbi_t | 回调函数。 |
ctx | void* | 回调函数的上下文。 |
# lcd_mem_special_create 函数
- 函数功能:
创建lcd对象。
- 函数原型:
lcd_t* lcd_mem_special_create (wh_t w, wh_t h, bitmap_format_t fmt, lcd_flush_t on_flush, lcd_resize_t on_resize, lcd_destroy_t on_destroy, void* ctx);
- 参数说明:
参数 | 类型 | 说明 |
---|---|---|
返回值 | lcd_t* | 返回lcd对象。 |
w | wh_t | 宽度。 |
h | wh_t | 高度。 |
fmt | bitmap_format_t | 离线lcd的格式。一般用 BITMAP_FMT_BGR565 或 BITMAP_FMT_RGBA8888。 |
on_flush | lcd_flush_t | 回调函数,用于刷新GUI数据到实际的LCD。 |
on_resize | lcd_resize_t | 用于调整LCD的大小。一般用NULL即可。 |
on_destroy | lcd_destroy_t | lcd销毁时的回调函数。 |
ctx | void* | 回调函数的上下文。 |