rgx 0.9.0

A 2D graphics toolkit for rust
Documentation
use rgx::gfx::*;
use rgx::math::*;
use rgx::ui::text::{FontFormat, FontId};
use rgx::ui::widgets::{Align, Painter, SizedBox, ZStack};
use rgx::ui::Interact;

const CROSS: &[u8] = include_bytes!("assets/cross.rgba");
const DEFAULT_FONT: &[u8] = include_bytes!("assets/monospace.uf2");

fn main() -> anyhow::Result<()> {
    let ui = ZStack::new()
        .push(Align::new(
            SizedBox::new(Painter::new(|mut c, _| {
                c.stroke(Rect::origin(c.size), 1., Rgba8::BLUE);
            }))
            .width(256.)
            .height(256.)
            .set_cursor(None),
        ))
        .push(Align::new(
            SizedBox::new(Painter::new(|mut c, _| {
                c.stroke(Rect::origin(c.size), 1., Rgba8::RED);
            }))
            .width(128.)
            .height(128.)
            .set_cursor(Some("cross")),
        ));

    rgx::logger::init(log::Level::Debug)?;
    rgx::Application::new("button")
        .fonts([(FontId::default(), DEFAULT_FONT, FontFormat::UF2)])?
        .cursor("cross", Image::try_from(CROSS)?, [8, 8])
        .launch(ui, ())
        .map_err(Into::into)
}