update all to use TuiOutput; still slow?

This commit is contained in:
🪞👃🪞 2024-09-15 17:26:54 +03:00
parent bb7d215ba1
commit f5fbc11b24
21 changed files with 873 additions and 888 deletions

View file

@ -23,8 +23,8 @@ pub struct TuiInput {
exited: Arc<AtomicBool>,
}
pub struct TuiOutput {
buffer: Buffer,
area: [u16;4],
pub buffer: Buffer,
pub area: [u16;4],
}
impl Engine for Tui {
@ -227,6 +227,7 @@ impl Tui {
let updates = self.buffer.diff(&buffer);
self.backend.draw(updates.into_iter()).expect("failed to render");
std::mem::swap(&mut self.buffer, &mut buffer);
buffer.reset();
buffer
}
}
@ -319,9 +320,10 @@ impl Widget for Styled<&str> {
Ok(Some([self.1.len() as u16, 1]))
}
fn render (&self, to: &mut TuiOutput) -> Usually<()> {
todo!()
//let _ = self.layout(to.area().wh())?.unwrap();
//Ok(Some([to.area.x(), to.area.y(), self.1.len() as u16, 1]))
// FIXME
let [x, y, ..] = to.area();
let [w, h] = self.layout(to.area().wh())?.unwrap();
Ok(to.blit(&self.1, x, y, None))
}
}