Commit Graph

10158 Commits

Author SHA1 Message Date
Sam Lantinga
b7aca89466 Fixed key names when KEYCODE_OPTION_LATIN_LETTERS is enabled 2024-08-05 10:00:02 -07:00
Sam Lantinga
a82f19f690 Use the shifted version of the letter as the key name
SDL_Keycode is defined as the unshifted key on the keyboard, but the key name is defined as the letter printed on that key, which is usually the shifted capital letter.

Fixes https://github.com/libsdl-org/SDL/issues/5836
2024-08-05 10:00:02 -07:00
Sam Lantinga
6161c437c7 Added SDL_SetLogPriorityPrefix()
SDL_Log() no longer prints a log prefix by default for SDL_LOG_PRIORITY_INFO and below. The log prefixes can be customized with SDL_SetLogPriorityPrefix().
2024-08-05 09:02:50 -07:00
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