summaryrefslogtreecommitdiffstats
path: root/native/src/window.rs
diff options
context:
space:
mode:
authorLibravatar Bingus <shankern@protonmail.com>2023-01-18 15:01:17 -0800
committerLibravatar Bingus <shankern@protonmail.com>2023-01-18 15:01:17 -0800
commit70d487ba20a50c06c73f0ffcd8198f1a7eac7f37 (patch)
treeafb8e161b18236d4440cba8bb0e0ce896858d653 /native/src/window.rs
parent790fa3e7a01a790aa3f07083fe9abf6b68fa7ba1 (diff)
parent5ef0648bf447aaca8b96782643401e54a2bf7759 (diff)
downloadiced-70d487ba20a50c06c73f0ffcd8198f1a7eac7f37.tar.gz
iced-70d487ba20a50c06c73f0ffcd8198f1a7eac7f37.tar.bz2
iced-70d487ba20a50c06c73f0ffcd8198f1a7eac7f37.zip
Merge remote-tracking branch 'origin/master' into feat/multi-window-support
# Conflicts: # examples/events/src/main.rs # glutin/src/application.rs # native/src/window.rs # winit/src/window.rs
Diffstat (limited to '')
-rw-r--r--native/src/window.rs20
1 files changed, 20 insertions, 0 deletions
diff --git a/native/src/window.rs b/native/src/window.rs
index 96a5fe61..d3c8c96f 100644
--- a/native/src/window.rs
+++ b/native/src/window.rs
@@ -6,6 +6,7 @@ mod id;
mod mode;
mod position;
mod settings;
+mod redraw_request;
mod user_attention;
pub use action::Action;
@@ -15,4 +16,23 @@ 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,
+ })
+}