From 4ad28c931aaf930afd7dace5805578acc4915e1f Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Konstantin=20Ka=CC=88fer?= Date: Wed, 10 Dec 2014 13:46:26 +0100 Subject: only report STACK_OVERFLOW/STACK_UNDERFLOW when the GL implementation has them --- src/mbgl/platform/gl.cpp | 11 +++++++---- 1 file changed, 7 insertions(+), 4 deletions(-) (limited to 'src') 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)); } } -- cgit v1.2.1