117 Commits

Author SHA1 Message Date
Piotr Caban
7d6896efee gdiplus: Add helper for saving pens to metafile.
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-13 21:04:21 +02:00
Piotr Caban
e502a8dd07 gdiplus: Add helper for saving path objects in metafile.
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-13 21:04:19 +02:00
Piotr Caban
8608bf532e gdiplus: Add DrawPath stub for metafiles.
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-13 21:04:17 +02:00
Piotr Caban
683315d111 gdiplus: Support GdipSetTextRenderingHint in metafiles.
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-11 20:55:15 +02:00
Piotr Caban
689268d2f2 gdiplus: Add support for ImageAttributes when drawing image to metafile.
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-10 20:51:11 +02:00
Piotr Caban
ac231b14b9 gdiplus: Add function for managing metafile objects id.
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-10 20:51:11 +02:00
Piotr Caban
e1e4dd2023 gdiplus: Add partial support for GdipDrawImagePointsRect on metafile.
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-10 20:51:11 +02:00
Józef Kucia
c2a4f194ca gdiplus: Fix compilation on systems that don't support nameless unions.
Signed-off-by: Józef Kucia <jkucia@codeweavers.com>
Signed-off-by: Vincent Povirk <vincent@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2017-05-15 11:07:41 +02:00
Vincent Povirk
069f20d1b3 gdiplus: Implement EMR_EXTSELECTCLIPRGN playback.
Signed-off-by: Vincent Povirk <vincent@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2016-10-11 18:38:09 +02:00
Vincent Povirk
28cfa306b4 gdiplus: Implement EMR_SETWORLDTRANSFORM playback.
Signed-off-by: Vincent Povirk <vincent@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2016-10-10 21:13:13 +02:00
Vincent Povirk
2054c8fe6f gdiplus: Add FIXME for EMF records we need to implement.
These records cause state tracking in gdi32, but the state tracking doesn't
work correctly because we didn't pass a DC to EnumEnhMetaFile.

Signed-off-by: Vincent Povirk <vincent@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2016-10-10 21:12:53 +02:00
Marcus Meissner
4c3f494aa0 gdiplus: Assign error return (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>
2016-10-10 21:11:42 +02:00
Vincent Povirk
410163a9f2 gdiplus: Implement BeginContainer metafile record.
Signed-off-by: Vincent Povirk <vincent@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2016-09-19 10:59:51 +09:00
Dmitry Timoshkov
b7956a89bd gdiplus: Implement GdipGetMetafileHeaderFromFile.
Signed-off-by: Vincent Povirk <vincent@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2016-09-15 21:02:34 +09:00
Dmitry Timoshkov
368b4c47bb gdiplus: Implement GdipGetMetafileHeaderFromStream.
Signed-off-by: Vincent Povirk <vincent@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2016-09-15 21:02:34 +09:00
Dmitry Timoshkov
8c1ded6164 gdiplus: Implement GdipGetMetafileHeaderFromWmf.
Signed-off-by: Vincent Povirk <vincent@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2016-09-15 21:02:33 +09:00
Dmitry Timoshkov
b1e77d3fc8 gdiplus: Implement GdipCreateMetafileFromFile.
Signed-off-by: Vincent Povirk <vincent@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2016-09-12 11:09:20 +09:00
Dmitry Timoshkov
259837a199 gdiplus: Implement GdipGetMetafileHeaderFromMetafile.
Signed-off-by: Vincent Povirk <vincent@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2016-09-12 11:09:10 +09:00
Dmitry Timoshkov
3769778917 gdiplus: Implement GdipCreateMetafileFromStream.
Signed-off-by: Vincent Povirk <vincent@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2016-09-12 11:09:02 +09:00
Dmitry Timoshkov
2f7a2fdea3 gdiplus: Reimplement metafile loading using gdi32 instead of IPicture.
Signed-off-by: Dmitry Timoshkov <dmitry@baikal.ru>
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>
2016-08-22 12:39:12 +09:00
Vincent Povirk
3f6faddd56 gdiplus: Implement playback/recording for SetClipRect.
Signed-off-by: Vincent Povirk <vincent@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2016-08-17 11:54:08 +09:00
Vincent Povirk
f28803c0a4 gdiplus: Add support for containers in metafiles.
Signed-off-by: Vincent Povirk <vincent@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2016-08-16 12:00:55 +09:00
Vincent Povirk
af500612f2 gdiplus: Implement recording/playback for TranslateWorldTransform.
Signed-off-by: Vincent Povirk <vincent@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2016-08-15 12:55:05 +09:00
Vincent Povirk
690e0f269c gdiplus: Implement recording/playback for SetWorldTransform.
Signed-off-by: Vincent Povirk <vincent@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2016-08-08 12:35:21 +09:00
Vincent Povirk
cfae34a7e2 gdiplus: Implement recording/playback for RotateWorldTransform.
Signed-off-by: Vincent Povirk <vincent@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2016-08-08 12:35:19 +09:00
Vincent Povirk
69a7c2c6a2 gdiplus: Implement recording/playback for MultiplyWorldTransform.
Signed-off-by: Vincent Povirk <vincent@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2016-08-08 12:35:17 +09:00
Vincent Povirk
d4d18aa511 gdiplus: Fix matrix append flag in metafile transform records.
Signed-off-by: Vincent Povirk <vincent@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2016-08-08 12:34:44 +09:00
Vincent Povirk
a65718a3e7 gdiplus: Implement ResetWorldTransform metafile playback/recording.
Signed-off-by: Vincent Povirk <vincent@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2016-08-03 16:43:11 -05:00
Vincent Povirk
136d9e8c18 gdiplus: Implement metafile playback for ScaleWorldTransform.
Signed-off-by: Vincent Povirk <vincent@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2016-08-03 16:43:07 -05:00
Vincent Povirk
271c2bd62c gdiplus: Implement metafile recording for ScaleWorldTransform.
Signed-off-by: Vincent Povirk <vincent@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2016-08-03 16:43:05 -05:00
Vincent Povirk
da31ddb797 gdiplus: Account for GDI+ drawing operations in the metafile frame.
Signed-off-by: Vincent Povirk <vincent@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2016-07-03 10:22:35 +09:00
Vincent Povirk
0f3db73628 gdiplus: Implement playback of Clear operations.
Signed-off-by: Vincent Povirk <vincent@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2016-07-03 10:22:30 +09:00
Vincent Povirk
5c6247f7e2 gdiplus: Implement writing Clear operation to metafiles.
Signed-off-by: Vincent Povirk <vincent@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2016-07-03 10:22:26 +09:00
Vincent Povirk
10516308a8 gdiplus: Clip metafile drawing to destination points.
Signed-off-by: Vincent Povirk <vincent@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2016-07-03 10:22:20 +09:00
Vincent Povirk
a9e4e3b403 gdiplus: Implement GdipRecordMetafileStream.
Signed-off-by: Vincent Povirk <vincent@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2016-04-07 12:58:20 +09:00
Vincent Povirk
4ed1b4f5e8 gdiplus: Allow recording metafiles with a NULL frame.
Signed-off-by: Vincent Povirk <vincent@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2016-04-07 12:58:16 +09:00
Vincent Povirk
18e65a95a7 gdiplus: Fix bounds of recorded Metafile objects.
Signed-off-by: Vincent Povirk <vincent@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2016-04-07 12:58:01 +09:00
Vincent Povirk
2dc5685897 gdiplus: Placeable is optional in GdipCreateMetafileFromWmf.
Signed-off-by: Vincent Povirk <vincent@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2015-11-03 13:47:56 +09:00
Vincent Povirk
c7bdc88812 gdiplus: Return Ok from GdipSetMetafileDownLevelRasterizationLimit.
Until we have a reason to use this value (application asks for it or
we're building the emf part of a dual emf+), there's no need to worry
about this.

Signed-off-by: Vincent Povirk <vincent@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2015-11-03 13:47:41 +09:00
Vincent Povirk
592533bd72 gdiplus: Use GdipGetMetafileHeaderFromEmf when opening metafiles.
Signed-off-by: Vincent Povirk <vincent@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2015-11-01 22:53:54 +09:00
Vincent Povirk
1735a7240e gdiplus: Use reference device to determine created metafile resolution.
Signed-off-by: Vincent Povirk <vincent@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2015-11-01 22:53:54 +09:00
Vincent Povirk
233f1c1b88 gdiplus: Add initial GdipGetMetafileHeaderFromEmf implementation.
Signed-off-by: Vincent Povirk <vincent@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2015-11-01 22:53:53 +09:00
Vincent Povirk
198acf7e8c gdiplus: Skip the EMR_HEADER record when looking for the EMF+ header.
Signed-off-by: Vincent Povirk <vincent@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2015-11-01 22:53:53 +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
Alistair Leslie-Hughes
94f6d069f2 gdiplus: GdipConvertToEmfPlus parameter succ is optional. 2015-07-10 21:44:49 +09:00
Frédéric Delanoy
73288e1100 gdiplus: Use BOOL type where appropriate. 2014-03-18 11:39:13 +01:00
Francois Gouget
d371225ec2 gdiplus: Make METAFILE_GetEmfType() static. 2014-01-30 15:00:25 +01:00
Vincent Povirk
2d487e22d6 gdiplus: Move metafile functions to metafile.c. 2014-01-29 12:38:46 +01:00
Vincent Povirk
7c12d889d4 gdiplus: Implement SetPageTransform playback. 2014-01-17 11:00:30 +01:00
Vincent Povirk
6518edfa5f gdiplus: Implement writing SetPageTransform records. 2014-01-17 11:00:28 +01:00