feat(draw): add img_header to lv_draw_img_dsc_t and init. it in lv_draw_img

This way all image data will be avaialbel for the draw_units to decide if they are interested in an image or not
This commit is contained in:
Gabor Kiss-Vamosi
2023-08-30 14:44:32 +02:00
parent a3013d490b
commit 19c9afb57a
2 changed files with 15 additions and 4 deletions
+13 -4
View File
@@ -73,11 +73,20 @@ void lv_draw_img(lv_layer_t * layer, const lv_draw_img_dsc_t * dsc, const lv_are
}
if(dsc->opa <= LV_OPA_MIN) return;
LV_PROFILER_BEGIN;
lv_draw_task_t * t = lv_draw_add_task(layer, coords);
t->draw_dsc = lv_malloc(sizeof(*dsc));
lv_memcpy(t->draw_dsc, dsc, sizeof(*dsc));
LV_PROFILER_BEGIN;
lv_draw_img_dsc_t * new_img_dsc = lv_malloc(sizeof(*dsc));
lv_memcpy(new_img_dsc, dsc, sizeof(*dsc));
lv_res_t res = lv_img_decoder_get_info(new_img_dsc->src, &new_img_dsc->header);
if(res != LV_RES_OK) {
LV_LOG_WARN("Couldn't get info about the image");
lv_free(new_img_dsc);
return;
}
lv_draw_task_t * t = lv_draw_add_task(layer, coords);
t->draw_dsc = new_img_dsc;
t->type = LV_DRAW_TASK_TYPE_IMAGE;
lv_draw_finalize_task_creation(layer, t);
+2
View File
@@ -40,6 +40,8 @@ typedef struct _lv_draw_img_dsc_t {
lv_draw_dsc_base_t base;
const void * src;
lv_img_header_t header;
lv_coord_t angle;
lv_coord_t zoom;