Commit Graph

5850 Commits

Author SHA1 Message Date
Philipp Wiesemann
b32cb8cb55 WinRT: Removed dead code and fixed memory leak if allocation for driver failed. 2016-03-10 21:00:44 +01:00
Sam Lantinga
805ea10448 Fixed infinite timeout in SDL_WaitEventTimeout() - thanks Константин Гончарик 2016-03-08 13:55:50 -08:00
Ethan Lee
d65874ec30 Allow mappings to be added before GameControllerInit 2016-03-07 08:22:55 -05:00
Ryan C. Gordon
e13ccec7c5 alsa: Implemented basic device detection.
This is kind of nasty, because ALSA reports dozens of "devices" that aren't
really things you'd ever want, or things that should be listed this way, but
the default path still works as before, and it at least allows these devices
to be available to apps.

This does not handle hotplugging yet. You get a device list at init time
and that's it.
2016-03-05 23:25:23 -05:00
Ryan C. Gordon
11475fb94b x11: Fix a few more XMoveWindow() calls to adjust for border size.
Also, fix my inability to do basic math ('+' should have been '-').
2016-03-04 19:41:16 -05:00
Ryan C. Gordon
207f64be90 x11: Deal with window borders better.
- Cache the _NET_FRAME_EXTENTS data locally, so we don't have to query
the X server for them (instead, we update our cached data when PropertyNotify
events alert us to a change).

- Use our cached extents for X11_GetWindowBordersSize(), so it's a fast call.

- Window position was meant to refer to the client area, not the window
decorations, so adjust appropriately when getting/setting the position.
2016-03-04 18:47:19 -05:00
Philipp Wiesemann
8d5701cb54 Raspberry: Fixed crash if memory allocation for cursor failed. 2016-03-03 20:12:51 +01:00
Philipp Wiesemann
34b4ed61a7 Wayland: Fixed fault in event handling which might have caused a crash someday.
Found by Cppcheck.
2016-03-02 20:25:23 +01:00
Philipp Wiesemann
b63b631908 Wayland: Fixed crash if allocating memory for cursor failed.
Also added missing error message if first allocation failed.
2016-03-02 20:25:09 +01:00
Jonas Ådahl
f694435eae wayland: Add wl_proxy_marshal_constructor_versioned sym
wl_proxy_marshal_constructor_versioned was introduce in wayland-client 1.10.
2016-02-17 15:14:20 +08:00
Brandon Schaefer
b94a541f1d Mir: Do not use opengl to find the valid pixel format if we dont use opengl 2016-02-25 10:06:33 -08:00
Philipp Wiesemann
100543c72a Mir: Replaced memcpy() with SDL_memcpy(). 2016-02-24 21:07:19 +01:00
Philipp Wiesemann
d735f865b3 Mir: Fixed comment at conditional compilation macro. 2016-02-24 21:06:46 +01:00
Philipp Wiesemann
bda77c951e Mir: Fixed crash if allocating memory for cursor failed. 2016-02-22 19:00:22 +01:00
bschaefer
042138daf0 Fix API/ABI breakage in Mir 0.13/0.14. 2016-02-21 15:19:35 -08:00
Ryan C. Gordon
9281d57720 Windows: Just use WaitForSingleObjectEx() everywhere.
(It's supported on WinXP, no reason to have an #ifdef here...I think.)
2016-02-21 17:21:29 -05:00
Ryan C. Gordon
b393584292 Windows: let threads be named in the debugger.
We now only raise the magic exception that names the thread when
IsDebuggerPresent() returns true. In such a case, Visual Studio will
catch the exception, set the thread name, and let the debugged process
continue normally. If the debugger isn't running, we don't raise an exception
at all.

Setting the name is a debugger trick; if the debugger isn't running, the name
won't be set if attached later in any case, so this doesn't lose functionality.

This lets this code work without assembly code, on win32 and win64, and
across various compilers.

The only "gotcha" is that if you have something attached that looks like a
debugger but doesn't respect this magic exception trick, the process will
likely crash, but that's probably a deficiency of the attached program.

Fixes Bugzilla #2089.
2016-02-21 17:05:25 -05:00
Ryan C. Gordon
422f779969 stdlib: Restored previous qsort() implementation; the licensing is resolved.
Thanks to Gareth McCaughan for changing his code to the zlib license on
our behalf!
2016-02-21 13:07:14 -05:00
Ryan C. Gordon
97765d90ed x11: better fix for the previous commit's fullscreen vs maximized issue. 2016-02-20 01:03:39 -05:00
Ryan C. Gordon
68a17edb92 x11: Don't mess with fullscreen vs maximized window state on unmapped windows. 2016-02-20 00:44:42 -05:00
Ryan C. Gordon
90c3cdd95a Android: Restored Philipp's joystick change, lost in the previous merge.
This patch, specifically: https://hg.libsdl.org/SDL/rev/2455bf5d1866
2016-02-19 00:28:53 -05:00
Ryan C. Gordon
0c40cd061c Merge Android C89 fixes from Eric Wing. 2016-02-19 00:24:00 -05:00
Ryan C. Gordon
2294945792 x11/wayland/mir: Make the dynamic loading macro salsa a little less messy. 2016-02-18 23:27:58 -05:00
Sam Lantinga
7de73c5558 Added support for the Mad Catz FightStick TE S+ PS3 2016-02-17 14:15:37 -08:00
Sam Lantinga
c9275b1ae3 Added support for the Mad Catz FightStick TE S+ PS4 2016-02-16 13:51:24 -08:00
Sam Lantinga
c38a46e6d6 Added support for the Akishop Customs PS360+ v1.66 and MadCatz PC USB Wired Stick 8818 2016-02-16 13:51:15 -08:00
Sam Lantinga
b4a9fba2ad Added support for several Mad Catz arcade sticks 2016-02-16 13:48:46 -08:00
Sam Lantinga
2678297b9f Allow using the game controller API with arcade sticks and other XInput devices 2016-02-16 13:47:37 -08:00
Philipp Wiesemann
eb71bfb353 Android: Changed an internal joystick function to return count instead of id.
The returned value is currently not used by the caller. The instance id would
also not be needed on Java side and providing it just complicated the function.

Partially fixes Bugzilla #3234.
2016-02-16 20:32:22 +01:00
Ryan C. Gordon
14d2f71038 x11: Patched to compile with DEBUG_XEVENTS on C89 compilers. 2016-02-12 00:27:21 -05:00
Ryan C. Gordon
3354847b04 x11: Removed an assert.
This assert triggers when run under XMonad. It's safe to pass a zero here
anyhow, as this will still work "well enough" and the original
problem--GNOME printing a warning message--is still fixed because GNOME's
window manager gives us a chance to grab a non-zero user-time value before
this code is run.
2016-02-15 21:49:09 -05:00
Ryan C. Gordon
5d23583f1d Another attempt to fix Windows build. 2016-02-15 03:37:01 -05:00
Ryan C. Gordon
3e63d888b3 Patched to compile on Visual Studio. 2016-02-15 03:21:26 -05:00
Ryan C. Gordon
df1ec61dab Replaced SDL_qsort with public domain code from PDCLib: http://pdclib.e43.eu/ 2016-02-15 03:16:46 -05:00
Alex Szpakowski
ff2304cf06 Windows: make sure SDL_TicksInit has been called before calling Sleep(ms) in SDL_Delay. This ensures the Windows system timer resolution is properly set before Sleep is called. 2016-02-14 21:17:25 -04:00
Philipp Wiesemann
358ffa8be9 PSP: Deactivated dynamic API.
Thanks to Bugzilla #3240 for pointing this out.
2016-02-13 17:35:38 +01:00
Philipp Wiesemann
f383de7fd6 Fixed spaces in license comments. 2016-02-10 19:31:23 +01:00
Eric Wing
0e05655f92 Android: C89 cleanup to avoid warnings/errors since the default gcc mode on Android is still pre-C99. 2016-02-09 17:36:42 -08:00
Ryan C. Gordon
6313255451 x11: Updated imKStoUCS.* to latest from x.org.
This was a version from XFree86 before now.  :)  Although not much has
changed.
2016-02-08 01:08:21 -05:00
Alex Szpakowski
1ff3dd4faa iOS: Implemented clipboard support. 2016-02-03 20:32:55 -04:00
Sam Lantinga
e6a54327c7 David Carlier implemented SDL_GetBasePath() for OpenBSD 2016-01-31 21:11:15 -08:00
Sam Lantinga
f630e1922b Return the full number of events from SDL_PeepEvents() if NULL is passed in with SDL_PEEKEVENT 2016-01-31 11:29:11 -08:00
Alex Szpakowski
03296fc36d x11: Fix AltGr generating an invalid keycode (bug #3244). Thanks Thomas! 2016-01-31 09:39:42 -04:00
Philipp Wiesemann
3759334d39 PSP: Removed inlined copy of SDL_CalculateAudioSpec()'s functionality. 2016-01-27 23:20:23 +01:00
Sam Lantinga
090180b057 Fixed creating fullscreen windows on Steam Link 2016-01-22 13:12:16 -08:00
Sam Lantinga
27224491cb Expose the EGL display and window for Vivante SDL windows 2016-01-16 21:58:49 -08:00
Philipp Wiesemann
1785faee11 Fixed compile warnings about type conversion.
Found by buildbot.
2016-01-16 21:25:10 +01:00
Philipp Wiesemann
3373b66792 Android: Added mouse initialization to reset state.
If the app is launched again then the shared object may be reused (on Android).
2016-01-12 22:23:00 +01:00
Philipp Wiesemann
7e691104db Android: Added mapping of mouse forward button and mouse back button. 2016-01-11 20:02:48 +01:00
Alex Szpakowski
e9af2aaad0 Removed dead code (caught by Clang's static analyzer). 2016-01-09 17:41:09 -04:00
Ryan C. Gordon
42c8c55ea2 x11: make last mouse coords sane upon window entry (thanks, Cengiz!).
(and thanks to Cengiz for many of the previous Unreal-related
patches! They were generically credited to Epic Games, but a large
amount of that work was his contribution.)

Fixes Bugzilla #3067.
2016-01-07 19:58:00 -05:00
Ryan C. Gordon
7e3ed918dd Fixed NULL dereference on drop events with no window associated.
(such as when dropping a file onto an app's icon to launch.)

This bug caught by Clang's static analyzer.
2016-01-07 16:01:24 -05:00
Ryan C. Gordon
f3c5e0378f Updated dynamic API table. 2016-01-07 14:51:22 -05:00
Ethan Lee
90917e91c8 SDL_RenderSetIntegerScale 2016-01-05 16:39:18 -05:00
Ryan C. Gordon
15cec4cfce Mac: Implemented SDL_GetDisplayDPI (thanks, Kirill!).
Fixes Bugzilla #3223.
2016-01-07 14:02:37 -05:00
Philipp Wiesemann
0bfcdcd7a0 Fixed compile warnings about uninitialized variables in test library.
Found by buildbot.
2016-01-06 22:39:29 +01:00
Ryan C. Gordon
01a557d29b Patched to compile on iOS. 2016-01-05 05:38:55 -05:00
Ryan C. Gordon
de04391e1d Android: Fixed up drop events for new interface. 2016-01-05 05:31:33 -05:00
Ryan C. Gordon
5416373cf0 Patched to compile. 2016-01-05 05:22:35 -05:00
Ryan C. Gordon
0170123536 Use SDL's stdinc functions instead of C runtime calls. 2016-01-05 02:29:16 -05:00
Ryan C. Gordon
35626f1605 Added SDL_WINDOWEVENT_TAKE_FOCUS.
This is for corner cases where a multi-window app is activated and wants to
make a decision about where focus should go.

This patch came from Unreal Engine 4's fork of SDL, compliments of Epic Games.
2016-01-05 02:27:50 -05:00
Ryan C. Gordon
9c9fe9d825 Added SDL_WINDOWEVENT_HIT_TEST.
This lets windows know when they are dropping a mouse event because their
hit test reported something other than SDL_HITTEST_NORMAL. It lets them know
exactly where in the event queue this happened.

This patch is based on work in Unreal Engine 4's fork of SDL,
compliments of Epic Games.
2015-04-21 10:10:59 -04:00
Ryan C. Gordon
6e05fc7475 Added SDL_SetWindowModalFor().
This is currently only implemented for X11.

This patch is based on work in Unreal Engine 4's fork of SDL,
compliments of Epic Games.
2015-04-21 09:45:58 -04:00
Ryan C. Gordon
ba5c3a4e15 Added SDL_SetWindowInputFocus().
This is currently only implemented for X11.

This patch is based on work in Unreal Engine 4's fork of SDL,
compliments of Epic Games.
2016-01-05 02:28:56 -05:00
Ryan C. Gordon
72069d9f3d Added SDL_SetWindowOpacity() and SDL_GetWindowOpacity().
This is currently implemented for X11, Cocoa, Windows, and DirectFB.

This patch is based on work in Unreal Engine 4's fork of SDL,
compliments of Epic Games.
2016-01-05 02:46:10 -05:00
Ryan C. Gordon
18612a605a Added SDL_GetWindowBordersSize().
This is currently only implemented for X11.

This patch is based on work in Unreal Engine 4's fork of SDL,
compliments of Epic Games.
2016-01-05 02:29:06 -05:00
Ryan C. Gordon
31f529b0b4 x11: Put a matching window_group wmhint on every window created.
This is useful to the Window Manager, so it can know to associate multiple SDL
windows with a single app.
2016-01-05 02:27:26 -05:00
Ryan C. Gordon
e83e190025 Added SDL_DROPBEGIN and SDL_DROPCOMPLETE events, plus window IDs for drops.
This allows an app to know when a set of drops are coming in a grouping of
some sort (for example, a user selected multiple files and dropped them all
on the window with a single drag), and when that set is complete.

This also adds a window ID to the drop events, so the app can determine to
which window a given drop was delivered. For application-level drops (for
example, you launched an app by dropping a file on its icon), the window ID
will be zero.
2016-01-05 01:42:00 -05:00
Ryan C. Gordon
a60edd4038 Added special window type flags.
Specifically: always on top, skip taskbar, tooltip, utility, and popup menu.

This is currently only implemented for X11.

This patch is based on work in Unreal Engine 4's fork of SDL,
compliments of Epic Games.
2016-01-05 01:30:40 -05:00
Ryan C. Gordon
4711bc9d8b Added SDL_DROPTEXT event, for dragging and dropping string data.
This patch is based on work in Unreal Engine 4's fork of SDL,
compliments of Epic Games.
2016-01-05 02:26:45 -05:00
Ryan C. Gordon
34581fedd1 Added SDL_GetDisplayUsableBounds(). 2016-01-04 23:52:40 -05:00
Ryan C. Gordon
5ee3b32f7c x11: Optimize SDL_GetGlobalMouseState() a little.
Use XInput2 to mark the global mouse state as dirty so we don't have to make
a bunch of roundtrips to the X server when nothing has changed.
2015-04-22 16:50:48 -04:00
Ryan C. Gordon
07be793e41 x11: window managers might mark windows as FULLSCREEN _and_ MAXIMIZED.
This patch came from Unreal Engine 4's fork of SDL, compliments of Epic Games.
2015-04-21 10:14:17 -04:00
Ryan C. Gordon
f81963db35 x11: Workaround window managers that mark fullscreen windows as maximized.
This patch came from Unreal Engine 4's fork of SDL, compliments of Epic Games.
2015-04-21 01:22:32 -04:00
Ryan C. Gordon
6b5949871d x11: Let apps specify that video init should fail if XRandR is unavailable.
Notably: it sets the error string to inform you that your custom SDL is built
without xrandr support, which apparently has been a support issue for
Unreal Engine 4 developers.
2016-01-04 23:44:27 -05:00
Ryan C. Gordon
f912e0fc17 x11: _NET_WM_PID needs a long, not a pid_t, I think. 2016-01-05 02:40:14 -05:00
Ryan C. Gordon
b684c6500f Updated comment: this is the correct way to do fullscreen on X11 now. 2015-04-21 10:19:20 -04:00
Ryan C. Gordon
5ec76facb4 Added a few FIXMEs. 2015-04-21 09:46:48 -04:00
Ryan C. Gordon
0e34ad3df4 Mac: allows apps to use OpenGL on a slower, integrated GPU.
This is often useful for SDL apps that aren't meant to be games: the
integrated GPU starts up faster, uses less power, and is often more than
fast enough.

Note that even with this change, the app will still default to the more
powerful, discrete GPU if one is available; an app that prefers the integrated
GPU will still need the NSSupportsAutomaticGraphicsSwitching key properly
set in its Info.plist and Mac OS X 10.7 or later.

https://developer.apple.com/library/mac/qa/qa1734/_index.html
2016-01-04 22:00:04 -05:00
Ryan C. Gordon
2e08746fbd Patch to compile on C89 compilers. 2016-01-04 16:36:42 -05:00
Ryan C. Gordon
d4b8f1a24d x11: Support _NET_WM_USER_TIME and give _NET_ACTIVE_WINDOW a valid timestamp.
Fixes Bugzilla #3056.
2016-01-04 16:25:27 -05:00
Ryan C. Gordon
0e7135739a Remove almost all instances of "volatile" keyword.
As Tiffany pointed out in Bugzilla, volatile is not useful for thread safety:

https://software.intel.com/en-us/blogs/2007/11/30/volatile-almost-useless-for-multi-threaded-programming/

Some of these volatiles didn't need to be, some were otherwise protected by
spinlocks or mutexes, and some got moved over to SDL_atomic_t data, etc.

Fixes Bugzilla #3220.
2016-01-03 06:50:50 -05:00
Sam Lantinga
8e517b0a99 Backed out commit 4de94185790e, this causes Visual Studio build failure on buildbot 2016-01-02 11:17:06 -08:00
Sam Lantinga
41012240cc Fixed sed error on Mac OS X and updated copyright on a few last files 2016-01-02 10:38:51 -08:00
Sam Lantinga
04718bc407 Fixed bug 3092 - Statically link sdl2 with /MT for msvc
Martin Gerhardy

According to https://msdn.microsoft.com/de-de/library/2kzt1wy3%28v=vs.120%29.aspx when one is using /MT for msvc compilations the libcmt.lib is already linked to the binary. This lib includes the symbol that is now guarded (see attached patch) by the #ifndef _MT.
2016-01-02 10:25:53 -08:00
Sam Lantinga
255c182471 Updated copyright to 2016 2016-01-02 10:10:34 -08:00
David Ludwig
0343811914 WinRT: minor code-comment cleanups 2015-12-31 01:54:11 -05:00
David Ludwig
db6f6e4e62 WinRT: fixed bug whereby a Win8.x app's SDL_Window wasn't getting de-marked as maximized (on window restore) 2015-12-31 01:50:30 -05:00
David Ludwig
3eaeafd393 Fixed Bug 3217 - WinRT: after alt-tab'ing back into fullscreen app, mouse cursor is sometimes wrong 2015-12-31 01:40:50 -05:00
David Ludwig
dd7cabedb2 Fixed Bug 3215 - Win32: 'fullscreen' app doesn't always extend to top of screen 2015-12-30 12:44:13 -05:00
Philipp Wiesemann
4e70b80345 Fixed a crash if creating accelerated renderer after accessing window surface.
Partially fixes Bugzilla #3196.
2015-12-29 19:13:56 +01:00
Ryan C. Gordon
1305933d4f NetBSD: fixed issues with cpuinfo and pthread_setname_np (thanks, Thomas!).
Fixes Bugzilla #3176.
2015-12-29 02:32:47 -05:00
Ryan C. Gordon
302efeaf87 NetBSD: improved joystick support (thanks, Thomas!).
This patch skips non-joystick HID devices and gives joysticks on NetBSD
a human readable name.

Fixes Bugzilla #3178.
2015-12-29 02:29:56 -05:00
Ryan C. Gordon
08dcfcefeb XRandR: fixed primary output detection logic (thanks, "winterknight"!).
Fixes Bugzilla #3185.
2015-12-29 02:16:14 -05:00
Ryan C. Gordon
c1ac8569aa Mac: don't ignore mouse clicks on the top pixel of a window (thanks, Joshua!).
Fixes Bugzilla #3190.
2015-12-29 01:09:58 -05:00
Ryan C. Gordon
8d2c6005b7 OpenGL+GLES renderers: Fixed incorrect clip rectangle coords (thanks, Marcel!).
Fixes Bugzilla #2700.
2015-12-28 15:15:58 -05:00
Alex Szpakowski
0b612a6f26 Mac: expose joystick buttons that report themselves as having 'Start' and 'Select' HID usages.
I don't know if any joysticks report those usages for any buttons in practice, but other prominent Mac gaming software exposes them, so we might as well too.
2015-12-28 15:44:09 -04:00
Ryan C. Gordon
2f894af94f Mac: Whoops, lost legit Caps lock keypress events. Fixed. 2015-12-28 13:30:58 -05:00
Ryan C. Gordon
e85c37f3f1 Windows: resync num/caps lock when window is gaining focus. 2015-12-28 13:08:19 -05:00
Ryan C. Gordon
0becd46878 Sync up the caps/numlock state properly without sending key events.
Partially fixes Bugzilla #2736 and #3125.
2015-12-28 13:07:44 -05:00