Improve creating wxGCDC from an existing wxGraphicsContext
Avoid creating a default wxGraphicsContext unnecessarily, only to immediately delete it and replace it with the provided one. This was at best unnecessary and at worst resulted in a crash if the default context couldn't be created, as happened on a headless system (where wxImage-based wxGraphicsContext can still be created successfully).
This commit is contained in:
parent
54e9150157
commit
507e331eb1
@ -60,6 +60,10 @@ public:
|
||||
#if defined(__WXMSW__) && wxUSE_ENH_METAFILE
|
||||
wxGCDCImpl( wxDC *owner, const wxEnhMetaFileDC& dc );
|
||||
#endif
|
||||
|
||||
// Ctor using an existing graphics context given to wxGCDC ctor.
|
||||
wxGCDCImpl(wxDC *owner, wxGraphicsContext* context);
|
||||
|
||||
wxGCDCImpl( wxDC *owner );
|
||||
|
||||
virtual ~wxGCDCImpl();
|
||||
|
@ -106,9 +106,8 @@ wxGCDC::wxGCDC(const wxEnhMetaFileDC& dc)
|
||||
#endif
|
||||
|
||||
wxGCDC::wxGCDC(wxGraphicsContext* context) :
|
||||
wxDC( new wxGCDCImpl( this ) )
|
||||
wxDC(new wxGCDCImpl(this, context))
|
||||
{
|
||||
SetGraphicsContext(context);
|
||||
}
|
||||
|
||||
wxGCDC::wxGCDC() :
|
||||
@ -122,6 +121,12 @@ wxGCDC::~wxGCDC()
|
||||
|
||||
wxIMPLEMENT_ABSTRACT_CLASS(wxGCDCImpl, wxDCImpl);
|
||||
|
||||
wxGCDCImpl::wxGCDCImpl(wxDC *owner, wxGraphicsContext* context) :
|
||||
wxDCImpl(owner)
|
||||
{
|
||||
Init(context);
|
||||
}
|
||||
|
||||
wxGCDCImpl::wxGCDCImpl( wxDC *owner ) :
|
||||
wxDCImpl( owner )
|
||||
{
|
||||
|
Loading…
Reference in New Issue
Block a user