Port a few forgotten fbSolidFillmmx()'es to fbFillmmx(). Use pixman_blt() instead of fbBltmmx()

in fbCopyNToN().
This commit is contained in:
Søren Sandmann Pedersen 2007-06-11 15:19:27 -04:00
parent d06099b38e
commit 3f9adb18f1
3 changed files with 31 additions and 30 deletions

View File

@ -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++;

View File

@ -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,

View File

@ -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);
}