From 9f43f2691c41174a54c6978f01c0c6be19d5c662 Mon Sep 17 00:00:00 2001 From: Stefan Csomor Date: Sat, 28 Nov 2009 20:05:39 +0000 Subject: [PATCH] 64bit builds had problems with full circles, as we can use 10.4+ only APIs, use new implementation, fixes #11471 git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@62740 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775 --- src/osx/carbon/graphics.cpp | 12 ++++++++++-- 1 file changed, 10 insertions(+), 2 deletions(-) diff --git a/src/osx/carbon/graphics.cpp b/src/osx/carbon/graphics.cpp index f1b534870f..03fd9e2c50 100644 --- a/src/osx/carbon/graphics.cpp +++ b/src/osx/carbon/graphics.cpp @@ -1138,9 +1138,12 @@ public : // appends a rectangle as a new closed subpath virtual void AddRectangle( wxDouble x, wxDouble y, wxDouble w, wxDouble h ); - // appends an ellipsis as a new closed subpath fitting the passed rectangle + // appends a circle as a new closed subpath virtual void AddCircle( wxDouble x, wxDouble y, wxDouble r ); + // appends an ellipsis as a new closed subpath fitting the passed rectangle + virtual void AddEllipse( wxDouble x, wxDouble y, wxDouble w, wxDouble h); + // draws a an arc to two tangents connecting (current) to (x1,y1) and (x1,y1) to (x2,y2), also a straight line from (current) to (x1,y1) virtual void AddArcToPoint( wxDouble x1, wxDouble y1 , wxDouble x2, wxDouble y2, wxDouble r ); @@ -1217,7 +1220,12 @@ void wxMacCoreGraphicsPathData::AddRectangle( wxDouble x, wxDouble y, wxDouble w void wxMacCoreGraphicsPathData::AddCircle( wxDouble x, wxDouble y , wxDouble r ) { - CGPathAddArc( m_path , NULL , (CGFloat) x , (CGFloat) y , (CGFloat) r , (CGFloat) 0.0 , (CGFloat) (2 * M_PI) , true ); + CGPathAddEllipseInRect( m_path, NULL, CGRectMake(x-r,y-r,2*r,2*r)); +} + +void wxMacCoreGraphicsPathData::AddEllipse( wxDouble x, wxDouble y, wxDouble w, wxDouble h ) +{ + CGPathAddEllipseInRect( m_path, NULL, CGRectMake(x,y,w,h)); } // adds an arc of a circle centering at (x,y) with radius (r) from startAngle to endAngle -- 2.47.2