Commit graph

165071 commits

Author SHA1 Message Date
Alistair Leslie-Hughes b1a69eab12 dmsynth: Remove DECLSPEC_HIDDEN usage. 2023-06-29 21:34:48 +02:00
Rémi Bernon a0cd5e053b win32u: Update the display cache when virtual desktop mode changes.
We update the cache in NtUserCreateDesktopEx, as it may change existing
thread desktop flags, but we need to do it as well when a new desktop is
created while still detached, then attached to a thread through
NtUserSetThreadDesktop.

Wine-Bug: https://bugs.winehq.org/show_bug.cgi?id=55146
2023-06-29 21:28:38 +02:00
Evan Tang 05b2175595 winemac.drv: Fix compile on macOS 10.14.
Fixes: 731f06d97f
2023-06-29 21:06:49 +02:00
Alexandre Julliard 9bdd08579e ntdll/tests: Add some tests for NtQueryVirtualMemory(MemoryImageInformation). 2023-06-29 21:06:49 +02:00
Alex Henrie 3d383c468b regedit: Fix memory leak on error path in RenameKey (scan-build).
parentPath is allocated before parentKey.
2023-06-29 13:57:39 +02:00
Georg Lehmann 267ee07ded winevulkan: Keep deferred operation function params alive.
The Vulkan spec says:
Parameters to the command requesting a deferred operation may be accessed by the implementation at any time until the deferred operation enters the
complete state. Pointer parameters must not be modified (e.g. reallocated/freed).

This fixes a regression in Doom Eternal with ray tracing enabled with drivers
that actually support deferred operations (e.g. nvidia, amdvlk).
2023-06-29 13:57:04 +02:00
Alexandros Frantzis fc8570a1a6 winewayland.drv: Do not commit buffers to unconfigured surfaces.
The xdg-shell protocol disallows buffer commits to a wl_surface with an
xdg_surface based role before we ack the first configure event. Failing
to adhere to this requirement will get our client disconnected by the
compositor with a protocol error.
2023-06-29 13:57:04 +02:00
Alexandros Frantzis 6b0a84c8d9 winewayland.drv: Implement a simple window_surface flush.
Flush a window_surface to a Wayland surface by creating a wl_shm buffer
matching the window size, copying the whole window contents to that
buffer and attaching it to the corresponding Wayland surface.
2023-06-29 13:57:04 +02:00
Alexandros Frantzis d53cb7206d winewayland.drv: Introduce window_surface for Wayland. 2023-06-29 13:57:04 +02:00
Alexandros Frantzis a7ec328fa8 winewayland.drv: Ensure Wayland surface handlers don't access invalid data.
In our setup with a dedicated event dispatch thread, libwayland ensures
that object proxies associated with an event handler remain valid (or
NULL) while the handler is executing. However, no such guarantees are
given for the proxy user data. It is thus possible for the user data to
become invalid (e.g., its memory freed from a different thread) right
after the event handler is entered.

This is an issue for wayland_surface associated proxies since they may
receive unsolicited events from the compositor at any time (e.g.,
xdg_surface.configure), even while we are destroying the
wayland_surface.

To avoid the problem, we introduce a lock that protects access
to xdg_surface user data and ensures that the associated wayland_surface
remains valid for the duration of the handler.

Co-authored-by: Rémi Bernon <rbernon@codeweavers.com>
2023-06-29 13:57:04 +02:00
Alexandros Frantzis 285c47d15d winewayland.drv: Basic Wayland toplevel surface support.
Use the xdg-shell Wayland protocol to create Wayland xdg_surface
xdg_toplevel surfaces for non-child windows.
2023-06-29 13:57:04 +02:00
Alexandros Frantzis 0066379200 winewayland.drv: Introduce per-window driver data.
Create and manage an internal driver data structure for each non-desktop,
non-message window.
2023-06-29 13:57:04 +02:00
Rémi Bernon 6942d7a035 winegstreamer: Move stream length query to BeginCreateObject. 2023-06-29 12:04:46 +02:00
Rémi Bernon 5b1a2014a1 winegstreamer: Move byte stream caps checks to BeginCreateObject. 2023-06-29 12:04:46 +02:00
Rémi Bernon 9258d7abe8 winegstreamer: Pass the object context to media_source_create. 2023-06-29 12:04:46 +02:00
Rémi Bernon cea4c8469d winegstreamer: Use a helper to create object_context. 2023-06-29 12:04:46 +02:00
Rémi Bernon 70daeb5280 winegstreamer: Move struct object_context around. 2023-06-29 12:04:46 +02:00
Zebediah Figura 221f110bbd wined3d: Remove no longer used arguments from wined3d_texture_update_desc().
Limit it to updating user memory and pitch.
2023-06-29 12:04:37 +02:00
Zebediah Figura ebaa0a9426 wined3d: Recreate swapchain textures in wined3d_swapchain_resize_buffers().
Instead of using wined3d_texture_update_desc(). This is safe, because:

* ddraw never exposes wined3d textures directly, and always retrieves them
  directly from wined3d when rendering.

* d3d8 and d3d9 (non-extended) will only resize buffers during a reset, and
  resetting is forbidden if the application holds any references to the
  backbuffers. RTVs are also replaced during a reset, so there is no concern
  about retrieving the old RTVs from the device state.

* d3d9ex allows resetting while holding references to the backbuffers, but tests
  (fixed by this patch) show that the backbuffers should in fact be recreated.

* dxgi forbids holding references to back buffers during ResizeBuffers(),
  including indirect references via command lists or device contexts.
2023-06-29 12:04:35 +02:00
Zebediah Figura 037be380b2 wined3d: Factor out a swapchain_create_texture() helper. 2023-06-29 12:04:35 +02:00
Zebediah Figura 0dc7de15e0 dxgi: Do not create a d3d11 swapchain object for the implicit swapchain.
This swapchain is never actually exposed, and effectively only exists due to
implementation constraints. When it was introduced, it was necessary or simplest
to create a dxgi swapchain object, but currently that's no longer necessary, and
avoiding that allows some code to be simplified.
2023-06-29 12:04:33 +02:00
Rémi Bernon 467201a85b explorer: Fix command-line parameter parsing.
Fixes: 5b11157ecf
Wine-Bug: https://bugs.winehq.org/show_bug.cgi?id=55141
2023-06-29 12:04:07 +02:00
Fabian Maurer fca833678f windowscodecs: Fake success in SetMetadataByName.
Wine-Bug: https://bugs.winehq.org/show_bug.cgi?id=55101
2023-06-28 22:50:10 +02:00
Evan Tang 731f06d97f winemac.drv: Give Apple GPUs device IDs. 2023-06-28 21:01:19 +02:00
Alex Henrie aec014fe8f winegstreamer: Fix double free on error path in media_source_constructor (scan-build). 2023-06-28 21:01:08 +02:00
Alistair Leslie-Hughes 654b970be1 dsdmo: Add Flanger effect stub. 2023-06-28 18:58:58 +02:00
Alistair Leslie-Hughes e2258279e0 dsdmo: Add Chorus effect stub. 2023-06-28 18:58:57 +02:00
Rémi Bernon 7255f63a65 explorer: Set virtual desktop primary adapter display settings.
Wine-Bug: https://bugs.winehq.org/show_bug.cgi?id=55146
2023-06-28 18:58:39 +02:00
Rémi Bernon 99ef2dc4e1 explorer: Rename initialize_display_settings local variable.
Wine-Bug: https://bugs.winehq.org/show_bug.cgi?id=55146
2023-06-28 18:58:39 +02:00
Rémi Bernon 0e5b847f85 explorer: Use debugstr_devmodew helper to trace display mode.
Wine-Bug: https://bugs.winehq.org/show_bug.cgi?id=55146
2023-06-28 18:58:39 +02:00
Alistair Leslie-Hughes 8073c6be3f inetcomm: Remove DECLSPEC_HIDDEN usage. 2023-06-28 18:58:04 +02:00
Alistair Leslie-Hughes 19659409ac sapi: Remove DECLSPEC_HIDDEN usage. 2023-06-28 18:58:03 +02:00
Alistair Leslie-Hughes 746fd6a7f5 mapi32: Remove DECLSPEC_HIDDEN usage. 2023-06-28 18:58:01 +02:00
Alistair Leslie-Hughes 73c472e5b5 infosoft: Remove DECLSPEC_HIDDEN usage. 2023-06-28 18:58:00 +02:00
Alistair Leslie-Hughes 5459f05850 mfsrcsnk: Remove DECLSPEC_HIDDEN usage. 2023-06-28 18:57:59 +02:00
Alistair Leslie-Hughes 90df243f8e msdasql: Remove DECLSPEC_HIDDEN usage. 2023-06-28 18:57:58 +02:00
Alistair Leslie-Hughes f934c8879a dpnet/tests: Remove DECLSPEC_HIDDEN usage. 2023-06-28 18:57:56 +02:00
Rémi Bernon 5a9450db7f winegstreamer: Keep the caller result in create_object_context. 2023-06-28 18:57:36 +02:00
Rémi Bernon 70efc785d5 winegstreamer: Return a IMFMediaSource from media_source_constructor. 2023-06-28 18:57:36 +02:00
Rémi Bernon cdecf17dd0 winegstreamer: Simplify media source creation flags handling. 2023-06-28 18:57:36 +02:00
Rémi Bernon 929889ac8d winegstreamer: Return early if no byte stream was provided. 2023-06-28 18:57:36 +02:00
Rémi Bernon 32c748e1c8 winegstreamer: Remove unused props from create_object_context. 2023-06-28 18:57:36 +02:00
Hans Leidekker 9742fe8996 bcrypt: Add RC4 algorithm stub.
Wine-Bug: https://bugs.winehq.org/show_bug.cgi?id=55160
2023-06-28 18:57:22 +02:00
Hans Leidekker 88f4dabc27 winscard: Map only the reader name in map_states_inA/W(). 2023-06-28 18:57:17 +02:00
Hans Leidekker 08a4a9803d winscard: Implement SCARD_AUTOALLOCATE for multi-string return values.
Wine-Bug: https://bugs.winehq.org/show_bug.cgi?id=55137
2023-06-28 18:57:17 +02:00
Arkadiusz Hiler d4b2865eb7 win32u: Don't affect nonclient area unless requested.
The state of the caption / nonclient area should be only changed when
FLASHW_CAPTION or FLASHW_STOP are used.
2023-06-28 18:56:40 +02:00
Xin Xu d291f40472 include: Fix spelling error in InterlockedDecrementSizeT(). 2023-06-28 18:56:28 +02:00
Mohamad Al-Jaf 98b73b5c32 twinapi.appcore: Add UnregisterAppConstrainedChangeNotification() stub. 2023-06-27 22:17:51 +02:00
Mohamad Al-Jaf c12e8f6123 twinapi.appcore: Add RegisterAppConstrainedChangeNotification() stub.
Needed for Age of Wonders 4.
2023-06-27 22:17:30 +02:00
Damjan Jovanovic f70fc9cbfc opengl32: Implement filtering on all the ChoosePixelFormat() flags that are ignored when unset.
When any of these flags:
- PFD_DRAW_TO_WINDOW
- PFD_DRAW_TO_BITMAP
- PFD_SUPPORT_GDI
- PFD_SUPPORT_OPENGL
are set on the PIXELFORMATDESCRIPTOR parameter to ChoosePixelFormat(),
the returned pixel format must also have them set, but when they are
unset, the returned pixel format may or may not have them set.

Also add support for filtering on all these flags. In particular, the
lack of filtering on PFD_SUPPORT_GDI, was causing (at least) Java 1.3
to fail to initialize graphics, because we were returning a pixel
format without the PFD_SUPPORT_GDI flag it asked for.

Wine-Bug: https://bugs.winehq.org/show_bug.cgi?id=7767
2023-06-27 22:14:16 +02:00