Commit Graph

261 Commits

Author SHA1 Message Date
Alexandre Julliard 6bb001da6f gdi32: Add support for pushing a font driver on the DC driver stack. 2011-10-19 18:21:56 +02:00
Huw Davies 2ac6a1bbf6 gdi32: Implement SetPixel. 2011-10-19 16:58:57 +02:00
Alexandre Julliard 5267c1316b gdi32: Get rid of the DC_FUNCTIONS typedef. 2011-10-17 20:39:54 +02:00
Huw Davies a01844b013 gdi32: Make the convert_bits and stretch_bits helpers external. 2011-10-17 17:45:08 +02:00
Huw Davies 64f6e9bc58 gdi32: Move the intersection of vis rects into a separate function. 2011-10-17 17:45:08 +02:00
Alexandre Julliard bfdac3e885 gdi32: Add a fall back implementation of BlendImage using client-side blending. 2011-10-17 17:45:05 +02:00
Alexandre Julliard 8f4d50ea4b gdi32: Add an all-one alpha channel when converting a DIB for blending. 2011-10-12 20:52:46 +02:00
Huw Davies a7b5d86655 gdi32: Add a helper to retrieve the bounding rectangle. 2011-10-11 15:43:18 +02:00
Huw Davies 15c4754e80 gdi32: stretch_bitmapinfo may need to adjust the dst visrect. 2011-09-27 18:15:23 +02:00
Alexandre Julliard c819e4bdea gdi32: Add a null driver fallback for AlphaBlend, using a new BlendImage driver entry point. 2011-09-14 11:57:45 +02:00
Alexandre Julliard 7696168dce gdi32: Add a placeholder function for DIB stretching. 2011-09-14 11:17:02 +02:00
Alexandre Julliard 2a5cabc22d gdi32: Move DIB driver definitions to dibdrv.h. 2011-09-08 10:41: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 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 6f275874f3 gdi32: Add a SetDIBitsToDevice implementation in the null driver using PutImage. 2011-09-06 14:38:25 +02:00
Alexandre Julliard 4266fcb28d gdi32: Fix coordinate mapping in Get/SetBoundsRect, with tests. 2011-09-04 16:47:38 +02:00
Alexandre Julliard a0f1b20464 gdi32: Make the BITMAPINFO parameters non-const in driver entry points since we are always passing a copy. 2011-09-02 15:56:01 +02:00
Alexandre Julliard bff79eb2b9 gdi32: Forward the null driver GetImage to the DIB driver since the bits are in DIB format. 2011-08-30 20:13:52 +02:00
Huw Davies 925fa10865 gdi32: Change the object-level brush function to accept a stand-alone dib and a separate clip region. 2011-08-22 16:19:40 +02:00
Huw Davies 0f40ad8a3d gdi32: Move to using a multi-line pen object-level function. 2011-08-22 16:19:15 +02:00
Huw Davies 1e83fd0076 gdi32: Use the gdi_image_bits structure to maintain the dib driver's bits. 2011-08-22 16:18:54 +02:00
Huw Davies e82f88d5ee gdi32: Add a helper to retrieve the bitmap functions. 2011-08-22 16:18:04 +02:00
Alexandre Julliard e5ce32e54d gdi32: Get rid of the DIB_GetBitmapInfo function. 2011-08-04 18:27:35 +02:00
Alexandre Julliard c309883a70 gdi32: Update the coordinates in convert_bitmapinfo to reflect the position in the destination bitmap. 2011-08-03 20:26:44 +02:00
Alexandre Julliard 91976a5b74 gdi32: Use GetImage to retrieve the brush bits in metafiles. 2011-08-03 14:15:47 +02:00
Alexandre Julliard 6d00196aea gdi32: Get rid of the SetBitmapBits driver entry point. 2011-08-03 14:15:47 +02:00
Alexandre Julliard 76b5c1dcac gdi32: Partial implementation of PutImage in the null driver for DDBs. 2011-08-03 12:31:52 +02:00
Frédéric Delanoy b5a33dab88 dlls: Assorted spelling fixes. 2011-08-02 20:47:51 +02:00
Huw Davies 3460665c50 gdi32: Add an inline helper to return the number of colour entries in a dib. 2011-07-28 18:37:39 +02:00
Alexandre Julliard d33e0d2c86 gdi32: Add an inline helper to retrieve a DDB byte width. 2011-07-25 19:56:43 +02:00
Alexandre Julliard bb3a1bdcac gdi32: Implement GetImage in the null driver. 2011-07-25 19:50:19 +02:00
Alexandre Julliard 8a906250eb gdi32: Get rid of the SetDIBits driver entry point. 2011-07-25 19:47:03 +02:00
Huw Davies 3cb26488bd gdi32: Rewrite SetDIBits to use the PutImage gdi driver function. 2011-07-25 13:40:53 +02:00
Alexandre Julliard 01e12ec9f9 gdi32: Move the checks for empty visible rects in PatBlt/StretchBlt back to gdi32. 2011-07-20 19:23:04 +02:00
Alexandre Julliard eb87e694a2 gdi32: Add inline helpers to compute DIB stride and total size. 2011-07-19 14:54:14 +02:00
Alexandre Julliard 1f8a0eb40e gdi32: Move GET_DC_PHYSDEV back to gdi_private.h, it can't be used from external drivers. 2011-07-19 14:54:09 +02:00
Alexandre Julliard b01eb19511 gdi32: Remove the GetDIBits entry point from the graphics driver. 2011-07-18 17:07:51 +02:00
Alexandre Julliard ba168763b2 gdi32: Move a couple of rectangle helper functions to the header. 2011-07-18 16:50:25 +02:00
Huw Davies 09a1418449 gdi32: Export a bitmap conversion function. 2011-07-18 16:35:20 +02:00
Alexandre Julliard c7a8ff26d3 gdi32: Graphics driver functions no longer need to be CDECL. 2011-07-13 14:56:12 +02:00
Alexandre Julliard a31e94d27a gdi32: Make the DC function structure public. 2011-07-13 14:04:31 +02:00
Huw Davies e844bddc36 gdi32: Allow dib_info structures to share colour tables. 2011-07-12 18:24:08 +02:00
Huw Davies 00a386ebf9 gdi32: Simplify the optional free'ing of bits pointer. 2011-07-12 18:24:06 +02:00
Alexandre Julliard bfc12c0c94 gdi32: Pass the source/dest visible rectangles to the AlphaBlend driver entry point. 2011-07-11 17:12:49 +02:00
Alexandre Julliard 1ac1d7c69b gdi32: Pass the dest visible rectangle to the PatBlt driver entry point. 2011-07-11 17:12:49 +02:00
Alexandre Julliard 8bd130b923 gdi32: Pass the source/dest visible rectangles to the StretchBlt driver entry point. 2011-07-11 17:12:49 +02:00
Alexandre Julliard 2ff31091ed gdi32: Export a function to compute the DC clip box. 2011-07-11 13:40:45 +02:00
Alexandre Julliard 4e2a28bd03 gdi32: Export the gdi_physdev structure for the external drivers. 2011-07-07 14:46:14 +02:00
Huw Davies 66399f6f72 gdi32: Add support for hatched brushes. 2011-06-17 15:37:47 +02:00
Huw Davies c5f41f89f3 gdi32: Update pixel colours when the colour table changes. 2011-06-02 16:24:25 +02:00
Huw Davies a44aa8a954 gdi32: Add support for colour tables. 2011-05-27 17:53:39 +02:00
Huw Davies 3c70a26e4b gdi32: Implement SelectBrush for DIB pattern brushes. 2011-05-12 14:29:42 +02:00
Huw Davies 735657d1b8 gdi32: Keep track of changes to the brush rop, so that we can perform lazy realisation of the brush. 2011-05-12 14:29:28 +02:00
Huw Davies 6976cee425 gdi32: Add support for drawing horizontal patterned lines. 2011-05-06 14:23:47 +02:00
Huw Davies 54397f1552 gdi32: Add support for patterned pens. 2011-05-06 14:23:47 +02:00
Huw Davies 572e0f01df gdi32: Keep track of the background colour. 2011-05-06 14:23:47 +02:00
Marcus Meissner 3d80a798cf gdi32: Mark internal symbols as hidden. 2011-04-25 13:01:50 +02:00
Huw Davies 1372692fe7 gdi32: Add clipping for horizontal and vertical solid lines. 2011-04-15 15:39:45 +02:00
Huw Davies f33bbbfdd7 gdi32: Keep track of the combined clip region. 2011-04-15 15:39:45 +02:00
Huw Davies 44f530275a gdi32: Implement SelectBrush for solid brushes. 2011-04-11 12:23:31 +02:00
Huw Davies 1e27c95125 gdi32: Draw single pixel wide, horizontal or vertical lines with the dib driver. 2011-04-07 17:21:13 +02:00
Huw Davies d5d4603062 gdi32: Calculate AND and XOR masks corresponding to the current pen colour and rop2. 2011-04-07 17:21:13 +02:00
Huw Davies 842d49939d gdi32: Add the ability to track whether we should defer to the graphics driver. 2011-04-07 17:21:13 +02:00
Huw Davies ed23e3de5c gdi32: Initial SelectPen support. 2011-04-07 17:21:12 +02:00
Huw Davies ba3d34875a gdi32: Add support for 32 bpp BI_BITFIELDS. 2011-04-05 14:44:03 +02:00
Huw Davies 0c5e7a6d4d gdi32: Add a dib primitive function table. 2011-04-05 14:44:00 +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 3d34f01f3c gdi32: Add null driver entry points for StretchBlt and AlphaBlend. 2011-03-18 16:05:09 +01:00
Alexandre Julliard 5ffbce6d3c gdi32: Add a null driver entry point for StretchDIBits. 2011-03-18 16:04:56 +01:00
Alexandre Julliard 33e27fca77 gdi32: Get rid of the BitBlt driver entry point. 2011-03-17 15:01:11 +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 1fc5603cc9 gdi32: Add null driver entry points for the text functions. 2011-03-16 14:14:16 +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 122b5bf784 gdi32: Add null driver entry points for the bitmap functions. 2011-03-16 11:20:30 +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 9c7b528b6f gdi32: Add null driver entry points for the path functions. 2011-03-11 20:43:15 +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 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 3a850fc842 gdi32: Add null driver entry points for the mapping 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 ec54c80ee5 gdi32: Add null driver entry points for the clipping functions. 2011-03-09 20:21:46 +01:00
Alexandre Julliard 7e3a871497 gdi32: Add null driver entry points for painting functions that have a fallback implementation. 2011-03-09 11:47:30 +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 fcfbb46d2e gdi32: GetDIBColorTable doesn't need to be part of the DC driver interface. 2011-03-08 16:55:04 +01:00
Alexandre Julliard e6d9486453 gdi32: Fix parameter type in the ModifyWorldTransform driver entry point. 2011-03-08 15:21:52 +01:00
Huw Davies f435963be4 gdi32: Remove a wayward CDECL. 2011-03-04 16:26:01 +01:00
Hans Leidekker 0839dabdab gdi32: Move EnumICMProfiles to the driver. 2010-10-26 15:23:55 +02:00
Alexandre Julliard 7d776a866e gdi32: Mirror the clip region when the DC is mirrored, with tests. 2010-07-29 13:36:43 +02:00
Alexandre Julliard f57c1b77dd gdi32: Get rid of the GetDCOrgEx driver entry point, GDI can implement this itself now. 2010-07-26 18:38:31 +02:00
Alexandre Julliard 69c8f0b67d gdi32: Store the total visible rectangle in the DC. 2010-07-26 18:38:31 +02:00
Aric Stewart ec62c33d79 gdi32: Handle a BiDi string being shaped into more or less glyphs than characters in the string. 2010-05-24 11:18:28 +02:00
Aric Stewart 2a8958ec18 gdi32: Use usp10 to optionally generate glyphs for bidi strings. 2010-05-13 19:44:35 +02:00
Alexandre Julliard e27bc88693 gdi32: Add a global function to retrieve the display driver. 2010-05-06 13:50:30 +02:00
Alexandre Julliard 0e4f742f06 gdi32: Don't bother freeing graphics drivers. 2010-05-06 13:37:32 +02:00
Alexandre Julliard fadc2cda1c gdi32: Load the 32-bit gdi.exe module wrapper from the 32-bit side.
Get rid of the empty gdi_main.c file.
2009-12-28 23:50:40 +01:00
Hans Leidekker 1d4fcc0270 gdi32: Implement WineEngGetCharABCWidthsFloat and forward GetCharABCWidthsFloat to it. 2009-12-11 17:47:22 +01:00
Alexandre Julliard 1ac23b9b0f gdi32: Don't include wingdi16.h by default. 2009-12-07 14:18:29 +01:00
Roderick Colenbrander 41f061ea1b wgl: Add initial WGL_ARB_create_context support. 2009-11-18 11:39:57 +01:00
Alexandre Julliard 17349a06b1 gdi32: Remove remaining references to gdi32 internals from gdi16.c. 2009-11-17 22:30:08 +01:00
Alexandre Julliard 06e09f67b4 gdi32: Disable SetSolidBrush16 since it requires access to gdi32 internals. 2009-11-17 22:29:37 +01:00
Alexandre Julliard d9700b6a77 gdi32: Reimplement the 16-bit metafile functions on top of the 32-bit ones. 2009-11-17 19:58:02 +01:00
Alexandre Julliard 1c67717876 gdi32: Get rid of the SetDCOrg driver entry point. 2009-11-17 15:14:54 +01:00
Alexandre Julliard 16da76923d gdi32: Reimplement SaveVisRgn16/RestoreVisRgn16 to avoid accessing the DC internals. 2009-11-17 15:14:54 +01:00
Eric Pouech 8e248c063f gdi.exe: No longer use 16bit abort procs inside the DC structure. 2009-11-16 13:47:29 +01:00
Alexandre Julliard 29d68b3fa7 gdi32: Move the 16-bit DIB pointer support to gdi16.c. 2009-09-26 13:50:37 +02:00
Alexandre Julliard 3411821ff6 gdi32: Get rid of the 16-bit DC hook support.
It can only work with native user32 anyway.
2009-09-26 13:32:47 +02:00
Alexandre Julliard 7582b13d8d gdi32: Move remaining 16-bit metafile functions to metafile16.c 2009-09-26 13:31:45 +02:00
Huw Davies 5c386041fc gdi32: Implement SetVirtualResolution. 2009-06-23 16:21:42 +02:00
Alexandre Julliard d4c54be272 gdi32: Move the whole DC restoring functionality into set_dc_state, and rename it to restore_dc_state. 2009-04-07 20:28:08 +02:00
Alexandre Julliard a23725785e gdi32: Move the whole DC saving functionality into get_dc_state, and rename it to save_dc_state. 2009-04-07 20:18:58 +02:00
Dmitry Timoshkov 4bb8d9c1c2 gdi32: Cache current font code page in the DC structure. 2009-04-06 12:57:11 +02:00
Rob Shearman ccce11d2c3 gdi32: Move 16-bit functions not exported in gdi32.dll into files compiled only when 16-bit functionality is enabled. 2009-02-19 12:51:50 +01:00
Alexandre Julliard 73593cbf5a gdi32: Store a separate flag to mark a GDI object for delayed destruction. 2009-01-29 21:45:01 +01:00
Alexandre Julliard 827e1f1de3 gdi32: Increment the reference count for the initial DC stock objects. 2009-01-29 21:44:52 +01:00
Alexandre Julliard f1ea7a40f8 gdi32: Get rid of GDI_ReallocObject. 2009-01-28 19:04:04 +01:00
Alexandre Julliard de831f334c gdi32: Release GDI handles before freeing the object.
This makes it unnecessary to hold the GDI lock during destruction.
2009-01-28 18:45:21 +01:00
Alexandre Julliard 311c53db4f gdi32: Allocate and initialize GDI objects before giving them a handle.
This makes it unnecessary to hold the GDI lock since the object
cannot be accessed before it has a handle.
2009-01-28 18:43:06 +01:00
Alexandre Julliard 5811a2ccb4 gdi32: Use the official constants instead of the old Win9x magic numbers for GDI object types. 2009-01-28 16:20:56 +01:00
Alexandre Julliard 68d19b9552 gdi32: Don't hold the GDI lock while calling the GetObjectA/W methods for GDI objects. 2009-01-27 16:30:43 +01:00
Alexandre Julliard 9ff44b815b gdi32: Don't hold the GDI lock while calling the UnrealizeObject method for GDI objects. 2009-01-27 16:26:35 +01:00
Alexandre Julliard f03871094c gdi32: Don't hold the GDI lock while calling the DeleteObject method for GDI objects. 2009-01-27 16:19:37 +01:00
Maarten Lankhorst 131d0a79a1 gdi32/winex11.drv: Change all gdi/opengl operations to use CDECL calling convention. 2008-12-23 13:02:33 +01:00
Dmitry Timoshkov 1669b337e4 gdi32: Make PATH_AddEntry static. 2008-12-03 09:57:47 +01:00
Huw Davies 29637c1441 gdi32: Keep track of the number of unique fonts that are created and return this in the second DWORD of the GdiRealizationInfo structure. 2008-08-05 14:09:34 +02:00
Alexandre Julliard 93cbb7a5db gdi32: Perform coordinate transformations using doubles instead of floats to avoid precision loss. 2008-05-22 17:43:01 +02:00
Huw Davies 515b40c2de gdi32: Rename DIB_BitmapInfoSize to bitmap_info_size and fix to take into account bit field masks. 2008-05-02 16:07:47 +02:00
Roderick Colenbrander f0307d9366 wgl: Add a wine specific WGL extension which allows you to change the pixel format multiple times. 2008-04-24 12:32:38 +02:00
Hans Leidekker 81e9b43fb2 gdi32: Move GetICMProfile to the driver. 2008-03-05 19:46:03 +01:00
Alexandre Julliard aa500d266f gdi32: Get rid of the 16-bit GetObject functions. 2008-02-18 17:50:35 +01:00
Alexandre Julliard 7fdb61bd7e gdi32: DC_GetDCPtr and DC_ReleaseDCPtr are not longer used. 2008-02-05 21:58:04 +01:00
Hans Leidekker 8487c2dd2a gdi32: Implement GetTextExtentExPointI. 2007-12-03 15:54:05 +01:00
Roderick Colenbrander 8295c547f3 wgl: Add wglCopyContext support. 2007-11-12 14:16:44 +01:00
Alexandre Julliard 9a368cc475 gdi32: Make all internal gdi functions hidden. 2007-11-07 17:50:57 +01:00
Maarten Lankhorst 6b2a6a2bcf gdi32: Fix meaning and use of bidirectionality flags. 2007-10-01 12:24:14 +02:00
Alexandre Julliard af6c0a09c5 gdi32: Move the object refcount handling to the SelectObject backend functions. 2007-09-27 20:57:02 +02:00
Alexandre Julliard a1e31397e1 gdi32: Don't pass an object pointer to the SelectObject backend functions. 2007-09-27 20:14:13 +02:00
Alexandre Julliard 3363d65f16 gdi32: Move the generic part of FontIsLinked() to font.c. 2007-09-26 20:21:34 +02:00
Alexandre Julliard 543270dfb5 gdi32: Don't pass a DC handle to WineEngGetFontUnicodeRanges. 2007-09-26 20:17:13 +02:00
Alexandre Julliard 7480bd3204 gdi32: Don't hold the gdi lock while creating a DC. 2007-09-26 17:39:25 +02:00
Maarten Lankhorst c3cf79d817 gdi: Remove support for libicu and all dependencies. 2007-09-19 14:56:50 +02:00
Mikolaj Zalewski baee27c69c gdi32: Implement AddFontMemResourceEx (based on a patch of Byeong-Sik Jeon). 2007-09-17 14:14:27 +02:00
Alexandre Julliard d88ff791ef gdi32: New DC locking mechanism that doesn't require holding the global GDI lock. 2007-08-31 15:58:38 +02:00
Alexandre Julliard 1476e34645 gdi32: Add separate functions for releasing/freeing DCs to replace the standard GDI ones.
This should make it possible to use a different locking mechanism for DCs.
2007-08-21 21:37:40 +02:00
Evan Stade 96937e04a2 gdi32: Added PATH_PolyDraw. 2007-07-17 14:12:37 +02:00