Optimise the common pixel format conversion RGB24 to RGB32.
git-svn-id: svn://svn.code.sf.net/p/tigervnc/code/trunk@3730 3789f03b-4d11-0410-bbf8-ca57d06f2519
diff --git a/common/rfb/PixelFormat.inl b/common/rfb/PixelFormat.inl
index d5edfa5..90d8e6d 100644
--- a/common/rfb/PixelFormat.inl
+++ b/common/rfb/PixelFormat.inl
@@ -50,6 +50,31 @@
}
+inline void PixelFormat::bufferFromPixel(rdr::U8* buffer, Pixel p) const
+{
+ if (bigEndian) {
+ switch (bpp) {
+ case 32:
+ *(buffer++) = (p >> 24) & 0xff;
+ *(buffer++) = (p >> 16) & 0xff;
+ case 16:
+ *(buffer++) = (p >> 8) & 0xff;
+ case 8:
+ *(buffer++) = (p >> 0) & 0xff;
+ }
+ } else {
+ buffer[0] = (p >> 0) & 0xff;
+ if (bpp >= 16) {
+ buffer[1] = (p >> 8) & 0xff;
+ if (bpp == 32) {
+ buffer[2] = (p >> 16) & 0xff;
+ buffer[3] = (p >> 24) & 0xff;
+ }
+ }
+ }
+}
+
+
inline void PixelFormat::rgbFromPixel(Pixel p, ColourMap* cm, rdr::U16 *r, rdr::U16 *g, rdr::U16 *b) const
{
if (trueColour) {