我目前正在为我的游戏引擎项目开发一个简单的编辑器,虽然该项目似乎在我的主工作站(支持 OpenGL 3.3+ 的 GTX 650Ti)上运行得很好,但当我在我的设备上测试它时,它似乎被破坏了。测试桌面(GMA4500,最大支持 OpenGL 2.1)。
GtkGLA 区域gtk_gl_area_make_current()
即使我指定了 GL 版本,也无法创建 OpenGL 2.1 上下文gtk_gl_area_set_required_version()
to 2.1.
尝试通过测试 gtk glarea 演示来排除故障(https://git.gnome.org/browse/gtk+/tree/demos/gtk-demo/glarea.c https://git.gnome.org/browse/gtk+/tree/demos/gtk-demo/glarea.c)并得到相同的结果。
已经在网上搜索过,但没有找到任何解决方案。尽管有人在 ebassi 的 glarea 示例中提到了相同的 exatct 问题(https://github.com/ebassi/glarea-example/issues/2 https://github.com/ebassi/glarea-example/issues/2)
有什么办法解决这个问题吗?
操作系统:Fedora 23
GTK 版本 3.18
EDIT :
The Operating system (Fedora 23) are using OpenGL 2.1 ( checked with glxinfo ), and considering by demos given on GTK+ source i'm assuming GTK using GL 3.0+ as default. is it any way to overide this? (according to ebassi on his answer below, starting from GTK+ 3.20 GdkGLContext
will falling back to legacy profiles if core profiles are not available. will test it as soon i upgrade to GTK+ 3.20)
EDIT 2:我可以通过使用 SDL 创建的上下文而不是GdkGLContext
,但我仍然有兴趣制作GdkGLContext
使用 OpenGL 2.1。
默认情况下,GTK+ 尝试创建 OpenGL 3.2+ 核心配置文件上下文。
从 GTK+ 3.20 开始,GdkGLContext
如果核心配置文件不可用,将尝试回退到旧配置文件。您可以检查是否GdkGLContext
通过使用处于传统模式gdk_gl_context_is_legacy() https://developer.gnome.org/gdk3/stable/GdkGLContext.html#gdk-gl-context-is-legacy.
您不能自行选择旧版上下文,因为无法与旧版上下文共享核心配置文件,并且 GDK 在内部创建 GL 上下文用于绘图。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)