lv_canvas.h

Defines

LV_CANVAS_BUF_SIZE_TRUE_COLOR(w, h)
LV_CANVAS_BUF_SIZE_TRUE_COLOR_CHROMA_KEYED(w, h)
LV_CANVAS_BUF_SIZE_TRUE_COLOR_ALPHA(w, h)
LV_CANVAS_BUF_SIZE_ALPHA_1BIT(w, h)
LV_CANVAS_BUF_SIZE_ALPHA_2BIT(w, h)
LV_CANVAS_BUF_SIZE_ALPHA_4BIT(w, h)
LV_CANVAS_BUF_SIZE_ALPHA_8BIT(w, h)
LV_CANVAS_BUF_SIZE_INDEXED_1BIT(w, h)
LV_CANVAS_BUF_SIZE_INDEXED_2BIT(w, h)
LV_CANVAS_BUF_SIZE_INDEXED_4BIT(w, h)
LV_CANVAS_BUF_SIZE_INDEXED_8BIT(w, h)

Functions

lv_obj_t *lv_canvas_create(lv_obj_t *parent)

Create a canvas object

Parameters:

parent -- pointer to an object, it will be the parent of the new canvas

Returns:

pointer to the created canvas

void lv_canvas_set_buffer(lv_obj_t *canvas, void *buf, lv_coord_t w, lv_coord_t h, lv_color_format_t cf)

Set a buffer for the canvas.

Parameters:
  • buf -- a buffer where the content of the canvas will be. The required size is (lv_image_color_format_get_px_size(cf) * w) / 8 * h) It can be allocated with lv_malloc() or it can be statically allocated array (e.g. static lv_color_t buf[100*50]) or it can be an address in RAM or external SRAM

  • canvas -- pointer to a canvas object

  • w -- width of the canvas

  • h -- height of the canvas

  • cf -- color format. LV_IMAGE_CF_...

void lv_canvas_set_px(lv_obj_t *obj, lv_coord_t x, lv_coord_t y, lv_color_t color, lv_opa_t opa)
void lv_canvas_set_palette(lv_obj_t *canvas, uint8_t id, lv_color32_t c)

Set the palette color of a canvas with index format. Valid only for LV_IMAGE_CF_INDEXED1/2/4/8

Parameters:
  • canvas -- pointer to canvas object

  • id -- the palette color to set:

    • for LV_IMAGE_CF_INDEXED1: 0..1

    • for LV_IMAGE_CF_INDEXED2: 0..3

    • for LV_IMAGE_CF_INDEXED4: 0..15

    • for LV_IMAGE_CF_INDEXED8: 0..255

  • c -- the color to set

lv_color32_t lv_canvas_get_px(lv_obj_t *obj, lv_coord_t x, lv_coord_t y)
lv_image_dsc_t *lv_canvas_get_image(lv_obj_t *canvas)

Get the image of the canvas as a pointer to an lv_image_dsc_t variable.

Parameters:

canvas -- pointer to a canvas object

Returns:

pointer to the image descriptor.

void lv_canvas_copy_buf(lv_obj_t *canvas, const void *to_copy, lv_coord_t x, lv_coord_t y, lv_coord_t w, lv_coord_t h)

Copy a buffer to the canvas

Parameters:
  • canvas -- pointer to a canvas object

  • to_copy -- buffer to copy. The color format has to match with the canvas's buffer color format

  • x -- left side of the destination position

  • y -- top side of the destination position

  • w -- width of the buffer to copy

  • h -- height of the buffer to copy

void lv_canvas_fill_bg(lv_obj_t *obj, lv_color_t color, lv_opa_t opa)

Fill the canvas with color

Parameters:
  • canvas -- pointer to a canvas

  • color -- the background color

  • opa -- the desired opacity

void lv_canvas_init_layer(lv_obj_t *canvas, lv_layer_t *layer)
void lv_canvas_finish_layer(lv_obj_t *canvas, lv_layer_t *layer)

Variables

const lv_obj_class_t lv_canvas_class
struct lv_canvas_t

Public Members

lv_image_t img
lv_image_dsc_t dsc