diff options
author | Konstantin Käfer <mail@kkaefer.com> | 2014-12-10 13:46:26 +0100 |
---|---|---|
committer | Konstantin Käfer <mail@kkaefer.com> | 2014-12-10 13:46:26 +0100 |
commit | 4ad28c931aaf930afd7dace5805578acc4915e1f (patch) | |
tree | a7e897030647057d37be01f6ade37e3d7e8ea8b4 /src/mbgl | |
parent | 93d56294cf6f7af39679a871f51087be34f813a2 (diff) | |
download | qtlocation-mapboxgl-4ad28c931aaf930afd7dace5805578acc4915e1f.tar.gz |
only report STACK_OVERFLOW/STACK_UNDERFLOW when the GL implementation has them
Diffstat (limited to 'src/mbgl')
-rw-r--r-- | src/mbgl/platform/gl.cpp | 11 |
1 files changed, 7 insertions, 4 deletions
diff --git a/src/mbgl/platform/gl.cpp b/src/mbgl/platform/gl.cpp index e766ac3310..95fad969f7 100644 --- a/src/mbgl/platform/gl.cpp +++ b/src/mbgl/platform/gl.cpp @@ -75,8 +75,8 @@ PFNGLPROGRAMBINARYPROC ProgramBinary = nullptr; PFNGLPROGRAMPARAMETERIPROC ProgramParameteri = nullptr; void checkError(const char *cmd, const char *file, int line) { - GLenum err; - while ((err = glGetError()) != GL_NO_ERROR) { + const GLenum err = glGetError(); + if (err != GL_NO_ERROR) { const char *error = nullptr; switch (err) { case GL_INVALID_ENUM: error = "INVALID_ENUM"; break; @@ -84,13 +84,16 @@ void checkError(const char *cmd, const char *file, int line) { case GL_INVALID_OPERATION: error = "INVALID_OPERATION"; break; case GL_INVALID_FRAMEBUFFER_OPERATION: error = "INVALID_FRAMEBUFFER_OPERATION"; break; case GL_OUT_OF_MEMORY: error = "OUT_OF_MEMORY"; break; +#ifdef GL_STACK_UNDERFLOW case GL_STACK_UNDERFLOW: error = "STACK_UNDERFLOW"; break; +#endif +#ifdef GL_STACK_OVERFLOW case GL_STACK_OVERFLOW: error = "STACK_OVERFLOW"; break; +#endif default: error = "(unknown)"; break; } - mbgl::Log::Error(mbgl::Event::OpenGL, "%s: Error GL_%s (0x%04X) - %s:%i", cmd, error, err, file, line); - exit(1); + throw ::mbgl::gl::Error(err, std::string(cmd) + ": Error GL_" + error + " - " + file + ":" + std::to_string(line)); } } |