task: rewrite event handling as a step towards event-based subscriptions
This commit is contained in:
@@ -74,24 +74,23 @@ impl<T: Output, S: Surfaces> Renderer<T, S> {
|
||||
impl<T: Output, S: Surfaces> Task for Renderer<T, S> {
|
||||
fn name(&self) -> &'static str { "Renderer" }
|
||||
|
||||
fn tick(&mut self, event: &Event, _bus: &mut EventBus) {
|
||||
match event {
|
||||
crate::events::Event::Tick => {
|
||||
self.output.blank();
|
||||
fn on_property_change(&mut self, key: &'static str, value: &crate::events::Variant, _bus: &mut EventBus) {
|
||||
self.output.on_event(&Event::new_property_change(key, value.clone()));
|
||||
}
|
||||
|
||||
self.surfaces.render_to(&mut self.output, self.frame);
|
||||
|
||||
self.output.commit();
|
||||
|
||||
self.frame += 1;
|
||||
self.fps_display.run(|| {
|
||||
fn on_tick(&mut self, bus: &mut EventBus) {
|
||||
self.output.blank();
|
||||
|
||||
self.surfaces.render_to(&mut self.output, self.frame);
|
||||
|
||||
self.output.commit();
|
||||
|
||||
self.frame += 1;
|
||||
self.fps_display.run(|| {
|
||||
self.fps.insert((self.frame - self.frame_count) as u32);
|
||||
self.frame_count = self.frame;
|
||||
let fps = self.fps.measurement();
|
||||
bus.push(Event::new_property_change("output.fps", fps.rate() as u32));
|
||||
});
|
||||
},
|
||||
_ => self.output.on_event(event)
|
||||
}
|
||||
});
|
||||
}
|
||||
}
|
||||
}
|
Reference in New Issue
Block a user