X-Git-Url: https://git.donarmstrong.com/?a=blobdiff_plain;f=quantum%2Fcolor.c;h=a309da379a41cbefbb1e077a71fa8b1347e69bbd;hb=6af77551c67c846b06c596cbd367d66c755f8051;hp=c49877592eceb255b82cbac6fd77aef7f26c4d1c;hpb=908966bdf36605301d27cdcae82c3201c156a43f;p=qmk_firmware.git diff --git a/quantum/color.c b/quantum/color.c index c49877592..a309da379 100644 --- a/quantum/color.c +++ b/quantum/color.c @@ -22,14 +22,18 @@ RGB hsv_to_rgb( HSV hsv ) { RGB rgb; - uint8_t region, p, q, t; - uint16_t h, s, v, remainder; + uint8_t region, remainder, p, q, t; + uint16_t h, s, v; if ( hsv.s == 0 ) { +#ifdef USE_CIE1931_CURVE + rgb.r = rgb.g = rgb.b = pgm_read_byte( &CIE1931_CURVE[hsv.v] ); +#else rgb.r = hsv.v; rgb.g = hsv.v; rgb.b = hsv.v; +#endif return rgb; } @@ -37,8 +41,8 @@ RGB hsv_to_rgb( HSV hsv ) s = hsv.s; v = hsv.v; - region = h / 43; - remainder = (h - (region * 43)) * 6; + region = h * 6 / 255; + remainder = (h * 2 - region * 85) * 3; p = (v * (255 - s)) >> 8; q = (v * (255 - ((s * remainder) >> 8))) >> 8; @@ -46,6 +50,7 @@ RGB hsv_to_rgb( HSV hsv ) switch ( region ) { + case 6: case 0: rgb.r = v; rgb.g = t;