2012-08-29 19 views
18

私はLinux Mint 13 XFCEです。私の問題は、私はターミナルでコマンドを実行するとことです:なぜglGetString(GL_VERSION)はOpenGLバージョンの代わりにnull/zeroを返すのですか?

glxinfo | grep "OpenGL version" 

は、私は次のような出力を得る:

OpenGL version string: 3.3.0 NVIDIA 295.40 

をしかし、私は自分のアプリケーションでglGetString(GL_VERSION)を実行すると、結果はNULLです。なぜこのコードは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で、ところで、あなたの問題とはほとんど関係がありません。 (まあ、実際には何もありません) – Bart

+1

'glut.h 'を含める場合は' gl.h'または 'glu.h'を含める必要はありません – Derek

+0

同じ根本原因:http://stackoverflow.com/questions/6594214/glgetintegerv-returned-garbage-value –

答えて

25

glutInit()GL contextを作成しません。 glewInit()glGetString()の現在のGLコンテキストが必要です。

これを試してみてください:

#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

'glutInitWindowSize'と' glutInitDisplayMode'は 'glGetString'でも必須ですか? –

関連する問題