awtk/docs/manual/lcd_t.md
2018-12-26 15:51:37 +08:00

18 KiB
Raw Blame History

lcd_t

概述

显示设备抽象基类。

函数

函数名称 说明
lcd_begin_frame 准备绘制。
lcd_draw_glyph 绘制字符。如果实现了measure_text/draw_text则不需要实现本函数。
lcd_draw_hline 绘制一条水平线。
lcd_draw_image 绘制图片。
lcd_draw_image_matrix 绘制图片。
lcd_draw_points 绘制一组点。
lcd_draw_text 绘制字符。
lcd_draw_vline 绘制一条垂直线。
lcd_end_frame 完成绘制,同步到显示设备。
lcd_fill_rect 绘制实心矩形。
lcd_get_clip_rect 获取裁剪区域。
lcd_get_point_color_t 获取指定点的颜色对于基于非FrameBuffer的LCD返回当前的fill_color。
lcd_get_vgcanvas 获取矢量图canvas。
lcd_is_swappable 判读lcd是否支持swap。
lcd_measure_text 测量字符串占用的宽度。
lcd_resize 基于SDL的PC软件在SDL窗口resize时需要调用本函数resize lcd。
lcd_set_clip_rect 设置裁剪区域。
lcd_set_fill_color 设置填充颜色。
lcd_set_font_name 设置字体名称。
lcd_set_font_size 设置字体大小。
lcd_set_global_alpha 设置全局alpha。
lcd_set_stroke_color 设置线条颜色。
lcd_set_text_color 设置文本颜色。
lcd_stroke_rect 绘制矩形。
lcd_take_snapshot 拍摄快照一般用于窗口动画只有framebuffer模式才支持。

属性

名属性称 类型 说明
draw_mode lcd_draw_mode_t 绘制模式。
fill_color color_t 填充颜色
font_name char* 字体名称。
font_size uint32_t 字体大小。
global_alpha uint8_t 全局alpha
height wh_t 屏幕的高度
ratio float_t 屏幕密度。
stroke_color color_t 线条颜色
support_dirty_rect bool_t 是否支持脏矩形。
text_color color_t 文本颜色
type lcd_type_t LCD的类型。
w wh_t 屏幕的宽度

lcd_begin_frame 函数


  • 函数功能:

准备绘制。

  • 函数原型:
ret_t lcd_begin_frame (lcd_t* lcd, rect_t* dirty_rect, bool_t anim_mode);
  • 参数说明:
参数 类型 说明
返回值 ret_t 返回RET_OK表示成功否则表示失败。
lcd lcd_t* lcd对象。
dirty_rect rect_t* 需要绘制的区域。
anim_mode bool_t 动画模式如果可能直接画到显存而不是离线的framebuffer。

lcd_draw_glyph 函数


  • 函数功能:

绘制字符。如果实现了measure_text/draw_text则不需要实现本函数。

  • 函数原型:
ret_t lcd_draw_glyph (lcd_t* lcd, glyph_t* glyph, rect_t* src, xy_t x, xy_t y);
  • 参数说明:
参数 类型 说明
返回值 ret_t 返回RET_OK表示成功否则表示失败。
lcd lcd_t* lcd对象。
glyph glyph_t* 字模
src rect_t* 只绘制指定区域的部分。
x xy_t x坐标。
y xy_t y坐标。

lcd_draw_hline 函数


  • 函数功能:

绘制一条水平线。

  • 函数原型:
ret_t lcd_draw_hline (lcd_t* lcd, xy_t* x, xy_t* y, xy_t* w);
  • 参数说明:
参数 类型 说明
返回值 ret_t 返回RET_OK表示成功否则表示失败。
lcd lcd_t* lcd对象。
x xy_t* x坐标。
y xy_t* y坐标。
w xy_t* 直线宽度。

lcd_draw_image 函数


  • 函数功能:

绘制图片。

  • 函数原型:
ret_t lcd_draw_image (lcd_t* lcd, bitmap_t* img, rect_t* src, rect_t* dst);
  • 参数说明:
参数 类型 说明
返回值 ret_t 返回RET_OK表示成功否则表示失败。
lcd lcd_t* lcd对象。
img bitmap_t* 图片。
src rect_t* 只绘制指定区域的部分。
dst rect_t* 绘制到目标区域。

lcd_draw_image_matrix 函数


  • 函数功能:

绘制图片。

  • 函数原型:
ret_t lcd_draw_image_matrix (lcd_t* lcd, draw_image_info_t* info);
  • 参数说明:
参数 类型 说明
返回值 ret_t 返回RET_OK表示成功否则表示失败。
lcd lcd_t* lcd对象。
info draw_image_info_t* 绘制参数。

lcd_draw_points 函数


  • 函数功能:

绘制一组点。

  • 函数原型:
ret_t lcd_draw_points (lcd_t* lcd, point_t* points, uint32_t nr);
  • 参数说明:
参数 类型 说明
返回值 ret_t 返回RET_OK表示成功否则表示失败。
lcd lcd_t* lcd对象。
points point_t* 要绘制的点集合。
nr uint32_t 点的个数。

lcd_draw_text 函数


  • 函数功能:

绘制字符。

  • 函数原型:
ret_t lcd_draw_text (lcd_t* lcd, wchar_t* str, uint32_t nr, xy_t x, xy_t y);
  • 参数说明:
参数 类型 说明
返回值 ret_t 返回RET_OK表示成功否则表示失败。
lcd lcd_t* lcd对象。
str wchar_t* 字符串。
nr uint32_t 字符数。
x xy_t x坐标。
y xy_t y坐标。

lcd_draw_vline 函数


  • 函数功能:

绘制一条垂直线。

  • 函数原型:
ret_t lcd_draw_vline (lcd_t* lcd, xy_t* x, xy_t* y, xy_t* h);
  • 参数说明:
参数 类型 说明
返回值 ret_t 返回RET_OK表示成功否则表示失败。
lcd lcd_t* lcd对象。
x xy_t* x坐标。
y xy_t* y坐标。
h xy_t* 直线高度。

lcd_end_frame 函数


  • 函数功能:

完成绘制,同步到显示设备。

  • 函数原型:
ret_t lcd_end_frame (lcd_t* lcd);
  • 参数说明:
参数 类型 说明
返回值 ret_t 返回RET_OK表示成功否则表示失败。
lcd lcd_t* lcd对象。

lcd_fill_rect 函数


  • 函数功能:

绘制实心矩形。

  • 函数原型:
ret_t lcd_fill_rect (lcd_t* lcd, xy_t x, xy_t y, wh_t w, wh_t h);
  • 参数说明:
参数 类型 说明
返回值 ret_t 返回RET_OK表示成功否则表示失败。
lcd lcd_t* lcd对象。
x xy_t x坐标。
y xy_t y坐标。
w wh_t 宽度。
h wh_t 高度。

lcd_get_clip_rect 函数


  • 函数功能:

获取裁剪区域。

  • 函数原型:
ret_t lcd_get_clip_rect (lcd_t* lcd, rect_t* rect);
  • 参数说明:
参数 类型 说明
返回值 ret_t 返回RET_OK表示成功否则表示失败。
lcd lcd_t* lcd对象。
rect rect_t* 裁剪区域。

lcd_get_point_color_t 函数


  • 函数功能:

获取指定点的颜色对于基于非FrameBuffer的LCD返回当前的fill_color。

  • 函数原型:
ret_t lcd_get_point_color_t (lcd_t* lcd, xy_t x, xy_t y);
  • 参数说明:
参数 类型 说明
返回值 ret_t 返回RET_OK表示成功否则表示失败。
lcd lcd_t* lcd对象。
x xy_t x坐标。
y xy_t y坐标。

lcd_get_vgcanvas 函数


  • 函数功能:

获取矢量图canvas。

  • 函数原型:
vgcanvas_t* lcd_get_vgcanvas (lcd_t* lcd);
  • 参数说明:
参数 类型 说明
返回值 vgcanvas_t* 返回矢量图canvas。
lcd lcd_t* lcd对象。

lcd_is_swappable 函数


  • 函数功能:

判读lcd是否支持swap。

  • 函数原型:
bool_t lcd_is_swappable (lcd_t* lcd);
  • 参数说明:
参数 类型 说明
返回值 bool_t 返回是否支持swap。
lcd lcd_t* lcd对象。

lcd_measure_text 函数


  • 函数功能:

测量字符串占用的宽度。

  • 函数原型:
float_t lcd_measure_text (lcd_t* lcd, wchar_t* str, uint32_t nr);
  • 参数说明:
参数 类型 说明
返回值 float_t 返回字符串占用的宽度。
lcd lcd_t* lcd对象。
str wchar_t* 字符串。
nr uint32_t 字符数。

lcd_resize 函数


  • 函数功能:

基于SDL的PC软件在SDL窗口resize时需要调用本函数resize lcd。

屏幕旋转时会调用本函数调整LCD的大小。

  • 函数原型:
ret_t lcd_resize (lcd_t* lcd, wh_t w, wh_t h, uint32_t line_length);
  • 参数说明:
参数 类型 说明
返回值 ret_t 返回RET_OK表示成功否则表示失败。
lcd lcd_t* lcd对象。
w wh_t 新的宽度。
h wh_t 新的高度。
line_length uint32_t line_length。

lcd_set_clip_rect 函数


  • 函数功能:

设置裁剪区域。

  • 函数原型:
ret_t lcd_set_clip_rect (lcd_t* lcd, rect_t* rect);
  • 参数说明:
参数 类型 说明
返回值 ret_t 返回RET_OK表示成功否则表示失败。
lcd lcd_t* lcd对象。
rect rect_t* 裁剪区域。

lcd_set_fill_color 函数


  • 函数功能:

设置填充颜色。

  • 函数原型:
ret_t lcd_set_fill_color (lcd_t* lcd, color_t color);
  • 参数说明:
参数 类型 说明
返回值 ret_t 返回RET_OK表示成功否则表示失败。
lcd lcd_t* lcd对象。
color color_t 颜色。

lcd_set_font_name 函数


  • 函数功能:

设置字体名称。

  • 函数原型:
ret_t lcd_set_font_name (lcd_t* lcd, const char* name);
  • 参数说明:
参数 类型 说明
返回值 ret_t 返回RET_OK表示成功否则表示失败。
lcd lcd_t* lcd对象。
name const char* 字体名称。

lcd_set_font_size 函数


  • 函数功能:

设置字体大小。

  • 函数原型:
ret_t lcd_set_font_size (lcd_t* lcd, uint32_t font_size);
  • 参数说明:
参数 类型 说明
返回值 ret_t 返回RET_OK表示成功否则表示失败。
lcd lcd_t* lcd对象。
font_size uint32_t 字体大小。

lcd_set_global_alpha 函数


  • 函数功能:

设置全局alpha。

  • 函数原型:
ret_t lcd_set_global_alpha (lcd_t* lcd, uint8_t alpha);
  • 参数说明:
参数 类型 说明
返回值 ret_t 返回RET_OK表示成功否则表示失败。
lcd lcd_t* lcd对象。
alpha uint8_t 全局alpha。

lcd_set_stroke_color 函数


  • 函数功能:

设置线条颜色。

  • 函数原型:
ret_t lcd_set_stroke_color (lcd_t* lcd, color_t color);
  • 参数说明:
参数 类型 说明
返回值 ret_t 返回RET_OK表示成功否则表示失败。
lcd lcd_t* lcd对象。
color color_t 颜色。

lcd_set_text_color 函数


  • 函数功能:

设置文本颜色。

  • 函数原型:
ret_t lcd_set_text_color (lcd_t* lcd, color_t color);
  • 参数说明:
参数 类型 说明
返回值 ret_t 返回RET_OK表示成功否则表示失败。
lcd lcd_t* lcd对象。
color color_t 颜色。

lcd_stroke_rect 函数


  • 函数功能:

绘制矩形。

  • 函数原型:
ret_t lcd_stroke_rect (lcd_t* lcd, xy_t x, xy_t y, wh_t w, wh_t h);
  • 参数说明:
参数 类型 说明
返回值 ret_t 返回RET_OK表示成功否则表示失败。
lcd lcd_t* lcd对象。
x xy_t x坐标。
y xy_t y坐标。
w wh_t 宽度。
h wh_t 高度。

lcd_take_snapshot 函数


  • 函数功能:

拍摄快照一般用于窗口动画只有framebuffer模式才支持。

  • 函数原型:
ret_t lcd_take_snapshot (lcd_t* lcd, bitmap_t* img, bool_t auto_rotate);
  • 参数说明:
参数 类型 说明
返回值 ret_t 返回RET_OK表示成功否则表示失败。
lcd lcd_t* lcd对象。
img bitmap_t* 返回快照图片。
auto_rotate bool_t 是否根据LCD实际方向自动旋转。

draw_mode 属性


绘制模式。

  • 类型lcd_draw_mode_t
特性 是否支持
可直接读取
可直接修改

fill_color 属性


填充颜色

  • 类型color_t
特性 是否支持
可直接读取
可直接修改

font_name 属性


字体名称。

  • 类型char*
特性 是否支持
可直接读取
可直接修改

font_size 属性


字体大小。

  • 类型uint32_t
特性 是否支持
可直接读取
可直接修改

global_alpha 属性


全局alpha

  • 类型uint8_t
特性 是否支持
可直接读取
可直接修改

height 属性


屏幕的高度

  • 类型wh_t
特性 是否支持
可直接读取
可直接修改

ratio 属性


屏幕密度。

  • 类型float_t
特性 是否支持
可直接读取
可直接修改

stroke_color 属性


线条颜色

  • 类型color_t
特性 是否支持
可直接读取
可直接修改

support_dirty_rect 属性


是否支持脏矩形。

  • 类型bool_t
特性 是否支持
可直接读取
可直接修改

text_color 属性


文本颜色

  • 类型color_t
特性 是否支持
可直接读取
可直接修改

type 属性


LCD的类型。

  • 类型lcd_type_t
特性 是否支持
可直接读取
可直接修改

w 属性


屏幕的宽度

  • 类型wh_t
特性 是否支持
可直接读取
可直接修改