]> git.saurik.com Git - wxWidgets.git/blobdiff - src/msw/dc.cpp
fix the confusion in boolean attributes handling in pre-1.3 and 1.3 versions of GLX...
[wxWidgets.git] / src / msw / dc.cpp
index 161ec57c367f76407f23d8ec10a2a2a384e4d5e2..94d50acc0a9cf1aabbb2a27f20c8d513d74ce32a 100644 (file)
@@ -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
 // ----------------------------------------------------------------------------