52 lines
1.4 KiB
C
Executable File
52 lines
1.4 KiB
C
Executable File
#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
|