use prismatica::Color;
use prismatica::matplotlib::VIRIDIS;
use wgpu_types::Color as WgpuColor;
fn main() {
let cm = &VIRIDIS;
let n = 8;
println!("Colormap: {} ({})\n", cm.meta.name, cm.meta.collection);
println!(
" {:<4} {:>3} {:>3} {:>3} wgpu clear color (f64 rgba)",
"i", "R", "G", "B"
);
println!(" {}", "-".repeat(62));
for i in 0..n {
let color = cm.eval_rational(i, n);
let wgpu: WgpuColor = color.into();
let back: Color = wgpu.into();
let swatch = format!("\x1b[48;2;{};{};{}m \x1b[0m", color.r, color.g, color.b);
println!(
" {:<4} {:>3} {:>3} {:>3} ({:.6}, {:.6}, {:.6}, {:.1}) {}",
i, color.r, color.g, color.b, wgpu.r, wgpu.g, wgpu.b, wgpu.a, swatch
);
assert_eq!(color, back, "round-trip failed at index {i}");
}
println!("\nExample wgpu render pass descriptor usage:");
let clear = WgpuColor::from(cm.eval(0.5));
println!(
" color_attachments: load: Clear(Color {{ r: {:.6}, g: {:.6}, b: {:.6}, a: {:.1} }})",
clear.r, clear.g, clear.b, clear.a
);
}