FrameTimingsProtocol
public protocol FrameTimingsProtocol
The FrameTimingsProtocol
protocol exposes the methods and properties of an underlying GdkFrameTimings
instance.
The default implementation of these can be found in the protocol extension below.
For a concrete class that implements these methods and properties, see FrameTimings
.
Alternatively, use FrameTimingsRef
as a lighweight, unowned
reference if you already have an instance you just want to use.
A GdkFrameTimings
object holds timing information for a single frame
of the application’s displays. To retrieve GdkFrameTimings
objects,
use gdk_frame_clock_get_timings()
or gdk_frame_clock_get_current_timings()
.
The information in GdkFrameTimings
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.
-
Untyped pointer to the underlying
GdkFrameTimings
instance.Declaration
Swift
var ptr: UnsafeMutableRawPointer! { get }
-
frame_timings_ptr
Default implementationTyped pointer to the underlying
GdkFrameTimings
instance.Default Implementation
Return the stored, untyped pointer as a typed pointer to the
GdkFrameTimings
instance.Declaration
Swift
var frame_timings_ptr: UnsafeMutablePointer<GdkFrameTimings>! { get }
-
Required Initialiser for types conforming to
FrameTimingsProtocol
Declaration
Swift
init(raw: UnsafeMutableRawPointer)
-
getComplete()
Extension methodThe timing information in a
GdkFrameTimings
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 forGdkFrameTimings
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. Oncegdk_frame_timings_get_complete()
returnstrue
for a frame, you can be certain that no further values will become available and be stored in theGdkFrameTimings
.Declaration
Swift
@inlinable func getComplete() -> Bool
-
getFrameCounter()
Extension methodGets the frame counter value of the
GdkFrameClock
when this this frame was drawn.Declaration
Swift
@inlinable func getFrameCounter() -> gint64
-
getFrameTime()
Extension methodReturns the frame time for the frame. This is the time value that is typically used to time animations for the frame. See
gdk_frame_clock_get_frame_time()
.Declaration
Swift
@inlinable func getFrameTime() -> gint64
-
getPredictedPresentationTime()
Extension methodGets the predicted time at which this frame will be displayed. Although no predicted time may be available, if one is available, it will be available while the frame is being generated, in contrast to
gdk_frame_timings_get_presentation_time()
, which is only available after the frame has been presented. In general, if you are simply animating, you should usegdk_frame_clock_get_frame_time()
rather than this function, but this function is useful for applications that want exact control over latency. For example, a movie player may want this information for Audio/Video synchronization.Declaration
Swift
@inlinable func getPredictedPresentationTime() -> gint64
-
getPresentationTime()
Extension methodReurns the presentation time. This is the time at which the frame became visible to the user.
Declaration
Swift
@inlinable func getPresentationTime() -> gint64
-
getRefreshInterval()
Extension methodGets the natural interval between presentation times for the display that this frame was displayed on. Frame presentation usually happens during the “vertical blanking interval”.
Declaration
Swift
@inlinable func getRefreshInterval() -> gint64
-
ref()
Extension methodIncreases the reference count of
timings
.Declaration
Swift
@discardableResult @inlinable func ref() -> FrameTimingsRef!
-
unref()
Extension methodDecreases the reference count of
timings
. Iftimings
is no longer referenced, it will be freed.Declaration
Swift
@inlinable func unref()
-
complete
Extension methodThe timing information in a
GdkFrameTimings
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 forGdkFrameTimings
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. Oncegdk_frame_timings_get_complete()
returnstrue
for a frame, you can be certain that no further values will become available and be stored in theGdkFrameTimings
.Declaration
Swift
@inlinable var complete: Bool { get }
-
frameCounter
Extension methodGets the frame counter value of the
GdkFrameClock
when this this frame was drawn.Declaration
Swift
@inlinable var frameCounter: gint64 { get }
-
frameTime
Extension methodReturns the frame time for the frame. This is the time value that is typically used to time animations for the frame. See
gdk_frame_clock_get_frame_time()
.Declaration
Swift
@inlinable var frameTime: gint64 { get }
-
predictedPresentationTime
Extension methodGets the predicted time at which this frame will be displayed. Although no predicted time may be available, if one is available, it will be available while the frame is being generated, in contrast to
gdk_frame_timings_get_presentation_time()
, which is only available after the frame has been presented. In general, if you are simply animating, you should usegdk_frame_clock_get_frame_time()
rather than this function, but this function is useful for applications that want exact control over latency. For example, a movie player may want this information for Audio/Video synchronization.Declaration
Swift
@inlinable var predictedPresentationTime: gint64 { get }
-
presentationTime
Extension methodReurns the presentation time. This is the time at which the frame became visible to the user.
Declaration
Swift
@inlinable var presentationTime: gint64 { get }
-
refreshInterval
Extension methodGets the natural interval between presentation times for the display that this frame was displayed on. Frame presentation usually happens during the “vertical blanking interval”.
Declaration
Swift
@inlinable var refreshInterval: gint64 { get }