From ff230a1672e6e33a7d831f8d0e30676f3deeb89a Mon Sep 17 00:00:00 2001 From: Matt Chapman Date: Wed, 29 Oct 2003 08:37:20 +0000 Subject: [PATCH] Fix translate16to16 along the lines of all the other translate functions. git-svn-id: svn://svn.code.sf.net/p/rdesktop/code/trunk/rdesktop@527 423420c4-83ab-492f-b58f-81f9feb106b5 --- xwin.c | 36 ++++++++++++++++++------------------ 1 file changed, 18 insertions(+), 18 deletions(-) diff --git a/xwin.c b/xwin.c index 997b36c..e3fdb7d 100644 --- a/xwin.c +++ b/xwin.c @@ -408,34 +408,35 @@ translate15to32(uint16 * data, uint8 * out, uint8 * end) } static void -translate16to16(uint16 * data, uint16 * out, uint16 * end) +translate16to16(uint16 * data, uint8 * out, uint8 * end) { + uint16 pixel; uint16 value; - if (g_xserver_be) + while (out < end) { - while (out < end) + pixel = *(data++); + + if (g_host_be) { - value = *data; - BSWAP16(value); - *out = value; - data++; - out++; + BSWAP16(pixel); } - } - else - { - while (out < end) + value = make_colour(split_colour16(pixel)); + + if (g_xserver_be) { - *out = *data; - out++; - data++; + *(out++) = value >> 8; + *(out++) = value; + } + else + { + *(out++) = value; + *(out++) = value >> 8; } } } - static void translate16to24(uint16 * data, uint8 * out, uint8 * end) { @@ -591,8 +592,7 @@ translate_image(int width, int height, uint8 * data) translate16to24((uint16 *) data, out, end); break; case 16: - translate16to16((uint16 *) data, (uint16 *) out, - (uint16 *) end); + translate16to16((uint16 *) data, out, end); break; } break;