Don't use bitmap still selected in wxMemoryDC in image sample.
The bitmap must be deselected from wxMemoryDC before being used in any other way but the sample didn't do this. Fix this by simply destroying the DC as soon as we don't need it, this makes bitmap available for other use as well. Closes #12310. git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@65232 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
This commit is contained in:
parent
5784031727
commit
5ed0415e3e
@ -641,22 +641,22 @@ void MyCanvas::CreateAntiAliasedBitmap()
|
||||
{
|
||||
wxBitmap bitmap( 300, 300 );
|
||||
|
||||
wxMemoryDC dc;
|
||||
{
|
||||
wxMemoryDC dc(bitmap);
|
||||
|
||||
dc.SelectObject( bitmap );
|
||||
dc.Clear();
|
||||
|
||||
dc.Clear();
|
||||
dc.SetFont( wxFont( 24, wxDECORATIVE, wxNORMAL, wxNORMAL) );
|
||||
dc.SetTextForeground( wxT("RED") );
|
||||
dc.DrawText( wxT("This is anti-aliased Text."), 20, 5 );
|
||||
dc.DrawText( wxT("And a Rectangle."), 20, 45 );
|
||||
|
||||
dc.SetFont( wxFont( 24, wxDECORATIVE, wxNORMAL, wxNORMAL) );
|
||||
dc.SetTextForeground( wxT("RED") );
|
||||
dc.DrawText( wxT("This is anti-aliased Text."), 20, 5 );
|
||||
dc.DrawText( wxT("And a Rectangle."), 20, 45 );
|
||||
dc.SetBrush( *wxRED_BRUSH );
|
||||
dc.SetPen( *wxTRANSPARENT_PEN );
|
||||
dc.DrawRoundedRectangle( 20, 85, 200, 180, 20 );
|
||||
}
|
||||
|
||||
dc.SetBrush( *wxRED_BRUSH );
|
||||
dc.SetPen( *wxTRANSPARENT_PEN );
|
||||
dc.DrawRoundedRectangle( 20, 85, 200, 180, 20 );
|
||||
|
||||
wxImage original= bitmap.ConvertToImage();
|
||||
wxImage original = bitmap.ConvertToImage();
|
||||
wxImage anti( 150, 150 );
|
||||
|
||||
/* This is quite slow, but safe. Use wxImage::GetData() for speed instead. */
|
||||
|
Loading…
Reference in New Issue
Block a user