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:
@@ -76,17 +76,15 @@ bool wxImageList::Create(int width, int height, bool mask, int initial)
|
|||||||
{
|
{
|
||||||
UINT flags = 0;
|
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__
|
#ifdef __WXWINCE__
|
||||||
flags |= ILC_COLOR;
|
flags |= ILC_COLOR;
|
||||||
#else
|
#else
|
||||||
int dd = wxDisplayDepth();
|
flags |= ILC_COLOR32;
|
||||||
|
|
||||||
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
|
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
if ( mask )
|
if ( mask )
|
||||||
|
Reference in New Issue
Block a user