X-Git-Url: https://git.saurik.com/wxWidgets.git/blobdiff_plain/b737ad10dec946cd7d5e38c43c666e8efe89f0ae..aa66250ba4e21292258fc3664c2875a89e2220d5:/src/common/image.cpp diff --git a/src/common/image.cpp b/src/common/image.cpp index 3f90f3238a..bbd82b9eec 100644 --- a/src/common/image.cpp +++ b/src/common/image.cpp @@ -177,7 +177,7 @@ bool wxImage::Create( const char** xpmData ) { #if wxUSE_XPM UnRef(); - + wxXPMDecoder decoder; (*this) = decoder.ReadData(xpmData); return Ok(); @@ -425,7 +425,7 @@ wxImage wxImage::Scale( int width, int height ) const unsigned char *target_data = data; unsigned char *source_alpha = 0 ; unsigned char *target_alpha = 0 ; - + if (M_IMGDATA->m_hasMask) { image.SetMaskColour( M_IMGDATA->m_maskRed, @@ -452,7 +452,7 @@ wxImage wxImage::Scale( int width, int height ) const { unsigned char* src_line = &source_data[(y>>16)*old_width*3]; unsigned char* src_alpha_line = source_alpha ? &source_alpha[(y>>16)*old_width] : 0 ; - + long x = 0; for ( long i = 0; i < width; i++ ) { @@ -603,7 +603,7 @@ wxImage wxImage::GetSubImage( const wxRect &rect ) const return image; } -wxImage wxImage::Size( const wxSize& size, const wxPoint& pos, +wxImage wxImage::Size( const wxSize& size, const wxPoint& pos, int r_, int g_, int b_ ) const { wxImage image; @@ -810,8 +810,8 @@ void wxImage::SetRGB( const wxRect& rect_, unsigned char r, unsigned char g, uns } else { - wxCHECK_RET( imageRect.Inside(rect.GetTopLeft()) && - imageRect.Inside(rect.GetBottomRight()), + wxCHECK_RET( imageRect.Inside(rect.GetTopLeft()) && + imageRect.Inside(rect.GetBottomRight()), wxT("invalid bounding rectangle") ); } @@ -820,7 +820,7 @@ void wxImage::SetRGB( const wxRect& rect_, unsigned char r, unsigned char g, uns x2 = rect.GetRight() + 1, y2 = rect.GetBottom() + 1; - unsigned char *data = NULL; + unsigned char *data wxDUMMY_INITIALIZE(NULL); int x, y, width = GetWidth(); for (y = y1; y < y2; y++) { @@ -891,7 +891,7 @@ unsigned char *wxImage::GetData() const return M_IMGDATA->m_data; } -void wxImage::SetData( unsigned char *data ) +void wxImage::SetData( unsigned char *data, bool static_data ) { wxCHECK_RET( Ok(), wxT("invalid image") ); @@ -905,13 +905,14 @@ void wxImage::SetData( unsigned char *data ) newRefData->m_maskGreen = M_IMGDATA->m_maskGreen; newRefData->m_maskBlue = M_IMGDATA->m_maskBlue; newRefData->m_hasMask = M_IMGDATA->m_hasMask; + newRefData->m_static = static_data; UnRef(); m_refData = newRefData; } -void wxImage::SetData( unsigned char *data, int new_width, int new_height ) +void wxImage::SetData( unsigned char *data, int new_width, int new_height, bool static_data ) { wxImageRefData *newRefData = new wxImageRefData(); @@ -933,6 +934,7 @@ void wxImage::SetData( unsigned char *data, int new_width, int new_height ) newRefData->m_data = data; newRefData->m_ok = true; } + newRefData->m_static = static_data; UnRef(); @@ -994,7 +996,7 @@ bool wxImage::ConvertColourToAlpha( unsigned char r, unsigned char g, unsigned c return true; } -void wxImage::SetAlpha( unsigned char *alpha ) +void wxImage::SetAlpha( unsigned char *alpha, bool static_data ) { wxCHECK_RET( Ok(), wxT("invalid image") ); @@ -1005,6 +1007,8 @@ void wxImage::SetAlpha( unsigned char *alpha ) free(M_IMGDATA->m_alpha); M_IMGDATA->m_alpha = alpha; + M_IMGDATA->m_static = static_data; + } unsigned char *wxImage::GetAlpha() const