use opentui::renderer::ThreadedRenderer;
use opentui::{Rgba, Style};
use opentui_rust as opentui;
use std::io;
use std::thread;
use std::time::Duration;
fn main() -> io::Result<()> {
let mut renderer = ThreadedRenderer::new(80, 24)?;
for frame in 0u32..10 {
renderer.clear();
let buffer = renderer.buffer();
let title = format!("Frame {frame}");
let title_style = Style::builder().fg(Rgba::WHITE).bold().build();
buffer.draw_text(2, 1, &title, title_style);
let bar_x = frame * 5;
let bar = "██████████"; let bar_display: String = bar.chars().take((80 - bar_x as usize).min(10)).collect();
buffer.draw_text(bar_x, 3, &bar_display, Style::fg(Rgba::GREEN));
buffer.draw_text(2, 5, "Press Ctrl+C to exit", Style::dim());
renderer.present()?;
thread::sleep(Duration::from_millis(100));
}
renderer.shutdown()?;
println!("\nThreaded renderer example completed.");
Ok(())
}