diff --git a/fb/fb.h b/fb/fb.h index d176bb343..6db580333 100644 --- a/fb/fb.h +++ b/fb/fb.h @@ -83,11 +83,7 @@ #define FB_SHIFT LOG2_BITMAP_PAD #endif -#if FB_SHIFT < LOG2_BITMAP_PAD -error FB_SHIFT must be >= LOG2_BITMAP_PAD -#endif #define FB_UNIT (1 << FB_SHIFT) -#define FB_HALFUNIT (1 << (FB_SHIFT-1)) #define FB_MASK (FB_UNIT - 1) #define FB_ALLONES ((FbBits) -1) #if GLYPHPADBYTES != 4 @@ -105,37 +101,15 @@ error FB_SHIFT must be >= LOG2_BITMAP_PAD #define FbStipStrideToBitsStride(s) (((s) >> (FB_SHIFT - FB_STIP_SHIFT))) #define FbBitsStrideToStipStride(s) (((s) << (FB_SHIFT - FB_STIP_SHIFT))) #define FbFullMask(n) ((n) == FB_UNIT ? FB_ALLONES : ((((FbBits) 1) << n) - 1)) -#if FB_SHIFT == 6 -#ifdef WIN32 -typedef unsigned __int64 FbBits; -#else -#if defined(__alpha__) || defined(__alpha) || \ - defined(ia64) || defined(__ia64__) || \ - defined(__sparc64__) || defined(_LP64) || \ - defined(__s390x__) || \ - defined(amd64) || defined (__amd64__) || \ - defined (__powerpc64__) -typedef unsigned long FbBits; -#else -typedef unsigned long long FbBits; -#endif -#endif -#endif #if FB_SHIFT == 5 typedef CARD32 FbBits; -#endif - -#if FB_SHIFT == 4 -typedef CARD16 FbBits; +#else +#error "Unsupported FB_SHIFT" #endif #if LOG2_BITMAP_PAD == FB_SHIFT typedef FbBits FbStip; -#else -#if LOG2_BITMAP_PAD == 5 -typedef CARD32 FbStip; -#endif #endif typedef int FbStride; @@ -264,122 +238,8 @@ extern _X_EXPORT void fbSetBits(FbStip * bits, int stride, FbStip data); n >>= FB_SHIFT; \ } -#if FB_SHIFT == 6 -#define FbDoLeftMaskByteRRop6Cases(dst,xor) \ - case (sizeof (FbBits) - 7) | (1 << (FB_SHIFT - 3)): \ - FbStorePart(dst,sizeof (FbBits) - 7,CARD8,xor); \ - break; \ - case (sizeof (FbBits) - 7) | (2 << (FB_SHIFT - 3)): \ - FbStorePart(dst,sizeof (FbBits) - 7,CARD8,xor); \ - FbStorePart(dst,sizeof (FbBits) - 6,CARD8,xor); \ - break; \ - case (sizeof (FbBits) - 7) | (3 << (FB_SHIFT - 3)): \ - FbStorePart(dst,sizeof (FbBits) - 7,CARD8,xor); \ - FbStorePart(dst,sizeof (FbBits) - 6,CARD16,xor); \ - break; \ - case (sizeof (FbBits) - 7) | (4 << (FB_SHIFT - 3)): \ - FbStorePart(dst,sizeof (FbBits) - 7,CARD8,xor); \ - FbStorePart(dst,sizeof (FbBits) - 6,CARD16,xor); \ - FbStorePart(dst,sizeof (FbBits) - 4,CARD8,xor); \ - break; \ - case (sizeof (FbBits) - 7) | (5 << (FB_SHIFT - 3)): \ - FbStorePart(dst,sizeof (FbBits) - 7,CARD8,xor); \ - FbStorePart(dst,sizeof (FbBits) - 6,CARD16,xor); \ - FbStorePart(dst,sizeof (FbBits) - 4,CARD16,xor); \ - break; \ - case (sizeof (FbBits) - 7) | (6 << (FB_SHIFT - 3)): \ - FbStorePart(dst,sizeof (FbBits) - 7,CARD8,xor); \ - FbStorePart(dst,sizeof (FbBits) - 6,CARD16,xor); \ - FbStorePart(dst,sizeof (FbBits) - 4,CARD16,xor); \ - FbStorePart(dst,sizeof (FbBits) - 2,CARD8,xor); \ - break; \ - case (sizeof (FbBits) - 7): \ - FbStorePart(dst,sizeof (FbBits) - 7,CARD8,xor); \ - FbStorePart(dst,sizeof (FbBits) - 6,CARD16,xor); \ - FbStorePart(dst,sizeof (FbBits) - 4,CARD32,xor); \ - break; \ - case (sizeof (FbBits) - 6) | (1 << (FB_SHIFT - 3)): \ - FbStorePart(dst,sizeof (FbBits) - 6,CARD8,xor); \ - break; \ - case (sizeof (FbBits) - 6) | (2 << (FB_SHIFT - 3)): \ - FbStorePart(dst,sizeof (FbBits) - 6,CARD16,xor); \ - break; \ - case (sizeof (FbBits) - 6) | (3 << (FB_SHIFT - 3)): \ - FbStorePart(dst,sizeof (FbBits) - 6,CARD16,xor); \ - FbStorePart(dst,sizeof (FbBits) - 4,CARD8,xor); \ - break; \ - case (sizeof (FbBits) - 6) | (4 << (FB_SHIFT - 3)): \ - FbStorePart(dst,sizeof (FbBits) - 6,CARD16,xor); \ - FbStorePart(dst,sizeof (FbBits) - 4,CARD16,xor); \ - break; \ - case (sizeof (FbBits) - 6) | (5 << (FB_SHIFT - 3)): \ - FbStorePart(dst,sizeof (FbBits) - 6,CARD16,xor); \ - FbStorePart(dst,sizeof (FbBits) - 4,CARD16,xor); \ - FbStorePart(dst,sizeof (FbBits) - 2,CARD8,xor); \ - break; \ - case (sizeof (FbBits) - 6): \ - FbStorePart(dst,sizeof (FbBits) - 6,CARD16,xor); \ - FbStorePart(dst,sizeof (FbBits) - 4,CARD32,xor); \ - break; \ - case (sizeof (FbBits) - 5) | (1 << (FB_SHIFT - 3)): \ - FbStorePart(dst,sizeof (FbBits) - 5,CARD8,xor); \ - break; \ - case (sizeof (FbBits) - 5) | (2 << (FB_SHIFT - 3)): \ - FbStorePart(dst,sizeof (FbBits) - 5,CARD8,xor); \ - FbStorePart(dst,sizeof (FbBits) - 4,CARD8,xor); \ - break; \ - case (sizeof (FbBits) - 5) | (3 << (FB_SHIFT - 3)): \ - FbStorePart(dst,sizeof (FbBits) - 5,CARD8,xor); \ - FbStorePart(dst,sizeof (FbBits) - 4,CARD16,xor); \ - break; \ - case (sizeof (FbBits) - 5) | (4 << (FB_SHIFT - 3)): \ - FbStorePart(dst,sizeof (FbBits) - 5,CARD8,xor); \ - FbStorePart(dst,sizeof (FbBits) - 4,CARD16,xor); \ - FbStorePart(dst,sizeof (FbBits) - 2,CARD8,xor); \ - break; \ - case (sizeof (FbBits) - 5): \ - FbStorePart(dst,sizeof (FbBits) - 5,CARD8,xor); \ - FbStorePart(dst,sizeof (FbBits) - 4,CARD32,xor); \ - break; \ - case (sizeof (FbBits) - 4) | (1 << (FB_SHIFT - 3)): \ - FbStorePart(dst,sizeof (FbBits) - 4,CARD8,xor); \ - break; \ - case (sizeof (FbBits) - 4) | (2 << (FB_SHIFT - 3)): \ - FbStorePart(dst,sizeof (FbBits) - 4,CARD16,xor); \ - break; \ - case (sizeof (FbBits) - 4) | (3 << (FB_SHIFT - 3)): \ - FbStorePart(dst,sizeof (FbBits) - 4,CARD16,xor); \ - FbStorePart(dst,sizeof (FbBits) - 2,CARD8,xor); \ - break; \ - case (sizeof (FbBits) - 4): \ - FbStorePart(dst,sizeof (FbBits) - 4,CARD32,xor); \ - break; - -#define FbDoRightMaskByteRRop6Cases(dst,xor) \ - case 4: \ - FbStorePart(dst,0,CARD32,xor); \ - break; \ - case 5: \ - FbStorePart(dst,0,CARD32,xor); \ - FbStorePart(dst,4,CARD8,xor); \ - break; \ - case 6: \ - FbStorePart(dst,0,CARD32,xor); \ - FbStorePart(dst,4,CARD16,xor); \ - break; \ - case 7: \ - FbStorePart(dst,0,CARD32,xor); \ - FbStorePart(dst,4,CARD16,xor); \ - FbStorePart(dst,6,CARD8,xor); \ - break; -#else -#define FbDoLeftMaskByteRRop6Cases(dst,xor) -#define FbDoRightMaskByteRRop6Cases(dst,xor) -#endif - #define FbDoLeftMaskByteRRop(dst,lb,l,and,xor) { \ switch (lb) { \ - FbDoLeftMaskByteRRop6Cases(dst,xor) \ case (sizeof (FbBits) - 3) | (1 << (FB_SHIFT - 3)): \ FbStorePart(dst,sizeof (FbBits) - 3,CARD8,xor); \ break; \ @@ -416,7 +276,6 @@ extern _X_EXPORT void fbSetBits(FbStip * bits, int stride, FbStip data); FbStorePart(dst,0,CARD16,xor); \ FbStorePart(dst,2,CARD8,xor); \ break; \ - FbDoRightMaskByteRRop6Cases(dst,xor) \ default: \ WRITE(dst, FbDoMaskRRop (READ(dst), and, xor, r)); \ } \ @@ -470,21 +329,7 @@ extern _X_EXPORT void fbSetBits(FbStip * bits, int stride, FbStip data); FbLaneCase2((n)>>2,a,(o)+2) \ } -#define FbLaneCase8(n,a,o) \ - if ((n) == 0x0ff) { \ - *(FbBits *) ((a)+(o)) = fgxor; \ - } else { \ - FbLaneCase4((n)&15,a,o) \ - FbLaneCase4((n)>>4,a,(o)+4) \ - } - -#if FB_SHIFT == 6 -#define FbLaneCase(n,a) FbLaneCase8(n,(CARD8 *) (a),0) -#endif - -#if FB_SHIFT == 5 #define FbLaneCase(n,a) FbLaneCase4(n,(CARD8 *) (a),0) -#endif /* Rotate a filled pixel value to the specified alignement */ #define FbRot24(p,b) (FbScrRight(p,b) | FbScrLeft(p,24-(b))) @@ -497,19 +342,6 @@ extern _X_EXPORT void fbSetBits(FbStip * bits, int stride, FbStip data); #define FbPrev24Stip(p) (FbRot24(p,FB_STIP_UNIT%24)) /* step a rotation value to the next/previous rotation value */ -#if FB_UNIT == 64 -#define FbNext24Rot(r) ((r) == 16 ? 0 : (r) + 8) -#define FbPrev24Rot(r) ((r) == 0 ? 16 : (r) - 8) - -#if IMAGE_BYTE_ORDER == MSBFirst -#define FbFirst24Rot(x) (((x) + 8) % 24) -#else -#define FbFirst24Rot(x) ((x) % 24) -#endif - -#endif - -#if FB_UNIT == 32 #define FbNext24Rot(r) ((r) == 0 ? 16 : (r) - 8) #define FbPrev24Rot(r) ((r) == 16 ? 0 : (r) + 8) @@ -518,7 +350,6 @@ extern _X_EXPORT void fbSetBits(FbStip * bits, int stride, FbStip data); #else #define FbFirst24Rot(x) ((x) % 24) #endif -#endif #define FbNext24RotStip(r) ((r) == 0 ? 16 : (r) - 8) #define FbPrev24RotStip(r) ((r) == 16 ? 0 : (r) + 8) diff --git a/fb/fbbits.c b/fb/fbbits.c index ac44f3e67..d7d089c17 100644 --- a/fb/fbbits.c +++ b/fb/fbbits.c @@ -70,9 +70,6 @@ #define POLYSEGMENT fbPolySegment16 #define BITS CARD16 #define BITS2 CARD32 -#if FB_SHIFT == 6 -#define BITS4 FbBits -#endif #include "fbbits.h" @@ -85,9 +82,6 @@ #undef POLYSEGMENT #undef BITS #undef BITS2 -#if FB_SHIFT == 6 -#undef BITS4 -#endif #define BRESSOLID fbBresSolid24 #define BRESDASH fbBresDash24 @@ -155,9 +149,6 @@ #define POLYLINE fbPolyline32 #define POLYSEGMENT fbPolySegment32 #define BITS CARD32 -#if FB_SHIFT == 6 -#define BITS2 FbBits -#endif #include "fbbits.h" @@ -169,6 +160,3 @@ #undef POLYLINE #undef POLYSEGMENT #undef BITS -#if FB_SHIFT == 6 -#undef BITS2 -#endif diff --git a/fb/fbblt.c b/fb/fbblt.c index c615106d1..b4123656a 100644 --- a/fb/fbblt.c +++ b/fb/fbblt.c @@ -520,277 +520,12 @@ fbBlt24(FbBits * srcLine, #endif } -#if FB_SHIFT == FB_STIP_SHIFT + 1 - -/* - * Could be generalized to FB_SHIFT > FB_STIP_SHIFT + 1 by - * creating an ring of values stepped through for each line - */ - -void -fbBltOdd(FbBits * srcLine, - FbStride srcStrideEven, - FbStride srcStrideOdd, - int srcXEven, - int srcXOdd, - FbBits * dstLine, - FbStride dstStrideEven, - FbStride dstStrideOdd, - int dstXEven, - int dstXOdd, int width, int height, int alu, FbBits pm, int bpp) -{ - FbBits *src; - int leftShiftEven, rightShiftEven; - FbBits startmaskEven, endmaskEven; - int nmiddleEven; - - FbBits *dst; - int leftShiftOdd, rightShiftOdd; - FbBits startmaskOdd, endmaskOdd; - int nmiddleOdd; - - int leftShift, rightShift; - FbBits startmask, endmask; - int nmiddle; - - int srcX, dstX; - - FbBits bits, bits1; - int n; - - Bool destInvarient; - Bool even; - - FbDeclareMergeRop(); - - FbInitializeMergeRop(alu, pm); - destInvarient = FbDestInvarientMergeRop(); - - srcLine += srcXEven >> FB_SHIFT; - dstLine += dstXEven >> FB_SHIFT; - srcXEven &= FB_MASK; - dstXEven &= FB_MASK; - srcXOdd &= FB_MASK; - dstXOdd &= FB_MASK; - - FbMaskBits(dstXEven, width, startmaskEven, nmiddleEven, endmaskEven); - FbMaskBits(dstXOdd, width, startmaskOdd, nmiddleOdd, endmaskOdd); - - even = TRUE; - InitializeShifts(srcXEven, dstXEven, leftShiftEven, rightShiftEven); - InitializeShifts(srcXOdd, dstXOdd, leftShiftOdd, rightShiftOdd); - while (height--) { - src = srcLine; - dst = dstLine; - if (even) { - srcX = srcXEven; - dstX = dstXEven; - startmask = startmaskEven; - endmask = endmaskEven; - nmiddle = nmiddleEven; - leftShift = leftShiftEven; - rightShift = rightShiftEven; - srcLine += srcStrideEven; - dstLine += dstStrideEven; - even = FALSE; - } - else { - srcX = srcXOdd; - dstX = dstXOdd; - startmask = startmaskOdd; - endmask = endmaskOdd; - nmiddle = nmiddleOdd; - leftShift = leftShiftOdd; - rightShift = rightShiftOdd; - srcLine += srcStrideOdd; - dstLine += dstStrideOdd; - even = TRUE; - } - if (srcX == dstX) { - if (startmask) { - bits = READ(src++); - WRITE(dst, FbDoMaskMergeRop(bits, READ(dst), startmask)); - dst++; - } - n = nmiddle; - if (destInvarient) { - while (n--) { - bits = READ(src++); - WRITE(dst, FbDoDestInvarientMergeRop(bits)); - dst++; - } - } - else { - while (n--) { - bits = READ(src++); - WRITE(dst, FbDoMergeRop(bits, READ(dst))); - dst++; - } - } - if (endmask) { - bits = READ(src); - WRITE(dst, FbDoMaskMergeRop(bits, READ(dst), endmask)); - } - } - else { - bits = 0; - if (srcX > dstX) - bits = READ(src++); - if (startmask) { - bits1 = FbScrLeft(bits, leftShift); - bits = READ(src++); - bits1 |= FbScrRight(bits, rightShift); - WRITE(dst, FbDoMaskMergeRop(bits1, READ(dst), startmask)); - dst++; - } - n = nmiddle; - if (destInvarient) { - while (n--) { - bits1 = FbScrLeft(bits, leftShift); - bits = READ(src++); - bits1 |= FbScrRight(bits, rightShift); - WRITE(dst, FbDoDestInvarientMergeRop(bits1)); - dst++; - } - } - else { - while (n--) { - bits1 = FbScrLeft(bits, leftShift); - bits = READ(src++); - bits1 |= FbScrRight(bits, rightShift); - WRITE(dst, FbDoMergeRop(bits1, READ(dst))); - dst++; - } - } - if (endmask) { - bits1 = FbScrLeft(bits, leftShift); - if (FbScrLeft(endmask, rightShift)) { - bits = READ(src); - bits1 |= FbScrRight(bits, rightShift); - } - WRITE(dst, FbDoMaskMergeRop(bits1, READ(dst), endmask)); - } - } - } -} - -void -fbBltOdd24(FbBits * srcLine, - FbStride srcStrideEven, - FbStride srcStrideOdd, - int srcXEven, - int srcXOdd, - FbBits * dstLine, - FbStride dstStrideEven, - FbStride dstStrideOdd, - int dstXEven, int dstXOdd, int width, int height, int alu, FbBits pm) -{ - Bool even = TRUE; - - while (height--) { - if (even) { - fbBlt24Line(srcLine, srcXEven, dstLine, dstXEven, - width, alu, pm, FALSE); - srcLine += srcStrideEven; - dstLine += dstStrideEven; - even = FALSE; - } - else { - fbBlt24Line(srcLine, srcXOdd, dstLine, dstXOdd, - width, alu, pm, FALSE); - srcLine += srcStrideOdd; - dstLine += dstStrideOdd; - even = TRUE; - } - } -} - -#endif - -#if FB_STIP_SHIFT != FB_SHIFT -void -fbSetBltOdd(FbStip * stip, - FbStride stipStride, - int srcX, - FbBits ** bits, - FbStride * strideEven, - FbStride * strideOdd, int *srcXEven, int *srcXOdd) -{ - int srcAdjust; - int strideAdjust; - - /* - * bytes needed to align source - */ - srcAdjust = (((int) stip) & (FB_MASK >> 3)); - /* - * FbStip units needed to align stride - */ - strideAdjust = stipStride & (FB_MASK >> FB_STIP_SHIFT); - - *bits = (FbBits *) ((char *) stip - srcAdjust); - if (srcAdjust) { - *strideEven = FbStipStrideToBitsStride(stipStride + 1); - *strideOdd = FbStipStrideToBitsStride(stipStride); - - *srcXEven = srcX + (srcAdjust << 3); - *srcXOdd = srcX + (srcAdjust << 3) - (strideAdjust << FB_STIP_SHIFT); - } - else { - *strideEven = FbStipStrideToBitsStride(stipStride); - *strideOdd = FbStipStrideToBitsStride(stipStride + 1); - - *srcXEven = srcX; - *srcXOdd = srcX + (strideAdjust << FB_STIP_SHIFT); - } -} -#endif - void fbBltStip(FbStip * src, FbStride srcStride, /* in FbStip units, not FbBits units */ int srcX, FbStip * dst, FbStride dstStride, /* in FbStip units, not FbBits units */ int dstX, int width, int height, int alu, FbBits pm, int bpp) { -#if FB_STIP_SHIFT != FB_SHIFT - if (FB_STIP_ODDSTRIDE(srcStride) || FB_STIP_ODDPTR(src) || - FB_STIP_ODDSTRIDE(dstStride) || FB_STIP_ODDPTR(dst)) { - FbStride srcStrideEven, srcStrideOdd; - FbStride dstStrideEven, dstStrideOdd; - int srcXEven, srcXOdd; - int dstXEven, dstXOdd; - FbBits *s, *d; - int sx, dx; - - src += srcX >> FB_STIP_SHIFT; - srcX &= FB_STIP_MASK; - dst += dstX >> FB_STIP_SHIFT; - dstX &= FB_STIP_MASK; - - fbSetBltOdd(src, srcStride, srcX, - &s, &srcStrideEven, &srcStrideOdd, &srcXEven, &srcXOdd); - - fbSetBltOdd(dst, dstStride, dstX, - &d, &dstStrideEven, &dstStrideOdd, &dstXEven, &dstXOdd); - - if (bpp == 24 && !FbCheck24Pix(pm)) { - fbBltOdd24(s, srcStrideEven, srcStrideOdd, - srcXEven, srcXOdd, - d, dstStrideEven, dstStrideOdd, - dstXEven, dstXOdd, width, height, alu, pm); - } - else { - fbBltOdd(s, srcStrideEven, srcStrideOdd, - srcXEven, srcXOdd, - d, dstStrideEven, dstStrideOdd, - dstXEven, dstXOdd, width, height, alu, pm, bpp); - } - } - else -#endif - { - fbBlt((FbBits *) src, FbStipStrideToBitsStride(srcStride), - srcX, - (FbBits *) dst, FbStipStrideToBitsStride(dstStride), - dstX, width, height, alu, pm, bpp, FALSE, FALSE); - } + fbBlt((FbBits *) src, FbStipStrideToBitsStride(srcStride), srcX, + (FbBits *) dst, FbStipStrideToBitsStride(dstStride), dstX, + width, height, alu, pm, bpp, FALSE, FALSE); } diff --git a/fb/fbbltone.c b/fb/fbbltone.c index d2f04165b..3042c4b26 100644 --- a/fb/fbbltone.c +++ b/fb/fbbltone.c @@ -67,59 +67,9 @@ #define LaneCases4(n,a) LaneCases2(n,a); LaneCases2(n+2,a) #define LaneCases8(n,a) LaneCases4(n,a); LaneCases4(n+4,a) #define LaneCases16(n,a) LaneCases8(n,a); LaneCases8(n+8,a) -#define LaneCases32(n,a) LaneCases16(n,a); LaneCases16(n+16,a) -#define LaneCases64(n,a) LaneCases32(n,a); LaneCases32(n+32,a) -#define LaneCases128(n,a) LaneCases64(n,a); LaneCases64(n+64,a) -#define LaneCases256(n,a) LaneCases128(n,a); LaneCases128(n+128,a) -#if FB_SHIFT == 6 -#define LaneCases(a) LaneCases256(0,a) -#endif - -#if FB_SHIFT == 5 #define LaneCases(a) LaneCases16(0,a) -#endif -#if FB_SHIFT == 6 -static const CARD8 fb8Lane[256] = { - 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, - 21, - 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, - 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, - 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, - 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, - 98, 99, 100, 101, 102, 103, 104, 105, 106, 107, 108, 109, 110, 111, 112, - 113, 114, 115, - 116, 117, 118, 119, 120, 121, 122, 123, 124, 125, 126, 127, 128, 129, 130, - 131, 132, 133, - 134, 135, 136, 137, 138, 139, 140, 141, 142, 143, 144, 145, 146, 147, 148, - 149, 150, 151, - 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, 162, 163, 164, 165, 166, - 167, 168, 169, - 170, 171, 172, 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, - 185, 186, 187, - 188, 189, 190, 191, 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, - 203, 204, 205, - 206, 207, 208, 209, 210, 211, 212, 213, 214, 215, 216, 217, 218, 219, 220, - 221, 222, 223, - 224, 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 236, 237, 238, - 239, 240, 241, - 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, 254, 255, -}; - -static const CARD8 fb16Lane[256] = { - 0x00, 0x03, 0x0c, 0x0f, - 0x30, 0x33, 0x3c, 0x3f, - 0xc0, 0xc3, 0xcc, 0xcf, - 0xf0, 0xf3, 0xfc, 0xff, -}; - -static const CARD8 fb32Lane[16] = { - 0x00, 0x0f, 0xf0, 0xff, -}; -#endif - -#if FB_SHIFT == 5 static const CARD8 fb8Lane[16] = { 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15 }; @@ -131,7 +81,6 @@ static const CARD8 fb16Lane[16] = { static const CARD8 fb32Lane[16] = { 0, 15, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, }; -#endif void fbBltOne(FbStip * src, FbStride srcStride, /* FbStip units per scanline */ @@ -285,12 +234,7 @@ fbBltOne(FbStip * src, FbStride srcStride, /* FbStip units per scanline */ * Consume stipple bits for startmask */ if (startmask) { -#if FB_UNIT > 32 - if (pixelsPerDst == 16) - mask = FbStipple16Bits(FbLeftStipBits(bits, 16)); - else -#endif - mask = fbBits[FbLeftStipBits(bits, pixelsPerDst)]; + mask = fbBits[FbLeftStipBits(bits, pixelsPerDst)]; if (fbLane) { fbTransparentSpan(dst, mask & startmask, fgxor, 1); } @@ -312,12 +256,7 @@ fbBltOne(FbStip * src, FbStride srcStride, /* FbStip units per scanline */ w -= n; if (copy) { while (n--) { -#if FB_UNIT > 32 - if (pixelsPerDst == 16) - mask = FbStipple16Bits(FbLeftStipBits(bits, 16)); - else -#endif - mask = fbBits[FbLeftStipBits(bits, pixelsPerDst)]; + mask = fbBits[FbLeftStipBits(bits, pixelsPerDst)]; WRITE(dst, FbOpaqueStipple(mask, fgxor, bgxor)); dst++; bits = FbStipLeft(bits, pixelsPerDst); @@ -367,12 +306,7 @@ fbBltOne(FbStip * src, FbStride srcStride, /* FbStip units per scanline */ if (endNeedsLoad) { LoadBits; } -#if FB_UNIT > 32 - if (pixelsPerDst == 16) - mask = FbStipple16Bits(FbLeftStipBits(bits, 16)); - else -#endif - mask = fbBits[FbLeftStipBits(bits, pixelsPerDst)]; + mask = fbBits[FbLeftStipBits(bits, pixelsPerDst)]; if (fbLane) { fbTransparentSpan(dst, mask & endmask, fgxor, 1); } @@ -410,47 +344,6 @@ fbBltOne(FbStip * src, FbStride srcStride, /* FbStip units per scanline */ #define SelMask24(b,n,r) ((((b) >> n) & 1) * Mask24(n,r)) -/* - * Untested for MSBFirst or FB_UNIT == 32 - */ - -#if FB_UNIT == 64 -#define C4_24(b,r) \ - (SelMask24(b,0,r) | \ - SelMask24(b,1,r) | \ - SelMask24(b,2,r) | \ - SelMask24(b,3,r)) - -#define FbStip24New(rot) (2 + (rot != 0)) -#define FbStip24Len 4 - -const FbBits fbStipple24Bits[3][1 << FbStip24Len] = { - /* rotate 0 */ - { - C4_24(0, 0), C4_24(1, 0), C4_24(2, 0), C4_24(3, 0), - C4_24(4, 0), C4_24(5, 0), C4_24(6, 0), C4_24(7, 0), - C4_24(8, 0), C4_24(9, 0), C4_24(10, 0), C4_24(11, 0), - C4_24(12, 0), C4_24(13, 0), C4_24(14, 0), C4_24(15, 0), - }, - /* rotate 8 */ - { - C4_24(0, 8), C4_24(1, 8), C4_24(2, 8), C4_24(3, 8), - C4_24(4, 8), C4_24(5, 8), C4_24(6, 8), C4_24(7, 8), - C4_24(8, 8), C4_24(9, 8), C4_24(10, 8), C4_24(11, 8), - C4_24(12, 8), C4_24(13, 8), C4_24(14, 8), C4_24(15, 8), - }, - /* rotate 16 */ - { - C4_24(0, 16), C4_24(1, 16), C4_24(2, 16), C4_24(3, 16), - C4_24(4, 16), C4_24(5, 16), C4_24(6, 16), C4_24(7, 16), - C4_24(8, 16), C4_24(9, 16), C4_24(10, 16), C4_24(11, 16), - C4_24(12, 16), C4_24(13, 16), C4_24(14, 16), C4_24(15, 16), - } -}; - -#endif - -#if FB_UNIT == 32 #define C2_24(b,r) \ (SelMask24(b,0,r) | \ SelMask24(b,1,r)) @@ -476,7 +369,6 @@ const FbBits fbStipple24Bits[3][1 << FbStip24Len] = { C2_24(0, 16), C2_24(1, 16), C2_24(2, 16), C2_24(3, 16), } }; -#endif #if BITMAP_BIT_ORDER == LSBFirst diff --git a/fb/fbglyph.c b/fb/fbglyph.c index 4f2904c31..848478258 100644 --- a/fb/fbglyph.c +++ b/fb/fbglyph.c @@ -56,11 +56,7 @@ fbGlyphIn(RegionPtr pRegion, int x, int y, int width, int height) #define WRITE1(d,n,fg) WRITE((d) + (n), (CARD8) fg) #define WRITE2(d,n,fg) WRITE((CARD16 *) &(d[n]), (CARD16) fg) #define WRITE4(d,n,fg) WRITE((CARD32 *) &(d[n]), (CARD32) fg) -#if FB_UNIT == 6 && IMAGE_BYTE_ORDER == LSBFirst -#define WRITE8(d) WRITE((FbBits *) &(d[0]), fg) -#else #define WRITE8(d) WRITE4(d,0,_ABCA), WRITE4(d,4,_BCAB) -#endif /* * This is a bit tricky, but it's brief. Write 12 bytes worth diff --git a/fb/fbpict.c b/fb/fbpict.c index f9c991774..7a9e46aa5 100644 --- a/fb/fbpict.c +++ b/fb/fbpict.c @@ -309,17 +309,9 @@ create_bits_picture(PicturePtr pict, Bool has_clip, int *xoff, int *yoff) return NULL; #ifdef FB_ACCESS_WRAPPER -#if FB_SHIFT==5 - pixman_image_set_accessors(image, (pixman_read_memory_func_t) wfbReadMemory, (pixman_write_memory_func_t) wfbWriteMemory); - -#else - -#error The pixman library only works when FbBits is 32 bits wide - -#endif #endif /* pCompositeClip is undefined for source pictures, so diff --git a/fb/fbrop.h b/fb/fbrop.h index 4362adb37..b995f2343 100644 --- a/fb/fbrop.h +++ b/fb/fbrop.h @@ -95,10 +95,6 @@ extern _X_EXPORT const FbMergeRopRec FbMergeRopBits[16]; * Stippling operations; */ -extern _X_EXPORT const FbBits fbStipple16Bits[256]; /* half of table */ - -#define FbStipple16Bits(b) \ - (fbStipple16Bits[(b)&0xff] | fbStipple16Bits[(b) >> 8] << FB_HALFUNIT) extern _X_EXPORT const FbBits fbStipple8Bits[256]; extern _X_EXPORT const FbBits fbStipple4Bits[16]; extern _X_EXPORT const FbBits fbStipple2Bits[4]; diff --git a/fb/fbstipple.c b/fb/fbstipple.c index f6c84a212..9a877c199 100644 --- a/fb/fbstipple.c +++ b/fb/fbstipple.c @@ -38,18 +38,8 @@ #define LaneCases4(c,a) LaneCases2(c,a); LaneCases2(c+2,a) #define LaneCases8(c,a) LaneCases4(c,a); LaneCases4(c+4,a) #define LaneCases16(c,a) LaneCases8(c,a); LaneCases8(c+8,a) -#define LaneCases32(c,a) LaneCases16(c,a); LaneCases16(c+16,a) -#define LaneCases64(c,a) LaneCases32(c,a); LaneCases32(c+32,a) -#define LaneCases128(c,a) LaneCases64(c,a); LaneCases64(c+64,a) -#define LaneCases256(c,a) LaneCases128(c,a); LaneCases128(c+128,a) -#if FB_SHIFT == 6 -#define LaneCases(a) LaneCases256(0,a) -#endif - -#if FB_SHIFT == 5 #define LaneCases(a) LaneCases16(0,a) -#endif /* * Repeat a transparent stipple across a scanline n times @@ -64,12 +54,6 @@ fbTransparentSpan(FbBits * dst, FbBits stip, FbBits fgxor, int n) s |= ((FbStip) (stip >> 8) & 0x02); s |= ((FbStip) (stip >> 16) & 0x04); s |= ((FbStip) (stip >> 24) & 0x08); -#if FB_SHIFT > 5 - s |= ((FbStip) (stip >> 32) & 0x10); - s |= ((FbStip) (stip >> 40) & 0x20); - s |= ((FbStip) (stip >> 48) & 0x40); - s |= ((FbStip) (stip >> 56) & 0x80); -#endif switch (s) { LaneCases(dst); } @@ -142,12 +126,7 @@ fbEvenStipple(FbBits * dst, s += stipStride; if (s == stipEnd) s = stip; -#if FB_UNIT > 32 - if (pixelsPerDst == 16) - mask = FbStipple16Bits(FbLeftStipBits(bits, 16)); - else -#endif - mask = fbBits[FbLeftStipBits(bits, pixelsPerDst)]; + mask = fbBits[FbLeftStipBits(bits, pixelsPerDst)]; /* * Rotate into position and compute reduced rop values */ diff --git a/fb/fbutil.c b/fb/fbutil.c index 2ca80d1c9..9d66c2af1 100644 --- a/fb/fbutil.c +++ b/fb/fbutil.c @@ -174,24 +174,6 @@ const FbMergeRopRec FbMergeRopBits[16] = { SelMask(b,6,w) | \ SelMask(b,7,w)) -#if FB_UNIT == 16 -#define fbStipple16Bits 0 -#define fbStipple8Bits 0 -const FbBits fbStipple4Bits[16] = { - C4(0, 4), C4(1, 4), C4(2, 4), C4(3, 4), C4(4, 4), C4(5, 4), - C4(6, 4), C4(7, 4), C4(8, 4), C4(9, 4), C4(10, 4), C4(11, 4), - C4(12, 4), C4(13, 4), C4(14, 4), C4(15, 4), -}; - -const FbBits fbStipple2Bits[4] = { - C2(0, 8), C2(1, 8), C2(2, 8), C2(3, 8), -}; - -const FbBits fbStipple1Bits[2] = { - C1(0, 16), C1(1, 16), -}; -#endif -#if FB_UNIT == 32 #define fbStipple16Bits 0 const FbBits fbStipple8Bits[256] = { C8(0, 4), C8(1, 4), C8(2, 4), C8(3, 4), C8(4, 4), C8(5, 4), @@ -252,112 +234,7 @@ const FbBits fbStipple2Bits[4] = { const FbBits fbStipple1Bits[2] = { C1(0, 32), C1(1, 32), }; -#endif -#if FB_UNIT == 64 -const FbBits fbStipple16Bits[256] = { - C8(0, 4), C8(1, 4), C8(2, 4), C8(3, 4), C8(4, 4), C8(5, 4), - C8(6, 4), C8(7, 4), C8(8, 4), C8(9, 4), C8(10, 4), C8(11, 4), - C8(12, 4), C8(13, 4), C8(14, 4), C8(15, 4), C8(16, 4), C8(17, 4), - C8(18, 4), C8(19, 4), C8(20, 4), C8(21, 4), C8(22, 4), C8(23, 4), - C8(24, 4), C8(25, 4), C8(26, 4), C8(27, 4), C8(28, 4), C8(29, 4), - C8(30, 4), C8(31, 4), C8(32, 4), C8(33, 4), C8(34, 4), C8(35, 4), - C8(36, 4), C8(37, 4), C8(38, 4), C8(39, 4), C8(40, 4), C8(41, 4), - C8(42, 4), C8(43, 4), C8(44, 4), C8(45, 4), C8(46, 4), C8(47, 4), - C8(48, 4), C8(49, 4), C8(50, 4), C8(51, 4), C8(52, 4), C8(53, 4), - C8(54, 4), C8(55, 4), C8(56, 4), C8(57, 4), C8(58, 4), C8(59, 4), - C8(60, 4), C8(61, 4), C8(62, 4), C8(63, 4), C8(64, 4), C8(65, 4), - C8(66, 4), C8(67, 4), C8(68, 4), C8(69, 4), C8(70, 4), C8(71, 4), - C8(72, 4), C8(73, 4), C8(74, 4), C8(75, 4), C8(76, 4), C8(77, 4), - C8(78, 4), C8(79, 4), C8(80, 4), C8(81, 4), C8(82, 4), C8(83, 4), - C8(84, 4), C8(85, 4), C8(86, 4), C8(87, 4), C8(88, 4), C8(89, 4), - C8(90, 4), C8(91, 4), C8(92, 4), C8(93, 4), C8(94, 4), C8(95, 4), - C8(96, 4), C8(97, 4), C8(98, 4), C8(99, 4), C8(100, 4), C8(101, 4), - C8(102, 4), C8(103, 4), C8(104, 4), C8(105, 4), C8(106, 4), C8(107, 4), - C8(108, 4), C8(109, 4), C8(110, 4), C8(111, 4), C8(112, 4), C8(113, 4), - C8(114, 4), C8(115, 4), C8(116, 4), C8(117, 4), C8(118, 4), C8(119, 4), - C8(120, 4), C8(121, 4), C8(122, 4), C8(123, 4), C8(124, 4), C8(125, 4), - C8(126, 4), C8(127, 4), C8(128, 4), C8(129, 4), C8(130, 4), C8(131, 4), - C8(132, 4), C8(133, 4), C8(134, 4), C8(135, 4), C8(136, 4), C8(137, 4), - C8(138, 4), C8(139, 4), C8(140, 4), C8(141, 4), C8(142, 4), C8(143, 4), - C8(144, 4), C8(145, 4), C8(146, 4), C8(147, 4), C8(148, 4), C8(149, 4), - C8(150, 4), C8(151, 4), C8(152, 4), C8(153, 4), C8(154, 4), C8(155, 4), - C8(156, 4), C8(157, 4), C8(158, 4), C8(159, 4), C8(160, 4), C8(161, 4), - C8(162, 4), C8(163, 4), C8(164, 4), C8(165, 4), C8(166, 4), C8(167, 4), - C8(168, 4), C8(169, 4), C8(170, 4), C8(171, 4), C8(172, 4), C8(173, 4), - C8(174, 4), C8(175, 4), C8(176, 4), C8(177, 4), C8(178, 4), C8(179, 4), - C8(180, 4), C8(181, 4), C8(182, 4), C8(183, 4), C8(184, 4), C8(185, 4), - C8(186, 4), C8(187, 4), C8(188, 4), C8(189, 4), C8(190, 4), C8(191, 4), - C8(192, 4), C8(193, 4), C8(194, 4), C8(195, 4), C8(196, 4), C8(197, 4), - C8(198, 4), C8(199, 4), C8(200, 4), C8(201, 4), C8(202, 4), C8(203, 4), - C8(204, 4), C8(205, 4), C8(206, 4), C8(207, 4), C8(208, 4), C8(209, 4), - C8(210, 4), C8(211, 4), C8(212, 4), C8(213, 4), C8(214, 4), C8(215, 4), - C8(216, 4), C8(217, 4), C8(218, 4), C8(219, 4), C8(220, 4), C8(221, 4), - C8(222, 4), C8(223, 4), C8(224, 4), C8(225, 4), C8(226, 4), C8(227, 4), - C8(228, 4), C8(229, 4), C8(230, 4), C8(231, 4), C8(232, 4), C8(233, 4), - C8(234, 4), C8(235, 4), C8(236, 4), C8(237, 4), C8(238, 4), C8(239, 4), - C8(240, 4), C8(241, 4), C8(242, 4), C8(243, 4), C8(244, 4), C8(245, 4), - C8(246, 4), C8(247, 4), C8(248, 4), C8(249, 4), C8(250, 4), C8(251, 4), - C8(252, 4), C8(253, 4), C8(254, 4), C8(255, 4), -}; -const FbBits fbStipple8Bits[256] = { - C8(0, 8), C8(1, 8), C8(2, 8), C8(3, 8), C8(4, 8), C8(5, 8), - C8(6, 8), C8(7, 8), C8(8, 8), C8(9, 8), C8(10, 8), C8(11, 8), - C8(12, 8), C8(13, 8), C8(14, 8), C8(15, 8), C8(16, 8), C8(17, 8), - C8(18, 8), C8(19, 8), C8(20, 8), C8(21, 8), C8(22, 8), C8(23, 8), - C8(24, 8), C8(25, 8), C8(26, 8), C8(27, 8), C8(28, 8), C8(29, 8), - C8(30, 8), C8(31, 8), C8(32, 8), C8(33, 8), C8(34, 8), C8(35, 8), - C8(36, 8), C8(37, 8), C8(38, 8), C8(39, 8), C8(40, 8), C8(41, 8), - C8(42, 8), C8(43, 8), C8(44, 8), C8(45, 8), C8(46, 8), C8(47, 8), - C8(48, 8), C8(49, 8), C8(50, 8), C8(51, 8), C8(52, 8), C8(53, 8), - C8(54, 8), C8(55, 8), C8(56, 8), C8(57, 8), C8(58, 8), C8(59, 8), - C8(60, 8), C8(61, 8), C8(62, 8), C8(63, 8), C8(64, 8), C8(65, 8), - C8(66, 8), C8(67, 8), C8(68, 8), C8(69, 8), C8(70, 8), C8(71, 8), - C8(72, 8), C8(73, 8), C8(74, 8), C8(75, 8), C8(76, 8), C8(77, 8), - C8(78, 8), C8(79, 8), C8(80, 8), C8(81, 8), C8(82, 8), C8(83, 8), - C8(84, 8), C8(85, 8), C8(86, 8), C8(87, 8), C8(88, 8), C8(89, 8), - C8(90, 8), C8(91, 8), C8(92, 8), C8(93, 8), C8(94, 8), C8(95, 8), - C8(96, 8), C8(97, 8), C8(98, 8), C8(99, 8), C8(100, 8), C8(101, 8), - C8(102, 8), C8(103, 8), C8(104, 8), C8(105, 8), C8(106, 8), C8(107, 8), - C8(108, 8), C8(109, 8), C8(110, 8), C8(111, 8), C8(112, 8), C8(113, 8), - C8(114, 8), C8(115, 8), C8(116, 8), C8(117, 8), C8(118, 8), C8(119, 8), - C8(120, 8), C8(121, 8), C8(122, 8), C8(123, 8), C8(124, 8), C8(125, 8), - C8(126, 8), C8(127, 8), C8(128, 8), C8(129, 8), C8(130, 8), C8(131, 8), - C8(132, 8), C8(133, 8), C8(134, 8), C8(135, 8), C8(136, 8), C8(137, 8), - C8(138, 8), C8(139, 8), C8(140, 8), C8(141, 8), C8(142, 8), C8(143, 8), - C8(144, 8), C8(145, 8), C8(146, 8), C8(147, 8), C8(148, 8), C8(149, 8), - C8(150, 8), C8(151, 8), C8(152, 8), C8(153, 8), C8(154, 8), C8(155, 8), - C8(156, 8), C8(157, 8), C8(158, 8), C8(159, 8), C8(160, 8), C8(161, 8), - C8(162, 8), C8(163, 8), C8(164, 8), C8(165, 8), C8(166, 8), C8(167, 8), - C8(168, 8), C8(169, 8), C8(170, 8), C8(171, 8), C8(172, 8), C8(173, 8), - C8(174, 8), C8(175, 8), C8(176, 8), C8(177, 8), C8(178, 8), C8(179, 8), - C8(180, 8), C8(181, 8), C8(182, 8), C8(183, 8), C8(184, 8), C8(185, 8), - C8(186, 8), C8(187, 8), C8(188, 8), C8(189, 8), C8(190, 8), C8(191, 8), - C8(192, 8), C8(193, 8), C8(194, 8), C8(195, 8), C8(196, 8), C8(197, 8), - C8(198, 8), C8(199, 8), C8(200, 8), C8(201, 8), C8(202, 8), C8(203, 8), - C8(204, 8), C8(205, 8), C8(206, 8), C8(207, 8), C8(208, 8), C8(209, 8), - C8(210, 8), C8(211, 8), C8(212, 8), C8(213, 8), C8(214, 8), C8(215, 8), - C8(216, 8), C8(217, 8), C8(218, 8), C8(219, 8), C8(220, 8), C8(221, 8), - C8(222, 8), C8(223, 8), C8(224, 8), C8(225, 8), C8(226, 8), C8(227, 8), - C8(228, 8), C8(229, 8), C8(230, 8), C8(231, 8), C8(232, 8), C8(233, 8), - C8(234, 8), C8(235, 8), C8(236, 8), C8(237, 8), C8(238, 8), C8(239, 8), - C8(240, 8), C8(241, 8), C8(242, 8), C8(243, 8), C8(244, 8), C8(245, 8), - C8(246, 8), C8(247, 8), C8(248, 8), C8(249, 8), C8(250, 8), C8(251, 8), - C8(252, 8), C8(253, 8), C8(254, 8), C8(255, 8), -}; - -const FbBits fbStipple4Bits[16] = { - C4(0, 16), C4(1, 16), C4(2, 16), C4(3, 16), C4(4, 16), C4(5, 16), - C4(6, 16), C4(7, 16), C4(8, 16), C4(9, 16), C4(10, 16), C4(11, 16), - C4(12, 16), C4(13, 16), C4(14, 16), C4(15, 16), -}; - -const FbBits fbStipple2Bits[4] = { - C2(0, 32), C2(1, 32), C2(2, 32), C2(3, 32), -}; - -#define fbStipple1Bits 0 -#endif const FbBits *const fbStippleTable[] = { 0, fbStipple1Bits,