arch(draw): allow replacing the draw engine
BREAKING CHANGE: the API of lv_draw_... function have been changed
This commit is contained in:
@@ -1280,13 +1280,13 @@ static void slider_event_cb(lv_event_t * e)
|
||||
lv_draw_rect_dsc_init(&rect_dsc);
|
||||
rect_dsc.bg_color = lv_palette_darken(LV_PALETTE_GREY, 3);
|
||||
rect_dsc.radius = LV_DPX(5);
|
||||
lv_draw_rect(&bg_area, dsc->clip_area, &rect_dsc);
|
||||
lv_draw_rect(dsc->draw_ctx, &rect_dsc, &bg_area);
|
||||
|
||||
lv_draw_label_dsc_t label_dsc;
|
||||
lv_draw_label_dsc_init(&label_dsc);
|
||||
label_dsc.color = lv_color_white();
|
||||
label_dsc.font = font_normal;
|
||||
lv_draw_label(&txt_area, dsc->clip_area, &label_dsc, buf, NULL);
|
||||
lv_draw_label(dsc->draw_ctx, &label_dsc, &txt_area, buf, NULL);
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -1334,15 +1334,16 @@ static void chart_event_cb(lv_event_t * e)
|
||||
draw_rect_dsc.bg_color = dsc->line_dsc->color;
|
||||
|
||||
lv_area_t obj_clip_area;
|
||||
_lv_area_intersect(&obj_clip_area, dsc->clip_area, &obj->coords);
|
||||
|
||||
_lv_area_intersect(&obj_clip_area, dsc->draw_ctx->clip_area, &obj->coords);
|
||||
const lv_area_t * clip_area_ori = dsc->draw_ctx->clip_area;
|
||||
dsc->draw_ctx->clip_area = &obj_clip_area;
|
||||
lv_area_t a;
|
||||
a.x1 = dsc->p1->x;
|
||||
a.x2 = dsc->p2->x - 1;
|
||||
a.y1 = LV_MIN(dsc->p1->y, dsc->p2->y);
|
||||
a.y2 = obj->coords.y2;
|
||||
lv_draw_rect(&a, &obj_clip_area, &draw_rect_dsc);
|
||||
|
||||
lv_draw_rect(dsc->draw_ctx, &draw_rect_dsc, &a);
|
||||
dsc->draw_ctx->clip_area = clip_area_ori;
|
||||
/*Remove the masks*/
|
||||
lv_draw_mask_remove_id(line_mask_id);
|
||||
lv_draw_mask_remove_id(fade_mask_id);
|
||||
@@ -1396,13 +1397,13 @@ static void chart_event_cb(lv_event_t * e)
|
||||
lv_draw_rect_dsc_init(&rect_dsc);
|
||||
rect_dsc.bg_color = ser->color;
|
||||
rect_dsc.radius = LV_DPX(5);
|
||||
lv_draw_rect(&bg_area, dsc->clip_area, &rect_dsc);
|
||||
lv_draw_rect(dsc->draw_ctx, &rect_dsc, &bg_area);
|
||||
|
||||
lv_draw_label_dsc_t label_dsc;
|
||||
lv_draw_label_dsc_init(&label_dsc);
|
||||
label_dsc.color = lv_color_white();
|
||||
label_dsc.font = font_normal;
|
||||
lv_draw_label(&txt_area, dsc->clip_area, &label_dsc, buf, NULL);
|
||||
lv_draw_label(dsc->draw_ctx, &label_dsc, &txt_area, buf, NULL);
|
||||
} else {
|
||||
dsc->rect_dsc->outline_width = 0;
|
||||
dsc->rect_dsc->shadow_width = 0;
|
||||
@@ -1447,18 +1448,18 @@ static void shop_chart_event_cb(lv_event_t * e)
|
||||
a.y2 = a.y1 + 4 + (devices[dsc->id] * h) / 100; /*+4 to overlap the radius*/
|
||||
draw_rect_dsc.bg_color = lv_palette_main(LV_PALETTE_RED);
|
||||
draw_rect_dsc.radius = 4;
|
||||
lv_draw_rect(&a, dsc->clip_area, &draw_rect_dsc);
|
||||
lv_draw_rect(dsc->draw_ctx, &draw_rect_dsc, &a);
|
||||
|
||||
a.y1 = a.y2 - 4; /*-4 to overlap the radius*/
|
||||
a.y2 = a.y1 + (clothes[dsc->id] * h) / 100;
|
||||
draw_rect_dsc.bg_color = lv_palette_main(LV_PALETTE_BLUE);
|
||||
draw_rect_dsc.radius = 0;
|
||||
lv_draw_rect(&a, dsc->clip_area, &draw_rect_dsc);
|
||||
lv_draw_rect( dsc->draw_ctx, &draw_rect_dsc, &a);
|
||||
|
||||
a.y1 = a.y2;
|
||||
a.y2 = a.y1 + (services[dsc->id] * h) / 100;
|
||||
draw_rect_dsc.bg_color = lv_palette_main(LV_PALETTE_GREEN);
|
||||
lv_draw_rect(&a, dsc->clip_area, &draw_rect_dsc);
|
||||
lv_draw_rect( dsc->draw_ctx, &draw_rect_dsc, &a);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user