diff options
Diffstat (limited to 'native/src/window.rs')
-rw-r--r-- | native/src/window.rs | 23 |
1 files changed, 21 insertions, 2 deletions
diff --git a/native/src/window.rs b/native/src/window.rs index a5cdc8ce..a8f8b10f 100644 --- a/native/src/window.rs +++ b/native/src/window.rs @@ -1,14 +1,22 @@ //! Build window-based GUI applications. mod action; mod event; +mod icon; +mod id; mod mode; +mod position; mod redraw_request; +mod settings; mod user_attention; pub use action::Action; pub use event::Event; +pub use icon::Icon; +pub use id::Id; pub use mode::Mode; +pub use position::Position; pub use redraw_request::RedrawRequest; +pub use settings::Settings; pub use user_attention::UserAttention; use crate::subscription::{self, Subscription}; @@ -22,9 +30,20 @@ use crate::time::Instant; /// /// In any case, this [`Subscription`] is useful to smoothly draw application-driven /// animations without missing any frames. -pub fn frames() -> Subscription<Instant> { +pub fn frames() -> Subscription<Frame> { subscription::raw_events(|event, _status| match event { - crate::Event::Window(Event::RedrawRequested(at)) => Some(at), + crate::Event::Window(id, Event::RedrawRequested(at)) => { + Some(Frame { id, at }) + } _ => None, }) } + +/// The returned `Frame` for a framerate subscription. +#[derive(Debug)] +pub struct Frame { + /// The `window::Id` that the `Frame` was produced in. + pub id: Id, + /// The `Instant` at which the frame was produced. + pub at: Instant, +} |