c++ - glfwGetGLVersion 失败?

标签 c++ opengl glfw

在尝试找出我使用的 OpenGL 版本类型时,我遵循了此处的建议:link

我有以下代码:

int major, minor, rev;
glfwGetGLVersion(&major, &minor, &rev);
fprintf(stderr, "OpenGL version recieved: %d.%d.%d", major, minor, rev);

我得到以下输出:

OpenGL version recieved: 2130567168.6.0

我认为这是某种初始化问题,所以我调整如下:

int major=0, minor=0, rev=0;
glfwGetGLVersion(&major, &minor, &rev);
fprintf(stderr, "OpenGL version recieved: %d.%d.%d", major, minor, rev);

并收到以下输出:

OpenGL version recieved: 0.0.0

我一点也不知道我在这里做错了什么。有什么想法吗?

解决了。我必须在 GLFW 启用 OpenGL 上下文之后放置版本查询。

这是有道理的,但从学习者的角度来看有点愚蠢,因为上面链接的示例建议使用它来首先建立上下文。

最佳答案

尝试使用 glGetString(GL_VERSION):

const GLubyte *version = glGetString(GL_VERSION);

关于c++ - glfwGetGLVersion 失败?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12960071/

相关文章:

c++ - 将鼠标坐标转换为世界空间坐标

c++ - 无法使用三元运算符有条件地分配 `istream &`?

c++ - AIX 服务器中的 g++ 编译 - 抛出核心转储

c++ - 为什么 "stdint.h"的实现不同意 UINT8_C 的定义?

c++ - 如何在DLL和exe中使用Glad

opengl - 如何使用 GLSL 正确解压缩 V210 视频帧?

python - 在Python中使用OpenGL渲染纹理不是

c++ - 使用 OpenGL 和 GLFW 的简单三角形

c++ - 使用不同的 VAO 和 VBO 绘制多个三角形

c++ - 对 std::optional 的转发引用构造函数的约束