Commit Graph

2085 Commits

Author SHA1 Message Date
Esme Povirk a554079860 gdiplus: Implement reference counting for private font families.
Wine-Bug: https://bugs.winehq.org/show_bug.cgi?id=50896
Signed-off-by: Esme Povirk <esme@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2021-05-27 11:33:16 +02:00
Dongwan Kim aa54278250 gdiplus: Implement GdipEnumerateMetafileSrcRectDestRectI.
Signed-off-by: Dongwan Kim <kdw6485@gmail.com>
Signed-off-by: Esme Povirk <esme@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2021-05-18 21:25:00 +02:00
Haoyang Chen 43e2563f44 gdiplus: Avoid filtering of special characters.
Symbols such as ←  should also be displayed.

Signed-off-by: Haoyang Chen <chenhaoyang@uniontech.com>
Signed-off-by: Esme Povirk <esme@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2021-05-17 09:27:00 +02:00
Nikolay Sivov 2c77f717c8 gdiplus/metafile: Implement rendering origin recording.
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-29 09:41:21 +02:00
Nikolay Sivov 42cb11b1c1 gdiplus/metafile: Implement SetClipPath() recording.
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-29 09:41:19 +02:00
Nikolay Sivov 24278c4fc7 gdiplus/metafile: Implement ResetClip() recording.
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-29 09:41:16 +02:00
Nikolay Sivov 33d2f6b7ec gdiplus/metafile: Implement TranslateClip() recording.
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-29 09:41:13 +02:00
Nikolay Sivov 7ca2f86f06 gdiplus/metafile: Fully initialize record header on allocation.
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-29 09:41:11 +02:00
Jacek Caban 883298f627 gdiplus: Use nameless unions.
Signed-off-by: Jacek Caban <jacek@codeweavers.com>
Signed-off-by: Esme Povirk <esme@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2021-03-29 09:24:46 +02:00
Nikolay Sivov c17cd0fcab gdiplus/metafile: Implement DrawArc() recording.
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:45 +01:00
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
Nikolay Sivov 41651d2e16 gdiplus: Forward GdipDrawRectangle() to GdipDrawRectangles().
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:40 +01:00
Nikolay Sivov 9b04f1c660 gdiplus/metafile: Implement FillPie() recording.
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:38 +01:00
Jacek Caban b39b9eea39 include: Don't default to WINE_NO_NAMELESS_EXTENSION for Wine build.
Signed-off-by: Jacek Caban <jacek@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2021-03-22 21:48:38 +01:00
Nikolay Sivov 81bbc4872e gdiplus/metafile: Implement DrawRectangles() recording.
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-22 18:52:58 +01:00
Nikolay Sivov b733e39ae5 gdiplus: Add a helper to check for metafile graphics context.
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-22 18:52:58 +01:00
Nikolay Sivov 81b7555da8 gdiplus/metafile: Implement FillEllipse() recording.
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-22 18:52:58 +01:00
Nikolay Sivov 4e55ec2b9e gdiplus/metafile: Implement DrawEllipse() recording.
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-22 18:52:58 +01:00
Chao Long 3c2da5b9c9 gdiplus/metafile: Implement GdipRecordMetafileFileName.
Signed-off-by: Chao Long <longchao@uniontech.com>
Signed-off-by: Esme Povirk <esme@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2021-02-08 10:44:51 +01:00
Alexandre Julliard 0ec38429f3 gdiplus/tests: Regenerate ttf files with the official fontforge version.
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2021-02-03 20:44:03 +01:00
Haoyang Chen cda039943d gdiplus/tests: Test image brush transformation.
Signed-off-by: Haoyang Chen <chenhaoyang@uniontech.com>
Signed-off-by: Esme Povirk <esme@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2021-02-03 09:23:39 +01:00
Nikolay Sivov c090b35d99 gdiplus/metafile: Fix copy-paste typo when setting resolution (Coverity).
Signed-off-by: Nikolay Sivov <nsivov@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2021-02-01 17:10:04 +01:00
Haoyang Chen 4c4a5cb799 gdiplus: Avoid negative integer overflow due to implicit type conversion.
Signed-off-by: Haoyang Chen <chenhaoyang@uniontech.com>
Signed-off-by: Esme Povirk <esme@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2021-02-01 10:47:20 +01:00
Ziqing Hui 3549097c9e gdiplus: Record logical DPI in metafile.
Signed-off-by: Ziqing Hui <zhui@codeweavers.com>
Signed-off-by: Esme Povirk <esme@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2021-01-22 11:12:20 +01:00
Ziqing Hui c32be58b47 gdiplus/tests: Add initial tests for metafile created from printer DC.
Signed-off-by: Ziqing Hui <zhui@codeweavers.com>
Signed-off-by: Esme Povirk <esme@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2021-01-22 10:42:20 +01:00
Ziqing Hui f40f379f05 gdiplus: Correctly handle UnitDisplay for printer DC.
For printer DC, UnitDisplay specifies that a unit is 1/100 inch,
which is different from display DC.

Wine-Bug: https://bugs.winehq.org/show_bug.cgi?id=17848
Signed-off-by: Ziqing Hui <zhui@codeweavers.com>
Signed-off-by: Esme Povirk <esme@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2021-01-22 10:42:14 +01:00
Ziqing Hui ae7d81317b gdiplus/tests: Add tests for drawing on printer DC.
Signed-off-by: Ziqing Hui <zhui@codeweavers.com>
Signed-off-by: Esme Povirk <esme@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2021-01-18 22:46:37 +01:00
Jeff Smith 8eff23cc06 gdiplus/tests: Use wide-char string literals for test strings.
Signed-off-by: Jeff Smith <whydoubt@gmail.com>
Signed-off-by: Esme Povirk <esme@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2020-12-10 09:41:39 +01:00
Jeff Smith cf405026cd gdiplus/tests: Use wide-char string literal for metafile description.
Signed-off-by: Jeff Smith <whydoubt@gmail.com>
Signed-off-by: Esme Povirk <esme@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2020-12-10 09:41:37 +01:00
Jeff Smith ebc2d2a39a gdiplus/tests: Use wide-char string literal for mimetype.
Signed-off-by: Jeff Smith <whydoubt@gmail.com>
Signed-off-by: Esme Povirk <esme@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2020-12-10 09:41:35 +01:00
Jeff Smith 796550cc72 gdiplus/tests: Use wide-char string literals for file names.
Signed-off-by: Jeff Smith <whydoubt@gmail.com>
Signed-off-by: Esme Povirk <esme@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2020-12-10 09:41:33 +01:00
Jeff Smith de0497df87 gdiplus/tests: Use wide-char string literals for font names.
Signed-off-by: Jeff Smith <whydoubt@gmail.com>
Signed-off-by: Esme Povirk <esme@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2020-12-10 09:41:21 +01:00
Jeff Smith 6aea9b9d77 gdiplus: Guard initialization of installed font collection.
Signed-off-by: Jeff Smith <whydoubt@gmail.com>
Signed-off-by: Esme Povirk <esme@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2020-11-23 12:41:10 +01:00
Jeff Smith 4e395ba85b gdiplus: Fix function name typo in comment.
Signed-off-by: Jeff Smith <whydoubt@gmail.com>
Signed-off-by: Esme Povirk <esme@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2020-11-23 12:41:07 +01:00
Michael Stefaniuc 60c1035137 gdiplus: Use wide-char string literals.
Signed-off-by: Michael Stefaniuc <mstefani@winehq.org>
Signed-off-by: Esme Povirk <esme@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2020-11-13 11:28:44 +01:00
Ziqing Hui c509060f52 gdiplus: Support StringFormatNoWrap for GdipMeasureString.
Signed-off-by: Ziqing Hui <zhui@codeweavers.com>
Signed-off-by: Esme Povirk <esme@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2020-10-23 10:59:32 +02:00
Ziqing Hui 3f228497a8 gdiplus/tests: Add tests for GdipMeasureString with StringFormatFlagsNoWrap.
Signed-off-by: Ziqing Hui <zhui@codeweavers.com>
Signed-off-by: Esme Povirk <esme@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2020-10-23 10:59:30 +02:00
Haoyang Chen 2697b74d67 gdiplus: Fix texture brush rotation.
Signed-off-by: Haoyang Chen <chenhaoyang@uniontech.com>
Signed-off-by: Esme Povirk <esme@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2020-10-12 10:42:03 +02:00
Michael Stefaniuc 812eb3c41d gdiplus: Remove superfluous cast to self.
Signed-off-by: Michael Stefaniuc <mstefani@winehq.org>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2020-09-28 21:35:01 +02:00
Michael Stefaniuc 4e9ad7b305 gdiplus/tests: Use the ARRAY_SIZE() macro.
Signed-off-by: Michael Stefaniuc <mstefani@winehq.org>
Signed-off-by: Esme Povirk <esme@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2020-09-24 15:02:08 +02:00
Pengpeng Dong 36e6ea9767 gdiplus: Initialize the dead point coordinates in "GpPointF, *ptf" to 0.
Signed-off-by: Pengpeng Dong <dongpengpeng@uniontech.com>
Signed-off-by: Esme Povirk <esme@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2020-09-18 22:25:25 +02:00
Haoyang Chen bccd754966 gdiplus: Implement GdipEnumerateMetafileSrcRectDestRect.
Signed-off-by: Haoyang Chen <chenhaoyang@uniontech.com>
Signed-off-by: Esme Povirk <esme@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2020-09-18 22:25:09 +02:00
Esme Povirk 6a5eed549d gdiplus/tests: Don't test point type array padding.
Since the point types are an array of bytes, padded to a DWORD
boundary, some of the bytes at the end are undefined, and there's
no good reason to test them.

Signed-off-by: Esme Povirk <esme@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2020-09-17 10:43:52 +02:00
Jiajin Cui 5754bd9c0a gdiplus: Make gdi_alpha_blend fallback to StretchBlt if current Compositing Mode is SourceCopy.
Signed-off-by: Jiajin Cui <cuijiajin@uniontech.com>
Signed-off-by: Esme Povirk <esme@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2020-09-04 21:16:49 +02:00
Shawn M. Chapla 52fa4fb74e gdiplus: Implement GdipGetClipBoundsI in terms of GdipGetClipBounds.
Signed-off-by: Shawn M. Chapla <schapla@codeweavers.com>
Signed-off-by: Esme Povirk <esme@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2020-08-26 21:25:39 +02:00
Shawn M. Chapla 5e40198862 gdiplus/tests: Add cursory GdipGetClipBoundsI checks to graphics clipping test.
Signed-off-by: Shawn M. Chapla <schapla@codeweavers.com>
Signed-off-by: Esme Povirk <esme@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2020-08-26 21:25:39 +02:00
Shawn M. Chapla c155b043fd gdiplus: Add missing allocation failure checks to graphics functions.
Signed-off-by: Shawn M. Chapla <schapla@codeweavers.com>
Signed-off-by: Esme Povirk <esme@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2020-08-26 21:25:39 +02:00
Shawn M. Chapla 1f8e40e461 gdiplus: Remove outdated FIXME comment about compositing mode.
Removes an outdated comment about graphics compositing mode being
unused. Graphics compositing mode has been used in pixel blending since
a16a4d97.

Signed-off-by: Shawn M. Chapla <schapla@codeweavers.com>
Signed-off-by: Esme Povirk <esme@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2020-08-26 21:25:39 +02:00
Shawn M. Chapla 03e9de4920 gdiplus: Incorporate GDI frame into metafile auto-frame before scaling.
Signed-off-by: Shawn M. Chapla <schapla@codeweavers.com>
Signed-off-by: Esme Povirk <esme@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2020-08-11 23:18:54 +02:00
Shawn M. Chapla 14bf19ec5e gdiplus/tests: Add metafile null frame rect GDI/GDI+ interop test case.
Signed-off-by: Shawn M. Chapla <schapla@codeweavers.com>
Signed-off-by: Esme Povirk <esme@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2020-08-11 23:18:52 +02:00