OpenGL: glGetError () gibt nach Aufruf von glewInit () eine ungültige Aufzählung zurück

Ich benutze GLEW und Freeglut. Aus irgendeinem Grund gibt glGetError () nach einem Aufruf von glewInit () den Fehlercode 1280 zurück, selbst mit glewExperimental = GL_FALSE.

Ich kann die Shader nicht kompilieren, glGetProgramInfoLog () gibt zurück "Vertex-Shader wurden nicht erfolgreich kompiliert, bevor glLinkProgram () aufgerufen wurde. Link fehlgeschlagen." Ich konnte die Shader schon einmal kompilieren.

Neuinstallation der Treiber hat nicht geholfen.

Hier ist mein Code:

int main(int argc, char* argv[])
{
    GLenum GlewInitResult, res;

    InitWindow(argc, argv);

    res = glGetError(); // res = 0

    glewExperimental = GL_TRUE;
    GlewInitResult = glewInit();    

    fprintf(stdout, "ERROR: %s\n", glewGetErrorString(GlewInitResult)); // "No error"
    res = glGetError(); // res = 1280

    glutMainLoop();

    exit(EXIT_SUCCESS);
}

void InitWindow(int argc, char* argv[])
{
    glutInit(&argc, argv);

    glutInitContextVersion(4, 0);
    glutInitContextFlags(GLUT_FORWARD_COMPATIBLE);
    glutInitContextProfile(GLUT_CORE_PROFILE);

    glutSetOption(GLUT_ACTION_ON_WINDOW_CLOSE,
    GLUT_ACTION_GLUTMAINLOOP_RETURNS);

    glutInitWindowPosition(0, 0);
    glutInitWindowSize(CurrentWidth, CurrentHeight);
    glutInitDisplayMode(GLUT_DEPTH | GLUT_DOUBLE | GLUT_RGBA);

    WindowHandle = glutCreateWindow(WINDOW_TITLE);

    GLenum errorCheckValue = glGetError();

    if (WindowHandle < 1)
    {
        fprintf(stderr, "ERROR: Could not create new rendering window.\n");
        exit(EXIT_FAILURE);
    }

    glutReshapeFunc(ResizeFunction);
    glutDisplayFunc(RenderFunction);
    glutIdleFunc(IdleFunction);
    glutTimerFunc(0, TimerFunction, 0);
    glutCloseFunc(Cleanup);
    glutKeyboardFunc(KeyboardFunction);
}

Was mache ich falsch?

Antworten auf die Frage(2)

Ihre Antwort auf die Frage