From af2ac29faf371f2eacbecaba534107eb6127d124 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Marco=20Trevisan=20=28Trevi=C3=B1o=29?= Date: Tue, 2 Dec 2014 14:59:47 +0100 Subject: [PATCH] gdkgl: pass the correct number of quads to gdk_gl_texture_quads And call it only if that's the case --- gdk/gdkgl.c | 9 ++++++--- 1 file changed, 6 insertions(+), 3 deletions(-) diff --git a/gdk/gdkgl.c b/gdk/gdkgl.c index 6791960100..af47d8c45d 100644 --- a/gdk/gdkgl.c +++ b/gdk/gdkgl.c @@ -477,7 +477,7 @@ gdk_cairo_draw_from_gl (cairo_t *cr, int unscaled_window_height; GLint texture_width; GLint texture_height; - int i, n_rects; + int i, n_rects, n_quads; GdkTexturedQuad *quads; cairo_rectangle_int_t clip_rect; @@ -530,6 +530,7 @@ gdk_cairo_draw_from_gl (cairo_t *cr, glScissor (clip_rect.x, FLIP_Y (clip_rect.y + clip_rect.height), clip_rect.width, clip_rect.height); + n_quads = 0; n_rects = cairo_region_num_rectangles (clip_region); quads = g_new (GdkTexturedQuad, n_rects); for (i = 0; i < n_rects; i++) @@ -559,7 +560,7 @@ gdk_cairo_draw_from_gl (cairo_t *cr, (clipped_src_x + dest.width) / (float)texture_width, clipped_src_y / (float)texture_height, }; - quads[i] = quad; + quads[n_quads++] = quad; if (impl_window->current_paint.flushed_region) { @@ -578,7 +579,9 @@ gdk_cairo_draw_from_gl (cairo_t *cr, } } - gdk_gl_texture_quads (paint_context, GL_TEXTURE_2D, n_rects, quads); + if (n_quads > 0) + gdk_gl_texture_quads (paint_context, GL_TEXTURE_2D, n_quads, quads); + g_free (quads); if (alpha_size != 0)