tabs and tab overview
This commit is contained in:
commit
d07c2a5cc9
244 changed files with 72046 additions and 0 deletions
54
hsl.c
Normal file
54
hsl.c
Normal file
|
|
@ -0,0 +1,54 @@
|
|||
#include "hsl.h"
|
||||
|
||||
#include <math.h>
|
||||
|
||||
uint32_t
|
||||
hsl_to_rgb(int hue, int sat, int lum)
|
||||
{
|
||||
double L = lum / 100.0;
|
||||
double S = sat / 100.0;
|
||||
double C = (1. - fabs(2. * L - 1.)) * S;
|
||||
|
||||
double X = C * (1. - fabs(fmod((double)hue / 60., 2.) - 1.));
|
||||
double m = L - C / 2.;
|
||||
|
||||
double r, g, b;
|
||||
if (hue >= 0 && hue <= 60) {
|
||||
r = C;
|
||||
g = X;
|
||||
b = 0.;
|
||||
} else if (hue >= 60 && hue <= 120) {
|
||||
r = X;
|
||||
g = C;
|
||||
b = 0.;
|
||||
} else if (hue >= 120 && hue <= 180) {
|
||||
r = 0.;
|
||||
g = C;
|
||||
b = X;
|
||||
} else if (hue >= 180 && hue <= 240) {
|
||||
r = 0.;
|
||||
g = X;
|
||||
b = C;
|
||||
} else if (hue >= 240 && hue <= 300) {
|
||||
r = X;
|
||||
g = 0.;
|
||||
b = C;
|
||||
} else if (hue >= 300 && hue <= 360) {
|
||||
r = C;
|
||||
g = 0.;
|
||||
b = X;
|
||||
} else {
|
||||
r = 0.;
|
||||
g = 0.;
|
||||
b = 0.;
|
||||
}
|
||||
|
||||
r += m;
|
||||
g += m;
|
||||
b += m;
|
||||
|
||||
return (
|
||||
(uint8_t)round(r * 255.) << 16 |
|
||||
(uint8_t)round(g * 255.) << 8 |
|
||||
(uint8_t)round(b * 255.) << 0);
|
||||
}
|
||||
Loading…
Add table
Add a link
Reference in a new issue