OpenGL: glGetError() returns invalid enum after call to glewInit()
Did you see the comment on this wiki page?
http://www.opengl.org/wiki/OpenGL_Loading_Library
It mentions why this occurs, and it says "in some cases you may still get GL_INVALID_ENUM after specifying glewExperimental depending on your glew version".
It sounds like it might be safe to ignore as long as you're not seeing any other problems.
Related videos on Youtube
Martin
JavaScript, Angular, Node. I hope that one day I will answer more questions than ask!
Updated on March 24, 2020Comments
-
Martin about 4 years
I use GLEW and freeglut. For some reason, after a call to glewInit(), glGetError() returns error code 1280, even with glewExperimental = GL_FALSE.
I cannot compile the shaders, glGetProgramInfoLog() returns "Vertex shader(s) were not successfully compiled before glLinkProgram() was called. Link failed." I was able to compile the shaders before.
Reinstalling the drivers didn't help.
Here's my 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); }
What I am doing wrong?
-
Tim almost 12 yearsAre you doing anything with GlewInitResult? Maybe you should be calling glewGetErrorString instead of glGetError (for detecting glew problems)
-
Martin almost 12 yearsI don't do anything with GlewInitResult. glewGetErrorString returns "No error".
-
-
Martin almost 12 yearsI tried to comment out the line, I still get invalid enum. I cannot compile shaders, glGetProgramInfoLog() returns "Vertex shader(s) were not successfully compiled before glLinkProgram() was called. Link failed."
-
Tim almost 12 yearsYou should verify the shaders before you try to link the program: glGetShaderiv(GL_COMPILE_STATUS) and glGetShaderInfoLog(). That will tell you why they fail to compile. @malymato