[PATCH] Bits per pixel in SDL_ListModes, SDL 1.3


in SDL 1.3 (revision 5508 from SVN), the method used to calculate the
bits per pixel from a ?int format? differ between ?SDL_ListModes? (which
always uses the ?SDL_BITSPERPIXEL? macro) and ?SDL_PixelFormatEnumTo-
Masks? (which uses either ?SDL_BITSPERPIXEL? or ?SDL_BYTESPERPIXEL * 8?,
depending on the value of ?SDL_BYTESPERPIXEL?).

Because the values are later compared in ?SDL_ListModes? this may lead
to some valid video modes not being returned. In my case the only mode
returned by ?SDL_GetNumDisplayModes? was dismissed and NULL was
returned. (This led to the calling application sticking its head in the

The attached patch copies the method used within ?SDL_PixelFormatEnumTo-
Masks? to ?SDL_ListModes?. This solved the problem for me though I don’t
fully understand the method used by ?SDL_PixelFormatEnumToMasks?.

Florian octo Forster
Hacker in training
GnuPG: 0x91523C3D
-------------- next part --------------
A non-text attachment was scrubbed…
Name: libsdl-compat-ListModes-r5508.patch
Type: text/x-diff
Size: 917 bytes
Desc: not available
URL: http://lists.libsdl.org/pipermail/sdl-libsdl.org/attachments/20100115/a893ec88/attachment.patch
-------------- next part --------------
A non-text attachment was scrubbed…
Name: not available
Type: application/pgp-signature
Size: 189 bytes
Desc: Digital signature
URL: http://lists.libsdl.org/pipermail/sdl-libsdl.org/attachments/20100115/a893ec88/attachment.pgp