Commit Graph

127 Commits

Author SHA1 Message Date
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