我目前正在为我的游戏引擎项目制作一个简单的编辑器,而该项目似乎在我的主要工作站上运行良好(GTX 650TI带有OpenGL 3.3 支持),但是它当我在我的测试台式机上进行测试时,似乎被打破了(带有OpenGL 2.1最大支持的GMA4500)。
即使我用gtk_gl_area_set_required_version()
至2.1指定了GL版本,GTKGLAREA的gtk_gl_area_make_current()
也无法创建OpenGL 2.1上下文。
试图通过测试GTK Glarea演示(https://git.gnome.org/browse/gtk /tree/tree/demos/gtk-demo/glarea.c)进行故障排除。
已经在网络上搜索它,但没有任何解决方案。尽管有人在Ebassi(https://github.com/ebassi/glarea-example/issues/2)上提到了同一EXATCT问题。
有什么解决方案吗?
操作系统:Fedora 23GTK版本3.18
编辑:操作系统(Fedora 23)使用OpenGL 2.1(使用GLXINFO检查),并在GTK 源上给出的Demos考虑了我假设GTK使用GL 3.0 默认为GTK。是否有任何方法可以过度?(根据Ebassi在下面的答案中,从GTK 3.20 GdkGLContext
开始,如果没有核心配置文件,则会回到传统配置文件。GTK 3.20)
编辑2:我可以通过使用SDL而不是GdkGLContext
创建的上下文来进行解决方法,但是我仍然很想让GdkGLContext
与OpenGL 2.1一起工作。
gtk 尝试创建一个OpenGL 3.2 核心配置文件上下文。
从GTK 3.20开始,如果没有核心配置文件,GdkGLContext
将尝试落回传统配置文件。您可以使用gdk_gl_context_is_legacy()
检查GdkGLContext
是否处于遗产模式。
您不允许您自己选择一个遗产上下文,因为不可能与遗产共享核心配置文件,而GDK则在内部创建GL上下文。
您可以使用egl使用gtkdrawingarea
使用旧版(pre-3.0)openGL版本http://bobthegnome.blogspot.com/2014/09/ususe-egl-with-gtk.html