From 00da47ed08075f8289c3e328083fbabe069f30f6 Mon Sep 17 00:00:00 2001 From: zeljko Date: Mon, 9 Feb 2009 17:01:26 +0000 Subject: [PATCH] Qt: bugfix - TQtWidgetSet.Polygon() was wrong on MacOsX. git-svn-id: trunk@18620 - --- lcl/interfaces/qt/qtwinapi.inc | 11 +++++++++-- 1 file changed, 9 insertions(+), 2 deletions(-) diff --git a/lcl/interfaces/qt/qtwinapi.inc b/lcl/interfaces/qt/qtwinapi.inc index 6bc87e0c0b..3fa3beb096 100644 --- a/lcl/interfaces/qt/qtwinapi.inc +++ b/lcl/interfaces/qt/qtwinapi.inc @@ -3799,6 +3799,9 @@ end; ------------------------------------------------------------------------------} function TQtWidgetSet.Polygon(DC: HDC; Points: PPoint; NumPts: Integer; Winding: Boolean): boolean; +var + QtPoints: PQtPoint; + i: integer; begin {$ifdef VerboseQtWinAPI} WriteLn('[WinAPI Polygon] DC: ', dbghex(DC)); @@ -3806,13 +3809,17 @@ begin Result := IsValidDC(DC); if Result then begin + GetMem(QtPoints, NumPts * SizeOf(TQtPoint)); + for i := 0 to NumPts - 1 do + QtPoints[i] := QtPoint(Points[i].x, Points[i].y); {TODO: discuss with other developers about antialiasing by default} // QPainter_setRenderHint(TQtDeviceContext(DC).Widget, QPainterAntialiasing, True); if Winding then - QPainter_drawPolygon(TQtDeviceContext(DC).Widget, PQtPoint(Points), NumPts, QtWindingFill) + QPainter_drawPolygon(TQtDeviceContext(DC).Widget, QtPoints, NumPts, QtWindingFill) else - QPainter_drawPolygon(TQtDeviceContext(DC).Widget, PQtPoint(Points), NumPts, QtOddEvenFill); + QPainter_drawPolygon(TQtDeviceContext(DC).Widget, QtPoints, NumPts, QtOddEvenFill); + FreeMem(QtPoints); end; end;