Avoid creating and immediately destroying a wxGraphicsContext for most uses of wxGCDC.
This also causes the dummy "measuring context" to be properly initialized with a default font git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@72019 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
This commit is contained in:
parent
e6273b919b
commit
e7042ce73b
@ -68,9 +68,6 @@ public:
|
||||
|
||||
virtual ~wxGCDCImpl();
|
||||
|
||||
void Init();
|
||||
|
||||
|
||||
// implement base class pure virtuals
|
||||
// ----------------------------------
|
||||
|
||||
@ -213,6 +210,9 @@ protected:
|
||||
|
||||
wxGraphicsContext* m_graphicContext;
|
||||
|
||||
private:
|
||||
void Init(wxGraphicsContext*);
|
||||
|
||||
DECLARE_CLASS(wxGCDCImpl)
|
||||
wxDECLARE_NO_COPY_CLASS(wxGCDCImpl);
|
||||
};
|
||||
|
@ -157,7 +157,7 @@ IMPLEMENT_ABSTRACT_CLASS(wxGCDCImpl, wxDCImpl)
|
||||
wxGCDCImpl::wxGCDCImpl( wxDC *owner ) :
|
||||
wxDCImpl( owner )
|
||||
{
|
||||
Init();
|
||||
Init(wxGraphicsContext::Create());
|
||||
}
|
||||
|
||||
void wxGCDCImpl::SetGraphicsContext( wxGraphicsContext* ctx )
|
||||
@ -179,26 +179,21 @@ void wxGCDCImpl::SetGraphicsContext( wxGraphicsContext* ctx )
|
||||
wxGCDCImpl::wxGCDCImpl( wxDC *owner, const wxWindowDC& dc ) :
|
||||
wxDCImpl( owner )
|
||||
{
|
||||
Init();
|
||||
SetGraphicsContext( wxGraphicsContext::Create(dc) );
|
||||
Init(wxGraphicsContext::Create(dc));
|
||||
m_window = dc.GetWindow();
|
||||
}
|
||||
|
||||
wxGCDCImpl::wxGCDCImpl( wxDC *owner, const wxMemoryDC& dc ) :
|
||||
wxDCImpl( owner )
|
||||
{
|
||||
Init();
|
||||
wxGraphicsContext* context;
|
||||
context = wxGraphicsContext::Create(dc);
|
||||
SetGraphicsContext( context );
|
||||
Init(wxGraphicsContext::Create(dc));
|
||||
}
|
||||
|
||||
#if wxUSE_PRINTING_ARCHITECTURE
|
||||
wxGCDCImpl::wxGCDCImpl( wxDC *owner, const wxPrinterDC& dc ) :
|
||||
wxDCImpl( owner )
|
||||
{
|
||||
Init();
|
||||
SetGraphicsContext( wxGraphicsContext::Create(dc) );
|
||||
Init(wxGraphicsContext::Create(dc));
|
||||
}
|
||||
#endif
|
||||
|
||||
@ -206,12 +201,11 @@ wxGCDCImpl::wxGCDCImpl( wxDC *owner, const wxPrinterDC& dc ) :
|
||||
wxGCDCImpl::wxGCDCImpl(wxDC *owner, const wxEnhMetaFileDC& dc)
|
||||
: wxDCImpl(owner)
|
||||
{
|
||||
Init();
|
||||
SetGraphicsContext(wxGraphicsContext::Create(dc));
|
||||
Init(wxGraphicsContext::Create(dc));
|
||||
}
|
||||
#endif
|
||||
|
||||
void wxGCDCImpl::Init()
|
||||
void wxGCDCImpl::Init(wxGraphicsContext* ctx)
|
||||
{
|
||||
m_ok = false;
|
||||
m_colour = true;
|
||||
@ -222,11 +216,13 @@ void wxGCDCImpl::Init()
|
||||
m_font = *wxNORMAL_FONT;
|
||||
m_brush = *wxWHITE_BRUSH;
|
||||
|
||||
m_graphicContext = wxGraphicsContext::Create();
|
||||
m_graphicContext = NULL;
|
||||
if (ctx)
|
||||
SetGraphicsContext(ctx);
|
||||
|
||||
m_logicalFunctionSupported = true;
|
||||
}
|
||||
|
||||
|
||||
wxGCDCImpl::~wxGCDCImpl()
|
||||
{
|
||||
delete m_graphicContext;
|
||||
|
Loading…
Reference in New Issue
Block a user