Rewrite true color demo
This commit is contained in:
parent
8328e3bbb6
commit
204585283c
55
progress.cpp
55
progress.cpp
@ -2,6 +2,7 @@
|
|||||||
#include <ctime>
|
#include <ctime>
|
||||||
#include <cstdlib>
|
#include <cstdlib>
|
||||||
#include <libscterm.hpp>
|
#include <libscterm.hpp>
|
||||||
|
#include <libscscreensaver.hpp>
|
||||||
|
|
||||||
void show_rows_cols(const sc::term& t) {
|
void show_rows_cols(const sc::term& t) {
|
||||||
std::cout << t.rows() << " rows, " << t.cols() << " cols\n";
|
std::cout << t.rows() << " rows, " << t.cols() << " cols\n";
|
||||||
@ -125,48 +126,20 @@ void show_truecolor(const sc::term& t) {
|
|||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
const char* lhb = u8"\u2584"; // lower half block
|
const char* lhb = u8"\u2584"; // lower half block
|
||||||
int inc = 6.0 * t.cols() / 256.0;
|
const double sat = 1.0;
|
||||||
if (inc == 0) inc = 1;
|
for (double bri = 0; bri < 1; bri += 0.2) {
|
||||||
for (int s = 16; s < 224; s += 32) {
|
for (double hue = 0; hue < 360; hue += 360.0 / t.cols()) {
|
||||||
int r = s;
|
HSB hsbb = {hue, sat, bri};
|
||||||
int g = 0;
|
Color bg {hsbb};
|
||||||
int b = 0;
|
RGB rgbb = RGB(bg);
|
||||||
// red -> yellow
|
HSB hsbf = {hue, sat, bri + 0.1};
|
||||||
while (g <= s) {
|
Color fg {hsbf};
|
||||||
std::cerr << sc::io::truecolorb(r, g, b) << sc::io::truecolorf(r, 16 + g, b) << lhb;
|
RGB rgbf = RGB(fg);
|
||||||
g += inc;
|
std::cerr << sc::io::truecolorb(rgbb.r * 255, rgbb.g * 255, rgbb.b * 255);
|
||||||
|
std::cerr << sc::io::truecolorf(rgbf.r * 255, rgbf.g * 255, rgbf.b * 255);
|
||||||
|
std::cerr << lhb;
|
||||||
}
|
}
|
||||||
g = s;
|
std::cerr << std::endl;
|
||||||
// yellow -> green
|
|
||||||
while (r >= 0) {
|
|
||||||
std::cerr << sc::io::truecolorb(r, g, b) << sc::io::truecolorf(16 + r, g, b) << lhb;
|
|
||||||
r -= inc;
|
|
||||||
}
|
|
||||||
r = 0;
|
|
||||||
// green -> cyan
|
|
||||||
while (b < s) {
|
|
||||||
std::cerr << sc::io::truecolorb(r, g, b) << sc::io::truecolorf(r, g, 16 + b) << lhb;
|
|
||||||
b += inc;
|
|
||||||
}
|
|
||||||
b = s;
|
|
||||||
// cyan -> blue
|
|
||||||
while (g >= 0) {
|
|
||||||
std::cerr << sc::io::truecolorb(r, g, b) << sc::io::truecolorf(r, 16 + g, b) << lhb;
|
|
||||||
g -= inc;
|
|
||||||
}
|
|
||||||
g = 0;
|
|
||||||
// blue -> magenta
|
|
||||||
while (r <= s) {
|
|
||||||
std::cerr << sc::io::truecolorb(r, g, b) << sc::io::truecolorf(16 + r, g, b) << lhb;
|
|
||||||
r += inc;
|
|
||||||
}
|
|
||||||
r = s;
|
|
||||||
// magenta -> red
|
|
||||||
while (b >= 0) {
|
|
||||||
std::cerr << sc::io::truecolorb(r, g, b) << sc::io::truecolorf(r, g, 16 + b) << lhb;
|
|
||||||
b -= inc;
|
|
||||||
}
|
|
||||||
std::cerr << sc::io::reset << std::endl;
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
Reference in New Issue
Block a user