Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Merge SDL3 upstream #108

Merged
merged 90 commits into from
Jun 1, 2024
Merged

Merge SDL3 upstream #108

merged 90 commits into from
Jun 1, 2024

Conversation

capehill
Copy link

@capehill capehill commented Jun 1, 2024

No description provided.

capehill and others added 30 commits May 24, 2024 12:16
…ate requests

Video backends that run asynchronously can wind up in a race situation if a mode or position update request queues up a fullscreen enter request while an unprocessed asynchronous leave request is in flight, and the mode switch or position update request is processed after the leave request, causing the window to erroneously return to fullscreen.

Instead of the internal SDL_UpdateFullscreenMode and backend SetWindowFullscreen functions taking a boolean value, use an enum that allows the backends to distinguish between "this is an explicit fullscreen enter/leave request", and "this is an update request to change the mode or position". Communicating the specific intent allows the backend to early-out when required, which prevents windows from erroneously returning to fullscreen due to update requests made after a leave request, and allows for the removal of some internal synchronization previously needed to (attempt to) work around this, which improves overall performance while also increasing robustness.

This is only relevant to the internal functions, and nothing in the public-facing API has been changed.
In some cases, size data set programmatically could be overwritten by old configuration data, particularly when on the display scaling path. This refactors the configuration code to be much more strict and verbose regarding the handling of window sizes, which fixes some scenarios where tests were failing when display scaling was activated.
Otherwise, it thinks SDL_CreateThread, etc, are real functions.

Reference Issue #9890.
The wp_alpha_modifier_v1 protocol allows for a global blending factor to be specified for an entire surface. Use this to add support for SDL_SetWindowOpacity().
Older MinGW releases don't ship d3d12sdklayers.h
Ubuntu 22.04 ships with mingw that does not support direct3d12.

[ci skip]
SDLWikiBot and others added 29 commits May 29, 2024 02:48
…h if you happen to get the offscreen driver and try to use vulkan.

Enable offscreen video driver in windows to make it easier to test.
Enable offscreen video driver in macos just to complete the desktop computer trio.
Note that Wayland places a restriction on windows being resized, where the requested size passed to the configuration event is a maximum, and attempting to exceed it is a protocol violation, so trying to grow the window by dragging the sides only vertically or horizontally is limited, as the provided dimensions can't be exceeded.

In practice, nothing seems to kill clients that do this, but the more immediate problem is that doing so causes GNOME to glitch out.
This adds support for pasting large clipboard contents using the INCR
property mechanism

Fixes #8871
to make sure DISPLAYCONFIG_SDR_WHITE_LEVEL is visible to us.
Otherwise, the window manager can think that the window is larger than it is and try to reposition it.
…rderless window on multiple monitors on Linux. Closes #8186."

This reverts commit 2de2e9d.

The fullscreen state is no longer available to check, and the actual bug this was trying to work around was fixed in ad813a6
/tmp/SDL3/src/video/windows/SDL_windowswindow.c: In function 'WIN_SetWindowPositionInternal':
/tmp/SDL3/src/video/windows/SDL_windowswindow.c:216:17: warning: 'h' may be used uninitialized in this function [-Wmaybe-uninitialized]
     rect.bottom = *height;
     ~~~~~~~~~~~~^~~~~~~~~
/tmp/SDL3/src/video/windows/SDL_windowswindow.c:320:12: note: 'h' was declared here
     int w, h;
            ^
/tmp/SDL3/src/video/windows/SDL_windowswindow.c:215:16: warning: 'w' may be used uninitialized in this function [-Wmaybe-uninitialized]
     rect.right = *width;
     ~~~~~~~~~~~^~~~~~~~
/tmp/SDL3/src/video/windows/SDL_windowswindow.c:320:9: note: 'w' was declared here
     int w, h;
         ^
Only cut events that don't pass the user filter instead of flushing the
entire list.

Fixes #9592
Don't flush the event queue if the filter paramter is NULL.
.. and change hdr code's display config function calls to use those
function ptrs.
why haven't any of the build tests catch this..
Custom theme file exists in project, but is not used by app, which is kinda unintuitive. Using it by default so people who not familiar with Android development won't spend lots of time troubleshooting.
The 'all-in-one' test fails for Emscripten because try_compile does not copy back the actual binary:
the wasm file contains the machine parseable strings, not the html or js file(s).
A leak was present at exit time on the Emscripten platform
This prevents the GNOME window manager from moving the window to a different display before the window goes fullscreen.

Fixes #9915
…less window created as fullscreen

Borderless windows flagged as fullscreen at creation time turn on the borders, because doing so prevents some window managers from wrongly positioning the borderless window, and in these cases the borders need to be removed whether fullscreen is exited programmatically or via a compositor event. Set a flag when forcing the borders on, so they will be removed in all cases later.
@capehill capehill merged commit c662371 into AmigaPorts:main Jun 1, 2024
2 of 4 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.