X-Git-Url: https://git.saurik.com/wxWidgets.git/blobdiff_plain/77df51f4fb0822bedc13263af625d50c15ba7abc..f9d6e4e454ac06b3303c71081b289152c8867ec1:/include/wx/rawbmp.h?ds=sidebyside diff --git a/include/wx/rawbmp.h b/include/wx/rawbmp.h index db4c014d15..9de976c0ea 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" @@ -72,7 +72,7 @@ */ /* - Note: we do not use WXDLLEXPORT with classes in this file because VC++ has + Note: we do not use WXDLLIMPEXP_CORE with classes in this file because VC++ has problems with exporting inner class defined inside a specialization of a template class from a DLL. Besides, as all the methods are inline it's not really necessary to put them in DLL at all. @@ -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(), wxEMPTY_PARAMETER_VALUE ) +#endif // private: -- see comment in the beginning of the file @@ -650,6 +672,7 @@ struct wxPixelDataOut } }; }; + #endif //wxUSE_GUI template > @@ -671,7 +694,6 @@ public: } }; - // some "predefined" pixel data classes #if wxUSE_IMAGE typedef wxPixelData wxImagePixelData; @@ -703,5 +725,4 @@ struct wxPixelIterator : public wxPixelData::Iterator { }; -#endif // _WX_RAWBMP_H_BASE_ - +#endif // _WX_RAWBMP_H_