Commit Graph

292 Commits

Author SHA1 Message Date
Huw Davies 15fabcdefe gdi32: Keep track of the text pixel color. 2011-11-14 15:25:27 +01:00
Alexandre Julliard 26f5e2c6e7 gdi32: Implement the CopyBitmap entry point in the null driver. 2011-11-08 19:25:37 +01:00
Alexandre Julliard 9391c6a757 gdi32: Add a CopyBitmap driver entry point. 2011-11-08 19:25:05 +01:00
Alexandre Julliard 03496d6fba gdi32: Avoid copying the brush pattern if the format matches the DC. 2011-11-08 13:32:36 +01:00
Alexandre Julliard bb162ba4b4 gdi32: Reselect the pattern brush on every use if it's mapped with DIB_PAL_COLORS. 2011-11-08 13:18:01 +01:00
Alexandre Julliard 37b56554a6 gdi32: Add support for pattern brushes in the DIB driver. 2011-11-03 12:50:13 +01:00
Alexandre Julliard 24ac8c66bb gdi32: Pass the full brush contents in the SelectBrush driver entry point. 2011-11-02 21:41:15 +01:00
Alexandre Julliard 6bf6575c5c gdi32: Store a pointer instead of a global handle for DIB pattern brushes. 2011-11-02 12:02:27 +01:00
Alexandre Julliard 95cba0c0f4 gdi32: Add a DC driver entry point for GdiGradientFill. 2011-10-31 23:51:38 +01:00
Alexandre Julliard f1f5f33468 gdi32: Emulate DDB support using the DIB driver when the graphics driver doesn't support bitmaps. 2011-10-31 20:21:15 +01:00
Alexandre Julliard c9bdcbafab gdi32: Allocate the bits for a DDB the first time it's used in any DIB driver call. 2011-10-31 20:06:37 +01:00
Alexandre Julliard a8444d7fd1 gdi32: Add driver entry points for a number of font functions. 2011-10-24 23:45:37 +02:00
Alexandre Julliard 2b1b11d681 gdi32: Rename the EnumDeviceFonts entry point to EnumFonts since it's not limited to device fonts. 2011-10-24 23:34:33 +02:00
Huw Davies f6c7e96a61 gdi32: Implement GetPixel. 2011-10-19 16:59:25 +02:00
Huw Davies 70be58c17d gdi32: Add get_pixel primitives. 2011-10-19 16:59:21 +02:00
Huw Davies 2ac6a1bbf6 gdi32: Implement SetPixel. 2011-10-19 16:58:57 +02:00
Huw Davies ddbaa9491a gdi32: Add pixel_to_colorref primitives. 2011-10-19 16:58:51 +02:00
Huw Davies a3b5f270a8 gdi32: Add support for non-rgb colorrefs. 2011-10-19 16:58:40 +02:00
Huw Davies 0967de74db gdi32: Introduce a unified function to perform COLORREF to pixel color mapping. 2011-10-19 16:58:31 +02:00
Alexandre Julliard 5267c1316b gdi32: Get rid of the DC_FUNCTIONS typedef. 2011-10-17 20:39:54 +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 a3a574fae0 gdi32: Implement a BlendImage entry point in the DIB driver. 2011-10-14 21:32:40 +02:00
Alexandre Julliard a9be526a9c gdi32: Use a reduced precision for RGB to palette mapping in DIB conversions. 2011-10-14 00:47:05 +02:00
Alexandre Julliard e79033e6fa gdi32: Add a helper for RGB to color index mapping to avoid redundant shifts. 2011-10-13 20:03:07 +02:00
Alexandre Julliard a413916802 gdi32: Get rid of the return value in DIB conversion functions, they never fail now. 2011-10-13 20:01:50 +02:00
Alexandre Julliard 587f492fdf gdi32: Add support for arbitrary DIB bitfields for 16-bpp conversions. 2011-10-13 20:01:34 +02:00
Alexandre Julliard b084e52bf6 gdi32: Add support for arbitrary DIB bitfields for 32-bpp conversions. 2011-10-13 20:01:14 +02:00
Alexandre Julliard 8a41d75e29 gdi32: Add a helper function to look up color table entries, and default to 0 for missing entries. 2011-10-12 20:52:46 +02:00
Alexandre Julliard d1d8b4de0b gdi32: Move some common code out of the individual copy_rect functions. 2011-10-12 20:52:46 +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 db6fe9ee9b gdi32: Use the helper to get the bounding rectangle. 2011-10-12 17:10:09 +02:00
Alexandre Julliard 6c07876e87 gdi32: Add an AlphaBlend entry point in the DIB driver. 2011-10-11 15:34:50 +02:00
Marcus Meissner 9437705c2a dibdrv: Mark get_rop_codes as hidden. 2011-10-03 15:50:54 -05:00
Huw Davies 9b7ea6f417 gdi32: Forward StretchBlt calls from the dib driver to the null driver. 2011-09-27 18:46:16 +02:00
Huw Davies 268b8382cd gdi32: Implement stretch_bitmapinfo. 2011-09-27 18:46:04 +02:00
Huw Davies 15c4754e80 gdi32: stretch_bitmapinfo may need to adjust the dst visrect. 2011-09-27 18:15:23 +02:00
Huw Davies c6e483cbd1 gdi32: Make clip_line external. 2011-09-27 18:15:21 +02:00
Alexandre Julliard 7bcd8fa20e gdi32: Copy bits in the correct order for the overlap case in the individual copy_rect functions. 2011-09-22 10:22:56 +02:00
Alexandre Julliard 5fd305c31f gdi32: Add helper functions for copying a DIB line. 2011-09-22 10:18:14 +02:00
Alexandre Julliard 3ace501190 gdi32: Copy DIB rectangles in the correct order when source and destination overlap. 2011-09-22 10:11:27 +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
Huw Davies fcea548464 gdi32: The offsets should be signed. 2011-09-09 17:33:11 +02:00
Huw Davies 5bd003edaa gdi32: When creating a dib_info from a ddb, always make a copy of the colour map. 2011-09-08 11:10:55 +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 f4e9bdb904 gdi32: Always set biClrUsed in internal BITMAPINFO structures. 2011-09-07 12:07:15 +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
Alexandre Julliard 79ef408cd7 gdi32: Add a helper function to initialize DIB info from a bitmap object. 2011-08-29 19:51:24 +02:00
Alexandre Julliard 987a18a55c gdi32: Remove an unused variable. 2011-08-29 12:08:26 +02:00
Huw Davies 75e2e9cf3f gdi32: Add an exception handler to catch bad pointers passed by an application. 2011-08-23 16:53:56 +02:00
Huw Davies 1def8d635a gdi32: Add support for all of the ternary rops. 2011-08-23 16:53:55 +02:00
Huw Davies 95f1abc8d8 gdi32: Add a copy_rect helper function. 2011-08-23 16:53:55 +02:00
Huw Davies ff307d573a gdi32: Move the dib driver's GetImage and PutImage to a new source file. 2011-08-23 16:53:55 +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 c6f6c3f727 gdi32: Implement Polyline and PolyPolyline in the dib driver. 2011-08-22 16:19:24 +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 2e908e067c gdi32: Simplify dibdrv_PutImage a little. 2011-08-22 16:18:24 +02:00
Huw Davies de213f2c66 gdi32: Avoid directly accessing the bits ptr where possible. 2011-08-22 16:18:13 +02:00
Huw Davies bdc3b9c0a9 gdi32: Avoid a possible unnecessary conversion if PutImage is called with zero biClrUsed. 2011-08-22 16:15:45 +02:00
Huw Davies 40742c2f72 gdi32: Fix colour table comparison. 2011-08-22 16:15:13 +02:00
Huw Davies c5f484597f gdi32: Simplify dibdrv_GetImage by merging the stand-alone and selected bitmap cases. 2011-08-05 15:24:58 +02:00
Huw Davies 37423cec7c gdi32: Fix dibdrv_PutImage for the selected bitmap case. 2011-08-05 15:22:48 +02:00
Alexandre Julliard 3a1194edd7 gdi32: Always use BI_BITFIELDS for 16-bpp in GetImage. 2011-08-05 15:22:43 +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 2ba1a43703 gdi32: Use the visrect coordinates in dibdrv_PutImage. 2011-08-03 19:59:46 +02:00
Alexandre Julliard 6d00196aea gdi32: Get rid of the SetBitmapBits driver entry point. 2011-08-03 14:15:47 +02:00
Huw Davies d4076d438c gdi32: Add a PutImage implementation to the dib driver. 2011-08-02 20:47:52 +02:00
Huw Davies 1da138ced0 gdi32: Move the colour setting to a separate function. 2011-08-02 20:47:52 +02:00
Huw Davies 2521bf3cc2 gdi32: Add a copy_rect primitive. 2011-08-02 20:47:52 +02:00
Huw Davies 76b0626ff2 gdi32: Add a function to retrieve the rop codes. 2011-08-02 20:47:51 +02:00
Huw Davies 4b50743f87 gdi32: Simplify the calculation of the rop masks. 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 366174b213 gdi32: Get rid of the GetBitmapBits driver entry point. 2011-07-25 20:32:41 +02:00
Alexandre Julliard dcfe0c48ea gdi32: Implement GetImage in the DIB driver. 2011-07-25 19:51:55 +02:00
Alexandre Julliard 8a906250eb gdi32: Get rid of the SetDIBits driver entry point. 2011-07-25 19:47:03 +02:00
Alexandre Julliard 07528a24b9 gdi32: Add a special case for converting dibs to 1-bpp using the background color. 2011-07-20 11:44:58 +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 b01eb19511 gdi32: Remove the GetDIBits entry point from the graphics driver. 2011-07-18 17:07:51 +02:00
Huw Davies 09a1418449 gdi32: Export a bitmap conversion function. 2011-07-18 16:35:20 +02:00
Huw Davies 9b56cec9c5 gdi32: Zero-pad the end of the scanlines. 2011-07-15 16:36:00 +02:00
Alexandre Julliard cf05fca878 gdi32: Add driver entry points for GetImage and PutImage. 2011-07-14 11:30:58 +02:00
Huw Davies ba33f5e667 gdi32: Add conversion routines for source dibs with an arbitrary order of red and blue 5-bit and green 5 or 6-bit channels. 2011-07-13 15:00:17 +02:00
Huw Davies 4c3cec75f2 gdi32: Add conversion routines for source dibs with an arbitrary order of 8-bit channels. 2011-07-13 15:00:16 +02:00
Huw Davies dddc079d4f gdi32: Implement the conversion between two identical bitfield dibs. 2011-07-13 15:00:14 +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 715d810073 gdi32: Sort the OpenGL driver functions alphabetically. 2011-07-13 14:23:22 +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 1ac1d7c69b gdi32: Pass the dest visible rectangle to the PatBlt driver entry point. 2011-07-11 17:12:49 +02:00
Huw Davies 66399f6f72 gdi32: Add support for hatched brushes. 2011-06-17 15:37:47 +02:00
Huw Davies 0aacdc0d85 gdi32: Add support for 1 bpp brushes. 2011-06-15 20:04:40 +02:00
Huw Davies b0f59c3b11 gdi32: Add support for 1 bpp dibs. 2011-06-15 20:04:40 +02:00
Huw Davies 3582d3dfb4 gdi32: Add helpers to retrieve foreground and background colours. 2011-06-15 20:04:40 +02:00
Huw Davies c5f41f89f3 gdi32: Update pixel colours when the colour table changes. 2011-06-02 16:24:25 +02:00
Huw Davies ea361367ed gdi32: Fix an error in the blue channel of the 32 -> 16 bpp conversion and update the tests to catch this. 2011-06-01 15:17:42 +02:00
Huw Davies 146ad997ba gdi32: Add support for 24 bpp brushes. 2011-06-01 15:17:30 +02:00
Huw Davies dc7ff3a45a gdi32: Add support for 24 bpp dibs. 2011-06-01 15:17:15 +02:00
Huw Davies 79e8eaeaf6 gdi32: Add support for 4 bpp brushes. 2011-05-31 18:32:58 +02:00
Huw Davies e11eeb0122 gdi32: Add support for 4 bpp dibs. 2011-05-31 18:32:57 +02:00
Huw Davies c4576b4a94 gdi32: Add support for 8 bpp brushes. 2011-05-27 17:53:39 +02:00
Huw Davies 30f26b3bca gdi32: Add support for 8 bpp dibs. 2011-05-27 17:53:39 +02:00
Huw Davies a44aa8a954 gdi32: Add support for colour tables. 2011-05-27 17:53:39 +02:00
Huw Davies 0a9eae97d2 gdi32: Add conversion routines to the primitive functions. 2011-05-27 17:53:39 +02:00
Huw Davies 18a96edf69 gdi32: Add support for 16 bpp dibs. 2011-05-27 17:53:38 +02:00
Huw Davies 8c0bc67275 gdi32: Implement PaintRgn(). 2011-05-16 16:35:34 +02:00
Huw Davies cf290ea659 gdi32: Implement Rectangle(). 2011-05-13 17:05:28 +02:00
Huw Davies 74aab5f600 gdi32: Add support for the null pen. 2011-05-13 17:05:28 +02:00
Huw Davies b025a74b40 gdi32: Add support for the null brush. 2011-05-13 17:05:28 +02:00
Huw Davies 8ae156dc31 gdi32: Initialise the pen pattern to an empty pattern for unpatterned pens. 2011-05-13 17:05:27 +02:00
Huw Davies 5b28336c26 gdi32: Add support for DIB pattern brush fills. 2011-05-12 14:29:50 +02:00
Huw Davies 3c70a26e4b gdi32: Implement SelectBrush for DIB pattern brushes. 2011-05-12 14:29:42 +02:00
Huw Davies 5ac51cd24f gdi32: Add helpers to clear and free dib_info structures. 2011-05-12 14:29:34 +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 90b2672e6b gdi32: Add a missing const. 2011-05-11 17:49:21 +02:00
Huw Davies 93349f02ad gdi32: Initialise the bit fields even in the BI_RGB case in order to make format comparisons easier. 2011-05-11 17:49:19 +02:00
Huw Davies 699f1ab0dc gdi32: Add support for drawing diagonal patterned lines. 2011-05-06 14:23:47 +02:00
Huw Davies 72804fca54 gdi32: Add support for drawing vertical patterned lines. 2011-05-06 14:23:47 +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
Huw Davies d3e91603ce gdi32: Now that we have our own Bresenham routine, we don't need the LPARAM cast. 2011-04-28 18:14:02 +02:00
Huw Davies e248615ae7 gdi32: Implement clipping of diagonal lines. 2011-04-27 17:09:20 +02:00
Huw Davies a9675b3509 gdi32: Add a directional bias for the case when the Bresenham error term is zero. 2011-04-20 16:34:15 +02:00
Huw Davies 402f200c87 gdi32: Clip solid brush fills. 2011-04-18 12:40:30 +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 626ab3a9d9 gdi32: Add support for solid diagonal lines. 2011-04-13 16:00:28 +02:00
Huw Davies bb28917bc2 gdi32: Don't use the bitfields for the BI_RGB case and also cope with zero masks. 2011-04-12 17:42:13 +02:00
Huw Davies 91ff144018 gdi32: Implement PatBlt. 2011-04-11 12:23:52 +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 15ef394159 gdi32: Add support for DC pens. 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 f382478377 gdi32: Add a solid_rects primitive. 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