Fix colours of mask bitmap

Monochrome mask bitmap should have white pixels in the unmasked area and black pixels in the masked area, quite the opposite to what is implemented now.

Closes #10098.
This commit is contained in:
Artur Wieczorek
2019-08-29 20:00:03 +02:00
parent 0522587bcb
commit 8403b79ad7

View File

@@ -1621,10 +1621,9 @@ bool wxMask::InitFromMonoBitmap(const wxBitmap& bitmap)
unsigned char *destdata = destdatabase ;
for ( int x = 0 ; x < m_width ; ++x, ++p )
{
if ( ( p.Red() + p.Green() + p.Blue() ) > 0x10 )
*destdata++ = 0xFF ;
else
*destdata++ = 0x00 ;
int v = p.Red() + p.Green() + p.Blue();
wxASSERT_MSG( v == 0 || v == 3*0xFF, "Non-monochrome bitmap supplied" );
*destdata++ = v < (3 * 0xFF) / 2 ? 0xFF : 0;
}
p = rowStart;
p.OffsetY(data, 1);
@@ -1698,7 +1697,7 @@ wxBitmap wxMask::GetBitmap() const
{
const unsigned char byte = *src;
wxASSERT( byte == 0 || byte == 0xFF );
p.Red() = p.Green() = p.Blue() = byte;
p.Red() = p.Green() = p.Blue() = ~byte;
}
p = rowStart;
p.OffsetY(data, 1);