OpenGL: glGetError () retorna um enum inválido após a chamada para glewInit ()

Eu uso o GLEW e o freeglut. Por algum motivo, após uma chamada para glewInit (), glGetError () retorna o código de erro 1280, mesmo com glewExperimental = GL_FALSE.

Eu não consigo compilar os shaders, glGetProgramInfoLog () retorna "Vertex shader (s) não foram compilados com sucesso antes de glLinkProgram () ser chamado. Link falhou." Eu fui capaz de compilar os shaders antes.

Reinstalar os drivers não ajudou.

Aqui está meu código:

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);
}

O que estou fazendo errado?

questionAnswers(2)

yourAnswerToTheQuestion