如何使用GTK3,C和Cairo进行基本动画制作

时间:2014-04-22 16:59:48

标签: c opengl animation gtk3 cairo

假设我有一个带有绘图区域和按钮的GTK窗口。

  1. 当应用程序运行时,它将显示球。
  2. 按下按钮时,它将从一侧开始弹跳到另一侧。
  3. 再次按下按钮时,它会停止弹跳。
  4. 此外,窗口还会在左下角(绘图区域内)显示球的当前XY坐标。

    我只想使用 C GTK3 CAIRO

    我有谷歌搜索并发现一个动画示例不是GTk3而是GTK以前的版本。那些不适用于GTK3。我还阅读了CAIRO的官方,zetecode的教程和其他一些网站。我没有找到解决问题的方法。

    我知道如何使用OpenGL这样做,这很容易,但我无法对CAIRO和GTK3应用相同的逻辑。请不要建议使用GtkGlExt。我想要使用它。

2 个答案:

答案 0 :(得分:0)

这里有一个注释(即使您没有显示一些代码): 这些年来,cairo开发人员一直在努力促进与代码的兼容性。正如我引用cairo-doc所述:"从发行版迁移到任何更高版本(发布,快照,开发)始终保证提供兼容性。"。

到目前为止(我所知道的),cairo只有6个主要版本。 与gtk中的cairo交互是由Gdk完成的,并且通过你想要做的声音,代码(谷歌搜索)我猜它只包含GtkDrawingArea,cairo_t,cairo_arc,cairo_move_to,GtkButton(带2个GCallbacks),一些gdk -cairo交互函数,gtk_widget_translate_coordinates(),GRand / random()和循环。 这些项目来自Gtk + 2.0,现在仍然存在。 如果代码不起作用,请尝试删除"坐标小部件"部分(它可能使用自定义GtkWidget)。尝试将坐标放在GtkDrawingArea之外(即GtkWindow);

答案 1 :(得分:0)