1 /** 2 * @file lv_color.c 3 * 4 */ 5 6 /********************* 7 * INCLUDES 8 *********************/ 9 #include "lv_color_op_private.h" 10 #include "lv_log.h" 11 12 /********************* 13 * DEFINES 14 *********************/ 15 16 /********************** 17 * TYPEDEFS 18 **********************/ 19 20 /********************** 21 * STATIC PROTOTYPES 22 **********************/ 23 24 /********************** 25 * STATIC VARIABLES 26 **********************/ 27 28 /********************** 29 * MACROS 30 **********************/ 31 32 /********************** 33 * GLOBAL FUNCTIONS 34 **********************/ 35 lv_color_mix(lv_color_t c1,lv_color_t c2,uint8_t mix)36lv_color_t LV_ATTRIBUTE_FAST_MEM lv_color_mix(lv_color_t c1, lv_color_t c2, uint8_t mix) 37 { 38 lv_color_t ret; 39 40 ret.red = LV_UDIV255((uint16_t)c1.red * mix + c2.red * (255 - mix) + LV_COLOR_MIX_ROUND_OFS); 41 ret.green = LV_UDIV255((uint16_t)c1.green * mix + c2.green * (255 - mix) + LV_COLOR_MIX_ROUND_OFS); 42 ret.blue = LV_UDIV255((uint16_t)c1.blue * mix + c2.blue * (255 - mix) + LV_COLOR_MIX_ROUND_OFS); 43 return ret; 44 } 45 lv_color_mix32(lv_color32_t fg,lv_color32_t bg)46lv_color32_t lv_color_mix32(lv_color32_t fg, lv_color32_t bg) 47 { 48 if(fg.alpha >= LV_OPA_MAX) { 49 fg.alpha = bg.alpha; 50 return fg; 51 } 52 if(fg.alpha <= LV_OPA_MIN) { 53 return bg; 54 } 55 bg.red = (uint32_t)((uint32_t)fg.red * fg.alpha + (uint32_t)bg.red * (255 - fg.alpha)) >> 8; 56 bg.green = (uint32_t)((uint32_t)fg.green * fg.alpha + (uint32_t)bg.green * (255 - fg.alpha)) >> 8; 57 bg.blue = (uint32_t)((uint32_t)fg.blue * fg.alpha + (uint32_t)bg.blue * (255 - fg.alpha)) >> 8; 58 return bg; 59 } 60 lv_color_brightness(lv_color_t c)61uint8_t lv_color_brightness(lv_color_t c) 62 { 63 uint16_t bright = (uint16_t)(3u * c.red + c.green + 4u * c.blue); 64 return (uint8_t)(bright >> 3); 65 } 66 lv_color_filter_dsc_init(lv_color_filter_dsc_t * dsc,lv_color_filter_cb_t cb)67void lv_color_filter_dsc_init(lv_color_filter_dsc_t * dsc, lv_color_filter_cb_t cb) 68 { 69 dsc->filter_cb = cb; 70 } 71 72 /********************** 73 * STATIC FUNCTIONS 74 **********************/ 75