From 17045d5d3aef14d17e4be543abbaf7cb7bf8833b Mon Sep 17 00:00:00 2001 From: Michael Jumper Date: Sun, 29 Sep 2019 16:08:27 -0700 Subject: [PATCH] GUACAMOLE-249: Use reversed byte order for colors locally (verification needed). --- src/protocols/rdp/rdp.c | 2 +- src/protocols/rdp/rdp_bitmap.c | 4 ++-- src/protocols/rdp/rdp_color.c | 6 +++--- src/protocols/rdp/rdp_pointer.c | 2 +- 4 files changed, 7 insertions(+), 7 deletions(-) diff --git a/src/protocols/rdp/rdp.c b/src/protocols/rdp/rdp.c index 134de7de..d249f676 100644 --- a/src/protocols/rdp/rdp.c +++ b/src/protocols/rdp/rdp.c @@ -229,7 +229,7 @@ BOOL rdp_freerdp_pre_connect(freerdp* instance) { instance->context->cache = cache_new(instance->settings); /* Init FreeRDP internal GDI implementation */ - if (!gdi_init(instance, PIXEL_FORMAT_XRGB32)) + if (!gdi_init(instance, PIXEL_FORMAT_BGRX32)) return FALSE; /* Set up bitmap handling */ diff --git a/src/protocols/rdp/rdp_bitmap.c b/src/protocols/rdp/rdp_bitmap.c index 5a904233..2dcf77a2 100644 --- a/src/protocols/rdp/rdp_bitmap.c +++ b/src/protocols/rdp/rdp_bitmap.c @@ -73,13 +73,13 @@ BOOL guac_rdp_cache_bitmap(rdpContext* context, rdpBitmap* bitmap) { BOOL guac_rdp_bitmap_new(rdpContext* context, rdpBitmap* bitmap) { /* Convert image data if present */ - if (bitmap->data != NULL && bitmap->format != PIXEL_FORMAT_XRGB32) { + if (bitmap->data != NULL && bitmap->format != PIXEL_FORMAT_BGRX32) { /* Allocate sufficient space for converted image */ unsigned char* image_buffer = _aligned_malloc(bitmap->width * bitmap->height * 4, 16); /* Attempt image conversion */ - if (!freerdp_image_copy(image_buffer, PIXEL_FORMAT_XRGB32, 0, 0, 0, + if (!freerdp_image_copy(image_buffer, PIXEL_FORMAT_BGRX32, 0, 0, 0, bitmap->width, bitmap->height, bitmap->data, bitmap->format, 0, 0, 0, &context->gdi->palette, FREERDP_FLIP_NONE)) { _aligned_free(image_buffer); diff --git a/src/protocols/rdp/rdp_color.c b/src/protocols/rdp/rdp_color.c index 1d88089d..0132fb25 100644 --- a/src/protocols/rdp/rdp_color.c +++ b/src/protocols/rdp/rdp_color.c @@ -48,7 +48,7 @@ static UINT32 guac_rdp_get_pixel_format(int depth) { /* 32- and 24-bit RGB (8 bits per color component) */ case 32: case 24: - return PIXEL_FORMAT_BGR24; + return PIXEL_FORMAT_RGB24; /* 16-bit palette (6-bit green, 5-bit red and blue) */ case 16: @@ -65,7 +65,7 @@ static UINT32 guac_rdp_get_pixel_format(int depth) { } /* Unknown format */ - return PIXEL_FORMAT_BGR24; + return PIXEL_FORMAT_RGB24; } @@ -76,7 +76,7 @@ UINT32 guac_rdp_convert_color(rdpContext* context, UINT32 color) { /* Convert given color to ARGB32 */ return FreeRDPConvertColor(color, guac_rdp_get_pixel_format(depth), - PIXEL_FORMAT_ARGB32, &gdi->palette); + PIXEL_FORMAT_BGRA32, &gdi->palette); } diff --git a/src/protocols/rdp/rdp_pointer.c b/src/protocols/rdp/rdp_pointer.c index 58497793..fb789842 100644 --- a/src/protocols/rdp/rdp_pointer.c +++ b/src/protocols/rdp/rdp_pointer.c @@ -48,7 +48,7 @@ BOOL guac_rdp_pointer_new(rdpContext* context, rdpPointer* pointer) { /* Convert to alpha cursor if mask data present */ if (pointer->andMaskData && pointer->xorMaskData) - freerdp_image_copy_from_pointer_data(data, PIXEL_FORMAT_ARGB32, + freerdp_image_copy_from_pointer_data(data, PIXEL_FORMAT_BGRA32, 0, 0, 0, pointer->width, pointer->height, pointer->xorMaskData, pointer->lengthXorMask, pointer->andMaskData, pointer->lengthAndMask,