extern crate micro_gui;
use micro_gui::prelude::*;
use micro_gui::types::pixel::*;
use micro_gui::native::Renderer;
use micro_gui::widgets::demo::DemoWidget;
const WIDTH: usize = 640;
const HEIGHT: usize = 480;
const SIZE: usize = WIDTH * HEIGHT * 3;
type Pixel = PixelRGB24;
#[cfg(feature = "sdl")]
fn main() {
let mut data: [u8; SIZE] = [0xff; SIZE];
let data_slice = &mut data[..];
let mut buffer = Buffer::<Pixel>::new(WIDTH, HEIGHT, 0, 0, data_slice);
let mut demo = DemoWidget::new();
let mut window = Window::<Pixel>::new(WIDTH, HEIGHT, Some(&mut demo));
let mut gui = Gui::new(WIDTH, HEIGHT);
gui.push_window(&mut window);
let mut native = Renderer::<Pixel>::new(&"Rust microgui example", WIDTH as u32, HEIGHT as u32);
println!("Rust microgui running!");
loop {
buffer.clear(&Pixel::white());
gui.render(&mut buffer);
native.render(buffer.data);
let running = native.update();
for e in native.event_rx.try_iter() {
gui.event(&e);
println!("Event: {:?}", e);
}
if !running { break; }
}
}