X-Git-Url: https://git.saurik.com/wxWidgets.git/blobdiff_plain/888355224cee2209bf9fde2c10cc770a7d819ad8..89fad939ec0d423961d8e93b2a0927f5b77bf256:/src/common/image.cpp diff --git a/src/common/image.cpp b/src/common/image.cpp index 2b43ad042c..97f42c347e 100644 --- a/src/common/image.cpp +++ b/src/common/image.cpp @@ -30,10 +30,7 @@ #include "wx/filefn.h" #include "wx/wfstream.h" - -#if wxUSE_XPM - #include "wx/xpmdecod.h" -#endif +#include "wx/xpmdecod.h" // For memcpy #include @@ -51,6 +48,10 @@ #endif // wxUSE_FILE/wxUSE_FFILE #endif // HAS_FILE_STREAMS +#if wxUSE_VARIANT +IMPLEMENT_VARIANT_OBJECT_EXPORTED(wxImage,WXDLLEXPORT) +#endif + //----------------------------------------------------------------------------- // wxImage //----------------------------------------------------------------------------- @@ -161,17 +162,12 @@ wxImage::wxImage( wxInputStream& stream, const wxString& mimetype, int index ) } #endif // wxUSE_STREAMS -wxImage::wxImage( const char** xpmData ) +wxImage::wxImage(const char* const* xpmData) { Create(xpmData); } -wxImage::wxImage( char** xpmData ) -{ - Create((const char**) xpmData); -} - -bool wxImage::Create( const char** xpmData ) +bool wxImage::Create(const char* const* xpmData) { #if wxUSE_XPM UnRef(); @@ -469,13 +465,7 @@ wxImage wxImage::Scale( int width, int height, int quality ) const unsigned char *source_alpha = 0 ; unsigned char *target_alpha = 0 ; - if (M_IMGDATA->m_hasMask) - { - image.SetMaskColour( M_IMGDATA->m_maskRed, - M_IMGDATA->m_maskGreen, - M_IMGDATA->m_maskBlue ); - } - else + if ( !M_IMGDATA->m_hasMask ) { source_alpha = M_IMGDATA->m_alpha ; if ( source_alpha ) @@ -514,6 +504,14 @@ wxImage wxImage::Scale( int width, int height, int quality ) const } } + // If the original image has a mask, apply the mask to the new image + if (M_IMGDATA->m_hasMask) + { + image.SetMaskColour( M_IMGDATA->m_maskRed, + M_IMGDATA->m_maskGreen, + M_IMGDATA->m_maskBlue ); + } + // In case this is a cursor, make sure the hotspot is scaled accordingly: if ( HasOption(wxIMAGE_OPTION_CUR_HOTSPOT_X) ) image.SetOption(wxIMAGE_OPTION_CUR_HOTSPOT_X,