GtKGLArea无法创建OpenGL 2.1上下文 [英] GtKGLArea unable to create OpenGL 2.1 context
问题描述
我目前正在为我的游戏引擎项目开发一个简单的编辑器,虽然该项目似乎在我的主工作站(GTX 650Ti,支持OpenGL 3.3+)上运行得很好,但当im在我的测试桌面(GMA4500,支持OpenGL 2.1+)上测试它时,它似乎被损坏了。
即使我将总账版本gtk_gl_area_set_required_version()
指定为2.1,GtkGLArea的gtk_gl_area_make_current()
也无法创建OpenGL 2.1上下文。
已尝试通过测试GTK GLAREA演示(https://git.gnome.org/browse/gtk+/tree/demos/gtk-demo/glarea.c)解决此问题,并获得相同的结果。
已经在网上搜索过了,但没有找到任何解决方案。虽然有人提到了同样存在的关于玻璃的问题,但是ebasi(https://github.com/ebassi/glarea-example/issues/2)
中的例子也提到了同样的问题有什么解决方案吗?
操作系统:Feddora 23 GTK版本3.18
编辑:
操作系统(Fedora23)使用的是OpenGL 2.1(用glxinfo检查),考虑到GTK+源代码上给出的演示,我假设GTK默认使用GL 3.0+。有什么方法可以覆盖这一点吗?(根据ebasi在下面的回答中的回答,如果核心配置文件不可用,从GTK+3.20GdkGLContext
开始将回退到旧配置文件。我将在升级到GTK+3.20后立即对其进行测试)
编辑2:
我可以使用SDL创建的上下文而不是GdkGLContext
来解决问题,但是我仍然有兴趣使用GdkGLContext
来使用OpenGL 2.1。
推荐答案
gtk+默认情况下尝试创建OpenGL3.2+核心配置文件上下文。
从GTK+3.20开始,如果核心配置文件不可用,GdkGLContext
将尝试回退到旧配置文件。您可以使用gdk_gl_context_is_legacy()
检查GdkGLContext
是否处于旧模式。
不允许您自己选择旧版上下文,因为无法与旧版共享核心配置文件,并且GDK会在内部为绘图创建GL上下文。
这篇关于GtKGLArea无法创建OpenGL 2.1上下文的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!