acid-drop

- Hacking the planet from a LilyGo T-Deck using custom firmware
git clone git://git.acid.vegas/acid-drop.git
Log | Files | Refs | Archive | README | LICENSE

lv_example_canvas_2.c (1295B)

      1 #include "../../lv_examples.h"
      2 #if LV_USE_CANVAS && LV_BUILD_EXAMPLES
      3 
      4 #define CANVAS_WIDTH  50
      5 #define CANVAS_HEIGHT  50
      6 
      7 /**
      8  * Create a transparent canvas with Chroma keying and indexed color format (palette).
      9  */
     10 void lv_example_canvas_2(void)
     11 {
     12     /*Create a button to better see the transparency*/
     13     lv_btn_create(lv_scr_act());
     14 
     15     /*Create a buffer for the canvas*/
     16     static lv_color_t cbuf[LV_CANVAS_BUF_SIZE_INDEXED_1BIT(CANVAS_WIDTH, CANVAS_HEIGHT)];
     17 
     18     /*Create a canvas and initialize its palette*/
     19     lv_obj_t * canvas = lv_canvas_create(lv_scr_act());
     20     lv_canvas_set_buffer(canvas, cbuf, CANVAS_WIDTH, CANVAS_HEIGHT, LV_IMG_CF_INDEXED_1BIT);
     21     lv_canvas_set_palette(canvas, 0, LV_COLOR_CHROMA_KEY);
     22     lv_canvas_set_palette(canvas, 1, lv_palette_main(LV_PALETTE_RED));
     23 
     24     /*Create colors with the indices of the palette*/
     25     lv_color_t c0;
     26     lv_color_t c1;
     27 
     28     c0.full = 0;
     29     c1.full = 1;
     30 
     31     /*Red background (There is no dedicated alpha channel in indexed images so LV_OPA_COVER is ignored)*/
     32     lv_canvas_fill_bg(canvas, c1, LV_OPA_COVER);
     33 
     34     /*Create hole on the canvas*/
     35     uint32_t x;
     36     uint32_t y;
     37     for(y = 10; y < 30; y++) {
     38         for(x = 5; x < 20; x++) {
     39             lv_canvas_set_px_color(canvas, x, y, c0);
     40         }
     41     }
     42 
     43 }
     44 #endif