GtKGLArea无法创建OpenGL 2.1上下文 [英] GtKGLArea unable to create OpenGL 2.1 context

查看:35
本文介绍了GtKGLArea无法创建OpenGL 2.1上下文的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我目前正在为我的游戏引擎项目开发一个简单的编辑器,虽然该项目似乎在我的主工作站(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屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆