From: Paul Davis Date: Thu, 27 Jun 2013 19:51:57 +0000 (-0400) Subject: use HSV to pick random colors and avoid over-saturation or over-brightness X-Git-Tag: 1.0.0~1334 X-Git-Url: https://git.carlh.net/gitweb/?a=commitdiff_plain;h=6618c9e4060da66964bd5707be442ba3f0f156ef;p=ardour.git use HSV to pick random colors and avoid over-saturation or over-brightness --- diff --git a/gtk2_ardour/utils.cc b/gtk2_ardour/utils.cc index cab8b1ff7c..c0fc619f68 100644 --- a/gtk2_ardour/utils.cc +++ b/gtk2_ardour/utils.cc @@ -755,6 +755,13 @@ unique_random_color (list& used_colors) while (1) { + double h, s, v; + + h = fmod (random(), 360.0); + s = (random() % 65535) / 65535.0; + v = (random() % 65535) / 65535.0; + +#if 0 /* avoid neon/glowing tones by limiting them to the "inner section" (paler) of a color wheel/circle. */ @@ -764,7 +771,11 @@ unique_random_color (list& used_colors) newcolor.set_red (random() % max_saturation); newcolor.set_blue (random() % max_saturation); newcolor.set_green (random() % max_saturation); - +#else + s = min (0.5, s); /* not too saturated */ + v = max (0.9, v); /* not too bright */ + newcolor.set_hsv (h, s, v); +#endif if (used_colors.size() == 0) { used_colors.push_back (newcolor); return newcolor;