Jacek Caban
4198e0760b
gdi32: Store stretch_blt_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-29 15:40:43 +02:00
Jacek Caban
84383245bb
gdi32: Use get_dc_attr in SetPolyFillMode.
...
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-29 15:40:43 +02:00
Jacek Caban
22f7e39fb7
gdi32: Store poly fill 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-29 15:40:43 +02:00
Jacek Caban
9e8a308f68
gdi32: Use get_dc_attr in SetRelAbs.
...
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-29 15:40:43 +02:00
Jacek Caban
90a7e79c11
gdi32: Store rel abs 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-29 15:40:43 +02:00
Jacek Caban
6502ce7add
gdi32: Move color space stubs to objects.c.
...
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-29 15:40:43 +02:00
Jacek Caban
18ce9d5efc
gdi32: Use get_dc_attr in SetArcDirection.
...
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-29 15:40:43 +02:00
Jacek Caban
85e934e4b8
gdi32: Store arc direction 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-28 22:07:05 +02:00
Jacek Caban
454b0fcb1e
gdi32: Store text color 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-28 22:07:05 +02:00
Jacek Caban
871d14f88b
gdi32: Use get_dc_attr in GetGraphicsMode.
...
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
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