X-Git-Url: https://git.saurik.com/wxWidgets.git/blobdiff_plain/e4db172a3b318df9aff178eb6c5da149d56e0859..8fc574b40c0c7dfbe4b19263d1ef178b51a45488:/src/mgl/dc.cpp diff --git a/src/mgl/dc.cpp b/src/mgl/dc.cpp index d26d4684f6..b3f098fa7c 100644 --- a/src/mgl/dc.cpp +++ b/src/mgl/dc.cpp @@ -1122,7 +1122,7 @@ void wxDC::SetBackground(const wxBrush& brush) { wxCHECK_RET( Ok(), wxT("invalid dc") ); - if (!m_backgroundBrush.Ok()) return; + if (!brush.Ok()) return; m_backgroundBrush = brush; wxColour &clr = m_backgroundBrush.GetColour(); @@ -1433,17 +1433,19 @@ bool wxDC::DoBlit(wxCoord xdest, wxCoord ydest, /* scale/translate size and position */ wxCoord xx = XLOG2DEV(xdest); wxCoord yy = YLOG2DEV(ydest); - wxCoord ww = XLOG2DEVREL(width); - wxCoord hh = YLOG2DEVREL(height); if ( source->m_isMemDC ) { wxMemoryDC *memDC = (wxMemoryDC*) source; - DoDrawSubBitmap(memDC->GetSelectedObject(), xsrc, ysrc, ww, hh, + DoDrawSubBitmap(memDC->GetSelectedObject(), + xsrc, ysrc, width, height, xdest, ydest, rop, useMask); } else { + wxCoord ww = XLOG2DEVREL(width); + wxCoord hh = YLOG2DEVREL(height); + m_MGLDC->makeCurrent(); // will go away with MGL6.0 m_MGLDC->bitBlt(*source->GetMGLDC(), xsrc, ysrc, xsrc + ww, ysrc + hh, @@ -1545,7 +1547,7 @@ void wxDC::DoDrawSubBitmap(const wxBitmap &bmp, // This sequence of operations ensures that the source's transparent // area need not be black, and logical functions are supported. - wxBitmap *mask = bmp.GetMask()->GetBitmap(); + wxBitmap mask = bmp.GetMask()->GetBitmap(); MGLMemoryDC *temp; @@ -1570,10 +1572,10 @@ void wxDC::DoDrawSubBitmap(const wxBitmap &bmp, DoBitBlt(bmp, temp, x, y, w, h, 0, 0, dw, dh, mglRop, useStretching, putSection); - mask->SetMonoPalette(wxColour(0,0,0), wxColour(255,255,255)); - DoBitBlt(*mask, temp, x, y, w, h, 0, 0, dw, dh, MGL_R2_MASKSRC, + mask.SetMonoPalette(wxColour(0,0,0), wxColour(255,255,255)); + DoBitBlt(mask, temp, x, y, w, h, 0, 0, dw, dh, MGL_R2_MASKSRC, useStretching, putSection); - DoBitBlt(*mask, m_MGLDC, x, y, w, h, dx, dy, dw, dh, MGL_R2_MASKNOTSRC, + DoBitBlt(mask, m_MGLDC, x, y, w, h, dx, dy, dw, dh, MGL_R2_MASKNOTSRC, useStretching, putSection); m_MGLDC->bitBlt(*temp, 0, 0, dw, dh, dx, dy, MGL_OR_MODE);