lv_obj_draw.h

Enums

enum lv_layer_type_t

Store the type of layer required to render a widget.

Values:

enumerator LV_LAYER_TYPE_NONE

No layer is needed.

enumerator LV_LAYER_TYPE_SIMPLE

Simple layer means that the layer can be rendered in chunks. For example with opa_layered = 140 it's possible to render only 10 lines from the layer. When it's ready go the the next 10 lines. It avoids large memory allocations for the layer buffer. The buffer size for a chunk can be set by LV_DRAW_LAYER_SIMPLE_BUF_SIZE in lv_conf.h.

enumerator LV_LAYER_TYPE_TRANSFORM

The widget is transformed and cannot be rendered in chunks. It's because - due to the transformations - pixel outside of a given area will also contribute to the final image. In this case there is no limitation on the buffer size. LVGL will allocate as large buffer as needed to render the transformed area.

Functions

void lv_obj_init_draw_rect_dsc(lv_obj_t *obj, lv_part_t part, lv_draw_rect_dsc_t *draw_dsc)

Initialize a rectangle draw descriptor from an object's styles in its current state

Note

Only the relevant fields will be set. E.g. if border width == 0 the other border properties won't be evaluated.

Parameters:
  • obj – pointer to an object

  • part – part of the object, e.g. LV_PART_MAIN, LV_PART_SCROLLBAR, LV_PART_KNOB, etc

  • draw_dsc – the descriptor to initialize. If an ..._opa field is set to LV_OPA_TRANSP the related properties won't be initialized. Should be initialized with lv_draw_rect_dsc_init(draw_dsc).

void lv_obj_init_draw_label_dsc(lv_obj_t *obj, lv_part_t part, lv_draw_label_dsc_t *draw_dsc)

Initialize a label draw descriptor from an object's styles in its current state

Parameters:
  • obj – pointer to an object

  • part – part of the object, e.g. LV_PART_MAIN, LV_PART_SCROLLBAR, LV_PART_KNOB, etc

  • draw_dsc – the descriptor to initialize. If the opa field is set to or the property is equal to LV_OPA_TRANSP the rest won't be initialized. Should be initialized with lv_draw_label_dsc_init(draw_dsc).

void lv_obj_init_draw_image_dsc(lv_obj_t *obj, lv_part_t part, lv_draw_image_dsc_t *draw_dsc)

Initialize an image draw descriptor from an object's styles in its current state

Parameters:
  • obj – pointer to an object

  • part – part of the object, e.g. LV_PART_MAIN, LV_PART_SCROLLBAR, LV_PART_KNOB, etc

  • draw_dsc – the descriptor to initialize. Should be initialized with lv_draw_image_dsc_init(draw_dsc).

void lv_obj_init_draw_line_dsc(lv_obj_t *obj, lv_part_t part, lv_draw_line_dsc_t *draw_dsc)

Initialize a line draw descriptor from an object's styles in its current state

Parameters:
  • obj – pointer to an object

  • part – part of the object, e.g. LV_PART_MAIN, LV_PART_SCROLLBAR, LV_PART_KNOB, etc

  • draw_dsc – the descriptor to initialize. Should be initialized with lv_draw_line_dsc_init(draw_dsc).

void lv_obj_init_draw_arc_dsc(lv_obj_t *obj, lv_part_t part, lv_draw_arc_dsc_t *draw_dsc)

Initialize an arc draw descriptor from an object's styles in its current state

Parameters:
  • obj – pointer to an object

  • part – part of the object, e.g. LV_PART_MAIN, LV_PART_SCROLLBAR, LV_PART_KNOB, etc

  • draw_dsc – the descriptor to initialize. Should be initialized with lv_draw_arc_dsc_init(draw_dsc).

int32_t lv_obj_calculate_ext_draw_size(lv_obj_t *obj, lv_part_t part)

Get the required extra size (around the object's part) to draw shadow, outline, value etc.

Parameters:
  • obj – pointer to an object

  • part – part of the object

Returns:

the extra size required around the object

void lv_obj_refresh_ext_draw_size(lv_obj_t *obj)

Send a 'LV_EVENT_REFR_EXT_DRAW_SIZE' Call the ancestor's event handler to the object to refresh the value of the extended draw size. The result will be saved in obj.

Parameters:

obj – pointer to an object