Revert commit 3784 as it was incorrect. A "Pixel" is always expected to be in
native endian, and hence requires no swapping. The code in tightEncode.h
however is working on pixel buffers, not Pixel arrays, so that's where the
real bug was and is hereby properly fixed.


git-svn-id: svn://svn.code.sf.net/p/tigervnc/code/trunk@4151 3789f03b-4d11-0410-bbf8-ca57d06f2519
diff --git a/common/rfb/PixelFormat.inl b/common/rfb/PixelFormat.inl
index ca83a30..90d8e6d 100644
--- a/common/rfb/PixelFormat.inl
+++ b/common/rfb/PixelFormat.inl
@@ -75,16 +75,9 @@
 }
 
 
-#define _rfb_bswap_32(x) \
-        ((((x) & 0xff000000) >> 24) | (((x) & 0x00ff0000) >>  8) | \
-         (((x) & 0x0000ff00) <<  8) | (((x) & 0x000000ff) << 24))
-
-
 inline void PixelFormat::rgbFromPixel(Pixel p, ColourMap* cm, rdr::U16 *r, rdr::U16 *g, rdr::U16 *b) const
 {
   if (trueColour) {
-    if (endianMismatch)
-      p = _rfb_bswap_32(p);
     /* We don't need to mask since we shift out unwanted bits */
     *r = (p >> redShift) << redConvShift;
     *g = (p >> greenShift) << greenConvShift;
@@ -107,8 +100,6 @@
 inline void PixelFormat::rgbFromPixel(Pixel p, ColourMap* cm, rdr::U8 *r, rdr::U8 *g, rdr::U8 *b) const
 {
   if (trueColour) {
-    if (endianMismatch)
-      p = _rfb_bswap_32(p);
     *r = (p >> redShift) << (redConvShift - 8);
     *g = (p >> greenShift) << (greenConvShift - 8);
     *b = (p >> blueShift) << (blueConvShift - 8);
diff --git a/common/rfb/tightEncode.h b/common/rfb/tightEncode.h
index aa6e63a..0c6b364 100644
--- a/common/rfb/tightEncode.h
+++ b/common/rfb/tightEncode.h
@@ -282,7 +282,7 @@
   rdr::U8 *dst = (rdr::U8 *)buf;
   for (unsigned int i = 0; i < count; i++) {
     pix = *buf++;
-    pf.rgbFromPixel(pix, NULL, &dst[0], &dst[1], &dst[2]);
+    pf.rgbFromBuffer(dst, (rdr::U8*)&pix, 1, NULL);
     dst += 3;
   }
   return count * 3;