Commit Graph

471 Commits

Author SHA1 Message Date
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 cc8cc65f79 gdiplus: Fix mismatched use of Begin/EndContainer and Save/RestoreGraphics.
Signed-off-by: Vincent Povirk <vincent@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2016-08-15 12:55:10 +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 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 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 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 9df85c48aa gdiplus: Account for world transform in GdipGraphicsClear.
Signed-off-by: Vincent Povirk <vincent@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2016-07-03 10:22:14 +09:00
Vincent Povirk 7fbf0deede gdiplus: Implement GdipGetImageAttributesAdjustedPalette.
Signed-off-by: Vincent Povirk <vincent@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2016-06-14 12:16:59 +09:00
Vincent Povirk be5b270690 gdiplus: Return visible clip bounds in world coordinates.
Signed-off-by: Vincent Povirk <vincent@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2016-06-07 12:32:21 +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
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
Nikolay Sivov 07f8493895 gdiplus: Remove always true condition (Coverity). 2015-07-06 15:13:27 +09:00
Andrew Eikum 1d5914b777 gdiplus: Avoid unnecessary pre-multiplied alpha conversions in GdipDrawImagePointsRect.
We can avoid doing a pre-multiplied alpha conversion by detecting
whether we need to perform any graphics operations ahead of time.
2015-04-06 12:04:15 +09:00
Vincent Povirk 9c579023f0 gdiplus: Fix blend_colors when alpha channel differs.
When picking a color halfway between 100% white (0xffffffff) and fully
transparent (0x00000000), the result was 50% opaque 50% grey
(0x80808080) when it should really be 50% opaque white (0x80ffffff).
This had a tendency to create grey fringes on things. The fix is to
weight the non-alpha components based on how much they contribute to
the final alpha value.
2015-03-25 19:46:38 +09:00
Vincent Povirk 6b97abf930 gdiplus: Handle large input rect in GdipMeasureCharacterRanges. 2015-03-24 14:06:13 +09:00
Vincent Povirk 6ee26aca16 gdiplus: Apply page scale to pen thickness. 2015-03-24 14:06:02 +09:00
Vincent Povirk 137128fa50 gdiplus: Fonts in UnitWorld shouldn't be scaled to the page unit. 2015-03-23 16:20:39 +09:00
Vincent Povirk e9d9ef591b gdiplus: GdipGetDC doesn't set the alpha channel for a 32-bit dib. 2015-03-19 14:07:41 +09:00
Vincent Povirk 0bec10bc3d gdiplus: Access bitmaps by row in alpha_blend_bmp_pixels. 2015-03-18 19:38:10 +09:00
Vincent Povirk 08c1e6cd96 gdiplus: Do not access Bitmap bits when drawing transparent pixels. 2015-03-18 19:38:07 +09:00
Changhui Liu 5fa7402a36 gdiplus: Fix get_graphics_bounds when window origin point changed. 2015-01-19 18:47:47 +01:00
Vincent Povirk 4361cbabd7 gdiplus: Fix error when drawing from a rectangle outside bitmap bounds. 2014-10-30 11:59:59 +09:00
André Hentschel f1ed09fdd9 gdiplus: Adjust identical conditions (PVS-Studio). 2014-10-28 14:05:08 +09:00
Vincent Povirk 57f1d4489f gdiplus: Use integer math to apply color matrices. 2014-09-18 16:28:17 +02:00
Vincent Povirk 76a96b70f7 gdiplus: Skip resampling when drawing a bitmap with no scaling/rotation. 2014-09-18 16:28:06 +02:00
Vincent Povirk 60f558876e gdiplus: Account for transforms when calculating hdc bounds. 2014-07-09 21:16:35 +02:00
Vincent Povirk 4def66c11c gdiplus: Prevent NULL StringFormat in gdip_format_string. 2014-04-14 20:19:01 +02:00
Vincent Povirk 392d3b657a gdiplus: Remove a useless comparison. 2014-03-25 10:56:09 +01:00
Vincent Povirk 526143cb05 gdiplus: Limit image output to the bounds of the Graphics object. 2014-03-25 10:56:04 +01:00
Frédéric Delanoy 73288e1100 gdiplus: Use BOOL type where appropriate. 2014-03-18 11:39:13 +01:00
Vincent Povirk 9a5375989d gdiplus: Fix an overzealous optimization. 2014-03-14 11:31:19 +01:00
Vincent Povirk 06555a96ad gdiplus: Account for negative height/width in GdipDrawImagePointsRect. 2014-03-14 11:31:14 +01:00
Vincent Povirk 78459aea0d gdiplus: Improve GdipFillRectangles parameter validation. 2014-02-20 11:18:24 +01:00
Vincent Povirk 2d487e22d6 gdiplus: Move metafile functions to metafile.c. 2014-01-29 12:38:46 +01:00
Vincent Povirk 6518edfa5f gdiplus: Implement writing SetPageTransform records. 2014-01-17 11:00:28 +01:00
Vincent Povirk 51b873b3ca gdiplus: Mark the Graphics object as busy before freeing it. 2014-01-06 16:02:40 +01:00
Vincent Povirk c491d52821 gdiplus: Write FillRects records to metafiles. 2013-11-25 15:15:52 +01:00
Vincent Povirk 8babdc860a gdiplus: Forward GdipFillRectangle to GdipFillRectangles. 2013-11-25 15:15:52 +01:00
Vincent Povirk fbcbd09bb3 gdiplus: Fix StringFormatFlagsLineLimit handling. 2013-11-20 11:25:04 +01:00
Vincent Povirk feef61743d gdiplus: Use clip region in GdipFillPath. 2013-10-31 09:46:36 +01:00
Vincent Povirk 08b650202c gdiplus: Use clip region in GdipDrawPath. 2013-10-31 09:46:29 +01:00
Frédéric Delanoy 70bc6d5f78 gdiplus: Use BOOL type where appropriate. 2013-10-03 12:54:40 +02:00
Vincent Povirk 85b989c1fa gdiplus: Don't expand the drawing area to include empty glyphs. 2013-09-23 21:31:07 +02:00
Vincent Povirk ce9de5c4bb gdiplus: Skip drawing lines of text with only empty glyphs. 2013-09-23 21:31:00 +02:00
Akihiro Sagawa e29e4caca3 gdiplus: Fix empty glyph handling. 2013-09-23 20:32:27 +02:00