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
- Previous message: xserver/include picture.h,1.25,1.26 picturestr.h,1.30,1.31
- Next message: xserver/render filter.c, 1.8, 1.9 picture.c, 1.44, 1.45 render.c,
1.36, 1.37
- Messages sorted by:
[ date ]
[ thread ]
[ subject ]
[ author ]
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,
- Previous message: xserver/include picture.h,1.25,1.26 picturestr.h,1.30,1.31
- Next message: xserver/render filter.c, 1.8, 1.9 picture.c, 1.44, 1.45 render.c,
1.36, 1.37
- Messages sorted by:
[ date ]
[ thread ]
[ subject ]
[ author ]
More information about the xserver-commit
mailing list