1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70
// This file was generated by gir (https://github.com/gtk-rs/gir) // from gir-files (https://github.com/gtk-rs/gir-files) // DO NOT EDIT use glib::translate::*; glib::wrapper! { /// A [`FrameTimings`][crate::FrameTimings] object holds timing information for a single frame /// of the application’s displays. To retrieve [`FrameTimings`][crate::FrameTimings] objects, /// use [`FrameClock::timings()`][crate::FrameClock::timings()] or [`FrameClock::current_timings()`][crate::FrameClock::current_timings()]. /// The information in [`FrameTimings`][crate::FrameTimings] is useful for precise synchronization /// of video with the event or audio streams, and for measuring /// quality metrics for the application’s display, such as latency and jitter. #[derive(Debug, PartialEq, Eq, PartialOrd, Ord, Hash)] pub struct FrameTimings(Shared<ffi::GdkFrameTimings>); match fn { ref => |ptr| ffi::gdk_frame_timings_ref(ptr), unref => |ptr| ffi::gdk_frame_timings_unref(ptr), type_ => || ffi::gdk_frame_timings_get_type(), } } impl FrameTimings { /// The timing information in a [`FrameTimings`][crate::FrameTimings] is filled in /// incrementally as the frame as drawn and passed off to the /// window system for processing and display to the user. The /// accessor functions for [`FrameTimings`][crate::FrameTimings] can return 0 to /// indicate an unavailable value for two reasons: either because /// the information is not yet available, or because it isn't /// available at all. Once [`is_complete()`][Self::is_complete()] returns /// [`true`] for a frame, you can be certain that no further values /// will become available and be stored in the [`FrameTimings`][crate::FrameTimings]. /// /// # Returns /// /// [`true`] if all information that will be available /// for the frame has been filled in. #[doc(alias = "gdk_frame_timings_get_complete")] #[doc(alias = "get_complete")] pub fn is_complete(&self) -> bool { unsafe { from_glib(ffi::gdk_frame_timings_get_complete(self.to_glib_none().0)) } } /// Gets the frame counter value of the [`FrameClock`][crate::FrameClock] when this /// this frame was drawn. /// /// # Returns /// /// the frame counter value for this frame #[doc(alias = "gdk_frame_timings_get_frame_counter")] #[doc(alias = "get_frame_counter")] pub fn frame_counter(&self) -> i64 { unsafe { ffi::gdk_frame_timings_get_frame_counter(self.to_glib_none().0) } } /// Returns the frame time for the frame. This is the time value /// that is typically used to time animations for the frame. See /// [`FrameClock::frame_time()`][crate::FrameClock::frame_time()]. /// /// # Returns /// /// the frame time for the frame, in the timescale /// of `g_get_monotonic_time()` #[doc(alias = "gdk_frame_timings_get_frame_time")] #[doc(alias = "get_frame_time")] pub fn frame_time(&self) -> i64 { unsafe { ffi::gdk_frame_timings_get_frame_time(self.to_glib_none().0) } } }