[SDL] how to change mouse cursor icon

nbs nbs at sonic.net
Thu Mar 14 09:50:01 PST 2002


On Thu, Mar 14, 2002 at 03:14:25PM +0100, firefox wrote:
> Hello sdl,
> 
>   i am talking abount this standard b&w.
>   when i change it in included file nothing happens...

I've done this once in SDL. :)  I used "SDL_SetCursor()" to change
the appearance of the cursor in my game "Bug Squish" to look like a little
fly-swatter.


First off, I included two XBM images in my C code:

  #include "flyswatter.xbm"         (black will be black, white will be white)
  #include "flyswatter-mask.xbm"    (black will be opaque, white will be
                                     transparent)


I then did this crud to, it appears, reverse the bits in each byte.
I forget why, at this point.  I've not heard any complaints, so I assume
it works ok :)

  for (i = 0; i < 32; i++)
    {
      b = flyswatter_bits[i];

      temp_bitmap[i] = (((b & 0x01) << 7) |
                        ((b & 0x02) << 5) |
                        ((b & 0x04) << 3) |
                        ((b & 0x08) << 1) |
                        ((b & 0x10) >> 1) |
                        ((b & 0x20) >> 3) |
                        ((b & 0x40) >> 5) |
                        ((b & 0x80) >> 7));

      b = flyswatter_mask_bits[i];

      temp_bitmask[i] = (((b & 0x01) << 7) |
                         ((b & 0x02) << 5) |
                         ((b & 0x04) << 3) |
                         ((b & 0x08) << 1) |
                         ((b & 0x10) >> 1) |
                         ((b & 0x20) >> 3) |
                         ((b & 0x40) >> 5) |
                         ((b & 0x80) >> 7));
    }


Finally, I call SDL_SetCursor():

  SDL_SetCursor(SDL_CreateCursor(temp_bitmap, temp_bitmask, 16, 16, 0, 0));




Bug Squish source is here:  http://www.newbreedsoftware.com/bugsquish/

-bill!





More information about the SDL mailing list