lv_draw_image.h
Typedefs
-
typedef struct _lv_draw_image_dsc_t lv_draw_image_dsc_t
-
typedef void (*lv_draw_image_core_cb)(lv_draw_unit_t *draw_unit, const lv_draw_image_dsc_t *draw_dsc, const lv_image_decoder_dsc_t *decoder_dsc, lv_draw_image_sup_t *sup, const lv_area_t *img_coords, const lv_area_t *clipped_img_area)
PErform the actual rendering of a decoded image
- Param draw_unit:
pointer to a draw unit
- Param draw_dsc:
the draw descriptor of the image
- Param decoder_dsc:
pointer to the decoded image's descriptor
- Param sup:
supplementary data
- Param img_coords:
the absolute coordinates of the image
- Param clipped_img_area:
the absolute clip coordinates
Functions
-
void lv_draw_image_dsc_init(lv_draw_image_dsc_t *dsc)
Initialize an image draw descriptor.
- Parameters:
dsc -- pointer to a draw descriptor
-
lv_draw_image_dsc_t *lv_draw_task_get_image_dsc(lv_draw_task_t *task)
Try to get an image draw descriptor from a draw task.
- Parameters:
task -- draw task
- Returns:
the task's draw descriptor or NULL if the task is not of type LV_DRAW_TASK_TYPE_IMAGE
-
void lv_draw_image(lv_layer_t *layer, const lv_draw_image_dsc_t *dsc, const lv_area_t *coords)
Create an image draw task
- Parameters:
layer -- pointer to a layer
dsc -- pointer to an initialized draw descriptor
coords -- the coordinates of the image
-
void lv_draw_layer(lv_layer_t *layer, const lv_draw_image_dsc_t *dsc, const lv_area_t *coords)
Create a draw task to blend a layer to an other layer
- Parameters:
layer -- pointer to a layer
dsc -- pointer to an initialized draw descriptor
coords -- the coordinates of the layer
-
lv_image_src_t lv_image_src_get_type(const void *src)
Get the type of an image source
- Parameters:
src -- pointer to an image source:
pointer to an 'lv_image_t' variable (image stored internally and compiled into the code)
a path to a file (e.g. "S:/folder/image.bin")
or a symbol (e.g. LV_SYMBOL_CLOSE)
- Returns:
type of the image source LV_IMAGE_SRC_VARIABLE/FILE/SYMBOL/UNKNOWN
-
void _lv_draw_image_normal_helper(lv_draw_unit_t *draw_unit, const lv_draw_image_dsc_t *draw_dsc, const lv_area_t *coords, lv_draw_image_core_cb draw_core_cb)
Can be used by draw units to handle the decoding and prepare everything for the actual image rendering
- Parameters:
draw_unit -- pointer to a draw unit
draw_dsc -- the draw descriptor of the image
coords -- the absolute coordinates of the image
draw_core_cb -- a callback to perform the actual rendering
-
void _lv_draw_image_tiled_helper(lv_draw_unit_t *draw_unit, const lv_draw_image_dsc_t *draw_dsc, const lv_area_t *coords, lv_draw_image_core_cb draw_core_cb)
Can be used by draw units for TILED images to handle the decoding and prepare everything for the actual image rendering
- Parameters:
draw_unit -- pointer to a draw unit
draw_dsc -- the draw descriptor of the image
coords -- the absolute coordinates of the image
draw_core_cb -- a callback to perform the actual rendering
-
void _lv_image_buf_get_transformed_area(lv_area_t *res, int32_t w, int32_t h, int32_t angle, uint16_t scale_x, uint16_t scale_y, const lv_point_t *pivot)
Get the area of a rectangle if its rotated and scaled
- Parameters:
res -- store the coordinates here
w -- width of the rectangle to transform
h -- height of the rectangle to transform
angle -- angle of rotation
scale_x -- zoom in x direction, (256 no zoom)
scale_y -- zoom in y direction, (256 no zoom)
pivot -- x,y pivot coordinates of rotation
-
struct lv_draw_image_sup_t
-
struct _lv_draw_image_dsc_t
Public Members
-
lv_draw_dsc_base_t base
-
const void *src
-
lv_image_header_t header
-
int32_t rotation
-
int32_t scale_x
-
int32_t scale_y
-
int32_t skew_x
-
int32_t skew_y
-
lv_point_t pivot
-
lv_color_t recolor
-
lv_blend_mode_t blend_mode
-
uint16_t antialias
-
uint16_t tile
-
lv_draw_image_sup_t *sup
-
lv_area_t original_area
Might be used to indicate the original size of the image if only a small portion is rendered now. Used when a part of a layer is rendered to show the total layer size
-
const lv_image_dsc_t *bitmap_mask_src
-
lv_draw_dsc_base_t base