From 615db957ca59b046fcc586825ea2c73c895c2028 Mon Sep 17 00:00:00 2001 From: Amine Khaldi Date: Wed, 2 Mar 2016 10:34:40 +0000 Subject: [PATCH] [GDIPLUS] Sync with Wine Staging 1.9.4. CORE-10912 svn path=/trunk/; revision=70862 --- reactos/dll/win32/gdiplus/gdiplus_private.h | 1 + reactos/dll/win32/gdiplus/graphicspath.c | 5 ++++- reactos/dll/win32/gdiplus/pen.c | 21 +++++++++------------ reactos/media/doc/README.WINE | 2 +- 4 files changed, 15 insertions(+), 14 deletions(-) diff --git a/reactos/dll/win32/gdiplus/gdiplus_private.h b/reactos/dll/win32/gdiplus/gdiplus_private.h index 9cde1f80fad..d52eb5d863f 100644 --- a/reactos/dll/win32/gdiplus/gdiplus_private.h +++ b/reactos/dll/win32/gdiplus/gdiplus_private.h @@ -205,6 +205,7 @@ struct GpPen{ REAL offset; /* dash offset */ GpBrush *brush; GpPenAlignment align; + GpMatrix transform; }; struct GpGraphics{ diff --git a/reactos/dll/win32/gdiplus/graphicspath.c b/reactos/dll/win32/gdiplus/graphicspath.c index d37efe98ece..9901502a9a5 100644 --- a/reactos/dll/win32/gdiplus/graphicspath.c +++ b/reactos/dll/win32/gdiplus/graphicspath.c @@ -2060,7 +2060,7 @@ GpStatus WINGDIPAPI GdipWidenPath(GpPath *path, GpPen *pen, GpMatrix *matrix, status = GdipClonePath(path, &flat_path); if (status == Ok) - status = GdipFlattenPath(flat_path, matrix, flatness); + status = GdipFlattenPath(flat_path, pen->unit == UnitPixel ? matrix : NULL, flatness); if (status == Ok && !init_path_list(&points, 314.0, 22.0)) status = OutOfMemory; @@ -2133,6 +2133,9 @@ GpStatus WINGDIPAPI GdipWidenPath(GpPath *path, GpPen *pen, GpMatrix *matrix, GdipDeletePath(flat_path); + if (status == Ok && pen->unit != UnitPixel) + status = GdipTransformPath(path, matrix); + return status; } diff --git a/reactos/dll/win32/gdiplus/pen.c b/reactos/dll/win32/gdiplus/pen.c index 0104d95bdd3..3f732eb069b 100644 --- a/reactos/dll/win32/gdiplus/pen.c +++ b/reactos/dll/win32/gdiplus/pen.c @@ -159,6 +159,7 @@ GpStatus WINGDIPAPI GdipCreatePen2(GpBrush *brush, REAL width, GpUnit unit, gp_pen->offset = 0.0; gp_pen->customstart = NULL; gp_pen->customend = NULL; + GdipSetMatrixElements(&gp_pen->transform, 1.0, 0.0, 0.0, 1.0, 0.0, 0.0); if(!((gp_pen->unit == UnitWorld) || (gp_pen->unit == UnitPixel))) { FIXME("UnitWorld, UnitPixel only supported units\n"); @@ -406,17 +407,14 @@ GpStatus WINGDIPAPI GdipGetPenWidth(GpPen *pen, REAL *width) GpStatus WINGDIPAPI GdipResetPenTransform(GpPen *pen) { - static int calls; - TRACE("(%p)\n", pen); if(!pen) return InvalidParameter; - if(!(calls++)) - FIXME("(%p) stub\n", pen); + GdipSetMatrixElements(&pen->transform, 1.0, 0.0, 0.0, 1.0, 0.0, 0.0); - return NotImplemented; + return Ok; } GpStatus WINGDIPAPI GdipSetPenTransform(GpPen *pen, GpMatrix *matrix) @@ -429,24 +427,23 @@ GpStatus WINGDIPAPI GdipSetPenTransform(GpPen *pen, GpMatrix *matrix) return InvalidParameter; if(!(calls++)) - FIXME("not implemented\n"); + FIXME("(%p,%p) Semi-stub\n", pen, matrix); - return NotImplemented; + pen->transform = *matrix; + + return Ok; } GpStatus WINGDIPAPI GdipGetPenTransform(GpPen *pen, GpMatrix *matrix) { - static int calls; - TRACE("(%p,%p)\n", pen, matrix); if(!pen || !matrix) return InvalidParameter; - if(!(calls++)) - FIXME("not implemented\n"); + *matrix = pen->transform; - return NotImplemented; + return Ok; } GpStatus WINGDIPAPI GdipTranslatePenTransform(GpPen *pen, REAL dx, REAL dy, GpMatrixOrder order) diff --git a/reactos/media/doc/README.WINE b/reactos/media/doc/README.WINE index 89dae7dcc71..7992a5001e6 100644 --- a/reactos/media/doc/README.WINE +++ b/reactos/media/doc/README.WINE @@ -68,7 +68,7 @@ reactos/dll/win32/dciman32 # Synced to WineStaging-1.7.55 reactos/dll/win32/faultrep # Synced to WineStaging-1.7.55 reactos/dll/win32/fltlib # Synced to WineStaging-1.7.55 reactos/dll/win32/fusion # Synced to WineStaging-1.9.4 -reactos/dll/win32/gdiplus # Synced to WineStaging-1.7.55 +reactos/dll/win32/gdiplus # Synced to WineStaging-1.9.4 reactos/dll/win32/hhctrl.ocx # Synced to WineStaging-1.7.55 reactos/dll/win32/hlink # Synced to WineStaging-1.7.55 reactos/dll/win32/hnetcfg # Synced to WineStaging-1.7.55 -- 2.17.1