#include "../../lv_examples.h" #if LV_USE_CANVAS && LV_BUILD_EXAMPLES #define CANVAS_WIDTH 150 #define CANVAS_HEIGHT 150 /** * Draw a triangle to the canvas */ void lv_example_canvas_9(void) { /*Create a buffer for the canvas*/ LV_DRAW_BUF_DEFINE_STATIC(draw_buf, CANVAS_WIDTH, CANVAS_HEIGHT, LV_COLOR_FORMAT_ARGB8888); LV_DRAW_BUF_INIT_STATIC(draw_buf); /*Create a canvas and initialize its palette*/ lv_obj_t * canvas = lv_canvas_create(lv_screen_active()); lv_canvas_set_draw_buf(canvas, &draw_buf); lv_canvas_fill_bg(canvas, lv_color_hex3(0xccc), LV_OPA_COVER); lv_obj_center(canvas); lv_layer_t layer; lv_canvas_init_layer(canvas, &layer); lv_draw_triangle_dsc_t tri_dsc; lv_draw_triangle_dsc_init(&tri_dsc); tri_dsc.p[0].x = 10; tri_dsc.p[0].y = 10; tri_dsc.p[1].x = 100; tri_dsc.p[1].y = 30; tri_dsc.p[2].x = 50; tri_dsc.p[2].y = 100; tri_dsc.grad.stops_count = 2; tri_dsc.grad.dir = LV_GRAD_DIR_VER; tri_dsc.grad.stops[0].color = lv_color_hex(0xff0000); tri_dsc.grad.stops[0].frac = 64; /*Start at 25%*/ tri_dsc.grad.stops[0].opa = LV_OPA_COVER; tri_dsc.grad.stops[1].color = lv_color_hex(0x0000ff); tri_dsc.grad.stops[1].opa = LV_OPA_TRANSP; tri_dsc.grad.stops[1].frac = 3 * 64; /*End at 75%*/ tri_dsc.opa = 128; /*Set the overall opacity to 50%*/ lv_draw_triangle(&layer, &tri_dsc); lv_canvas_finish_layer(canvas, &layer); } #endif