杂波时间线不及时发出信号

时间:2013-02-13 13:08:05

标签: c clutter

moblin clutter中的时间轴功能用于每隔一毫秒进行一次回调。尽管它发出的信号要快得多(每隔1ms左右)。为什么会这样?

ClutterTimeline * clutter_timeline_new(guint msecs);

1 个答案:

答案 0 :(得分:1)

您不应该使用时间轴来获取N毫秒已过的通知(并执行代码)。 ClutterTimeline是一个与UI的重绘循环相关联的对象。每次Clutter重绘帧时,时间轴都会提前,让应用程序代码知道它必须更新其状态。

如果您只是需要在间隔后调用代码,请改用g_timeout_add();此函数仅与主循环相关联,而不与重绘循环相关联。使用超时时还需要注意其他注意事项,因此您应该阅读文档:

http://developer.gnome.org/glib/stable/glib-The-Main-Event-Loop.html#g-timeout-add

严格来说,如果您使用的是Moblin,那么您可能正在使用非常旧版本的Clutter,因此也可能存在错误;并不是我知道每隔毫秒调用ClutterTimeline :: new-frame信号的错误,请注意。