xserver/fb fb.h, 1.44, 1.45 fbbits.h, 1.16, 1.17 fbbltone.c, 1.16, 1.17 fbcompose.c, 1.38, 1.39 fbpict.c, 1.45, 1.46 fbtile.c, 1.6, 1.7

Dave Airlie xserver-commit at pdx.freedesktop.org
Tue Jan 3 01:20:00 PST 2006


Committed by: airlied

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

Modified Files:
	fb.h fbbits.h fbbltone.c fbcompose.c fbpict.c fbtile.c 
Log Message:
fb/render changes from Xgl


Index: fb.h
===================================================================
RCS file: /cvs/xserver/xserver/fb/fb.h,v
retrieving revision 1.44
retrieving revision 1.45
diff -u -d -r1.44 -r1.45
--- fb.h	20 Apr 2005 17:50:45 -0000	1.44
+++ fb.h	3 Jan 2006 09:19:57 -0000	1.45
@@ -659,7 +659,7 @@
 	(yoff) = __fbPixOffYPix(_pPix); \
     } \
     (pointer) = (FbBits *) _pPix->devPrivate.ptr; \
-    (stride) = ((int) _pPix->devKind) / sizeof (FbBits); \
+    (stride) = (_pPix->devKind) / (FbStride) sizeof (FbBits); \
     (bpp) = _pPix->drawable.bitsPerPixel; \
 }
 
@@ -1922,6 +1922,7 @@
 	    int		height,
 
 	    FbBits	*tile,
+	    FbStride	tileStride,
 	    int		tileHeight,
 
 	    int		alu,

Index: fbbits.h
===================================================================
RCS file: /cvs/xserver/xserver/fb/fbbits.h,v
retrieving revision 1.16
retrieving revision 1.17
diff -u -d -r1.16 -r1.17
--- fbbits.h	2 Mar 2005 15:30:03 -0000	1.16
+++ fbbits.h	3 Jan 2006 09:19:58 -0000	1.17
@@ -826,8 +826,6 @@
     ul = coordToInt(pBox->x1 - xoff,     pBox->y1 - yoff);
     lr = coordToInt(pBox->x2 - xoff - 1, pBox->y2 - yoff - 1);
 
-    bits += bitsStride * yoff + xoff * MUL;
-    
     capNotLast = pGC->capStyle == CapNotLast;
     
     while (nseg--)

Index: fbbltone.c
===================================================================
RCS file: /cvs/xserver/xserver/fb/fbbltone.c,v
retrieving revision 1.16
retrieving revision 1.17
diff -u -d -r1.16 -r1.17
--- fbbltone.c	28 Aug 2005 02:36:40 -0000	1.16
+++ fbbltone.c	3 Jan 2006 09:19:58 -0000	1.17
@@ -260,7 +260,7 @@
 	srcinc++;
     if (endmask)
     {
-	endNeedsLoad = nDst % unitsPerSrc == 0;
+	endNeedsLoad = nmiddle % unitsPerSrc == 0;
 	if (endNeedsLoad)
 	    srcinc++;
     }

Index: fbcompose.c
===================================================================
RCS file: /cvs/xserver/xserver/fb/fbcompose.c,v
retrieving revision 1.38
retrieving revision 1.39
diff -u -d -r1.38 -r1.39
--- fbcompose.c	19 Sep 2005 03:41:46 -0000	1.38
+++ fbcompose.c	3 Jan 2006 09:19:58 -0000	1.39
@@ -34,26 +34,122 @@
 #include "mipict.h"
 #include "fbpict.h"
 
+static unsigned int
+SourcePictureClassify (PicturePtr pict,
+		       int	  x,
+		       int	  y,
+		       int	  width,
+		       int	  height)
+{
+    if (pict->pSourcePict->type == SourcePictTypeSolidFill)
[...2506 lines suppressed...]
+			       data->width, dest_buffer, 0, 0);
+
+		/* blend */
+		compose (dest_buffer, src_mask_buffer, data->width);
+
+		/* write back */
+		store (data->dest, data->xDest, data->yDest + i, data->width,
+		       dest_buffer);
+	    }
+	    else
+	    {
+		/* blend */
+		compose (bits + (data->yDest + i + yoff) * stride +
+			 data->xDest + xoff,
+			 src_mask_buffer, data->width);
+	    }
+	}
     }
 }
 

Index: fbpict.c
===================================================================
RCS file: /cvs/xserver/xserver/fb/fbpict.c,v
retrieving revision 1.45
retrieving revision 1.46
diff -u -d -r1.45 -r1.46
--- fbpict.c	19 Sep 2005 04:02:31 -0000	1.45
+++ fbpict.c	3 Jan 2006 09:19:58 -0000	1.46
@@ -1411,6 +1411,8 @@
     if (pSrc->pDrawable && (!pMask || pMask->pDrawable)
         && !srcTransform && !maskTransform
         && !maskAlphaMap && !srcAlphaMap && !dstAlphaMap
+	&& (!pSrc->repeat || srcRepeat)
+	&& (!pMask || (!pMask->repeat || maskRepeat))
         && (pSrc->filter != PictFilterConvolution)
         && (!pMask || pMask->filter != PictFilterConvolution))
     switch (op) {

Index: fbtile.c
===================================================================
RCS file: /cvs/xserver/xserver/fb/fbtile.c,v
retrieving revision 1.6
retrieving revision 1.7
diff -u -d -r1.6 -r1.7
--- fbtile.c	2 Mar 2005 15:30:03 -0000	1.6
+++ fbtile.c	3 Jan 2006 09:19:58 -0000	1.7
@@ -42,6 +42,7 @@
 	    int		height,
 
 	    FbBits	*tile,
+	    FbStride    tileStride,
 	    int		tileHeight,
 
 	    int		alu,
@@ -68,9 +69,9 @@
     /*
      * Compute tile start scanline and rotation parameters
      */
-    tileEnd = tile + tileHeight;
+    tileEnd = tile + tileHeight * tileStride;
     modulus (- yRot, tileHeight, tileY);
-    t = tile + tileY;
+    t = tile + tileY * tileStride;
     modulus (- xRot, FB_UNIT, tileX);
     rot = tileX;
     
@@ -80,7 +81,8 @@
 	/*
 	 * Pick up bits for this scanline
 	 */
-	bits = *t++;
+	bits = *t;
+	t += tileStride;
 	if (t == tileEnd) t = tile;
 	bits = FbRotLeft(bits,rot);
 	and = fbAnd(alu,bits,pm);
@@ -194,7 +196,7 @@
 {
     if (FbEvenTile (tileWidth))
 	fbEvenTile (dst, dstStride, dstX, width, height, 
-		    tile, tileHeight,
+		    tile, tileStride, tileHeight,
 		    alu, pm, xRot, yRot);
     else
 	fbOddTile (dst, dstStride, dstX, width, height, 



More information about the xserver-commit mailing list