summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorSøren Sandmann Pedersen <sandmann@redhat.com>2007-06-11 15:19:27 -0400
committerSøren Sandmann Pedersen <sandmann@redhat.com>2007-06-11 15:19:27 -0400
commit3f9adb18f127318d054f30a57e3a77176e14c692 (patch)
treece334974a30347e50a56f653ec2011d2f764b72a
parentd06099b38e8445e6e31f5178ffefcc31a71080ef (diff)
Port a few forgotten fbSolidFillmmx()'es to fbFillmmx(). Use pixman_blt() instead of fbBltmmx()
in fbCopyNToN().
-rw-r--r--fb/fbcopy.c20
-rw-r--r--fb/fbfill.c14
-rw-r--r--fb/fbwindow.c27
3 files changed, 31 insertions, 30 deletions
diff --git a/fb/fbcopy.c b/fb/fbcopy.c
index 74ff35848..a4302037a 100644
--- a/fb/fbcopy.c
+++ b/fb/fbcopy.c
@@ -60,17 +60,17 @@ fbCopyNtoN (DrawablePtr pSrcDrawable,
while (nbox--)
{
-#ifdef USE_MMX
+#ifndef FB_ACCESS_WRAPPER /* pixman_blt() doesn't support accessors yet */
if (pm == FB_ALLONES && alu == GXcopy && !reverse &&
- !upsidedown && fbHaveMMX())
+ !upsidedown)
{
- if (!fbBltmmx (src, dst, srcStride, dstStride, srcBpp, dstBpp,
- (pbox->x1 + dx + srcXoff),
- (pbox->y1 + dy + srcYoff),
- (pbox->x1 + srcXoff),
- (pbox->y1 + srcYoff),
- (pbox->x2 - pbox->x1),
- (pbox->y2 - pbox->y1)))
+ if (!pixman_blt ((uint32_t *)src, (uint32_t *)dst, srcStride, dstStride, srcBpp, dstBpp,
+ (pbox->x1 + dx + srcXoff),
+ (pbox->y1 + dy + srcYoff),
+ (pbox->x1 + srcXoff),
+ (pbox->y1 + srcYoff),
+ (pbox->x2 - pbox->x1),
+ (pbox->y2 - pbox->y1)))
goto fallback;
else
goto next;
@@ -94,7 +94,7 @@ fbCopyNtoN (DrawablePtr pSrcDrawable,
reverse,
upsidedown);
-#ifdef USE_MMX
+#ifndef FB_ACCESS_WRAPPER
next:
#endif
pbox++;
diff --git a/fb/fbfill.c b/fb/fbfill.c
index 35e4427c6..4f13a023a 100644
--- a/fb/fbfill.c
+++ b/fb/fbfill.c
@@ -221,13 +221,13 @@ fbSolidBoxClipped (DrawablePtr pDrawable,
#ifdef USE_MMX
if (!and && fbHaveMMX())
{
- if (fbSolidFillmmx (pDrawable,
- partX1, partY1,
- (partX2 - partX1), (partY2 - partY1),
- xor)) {
- fbFinishAccess (pDrawable);
- return;
- }
+ if (fbFillmmx (dst, dstStride, dstBpp,
+ partX1 + dstXoff, partX2 + dstYoff, (partX2 - partX1), (partY2 - partY1),
+ xor))
+ {
+ fbFinishAccess (pDrawable);
+ return;
+ }
}
#endif
fbSolid (dst + (partY1 + dstYoff) * dstStride,
diff --git a/fb/fbwindow.c b/fb/fbwindow.c
index cac662cc7..5b3f446b1 100644
--- a/fb/fbwindow.c
+++ b/fb/fbwindow.c
@@ -233,26 +233,27 @@ fbFillRegionSolid (DrawablePtr pDrawable,
while (n--)
{
#ifdef USE_MMX
- if (!has_mmx || !fbSolidFillmmx (pDrawable,
- pbox->x1,
- pbox->y1,
- (pbox->x2 - pbox->x1),
- (pbox->y2 - pbox->y1), xor)) {
+ if (!has_mmx || !fbFillmmx (dst, dstStride, dstBpp,
+ pbox->x1 + dstXoff, pbox->y1 + dstYoff,
+ (pbox->x2 - pbox->x1),
+ (pbox->y2 - pbox->y1),
+ xor))
+ {
#endif
- fbSolid (dst + (pbox->y1 + dstYoff) * dstStride,
- dstStride,
- (pbox->x1 + dstXoff) * dstBpp,
- dstBpp,
- (pbox->x2 - pbox->x1) * dstBpp,
- pbox->y2 - pbox->y1,
- and, xor);
+ fbSolid (dst + (pbox->y1 + dstYoff) * dstStride,
+ dstStride,
+ (pbox->x1 + dstXoff) * dstBpp,
+ dstBpp,
+ (pbox->x2 - pbox->x1) * dstBpp,
+ pbox->y2 - pbox->y1,
+ and, xor);
#ifdef USE_MMX
}
#endif
fbValidateDrawable (pDrawable);
pbox++;
}
-
+
fbFinishAccess (pDrawable);
}