Huw Davies
c429c595e8
gdi32: Explicitly write out the rops for copy_rect_1().
...
Signed-off-by: Huw Davies <huw@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2016-08-25 19:59:07 +09:00
Huw Davies
efd6292fae
gdi32: Split out the various offset cases for copy_rect_1() into separate functions.
...
Signed-off-by: Huw Davies <huw@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2016-08-25 19:59:05 +09:00
Huw Davies
e1ce79ec94
gdi32: Explicitly write out the rops for mask_rect_32().
...
Signed-off-by: Huw Davies <huw@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2016-08-25 19:59:03 +09:00
Huw Davies
4b39c7b944
gdi32: Explicitly write out the rops for copy_rect_32().
...
Signed-off-by: Huw Davies <huw@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2016-08-25 19:59:00 +09:00
Huw Davies
1d0e25e600
gdi32: Move the outer loop into separate functions for each direction.
...
Signed-off-by: Huw Davies <huw@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2016-08-25 19:58:58 +09:00
Huw Davies
a875e3c6ab
gdi32: Unroll the start- and end-of-line loops.
...
Signed-off-by: Huw Davies <huw@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2016-08-25 01:10:21 +09:00
Huw Davies
45b848ccd1
gdi32: Handle the case of a partial source byte separately.
...
Signed-off-by: Huw Davies <huw@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2016-08-25 01:10:21 +09:00
Huw Davies
6c7ed1214c
gdi32: Eliminate a masking operation by generating a larger colour table.
...
This helps significantly for large rectangles.
This is only done for the 32-bpp case as typically the lower bit
depths would more likely be used to draw small icons and the like,
where the extra fixed cost of this optimization will potentially
outweigh the savings.
Signed-off-by: Huw Davies <huw@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2016-08-25 01:10:21 +09:00
Huw Davies
778faedbae
gdi32: Copy 1-bpp pixels one byte at a time.
...
Signed-off-by: Huw Davies <huw@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2016-07-15 19:56:38 +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
Huw Davies
f7b6a7d77a
gdi32: Precompute the destination colours for sources with a colour table.
...
Signed-off-by: Huw Davies <huw@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2016-07-07 21:23:24 +09:00
Alexandre Julliard
336be2f694
gdi32: Use shorter constants for byte and word masks to avoid warnings.
2015-03-04 21:50:35 +09: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
db3a8d6c0c
gdi32: Avoid binary ROPs when shrinking in DELETESCANS mode.
2012-12-03 18:24:46 +01:00
Alexandre Julliard
6f6e919e2b
gdi32: Avoid binary ROPs when stretching in DELETESCANS mode.
2012-12-03 18:24:45 +01:00
Alexandre Julliard
abdce5c2c8
gdi32: Use the faster memset for vertical gradients.
2012-11-30 19:12:17 +01:00
Alexandre Julliard
d10d95608c
gdi32: Make blend_subpixel inline.
2012-11-30 19:12:17 +01:00
Alexandre Julliard
7339308e16
gdi32: Add faster implementation of the pattern_rects primitive when we don't need an AND mask.
2012-11-29 19:40:13 +01:00
Alexandre Julliard
2aff4696b6
gdi32: Add assembly helpers for filling solid rectangles.
2012-11-29 12:31:13 +01:00
Alexandre Julliard
cb7917f9c8
gdi32: Add faster implementations of the solid_rects primitive for the common case of R2_COPYPEN.
2012-11-29 12:17:55 +01:00
Huw Davies
9247328371
gdi32: Implement sub-pixel glyph smoothing.
2012-10-30 18:09:00 +01:00
Alexandre Julliard
6e325afaa7
gdi32: Handle a missing source alpha directly in the blend_rect primitive instead of modifying the source data.
2012-10-10 20:34: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
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
b708b40105
gdi32: Pass a rop_mask_bits object to the pattern_rects primitive.
2012-05-22 21:52:44 +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
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
6c2235cf98
gdi32: Fix some typos in the 4-bpp shrink_row function.
2012-04-23 14:58:12 +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
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
d357392b8b
gdi32: Remove support for private color maps.
2011-12-12 20:02:17 +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
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
04396063c8
gdi32: Add solid_line primitives.
2011-11-21 11:51:47 +01:00
Huw Davies
5c6f630b98
gdi32: Add draw_glyph primitives.
2011-11-14 15:25:28 +01:00
Huw Davies
70be58c17d
gdi32: Add get_pixel primitives.
2011-10-19 16:59:21 +02:00
Huw Davies
ddbaa9491a
gdi32: Add pixel_to_colorref primitives.
2011-10-19 16:58:51 +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