mirror of
https://gitlab.freedesktop.org/cairo/cairo.git
synced 2026-04-28 01:50:46 +02:00
gl: Print GL errors when releasing the device
Don't scatter calls to error printing around everywhere, instead do it in the one place where it matters. Also, convert the functions to macros, so we can use __FILE__ and __LINE__ when printing a warning
This commit is contained in:
parent
59b31aeed9
commit
4571055c46
2 changed files with 11 additions and 26 deletions
|
|
@ -194,6 +194,12 @@ typedef struct _cairo_gl_composite_setup {
|
|||
|
||||
cairo_private extern const cairo_surface_backend_t _cairo_gl_surface_backend;
|
||||
|
||||
#define _cairo_gl_check_error() do { \
|
||||
GLenum err; \
|
||||
while ((err = glGetError ())) \
|
||||
fprintf (stderr, "%s:%d: GL error 0x%08x\n", __FILE__,__LINE__, (int) err); \
|
||||
} while (0)
|
||||
|
||||
static inline cairo_device_t *
|
||||
_cairo_gl_context_create_in_error (cairo_status_t status)
|
||||
{
|
||||
|
|
@ -251,11 +257,10 @@ _cairo_gl_context_acquire (cairo_device_t *device,
|
|||
return CAIRO_STATUS_SUCCESS;
|
||||
}
|
||||
|
||||
static cairo_always_inline void
|
||||
_cairo_gl_context_release (cairo_gl_context_t *ctx)
|
||||
{
|
||||
cairo_device_release (&ctx->base);
|
||||
}
|
||||
#define _cairo_gl_context_release(ctx) do {\
|
||||
_cairo_gl_check_error (); \
|
||||
cairo_device_release (&(ctx)->base); \
|
||||
} while (0)
|
||||
|
||||
cairo_private void
|
||||
_cairo_gl_set_destination (cairo_gl_context_t *ctx, cairo_gl_surface_t *surface);
|
||||
|
|
|
|||
|
|
@ -319,7 +319,7 @@ _cairo_gl_surface_create_scratch (cairo_gl_context_t *ctx,
|
|||
int height)
|
||||
{
|
||||
cairo_gl_surface_t *surface;
|
||||
GLenum err, format;
|
||||
GLenum format;
|
||||
cairo_status_t status;
|
||||
|
||||
assert (width <= ctx->max_framebuffer_size && height <= ctx->max_framebuffer_size);
|
||||
|
|
@ -379,10 +379,6 @@ _cairo_gl_surface_create_scratch (cairo_gl_context_t *ctx,
|
|||
0);
|
||||
ctx->current_target = NULL;
|
||||
|
||||
while ((err = glGetError ())) {
|
||||
fprintf (stderr, "GL error in surface create: 0x%08x\n", err);
|
||||
}
|
||||
|
||||
status = glCheckFramebufferStatusEXT (GL_FRAMEBUFFER_EXT);
|
||||
if (status != GL_FRAMEBUFFER_COMPLETE_EXT)
|
||||
fprintf (stderr, "destination is framebuffer incomplete\n");
|
||||
|
|
@ -740,7 +736,6 @@ _cairo_gl_surface_get_image (cairo_gl_surface_t *surface,
|
|||
{
|
||||
cairo_image_surface_t *image;
|
||||
cairo_gl_context_t *ctx;
|
||||
GLenum err;
|
||||
GLenum format, type;
|
||||
cairo_format_t cairo_format;
|
||||
unsigned int cpp;
|
||||
|
|
@ -792,9 +787,6 @@ _cairo_gl_surface_get_image (cairo_gl_surface_t *surface,
|
|||
if (surface->fb == 0 && GLEW_MESA_pack_invert)
|
||||
glPixelStorei (GL_PACK_INVERT_MESA, 0);
|
||||
|
||||
while ((err = glGetError ()))
|
||||
fprintf (stderr, "GL error 0x%08x\n", (int) err);
|
||||
|
||||
_cairo_gl_context_release (ctx);
|
||||
|
||||
*image_out = image;
|
||||
|
|
@ -1813,7 +1805,6 @@ _cairo_gl_surface_composite_component_alpha (cairo_operator_t op,
|
|||
struct gl_point *texcoord_mask = texcoord_mask_stack;
|
||||
cairo_status_t status;
|
||||
int num_vertices, i;
|
||||
GLenum err;
|
||||
cairo_gl_composite_setup_t setup;
|
||||
cairo_gl_shader_program_t *ca_source_program = NULL;
|
||||
cairo_gl_shader_program_t *ca_source_alpha_program = NULL;
|
||||
|
|
@ -1984,9 +1975,6 @@ _cairo_gl_surface_composite_component_alpha (cairo_operator_t op,
|
|||
glDisable (GL_TEXTURE_1D);
|
||||
glDisable (ctx->tex_target);
|
||||
|
||||
while ((err = glGetError ()))
|
||||
fprintf (stderr, "GL error 0x%08x\n", (int) err);
|
||||
|
||||
CLEANUP:
|
||||
_cairo_gl_operand_destroy (&setup.src);
|
||||
if (mask != NULL)
|
||||
|
|
@ -2026,7 +2014,6 @@ _cairo_gl_surface_composite (cairo_operator_t op,
|
|||
struct gl_point *texcoord_mask = texcoord_mask_stack;
|
||||
cairo_status_t status;
|
||||
int num_vertices, i;
|
||||
GLenum err;
|
||||
cairo_gl_composite_setup_t setup;
|
||||
|
||||
if (! _cairo_gl_operator_is_supported (op))
|
||||
|
|
@ -2235,9 +2222,6 @@ _cairo_gl_surface_composite (cairo_operator_t op,
|
|||
glDisable (GL_TEXTURE_1D);
|
||||
glDisable (ctx->tex_target);
|
||||
|
||||
while ((err = glGetError ()))
|
||||
fprintf (stderr, "GL error 0x%08x\n", (int) err);
|
||||
|
||||
if (vertices != vertices_stack)
|
||||
free (vertices);
|
||||
|
||||
|
|
@ -2797,7 +2781,6 @@ _cairo_gl_surface_create_span_renderer (cairo_operator_t op,
|
|||
cairo_status_t status;
|
||||
cairo_surface_attributes_t *src_attributes;
|
||||
const cairo_rectangle_int_t *extents;
|
||||
GLenum err;
|
||||
|
||||
renderer = calloc (1, sizeof (*renderer));
|
||||
if (unlikely (renderer == NULL))
|
||||
|
|
@ -2877,9 +2860,6 @@ _cairo_gl_surface_create_span_renderer (cairo_operator_t op,
|
|||
glTexEnvi (GL_TEXTURE_ENV, GL_OPERAND1_ALPHA, GL_SRC_ALPHA);
|
||||
}
|
||||
|
||||
while ((err = glGetError ()))
|
||||
fprintf (stderr, "GL error 0x%08x\n", (int) err);
|
||||
|
||||
return &renderer->base;
|
||||
}
|
||||
|
||||
|
|
|
|||
Loading…
Add table
Reference in a new issue