2012-08-29 53 views
18

मैं लिनक्स मिंट 13 एक्सएफसीई पर हूं। मेरी समस्या यह है कि जब मैं टर्मिनल में कमांड चलाएँ:GlGetString (GL_VERSION) ओपनजीएल संस्करण के बजाय शून्य/शून्य क्यों लौटाता है?

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

क्यूटी निर्माता एक IDE है और बहुत कम btw आपकी समस्या से कोई लेना देना नहीं है। (ठीक है, वास्तव में कुछ भी नहीं) – Bart

+1

यदि आपको 'gl.h.h' – Derek

+0

समान रूट कारण शामिल है, तो आपको' gl.h' या 'glu.h' शामिल करने की आवश्यकता नहीं है: http://stackoverflow.com/questions/6594214/glgetintegerv-returning-garbage-value –

उत्तर

25

glutInit() एक GL context नहीं बनाता है। काम करने के लिए आपको 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

# शामिल ;) स्निपेट – Christoph

+1

के लिए धन्यवाद 'glutInitWindowSize' और' glutInitDisplayMode' 'glGetString' के लिए भी अनिवार्य है? –