# HG changeset patch # User nkeynes # Date 1289461897 -36000 # Node ID 1038800cecd86c07a78934dcac4a95e7fbac484d # Parent da6124fceec6adb665a29051f9dc18cd2b33e09f Add convenience gl_check_error() function --- a/src/pvr2/glutil.c Wed Nov 10 08:37:42 2010 +1000 +++ b/src/pvr2/glutil.c Thu Nov 11 17:51:37 2010 +1000 @@ -167,3 +167,27 @@ display_driver->print_info(out); } } + +gboolean gl_check_error(const char *context) +{ + GLint err = glGetError(); + if( err != 0 ) { + const char *s; + switch( err ) { + case GL_INVALID_ENUM: s = "Invalid enum"; break; + case GL_INVALID_VALUE: s = "Invalid value"; break; + case GL_INVALID_OPERATION: s = "Invalid operation"; break; + case GL_STACK_OVERFLOW: s = "Stack overflow"; break; + case GL_STACK_UNDERFLOW: s = "Stack underflow"; break; + case GL_OUT_OF_MEMORY: s = "Out of memory"; break; + default: s = "Unknown error"; break; + } + if( context ) { + WARN( "%s: GL error: %x (%s)\n", context, err, s ); + } else { + WARN( "GL error: %x (%s)\n", err, s ); + } + return TRUE; + } + return FALSE; +} --- a/src/pvr2/glutil.h Wed Nov 10 08:37:42 2010 +1000 +++ b/src/pvr2/glutil.h Thu Nov 11 17:51:37 2010 +1000 @@ -40,6 +40,12 @@ void glPrintInfo( FILE *out ); /** + * Check for a GL error and print a message if there is one + * @param context If not null, a string to be printed along side an error message + * @return TRUE if there was an error, otherwise FALSE + */ +gboolean gl_check_error( const char *context ); +/** * Test if secondary color (GL_COLOR_SUM) is supported. */ gboolean isGLSecondaryColorSupported();