我开始阅读 OpenGL 4.0 Shading Language version 1。在本书的开头,他们展示了找出 OpenGL 版本的代码,但它不起作用。我想知道如何确定设置是否正确。
#include <GL/glew.h>
#include <GL/gl.h>
#include <GL/glu.h>
#include <iostream>
#include <stdio.h>
int main(int argc, char** argv) {
/*
GLenum err = glewInit();
if( GLEW_OK != err ) {
fprintf(stderr, "Error initializing GLEW: %s\n",
glewGetErrorString(err) );
}
*/
const GLubyte *renderer = glGetString( GL_RENDERER );
const GLubyte *vendor = glGetString( GL_VENDOR );
const GLubyte *version = glGetString( GL_VERSION );
const GLubyte *glslVersion = glGetString( GL_SHADING_LANGUAGE_VERSION );
GLint major, minor;
glGetIntegerv(GL_MAJOR_VERSION, &major);
glGetIntegerv(GL_MINOR_VERSION, &minor);
printf("GL Vendor : %s\n", vendor);
printf("GL Renderer : %s\n", renderer);
printf("GL Version (string) : %s\n", version);
printf("GL Version (integer) : %d.%d\n", major, minor);
printf("GLSL Version : %s\n", glslVersion);
}
代码给了我空输出。我不认为这是正确的,因为在开始阅读本书之前,我在网上找到了在 openGL 2.0 中显示一个有效的框的代码。
GL Vendor : (null)
GL Renderer : (null)
GL Version (string) : (null)
GL Version (integer) : 0.0
GLSL Version : (null)
我还查看了这个链接,它提供了关于我的显卡的信息。我认为这与我安装的开发包无关。
我需要找到一种方法来确认我已经安装了 openGL 4.0。我更喜欢终端命令或修复我的代码。
编辑:我添加了一个关于 McLovin 提供的代码的附加问题:我注意到我得到一个额外的行“分段错误(核心转储)”。我有一个 7970 AMD GPU。这个输出是错误的吗?