1 /** 2 * @file lv_draw_line.h 3 * 4 */ 5 6 #ifndef LV_DRAW_LINE_H 7 #define LV_DRAW_LINE_H 8 9 #ifdef __cplusplus 10 extern "C" { 11 #endif 12 13 /********************* 14 * INCLUDES 15 *********************/ 16 #include "../lv_conf_internal.h" 17 #include "../misc/lv_color.h" 18 #include "../misc/lv_area.h" 19 #include "../misc/lv_style.h" 20 21 /********************* 22 * DEFINES 23 *********************/ 24 25 /********************** 26 * TYPEDEFS 27 **********************/ 28 typedef struct { 29 lv_color_t color; 30 lv_coord_t width; 31 lv_coord_t dash_width; 32 lv_coord_t dash_gap; 33 lv_opa_t opa; 34 lv_blend_mode_t blend_mode : 2; 35 uint8_t round_start : 1; 36 uint8_t round_end : 1; 37 uint8_t raw_end : 1; /*Do not bother with perpendicular line ending if it's not visible for any reason*/ 38 } lv_draw_line_dsc_t; 39 40 struct _lv_draw_ctx_t; 41 42 /********************** 43 * GLOBAL PROTOTYPES 44 **********************/ 45 46 LV_ATTRIBUTE_FAST_MEM void lv_draw_line_dsc_init(lv_draw_line_dsc_t * dsc); 47 48 /** 49 * Draw a line 50 * @param point1 first point of the line 51 * @param point2 second point of the line 52 * @param clip the line will be drawn only in this area 53 * @param dsc pointer to an initialized `lv_draw_line_dsc_t` variable 54 */ 55 void lv_draw_line(struct _lv_draw_ctx_t * draw_ctx, const lv_draw_line_dsc_t * dsc, const lv_point_t * point1, 56 const lv_point_t * point2); 57 58 59 /********************** 60 * MACROS 61 **********************/ 62 63 #ifdef __cplusplus 64 } /*extern "C"*/ 65 #endif 66 67 #endif /*LV_DRAW_LINE_H*/ 68