X-Git-Url: https://git.saurik.com/wxWidgets.git/blobdiff_plain/77df51f4fb0822bedc13263af625d50c15ba7abc..af57c51ab758ad9810ea5bbb3703341cd5f367b1:/include/wx/rawbmp.h?ds=sidebyside diff --git a/include/wx/rawbmp.h b/include/wx/rawbmp.h index db4c014d15..377836fc99 100644 --- a/include/wx/rawbmp.h +++ b/include/wx/rawbmp.h @@ -9,8 +9,8 @@ // Licence: wxWindows licence /////////////////////////////////////////////////////////////////////////////// -#ifndef _WX_RAWBMP_H_BASE_ -#define _WX_RAWBMP_H_BASE_ +#ifndef _WX_RAWBMP_H_ +#define _WX_RAWBMP_H_ #include "wx/image.h" @@ -164,9 +164,14 @@ typedef wxPixelFormat wxImagePixelFormat; #define wxPIXEL_FORMAT_ALPHA 3 #elif defined(__WXGTK__) - // Under GTK+ 2.X we use GdkPixbuf, which should be RGBA + // Under GTK+ 2.X we use GdkPixbuf, which is standard RGB or RGBA typedef wxPixelFormat wxNativePixelFormat; + #define wxPIXEL_FORMAT_ALPHA 3 +#elif defined(__WXDFB__) + // Under DirectFB, RGB components are reversed, they're in BGR order + typedef wxPixelFormat wxNativePixelFormat; + #define wxPIXEL_FORMAT_ALPHA 3 #endif @@ -520,6 +525,12 @@ struct wxPixelDataOut bmp.GetRawData(data, PixelFormat::BitsPerPixel); } + // default constructor + Iterator() + { + m_ptr = NULL; + } + // return true if this iterator is valid bool IsOk() const { return m_ptr != NULL; } @@ -625,11 +636,22 @@ struct wxPixelDataOut // dtor unlocks the bitmap ~wxPixelDataIn() { - m_bmp.UngetRawData(*this); + if ( m_pixels.IsOk() ) + { +#if defined(__WXMSW__) || defined(__WXMAC__) + // this is a hack to mark wxBitmap as using alpha channel + if ( Format::HasAlpha ) + m_bmp.UseAlpha(); +#endif + m_bmp.UngetRawData(*this); + } + // else: don't call UngetRawData() if GetRawData() failed } - // call this to indicate that we should use the alpha channel - void UseAlpha() { m_bmp.UseAlpha(); } +#if WXWIN_COMPATIBILITY_2_8 + // not needed anymore, calls to it should be simply removed + wxDEPRECATED( inline void UseAlpha() ); +#endif // private: -- see comment in the beginning of the file @@ -650,6 +672,7 @@ struct wxPixelDataOut } }; }; + #endif //wxUSE_GUI template > @@ -671,6 +694,11 @@ public: } }; +#if WXWIN_COMPATIBILITY_2_8 +template +inline void wxPixelDataOut::wxPixelDataIn::UseAlpha() {} +#endif + // some "predefined" pixel data classes #if wxUSE_IMAGE @@ -703,5 +731,4 @@ struct wxPixelIterator : public wxPixelData::Iterator { }; -#endif // _WX_RAWBMP_H_BASE_ - +#endif // _WX_RAWBMP_H_