Commit Graph

4319 Commits

Author SHA1 Message Date
Sylvain
9727655b89
SDL_test_common: add other window flags: --shown, --hidden, --input-focus, --mouse-focus 2021-04-26 14:22:19 +02:00
Sylvain
d62ebec260
SDL_test_common: replace 'resize' by 'resizable' 2021-04-26 14:10:39 +02:00
Ryan C. Gordon
1f482174b5
x11: Mark backing_store as NotUseful when creating windows.
This can give some performance boost, and save some resources, as there's no
reason to keep a copy of an SDL window's contents on the server: most SDL
apps are redrawing completely every frame, and the API allows for expose
events to tell an app a redraw is needed anyhow.

(And compositors are free to ignore this setting if it makes sense to do so,
according to the Xlib docs.)

Reference Issue #3776.
2021-04-25 12:44:35 -04:00
Ryan C. Gordon
9c063468d6
x11: call XSync before XSetInputFocus during SDL_ShowWindow.
This only happens when using a non-NET_WM window manager, as we might try to
set the focus before the window is mapped.

Fixes #3949.
2021-04-24 19:55:41 -04:00
Ivan Epifanov
ca969eb2be Remove gles2 vita render 2021-04-24 14:13:09 -07:00
Ivan Epifanov
058bbe0286 Set volume on device open 2021-04-24 14:13:09 -07:00
Ivan Epifanov
e3ea5b6468 Migrate to lightweight mutexes 2021-04-24 14:13:09 -07:00
Steven Noonan
f1ad942a11 SDL_windows_main: use HeapAlloc/HeapFree for command line arguments
If a developer uses SDL_SetMemoryFunctions, we can't rely on SDL_free()
working when SDL_main() returns.

Signed-off-by: Steven Noonan <steven@valvesoftware.com>
Signed-off-by: Sam Lantinga <slouken@libsdl.org>
2021-04-22 17:26:13 -07:00
Steven Noonan
17d8479d98 hidapi/libusb: maintain in-memory cache of vendor/product strings
The get_usb_string call is rather expensive on some USB devices, so we
cache the vendor/product strings for future lookups (e.g. when
hid_enumerate is invoked again later).

This way, we only need to ask libusb for strings for devices we haven't
seen since before we started.

Signed-off-by: Steven Noonan <steven@valvesoftware.com>
Signed-off-by: Sam Lantinga <slouken@libsdl.org>
2021-04-22 16:40:23 -07:00
Steven Noonan
4535d65491 HIDAPI_UpdateDiscovery: only treat "add" and "remove" events as relevant
I have a buggy system which reports a udev "change" event for an empty
USB-C port every 0.14 seconds, which causes annoying frame hitches
because SDL decides that means it needs to do a libusb hid_enumerate,
which is slow (~25ms!) because of the get_usb_string() calls in there.

We only need to re-enumerate if we've seen a device added or removed, so
let's filter out the change event first.

Signed-off-by: Steven Noonan <steven@valvesoftware.com>
Signed-off-by: Sam Lantinga <slouken@libsdl.org>
2021-04-22 16:40:16 -07:00
Steven Noonan
b15bbd4e3f SDL_udev: check for NULL return value from udev_device_get_action
Signed-off-by: Steven Noonan <steven@valvesoftware.com>
Signed-off-by: Sam Lantinga <slouken@libsdl.org>
2021-04-22 16:39:22 -07:00
Sylvain
cf05a5eb0c
eglChooseConfig: only add EGL_DEPTH_SIZE if non 0
and fix static / shadowed variables warnings for dump configs
2021-04-22 21:40:57 +02:00
Sylvain
98a966d1c2
Android: don't need to set the SurfaceHolder format from java code
It's already set with ANativeWindow_setGeometry, and eventually set/changed also by eglCreateWindowSurface.
 - avoid issues with older device where SurfaceView cycle create/changed/destroy appears broken:
   calling create/changed/changed, and leading to "deuqueBuffer failed at server side, error: -19", with black screen.
 - re-read the format after egl window surface is created, to report the correct one (sometimes, changed from RGBA8888 to RGB24)
2021-04-22 18:06:17 +02:00
Ethan Lee
8e3ec34d34 wayland: Refactor toplevel mapping, implement HideWindow 2021-04-21 13:11:47 -04:00
Cacodemon345
0838f53d5a Implement SDL_SetWindowAlwaysOnTop for X11 2021-04-21 13:09:10 -04:00
Mathieu Eyraud
a5825576fb Fix error handling of wayland message box
Zenity return a small integer on success which may be the same as EXIT_FAILURE. Use a bigger integer for error reporting from child process.
2021-04-21 09:53:39 -04:00
Mathieu Eyraud
12dd412b0b Fix icon of wayland message box
Also add some comments and silence a warning.

Co-authored-by: Ethan Lee <flibitijibibo@gmail.com>
2021-04-21 09:53:39 -04:00
meyraud705
d0cf3b7555 Return correct button id 2021-04-21 09:53:39 -04:00
meyraud705
1fd95c53b6 Disable pango markup in wayland massage box
Zenity support pango markup, add --no-markup to disable it.
2021-04-21 09:53:39 -04:00
meyraud705
0cd0e9ba98 Reimplement wayland message box function with execvp.
Previous version used 'popen' which required to sanitize user provided text. Not
sanitizing text could cause failure if user provided text included a " or command
injection with `cmd`.
2021-04-21 09:53:39 -04:00
Cacodemon345
99ef03b96e KMSDRM: Only use OpenBSD-specific defines on pre-6.9 releases 2021-04-20 19:44:55 -07:00
Joseph Lyncheski
a0a5da5d91 Add SDL_SetWindowAlwaysOnTop() 2021-04-20 08:45:28 -07:00
Sylvain
6be9c00970
Android: prevent error EGL_BAD_DISPLAY while getting egl version without display
There is an error "E libEGL  : validate_display:91 error 3008 (EGL_BAD_DISPLAY)"
that occurs when calling "eglQueryString(display, EGL_VERSION)", with EGL_NO_DISPLAY.

Khronos says "EGL_BAD_DISPLAY is generated if display is not an EGL display connection, unless display is EGL_NO_DISPLAY and name is EGL_EXTENSIONS."
but this was added in SDL with "EGL 1.5 allows querying for client version"
( 56363ebf61 )

In fact:
- it actually doesn't work on Android that has 1.5 egl client
- it works on desktop X11 (using SDL_VIDEO_X11_FORCE_EGL=1)

The commit moves the version call where it's used, eg inside the "if (platform) {"
and checks that "eglGetPlatformDisplay" has been correctly loaded.
2021-04-20 13:46:25 +02:00
Ryan C. Gordon
03503423e9
filesystem: Better OpenBSD support for SDL_GetBasePath().
Fixes #3752.
2021-04-19 23:32:45 -04:00
ReNoM
de6d290266 Fix keymap updating for X11 backend 2021-04-19 15:54:09 -04:00
Ethan Lee
509228c423 wayland: Implement GetDisplayDPI 2021-04-19 00:14:15 -04:00
Ethan Lee
fcbfe33ce5 wayland: Implement SetWindowModalFor 2021-04-19 00:14:15 -04:00
Ethan Lee
213bfc194e wayland: Implement RestoreWindow for xdg/zxdg 2021-04-19 00:14:15 -04:00
Ethan Lee
0f51800229 wayland: Removed unused GetDisplayModes/SetDisplayMode functions 2021-04-19 00:14:15 -04:00
Ethan Lee
46df195b2a wayland: Implement GetDisplayBounds 2021-04-19 00:14:15 -04:00
Ethan Lee
ed24c3452a wayland: Implement basic window move events via wl_surface_listener.
This unearthed an unspeakably large amount of bugs in the wl_output enumerator,
notably the fact that the wl_output user pointer was to temporary memory!
This was "fixed" in e862856, and was then pointed out as a leak in 4183211,
which was undone in d9ba204. The busted fix was correct that the malloc was an
issue, but wrong about _why_; SDL_AddVideoDisplay copies by value and does not
reuse the pointer, so generally you want your VideoDisplay to be on the stack,
but of course the callbacks don't allow that, so a malloc was a workaround. But
we can do better and just host our temporary display inside WaylandOutputData
because that will be persistent while also not leaking.

Wait, wasn't I talking about move events? Right, that: wl_surface_listener does
at least give us the ability to know what monitor we're on, even though we have
no idea where we are on the monitor. All we need to do is check the wl_output
against the display list and then push a move event that both indicates the
correct display while also not being _too_ much of a lie (but enough of a lie
to where our event doesn't get discarded as "undefined" or whatever). The index
check for the video display is what spawned the great nightmare you see before
you; aside from the bugfix this is actually a really basic patch.
2021-04-16 21:12:02 -07:00
Sylvain
b4f89c56c6
AAudio: add aaudio pause/resume function to android events loop 2021-04-15 21:16:10 +02:00
Sylvain
f1fab24e35
AAudio: add bootstrap in SDL_audio.c 2021-04-15 21:00:00 +02:00
Sylvain
04b2f5f6ec
Android: add AAudio back-end, with playback and capture (see #3710)
https://developer.android.com/ndk/guides/audio/aaudio/aaudio
2021-04-15 20:54:58 +02:00
Sylvain
4118fe62fe
Android: OpenSLES, explicitly initialise the global variable 'bqPlayerPlay',
it may be read even if OpenSLES back-end hasn't been intialized
2021-04-15 20:52:43 +02:00
Sam Lantinga
499d31e9cd Cleanup Linux joystick code 2021-04-13 17:00:24 -07:00
Luis Cáceres
5c78df9c23
Support key composing (i.e. dead keys) in Wayland driver (#4296)
Based on an old patch by chw from the old Bugzilla issue tracker.

Authored-by: chw

Co-authored-by: Sam Lantinga <slouken@libsdl.org>
2021-04-13 16:56:50 -07:00
Sam Lantinga
b04136e75e Fixed Xbox controller when using the default Linux gamepad mapping
Tested with the Xbox Series X controller and the xow driver
2021-04-13 16:29:48 -07:00
Sam Lantinga
1aaafc2bd8 Show the real name of the Xbox controller when using the generic mapping on Linux 2021-04-13 16:29:46 -07:00
Paul Cercueil
1542300a89 joystick: linux: Avoid checking for gamepad mapping each frame
The information whether a specific joystick can be used as a gamepad is
not going to change every frame, so we can cache the result into a
variable.

This dramatically reduces the performance impact of SDL2 on small
embedded devices, since the code path that is now avoided was quite
heavy.

Fixes #4229.

Signed-off-by: Paul Cercueil <paul@crapouillou.net>
2021-04-13 16:07:35 -07:00
Ethan Lee
f88d91d596 wayland: Minor whitespace fix 2021-04-13 16:02:53 -07:00
Ethan Lee
d785dab5fd wayland: Add unscaled resolutions to the display mode list 2021-04-13 16:02:53 -07:00
Cacodemon345
b0178fe518 KMSDRM: Report correct window position to the application 2021-04-13 16:01:44 -07:00
Ethan Lee
dfcd5fbcad wayland: Set the keymap in keyboard_handle_modifiers 2021-04-13 13:30:50 -07:00
Sylvain
e87c7940f5
Fixed bug 3829 - Don't FOURCC format for target textures
FOURCC isn't supported by renderer back-ends for target access
So use a correct format and fallback to with native/yuv path
2021-04-13 14:42:38 +02:00
Sam Lantinga
9ef0b97c6d Changes to macOS event handler to better interact with the running app
- Only focus a new window when one closes if the window that was closed was an SDL window

- If the application already has a key window set that is not an SDL window, don't replace it when the application is activated

- Only register the URL event handler when SDLAppDelegate is going to be set as the applications app delegate. This is to
   be consistent with previous behavior that would only register the handler in -[SDLAppDelegate applicationDidFinishLaunching:]
   and allows the running app to opt out of the behavior by setting its own app delegate.

- The URL event handler is now removed if it was set on SDLAppDelegate dealloc
2021-04-12 11:25:44 -07:00
Sam Lantinga
2a20cc0f1d SDL: let through a SetLED command every 5sec to deall with situations where the controller loses power when a computer is suspended
CR: SamL
2021-04-12 11:25:42 -07:00
Ethan Lee
c59d4dcd38 wayland: Dramatically lower the timeout when reading/writing pipes 2021-04-09 22:30:08 -07:00
Ethan Lee
cf12496311 wayland: Fall back to clipboard source data if offer came up empty 2021-04-09 22:30:08 -07:00
Ethan Lee
282c052479 wayland: Another strlen->SDL_strlen 2021-04-09 22:30:08 -07:00
Ethan Lee
bec133d77b wayland: Use SDL_strlen instead of strlen 2021-04-09 22:30:08 -07:00
Ethan Lee
e28d978509 wayland: Minor whitespace cleanup in clipboard.c 2021-04-09 22:30:08 -07:00
Ethan Lee
875f839df4 wayland: A bunch of clipboard safety fixes.
Also removed Wayland_get_data_device because it was a pointless getter function.
2021-04-09 22:30:08 -07:00
Ethan Lee
7510245af9 wayland: Create the data_device only after both device_manager and input exist.
There is no guarantee on what order the Wayland interfaces will come in, but the
callbacks were assuming that wl_data_device_manager would could before wl_seat.
This would cause certain desktops to not have any data_device to work with,
meaning certain features like the clipboard would silently no-op.
2021-04-09 22:30:08 -07:00
Dean Herbert
89b6209313 Fix race condition that can lead to ENTER/LEAVE window events never firing
On windows, when toggling the state of RelativeMode rapidly, there is a
high chance that SDL_WINDOWEVENT_ENTER / SDL_WINDOWEVENT_LEAVE events
will stop firing indefinitely.

This aims to resolve that shortcoming by ensuring mouse focus state is
correctly updated via WM_MOUSELEAVE events arriving via the windows
event hook.
2021-04-07 14:02:43 -07:00
David Edmundson
6fd37194bc wayland: Fix leaked zxdg_decoration_manager 2021-04-07 13:56:48 -07:00
David Edmundson
f6a09ef1a9 wayland: Drop support for kwin specific decoration management
KWin has supported the shared and formalised zxdg_decoration since
Plasma 5.16 which came out mid 2019.

Whilst it made sense to support them both for a while, it should not be
needed for future SDL releases.
2021-04-07 13:54:07 -07:00
Ethan Lee
a92cca1ab8 wayland: Use the window's display to get wl_output rather than fullscreen_mode.
Because Wayland only supports FULLSCREEN_DESKTOP, fullscreen_mode never gets
assigned at all, meaning driverdata is always NULL! Depending on what the
compositor does this can lead to dramatically different results. GNOME was fine
without this, but Plasma would trip an event that unintentionally unset the
fullscreen mode and caused the game to fire a configure event _every frame_,
and of course the configure would send the fullscreen_mode output which was
still empty. The fix is to just use the SDL_VideoDisplay directly, which will
always have a valid wl_output.
2021-04-07 13:53:15 -07:00
Ethan Lee
c7e29a9e95 wayland: Fix toggling fullscreen with fixed-size windows 2021-04-07 13:53:15 -07:00
Ryan C. Gordon
0f4aba7bcd
audio: Fixed assertion failure if trying to use dummy backend. 2021-04-06 18:35:20 -04:00
Ryan C. Gordon
64853b7378
audio: Changed a disk and dummy backends to use _this instead of this. 2021-04-06 18:35:20 -04:00
Ozkan Sezer
e97cfe4ad1 KMSDRM_Vulkan_CreateSurface(): fixed pointer-cast warning on 32 bit
Closes: https://github.com/libsdl-org/SDL/issues/4284
2021-04-06 23:56:10 +03:00
okuoku
8fa2ce5601 WinRT: Rename Interface ID symbols
Rename locally-defined Interface ID symbols to avoid conflict with
locally linked dxgi library. Prefixed with `SDL_` to match with
other references in render_d3d11 or wasapi.
2021-04-04 09:19:16 -04:00
Nicholas "LB" Braden
3dbc4cf233 Fix compilation error for Windows SDK 8.1+
https://docs.microsoft.com/en-us/windows/win32/api/shellscalingapi/ne-shellscalingapi-monitor_dpi_type
2021-04-04 08:39:12 -04:00
meyraud705
413a2306bc NULL passed to strcmp in Wayland_ShowMessageBox 2021-04-04 08:15:33 -04:00
Ryan C. Gordon
4914199665
ibus: make sure we don't pass a NULL path string over D-Bus.
Fixes #2941.
2021-04-04 00:29:26 -04:00
Ryan C. Gordon
354cabd4a7
egl: favor truecolor configurations.
If app requested <= 16 color depth and there is a 24-bit config available,
favor that. This fixes things that quietly expect to get truecolor output
but don't request it (...like SDL's render api...) and things that are
probably requesting 16-bit color as a fallback but expecting reasonable
systems to give them full depth.

Specifically, this fixes Life is Strange on Wayland, which uses the latter
approach, and anything using SDL_Render on Wayland, which uses the former.

Fixes #4056.
Fixes #4132.
2021-04-03 18:48:54 -04:00
Ryan C. Gordon
4abe34461f
SDL_EGL_ChooseConfig: cleanups and minor optimizations.
- Move an immutable condition out of a for loop.
- Add a break statement to that loop when we find what we're looking for.
- Add an assert to make sure we don't overflow a buffer.
- Wrap a single-statement if block in braces.
- Adjust some whitespace.
2021-04-03 10:10:58 -04:00
Ryan C. Gordon
7d02248cf5
tls: wrap reference to a mutex into an #if !SDL_THREADS_DISABLED test. 2021-04-02 14:36:53 -04:00
Ryan C. Gordon
dbdbae44c5
linux: (de)initialize d-bus at init and quit.
Previously we had different subsystems quitting it, in conflict, and risked
multiple threads racing to init it at the same time.

Fixes #3643.
2021-04-02 14:35:11 -04:00
Ryan C. Gordon
57c2a4566f
render: draw when hidden, except on iOS and Android.
Fixes #2979.
2021-04-02 14:01:41 -04:00
Vanfanel
fa81883418 [KMSDRM] Fake refresh rate precision on Vulkan display mode creation. 2021-03-31 15:32:17 -04:00
Vanfanel
942aa7bd07 [KMSDRM] No need to use an SDL_VideoDisplay pointer to access display index. 2021-03-31 15:32:17 -04:00
Learath
033c0abb58 Use dispatch_async for -[NSOpenGLContext update]. Fixes #3680 2021-03-31 10:46:31 -04:00
Ethan Lee
eeee730833 wayland: Implement IME support.
Note that this is purely to make it possible to enter text that requires
composition - for example, before this commit Kanji input didn't work at all.

The big problem this still has is that we need the window position, and this is
still not implemented. Once we have this information we can do the equivalent
of XTranslateCoordinates to put the rectangle where we want it.
2021-03-29 15:54:36 -07:00
vanfanel
733b3278de [KMSDRM] Minor Vulkan code adjustments regarding pointers and display index. 2021-03-29 11:07:36 -07:00
Ethan Lee
9d294f1fca audio: Allow AudioStreamGet to return 0 in RunAudio.
While we should normally expect _something_ from the stream based on the
AudioStreamAvailable check, it's possible for a device change to flush the
stream at an inconvenient time, causing this function to return 0.

Thing is, this is harmless. Either data will be NULL and the result won't matter
anyway, or the data buffer will be zeroed out and the output will just be
silence for the brief moment that the device change is occurring. Both scenarios
work themselves out, and testing on Windows shows that this behavior is safe.
2021-03-29 08:58:02 -07:00
Ethan Lee
9b7babf96e wasapi: Remove assert added by 67e8522d 2021-03-29 08:55:13 -07:00
Xing Ji
fb283a732a Squashed commit of the following:
commit 6b8f933589aa3925978a23e77a305a7e89c6ae4a
Author: Xing Ji <jixingcn@gmail.com>
Date:   Wed Mar 24 22:31:29 2021 +0800

    update the dynapi by `gendynapi.pl`

commit ebd1790c19983b652713f40ab1e139e485e1a2b7
Author: Xing Ji <jixingcn@gmail.com>
Date:   Wed Mar 24 22:17:48 2021 +0800

    revert the change in src/dynapi

commit 734b5f85c1613070081e39238e84198128971b53
Merge: 5a56e5a8 5ac6bd54
Author: Xing Ji <jixingcn@gmail.com>
Date:   Wed Mar 24 22:14:40 2021 +0800

    Merge remote-tracking branch 'libsdl/main' into jixingcn

commit 5a56e5a8227d9cff6b497b681c618a76bec1cae1
Author: Xing Ji <jixingcn@gmail.com>
Date:   Mon Mar 22 23:55:10 2021 +0800

    Fix #3596, can call the `SDL_TLSCleanup` to cleanup the TLS data when closing the application
2021-03-29 08:54:41 -07:00
Ethan Lee
5ceb674426 linux: Fix ibus support on Wayland/XWayland 2021-03-29 08:50:56 -07:00
Frank Praznik
5f9effaa7e audio: pipewire: Block while waiting on stream state info
Initializing streams, particularly capture streams, can take many milliseconds, which is a bit much for a busy wait.  Use a blocking wait instead.
2021-03-29 08:49:25 -07:00
Frank Praznik
8deb406300 audio: pipewire: Avoid redundant locking
The pw_thread_loop already locks and unlocks the thread mutex at the start and end of each loop iteration, so these locks are unnecessary.
2021-03-29 08:49:25 -07:00
Frank Praznik
5bb2bbd40c audio: pipewire: Don't use uninitialized variables in callbacks
Some of the SDL_AudioDevice struct members aren't initialized until after returning from the OpenDevice function.  Since Pipewire uses it's own processing threads, the callbacks can be entered before all members of SDL_AudioDevice are initialized, such as work_buffer, callbackspec and the processing stream, which creates a race condition.  Don't use these members when in the paused state to avoid potentially using uninitialized values and memory.
2021-03-29 08:49:25 -07:00
Vanfanel
9de7eaf9ac [KMSDRM] Change error message. 2021-03-28 16:38:06 -07:00
Vanfanel
1ec60a38eb [KMSDRM] Remove unnecessary space. 2021-03-28 16:38:06 -07:00
Vanfanel
c13c3c37bd [KMSDRM] For Vulkan, use a mode with the same exact size as the window, if possible, or create a new one. 2021-03-28 16:38:06 -07:00
Ethan Lee
07ba13b7a9 wayland: Pass --no-wrap to Zenity.
There seems to be a bug where it can wrap the text based on the minimum possible
window size, which can be worked around with --no-wrap. This technically uncaps
the width entirely, but this isn't wildly different from what other backends do.
2021-03-27 02:57:39 -04:00
Ethan Lee
54719a9d3d wayland: Assign output_len in ShowMessageBox 2021-03-27 02:57:39 -04:00
Sam Lantinga
4a07c73b80 Added mapping for the Amazon Luna controller on Linux 2021-03-26 13:53:58 -07:00
Sam Lantinga
07af9baa86 Use the correct name for the Amazon Luna Gamepad 2021-03-26 13:05:38 -07:00
Sam Lantinga
ef36355563 Added mapping for the Amazon Luna controller on macOS 2021-03-26 13:03:29 -07:00
Sam Lantinga
3377861ab1 Added support for the Amazon Game Controller to the HIDAPI driver 2021-03-26 11:57:19 -07:00
Ethan Lee
27b74d3334 Implement Wayland_ShowMessageBox using Zenity 2021-03-25 23:37:14 -04:00
Ozkan Sezer
5262b52ddd SDL_kmsdrmvideo.c: define EGL_PLATFORM_GBM_MESA if it's missing.
Fixes:		https://github.com/libsdl-org/SDL/issues/4232
2021-03-25 23:56:56 +03:00
vanfanel
5ac6bd5483 [KMSDRM] Ask for videomode on the correct display when creating a window. 2021-03-23 21:51:36 -07:00
Fabrice Fontaine
b55b11af88 src/thread/pthread/SDL_systhread.c: drop include of SDL_platform.h
Drop include of SDL_platform.h as SDL_plaform.h is already included by
SDL_internal.h -> SDL_config.h -> SDL_platform.h

Signed-off-by: Fabrice Fontaine <fontaine.fabrice@gmail.com>
2021-03-23 11:33:00 +03:00
Sam Lantinga
0bdf4f95bf Disable system gestures on MFi controllers while they're open, so we get access to the back button, etc. 2021-03-22 19:19:01 -07:00
Sam Lantinga
1133ea0349 Fixed crash on macOS when AirPods are connected 2021-03-22 19:18:57 -07:00
Paul Cercueil
c12f46b100 [KMSDRM] Fix segmentation fault
Deference the windata pointer *after* checking that it's non-NULL.

Signed-off-by: Paul Cercueil <paul@crapouillou.net>
2021-03-22 22:20:01 +03:00
vanfanel
100166d7d7 [KMSDRM] Improve cursor management. 2021-03-22 10:48:02 -07:00
vanfanel
cf7eef37b0 [KMSDRM] Better error handling: no more segfaults on window creation failure. 2021-03-20 11:03:52 -07:00
Vanfanel
4acd1dcad4 [KMSDRM] Improve the way to test if last window is being destroyed. 2021-03-18 11:04:28 -07:00
Vanfanel
8638674a87 [KMSDRM] Correct comment typo. 2021-03-18 11:04:28 -07:00
vanfanel
82ff6045fa [KMSDRM] Unload GL/EGL libs and destroy GBM only when we are destroying the last window. 2021-03-18 11:04:28 -07:00
vanfanel
c35e71892e [KMSDRM] All non-vulkan windows have to be marked as OPENGL, not only the first created one. 2021-03-18 11:04:28 -07:00
vanfanel
281a7bdbb3 [KMSDRM] Make the gbm_init flag a viddata member to avoid GBM re-init when several displays are connected. 2021-03-18 11:04:28 -07:00
Vanfanel
7d1b9c9f15 [KMSDRM] Remove unneeded function calls and improve comments for future reference. 2021-03-17 11:29:13 -07:00
Ryan C. Gordon
e7e519a466
dsp: Refuse to initialize if there aren't any Open Sound System devices.
This prevents the dsp target from stealing the audio subsystem but not
being able to produce sound, so other audio targets further down the list
can make an attempt instead.

Thanks to Frank Praznik who did a lot of the research on this problem!
2021-03-17 13:04:05 -04:00
Ankith
559be8aab4 fix invalid out of bounds UTF8 handling 2021-03-16 18:51:28 -07:00
Ankith
07fc1bb883 Fix invalid UTF-8 handling of extra bytes 2021-03-16 18:51:28 -07:00
Vanfanel
e14fb54e3f [KMSDRM] Undo SDL_CreateRenderer() modifications aimed at create opengles2 when KMSDRM is in use because it's a harmful solution. 2021-03-16 11:07:54 -07:00
Vanfanel
108bb5aabe [KMSDRM] Modify SDL_CreateRenderer() to create an opengles2 renderer when the KMSDRM backend is being used and no renderer name has been specified. 2021-03-15 18:47:22 -07:00
Ryan C. Gordon
b98b5adcae
wasapi: Don't use the system's resampler. 2021-03-15 10:21:36 -04:00
Haelwenn (lanodan) Monnier
9996cecc72 Set ALT_OGL to libOpenGL.so.0 instead of libOpenGL.so.1 2021-03-15 10:10:38 +03:00
Cacodemon345
5f7eb88ae0 Load libOpenGL.so.1 if libGL.so.1 is not found 2021-03-14 17:37:55 -07:00
Ozkan Sezer
1957ffd21a fixed a typo in SDL_ceilf() 2021-03-14 11:04:28 +03:00
Cacodemon345
dacf6cfbaa Fix compilation with iconv on FreeBSD 2021-03-13 18:39:42 -08:00
nia
a5f3ea1448 netbsdaudio: Handle ioctls failing
A user reported that the mpv video player hangs after attempting to
set an unsupported number of channels with the SDL audio output,
because it thinks it's successfully opened the device. This makes
the failure graceful.
2021-03-13 18:37:21 -08:00
Frank Praznik
4fbd60b817 audio: pipewire: Remove the nickname portion of sink/source names
Removes the node nickname from sink/source nodes as it doesn't provide any useful information and names now match those used in Pulseaudio, so any stored configuration data will be compatible between the two audio backends.
2021-03-13 18:36:47 -08:00
kenmays
72bcf546f9 SDL: Updated patches for HAIKU 2021-03-13 18:36:01 -08:00
Sylvain Becker
3d22731d94
Merge pull request #4175 from 1bsyl/br_blit_rgb555_to_rb1555
Fixed bug 3727 - Blit from RGB555 to ARGB1555
2021-03-11 20:10:07 +01:00
Sylvain
51345623e8
Fixed bug 3727 - Blit from RGB555 to ARGB1555 2021-03-11 20:06:09 +01:00
Ivan Epifanov
33127271e5 Fix typecasting 2021-03-09 12:10:40 +03:00
Ivan Epifanov
a4ddb175f1 Formatting 2021-03-08 09:07:12 -08:00
Ivan Epifanov
4f9fde8766 Fix types 2021-03-08 09:07:12 -08:00
Ivan Epifanov
e58a955e68 Deprecate dolcesdk 2021-03-08 09:07:12 -08:00
Ivan Epifanov
e1d9cbf65c Split mouse/kb grab 2021-03-08 09:07:12 -08:00
uyjulian
29153a1c63 SDL_vitamessagebox: rearrange if/else
Set messageboxdata and buttonid as unused variables
2021-03-08 09:07:12 -08:00
uyjulian
70a19fd5ab SDL_vitamessagebox: if/else wrap preprocessor condition instead of two if conditions 2021-03-08 09:07:12 -08:00
uyjulian
abcfb22b7d Add support for Vita file API in SDL_rwops 2021-03-08 09:07:12 -08:00
uyjulian
c8abc88cd0 Add support for message box 2021-03-08 09:07:12 -08:00
José Cadete
91fe2b67f5 Allow larger texture sizes 2021-03-08 09:07:12 -08:00
Ivan Epifanov
e5cbe7cf7a Add l2/r2 axes, l3/r3 buttons. rumble and ledbar support for ds4 2021-03-08 09:07:12 -08:00
Ivan Epifanov
7c4d20cf04 Fix for dolcesdk 2021-03-08 09:07:12 -08:00
Ivan Epifanov
3c1fe9cea6 WTF 2021-03-08 09:07:12 -08:00
Ivan Epifanov
6fab3323c3 Typo 2021-03-08 09:07:12 -08:00
José Cadete
739f4e1eb2 Only call sceGxmFinish when vsync is on
Also fix oversight with supported textures
2021-03-08 09:07:12 -08:00
uyjulian
b52e9459ba Add support for open URL 2021-03-08 09:07:12 -08:00
Ivan Epifanov
189d3c16f5 FIFO is default (and not defined in vitasdk, ugh) 2021-03-08 09:07:12 -08:00
Ivan Epifanov
87a118b6b6 Use native mutexes 2021-03-08 09:07:12 -08:00
Ivan Epifanov
7423ae1ac7 Formatting 2021-03-08 09:07:12 -08:00
José Cadete
ddfe7200e2 Rendering improvements
- Improve performance for unbatched rendering
- Support direct texture access
2021-03-08 09:07:12 -08:00
Ivan Epifanov
23db5381a3 Fix defines 2021-03-08 09:07:12 -08:00
Ivan Epifanov
c7cec2c792 Add more texture formats 2021-03-08 09:07:12 -08:00
Ivan Epifanov
e56c44512a Disable native framebuffer support 2021-03-08 09:07:12 -08:00
Ivan Epifanov
5e30d84b69 Fix display mode 2021-03-08 09:07:12 -08:00
Ivan Epifanov
10038228f9 Properly cleanup framebuffer 2021-03-08 09:07:12 -08:00
Ivan Epifanov
953101defd Oops. Fix default framebuffer color 2021-03-08 09:07:12 -08:00
Ivan Epifanov
1e2eed1a01 Native framebuffer for software renderer 2021-03-08 09:07:12 -08:00
Ivan Epifanov
a7269a9ad3 Update video api to 2.0.14 2021-03-08 09:07:12 -08:00
Ivan Epifanov
7b0b1a12fa Update thread api to 2.0.14 2021-03-08 09:07:12 -08:00
Ivan Epifanov
a05f92da1c Update joystick api to 2.0.14 2021-03-08 09:07:12 -08:00
Ivan Epifanov
ca5e5d6154 VITASDK compatibility 2021-03-08 09:07:12 -08:00
Ivan Epifanov
7d89f09f74 ISO C90 fixes 2021-03-08 09:07:12 -08:00
Ivan Epifanov
0da35d3daf IME support with gxm backend 2021-03-08 09:07:12 -08:00
Ivan Epifanov
47c6270ece Fix a bug in vitagles2 renderer 2021-03-08 09:07:12 -08:00
Ivan Epifanov
639323ea0d Fixed gxm render flags 2021-03-08 09:07:12 -08:00
Ivan Epifanov
3ac2242e65 Fix PerformanceCounter 2021-03-08 09:07:12 -08:00
Ivan Epifanov
943053a922 Clean up touch a little more 2021-03-08 09:07:12 -08:00
Ivan Epifanov
f61b9e7653 Cleanup touch. Fix back touchscreen 2021-03-08 09:07:12 -08:00
Ivan Epifanov
d9b2bde2f6 Fallback to app0: 2021-03-08 09:07:12 -08:00
Ivan Epifanov
6f7c7c557a sensors corrections 2021-03-08 09:07:12 -08:00
Ivan Epifanov
6d85637786 Fix sensors 2021-03-08 09:07:12 -08:00
Ivan Epifanov
e7edb06e7a Audio fix 2021-03-08 09:07:12 -08:00
Ivan Epifanov
05e5a7cb05 Oops 2021-03-08 09:07:12 -08:00
Ivan Epifanov
a86ba3916e Add SDL_RenderReadPixels 2021-03-08 09:07:12 -08:00
Ivan Epifanov
f623211eea remove sceGxmFinish on render swap 2021-03-08 09:07:12 -08:00
Ivan Epifanov
0b45529e24 Add viewport support 2021-03-08 09:07:12 -08:00
Ivan Epifanov
2209b71789 Refactor render state 2021-03-08 09:07:12 -08:00
Ivan Epifanov
333d5e11e1 Add drawstate cache 2021-03-08 09:07:12 -08:00
Ivan Epifanov
56bde0f633 Rename memory functions to avoid clash with vita2d 2021-03-08 09:07:12 -08:00
Ivan Epifanov
94d7737bef Texture render target 2021-03-08 09:07:12 -08:00
Ivan Epifanov
63e223fa50 Set initial blend mode 2021-03-08 09:07:12 -08:00
Ivan Epifanov
6c3bf56503 Unified build with both renderers 2021-03-08 09:07:12 -08:00
Ivan Epifanov
a1adc8a9d6 Add sensor support 2021-03-08 09:07:12 -08:00
Ivan Epifanov
bd14aa633f Autobuild 2021-03-08 09:07:12 -08:00
Ivan Epifanov
0131105408 Fix render name 2021-03-08 09:07:12 -08:00
Ivan Epifanov
6ba8497518 Remove vita2d render, add raw gxm render 2021-03-08 09:07:12 -08:00
Ivan Epifanov
ef0bbfd6c6 Include anf fix vita2d renderer 2021-03-08 09:07:12 -08:00
Ivan Epifanov
dbb730d395 Separate vita piglet renderer. Add proper render initialization and window re-creation. 2021-03-08 09:07:12 -08:00
Ivan Epifanov
d75ea51ac0 Fix texture shaders 2021-03-08 09:07:12 -08:00
Ivan Epifanov
194c813893 Fix filesystem 2021-03-08 09:07:12 -08:00
Ivan Epifanov
73b545ed28 Fix joystick support 2021-03-08 09:07:12 -08:00
Ivan Epifanov
41d6c80b07 Filesystem module 2021-03-08 09:07:12 -08:00
Ivan Epifanov
2e3dd0a668 Remove debug log 2021-03-08 09:07:12 -08:00
Ivan Epifanov
8003623061 Cg shaders for vita gles2 2021-03-08 09:07:12 -08:00
Ivan Epifanov
2d64e37e41 Initial rebase of xerpi's port 2021-03-08 09:07:12 -08:00
Sylvain
b6b0c908bd
Dynapi: fix 'gendynapi.pl' script for array parameters 2021-03-08 13:56:26 +01:00
Cameron Cawley
391bb80bb9 Replace duplicate functions and lstrlen/lstrcat with SDL string functions 2021-03-05 12:03:58 -08:00
Ethan Lee
67e8522d31 Add SDL_GetAudioDeviceSpec.
This API is supported by pipewire, pulseaudio, coreaudio, wasapi, and disk.
2021-03-05 12:03:07 -08:00
Ozkan Sezer
686935542e dos2unix SDL_dynapi_*.h 2021-03-04 23:50:40 +03:00
Ozkan Sezer
dd5aff308a SDL_fillrect.c: updated SSE_BEGIN macro for windows clang-cl
from a patchset by Vladislav Dmitrievich Turbanov:
https://github.com/libsdl-org/SDL/pull/4062
2021-03-04 18:27:56 +03:00
Ozkan Sezer
0ed1713128 update SDL_COMPOSE_ERROR macro for windows clang-cl
from a patchset by Vladislav Dmitrievich Turbanov:
https://github.com/libsdl-org/SDL/pull/4062
2021-03-04 18:27:47 +03:00
Ozkan Sezer
c1c4f274c3 cpuinfo: updated xgetbv call for windows clang-cl.
from a patchset by Vladislav Dmitrievich Turbanov:
https://github.com/libsdl-org/SDL/pull/4062
2021-03-04 18:27:32 +03:00
Sylvain
e88d78462e Update SDL_blit_auto.c 2021-03-04 14:36:33 +01:00
Sylvain
ab0cf42a4b
Software nearest scaling: start at the middle of pixel
so that it matches opengl GL_NEAREST mode most of the time
2021-03-04 14:33:56 +01:00
Ozkan Sezer
ac8a3fda8f fix prepare_audiospec() possibly missing a bad SDL_AUDIO_CHANNELS env. 2021-03-03 20:33:20 +03:00
Nicolas Noble
6158621610 Update cpuid code for clang-cl
The clang-cl compiler defines `__llvm__` but not `__GNUC__`. The `__cpuid` intrinsic doesn't seem to exist with clang-cl, so the code won't link properly. The `__GNUC__` versions of these functions will work properly on Windows with clang-cl.
2021-03-03 15:37:21 +03:00
Frank Praznik
4de0c74aa7 audio: pipewire: Add the application name to the stream properties 2021-03-02 12:59:04 -08:00
Frank Praznik
9ed01da701 audio: pipewire: Constify and clarify period size calculations
Constify the min/max period variables, use a #define for the base clock rate used in the calculations and note that changing the upper limit can have dire side effects as it's a hard limit in Pipewire.
2021-03-02 12:59:04 -08:00