summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorChris Wilson <chris@chris-wilson.co.uk>2009-07-31 11:35:45 +0100
committerChris Wilson <chris@chris-wilson.co.uk>2009-07-31 13:17:23 +0100
commit53cbbad8fbbd2b9423a5eb179d0cec3fc7678791 (patch)
tree16a9868318479083088b4aefa3424e68b57849a6 /src
parente283e53563915daa11566ba006e1bf1e12b0d2fc (diff)
[xlib] Disable extended repeat modes if RENDER < 0.10
The extended repeat modes were only introduced in RENDER 0.10, so disable them if the server reports an earlier version. This is in addition to disabling the repeat modes if we know (guess!) the server to have a buggy implementation.
Diffstat (limited to 'src')
-rw-r--r--src/cairo-xlib-surface.c4
1 files changed, 4 insertions, 0 deletions
diff --git a/src/cairo-xlib-surface.c b/src/cairo-xlib-surface.c
index 4bc244a5..7ffd1b8a 100644
--- a/src/cairo-xlib-surface.c
+++ b/src/cairo-xlib-surface.c
@@ -152,6 +152,8 @@ static const XTransform identity = { {
#define CAIRO_SURFACE_RENDER_HAS_PICTURE_TRANSFORM(surface) CAIRO_SURFACE_RENDER_AT_LEAST((surface), 0, 6)
#define CAIRO_SURFACE_RENDER_HAS_FILTERS(surface) CAIRO_SURFACE_RENDER_AT_LEAST((surface), 0, 6)
+#define CAIRO_SURFACE_RENDER_HAS_EXTENDED_REPEAT(surface) CAIRO_SURFACE_RENDER_AT_LEAST((surface), 0, 10)
+
#define CAIRO_SURFACE_RENDER_HAS_PDF_OPERATORS(surface) CAIRO_SURFACE_RENDER_AT_LEAST((surface), 0, 11)
#if RENDER_MAJOR > 0 || RENDER_MINOR >= 11
@@ -2751,6 +2753,8 @@ _cairo_xlib_surface_create_internal (Display *dpy,
surface->buggy_repeat = TRUE;
}
surface->buggy_pad_reflect = screen_info->display->buggy_pad_reflect;
+ if (! CAIRO_SURFACE_RENDER_HAS_EXTENDED_REPEAT (surface))
+ surface->buggy_pad_reflect = TRUE;
surface->dst_picture = None;
surface->src_picture = None;