use show_image::{ImageInfo, ImageView};
use wgc::*;
#[show_image::main]
fn main() -> anyhow::Result<()> {
use tracing_subscriber::EnvFilter;
let filter = EnvFilter::try_from_default_env().unwrap_or_else(|_| EnvFilter::new("wgc=debug"));
tracing_subscriber::fmt().with_env_filter(filter).init();
let item = new_item_with_picker(None)?;
let settings = WgcSettings {
frame_queue_length: 1,
..Default::default()
};
let wgc = Wgc::new(item.clone(), settings)?;
let title = item
.clone()
.DisplayName()
.unwrap_or_default()
.to_string_lossy();
let window = show_image::create_window(title.clone(), Default::default())?;
for frame in wgc {
let frame = frame?;
let frame_size = frame.size()?;
let buffer = frame.read_pixels(None)?;
let image = ImageView::new(
ImageInfo::rgba8_premultiplied(frame_size.width, frame_size.height),
&buffer,
);
window.set_image(title.clone(), image)?;
}
Ok(())
}