&引用;仿效;最小OpenGL规格?
我们正在使用OpenGL4.3。然而,我们担心我们正在使用的功能与我们的图形卡一起工作,但不符合OpenGL 4.3的“最低”要求 是否有可能模拟最低行为?例如,使图形卡拒绝任何非标准纹理格式等。?(也可能在软件中,速度与测试兼容性无关…) 更新 在最好的情况下,所有方面的最小设置都是完美的,因此可以保证应用程序在所有支持OpenGL 4.3的图形卡上工作。因此,这种仿真模式应该:&引用;仿效;最小OpenGL规格?,opengl,standards,emulation,Opengl,Standards,Emulation,我们正在使用OpenGL4.3。然而,我们担心我们正在使用的功能与我们的图形卡一起工作,但不符合OpenGL 4.3的“最低”要求 是否有可能模拟最低行为?例如,使图形卡拒绝任何非标准纹理格式等。?(也可能在软件中,速度与测试兼容性无关…) 更新 在最好的情况下,所有方面的最小设置都是完美的,因此可以保证应用程序在所有支持OpenGL 4.3的图形卡上工作。因此,这种仿真模式应该: 拒绝4.3中不推荐的所有功能/扩展 拒绝所有高于4.3的功能/扩展 仅支持必需的格式,不支持可选格式(例如纹理和
- 拒绝4.3中不推荐的所有功能/扩展
- 拒绝所有高于4.3的功能/扩展
- 仅支持必需的格式,不支持可选格式(例如纹理和渲染缓冲区)
- 仅支持计算所需的最小精度
- 具有可通过GetInteger查询的支持限制的最小值(例如,最大纹理图像单位为16)
如果所有这些都失败了,那么您可以解析Khronos发布的一个OpenGL常量、函数或枚举器的版本和/或扩展。我写了一个简单的项目,用半天的时间完成这项工作:。你可以根据这一原理自己编写某种验证器。有许多验证器可以在一定程度上满足你的需要。GLEW只是给你一切,让你挑选你想要的。但也有其他方法生成更具体的加载程序 例如,只生成核心OpenGL函数,完全忽略扩展 对于更全面的解决方案,有或。这两个都是标头和加载代码的生成器。但它们都允许您精确地指定您想要的OpenGL版本以及您想要的扩展。很高兴甚至有一个可以生成标题并将其下载到您的计算机上的工具
为了充分披露,我写了glLoadGen。我现在不能写完整的答案,也不能确认我的陈述。但是,在创建上下文时,需要将上下文设置为核心概要文件,定义要使用的版本并禁用前向兼容性。这应该将您的函数精确限制为指定的版本。如何做到这一点取决于您如何创建上下文。