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