From 85f818733cce80763355efcbef17920f157d9fcc Mon Sep 17 00:00:00 2001 From: Vadim Zeitlin Date: Sat, 2 Aug 2008 22:00:53 +0000 Subject: [PATCH] copy both alpha and mask in Paste() (#9658) git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@54935 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775 --- src/common/image.cpp | 7 ++----- 1 file changed, 2 insertions(+), 5 deletions(-) diff --git a/src/common/image.cpp b/src/common/image.cpp index c950cd6747..be9b0d59f2 100644 --- a/src/common/image.cpp +++ b/src/common/image.cpp @@ -1270,7 +1270,6 @@ void wxImage::Paste( const wxImage &image, int x, int y ) (GetMaskGreen()==image.GetMaskGreen()) && (GetMaskBlue()==image.GetMaskBlue())))) { - width *= 3; unsigned char* source_data = image.GetData() + xx*3 + yy*3*image.GetWidth(); int source_step = image.GetWidth()*3; @@ -1278,11 +1277,10 @@ void wxImage::Paste( const wxImage &image, int x, int y ) int target_step = M_IMGDATA->m_width*3; for (int j = 0; j < height; j++) { - memcpy( target_data, source_data, width ); + memcpy( target_data, source_data, width*3 ); source_data += source_step; target_data += target_step; } - return; } // Copy over the alpha channel from the original image @@ -1311,7 +1309,6 @@ void wxImage::Paste( const wxImage &image, int x, int y ) unsigned char g = image.GetMaskGreen(); unsigned char b = image.GetMaskBlue(); - width *= 3; unsigned char* source_data = image.GetData() + xx*3 + yy*3*image.GetWidth(); int source_step = image.GetWidth()*3; @@ -1320,7 +1317,7 @@ void wxImage::Paste( const wxImage &image, int x, int y ) for (int j = 0; j < height; j++) { - for (int i = 0; i < width; i+=3) + for (int i = 0; i < width*3; i+=3) { if ((source_data[i] != r) || (source_data[i+1] != g) || -- 2.45.2