我有一个程序可以在窗口中显示具有固定帧速率(例如 30 fps)的动画。
目前我使用 SDL,但不幸的是它缺乏桌面集成(如拖放),现在我想改用 GTK。
所以我想做的(假设窗口是双缓冲的):
1 obtain off-screen buffer
2 render my stuff to buffer
3 tell the toolkit to swap buffers
4 update window
5 repeat
除了非常基本的 GDK/GTK 调用之外,我不想使用任何功能来创建和管理窗口并接收输入事件。
在常见问题解答中,他们建议使用 GdkRGB。但是,在 GdkRGB 的官方文档中,他们使用了gdk_draw_rgb_image()
已弃用的函数,实际上大多数 GdkRGB 函数都是。
作为替代方案,他们建议使用 OpenGL。问题在于它需要一些不常见的库,例如 GtkGLArea,它不是 GTK 的一部分(我不想依赖任何默认情况下未安装的库)。此外,在我的系统上,驱动程序的 OpenGL 支持是......有限的。
我已经研究了 Cairo(它是作为某些已弃用功能的替代方案提供的),但这会为我相对简单的问题添加更多样板代码(并且我怀疑会有额外的开销)。