added alpha support to wxImage::Paste() (patch 1883497, bug 1831612)

git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@51617 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
This commit is contained in:
Vadim Zeitlin
2008-02-09 15:32:04 +00:00
parent 5de69dd366
commit 14678d6d22

View File

@@ -1283,6 +1283,26 @@ void wxImage::Paste( const wxImage &image, int x, int y )
return;
}
// Copy over the alpha channel from the original image
if ( image.HasAlpha() )
{
if ( !HasAlpha() )
InitAlpha();
unsigned char* source_data = image.GetAlpha() + xx + yy*image.GetWidth();
int source_step = image.GetWidth();
unsigned char* target_data = GetAlpha() + (x+xx) + (y+yy)*M_IMGDATA->m_width;
int target_step = M_IMGDATA->m_width;
for (int j = 0; j < height; j++,
source_data += source_step,
target_data += target_step)
{
memcpy( target_data, source_data, width );
}
}
if (!HasMask() && image.HasMask())
{
unsigned char r = image.GetMaskRed();