]> git.saurik.com Git - wxWidgets.git/commitdiff
Always use 32bpp image lists.
authorVadim Zeitlin <vadim@wxwidgets.org>
Mon, 7 Sep 2009 23:00:29 +0000 (23:00 +0000)
committerVadim Zeitlin <vadim@wxwidgets.org>
Mon, 7 Sep 2009 23:00:29 +0000 (23:00 +0000)
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

src/msw/imaglist.cpp

index b499da63b5cda4fe00debc919b8328c307b6b887..4820d044b6114bf5c4eec55a4e19440e9bc98ebc 100644 (file)
@@ -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__
     flags |= ILC_COLOR;
 #else
 #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 )
 #endif
 
     if ( mask )