diff options
Diffstat (limited to 'quantum/color.c')
-rw-r--r-- | quantum/color.c | 9 |
1 files changed, 5 insertions, 4 deletions
diff --git a/quantum/color.c b/quantum/color.c index c49877592..466e6edac 100644 --- a/quantum/color.c +++ b/quantum/color.c | |||
@@ -22,8 +22,8 @@ | |||
22 | RGB hsv_to_rgb( HSV hsv ) | 22 | RGB hsv_to_rgb( HSV hsv ) |
23 | { | 23 | { |
24 | RGB rgb; | 24 | RGB rgb; |
25 | uint8_t region, p, q, t; | 25 | uint8_t region, remainder, p, q, t; |
26 | uint16_t h, s, v, remainder; | 26 | uint16_t h, s, v; |
27 | 27 | ||
28 | if ( hsv.s == 0 ) | 28 | if ( hsv.s == 0 ) |
29 | { | 29 | { |
@@ -37,8 +37,8 @@ RGB hsv_to_rgb( HSV hsv ) | |||
37 | s = hsv.s; | 37 | s = hsv.s; |
38 | v = hsv.v; | 38 | v = hsv.v; |
39 | 39 | ||
40 | region = h / 43; | 40 | region = h * 6 / 255; |
41 | remainder = (h - (region * 43)) * 6; | 41 | remainder = (h * 2 - region * 85) * 3; |
42 | 42 | ||
43 | p = (v * (255 - s)) >> 8; | 43 | p = (v * (255 - s)) >> 8; |
44 | q = (v * (255 - ((s * remainder) >> 8))) >> 8; | 44 | q = (v * (255 - ((s * remainder) >> 8))) >> 8; |
@@ -46,6 +46,7 @@ RGB hsv_to_rgb( HSV hsv ) | |||
46 | 46 | ||
47 | switch ( region ) | 47 | switch ( region ) |
48 | { | 48 | { |
49 | case 6: | ||
49 | case 0: | 50 | case 0: |
50 | rgb.r = v; | 51 | rgb.r = v; |
51 | rgb.g = t; | 52 | rgb.g = t; |