# Conflicts: # examples/events/src/main.rs # glutin/src/application.rs # native/src/window.rs # winit/src/window.rs
38 lines
1.1 KiB
Rust
38 lines
1.1 KiB
Rust
//! Build window-based GUI applications.
|
|
mod action;
|
|
mod event;
|
|
mod icon;
|
|
mod id;
|
|
mod mode;
|
|
mod position;
|
|
mod settings;
|
|
mod redraw_request;
|
|
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 settings::Settings;
|
|
pub use redraw_request::RedrawRequest;
|
|
pub use user_attention::UserAttention;
|
|
|
|
use crate::subscription::{self, Subscription};
|
|
use crate::time::Instant;
|
|
|
|
/// Subscribes to the frames of the window of the running application.
|
|
///
|
|
/// The resulting [`Subscription`] will produce items at a rate equal to the
|
|
/// refresh rate of the window. Note that this rate may be variable, as it is
|
|
/// normally managed by the graphics driver and/or the OS.
|
|
///
|
|
/// In any case, this [`Subscription`] is useful to smoothly draw application-driven
|
|
/// animations without missing any frames.
|
|
pub fn frames() -> Subscription<Instant> {
|
|
subscription::raw_events(|event, _status| match event {
|
|
crate::Event::Window(Event::RedrawRequested(at)) => Some(at),
|
|
_ => None,
|
|
})
|
|
}
|