xf86-video-intel: src/sna/fb src/sna/sna_composite.c

Chris Wilson ickle at kemper.freedesktop.org
Fri Oct 24 00:05:20 PDT 2014


 src/sna/fb/fbpict.c     |   12 +++++++++++-
 src/sna/sna_composite.c |   16 +++++++++++++---
 2 files changed, 24 insertions(+), 4 deletions(-)

New commits:
commit 8df8618c62c0918416ca3e21b081299eacb9b054
Author: Chris Wilson <chris at chris-wilson.co.uk>
Date:   Fri Oct 24 08:02:50 2014 +0100

    sna: Adapt to changes in internal render API in Xorg-1.17
    
    Signed-off-by: Chris Wilson <chris at chris-wilson.co.uk>

diff --git a/src/sna/fb/fbpict.c b/src/sna/fb/fbpict.c
index 906a5f3..abe223f 100644
--- a/src/sna/fb/fbpict.c
+++ b/src/sna/fb/fbpict.c
@@ -156,6 +156,16 @@ create_conical_gradient_image(PictGradient * gradient)
 						    gradient->nstops);
 }
 
+static inline bool
+picture_has_clip(PicturePtr p)
+{
+#if XORG_VERSION_CURRENT >= XORG_VERSION_NUMERIC(1,16,99,1,0)
+	return p->clientClip;
+#else
+	return p->clientClipType != CT_NONE;
+#endif
+}
+
 static pixman_image_t *
 create_bits_picture(PicturePtr pict, Bool has_clip, int *xoff, int *yoff)
 {
@@ -180,7 +190,7 @@ create_bits_picture(PicturePtr pict, Bool has_clip, int *xoff, int *yoff)
 	 * only set the clip region for pictures with drawables
 	 */
 	if (has_clip) {
-		if (pict->clientClipType != CT_NONE)
+		if (picture_has_clip(pict))
 			pixman_image_set_has_client_clip(image, TRUE);
 
 		if (*xoff || *yoff)
diff --git a/src/sna/sna_composite.c b/src/sna/sna_composite.c
index c76258c..3753afa 100644
--- a/src/sna/sna_composite.c
+++ b/src/sna/sna_composite.c
@@ -122,11 +122,21 @@ clip_to_dst(pixman_region16_t *region,
 }
 
 static inline bool
+picture_has_clip(PicturePtr p)
+{
+#if XORG_VERSION_CURRENT >= XORG_VERSION_NUMERIC(1,16,99,1,0)
+	return p->clientClip;
+#else
+	return p->clientClipType != CT_NONE;
+#endif
+}
+
+static inline bool
 clip_to_src(RegionPtr region, PicturePtr p, int dx, int	 dy)
 {
 	bool result;
 
-	if (p->clientClipType == CT_NONE)
+	if (!picture_has_clip(p))
 		return true;
 
 	pixman_region_translate(p->clientClip,
@@ -220,7 +230,7 @@ sna_compute_composite_region(RegionPtr region,
 		       __FUNCTION__,
 		       src->pDrawable ? src->pDrawable->width : 0,
 		       src->pDrawable ? src->pDrawable->height : 0,
-		       src->clientClipType,
+		       picture_has_clip(src),
 		       region->extents.x1, region->extents.y1,
 		       region->extents.x2, region->extents.y2));
 
@@ -287,7 +297,7 @@ trim_extents(BoxPtr extents, const PicturePtr p, int dx, int dy)
 static void
 _trim_source_extents(BoxPtr extents, const PicturePtr p, int dx, int dy)
 {
-	if (p->clientClipType != CT_NONE)
+	if (picture_has_clip(p))
 		trim_extents(extents, p, dx, dy);
 }
 


More information about the xorg-commit mailing list