summaryrefslogtreecommitdiffstats
path: root/native/src/window/redraw_request.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/redraw_request.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 'native/src/window/redraw_request.rs')
-rw-r--r--native/src/window/redraw_request.rs38
1 files changed, 38 insertions, 0 deletions
diff --git a/native/src/window/redraw_request.rs b/native/src/window/redraw_request.rs
new file mode 100644
index 00000000..3b4f0fd3
--- /dev/null
+++ b/native/src/window/redraw_request.rs
@@ -0,0 +1,38 @@
+use crate::time::Instant;
+
+/// A request to redraw a window.
+#[derive(Debug, Clone, Copy, PartialEq, Eq, PartialOrd, Ord)]
+pub enum RedrawRequest {
+ /// Redraw the next frame.
+ NextFrame,
+
+ /// Redraw at the given time.
+ At(Instant),
+}
+
+#[cfg(test)]
+mod tests {
+ use super::*;
+ use std::time::{Duration, Instant};
+
+ #[test]
+ fn ordering() {
+ let now = Instant::now();
+ let later = now + Duration::from_millis(10);
+
+ assert_eq!(RedrawRequest::NextFrame, RedrawRequest::NextFrame);
+ assert_eq!(RedrawRequest::At(now), RedrawRequest::At(now));
+
+ assert!(RedrawRequest::NextFrame < RedrawRequest::At(now));
+ assert!(RedrawRequest::At(now) > RedrawRequest::NextFrame);
+ assert!(RedrawRequest::At(now) < RedrawRequest::At(later));
+ assert!(RedrawRequest::At(later) > RedrawRequest::At(now));
+
+ assert!(RedrawRequest::NextFrame <= RedrawRequest::NextFrame);
+ assert!(RedrawRequest::NextFrame <= RedrawRequest::At(now));
+ assert!(RedrawRequest::At(now) >= RedrawRequest::NextFrame);
+ assert!(RedrawRequest::At(now) <= RedrawRequest::At(now));
+ assert!(RedrawRequest::At(now) <= RedrawRequest::At(later));
+ assert!(RedrawRequest::At(later) >= RedrawRequest::At(now));
+ }
+}