如何在现代 Windows 上运行旧版 OpenGL 应用程序

如何在现代 Windows 上运行旧版 OpenGL 应用程序

我想在现代 Windows 10(64 位)上运行 2011 年左右的 OpenGL 应用程序,但不知道该怎么做。问题中的应用程序是一个研究演示普罗兰

问题是,当我尝试启动应用程序时,它失败了,因为它无法编译其 GLSL 着色器。这是因为它们没有被适当地标记为使用OpenGL核心配置文件

我尝试以管理员身份运行该应用程序,并在 Windows 7 兼容模式下运行它,但不出所料,它没有帮助。我还尝试通过注入缺失的 来修改 DLL 文件,因为它们包含着色器的源代码#version 330 core,但这只会导致应用程序立即崩溃。

作为最后的手段,如果没有其他解决方案,我会尝试从源代码进行编译,但我宁愿先看看是否有更简单的解决方案,因为他们的构建系统非常不友好。

我认为关键在于以某种方式告诉 OpenGL 驱动程序,它应该将着色器视为核心配置文件,尽管它们没有被标记为核心配置文件,或者可能以某种方式模拟 2011 年的驱动程序。或者,也许可以修改带有着色器源代码的 DLL,但不会损坏它们。我认为着色器源代码位于全局 c 字符串中,例如const char* vertex = "shader source here"

该错误信息error C5052: gl_FragCoord is not accessible in this profile似乎发生在 的大气着色器中proland-atmo-4_0.dll

相关内容