Commit Graph

6112 Commits

Author SHA1 Message Date
Charlie Birks
afdd5e100b only unset fullscreen flags if fullscreen failed 2016-09-13 00:03:56 -07:00
Charlie Birks
d9a88b96e8 use screen resolution instead of canvas size 2016-09-13 00:03:55 -07:00
Boris Gjenero
9d00142f75 Fix full screen mode in Firefox, which was broken by 9d4beb2 2016-09-13 00:03:54 -07:00
Boris Gjenero
ef19ecbc56 Support SDL_SetWindowTitle() via Module['setWindowTitle']() 2016-09-13 00:03:53 -07:00
Jukka Jylänki
ba527c7f6a Remove unused variable warning from Emscripten build in Emscripten_HandleFullscreenChange(). 2016-09-13 00:03:51 -07:00
Boris Gjenero
3744534cff Unpress all keys on blur to avoid stuck keys 2016-09-13 00:03:49 -07:00
Boris Gjenero
8f49012235 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
9308054353 Mouse events use CSS coordinates, so don't scale by pixel_ratio 2016-09-13 00:03:46 -07:00
Boris Gjenero
b4510f7c47 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
42ddc908b4 Fix of mouse events in browser without pointer locks 2016-09-13 00:03:44 -07:00
Alon Zakai
4f4c2f37a5 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
df8e7e4267 optimize a getValue 2016-09-13 00:03:41 -07:00
Charlie Birks
eb7c4d30bc send mouse move on enter/leave 2016-09-13 00:03:39 -07:00
Charlie Birks
0fedce3a2b listen for mouse up on document (fixes mouseup outside canvas) 2016-09-13 00:03:37 -07:00
Charlie Birks
14f0448296 use SDL_SetMouseFocus 2016-09-13 00:03:36 -07:00
Sam Lantinga
739d3be315 simplify fullscreen handling using new fullscreen_strategy api, patch contributed by Charlie Birks 2016-09-13 00:03:28 -07:00
Charlie Birks
e5511d4d55 use css size for touch normalisation 2016-09-12 23:58:08 -07:00
Sam Lantinga
e730ada35f Reverted previous commit which breaks game controller input processing. 2016-09-09 15:12:09 -07:00
Sam Lantinga
9b546b9b7c Suggestion from Apple: use kCFRunLoopCommonModes which does more complete event processing 2016-09-08 20:38:23 -07:00
Ryan C. Gordon
1aa7cd0d3b 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
633dd6f5ba 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
4fb0fe03cf coreaudio: capture devices should let the system allocate the render buffer. 2016-09-03 00:13:41 -04:00
Ryan C. Gordon
6d6600af7e coreaudio: Replaced an int with an SDL_bool. 2016-09-02 13:12:21 -04:00
Ryan C. Gordon
dea40869bb coreaudio: Move some variable declarations to the top of the scope. 2016-09-02 13:11:28 -04:00
Sam Lantinga
ac9647e0b2 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
d1f5d6d436 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
fa6d007f86 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
7db2ec4c4f 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
2de39f53fb WinRT: added an extra NULL pointer check for SDL_*ScreenSaver() backend code 2016-08-31 12:52:55 -04:00
Brandon Schaefer
e267302c16 Mir: Add mouse grab support (requires mir 0.24) 2016-08-30 12:58:00 -07:00
Philipp Wiesemann
fcefcabd5c Android: Fixed misleading warning in log output (thanks, Sylvain!).
Fixes Bugzilla #3418.
2016-08-30 21:15:18 +02:00
Philipp Wiesemann
d371267b8b 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
a0fc7ddb2c Fixed compiling if filesystem is disabled (thanks, Elias!).
Fixes Bugzilla #3414.
2016-08-30 21:14:13 +02:00
David Ludwig
3ea11f6b0e WinRT: added SDL_*ScreenSaver() support; fixed crash when restoring app from screensaver 2016-08-29 20:27:21 -04:00
Sam Lantinga
6a528e9f4a Fixed sorting and name of XBox wireless controller entry 2016-08-16 12:02:22 -07:00
Sam Lantinga
6a7b94ab88 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
ddbe4d2809 WinRT: patched to compile 2016-08-29 10:48:56 -04:00
Ryan C. Gordon
acab2d8231 cocoa: Fixed incorrect autorelease, noted by static analysis. 2016-08-28 19:06:31 -04:00
Ryan C. Gordon
98386250d1 nacl: Patched to compile. 2016-08-28 18:52:25 -04:00
Ryan C. Gordon
534f7c6977 Patched to compile on Haiku. 2016-08-28 18:24:44 -04:00
Ryan C. Gordon
c0cb659ac4 Merge audio capture work back into the mainline. 2016-08-28 13:36:13 -04:00
Ryan C. Gordon
feb78c15ca Patched to compile. 2016-08-28 11:56:11 -04:00
Ryan C. Gordon
5279cf1bec alsa: Implemented hotplug support, cleaned up device names. 2016-08-28 08:50:26 -07:00
Ryan C. Gordon
90a1db0172 ios: patched to compile. 2016-08-26 15:46:29 -04:00
Ryan C. Gordon
3b518b4217 alsa: don't enumerate virtual devices, just physical hardware. 2016-08-15 10:09:41 -04:00
Sam Lantinga
4880936b9d 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
97b9a5f3e7 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
a8ca5adf07 Emscripten: Fixed crash if closing removed joystick (thanks, Sylvain!). 2016-08-25 22:31:44 +02:00
Philipp Wiesemann
9033f9853f Android: Fixed crash if closing removed joystick (thanks, Sylvain!).
Fixes fix for Bugzilla #3408.
2016-08-25 22:31:33 +02:00
David Ludwig
94792eaa5b 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
cb87e91104 Emscripten: Fixed opening previously closed joystick. 2016-08-17 21:04:50 +02:00
Philipp Wiesemann
0d334d1f90 Android: Fixed opening previously closed joystick (thanks, Sylvain!).
Fixes Bugzilla #3408.
2016-08-17 21:04:32 +02:00
Ryan C. Gordon
7a1c094254 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
1bfeca6b49 emscripten audio: check for an "undefined" object, remove some console.log(). 2016-08-12 00:03:58 -04:00
Ryan C. Gordon
2208b9b47c audio: Cleaned up "extern AudioBootStrap" list. 2016-08-11 22:26:58 -04:00
Ryan C. Gordon
9d85883e61 audio: Renamed some internal driver symbols in various targets. 2016-08-11 22:22:09 -04:00
Ryan C. Gordon
e3ff255457 android: implement audio capture support. 2016-08-11 22:04:49 -04:00
Ryan C. Gordon
6409450101 directsound: Implemented audio capture support. 2016-08-10 16:00:16 -04:00
Ryan C. Gordon
c81be45f39 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
d6dfe63aad audio: Patched to compile on C89 compilers. 2016-08-10 14:14:14 -04:00
Ryan C. Gordon
dda98ea011 emscripten audio: fix timer on capture's silence callback. 2016-08-10 14:13:48 -04:00
Ryan C. Gordon
92d53614ef 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
ec6d0d130a emscripten audio: Added audio capture support. 2016-08-09 16:58:32 -04:00
Ryan C. Gordon
42d1f00fec Added a FIXME. 2016-08-09 16:58:06 -04:00
Ryan C. Gordon
cbc84d7353 audio: Only allocate fake_stream if we're using the standard audio threads. 2016-08-09 00:44:59 -04:00
Ryan C. Gordon
7f5dfeaafa 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
279a21963d [ 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
b359e18624 dsp: Implemented audio capture support. 2016-08-07 02:43:20 -04:00
Ryan C. Gordon
86b14339b4 winmm: Try to get full device names from the Windows Registry. 2016-08-07 01:48:38 -04:00
Ryan C. Gordon
af576bc77a winmm: Added a FIXME for truncated device names. 2016-08-06 23:05:02 -04:00
Ryan C. Gordon
83a1be6d3c winmm: Implemented audio capture support. 2016-08-06 19:34:32 -04:00
Mikkel Krautz
c3212b9788 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
a3fffdfc63 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
5caa28859d disk audio: Implemented "capture" support, cleaned up some things. 2016-08-06 03:39:15 -04:00
Ryan C. Gordon
4d927d82ed audio: Implemented buffer queueing for capture devices (SDL_DequeueAudio()). 2016-08-06 02:47:27 -04:00
Ryan C. Gordon
913665ffd8 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
1684861ef8 nas: initial shot at audio capture support. Compiles, but not tested. 2016-08-05 04:23:32 -04:00
Ryan C. Gordon
131fcd9fe0 audio: Changed OnlyHasDefaultInputDevice to OnlyHasDefaultCaptureDevice. 2016-08-05 02:04:48 -04:00
Ryan C. Gordon
1e4773bde7 audio: changed some SDL_memset() calls to SDL_zero(), other minor corrections. 2016-08-05 01:59:06 -04:00
Ryan C. Gordon
6b1488f2a5 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
d791a67db6 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
fa2aa88c2a 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
606e55be1f dummy audio: Patched to compile. 2016-08-03 16:54:10 -04:00
Philipp Wiesemann
0f602c1985 PSP: Fixed memory leak if video init failed. 2016-08-03 22:32:20 +02:00
Philipp Wiesemann
46eb4f59f2 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
f4d57c249f dummy audio: Implemented dummy audio capture support. :) 2016-08-03 02:18:47 -04:00
Ryan C. Gordon
edd97c1682 bsdaudio: first shot at audio capture support!
(untested, uncompiled...for now.)
2016-08-03 01:57:41 -04:00
Ryan C. Gordon
1d2a76a521 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
8452695f6a arts: Patched to (maybe) compile. 2016-08-03 01:53:59 -04:00
Ryan C. Gordon
38ab183b02 arts: implemented audio capture support.
(completely untested! Not even compiled!!).
2016-08-03 01:01:44 -04:00
Ryan C. Gordon
302477c0cb alsa: capture devices don't need a mixbuf allocated. 2016-08-03 01:00:30 -04:00
Ryan C. Gordon
68a9669205 coreaudio: Implemented audio capture for iOS. 2016-08-03 00:30:12 -04:00
Ryan C. Gordon
fd1dc3e58a alsa: Implemented audio capture support! 2016-08-02 15:06:40 -04:00
Ryan C. Gordon
356b8ba2ea 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
78c4b66217 audio: a little more robustness in the capture device's thread. 2016-08-02 15:04:33 -04:00
Ryan C. Gordon
8e430fdbb1 pulseaudio: Implemented audio capture support! 2016-08-02 13:50:58 -04:00
Ryan C. Gordon
4fe614c37e audio: implemented higher level infrastructure for running capture devices. 2016-08-02 13:50:21 -04:00
Ryan C. Gordon
a9f4b6ad89 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
5aaea799e2 audio: changed some internal ints to be SDL_bools. 2016-08-01 13:32:27 -04:00
Ryan C. Gordon
ec1107e2b7 nacl: unlock audio thread mutex when done with it. 2016-08-01 11:47:02 -04:00
Ryan C. Gordon
c0bb6dad30 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
ccbbbde567 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
5b2b9fb1f8 audio: Initial bits to enable audio capture support. 2016-08-01 00:18:56 -04:00
Philipp Wiesemann
bef8634446 Linux: Fixed memory leak in haptic implementation (thanks, Martin!).
Fixes Bugzilla #3238.
2016-07-20 21:01:14 +02:00
Philipp Wiesemann
3fda6e468d Pandora: Fixed memory leak in video implementation. 2016-07-20 21:00:52 +02:00
Philipp Wiesemann
8b903ea2af Pandora: Fixed compile warnings in video implementation (thanks, Bombo!).
Fixes Bugzilla #2734.
2016-07-20 21:00:36 +02:00
Philipp Wiesemann
c978a8ae30 ALSA: Fixed adding wrong status to error message (thanks, romain145!).
Fixes Bugzilla #3364.
2016-07-19 21:02:44 +02:00
Philipp Wiesemann
3008e760f6 Pandora: Fixed SDL version in debug output. 2016-07-19 21:02:09 +02:00
Philipp Wiesemann
9a47a9d16a Updated comments in video implementations. 2016-07-18 22:03:47 +02:00
Philipp Wiesemann
703cb75378 Pandora: Fixed compile error in video implementation (thanks, Bombo!).
Partially fixes Bugzilla #2734.
2016-07-18 22:02:17 +02:00
Philipp Wiesemann
c4bb7816f4 Android: Fixed missing export of a JNI function (thanks, Andrii!).
Fixes Bugzilla #3393.
2016-07-17 21:43:12 +02:00
Philipp Wiesemann
3d8686ddbf Android: Fixed compile warning about a missing prototype (thanks, Sylvain!).
Fixes Bugzilla #3351.
2016-07-17 21:42:53 +02:00
Philipp Wiesemann
c3e852012f Fixed compile warnings about evaluating undefined identifiers.
Partially fixes Bugzilla #3351.
2016-07-17 20:32:44 +02:00
Brandon Schaefer
ae05ea62c6 MIR: Fix system cursors. Been broken since custom cursor support was added! 2016-07-13 07:07:08 -07:00
Philipp Wiesemann
6d84a0d94c Android: Added new key codes from API 24. 2016-07-09 22:06:00 +02:00
Alex Szpakowski
6dc00b9806 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
f8e2dfbdd7 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
23202a1df7 Mac: Fixed crash if SDL_GetDisplayDPI() got NULL pointers for output parameters. 2016-06-26 21:08:57 +02:00
Philipp Wiesemann
5dc4f4e208 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
fa77ad70b3 Fixed Bug 3147 - Windows: Crash when resizing Window since hg 333216331863
Thanks for the fix, Gab!
2016-06-24 22:17:56 -04:00
Brandon Schaefer
e3a99c303c MIR: Add better error handling for a failed connection 2016-06-08 08:01:21 -07:00
Brandon Schaefer
d9da466c9b MIR: Support relative mouse mode 2016-06-07 09:01:23 -07:00
Alex Szpakowski
d9cc37d89f 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
3f8e3556db 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
ca74b1c50d 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
5905713b20 Windows: Fixed missing error message if SDL_GetDisplayDPI() failed. 2016-05-20 22:15:58 +02:00
Philipp Wiesemann
c29c501e68 X11: Fixed typos in error messages and source comments. 2016-05-20 22:15:28 +02:00
Philipp Wiesemann
f496216898 X11: Fixed missing error message if SDL_GetDisplayDPI() failed. 2016-05-20 22:14:40 +02:00
David Ludwig
5ce0bfa718 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
7c88f77ffc 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
db06405c19 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
f6bc22f98b Fixed missing error message if SDL_GetDisplayDPI() is unsupported. 2016-05-10 21:14:36 +02:00
David Ludwig
88ca3da8de WinRT: allow on-screen keyboard to be shown via SDL APIs, Win10/UWP only 2016-05-07 21:41:59 -04:00
Alex Szpakowski
d7d23d9624 Cocoa mouse code: Replaced NSPointInRect with NSMouseInRect (thanks Eric Wasylishen!) Fixes bug #3312. 2016-05-01 21:41:30 -03:00
Alex Szpakowski
8b34582cb9 Mac: replaced a deprecated CGSetLocalEventsSuppressionInterval call that I missed in commit f0645cd8fd39 2016-05-01 19:51:10 -03:00
Philipp Wiesemann
6874be6c61 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
a640d23413 PSP: Fixed compile error. 2016-04-14 21:09:45 +02:00
David Ludwig
48da9275f9 WinRT: build/link fix 2016-04-13 21:59:50 -04:00
Ryan C. Gordon
24fad21a24 Patched to compile on Haiku...? 2016-04-12 18:40:44 -04:00
Ryan C. Gordon
66dd91516f windows: created threads' stack sizes should be reserved, not committed. 2016-04-12 18:12:04 -04:00
Ryan C. Gordon
b0c0d27997 Patched to compile on various platforms. 2016-04-12 18:11:36 -04:00
Ryan C. Gordon
5006582bed 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
9e9853847d threads: Handle SDL_HINT_THREAD_STACK_SIZE at top level, implement elsewhere. 2016-04-12 14:38:50 -04:00
David Ludwig
e5c0a2cf1b 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
ba34f5e3cb 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
737ff517f5 alsa: Make device enumeration robust against weird results with NULL strings. 2016-04-04 22:49:13 -04:00
Alex Szpakowski
3bfb4d01a8 iOS: Also do the Dictation crash workaround before executing the animation callback. 2016-04-02 13:21:01 -03:00
Alex Szpakowski
2e920ea55e 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
efa9b126c3 iOS: Workaround for a crash after Dictation is used. 2016-04-01 19:18:50 -03:00
Philipp Wiesemann
7a81900c15 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
69e181f5d0 PSP: Fixed returning success for unsupported SDL_SetTextureColorMod().
Partially fixes Bugzilla #3298.
2016-04-01 21:12:37 +02:00
Philipp Wiesemann
e6d7c52fac PSP: Fixed missing error message for unsupported SDL_CreateWindowFrom(). 2016-04-01 21:11:31 +02:00
Philipp Wiesemann
ed44c454a7 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
a05b10f62a Fixed comment in gesture source. 2016-03-27 22:22:13 +02:00
Alex Szpakowski
5c34880079 Mac: avoid calling CGSetLocalEventsSuppressionInterval, it was deprecated in OS X 10.6. 2016-03-20 15:35:34 -03:00
Philipp Wiesemann
ad7601cf87 Wayland: Fixed crash if memory mapping failed while creating a custom cursor. 2016-03-16 22:09:39 +01:00
Philipp Wiesemann
ead3abe63c Wayland: Fixed storing a theme cursor which is never used in video data. 2016-03-16 22:09:23 +01:00
Sam Lantinga
eff42e0225 Pick up new display mode information after a mode change (Windows only right now). 2016-03-11 08:33:47 -08:00
Sam Lantinga
0a59d5a91a Quick fix for qsort off-by-one error. 2016-03-11 08:30:18 -08:00
Philipp Wiesemann
a6dc938fad Emscripten: Deactivated custom cursor support because it created system cursors. 2016-03-11 22:10:35 +01:00
Philipp Wiesemann
a32e6a8d51 Wayland: Fixed drawing created cursors without transparency. 2016-03-11 22:10:15 +01:00
Philipp Wiesemann
7aa42058ac Wayland: Fixed showing created cursors incorrectly before the first redraw. 2016-03-11 22:09:50 +01:00
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