X-Git-Url: https://git.saurik.com/wxWidgets.git/blobdiff_plain/ef344ff86223f1f0961f025c0b249c898529c095..68f36a2ca14a0005874f3343391f85f4aa084f99:/src/mgl/dc.cpp diff --git a/src/mgl/dc.cpp b/src/mgl/dc.cpp index c37533c8dd..452ded710b 100644 --- a/src/mgl/dc.cpp +++ b/src/mgl/dc.cpp @@ -182,16 +182,9 @@ void wxDC::SetMGLDC(MGLDevCtx *mgldc, bool OwnsMGLDC) m_MGLDC = mgldc; m_OwnsMGLDC = OwnsMGLDC; m_ok = TRUE; - - if ( mgldc->getDC()->a.clipRegion ) - { - MGLRegion clip; - mgldc->getClipRegion(clip); - m_globalClippingRegion = wxRegion(clip); - // FIXME_MGL -- reuse wxWindows::m_updateRegion ? - m_currentClippingRegion = m_globalClippingRegion; - m_clipping = TRUE; - } + + if ( !m_globalClippingRegion.IsNull() ) + SetClippingRegion(m_globalClippingRegion); InitializeMGLDC(); } @@ -288,7 +281,7 @@ void wxDC::DestroyClippingRegion() } else { - m_MGLDC->setClipRect(MGLRect(0, 0, m_MGLDC->sizex(), m_MGLDC->sizey())); + m_MGLDC->setClipRect(MGLRect(0, 0, m_MGLDC->sizex()+1, m_MGLDC->sizey()+1)); m_clipping = FALSE; m_currentClippingRegion.Clear(); } @@ -329,7 +322,7 @@ void wxDC::Clear() SetBrush(m_backgroundBrush); SelectBrush(); GetSize(&w, &h); - m_MGLDC->fillRect(0, 0, w-1, h-1); + m_MGLDC->fillRect(0, 0, w, h); SetBrush(oldb); } } @@ -380,8 +373,8 @@ void wxDC::DoDrawLine(wxCoord x1, wxCoord y1, wxCoord x2, wxCoord y2) m_MGLDC->makeCurrent(); // will go away with MGL6.0 if ( !m_penSelected ) SelectPen(); - m_MGLDC->line(XLOG2DEV(x1) + m_penOfsX, XLOG2DEV(y1) + m_penOfsY, - XLOG2DEV(x2) + m_penOfsX, XLOG2DEV(y2) + m_penOfsY); + m_MGLDC->lineExt(XLOG2DEV(x1) + m_penOfsX, XLOG2DEV(y1) + m_penOfsY, + XLOG2DEV(x2) + m_penOfsX, XLOG2DEV(y2) + m_penOfsY,FALSE); CalcBoundingBox(x1, y1); CalcBoundingBox(x2, y2); } @@ -1234,7 +1227,7 @@ void wxDC::DoGetTextExtent(const wxString& string, wxCoord *x, wxCoord *y, *descent = YDEV2LOGREL(m_mglFont->descent); if ( externalLeading ) *externalLeading = YDEV2LOGREL(m_mglFont->leading); - + if ( theFont != NULL ) wxConstCast(this, wxDC)->SetFont(oldFont); } @@ -1370,8 +1363,8 @@ wxCoord wxDCBase::LogicalToDeviceYRel(wxCoord y) const void wxDC::DoGetSize(int *w, int *h) const { - if (w) *w = m_MGLDC->sizex(); - if (h) *h = m_MGLDC->sizey(); + if (w) *w = m_MGLDC->sizex()+1; + if (h) *h = m_MGLDC->sizey()+1; } void wxDC::DoGetSizeMM(int *width, int *height) const