]> git.saurik.com Git - wxWidgets.git/commitdiff
fixed rendering of bitmaps with alpha channel under GTK+ 2.0
authorVáclav Slavík <vslavik@fastmail.fm>
Sun, 14 Nov 2004 23:03:51 +0000 (23:03 +0000)
committerVáclav Slavík <vslavik@fastmail.fm>
Sun, 14 Nov 2004 23:03:51 +0000 (23:03 +0000)
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@30525 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775

src/gtk/dcclient.cpp
src/gtk1/dcclient.cpp

index d3dd84f7a6e6060927d42f00b69bc74bbf716ec7..537499b4ddd8644aecab33f808f85ed374c39759 100644 (file)
@@ -1079,6 +1079,14 @@ void wxWindowDC::DoDrawBitmap( const wxBitmap &bitmap,
     wxBitmap use_bitmap = bitmap;
     if ((w != ww) || (h != hh))
         use_bitmap = use_bitmap.Rescale( 0, 0, ww, hh, ww, hh );
+   
+#if !GTK_CHECK_VERSION(2,2,0)
+    // NB: We can't render pixbufs with GTK+ < 2.2, we need to use pixmaps code.
+    //     Pixbufs-based bitmaps with alpha channel don't have a mask, so we
+    //     have to call GetPixmap() here -- it converts the pixbuf into pixmap
+    //     and also creates the mask as a side-effect:
+    use_bitmap.GetPixmap();
+#endif
     
     // apply mask if any
     GdkBitmap *mask = (GdkBitmap *) NULL;
index d3dd84f7a6e6060927d42f00b69bc74bbf716ec7..537499b4ddd8644aecab33f808f85ed374c39759 100644 (file)
@@ -1079,6 +1079,14 @@ void wxWindowDC::DoDrawBitmap( const wxBitmap &bitmap,
     wxBitmap use_bitmap = bitmap;
     if ((w != ww) || (h != hh))
         use_bitmap = use_bitmap.Rescale( 0, 0, ww, hh, ww, hh );
+   
+#if !GTK_CHECK_VERSION(2,2,0)
+    // NB: We can't render pixbufs with GTK+ < 2.2, we need to use pixmaps code.
+    //     Pixbufs-based bitmaps with alpha channel don't have a mask, so we
+    //     have to call GetPixmap() here -- it converts the pixbuf into pixmap
+    //     and also creates the mask as a side-effect:
+    use_bitmap.GetPixmap();
+#endif
     
     // apply mask if any
     GdkBitmap *mask = (GdkBitmap *) NULL;