Commit Graph

137 Commits

Author SHA1 Message Date
Zhiyi Zhang 3ebc715881 gdi32: Reselect font and pen when changing world transforms for enhanced metafiles.
Reselect font and pen into enhanced metafile device contexts after world transform is changed so
that content can be drawn using the correct size. Also modifying the world transform for enhanced
metafiles doesn't generate EMR_SELECTOBJECT records according to winedump outputs.

Fix an issue that Tally may produce a print preview with a too large font or with a black side bar.

Signed-off-by: Zhiyi Zhang <zzhang@codeweavers.com>
Signed-off-by: Huw Davies <huw@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2021-04-20 21:07:10 +02:00
Zhiyi Zhang 1543be811d gdi32: Move common SetLayout() code to nulldrv_SetLayout().
Signed-off-by: Zhiyi Zhang <zzhang@codeweavers.com>
Signed-off-by: Huw Davies <huw@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2021-04-20 21:07:10 +02:00
Zhiyi Zhang 2006f76b5f gdi32: Report correct HORZRES and VERTRES values for GetDeviceCaps() with DCs on a specific monitor.
Fix DLC Quest uses the primary monitor size to render when in fullscreen mode on non-primary monitors.

Signed-off-by: Zhiyi Zhang <zzhang@codeweavers.com>
Signed-off-by: Huw Davies <huw@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2021-01-27 21:12:01 +01:00
Alexandre Julliard b1d920bb9f gdi32: Use wide-character string literals.
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2020-11-06 17:34:27 +01:00
Alexandre Julliard aa90a5969f gdi32: Build with msvcrt.
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2020-11-05 10:44:16 +01:00
Alexandre Julliard 46ab536f87 gdi32: Move the font driver out of freetype.c.
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2020-10-20 22:54:02 +02:00
Piotr Caban 2370e7b9a1 gdi32: Share font_gamma_ramp structure between all DCs.
Signed-off-by: Piotr Caban <piotr@codeweavers.com>
Signed-off-by: Huw Davies <huw@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2020-09-24 16:41:24 +02:00
Alexandre Julliard 4a902de213 gdi32: Make GDI driver functions cdecl.
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2019-07-06 21:47:58 +02:00
Byeongsik Jeon 649dd1292d gdi32: Support the gamma correction for the subpixel rendering.
Signed-off-by: Byeongsik Jeon <bsjeon@hanmail.net>
Signed-off-by: Huw Davies <huw@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2018-10-22 22:36:43 +02:00
Huw Davies 0805b0d567 gdi32: Add the ability to disable a DC.
Signed-off-by: Huw Davies <huw@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2017-01-26 10:46:20 +01: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
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 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 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
Alexandre Julliard 955676bc05 gdi32: Pass the full DC handle to the hook in DeleteDC. 2014-04-14 09:38:01 +02:00
Alexandre Julliard 200eb1d30b gdi32: Trigger the display driver load for CreateCompatibleDC(0). 2013-12-30 19:01:53 +01:00
Alexandre Julliard 7c3bb6070a gdi32: Don't bother returning the driver module from DRIVER_load_driver. 2013-12-30 19:01:52 +01:00
Alexandre Julliard e650da3570 gdi32: Get rid of the driver module in the DC. 2013-10-29 12:51:26 +01:00
André Hentschel 741f7b6f0c gdi32: Copy gamma ramp validation from winex11 to make it driver independent. 2013-04-17 16:31:31 +02:00
Alexandre Julliard b057c5f140 gdi32: Fix handling of font orientation in advanced graphics mode. 2012-12-10 17:36:23 +01:00
Alexandre Julliard 8cca615f02 gdi32: Don't store a font pointer in the generic part of the DC. 2012-12-05 21:13:54 +01:00
Alexandre Julliard 4ad5287496 gdi32: Fully reset the DC state before deleting it. 2012-11-27 19:45:30 +01:00
Alexandre Julliard 4396a79ede gdi32: Add a DC hook flag to reset the DC state. 2012-10-24 18:24:03 +02:00
Alexandre Julliard 77c1856d43 gdi32: Remove an unused DC field. 2012-10-24 18:22:29 +02:00
Alexandre Julliard 5c1a752d61 gdi32: Export a function to retrieve the module handle of the graphics driver for a DC. 2012-10-22 15:16:00 +02:00
Alexandre Julliard b0ba7c765e gdi32: Update the ref count of stock objects when deleting a DC. 2012-10-21 12:18:46 +02:00
Alexandre Julliard df357093cc gdi32: Get rid of the GDIOBJHDR type. 2012-10-17 13:48:45 +02:00
Alexandre Julliard 2bdf447744 gdi32: Store the object type directly in the GDI handle table. 2012-10-17 13:10:21 +02:00
Alexandre Julliard e95cff0332 gdi32: Always update the DC before looking for the physdev pointer. 2012-09-20 21:07:04 +02:00
Alexandre Julliard 61f4767ade gdi32: Don't implement the gamma ramp functions in the DIB driver. 2012-05-31 13:44:32 +02:00
Alexandre Julliard 592bfd52c9 gdi32: Always use the DIB engine for DDB rendering. 2012-05-29 18:20:10 +02:00
Alexandre Julliard e94d3b4e08 gdi32: Add a priority mechanism for pushing drivers on the stack in a defined order. 2012-05-08 12:16:50 +02:00
Alexandre Julliard 41e5bc06d8 gdi32: Add support for clipping source coordinates to the DC device rectangle. 2012-04-30 22:47:35 +02:00
Alexandre Julliard 3009e03df7 gdi32: Add a SetBoundsRect driver entry point. 2012-04-27 12:41:43 +02:00
Alexandre Julliard 582a2f511f gdi32: Add a GetBoundsRect driver entry point. 2012-04-16 13:53:23 +02:00
Alexandre Julliard b1ccff1a9c gdi32: Add helper functions for manipulating bounds rectangles. 2012-04-16 13:41:29 +02:00
Alexandre Julliard 2776a97931 gdi32: Add explicit fields for the DC flags. 2012-04-10 16:21:23 +02:00
Alexandre Julliard b762fcc9a7 gdi32: Clip the returned DC bounds to the device rectangle. 2012-04-10 16:21:11 +02:00
Alexandre Julliard 5917bd3959 gdi32: SaveDC doesn't save the DC bounds. 2012-04-10 16:19:20 +02:00
Alexandre Julliard f8fa169da0 gdi32: Store foreground/background color even when passed CLR_INVALID. 2012-01-12 15:53:07 +01:00
Alexandre Julliard 5b17ba887b gdi32: Rename the CLIPPING_UpdateGCRegion function.
We haven't used a GC here for a long time now.
2011-12-07 17:49:54 +01:00
Alexandre Julliard b9f09abdcc gdi32: Don't store the metaclip region, recompute it as needed. 2011-12-07 17:49:47 +01:00
Alexandre Julliard ddfe35867d gdi32: Only create the DC visible region when necessary.
Most DCs can simply use the visible rectangle instead.
2011-12-07 16:50:57 +01:00
Alexandre Julliard 1f15ffa1e6 gdi32: Make sure DCs are fully zero-initialized. 2011-12-07 15:53:54 +01:00
Alexandre Julliard 5a1a6e935a gdi32: Maintain a region inside gdi32 to keep track of the total visible region. 2011-12-06 15:50:59 +01:00
Alexandre Julliard a214a3c3da gdi32: Store a pointer to the path in the DC and make the path structure opaque. 2011-11-22 12:07:24 +01:00
Alexandre Julliard 8a7bf0a2ab gdi32: Push a path driver on the DC stack when a path is opened. 2011-10-26 19:53:22 +02:00