基本函数的解析
lv_snapshot_take
函数原型:
lv_draw_buf_t * lv_snapshot_take(lv_obj_t * obj, lv_color_format_t cf)
1.该函数会先创建一个buffer,用于存储截图(lv_snapshot_draw_buf_create)
2.然后通过obj,获取信息,开始截图(lv_snapshot_take_to_buf)
lv_snapshot_draw_buf_create
函数原型:lv_draw_buf_t * lv_snapshot_draw_buf_create(lv_obj_t * obj, lv_color_format_t cf)
该函数会调用lv_draw_buf_create,根据obj的尺寸创建draw_buf
lv_snapshot_take_to_buf
函数原型:
lv_snapshot_take_to_buf(lv_obj_t * obj, lv_color_format_t cf, lv_draw_buf_t * draw_buf)
函数的第一个参数是一个指向 `lv_obj_t` 对象的指针,表示要截取快照的对象。
第二个参数是一个枚举类型 `lv_color_format_t`,表示要使用的颜色格式。
第三个参数是一个指向 `lv_draw_buf_t` 结构体的指针,表示要将快照保存到哪个缓冲区中。
这个地方会对layer的draw buffer 进行赋值。最后调用lv_obj_redraw(&layer, obj)进行绘制,将obj绘制到layer的draw_buffer 中。