无法打印(char *)OpenGL字符串

时间:2013-02-11 20:04:48

标签: opengl printing char version

我想打印GPU中可用的扩展程序和版本信息。

我使用自定义函数检查从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
}

1 个答案:

答案 0 :(得分: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( ... );