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
GdkFrameTimingsinstance.Declaration
Swift
var ptr: UnsafeMutableRawPointer! { get } -
frame_timings_ptrDefault implementationTyped pointer to the underlying
GdkFrameTimingsinstance.Default Implementation
Return the stored, untyped pointer as a typed pointer to the
GdkFrameTimingsinstance.Declaration
Swift
var frame_timings_ptr: UnsafeMutablePointer<GdkFrameTimings>! { get } -
Required Initialiser for types conforming to
FrameTimingsProtocolDeclaration
Swift
init(raw: UnsafeMutableRawPointer)
-
getComplete()Extension methodReturns whether
timingsare complete.The timing information in a
GdkFrameTimingsis 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 forGdkFrameTimingscan 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
truefor 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
GdkFrameClockwhen 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
timingsis no longer referenced, it will be freed.Declaration
Swift
@inlinable func unref() -
completeExtension methodReturns whether
timingsare complete.The timing information in a
GdkFrameTimingsis 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 forGdkFrameTimingscan 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
truefor 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 } -
frameCounterExtension methodGets the frame counter value of the
GdkFrameClockwhen this frame was drawn.Declaration
Swift
@inlinable var frameCounter: gint64 { get } -
frameTimeExtension 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 } -
predictedPresentationTimeExtension 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 } -
presentationTimeExtension methodReurns the presentation time.
This is the time at which the frame became visible to the user.
Declaration
Swift
@inlinable var presentationTime: gint64 { get } -
refreshIntervalExtension 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 }
View on GitHub
Install in Dash
FrameTimingsProtocol Protocol Reference