Skip to content

Commit

Permalink
Merge pull request #29 from dagit/development
Browse files Browse the repository at this point in the history
Add back the async texture transfer optimization
  • Loading branch information
dagit authored Dec 21, 2023
2 parents ee4e1f8 + 6794a74 commit d6dbb8d
Show file tree
Hide file tree
Showing 2 changed files with 273 additions and 113 deletions.
50 changes: 21 additions & 29 deletions src/livesplit_renderer.rs
Original file line number Diff line number Diff line change
Expand Up @@ -696,37 +696,29 @@ impl eframe::App for LiveSplitCoreRenderer {
ctx.send_viewport_cmd(egui::viewport::ViewportCommand::CancelClose)
}
let viewport = ctx.input(|i| i.screen_rect);
self.glow_canvas.update_frame_buffer(|frame_buffer| {
{
let timer = self.timer.read().unwrap();
let snapshot = timer.snapshot();
match &mut self.layout_state {
None => {
self.layout_state = Some(self.layout.state(&snapshot));
}
Some(layout_state) => {
self.layout.update_state(layout_state, &snapshot);
}
};
}
let sz = viewport.size();

if let Some(layout_state) = &self.layout_state {
let szu32 = [sz.x as u32, sz.y as u32];
let sz = [sz.x as usize, sz.y as usize];
self.glow_canvas.update_frame_buffer(
viewport,
frame.gl().unwrap(),
|frame_buffer, sz, stride| {
{
let mut buffer = frame_buffer.write().unwrap();
buffer.resize(sz[0] * sz[1] * 4, 0);
self.renderer.render(
layout_state,
buffer.as_mut_slice(),
szu32,
sz[0] as u32,
false,
);
let timer = self.timer.read().unwrap();
let snapshot = timer.snapshot();
match &mut self.layout_state {
None => {
self.layout_state = Some(self.layout.state(&snapshot));
}
Some(layout_state) => {
self.layout.update_state(layout_state, &snapshot);
}
};
}
}
});

if let Some(layout_state) = &self.layout_state {
self.renderer
.render(layout_state, frame_buffer, sz, stride, true);
}
},
);
self.glow_canvas
.paint_layer(ctx, egui::LayerId::background(), viewport);
//self.glow_canvas.paint_immediate(frame.gl().unwrap(), viewport);
Expand Down
Loading

0 comments on commit d6dbb8d

Please sign in to comment.