winex11.drv: Fix color conversion for 16 bpp cursors.

Henri Verbeet hverbeet at gmail.com
Wed Dec 10 03:04:41 CST 2008


---
 dlls/winex11.drv/mouse.c |   10 +++++-----
 1 files changed, 5 insertions(+), 5 deletions(-)

diff --git a/dlls/winex11.drv/mouse.c b/dlls/winex11.drv/mouse.c
index bcae0c6..b933d40 100644
--- a/dlls/winex11.drv/mouse.c
+++ b/dlls/winex11.drv/mouse.c
@@ -499,12 +499,12 @@ static XcursorImage *create_cursor_image( CURSORICONINFO *ptr )
                     break;
 
                 case 16:
-                    /* BGR, 5 red, 6 green, 5 blue */
-                    *pixel_ptr = *xor_ptr * 0x1f;
-                    *pixel_ptr |= (*xor_ptr & 0xe0) << 3;
+                    /* [gggbbbbb][rrrrrggg] -> [xxxxxxxx][rrrrr000][gggggg00][bbbbb000] */
+                    *pixel_ptr = (*xor_ptr & 0x1f) << 3;
+                    *pixel_ptr |= (*xor_ptr & 0xe0) << 5;
                     ++xor_ptr;
-                    *pixel_ptr |= (*xor_ptr & 0x07) << 11;
-                    *pixel_ptr |= (*xor_ptr & 0xf8) << 13;
+                    *pixel_ptr |= (*xor_ptr & 0x07) << 13;
+                    *pixel_ptr |= (*xor_ptr & 0xf8) << 16;
                     break;
 
                 case 1:
-- 
1.5.6.4



--------------080007060307040105050905--



More information about the wine-patches mailing list