Daniel Lehman
0d9f044dcd
gdi32: Trace more in CreateEnhMetaFileW.
...
Signed-off-by: Daniel Lehman <dlehman@esri.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2016-11-30 13:26:27 +01:00
Ken Thomases
d684831f4a
gdi32: Get the font URL directly from the descriptor on macOS 10.6 and later.
...
It's significantly faster than the roundabout way that's necessary for
10.5, which is especially important for users with many fonts installed.
Issue identified by Andrew Eikum.
Signed-off-by: Ken Thomases <ken@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2016-11-29 19:14:22 +01:00
Daniel Lehman
5244bd0748
gdi32: Initialize rgbReserved to zero in SetDIBColorTable.
...
Signed-off-by: Daniel Lehman <dlehman25@gmail.com>
Signed-off-by: Huw Davies <huw@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2016-11-23 22:36:39 +01:00
Henri Verbeet
d837b71557
gdi32: Add support for D3DDDIFMT_A4R4G4B4 and D3DDDIFMT_X4R4G4B4 to D3DKMTCreateDCFromMemory().
...
These are needed by wined3d to support DCs on WINED3DFMT_B4G4R4A4_UNORM and
WINED3DFMT_B4G4R4X4_UNORM textures, as required by the Microsoft Motocross
Madness demo. Note that these formats are not available on versions of Windows
newer than Vista, and as far as I'm aware the application doesn't work on
those versions. I don't expect exposing more formats to be an issue in
practice, but these could be hidden behind a version check if needed.
Signed-off-by: Henri Verbeet <hverbeet@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2016-11-17 07:41:47 -06:00
Huw Davies
04f8ecd956
gdi32: Check that ExtFloodFill()'s initial co-ordinates lie within the dib.
...
It might seem more natural to move this check inside is_interior(), but
this would slow down the unclipped case.
Signed-off-by: Huw Davies <huw@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2016-09-29 22:40:06 +09:00
Huw Davies
c429c595e8
gdi32: Explicitly write out the rops for copy_rect_1().
...
Signed-off-by: Huw Davies <huw@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2016-08-25 19:59:07 +09:00
Huw Davies
efd6292fae
gdi32: Split out the various offset cases for copy_rect_1() into separate functions.
...
Signed-off-by: Huw Davies <huw@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2016-08-25 19:59:05 +09:00
Huw Davies
e1ce79ec94
gdi32: Explicitly write out the rops for mask_rect_32().
...
Signed-off-by: Huw Davies <huw@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2016-08-25 19:59:03 +09:00
Huw Davies
4b39c7b944
gdi32: Explicitly write out the rops for copy_rect_32().
...
Signed-off-by: Huw Davies <huw@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2016-08-25 19:59:00 +09:00
Huw Davies
1d0e25e600
gdi32: Move the outer loop into separate functions for each direction.
...
Signed-off-by: Huw Davies <huw@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2016-08-25 19:58:58 +09:00
Huw Davies
a875e3c6ab
gdi32: Unroll the start- and end-of-line loops.
...
Signed-off-by: Huw Davies <huw@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2016-08-25 01:10:21 +09:00
Huw Davies
45b848ccd1
gdi32: Handle the case of a partial source byte separately.
...
Signed-off-by: Huw Davies <huw@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2016-08-25 01:10:21 +09:00
Huw Davies
6c7ed1214c
gdi32: Eliminate a masking operation by generating a larger colour table.
...
This helps significantly for large rectangles.
This is only done for the 32-bpp case as typically the lower bit
depths would more likely be used to draw small icons and the like,
where the extra fixed cost of this optimization will potentially
outweigh the savings.
Signed-off-by: Huw Davies <huw@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2016-08-25 01:10:21 +09:00
Huw Davies
9fe77b4d7b
gdi32: Exponentially grow successive point buffers.
...
Signed-off-by: Huw Davies <huw@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2016-08-17 11:53:32 +09:00
Nikolay Sivov
fcd0f6b074
gdi32: Append "TrueType" suffix to registry key names.
...
Signed-off-by: Nikolay Sivov <nsivov@codeweavers.com>
Signed-off-by: Huw Davies <huw@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2016-08-15 18:28:41 +09:00
Nikolay Sivov
492b10ef6c
gdi32: Simplify font table name tracing.
...
Signed-off-by: Nikolay Sivov <nsivov@codeweavers.com>
Signed-off-by: Huw Davies <huw@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2016-08-15 18:28:38 +09:00
Nikolay Sivov
7e50116b52
gdi32: Support special 'ttcf' tag in GetFontData().
...
Signed-off-by: Nikolay Sivov <nsivov@codeweavers.com>
Signed-off-by: Huw Davies <huw@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2016-08-12 20:38:20 +09:00
Nikolay Sivov
cd68821780
gdi32: Keep font tables tags defined in one place.
...
Signed-off-by: Nikolay Sivov <nsivov@codeweavers.com>
Signed-off-by: Huw Davies <huw@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2016-08-12 20:38:02 +09:00
Michael Stefaniuc
68f1df237a
gdi32/tests: Make use of todo_wine_if().
...
Signed-off-by: Michael Stefaniuc <mstefani@redhat.de>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2016-08-05 09:14:34 -05:00
Nikolay Sivov
41fa3f02ef
gdi32: Fix its vs it's typo.
...
Signed-off-by: Nikolay Sivov <nsivov@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2016-08-03 09:56:19 -05:00
Huw Davies
28bb9d15a6
gdi32: Only reselect the objects if the linear transform portion changes.
...
Signed-off-by: Huw Davies <huw@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2016-08-01 05:30:17 -05:00
Sebastian Lackner
aa4a1e17a2
gdi32/enhmfdrv: Remove unused debug channel.
...
Signed-off-by: Sebastian Lackner <sebastian@fds-team.de>
Signed-off-by: Huw Davies <huw@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2016-08-01 05:30:11 -05:00
Huw Davies
0f2a776a59
gdi32: Convert a few uses of get_dc_ptr() to get_physdev_dc().
...
In these cases we have the PHYSDEV meaning we own the DC already.
Signed-off-by: Huw Davies <huw@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2016-07-29 23:43:35 +09:00
Huw Davies
199ca9258a
gdi32: Access several more properties directly from the DC.
...
Signed-off-by: Huw Davies <huw@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2016-07-29 23:43:35 +09:00
Huw Davies
aa4934783f
gdi32: Where possible directly access the DC instead of using GetCurrentObject().
...
Signed-off-by: Huw Davies <huw@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2016-07-29 23:43:35 +09:00
Huw Davies
d4d65e2df9
gdi32: Move the release until after the final dc access.
...
Also only reselect the font if the graphics mode changes.
Signed-off-by: Huw Davies <huw@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2016-07-29 23:43:35 +09:00
Huw Davies
e1130cbb99
gdi32: Add an internal version of DPtoLP that takes a DC pointer.
...
Signed-off-by: Huw Davies <huw@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2016-07-29 23:43:35 +09:00
Huw Davies
637c99f675
gdi32: Remove an unnecessary call to get_dc_ptr().
...
Signed-off-by: Huw Davies <huw@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2016-07-29 23:43:35 +09:00
Huw Davies
e767a60790
gdi32: Access a few more properties directly from the DC in the path driver.
...
Signed-off-by: Huw Davies <huw@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2016-07-29 23:43:34 +09:00
Huw Davies
377010dcfc
gdi32: Pass a DC pointer to PATH_CheckCorners().
...
Signed-off-by: Huw Davies <huw@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2016-07-29 23:43:34 +09:00
Huw Davies
f1aaf0efb0
gdi32: Pass a DC pointer to the point adding routines.
...
Signed-off-by: Huw Davies <huw@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2016-07-29 23:43:34 +09:00
Huw Davies
1b4f0f8a07
gdi32: Pass the path directly to start_new_stroke().
...
Signed-off-by: Huw Davies <huw@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2016-07-29 23:43:34 +09:00
Huw Davies
67520ebaf5
gdi32: Pass a DC pointer to get_gdi_flat_path().
...
Signed-off-by: Huw Davies <huw@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2016-07-29 23:43:34 +09:00
Huw Davies
0c1e42235a
gdi32: Don't call GetObjectW() unless necessary.
...
Signed-off-by: Huw Davies <huw@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2016-07-29 23:43:33 +09:00
Huw Davies
41f763ea87
gdi32: Add an internal version of GetTextCharsetInfo() that takes a DC pointer.
...
Signed-off-by: Huw Davies <huw@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2016-07-29 23:43:32 +09:00
Huw Davies
22202eae59
gdi32: Use a buffer on the stack if the number of points is small.
...
Signed-off-by: Huw Davies <huw@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2016-07-29 23:43:32 +09:00
Huw Davies
5118d1312c
gdi32: Access a few more properties directly from the DC in the dib driver.
...
Signed-off-by: Huw Davies <huw@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2016-07-28 21:38:09 +09:00
Huw Davies
d8e353f99f
gdi32: Pass a DC pointer to get_pixel_color().
...
Signed-off-by: Huw Davies <huw@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2016-07-28 21:38:09 +09:00
Huw Davies
cf386b8b64
gdi32: Pass a DC pointer to get_mono_dc_colors().
...
Signed-off-by: Huw Davies <huw@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2016-07-28 21:38:08 +09:00
Huw Davies
9efe66a83a
gdi32: Use lp_to_dp() instead of LPtoDP() in the dib driver.
...
Signed-off-by: Huw Davies <huw@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2016-07-27 22:21:10 +09:00
Huw Davies
7fa6dfecc9
gdi32: Pass a DC pointer to get_device_rect() to avoid accesses via the handle.
...
Signed-off-by: Huw Davies <huw@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2016-07-27 22:21:09 +09:00
Huw Davies
36a0bb0f52
gdi32: Avoid unnecessary calls to get_dc_ptr().
...
Signed-off-by: Huw Davies <huw@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2016-07-27 22:21:09 +09:00
Huw Davies
6a8cfea99b
gdi32: Use POINT and SIZE to hold positions and extents.
...
Signed-off-by: Huw Davies <huw@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2016-07-27 22:21:08 +09:00
Huw Davies
f4bc213ce5
gdi32: Use an internal version of LPtoDP that takes a DC * where possible.
...
Signed-off-by: Huw Davies <huw@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2016-07-18 19:38:14 +09:00
Huw Davies
af5014f4c8
gdi32: Add a small rectangle buffer to reduce memory allocation.
...
Signed-off-by: Huw Davies <huw@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2016-07-18 19:38:12 +09:00
Huw Davies
01c33fb983
gdi32: Add helpers to allocate, grow and free regions.
...
Signed-off-by: Huw Davies <huw@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2016-07-18 19:38:09 +09:00
Huw Davies
778faedbae
gdi32: Copy 1-bpp pixels one byte at a time.
...
Signed-off-by: Huw Davies <huw@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2016-07-15 19:56:38 +09:00
Huw Davies
da8834609a
gdi32: Reduce the number of memory allocations required for gdi paths.
...
Signed-off-by: Huw Davies <huw@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2016-07-15 11:26:10 +09:00
Huw Davies
54ec86021a
gdi32: Change get_gdi_flat_path() to return an opaque path pointer.
...
Signed-off-by: Huw Davies <huw@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2016-07-15 11:26:10 +09:00
Huw Davies
23751e0ac2
gdi32: Use alloc_gdi_path() to create the path.
...
Signed-off-by: Huw Davies <huw@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2016-07-15 11:18:31 +09:00