xserver/fb fbcompose.c, 1.23, 1.24 fbpict.c, 1.35, 1.36 fbpict.h, 1.21, 1.22

Zack Rusin xserver-commit at pdx.freedesktop.org
Fri May 27 07:15:16 PDT 2005


Committed by: zack

Update of /cvs/xserver/xserver/fb
In directory gabe:/tmp/cvs-serv17318/fb

Modified Files:
	fbcompose.c fbpict.c fbpict.h 
Log Message:
Merging the Render implementations between Xorg and xserver (these are the 
optimizations Lars and I did a while back)


Index: fbcompose.c
===================================================================
RCS file: /cvs/xserver/xserver/fb/fbcompose.c,v
retrieving revision 1.23
retrieving revision 1.24
diff -u -d -r1.23 -r1.24
--- fbcompose.c	2 Mar 2005 15:30:03 -0000	1.23
+++ fbcompose.c	27 May 2005 14:15:13 -0000	1.24
@@ -1,7 +1,8 @@
 /*
- * $Id$
+ * $XdotOrg: xc/programs/Xserver/fb/fbcompose.c,v 1.5 2005/01/13 20:49:21 sandmann Exp $
  *
- * Copyright © 2000 Keith Packard
+ * Copyright © 2000 Keith Packard, member of The XFree86 Project, Inc.
+ *             2005 Lars Knoll & Zack Rusin, Trolltech
  *
  * Permission to use, copy, modify, distribute, and sell this software and its
  * documentation for any purpose is hereby granted without fee, provided that
@@ -13,1658 +14,609 @@
[...5458 lines suppressed...]
+		compose_data.xDest += compose_data.width;
+	    }
+	    h -= compose_data.height;
+	    compose_data.ySrc += compose_data.height;
+	    compose_data.yMask += compose_data.height;
+	    compose_data.yDest += compose_data.height;
 	}
-	(*src->down) (src);
-	(*dst->down) (dst);
-	if (pmsk)
-	    (*pmsk->down) (pmsk);
+	pbox++;
     }
+    REGION_UNINIT (pDst->pDrawable->pScreen, &region);
+	
+    if (scanline_buffer != _scanline_buffer)
+        free(scanline_buffer);
 }
+
+#endif

Index: fbpict.c
===================================================================
RCS file: /cvs/xserver/xserver/fb/fbpict.c,v
retrieving revision 1.35
retrieving revision 1.36
diff -u -d -r1.35 -r1.36
--- fbpict.c	15 Apr 2005 22:29:45 -0000	1.35
+++ fbpict.c	27 May 2005 14:15:13 -0000	1.36
@@ -35,6 +35,19 @@
 #include "fbpict.h"
 #include "fbmmx.h"
 
+typedef void	(*CompositeFunc) (CARD8      op,
+				  PicturePtr pSrc,
+				  PicturePtr pMask,
+				  PicturePtr pDst,
+				  INT16      xSrc,
+				  INT16      ySrc,
+				  INT16      xMask,
+                                  INT16      yMask,
+				  INT16      xDst,
+				  INT16      yDst,
+				  CARD16     width,
+				  CARD16     height);
+
 CARD32
 fbOver (CARD32 x, CARD32 y)
 {
@@ -121,7 +134,7 @@
 	}
 
 #if IMAGE_BYTE_ORDER == LSBFirst
-	#define setupPackedReader(count,temp,where,workingWhere,workingVal) count=(int)where; \
+	#define setupPackedReader(count,temp,where,workingWhere,workingVal) count=(long)where; \
 					temp=count&3; \
 					where-=temp; \
 					workingWhere=(CARD32 *)where; \
@@ -134,7 +147,7 @@
 	#define writePacked(what) workingoDest>>=8; workingoDest|=(what<<24); ww--; if(!ww) { ww=4; *wodst++=workingoDest; } 
 #else
 	#warning "I havn't tested fbCompositeTrans_0888xnx0888() on big endian yet!"
-	#define setupPackedReader(count,temp,where,workingWhere,workingVal) count=(int)where; \
+	#define setupPackedReader(count,temp,where,workingWhere,workingVal) count=(long)where; \
 					temp=count&3; \
 					where-=temp; \
 					workingWhere=(CARD32 *)where; \
@@ -322,7 +335,7 @@
     while (height--)
 	{
 		/* fixme: cleanup unused */
-		unsigned int wt,wd;
+		unsigned long wt,wd;
 		CARD32 workingiDest;
 		CARD32 *widst;
 		
@@ -1021,7 +1034,7 @@
 		srcLine += srcStride;
 		w = width;
 		
-		if(((int)src&1)==1)
+		if(((long)src&1)==1)
 		{
 			s_16 = *src++;
 			d_16 = *dst;
@@ -1029,7 +1042,7 @@
 			w--;
 		}
 		isrc=(CARD32 *)src;
-		if(((int)dst&1)==0)
+		if(((long)dst&1)==0)
 		{
 			idst=(CARD32 *)dst;
 			while (w>1)
@@ -1118,7 +1131,7 @@
     fbComposeGetStart (pDst, xDst, yDst, CARD8, dstStride, dstLine, 3);
 
 	{
-		unsigned int ws,wt;
+		unsigned long ws,wt;
 		CARD32 workingSource;
 		CARD32 *wsrc, *wdst, *widst;
 		CARD32 rs, rd, nd;
@@ -1139,7 +1152,7 @@
 				setupPackedReader(ws,wt,isrc,wsrc,workingSource);
 
 				/* get to word aligned */
-				switch(!(int)dst&3)
+				switch(!(long)dst&3)
 				{
 					case 1:
 						readPackedSource(rs);
@@ -1215,7 +1228,7 @@
 				srcLine += srcStride;
 				w = width*3;
 				/* get to word aligned */
-				switch(!(int)src&3)
+				switch(!(long)src&3)
 				{
 					case 1:
 						rd=alphamaskCombine24(*src++, *dst)>>8;
@@ -1348,7 +1361,7 @@
     RegionRec	    region;
     int		    n;
     BoxPtr	    pbox;
-    CompositeFunc   func;
+    CompositeFunc   func = 0;
     Bool	    srcRepeat = pSrc->repeat;
     Bool	    maskRepeat = FALSE;
     Bool	    srcTransform = pSrc->transform != 0;
@@ -1359,9 +1372,6 @@
     int		    x_msk, y_msk, x_src, y_src, x_dst, y_dst;
     int		    w, h, w_this, h_this;
 
-    if (pSrc->filter == PictFilterConvolution)
-	srcTransform = TRUE;
-    
     xDst += pDst->pDrawable->x;
     yDst += pDst->pDrawable->y;
     xSrc += pSrc->pDrawable->x;
@@ -1389,21 +1399,6 @@
 	    maskTransform = FALSE;
     }
     
-    if (!miComputeCompositeRegion (&region,
-				   pSrc,
-				   pMask,
-				   pDst,
-				   xSrc,
-				   ySrc,
-				   xMask,
-				   yMask,
-				   xDst,
-				   yDst,
-				   width,
-				   height))
-	return;
-				   
-    func = fbCompositeGeneral;
     if (!srcTransform && !maskTransform)
     if (!maskAlphaMap && !srcAlphaMap && !dstAlphaMap)
     switch (op) {
@@ -1521,7 +1516,7 @@
 			}
 		    }
 		}
-		if (func != fbCompositeGeneral)
+		if (func != 0)
 		    srcRepeat = FALSE;
 	    }
 	    else /* has mask and non-repeating source */
@@ -1619,7 +1614,7 @@
 #endif
 			}
 				    
-			if (func != fbCompositeGeneral)
+                        if (func != 0)
 			    maskRepeat = FALSE;
 		    }
 		}
@@ -1794,12 +1789,32 @@
 	break;
     }
 
+    if (!func) {
+        /* no fast path, use the general code */
+        fbCompositeGeneral(op, pSrc, pMask, pDst, xSrc, ySrc, xMask, yMask, xDst, yDst, width, height);
+        return;
+    }
+
     /* if we are transforming, we handle repeats in IcFetch[a]_transform */
     if (srcTransform)
 	srcRepeat = 0;
     if (maskTransform)
 	maskRepeat = 0;
     
+
+    if (!miComputeCompositeRegion (&region,
+				   pSrc,
+				   pMask,
+				   pDst,
+				   xSrc,
+				   ySrc,
+				   xMask,
+				   yMask,
+				   xDst,
+				   yDst,
+				   width,
+				   height))
+	return;
     n = REGION_NUM_RECTS (&region);
     pbox = REGION_RECTS (&region);
     while (n--)

Index: fbpict.h
===================================================================
RCS file: /cvs/xserver/xserver/fb/fbpict.h,v
retrieving revision 1.21
retrieving revision 1.22
diff -u -d -r1.21 -r1.22
--- fbpict.h	15 Apr 2005 22:29:45 -0000	1.21
+++ fbpict.h	27 May 2005 14:15:13 -0000	1.22
@@ -2,6 +2,7 @@
  * $Id$
  *
  * Copyright © 2000 Keith Packard
+ *             2005 Lars Knoll & Zack Rusin, Trolltech
  *
  * Permission to use, copy, modify, distribute, and sell this software and its
  * documentation for any purpose is hereby granted without fee, provided that
@@ -13,13 +14,14 @@
  * representations about the suitability of this software for any purpose.  It
  * is provided "as is" without express or implied warranty.
  *
- * KEITH PACKARD DISCLAIMS ALL WARRANTIES WITH REGARD TO THIS SOFTWARE,
- * INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS, IN NO
- * EVENT SHALL KEITH PACKARD BE LIABLE FOR ANY SPECIAL, INDIRECT OR
- * CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM LOSS OF USE,
- * DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER
- * TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR
- * PERFORMANCE OF THIS SOFTWARE.
+ * THE COPYRIGHT HOLDERS DISCLAIM ALL WARRANTIES WITH REGARD TO THIS
+ * SOFTWARE, INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY AND
+ * FITNESS, IN NO EVENT SHALL THE COPYRIGHT HOLDERS BE LIABLE FOR ANY
+ * SPECIAL, INDIRECT OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES
+ * WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN
+ * AN ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING
+ * OUT OF OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS
+ * SOFTWARE.
  */
 
 #ifndef _FBPICT_H_
@@ -59,18 +61,10 @@
 			 (CARD32) ((CARD8) ((t) | (0 - ((t) >> 8)))) << (i))
 
 
-typedef void	(*CompositeFunc) (CARD8      op,
-				  PicturePtr pSrc,
-				  PicturePtr pMask,
-				  PicturePtr pDst,
-				  INT16      xSrc,
-				  INT16      ySrc,
-				  INT16      xMask,
-				  INT16      yMask,
-				  INT16      xDst,
-				  INT16      yDst,
-				  CARD16     width,
-				  CARD16     height);
+#define Alpha(x) ((x) >> 24)
+#define Red(x) (((x) >> 16) & 0xff)
+#define Green(x) (((x) >> 8) & 0xff)
+#define Blue(x) ((x) & 0xff)
 
 #define fbComposeGetSolid(pict, bits) { \
     FbBits	*__bits__; \
@@ -144,75 +138,133 @@
 		       (*((a)+2) = (CARD8) ((v) >> 16))))
 #endif
 		      
-typedef struct _FbCompositeOperand FbCompositeOperand;
+/*
+  The methods below use some tricks to be able to do two color
+  components at the same time.
+*/
 
-typedef CARD32 (*FbCompositeFetch)(FbCompositeOperand *op);
-typedef void (*FbCompositeStore) (FbCompositeOperand *op, CARD32 value);
+/*
+  x_c = (x_c * a) / 255
+*/
+#define FbByteMul(x, a) do {                                      \
+        CARD32 t = (x & 0xff00ff) *a;                           \
+        t = (t + ((t >> 8) & 0xff00ff) + 0x800080) >> 8;          \
+        t &= 0xff00ff;                                            \
+                                                                  \
+        x = ((x >> 8) & 0xff00ff) * a;                            \
+        x = (x + ((x >> 8) & 0xff00ff) + 0x800080);               \
+        x &= 0xff00ff00;                                          \
+        x += t;                                                   \
+    } while (0)
 
-typedef void (*FbCompositeStep) (FbCompositeOperand *op);
-typedef void (*FbCompositeSet) (FbCompositeOperand *op, int x, int y);
+/*
+  x_c = (x_c * a + y_c * b) / 255
+*/
+#define FbByteAddMul(x, a, y, b) do {                                   \
+        CARD32 t = (x & 0xff00ff) * a + (y & 0xff00ff) * b;             \
+        t = (t + ((t >> 8) & 0xff00ff) + 0x800080) >> 8;                \
+        t &= 0xff00ff;                                                  \
+                                                                        \
+        x = ((x >> 8) & 0xff00ff) * a + ((y >> 8) & 0xff00ff) * b;      \
+        x = (x + ((x >> 8) & 0xff00ff) + 0x800080);                     \
+        x &= 0xff00ff00;                                                \
+        x += t;                                                         \
+} while (0)
 
-struct _FbCompositeOperand {
-    union {
-	struct {
-	    FbBits		*top_line;
-	    int			left_offset;
-	    
-	    int			start_offset;
-	    FbBits		*line;
-	    CARD32		offset;
-	    FbStride		stride;
-	    int			bpp;
-	} drawable;
-	struct {
-	    int			alpha_dx;
-	    int			alpha_dy;
-	} external;
-	struct {
-	    int			top_y;
-	    int			left_x;
-	    int			start_x;
-	    int			x;
-	    int			y;
-	    PictTransformPtr	transform;
-	    int			filter;
-	    xFixed		*filter_params;
-	    int			filter_nparams;
-	    int			repeat;
-	    int			width;
-	    int			height;
-	} transform;
-    } u;
-    FbCompositeFetch	fetch;
-    FbCompositeFetch	fetcha;
-    FbCompositeStore	store;
-    FbCompositeStep	over;
-    FbCompositeStep	down;
-    FbCompositeSet	set;
-    miIndexedPtr	indexed;
-    RegionPtr		clip;
-};
+/*
+  x_c = (x_c * a + y_c *b) / 256
+*/
+#define FbByteAddMul_256(x, a, y, b) do {                               \
+        CARD32 t = (x & 0xff00ff) * a + (y & 0xff00ff) * b;             \
+        t >>= 8;                                                        \
+        t &= 0xff00ff;                                                  \
+                                                                        \
+        x = ((x >> 8) & 0xff00ff) * a + ((y >> 8) & 0xff00ff) * b;      \
+        x &= 0xff00ff00;                                                \
+        x += t;                                                         \
+} while (0)
+/*
+  x_c = (x_c * a_c) / 255
+*/
+#define FbByteMulC(x, a) do {                           \
+        CARD32 t;                                       \
+        CARD32 r = (x & 0xff) * (a & 0xff);             \
+        r |= (x & 0xff0000) * ((a >> 16) & 0xff);       \
+        r = (r + ((r >> 8) & 0xff00ff) + 0x800080) >> 8;        \
+        r &= 0xff00ff;                                  \
+                                                        \
+        x >>= 8;                                        \
+        t = (x & 0xff) * ((a >> 8) & 0xff);             \
+        t |= (x & 0xff0000) * (a >> 24);                \
+        t = (t + ((t >> 8) & 0xff00ff) + 0x800080);     \
+        x = r | (t & 0xff00ff00);                       \
+                                                        \
+    } while (0)
 
-typedef void (*FbCombineFunc) (FbCompositeOperand	*src,
-			       FbCompositeOperand	*msk,
-			       FbCompositeOperand	*dst);
+/*
+  x_c = (x_c * a_c + y_c * b) / 255
+*/
+#define FbByteAddMulC(x, a, y, b) do {                     \
+        CARD32 t;                                       \
+        CARD32 r = (x & 0xff) * (a & 0xff);             \
+        r |= (x & 0xff0000) * ((a >> 16) & 0xff);       \
+        r += (y & 0xff00ff) * b;                        \
+        r = (r + ((r >> 8) & 0xff00ff) + 0x800080) >> 8;        \
+        r &= 0xff00ff;                                  \
+                                                        \
+        x >>= 8;                                        \
+        t = (x & 0xff) * ((a >> 8) & 0xff);             \
+        t |= (x & 0xff0000) * (a >> 24);                \
+        t += ((y >> 8) & 0xff00ff) * b;                 \
+        t = (t + ((t >> 8) & 0xff00ff) + 0x800080);     \
+        x = r | (t & 0xff00ff00);                       \
+                                                        \
+    } while (0)
 
 /*
- * indexed by op
- */
-extern FbCombineFunc	fbCombineFunc[];
+  x_c = min(x_c + y_c, 255)
+*/
+#define FbByteAdd(x, y) do {                                    \
+        CARD32 t;                                               \
+        CARD32 r = (x & 0xff00ff) + (y & 0xff00ff);             \
+        r |= 0 - ((r >> 8) & 0xff00ff);                         \
+        r &= 0xff00ff;                                          \
+                                                                \
+        t = ((x >> 8) & 0xff00ff) + ((y >> 8) & 0xff00ff);       \
+        t |= 0 - ((t >> 8) & 0xff00ff);                          \
+        r |= (t & 0xff00ff) << 8;                                \
+        x = r;                                                   \
+} while (0)
 
-typedef struct _FbAccessMap {
-    CARD32		format;
-    FbCompositeFetch	fetch;
-    FbCompositeFetch	fetcha;
-    FbCompositeStore	store;
-} FbAccessMap;
+#define div_255(x) (((x) + ((x) >> 8) + 0x80) >> 8)
+
+#if defined(__i386__) && defined(__GNUC__)
+#define FASTCALL __attribute__((regparm(3)))
+#else
+#define FASTCALL
+#endif
+
+#if defined(__GNUC__)
+#define INLINE __inline__
+#else
+#define INLINE
+#endif
+
+typedef struct _FbComposeData {
+    CARD8	op;
+    PicturePtr	src;
+    PicturePtr	mask;
+    PicturePtr	dest;
+    INT16	xSrc;
+    INT16	ySrc;
+    INT16	xMask;
+    INT16	yMask;
+    INT16	xDest;
+    INT16	yDest;
+    CARD16	width;
+    CARD16	height;
+} FbComposeData;
 
-/*
- * search on format
- */
-extern FbAccessMap  fbAccessMap[];
 
 /* fbaddtrap.c */
 
@@ -225,607 +277,6 @@
 
 /* fbcompose.c */
 
-typedef struct _fbCompSrc {
-    CARD32	value;
-    CARD32	alpha;
-} FbCompSrc;
-
-/*
- * All compositing operators *
- */
-
-CARD32
-fbCombineMaskU (FbCompositeOperand   *src,
-		FbCompositeOperand   *msk);
-
-FbCompSrc
-fbCombineMaskC (FbCompositeOperand   *src,
-		FbCompositeOperand   *msk);
-
-CARD32
-fbCombineMaskValueC (FbCompositeOperand   *src,
-		     FbCompositeOperand   *msk);
-
-CARD32
-fbCombineMaskAlphaU (FbCompositeOperand   *src,
-		     FbCompositeOperand   *msk);
-
-CARD32
-fbCombineMaskAlphaC (FbCompositeOperand   *src,
-		     FbCompositeOperand   *msk);
-
-
-#if 0
-CARD32
-FbCombineMask (FbCompositeOperand   *src,
-	       FbCompositeOperand   *msk);
-#endif
-
-void
-fbCombineClear (FbCompositeOperand   *src,
-		FbCompositeOperand   *msk,
-		FbCompositeOperand   *dst);
-
-void
-fbCombineSrcU (FbCompositeOperand    *src,
-	       FbCompositeOperand    *msk,
-	       FbCompositeOperand    *dst);
-
-void
-fbCombineSrcC (FbCompositeOperand    *src,
-	       FbCompositeOperand    *msk,
-	       FbCompositeOperand    *dst);
-
-void
-fbCombineDst (FbCompositeOperand    *src,
-	      FbCompositeOperand    *msk,
-	      FbCompositeOperand    *dst);
-
-void
-fbCombineOverU (FbCompositeOperand   *src,
-		FbCompositeOperand   *msk,
-		FbCompositeOperand   *dst);
-
-void
-fbCombineOverC (FbCompositeOperand   *src,
-		FbCompositeOperand   *msk,
-		FbCompositeOperand   *dst);
-
-void
-fbCombineOverReverseU (FbCompositeOperand    *src,
-		       FbCompositeOperand    *msk,
-		       FbCompositeOperand    *dst);
-
-void
-fbCombineOverReverseC (FbCompositeOperand    *src,
-		       FbCompositeOperand    *msk,
-		       FbCompositeOperand    *dst);
-
-void
-fbCombineInU (FbCompositeOperand	    *src,
-	      FbCompositeOperand	    *msk,
-	      FbCompositeOperand	    *dst);
-
-void
-fbCombineInC (FbCompositeOperand	    *src,
-	      FbCompositeOperand	    *msk,
-	      FbCompositeOperand	    *dst);
-
-void
-fbCombineInReverseU (FbCompositeOperand  *src,
-		     FbCompositeOperand  *msk,
-		     FbCompositeOperand  *dst);
-
-void
-fbCombineInReverseC (FbCompositeOperand  *src,
-		     FbCompositeOperand  *msk,
-		     FbCompositeOperand  *dst);
-
-void
-fbCombineOutU (FbCompositeOperand    *src,
-	       FbCompositeOperand    *msk,
-	       FbCompositeOperand    *dst);
-
-void
-fbCombineOutC (FbCompositeOperand    *src,
-	       FbCompositeOperand    *msk,
-	       FbCompositeOperand    *dst);
-
-void
-fbCombineOutReverseU (FbCompositeOperand *src,
-		      FbCompositeOperand *msk,
-		      FbCompositeOperand *dst);
-
-void
-fbCombineOutReverseC (FbCompositeOperand *src,
-		      FbCompositeOperand *msk,
-		      FbCompositeOperand *dst);
-
-void
-fbCombineAtopU (FbCompositeOperand   *src,
-		FbCompositeOperand   *msk,
-		FbCompositeOperand   *dst);
-
-
-void
-fbCombineAtopC (FbCompositeOperand   *src,
-		FbCompositeOperand   *msk,
-		FbCompositeOperand   *dst);
-
-void
-fbCombineAtopReverseU (FbCompositeOperand    *src,
-		       FbCompositeOperand    *msk,
-		       FbCompositeOperand    *dst);
-
-void
-fbCombineAtopReverseC (FbCompositeOperand    *src,
-		       FbCompositeOperand    *msk,
-		       FbCompositeOperand    *dst);
-
-void
-fbCombineXorU (FbCompositeOperand    *src,
-	       FbCompositeOperand    *msk,
-	       FbCompositeOperand    *dst);
-
-void
-fbCombineXorC (FbCompositeOperand    *src,
-	       FbCompositeOperand    *msk,
-	       FbCompositeOperand    *dst);
-
-
-void
-fbCombineAddU (FbCompositeOperand    *src,
-	       FbCompositeOperand    *msk,
-	       FbCompositeOperand    *dst);
-
-void
-fbCombineAddC (FbCompositeOperand    *src,
-	       FbCompositeOperand    *msk,
-	       FbCompositeOperand    *dst);
-
-void
-fbCombineSaturateU (FbCompositeOperand   *src,
-		    FbCompositeOperand   *msk,
-		    FbCompositeOperand   *dst);
-
-void
-fbCombineSaturateC (FbCompositeOperand   *src,
-		    FbCompositeOperand   *msk,
-		    FbCompositeOperand   *dst);
-
-CARD8
-fbCombineDisjointOutPart (CARD8 a, CARD8 b);
-
-CARD8
-fbCombineDisjointInPart (CARD8 a, CARD8 b);
-
-void
-fbCombineDisjointGeneralU (FbCompositeOperand   *src,
-			   FbCompositeOperand   *msk,
-			   FbCompositeOperand   *dst,
-			   CARD8		combine);
-
-void
-fbCombineDisjointGeneralC (FbCompositeOperand   *src,
-			   FbCompositeOperand   *msk,
-			   FbCompositeOperand   *dst,
-			   CARD8		combine);
-
-void
-fbCombineDisjointOverU (FbCompositeOperand   *src,
-			FbCompositeOperand   *msk,
-			FbCompositeOperand   *dst);
-
-void
-fbCombineDisjointOverC (FbCompositeOperand   *src,
-			FbCompositeOperand   *msk,
-			FbCompositeOperand   *dst);
-
-#define fbCombineDisjointOverReverseU fbCombineSaturateU
-#define fbCombineDisjointOverReverseC fbCombineSaturateC
-
-void
-fbCombineDisjointInU (FbCompositeOperand	    *src,
-		      FbCompositeOperand	    *msk,
-		      FbCompositeOperand	    *dst);
-
-void
-fbCombineDisjointInC (FbCompositeOperand	    *src,
-		      FbCompositeOperand	    *msk,
-		      FbCompositeOperand	    *dst);
-
-void
-fbCombineDisjointInReverseU (FbCompositeOperand  *src,
-                             FbCompositeOperand  *msk,
-                             FbCompositeOperand  *dst);
-
-void
-fbCombineDisjointInReverseC (FbCompositeOperand  *src,
-                             FbCompositeOperand  *msk,
-                             FbCompositeOperand  *dst);
-
-void
-fbCombineDisjointOutU (FbCompositeOperand    *src,
-                       FbCompositeOperand    *msk,
-                       FbCompositeOperand    *dst);
-
-void
-fbCombineDisjointOutC (FbCompositeOperand    *src,
-                       FbCompositeOperand    *msk,
-                       FbCompositeOperand    *dst);
-void
-fbCombineDisjointOutReverseU (FbCompositeOperand *src,
-                              FbCompositeOperand *msk,
-                              FbCompositeOperand *dst);
-
-void
-fbCombineDisjointOutReverseC (FbCompositeOperand *src,
-                              FbCompositeOperand *msk,
-                              FbCompositeOperand *dst);
-
-void
-fbCombineDisjointAtopU (FbCompositeOperand   *src,
-                        FbCompositeOperand   *msk,
-                        FbCompositeOperand   *dst);
-
-void
-fbCombineDisjointAtopC (FbCompositeOperand   *src,
-                        FbCompositeOperand   *msk,
-                        FbCompositeOperand   *dst);
-
-void
-fbCombineDisjointAtopReverseU (FbCompositeOperand    *src,
-                               FbCompositeOperand    *msk,
-                               FbCompositeOperand    *dst);
-
-void
-fbCombineDisjointAtopReverseC (FbCompositeOperand    *src,
-                               FbCompositeOperand    *msk,
-                               FbCompositeOperand    *dst);
-
-void
-fbCombineDisjointXorU (FbCompositeOperand    *src,
-                       FbCompositeOperand    *msk,
-                       FbCompositeOperand    *dst);
-
-void
-fbCombineDisjointXorC (FbCompositeOperand    *src,
-                       FbCompositeOperand    *msk,
-                       FbCompositeOperand    *dst);
-
-CARD8
-fbCombineConjointOutPart (CARD8 a, CARD8 b);
-
-CARD8
-fbCombineConjointInPart (CARD8 a, CARD8 b);
-
-
-void
-fbCombineConjointGeneralU (FbCompositeOperand   *src,
-                           FbCompositeOperand   *msk,
-                           FbCompositeOperand   *dst,
-                           CARD8                combine);
-
-void
-fbCombineConjointGeneralC (FbCompositeOperand   *src,
-                           FbCompositeOperand   *msk,
-                           FbCompositeOperand   *dst,
-                           CARD8                combine);
-
-void
-fbCombineConjointOverU (FbCompositeOperand   *src,
-                        FbCompositeOperand   *msk,
-                        FbCompositeOperand   *dst);
-
-void
-fbCombineConjointOverC (FbCompositeOperand   *src,
-                        FbCompositeOperand   *msk,
-                        FbCompositeOperand   *dst);
-void
-fbCombineConjointOverReverseU (FbCompositeOperand    *src,
-                               FbCompositeOperand    *msk,
-                               FbCompositeOperand    *dst);
-
-void
-fbCombineConjointOverReverseC (FbCompositeOperand    *src,
-                               FbCompositeOperand    *msk,
-                               FbCompositeOperand    *dst);
-
-void
-fbCombineConjointInU (FbCompositeOperand            *src,
-                      FbCompositeOperand            *msk,
-                      FbCompositeOperand            *dst);
-
-void
-fbCombineConjointInC (FbCompositeOperand            *src,
-                      FbCompositeOperand            *msk,
-                      FbCompositeOperand            *dst);
-
-void
-fbCombineConjointInReverseU (FbCompositeOperand  *src,
-                             FbCompositeOperand  *msk,
-                             FbCompositeOperand  *dst);
-
-
-void
-fbCombineConjointInReverseC (FbCompositeOperand  *src,
-                             FbCompositeOperand  *msk,
-                             FbCompositeOperand  *dst);
-
-void
-fbCombineConjointOutU (FbCompositeOperand    *src,
-                       FbCompositeOperand    *msk,
-                       FbCompositeOperand    *dst);
-
-void
-fbCombineConjointOutC (FbCompositeOperand    *src,
-                       FbCompositeOperand    *msk,
-                       FbCompositeOperand    *dst);
-
-void
-fbCombineConjointOutReverseU (FbCompositeOperand *src,
-                              FbCompositeOperand *msk,
-                              FbCompositeOperand *dst);
-
-void
-fbCombineConjointOutReverseC (FbCompositeOperand *src,
-                              FbCompositeOperand *msk,
-                              FbCompositeOperand *dst);
-
-void
-fbCombineConjointAtopU (FbCompositeOperand   *src,
-                        FbCompositeOperand   *msk,
-                        FbCompositeOperand   *dst);
-
-void
-fbCombineConjointAtopC (FbCompositeOperand   *src,
-                        FbCompositeOperand   *msk,
-                        FbCompositeOperand   *dst);
-
-void
-fbCombineConjointAtopReverseU (FbCompositeOperand    *src,
-                               FbCompositeOperand    *msk,
-                               FbCompositeOperand    *dst);
-void
-fbCombineConjointAtopReverseC (FbCompositeOperand    *src,
-                               FbCompositeOperand    *msk,
-                               FbCompositeOperand    *dst);
-
-void
-fbCombineConjointXorU (FbCompositeOperand    *src,
-                       FbCompositeOperand    *msk,
-                       FbCompositeOperand    *dst);
-
-void
-fbCombineConjointXorC (FbCompositeOperand    *src,
-                       FbCompositeOperand    *msk,
-                       FbCompositeOperand    *dst);
-
-/*
- * All fetch functions
- */
-
-CARD32
-fbFetch_a8r8g8b8 (FbCompositeOperand *op);
-
-CARD32
-fbFetch_x8r8g8b8 (FbCompositeOperand *op);
-
-CARD32
-fbFetch_a8b8g8r8 (FbCompositeOperand *op);
-
-CARD32
-fbFetch_x8b8g8r8 (FbCompositeOperand *op);
-
-CARD32
-fbFetch_r8g8b8 (FbCompositeOperand *op);
-
-CARD32
-fbFetch_b8g8r8 (FbCompositeOperand *op);
-
-CARD32
-fbFetch_r5g6b5 (FbCompositeOperand *op);
-
-CARD32
-fbFetch_b5g6r5 (FbCompositeOperand *op);
-
-CARD32
-fbFetch_a1r5g5b5 (FbCompositeOperand *op);
-
-CARD32
-fbFetch_x1r5g5b5 (FbCompositeOperand *op);
-
-CARD32
-fbFetch_a1b5g5r5 (FbCompositeOperand *op);
-
-CARD32
-fbFetch_x1b5g5r5 (FbCompositeOperand *op);
-
-CARD32
-fbFetch_a4r4g4b4 (FbCompositeOperand *op);
-
-CARD32
-fbFetch_x4r4g4b4 (FbCompositeOperand *op);
-
-CARD32
-fbFetch_a4b4g4r4 (FbCompositeOperand *op);
-
-CARD32
-fbFetch_x4b4g4r4 (FbCompositeOperand *op);
-
-CARD32
-fbFetch_a8 (FbCompositeOperand *op);
-
-CARD32
-fbFetcha_a8 (FbCompositeOperand *op);
-
-CARD32
-fbFetch_r3g3b2 (FbCompositeOperand *op);
-
-CARD32
-fbFetch_b2g3r3 (FbCompositeOperand *op);
-
-CARD32
-fbFetch_a2r2g2b2 (FbCompositeOperand *op);
-
-CARD32
-fbFetch_a2b2g2r2 (FbCompositeOperand *op);
-
-CARD32
-fbFetch_c8 (FbCompositeOperand *op);
-
-CARD32
-fbFetch_a4 (FbCompositeOperand *op);
-
-CARD32
-fbFetcha_a4 (FbCompositeOperand *op);
-
-CARD32
-fbFetch_r1g2b1 (FbCompositeOperand *op);
-
-CARD32
-fbFetch_b1g2r1 (FbCompositeOperand *op);
-
-CARD32
-fbFetch_a1r1g1b1 (FbCompositeOperand *op);
-
-CARD32
-fbFetch_a1b1g1r1 (FbCompositeOperand *op);
-
-CARD32
-fbFetch_c4 (FbCompositeOperand *op);
-
-CARD32
-fbFetch_a1 (FbCompositeOperand *op);
-
-CARD32
-fbFetcha_a1 (FbCompositeOperand *op);
-
-CARD32
-fbFetch_g1 (FbCompositeOperand *op);
-
-void
-fbStore_a8r8g8b8 (FbCompositeOperand *op, CARD32 value);
-
-void
-fbStore_x8r8g8b8 (FbCompositeOperand *op, CARD32 value);
-
-void
-fbStore_a8b8g8r8 (FbCompositeOperand *op, CARD32 value);
-
-void
-fbStore_x8b8g8r8 (FbCompositeOperand *op, CARD32 value);
-
-void
-fbStore_r8g8b8 (FbCompositeOperand *op, CARD32 value);
-
-void
-fbStore_b8g8r8 (FbCompositeOperand *op, CARD32 value);
-
-void
-fbStore_r5g6b5 (FbCompositeOperand *op, CARD32 value);
-
-void
-fbStore_b5g6r5 (FbCompositeOperand *op, CARD32 value);
-
-void
-fbStore_a1r5g5b5 (FbCompositeOperand *op, CARD32 value);
-
-void
-fbStore_x1r5g5b5 (FbCompositeOperand *op, CARD32 value);
-
-void
-fbStore_a1b5g5r5 (FbCompositeOperand *op, CARD32 value);
-
-void
-fbStore_x1b5g5r5 (FbCompositeOperand *op, CARD32 value);
-
-void
-fbStore_a4r4g4b4 (FbCompositeOperand *op, CARD32 value);
-
-void
-fbStore_x4r4g4b4 (FbCompositeOperand *op, CARD32 value);
-
-void
-fbStore_a4b4g4r4 (FbCompositeOperand *op, CARD32 value);
-
-void
-fbStore_x4b4g4r4 (FbCompositeOperand *op, CARD32 value);
-
-void
-fbStore_a8 (FbCompositeOperand *op, CARD32 value);
-
-void
-fbStore_r3g3b2 (FbCompositeOperand *op, CARD32 value);
-
-void
-fbStore_b2g3r3 (FbCompositeOperand *op, CARD32 value);
-
-void
-fbStore_a2r2g2b2 (FbCompositeOperand *op, CARD32 value);
-
-void
-fbStore_c8 (FbCompositeOperand *op, CARD32 value);
-
-void
-fbStore_g8 (FbCompositeOperand *op, CARD32 value);
-
-
-void
-fbStore_a4 (FbCompositeOperand *op, CARD32 value);
-
-void
-fbStore_r1g2b1 (FbCompositeOperand *op, CARD32 value);
-
-void
-fbStore_b1g2r1 (FbCompositeOperand *op, CARD32 value);
-
-void
-fbStore_a1r1g1b1 (FbCompositeOperand *op, CARD32 value);
-
-void
-fbStore_a1b1g1r1 (FbCompositeOperand *op, CARD32 value);
-
-void
-fbStore_c4 (FbCompositeOperand *op, CARD32 value);
-
-void
-fbStore_g4 (FbCompositeOperand *op, CARD32 value);
-
-void
-fbStore_a1 (FbCompositeOperand *op, CARD32 value);
-
-void
-fbStore_g1 (FbCompositeOperand *op, CARD32 value);
-
-CARD32
-fbFetch_external (FbCompositeOperand *op);
-
-CARD32
-fbFetch_transform (FbCompositeOperand *op);
-
-CARD32
-fbFetcha_transform (FbCompositeOperand *op);
-
-CARD32
-fbFetcha_external (FbCompositeOperand *op);
-
-void
-fbStore_external (FbCompositeOperand *op, CARD32 value);
-
-Bool
-fbBuildOneCompositeOperand (PicturePtr		pPict,
-			    FbCompositeOperand	*op,
-			    INT16		x,
-			    INT16		y);
-
-Bool
-fbBuildCompositeOperand (PicturePtr	    pPict,
-			 FbCompositeOperand *op,
-			 INT16		    x,
-			 INT16		    y,
-			 Bool		    transform,
-			 Bool		    alpha);
 void
 fbCompositeGeneral (CARD8	op,
 		    PicturePtr	pSrc,



More information about the xserver-commit mailing list