2012-08-29 12 views
18

Estoy en Linux Mint 13 XFCE. Mi problema es que cuando corro en el terminal el comando:¿Por qué glGetString (GL_VERSION) devuelve nulo/cero en lugar de la versión de OpenGL?

glxinfo | grep "OpenGL version" 

me sale el siguiente resultado:

OpenGL version string: 3.3.0 NVIDIA 295.40 

Pero cuando corro el glGetString(GL_VERSION) en mi solicitud, entonces el resultado es nulo. ¿Por qué este código no obtiene el 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 es un IDE y tiene muy poco que ver con su problema por cierto. (Bueno, nada realmente) – Bart

+1

No es necesario que incluya 'gl.h' o' glu.h' si incluye 'glut.h' – Derek

+0

La misma causa raíz que: http://stackoverflow.com/questions/6594214/glgetintegerv-returning-garbage-value –

Respuesta

25

glutInit() no crea un GL context. Necesita un contexto GL actual para glewInit() y glGetString() para funcionar.

Prueba esto:

#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

Esto funciona, gracias. – lyra42

+2

#include ;) gracias por el fragmento – Christoph

+1

¿Son 'glutInitWindowSize' y' glutInitDisplayMode' también obligatorios para 'glGetString'? –

Cuestiones relacionadas