sdl.c: support 32 bpp cursors
authorReimar Döffinger <Reimar.Doeffinger@gmx.de>
Sun, 23 Aug 2009 16:03:34 +0000 (18:03 +0200)
committerAndrzej Zaborowski <balrog@zabor.org>
Sun, 23 Aug 2009 16:03:34 +0000 (18:03 +0200)
Hello,
currently when a 32 bpp cursor gets defined the result is all-black in
the areas that are not transparent (you'll get a 32 bpp cursor if you
use my previous patch to allow vmware_vga to use a 32 bpp framebuffer).
This is because the switch in sdl.c lacks a 32 bpp case.
The thing I am unsure about though is which byte is the unused one and
should be skipped, the first or the last - for the black-and-white
cursors I tested it doesn't make a difference...

Signed-off-by: Reimar Döffinger <Reimar.Doeffinger@gmx.de>
Signed-off-by: Andrzej Zaborowski <balrogg@gmail.com>

sdl.c

diff --git a/sdl.c b/sdl.c
index 36fb07f..33edfb8 100644 (file)
--- a/sdl.c
+++ b/sdl.c
@@ -771,6 +771,9 @@ static void sdl_mouse_define(int width, int height, int bpp,
         line = image;
         for (x = 0; x < width; x ++, dst ++) {
             switch (bpp) {
+            case 32:
+                src = *(line ++); src |= *(line ++); src |= *(line ++); line++;
+                break;
             case 24:
                 src = *(line ++); src |= *(line ++); src |= *(line ++);
                 break;