From d75eb338c20067785b576bdde0f72e98a8543f52 Mon Sep 17 00:00:00 2001 From: Vadim Zeitlin Date: Sun, 27 Apr 2014 22:42:04 +0000 Subject: [PATCH] Fix precision in wxGraphicsContext::{Stroke,Draw}Lines() under MSW. Use floating point coordinates instead of ints which were used for some reason, resulting in a loss of precision. Closes #16187. git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@76420 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775 --- src/msw/graphics.cpp | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/src/msw/graphics.cpp b/src/msw/graphics.cpp index ee3c83f235..b13ff2ac2b 100644 --- a/src/msw/graphics.cpp +++ b/src/msw/graphics.cpp @@ -1489,11 +1489,11 @@ void wxGDIPlusContext::StrokeLines( size_t n, const wxPoint2DDouble *points) if ( !m_pen.IsNull() ) { wxGDIPlusOffsetHelper helper( m_context , ShouldOffset() ); - Point *cpoints = new Point[n]; + PointF *cpoints = new PointF[n]; for (size_t i = 0; i < n; i++) { - cpoints[i].X = (int)(points[i].m_x ); - cpoints[i].Y = (int)(points[i].m_y ); + cpoints[i].X = static_cast(points[i].m_x); + cpoints[i].Y = static_cast(points[i].m_y); } // for (size_t i = 0; i < n; i++) m_context->DrawLines( ((wxGDIPlusPenData*)m_pen.GetGraphicsData())->GetGDIPlusPen() , cpoints , n ) ; @@ -1507,11 +1507,11 @@ void wxGDIPlusContext::DrawLines( size_t n, const wxPoint2DDouble *points, wxPol return; wxGDIPlusOffsetHelper helper( m_context , ShouldOffset() ); - Point *cpoints = new Point[n]; + PointF *cpoints = new PointF[n]; for (size_t i = 0; i < n; i++) { - cpoints[i].X = (int)(points[i].m_x ); - cpoints[i].Y = (int)(points[i].m_y ); + cpoints[i].X = static_cast(points[i].m_x); + cpoints[i].Y = static_cast(points[i].m_y); } // for (int i = 0; i < n; i++) if ( !m_brush.IsNull() )