wxBufferedDC without a real DC, just a buffer.
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@41919
c3d73ce0-8a6f-49c7-b76d-
6d57e0e08775
- wxASSERT_MSG( m_mainDc != NULL,
- _T("No underlying DC associated with wxBufferedDC (anymore)") );
-
wxDC* bufferDc = DetachDC();
wxASSERT( bufferDc->IsKindOf(CLASSINFO(wxMemoryDC)) );
wxDC* bufferDc = DetachDC();
wxASSERT( bufferDc->IsKindOf(CLASSINFO(wxMemoryDC)) );
+ if (m_mainDc)
+ {
+ wxCoord x=0, y=0;
- if (m_style & wxBUFFER_CLIENT_AREA)
- bufferDc->GetDeviceOrigin(& x, & y);
+ if (m_style & wxBUFFER_CLIENT_AREA)
+ bufferDc->GetDeviceOrigin(&x, &y);
- m_mainDc->Blit( 0, 0,
- m_buffer->GetWidth(), m_buffer->GetHeight(), bufferDc,
- -x, -y );
- m_mainDc = NULL;
+ m_mainDc->Blit( 0, 0,
+ m_buffer->GetWidth(), m_buffer->GetHeight(), bufferDc,
+ -x, -y );
+ m_mainDc = NULL;
+ }
+
m_buffer = NULL;
delete bufferDc;
}
m_buffer = NULL;
delete bufferDc;
}
- wxMemoryDC* memoryDc = new wxMemoryDC(m_mainDc);
+ wxMemoryDC* memoryDc = m_mainDc ? new wxMemoryDC(m_mainDc): new wxMemoryDC();
memoryDc->SelectObject(*m_buffer);
AttachDC(memoryDc);
memoryDc->SelectObject(*m_buffer);
AttachDC(memoryDc);