mirror of
https://codeberg.org/unspeaker/tek.git
synced 2025-12-07 12:16:42 +01:00
wip: trying to get the engine to work fast again
This commit is contained in:
parent
11ecf669a1
commit
d068c193dd
2 changed files with 15 additions and 6 deletions
|
|
@ -85,7 +85,7 @@ impl Tui {
|
|||
let _input_thread = {
|
||||
let engine = engine.clone();
|
||||
let state = state.clone();
|
||||
let poll = Duration::from_millis(20);
|
||||
let poll = Duration::from_millis(100);
|
||||
spawn(move || loop {
|
||||
if ::crossterm::event::poll(poll).is_ok() {
|
||||
let event = TuiEvent::Input(::crossterm::event::read().unwrap());
|
||||
|
|
@ -112,13 +112,19 @@ impl Tui {
|
|||
let state = state.clone();
|
||||
let sleep = Duration::from_millis(20);
|
||||
spawn(move || loop {
|
||||
if let (Ok(mut engine), Ok(state)) = (engine.write(), state.try_read()) {
|
||||
let size = {
|
||||
let engine = engine.read().unwrap();
|
||||
if engine.exited() {
|
||||
break
|
||||
}
|
||||
engine.area = engine.backend.size().expect("get size failed").xywh();
|
||||
state.render(&mut engine).expect("render failed");
|
||||
engine.backend.size().expect("get size failed").xywh()
|
||||
};
|
||||
{
|
||||
let mut engine = engine.write().unwrap();
|
||||
engine.area = size;
|
||||
state.read().unwrap().render(&mut engine).expect("render failed");
|
||||
engine.flip();
|
||||
std::mem::drop(engine);
|
||||
}
|
||||
std::thread::sleep(sleep);
|
||||
})
|
||||
|
|
@ -544,6 +550,7 @@ where
|
|||
Ok(Some([x, y, w, h]))
|
||||
}
|
||||
fn render (&self, to: &mut Tui) -> Perhaps<[u16;4]> {
|
||||
let layout = self.layout(to.area())?;
|
||||
self.layout(to.area())?
|
||||
.map(|area|(self.0)(&mut |layer| {
|
||||
to.render_in(area, &layer)?;
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue