【发布时间】:2021-12-01 08:44:39
【问题描述】:
最近我意识到我的应用程序正在使用仅在 OpenGL 4.5 - glCreateTextures 上可用的 OpenGL 调用,而我意识到这一点只是因为我试图在仅支持 OpenGL 4.1 的 MacOS 计算机上运行该应用程序并且它在那里崩溃了.
应用程序请求 OpenGL 4.0 核心配置文件、3.2 核心配置文件和 3.2 前向兼容核心配置文件(按此顺序),但尽管获得了 4.0 配置文件,但对 glCreateTextures 的调用仍会成功,没有任何警告。
我希望我的应用程序可以在任何支持 3.2 的设备上运行,但我无法定期访问实际上不支持 4.5 的硬件。在 API 和着色器使用中可能存在其他类似的问题,这些问题会妨碍与较低 OpenGL 版本的兼容性,我想了解它们。
我如何测试我的应用程序以确保它可以与某些特定版本的 OpenGL(3.2、4.0)一起工作,而无需在支持较新版本的硬件上实际运行它?
在我的情况下,应用程序在 JVM 上运行(用 Scala 或 Java 编写)并使用 LWJGL + GLFW 绑定,但即使知道如何对原生 C/C++ 应用程序执行此操作也会有所帮助,如果有办法,它应该有可能将其转换为 JVM 世界。
【问题讨论】:
标签: opengl lwjgl backwards-compatibility