Module: wine Branch: master Commit: 25c7330954712bd64f9c7c966f9d214a4a928218 URL: https://gitlab.winehq.org/wine/wine/-/commit/25c7330954712bd64f9c7c966f9d214...
Author: Piotr Caban piotr@codeweavers.com Date: Sun Mar 26 12:10:08 2023 +0200
wineps: Handle EMR_ARCTO record in spool files.
---
dlls/wineps.drv/printproc.c | 29 +++++++++++++++++++++++++++++ 1 file changed, 29 insertions(+)
diff --git a/dlls/wineps.drv/printproc.c b/dlls/wineps.drv/printproc.c index 2b7ffaa5e4c..4c13801b580 100644 --- a/dlls/wineps.drv/printproc.c +++ b/dlls/wineps.drv/printproc.c @@ -295,6 +295,35 @@ static int WINAPI hmf_proc(HDC hdc, HANDLETABLE *htable, return PSDRV_LineTo(&data->pdev->dev, line->ptl.x, line->ptl.y) && MoveToEx(data->pdev->dev.hdc, line->ptl.x, line->ptl.y, NULL); } + case EMR_ARCTO: + { + const EMRARCTO *p = (const EMRARCTO *)rec; + POINT pt; + BOOL ret; + + ret = GetCurrentPositionEx(data->pdev->dev.hdc, &pt); + if (ret) + { + ret = ArcTo(data->pdev->dev.hdc, p->rclBox.left, p->rclBox.top, + p->rclBox.right, p->rclBox.bottom, p->ptlStart.x, + p->ptlStart.y, p->ptlStart.x, p->ptlStart.y); + } + if (ret) + ret = PSDRV_LineTo(&data->pdev->dev, pt.x, pt.y); + if (ret) + { + ret = PSDRV_Arc(&data->pdev->dev, p->rclBox.left, p->rclBox.top, + p->rclBox.right, p->rclBox.bottom, p->ptlStart.x, + p->ptlStart.y, p->ptlEnd.x, p->ptlEnd.y); + } + if (ret) + { + ret = ArcTo(data->pdev->dev.hdc, p->rclBox.left, p->rclBox.top, + p->rclBox.right, p->rclBox.bottom, p->ptlEnd.x, + p->ptlEnd.y, p->ptlEnd.x, p->ptlEnd.y); + } + return ret; + } case EMR_CREATEMONOBRUSH: { const EMRCREATEMONOBRUSH *p = (const EMRCREATEMONOBRUSH *)rec;