From 8f87f3e817b5df7b241e361b5d746f214ba4c4a3 Mon Sep 17 00:00:00 2001 From: =?utf8?q?Marc-Andr=C3=A9=20Moreau?= Date: Tue, 27 Sep 2011 17:10:07 -0400 Subject: [PATCH] xfreerdp: fix color conversion in 16-bit X11 environment --- client/X11/xfreerdp.c | 11 ++++++++++- 1 file changed, 10 insertions(+), 1 deletion(-) diff --git a/client/X11/xfreerdp.c b/client/X11/xfreerdp.c index ae534cb..633c056 100644 --- a/client/X11/xfreerdp.c +++ b/client/X11/xfreerdp.c @@ -440,7 +440,16 @@ boolean xf_post_connect(freerdp* instance) if (xfi->sw_gdi) { GDI* gdi; - gdi_init(instance, CLRCONV_ALPHA | CLRBUF_32BPP); + uint32 flags; + + flags = CLRCONV_ALPHA; + + if (xfi->bpp > 16) + flags |= CLRBUF_32BPP; + else + flags |= CLRBUF_16BPP; + + gdi_init(instance, flags); gdi = GET_GDI(instance->update); xfi->primary_buffer = gdi->primary_buffer; } -- 2.7.4