Huw Davies
a8044bebe8
gdi32: Add a mask_rect primitive for use when the src is 1bpp.
...
This essentially combines the format conversion with a copy_rect.
It cannot be used when stretching, since stretching of 1bpp is
slightly special. Similarly, it cannot be used if the dst is also
1bpp (hence there is no mask_rect_1) or if the rop involves the brush.
Signed-off-by: Huw Davies <huw@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2016-07-14 17:52:35 +09:00
Huw Davies
f5bffe0ef7
gdi32: Use the get_mono_dc_colors() helper.
...
Signed-off-by: Huw Davies <huw@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2016-07-14 17:52:35 +09:00
Huw Davies
622c01c5e1
gdi32: Add back the extents test.
...
Spotted by Sebastian Lackner.
Signed-off-by: Huw Davies <huw@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2016-07-09 11:03:55 +09:00
Huw Davies
fc2d310949
gdi32: Add get_any_obj_ptr() to retrieve the ptr and type of a GDI handle.
...
This enables get_dc_obj() to check the type without calling GetObjectType()
and thus it saves additional calls to Enter/LeaveCriticalSection().
Signed-off-by: Huw Davies <huw@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2016-07-08 23:07:22 +09:00
Michael Stefaniuc
0b96693f75
gdi32: Remove a redundant NULL check before HeapFree().
...
Signed-off-by: Michael Stefaniuc <mstefani@redhat.de>
Signed-off-by: Huw Davies <huw@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2016-07-08 20:12:19 +09:00
Huw Davies
f7b6a7d77a
gdi32: Precompute the destination colours for sources with a colour table.
...
Signed-off-by: Huw Davies <huw@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2016-07-07 21:23:24 +09:00
Huw Davies
f59d3f60e1
gdi32: Use a binary search for PtInRegion() and RectInRegion().
...
Signed-off-by: Huw Davies <huw@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2016-07-07 21:23:24 +09:00
Huw Davies
7fd44a511f
gdi32: Use a binary search to generate the clipped rects.
...
Signed-off-by: Huw Davies <huw@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2016-07-07 21:23:24 +09:00
Sebastian Lackner
69d895ac86
gdi32: Fix copy & paste mistake in a comment.
...
Signed-off-by: Sebastian Lackner <sebastian@fds-team.de>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2016-07-07 19:55:57 +09:00
Michael Stefaniuc
8acdf5e7bf
gdi32: Use wine_dbgstr_rect() to trace a RECT.
...
Signed-off-by: Michael Stefaniuc <mstefani@redhat.de>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2016-07-05 23:22:04 +09:00
Huw Davies
6526ac1999
gdi32: Try to compact the region.
...
Signed-off-by: Huw Davies <huw@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2016-07-05 21:03:58 +09:00
Huw Davies
27375d8476
gdi32: Try to coalesce into wider bands.
...
Signed-off-by: Huw Davies <huw@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2016-07-05 21:03:42 +09:00
Huw Davies
0e93387d9b
gdi32: Use the add_rect() helper to add a rectangle.
...
Signed-off-by: Huw Davies <huw@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2016-07-05 21:03:33 +09:00
Francois Gouget
d7e18f6540
mfdrv: Fix a typo in a comment.
...
Signed-off-by: Francois Gouget <fgouget@free.fr>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2016-07-04 11:01:25 +09:00
Alexandre Julliard
b70cda9a1e
gdi32/tests: Add a test to run once through all functions supported on paths.
...
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2016-06-24 15:33:04 +09:00
Alexandre Julliard
06234a081a
gdi32: Reimplement Ellipse in paths to avoid calling imprecise arc helper functions.
...
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2016-06-24 15:33:04 +09:00
Alexandre Julliard
0b38f16767
gdi32: Reimplement RoundRect in paths to avoid calling imprecise arc helper functions.
...
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2016-06-24 15:33:04 +09:00
Alexandre Julliard
1fcf8f547a
gdi32: Compatibility fixes for Rectangle in paths, with tests.
...
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2016-06-24 15:33:03 +09:00
Alexandre Julliard
57d2009035
gdi32: Add a helper function to reverse an array of points in paths.
...
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2016-06-24 13:21:47 +09:00
Alexandre Julliard
117f862ce5
gdi32: Validate the point count in Polyline and Polygon.
...
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2016-06-23 12:36:23 +09:00
Alexandre Julliard
b2702b2d6f
gdi32/tests: Get rid of the todo mechanism in the path tests.
...
All the tests succeed now.
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2016-06-23 12:36:15 +09:00
Michael Stefaniuc
6d21655ed9
gdi32/tests: Use SetRect() instead of open coding it.
...
Signed-off-by: Michael Stefaniuc <mstefani@redhat.de>
Signed-off-by: Huw Davies <huw@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2016-06-22 22:09:17 +09:00
Alexandre Julliard
84ce9dfba7
gdi32: Start a new path stroke when the current position differs from the last.
...
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2016-06-22 22:09:17 +09:00
Alexandre Julliard
e68d68fb7d
gdi32: Fix setting the path flags in PolyPolyline and PolyPolygon.
...
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2016-06-22 22:09:17 +09:00
Alexandre Julliard
c7bbc83062
gdi32: Implement bounds for FillPath, StrokeAndFillPath and StrokePath in enhanced metafiles.
...
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2016-06-22 00:58:54 +09:00
Alexandre Julliard
625ff9b528
gdi32: Implement a path driver for enhanced metafiles.
...
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2016-06-21 14:54:49 +09:00
Alexandre Julliard
6bab6ad40d
gdi32: Add a helper function to return the metafile device.
...
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2016-06-21 14:54:02 +09:00
Alexandre Julliard
234daa7522
gdi32: Implement DeleteDC in the path driver.
...
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2016-06-21 14:53:06 +09:00
Michael Stefaniuc
75426bb926
gdi32/tests: Use wine_dbgstr_rect() to print RECTs.
...
Two old (win95 and winnt) broken() removed en passant.
Signed-off-by: Michael Stefaniuc <mstefani@redhat.de>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2016-06-21 00:23:56 +09:00
Alexandre Julliard
c500713dd3
gdi32: Fix updating the current position in PolyDraw.
...
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2016-06-21 00:23:50 +09:00
Alexandre Julliard
dfa3c68854
gdi32: Don't modify the DC arc direction in AngleArc.
...
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2016-06-20 20:06:39 +09:00
Alexandre Julliard
4ea7190361
gdi32: Keep track of the last move position in a path.
...
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2016-06-20 20:06:39 +09:00
Alexandre Julliard
3c63993f7e
gdi32: Add path helper functions to add points and close figures.
...
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2016-06-20 20:06:39 +09:00
Michael Stefaniuc
27f80dab77
gdi32/tests: Compare RECTs with EqualRect instead of memcmp.
...
Signed-off-by: Michael Stefaniuc <mstefani@redhat.de>
Signed-off-by: Huw Davies <huw@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2016-06-20 20:06:39 +09:00
Alexandre Julliard
ef3494c623
gdi32: Implement AngleArc in enhanced metafiles.
...
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2016-06-17 22:27:49 +09:00
Alexandre Julliard
b06e6147d1
gdi32: Implement PolyDraw in enhanced metafiles.
...
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2016-06-17 22:27:49 +09:00
Alexandre Julliard
1f004c42bf
gdi32: Add a few helper functions to manipulate point arrays in enhanced metafiles.
...
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2016-06-17 22:27:49 +09:00
Alexandre Julliard
91ef88a9e3
gdi32: Implement PolylineTo in enhanced metafiles.
...
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2016-06-17 14:00:17 +09:00
Alexandre Julliard
e92e5ec376
gdi32: Implement ArcTo in enhanced metafiles.
...
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2016-06-17 13:51:05 +09:00
Alexandre Julliard
7cfcd23878
gdi32: Take the transform rotation into account to compute pen width.
...
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2016-06-17 00:09:20 +09:00
Alexandre Julliard
04e7215faf
gdi32: Remove the no longer needed (and broken) null driver implementation of some path functions.
...
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2016-06-17 00:09:20 +09:00
Alexandre Julliard
b5cf73edd9
gdi32: Implement FillPath, StrokeAndFillPath and StrokePath in the DIB driver.
...
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2016-06-17 00:09:20 +09:00
Alexandre Julliard
7373a7c71d
gdi32: Fix PathToRegion and SelectClipPath behavior with an empty path.
...
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2016-06-16 01:21:47 +09:00
Alexandre Julliard
bd53a012b4
gdi32/tests: Add a few more path tests.
...
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2016-06-16 00:25:34 +09:00
Huw Davies
078f192c66
gdi32: Rename the struct representing an embedded WMF in an EMF.
...
Signed-off-by: Huw Davies <huw@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2016-06-08 23:25:16 +09:00
Huw Davies
19d1416cef
gdi32: If the WMF was created by GetWinMetaFileBits() then return the original EMF.
...
Signed-off-by: Huw Davies <huw@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2016-06-08 23:25:16 +09:00
Huw Davies
7be1c53d82
gdi32: Rename the struct representing an embedded EMF in a WMF.
...
Also, use an array rather than a pointer to represent the start of the data.
Signed-off-by: Huw Davies <huw@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2016-06-08 23:08:00 +09:00
Alexandre Julliard
d341b0c381
user32: Completely free owned DCEs when the corresponding window/class is destroyed.
...
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2016-05-21 09:55:03 +09:00
Andrey Gusev
9a80284e1a
gdi32: Fix a typo in a pointer name in primitive_funcs.
...
Signed-off-by: Andrey Gusev <andrey.goosev@gmail.com>
Signed-off-by: Huw Davies <huw@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2016-05-19 23:42:23 +09:00
Andrey Gusev
6fae520e1c
gdi32/tests: Fix a typo in trace() message.
...
Signed-off-by: Andrey Gusev <andrey.goosev@gmail.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2016-05-02 12:27:18 +09:00