类
GdkFrameClock
说明 [src]
abstract class Gdk.FrameClock : GObject.Object
{
/* No available fields */
}
GdkFrameClock
会在需要更新和重新绘制一个表面时告知应用程序。
例如,可以同步到显示器的垂直刷新率。即使帧时钟使用的是一个简单的计时器而不是基于硬件的垂直同步,它也有帮助,因为它可以确保所有事物都在同一时间绘制(减少总帧数)。
帧时钟还可以自动停止绘制,当它知道这些帧不可见时,或者降低动画帧率。
GdkFrameClock
旨在与基于 OpenGL 的实现或火狐浏览器中的 mozRequestAnimationFrame 兼容,例如。
帧时钟会处于空闲状态,直到有人使用 gdk_frame_clock_request_phase()
请求一个帧。在较晚的时候,对于实现的同步有一定意义,时钟会处理一个帧,并针对已请求的每个阶段发出信号。(参见 `GdkFrameClock` 类中的信号,以获取阶段的文档。对于应用程序编写者而言,`GDK_FRAME_CLOCK_PHASE_UPDATE` 和 GdkFrameClock::update
信号最有趣,用于更新动画,使用 gdk_frame_clock_get_frame_time()
给出的帧时间。
帧时间以微秒为单位报告,通常与 g_get_monotonic_time() 使用相同的时标,但是它与 g_get_monotonic_time() 不同。在绘制帧的过程中不会增加帧时间,并且在帧之外,将尝试让在“相似”时间调用的所有 gdk_frame_clock_get_frame_time()
获取相同的值。这意味着,如果对不同动画进行计时,方法是从 gdk_frame_clock_get_frame_time()
的初始值和时钟的 GdkFrameClock::update
信号内的值之间的差值,它们将完全同步。
信号
从 GObject (1) 继承的信号
GObject::notify
当通过 g_object_set_property()、g_object_set() 等等将对象的其中一个属性的值设置时,会发出此 notify 信号。