gpt4 book ai didi

c++ - 如何检查 OpenGL 版本一致性?

转载 作者:可可西里 更新时间:2023-11-01 18:37:43 25 4
gpt4 key购买 nike

我想确保我的应用程序符合 OpenGL 2.1。我该如何检查?

因为我的电脑支持GL4.4,所以即使我使用,例如glGenVertexArrays(),它也会成功运行。但是 glGenVertexArrays() 仅适用于 GL3+。

因此,我想验证我的应用是否仅使用 GL2.1 功能。一种方法是在我仅支持 GL2.1 的旧 PC 上运行它,但我正在寻找一种更简单的方法。

最佳答案

如果您找到支持生成版本特定 header 的扩展加载器,如@datenwolf 所述,那可能是您最简单的解决方案。如有必要,您可以尝试其他选项。

您可以在 https://www.opengl.org/registry 找到官方 OpenGL 头文件包含按版本分组的定义,并包含在预处理器条件中。布局如下所示:

...
#ifndef GL_VERSION_2_1
#define GL_VERSION_2_1 1
// GL 2.1 definitions
#endif
#ifndef GL_VERSION_3_0
#define GL_VERSION_3_0 1
// GL 3.0 definitions
#endif
#ifndef GL_VERSION_3_1
#define GL_VERSION_3_1 1
// GL 3.1 definitions
#endif
...

您至少应该能够包含官方 header 以进行版本测试。如果通过定义相应的预处理器符号来禁用不想使用的版本,则在尝试使用这些版本的功能时会出现编译错误。例如 GL 2.1:

#define GL_VERSION_3_0 1
#define GL_VERSION_3_1 1
#define GL_VERSION_3_2 1
#define GL_VERSION_3_3 1
#define GL_VERSION_4_0 1
#define GL_VERSION_4_1 1
#define GL_VERSION_4_2 1
#define GL_VERSION_4_3 1
#define GL_VERSION_4_4 1
#define GL_VERSION_4_5 1
#include <GL/glext.h>

// your code

关于c++ - 如何检查 OpenGL 版本一致性?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25827344/

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