include


Log

Author Commit Date CI Message
Ryan C. Gordon e6e654e2 2023-02-20T11:35:30 include: Fix symbols in public headers that start with an underscore. Fixes #7352.
Knightly a23d1af0 2023-02-10T19:23:59 Guard against _USE_MATH_DEFINES redefinition
Ozkan Sezer c68cfcdb 2023-02-07T00:21:56 make sure to not enable SDL_PASSED_BEGINTHREAD_ENDTHREAD for WinRT
Ozkan Sezer 4f7f72c2 2023-02-04T10:02:10 replaced line comments in public header.
Anonymous Maarten c5035d8f 2023-02-04T02:44:10 include: add comment documenting the change(s) to SDL_opengl_glext.h
Anonymous Maarten 0dc4373a 2023-02-03T20:58:02 opengl: make SDL_opengl_glext.h's include compatible with macos - Mesa defines __gl_glext_h_ - Apple defines __glext_h_
Ryan C. Gordon 1069c893 2023-01-24T22:13:25 wikiheaders: Add a `\threadsafety` tag to document threading details. Reference Issue #7140. (cherry picked from commit 01cba48d18f9002e5aae66d4b009f5f0195dc8d7)
Jiří Malák 507fc462 2023-01-26T15:00:02 SDL_atomic.h: Update SDL_CPUPauseInstruction for Watcom. (#7157) Appropriate CPU directive can be used in #pragma aux so that it is not necessary to hardcode instruction bytes.
Frank Praznik ea179abd 2023-01-16T13:39:26 wayland: Enforce or override libdecor minimum window size libdecor plugins can change the min/max window size values internally to enforce a minimum window size, and errors and crashes can result if the window size is below the internal limit. On versions of libdecor >= 0.1.1, the minimum width and height can be queried and the minimum required window size will be enforced. The application requested window size is still respected, however, the actual window may be slightly larger than the drawable area to accommodate the required libdecor minimum size. On version 0.1.0 of libdecor, which lacks the function to retrieve the minimum size, the internal limits are overridden before committing a frame, so that the internal limits always match the window size as a workaround, even if the window is technically smaller than the plugin would normally allow. (cherry picked from commit 423a82cd4b65cf72668551093bfdf58d49bce9ce)
Frank Praznik 44dc90dc 2023-01-18T13:03:04 autotools: Add check for libdecor get min/max functions
Sam Lantinga 0479df53 2023-01-09T09:48:21 Updated copyright for 2023
Sam Lantinga 78d3a713 2022-12-29T15:00:32 Fixed documentation for SDL_JoystickGetDeviceInstanceID Fixes https://github.com/libsdl-org/SDL/issues/6946
Ozkan Sezer d47ff8ae 2022-12-27T00:14:00 SDL_thread.h: fix SDL_CreateThreadWithStackSize macro for OS/2
Ozkan Sezer 738442b8 2022-12-27T00:10:00 SDL_thread.h: fix beginthread param of SDL_CreateThreadWithStackSize for win32 (cherry-picked from commit 29ba5f5d6426f36ee84304dc8a0e111416450aab)
Vincent Hamm 68073c62 2022-12-26T10:57:29 Fix SDL_CreateThreadWithStackSize not passing staacksize with win32 static api
Rudolf-Walter Kiss-Szakacs 232ed540 2022-12-02T07:22:31 Add SDL_HINT_WINDOWS_ENABLE_MENU_MNEMONICS.
Caleb Cornett 3b3c141f 2022-12-19T17:38:44 gdk: Add support for building with OpenGL on Xbox
Maido 741499de 2022-12-16T17:38:57 Android audio device selection (#6824) Make it possible to select a specific audio device for Android
Sam Lantinga d59caffe 2022-12-13T14:03:40 Added support for clang thread-safety analysis The annotations have been added to SDL_mutex.h and have been made public so applications can enable this for their own code. Clang assumes that locking and unlocking can't fail, but SDL has the concept of a NULL mutex, so the mutex functions have been changed not to report errors if a mutex hasn't been initialized. We do have mutexes that might be accessed when they are NULL, notably in the event system, so this is an important change. This commit cleans up a bunch of rare race conditions in the joystick and game controller code so now everything should be completely protected by the joystick lock. To test this, change the compiler to "clang -Wthread-safety -Werror=thread-safety -DSDL_THREAD_SAFETY_ANALYSIS"
Ryan C. Gordon 4bae7538 2022-12-09T22:07:22 docs: Note that you don't need to free SDL_GetDefaultCursor's results. Reference Issue #6777. (cherry picked from commit 16f8dfcef944019ce4474061aa06c2a1997e601e)
Sam Lantinga 264da8c1 2022-12-08T12:46:13 Added SDL_DISPLAYEVENT_MOVED to detect when display positioning changes
Sam Lantinga c2b2f2a7 2022-12-07T14:17:58 Clarified where the paddle locations are (cherry picked from commit ea714956b6e6851a279d1334309dd17b6d73cadc)
Ozkan Sezer 4e465f25 2022-12-04T12:55:15 reverted const removal from SDL_NewAudioStream in commit d0bbfdbfb.
Pierre Wendling d0bbfdbf 2022-12-01T16:07:03 Clang-Tidy fixes (#6725) (cherry picked from commit 3c501b963dd8f0605a6ce7978882df39ba76f9cd)
Sam Lantinga e29c0661 2022-12-01T12:54:02 Removed check for _HAVE_STDINT_H, which nobody defines Fixes https://github.com/libsdl-org/SDL/issues/6619
Ozkan Sezer e57554ea 2022-12-01T20:37:00 SDL_main.h: added field to SDL_GDKSuspendComplete documentation.
Sam Lantinga 5c4bc807 2022-11-30T05:59:56 Revert "SDL_test_md5.h: fix MD5UINT4 type to be really 32 bits." This reverts commit 8eeca8c7db323d82ec257db9886e2ba16c0c892a as it's potentially an ABI break.
Ozkan Sezer 8eeca8c7 2022-11-29T08:56:32 SDL_test_md5.h: fix MD5UINT4 type to be really 32 bits. (cherry picked from commit 8901297437ed9ced67e6029a1d525e8052275b7c)
Anonymous Maarten 660cec69 2022-11-25T02:57:00 cmake: find libudev library so it gets priority
Anonymous Maarten a2611edc 2022-11-25T02:39:50 cmake: add support for some BSD's wscons input
Ciro Mondueri f6144dfe 2022-11-23T16:41:14 adds GDK suspend/resume basic handling (#6596)
SDL Wiki Bot ac2fcfcb 2022-11-22T23:21:36 Sync SDL2 wiki -> header
Ryan C. Gordon 4ac2d45a 2022-11-22T18:12:43 Testing the wiki, disregard this commit.
Sam Lantinga ea8f8b6d 2022-11-21T16:36:10 Updated to version 2.27.0 for development
Sam Lantinga 0bfeed06 2022-11-21T16:15:58 Updated to version 2.26.0 for release
Ozkan Sezer 3bc4bad8 2022-11-20T23:50:10 add missing strcasestr checks to cmake and autotools build systems, and update config files.
Sam Lantinga 78ea6af2 2022-11-17T09:01:35 Updated to version 2.25.1 for release candidate
Sam Lantinga 1f87e9e2 2022-11-17T09:00:27 Updated patch notes for 2.26 release
SDL Wiki Bot 5e61f245 2022-11-15T05:25:16 Sync SDL wiki -> header
Pierre Wendling dcfa127f 2022-11-14T17:34:22 N3DS: Document the SDL_GetBasePath behaviour.
Sam Lantinga 9f8b68a2 2022-11-11T10:24:17 Fixed building without linux/input.h https://github.com/libsdl-org/SDL/issues/6169
Sam Lantinga 0dfc829a 2022-11-10T19:16:53 Added simple BLE Steam Controller support on all platforms This is still disabled by default via the hint SDL_HINT_JOYSTICK_HIDAPI_STEAM
Sam Lantinga 15a98909 2022-11-05T16:44:52 Added SDL_HINT_HIDAPI_IGNORE_DEVICES to specify devices that should be ignored in SDL_hid_enumerate()
Sam Lantinga 297ecb70 2022-11-05T15:58:30 Added SDL_strcasestr() for a case insensitive version of SDL_strstr()
Sam Lantinga 24cdebe4 2022-11-05T10:34:08 Added the hint SDL_HINT_JOYSTICK_HIDAPI_XBOX_ONE_HOME_LED to control the brightness of the Xbox button LED on the Xbox One controller
Hubert Maier 57973cd3 2022-10-30T08:30:49 SDL_HINTS.H: Correct spelling mistake noticable -> noticeable
SDL Wiki Bot 11a24a34 2022-10-26T22:30:06 Sync SDL wiki -> header
SDL Wiki Bot 393acf63 2022-10-25T18:07:13 Sync SDL wiki -> header
Steven Noonan b6e7c743 2022-08-25T20:21:03 SDL_cpuinfo: define __ARM_ARCH=8 for _M_ARM64 Microsoft's compiler doesn't define __ARM_ARCH, but we have several places that use it.
Simon McVittie 4ca5ea5b 2022-10-20T20:02:21 build: Add a mechanism to mark builds with vendor info Downstream distributors can use this to mark a version with their preferred version information, like a Linux distribution package version or the Steam revision it was built to be bundled into, or just to mark it with the vendor it was built by or the environment it's intended to be used in. For instance, in Debian I'd use this by configuring with: --enable-vendor-info="${DEB_VENDOR} ${DEB_VERSION}" to get a SDL_REVISION like: release-2.24.1-0-ga1d1946dc (Debian 2.24.1+dfsg-2) which gives a Debian user enough information to track down the patches and build-time configuration that were used for package revision 2. In Autotools and CMake, this is a configure-time option like any other, and will go into both SDL_REVISION (via SDL_revision.h) and SDL_GetRevision(). In other build systems (MSVC, Xcode, etc.), defining the SDL_VENDOR_INFO macro will get it into the output of SDL_GetRevision(), although not SDL_REVISION. Resolves: https://github.com/libsdl-org/SDL/issues/6418 Signed-off-by: Simon McVittie <smcv@collabora.com>
Simon McVittie 2dc788cb 2022-10-20T19:54:24 build: Expand version info in SDL_REVISION and SDL_GetRevision() Instead of using a URL and git sha1, this uses `git describe` to describe the version relative to the nearest previous git tag, which gives a better indication of whether this is a release, a prerelease, a slightly patched prerelease, or a long way after the last release during active development. This serves two purposes: it makes those APIs more informative, and it also puts this information into the binary in a form that is easy to screen-scrape using strings(1). For instance, if the bundled version of SDL in a game has this, we can see at a glance what version it is. It's also shorter than using the web address of the origin git repository and the full git commit sha1. Also write the computed version into a file ./VERSION in `make dist` tarballs, so that when we build from a tarball on a system that doesn't have git available, we still get the version details. For the Perforce code path in showrev.sh, output the version number followed by the Perforce revision, in a format reminiscent of `git describe` (with p instead of g to indicate Perforce). For the code path with no VCS available at all, put a suffix on the version number to indicate that this is just a guess (we can't know whether this SDL version is actually a git snapshot or has been patched locally or similar). Resolves: https://github.com/libsdl-org/SDL/issues/6418 Signed-off-by: Simon McVittie <smcv@collabora.com>
Sam Lantinga c6e89619 2022-10-19T08:05:47 Define _USE_MATH_DEFINES for Visual Studio (thanks @pionere!) Fixes https://github.com/libsdl-org/SDL/issues/3790
Sam Lantinga 0bc852ce 2022-10-17T17:43:06 Revert "Disable the RAWINPUT joystick driver by default" Disabling RAWINPUT on Windows 10 causes these issues: * All Xbox controllers are named "XInput Controller". * Trigger rumble no longer works. * "XInput Controllers" are now also listed as separate haptic devices
Sam Lantinga 47ba997f 2022-10-17T07:39:52 Disable the RAWINPUT joystick driver by default It's only needed to support more than 4 Xbox controllers, and adds significant complexity to the joystick processing, and we regularly get bugs from people who aren't using an SDL window who need to turn on SDL_HINT_JOYSTICK_THREAD.
Brad Smith f4e3af15 2022-10-17T07:23:40 Simplify OSS test by removing OpenBSD specific location of the soundcard.h header OpenBSD has long since stopped using OSS. Remove checking for OpenBSD specific header.
Daniel Bomar 22461383 2022-10-15T15:54:12 SDL_audiocvt: Respct the SDL_HINT_AUDIO_RESAMPLING_MODE hint This implements using libsamplerate for the SDL_AudioCVT API. This library was already being used for audio streams when this hint is set.
Sam Lantinga 6bb0c2a5 2022-10-14T06:33:38 Added documentation for some scancodes
Sam Lantinga 99f2a503 2022-10-13T22:40:24 X11 scancode mapping cleanup * Consolidated scancode mapping tables into a single location for all backends * Verified that the xfree86_scancode_table2 is largely identical to the Linux scancode table * Updated the Linux scancode table with the latest kernel keycodes (still unmapped) * Route X11 keysym -> scancode mapping through the linux scancode table (which a few hand-written exceptions), which will allow mappings to automatically get picked up as they are added in the Linux scancode table * Disabled verbose reporting of missing keysym mappings, we have enough data for now
Pierre Wendling 392f3882 2022-09-20T22:45:24 N3DS: Use SDL_Sensor instead of Joystick sensors.
Pierre Wendling f9785702 2022-09-18T13:22:07 N3DS: Deduce screen from window's display. This removes the need for a dedicated window creation flag.
Pierre Wendling 65527537 2021-03-30T04:32:39 N3DS port (squashed) A dedicated renderer using Citro3D would likely allow for better much better graphical performances.
Sam Lantinga efdb390c 2022-10-09T09:11:33 Disable the HIDAPI Wii driver by default as it doesn't work with the dolphinbar
SDL Wiki Bot 9df1af35 2022-10-09T15:44:07 Sync SDL wiki -> header
Sam Lantinga b18c361b 2022-10-08T13:18:00 Updated variable name for mouse coordinates in mouse wheel events
Sam Lantinga 4f318c90 2022-10-08T12:01:42 Add cursor position to mouse wheel event (thanks @meyraud705!) Fixes https://github.com/libsdl-org/SDL/pull/6351
Kamil Ševeček 31991ab8 2022-10-07T15:45:28 Fix \sa to a valid function in SDL_metal.h.
SDL Wiki Bot 4ca86dae 2022-10-05T23:26:14 Sync SDL wiki -> header
David Gow ad29875e 2022-04-18T17:03:05 Wayland: Emulate mouse warp using relative mouse mode Several games (including Source and GoldSrc games, and Bioshock Infinite) attempt to "fake" relative mouse mode by repeatedly warping the cursor to the centre of the screen. Since mouse warping is not supported under Wayland, the viewport ends up "stuck" in a rectangular area. Detect this case (mouse warp while the cursor is not visible), and enable relative mouse mode, which tracks the cursor position independently, and so can Warp successfully. This is behind the SDL_HINT_VIDEO_WAYLAND_EMULATE_MOUSE_WARP hint, which is enabled by default, unless the application enables relative mouse mode itself using SDL_SetRelativeMouseMode(SDL_TRUE). Note that there is a behavoural difference, in that relative mouse mode typically doesn't take mouse accelleration into account, but the repeated-warping technique does, so mouse movement can seem very slow with this (unless the game has its own mouse accelleration option, such as in Portal 2).
SDL Wiki Bot 34b28002 2022-10-03T00:20:15 Sync SDL wiki -> header
Sam Lantinga 64ea6cef 2022-10-02T17:17:31 SDL_ResetHint() no longer clears the callbacks associated with a hint Also added SDL_ResetHints() to reset all callbacks, and clarified that SDL_ClearHints() is just used for cleanup at shutdown. Fixes https://github.com/libsdl-org/SDL/issues/6313
Happy Harry 6c8bf3af 2022-10-03T00:19:34 Add vertical mode for Nintendo Joy-Con (#6303) * Added support for vertical mode for Joy-Con controllers * Added the hint SDL_HINT_JOYSTICK_HIDAPI_VERTICAL_JOY_CONS for switching to this mode * Added support for SL/SR buttons in combined/vertical mode and L/ZL/R/ZR buttons in mini-gamepad mode
SDL Wiki Bot 36e76701 2022-09-27T16:57:17 Sync SDL wiki -> header
Sam Lantinga 2c518747 2022-09-27T09:56:02 Added microsecond timestamp to sensor values for PS4 and PS5 controllers using the HIDAPI driver
Sam Lantinga 61201e06 2022-09-15T06:17:49 Removed obsolete extension definitions Fixes https://github.com/libsdl-org/SDL/issues/6231
Ozkan Sezer 6dec78ed 2022-09-15T11:55:04 fix permissions of SDL_opengl_glext.h
SDL Wiki Bot c49faabb 2022-09-14T16:29:16 Sync SDL wiki -> header
DS ac5b9bc4 2022-09-14T18:28:35 Add support for X11 primary selection (#6132) X11 has a so-called primary selection, which you can use by marking text and middle-clicking elsewhere to copy the marked text. There are 3 new API functions in `SDL_clipboard.h`, which work exactly like their clipboard equivalents. ## Test Instructions * Run the tests (just a copy of the clipboard tests): `$ ./test/testautomation --filter Clipboard` * Build and run this small application: <details> ```C #include <SDL.h> #include <unistd.h> #include <stdbool.h> #include <stdio.h> #include <stdlib.h> #include <time.h> void print_error(const char *where) { const char *errstr = SDL_GetError(); if (errstr == NULL || errstr[0] == '\0') return; fprintf(stderr, "SDL Error after '%s': %s\n", where, errstr); SDL_ClearError(); } int main() { char text_buf[256]; srand(time(NULL)); SDL_Init(SDL_INIT_VIDEO); print_error("SDL_INIT()"); SDL_Window *window = SDL_CreateWindow("Primary Selection Test", SDL_WINDOWPOS_UNDEFINED, SDL_WINDOWPOS_UNDEFINED, 400, 400, SDL_WINDOW_SHOWN); print_error("SDL_CreateWindow()"); SDL_Renderer *renderer = SDL_CreateRenderer(window, -1, SDL_RENDERER_ACCELERATED); print_error("SDL_CreateRenderer()"); bool quit = false; unsigned int do_render = 0; while (!quit) { SDL_Event event; while (SDL_PollEvent(&event)) { print_error("SDL_PollEvent()"); switch (event.type) { case SDL_QUIT: { quit = true; break; } case SDL_KEYDOWN: { switch (event.key.keysym.sym) { case SDLK_ESCAPE: case SDLK_q: quit = true; break; case SDLK_c: snprintf(text_buf, sizeof(text_buf), "foo%d", rand()); SDL_SetClipboardText(text_buf); print_error("SDL_SetClipboardText()"); printf("clipboard: set_to=\"%s\"\n", text_buf); break; case SDLK_v: { printf("clipboard: has=%d, ", SDL_HasClipboardText()); print_error("SDL_HasClipboardText()"); char *text = SDL_GetClipboardText(); print_error("SDL_GetClipboardText()"); printf("text=\"%s\"\n", text); SDL_free(text); break; } case SDLK_d: snprintf(text_buf, sizeof(text_buf), "bar%d", rand()); SDL_SetPrimarySelectionText(text_buf); print_error("SDL_SetPrimarySelectionText()"); printf("primselec: set_to=\"%s\"\n", text_buf); break; case SDLK_f: { printf("primselec: has=%d, ", SDL_HasPrimarySelectionText()); print_error("SDL_HasPrimarySelectionText()"); char *text = SDL_GetPrimarySelectionText(); print_error("SDL_GetPrimarySelectionText()"); printf("text=\"%s\"\n", text); SDL_free(text); break; } default: break; } break; } default: { break; }} } // create less noise with WAYLAND_DEBUG=1 if (do_render == 0) { SDL_RenderPresent(renderer); print_error("SDL_RenderPresent()"); } do_render += 1; usleep(12000); } SDL_DestroyRenderer(renderer); SDL_DestroyWindow(window); SDL_Quit(); print_error("quit"); return 0; } ``` </details> * Use c,v,d,f to get and set the clipboard and primary selection. * Mark text and middle-click also in other applications. * For wayland under x: * `$ mutter --wayland --no-x11 --nested` * `$ XDG_SESSION_TYPE=wayland SDL_VIDEODRIVER=wayland ./<path_to_test_appl_binary>`
Sam Lantinga 72fe6cc8 2022-09-14T09:14:47 Updated to the latest version of OpenGL and Vulkan headers from the Khronos registry Fixes https://github.com/libsdl-org/SDL/issues/6193
Sam Lantinga 4018f35e 2022-09-07T00:00:27 Added left and right sensors for Nintendo Joy-Con and Wii controllers
Cameron Cawley fd93f817 2022-09-04T17:50:29 Assume that stdint.h is available on Windows with compilers other than MSVC <= 2008
Sam Lantinga c887cb02 2022-09-01T16:23:32 Added the hint SDL_HINT_JOYSTICK_HIDAPI_WII_PLAYER_LED to control whether the player LED should be lit on the Nintendo Wii controllers Also fixed the Y axes on the Wii U Pro controller, and various formatting cleanup
Sam Lantinga c72e14e8 2022-09-01T15:29:01 Added initial support for Wii controllers (thanks @tellowkrinkle!)
Ozkan Sezer 4ebf3485 2022-09-01T21:56:50 updated os2 config file after commit 3f89d1704d
Sam Lantinga 3f89d170 2022-09-01T11:30:02 Fixed building with libusb not dynamicaly loaded
Sam Lantinga 6c2c01e0 2022-08-31T15:04:12 Fixed documentation to match function parameter
Sam Lantinga 0e4baf1c 2022-08-30T12:39:23 Don't crash if SDL functions are passed a closed joystick or gamecontroller
SDL Wiki Bot 3fe6768c 2022-08-30T18:47:15 Sync SDL wiki -> header
Sam Lantinga 40bd4fee 2022-08-30T11:42:13 Revamped joystick locking This makes the joystick locking more robust by holding the lock while updating joysticks. The lock should be held when calling any SDL joystick function on a different thread than the one calling SDL_PumpEvents() and SDL_JoystickUpdate(). It is now possible to hold the lock while reinitializing the joystick subsystem, however any open joysticks will become invalid and potentially cause crashes if used afterwards. Fixes https://github.com/libsdl-org/SDL/issues/6063
Francisco Javier Trujillo Mata f1e46858 2022-08-26T17:58:59 Adding specific SDL_Hint for the dynamic VSYNC
SDL Wiki Bot 644a4e5b 2022-08-28T02:01:12 Sync SDL wiki -> header
Sam Lantinga 3cbfd75d 2022-08-27T18:55:55 Re-added the CRC to the joystick guid This is now used as a crc field in the mapping rather than directly in mapping guids, for better mapping compatibility between versions of SDL. Added SDL_GetJoystickGUIDInfo() to get device information encoded in a joystick GUID, so that mapping programs can clear the CRC from the GUID when generating mappings. sort_controllers.py has been updated to extract the CRC from mappings created by older mapping programs and convert it into the new crc field. It will also take the CRC into account when checking for duplicate mappings. Also regenerated the GUIDs for the PS2/PSP/Vita controller mappings, fixing https://github.com/libsdl-org/SDL/issues/6151
SDL Wiki Bot 111626f4 2022-08-25T17:17:12 Sync SDL wiki -> header
Sam Lantinga e4b85091 2022-08-25T10:15:45 Document the range of trigger axes for virtual joysticks Fixes https://github.com/libsdl-org/SDL/issues/6130
Noel Berry 00452e47 2022-08-24T11:25:13 Adding SDL_GetWindowSizeInPixels for window size in pixels (#6112)
Sam Lantinga 1fc7f681 2022-08-24T06:38:36 Document that it's not possible to use the HIDAPI driver for PS3 controllers on Windows
Sam Lantinga b6f96b69 2022-08-23T22:45:37 Initial HIDAPI driver support for the PS3 controller
Sam Lantinga 92b3c53c 2022-08-22T16:25:25 Added a hint SDL_HINT_MOUSE_RELATIVE_SYSTEM_SCALE to control whether to use system mouse acceleration on raw relative motion. This is currently only implemented on Windows, and "Enhanced pointer precision" mode is not quite correct.
SDL Wiki Bot a7066c52 2022-08-21T14:05:04 Sync SDL wiki -> header
SDL Wiki Bot 8fb1b50a 2022-08-20T17:50:04 Sync SDL wiki -> header
Oleg Derevenetz a204ef50 2022-08-19T22:16:04 Use __ARM_ARCH instead of __ARM_ARCH__