Commit Graph

602 Commits

Author SHA1 Message Date
Sam Lantinga fd1d692bef Fixed bug 3368 - SDL_Blit_Slow doesn't ignore alpha values in colorkey comparison
Simon Hug

When the SDL_Blit_Slow function compares the pixel to the color key it does so without removing the alpha component from the pixel value and the key. This is different from the optimized 32-bit blitters which create a rgb mask and apply it to both to filter the alpha out. SDL_Blit_Slow will only skip the pixels with the exact alpha value of the key instead of all pixels with the same color.

The attached test case blits a surface with a color key and prints the pixel values to the console. The third row is expected to be skipped.
2016-10-01 10:46:10 -07:00
Sam Lantinga 2ccb46cebc Fixed bug 3373 - OpenGL implementation differences of glDrawTexfOES
Simon Hug

It seems not everyone implemented glDrawTexfOES the same. Intel and Mesa ignore the viewport entirely, whereas the Raspberry Pi implementation offsets the coordinates and does viewport clipping.

The glDrawTexfOES extension text [1] for the function says "Xs and Ys are given directly in window (viewport) coordinates." I guess this wasn't clear enough.

Alex Szpakowski

Honestly I'd probably remove that codepath from SDL_Render entirely. It's an OpenGL ES 1-specific extension that isn't likely to give huge performance gains and adds additional maintenance overhead to SDL_Render while also having bugs in some drivers (as seen here).
2016-10-01 10:43:01 -07:00
Sam Lantinga 9dfe54006e We should be using a string constant for the strftime format string 2016-10-01 10:38:15 -07:00
Bastien Nocera 7edd2261e7 Fix "format not a string literal" errors
With GCC 6.1.

https://bugzilla.libsdl.org/show_bug.cgi?id=3375
2016-10-01 10:36:24 -07:00
Jonathan Dowland 461336a23e Add gamecontrollerdb lines for SFC30 controller in various modes
SFC30 controller: http://www.8bitdo.com/sfc30/

The SFC30 controller can present itself in a variety of modes and it offers up
different names in each. This patch captures data for three modes (one USB and
two Bluetooth) on three platforms (Mac OS X, Windows, Linux).

However, USB mode on Linux and Windows is missing as the button events did not
make it through to SDL's controllermap tool on Fedora 24/Linux 4.5.5 nor Steam
Big Picture mode on Windows. The two Bluetooth modes were indistinguishable on
Windows. Two modes on OS X were indistinguishable.

There exists a similar controller called the SNES30 (And some others) that are
very likely identical except for the name, but I have not verified this yet so
haven't synthesized lines for those controllers until I can.
2016-07-01 16:47:27 +01:00
Sam Lantinga b7e45f8a1a Fixed bug 3336 - Failure to build with MinGW-w64
Kai Sterker
There are already patches available from mingw64 that fix the issue

https://github.com/Alexpux/MINGW-packages/tree/master/mingw-w64-SDL2

With those applied, I could compile SDL2 without problems. But of course, it would be preferable if SDL built cleanly from source.
2016-10-01 10:28:00 -07:00
Sam Lantinga 9f854cdbe0 Fixed bug 3388 - Fail to build src/thread/windows/SDL_systhread.c on MinGW 4.9.3
Vitaly Novichkov

Line 124
====================================================================
const DWORD flags = thread->stacksize ? STACK_SIZE_PARAM_IS_A_RESERVATION : 0;
====================================================================

Error of compiler:
====================================================================
  CC     build/SDL_systhread.lo
src/thread/windows/SDL_systhread.c: In function 'SDL_SYS_CreateThread':
src/thread/windows/SDL_systhread.c:124:45: error: 'STACK_SIZE_PARAM_IS_A_RESERVA
TION' undeclared (first use in this function)
     const DWORD flags = thread->stacksize ? STACK_SIZE_PARAM_IS_A_RESERVATION :
 0;
                                             ^
src/thread/windows/SDL_systhread.c:124:45: note: each undeclared identifier is r
eported only once for each function it appears in
make: *** [build/SDL_systhread.lo] Error 1
====================================================================

Fixing when I adding into begin of the file:
====================================================================
#ifndef STACK_SIZE_PARAM_IS_A_RESERVATION
#define STACK_SIZE_PARAM_IS_A_RESERVATION 0x00010000
#endif
====================================================================
2016-10-01 10:08:34 -07:00
Philipp Wiesemann 7b23eef3b0 Fixed crash if allocating memory for mouse clicks failed. 2016-09-30 23:30:54 +02:00
Ryan C. Gordon e64c5186e2 windows: Removed hardcoded "1" for mouse clickthrough hint. 2016-09-29 23:42:18 -04:00
Ryan C. Gordon f10db4071d haiku: Patched to compile. 2016-09-29 23:15:56 -04:00
Ryan C. Gordon f2fcd324c5 windows: fix borderless windows at desktop resolution (thanks, Evgeny!).
Fixes Bugzilla #3404.
2016-09-29 23:12:58 -04:00
Ryan C. Gordon b2510d9cbc x11: fixed incorrect SDL_GetWindowPosition() after resize (thanks, Jason!).
Fixes Bugzilla #3272.
2016-09-29 23:01:43 -04:00
Ryan C. Gordon 4f4c4b629f Added SDL_SetWindowResizable(). (thanks, Ethan!) 2016-09-29 22:52:41 -04:00
Sam Lantinga f1e0b9af20 Added debug output for new window events 2016-09-29 16:10:08 -07:00
Sam Lantinga 67bdbcca44 Implemented SDL_HINT_MOUSE_FOCUS_CLICKTHROUGH on X11 2016-09-29 16:05:29 -07:00
Sam Lantinga d285af2a96 Added Windows support for SDL_HINT_MOUSE_FOCUS_CLICKTHROUGH 2016-09-29 14:48:33 -07:00
Sam Lantinga a13da2faa7 Generalized the hint for whether the application gets a mouse event when clicking on the window to activate it, and is now named SDL_HINT_MOUSE_FOCUS_CLICKTHROUGH.
The behavior is defined to not receive the click event, and this hint allows you to override that.
2016-09-29 13:34:49 -07:00
Sam Lantinga 8ddb4328b5 When clicking on a window to give it focus, don't pass the mouse click to the application. 2016-09-29 03:59:04 -07:00
Sam Lantinga e45698d218 Updated version to 2.0.5 in preparation for release 2016-09-28 22:24:01 -07:00
Alex Szpakowski f31c7086d8 Enable SDL_LoadObject on iOS 8+ and tvOS. 2016-09-25 15:02:06 -03:00
Alex Szpakowski 77bacfd72d tvOS launch images are now properly supported. 2016-09-25 11:46:25 -03:00
Alex Szpakowski 40ecac8e60 Don't try to load a launch storyboard on tvOS (it doesn't use them). 2016-09-25 00:21:12 -03:00
Alex Szpakowski 666d3fecc8 iOS/tvOS: Try to load the launch screen as a storyboard. Xcode 8 compiles it as a storyboard instead of a nib. 2016-09-24 23:33:49 -03:00
Alex Szpakowski 9165ba7ebd iOS/tvOS: Always send SDL_WINDOWEVENT_FOCUS_GAINED when a window is created on the main screen (fixes bug #3395). 2016-09-24 20:12:57 -03:00
Alex Szpakowski 450fa8cdf9 Use OS-provided click counts on macOS and iOS for mouse press and release events. 2016-09-24 18:46:34 -03:00
Alex Szpakowski bac5394127 Fix mouse wheel events on macOS 10.12 (thanks Eric Wasylishen!)
Fixes bug #3432
2016-09-24 13:28:40 -03:00
Brandon Schaefer 89c538a4e3 Mir: Add gamma support set/get. Still need one more function to complete the set 2016-09-21 18:23:59 -07:00
Brandon Schaefer a729c4f97a Mir: Add fixme (waiting for a public api to be added) 2016-09-21 16:28:23 -07:00
Brandon Schaefer 705ecf78f5 [Mir] Move to the new MirDisplayConfig API 2016-09-21 15:57:15 -07:00
Philipp Wiesemann 8e88f08150 Mac: Fixed whitespace around function return type. 2016-09-21 23:06:49 +02:00
Philipp Wiesemann 85588ea040 Android: Fixed two warnings about unused variables. 2016-09-21 23:06:26 +02:00
Alex Szpakowski f0fca2880f Handle audio interruptions on iOS/tvOS. Fixes bugs 2569 and 2960. 2016-09-18 19:22:09 -03:00
Ryan C. Gordon 06700a905b emscripten: get even more aggressive about audio device closing.
I still get exceptions thrown sometimes on shutdown without this.
2016-09-18 18:07:47 -04:00
Sam Lantinga 29214826ec Fixed warning with Xcode 7.3.0 2016-09-16 22:27:58 -07:00
Alex Szpakowski a96b6f2104 Added a new hint SDL_HINT_APPLE_TV_REMOTE_ALLOW_ROTATION.
When set to "1", the orientation of the Apple TV remote affects the axes of the corresponding SDL joystick. It is "0" (disabled) by default.
2016-09-17 01:31:07 -03:00
Alex Szpakowski 4bcce330d1 tvOS: Add drop-file support 2016-09-15 21:49:29 -03:00
Alex Szpakowski 4209a1fd4c CoreAudio iOS/tvOS: Use AVFoundation instead of AudioSession. Fixes audio on tvOS.
Note that linking with AVFoundation is now required if you don't disable SDL_audio compilation on iOS and tvOS.
2016-09-15 19:59:57 -03:00
Sam Lantinga 86d4b09914 Fixed spacing 2016-09-13 18:44:28 -07:00
Sam Lantinga 925859aaa6 Fixed accidental call to SDL_PrivateJoystickHat() 2016-09-13 18:43:55 -07:00
Alex Szpakowski f050576665 Initial Apple TV / tvOS support.
The Apple TV remote is currently exposed as a joystick with its touch surface treated as two axes. Key presses are also generated when its buttons and touch surface are used.

A new hint has been added to help deal with deciding whether to background the app when the remote's menu button is pressed: SDL_HINT_APPLE_TV_CONTROLLER_UI_EVENTS.
2016-09-13 22:18:06 -03:00
Alex Szpakowski 86708c3cd8 Enable more compiler warnings in the Xcode projects (based on Xcode 8's suggestion), made some integer downcasts explicit. 2016-09-13 19:51:10 -03:00
Sam Lantinga 00791f3a87 Only prevent the default browser event handling when the specific event types aren't disabled by the user, patch contributed by Jonas Platte 2016-09-13 00:09:21 -07:00
Charlie Birks 993dd83510 Add mapping for media keys 2016-09-13 00:04:00 -07:00
Alon Zakai 1b6565fcb7 use Module.createContext for 2D rendering in emscripten 2016-09-13 00:03:59 -07:00
Alon Zakai bec5573476 add some detail to fullscreen workaround comment; version 6
Conflicts:
	version.txt
2016-09-13 00:03:58 -07:00
Charlie Birks 405d64b207 only unset fullscreen flags if fullscreen failed 2016-09-13 00:03:56 -07:00
Charlie Birks c68cac89df use screen resolution instead of canvas size 2016-09-13 00:03:55 -07:00
Boris Gjenero 791b946a42 Fix full screen mode in Firefox, which was broken by 9d4beb2 2016-09-13 00:03:54 -07:00
Boris Gjenero b71208d452 Support SDL_SetWindowTitle() via Module['setWindowTitle']() 2016-09-13 00:03:53 -07:00
Jukka Jyl?nki 7cf44f1b4a Remove unused variable warning from Emscripten build in Emscripten_HandleFullscreenChange(). 2016-09-13 00:03:51 -07:00
Boris Gjenero b54eb82c67 Unpress all keys on blur to avoid stuck keys 2016-09-13 00:03:49 -07:00
Boris Gjenero a0a75f384f Listen for blur and focus events on window instead of canvas
Blur and focus events were not arriving for the canvas in
Firefox 35 and Chrome 40.
2016-09-13 00:03:48 -07:00
Boris Gjenero 3e5c4cec94 Mouse events use CSS coordinates, so don't scale by pixel_ratio 2016-09-13 00:03:46 -07:00
Boris Gjenero a20c40c494 Accumulate subpixel mouse motion so motion is not lost.
Previously when the canvas was scaled up and the pointer was locked,
motion corresponding to less than one pixel was lost. Therefore,
slow mouse motion resulted in no motion. This fixes that.
2016-09-13 00:03:45 -07:00
TelpeNight 443998ff33 Fix of mouse events in browser without pointer locks 2016-09-13 00:03:44 -07:00
Alon Zakai 2b367cb6b0 optimize Emscripten_UpdateWindowFramebuffer
- avoid creating contexts and images all the time
 - use set and then fix alpha directly
2016-09-13 00:03:43 -07:00
Alon Zakai 63200ea395 optimize a getValue 2016-09-13 00:03:41 -07:00
Charlie Birks 98ec844388 send mouse move on enter/leave 2016-09-13 00:03:39 -07:00
Charlie Birks a2ef0db8a8 listen for mouse up on document (fixes mouseup outside canvas) 2016-09-13 00:03:37 -07:00
Charlie Birks cd05184f9b use SDL_SetMouseFocus 2016-09-13 00:03:36 -07:00
Sam Lantinga bdca510fd6 simplify fullscreen handling using new fullscreen_strategy api, patch contributed by Charlie Birks 2016-09-13 00:03:28 -07:00
Charlie Birks be08cc61f9 use css size for touch normalisation 2016-09-12 23:58:08 -07:00
Sam Lantinga 1096f32309 Reverted previous commit which breaks game controller input processing. 2016-09-09 15:12:09 -07:00
Sam Lantinga 61c0f2cf64 Suggestion from Apple: use kCFRunLoopCommonModes which does more complete event processing 2016-09-08 20:38:23 -07:00
Ryan C. Gordon da1e3d6938 emscripten: special case to make SDL_ShowSimpleMessageBox() work.
Browsers don't have the functionality to fully support the generic
SDL_ShowMessageBox(), but this handles the likely most-common case.

Without this, you'd return immediately with a proper error result and no UI,
but probably no one checks that for SDL_ShowSimpleMessageBox. And if they
did: what would they do to handle this anyhow?

We'd need to lobby for an HTML spec of some sort that allows customizable
message boxes--that block!--to properly support SDL message boxes on
Emscripten, but this is probably Good Enough for now.
2016-09-06 13:13:03 -04:00
Ryan C. Gordon 0265d3af9b coreaudio: Move from AudioUnits to AudioQueues.
AudioQueues are available in Mac OS X 10.5 and later (and iOS 2.0 and later).
Their API is much more clear (and if you don't mind the threading tapdance
to get its own CFRunLoop) much easier to use in general for our purposes.

As an added benefit: they seemlessly deal with format conversion in ways
AudioUnits don't: for example, my MacBook Pro's built-in microphone won't
capture at 8000Hz and the AudioUnit version wouldn't resample to hide this
fact; the AudioQueue version, however, can handle this.
2016-09-04 01:23:55 -04:00
Ryan C. Gordon 3b53304a94 coreaudio: capture devices should let the system allocate the render buffer. 2016-09-03 00:13:41 -04:00
Ryan C. Gordon fda7a3d158 coreaudio: Replaced an int with an SDL_bool. 2016-09-02 13:12:21 -04:00
Ryan C. Gordon f9d9708f6b coreaudio: Move some variable declarations to the top of the scope. 2016-09-02 13:11:28 -04:00
Sam Lantinga f11a440999 wayland: Add support for relative mouse mode, by Jonas ?dahl <jadahl@gmail.com>
Generate the C protocol files from the protocol XML files installed by
wayland-protocols, and use them to implement support for relative pointer
motions and pointer locking.

Note that at the time, the protocol is unstable and may change in the future.
Any future breaking changes will, however, fail gracefully and result in no
regressions compared to before this patch.
2016-09-01 01:26:56 -07:00
Jonas ?dahl 19d3500ae1 wayland: Build own version of core protocol
Since we are loading shared objects dynamically, build our own version of the
core protocol symbols, so that we in the future can include protocol
extensions.
2016-06-23 18:39:05 +08:00
Bastien Nocera 736a624df0 Wayland: Set "class" for each window we create
This will be used by Wayland compositors to match the application ID and
.desktop file to the SDL window(s).

Applications can set the SDL_VIDEO_WAYLAND_WMCLASS environemnt variable
early in the process to override using the binary name as a fallback.

Note that we also support the SDL_VIDEO_X11_WMCLASS in the Wayland
backend so that if a program correctly associated the desktop file with
the window under X11, only a newer SDL would be needed for it to work
under Wayland.

https://bugzilla.libsdl.org/show_bug.cgi?id=3376
2016-09-01 01:22:58 -07:00
Ryan C. Gordon 2098bfb3ca emscripten: Be more aggressive when closing audio capture devices.
Fixes exceptions being thrown on shutdown.
2016-08-31 16:10:04 -04:00
David Ludwig f5d43cf912 WinRT: added an extra NULL pointer check for SDL_*ScreenSaver() backend code 2016-08-31 12:52:55 -04:00
Brandon Schaefer ebb058910d Mir: Add mouse grab support (requires mir 0.24) 2016-08-30 12:58:00 -07:00
Philipp Wiesemann 9581d4a585 Android: Fixed misleading warning in log output (thanks, Sylvain!).
Fixes Bugzilla #3418.
2016-08-30 21:15:18 +02:00
Philipp Wiesemann cf28727f89 Android: Fixed missing mouse motion events while button down (thanks, Sylvain!).
Happened for real mouse if SDL_HINT_ANDROID_SEPARATE_MOUSE_AND_TOUCH was active.

Fixes Bugzilla #3313.
2016-08-30 21:14:52 +02:00
Philipp Wiesemann 51053a062c Fixed compiling if filesystem is disabled (thanks, Elias!).
Fixes Bugzilla #3414.
2016-08-30 21:14:13 +02:00
David Ludwig 5020fe8fdb WinRT: added SDL_*ScreenSaver() support; fixed crash when restoring app from screensaver 2016-08-29 20:27:21 -04:00
Sam Lantinga 651107a118 Fixed sorting and name of XBox wireless controller entry 2016-08-16 12:02:22 -07:00
Sam Lantinga 4c1484784a Merged Change: 3576099 from rel/streaming_client
Description:
SDL - add mapping for xbox one s wireless controller
2016-08-16 12:02:12 -07:00
David Ludwig b65763c0c2 WinRT: patched to compile 2016-08-29 10:48:56 -04:00
Ryan C. Gordon 5bcf1d256b cocoa: Fixed incorrect autorelease, noted by static analysis. 2016-08-28 19:06:31 -04:00
Ryan C. Gordon c9bfcbde6e nacl: Patched to compile. 2016-08-28 18:52:25 -04:00
Ryan C. Gordon 714aa21136 Patched to compile on Haiku. 2016-08-28 18:24:44 -04:00
Ryan C. Gordon 2da1ec8354 Merge audio capture work back into the mainline. 2016-08-28 13:36:13 -04:00
Ryan C. Gordon 06dcdc7d48 Patched to compile. 2016-08-28 11:56:11 -04:00
Ryan C. Gordon 850da32f30 alsa: Implemented hotplug support, cleaned up device names. 2016-08-28 08:50:26 -07:00
Ryan C. Gordon 35e564a694 ios: patched to compile. 2016-08-26 15:46:29 -04:00
Ryan C. Gordon cfa95fe68c alsa: don't enumerate virtual devices, just physical hardware. 2016-08-15 10:09:41 -04:00
Sam Lantinga ad1bfea5a0 Added SDL_PrivateJoystickAdded() and SDL_PrivateJoystickRemoved()
Updated the removal code to iterate over all joystick add messages instead of just the first one.
2016-08-26 12:18:08 -07:00
Sam Lantinga c69bce6774 commit 1170112da3776fdb06425f62d57b63144c33dc51
Author: James Zipperer <james.zipperer@synapse.com>
Date:   Sun Aug 21 01:19:19 2016 -0700

    bugfix for controller / joystick add / remove being in the event queue at the same time
2016-08-26 11:16:44 -07:00
Philipp Wiesemann e79f00097a Emscripten: Fixed crash if closing removed joystick (thanks, Sylvain!). 2016-08-25 22:31:44 +02:00
Philipp Wiesemann e41e185eab Android: Fixed crash if closing removed joystick (thanks, Sylvain!).
Fixes fix for Bugzilla #3408.
2016-08-25 22:31:33 +02:00
David Ludwig 5150eb361f WinRT: fixed bug where Win10 GameBar, when shown + hidden, might not restore a cursor's hidden state
The repro steps were this:
1. run an sdl2 winrt/uwp app, on Win10, v10.0.10586.0 or higher
2. hide the cursor, via a call to SDL_ShowCursor(0)
3. make the Win10 game bar appear, by pressing the Windows + G hotkey
4. observe that the mouse cursor appears, in order to interact with the
   game bar (this is expected behavior)
5. make the Win10 game bar disappear, either by pressing the Windows + G hotkey
   again, or clicking somewhere in the app

EXPECTED RESULT: cursor disappears, as game bar disappears

ACTUAL RESULT: cursor didn't always disappear
2016-08-20 13:46:45 -04:00
Philipp Wiesemann a128552577 Emscripten: Fixed opening previously closed joystick. 2016-08-17 21:04:50 +02:00
Philipp Wiesemann c18ff8d253 Android: Fixed opening previously closed joystick (thanks, Sylvain!).
Fixes Bugzilla #3408.
2016-08-17 21:04:32 +02:00
Ryan C. Gordon d05ae1941c emscripten: send fake mouse events for touches, like other targets do.
(This really should be handled at the higher level and not in the individual
targets, but this fixes the immediate bug.)
2016-08-12 19:59:00 -04:00
Ryan C. Gordon 3b88f5c690 emscripten audio: check for an "undefined" object, remove some console.log(). 2016-08-12 00:03:58 -04:00
Ryan C. Gordon e435659c63 audio: Cleaned up "extern AudioBootStrap" list. 2016-08-11 22:26:58 -04:00
Ryan C. Gordon 6f4bcd2498 audio: Renamed some internal driver symbols in various targets. 2016-08-11 22:22:09 -04:00
Ryan C. Gordon 8f0af77354 android: implement audio capture support. 2016-08-11 22:04:49 -04:00
Ryan C. Gordon b78ec97496 directsound: Implemented audio capture support. 2016-08-10 16:00:16 -04:00
Ryan C. Gordon 21c7fe0060 windows: directsound should also map audio device GUIDs to proper names.
Moved this code from winmm into core so both can use it.

DirectSound (at least on Win10) also returns truncated device names, even
though it's handed in as a string pointer and not a static-sized buffer.  :/
2016-08-10 15:34:24 -04:00
Ryan C. Gordon b879595a2a audio: Patched to compile on C89 compilers. 2016-08-10 14:14:14 -04:00
Ryan C. Gordon 244d2dbcd5 emscripten audio: fix timer on capture's silence callback. 2016-08-10 14:13:48 -04:00
Ryan C. Gordon 7a8e4cb019 directsound: recalculate audiospec size before creating secondary buffer.
I think this was a bug before? Maybe I'm misunderstanding this, but it looks
like it was working because we allocate room for 8 chunks...
2016-08-09 19:35:46 -04:00
Ryan C. Gordon 358a168c9d emscripten audio: Added audio capture support. 2016-08-09 16:58:32 -04:00
Ryan C. Gordon 5de11a5fc5 Added a FIXME. 2016-08-09 16:58:06 -04:00
Ryan C. Gordon a05bde2170 audio: Only allocate fake_stream if we're using the standard audio threads. 2016-08-09 00:44:59 -04:00
Ryan C. Gordon be8d7a46fb audio: simplifed check for internal callback.
Easier to check when it's NULL instead of a list of known internal functions.
2016-08-09 00:44:05 -04:00
Sam Lantinga 8097f272e2 [ OSX ] enables Xbox One S Guide (System Main Menu) button detection. the one possible impact is that since button identifiers on OSX are just their sequence in the HID report descriptor we might change the button order, and any existing/saved mappings may get their order changed. 2016-08-08 12:17:53 -07:00
Ryan C. Gordon df4985e207 dsp: Implemented audio capture support. 2016-08-07 02:43:20 -04:00
Ryan C. Gordon a0ff2554c1 winmm: Try to get full device names from the Windows Registry. 2016-08-07 01:48:38 -04:00
Ryan C. Gordon ff7df7e687 winmm: Added a FIXME for truncated device names. 2016-08-06 23:05:02 -04:00
Ryan C. Gordon 51d1523380 winmm: Implemented audio capture support. 2016-08-06 19:34:32 -04:00
Mikkel Krautz a21e6af514 Add Xbox One controller GUIDs to the XInput filter in the DirectInput joystick driver.
The Windows 10 Anniversary Update (1607) breaks the method uses that SDL uses to
detect XInput devices. That is, on Windows 10 Anniversary Update, it is no longer
possible to query RAWINPUT for HID devices, and check for "IG_" in the device name.

Presumably, this will be fixed in the future.

This patch works around the issue by adding the Xbox One controller series to the
well-known device list.

This skips the more expensive RAWINPUT check for those devices, and causes them to
be detected as XInput devices once again.
2016-08-06 15:09:20 +02:00
Ryan C. Gordon 4499e5bcc6 disk audio: Make default i/o delay match what device is meant to be running at. 2016-08-06 03:45:45 -04:00
Ryan C. Gordon 978df1ad74 disk audio: Implemented "capture" support, cleaned up some things. 2016-08-06 03:39:15 -04:00
Ryan C. Gordon 7315390171 audio: Implemented buffer queueing for capture devices (SDL_DequeueAudio()). 2016-08-06 02:47:27 -04:00
Ryan C. Gordon e7347a4027 audio: SDL_ClearQueuedAudio() should free everything but two packets.
Otherwise, if you had a massive, one-time queue buildup, the memory from that
remains allocated until you close the device. Also, if you are just using a
reasonable amount of space, this would previously cause you to reallocate it
over and over instead of keeping a little bit of memory around.
2016-08-06 02:27:55 -04:00
Ryan C. Gordon 9a33154450 nas: initial shot at audio capture support. Compiles, but not tested. 2016-08-05 04:23:32 -04:00
Ryan C. Gordon 9b2a59ef05 audio: Changed OnlyHasDefaultInputDevice to OnlyHasDefaultCaptureDevice. 2016-08-05 02:04:48 -04:00
Ryan C. Gordon 761a79788c audio: changed some SDL_memset() calls to SDL_zero(), other minor corrections. 2016-08-05 01:59:06 -04:00
Ryan C. Gordon 979de761c9 audio: Removed internal SDL_audiomem.h and macros.
I think this was important for SDL 1.2 because some targets needed
special device memory for DMA buffers or locked memory buffers for use in
hardware interrupts or something, but since it just defines to SDL_malloc
and SDL_free now, I took it out for clarity's sake.
2016-08-05 01:44:15 -04:00
Ryan C. Gordon 9b64772775 audio: Clean up some CloseDevice() interface details.
- It's now always called if device->hidden isn't NULL, even if OpenDevice()
  failed halfway through. This lets implementation code not have to clean up
  itself on every possible failure point; just return an error and SDL will
  handle it for you.

- Implementations can assume this->hidden != NULL and not check for it.

- implementations don't have to set this->hidden = NULL when done, because
  the caller is always about to free(this).

- Don't reset other fields that are in a block of memory about to be free()'d.

- Implementations all now free things like internal mix buffers last, after
  closing devices and such, to guarantee they definitely aren't in use anymore
  at the point of deallocation.
2016-08-05 01:44:41 -04:00
Ryan C. Gordon 30a9139bc3 arts: backed out audio capture support.
Turns out that libartsc isn't thread-safe, so if we run a capture and playback
device at the same time, it often crashes in arts's internal event loop.

We could throw mutexes around the read/write calls, but these are meant to
block, so one device could cause serious latency and stutter in the other.

Since this audio target isn't in high-demand (Ubuntu hasn't offered a libartsc
package for years), I'm just backing out the capture support. If someone needs
it, they can pull it out of the revision history.
2016-08-04 11:51:17 -04:00
Ryan C. Gordon 20cd5e44ce dummy audio: Patched to compile. 2016-08-03 16:54:10 -04:00
Philipp Wiesemann 82c94a3f79 PSP: Fixed memory leak if video init failed. 2016-08-03 22:32:20 +02:00
Philipp Wiesemann 9f97ee8a85 WinRT: Removed not needed SDL_zerop() after SDL_calloc().
SDL_calloc() already sets memory to zero.
2016-08-03 22:32:02 +02:00
Ryan C. Gordon 17246ba95e dummy audio: Implemented dummy audio capture support. :) 2016-08-03 02:18:47 -04:00
Ryan C. Gordon 9dd8477a21 bsdaudio: first shot at audio capture support!
(untested, uncompiled...for now.)
2016-08-03 01:57:41 -04:00
Ryan C. Gordon d30a2f5ad8 bsdaudio: this appears to be using the wrong variable...?
(We probably never noticed because this is meant to block until it fully
writes a buffer, and would only trigger an issue if we had a short write
that wasn't otherwise an error condition.)
2016-08-03 01:56:58 -04:00
Ryan C. Gordon ecbd625c4b arts: Patched to (maybe) compile. 2016-08-03 01:53:59 -04:00
Ryan C. Gordon a7dddacd99 arts: implemented audio capture support.
(completely untested! Not even compiled!!).
2016-08-03 01:01:44 -04:00
Ryan C. Gordon 38f4b68ca7 alsa: capture devices don't need a mixbuf allocated. 2016-08-03 01:00:30 -04:00
Ryan C. Gordon a9ef240cef coreaudio: Implemented audio capture for iOS. 2016-08-03 00:30:12 -04:00
Ryan C. Gordon 41e8f9ede4 alsa: Implemented audio capture support! 2016-08-02 15:06:40 -04:00
Ryan C. Gordon 754efd43f4 alsa: Cleaned up the 5.1 swizzle mess a little.
Shouldn't this be something ALSA handles for us with channel maps, so we can
just delete this code?
2016-08-02 15:06:05 -04:00
Ryan C. Gordon 6bd1ec6bb0 audio: a little more robustness in the capture device's thread. 2016-08-02 15:04:33 -04:00
Ryan C. Gordon d662bc04a5 pulseaudio: Implemented audio capture support! 2016-08-02 13:50:58 -04:00
Ryan C. Gordon 0d0f7080a3 audio: implemented higher level infrastructure for running capture devices. 2016-08-02 13:50:21 -04:00
Ryan C. Gordon 6d5c9c1e67 audio: Made some SDL_AudioDevice fields atomic.
This makes sure they're properly communicated to the audio threads.
2016-08-02 13:48:52 -04:00
Ryan C. Gordon 67f2538c41 audio: changed some internal ints to be SDL_bools. 2016-08-01 13:32:27 -04:00
Ryan C. Gordon a94376c72d nacl: unlock audio thread mutex when done with it. 2016-08-01 11:47:02 -04:00
Ryan C. Gordon c754662dda audio: Make SDL_AudioDevice::shutdown an atomic value.
Just to make sure this get communicated to the audio thread properly.
2016-08-01 11:45:45 -04:00
Ryan C. Gordon 015dd8dd1d audio: Implemented capture support for Mac OS X CoreAudio.
I don't know what iOS wants yet, so this code might work there, too...?
2016-08-01 00:20:47 -04:00
Ryan C. Gordon ee09975007 audio: Initial bits to enable audio capture support. 2016-08-01 00:18:56 -04:00
Philipp Wiesemann 4743b55c7a Linux: Fixed memory leak in haptic implementation (thanks, Martin!).
Fixes Bugzilla #3238.
2016-07-20 21:01:14 +02:00
Philipp Wiesemann 8d6cbdd235 Pandora: Fixed memory leak in video implementation. 2016-07-20 21:00:52 +02:00
Philipp Wiesemann 53ac57128b Pandora: Fixed compile warnings in video implementation (thanks, Bombo!).
Fixes Bugzilla #2734.
2016-07-20 21:00:36 +02:00
Philipp Wiesemann 427472fe2e ALSA: Fixed adding wrong status to error message (thanks, romain145!).
Fixes Bugzilla #3364.
2016-07-19 21:02:44 +02:00
Philipp Wiesemann 562926cdda Pandora: Fixed SDL version in debug output. 2016-07-19 21:02:09 +02:00
Philipp Wiesemann d478f26ef4 Updated comments in video implementations. 2016-07-18 22:03:47 +02:00
Philipp Wiesemann c8cd5c559a Pandora: Fixed compile error in video implementation (thanks, Bombo!).
Partially fixes Bugzilla #2734.
2016-07-18 22:02:17 +02:00
Philipp Wiesemann 58b323f192 Android: Fixed missing export of a JNI function (thanks, Andrii!).
Fixes Bugzilla #3393.
2016-07-17 21:43:12 +02:00
Philipp Wiesemann 6b1d5f4461 Android: Fixed compile warning about a missing prototype (thanks, Sylvain!).
Fixes Bugzilla #3351.
2016-07-17 21:42:53 +02:00
Philipp Wiesemann de5daaad6a Fixed compile warnings about evaluating undefined identifiers.
Partially fixes Bugzilla #3351.
2016-07-17 20:32:44 +02:00
Brandon Schaefer eadb30cd6f MIR: Fix system cursors. Been broken since custom cursor support was added! 2016-07-13 07:07:08 -07:00
Philipp Wiesemann 495057b04b Android: Added new key codes from API 24. 2016-07-09 22:06:00 +02:00
Alex Szpakowski d0bd0e4855 iOS: Fix an OpenGL ES error when rotating the device if MSAA is used (thanks Cole Campbell!)
Fixes bug #3378.
2016-07-02 13:38:31 -03:00
Philipp Wiesemann 6ec5e64056 Fixed freeing strings created by strdup() with SDL_free().
This only worked on platforms where SDL_free() wraps free().
2016-06-28 21:08:23 +02:00
Philipp Wiesemann 2f016cf88d Mac: Fixed crash if SDL_GetDisplayDPI() got NULL pointers for output parameters. 2016-06-26 21:08:57 +02:00
Philipp Wiesemann f4d33fcbba Fixed compile warnings in test library about formats strings not being literals.
Partially fixes Bugzilla #3375.
2016-06-25 19:40:44 +02:00
David Ludwig 23af328bb0 Fixed Bug 3147 - Windows: Crash when resizing Window since hg 1f9d57965528
Thanks for the fix, Gab!
2016-06-24 22:17:56 -04:00
Brandon Schaefer 4a339a46ec MIR: Add better error handling for a failed connection 2016-06-08 08:01:21 -07:00
Brandon Schaefer f0708fc9dd MIR: Support relative mouse mode 2016-06-07 09:01:23 -07:00
Alex Szpakowski ea2f5e5930 Windows: Fix other window positions/sizes being changed when exiting exclusive fullscreen (bug #3315, thanks Simon Hug!) 2016-05-23 15:29:25 -03:00
Alex Szpakowski 0a4085a048 Mac: Fix a crash when SDL is compiled with SDL_MAC_NO_SANDBOX enabled, by increasing the stack size of the mouse tap thread back to OS X' default of 512 KB. 2016-05-21 12:09:23 -03:00
Alex Szpakowski 4a468739f8 Removed Mac OS 10.5 support (bug #3137). Also fixed a warning about deprecated Carbon code when using SDL_audio (bug #3127, thanks Dominik!) 2016-05-21 00:20:52 -03:00
Philipp Wiesemann d4140ca473 Windows: Fixed missing error message if SDL_GetDisplayDPI() failed. 2016-05-20 22:15:58 +02:00
Philipp Wiesemann d7b9d321fa X11: Fixed typos in error messages and source comments. 2016-05-20 22:15:28 +02:00
Philipp Wiesemann 81235118ab X11: Fixed missing error message if SDL_GetDisplayDPI() failed. 2016-05-20 22:14:40 +02:00
David Ludwig 441359bd5a WinRT: workaround a possible Windows bug, whereby hiding cursors, disables mouse-moved events
This workaround, unfortunately, requires that apps directly link to a set of
Win32-style cursor resource files (that contain a transparent cursor image).
Copies of suitable resource files are in src/core/winrt/, and should be
included directly in an app's MSVC project.

A rough explanation of this workaround/hack, and why it's needed (and
seemingly can't be done through programmatic means), is in this change's code.
2016-05-14 23:29:49 -04:00
Philipp Wiesemann e964d00f64 X11: Fixed SDL_GL_GetSwapInterval() returning -1 if interval is unknown.
It should return 0 as a safe default if the interval can not be determined.
2016-05-11 21:11:12 +02:00
Philipp Wiesemann 748b05289c EGL: Fixed SDL_GL_GetSwapInterval() returning -1 on error.
It should return 0 as a safe default on errors. -1 is returned for late swaps.
2016-05-11 21:10:41 +02:00
Philipp Wiesemann bf7a76155e Fixed missing error message if SDL_GetDisplayDPI() is unsupported. 2016-05-10 21:14:36 +02:00
David Ludwig 52fec6aff0 WinRT: allow on-screen keyboard to be shown via SDL APIs, Win10/UWP only 2016-05-07 21:41:59 -04:00
Alex Szpakowski b15efce277 Cocoa mouse code: Replaced NSPointInRect with NSMouseInRect (thanks Eric Wasylishen!) Fixes bug #3312. 2016-05-01 21:41:30 -03:00
Alex Szpakowski d383502657 Mac: replaced a deprecated CGSetLocalEventsSuppressionInterval call that I missed in commit 2f72bdfee9bb 2016-05-01 19:51:10 -03:00
Philipp Wiesemann 31cbb34ec9 Wayland: Removed not needed including and setting of errno.
One internal function was setting errno on error but it was not read afterwards.
2016-04-14 21:11:43 +02:00
Philipp Wiesemann 72dc8784b3 PSP: Fixed compile error. 2016-04-14 21:09:45 +02:00
David Ludwig caf152def7 WinRT: build/link fix 2016-04-13 21:59:50 -04:00
Ryan C. Gordon c137eb61d7 Patched to compile on Haiku...? 2016-04-12 18:40:44 -04:00
Ryan C. Gordon 9b9ca093c7 windows: created threads' stack sizes should be reserved, not committed. 2016-04-12 18:12:04 -04:00
Ryan C. Gordon 9b4db2b8aa Patched to compile on various platforms. 2016-04-12 18:11:36 -04:00
Ryan C. Gordon c61675dc5d threads: Move SDL's own thread creation to a new internal API.
This allows us to set an explicit stack size (overriding the system default
and the global hint an app might have set), and remove all the macro salsa
for dealing with _beginthreadex and such, as internal threads always set those
to NULL anyhow.

I've taken some guesses on reasonable (and tiny!) stack sizes for our
internal threads, but some of these might turn out to be too small in
practice and need an increase. Most of them are simple functions, though.
2016-04-12 16:45:10 -04:00
Ryan C. Gordon 7ae2951fca threads: Handle SDL_HINT_THREAD_STACK_SIZE at top level, implement elsewhere. 2016-04-12 14:38:50 -04:00
David Ludwig 8b65d225e8 WinRT: bug hack-fix - gamepad detection was failing on Xbox One
Win10's 'GamepadAdded' event seems to need to have something registered with it
in order for Xinput-based gamepad detection to work.  This 'fix' simply causes
a dummy event-handler to be added for this event, in case an app wants to use
gamepads on Xbox One (most likely).
2016-04-11 00:22:39 -04:00
Alex Szpakowski 34f095e098 iOS: Fixed SDL_GL_CreateContext crashing instead of returning null when a GLES3 context is requested on iOS 6 and older. 2016-04-10 22:07:10 -03:00
Ryan C. Gordon a581346fae alsa: Make device enumeration robust against weird results with NULL strings. 2016-04-04 22:49:13 -04:00
Alex Szpakowski 6cfa71a10e iOS: Also do the Dictation crash workaround before executing the animation callback. 2016-04-02 13:21:01 -03:00
Alex Szpakowski 88372277b7 Add a new hint SDL_HINT_MAC_MOUSE_FOCUS_CLICKTHROUGH, which allows mouse click events to occur when clicking to focus a window in Mac OS X.
Fixes bug #3300.
2016-04-02 11:54:05 -03:00
Alex Szpakowski 5520ed9cc2 iOS: Workaround for a crash after Dictation is used. 2016-04-01 19:18:50 -03:00
Philipp Wiesemann 831597f714 PSP: Fixed returning success from unsupported SDL_RenderReadPixels().
This also fixed the missing error message.
2016-04-01 21:13:58 +02:00
Philipp Wiesemann d1e4814120 PSP: Fixed returning success for unsupported SDL_SetTextureColorMod().
Partially fixes Bugzilla #3298.
2016-04-01 21:12:37 +02:00
Philipp Wiesemann 12c78c5ca5 PSP: Fixed missing error message for unsupported SDL_CreateWindowFrom(). 2016-04-01 21:11:31 +02:00
Philipp Wiesemann a9edc5137e Wayland: Fixed missing error message if creating a custom cursor failed.
SDL_GetError() returned no error message because it was written to stderr only.
2016-03-28 21:03:04 +02:00
Philipp Wiesemann fd3dd4e515 Fixed comment in gesture source. 2016-03-27 22:22:13 +02:00
Alex Szpakowski 08488e6d34 Mac: avoid calling CGSetLocalEventsSuppressionInterval, it was deprecated in OS X 10.6. 2016-03-20 15:35:34 -03:00