2012-08-29 158 views
18

我在Linux Mint 13 XFCE上。我的問題是,當我在終端中運行命令:爲什麼glGetString(GL_VERSION)返回null /零而不是OpenGL版本?

glxinfo | grep "OpenGL version" 

我得到以下輸出:

OpenGL version string: 3.3.0 NVIDIA 295.40 

但是,當我在我的應用程序運行glGetString(GL_VERSION)則結果爲空。爲什麼這段代碼沒有得到gl_version

#include <stdio.h> 
#include <GL/glew.h> 
#include <GL/gl.h> 
#include <GL/glu.h> 
#include <GL/glut.h> 
#include <GL/glext.h> 

int main(int argc, char **argv) { 

    glutInit(&argc, argv); 
    glewInit(); 

    printf("OpenGL version supported by this platform (%s): \n", 
     glGetString(GL_VERSION)); 
} 
+3

的Qt Creator是一個IDE和已經很少做你的問題BTW。 (嗯,沒有什麼) – Bart

+1

如果你包含'glut.h',你不需要包含'gl.h'或'glu.h'。 – Derek

+0

同樣的根本原因:http://stackoverflow.com/questions/6594214/glgetintegerv-returning-garbage-value –

回答

25

glutInit()不會創建GL context。您需要當前GL上下文glewInit()glGetString()才能正常工作。

試試這個:

#include <GL/glew.h> 
#include <GL/glut.h> 
#include <cstdio> 

int main(int argc, char **argv) 
{ 
    glutInit(&argc, argv); 
    glutCreateWindow("GLUT"); 

    glewInit(); 
    printf("OpenGL version supported by this platform (%s): \n", glGetString(GL_VERSION)); 
} 
+2

這有用,謝謝。 – lyra42

+2

#include ;)謝謝你的代碼片段 – Christoph

+1

對於'glGetString','glutInitWindowSize'和'glutInitDisplayMode'也是強制的嗎? –

相關問題