[cairo] [PATCH] gl/msaa: Fix scissor bounds

Martin Robinson mrobinson at igalia.com
Fri Nov 4 12:34:56 PDT 2011


Scissor bounds should depend on both the height and y coordinate
of the bounding box. Also remove _cairo_gl_y_flip() since we were
the last caller.
---
 src/cairo-gl-msaa-compositor.c |    5 +++--
 src/cairo-gl-private.h         |    9 ---------
 2 files changed, 3 insertions(+), 11 deletions(-)

diff --git a/src/cairo-gl-msaa-compositor.c b/src/cairo-gl-msaa-compositor.c
index 2210da6..316dfc8 100644
--- a/src/cairo-gl-msaa-compositor.c
+++ b/src/cairo-gl-msaa-compositor.c
@@ -251,8 +251,9 @@ static void
 _scissor_to_rectangle (cairo_gl_surface_t *surface,
 		       const cairo_rectangle_int_t *r)
 {
-    int y = _cairo_gl_y_flip (surface, r->y);
-
+    int y = r->y;
+    if (_cairo_gl_surface_is_texture (surface) == FALSE)
+	y = surface->height - (r->y + r->height);
     glScissor (r->x, y, r->width, r->height);
     glEnable (GL_SCISSOR_TEST);
 }
diff --git a/src/cairo-gl-private.h b/src/cairo-gl-private.h
index cd7c8ae..19c7c1f 100644
--- a/src/cairo-gl-private.h
+++ b/src/cairo-gl-private.h
@@ -542,15 +542,6 @@ _cairo_gl_surface_show_glyphs (void			*abstract_dst,
 			       const cairo_clip_t	*clip,
 			       int			*remaining_glyphs);

-static inline int
-_cairo_gl_y_flip (cairo_gl_surface_t *surface, int y)
-{
-    if (surface->fb)
-	return y;
-    else
-	return (surface->height - 1) - y;
-}
-
 cairo_private cairo_status_t
 _cairo_gl_context_init_shaders (cairo_gl_context_t *ctx);

-- 
1.7.5.4



More information about the cairo mailing list