Commit Graph

57 Commits

Author SHA1 Message Date
Alexandre Julliard c54b667e25 gdi32: Add support for DIBINDEX colors in 1-bpp blits.
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2017-03-08 21:29:51 +01:00
Huw Davies cf386b8b64 gdi32: Pass a DC pointer to get_mono_dc_colors().
Signed-off-by: Huw Davies <huw@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2016-07-28 21:38:08 +09:00
Huw Davies 9efe66a83a gdi32: Use lp_to_dp() instead of LPtoDP() in the dib driver.
Signed-off-by: Huw Davies <huw@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2016-07-27 22:21:10 +09:00
Huw Davies 36a0bb0f52 gdi32: Avoid unnecessary calls to get_dc_ptr().
Signed-off-by: Huw Davies <huw@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2016-07-27 22:21:09 +09:00
Huw Davies a8044bebe8 gdi32: Add a mask_rect primitive for use when the src is 1bpp.
This essentially combines the format conversion with a copy_rect.

It cannot be used when stretching, since stretching of 1bpp is
slightly special.  Similarly, it cannot be used if the dst is also
1bpp (hence there is no mask_rect_1) or if the rop involves the brush.

Signed-off-by: Huw Davies <huw@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2016-07-14 17:52:35 +09:00
Nikolay Sivov 1aa53bc470 gdi32: Initialize 'param' field (Coverity).
For consistency with the rest of the code, initialize both
'free' and 'param' fields.

Signed-off-by: Nikolay Sivov <nsivov@codeweavers.com>
Signed-off-by: Huw Davies <huw@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2015-12-22 10:46:35 +01:00
Nikolay Sivov 8a3f3c0817 gdi32/dibdrv: Fix a clipped_rects leak (Valgrind). 2014-04-25 11:05:19 +02:00
Alexandre Julliard 3a4864714d gdi32: Don't copy unnecessary rows when shrinking in DELETESCANS mode. 2012-12-03 18:24:46 +01:00
Alexandre Julliard 36f2b09632 gdi32: Always return the full DIB surface in GetImage and adjust coordinates accordingly.
Based on a patch by Ken Thomases.
2012-10-15 15:25:04 +02:00
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
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 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 664442ab84 gdi32: Don't store the default color table in dib_info objects. 2012-05-23 17:22:17 +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 3ea711dd7c gdi32: Store the bounds rectangle as a pointer in the DIB driver. 2012-04-27 12:49:20 +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 34457aa4c3 gdi32: Add bounds tracking to all the DIB engine entry points. 2012-04-16 17:49:22 +02:00
Alexandre Julliard 6c028b19c5 gdi32: Avoid redundant computation of the gradient bounding rectangle. 2012-04-13 13:41:16 +02: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 4e03247427 gdi32: Define a structure to make the brush state independent from the physdev. 2011-12-30 11:04:33 +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 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 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 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 cae4ef81e6 gdi32: init_dib_info() can no longer fail, and no longer requires freeing. 2011-12-12 20:02:22 +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
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 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 e19a362407 gdi32: Implement rectangular gradients in the DIB engine. 2011-11-29 15:12:20 +01: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 d1d8b4de0b gdi32: Move some common code out of the individual copy_rect functions. 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
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
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 3ace501190 gdi32: Copy DIB rectangles in the correct order when source and destination overlap. 2011-09-22 10:11:27 +02:00
Alexandre Julliard 7696168dce gdi32: Add a placeholder function for DIB stretching. 2011-09-14 11:17:02 +02:00