Commit Graph

207 Commits

Author SHA1 Message Date
Jacek Caban 6a2decc259 gdi32: Move background color to DC_ATTR.
Signed-off-by: Jacek Caban <jacek@codeweavers.com>
Signed-off-by: Huw Davies <huw@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2021-07-28 22:07:04 +02:00
Jacek Caban 148a2b60a5 gdi32: Move layout to DC_ATTR.
Signed-off-by: Jacek Caban <jacek@codeweavers.com>
Signed-off-by: Huw Davies <huw@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2021-07-28 22:07:04 +02:00
Jacek Caban c00b231826 gdi32: Use get_dc_attr in SetROP2.
Signed-off-by: Jacek Caban <jacek@codeweavers.com>
Signed-off-by: Huw Davies <huw@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2021-07-28 22:07:04 +02:00
Jacek Caban a0f40f2a3b gdi32: Move ROP mode to DC_ATTR.
Signed-off-by: Jacek Caban <jacek@codeweavers.com>
Signed-off-by: Huw Davies <huw@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2021-07-28 22:07:04 +02:00
Jacek Caban ed1fbcf75b gdi32: Move disabled flag to DC_ATTR.
And honour it in get_dc_attr.

Signed-off-by: Jacek Caban <jacek@codeweavers.com>
Signed-off-by: Huw Davies <huw@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2021-07-28 22:07:04 +02:00
Jacek Caban 99b591582d gdi32: Use get_dc_attr in SetBkMode.
Signed-off-by: Jacek Caban <jacek@codeweavers.com>
Signed-off-by: Huw Davies <huw@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2021-07-27 21:09:49 +02:00
Jacek Caban 4a32a87537 gdi32: Move background mode to DC_ATTR.
Signed-off-by: Jacek Caban <jacek@codeweavers.com>
Signed-off-by: Huw Davies <huw@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2021-07-27 21:09:49 +02:00
Jacek Caban a81d0b97cb gdi32: Use get_dc_attr in SetTextAlign.
Signed-off-by: Jacek Caban <jacek@codeweavers.com>
Signed-off-by: Huw Davies <huw@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2021-07-27 21:09:48 +02:00
Jacek Caban aca66fb503 gdi32: Store text alignment in DC_ATTR.
Signed-off-by: Jacek Caban <jacek@codeweavers.com>
Signed-off-by: Huw Davies <huw@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2021-07-23 16:43:50 +02:00
Jacek Caban b825727d1d gdi32: Store graphics mode in DC_ATTR.
Signed-off-by: Jacek Caban <jacek@codeweavers.com>
Signed-off-by: Huw Davies <huw@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2021-07-21 17:13:54 +02:00
Jacek Caban 531a599405 gdi32: Use DC_ATTR for GetCurrentPositionEx implementation.
Signed-off-by: Jacek Caban <jacek@codeweavers.com>
Signed-off-by: Huw Davies <huw@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2021-07-21 17:13:47 +02:00
Jacek Caban 3f779e47ee gdi32: Introduce DC_ATTR struct and use it to store current position.
Signed-off-by: Jacek Caban <jacek@codeweavers.com>
Signed-off-by: Huw Davies <huw@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2021-07-19 12:32:47 +02:00
Jacek Caban b0240461f1 gdi32: Rename gdi_private.h to ntgdi_private.h.
Signed-off-by: Jacek Caban <jacek@codeweavers.com>
Signed-off-by: Huw Davies <huw@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2021-07-09 22:15:30 +02:00
Jacek Caban 06afb958d4 gdi32: Store ntgdi object types in handle table.
Signed-off-by: Jacek Caban <jacek@codeweavers.com>
Signed-off-by: Huw Davies <huw@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2021-07-08 21:12:52 +02:00
Jacek Caban 0a42d6a915 gdi32: Use ntgdi names for region functions.
Signed-off-by: Jacek Caban <jacek@codeweavers.com>
Signed-off-by: Huw Davies <huw@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2021-07-07 17:58:02 +02:00
Jacek Caban 8df14dac7a gdi32: Use ntgdi names for region constructors.
Signed-off-by: Jacek Caban <jacek@codeweavers.com>
Signed-off-by: Huw Davies <huw@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2021-07-07 17:57:58 +02:00
Jacek Caban 3dcb5db47f gdi32: Reimplement GetObjectA on top of GetObjectW.
Signed-off-by: Jacek Caban <jacek@codeweavers.com>
Signed-off-by: Huw Davies <huw@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2021-07-05 17:39:08 +02:00
Jacek Caban dc73184c29 gdi32: Directly use ntgdi interface to select objects.
Signed-off-by: Jacek Caban <jacek@codeweavers.com>
Signed-off-by: Huw Davies <huw@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2021-07-02 16:53:50 +02:00
Jacek Caban 341be5f3f2 gdi32: Reimplement SelectObject on top of ntgdi interface.
Signed-off-by: Jacek Caban <jacek@codeweavers.com>
Signed-off-by: Huw Davies <huw@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2021-07-02 16:53:50 +02:00
Jacek Caban a96fcf21b0 gdi32: Introduce gdi_obj_header and use it to store gdi_obj_funcs.
Signed-off-by: Jacek Caban <jacek@codeweavers.com>
Signed-off-by: Huw Davies <huw@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2021-07-01 22:34:31 +02:00
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
Alexandre Julliard 6bb001da6f gdi32: Add support for pushing a font driver on the DC driver stack. 2011-10-19 18:21:56 +02:00
Alexandre Julliard 5267c1316b gdi32: Get rid of the DC_FUNCTIONS typedef. 2011-10-17 20:39:54 +02:00
André Hentschel 3373e1e587 gdi32: Add traces for the gamma functions. 2011-09-26 12:20:35 +02:00
Alexandre Julliard d12d98511c gdi32: Allocate the DIB driver on first use, and free it only upon DC destruction. 2011-09-08 10:41:19 +02:00
Alexandre Julliard a28ddddcbc gdi32: Leave it up to the driver to push the new device on the DC stack in CreateDC. 2011-09-07 18:13:29 +02:00
Alexandre Julliard cef1832bfb gdi32: Add a driver entry point for CreateCompatibleDC. 2011-09-07 18:13:06 +02:00
Alexandre Julliard 901c1997cb gdi32: Make the push/pop_dc_driver functions available to the drivers. 2011-09-07 14:39:46 +02:00
Alexandre Julliard 9a63a25b9d gdi32: Don't free a driver when it's popped from the stack. 2011-09-07 12:08:16 +02:00
Alexandre Julliard 4266fcb28d gdi32: Fix coordinate mapping in Get/SetBoundsRect, with tests. 2011-09-04 16:47:38 +02:00
Alexandre Julliard c7a8ff26d3 gdi32: Graphics driver functions no longer need to be CDECL. 2011-07-13 14:56:12 +02:00
Huw Davies 4cffb2d0a9 gdi32: Add a skeleton dib driver. 2011-04-04 13:38:19 +02:00
Alexandre Julliard ded15757a0 gdi32: Remove the function table pointer from the DC structure. 2011-03-18 16:05:09 +01:00
Alexandre Julliard 1a34f98017 gdi32: Find the original driver by checking the CreateDC entry point in CreateCompatibleDC. 2011-03-18 15:59:05 +01:00
Alexandre Julliard 31e6f4bc0d gdi32: Add a null driver entry point for GetDeviceCaps. 2011-03-16 23:06:47 +01:00
Alexandre Julliard 45f191dc2a gdi32: Properly manage the driver stack during DC creation and deletion. 2011-03-16 23:06:25 +01:00
Alexandre Julliard 174e906aa5 gdi32: Get rid of the no longer used DC_SAVED flag. 2011-03-16 21:50:44 +01:00
Alexandre Julliard 7b970a1657 gdi32: Don't allocate a GDI handle for saved DCs. 2011-03-16 13:27:45 +01:00
Alexandre Julliard e6d153bbf6 gdi32: Add null driver entry points for the DC state functions. 2011-03-16 11:25:59 +01:00
Alexandre Julliard 29c3c528db gdi32: Add null driver entry point for world transform functions, and move them to mapping.c. 2011-03-15 17:14:07 +01:00
Alexandre Julliard 46bfaeae9e gdi32: Avoid null pointer access when we are out of gdi handles. 2011-03-12 20:40:51 +01:00
Alexandre Julliard 0d27e3c0ed gdi32: Add null driver entry points for the palette functions. 2011-03-11 18:26:55 +01:00
Alexandre Julliard 0c33f1dd89 gdi32: Add null driver entry points for the color management functions. 2011-03-11 12:38:50 +01:00
Alexandre Julliard 30997b5634 gdi32: Add a SetLayout driver entry point and implement it for enhanced metafiles. 2011-03-10 22:10:16 +01:00
Alexandre Julliard 965d41717b gdi32: Add null driver entry points for the various DC settings functions. 2011-03-10 21:58:55 +01:00
Alexandre Julliard 75f792d729 gdi32: Add null driver entry points for SetDCBrush/PenColor. 2011-03-10 20:45:12 +01:00
Alexandre Julliard adc63287b5 gdi32: Add null driver entry points for the object selection functions. 2011-03-10 12:39:03 +01:00
Alexandre Julliard 6419edfb6d gdi32: Add a mechanism for stacking gdi drivers. 2011-03-10 12:38:31 +01:00
Alexandre Julliard c82cb23bc2 gdi32: Add initial support for a null graphics driver. 2011-03-08 22:35:18 +01:00
Alexandre Julliard 5f5c7020f3 gdi32: Add a common header to the physdev structure. 2011-03-08 22:34:57 +01:00
Alexandre Julliard f914811359 gdi32: Remove unnecessary uses of wownt32.h. 2010-11-01 16:44:34 +01:00