diff options
author | marha <marha@users.sourceforge.net> | 2009-09-15 15:05:16 +0000 |
---|---|---|
committer | marha <marha@users.sourceforge.net> | 2009-09-15 15:05:16 +0000 |
commit | 1915b018a54e991c9289ee0c03488294e890caea (patch) | |
tree | 0eccc8afdcbcee10f91cfe418fc8c7cdcd4b0163 /xorg-server/fb/fb.h | |
parent | 8bfa2f879ea38340a633c29120758a390b63667e (diff) | |
parent | 4db64b701ca08687df5932321d48f2ef29b99fed (diff) | |
download | vcxsrv-1915b018a54e991c9289ee0c03488294e890caea.tar.gz vcxsrv-1915b018a54e991c9289ee0c03488294e890caea.tar.bz2 vcxsrv-1915b018a54e991c9289ee0c03488294e890caea.zip |
svn merge https://vcxsrv.svn.sourceforge.net/svnroot/vcxsrv/branches/released .
Diffstat (limited to 'xorg-server/fb/fb.h')
-rw-r--r-- | xorg-server/fb/fb.h | 44 |
1 files changed, 28 insertions, 16 deletions
diff --git a/xorg-server/fb/fb.h b/xorg-server/fb/fb.h index 2d3c85d44..c35e7654b 100644 --- a/xorg-server/fb/fb.h +++ b/xorg-server/fb/fb.h @@ -487,22 +487,34 @@ extern _X_EXPORT void fbSetBits (FbStip *bits, int stride, FbStip data); * The term "lane" comes from the hardware term "byte-lane" which */ -#define FbLaneCase1(n,a,o) ((n) == 0x01 ? (void) \ - WRITE((CARD8 *) ((a)+FbPatternOffset(o,CARD8)), \ - fgxor) : (void) 0) -#define FbLaneCase2(n,a,o) ((n) == 0x03 ? (void) \ - WRITE((CARD16 *) ((a)+FbPatternOffset(o,CARD16)), \ - fgxor) : \ - ((void)FbLaneCase1((n)&1,a,o), \ - FbLaneCase1((n)>>1,a,(o)+1))) -#define FbLaneCase4(n,a,o) ((n) == 0x0f ? (void) \ - WRITE((CARD32 *) ((a)+FbPatternOffset(o,CARD32)), \ - fgxor) : \ - ((void)FbLaneCase2((n)&3,a,o), \ - FbLaneCase2((n)>>2,a,(o)+2))) -#define FbLaneCase8(n,a,o) ((n) == 0x0ff ? (void) (*(FbBits *) ((a)+(o)) = fgxor) : \ - ((void)FbLaneCase4((n)&15,a,o), \ - FbLaneCase4((n)>>4,a,(o)+4))) +#define FbLaneCase1(n,a,o) \ + if ((n) == 0x01) { \ + WRITE((CARD8 *) ((a)+FbPatternOffset(o,CARD8)), fgxor); \ + } + +#define FbLaneCase2(n,a,o) \ + if ((n) == 0x03) { \ + WRITE((CARD16 *) ((a)+FbPatternOffset(o,CARD16)), fgxor); \ + } else { \ + FbLaneCase1((n)&1,a,o) \ + FbLaneCase1((n)>>1,a,(o)+1) \ + } + +#define FbLaneCase4(n,a,o) \ + if ((n) == 0x0f) { \ + WRITE((CARD32 *) ((a)+FbPatternOffset(o,CARD32)), fgxor); \ + } else { \ + FbLaneCase2((n)&3,a,o) \ + 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) |