Bug #1895: Fix fbComposeGetSolid for BGR. (David S. Miller)
This commit is contained in:
parent
24cdd188dc
commit
79a7120983
12
fb/fbmmx.c
12
fb/fbmmx.c
|
@ -360,7 +360,7 @@ fbCompositeSolid_nx8888mmx (CARD8 op,
|
||||||
|
|
||||||
CHECKPOINT();
|
CHECKPOINT();
|
||||||
|
|
||||||
fbComposeGetSolid(pSrc, src);
|
fbComposeGetSolid(pSrc, src, pDst->format);
|
||||||
|
|
||||||
if (src >> 24 == 0)
|
if (src >> 24 == 0)
|
||||||
return;
|
return;
|
||||||
|
@ -439,7 +439,7 @@ fbCompositeSolid_nx0565mmx (CARD8 op,
|
||||||
|
|
||||||
CHECKPOINT();
|
CHECKPOINT();
|
||||||
|
|
||||||
fbComposeGetSolid(pSrc, src);
|
fbComposeGetSolid(pSrc, src, pDst->format);
|
||||||
|
|
||||||
if (src >> 24 == 0)
|
if (src >> 24 == 0)
|
||||||
return;
|
return;
|
||||||
|
@ -524,7 +524,7 @@ fbCompositeSolidMask_nx8888x8888Cmmx (CARD8 op,
|
||||||
|
|
||||||
CHECKPOINT();
|
CHECKPOINT();
|
||||||
|
|
||||||
fbComposeGetSolid(pSrc, src);
|
fbComposeGetSolid(pSrc, src, pDst->format);
|
||||||
|
|
||||||
srca = src >> 24;
|
srca = src >> 24;
|
||||||
if (srca == 0)
|
if (srca == 0)
|
||||||
|
@ -755,7 +755,7 @@ fbCompositeSolidMask_nx8x8888mmx (CARD8 op,
|
||||||
|
|
||||||
CHECKPOINT();
|
CHECKPOINT();
|
||||||
|
|
||||||
fbComposeGetSolid(pSrc, src);
|
fbComposeGetSolid(pSrc, src, pDst->format);
|
||||||
|
|
||||||
srca = src >> 24;
|
srca = src >> 24;
|
||||||
if (srca == 0)
|
if (srca == 0)
|
||||||
|
@ -871,7 +871,7 @@ fbCompositeSolidMask_nx8x0565mmx (CARD8 op,
|
||||||
|
|
||||||
CHECKPOINT();
|
CHECKPOINT();
|
||||||
|
|
||||||
fbComposeGetSolid(pSrc, src);
|
fbComposeGetSolid(pSrc, src, pDst->format);
|
||||||
|
|
||||||
srca = src >> 24;
|
srca = src >> 24;
|
||||||
if (srca == 0)
|
if (srca == 0)
|
||||||
|
@ -1212,7 +1212,7 @@ fbCompositeSolidMask_nx8888x0565Cmmx (CARD8 op,
|
||||||
|
|
||||||
CHECKPOINT();
|
CHECKPOINT();
|
||||||
|
|
||||||
fbComposeGetSolid(pSrc, src);
|
fbComposeGetSolid(pSrc, src, pDst->format);
|
||||||
|
|
||||||
srca = src >> 24;
|
srca = src >> 24;
|
||||||
if (srca == 0)
|
if (srca == 0)
|
||||||
|
|
12
fb/fbpict.c
12
fb/fbpict.c
|
@ -99,7 +99,7 @@ fbCompositeSolidMask_nx8x8888 (CARD8 op,
|
||||||
FbStride dstStride, maskStride;
|
FbStride dstStride, maskStride;
|
||||||
CARD16 w;
|
CARD16 w;
|
||||||
|
|
||||||
fbComposeGetSolid(pSrc, src);
|
fbComposeGetSolid(pSrc, src, pDst->format);
|
||||||
|
|
||||||
dstMask = FbFullMask (pDst->pDrawable->depth);
|
dstMask = FbFullMask (pDst->pDrawable->depth);
|
||||||
srca = src >> 24;
|
srca = src >> 24;
|
||||||
|
@ -158,7 +158,7 @@ fbCompositeSolidMask_nx8888x8888C (CARD8 op,
|
||||||
CARD16 w;
|
CARD16 w;
|
||||||
CARD32 m, n, o, p;
|
CARD32 m, n, o, p;
|
||||||
|
|
||||||
fbComposeGetSolid(pSrc, src);
|
fbComposeGetSolid(pSrc, src, pDst->format);
|
||||||
|
|
||||||
dstMask = FbFullMask (pDst->pDrawable->depth);
|
dstMask = FbFullMask (pDst->pDrawable->depth);
|
||||||
srca = src >> 24;
|
srca = src >> 24;
|
||||||
|
@ -231,7 +231,7 @@ fbCompositeSolidMask_nx8x0888 (CARD8 op,
|
||||||
FbStride dstStride, maskStride;
|
FbStride dstStride, maskStride;
|
||||||
CARD16 w;
|
CARD16 w;
|
||||||
|
|
||||||
fbComposeGetSolid(pSrc, src);
|
fbComposeGetSolid(pSrc, src, pDst->format);
|
||||||
|
|
||||||
srca = src >> 24;
|
srca = src >> 24;
|
||||||
if (src == 0)
|
if (src == 0)
|
||||||
|
@ -293,7 +293,7 @@ fbCompositeSolidMask_nx8x0565 (CARD8 op,
|
||||||
FbStride dstStride, maskStride;
|
FbStride dstStride, maskStride;
|
||||||
CARD16 w;
|
CARD16 w;
|
||||||
|
|
||||||
fbComposeGetSolid(pSrc, src);
|
fbComposeGetSolid(pSrc, src, pDst->format);
|
||||||
|
|
||||||
srca = src >> 24;
|
srca = src >> 24;
|
||||||
if (src == 0)
|
if (src == 0)
|
||||||
|
@ -358,7 +358,7 @@ fbCompositeSolidMask_nx8888x0565C (CARD8 op,
|
||||||
CARD16 w;
|
CARD16 w;
|
||||||
CARD32 m, n, o;
|
CARD32 m, n, o;
|
||||||
|
|
||||||
fbComposeGetSolid(pSrc, src);
|
fbComposeGetSolid(pSrc, src, pDst->format);
|
||||||
|
|
||||||
srca = src >> 24;
|
srca = src >> 24;
|
||||||
if (src == 0)
|
if (src == 0)
|
||||||
|
@ -763,7 +763,7 @@ fbCompositeSolidMask_nx1xn (CARD8 op,
|
||||||
int maskXoff, maskYoff;
|
int maskXoff, maskYoff;
|
||||||
FbBits src;
|
FbBits src;
|
||||||
|
|
||||||
fbComposeGetSolid(pSrc, src);
|
fbComposeGetSolid(pSrc, src, pDst->format);
|
||||||
|
|
||||||
if ((src & 0xff000000) != 0xff000000)
|
if ((src & 0xff000000) != 0xff000000)
|
||||||
{
|
{
|
||||||
|
|
10
fb/fbpict.h
10
fb/fbpict.h
|
@ -72,7 +72,7 @@ typedef void (*CompositeFunc) (CARD8 op,
|
||||||
CARD16 width,
|
CARD16 width,
|
||||||
CARD16 height);
|
CARD16 height);
|
||||||
|
|
||||||
#define fbComposeGetSolid(pict, bits) { \
|
#define fbComposeGetSolid(pict, bits, fmt) { \
|
||||||
FbBits *__bits__; \
|
FbBits *__bits__; \
|
||||||
FbStride __stride__; \
|
FbStride __stride__; \
|
||||||
int __bpp__; \
|
int __bpp__; \
|
||||||
|
@ -93,6 +93,14 @@ typedef void (*CompositeFunc) (CARD8 op,
|
||||||
default: \
|
default: \
|
||||||
return; \
|
return; \
|
||||||
} \
|
} \
|
||||||
|
/* If necessary, convert RGB <--> BGR. */ \
|
||||||
|
if (PICT_FORMAT_TYPE((pict)->format) != PICT_FORMAT_TYPE(fmt)) \
|
||||||
|
{ \
|
||||||
|
(bits) = (((bits) & 0xff000000) | \
|
||||||
|
(((bits) & 0x00ff0000) >> 16) | \
|
||||||
|
(((bits) & 0x0000ff00) >> 0) | \
|
||||||
|
(((bits) & 0x000000ff) << 16)); \
|
||||||
|
} \
|
||||||
/* manage missing src alpha */ \
|
/* manage missing src alpha */ \
|
||||||
if ((pict)->pFormat->direct.alphaMask == 0) \
|
if ((pict)->pFormat->direct.alphaMask == 0) \
|
||||||
(bits) |= 0xff000000; \
|
(bits) |= 0xff000000; \
|
||||||
|
|
Loading…
Reference in New Issue