【问题标题】:clutter timeline not emitting signals in time混乱的时间线没有及时发出信号
【发布时间】:2013-02-14 16:20:26
【问题描述】:

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

ClutterTimeline * clutter_timeline_new(guint msecs);

【问题讨论】:

  • @genpfault:我正在考虑自己删除“opengl”标签,但不确定,因为 clutter 是一个完全基于 OpenGL 的小部件工具包。我同意手头的问题与 OpenGL 完全无关。
  • 这个问题困扰了我一段时间。我广泛搜索了解决方案。有人知道实施时间表吗?它与 API 所说的完全不同。
  • 谁能帮忙?这是我目前正在做的项目的最后一部分。

标签: c clutter


【解决方案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 信号的错误,请注意。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2016-01-20
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-01-08
    • 2017-09-04
    • 1970-01-01
    相关资源
    最近更新 更多