Skip to content

lcd_mem_special_t

概述

特殊的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表示成功,否则表示失败。
memlcd_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 地址。
lcdlcd_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 地址。
lcdlcd_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 地址。
lcdlcd_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表示成功,否则表示失败。
lcdlcd_mem_t*lcd_mem 对象。
next_fbuint8_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表示成功,否则表示失败。
lcdlcd_mem_t*lcd_mem 对象。
offline_fbuint8_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表示成功,否则表示失败。
lcdlcd_mem_t*lcd_mem 对象。
online_fbuint8_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表示成功,否则表示失败。
lcdlcd_t*lcd对象。
wait_vbilcd_mem_wait_vbi_t回调函数。
ctxvoid*回调函数的上下文。

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对象。
wwh_t宽度。
hwh_t高度。
fmtbitmap_format_t离线lcd的格式。一般用 BITMAP_FMT_BGR565 或 BITMAP_FMT_RGBA8888。
on_flushlcd_flush_t回调函数,用于刷新GUI数据到实际的LCD。
on_resizelcd_resize_t用于调整LCD的大小。一般用NULL即可。
on_destroylcd_destroy_tlcd销毁时的回调函数。
ctxvoid*回调函数的上下文。