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 [methodGdk.FrameClock.get_timings
]
or [methodGdk.FrameClock.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 methodReturns whether
timings
are complete.The 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.Once this function returns
true
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 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 [method
Gdk.FrameClock.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 [method
Gdk.FrameTimings.get_presentation_time
], which is only available after the frame has been presented.In general, if you are simply animating, you should use [method
Gdk.FrameClock.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
.If
timings
is no longer referenced, it will be freed.Declaration
Swift
@inlinable func unref()
-
complete
Extension methodReturns whether
timings
are complete.The 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.Once this function returns
true
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 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 [method
Gdk.FrameClock.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 [method
Gdk.FrameTimings.get_presentation_time
], which is only available after the frame has been presented.In general, if you are simply animating, you should use [method
Gdk.FrameClock.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 }