Clang requires the __getReg function to be declared in addition to
be declared as an intrinsic with the pragma.
This fixes the following error:
../wine/include/winnt.h:2412:27: error: call to undeclared library function '__getReg' with type 'unsigned long long (int)'; ISO C99 and later do not support implicit function declarations [-Wimplicit-function-declaration]
return (struct _TEB *)__getReg(18);
^
../wine/include/winnt.h:2412:27: note: include the header <intrin.h> or explicitly provide a declaration for '__getReg'
1 error generated.
Signed-off-by: Martin Storsjö <martin(a)martin.st>
--
https://gitlab.winehq.org/wine/wine/-/merge_requests/2935
The goal of this MR is to set up the minimum necessary infrastructure to display the contents of some simple, software rendered windows. This involves two major steps:
1. Associate a window with a Wayland surface and give it the `xdg_toplevel` role, so that the compositor can display it. We also have to implement the required initial `xdg_surface` configuration sequence to be able to safely (i.e., without the compositor disconnecting us with an error) attach buffers to the surface in step (2).
2. Implement the `window_surface` interface for the Wayland driver. For now we provide a simple (and suboptimal) `window_surface_flush` implementation: for each flush we create a new `wl_shm` buffer, copy the whole window contents (ignoring damaged bounds for now) into it and attach it to the target Wayland surface. In the next MR I will optimize this implementation in multiple ways: a. implement a buffer queue to avoid constantly allocating new buffers b. respect the damaged bounds of the `window_surface` to minimize copying of data from the `window_surface` to the SHM buffer (and also for correctness) c. communicate damaged surface regions to the compositor to (potentially) allow more efficient texture uploads.
With this MR many (software-rendered) applications can now display dynamic content on screen. We can't interact with the apps yet, but we do get to enjoy `notepad` in all its blinking-cursor glory.
Thanks!
--
https://gitlab.winehq.org/wine/wine/-/merge_requests/2944
This region is currently only reserved for 32-bit processes, which puts Wow64 at a disadvantage. The larger address space means it's not often an issue, but it's better to be explicit. Adding the reservation also causes ntdll/unix/virtual.c to consider that region first when making Wow64 allocations, before continuing through to the lower reservations. (And that's important for, e.g., changes like MR !2879.)
--
https://gitlab.winehq.org/wine/wine/-/merge_requests/2943
This seems to be a holdover from when ntdll was a Mach-O winelib
binary, so the reservation needed to be removed before it was
dlopen'd. Now that it's PE, unmapping the reservation is unnecessary
and leaves time for the system to reclaim it, thus requiring the
potentially problematic relocation of ntdll.
--
https://gitlab.winehq.org/wine/wine/-/merge_requests/2879
This is to prevent NULL pointers when creating a standalone text service
that doesn't have any text set and then using functions like EM_SETSEL.
This NULL pointers doesn't happen when creating a richedit windows, because
it sets an empty text when the richedit window procedure handles the WM_CREATE event.
--
https://gitlab.winehq.org/wine/wine/-/merge_requests/2941
To be merged after !2906.
--
v3: wineoss: Use mmdevapi's AudioClient2.
winecoreaudio: Use mmdevapi's AudioClient2.
winealsa: Use mmdevapi's AudioClient2.
winepulse: Move AudioClient2 into mmdevapi.
https://gitlab.winehq.org/wine/wine/-/merge_requests/2907