gpt4 book ai didi

opengl - GtKGLArea 无法创建 OpenGL 2.1 上下文

转载 作者:行者123 更新时间:2023-12-04 13:44:13 30 4
gpt4 key购买 nike

我目前正在为我的游戏引擎项目开发一个简单的编辑器,而该项目似乎在我的主工作站(支持 OpenGL 3.3+ 的 GTX 650Ti)上运行得很好,但在我测试时它似乎被破坏了它在我的测试桌面上(GMA4500 最大支持 OpenGL 2.1)。

即使我使用 gtk_gl_area_set_required_version() 将 GL 版本指定为 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 ) 来排除故障并获得相同的结果。

已经在网上搜索过,但没有找到任何解决方案。虽然有人在 ebassi ( https://github.com/ebassi/glarea-example/issues/2 ) 的 glarea 示例中提到了相同的 exatct 问题

有什么解决办法吗?

操作系统:Fedora 23GTK 版本 3.18


编辑:操作系统 (Fedora 23) 使用 OpenGL 2.1(通过 glxinfo 检查),考虑到 GTK+ 源代码中给出的演示,我假设 GTK 使用 GL 3.0+ 作为默认设置。 有什么方法可以解决这个问题吗?(根据 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 上下文用于绘图。

关于opengl - GtKGLArea 无法创建 OpenGL 2.1 上下文,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37909072/

30 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com