Vincent Povirk
092531df71
gdiplus: Add non-gdi32 implementation of GdipDrawPath.
...
Signed-off-by: Vincent Povirk <vincent@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2016-10-14 09:17:28 +02:00
Vincent Povirk
99e5f24b6d
gdiplus: GdipDrawLine ignores 0-pixel pens.
...
Signed-off-by: Vincent Povirk <vincent@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2016-10-14 09:17:08 +02:00
Vincent Povirk
f696e431ad
gdiplus: Add clipping to GdipDrawImage.
...
Signed-off-by: Vincent Povirk <vincent@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2016-09-20 10:36:22 +09:00
Vincent Povirk
c6afa50db6
gdiplus: Add clipping to GDI32_GdipDrawDriverString.
...
Signed-off-by: Vincent Povirk <vincent@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2016-09-20 10:36:18 +09:00
Vincent Povirk
3fd47e1be1
gdiplus: Add clipping to GDI32_GdipFillRegion.
...
Signed-off-by: Vincent Povirk <vincent@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2016-09-20 10:36:10 +09: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
Vincent Povirk
f5b14a7ab6
gdiplus: Implement GdipBeginContainer.
...
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
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
Vincent Povirk
814f9cf7e4
gdiplus: Only clip strings if rectangle width and height are positive.
2013-08-15 16:24:45 +02:00
Dmitry Timoshkov
f575eb494b
gdiplus: Reimplement GdipSetClipRect to avoid potential problems with rotating world transform.
2013-07-30 20:51:54 +02:00
Dmitry Timoshkov
cdc3e820cd
gdiplus: Fix clipping region bounds calculation with rotating transform.
2013-07-30 20:51:52 +02:00
Dmitry Timoshkov
14f34c15d1
gdiplus: Store graphics clipping region in device coordinates.
2013-07-19 11:58:23 +02:00
Dmitry Timoshkov
73f7b857b3
Revert "gdiplus: Ignore gdiplus page and world transformations when creating a gdi32 clipping region.".
...
This reverts commit 61dafbb701
.
2013-07-12 12:14:59 +02:00
Dmitry Timoshkov
84ef3d484c
gdiplus: get_font_hfont() should ask gdi32 to match font height against the character height instead of cell height.
2013-06-19 19:18:39 +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
db746fe897
gdiplus: GdipMeasureCharacterRanges shouldn't add margins to string bounds.
2013-03-15 11:43:13 +01:00
Dmitry Timoshkov
61dafbb701
gdiplus: Ignore gdiplus page and world transformations when creating a gdi32 clipping region.
2013-03-13 11:30:11 +01:00
Dmitry Timoshkov
9fb88c7999
gdiplus: GdipDrawString should not clip the string if StringFormatFlagsNoClip is specified.
2013-03-04 11:19:18 +01:00
Dmitry Timoshkov
737790603c
Revert "gdiplus: Add support for StringFormatFlagsNoClip.".
...
This reverts commit bfa35f37a7
.
This patch breaks string alignment.
2013-03-04 11:19:16 +01:00
Vincent Povirk
7b004c1714
gdiplus: Store the image type on a Graphics object in case the image is freed.
2013-03-04 11:15:38 +01:00
Dmitry Timoshkov
1896e5575e
gdiplus: If a device doesn't support AlphaBlend don't convert image to PARGB.
2013-02-25 10:40:37 +01:00
Dmitry Timoshkov
6b474b555e
gdiplus: Reimplement GdipFillRectangles using GdipFillPath.
2013-02-19 10:42:45 +01:00
Dmitry Timoshkov
bb16c926b4
gdiplus: Slightly simplify GdipFillClosedCurve2 implementation.
2013-02-19 10:42:36 +01:00
Dmitry Timoshkov
338958287a
gdiplus: Reimplement GdipDrawRectangles using GdipDrawPath.
2013-02-19 10:42:32 +01:00
Dmitry Timoshkov
1223569d64
gdiplus: Reimplement GdipDrawRectangle using GdipDrawPath.
2013-02-19 10:42:29 +01:00
Dmitry Timoshkov
981223a736
gdiplus: Reimplement GdipDrawPie using GdipDrawPath.
2013-02-19 10:42:24 +01:00
Dmitry Timoshkov
6df50f1d16
gdiplus: Reimplement GdipDrawEllipse using GdipDrawPath.
2013-02-19 10:42:16 +01:00
Dmitry Timoshkov
ad49f83c7d
gdiplus: Forward GdipDrawBezier to GdipDrawBeziers.
2013-02-19 10:42:10 +01:00
Dmitry Timoshkov
ae8826c43e
gdiplus: Reimplement GdipDrawBeziers using GdipDrawPath.
2013-02-19 10:42:03 +01:00
Dmitry Timoshkov
89f380f69b
gdiplus: Reimplement GdipDrawArc using GdipDrawPath.
2013-02-19 10:41:46 +01:00
Dmitry Timoshkov
2fd1bf60ae
gdiplus: Reimplement GdipDrawLines using GdipDrawPath.
2013-02-19 10:41:37 +01:00
Dmitry Timoshkov
03228b1784
gdiplus: Reimplement GdipDrawCurve2 using GdipDrawPath.
2013-02-19 10:41:18 +01:00
Dmitry Timoshkov
4233b82872
gdiplus: Slightly simplify GdipDrawClosedCurve2 implementation.
2013-02-19 10:41:01 +01:00
Dmitry Timoshkov
cc54d1eb68
gdiplus: Forward GdipDrawBezierI to GdipDrawBezier.
2013-02-19 10:40:43 +01:00
Dmitry Timoshkov
f817fb56e8
gdiplus: Avoid a crash in GdipDrawImagePointRect.
2013-02-18 15:06:17 +01:00
Dmitry Timoshkov
8ec2354b32
gdiplus: Forward GdipDrawLinesI to GdipDrawLines.
2013-02-18 10:36:18 +01:00
Dmitry Timoshkov
7cccd36c9a
gdiplus: Forward GdipDrawLineI to GdipDrawLine.
2013-02-18 10:36:11 +01:00
Dmitry Timoshkov
0ed65a2d3a
gdiplus: Forward GdipDrawLine to GdipDrawLines.
2013-02-18 10:36:01 +01:00
Andrew Talbot
32d070afb0
gdiplus: Avoid signed-unsigned integer comparisons.
2013-01-24 10:49:34 +01:00
Dmitry Timoshkov
9532de882f
gdiplus: Make GdipCreateFromHDC2 not fail in case of hDevice != NULL.
2013-01-23 12:52:16 +01:00
Andrew Talbot
e4351708d5
gdiplus: Remove unneeded address-of operator from array name.
2012-12-06 13:01:07 +01:00
Vincent Povirk
ba4ef584d7
gdiplus: Fix graphics bounds for memory DC's.
2012-12-06 13:00:49 +01:00
Vincent Povirk
81d9ffa041
gdiplus: Always use AlphaBlend to draw to 32-bit DIB's.
2012-12-06 12:59:56 +01:00
Vincent Povirk
423d50eb3b
gdiplus: Use clipping region in alpha_blend_pixels.
2012-11-28 14:41:43 +01:00
Dmitry Timoshkov
b9ead1a7ea
gdiplus: Avoid more cases of allocating a transformation matrix on the heap.
2012-11-19 11:47:27 +01:00
Dmitry Timoshkov
39ec8ce67e
gdiplus: Store transformation matrix directly in the objects.
2012-11-08 15:37:49 +01:00
Dmitry Timoshkov
0a81a34643
gdiplus: Avoid GdipCloneMatrix calls for the graphics transformation matrix.
2012-11-07 11:58:27 +01:00
Dmitry Timoshkov
fa184bc2c2
gdiplus: Allocate a copy of the graphics transformation matrix on the stack instead of cloning it.
2012-11-06 20:00:27 +01:00
Dmitry Timoshkov
12340af3f9
gdiplus: Add support for extra transformation in GdipMeasureDriverString and GdipDrawDriverString.
2012-11-06 20:00:22 +01:00
Vincent Povirk
91a3e5fc10
gdiplus: Reimplement GdipCreateMetafileFromEmf without using IPicture.
2012-11-01 10:50:45 +01:00
Vincent Povirk
0cbec5508b
gdiplus: Implement drawing metafiles with an emf handle.
2012-11-01 10:50:37 +01:00