extern crate cairo;
extern crate pango;
extern crate pangocairo;
extern crate rand;
extern crate serde_json;
use rand::Rng;
use pango::LayoutExt;
fn main() {
let surf = cairo::ImageSurface::create(
cairo::Format::Rgb24,
3840,
2160
).unwrap();
let mut rng = rand::thread_rng();
let ctx = cairo::Context::new(&surf);
let w = rng.gen::<u8>() % 3;
ctx.set_source_rgb(
if w == 0 { 0.4 } else { 0.2 },
if w == 1 { 0.4 } else { 0.2 },
if w == 2 { 0.4 } else { 0.2 },
);
ctx.paint();
let quips: Vec<String> = serde_json::from_str(include_str!("../quips.json")).unwrap();
let quip: &str = &quips[rng.gen::<usize>() % quips.len()];
println!("{}", quip);
ctx.set_source_rgb(1.0, 1.0, 1.0);
let layout = pangocairo::functions::create_layout(&ctx).unwrap();
layout.set_width(2880 * 1024);
let mut font = pango::FontDescription::from_string("Fira Sans 92");
font.set_weight(pango::Weight::Bold);
layout.set_font_description(&font);
ctx.move_to(480.0, 480.0);
layout.set_text(quip);
pangocairo::functions::show_layout(&ctx, &layout);
{
let mut f = std::fs::File::create("/home/gdritter/.background.png").unwrap();
surf.write_to_png(&mut f).unwrap();
}
}