Ryan C. Gordon
074dd8c35f
hints: Change hints to be backed by Properties, add documentation. ( #9892 )
...
This makes the subsystem thread-safe, more performant, and cleans up the code a little.
Also removed SDL_HINT_WINDOWS_FORCE_MUTEX_CRITICAL_SECTIONS, since setting this hint programmatically initializes properties, which creates a lock, so we can't check hints while creating locks. The slim reader-writer locks have been the default for ages and are solid, so we'll just use those when available.
2024-08-05 09:02:28 -07:00
Sam Lantinga
746b8eb14b
Added SDL_HINT_MUTE_CONSOLE_KEYBOARD
2024-08-05 08:54:10 -07:00
Sam Lantinga
afde1cc9c2
Added SDL_HINT_EVDEV_DEVICES
2024-08-05 08:54:10 -07:00
Sam Lantinga
6f399c3beb
Note that SDL_HAPTIC_GAIN_MAX should remain an environment variable.
2024-08-05 08:54:10 -07:00
Sam Lantinga
0da346f129
Added SDL_HINT_HIDAPI_LIBUSB, SDL_HINT_HIDAPI_LIBUSB_WHITELIST, and SDL_HINT_HIDAPI_UDEV
2024-08-05 08:54:10 -07:00
Sam Lantinga
8a5b9559dc
Removed the SDL_VIDEO_NGAGE_SAVE_FRAMES environment variable
...
Display updating is now implemented, presumably we don't need to be able to dump frames for debugging.
2024-08-05 08:54:10 -07:00
Sam Lantinga
d9f9e9e764
Added SDL_HINT_VIDEO_DUMMY_SAVE_FRAMES and SDL_HINT_VIDEO_OFFSCREEN_SAVE_FRAMES
2024-08-05 08:54:10 -07:00
Sam Lantinga
f370e1a645
Removed the SDL_ALTIVEC_BLIT_FEATURES environment variable.
...
This code has long since been tested, and none of the developers have an Altivec CPU.
2024-08-05 08:54:10 -07:00
Sam Lantinga
95adcc522f
Allow SDL hints to override OpenGL extension availability
2024-08-05 08:54:10 -07:00
Sam Lantinga
a97dadf779
Added hints to replace environment variables on the PlayStation Vita
2024-08-05 08:54:10 -07:00
Sam Lantinga
3669d1e76a
Added SDL_HINT_VULKAN_DISPLAY
2024-08-05 08:54:10 -07:00
Sam Lantinga
997df06320
Added SDL_HINT_X11_XCB_LIBRARY
2024-08-05 08:54:10 -07:00
Sam Lantinga
175f28f59f
Added SDL_HINT_VIDEO_X11_NODIRECTCOLOR
2024-08-05 08:54:10 -07:00
Sam Lantinga
8cde570ad9
Added SDL_HINT_VIDEO_X11_VISUALID
2024-08-05 08:54:10 -07:00
Sam Lantinga
05f870f20d
Added SDL_HINT_OPENGL_LIBRARY and SDL_HINT_VULKAN_LIBRARY
2024-08-05 08:54:10 -07:00
Sam Lantinga
c9b2bfa7c1
Added SDL_HINT_AUDIO_DISK_INPUT_FILE, SDL_HINT_AUDIO_DISK_OUTPUT_FILE, and SDL_HINT_AUDIO_DISK_TIMESCALE
2024-08-05 08:54:10 -07:00
Sam Lantinga
e1ee0e748d
Added SDL_HINT_WAVE_CHUNK_LIMIT
2024-08-05 08:54:10 -07:00
Sam Lantinga
a4dc130d7e
Removed the SDL_PATH_DSP environment variable from the NetBSD and OSS audio driver
...
The AUDIODEV environment variable is no longer used by other audio drivers, and can be used exclusively to specify the DSP audio device.
2024-08-05 08:54:10 -07:00
Sam Lantinga
f3fcc41a4e
Removed the AUDIODEV environment variable from the sndio audio driver
...
The sndio documentation says that the AUDIODEVICE environment variable is used when the device is opened with SIO_DEVANY.
2024-08-05 08:54:10 -07:00
Sam Lantinga
ff0e42c51c
Removed the SDL_AUDIO_ALSA_DEBUG environment variable
...
The debug info is available if you set SDL_HINT_LOGGING to "audio=debug"
2024-08-05 08:54:10 -07:00
Sam Lantinga
f05cd85048
Added SDL_HINT_AUDIO_ALSA_DEFAULT_DEVICE
2024-08-05 08:54:10 -07:00
Sam Lantinga
71574ac985
Added SDL_HINT_AUDIO_DUMMY_TIMESCALE
2024-08-05 08:54:10 -07:00
Sam Lantinga
5aa1a48ac3
Added SDL_HINT_AUDIO_FREQUENCY, SDL_HINT_AUDIO_CHANNELS, and SDL_HINT_AUDIO_FORMAT
2024-08-05 08:54:10 -07:00
hwsmm
4f343f96b4
Fix name discrepancy in Android JNI
2024-08-05 05:46:39 -07:00
Anonymous Maarten
e631fdfbd2
gdk: show dialog when xgameruntime.dll is not installed
2024-08-05 09:18:21 +00:00
Sam Lantinga
881e2bc344
Fixed build
2024-08-04 20:34:10 -07:00
Sam Lantinga
f59d66f4b1
Implemented left-justification in SDL_PrintString()
...
Fixes https://github.com/libsdl-org/SDL/issues/10310
2024-08-04 20:04:58 -07:00
Sam Lantinga
795499a529
Removing a timer that isn't running is a success.
2024-08-04 20:00:13 -07:00
Ethan Lee
4bea89e945
Xbox buildfixes
2024-08-04 15:54:22 -04:00
Sam Lantinga
66cb2153cc
Handle Colemak swapping of CapsLock and Backspace
...
Fixes https://github.com/libsdl-org/SDL/issues/7853
2024-08-04 10:30:19 -07:00
Sam Lantinga
c709385856
Enable events for external X11 windows
...
Fixes https://github.com/libsdl-org/SDL/issues/3825
Fixes https://github.com/libsdl-org/SDL/issues/5142
Fixes https://github.com/libsdl-org/SDL/issues/9503
2024-08-04 09:07:19 -07:00
Sam Lantinga
ef6521aee7
testnative: print events with --info event
2024-08-04 09:07:19 -07:00
Sam Lantinga
6f6f4fbfd3
Updated X11 event debugging
2024-08-04 09:07:19 -07:00
Frank Praznik
ca2c9f680b
video: Support multiple video driver entries having the same name string
...
Allow multiple bootstrap entries for a single video driver with the same name, which internally allows preferential and fallback init conditions while hiding the implementation details from applications (e.g. applications will just see "wayland", regardless of whether it's using the preferred or fallback driver list entry).
If a driver is requested, all instances of it in the list will be tried before reporting failure, and client applications programmatically enumerating the video drivers will be presented with a deduplicated list of entries.
2024-08-03 06:55:24 -07:00
Joshua Ashton
ab916a959e
video: Only prefer Wayland if fifo-v1 and commit-timing-v1 are available
...
Wayland has a myriad of unresolved problems regarding surface suspension
blocking forever in QueuePresent/SwapBuffers when occludedand the FIFO
(vsync) implementation being fundamentally broken leading to reduced
GPU-bound performance and 'barcoding' frametimes due to swapchain
starvation.
There are two protocols used to solve these two problems together --
fifo-v1 and commit-timing-v1, which implement the commit queue on the
compositor side, and a timestamp that frames are intended to be
displayed for/discarded respectfully.
To avoid severe performance regressions for developers targeting SDL3,
only pick Wayland as the default backend when these two protocols are
supported -- otherwise fallback to X11/XWayland.
We do this by having two VideoBootStraps, one which is tests the
preferred case, "wayland_preferred" (ie. if fifo-v1 + commit-timing-v1
are available init time), and the fallback, which is just "wayland",
the same name as before, which does no such tests.
Thus, forcing with SDL_VIDEO_DRIVER=wayland will go onto the fallback
option, and pick Wayland always, as usual, so there is no behaviour
change.
In the case that X11/XWayland is not available (ie. no DISPLAY), we will
still fallback to using Wayland without these protocols available.
Signed-off-by: Joshua Ashton <joshua@froggi.es >
2024-08-03 06:55:24 -07:00
Susko3
e3cf20e1cc
Remove createSDLMainRunnable() in favour of main() to fix multiple issues when providing custom main/runnable code ( #10434 )
...
This allows managed applications (eg. Java, C#) to override main() to their liking.
2024-08-03 06:34:38 -07:00
Sam Lantinga
2c0fcf27e8
Don't use alloca() in a loop, we might overflow the stack.
2024-08-02 21:38:29 -07:00
Sam Lantinga
f7c8d66ccb
Use the convenience function SDL_GetWindowFromEvent()
2024-08-02 20:36:35 -07:00
Sam Lantinga
8d748d64e8
Fixed compiler warning building for macOS
2024-08-02 20:27:33 -07:00
Anonymous Maarten
f57c597c60
Added SDL_GetWindowFromEvent
2024-08-03 02:37:11 +00:00
Sam Lantinga
79f4de9f7e
Use SDL_PROP_APP_METADATA_IDENTIFIER_STRING for the app ID
2024-08-02 19:36:31 -07:00
Sam Lantinga
cea71fbfcc
SDL_cocoakeyboard: Fix errant semicolons in sendPendingKey and clearPendingKey definitions
...
- These are ignored by Clang but produce a warning: "semicolon before method body is ignored"
2024-08-02 18:55:30 -07:00
Sam Lantinga
2c1d40a9eb
Added an error message when SDL_GetWindowFromID() fails
2024-08-02 18:43:24 -07:00
Sam Lantinga
50492e1d03
Change the text input defaults to match the natural input experience
2024-08-02 14:49:37 -07:00
Sam Lantinga
81f8e6aba6
Added SDL_StartTextInputWithProperties()
...
This allows you to customize the text input so you can have numeric text entry, hidden passwords, etc.
Fixes https://github.com/libsdl-org/SDL/issues/7101
Fixes https://github.com/libsdl-org/SDL/issues/7965
Fixes https://github.com/libsdl-org/SDL/issues/9439
2024-08-02 14:49:37 -07:00
Sam Lantinga
31ed3665ad
Added support for high-DPI cursors and icons
...
Fixes https://github.com/libsdl-org/SDL/issues/9838
2024-08-01 13:48:28 -07:00
Sam Lantinga
94d9229ce2
Added SDL_AddSurfaceAlternateImage(), SDL_SurfaceHasAlternateImages(), SDL_GetSurfaceImages() and SDL_RemoveSurfaceAlternateImages()
...
These functions allow you to create surfaces with alternate high DPI content, and will be used for high DPI icon and cursor support.
2024-08-01 13:48:28 -07:00
Sam Lantinga
b8dc97c577
Use SDL_PremultiplySurfaceAlpha() when creating NSImages
2024-08-01 13:48:28 -07:00
Sam Lantinga
b8f3cd0a10
Added SDL_CursorData for internal cursor data
2024-08-01 13:48:28 -07:00
Sam Lantinga
22ffb487d0
Added SDL_ScaleSurface()
2024-08-01 13:48:28 -07:00