diff options
Diffstat (limited to 'core/fxge/win32')
-rw-r--r-- | core/fxge/win32/cfx_psrenderer.cpp | 10 | ||||
-rw-r--r-- | core/fxge/win32/fx_win32_device.cpp | 22 | ||||
-rw-r--r-- | core/fxge/win32/fx_win32_gdipext.cpp | 29 |
3 files changed, 28 insertions, 33 deletions
diff --git a/core/fxge/win32/cfx_psrenderer.cpp b/core/fxge/win32/cfx_psrenderer.cpp index 2e4519c46f..7fc47b9a46 100644 --- a/core/fxge/win32/cfx_psrenderer.cpp +++ b/core/fxge/win32/cfx_psrenderer.cpp @@ -117,9 +117,9 @@ void CFX_PSRenderer::OutputPath(const CFX_PathData* pPathData, bool closing = pPathData->IsClosingFigure(i); FX_FLOAT x = pPathData->GetPointX(i); FX_FLOAT y = pPathData->GetPointY(i); - if (pObject2Device) { - pObject2Device->Transform(x, y); - } + if (pObject2Device) + pObject2Device->TransformPoint(x, y); + buf << x << " " << y; switch (type) { case FXPT_TYPE::MoveTo: @@ -136,8 +136,8 @@ void CFX_PSRenderer::OutputPath(const CFX_PathData* pPathData, FX_FLOAT y1 = pPathData->GetPointY(i + 1); FX_FLOAT y2 = pPathData->GetPointY(i + 2); if (pObject2Device) { - pObject2Device->Transform(x1, y1); - pObject2Device->Transform(x2, y2); + pObject2Device->TransformPoint(x1, y1); + pObject2Device->TransformPoint(x2, y2); } buf << " " << x1 << " " << y1 << " " << x2 << " " << y2 << " c"; if (closing) diff --git a/core/fxge/win32/fx_win32_device.cpp b/core/fxge/win32/fx_win32_device.cpp index c8ceacfc4c..3df38f1965 100644 --- a/core/fxge/win32/fx_win32_device.cpp +++ b/core/fxge/win32/fx_win32_device.cpp @@ -170,9 +170,9 @@ void SetPathToDC(HDC hDC, FX_PATHPOINT* pPoints = pPathData->GetPoints(); for (int i = 0; i < nPoints; i++) { FX_FLOAT posx = pPoints[i].m_PointX, posy = pPoints[i].m_PointY; - if (pMatrix) { - pMatrix->Transform(posx, posy); - } + if (pMatrix) + pMatrix->TransformPoint(posx, posy); + int screen_x = FXSYS_round(posx), screen_y = FXSYS_round(posy); FXPT_TYPE point_type = pPoints[i].m_Type; if (point_type == FXPT_TYPE::MoveTo) { @@ -189,16 +189,16 @@ void SetPathToDC(HDC hDC, lppt[0].y = screen_y; posx = pPoints[i + 1].m_PointX; posy = pPoints[i + 1].m_PointY; - if (pMatrix) { - pMatrix->Transform(posx, posy); - } + if (pMatrix) + pMatrix->TransformPoint(posx, posy); + lppt[1].x = FXSYS_round(posx); lppt[1].y = FXSYS_round(posy); posx = pPoints[i + 2].m_PointX; posy = pPoints[i + 2].m_PointY; - if (pMatrix) { - pMatrix->Transform(posx, posy); - } + if (pMatrix) + pMatrix->TransformPoint(posx, posy); + lppt[2].x = FXSYS_round(posx); lppt[2].y = FXSYS_round(posy); PolyBezierTo(hDC, lppt, 3); @@ -1056,8 +1056,8 @@ bool CGdiDeviceDriver::DrawPath(const CFX_PathData* pPathData, FX_FLOAT x2 = pPathData->GetPointX(1); FX_FLOAT y2 = pPathData->GetPointY(1); if (pMatrix) { - pMatrix->Transform(x1, y1); - pMatrix->Transform(x2, y2); + pMatrix->TransformPoint(x1, y1); + pMatrix->TransformPoint(x2, y2); } DrawLine(x1, y1, x2, y2); } else { diff --git a/core/fxge/win32/fx_win32_gdipext.cpp b/core/fxge/win32/fx_win32_gdipext.cpp index 65f7b3e732..c703e3e300 100644 --- a/core/fxge/win32/fx_win32_gdipext.cpp +++ b/core/fxge/win32/fx_win32_gdipext.cpp @@ -1083,8 +1083,8 @@ static bool IsSmallTriangle(PointF* points, FX_FLOAT x1 = points[pair1].X, x2 = points[pair2].X; FX_FLOAT y1 = points[pair1].Y, y2 = points[pair2].Y; if (pMatrix) { - pMatrix->Transform(x1, y1); - pMatrix->Transform(x2, y2); + pMatrix->TransformPoint(x1, y1); + pMatrix->TransformPoint(x2, y2); } FX_FLOAT dx = x1 - x2; FX_FLOAT dy = y1 - y2; @@ -1132,25 +1132,20 @@ bool CGdiplusExt::DrawPath(HDC hDC, for (int i = 0; i < nPoints; i++) { points[i].X = pPoints[i].m_PointX; points[i].Y = pPoints[i].m_PointY; - FX_FLOAT x, y; - if (pObject2Device) { - pObject2Device->Transform(pPoints[i].m_PointX, pPoints[i].m_PointY, x, y); - } else { - x = pPoints[i].m_PointX; - y = pPoints[i].m_PointY; - } - if (x > 50000 * 1.0f) { + FX_FLOAT x = pPoints[i].m_PointX; + FX_FLOAT y = pPoints[i].m_PointY; + if (pObject2Device) + pObject2Device->TransformPoint(x, y); + + if (x > 50000 * 1.0f) points[i].X = 50000 * 1.0f; - } - if (x < -50000 * 1.0f) { + if (x < -50000 * 1.0f) points[i].X = -50000 * 1.0f; - } - if (y > 50000 * 1.0f) { + if (y > 50000 * 1.0f) points[i].Y = 50000 * 1.0f; - } - if (y < -50000 * 1.0f) { + if (y < -50000 * 1.0f) points[i].Y = -50000 * 1.0f; - } + FXPT_TYPE point_type = pPoints[i].m_Type; if (point_type == FXPT_TYPE::MoveTo) { types[i] = PathPointTypeStart; |