Commit graph

2978 commits

Author SHA1 Message Date
Zebediah Figura 220b0a7c06 win32u: Do not free user memory when deleting dibs created with NtGdiDdDDICreateDCFromMemory().
This fixes a test crash in ddraw:ddraw1 introduced by
7d2a7b94aa.

Signed-off-by: Zebediah Figura <zfigura@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2021-11-22 22:20:51 +01:00
Zebediah Figura c1ed24c86e gdi32/tests: Test whether D3DKMTDestroyDCFromMemory() frees the DC memory.
Signed-off-by: Zebediah Figura <zfigura@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2021-11-22 22:20:50 +01:00
Alexandre Julliard d2e7a977cf gdi32/tests: Use the OS/2 last char for the Ansi charset limit.
Fixes a test failure with the cmmi10.ttf font.

Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2021-11-14 12:29:24 +01:00
Akihiro Sagawa 0d1b8adc9c win32u: Use a real family name as otmpFamilyName for substituted face.
GetTextFace remains to return the original face name, e.g. MS Shell Dlg.

Signed-off-by: Akihiro Sagawa <sagawa.aki@gmail.com>
Signed-off-by: Huw Davies <huw@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2021-11-08 11:42:47 +01:00
Akihiro Sagawa 64c31e63b8 gdi32/tests: Test substituted face family name.
Signed-off-by: Akihiro Sagawa <sagawa.aki@gmail.com>
Signed-off-by: Huw Davies <huw@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2021-11-08 11:42:45 +01:00
Jinoh Kang 9301a9e1f8 gdi32: Calculate effective number of scan lines and truncate bitmap bits for EMR_SETDIBITSTODEVICE.
Signed-off-by: Jinoh Kang <jinoh.kang.kr@gmail.com>
Signed-off-by: Huw Davies <huw@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2021-11-08 10:49:26 +01:00
Jinoh Kang da126e19e3 gdi32: Allow passing BITMAPINFO with bmiHeader.biSizeImage == 0 for EMF DC.
User-facing APIs should accept biSizeImage == 0, and fix it up accordingly.

Wine-Bug: https://bugs.winehq.org/show_bug.cgi?id=51834
Signed-off-by: Jinoh Kang <jinoh.kang.kr@gmail.com>
Signed-off-by: Huw Davies <huw@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2021-11-08 10:49:26 +01:00
Jinoh Kang 03e9b882a2 gdi32: Fix bounding box calculation for EMR_STRETCHDIBITS.
rclBounds should denote a closed interval for each axis.

Signed-off-by: Jinoh Kang <jinoh.kang.kr@gmail.com>
Signed-off-by: Huw Davies <huw@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2021-11-08 10:49:26 +01:00
Jinoh Kang 3f7df2a5f6 gdi32/tests: Add tests for recording SetDIBitsToDevice in EMFs.
Signed-off-by: Jinoh Kang <jinoh.kang.kr@gmail.com>
Signed-off-by: Huw Davies <huw@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2021-11-08 10:49:26 +01:00
Jinoh Kang 53617db97a gdi32/tests: Add tests for recording StretchDIBits in EMFs.
Signed-off-by: Jinoh Kang <jinoh.kang.kr@gmail.com>
Signed-off-by: Huw Davies <huw@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2021-11-08 10:49:26 +01:00
Francisco Casas 379333e3c7 gdi32: Do not sign extend 64-bit gdi handles.
Testing on Windows shows typically handles are not sign extended,
however sometimes they are. It's not clear what triggers the change
in behaviour.

Signed-off-by: Francisco Casas <fcasas@codeweavers.com>
Signed-off-by: Huw Davies <huw@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2021-10-27 22:40:50 +02:00
Francisco Casas d85b700df9 gdi32: Avoid integer overflow in the obj map compare fn.
Signed-off-by: Francisco Casas <fcasas@codeweavers.com>
Signed-off-by: Huw Davies <huw@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2021-10-27 22:40:50 +02:00
Jacek Caban 2cc52c6e45 gdi32: Use DLL forwarding for D3DKMT functions.
Signed-off-by: Jacek Caban <jacek@codeweavers.com>
Signed-off-by: Huw Davies <huw@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2021-10-08 16:54:52 +02:00
Jacek Caban c166e9694e gdi32: Don't export Wine extensions.
Link directly to win32u instead.

Signed-off-by: Jacek Caban <jacek@codeweavers.com>
Signed-off-by: Huw Davies <huw@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2021-10-08 16:54:48 +02:00
Jacek Caban 80df54a407 user32: Link directly to win32u.
Signed-off-by: Jacek Caban <jacek@codeweavers.com>
Signed-off-by: Huw Davies <huw@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2021-10-08 16:54:42 +02:00
Jacek Caban 5a66203ba5 gdi32: Rename gdidc.c to dc.c.
Signed-off-by: Jacek Caban <jacek@codeweavers.com>
Signed-off-by: Huw Davies <huw@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2021-10-08 16:54:36 +02:00
Jacek Caban 08f677cadf win32u: Move ntgdi implementation from gdi32.
Signed-off-by: Jacek Caban <jacek@codeweavers.com>
Signed-off-by: Huw Davies <huw@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2021-10-07 18:03:11 +02:00
Jacek Caban 7757f4ee7e gdi32: Use __wine_ prefix for Wine ntgdi extensions.
Signed-off-by: Jacek Caban <jacek@codeweavers.com>
Signed-off-by: Huw Davies <huw@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2021-10-07 18:03:11 +02:00
Jacek Caban f309721d13 gdi32: Use __wine_unix_call interface for Unix library.
Signed-off-by: Jacek Caban <jacek@codeweavers.com>
Signed-off-by: Huw Davies <huw@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2021-10-07 18:03:11 +02:00
Gabriel Ivăncescu e1948ccc37 gdi32: Create the registry keys recursively, if needed.
Fixes a regression introduced by 1cdc74b2d6
when creating new prefixes, as NtCreateKey does not recursively create keys.

Signed-off-by: Gabriel Ivăncescu <gabrielopcode@gmail.com>
Signed-off-by: Huw Davies <huw@codeweavers.com>
Signed-off-by: Jacek Caban <jacek@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2021-10-05 20:09:18 +02:00
Jacek Caban 763d8aa1cd gdi32: Use local helpers for Unicode conversion in Unix lib.
Based on ntdll.

Signed-off-by: Jacek Caban <jacek@codeweavers.com>
Signed-off-by: Huw Davies <huw@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2021-10-04 16:12:29 +02:00
Jacek Caban 6996627353 gdi32: Avoid using RtlOpenCurrentUser.
Based on open_hkcu_key.

Signed-off-by: Jacek Caban <jacek@codeweavers.com>
Signed-off-by: Huw Davies <huw@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2021-10-04 16:12:18 +02:00
Jacek Caban 002d59cf44 gdi32: Don't use RtlDosPathNameToNtPathName_U in get_unix_file_name.
Paths are already in NT format.

Signed-off-by: Jacek Caban <jacek@codeweavers.com>
Signed-off-by: Huw Davies <huw@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2021-10-04 16:11:59 +02:00
Jacek Caban f79ed7b41f gdi32: Use win32u_wcsicmp instead of RtlCompareUnicodeStrings.
Signed-off-by: Jacek Caban <jacek@codeweavers.com>
Signed-off-by: Huw Davies <huw@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2021-10-04 16:11:42 +02:00
Jacek Caban fb6421f229 gdi32: Use pthread mutex in dib driver.
Signed-off-by: Jacek Caban <jacek@codeweavers.com>
Signed-off-by: Huw Davies <huw@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2021-10-04 16:11:31 +02:00
Jacek Caban ea65f57aca gdi32: Use pthread mutex in font.c.
Signed-off-by: Jacek Caban <jacek@codeweavers.com>
Signed-off-by: Huw Davies <huw@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2021-10-04 16:11:22 +02:00
Jacek Caban 9aa1cd06dd gdi32: Use pthread mutex instead of gdi_section.
Signed-off-by: Jacek Caban <jacek@codeweavers.com>
Signed-off-by: Huw Davies <huw@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2021-10-04 16:11:12 +02:00
Jacek Caban 2e14044691 gdi32: Use pthread mutex in driver.c.
Signed-off-by: Jacek Caban <jacek@codeweavers.com>
Signed-off-by: Huw Davies <huw@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2021-10-04 16:10:45 +02:00
Jacek Caban fc7420de71 gdi32: Use NtAllocateVirtualMemory to allocate GDI_SHARED_MEMORY.
Signed-off-by: Jacek Caban <jacek@codeweavers.com>
Signed-off-by: Huw Davies <huw@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2021-10-01 12:36:10 +02:00
Jacek Caban 01b6ba88d6 gdi32: Use NtAllocateVirtualMemory to alloc DC_ATTR.
Signed-off-by: Jacek Caban <jacek@codeweavers.com>
Signed-off-by: Huw Davies <huw@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2021-10-01 12:36:02 +02:00
Jacek Caban 6ea18f6681 gdi32: Use native memory allocators in Unix library.
Signed-off-by: Jacek Caban <jacek@codeweavers.com>
Signed-off-by: Huw Davies <huw@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2021-10-01 12:35:54 +02:00
Jacek Caban 9c9f229486 gdi32: Use single get_cptable implementation.
Signed-off-by: Jacek Caban <jacek@codeweavers.com>
Signed-off-by: Huw Davies <huw@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2021-09-29 21:38:12 +02:00
Jacek Caban 6857cb5695 gdi32: Move ntgdi functions to Unix library.
Signed-off-by: Jacek Caban <jacek@codeweavers.com>
Signed-off-by: Huw Davies <huw@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2021-09-29 21:38:12 +02:00
Jacek Caban ca7998faff gdi32: Avoid using CRT wide char functions in ntgdi functions.
Signed-off-by: Jacek Caban <jacek@codeweavers.com>
Signed-off-by: Huw Davies <huw@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2021-09-29 21:38:12 +02:00
Jacek Caban cdfcafafa1 gdi32: Introduce user_callbacks.
Signed-off-by: Jacek Caban <jacek@codeweavers.com>
Signed-off-by: Huw Davies <huw@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2021-09-29 21:38:12 +02:00
Jacek Caban 8ebd516f9b gdi32: Don't use WideCharToMultiByte in font.c.
Signed-off-by: Jacek Caban <jacek@codeweavers.com>
Signed-off-by: Huw Davies <huw@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2021-09-29 21:38:12 +02:00
Jacek Caban 09362dbf75 gdi32: Use NtGdiOpenDCW for CreateDCW.
Signed-off-by: Jacek Caban <jacek@codeweavers.com>
Signed-off-by: Huw Davies <huw@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2021-09-29 21:38:12 +02:00
Jacek Caban 6342e9217d gdi32: Remove unused argument from CreateDC driver entry point.
Signed-off-by: Jacek Caban <jacek@codeweavers.com>
Signed-off-by: Huw Davies <huw@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2021-09-29 21:38:12 +02:00
Jacek Caban bdebdbafe9 gdi32: Get codepages and OS version directly from PEB.
Signed-off-by: Jacek Caban <jacek@codeweavers.com>
Signed-off-by: Huw Davies <huw@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2021-09-29 21:38:12 +02:00
Jacek Caban 0758578dac gdi32: Don't use wide string literals ntgdi functions.
Signed-off-by: Jacek Caban <jacek@codeweavers.com>
Signed-off-by: Huw Davies <huw@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2021-09-29 21:38:12 +02:00
Jacek Caban 773c20ffd1 gdi32: Fix NT prefix handling in update_external_font_keys.
Signed-off-by: Jacek Caban <jacek@codeweavers.com>
Signed-off-by: Huw Davies <huw@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2021-09-29 21:38:12 +02:00
Jacek Caban 1e8fa197b5 gdi32: Move __wine_get_wgl_driver to driver.c.
Signed-off-by: Jacek Caban <jacek@codeweavers.com>
Signed-off-by: Huw Davies <huw@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2021-09-27 17:40:15 +02:00
Jacek Caban 8e40e56b79 gdi32: Read screen DPI config in init_font_options.
Signed-off-by: Jacek Caban <jacek@codeweavers.com>
Signed-off-by: Huw Davies <huw@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2021-09-27 17:40:15 +02:00
Jacek Caban b6e494f568 gdi32: Directly use ntdll in load_registry_fonts.
Signed-off-by: Jacek Caban <jacek@codeweavers.com>
Signed-off-by: Huw Davies <huw@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2021-09-27 17:40:15 +02:00
Jacek Caban b544b74880 gdi32: Directly use ntdll in update_external_font_keys.
Signed-off-by: Jacek Caban <jacek@codeweavers.com>
Signed-off-by: Huw Davies <huw@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2021-09-27 17:40:15 +02:00
Jacek Caban e3d7e1f539 gdi32: Directly use ntdll in load_system_bitmap_fonts and load_file_system_fonts.
Signed-off-by: Jacek Caban <jacek@codeweavers.com>
Signed-off-by: Huw Davies <huw@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2021-09-27 17:40:15 +02:00
Jacek Caban 1262b1aeab gdi32: Directly use ntdll in get_associated_charset_info.
Signed-off-by: Jacek Caban <jacek@codeweavers.com>
Signed-off-by: Huw Davies <huw@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2021-09-27 17:40:15 +02:00
Jacek Caban 1cdc74b2d6 gdi32: Directly use ntdll in init_font_options.
Signed-off-by: Jacek Caban <jacek@codeweavers.com>
Signed-off-by: Huw Davies <huw@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2021-09-27 17:40:15 +02:00
Jacek Caban 4dbc6a7468 gdi32: Directly use ntdll in update_codepage.
Signed-off-by: Jacek Caban <jacek@codeweavers.com>
Signed-off-by: Huw Davies <huw@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2021-09-27 17:40:15 +02:00
Jacek Caban 3671eb4434 gdi32: Directly use ntdll in update_font_system_link_info.
Signed-off-by: Jacek Caban <jacek@codeweavers.com>
Signed-off-by: Huw Davies <huw@codeweavers.com>
Signed-off-by: Alexandre Julliard <julliard@winehq.org>
2021-09-27 17:40:14 +02:00