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
Rafał Mużyło
fc2bb3bdc1
gdiplus: Mark regions as unclipped correctly.
2012-10-30 18:08:13 +01:00
Rafał Mużyło
48a2b48e16
gdiplus: Fix logic of treating the region of a string as unclipped.
2012-10-30 18:08:13 +01:00
Dmitry Timoshkov
71eb164482
gdiplus: Move internal helper get_log_fontW() out of public GdipGetLogFontW() export.
2012-10-26 16:47:01 +02:00
Dmitry Timoshkov
a45da55922
gdiplus: Fix a typo leading to incorrect character width calculation in GdipMeasureDriverString.
2012-10-22 11:44:41 +02:00
Dmitry Timoshkov
1c30b894ec
gdiplus: Stop adding 1/6 of EM height to the created font height.
2012-10-08 17:36:15 +02:00
Dmitry Timoshkov
4d42626dbe
gdiplus: Add preliminary support for pixel offset modes.
2012-09-18 19:04:53 +02:00
Dmitry Timoshkov
b8f4252290
gdiplus: Add support for generic typographic string format.
2012-09-04 17:15:39 +02:00
Dmitry Timoshkov
bfa35f37a7
gdiplus: Add support for StringFormatFlagsNoClip.
2012-09-04 17:15:32 +02:00
Dmitry Timoshkov
e0fd87aea1
gdiplus: Print some additional information about device and image being drawn.
2012-08-30 19:16:52 +02:00
Dmitry Timoshkov
89ab0e4b12
gdiplus: Make GdipMeasureCharacterRanges/GdipMeasureString/GdipDrawString add extra space around the text.
2012-08-29 21:25:07 +02:00
Dmitry Timoshkov
4e2959ab9b
gdiplus: Make GdipMeasureCharacterRanges use common font transformation code.
2012-08-24 18:25:19 +02:00
Dmitry Timoshkov
7a1ccd8abe
gdiplus: Do not convert range_rect.X twice.
2012-08-24 18:25:12 +02:00
Dmitry Timoshkov
144a692ffa
gdiplus: Filter tabs out until they are properly supported using stringformat.
2012-08-23 21:36:56 +02:00
Dmitry Timoshkov
c8055b5b7b
gdiplus: GdipMeasureCharacterRanges should respect device units and transformations.
2012-08-22 12:12:27 +02:00
Dmitry Timoshkov
1418cd796c
gdiplus: GdipMeasureCharacterRanges shouldn't treat empty layout rectangle as infinite bounds.
2012-08-22 12:12:11 +02:00
Dmitry Timoshkov
10c84dfe3b
gdiplus: Rename roundr() to gdip_round() to make it clearer that it's an internal helper.
2012-08-21 11:47:11 +02:00
Dmitry Timoshkov
6e63a478b3
gdiplus: StringFormatFlagsLineLimit doesn't allow line wrapping.
2012-08-20 17:06:27 +02:00
Dmitry Timoshkov
62724c9d57
gdiplus: Return error code of the failed API to the caller.
2012-08-20 17:05:46 +02:00
Dmitry Timoshkov
e9aef40c26
gdiplus: Round the layout rectangle down instead of up in gdip_format_string().
2012-08-20 17:05:39 +02:00
Dmitry Timoshkov
466dfee115
gdiplus: If there is no hbitmap associated with GpBitmap then create one.
2012-08-20 17:05:07 +02:00
Dmitry Timoshkov
7c8e8fc5e2
gdiplus: Dump the matrix passed to GdipSetWorldTransform.
2012-08-16 11:58:57 +02:00
Dmitry Timoshkov
e7b5e69843
gdiplus: Properly convert source coordinates to device units in GdipDrawImagePointsRect.
2012-08-16 11:58:51 +02:00
Dmitry Timoshkov
938d42c148
gdiplus: When there is no target rectangle specified DrawImage should scale image to device dpi.
2012-08-16 11:58:42 +02:00
Dmitry Timoshkov
7f1cb3bca2
gdiplus: Destination points passed to GdipDrawImagePointsRect should be in device units.
2012-08-16 11:58:34 +02:00
Dmitry Timoshkov
fa7a34b907
gdiplus: Forward GdipDrawImage to GdipDrawImagePointRect.
2012-08-15 13:55:11 +02:00
Dmitry Timoshkov
6bb353858e
gdiplus: Replace convert_unit() by a clearer units_to_pixels() helper.
2012-08-15 13:53:31 +02:00
Dmitry Timoshkov
6f4625559e
gdiplus: GdipMeasureString should apply its internal scaling factors to layout rectangle.
2012-08-15 13:52:52 +02:00
Dmitry Timoshkov
889be9d447
gdiplus: get_font_hfont helper should transform returned font height using font and device unit/resolution/scale.
2012-08-14 16:41:56 +02:00
Dmitry Timoshkov
e9af648aeb
Revert commit b20a1f56b0
.
2012-08-14 16:41:55 +02:00
Dmitry Timoshkov
e536a128f7
gdiplus: Store device resolution in the graphics object.
2012-07-26 11:07:41 +02:00
Dmitry Timoshkov
b20a1f56b0
gdiplus: GdipMeasureString operates internally in pixels but in/out rectangles are in device units.
2012-07-18 17:17:46 +02:00
Dmitry Timoshkov
87f8e560c2
gdiplus: Pass complete palette info to convert_pixels().
2012-07-17 13:09:40 +02:00
Dmitry Timoshkov
a46c1f780a
gdiplus: Use public ColorPalette structure to store image palette.
2012-07-17 13:09:39 +02:00
Francois Gouget
15846adef0
gdiplus: Make get_font_hfont() static.
2012-06-12 11:11:32 +02:00
Dmitry Timoshkov
d0fcc19e7e
gdiplus: Fix the clipping region calculation.
2012-05-15 17:02:05 +02:00
Dmitry Timoshkov
bf9aed6f5c
gdiplus: Measure the passed in string without height clipping in order to compute correct Y offset.
2012-05-15 17:02:04 +02:00
Dmitry Timoshkov
5e4d64d18e
gdiplus: Create 'const' friendly internal entries for font APIs.
2012-05-14 17:49:02 +02:00
Dmitry Timoshkov
2c93bf7e4e
gdiplus: Retrieve LOGFONT from a GpFont using GdipGetLogFontW instead of accessing it directly.
2012-05-11 15:40:13 +02:00
Alexandre Julliard
039c85346c
gdiplus: CreateDIBSection doesn't need a DC for the DIB_RGB_COLORS case.
2012-05-02 12:02:17 +02:00
Vincent Povirk
075775a81b
gdiplus: Implement accessors for graphics rendering origin.
2012-04-24 11:37:46 +02:00
Dmitry Timoshkov
600cbb7874
gdiplus: Use StretchBlt instead of GdiAlphaBlend if device doesn't support alpha blending.
2012-04-19 19:28:10 +02:00
Vincent Povirk
52bf030b84
gdiplus: Implement GdipGetPathGradientTransform.
2012-04-02 12:37:55 +02:00
Vincent Povirk
5254a76a0c
gdiplus: Implement path gradient preset blend accessors.
2012-04-02 12:37:43 +02:00
Alistair Leslie-Hughes
0b2ea8aaf5
gdiplus: Add GdipResetPageTransform stub.
2012-03-29 20:49:22 +02:00
Vincent Povirk
e2e77545ff
gdiplus: Measure strings at device size, then rescale to world size.
2012-03-28 11:36:20 +02:00
Vincent Povirk
8a0b57a9a1
gdiplus: Draw hotkey underlines in GdipDrawString.
2012-03-26 18:13:52 +02:00
Vincent Povirk
eef459968a
gdiplus: Detect hotkey prefixes when drawing strings.
2012-03-26 12:41:28 +02:00
Vincent Povirk
3cd51c0acf
gdiplus: Use the surround colors in path gradient rendering.
2012-03-15 19:56:20 +01:00
Vincent Povirk
5d64f16bec
gdiplus: Add fixme's for unimplemented path gradient features.
2012-03-14 11:50:11 +01:00
Vincent Povirk
5ed5daf4da
gdiplus: Do some actual color blending when drawing path gradients.
2012-03-14 11:50:07 +01:00
Vincent Povirk
703b31b2e8
gdiplus: Fill path gradients with a solid color.
2012-03-14 11:50:02 +01:00
Vincent Povirk
dc3a08d840
gdiplus: Rewrite SOFTWARE_GdipFillRegion to call brush_fill_pixels less.
2012-03-13 10:27:22 +01:00
Dmitry Timoshkov
5fd16ddedc
gdiplus: Implement GdipCreateMetafileFromEmf.
2012-03-12 16:37:26 +01:00
Dmitry Timoshkov
b39425f3cf
gdiplus: Create GDI bitmap only when needed.
2012-03-12 10:43:53 +01:00
Dmitry Timoshkov
0d7bc4b325
gdiplus: Create GDI brush only when needed.
2012-03-09 11:30:46 +01:00
Vincent Povirk
aba9ddc4a0
gdiplus: Implement GdipDrawImagePoints.
2012-01-11 20:11:40 +01:00
André Hentschel
6b7ccdb734
gdiplus: Fix height calculation.
...
Spotted by Roman Shchekin.
2011-09-23 12:34:57 +02:00
Vincent Povirk
380abdeb10
gdiplus: Fix vertical string alignment.
2011-08-02 21:16:38 +02:00
Vincent Povirk
ae6ce97db0
gdiplus: Don't use a gdi32 brush for semi-transparent hatch brushes.
2011-07-27 19:03:51 +02:00
Vincent Povirk
171e832839
gdiplus: Fix use of uninitialized memory.
2011-07-18 16:23:29 +02:00
Vincent Povirk
44c57121ea
gdiplus: Implement GetDC for metafiles.
2011-07-08 11:26:14 +02:00
Vincent Povirk
d59c3d45e3
gdiplus: Use DrawDriverString to draw the text in DrawString.
2011-06-28 16:52:21 -05:00
Vincent Povirk
6cc7e7f7c4
gdiplus: Implement GdipMeasureDriverString.
2011-06-28 16:46:16 -05:00
Vincent Povirk
9793ab9fa6
gdiplus: Implement DriverStringOptionsRealizedAdvance in software.
2011-05-24 11:56:53 +02:00
Vincent Povirk
11754452d2
gdiplus: Change the sign we use for origin.x in DrawDriverString.
...
Apparently characters whose black boxes extend to the left of the origin have
a negative x value, but characters whose black boxes extend above the origin
have a positive y value.
2011-05-24 11:56:46 +02:00
Vincent Povirk
d436e51872
gdiplus: Add basic metafile recording support.
2011-05-23 11:15:41 +02:00
Vincent Povirk
64841aac83
gdiplus: Respect the CmapLookup flag in GDI32_GdipDrawDriverString.
2011-04-05 13:36:56 +02:00
Vincent Povirk
11f0662c60
gdiplus: Don't settle on a font size until absolutely necessary.
...
When we create a new font, we should store its height in a REAL field so
we don't have to round it. Further, when we calculate the width, we should
base the calculation on the metrics of a font at the height we will use, to
prevent rounding errors when the graphics transform will enlarge the font.
2011-04-05 13:36:56 +02:00
Vincent Povirk
be0af56be3
gdiplus: Add a software implementation of GdipDrawDriverString.
2011-04-05 13:36:56 +02:00
Vincent Povirk
32baa8ba4e
gdiplus: Add helper for translating GpFont to HFONT.
2011-04-05 13:36:56 +02:00
Gerald Pfeifer
25764d79c0
gdiplus: Initialize a variable in SOFTWARE_GdipFillRegion to avoid a compiler warning.
2011-04-04 14:55:10 +02:00
Vincent Povirk
15140a722e
gdiplus: Add basic implementation of GdipDrawDriverString.
2011-04-01 10:48:25 +02:00
Vincent Povirk
b3dfe973ad
gdiplus: Add test for GdipSetTextRenderingHint and make it pass.
2011-03-29 12:37:03 +02:00
Vincent Povirk
19b71b035e
gdiplus: Implement gamma adjustment.
2011-03-28 17:16:26 +02:00
Vincent Povirk
805f0321eb
gdiplus: Implement color transforms.
2011-03-28 17:16:23 +02:00
Vincent Povirk
314ec7178d
gdiplus: Select the font into the appropriate hdc in GdipMeasureString.
2011-03-18 16:05:09 +01:00
Vincent Povirk
504b7c34d6
gdiplus: Remove the gdi32 line gradient drawing code.
...
It's unused now.
2011-03-17 10:42:45 +01:00
Vincent Povirk
71eb248c30
gdiplus: Implement GdipFillRectangle based on GdipFillPath.
2011-03-17 10:42:32 +01:00
Vincent Povirk
5190f8a5f1
gdiplus: Use GdipFillPath to implement GdipFillPolygonI.
2011-03-17 10:42:22 +01:00
Vincent Povirk
86d55d43c5
gdiplus: Use GdipFillPath to implement GdipFillPolygon.
2011-03-17 10:42:17 +01:00
Vincent Povirk
2ce5be2ce3
gdiplus: Use GdipFillPath to implement GdipFillPie.
2011-03-15 17:14:06 +01:00
Vincent Povirk
4aa99eaf3b
gdiplus: Use GdipFillPath to implement GdipFillEllipse.
2011-03-15 17:14:06 +01:00
Vincent Povirk
b5c2015999
gdiplus: Add software implementation of GdipFillPath.
2011-03-15 17:14:06 +01:00
Vincent Povirk
833316f91d
gdiplus: Call GdiAlphaBlend only once per GdipFillRegion call.
2011-03-15 17:14:06 +01:00
Vincent Povirk
77f5a07c1b
gdiplus: Remove gdi32 fallback for bitmaps from GdipFillRegion.
...
We can always do a fill directly to the image bits when gdi32 can do it.
2011-03-15 17:14:06 +01:00
Vincent Povirk
4edff21ea2
gdiplus: Prefer to not use gdi32 for gradient and texture brushes.
2011-03-11 11:48:18 +01:00
Vincent Povirk
8a036abc5c
gdiplus: Implement software rendering of texture brushes.
2011-03-11 11:48:08 +01:00
Vincent Povirk
2302e80cc9
gdiplus: Don't use gdi32 to scale or draw from outside bitmaps.
2011-03-11 11:47:50 +01:00
Vincent Povirk
8b6dafda45
gdiplus: Implement bilinear interpolation.
2011-03-11 11:47:34 +01:00
Vincent Povirk
51cf90d8ca
gdiplus: Move bitmap interpolation into a separate function.
2011-03-11 11:47:32 +01:00
Vincent Povirk
5488ea1468
gdiplus: Implement tiling wrap modes.
2011-03-10 14:10:16 +01:00
Vincent Povirk
d891a8c16c
gdiplus: Apply image attributes to bitmaps before resampling them.
2011-03-10 14:10:16 +01:00
Vincent Povirk
870fdaf6ce
gdiplus: Read drawn bitmaps in one step instead of using getpixel.
2011-03-10 14:10:15 +01:00
Vincent Povirk
a7f95eeb7e
gdiplus: Move ImageAttributes mapping into a helper function.
2011-03-10 14:10:15 +01:00
Vincent Povirk
a2631ae1d2
gdiplus: Add tests for interpolation mode and make them pass.
2011-03-10 14:10:15 +01:00
Vincent Povirk
d0e6aa0204
gdiplus: Fix a handle leak in GdipDrawString.
2011-03-09 12:31:05 +01:00
Maarten Lankhorst
b8a1e6c687
gdiplus: Implement GdipAddPathString.
2011-03-03 17:47:15 +01:00
Maarten Lankhorst
c057694883
gdiplus: Add tests and fix GdipDrawImagePointsRect.
2011-03-03 17:47:15 +01:00
Maarten Lankhorst
fe8e08a5d6
gdiplus: Clean up gdip_format_string.
2011-03-03 17:47:15 +01:00
Vincent Povirk
e029d71c4b
gdiplus: Stub GdipGetHemfFromMetafile.
2011-01-27 14:15:59 +01:00
Vincent Povirk
0c17a0b5bb
gdiplus: Add a software implementation of line gradient brushes.
2011-01-24 12:13:57 +01:00
Vincent Povirk
b7e664bc5c
gdiplus: Add a software implementation of hatch brushes.
2011-01-24 12:13:54 +01:00
Vincent Povirk
60cd477342
gdiplus: Add a software implementation of GdipFillRegion.
2011-01-24 12:13:51 +01:00
Vincent Povirk
6acffba564
gdiplus: Factor the matrix creation code out of GdipTransformPoints.
2011-01-24 12:13:09 +01:00
Vincent Povirk
b689e63a86
gdiplus: Factor out the gdi32 code of GdipFillRegion.
2011-01-24 12:13:00 +01:00
Vincent Povirk
8f1b722790
gdiplus: Allow more drawing operations to succeed without an HDC.
...
This should bring things to the mostly-regression-free-but-easier-to-debug
state I was expecting when I removed DIBs from many bitmaps.
2010-11-10 17:18:40 +01:00
Vincent Povirk
3e86d43030
gdiplus: Don't rely on an HDC in GdipMeasureString.
2010-11-01 11:33:51 +01:00
Vincent Povirk
867f3d39e7
gdiplus: Don't rely on an HDC in GdipMeasureCharacterRanges.
2010-11-01 11:33:40 +01:00
Vincent Povirk
9d0cd09597
gdiplus: Add a fallback method for getting HDC's from Graphics objects.
...
Native does this in more cases (at least for all bitmap graphics
objects), but using gdi32 objects when we can should perform better.
2010-08-18 09:42:58 +02:00