Commit Graph

399 Commits

Author SHA1 Message Date
Alexandre Julliard 76272e0773 gdi32: Use BI_BITFIELDS to indicate that a 32-bpp DIB doesn't have an alpha channel. 2012-10-10 20:34:08 +02:00
Alexandre Julliard 86cf1126a5 gdi32: Return the full DIB height in GetImage instead of clipping to the visible rect. 2012-10-10 20:34:07 +02:00
Francois Gouget f77605c765 gdi32: Make dibdrv_wgl{Describe,Set}PixelFormat() static. 2012-10-01 11:59:58 +02:00
Alexandre Julliard 05c32b9b89 gdi32: Move the SwapBuffers entry point to the OpenGL driver. 2012-09-10 11:38:28 +02:00
Alexandre Julliard 27b0b88a0b gdi32: Add a graphics driver to render windows contents through the DIB engine. 2012-09-06 12:24:25 +02:00
Dmitry Timoshkov c8d61899db gdi32: Make sure that pattern info is initialized before being used. 2012-08-20 10:52:57 +02:00
Alexandre Julliard 747d1631d5 gdi32: Compute the line parameters using the cropped coordinates to avoid overflows. 2012-07-31 17:59:12 +02:00
Alexandre Julliard 96e80c2623 gdi32: Move DescribePixelFormat and SetPixelFormat to the WGL driver. 2012-07-30 22:12:13 +02:00
Alexandre Julliard 6714f16c74 gdi32: Clip solid pen regions to the DIB rectangle to avoid overflows. 2012-07-30 17:13:36 +02:00
Alexandre Julliard a9151e5da3 gdi32: Limit line drawing coordinates to reasonable values to avoid overflows. 2012-07-30 17:13:36 +02:00
Alexandre Julliard 78d12e7fcc gdi32: Add a helper function to initialize Bresenham parameters for line drawing. 2012-07-30 17:13:35 +02:00
Alexandre Julliard 35eef16ba7 gdi32: Support OpenGL in bitmaps through libOSMesa. 2012-07-27 17:05:16 +02:00
Alexandre Julliard 6a8ded433b gdi32: Remove left-over debug trace. 2012-07-19 20:27:39 +02:00
Alexandre Julliard 7c9d35e575 gdi32: PatBlt needs to bypass the brush for ROPs that don't make use of it. 2012-07-19 15:42:31 +02:00
Alexandre Julliard 6a9dcd51a2 gdi32: Remove the remaining OpenGL entry points from the DC driver. 2012-06-28 18:52:23 +02:00
Alexandre Julliard 7a031d9b92 opengl32: Add the concept of a WGL driver. 2012-06-28 14:37:31 +02:00
Alexandre Julliard ee21554893 gdi32: Remove OpenGL functions that don't use an HDC from the driver entry points. 2012-06-25 16:25:57 +02:00
Alexandre Julliard c07763b419 gdi32: Clip output to both the DIB visible rectangle and the total DIB extents. 2012-06-04 22:23:15 +02:00
Alexandre Julliard 319a87c86e gdi32: Take into account the DIB rectangles when determining overlap for blits. 2012-06-04 22:23:13 +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 af4871f862 gdi32: Make sure the bounds are always updated in ExtTextOutW. 2012-05-30 21:35:22 +02:00
Alexandre Julliard 93758c43fd gdi32: Remove the CreateBitmap and DeleteBitmap driver entry points. 2012-05-29 21:06:41 +02:00
Alexandre Julliard 1416d0e6f1 gdi32: Remove the bitmap parameter from the Get/PutImage entry points. 2012-05-29 21:05:52 +02:00
Alexandre Julliard 7c4c233d12 gdi32: Add a helper function that implements PutImage on a bitmap. 2012-05-29 18:20:12 +02:00
Alexandre Julliard cf85fb14ab gdi32: Add a helper function that implements GetImage on a bitmap. 2012-05-29 18:20:11 +02:00
Alexandre Julliard c2784e08fc gdi32: Improve support of bitmaps without a color table in PutImage. 2012-05-29 18:16:30 +02:00
Alexandre Julliard fdc4682e31 gdi32: Remove the CopyBitmap driver entry point. 2012-05-24 22:09:19 +02:00
Alexandre Julliard a196ad8fc1 gdi32: Always store a copy of the bitmap bits for pattern brushes. 2012-05-24 19:53:23 +02:00
Alexandre Julliard 8a86f6c993 gdi32: Don't use the DC colors when drawing a monochrome pattern to a monochrome DDB. 2012-05-23 20:24:08 +02:00
Alexandre Julliard 139aeba3ef gdi32: Implement dithering of solid brushes when drawing to DDBs. 2012-05-23 20:24:03 +02:00
Alexandre Julliard 664442ab84 gdi32: Don't store the default color table in dib_info objects. 2012-05-23 17:22:17 +02:00
Alexandre Julliard 9968f3083a gdi32: Use the default color table when mapping colors in bitmaps that don't have one. 2012-05-23 17:22:07 +02:00
Alexandre Julliard b8e4cd81ab gdi32: Simplify creation of hatch masks and avoid endianness issues. 2012-05-23 17:22:03 +02:00
Alexandre Julliard 574a07e4c9 gdi32: Add a helper function to allocate the brush bits. 2012-05-22 22:03:18 +02:00
Alexandre Julliard b708b40105 gdi32: Pass a rop_mask_bits object to the pattern_rects primitive. 2012-05-22 21:52:44 +02:00
Alexandre Julliard 524aef660e gdi32: Use a rop_mask_bits object to store the brush bits. 2012-05-22 21:47:30 +02:00
Alexandre Julliard 3c2502a8c7 gdi32: Add support for dithering pattern brushes when painting to monochrome bitmaps. 2012-05-22 17:43:52 +02:00
Francois Gouget fac36c55e9 Assorted typo, spelling, wording and case fixes. 2012-05-15 16:26:43 +02:00
Alexandre Julliard 1392bfce3c gdi32: Pass OpenGL calls through to the display driver from the DIB engine. 2012-05-09 17:37:37 +02:00
Alexandre Julliard 147174ff1c winex11: Implement wglGetPbufferDCARB with a DC escape and remove it from the GDI driver interface. 2012-05-08 14:35:44 +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 6a19d9f252 gdi32: Support drawing to a visible rectangle smaller than the whole bitmap in the DIB engine. 2012-05-01 14:28:39 +02:00
Alexandre Julliard 025b58870e gdi32: Always pass the actual coordinates to the get_pixel_ptr functions. 2012-05-01 11:41:19 +02:00
Jeff Muizelaar 2da2f001cf gdi32: Improve performance of common case of AlphaBlend. 2012-04-30 20:03:28 +02:00
Alexandre Julliard 3ea711dd7c gdi32: Store the bounds rectangle as a pointer in the DIB driver. 2012-04-27 12:49:20 +02:00
Alexandre Julliard 3009e03df7 gdi32: Add a SetBoundsRect driver entry point. 2012-04-27 12:41:43 +02:00
Alexandre Julliard 9674011d75 gdi32: Fix coordinates for row copies in mirrored vertical stretching. 2012-04-24 17:37:53 +02:00
Alexandre Julliard 6c2235cf98 gdi32: Fix some typos in the 4-bpp shrink_row function. 2012-04-23 14:58:12 +02:00
Daniel Lehman 2c5d7d716a gdi32: Don't add_join if points are coincident in wide_line_segments. 2012-04-18 17:15:19 +02:00
Alexandre Julliard 34457aa4c3 gdi32: Add bounds tracking to all the DIB engine entry points. 2012-04-16 17:49:22 +02:00
Alexandre Julliard 582a2f511f gdi32: Add a GetBoundsRect driver entry point. 2012-04-16 13:53:23 +02:00
Alexandre Julliard 6c028b19c5 gdi32: Avoid redundant computation of the gradient bounding rectangle. 2012-04-13 13:41:16 +02:00
Alexandre Julliard ea5fa7ddbe gdi32: Map all the points at once in PolyPolyline, similarly to what PolyPolygon does. 2012-04-13 13:39:06 +02:00
Alexandre Julliard 568afc210e gdi32: Move the pen/brush_region helpers to graphics.c and avoid redundant clipping. 2012-04-13 13:36:23 +02:00
Alexandre Julliard c65de04789 gdi32: Use 64-bit values when computing ellipses to avoid overflows. 2012-02-24 15:55:45 +01:00
Alexandre Julliard 556267bde4 gdi32: Avoid overflows for invalid coordinates in line clipping. 2012-02-22 11:28:33 +01:00
Alexandre Julliard 21498d6c11 gdi32: Paint everything in ExtFloodFill when the DIB doesn't have a clip region. 2012-02-19 20:34:27 +01:00
Huw Davies 3dc4f259e9 gdi32: The clip region should stop the flooding. 2012-01-19 21:08:50 +01:00
Huw Davies d69868e464 gdi32: Implement ExtFloodFill. 2012-01-18 16:27:42 +01:00
Huw Davies ff4045b110 gdi32: Use separate x and y parameters in the get_pixel primitive. 2012-01-18 16:27:39 +01:00
Alexandre Julliard fbbf3ba408 gdi32: Get rid of the CreateDIBSection driver entry point. 2012-01-10 16:13:29 +01:00
Alexandre Julliard 71ea68b657 gdi32: Use the bitmap part of the DIBSECTION structure for the DDB object information. 2012-01-10 16:13:29 +01:00
Alexandre Julliard e896af4065 gdi32: Always store a DIBSECTION structure in the bitmap object. 2012-01-10 16:13:29 +01:00
Huw Davies 7994f2c03b gdi32: Don't create the outline region twice. 2012-01-09 15:23:17 +01:00
Alexandre Julliard 9c112996d0 gdi32: Stop forwarding object selection calls to x11drv. 2012-01-09 12:14:34 +01:00
Alexandre Julliard dc1aeeb2f8 gdi32: Get rid of the SetDIBColorTable driver entry point. 2012-01-07 13:27:08 +01:00
Alexandre Julliard 867be0e3e3 gdi32: Add an empty ExtEscape DIB driver entry point. 2012-01-06 19:24:12 +01:00
Alexandre Julliard 56331e2a9a gdi32: Don't allow Get/SetDeviceGammaRamp on DIBs or memory DCs. 2012-01-06 19:24:12 +01:00
Alexandre Julliard bf718448f3 gdi32: Add a stub for the ExtFloodFill entry point. 2012-01-06 19:24:11 +01:00
Alexandre Julliard ff31a448b3 gdi32: Implement Arc, ArcTo, Chord, and Pie, using line segments for now. 2012-01-06 19:24:02 +01:00
Alexandre Julliard 92d5b41599 gdi32: Add a helper function for computing the device rect for PS_INSIDEFRAME. 2012-01-06 19:22:22 +01:00
Alexandre Julliard 5ff285629e gdi32: Implement Ellipse and RoundRect, using line segments for now. 2012-01-06 19:22:12 +01:00
Alexandre Julliard 3e51dd7515 gdi32: Use a better algorithm for CreateRoundRectRgn. 2012-01-06 12:53:20 +01:00
Alexandre Julliard 94ffc49e02 gdi32: Draw rectangles in the order specified by the current arc direction. 2012-01-05 20:54:07 +01:00
Alexandre Julliard d858041a19 gdi32: Get rid of the pen deferring support, all pen styles are implemented now. 2012-01-04 16:53:17 +01:00
Alexandre Julliard c82d2a034f gdi32: Implement dashed wide lines. 2012-01-04 16:06:21 +01:00
Alexandre Julliard bc5428600b gdi32: Add a helper function for drawing multiple line segments. 2012-01-04 16:06:01 +01:00
Alexandre Julliard a59c53b312 gdi32: Add a helper function for drawing a wide line segment. 2012-01-04 15:50:31 +01:00
Alexandre Julliard 8b1bab524b gdi32: Skip empty segments at the beginning and end of a line to make sure the caps are correct. 2012-01-04 15:10:10 +01:00
Alexandre Julliard 5f2371c229 gdi32: Only create the round cap region once per call. 2012-01-04 15:02:05 +01:00
Alexandre Julliard 618425ac4c gdi32: Fix skipping of zero-length dashes. 2012-01-04 14:57:52 +01:00
Alexandre Julliard 5721cbf0e8 gdi32: Add stubs for the OpenGL entry points in the DIB driver. 2012-01-03 12:37:16 +01:00
Alexandre Julliard 2c9c9f78fb gdi32: Don't bother computing interior regions when the brush is null. 2011-12-30 12:53:35 +01:00
Alexandre Julliard 488bf107a9 gdi32: Implement brushed pens. 2011-12-30 11:04:35 +01:00
Alexandre Julliard 4e03247427 gdi32: Define a structure to make the brush state independent from the physdev. 2011-12-30 11:04:33 +01:00
Alexandre Julliard cc9836bda0 gdi32: Pass a brush_pattern structure to the SelectPen entry point for brushed pens. 2011-12-30 11:04:29 +01:00
Alexandre Julliard f85bb35280 gdi32: Pass a brush_pattern structure to the SelectBrush entry point. 2011-12-30 11:04:26 +01:00
Alexandre Julliard c1c8c92875 gdi32: Add helpers to paint a region with the brush or pen. 2011-12-29 10:10:45 +01:00
Alexandre Julliard 579afe5cc6 gdi32: Implement PolyPolygon in the DIB driver. 2011-12-29 09:57:58 +01:00
Alexandre Julliard f5549ae1d0 gdi32: Use a region to render geometric and wide pens in LineTo. 2011-12-29 09:57:41 +01:00
Alexandre Julliard da8ae11300 gdi32: Use a region to render geometric and wide pens in Rectangle. 2011-12-29 09:53:25 +01:00
Alexandre Julliard 64ed56366c gdi32: Use a region to render geometric and wide pens in PolyPolyline. 2011-12-29 00:02:24 +01:00
Alexandre Julliard 9ee690c984 gdi32: Implement returning a region for 1-pixel wide dashed pen lines. 2011-12-28 23:03:03 +01:00
Alexandre Julliard 3188c30229 gdi32: Implement returning a region for 1-pixel wide solid pen lines. 2011-12-28 23:02:42 +01:00
Alexandre Julliard 0429d9181f gdi32: Add support for updating a region from the pen backend functions instead of painting directly. 2011-12-28 23:02:10 +01:00
Alexandre Julliard f155db574f gdi32: Add support for 1-pixel wide PS_USERSTYLE pens. 2011-12-28 17:42:32 +01:00
Alexandre Julliard 305be80e2f gdi32: Add support for PS_ALTERNATE pens. 2011-12-28 17:42:27 +01:00
Alexandre Julliard e364809a90 gdi32: Add support for 1-pixel wide geometric dashed pens. 2011-12-28 17:42:14 +01:00
Alexandre Julliard 881f635ce9 gdi32: Extended pens are always transparent. 2011-12-28 16:33:31 +01:00
Alexandre Julliard 5f03c6c81b gdi32: Wide cosmetic pens don't support dashes. 2011-12-28 13:53:15 +01:00
Alexandre Julliard ab63eb5c40 gdi32: Fix the scaling of the width of cosmetic pens. 2011-12-28 13:53:12 +01:00
Alexandre Julliard 9b8d920cb7 gdi32: Pass the clip region to the brush_rect helper and add a similar helper for pens. 2011-12-28 11:28:21 +01:00
Alexandre Julliard 18c20964e1 gdi32: Add support for PS_INSIDEFRAME pens when drawing rectangles. 2011-12-28 11:17:41 +01:00
Alexandre Julliard c861284a02 gdi32: Add a helper function to add a rectangle to a region. 2011-12-28 11:04:30 +01:00
Alexandre Julliard 0c840f66ed gdi32: Compute the correct rectangle interior when using wide pens. 2011-12-27 20:53:35 +01:00
Alexandre Julliard a80eafe8d7 gdi32: Re-create the brush bits only when the ROP has really changed. 2011-12-27 16:55:02 +01:00
Alexandre Julliard 8b3271c3b0 gdi32: Avoid making a copy of the device clipping region in the DIB driver. 2011-12-27 15:48:29 +01:00
Alexandre Julliard 56373bc491 gdi32: Use the get_clipped_rects helper in the blitting functions. 2011-12-27 15:41:21 +01:00
Alexandre Julliard d0f110e2a9 gdi32: Use the get_clipped_rects helper in the pen functions. 2011-12-27 15:00:00 +01:00
Alexandre Julliard 63ebfc591e gdi32: Use the get_clipped_rects helper in the text functions. 2011-12-27 14:58:52 +01:00
Alexandre Julliard b761d0e1c6 gdi32: Add a helper function to compute the list of rectangles to paint after clipping. 2011-12-27 14:57:23 +01:00
Alexandre Julliard 73b9c86384 gdi32: Always use proper RGB colors for monochrome DDB pattern brushes. 2011-12-22 21:18:38 +01:00
Alexandre Julliard 8f929ae04d gdi32: Add a common helper for computing pen and brush masks. 2011-12-22 20:10:31 +01:00
Alexandre Julliard 56532d0cf7 gdi32: Recompute the foreground masks on every use to support PALETTEINDEX colors. 2011-12-22 19:50:29 +01:00
Alexandre Julliard e166ec0bb0 gdi32: Recompute the background masks on every use to support PALETTEINDEX colors. 2011-12-22 19:50:07 +01:00
Alexandre Julliard 9237638c0e gdi32: Recompute the pen masks on every use to support PALETTEINDEX colors. 2011-12-22 19:49:23 +01:00
Alexandre Julliard 43373c29ef gdi32: Recompute the brush masks on every use to support PALETTEINDEX colors. 2011-12-22 19:47:40 +01:00
Huw Davies 7c2351566a gdi32: Add support for geometric solid pens. 2011-12-22 17:19:19 +01:00
Alexandre Julliard 7f3a7ae585 gdi32: Fix handling of COLORREFs with illegal values for the high byte. 2011-12-22 17:19:13 +01:00
Alexandre Julliard a585659e31 gdi32: Remove support for deferring brush calls to X11, all brush types are supported now. 2011-12-19 20:15:42 +01:00
Alexandre Julliard 9f410413a6 gdi32: Implement GetPixel in the null driver using GetImage. 2011-12-13 14:00:05 +01:00
Alexandre Julliard 0c194895a2 gdi32: Remove some color table size checks, we use full-size color tables now. 2011-12-12 20:52:59 +01:00
Alexandre Julliard 49ae736022 gdi32: Implement GetNearestColor in the DIB driver. 2011-12-12 20:20:06 +01:00
Alexandre Julliard cae4ef81e6 gdi32: init_dib_info() can no longer fail, and no longer requires freeing. 2011-12-12 20:02:22 +01:00
Alexandre Julliard d357392b8b gdi32: Remove support for private color maps. 2011-12-12 20:02:17 +01:00
Alexandre Julliard 65a2c885f1 gdi32: Don't create a default color table for pattern brushes, use the DC colors instead. 2011-12-12 15:50:37 +01:00
Alexandre Julliard d5fe87e2e8 gdi32: Select the pattern brush only when first used. 2011-12-12 15:50:37 +01:00
Alexandre Julliard d353c95d47 gdi32: Add a flag to request a default color table from init_dib_info. 2011-12-12 15:50:33 +01:00
Alexandre Julliard 25e2fae2a8 gdi32: Always use biClrUsed for the number of colors of internal BITMAPINFO structures. 2011-12-10 13:35:42 +01:00
Huw Davies e155a8054b gdi32: Add support for wide cosmetic pens. 2011-12-09 21:15:30 +01:00
Alexandre Julliard 494bfa866a gdi32: Remove the nb_colors fields in the bitmap object, we always allocate a full size color table. 2011-12-09 21:15:22 +01:00
Alexandre Julliard c441ebc21d gdi32: Fix handling of DIB_PAL_COLORS in the various DIB functions. 2011-12-09 21:15:22 +01:00
Alexandre Julliard 91d19b4b17 gdi32: Add a helper to build a color table from the DIB_PAL_COLORS bitmap info. 2011-12-08 21:31:59 +01:00
Alexandre Julliard 71199eab77 gdi32: Don't make a copy of the DIB color table when selecting it into a DC. 2011-12-08 20:00:55 +01:00
Francois Gouget 22cb047ed4 gdi32: Make init_dib_info() static. 2011-12-06 17:53:15 +01:00
Alexandre Julliard 7534d47b1b gdi32: Pass the total visible region in the SetDeviceClipping driver entry point. 2011-12-06 15:51:00 +01:00
Alexandre Julliard 360d4bc548 gdi32: Use the DIB engine and PutImage for the null driver triangular gradient implementation. 2011-12-05 17:19:32 +01:00
Alexandre Julliard 7ea59c107f gdi32: Use dithering also for 1-bpp gradients. 2011-12-05 16:36:08 +01:00
Alexandre Julliard 743b37df3d gdi32: Implement triangular gradients in the DIB engine. 2011-12-05 16:36:03 +01:00
Alexandre Julliard 4c6807199e gdi32: Use the DIB engine and PutImage for the null driver rectangular gradient implementation. 2011-11-30 12:59:11 +01:00
Alexandre Julliard a135e47167 gdi32: Don't set gradient alpha channel for 8888 bitmaps created with bitfields. 2011-11-29 15:12:28 +01:00
Alexandre Julliard a869fc47bd gdi32: Implement 8-bpp and 4-bpp gradient dithering. 2011-11-29 15:12:26 +01:00
Alexandre Julliard ce2f542267 gdi32: Implement 16-bpp gradient dithering. 2011-11-29 15:12:23 +01:00
Alexandre Julliard e19a362407 gdi32: Implement rectangular gradients in the DIB engine. 2011-11-29 15:12:20 +01:00
Huw Davies 0ab46cd5e9 gdi32: Avoid reading past the end of the indices array.
Spotted by Marcus Meissner.
2011-11-24 17:17:07 +01:00
Huw Davies 224e51fcf5 gdi32: Add an option to allow pen_lines to draw a closed figure. 2011-11-24 17:17:04 +01:00
Alexandre Julliard 670f25cc8f gdi32: Add support for anti-aliasing in the null driver text output fallback. 2011-11-21 12:15:53 +01:00
Alexandre Julliard 1b63d5a610 gdi32: Add a helper function to determine anti-aliasing flags. 2011-11-21 11:52:30 +01:00
Huw Davies 04396063c8 gdi32: Add solid_line primitives. 2011-11-21 11:51:47 +01:00
Huw Davies f168f838f1 gdi32: Simplify the Bresenham line drawing. 2011-11-21 11:51:23 +01:00