This is in preparation of implementing all logic from the server in kernelbase, which is needed because Nt*Key ignores KEY_WOW64_32KEY. Unfortunately this requires a lot of server calls.
The full branch can be found here
https://gitlab.winehq.org/sbaars/wine/-/tree/shared-classes-new
The old approach that doesn't duplicate code to kernelbase can be found here
https://gitlab.winehq.org/sbaars/wine/-/tree/shared-classes-old
I ran make_requests by the way, not sure if we should still leave that out with the gitlab workflow.
--
v14: kernelbase: Restructure the create_key() loop.
kernelbase: Add a fast path to create_key().
kernelbase: Move create_key() below open_key().
kernelbase: Factor opening a subkey out of open_key().
kernelbase: Always try to open the Wow6432Node in open_key().
kernelbase: Restructure the open_key() loop.
https://gitlab.winehq.org/wine/wine/-/merge_requests/1445
FFXIV depends on this. It calls SetFullscreenState when it receives WM_WINDOWPOSCHANGED. Through luck the recursion aborts after two calls. The user-visible bug is that after leaving fullscreen, the game's window is still TOPMOST because we overwrite the stored pre-fullscreen window flags.
--
v3: dxgi/tests: Test nested SetFullscreenState from the same thread.
dxgi/tests: Test nested fullscreen application from different thread.
dxgi: Catch nested SetFullscreenState invocations.
dxgi: Unlock the wined3d mutex after storing the new target.
dxgi/tests: Run test_swapchain_window_messages on d3d12.
dxgi/tests: Run test_resize_target_wndproc on d3d12 too.
dxgi/tests: Fix UnregisterClass call in test_resize_target_wndproc.
https://gitlab.winehq.org/wine/wine/-/merge_requests/1964
And begin cleanup of several functions in preparation for their implementation. This only reverse the control flow to use early return (and cleanup variable names and traces as it's touching entire functions anyway), so that later changes wrt IME loading / freeing would be simpler.
--
https://gitlab.winehq.org/wine/wine/-/merge_requests/2354
--
v6: winegstreamer: Implement ProcessInput and ProcessOutput for WMV decoder DMO.
winegstreamer: Create wg_transform for WMV decoder.
winegstreamer: Make sure fps_d is not zero.
winegstreamer: Add format field to wmv wg_format.
https://gitlab.winehq.org/wine/wine/-/merge_requests/2258
--
v5: dxgi: Reset the back buffer index to zero on ResizeBuffers().
dxgi/tests: Test that ResizeBuffers() resets the back buffer index to zero.
dxgi: Always assume that a D3D12 swapchain always uses user images.
dxgi: Immediately error out when creating a D3D12 swapchain on a non-immediate queue.
d3d12/tests: Test that D3D12 swapchains can only be created on direct command queues.
https://gitlab.winehq.org/wine/wine/-/merge_requests/2296
This should fix some rare crashes in e.g. FFXIV Launcher (requires Proton patches to have it working though).
--
v3: mshtml: Use already available window local variable in refresh task.
mshtml: Grab refs to windows upfront before sending pagehide events.
mshtml: Hold ref to the frame element during readyState notifications.
mshtml: Check if browser was detached during notifications while navigating.
mshtml: Hold ref to outer window when navigating.
mshtml: Hold ref to inner window when calling external code.
mshtml: Hold ref to HTMLDocumentObj when calling external code.
https://gitlab.winehq.org/wine/wine/-/merge_requests/2336