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
// 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 gdk_sys; use glib::translate::*; glib_wrapper! { /// A `FrameTimings` object holds timing information for a single frame /// of the application’s displays. To retrieve `FrameTimings` objects, /// use `FrameClock::get_timings` or `FrameClock::get_current_timings`. /// The information in `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<gdk_sys::GdkFrameTimings>); match fn { ref => |ptr| gdk_sys::gdk_frame_timings_ref(ptr), unref => |ptr| gdk_sys::gdk_frame_timings_unref(ptr), get_type => || gdk_sys::gdk_frame_timings_get_type(), } } impl FrameTimings { /// The timing information in a `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` 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 `FrameTimings::get_complete` returns /// `true` for a frame, you can be certain that no further values /// will become available and be stored in the `FrameTimings`. /// /// # Returns /// /// `true` if all information that will be available /// for the frame has been filled in. pub fn get_complete(&self) -> bool { unsafe { from_glib(gdk_sys::gdk_frame_timings_get_complete( self.to_glib_none().0, )) } } /// Gets the frame counter value of the `FrameClock` when this /// this frame was drawn. /// /// # Returns /// /// the frame counter value for this frame pub fn get_frame_counter(&self) -> i64 { unsafe { gdk_sys::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::get_frame_time`. /// /// # Returns /// /// the frame time for the frame, in the timescale /// of `g_get_monotonic_time` pub fn get_frame_time(&self) -> i64 { unsafe { gdk_sys::gdk_frame_timings_get_frame_time(self.to_glib_none().0) } } }