]> source.dussan.org Git - tigervnc.git/commitdiff
Revert commit 3784 as it was incorrect. A "Pixel" is always expected to be in
authorPierre Ossman <ossman@cendio.se>
Thu, 30 Sep 2010 09:19:15 +0000 (09:19 +0000)
committerPierre Ossman <ossman@cendio.se>
Thu, 30 Sep 2010 09:19:15 +0000 (09:19 +0000)
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

common/rfb/PixelFormat.inl
common/rfb/tightEncode.h

index ca83a30572ab666d1ff058d5c3888244acf61f19..90d8e6da9de7b25112c696cd369e7435f7e7ee85 100644 (file)
@@ -75,16 +75,9 @@ inline void PixelFormat::bufferFromPixel(rdr::U8* buffer, Pixel p) const
 }
 
 
-#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::U16 *r, rdr::
 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);
index aa6e63aada7f9bb28504287a2a1a5cd96ba70302..0c6b364c41cde49f1208562f81c13566220ff80c 100644 (file)
@@ -282,7 +282,7 @@ static inline unsigned int PACK_PIXELS (PIXEL_T *buf, unsigned int count,
   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;