diff --git a/src/msw/graphicsd2d.cpp b/src/msw/graphicsd2d.cpp index 521a2cc0b0..b6e69c6c4f 100644 --- a/src/msw/graphicsd2d.cpp +++ b/src/msw/graphicsd2d.cpp @@ -3457,20 +3457,20 @@ private : IMPLEMENT_DYNAMIC_CLASS(wxD2DRenderer,wxGraphicsRenderer) -static wxD2DRenderer* gs_D2DRenderer = NULL; - -wxGraphicsRenderer* wxGraphicsRenderer::GetDirect2DRenderer() -{ - if (!wxDirect2D::Initialize()) - return NULL; - - if (gs_D2DRenderer == NULL) - { - gs_D2DRenderer = new wxD2DRenderer(); - } - - return gs_D2DRenderer; -} +static wxScopedPtr gs_D2DRenderer; + +wxGraphicsRenderer* wxGraphicsRenderer::GetDirect2DRenderer() +{ + if (!wxDirect2D::Initialize()) + return NULL; + + if (!gs_D2DRenderer) + { + gs_D2DRenderer.reset(new wxD2DRenderer()); + } + + return gs_D2DRenderer.get(); +} wxD2DRenderer::wxD2DRenderer() {