diff options
author | June McEnroe <june@causal.agency> | 2018-03-31 00:16:32 -0400 |
---|---|---|
committer | June McEnroe <june@causal.agency> | 2018-03-31 00:16:32 -0400 |
commit | bac0e55efcf9692f2bcb49e8eee00617926361aa (patch) | |
tree | b5d975e42a959758d59e3885c3b00b3139783e27 /bin/gfx | |
parent | Switch to HSV for gfxx palette generation (diff) | |
download | src-bac0e55efcf9692f2bcb49e8eee00617926361aa.tar.gz src-bac0e55efcf9692f2bcb49e8eee00617926361aa.zip |
Simplify gfxx palette generation
Diffstat (limited to '')
-rw-r--r-- | bin/gfxx.c | 20 |
1 files changed, 9 insertions, 11 deletions
diff --git a/bin/gfxx.c b/bin/gfxx.c index 5c2c70b9..5a1ccf8b 100644 --- a/bin/gfxx.c +++ b/bin/gfxx.c @@ -117,17 +117,15 @@ int init(int argc, char *argv[]) { fclose(file); } else { for (int i = 0; i < 256; ++i) { - double h = i * 360.0 / 256.0 / 60.0, s = 1.0, v = 1.0; - double c = v * s; - double x = c * (1.0 - fabs(fmod(h, 2.0) - 1.0)); - double r = v - c, g = v - c, b = v - c; - if (h <= 1.0) { r += c; g += x; } - else if (h <= 2.0) { r += x; g += c; } - else if (h <= 3.0) { g += c; b += x; } - else if (h <= 4.0) { g += x; b += c; } - else if (h <= 5.0) { r += x; b += c; } - else if (h <= 6.0) { r += c; b += x; } - r *= 255.0; g *= 255.0; b *= 255.0; + double h = i / 256.0 * 6.0; + double x = 1.0 - fabs(fmod(h, 2.0) - 1.0); + double r = 255.0, g = 255.0, b = 255.0; + if (h <= 1.0) { g *= x; b = 0.0; } + else if (h <= 2.0) { r *= x; b = 0.0; } + else if (h <= 3.0) { r = 0.0; b *= x; } + else if (h <= 4.0) { r = 0.0; g *= x; } + else if (h <= 5.0) { r *= x; g = 0.0; } + else if (h <= 6.0) { g = 0.0; b *= x; } palette[i] = (uint32_t)r << 16 | (uint32_t)g << 8 | (uint32_t)b; } } |