gl: Pretty print the error GLenum.

This commit is contained in:
Chris Wilson 2010-05-17 10:33:46 +01:00
parent 7ef1bd22de
commit 2325d755b0
2 changed files with 21 additions and 1 deletions

View file

@ -204,10 +204,11 @@ typedef struct _cairo_gl_composite {
cairo_private extern const cairo_surface_backend_t _cairo_gl_surface_backend;
cairo_private const char *_cairo_gl_error_to_string (GLenum err);
#define _cairo_gl_check_error() do { \
GLenum err; \
while ((err = glGetError ())) \
fprintf (stderr, "%s:%d: GL error 0x%08x\n", __FILE__,__LINE__, (int) err); \
fprintf (stderr, "%s:%d: GL error 0x%04x: %s\n", __FILE__,__LINE__, (int) err, _cairo_gl_error_to_string (err)); \
} while (0)
static inline cairo_device_t *

View file

@ -58,6 +58,25 @@ static cairo_bool_t _cairo_surface_is_gl (cairo_surface_t *surface)
return surface->backend == &_cairo_gl_surface_backend;
}
const char *_cairo_gl_error_to_string (GLenum err)
{
switch ((int) err) {
case GL_NO_ERROR:
ASSERT_NOT_REACHED;
return "success";
case GL_INVALID_ENUM: return "invalid enum";
case GL_INVALID_VALUE: return "invalid value";
case GL_INVALID_OPERATION: return "invalid operation";
case GL_STACK_OVERFLOW: return "stack overflow";
case GL_STACK_UNDERFLOW: return "stack underflow";
case GL_OUT_OF_MEMORY: return "out of memory";
default:
return "unknown error";
}
}
cairo_bool_t
_cairo_gl_get_image_format_and_type (pixman_format_code_t pixman_format,
GLenum *internal_format, GLenum *format,