lv_canvas.h
Defines
-
LV_CANVAS_BUF_SIZE(w, h, bpp, stride)
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 *obj, void *buf, int32_t w, int32_t h, lv_color_format_t cf)
Set a buffer for the canvas. Use
lv_canvas_set_draw_buf
instead if you need to set a buffer with alignment requirement.- 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 SRAMcanvas -- pointer to a canvas object
w -- width of the canvas
h -- height of the canvas
cf -- color format.
LV_COLOR_FORMAT...
-
void lv_canvas_set_draw_buf(lv_obj_t *obj, lv_draw_buf_t *draw_buf)
Set a draw buffer for the canvas. A draw buffer either can be allocated by
lv_draw_buf_create()
or defined statically byLV_DRAW_BUF_DEFINE
. When buffer start address and stride has alignment requirement, it's recommended to uselv_draw_buf_create
.- Parameters:
obj -- pointer to a canvas object
draw_buf -- pointer to a draw buffer
-
void lv_canvas_set_px(lv_obj_t *obj, int32_t x, int32_t y, lv_color_t color, lv_opa_t opa)
Set a pixel's color and opacity
Note
The following color formats are supported LV_COLOR_FORMAT_I1/2/4/8, LV_COLOR_FORMAT_A8, LV_COLOR_FORMAT_RGB565, LV_COLOR_FORMAT_RGB888, LV_COLOR_FORMAT_XRGB8888, LV_COLOR_FORMAT_ARGB8888
- Parameters:
obj -- pointer to a canvas
x -- X coordinate of the pixel
y -- Y coordinate of the pixel
color -- the color
opa -- the opacity
-
void lv_canvas_set_palette(lv_obj_t *canvas, uint8_t id, lv_color32_t c)
Set the palette color of a canvas for index format. Valid only for
LV_COLOR_FORMAT_I1/2/4/8
- Parameters:
canvas -- pointer to canvas object
id -- the palette color to set:
for
LV_COLOR_FORMAT_I1
: 0..1for
LV_COLOR_FORMAT_I2
: 0..3for
LV_COLOR_FORMAT_I4
: 0..15for
LV_COLOR_FORMAT_I8
: 0..255
c -- the color to set
-
lv_draw_buf_t *lv_canvas_get_draw_buf(lv_obj_t *obj)
-
lv_color32_t lv_canvas_get_px(lv_obj_t *obj, int32_t x, int32_t y)
Get a pixel's color and opacity
- Parameters:
obj -- pointer to a canvas
x -- X coordinate of the pixel
y -- Y coordinate of the pixel
- Returns:
ARGB8888 color of the pixel
-
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.
-
const void *lv_canvas_get_buf(lv_obj_t *canvas)
Return the pointer for the buffer. It's recommended to use this function instead of the buffer form the return value of lv_canvas_get_image() as is can be aligned
- Parameters:
canvas -- pointer to a canvas object
- Returns:
pointer to the buffer
-
void lv_canvas_copy_buf(lv_obj_t *obj, const lv_area_t *canvas_area, lv_draw_buf_t *dest_buf, const lv_area_t *dest_area)
Copy a buffer to the canvas
- Parameters:
canvas -- pointer to a canvas object
canvas_area -- the area of the canvas to copy
dest_buf -- pointer to a buffer to store the copied data
dest_area -- the area of the destination buffer to copy to. If omitted NULL, copy to the whole
dest_buf
-
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)
Initialize a layer to use LVGL's generic draw functions (lv_draw_rect/label/...) on the canvas. Needs to be usd in pair with
lv_canvas_finish_layer
.- Parameters:
canvas -- pointer to a canvas
layer -- pointer to a layer variable to initialize
-
void lv_canvas_finish_layer(lv_obj_t *canvas, lv_layer_t *layer)
Wait until all the drawings are finished on layer. Needs to be usd in pair with
lv_canvas_init_layer
.- Parameters:
canvas -- pointer to a canvas
layer -- pointer to a layer to finalize
-
static inline uint32_t lv_canvas_buf_size(int32_t w, int32_t h, uint8_t bpp, uint8_t stride)
Just a wrapper to
LV_CANVAS_BUF_SIZE
for bindings.
Variables
-
const lv_obj_class_t lv_canvas_class
-
struct lv_canvas_t