X-Git-Url: https://git.saurik.com/wxWidgets.git/blobdiff_plain/76f91e7741e1f9f34aa246a37816a8ae0fe222e4..b73b21173698adb858573d233497657099991b03:/src/msw/dc.cpp diff --git a/src/msw/dc.cpp b/src/msw/dc.cpp index 161ec57c36..94d50acc0a 100644 --- a/src/msw/dc.cpp +++ b/src/msw/dc.cpp @@ -1083,13 +1083,9 @@ void wxMSWDCImpl::DoDrawEllipse(wxCoord x, wxCoord y, wxCoord width, wxCoord hei CalcBoundingBox(x2, y2); } -#if wxUSE_SPLINES +#if wxUSE_SPLINES && !defined(__WXWINCE__) void wxMSWDCImpl::DoDrawSpline(const wxPointList *points) { -#ifdef __WXWINCE__ - // WinCE does not support ::PolyBezier so use generic version - wxDCImpl::DoDrawSpline(points); -#else // quadratic b-spline to cubic bezier spline conversion // // quadratic spline with control points P0,P1,P2 @@ -1178,9 +1174,8 @@ void wxMSWDCImpl::DoDrawSpline(const wxPointList *points) ::PolyBezier( GetHdc(), lppt, bezier_pos ); free(lppt); -#endif } -#endif +#endif // wxUSE_SPLINES // Chris Breeze 20/5/98: first implementation of DrawEllipticArc on Windows void wxMSWDCImpl::DoDrawEllipticArc(wxCoord x,wxCoord y,wxCoord w,wxCoord h,double sa,double ea) @@ -1909,9 +1904,9 @@ bool wxMSWDCImpl::DoGetPartialTextExtents(const wxString& text, wxArrayInt& widt void wxMSWDCImpl::RealizeScaleAndOrigin() { - // VZ: it seems very wasteful to always use MM_ANISOTROPIC when in 99% of - // cases we could do with MM_TEXT and in the remaining 0.9% with - // MM_ISOTROPIC (TODO!) + // although it may seem wasteful to always use MM_ANISOTROPIC here instead + // of using MM_TEXT if there is no scaling, benchmarking doesn't detect any + // noticeable difference between these mapping modes #ifndef __WXWINCE__ ::SetMapMode(GetHdc(), MM_ANISOTROPIC); @@ -2022,9 +2017,15 @@ void wxMSWDCImpl::SetLogicalOrigin(wxCoord x, wxCoord y) wxDCImpl::SetLogicalOrigin( x, y ); -#ifndef __WXWINCE__ - ::SetWindowOrgEx(GetHdc(), (int)m_logicalOriginX, (int)m_logicalOriginY, NULL); -#endif + RealizeScaleAndOrigin(); +} + +// For use by wxWidgets only, unless custom units are required. +void wxMSWDCImpl::SetLogicalScale(double x, double y) +{ + WXMICROWIN_CHECK_HDC + + wxDCImpl::SetLogicalScale(x,y); } void wxMSWDCImpl::SetDeviceOrigin(wxCoord x, wxCoord y) @@ -2394,14 +2395,6 @@ wxSize wxMSWDCImpl::GetPPI() const return wxSize(x, y); } -// For use by wxWidgets only, unless custom units are required. -void wxMSWDCImpl::SetLogicalScale(double x, double y) -{ - WXMICROWIN_CHECK_HDC - - wxDCImpl::SetLogicalScale(x,y); -} - // ---------------------------------------------------------------------------- // DC caching // ----------------------------------------------------------------------------