In this function you can do whatever you like, such as setting a breakpoint in the debugger, or printing the error to a log file. Yes, there is a better way! ? OpenGL 4.3 and later support the glDebugMessageCallback API, which allows you to specify a function in your app that GL will call to issue a warning or error. My graphics card supports OpenGL 4.4 and I am using C++.
How do I do proper error handling with OpenGL ? Surely this isn't the way to go, right ? The source code looks so ugly. Now if I write it with glGetError(), it would look something like unsigned int err = 0 GlBufferData(GL_ARRAY_BUFFER, 8 * sizeof(float), vertices, GL_STATIC_DRAW) Here's an example, unsigned int buffer = 0 One I can't find the line number on which the error has occurred, second it doesn't tell me properly why the error occurred (not a big problem though) and lastly I have to include a while loop after each OpenGL function call. Also I have to call it in while loop to get all the errors. To my understanding, glGetError() will return one or more error code(s) if I call it after calling a "normal" OpenGL function, provided I have made some error.
I looked up on internet on how to do error handling in OpenGL and in the documentations I found glGetError(). Whenever I make semantic or syntax errors in OpenGL, either I get a black screen or the program crashes.