在 X11 中实现 GTK+ 3 的 OpenGL 支持

最近,开始思考 GTK+ 3.0 的 OpenGL 支持的问题。由于 GtkGLExt 现在还不支持 GTK+ 3.0,其维护者对此没有任何表示。现在最务实的办法是使用 clutter-gtk 库,通过 Clutter 的底层库 Cogl(OpenGL 的面向对象封装)在 GTK+ 3 的 Widget 中绘制 OpenGL 图形。但是,目前 Cogl 功能尚不完善,例如不支持用户自定义帧缓存格式,缺乏光照支持,以及图形渲染方式过于单调,仅支持顶点缓存(Vertex Buffer)渲染。考虑到 GTK+ 在 X11 是通过封装 xlib 实现的,而 xlib 可通过 GLX 实现 OpenGL 支持[1]。因此,通过 xlib 与 GLX 结合的途径,理论上必然可实现 X11 环境中 GTK+ 3.0 的 OpenGL 支持。

继续阅读