Zhiyi Zhang
04b4d0f380
gdi32: Partially implement HALFTONE stretch mode.
...
COLORONCOLOR(STRETCH_DELETESCANS) was used in place of HALFTONE. COLORONCOLOR mode may delete rows
of pixels without trying to preserve information so it will cause Wine to render poorly when the
destination rectangle is small.
According to tests, HALFTONE mode uses box filter when doing integer downscaling and nearest
neighbor interpolation when doing upscaling in both horizontally and vertically. In other cases,
HALFTONE mode uses a lanczos3 like algorithm to interpolate pixels. There are also other heuristics
involved. For example, shrinking a 2x2 image to 1x1 may not use box filter depending on image data.
Since this algorithm is undocumented, it's difficult to reverse engineer the original algorithm and
produce identical results. Instead, this patch uses a naive implementation of bilinear interpolation
to implement HALFTONE mode and it produces good quality images.
For 8-bit and lower color depth images, nulldrv_StretchBlt should resize the images first and then
converts color depth.
Wine-Bug: https://bugs.winehq.org/show_bug.cgi?id=46375
Signed-off-by: Zhiyi Zhang <zzhang@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2021-06-15 20:43:55 +02:00
Zebediah Figura
beb70a79e1
user32: Implement stretching of cursor and icon objects in CopyImage().
...
Signed-off-by: Zebediah Figura <z.figura12@gmail.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2021-05-24 11:42:37 +02:00
Zebediah Figura
db2b266c57
user32: Handle monochrome icons in CreateIcon() and CreateCursor() instead of CreateIconIndirect().
...
Signed-off-by: Zebediah Figura <z.figura12@gmail.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2021-05-24 11:42:37 +02:00
Mathew Hodson
a8dee2a23f
user32/tests: Don't report cursor handle since it always changes.
...
Signed-off-by: Mathew Hodson <mathew.hodson@gmail.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2020-04-06 21:21:42 +02:00
Francois Gouget
a909baeb4e
tests: Report all errors when failing to wait for a child process.
...
Report the line number where the test failed to wait for the child so
one can identify which child process did not behave as expected.
Also wait_child_process() is meant for the general case so report
all non-crash error cases as test failures so they are accounted for.
Omit the "winetest_" prefix to match the other Wine test functions and
so the underlying winetest_wait_child_process() function can be wrapped
with the usual line-capturing macros.
Wine-Bug: https://bugs.winehq.org/show_bug.cgi?id=48651
Signed-off-by: Francois Gouget <fgouget@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2020-03-17 10:51:44 +01:00
Rémi Bernon
b636f9cd5e
user32/tests: Fix some format-overflow warnings.
...
Signed-off-by: Rémi Bernon <rbernon@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2020-02-12 16:54:03 +01:00
Paul Gofman
ade89071f0
user32/tests: Handle results on Win10 in test_Image_StretchMode().
...
Signed-off-by: Paul Gofman <gofmanp@gmail.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2020-01-07 22:26:08 +01:00
Paul Gofman
bfe1ea26dd
user32: Select more appropriate stretch mode for colored images interpolation.
...
Wine-Bug: https://bugs.winehq.org/show_bug.cgi?id=46375
Signed-off-by: Paul Gofman <gofmanp@gmail.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2019-02-05 17:29:57 +01:00
Paul Gofman
fd68a9833e
user32/tests: Add tests for stretch mode in LoadImage().
...
Signed-off-by: Paul Gofman <gofmanp@gmail.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2019-01-09 09:58:16 -06:00
Paul Gofman
9cd885f441
user32/tests: Factor out compare_bitmap_bits() function.
...
Signed-off-by: Paul Gofman <gofmanp@gmail.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2019-01-09 09:58:16 -06:00
Paul Gofman
75165d0da5
user32/tests: Add test for 16 bit image stretch mode in CopyImage().
...
Signed-off-by: Paul Gofman <gofmanp@gmail.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2019-01-09 09:58:16 -06:00
Paul Gofman
5c8444093a
user32/tests: Add test for 8 bit image stretch mode in CopyImage().
...
Signed-off-by: Paul Gofman <gofmanp@gmail.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2019-01-09 09:58:16 -06:00
Paul Gofman
1bf418f0ff
user32/tests: Add some tests for implicit stretch mode in CopyImage().
...
The values of the colored test result suggest that halftone filter is
used for shrinking: each pixel of output 2x2 image has the color value
averaged over 4 pixels from input 4x4 image.
Signed-off-by: Paul Gofman <gofmanp@gmail.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2018-12-31 10:30:30 +01:00
Francois Gouget
1d52a6e1b6
user32/tests: Make test_LoadImage_working_directory_run() static.
...
Signed-off-by: Francois Gouget <fgouget@free.fr>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2018-12-10 10:05:51 +01:00
Fabian Maurer
400dd1596a
user32: LoadImage should not only search in the working directory.
...
Wine-Bug: https://bugs.winehq.org/show_bug.cgi?id=46186
Signed-off-by: Fabian Maurer <dark.shadow4@web.de>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2018-11-30 20:39:03 +01:00
Michael Stefaniuc
1694ab087a
user32/tests: Use the available ARRAY_SIZE() macro.
...
Signed-off-by: Michael Stefaniuc <mstefani@winehq.org>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2018-06-28 18:27:20 +02:00
Michael Stefaniuc
e186f3ec26
user32/tests: Don't undefine ARRAY_SIZE().
...
Signed-off-by: Michael Stefaniuc <mstefani@winehq.org>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2018-06-27 22:03:36 +02:00
Michael Stefaniuc
7b5668a6e7
include: Make ARRAY_SIZE() available in wine/test.h.
...
Signed-off-by: Michael Stefaniuc <mstefani@winehq.org>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2018-05-25 12:09:17 +02:00
Bernhard Übelacker
9256017adf
user32: Validate DIB offset in CURSORICON_GetFileEntry.
...
Signed-off-by: Bernhard Übelacker <bernhardu@mailbox.org>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2018-01-30 10:41:56 +01:00
Nikolay Sivov
0a953f117a
user32/tests: Release window DCs consistently.
...
Signed-off-by: Nikolay Sivov <nsivov@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2017-12-14 09:58:30 +01:00
Huw Davies
b981d18a55
user32/tests: BITMAPCOREINFO icons are no longer supported on Win 8.
...
Signed-off-by: Huw Davies <huw@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2016-09-19 23:14:14 +09:00
Huw Davies
512c8f9444
user32/tests: Add space for the mask data to prevent failures on Win 8 and 10.
...
Signed-off-by: Huw Davies <huw@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2016-09-16 23:25:02 +09:00
Nikolay Sivov
59ee884bdf
user32/tests: Fix a leak when creating test icons (Valgrind).
...
Signed-off-by: Nikolay Sivov <nsivov@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2016-06-01 00:21:49 +09:00
Jacek Caban
912d7474c0
user32/tests: Added PrivateExtractIcons test.
...
Signed-off-by: Jacek Caban <jacek@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2016-05-02 18:33:49 +09:00
Jacek Caban
5aaa8e25ad
user32/tests: Moved creating .ico file into a helper function.
...
Signed-off-by: Jacek Caban <jacek@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2016-05-02 18:33:14 +09:00
Mark Jansen
e1f1a60f87
user32: Correctly determine bit count for BITMAPCOREINFO in is_dib_monochrome.
...
Signed-off-by: Mark Jansen <learn0more@gmail.com>
Signed-off-by: Thomas Faber <thomas.faber@reactos.org>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2016-03-28 18:41:00 +09:00
Thomas Faber
6ad5cfbebd
user32: Handle BITMAPCOREINFO when loading icons.
...
Signed-off-by: Thomas Faber <thomas.faber@reactos.org>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2016-03-28 18:40:59 +09:00
Thomas Faber
6e4b649862
user32/tests: Test loading monochrome icons.
...
Signed-off-by: Thomas Faber <thomas.faber@reactos.org>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2016-03-28 18:40:59 +09:00
Piotr Caban
888ffb1134
user32: Test GetIconInfo on other process cursor.
2015-07-30 23:48:39 +02:00
Bruno Jesus
d90d2ab558
user32/tests: Fix a memory leak (valgrind).
2014-06-11 16:09:42 +02:00
Frédéric Delanoy
b242d9cee3
user32/tests: Constify some arrays.
2014-05-12 10:48:33 +02:00
Frédéric Delanoy
bb2be17327
user32/tests: Use BOOL type where appropriate.
2013-11-05 11:16:00 +01:00
Dmitry Timoshkov
7603700169
user32/tests: Fix cursor and icon tests compilation with __WINESRC__ defined.
2013-10-23 17:01:46 +02:00
Alexandre Julliard
8ab65c222e
user32: Draw the mask with SRCCOPY in DrawIcon when the image isn't being drawn.
2012-02-08 11:00:51 -06:00
Alexandre Julliard
3bbb208f8e
user32/tests: Add tests for small sizes of cursor bitmaps.
2011-11-16 18:08:12 +01:00
Francois Gouget
3de330db54
tests: Remove unneeded assert.h includes.
2011-09-27 10:59:56 +02:00
Alexandre Julliard
8d50342858
user32/tests: Allow an approximate color match for the cursor contents.
2011-09-08 23:52:02 +02:00
Thomas Faber
37f12af5c8
user32/tests: Fix build with MSVC.
2011-08-24 12:14:47 +02:00
Frédéric Delanoy
760faf01a9
tests: Assorted spelling fixes.
2011-08-04 18:27:37 +02:00
Alexandre Julliard
e705f29fd5
user32/tests: Fix the GetCursorFrameInfo parameter types.
2011-03-17 13:06:50 +01:00
Erich Hoover
274e5db7e7
user32: Add support for sequence-based animated cursors.
2011-03-17 13:06:49 +01:00
Erich Hoover
28e9b99728
user32: Add support for retrieving individual animated frames.
2011-03-17 13:06:49 +01:00
Francois Gouget
4f7fc170a7
user32/tests: Use NULL instead of casting 0.
2011-03-16 14:14:23 +01:00
Austin Lund
5d0783bc0d
user32/tests: Output error information in cursoricon tests.
2011-03-16 14:14:23 +01:00
Erich Hoover
3e35caa7b2
user32: Add preliminary support for reading and storing multi-rate animated cursor data.
2011-03-10 15:24:34 +01:00
Erich Hoover
86a9f20aa2
user32: Fix GetCursorFrameInfo when passed the proper number of steps.
2011-03-10 15:23:34 +01:00
Erich Hoover
e776f3ccf7
user32: Implement semi-stub of GetCursorFrameInfo.
2011-03-07 15:10:22 +01:00
Erich Hoover
7b0ab606e2
user32: Permit loading animated cursors with CreateIconFromResource(Ex).
2011-03-07 15:10:01 +01:00
Wolfram Sang
ce5763b88c
user32: Make DIB_GetBitmapInfo checks stricter.
2011-02-28 13:15:01 +01:00
Wolfram Sang
25923d2f16
user32/tests: Modify proper fields instead of magic offsets.
2011-02-28 13:14:55 +01:00