|
4d665017
|
2022-07-24T18:04:26
|
|
Fixed building with 10.9 SDK
Fixes https://github.com/libsdl-org/SDL/issues/5954
|
|
3ab1e303
|
2022-07-24T15:29:42
|
|
joystick: Refactor and fix a few bugs in Shield HIDAPI driver
- CMD_CHARGE_STATE was checking the seqnum instead of the payload
- Off-by-one error in size validation for command payload
- Unused payload space was left uninitialized in output report
|
|
4d8bb89c
|
2022-07-24T11:50:14
|
|
Fixed mouse clip rect bounds on Windows
Fixes https://github.com/libsdl-org/SDL/issues/5946
|
|
6bcde52d
|
2022-07-24T20:19:16
|
|
Further adjust implementation of `Cocoa_GetWindowDisplayIndex`
As discussed in PR review, there may be an off-chance that the index
returned doesn't match up with SDL's display indexing.
This change ensures that the indices match and adds a safety check for
off-screen windows.
|
|
ce8aae14
|
2022-07-13T15:01:55
|
|
Fix `Cocoa_GetWindowDisplayIndex` failing and causing a catastrophic crash
With the introduction of this function, it is possible that for certain
monitor and window configurations, creating an SDL window will cause a
native crash.
```
Crashed Thread: 0 Dispatch queue: com.apple.main-thread
Exception Type: EXC_BAD_ACCESS (SIGSEGV)
Exception Codes: KERN_INVALID_ADDRESS at 0x0000000000000050
Exception Codes: 0x0000000000000001, 0x0000000000000050
Exception Note: EXC_CORPSE_NOTIFY
Termination Reason: Namespace SIGNAL, Code 11 Segmentation fault: 11
Terminating Process: exc handler [56627]
VM Region Info: 0x50 is not in any region. Bytes before following region: 140737486737328
REGION TYPE START - END [ VSIZE] PRT/MAX SHRMOD REGION DETAIL
UNUSED SPACE AT START
--->
VM_ALLOCATE 7fffffe75000-7fffffe76000 [ 4K] r-x/r-x SM=ALI
Thread 0 Crashed:: Dispatch queue: com.apple.main-thread
0 libSDL2.dylib 0x10247f665 SDL_UpdateFullscreenMode + 357
1 libSDL2.dylib 0x10247ec70 SDL_CreateWindow_REAL + 1504
2 ??? 0x111262de8 ???
3 ??? 0x110c39fff ???
4 libcoreclr.dylib 0x101fdf2a9 CallDescrWorkerInternal + 124
```
Tracking thread from our end: https://github.com/ppy/osu-framework/issues/5190
Regressed with: https://github.com/libsdl-org/SDL/pull/5573
In testing, the window would not find a valid screen if created
"hanging" off a primary display with a secondary display below it. In
checking why this was the case, the `display_centre` was being
calculated with a negative y origin, causing a final negative value
falling outside all display bounds:
```
SDL error log [debug]: display_centre.y = -1296 + 1296 / 2
SDL error log [debug]: Display rect 0: 0 0 2560 1440
SDL error log [debug]: Display rect 1: 2560 -625 1080 2560
SDL error log [debug]: Display rect 2: 0 1440 1728 1296
```
The method that was being used to find the current window using the frame
origin/size seems unreliable, so I have opted to replace it with with a
tried method (https://stackoverflow.com/a/40891902).
Initial testing shows that this works with non-standard DPI screens, but
further testing would be appreciated (cc @sezero / @misl6 from the
original PR thread).
|
|
041666e6
|
2022-07-24T05:45:59
|
|
video: wayland: Don't switch to libdecor path for borderless windows
We actually request CSD mode with xdg-decoration for borderless
windows, so we get what we wanted there and there's no point in going
into fallback paths.
|
|
405d1f65
|
2022-07-24T10:16:20
|
|
video: wayland: Roundtrip after falling back to libdecor in xdg-decoration handler
Otherwise libdecor doesn't have a chance to acquire xdg-toplevel after
libdecor_new before we attempt to use it in Wayland_ShowWindow.
Fixes #5952
|
|
8c51cae7
|
2022-07-23T14:56:04
|
|
audio/aaudio, audio/openslES: fix -Wdeclaration-after-statement errors
Fixes https://github.com/libsdl-org/SDL/issues/5950
|
|
65647b34
|
2022-07-22T22:07:52
|
|
SDL_Render: use high precision texcoords in ES2 shaders, when possible
Fixes #5884
|
|
f9beef76
|
2022-07-22T18:58:29
|
|
Added support for the Nintendo Switch Joy-Con Controllers on iOS and tvOS 16
|
|
aad7ef6e
|
2022-07-22T10:58:34
|
|
Added support for the Nintendo Switch Pro Controller on iOS and tvOS 16
|
|
20f51b1f
|
2022-07-22T10:58:29
|
|
Fixed crash if debug text wasn't drawn during a session
|
|
f3008e4a
|
2022-07-20T19:08:31
|
|
audio: 3- and 5-channel formats are now supported
|
|
45c3b59d
|
2022-07-20T17:23:42
|
|
audio: Turn off DEBUG_CONFIG logging again.
|
|
bec721f0
|
2022-07-20T17:22:41
|
|
audio: Fixed dst pointer on channel conversions that grow in-place.
|
|
9f56c7cf
|
2022-07-20T16:39:19
|
|
audio: Remove 5.1->X SIMD converters, add SSE mono->stereo.
The 5.1 versions didn't use the new algorithm, and making that new
algorithm work took so many permutes that it was significantly slower
than just using the scalar versions.
However, mono-to-stereo is an extremely common conversion, and it's
trivial to accelerate it with plain SSE, so that was added!
|
|
b83ae9f2
|
2022-07-19T22:40:51
|
|
audio: Replaced some debug-printfs with debug-SDL_Logs. :)
|
|
49ec8db5
|
2022-07-19T22:04:49
|
|
audio: Generate the channel converter code from a program.
|
|
f06cc3e9
|
2022-07-19T22:03:56
|
|
audio: "SL" means "surround left" not "side left", etc.
|
|
5a0c8198
|
2022-07-19T22:03:02
|
|
audio: Add channel convert filter _after_ choosing an SIMD version.
|
|
fe160840
|
2022-07-19T16:04:48
|
|
audio: LOG_DEBUG_CONVERT should use SDL_Log, not fprintf(stderr).
|
|
25727790
|
2022-07-19T02:16:08
|
|
audio: first attempt at rewriting the channel converters.
This is not ready for production use!
|
|
be3a945a
|
2022-07-20T11:05:55
|
|
Added support for the 8BitDo Ultimate Wired Controller for Xbox
|
|
b700a326
|
2022-07-20T07:01:10
|
|
audio, pipewire: fix signatures of pw_get_library_version and pw_init.
Reference issue: https://github.com/libsdl-org/SDL/issues/5938
|
|
6e210d37
|
2022-07-20T07:01:10
|
|
audio, pipewire: pipewire_version_xx globals out of dynamic loading
Fixes build with --disable-pipewire-shared
Reference issue: https://github.com/libsdl-org/SDL/issues/5938
|
|
78bad667
|
2022-07-16T22:12:08
|
|
video: wayland: Resize the window before sending the SDL_RESIZE event
Currently, the SDL_WINDOWEVENT_RESIZED event is sent before the actual
window is resized (and various internal state, such as the desired
GL/Vulkan backbuffer size, are updated). This makes sense, as SDL will
discard a no-op resize, which would be the case if we had resized before
sending the event (indeed, there are existing hacks to prevent this).
However, this means that SDL_{GL,Vulkan}_GetDrawableSize() will still
use the old size in the SDL_WINDOWEVENT_RESIZED handler. In the case of
SDL_Renderer, this means the drawable size it uses will be wrong, and
the viewport will get "updated" to the old value.
This then results in bug #5899.
|
|
53e68516
|
2022-07-18T07:31:23
|
|
Fixed declaration-after-statement warning
|
|
6ad7fdec
|
2022-07-18T07:26:29
|
|
Fixed infinite loop for values bigger than 0x40000000
Fixes https://github.com/libsdl-org/SDL/issues/5930
|
|
2be93014
|
2022-07-18T07:18:56
|
|
Fixed comment (thanks @pionere!)
|
|
cef1514b
|
2022-07-17T09:07:04
|
|
Fixed some Xcode warnings
|
|
b299cb3d
|
2022-07-17T08:31:16
|
|
Added a utility function to calculate the next power of 2 for a value
|
|
90b86b13
|
2022-07-17T10:35:09
|
|
audio: Handle non-power-of-two spec.samples when unsupported
Fixes #3685
|
|
a09d62e4
|
2022-07-15T23:45:56
|
|
directsound: Remove redundant SubFormat copy
|
|
c5e408ae
|
2022-07-15T11:31:59
|
|
directsound: For channel counts > 2, generate a dwChannelMask for CreateSoundBuffer
|
|
fff34f63
|
2022-07-15T09:46:53
|
|
windows: SDL_IMMDevice needed more deinit code from the Win32 path.
Fixes #5919
|
|
37aecda2
|
2022-07-14T11:38:51
|
|
pipewire: Use PW_KEY_TARGET_OBJECT to specify stream connection nodes
Pipewire 0.3.44 introduced PW_KEY_TARGET_OBJECT, which is to be used to specify target connection nodes for streams. This parameter takes either a node path (PW_KEY_NODE_NAME) or serial number (PW_KEY_OBJECT_SERIAL) to specify a target node. The former is used in this case since the path is already being retrieved and stored for other purposes.
The target_id parameter in pw_stream_connect() is now deprecated and should always be PW_ID_ANY when PW_KEY_TARGET_OBJECT is used.
|
|
2201d802
|
2022-07-14T02:40:00
|
|
avoid -Werror=declaration-after-statement after last commit.
|
|
24b3efd0
|
2022-07-12T04:33:56
|
|
(OpenBSD) Exe Path: Use PWD instead of CWD and use CWD as fallback
|
|
883409ea
|
2022-07-13T11:26:42
|
|
Added support for the misc1 button on the Nintendo Switch Pro Controller
when using hid_nintendo kernel driver
|
|
9a4f200d
|
2022-06-04T14:57:49
|
|
gamecontrollerdb: Linux, add mappings for hid-nintendo driver and more
Taken from https://github.com/gabomdq/SDL_GameControllerDB/blob/master/gamecontrollerdb.txt
|
|
06c7d226
|
2022-07-12T18:53:53
|
|
Added mappings for the HORI Fighting Stick mini 4 on Linux and macOS
|
|
e24b971a
|
2022-07-12T17:53:03
|
|
Added support for the NVIDIA Shield controller guide button
|
|
b321eae5
|
2022-07-11T19:43:25
|
|
joystick: Fix spurious battery empty events when opening a Shield controller
|
|
a0d8848b
|
2022-07-11T19:37:25
|
|
joystick: Plumb SDL_JoystickSendEffect() for the Shield HIDAPI driver
The effect data format consists of one command byte followed by zero or more
payload bytes.
|
|
36d8460c
|
2022-07-11T16:59:23
|
|
pipewire: Dynamically allocate the buffer for node strings
Calculate and allocate the buffer for the IO node name and path strings dynamically instead of using arbitrary sized static buffers.
|
|
996cea31
|
2022-07-11T15:15:48
|
|
pipewire: Update default audio devices during runtime
Make the default device metadata node persist for the lifetime of the hotplug loop so the default source/sink devices will be updated if they change during runtime.
|
|
60da11f0
|
2022-07-11T14:31:20
|
|
pipewire: Remove deprecated configuration key
With Pipewire now requiring a minimum version 0.3.24, the PW_KEY_CONTEXT_PROFILE_MODULES value is no longer required for legacy compatability and can be safely removed.
|
|
4fa26533
|
2022-07-12T00:55:00
|
|
SDL_GetJoystickGUIDInfo: byte-swap vendor, product and version values.
Reference issue: https://github.com/libsdl-org/SDL/issues/5907
|
|
ecfbdce6
|
2022-07-11T13:09:48
|
|
pipewire: Require version 0.3.24 or newer at runtime
|
|
2f0816ad
|
2022-07-11T13:08:30
|
|
Add SDL_GetDefaultAudioInfo.
This API is supported on pipewire, pulseaudio, wasapi, and directsound.
Co-authored-by: Frank Praznik <frank.praznik@gmail.com>
|
|
15d06180
|
2022-07-11T01:06:57
|
|
SDL_IMMDevice: Fix a WASAPI-specific leak, clean up Add()
|
|
ae105ae1
|
2022-07-10T12:59:33
|
|
windows: Move IMMDevice work to common file, implement DirectSound enumeration support
|
|
2373da5d
|
2022-07-11T09:49:00
|
|
Exposed SDL_ResetKeyboard() as a public function
This will be used by Source 2 titles to reset keyboard state before showing assertion dialogs
|
|
6e712d24
|
2022-07-09T22:55:36
|
|
joystick: Add HIDAPI driver for NVIDIA SHIELD 2017 controller
Basic input already works using the OS HID driver, but this enables
force feedback and battery state reporting.
|
|
3242265f
|
2022-07-10T12:22:47
|
|
joystick: Fix endianness issues in Xbox HIDAPI drivers
|
|
2f216485
|
2022-07-08T20:56:40
|
|
SDL_os2video.c: silenced -Wempty-body warning, along with minor tidy-up.
|
|
4aad594a
|
2022-07-08T16:17:46
|
|
Update SDL_qsa_audio.c
Fix qnx platform compile error, change SDL_Bool to SDL_bool.
|
|
c0eada20
|
2022-07-06T17:00:16
|
|
Fix assumption that DRI_DEVNAME begins at 0 (#5865)
* Fix assumption that DRI_DEVNAME begins at 0
The existing logic of the code was to count every possible entry in
KMSDRM_DRI_PATH. After this a for loop would start trying to open
filename0, filename1, filename2, etc. In recent Linux kernels (say
5.18) with simpledrm, the lowest KMSDRM_DRI_DEVNAME is often
/dev/dri/card1, rather than /dev/dri/card0, causing the code to fail
once /dev/dri/card0 has failed to open. Running:
modprobe foodrm && modprobe bardrm && rmmod foodrm
before you try to run an application with SDL KMSDRM would have also
made this fail.
* Various changes from review
- Removed newline and period from SDL error
- Explicitely compare memcmp to zero (also changed to SDL_memcmp)
- Changed memcpy to strncpy
- Less aggressive line wrapping
* Various changes from review
- strncpy to SDL_strlcpy
- removed size hardcodings for KMSDRM_DRI_PATHSIZE and
KMSDRM_DRI_DEVNAMESIZE
- made all KMSDRM_DRI defines, run-time variables to reduce bugs caused
by these defines being more build-time on Linux and more run-rime on
OpenBSD
- renamed openbsd69orgreater variable to moderndri
- altered comment from "if on OpenBSD" to add difference in 6.9
* Various changes from review
- Use max size of destination, rather than max size of source
- Less hardcodings
|
|
adf3ce7c
|
2022-07-05T21:42:24
|
|
Don't drop mouse focus on WM_MOUSELEAVE if the mouse is in relative mode; mouse-level is not meaningful for that case.
Do drop mouse focus when keyboard focus is lost if the mouse is in relative mode.
|
|
0253a450
|
2022-07-05T21:42:20
|
|
Fix format specifiers for WPARAM/LPARAM values, they are UINT_PTR.
|
|
ad0b9130
|
2022-07-05T22:29:43
|
|
android: Add missing entries to SDL_category_prefixes table.
Add static assert so this shouldn't happen in the future.
Fixes #5883
|
|
98411c0d
|
2022-07-05T06:52:04
|
|
Added include: libkern/OSAtomic.h
When building on macOS without gcc (e.g. clang) where HAVE_GCC_ATOMICS
is not defined, `SDL_AtomicTryLock` will call
`OSAtomicCompareAndSwap32Barrier` which is not yet declared.
Including OSAtomic.h on OSX resolves this error/warning:
SDL_spinlock.c:125:12: error: implicit declaration of function
'OSAtomicCompareAndSwap32Barrier' is invalid in
C99 [-Werror,-Wimplicit-function-declaration]
return OSAtomicCompareAndSwap32Barrier(0, 1, lock);
This was reported in issue #3885 but marked Invalid and closed - possibly
because the default CMake build uses gcc instead of clang.
|
|
fdb86b82
|
2022-07-04T12:48:32
|
|
x11: Don't try to use XInput2 multitouch if not supported.
Fixes #5889.
|
|
b085c182
|
2022-07-04T16:38:05
|
|
make SDL_SetTextInputRect take a pointer to const
The documentation doesn't state that the argument is ever modified,
and no implementation does so currently.
This is a non-breaking change to guarantee as much to callers.
|
|
51f75b8b
|
2022-07-04T16:42:46
|
|
Fix fallback implementations of SDL_strchr and SDL_strrchr for '\0'
strchr and strrchr return a pointer to the first/last occurrence of a
character in a string, or NULL if the character is not found. According
to the C standard, the final null terminator is part of the string, and
it should thus be possible to get a pointer to the final null with
these functions. The fallback implementations of SDL_strchr and
SDL_strrchr would always return NULL if trying to find '\0', and this
commit fixes that.
|
|
85bbf8ee
|
2022-07-03T12:19:33
|
|
Fixed coment after #endif
|
|
7d7c5b80
|
2022-06-29T01:26:27
|
|
Improving mkdir creating parents folder
|
|
f317d619
|
2022-07-01T13:59:14
|
|
Xbox GDKX support (#5869)
* Xbox GDK support (14 squashed commits)
* Added basic keyboard testing
* Update readme
* Code review fixes
* Fixed issue where controller add/removal wasn't working (since the device notification events don't work on Xbox, have to use the joystick thread to poll XInput)
|
|
89624485
|
2022-07-01T13:32:56
|
|
Updated the test bitmap font to cover the Latin-1 character set
Based on Marcel Sondaar's font8_8.asm, in the public domain
|
|
e9d5060c
|
2022-07-01T12:56:47
|
|
checkkeys will now render text that is input
Also added test functions for multi-line debug text display
Currently this only supports ASCII, as the font doesn't have the correct Latin-1 characters
|
|
bdbf90e3
|
2022-07-01T09:17:30
|
|
on-screen keyboard newline is reported as an Enter key
|
|
7ac5d616
|
2022-07-01T08:58:08
|
|
Fixed backspace being delivered after committed text on Android 12
Testing:
Enter "hello ", followed by "?" - the events generated are:
: commitText hello
: Key pressed : scancode 11 = H, keycode 0x00000068 = H modifiers: (none)
: Key released: scancode 11 = H, keycode 0x00000068 = H modifiers: (none)
: Key pressed : scancode 8 = E, keycode 0x00000065 = E modifiers: (none)
: Key released: scancode 8 = E, keycode 0x00000065 = E modifiers: (none)
: Key pressed : scancode 15 = L, keycode 0x0000006C = L modifiers: (none)
: Key released: scancode 15 = L, keycode 0x0000006C = L modifiers: (none)
: Key pressed : scancode 15 = L, keycode 0x0000006C = L modifiers: (none)
: Key released: scancode 15 = L, keycode 0x0000006C = L modifiers: (none)
: Key pressed : scancode 18 = O, keycode 0x0000006F = O modifiers: (none)
: Key released: scancode 18 = O, keycode 0x0000006F = O modifiers: (none)
: Key pressed : scancode 44 = Space, keycode 0x00000020 = Space modifiers: (none)
: Key released: scancode 44 = Space, keycode 0x00000020 = Space modifiers: (none)
: INPUT Text (\x68\x65\x6c\x6c\x6f\x20): "hello "
: finishComposingText
: deleteSurroundingText 1 / 0
: Key pressed : scancode 42 = Backspace, keycode 0x00000008 = Backspace modifiers: (none)
: Key released: scancode 42 = Backspace, keycode 0x00000008 = Backspace modifiers: (none)
: commitText ?
: Key pressed : scancode 225 = Left Shift, keycode 0x400000E1 = Left Shift modifiers: LSHIFT
: Key pressed : scancode 56 = /, keycode 0x0000002F = / modifiers: (none)
: Key released: scancode 56 = /, keycode 0x0000002F = / modifiers: (none)
: Key released: scancode 225 = Left Shift, keycode 0x400000E1 = Left Shift modifiers: (none)
: INPUT Text (\x3f): "?"
: setComposingText , at 1
: EDIT Text (): ""
Previously, the backspace would be delivered after the "?"
|
|
78089e65
|
2022-07-01T13:08:31
|
|
Remove unused internal header SDL_sysevents.h
|
|
3e114872
|
2022-06-30T20:36:45
|
|
joystick: Fix redetection of HIDAPI joysticks after reinitializing
The HIDAPI joystick driver doesn't properly reset the change counter
it uses to track if re-enumeration is needed when the joystick
subsystem is quit and then reinitialized.
The first SDL_Init(SDL_INIT_JOYSTICK) will result in the expected
HIDAPI joysticks appearing, but subsequent calls will result in no
joysticks being enumerated until another HIDAPI joystick is added
or removed from the system.
|
|
4f732197
|
2022-06-30T00:25:26
|
|
Fixed D3D12 renderer not working with batching, and got rid of the vertex buffer size limit
|
|
0ad65277
|
2022-06-29T17:26:09
|
|
Refactored code to send scancodes for an ASCII on-screen keyboard key
|
|
a054a5f7
|
2022-06-29T01:09:17
|
|
Improve SDL2 main, adding memory card and usb drivers
|
|
6a2e6c82
|
2022-06-28T21:03:16
|
|
Add SDL_HINT_DIRECTINPUT_ENABLED (on by default)
|
|
1d1fb95a
|
2022-06-28T06:21:45
|
|
Removed double va_end()
|
|
f815580d
|
2022-06-28T13:09:38
|
|
Fix SIGSEV in SDL_error. Re-apply same pattern on this uncompiled code (see #5795)
|
|
d4e6047e
|
2022-06-28T09:46:12
|
|
Fix SIGSEV in SDL_error (After removing the limit on the size of the SDL error message) (see #5795)
|
|
cddf095a
|
2022-06-27T05:00:43
|
|
'Refactored by Sourcery'
|
|
b6f1c918
|
2022-06-27T17:44:55
|
|
Fixed Watcom C build
|
|
cbd01874
|
2022-06-27T16:59:50
|
|
Removed the limit on the size of the SDL error message
Also added SDL_GetOriginalMemoryFunctions()
Fixes https://github.com/libsdl-org/SDL/issues/5795
|
|
f25b4b27
|
2022-06-27T16:57:21
|
|
Style: Flip `if` statement.
|
|
6c536afd
|
2022-06-27T15:43:17
|
|
Fix C89 declaration for macOS modules.
Since Clang 14, `-Wdeclaration-after-statement` is enforced on every
standard.
|
|
e4a80875
|
2022-06-24T16:43:20
|
|
Initial Audio driver
|
|
97239176
|
2022-06-25T23:33:53
|
|
Use proper header for OpenBSD PPC CPU detection
|
|
3b191580
|
2022-06-27T17:19:39
|
|
Windows GDK Support (#5830)
* Added GDK
* Simplfied checks in SDL_config_wingdk.h
* Added testgdk sample
* Added GDK readme
* Fixed error in merge of SDL_windows.h
* Additional GDK fixes
* OpenWatcom should not export _SDL_GDKGetTaskQueue
* Formatting fixes
* Moved initialization code into SDL_GDKRunApp
|
|
314bb5a1
|
2022-06-27T14:45:14
|
|
Fixed bug #5850: Android EGL_BAD_ACCESS because of viewport command while turning the screen off/on.
|
|
7fd46ec5
|
2022-06-18T17:40:53
|
|
Initial PS2_Joystick implementation
|
|
84d69da4
|
2022-03-20T19:42:06
|
|
Initial SDL_ps2_main implementation
|
|
b2f07d94
|
2022-06-26T15:53:13
|
|
Vita: create rendertarget color surface with same format as texture. Fixes #5844
|
|
ebe4f47f
|
2022-06-26T19:04:25
|
|
Fixed __VA_ARGS__ in gcc when no args
|
|
51c6488f
|
2022-06-26T18:47:34
|
|
Add support for SDL_render_d3d12.c to compile in C++ mode
|
|
2b41f497
|
2021-11-18T01:09:45
|
|
Improve Joystick removing semaphores
|
|
c3a5e4aa
|
2022-06-22T00:54:03
|
|
Adding GetGamepadMapping to Vita Joystick driver
|
|
7adb08a7
|
2022-06-22T01:37:00
|
|
fixed SDL_BlitMap typedef redefinition errors
|
|
12b371ee
|
2022-06-21T14:49:00
|
|
x11: Don't send diplay-add events for displays connected at init time.
Reference Issue #4977.
|
|
c11bdeeb
|
2022-06-21T13:28:14
|
|
wayland: Round fractional backbuffer sizes halfway away from zero
Use SDL_lroundf() to round fractional backbuffer sizes halfway away from zero, as this is the rounding method recommended by the forthcoming Wayland fractional scaling protocol.
|