From 6cea553fa3dfcd189033fec8fb9bdd3d2dbc7677 Mon Sep 17 00:00:00 2001 From: Vadim Zeitlin Date: Sun, 14 Sep 2014 00:59:56 +0000 Subject: [PATCH] Avoid creating wxGraphicsContext in the drawing sample unnecessarily. This is not only wasteful, but creating a Direct2D surface associated with a wxDC makes it impossible to paint on the DC using GDI functions, so this completely broke the initial display in the sample. git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@77690 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775 --- samples/drawing/drawing.cpp | 39 ++++++++++++++++++++----------------- 1 file changed, 21 insertions(+), 18 deletions(-) diff --git a/samples/drawing/drawing.cpp b/samples/drawing/drawing.cpp index e4f8bebf32..c423d21121 100644 --- a/samples/drawing/drawing.cpp +++ b/samples/drawing/drawing.cpp @@ -1550,28 +1550,31 @@ void MyCanvas::Draw(wxDC& pdc) #endif ; - wxGraphicsContext* context; - if ( wxPaintDC *paintdc = wxDynamicCast(&pdc, wxPaintDC) ) + if ( m_useContext ) { - context = renderer->CreateContext(*paintdc); - } - else if ( wxMemoryDC *memdc = wxDynamicCast(&pdc, wxMemoryDC) ) - { - context = renderer->CreateContext(*memdc); - } + wxGraphicsContext* context; + if ( wxPaintDC *paintdc = wxDynamicCast(&pdc, wxPaintDC) ) + { + context = renderer->CreateContext(*paintdc); + } + else if ( wxMemoryDC *memdc = wxDynamicCast(&pdc, wxMemoryDC) ) + { + context = renderer->CreateContext(*memdc); + } #if wxUSE_METAFILE && defined(wxMETAFILE_IS_ENH) - else if ( wxMetafileDC *metadc = wxDynamicCast(&pdc, wxMetafileDC) ) - { - context = renderer->CreateContext(*metadc); - } + else if ( wxMetafileDC *metadc = wxDynamicCast(&pdc, wxMetafileDC) ) + { + context = renderer->CreateContext(*metadc); + } #endif - else - { - wxFAIL_MSG( "Unknown wxDC kind" ); - return; - } + else + { + wxFAIL_MSG( "Unknown wxDC kind" ); + return; + } - gdc.SetGraphicsContext(context); + gdc.SetGraphicsContext(context); + } wxDC &dc = m_useContext ? (wxDC&) gdc : (wxDC&) pdc ; #else