src


Log

Author Commit Date CI Message
Frank Praznik 43ddc59f 2021-11-02T16:56:14 Export SDL_LinuxSetThreadPriorityAndPolicy() function (#4877) It's marked as being a public symbol internally, however, it was missing from the header files and not visible in the shared library. This adds it to the necessary headers and to the DynAPI list to expose it for use by applications. Co-authored-by: Frank Praznik <frank.praznik@oh.rr.com>
Ivan Epifanov 848d7b12 2021-11-02T16:12:55 Vita: Implement command batching
Ivan Epifanov 3f7a94fc 2021-11-02T15:16:48 Vita: Remove FillRects
Cameron Gutman f73376ae 2021-11-02T00:31:25 events: Add logging for SDL_CONTROLLERTOUCHPAD*, SDL_CONTROLLERSENSORUPDATE, and SDL_SENSORUPDATE events
Ryan C. Gordon cca79d32 2021-10-23T15:30:20 android: Patched SDL_GetTicks64() to compile.
Ryan C. Gordon affb183e 2021-10-23T15:20:32 unix: Fixed SDL_GetTicks64 function signature.
Ryan C. Gordon 2379c528 2021-10-25T11:04:42 os/2: Don't try to be clever with the 32-bit GetTicks fallback.
Ryan C. Gordon 99c9727d 2021-10-23T15:00:31 timer: Added SDL_GetTicks64(), for a timer that doesn't wrap every ~49 days. Note that this removes the timeGetTime() fallback on Windows; it is a 32-bit counter and SDL2 should never choose to use it, as it only is needed if QueryPerformanceCounter() isn't available, and QPC is _always_ available on Windows XP and later. OS/2 has a similar situation, but since it isn't clear to me that similar promises can be made about DosTmrQueryTime() even in modern times, I decided to leave the fallback in, with some heroic measures added to try to provide a true 64-bit tick counter despite the 49-day wraparound. That approach can migrate to Windows too, if we discover some truly broken install that doesn't have QPC and still depends on timeGetTime(). Fixes #4870.
Northfear fba82ad1 2021-10-31T12:38:08 Remove sceGxmFinish from RenderPresent on Vita. Make sure that rendering is finished on render texture during locking
Sam Lantinga a01aaf05 2021-10-30T21:42:07 Fixed compiler warning
Cameron Cawley f8a8ca3e 2021-08-05T23:16:29 Support proper mode switching on RISC OS
Cameron Cawley fe9bb747 2021-02-12T23:46:11 riscos: Refactor framebuffer code
Cameron Cawley 25c71748 2020-02-13T21:55:08 Add a barebones RISC OS video driver
Cameron Cawley 4d3da5b7 2021-10-26T21:51:29 riscos: Disable the mouse pointer for now
Cameron Cawley 1c256b89 2021-10-26T13:42:34 riscos: Fix enumerating screen modes
Cameron Cawley 5a3c97f3 2021-10-25T22:55:02 riscos: Fix detection of the current mode
Cameron Cawley 53b3db0c 2021-09-28T17:59:16 Handle the KMOD_SCROLL modifier on RISC OS
Cameron Cawley 1268984e 2021-09-09T21:09:50 Implement mouse input on RISC OS
Cameron Cawley f7f54f0d 2021-08-06T23:38:46 Implement keyboard input on RISC OS Partially based on a patch from http://www.riscos.info/websvn/listing.php?repname=gccsdk&path=%2Ftrunk%2Fautobuilder%2Flibraries%2Fsdl%2Flibsdl2%2F&rev=7174#a6401c766f408f1ea356e6977894cc6a5 Currently lacks support for mapping scancodes to keycodes.
Cameron Gutman a5598649 2021-10-30T19:30:34 x11/wayland: Fix signal handling while blocking in WaitEventTimeout() Add a new flag to avoid suppressing EINTR in SDL_IOReady(). Pass the flag in WaitEventTimeout() to ensure that a SIGINT will wake up SDL_WaitEvent() without another event coming in.
Cameron Gutman c97c4687 2021-10-30T15:56:54 core: Convert SDL_IOReady()'s 2nd parameter to flags
Ryan C. Gordon 8a4a282a 2021-10-30T16:02:12 alsa: Make hotplug thread optional. Even without the thread, it'll do an initial hardware detection at startup, but there won't be any further hotplug events after that. But for many cases, that is likely complete sufficient. In either case, this cleaned up the code to no longer need a semaphore at startup. Fixes #4862.
Sam Lantinga 26706319 2021-10-30T05:53:12 Ignore the ASRock LED controller, it's not a joystick
Cameron Gutman ac54d57a 2021-10-26T20:02:38 event: Check subsystem initialization before events or devices SDL_WasInit() is cheaper SDL_NumJoysticks()/SDL_NumSensors().
Cameron Gutman 1bc6dc3e 2021-10-26T20:02:04 event: Cap maximum wait time if sensor or joystick subsystems are active Joystick and sensor subsystems require periodic polling to detect new devices.
Cameron Gutman 2bf36bfa 2021-10-24T21:28:04 wayland: Implement WaitEventTimeout() and SendWakeupEvent() We can have spurious wakeups in WaitEventTimeout() due to Wayland events that don't end up causing us to generate an SDL event. Fortunately for us, SDL_WaitEventTimeout_Device() handles this situation properly by calling WaitEventTimeout() again with an adjusted timeout.
Ivan Epifanov 9c799802 2021-10-26T15:18:26 Vita: fix IME input languages
David Gow c57bcb47 2021-10-23T14:46:03 test: Fix building with libunwind under autotools There are two issues which are stopping the SDL tests from building on my machine: - libunwind is not being linked - Even if it is, it is missing several symbols. The first is fixed by having the test programs link against libunwind if available. Technically, SDL2_test should be linking against it, as it's used in SDL_test_memory.c, but as SDL2_test is a static library, it can't itself import libunwind. We just assume that if it's present on the system, we should link it directly to the test programs. This should strictly be an improvement, as the only case where this'd fail is if SDL2 was compiled when libunwind was present, but the tests are being compiled without it, and that'd fail anyway. The second is fixed by #define-ing UNW_LOCAL_ONLY before including libunwind.h: this is required to make libunwind link to predicatable symbols, in what can only be described as a bit of a farce. There are a few more details in the libunwind man page, but the gist of it is that it disables support for "remote unwinding": unwinding stack frames in a different process (and possibly from a different architecture?): http://www.nongnu.org/libunwind/man/libunwind(3).html Note that I haven't tried this with CMake: I suspect that it'll work, though, as the CMakeLists.txt seems to have SDL2 link against libunwind if it's present. This adds an ugly extra dependency to SDL2, but does mean that issue 1 isn't present. The UNW_LOCAL_ONLY change shouldn't be build-system-specific.
Cameron Gutman 408a93a1 2021-10-23T15:43:04 wayland: Use multi-thread event reading APIs Wayland provides the prepare_read()/read_events() family of APIs for reading from the display fd in a deadlock-free manner across multiple threads in a multi-threaded application. Let's use those instead of trying to roll our own solution using a mutex. This fixes an issue where a call to SDL_GL_SwapWindow() doesn't swap buffers if it happens to collide with SDL_PumpEvents() in the main thread. It also allows coexistence with other code or toolkits in our process that may want read and dispatch events themselves.
Sylvain 4960cc3d 2021-10-25T16:18:40 Fixed a few warnings
Sylvain b7933945 2021-10-25T13:46:40 SDL_Renderer: make clear that we use render geometry for fillrect/copy/copyex when there is no specific back-end implementation (currently software, PSP, directfb)
Ozkan Sezer b3f9d8f3 2021-10-25T07:05:50 remove unused local vars after the latest commits.
Sylvain 16beed9a 2021-09-24T17:09:04 Less code since color is constant when done with triangles
Sylvain 99a34643 2021-09-24T09:42:04 OpenGLES2: LINES and POINTS successive commands are combined into a single draw call (using the same case for DRAW_GEOMETRY)
Sylvain f0cdc1d0 2021-09-24T09:38:25 OpenGLES2: remove FillRects, since it's can be done with RenderGeometry
Sylvain 37c39d5c 2021-09-23T22:45:45 Use geometry to implement FillRects
Sylvain b0eef52f 2021-09-23T22:32:29 GLES2 batching: probably need to check for blendMode changes
Sylvain c27e1249 2021-09-20T17:17:34 Remove SDL_HAVE_RENDER_GEOMETRY define
Sylvain 77026f67 2021-09-20T17:09:44 Metal: remove RenderCopy and RenderCopyEx from back-end
Sylvain 0e5160a0 2021-09-20T17:01:33 VITA: remove RenderCopy and RenderCopyEx from back-end
Sylvain 73f4ab4c 2021-09-20T16:57:21 Direct3D11: remove RenderCopy and RenderCopyEx from back-end
Sylvain ab758398 2021-09-20T16:53:03 Direct3D: remove RenderCopy and RenderCopyEx from back-end
Sylvain 1fe7e361 2021-09-20T16:46:16 OpenGL: a few opengl functions become unused
Sylvain 88548070 2021-09-20T16:40:47 OpenGLES: remove RenderCopy and RenderCopyEx from back-end
Sylvain d1925154 2021-09-20T16:33:49 OpenGL: remove RenderCopy and RenderCopyEx from back-end
Sylvain b92056bb 2021-09-20T16:33:03 OpenGLES2: remove RenderCopy and RenderCopyEx from back-end
Sylvain 76f9fb96 2021-09-20T16:32:08 Use RenderGeometry to implement RenderCopy and RenderCopyEx at higher level
Ryan C. Gordon 08797ada 2021-09-19T00:39:28 opengles2: Attempt to batch RenderCopy calls into a single glDrawArrays call.
Sylvain 502e9c3b 2021-10-24T17:16:49 SDL_Renderer simplifications: - Factorize PrepQueueCmdDraw{,DrawTexture,Solid) into one single function - Change SDL_Texture/Renderer r,g,b,a Uint8 into an SDL_Color, so that it can be passed directly to RenderGeometry - Don't automatically queue a SET_DRAW_COLOR cmd for RenderGeometry (and update GLES2 renderer)
Sylvain 23e252bf 2021-10-02T14:57:40 DirectFB: provide RenderCopyEx via RenderGeometry
Sylvain 79732c9d 2021-09-25T11:35:20 Remove FillRects from back-end, where RenderGeometry can be used
Sylvain f02ad282 2021-09-25T11:31:18 Remove FillRects from back-end, where RenderGeometry can be used
Sylvain 70b10c75 2021-09-24T22:39:49 Use correct indices when using RenderGeometry / FillRects
Tanuj Bagaria 1f0eb03a 2021-10-24T23:54:26 Fix PS5 mapping with HID-PLAYSTATION driver (#4675) * add missing PS5 Linux GUID for Bluetooth * Fix PS5 Mapping to work with HID-Playstation driver
Cameron Gutman f499168c 2021-10-24T15:54:57 x11: Use SDL_IOReady() instead of calling select() directly SDL_IOReady() properly handles EINTR and can use poll() if available.
Alex Szpakowski ba4ef461 2021-10-23T15:28:13 macOS: Fix implicit integer downcast warnings
Ryan C. Gordon d9d8f51e 2021-10-23T14:37:47 wikiheaders.pl: Add support for deprecated functions.
David Gow a76b73dd 2021-10-22T19:04:32 kmsdrm: Use SDL_PremultiplySurfaceAlphaToARGB8888() for cursor surface Instead of taking a direct copy of the mouse cursor surface, and then premultiplying on every BO upload (using the custom legacy_alpha_premultiply_ARGB8888 function), use the new SDL_PremultiplySurfaceAlphaToARGB8888() function, which converts a whole surface at a time, once and save the result. The already-premultiplied data is then copied from that to the BO on each upload, adjusting for the stride (which the previous implementation required to be equal to the width), thereby making the extra copy slightly useful.. This also adds support for non-SDL_PIXELFORMAT_ARGB8888 surfaces.
David Gow b528d484 2021-10-22T16:59:46 wayland: Wayland cursors should use premultiplied alpha It turns out that Wayland's WL_SHM_FORMAT_ARGB8888 format (and, indeed, all wayland RGBA formats) should be treated as premultiplied. SDL surfaces tend not to be premultiplied, and this is assumed by other backends when dealing with cursors. This change premultiplies the cursor surface in Wayland_CreateCursor() using the new SDL_PremultiplySurfaceAlphaToARGB8888(). In so doing, it also adds support for a wider range of input surfaces, including those with non-ARGB8888 pixel formats, and those which don't have pitch==width. This should fix #4856
David Gow 84808ea4 2021-10-22T17:48:32 video: Add SDL_PremultiplySurfaceAlphaToARGB8888() A number of video backends need to get ARGB8888 formatted surfaces with premultiplied alpha, typically for mouse cursors. Add a new function to do this, based loosely on legacy_alpha_premultiply_ARGB8888() from the KMSDRM backend. The new function, SDL_PremultiplySurfaceAlphaToARGB8888() takes two arguments: - src: an SDL_Surface to be converted. - dst: a buffer which is filled with premultiplied ARGB8888 data of the same size as the surface (assuming pitch = w). This is not heavily optimised: it just repeatedly calls SDL_GetRGBA() to do the conversion, but should do for now.
uyjulian 007b5463 2021-10-21T22:50:33 video/uikit: Do not use setNeedsUpdateOfPrefersPointerLocked on iOS SDKs older than 14
Sam Lantinga b360965d 2021-10-21T20:48:05 Added a hint for alternate OpenGL NV12 data format
Cacodemon345 19dee1cd 2021-10-22T06:37:20 Add SDL_GetWindowICCProfile(). (#4314) * Add SDL_GetWindowICCProfile * Add new SDL display events * Implement ICC profile change event for macOS * Implement ICC profile notification for Windows * Fix SDL_GetWindowICCProfile() for X11 * Fix compile errors
Sam Lantinga a34fe816 2021-10-21T12:28:35 Added the ability to bind NV12 textures in the OpenGL renderer
Sam Lantinga a43d3f69 2021-10-20T15:19:22 Don't detect the ROG Chakram mouse as a joystick
Sam Lantinga f3fd1ffb 2021-10-20T15:18:03 Fixed crash if SDL API functions are called on a disconnected controller on iOS
Sam Lantinga bfd2f899 2021-10-19T17:29:23 Fixed grab handling when focus changes between windows in the same application
James Howard d9c44b65 2021-10-19T10:49:17 Allow Cocoa_VideoInit to succeed when current display mode has invalid flags This fixes a specific issue seen on macOS 10.14.6 where a DELL E248WFP Display connected to a 2014 Mac Mini with a scaled 1920x1080 resolution selected and SDL_Init(SDL_INIT_VIDEO) failed with the error: "The video driver did not add any displays". The underlying cause was that the current 1080p display mode did not have the flag kDisplayModeSafeFlag, the check for which was added in a963e36, with the idea that certain display modes should not be candidates for switching to in fullscreen exclusive mode. That may well be the right thing to do for filtering down a list of candidate modes, but it doesn't pay to be so picky about the current mode. After all, this current mode was set by System Preferences, the picture does appear correctly on screen, and other non-SDL based applications launch and run correctly in this mode. Therefore the fix is to have GetDisplayMode only filter out a mode based on flags if it's part of a candidate list, but if it's the current mode and it can possibly be converted to an SDL_DisplayMode, do so.
Sylvain 649a33ae 2021-10-18T23:00:43 X11: remove redundant 'wakeup_lock' mutex creation
Ozkan Sezer c4bac66b 2021-10-18T14:11:20 os2, geniconv: replaced many uses of libc calls with SDL_ counterparts. FIXME: figure out a way to handle errno checks properly.
Ozkan Sezer 0a0f6854 2021-10-18T14:10:56 SDL_os2video.c: missed replacing a use of libc function
Ozkan Sezer 8e9ea2e3 2021-10-18T14:10:37 SDL_os2joystick.c: missed replacing a use of libc function
Sylvain 8b1a2fe8 2021-10-17T23:47:59 backout SDL_AndroidSetInputType()
Sylvain 6ef3bc56 2021-10-17T23:40:36 Add Dynapi for SDL_AndroidSetInputType()
Sylvain ccb12457 2021-10-17T23:17:54 Fixed bug #4843 - Can not get the ime candidatelist like chinese/japaness input method
Sam Lantinga 7fb43643 2021-10-17T13:56:31 Don't process WM_INPUT when handling relative mode by warping the mouse cursor
DomGries 06824b18 2021-10-17T19:50:39 Cleanup windows events after recent changes Improves clarity without any functional changes
Sylvain 50f969c1 2021-10-17T22:02:19 Fixed bug #4841 - Out of bounds read (by 1 byte) in yuvnv12_rgb24_sseu
shaquan-omari ea97ab61 2021-10-13T16:31:05 Add mapping for HORI Fighting Commander OCTA controller on Linux
Sam Lantinga 1c5b3e0e 2021-10-15T18:12:18 Don't center the mouse when gaining focus unless we're using relative mode warping This is necessary now that we actually change the mouse position when calling SDL_WarpMouseInWindow() in relative mode.
Sam Lantinga a70a94e0 2021-10-15T18:11:19 Don't send a mouse leave event if the mouse is outside the window when gaining focus and in relative mode.
Ozkan Sezer c583055a 2021-10-15T10:11:24 SDL_windowsevents.c (WIN_WindowProc): remove SAFE_AREA_X and SAFE_AREA_Y Not used since commit https://github.com/libsdl-org/SDL/commit/a1fabca162091b50d6f7dd71879d028319e09d80
Sam Lantinga d5700ed2 2021-10-15T00:01:39 Don't log SDL_POLLSENTINEL, it's purely for internal bookkeeping
Sam Lantinga dd5d8950 2021-10-14T23:53:25 Fixed whitespace
Brick 8bf32e12 2021-10-15T06:26:10 Improved SDL_PollEvent usage (#4794) * Avoid unnecessary SDL_PumpEvents calls in SDL_WaitEventTimeout * Add a sentinel event to avoid infinite poll loops * Move SDL_POLLSENTINEL to new internal event category * Tweak documentation to indicate SDL_PumpEvents isn't always called * Avoid shadowing event variable * Ignore poll sentinel if more (user) events have been added after Co-authored-by: Sam Lantinga <slouken@libsdl.org>
Sam Lantinga 88e9f776 2021-10-14T18:37:27 Fixed relative mouse mode using warping after https://github.com/libsdl-org/SDL/commit/82793ac279d19b5bde8fc2bd62877b05ba5a76e0
Sam Lantinga a1fabca1 2021-10-14T16:52:21 Removed mouse warping for local mice and improved warp handling for mouse over RDP
Sam Lantinga 82793ac2 2021-10-14T14:26:21 Fixed mouse warping while in relative mode We should get a mouse event with an absolute position and no relative motion and shouldn't change the OS cursor position at all
Sylvain 072e3fdf 2021-10-14T23:17:08 Fixed bug #4534: NEON implementation of Convert51ToStereo (Thanks Ryan!)
Sam Lantinga 5e89b3c8 2021-10-14T11:46:07 Don't need to use raw input to track the mouse during mouse capture (thanks Brick!)
Brick 0b6a8211 2021-10-12T14:08:20 Messages posted on the same tick are not new
Rémy Tassoux 0789610c 2021-10-14T00:52:05 Add SDL_HINT_WINDOW_NO_ACTIVATION_WHEN_SHOWN
Sam Lantinga 1fa154fd 2021-10-13T09:33:54 Fix weak enforcement of timeouts in SDL_WaitEventTimeout_Device. This will loop pumping events and waiting for a system event to come in. However not all system events will turn into an SDL event. It's not unusual for a Windows message to be some internal thing that SDL doesn't convert into a message. In that case the loop will simple circle but not exit. As long as such messages are coming in the loop will continue to run regardless of the timeout. When messages finally stop it'll still wait for the full timeout so you can have arbitrarily long delays. Instead do an absolute elapsed time check since the start of the wait. If that is exceeded during any iteration the routine exits as the timeout has elapsed.
Sam Lantinga 2423c514 2021-10-13T09:33:51 Work around hang in AAudioStream_write() during extended shared object loading while running in a debugger. Observed on a OnePlus 8T (KB2005) running Oxygen OS 11.0.10.10.KB05AA. The observed behavior is that any nonzero timeout value would hang until the device was paused and resumed. And a zero timeout value would always return 0 frames written even when audio fragments could be heard. Making a manual timeout system unworkable. None of the straightforward systems imply that there's a detectable problem before the call to AAudioStream_write(). And the callback set within AAudioStreamBuilder_setErrorCallback() does not get called as we enter the hang state. I've found that AAudioStream_getTimestamp() will report an error state from another thread. So this change codifies that behavior a bit until a better fix or more root cause can be found.
Erik Soma 0e294e90 2021-10-12T18:55:31 Ensure that SDL_InitSubSystem quits subsystems after an error. (#4834) * Ensure that SDL_InitSubSystem quits subsystems after an error. * Fix unnecessary change.
Ozkan Sezer 6149e601 2021-10-13T00:03:56 remove IsWin10FCUorNewer() -- not used since commit 40ed9f75c9e1ed
Ozkan Sezer 311671a0 2021-10-12T23:50:02 fixed build after commit 6e356e20ad
Rémy Tassoux 6e356e20 2021-10-12T18:35:52 Fix mouse focus being set to null when a captured mouse cursor leaves the window.
Cameron Cawley 9ee6942e 2021-09-22T14:01:00 Improve RISC OS implementations of SDL_GetBasePath and SDL_GetPrefPath
Cameron Cawley 3db898c5 2020-02-13T22:32:35 riscos: Implement SDL_GetPrefPath()