Log

Author Commit Date CI Message
Ozkan Sezer 2e24708a 2022-09-15T11:23:50 Makefile.w32: silence lots of W202 warnings from new vulkan headers
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 b5102a55 2022-09-14T08:03:46 Fixed OpenGLES shaders failing after renderer has been created Cache all the shaders up front, so we can verify that they won't silently fail at runtime. If compiling the fragment shaders with the precision hint fails, try again without specifying precision. Fixes https://github.com/libsdl-org/SDL/issues/6166 Fixes https://github.com/libsdl-org/SDL/issues/6174
xeonmc 228b9fb5 2022-09-14T03:43:16 Update SDL_windowswindow.c (#6225) Clip rectangle set to int(left+width/2) , int(top+height/2) , int(left+width/2)+1 , int(top+height/2)+1 a 1x1 box On even-valued resolution, cursor is stable at bottom-right central pixel On odd-valued resolution, cursor is stable at exact central pixel. this is the desired behaviour
Frank Praznik 929d5b80 2022-09-12T22:39:44 wayland: Use the backbuffer size for determining if a resize event is required In some cases, a backbuffer size update may not be accompanied by a resize event if the window size and/or scale were updated before the new backbuffer size was recomputed. Instead of the scale, use the old/new backbuffer sizes to determine if a resize event is required so that a backbuffer size change will always be followed by a resize event.
Sam Lantinga 4f1b408a 2022-09-12T18:19:02 Fixed button mapping for PS5 controllers
Rinnegatamante eb0bf2c2 2022-09-12T21:52:39 vita: Drop memcmp redirect to sceClibMemcmp.
Ozkan Sezer 5b2884cb 2022-09-12T20:28:00 apply commit d0a3570300812bc81888e7a7eadb9311621dc9a7 to cmake side too.
Ozkan Sezer d9364996 2022-09-12T20:20:04 regenerated configure script.
Sam James d0a35703 2022-09-12T18:02:21 configure.ac: fix configure tests broken with Clang 15 (implicit function declarations) Clang 15 makes implicit function declarations fatal by default which leads to some configure tests silently failing/returning the wrong result. Signed-off-by: Sam James <sam@gentoo.org>
Amir 7f415ce5 2022-09-12T20:09:00 android: fix some compiler warnings
Anonymous Maarten 6dfd7a17 2022-09-10T15:53:11 cmake: forward HAVE_LIBUSB to HAVE_HIDAPI_LIBUSB
Anonymous Maarten c3495ec6 2022-09-10T14:11:19 Fix value of SDL_HIDAPI_DISABLED
Anonymous Maarten 19b13aab 2022-09-10T13:41:29 cmake: mark hidapi as disabled when not found
Frank Praznik edfb00c2 2022-09-09T14:26:44 wayland: Only commit on move if the display was changed Only commit on a move event if the display was changed for a fullscreen window and the compositor has returned bad dimensions.
Frank Praznik 97a5e744 2022-09-06T17:08:27 wayland: Remove duplicate code Wayland_SetWindowSize() can be simplified with the common CommitWindowGeometry() function.
Frank Praznik 78f843f7 2022-09-06T13:19:23 wayland: Remove unnecessary function parameter SetFullscreen() is never called in a case where the commit parameter is false anymore, so the parameter is unnecessary.
Frank Praznik 69e4c770 2022-09-04T12:18:38 video: Make the mode switching function a NOP if mode switching is disabled Instead of wrapping individual calls to SDL_SetDisplayModeForDisplay(), just check the flag in the function itself and make it a NOP that cannot fail if the flag is set. Silences some errant "SDL video driver doesn't support changing display mode" log errors.
Frank Praznik 768b6728 2022-09-04T23:39:05 wayland: Compare against the old scale when resizing Compare against the old scale instead of the new or the conditional will always be true.
Frank Praznik 07aea476 2022-09-03T13:30:49 wayland: Ignore content sizes from libdecor when hiding a window When hiding a window, libdecor can report bogus content region sizes that are +/- the height of the title bar. Ignore any size values from libdecor when hiding a window, or the size may be incorrect when restored.
Frank Praznik 6de12b4a 2022-09-06T13:30:19 wayland: Update the internal state when the compositor moves a fullscreen window The compositor can arbitrarily move windows between displays, including fullscreen windows. Update the internal state when a fullscreen window is moved so the internal SDL state accurately reflects the window location, and resize the window to fit the new display. This also fixes an edge case where the compositor can make a window fullscreen on a different display than SDL thinks it will be on (usually when a window is made fullscreen by the compositor while straddling multiple displays), which can result in the window being incorrectly sized.
Frank Praznik a7d34595 2022-09-03T13:11:29 wayland: Trigger a commit on fullscreen update If additional fullscreen requests are received when the window is already fullscreen, it is typically due to the fullscreen flags or emulated video mode being changed. A commit must be explicitly triggered or the requested changes won't take effect until some other event, such as a resize or focus change, causes the changes to be committed.
Frank Praznik 707b561f 2022-09-03T12:37:02 wayland: Enable compositor fullscreen toggling The compositor can toggle the fullscreen state (via a hotkey or otherwise), so the internal SDL state must be updated accordingly when it does. When toggling fullscreen via the compositor, SDL will attempt to use the last fullscreen flag explicitly set. If no flag was previously set, SDL_WINDOW_FULLSCREEN will be used if a window video mode was set, otherwise SDL_WINDOW_FULLSCREEN_DESKTOP will be used. If the previous flag was SDL_WINDOW_FULLSCREEN and the window video mode was cleared, it will revert to SDL_WINDOW_FULLSCREEN_DESKTOP.
Frank Praznik 31979e2d 2022-09-02T18:41:21 wayland: Add missing static qualifiers
Taiko2k 1c88a052 2022-09-09T16:03:17 Update Wayland cursors to match X11 cursors
Sam Lantinga 9f4baeea 2022-09-08T20:08:20 Clean up thread local storage when quitting SDL SDL_Quit() should be the last SDL API that you call before exiting your application, and is intended to clean up all internal state. If real-life applications are relying on thread-local storage after SDL_Quit() we could potentially add a hint to control this behavior. Fixes https://github.com/libsdl-org/SDL/issues/6200
Sam Lantinga a3900a75 2022-09-08T13:59:25 Lock joysticks when removing a controller on the WGI thread
Sam Lantinga 12413ab3 2022-09-08T13:33:04 Lock joysticks while attaching a virtual one
Ozkan Sezer 787cd580 2022-09-08T23:00:04 silence unused function warning for SDL_endswith() on non-linux.
Sam Lantinga 40715732 2022-09-08T11:50:56 Don't try to second guess DS4Windows, let it remap things as expected. DS4Windows can create both emulated Xbox and emulated PS4 controllers, and we don't know which the user has it doing, so don't try to second guess it, just let it do it's thing. Users should follow the remapping software recommendations on when to enable/disable it for various situations. Fixes https://github.com/libsdl-org/SDL/issues/6167
Sam Lantinga a0f16960 2022-09-08T09:53:24 Fixed the CRC in the mappings for PS2, PSP, and Vita controllers
Sylvain 90a480a1 2022-09-08T05:44:39 Fixed bug #6199 - Broken clip behaviour on a render target (metal)
Sam Lantinga 0ad8d9d2 2022-09-07T15:31:24 SDL_IsXInputDevice() shouldn't return true if XInput isn't enabled
Sam Lantinga d93f9a77 2022-09-07T12:33:43 The new Wii Remote shares the same VID/PID as the Wii U Pro controller
Sam Lantinga f398d8a4 2022-09-07T11:53:13 Note that the Logitech Extreme 3D is a flight stick
Sam Lantinga 0a05b281 2022-09-07T11:51:16 Make sure we hold the joystick lock when updating the device state while opening it
Sam Lantinga d4e0d27c 2022-09-07T02:02:04 Added Wii Remote controller mappings for Linux
Sam Lantinga a7fde3f8 2022-09-07T01:58:42 Allow mapping a controller other than the first one
Sam Lantinga 42cf6d6c 2022-09-07T01:41:11 Don't treat the Wii extension controls as a separate game controller on Linux
Sam Lantinga 87f8b6ff 2022-09-07T01:21:01 Don't mess with the state of the Motion Plus extension on Linux
Sam Lantinga c28da489 2022-09-07T00:52:40 Fixed build
Sam Lantinga 638452ec 2022-09-07T00:44:13 Assert that continuous reporting is enabled, so input timeout is a reliable way of detecting Bluetooth connection problems.
Sam Lantinga 8dfe0e4b 2022-09-07T00:41:29 Removed checks not needed for the Wii U Pro Controller
Sam Lantinga 4018f35e 2022-09-07T00:00:27 Added left and right sensors for Nintendo Joy-Con and Wii controllers
Sam Lantinga 30f55a5d 2022-09-06T23:33:55 Added initial support for the Wii Motion Plus extension This adds a gyro sensor to the Wii controller, and is enabled in standalone and nunchuk mode
Sam Lantinga 29f4a5ba 2022-09-06T15:55:27 Add GLES2 shader prologue infrastructure. (by @eloj) There is supposedly an OpenGL ES2 target that does not support precision specifiers. However, the existing logic to detect this is currently broken in two ways: 1) There's a typo of the `#ifdef` as `#if`. 2) Checking for `GL_FRAGMENT_PRECISION_HIGH` can not be the correct way to detect this platform. Other targets, including some desktops, will also not have this defined (for various reasons). Because some of the shader code is missing precision specifiers, and because a default is ONLY provided if `GL_FRAGMENT_PRECISION_HIGH` is set, these other targets break. Instead of 'hard-coding' the prologue string into shaders in the C source, use our ability to provide a list of strings to `glShaderSource` instead, leaving the determination to run-time. This commit closes https://github.com/libsdl-org/SDL/pull/6182
Sam Lantinga 4fd6bba2 2022-09-06T12:29:42 Refactored for similarity to surrounding code
Ozkan Sezer 5ffede35 2022-09-06T19:56:29 Fix https://github.com/libsdl-org/SDL/issues/6191
Cameron Cawley 10e1ef00 2022-09-06T11:21:57 Fix compatibility with Windows XP
Ozkan Sezer 911524da 2022-09-06T03:15:02 fix DYLIB version inconsistencies and test failures after #6188.
Sam Lantinga d1fea10c 2022-09-05T16:08:15 Added support for the accelerometer in the Wii Remote
Sam Lantinga a61b823d 2022-09-05T14:31:25 Added support for the Wii Remote with the Classic Controller Pro extension Also changed event order to: buttons, triggers, axes, for consistency with other drivers
tjpadula a0f143fc 2022-09-05T13:10:15 Add build target to Xcode project to create an xcframework for iOS (#6188)
Anonymous Maarten 8a08d62f 2022-09-05T21:53:50 cmake: fix location of SDL2::SDL2test imported library
Sam Lantinga 181265ba 2022-09-05T11:36:20 Removed unused variable
Sam Lantinga 23be3ccc 2022-09-05T11:25:10 Note that we should regenerate configure before running test/versioning.sh
Sam Lantinga acf397b4 2022-09-05T11:21:13 Actually, DYLIB_COMPATIBILITY_VERSION shouldn't be updated for a stable point release @smcv
Ozkan Sezer 612a86eb 2022-09-05T20:47:00 HIDAPI_DriverPS3_UpdateEffects: kill bad use of & operator on effects[]
Sam Lantinga b00e1b1b 2022-09-05T10:01:28 Added support for a ShanWan PS2 -> PS3 USB converter to the HIDAPI driver
Cameron Cawley fd93f817 2022-09-04T17:50:29 Assume that stdint.h is available on Windows with compilers other than MSVC <= 2008
Sam Lantinga ef988fe1 2022-09-05T08:58:49 Only use CETCOMPAT on x86/x64 platforms Fixes https://github.com/libsdl-org/SDL/issues/6173
Cameron Cawley cf040f88 2022-09-05T16:27:25 testmouse: Allow drawing rectangles as well as lines
Cameron Cawley a9325817 2022-09-05T16:37:34 testplatform: Add LSX and LASX checks
Sam Lantinga 5cac6c7e 2022-09-05T08:48:16 Note that the Xcode DYLIB_COMPATIBILITY_VERSION should always match DYLIB_CURRENT_VERSION CMake doesn't need any special handling
Sam Lantinga 4e98ba61 2022-09-05T08:28:06 Set DYLIB_COMPATIBILITY_VERSION to DYLIB_CURRENT_VERSION to match autotools Autotools sets both versions to the same value, so Xcode and CMake need to match for the libraries to be compatible between the different builds. See these for details: https://github.com/libsdl-org/sdl12-compat/pull/207 https://github.com/libsdl-org/SDL/issues/2934 https://stackoverflow.com/questions/67055770/usage-of-current-version-and-compatibility-version-on-macos
Érico Porto cbc0d9fa 2022-09-03T21:22:26 test/versioning.sh also tests configure
Sylvain 03485db0 2022-09-03T23:40:14 Android: understand HAL_PIXEL_FORMAT_BGR_565 as a returned value from ANativeWindow_getFormat() (see #6016)
Sam Lantinga 1b4e08b8 2022-09-02T17:04:30 Added an entry for the Hori Fighting Stick mini 4 kai This is a PS3/PS4 arcade stick which becomes an Xbox 360 controller on PC
Sam Lantinga 6bcf2c15 2022-09-02T15:06:49 Fixed spinning at a very high framerate
Sam Lantinga 47f2373d 2022-09-02T16:52:55 Added locking for Android joystick events
Sam Lantinga e8f6b750 2022-09-02T15:06:13 Added mappings for the ASUS ROG Kunai 3 Gamepad
Sam Lantinga 5770e87c 2022-09-02T13:57:59 Fixed regression handling touchpad input with PS5 controllers using the original shipping firmware
Sam Lantinga 253f6a91 2022-09-02T11:49:06 Variable renaming for consistency
Sam Lantinga 5002624e 2022-09-02T11:41:19 Fixed crash when extension controllers are hotplugged
Sam Lantinga 7df571ff 2022-09-02T11:37:16 HIDAPI_DumpPacket() takes a const memory pointer
Sam Lantinga b6d23d21 2022-09-02T11:21:51 Fixed interactions with the Linux Wiimote driver
Ozkan Sezer 0c984360 2022-09-02T20:02:56 SDL_hidapi_wii.c: fix a -Wshadow warning
Sam Lantinga b6b3fb00 2022-09-02T09:59:32 This was intended to be Uint8
Ozkan Sezer 5be157b3 2022-09-02T19:33:40 SDL_hidapi_wii.c: fix -Wpointer-sign warnings
Sam Lantinga 54356f41 2022-09-02T09:03:44 Wii: fixed trigger axis reporting for the Wii U Pro Controller
Sam Lantinga a35642fa 2022-09-02T08:58:21 Wii: don't bother reading the extension type for the Wii U Pro controller, we already know what it is
Sam Lantinga c3ecb9d0 2022-09-02T08:48:36 Wii: re-request the status if we get a communication error
Ozkan Sezer 0c24b46e 2022-09-02T18:55:00 SDL_hidapi_wii.c: fix build in c89 mode.
Sam Lantinga 9874fc4e 2022-09-02T08:47:15 Reconnect as a different controller if the Wii extension hardware changes
Sam Lantinga 5f3cb549 2022-09-02T08:28:28 Updated Wii support with @tellowkrinkle's changes in https://github.com/tellowkrinkle/SDL/commit/2f288e9d5bf596756f92b6c3c983b79dc783eac6
Sam Lantinga 785d784a 2022-09-01T22:30:05 Set the output value for ParseExtensionResponse() in all return cases
Sam Lantinga 046aaa2d 2022-09-01T21:37:26 Use auto calibration for the Wii Nunchuk thumbstick axis values
Sam Lantinga 8381e008 2022-09-01T21:13:16 Handle hotplugging of Wii controller extensions
Sam Lantinga 396411c0 2022-09-01T20:27:34 Added mapping for the Wii Nunchuk extension
Sam Lantinga e19b36d8 2022-09-01T19:29:20 Initial support for the Wii Remote with Nunchuk extension
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
Ozkan Sezer 0ffaf5b8 2022-09-02T02:04:20 SDL_hidapi_wii.c: fix build in c89 mode and builds using watcom compiler
Sam Lantinga 397672ed 2022-09-01T15:31:03 Added SDL_hidapi_wii.c to the Xcode project
Sam Lantinga c72e14e8 2022-09-01T15:29:01 Added initial support for Wii controllers (thanks @tellowkrinkle!)
Ozkan Sezer 28476963 2022-09-01T22:55:00 hidapi: really fix dynamic / non-dynamic libusb loading.
Ozkan Sezer 9d77945d 2022-09-01T21:56:50 fixed linkage libusb not dynamicaly loaded after commit 3f89d1704d build/.libs/SDL_hidapi.o: In function `SDL_EnableGameCubeAdaptors': src/hidapi/SDL_hidapi.c:1593: undefined reference to `libusb_init' src/hidapi/SDL_hidapi.c:1594: undefined reference to `libusb_get_device_list' src/hidapi/SDL_hidapi.c:1596: undefined reference to `libusb_get_device_descriptor' src/hidapi/SDL_hidapi.c:1604: undefined reference to `libusb_open' src/hidapi/SDL_hidapi.c:1608: undefined reference to `libusb_kernel_driver_active' src/hidapi/SDL_hidapi.c:1614: undefined reference to `libusb_claim_interface' src/hidapi/SDL_hidapi.c:1623: undefined reference to `libusb_close' src/hidapi/SDL_hidapi.c:1626: undefined reference to `libusb_free_device_list' src/hidapi/SDL_hidapi.c:1628: undefined reference to `libusb_exit' src/hidapi/SDL_hidapi.c:1609: undefined reference to `libusb_detach_kernel_driver' src/hidapi/SDL_hidapi.c:1620: undefined reference to `libusb_attach_kernel_driver' src/hidapi/SDL_hidapi.c:1615: undefined reference to `libusb_control_transfer' src/hidapi/SDL_hidapi.c:1616: undefined reference to `libusb_release_interface' build/.libs/SDL_hidapi.o: In function `SDL_hid_init_REAL': src/hidapi/SDL_hidapi.c:1086: undefined reference to `libusb_init' src/hidapi/SDL_hidapi.c:1087: undefined reference to `libusb_exit' src/hidapi/SDL_hidapi.c:1088: undefined reference to `libusb_get_device_list' src/hidapi/SDL_hidapi.c:1089: undefined reference to `libusb_free_device_list' src/hidapi/SDL_hidapi.c:1090: undefined reference to `libusb_get_device_descriptor' src/hidapi/SDL_hidapi.c:1091: undefined reference to `libusb_get_active_config_descriptor' src/hidapi/SDL_hidapi.c:1092: undefined reference to `libusb_get_config_descriptor' src/hidapi/SDL_hidapi.c:1093: undefined reference to `libusb_free_config_descriptor' src/hidapi/SDL_hidapi.c:1094: undefined reference to `libusb_get_bus_number' src/hidapi/SDL_hidapi.c:1095: undefined reference to `libusb_get_device_address' src/hidapi/SDL_hidapi.c:1096: undefined reference to `libusb_open' src/hidapi/SDL_hidapi.c:1097: undefined reference to `libusb_close' src/hidapi/SDL_hidapi.c:1098: undefined reference to `libusb_claim_interface' src/hidapi/SDL_hidapi.c:1099: undefined reference to `libusb_release_interface' src/hidapi/SDL_hidapi.c:1100: undefined reference to `libusb_kernel_driver_active' src/hidapi/SDL_hidapi.c:1101: undefined reference to `libusb_detach_kernel_driver' src/hidapi/SDL_hidapi.c:1102: undefined reference to `libusb_attach_kernel_driver' src/hidapi/SDL_hidapi.c:1103: undefined reference to `libusb_set_interface_alt_setting' src/hidapi/SDL_hidapi.c:1104: undefined reference to `libusb_alloc_transfer' src/hidapi/SDL_hidapi.c:1105: undefined reference to `libusb_submit_transfer' src/hidapi/SDL_hidapi.c:1106: undefined reference to `libusb_cancel_transfer' src/hidapi/SDL_hidapi.c:1107: undefined reference to `libusb_free_transfer' src/hidapi/SDL_hidapi.c:1108: undefined reference to `libusb_control_transfer' src/hidapi/SDL_hidapi.c:1109: undefined reference to `libusb_interrupt_transfer' src/hidapi/SDL_hidapi.c:1110: undefined reference to `libusb_handle_events' src/hidapi/SDL_hidapi.c:1111: undefined reference to `libusb_handle_events_completed' collect2: ld returned 1 exit status
Ozkan Sezer 5767dc71 2022-09-01T21:56:50 regenerated configure script after commit 3f89d1704
Ozkan Sezer 4ebf3485 2022-09-01T21:56:50 updated os2 config file after commit 3f89d1704d