Commit graph

164384 commits

Author SHA1 Message Date
Zebediah Figura
4925b34c90 qcap/audiorecord: Implement DecideBufferSize(). 2023-05-19 09:05:30 -05:00
Mohamad Al-Jaf
9c60c34c94 msmpeg2vdec: Add DllGetClassObject() stub.
Wine-Bug: https://bugs.winehq.org/show_bug.cgi?id=54955
2023-05-19 08:50:46 -05:00
Rémi Bernon
65d0f7a756 imm32: Remove now unused members from ime_private.
And move its definition to ime.c.
2023-05-19 08:49:09 -05:00
Rémi Bernon
d61a786461 imm32: Get rid of the graphics driver loading mechanism. 2023-05-19 08:49:09 -05:00
Rémi Bernon
f7d4eec459 winex11: Use the default IME implementation for ImeSelect. 2023-05-19 08:49:08 -05:00
Rémi Bernon
cbf719d72d winex11: Remove now unnecessary selected HIMC tracking code. 2023-05-19 08:49:08 -05:00
Rémi Bernon
9f05a79bd6 winex11: Drop the x11drv_ime_update_association user callback. 2023-05-19 08:49:08 -05:00
Piotr Caban
55b9b2f675 gdi32: Mark objects as not used before clearing handles table in emf_reset.
Wine-Bug: https://bugs.winehq.org/show_bug.cgi?id=54936
2023-05-19 08:34:46 -05:00
Piotr Caban
410b0f4d51 wineps: Don't store ImageableArea in print_ctx. 2023-05-19 08:34:35 -05:00
Piotr Caban
cdb57c524c wineps: Don't store logPixels in print_ctx. 2023-05-19 08:34:35 -05:00
Piotr Caban
3fca78fbe4 wineps: Remove unused fields from print_ctx. 2023-05-19 08:34:35 -05:00
Piotr Caban
e70aa825cf wineps: Simplify PSDRV_UVMetrics implementation. 2023-05-19 08:34:35 -05:00
Piotr Caban
1cccaa1e8a wineps: Mark default DEVMODE const. 2023-05-19 08:34:35 -05:00
Piotr Caban
97cde730c0 wineps: Remove unix_ prefix from find_pagesize and find_slot functions. 2023-05-19 08:34:35 -05:00
Piotr Caban
36a9bc820a wineps: Define PSDRV_DEVMODE in unixlib.h. 2023-05-19 08:34:35 -05:00
Piotr Caban
f848b9f846 wineps: Move BANDINFOSTRUCT definition to unixlib.c. 2023-05-19 08:34:33 -05:00
Sebastian Mayr
7a2b34c324 wined3d: Improve d3d8 compatibility of texture filters.
In d3d8, setting texture filters to invalid values does not yield an
error when calling IDirect3DDevice8::ValidateDevice. Some applications,
such as Worms Blast, rely on this behaviour.

Wine-Bug: https://bugs.winehq.org/show_bug.cgi?id=54898
2023-05-18 15:40:17 -05:00
Sebastian Mayr
38f3f83943 d3d8/tests: Test IDirect3DDevice8::ValidateDevice() with various min, mag and mip filters.
This test is an adaptation of the corresponding d3d9 test.

Wine-Bug: https://bugs.winehq.org/show_bug.cgi?id=54898
2023-05-18 15:40:14 -05:00
Brendan Shanks
a4f19d1879 winemac: Add missing event to dbgstr_event(). 2023-05-18 15:17:18 -05:00
Piotr Caban
3d9d52dbfc localspl: Fix wow64_start_doc Wow64 entry point. 2023-05-18 13:49:11 -05:00
Bartosz Kosiorek
9749caf78e gdiplus: Improve performance of gdip_transform_points.
Wine-Bug: https://bugs.winehq.org/show_bug.cgi?id=53947
2023-05-18 13:48:07 -05:00
Paul Gofman
901c8b90a1 ntdll: Handle context overlap in call_user_exception_dispatcher() on x64. 2023-05-18 09:15:21 -05:00
Nikolay Sivov
a79d27c04a mfmediaengine: Implement GetNumberOfStreams().
Signed-off-by: Nikolay Sivov <nsivov@codeweavers.com>
2023-05-18 09:14:32 -05:00
Rémi Bernon
b9bfd74acc winex11: Generate IME messages using WM_IME_NOTIFY instead of callbacks. 2023-05-18 09:14:15 -05:00
Rémi Bernon
c28f571a55 winex11: Include the XIM preedit and result text into the IME updates. 2023-05-18 09:09:14 -05:00
Rémi Bernon
9b4c09d8c4 winex11: Post internal WM_IME_NOTIFY wparam on composition updates. 2023-05-18 09:09:14 -05:00
Rémi Bernon
ecd8c9310f winex11: Set or clear XIC focus using a xim_set_focus helper. 2023-05-18 09:09:14 -05:00
Rémi Bernon
4e92c57221 winex11: Send an internal WM_IME_NOTIFY wparam to set open status. 2023-05-18 09:09:14 -05:00
Rémi Bernon
5d0526d298 winex11: Keep track of the cursor position on the XIM side.
The caret callback is rarely used and XIM also doesn't support changing
the preedit string, so we cannot support composition string updates from
the PE side either. Requesting only the cursor position, is then likely
not useful.
2023-05-18 09:09:14 -05:00
Rémi Bernon
e70b1b722a winex11: Use ime_comp_buf != NULL instead of ximInComposeMode. 2023-05-18 09:09:14 -05:00
Eric Pouech
2d4742aa93 kernel32/tests: Harden some wow64 module tests.
Showing some cases where loader should unredirect some
module paths from syswow64 to system32.

Signed-off-by: Eric Pouech <epouech@codeweavers.com>
2023-05-18 09:09:14 -05:00
Esme Povirk
629d2d09a0 mscoree: Search the Mono GAC before the appdomain paths. 2023-05-18 09:09:14 -05:00
Esme Povirk
ddc9ef10c9 mscoree: Use updated preload hook function. 2023-05-18 09:09:14 -05:00
Esme Povirk
0a3fe99d2b mscoree: Update Wine Mono to 8.0.0. 2023-05-18 05:30:36 -05:00
Bernhard Kölbl
7056f421a0 mf: Don't try to clone non existent topo connections.
Signed-off-by: Bernhard Kölbl <besentv@gmail.com>
2023-05-18 05:29:57 -05:00
Anton Baskanov
79ce998e79 ir50_32: Let video_decoder flip the video instead of doing it manually.
Fixes upside-down videos in multiple games (e.g. Hard Truck 2, Firestarter).
2023-05-18 05:29:32 -05:00
Anton Baskanov
c73e8b8551 winegstreamer: Don't force top-down orientation when changing output format in video_decoder. 2023-05-18 05:29:32 -05:00
Anton Baskanov
dd20b89571 winegstreamer: Add a second videoconvert before the videoflip.
videoflip can't handle 15/16-bit RGB. Fixes video playback in multiple games (e.g. Hard Truck 2, Firestarter).
2023-05-18 05:29:30 -05:00
Bartosz Kosiorek
9a94647656 gdiplus: Improve performance of GdipInvertMatrix.
Wine-Bug: https://bugs.winehq.org/show_bug.cgi?id=53947
2023-05-18 05:29:12 -05:00
Jinoh Kang
e308b19ac8 combase: Prevent use-after-free due to a race with proxy_manager_destroy.
Today, find_proxy_manager() may return a proxy manager that is about to
be freed.  This happens when the proxy manager's reference count reaches
zero, but proxy_manager_destroy() has not removed the proxy manager from
the apartment proxy list.

Fix this by incrementing the reference count only if it is already
nonzero.  If the reference count is zero, any reference to the proxy
manager will become invalid after the current thread leaves the critical
section (apt->cs).  This is because proxy_manager_destroy() will proceed
to destroy the proxy manager after the apartment lock (apt->cs) is
released.

An alternative solution would be to prevent find_proxy_manager from
observing the zero reference count in the first place.  Multiple
approaches have been considered for implementing this solution, but were
eventually dropped due to several disadvantages when applied to the
current Wine codebase:

1. Always acquire the apartment lock from the proxy manager's Release()
   method, and hold the lock until the proxy manager is completely
   removed from the list if the reference count drops to zero.

   This requires handling the special case when the proxy manager's
   parent apartment has been destroyed.  When an apartment is destroyed,
   it sets the `parent` field of each proxy manager that was previously
   owned by the apartment to NULL.  This means that each access to
   `This->parent->cs` has to be guarded by a NULL check for
   `This->parent`.

   Even if `parent` were never NULL, unconditionally acquiring a lock
   may unnecessarily block the subroutine and introduce contention.

2. Opportunistically decrement the reference count without holding the
   lock, but only if the count is greater than 1.  This approach is
   still not free from the NULL parent apartment problem.

3. Check for any concurrent reference count change from
   proxy_manager_destroy(), and bail out if such change has occurred.
   This makes it possible for the proxy manager's AddRef() method to
   return 1, which is unusual.
2023-05-18 05:27:44 -05:00
Jinoh Kang
f55f0b8342 combase: Compare AddRef() return value against 1 instead of 0 in find_proxy_manager.
Today, find_proxy_manager() tests if AddRef() returns 0 in an attempt to
protect against a race condition bug.

Note that AddRef does not return zero in normal circumstances, since
AddRef returns the reference count after the increment, not before.

Fix this by comparing the return value of AddRef() against 1, not 0.
2023-05-18 05:27:41 -05:00
Francois Gouget
b97090214b gdi32/tests: Use skip() for APIs which are stubs in some drivers. 2023-05-17 08:06:13 -05:00
Francois Gouget
2cb4fa04cf wineps: Fix the spelling of a constant. 2023-05-17 07:27:14 -05:00
Nikolay Sivov
c627c168c2 wineps: Fix names in paper sizes list.
This is likely a regression from cd4f48f229.

Signed-off-by: Nikolay Sivov <nsivov@codeweavers.com>
2023-05-17 07:27:05 -05:00
Piotr Caban
9fd82b6156 winspool: Register wineps print processor before adding printer. 2023-05-17 07:19:16 -05:00
Piotr Caban
9f578f6a30 wineps: Use default devmode if winspool returns fake data.
Fixes regression caused by aa3699dd59.
2023-05-17 07:19:14 -05:00
Piotr Caban
407b01c4c3 wineps: Implement Wow64 entry points in the Unix library. 2023-05-17 07:19:14 -05:00
Piotr Caban
ec6062c572 wineps: Introduce wine_driver_open_dc wine specific export used to create printer DC.
Doing it this way avoids passing Unix library pointers throught PE.
2023-05-17 07:19:09 -05:00
Hans Leidekker
a894528071 webservices: Handle WS_XML_BUFFER_TYPE in get_field_read_option(). 2023-05-17 07:14:49 -05:00
Nikolay Sivov
c9b68daf44 d2d1: Implement IsSupported() for HWND target.
Signed-off-by: Nikolay Sivov <nsivov@codeweavers.com>
2023-05-17 07:13:21 -05:00