2013-02-11 73 views
1

我想打印我的GPU中可用的扩展和版本信息。无法打印(char *)OpenGL字符串

我用一个自定义函数来检查从NEHE采取的扩展,甚至从官方网站上取得的,也没有工作。

我不能让它工作。这里发生了什么?

#include <windows.h> 
#include <GL/freeglut.h> 
#include <iostream>  

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

    cout << "test" << GL_VERSION; // WORKS . SHOWS A NUMBER 
    cout << glGetString(GL_VERSION); // DOESN´T WORK. Shows nothing, but continues 

    if (glutExtensionSupported("GL_NV_bindless_texture")) 
     cout << "YES"; // NEVER GETS PRINTED, DOESN´T MATTER WHICH EXTENSION I CHOOSE 


    char* extensiones = (char*)glGetString(GL_EXTENSIONS); 
    cout << extensiones; // DOESN´T WORK NEITHER 
} 

回答

2
glutInit(&argc, argv); 

这并不创造出的东西像glGetString()需要正常工作的一个OpenGL上下文。

你需要一路过关斩将,并创建一个窗口:

glutInit(&argc, argv); 
glutInitDisplayMode(GLUT_RGBA | GLUT_DOUBLE); 
glutCreateWindow("Window"); 
// you can use GL functions below here 
glutExtensionSupported(...); 
glGetString(...); 
+0

呀!我爱你简短而好的答案。非常感谢,这对我有效。今天我从OpenGL学到的新东西。 .... – darkgaze 2013-02-12 20:43:03