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 信号内的值之间的差值,它们将完全同步。

架构

hierarchy this GdkFrameClock ancestor_0 GObject ancestor_0--this

祖先

实例方法

gdk_frame_clock_begin_updating

为动画启动更新。

gdk_frame_clock_end_updating

停止动画更新。

gdk_frame_clock_get_current_timings

获取当前帧的帧时序。

gdk_frame_clock_get_fps

基于 `frame_clock` 的帧时序,计算当前的帧速。

gdk_frame_clock_get_frame_counter

GdkFrameClock 维护一个 64 位计数器,针对绘制的每个帧递增。

gdk_frame_clock_get_frame_time

获取当前应该用于动画的时间。

gdk_frame_clock_get_history_start

返回历史记录中现有的最旧帧的帧计数器。

gdk_frame_clock_get_refresh_info

根据历史记录预测显示时间。

gdk_frame_clock_get_timings

检索包含当前帧或最新帧的时序信息的 `GdkFrameTimings` 对象。

gdk_frame_clock_request_phase

要求帧时钟运行特定的阶段。

GObject (43) 继承的方法

有关方法的完整列表,请参阅 GObject

信号

Gdk.FrameClock::after-paint

此信号结束帧的处理。

Gdk.FrameClock::before-paint

开始处理帧。

Gdk.FrameClock::flush-events

用于刷新未处理的正在批处理和一起压缩的动作事件。

Gdk.FrameClock::layout

作为工具包和应用程序处理帧的第二步发出。

Gdk.FrameClock::paint

作为工具包和应用程序处理帧的第三步发出。

Gdk.FrameClock::resume-events

在帧的处理完成后发出。

Gdk.FrameClock::update

作为工具包和应用程序处理帧的第一步发出。

GObject (1) 继承的信号
GObject::notify

当通过 g_object_set_property()、g_object_set() 等等将对象的其中一个属性的值设置时,会发出此 notify 信号。

类结构

struct GdkFrameClockClass {
  /* no available fields */
}

没有可用的说明。