don't blit more than necessary in wxBufferedDC::UnMask() (patch 1943622) [should have been part of r53565]
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@53624 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
This commit is contained in:
@@ -128,8 +128,21 @@ void wxBufferedDC::UnMask()
|
|||||||
if ( m_style & wxBUFFER_CLIENT_AREA )
|
if ( m_style & wxBUFFER_CLIENT_AREA )
|
||||||
GetDeviceOrigin(&x, &y);
|
GetDeviceOrigin(&x, &y);
|
||||||
|
|
||||||
m_dc->Blit(0, 0, m_buffer->GetWidth(), m_buffer->GetHeight(),
|
// avoid blitting too much: if we were created for a bigger bitmap (and
|
||||||
this, -x, -y );
|
// reused for a smaller one later) we should only blit the real bitmap area
|
||||||
|
// and not the full allocated back buffer
|
||||||
|
int widthDC,
|
||||||
|
heightDC;
|
||||||
|
|
||||||
|
m_dc->GetSize(&widthDC, &heightDC);
|
||||||
|
|
||||||
|
int widthBuf = m_buffer->GetWidth(),
|
||||||
|
heightBuf = m_buffer->GetHeight();
|
||||||
|
|
||||||
|
m_dc->Blit(0, 0,
|
||||||
|
wxMin(widthDC, widthBuf), wxMin(heightDC, heightBuf),
|
||||||
|
this,
|
||||||
|
-x, -y);
|
||||||
m_dc = NULL;
|
m_dc = NULL;
|
||||||
|
|
||||||
if ( m_style & wxBUFFER_USES_SHARED_BUFFER )
|
if ( m_style & wxBUFFER_USES_SHARED_BUFFER )
|
||||||
|
Reference in New Issue
Block a user