|
ab81a559
|
2022-06-07T02:01:27
|
|
Windows DPI scaling/highdpi support
Adds hint "SDL_WINDOWS_DPI_SCALING" which can be set to "1" to
change the SDL coordinate system units to be DPI-scaled points, rather
than pixels everywhere.
This means windows will be appropriately sized, even when created on
high-DPI displays with scaling.
e.g. requesting a 640x480 window from SDL, on a display with 125%
scaling in Windows display settings, will create a window with an
800x600 client area (in pixels).
Setting this to "1" implicitly requests process DPI awareness
(setting SDL_WINDOWS_DPI_AWARENESS is unnecessary),
and forces SDL_WINDOW_ALLOW_HIGHDPI on all windows.
|
|
df36f926
|
2022-06-05T14:44:30
|
|
testautomation: add video_setWindowCenteredOnDisplay test
|
|
1b797957
|
2022-06-05T12:36:58
|
|
SDL_windowsvideo.c: add HIGHDPI_DEBUG ifdef, print DPI awareness at startup if defined
document some additional quirks
|
|
51ebefee
|
2022-02-28T00:43:43
|
|
Support PMv2 DPI awareness, add SDL_HINT_WINDOWS_DPI_AWARENESS
The hint allows setting a specific DPI awareness ("unaware", "system", "permonitor", "permonitorv2").
This is the first part of High-DPI support on Windows ( https://github.com/libsdl-org/SDL/issues/2119 ).
It doesn't implement a virtualized SDL coordinate system, which will be
addressed in a later commit. (This hint could be useful for SDL apps
that want 1 SDL unit = 1 pixel, though.)
Detecting and behaving correctly under per-monitor V2
(calling AdjustWindowRectExForDpi where needed) should fix the
following issues:
https://github.com/libsdl-org/SDL/issues/3286
https://github.com/libsdl-org/SDL/issues/4712
|
|
1488c408
|
2022-06-05T12:01:32
|
|
WM_DPICHANGED: remove some dead code, add comment
|
|
448e05e3
|
2022-06-05T12:51:57
|
|
add DPI_AWARENESS_CONTEXT_UNAWARE_GDISCALED define
|
|
60ef11b3
|
2022-06-03T00:21:36
|
|
Fix Watcom compile errors
|
|
d3b970d4
|
2022-05-29T21:56:37
|
|
HighDPI: remove SWP_NOSIZE in WIN_SetWindowPosition
If the move results in a DPI change, we need to allow the window to resize (e.g. AdjustWindowRectExForDpi frame sizes are different).
- WM_DPICHANGED: Don't assume WM_GETDPISCALEDSIZE is always called for PMv2 awareness - it's only called during interactive dragging.
- WIN_AdjustWindowRectWithStyle: always calculate final window size including frame based on the destination rect,
not based on the current window DPI.
- Update wmmsg.h to include WM_GETDPISCALEDSIZE (for WMMSG_DEBUG)
- WIN_AdjustWindowRectWithStyle: add optional logging
- WM_GETMINMAXINFO: add optional HIGHDPI_DEBUG logging
- WM_DPICHANGED: fix potentially clobbering data->expected_resize
Together these changes fix the following scenario:
- launch testwm2 with the SDL_WINDOWS_DPI_AWARENESS=permonitorv2 environment variable
- Windows 10 21H2 (OS Build 19044.1706)
- Left (primary) monitor: 3840x2160, 125% scaling
- Right (secondary) monitor: 2560x1440, 100% scaling
- Alt+Enter, Alt+Enter (to enter + leave desktop fullscreen), Alt+Right (to move window to right monitor). Ensure the window client area stays 640x480. Drag the window back to the 125% monitor, ensure client area stays 640x480.
|
|
81d3addd
|
2022-06-11T12:59:33
|
|
events: Fix spurious early returns from SDL_WaitEvent()/SDL_WaitEventTimeout()
Fixes #5780
|
|
b3260e7e
|
2022-06-11T23:34:20
|
|
Remove macro definition for SDL_ERRBUFIZE
I was looking at how errors are handled by SDL and came across this #define SDL_ERRBUFIZE which looks like a typo for SDL_ERRBUFSIZE, but either way, it looks like this isn't being used anywhere anymore because it was getting reported whenever I compile SDL with -Wunused-macros, and the last time it was mentioned in the code was from commit 09ca66b.
|
|
e9d3dcea
|
2022-05-14T18:32:05
|
|
wayland: Unify integer and fractional output scaling
Previously, scale values used by the displays and surfaces were always integers, with fractional scale values only being calculated when the backbuffer and viewport sizes were being determined. Now, if xdg-output is available, the fractional scale of output displays is calculated when the displays are enumerated and the true scale values of the output devices are used whenever possible.
This unifies the integer and fractional scaling systems, allows for the use of more accurate scale values that minimize overdraw when windows straddle multiple outputs, and lays the groundwork for the pending Wayland scaling protocols that will report the preferred scale values per-surface instead of per-output.
|
|
4fde7dd8
|
2022-05-14T14:42:52
|
|
wayland: Refactor the Wayland mode emulation and viewport logic
Compartmentalize the fullscreen mode emulation code blocks, unify the windowed/fullscreen viewport logic, consolidate all window geometry code into a central function to eliminate blocks of duplicate code and rename related variables and functions to more explicitly reflect their purpose.
|
|
4a3277b0
|
2022-05-19T15:13:02
|
|
wayland: Always commit window constraints before entering fullscreen
XDG-toplevel min/max size values are double-buffered data and must be committed before entering the fullscreen state, or a max window size value smaller than the display dimensions may cause the compositor to incorrectly configure the fullscreen window size. This fixes windowed->fullscreen transitions on GNOME, where, previously, certain combinations of window flags and min/max size values could cause entering fullscreen mode to fail with odd window sizes and/or offsets due to the new max size values not being committed before entering fullscreen, causing the compositor to clamp to the old values.
In the case of libdecor, it has its own layer of buffering on top of the xdg-toplevel surface for the min/max window dimensions, so both a frame commit and surface commit are required to set the state properly.
|
|
78698a0b
|
2022-05-17T12:37:16
|
|
wayland: Use a separate frame callback for setting the surface damage region
Previously, the surface damage region was being set in the same callback used for preventing render hangs in the GL backend when the surface was not visible. This was not ideal, as the callback was never fired in the case of using a different render backend or having a swap interval of 0. Use a separate frame callback for setting the surface damage region to ensure that it fires reliably, regardless of the backend being used or swap interval.
|
|
146ea9b0
|
2022-05-16T18:18:55
|
|
wayland: Only set the surface opaque region if EGL transparency is disabled
Check if the "SDL_VIDEO_EGL_ALLOW_TRANSPARENCY" hint is enabled and don't mark surfaces as opqaue if it is.
|
|
a20516d4
|
2022-05-16T10:35:56
|
|
wayland: Swap emulated mode dimensions in more cases
Some compositors (GNOME for example) don't set the transform flag when dealing with portrait mode displays, so the video modes won't have the width/height swapped in all cases where they should be. Check for both the 90/270 degree transform flag and if the display is taller than it is wide when determining whether to swap the width and height of the emulated video modes, and adjust the comparison logic when size testing against the native mode to account for this.
|
|
e1c83504
|
2022-05-15T10:35:59
|
|
wayland: Add a hint to disable video mode emulation under Wayland
Add the hint "SDL_VIDEO_WAYLAND_MODE_EMULATION", which can be used to disable mode emulation under Wayland. When disabled, only the desktop and/or native display resolution is exposed.
|
|
ce576323
|
2022-06-10T12:42:45
|
|
The backlight event is "change", not "add" or "remove"
|
|
68544be4
|
2022-06-10T11:31:59
|
|
Added support for the Nintendo Online controllers
|
|
b75cd2b3
|
2022-06-10T14:12:03
|
|
x11: Force window back to expected size after SDL_SetWindowBordered.
This helps if the window manager decided to let it fill the space that
an existing border was using before its removal.
Fixes #5718.
|
|
51db7754
|
2022-06-10T06:23:20
|
|
updated windows watcom exports file after last commit.
|
|
9202df04
|
2022-06-09T18:11:34
|
|
Implemented SDL_GameControllerGetFirmwareVersion() for HIDAPI PS5 controllers
|
|
e5a3acd6
|
2022-05-05T04:01:05
|
|
ime: fcitx: Retrieve cursor position and selection
Also, if `SDL_HINT_IME_SUPPORT_EXTENDED_TEXT` is enabled, make use of
`SDL_TEXTEDITING_EXT` by sending the full preedit string.
|
|
dd7bed9e
|
2022-05-05T03:10:35
|
|
ime: ibus: Retrieve cursor position and selection
Also, if `SDL_HINT_IME_SUPPORT_EXTENDED_TEXT` is enabled, make use of
`SDL_TEXTEDITING_EXT` by sending the full preedit string.
|
|
d11702ce
|
2022-05-05T02:34:16
|
|
ime: wayland: Make use of `SDL_TEXTEDITING_EXT`
Because we were sending multiple chunks of preedit strings,
`SDL_SendEditingText` was using the old `SDL_TEXTEDITING` event only.
Now if `SDL_HINT_IME_SUPPORT_EXTENDED_TEXT` is enabled, we send the full
string and correctly set the cursor position and selection size.
|
|
74bcc5a0
|
2022-05-05T02:23:05
|
|
stdlib: Add `SDL_utf8strnlen`
|
|
c7f41038
|
2022-06-09T13:47:29
|
|
Special case for k_eControllerType_XInputSwitchController in the raw input path
|
|
e6cb0822
|
2022-06-09T13:20:38
|
|
Fixed the default mapping on Windows for the HORI Fighting Commander
|
|
0a93ac12
|
2022-05-08T18:06:47
|
|
Work around the lack of clock() on PS Vita
|
|
25367efc
|
2022-05-08T17:36:22
|
|
Add missing library needed for locale functions on PS Vita
|
|
8303c5d0
|
2022-06-08T12:37:36
|
|
Added missing SDL_zero for renderTargetViewDesc
|
|
6f69bbc5
|
2022-06-08T12:38:43
|
|
D3D11: Fix SDL_TEXTUREACCESS_TARGET not working if SDL_HAVE_YUV was 0
Added a couple of missing SDL_zeros in CreateTexture
|
|
6bd49fc0
|
2022-06-08T21:58:10
|
|
revert mode changes from commit d58d637ac
|
|
d58d637a
|
2022-06-08T11:07:36
|
|
Added support for the Qanba Obsidian Arcade Joystick on Linux
|
|
526f4175
|
2022-06-08T20:51:04
|
|
updated configury to silence ac2.7x warnings with minor rearrangement.
|
|
51d6d60f
|
2022-06-08T10:14:36
|
|
Updated to autoconf 2.71
|
|
e201f338
|
2022-06-08T14:54:47
|
|
ci: enable CMake test for Emscripten
|
|
0fcfaf9e
|
2022-06-08T14:20:50
|
|
emscripten: use MAIN_THREAD_EM_ASM for the fb/cursor proxying
This is how everything else was handled and fixes undefined symbol
errors in non-threads builds.
|
|
b9c2ad83
|
2022-06-07T22:19:58
|
|
Added additional check for HAVE_D3D12_H and missing SDL_VIDEO_RENDER_D3D12 in SDL_config.h.cmake
|
|
298ad937
|
2022-06-08T01:10:12
|
|
cmake: wrap SDL_STATIC_PIC in double quotes (aka never trust user input)
Suggested by @Wohlstand
|
|
ad272ac6
|
2022-06-08T00:32:15
|
|
Set POSITION_INDEPENDENT_CODE property on SDL2 for CMake 3.0
|
|
e8d89ce2
|
2022-06-07T16:31:27
|
|
< should be <=
|
|
7a335df9
|
2022-06-07T16:11:25
|
|
Updated CMakeLists.txt and configure.asc/script so that it checks for the required Windows SDK version before it enables the d3d12 renderer. Also fixed reported warnings in some builds.
|
|
5abd6769
|
2022-06-07T04:28:55
|
|
Allow empty default values to the dep_option macro
|
|
2cc22604
|
2022-06-07T16:30:01
|
|
Fixed bug #5768 - SDL_RenderGeometry's software backend failed to render when texture coordinates are reversed
handle flip vertical/horizontal when reconstructing rects from triangles
|
|
168b97ca
|
2022-06-07T00:33:59
|
|
Updated Xcode project with SDL_guid.c and controller_type.c
|
|
7e71d08a
|
2022-06-07T04:02:50
|
|
regenerated configure script.
|
|
ef4e0e92
|
2022-06-07T00:44:04
|
|
Sync wiki -> header
|
|
40828218
|
2022-06-06T17:42:30
|
|
DirectX 12 Renderer (#5761)
* DirectX 12 Renderer (27 squashed commits)
* Add missing SDL_hidapi.h of merge of SDL.vcxproj.filters
* Fixed OpenWatcom build failure
* Dynapi fix
Co-authored-by: Ryan C. Gordon <icculus@icculus.org>
|
|
63e12cf6
|
2022-06-06T22:55:56
|
|
SDL_windows_main.c: replace CopyMemory() with SDL_memcpy()
|
|
ec0204d2
|
2022-06-06T14:38:26
|
|
x11: Don't use GetXftDPI() when XRandR can tell us the DPI per-output.
Fixes #5764.
|
|
61115aeb
|
2022-06-06T19:29:56
|
|
update dynapi after the loongarch support patch
|
|
7cd165e2
|
2022-06-06T15:51:04
|
|
Sync wiki -> header
|
|
50d8642f
|
2022-06-06T20:18:38
|
|
Add optimiztion function with LSX in LoongArch
1. yuv420_rgb24_lsx
1. yuv420_rgba_lsx
2. yuv420_bgra_lsx
3. yuv420_argb_lsx
4. yuv420_abgr_lsx
|
|
17f63e53
|
2022-05-31T19:10:05
|
|
Add loongarch support
LSX and LASX are enabled by default if compiler supports them.
|
|
9703f236
|
2022-06-06T10:54:16
|
|
SDL_SetHintWithPriority: actually, this test is good.
Otherwise, we end up calling the callback if both the old and new value
are NULL.
This reverts commit 5f25a6ea78605f9f5b600015b7532a06df3f02e2 (and also
trims some whitespace).
|
|
30cf26e0
|
2022-06-06T06:48:54
|
|
Show the firmware version in testgamecontroller
|
|
5f25a6ea
|
2022-06-06T09:36:20
|
|
Revert "SDL_SetHintWithPriority: better test if hint value has changed."
Actually, the original test was fine, disregard.
This reverts commit c391bdc1607de896a0f0b577e2b4a57e5f5740b7.
|
|
c391bdc1
|
2022-06-06T09:31:35
|
|
SDL_SetHintWithPriority: better test if hint value has changed.
|
|
55a07d91
|
2022-06-06T09:30:43
|
|
SDL_SetHintWithPriority: Allow setting NULL hints.
Fixes #5120.
|
|
a236bf4f
|
2022-06-06T02:13:37
|
|
x11: Hook up display hotplug notifications.
Obviously this needs XRandR support.
Fixes #4977.
|
|
6b4bd5a7
|
2022-06-05T09:34:12
|
|
test_harness: Report if zero tests to run.
Fixes static analysis complain about a potential malloc(0) call.
|
|
46624b4e
|
2022-06-05T06:53:15
|
|
Removed two distracting gcc-11 warnings
|
|
3807e950
|
2022-06-05T00:24:04
|
|
Sync wiki -> header
|
|
3a20274d
|
2022-06-04T20:16:28
|
|
Refactoring: move GUID operations out of Joystick
- SDL_JoystickGUID -> SDL_GUID (though we retain a type alias)
- Operations for GUID <-> String ops are now in
src/SDL_guid.c and include/SDL_guid.h
- The corresponding Joystick operations delegate to SDL_guid.c
- Added test/testguid.c
|
|
4e07d472
|
2022-06-04T13:03:51
|
|
Build warning fixes for gcc-11.3
|
|
b359282a
|
2022-06-04T12:58:00
|
|
regenerated configure script
|
|
20c76599
|
2022-06-04T03:11:23
|
|
Fix MinGW SDK redist: sdl2-config.cmake needs to set SDL2_FOUND
|
|
fd3f3810
|
2022-06-04T03:16:27
|
|
Initialize SDL_STATIC_PIC from CMAKE_POSITION_INDEPENDENT_CODE
|
|
65a3453b
|
2022-05-26T16:02:15
|
|
build: Compile with large inode number support where possible
On filesystems with large inode numbers, such as overlayfs, attempting
to stat() a file on a 32-bit system using legacy syscalls can fail
with EOVERFLOW. If we opt-in to more modern "large file support"
syscalls, then source code references to functions like stat() are
transparently replaced with ABIs that support large file sizes and
inode numbers, such as stat64().
This cannot safely be done globally by Linux distributions, because
some libraries expose types like `off_t` or `struct stat` in their
ABI, meaning that enabling large file support would be an incompatible
change that would cause crashes. However, SDL appears to be careful to
avoid these types in header files, so it should be OK to enable this.
Signed-off-by: Simon McVittie <smcv@collabora.com>
|
|
3604ae1d
|
2022-06-04T01:52:04
|
|
Sync wiki -> header
|
|
423141bf
|
2022-06-03T18:49:41
|
|
Added a function to get the controller firmware version
|
|
d6143ab3
|
2022-06-03T23:53:05
|
|
Add -Wl,-Bstatic to "sdl2-config --static-libs" output
|
|
799d39a3
|
2022-06-03T23:08:22
|
|
Make the sdl2-config script relocatable
|
|
142a3630
|
2022-06-04T01:10:00
|
|
updated watcom makefiles after 17410887d05495c328d5cf8c2dd28cb2bafafa9b
|
|
17410887
|
2022-06-03T15:02:31
|
|
Separated controller type data into a C file
|
|
2b59cb90
|
2022-06-03T12:51:00
|
|
Added mingw package support directory to the distribution archive
|
|
f858d130
|
2022-06-03T19:24:20
|
|
ci: test installed packages using CMake
|
|
96e3733a
|
2022-06-03T20:13:57
|
|
cmake: make Xcode's sdl2-config.cmake compatible with the one from autotools
|
|
5a8ccf45
|
2022-06-03T20:13:38
|
|
cmake: make VisualC's sdl2-config.cmake compatible with the one from autotools
|
|
5ec2d46f
|
2022-06-03T20:12:52
|
|
cmake: make SDL2Config.cmake compatible with autotools' sdl2-config.cmake
|
|
9ff8f29f
|
2022-06-03T20:07:43
|
|
cmake: Add mini-SDL2 CMake project to test SDL2 prefixes
|
|
67792767
|
2022-06-03T20:06:09
|
|
cmake: Add CMake configuration files, meant for the prebuilt MinGW SDK
|
|
246f3ba5
|
2022-06-03T19:57:21
|
|
cmake: rewrite autotools' sdl2-config.cmake.in with IMPORTED targets + no more -lmingw32
|
|
6f3474db
|
2022-06-03T19:58:25
|
|
autotools: export relative path of an installed sdl2-config.cmake to the prefix root
|
|
8e13cc30
|
2022-05-30T00:46:00
|
|
cmake: add 'compatible interface properties' to allow enforcing SDL2 sharedness
|
|
1087eaad
|
2022-05-27T01:40:11
|
|
cmake: install SDL2::SDL2test when configuring with SDL2_TEST enabled
|
|
ae2cc29f
|
2022-06-03T09:44:34
|
|
Make sure initial state is set correctly for the D3D renderer
Fixes https://github.com/libsdl-org/SDL/issues/5749
|
|
345efdcb
|
2022-06-03T08:46:08
|
|
Wait for all the threads to actually finish before exiting
Fixes https://github.com/libsdl-org/SDL/issues/5748
|
|
847539af
|
2022-06-01T23:06:19
|
|
wayland: Only call libdecor_dispatch() if we've loaded libdecor
As of #5703, we call libdecor_dispatch() in Wayland_WaitEventTimeout(),
but this will crash if we don't load libdecor, as
SDL_VideoData::shell.libdecor will be NULL.
Since we don't load libdecor if we don't intend to use it (i.e., if
should_use_libdecor returns false), this results in a crash under KDE in
almost all circumstances.
|
|
7fa46ec4
|
2022-05-31T11:11:19
|
|
The Google Pixel fingerprint sensor also shows up on Linux when running on the phone
|
|
3c3c0251
|
2022-05-30T00:39:53
|
|
Add Compatible Interface Properties to VisualC and Xcode SDL2 config file
|
|
4809bd35
|
2022-05-30T00:36:33
|
|
Add documentation to autotoo'ls sdl2-config-version.cmake.in
|
|
774c5017
|
2022-05-28T11:52:23
|
|
Add CMake section to the Xcode ReadMe.txt
|
|
423c7ef8
|
2022-05-27T14:47:39
|
|
Don't set SDL2_LIBRARY, we need the Framework configuration on Apple platforms
|
|
37ef6a76
|
2022-05-27T14:46:49
|
|
Use a full path for the framework header include path
|
|
f73c2564
|
2022-05-27T22:17:12
|
|
cmake: attempt to use framework in Xcode's sdl2-config.cmake
|
|
4c3d1d32
|
2022-05-27T11:52:16
|
|
Use INTERFACE_INCLUDE_DIRECTORIES in Xcode's sdl2-config.cmake
|
|
7c2a6ea5
|
2022-05-26T18:31:31
|
|
Removed 64-bit check for Apple
We build the SDL framework for macOS, iOS, and tvOS, including 32-bit and 64-bit architectures. Since this file will actually be included in the framework you're linking, it should be fine to use.
|
|
e30b9993
|
2022-05-26T18:31:06
|
|
Fixed warning about location of CMake support files
|