From: Florian Forster Date: Fri, 2 Jul 2010 18:27:17 +0000 (+0200) Subject: src/common.[ch]: Implement "fade_color". X-Git-Tag: v4.0.0~165 X-Git-Url: https://git.verplant.org/?a=commitdiff_plain;h=b8b8d15d228be65ae62db08e4163d34e958e7766;p=collection4.git src/common.[ch]: Implement "fade_color". --- diff --git a/src/common.c b/src/common.c index d6047c4..0df85eb 100644 --- a/src/common.c +++ b/src/common.c @@ -159,6 +159,23 @@ static uint32_t rgb_to_uint32 (double *rgb) /* {{{ */ | ((uint32_t) b)); } /* }}} uint32_t rgb_to_uint32 */ +static int uint32_to_rgb (uint32_t color, double *rgb) +{ + uint8_t r; + uint8_t g; + uint8_t b; + + r = (uint8_t) ((color >> 16) & 0x00ff); + g = (uint8_t) ((color >> 8) & 0x00ff); + b = (uint8_t) ((color >> 0) & 0x00ff); + + rgb[0] = ((double) r) / 255.0; + rgb[1] = ((double) g) / 255.0; + rgb[2] = ((double) b) / 255.0; + + return (0); +} /* }}} int uint32_to_rgb */ + uint32_t get_random_color (void) /* {{{ */ { double hsv[3] = { 0.0, 1.0, 1.0 }; @@ -171,6 +188,18 @@ uint32_t get_random_color (void) /* {{{ */ return (rgb_to_uint32 (rgb)); } /* }}} uint32_t get_random_color */ +uint32_t fade_color (uint32_t color) /* {{{ */ +{ + double rgb[3]; + + uint32_to_rgb (color, rgb); + rgb[0] = 1.0 - ((1.0 - rgb[0]) * 0.1); + rgb[1] = 1.0 - ((1.0 - rgb[1]) * 0.1); + rgb[2] = 1.0 - ((1.0 - rgb[2]) * 0.1); + + return (rgb_to_uint32 (rgb)); +} /* }}} uint32_t fade_color */ + int print_debug (const char *format, ...) /* {{{ */ { static _Bool have_header = 0; diff --git a/src/common.h b/src/common.h index ad589e7..e08c455 100644 --- a/src/common.h +++ b/src/common.h @@ -19,6 +19,7 @@ int ds_list_from_rrd_file (char *file, size_t *ret_dses_num, char ***ret_dses); uint32_t get_random_color (void); +uint32_t fade_color (uint32_t color); char *strtolower (char *str); char *strtolower_copy (const char *str);