Add Runtime concept to abstract caching

This commit is contained in:
Héctor Ramón Jiménez 2019-07-23 10:49:24 +02:00
parent eb45c51a7b
commit e55ac637a9
5 changed files with 123 additions and 89 deletions

View file

@ -9,8 +9,6 @@ use ggez::event;
use ggez::graphics;
use ggez::input::mouse;
use iced::Interface;
pub fn main() -> ggez::GameResult {
let cb = ggez::ContextBuilder::new("iced", "ggez");
let (ctx, event_loop) = &mut cb.build()?;
@ -20,6 +18,8 @@ pub fn main() -> ggez::GameResult {
struct Game {
spritesheet: graphics::Image,
runtime: iced::Runtime,
button: button::State,
}
@ -27,6 +27,8 @@ impl Game {
fn new(context: &mut ggez::Context) -> ggez::GameResult<Game> {
Ok(Game {
spritesheet: graphics::Image::new(context, "/ui.png").unwrap(),
runtime: iced::Runtime::new(),
button: button::State::new(),
})
}
@ -69,8 +71,7 @@ impl event::EventHandler for Game {
let renderer =
&mut Renderer::new(context, self.spritesheet.clone());
let ui: Interface<Message, Renderer> =
Interface::compute(content.into(), renderer);
let ui = self.runtime.compute(content.into(), renderer);
let cursor = ui.draw(renderer, iced::Point::new(0.0, 0.0));