Fix compatibility breakage with wxMask::Create() in wxOSX (#1019)

Defining a Mac-specific Create(wxMemoryBuffer) overload hid the other
Create() overloads, which are actually part of the public API, so they
couldn't be used any longer since the changes of
e7d21f6638

Fix this by renaming this Create() to OSXCreate(), to avoid hiding the
base class methods.

Also remove Mac-specific ctor taking wxMemoryBuffer, this is confusing
and can be avoided by just calling OSXCreate() directly in the only
place where it is used.
This commit is contained in:
VZ
2018-11-09 17:52:58 +01:00
committed by Stefan Csomor
parent e484a2db19
commit cce9ef9d53
2 changed files with 9 additions and 17 deletions

View File

@@ -1062,7 +1062,9 @@ wxBitmap wxBitmap::GetSubBitmap(const wxRect &rect) const
maskbuf.UngetWriteBuf( maskbufsize ) ;
}
ret.SetMask( new wxMask( maskbuf , destwidth , destheight , rowBytes ) ) ;
wxMask* const mask = new wxMask();
mask->OSXCreate( maskbuf , destwidth , destheight , rowBytes );
ret.SetMask(mask) ;
}
else if ( HasAlpha() )
ret.UseAlpha() ;
@@ -1505,22 +1507,14 @@ wxMask::wxMask(const wxMask &tocopy) : wxMaskBase()
wxMask::wxMask( const wxBitmap& bitmap, const wxColour& colour )
{
Init() ;
wxMaskBase::Create( bitmap, colour );
Create( bitmap, colour );
}
// Construct a mask from a mono bitmap (copies the bitmap).
wxMask::wxMask( const wxBitmap& bitmap )
{
Init() ;
wxMaskBase::Create( bitmap );
}
// Construct a mask from a mono bitmap (copies the bitmap).
wxMask::wxMask( const wxMemoryBuffer& data, int width , int height , int bytesPerRow )
{
Init() ;
Create( data, width , height , bytesPerRow );
Create( bitmap );
}
wxMask::~wxMask()
@@ -1591,7 +1585,7 @@ void wxMask::RealizeNative()
// Create a mask from a mono bitmap (copies the bitmap).
bool wxMask::Create(const wxMemoryBuffer& data,int width , int height , int bytesPerRow)
bool wxMask::OSXCreate(const wxMemoryBuffer& data,int width , int height , int bytesPerRow)
{
wxASSERT( data.GetDataLen() == (size_t)(height * bytesPerRow) ) ;