Always use 32bpp image lists.

Using 32bpp image lists (ILC_COLOR32) is required as we need to be able to put
32bpp bitmaps in them and results in better (albeit still broken, see #9050)
display when the display depth is < 32.

This change was tested under Windows 2000, 2003 and Vista in 8 (Win2k-only),
16 and 32bpp display depth modes.

Closes #11031.

git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@61853 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
This commit is contained in:
Vadim Zeitlin 2009-09-07 23:00:29 +00:00
parent 7c9cc312e7
commit a6712ab992

View File

@ -76,17 +76,15 @@ bool wxImageList::Create(int width, int height, bool mask, int initial)
{
UINT flags = 0;
// set appropriate color depth
// as we want to be able to use 32bpp bitmaps in the image lists, we always
// use ILC_COLOR32, even if the display resolution is less -- the system
// will make the best effort to show the bitmap if we do this resulting in
// quite acceptable display while using a lower depth ILC_COLOR constant
// (e.g. ILC_COLOR16) shows completely broken bitmaps
#ifdef __WXWINCE__
flags |= ILC_COLOR;
#else
int dd = wxDisplayDepth();
if (dd <= 4) flags |= ILC_COLOR; // 16 color
else if (dd <= 8) flags |= ILC_COLOR8; // 256 color
else if (dd <= 16) flags |= ILC_COLOR16; // 64k hi-color
else if (dd <= 24) flags |= ILC_COLOR24; // 16m truecolor
else if (dd <= 32) flags |= ILC_COLOR32; // 16m truecolor
flags |= ILC_COLOR32;
#endif
if ( mask )