Ich benutze GLEW und freeglut. Aus irgendeinem Grund gibt glGetError() nach einem Aufruf von glewInit() den Fehlercode 1280 zurück, sogar mit glewExperimental = GL_FALSE.OpenGL: glGetError() gibt ungültige enum nach Aufruf von glewInit()
Ich kann die Shader nicht kompilieren, glGetProgramInfoLog() gibt "Vertex Shader (s) wurden nicht erfolgreich kompiliert, bevor glLinkProgram() aufgerufen wurde. Link fehlgeschlagen." Ich konnte die Shader vorher 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?
Machst du irgendetwas mit GlewInitResult? Vielleicht solltest du glewGetErrorString anstelle von glGetError aufrufen (zum Erkennen von Problemen) – Tim
Ich mache nichts mit GlewInitResult. glewGetErrorString gibt "Kein Fehler" zurück. – Martin