Commit Graph

146 Commits

Author SHA1 Message Date
Nikolay Sivov beefe76c6f gdiplus: Add a helper to initialize RectF.
Signed-off-by: Nikolay Sivov <nsivov@codeweavers.com>
Signed-off-by: Esme Povirk <esme@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2021-03-23 21:02:43 +01:00
Jeff Smith fd15bd22c4 gdiplus: Use internal function to add bezier points for curve.
Signed-off-by: Jeff Smith <whydoubt@gmail.com>
Signed-off-by: Vincent Povirk <vincent@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2020-04-16 22:10:04 +02:00
Jeff Smith 7ff16aff06 gdiplus: Reuse point when calling GdipAddPathArc on open figure.
Signed-off-by: Jeff Smith <whydoubt@gmail.com>
Signed-off-by: Vincent Povirk <vincent@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2020-04-16 22:10:04 +02:00
Jeff Smith c5ae902946 gdiplus: Reuse point when calling GdipAddPathLine2 on open figure.
Signed-off-by: Jeff Smith <whydoubt@gmail.com>
Signed-off-by: Vincent Povirk <vincent@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2020-04-16 22:10:04 +02:00
Jeff Smith f54bf06a2a gdiplus: Reuse point when calling GdipAddPathLine on open figure.
Signed-off-by: Jeff Smith <whydoubt@gmail.com>
Signed-off-by: Vincent Povirk <vincent@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2020-04-16 22:10:04 +02:00
Jeff Smith a7e6cb4a25 gdiplus: Reuse point when calling GdipAddPathBeziers on open figure.
Wine-Bug: https://bugs.winehq.org/show_bug.cgi?id=48877
Signed-off-by: Jeff Smith <whydoubt@gmail.com>
Signed-off-by: Vincent Povirk <vincent@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2020-04-16 22:10:04 +02:00
Jeff Smith 1a3a8a0016 gdiplus: Reuse point when calling GdipAddPathBezier on open figure.
Signed-off-by: Jeff Smith <whydoubt@gmail.com>
Signed-off-by: Vincent Povirk <vincent@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2020-04-16 22:10:04 +02:00
Jeff Smith 93a5ce2445 gdiplus: Check that GdipAddPathLine2 is passed at least one point.
Signed-off-by: Jeff Smith <whydoubt@gmail.com>
Signed-off-by: Vincent Povirk <vincent@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2020-04-14 22:04:07 +02:00
Jeff Smith efd5f670bd gdiplus: Clear new multi-point paths that end with Start.
Signed-off-by: Jeff Smith <whydoubt@gmail.com>
Signed-off-by: Vincent Povirk <vincent@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2020-04-14 22:04:07 +02:00
Jeff Smith 09630fc92e gdiplus: Handle some degenerate cases with GdipCreatePath2.
Signed-off-by: Jeff Smith <whydoubt@gmail.com>
Signed-off-by: Vincent Povirk <vincent@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2020-04-10 17:38:50 +02:00
Jeff Smith 9f60413630 gdiplus: Widen-path for zero-width lines only emits anchors.
Signed-off-by: Jeff Smith <whydoubt@gmail.com>
Signed-off-by: Vincent Povirk <vincent@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2020-04-06 10:42:17 +02:00
Jeff Smith 5eda570e6d gdiplus: Do not shrink UnitWorld lines below width 1.0.
Signed-off-by: Jeff Smith <whydoubt@gmail.com>
Signed-off-by: Vincent Povirk <vincent@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2020-04-06 10:42:15 +02:00
Jeff Smith 0cc30160b7 gdiplus: Pass line-width parameter to widen-figure functions.
Signed-off-by: Jeff Smith <whydoubt@gmail.com>
Signed-off-by: Vincent Povirk <vincent@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2020-04-06 10:42:12 +02:00
Jeff Smith 260fb550be gdiplus: Caps are added at the end of a path.
Signed-off-by: Jeff Smith <whydoubt@gmail.com>
Signed-off-by: Vincent Povirk <vincent@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2020-03-26 21:18:30 +01:00
Jeff Smith 0022b7a6cf gdiplus: Caps do not shrink for line width < 2.0.
Signed-off-by: Jeff Smith <whydoubt@gmail.com>
Signed-off-by: Vincent Povirk <vincent@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2020-03-03 23:02:00 +01:00
Jeff Smith bc49309fe2 gdiplus: Add LineCapDiamondAnchor path widening.
Signed-off-by: Jeff Smith <whydoubt@gmail.com>
Signed-off-by: Vincent Povirk <vincent@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2020-02-19 20:00:54 +01:00
Jeff Smith 8e7c320df6 gdiplus: Add LineCapRoundAnchor path widening.
Signed-off-by: Jeff Smith <whydoubt@gmail.com>
Signed-off-by: Vincent Povirk <vincent@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2020-02-19 20:00:54 +01:00
Jeff Smith 1da5cd6a8f gdiplus: Add LineCapSquareAnchor path widening.
Signed-off-by: Jeff Smith <whydoubt@gmail.com>
Signed-off-by: Vincent Povirk <vincent@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2020-02-19 20:00:52 +01:00
Jeff Smith b3a68db9a0 gdiplus: Fix LineCapTriangle path widening.
Signed-off-by: Jeff Smith <whydoubt@gmail.com>
Signed-off-by: Vincent Povirk <vincent@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2020-02-19 20:00:48 +01:00
Jeff Smith 26ffbf6b8c gdiplus: Fix LineCapRound path widening.
Signed-off-by: Jeff Smith <whydoubt@gmail.com>
Signed-off-by: Vincent Povirk <vincent@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2020-02-19 20:00:43 +01:00
Michael Stefaniuc 241335cea2 gdiplus: Remove redundant not-NULL checks (coccinellery).
Signed-off-by: Michael Stefaniuc <mstefani@winehq.org>
Signed-off-by: Vincent Povirk <vincent@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2019-02-22 18:21:15 +01:00
Vincent Povirk 0943fcf376 gdiplus: Silently ignore empty rectangles in GdipAddPathRectangles.
Signed-off-by: Vincent Povirk <vincent@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2018-02-28 19:39:29 +01:00
Marcus Meissner a172cc6c6e gdiplus: Free dash_pattern_scaled (Coverity).
Signed-off-by: Marcus Meissner <marcus@jet.franken.de>
Signed-off-by: Vincent Povirk <vincent@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2017-07-24 20:05:34 +02:00
Piotr Caban a892b68016 gdiplus: Add write_path_data helper to create EMF+ path object.
Signed-off-by: Piotr Caban <piotr@codeweavers.com>
Signed-off-by: Vincent Povirk <vincent@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2017-07-19 20:53:37 +02:00
Vincent Povirk 9f22041b31 gdiplus: Fix leak in widen_dashed_figure.
Signed-off-by: Vincent Povirk <vincent@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2017-07-14 11:10:38 +02:00
Francois Gouget 01c9fb96ad gdiplus: Remove a duplicate word in a comment.
Signed-off-by: Francois Gouget <fgouget@free.fr>
Signed-off-by: Vincent Povirk <vincent@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2017-07-10 20:51:11 +02:00
Zebediah Figura 7e1522cdd6 gdiplus: Scale widened dashes to the pen width.
Signed-off-by: Zebediah Figura <zfigura@codeweavers.com>
Signed-off-by: Vincent Povirk <vincent@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2017-06-28 21:34:37 +02:00
Clemens Tamme c95877da42 gdiplus: Write API documentation for GdipAddPathArc and GdipAddPathArcI.
Signed-off-by: Clemens Tamme <clemens.tamme@gmail.com>
Signed-off-by: Vincent Povirk <vincent@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2017-06-26 08:53:58 +02:00
Clemens Tamme f1123f3578 gdiplus: Write API for GdipClonePath.
Signed-off-by: Clemens Tamme <clemens.tamme@gmail.com>
Signed-off-by: Vincent Povirk <vincent@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2017-06-26 08:53:47 +02:00
Clemens Tamme f96e319ab5 gdiplus: Write API for GdipAddPathLine and GdipAddPathLineI.
Signed-off-by: Clemens Tamme <clemens.tamme@gmail.com>
Signed-off-by: Vincent Povirk <vincent@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2017-06-26 08:53:43 +02:00
Clemens Tamme 260cbd022e gdiplus: Implement triangular line caps in widened paths.
Signed-off-by: Clemens Tamme <clemens.tamme@gmail.com>
Signed-off-by: Vincent Povirk <vincent@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2017-06-19 09:46:50 +02:00
Nikolay Sivov c89de1dd08 gdiplus: Use better naming for line alignment format field.
Signed-off-by: Nikolay Sivov <nsivov@codeweavers.com>
Signed-off-by: Vincent Povirk <vincent@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2017-04-28 18:40:13 +02:00
Ken Thomases a3f0a59132 gdiplus: Avoid infinite recursion in flatten_bezier().
If either of the recursive calls would have the same x2, y2, x3, and y3
arguments as the current call, the path is as flat as the precision of floats
allows.

Signed-off-by: Ken Thomases <ken@codeweavers.com>
Signed-off-by: Vincent Povirk <vincent@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2017-04-25 08:45:10 +02:00
Alex Henrie 046fc19cd1 gdiplus: Fix memory leak in format_string_callback error path.
Signed-off-by: Alex Henrie <alexhenrie24@gmail.com>
Signed-off-by: Vincent Povirk <vincent@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2017-01-03 20:07:51 +01:00
Vincent Povirk 88168d4b3d gdiplus: Implement GdipIsOutlineVisiblePathPoint.
Signed-off-by: Vincent Povirk <vincent@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2016-10-21 13:38:18 +02:00
Vincent Povirk 96eac4876c gdiplus: Allow widening a "closed" line segment.
Signed-off-by: Vincent Povirk <vincent@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2016-10-14 09:16:56 +02:00
Louis Lenders 36fdc6abf1 gdiplus: GdipTransformPath should return Ok if matrix = NULL.
Signed-off-by: Louis Lenders <xerox.xerox2000x@gmail.com>
Signed-off-by: Vincent Povirk <vincent@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2016-03-25 12:43:56 +09:00
Vincent Povirk 6a6aa3134d gdiplus: Fix GdipWidenPath transform for non-pixel pens.
Signed-off-by: Vincent Povirk <vincent@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2016-02-17 13:08:04 +09:00
Sebastian Lackner aa70a90c6e gdiplus: Do not use GdipAlloc and GdipFree in internal functions.
Signed-off-by: Sebastian Lackner <sebastian@fds-team.de>
Signed-off-by: Vincent Povirk <vincent@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2015-10-11 13:44:22 +09:00
Marcus Meissner ba8cacebf3 gdiplus: Free the correct pointer (Coverity). 2014-01-01 19:59:30 +01:00
Vincent Povirk 2dbd0e1694 gdiplus: Implement remaining dash styles in GdipWidenPath. 2013-10-24 10:46:23 +02:00
Vincent Povirk 1c35dd6cb4 gdiplus: Implement GdipWidenPath for custom dashed lines. 2013-10-24 10:46:15 +02:00
Dmitry Timoshkov 6ab04040e5 gdiplus: GdipMeasureCharacterRanges should treat empty layout extents as infinite when StringFormatFlagsNoClip is specified.
Unlike GdipMeasureString which always treats empty layout extents as infinite.
2013-03-15 11:43:24 +01:00
Dmitry Timoshkov 22a7458a3f gdiplus: Avoid a devision by zero when a being added segment length is 0.
This sometimes happens after GdipAddPathLine + GdipWidenPath.
2013-02-18 14:51:04 +01:00
Andrew Talbot f8da0d3a1e gdiplus: Remove superfluous braces. 2012-11-28 20:14:41 +01:00
André Hentschel 31eef521e9 gdiplus: Fix order of GdipFrees (coverity). 2012-10-25 11:47:23 +02:00
Vincent Povirk 0b40c9cb41 gdiplus: Implement LineCapRound in GdipWidenPath. 2012-09-21 10:53:29 +02:00
Vincent Povirk 8871af7ea5 gdiplus: Properly set the first point to start when widening open figures. 2012-09-21 10:53:23 +02:00
Vincent Povirk 47c433de8c gdiplus: Implement LineCapSquare in GdipWidenPath. 2012-09-21 10:53:17 +02:00
Dmitry Timoshkov 3f35a11426 gdiplus: get_log_fontW helper requires a valid graphics object. 2012-08-27 19:49:42 +02:00