Commit Graph

9089 Commits

Author SHA1 Message Date
Philipp Wiesemann
9d6978bb0d Removed empty statement. 2016-11-05 21:22:39 +01:00
Sam Lantinga
dcb1a410aa Fixed Windows build 2016-11-05 01:52:28 -07:00
Sam Lantinga
42d39444be Fixed bug 3480 - minor update to NACL common.js
Sylvain

All latest official NACL examples have a slightly different 'common.js' file. It seems it has been updated in the meantime to fix a bug.
2016-11-05 01:48:14 -07:00
Ryan C. Gordon
1db5e3cead Also patched to compile on C89 compilers. 2016-11-05 03:56:55 -04:00
Ryan C. Gordon
ab3f23e948 Patched to compile on C89 compilers. 2016-11-05 03:53:59 -04:00
Ryan C. Gordon
eadddb3977 Reworked audio converter code.
This no longer uses a script to generate code for every possible type
conversion or resampler. This caused a bloat in binary size and and compile
times. Now we use a handful of more generic functions and assume staying in
the CPU cache is the most important thing anyhow.

This shrinks the size of the final build (in this case: macOS X amd64, -Os to
optimize for size) by 15%. When compiling on a single core, build times drop
by about 15% too (although the previous cost was largely hidden by multicore
builds).
2016-11-05 02:34:38 -04:00
Ryan C. Gordon
042458ef41 Removed premake build system. 2016-11-03 11:10:52 -04:00
Ryan C. Gordon
d97c80cfb6 Added some debug logging to print out every event added to the SDL queue. 2016-11-03 01:29:56 -04:00
Sam Lantinga
fa893c768a Fixed text input events with UIM
Alex Baines

I realized overnight that my patch probably broke text input events with UIM, and I confirmed that it does. Can't believe I overlooked that... I've been making stupid mistakes in these patches recently, sorry.

Anyway, *this* one seems to fix it properly. Knowing my luck it probably breaks something else.
2016-11-02 02:56:54 -07:00
Sam Lantinga
4eee952d87 Added mapping for the PS3 controller in Bluetooth mode 2016-11-02 02:50:27 -07:00
Alex Baines
148dce2cf1 Skip duplicate key events sent by IMEs like uim. 2016-11-01 17:38:05 +00:00
Sam Lantinga
8995749d54 Patch from Tapani Pälli to fix a memory leak in X11_InitKeyboard
Patch uses XkbFreeKeyboard to free the memory returned by XkbGetMap.
Earlier implementation called XkbFreeClientMap which frees all the maps
but not data->xkb structure itself, XkbFreeKeyboard will free maps and
the structure.
2016-11-01 10:48:59 -07:00
Sam Lantinga
6b10850cb3 Patch from Tapani Pälli to fix a memory leak in X11_GL_CreateContext 2016-11-01 10:46:47 -07:00
Sam Lantinga
94bd9eafc8 Fixed bug with udev support reporting
Joshua Bodine

I'm going to reopen this because configure should still accurately report whether libudev will be used. Right now it just tests whether it's enabled as an argument, not whether configure was successful in finding it.
2016-11-01 10:42:35 -07:00
Sam Lantinga
85bae43dc0 Fixed bug 3473 - can't build on linux with an old kernel 2016-11-01 10:33:44 -07:00
Sam Lantinga
9272bc5e41 Fixed bug 3478 - Patch Haiku to use dlopen instead of load_add_on
Kai Sterker

SDL2 on Haiku so far uses Haiku-specific APIs for loading dynamic objects as add-ons, instead of using dlopen to load them as libraries. This, for example, leads to SDL_mixer not being able to load its audio backends, when compiled with standard settings.

As discussed at https://www.freelists.org/post/haikuports/SDL2-mixer-ogg-music-not-playing-and-other-stuff,2 , the best way to deal with this would be using dlopen instead of load_add_on. The following patch implements this change by dropping the Haiku-specific bits and using dlopen instead.
2016-11-01 10:30:46 -07:00
Philipp Wiesemann
99df4e5235 Added call to SDL_HasAVX2() in platform test program. 2016-10-30 21:01:46 +01:00
Philipp Wiesemann
ac44944886 Fixed outdated info in README. 2016-10-30 21:01:33 +01:00
Alex Baines
abe40de66c Fix double events / no repeat flag on key events when built withoutibus/fcitx
Uses XkbSetDetectableKeyRepeat, and falls back to forcing @im=none if it's not
supported.
2016-10-28 01:28:58 +01:00
Sam Lantinga
a7cafb8549 Fixed compiling on older versions of ALSA 2016-10-28 17:00:37 -07:00
Sam Lantinga
2738bea5a8 Fixed audio data swizzling when the device channel map already matches what SDL expects 2016-10-28 16:47:06 -07:00
Sam Lantinga
804d1916b1 Fixed NULL pointer dereference, thanks Ozkan Sezer 2016-10-22 17:53:03 -07:00
Sam Lantinga
f98a4a485b Fixed bug 3466 - Can't build 2.0.5 on ppc64
/home/fedora/SDL2-2.0.5/src/video/SDL_blit_N.c: In function 'calc_swizzle32':
/home/fedora/SDL2-2.0.5/src/video/SDL_blit_N.c:127:5: error: ISO C90 forbids mixed declarations and code [-Werror=declaration-after-statement]
     const vector unsigned char plus = VECUINT8_LITERAL(0x00, 0x00, 0x00, 0x00,
     ^
2016-10-22 11:01:55 -07:00
Sam Lantinga
ac248b5061 Added tag release-2.0.5 for changeset 007dfe83abf8 2016-10-19 21:22:42 -07:00
Sam Lantinga
3de74e55e1 Fixed bug 3460 - docs/README-macosx.md: g++fat.sh should be g++-fat.sh in universal build command
Elisée Maurer

I scratched my head for a while until I realized there's a typo in the command listed in the instructions for universal Mac builds: https://hg.libsdl.org/SDL/file/c1bb718f6c3f/docs/README-macosx.md#l24

It should say `g++-fat.sh` but instead it says `g++fat.sh`, which makes `./configure` fail with a C++ preprocessor error.
2016-10-19 20:50:33 -07:00
Sam Lantinga
4606c00e7a Fixed bug 3461 - Implement TEXTINPUT events for Haiku
Kai Sterker

Apparently, SDL2 on Haiku does not generate SDL_TEXTINPUT events.
Attached is a patch that adds this functionality.

Tested with SDLs own checkkeys program and different keymaps as well as my own SDL application and German keyboard layout to verify it generates the expected input.
2016-10-19 20:42:22 -07:00
Sam Lantinga
863e5c8c62 Fixed crash on Mac OS X 10.10 and earlier 2016-10-19 20:39:12 -07:00
Sam Lantinga
618148f33c Fixed bug 3369 - RaspberryPI ability to specify a Dispmanx layer
Albert Casals

On a RaspberryPI, it might become convenient to specify the Dispmanx layer SDL uses.
Currently, it is hardcoded to be 10000 to sit above most applications.

This can be specially useful when integrating other graphical apps and frameworks like OMXplayer, QT5 etc.. in order to have more flexibility on their Z-order.
2016-10-18 23:24:49 -07:00
Sam Lantinga
daf4e9d396 Worked around a crash on Mac OS X 10.10 and earlier, thanks to Eric Wasylishen. 2016-10-18 23:12:45 -07:00
Sam Lantinga
92bd529172 Fixed bug 3444 - Android-TV: no more handling of back button on remote
ny00

Unfortunately, simply checking the return codes of "onNativePadDown/Up" as previously done has its own issue:

If an SDL joystick is connected *and* opened, then a proper KeyEvent, say with keycode KEYCODE_BUTTON_1, should lead to an SDL joystick button event as expected.

If, however, the joystick was *not* opened, then "onNativePadDown/Up" will return a negative value, so before the commit from bug 3426, you could unexpectedly get a keyboard event. (In practice, you'll just get a log message, since KEYCODE_BUTTON_1 has no mapping to a proper SDL_ScanCode value, but it's still an problem).

What should still be done, though, is checking the key code itself. We do have the KeyEvent.isGamepadButton method, but according my test, it returns "true" exactly (and only) for the KEYCODE_BUTTON* values, and not for KEYCODE_DPAD* or any other key code.

Here is a possible solution:
- Do check the return codes of "onNativePadDown/Up" as previously done.
- In addition, in "Android_OnPadDown/Up" from src/joystick/android/SDL_sysjoystick.c, 0 should *always* be returned in case the key code can be translated to an SDL_joystick button; Even if no matching joystick can be found.
2016-10-17 22:09:22 -07:00
Sam Lantinga
35c8dd13a1 Partial fix for bug 3092 - Statically link sdl2 with /MT for msvc
Mike Linford

I'm also having trouble statically linking SDL2 on Visual Studio 2015 with /MT. My symptom is that memcpy is being defined twice.
2016-10-17 21:47:33 -07:00
Sam Lantinga
72932271d8 Fixed bug 3456 - SDL_GameControllerOpen fails if the joystick subsystem isn't initialized
Philipp Wiesemann

Maybe the fault is in the SDL_VIDEO_DRIVER_WINDOWS section in SDL_InitSubSystem() of "src/SDL.c". Because there only SDL_INIT_JOYSTICK is checked. The flags are adapted for SDL_INIT_GAMECONTROLLER afterwards.
2016-10-17 21:44:32 -07:00
Sam Lantinga
26062d5034 Fixed bug 3458 - x11: reset deadkeys in StartTextInput/StopTextInput
Eric Wasylishen

The patch makes StartTextInput/StopTextInput call Xutf8ResetIC ( https://www.x.org/releases/X11R7.5/doc/man/man3/XmbResetIC.3.html ) on the XIC of all SDL windows.

This fixes my use case in Quakespasm (Ubuntu 16.04, system keyboard layout set to German. Type the '^' dead key, which opens Quakespasm's developer console and calls SDL_StartTextInput, then press 'e'. I expect the dead key to be ignored.)

Also, here is a patch for sdl2's "checkkeys" for testing this: https://bugzilla-attachments.libsdl.org/attachment.cgi?id=2451
2016-10-17 21:37:26 -07:00
Philipp Wiesemann
87cfc93765 Linux: Added missing scancodes. 2016-10-16 22:47:49 +02:00
Philipp Wiesemann
1e4a104164 Windows: Fixed not removing the always added hint callback on quit.
This was no real problem because SDL_Quit() also calls SDL_ClearHints().
2016-10-16 22:47:37 +02:00
Philipp Wiesemann
e7d7fae45a Linux: Removed not needed platform info from entry in controller database. 2016-10-16 22:46:56 +02:00
Philipp Wiesemann
9c939bab22 Linux: Fixed compile warnings about unused variables. 2016-10-15 20:02:17 +02:00
Philipp Wiesemann
2dceaf32eb Android: Split long line in README. 2016-10-15 20:01:50 +02:00
Philipp Wiesemann
8f8e7db610 Removed unused constants in controllermap program. 2016-10-15 20:01:30 +02:00
Csongor Szabo
6285b5f4b3 emscripten: check if device pixel ratio has changed 2016-10-14 17:06:28 +01:00
Sam Lantinga
765175e060 Fixed compiler option warning for 64-bit builds on Visual Studio 2008 2016-10-14 08:56:04 -07:00
Sam Lantinga
ae577128f4 Fixed bug 3453 - First mouse button input after a drag and drop event is ignored
Olav Sorensen

After a drag and drop event, any following mouse button input (down/up) doesn't generate an event. Clicking any mouse button a *second* time generates an event like it should.

Further investigation shows that the new SDL_HINT_MOUSE_FOCUS_CLICKTHROUGH logic also causes this issue in other cases, like the first time you open the program and click the mouse.
2016-10-14 08:40:21 -07:00
Sam Lantinga
972f5a3485 Fixed bug 3452 - Getting unicode arguments for the main entry point on Windows
Simon Hug

There are currently three entry points in the SDL2_main code for windows: main, wmain and WinMain. Only the latter two properly convert the arguments to UTF-8.

Console applications linked with MSVC will always link with the main entry point (wmain has to be selected by manually setting the entry point). This makes it likely that such programs will not have proper unicode arguments.
2016-10-14 08:27:44 -07:00
Sam Lantinga
fa961623d4 Fixed warning about redefining DECLSPEC 2016-10-14 08:22:48 -07:00
Sam Lantinga
bb5e67d540 Fixed warning about missing field initializers in SDL_DBusContext
Static variables are automatically initialized to zero.
2016-10-14 08:20:40 -07:00
Sam Lantinga
0602608aba Fixed processing mouse and keyboard events in hatari, which uses the old SDLMain.m without creating an SDLApplication instance 2016-10-14 08:15:39 -07:00
Sam Lantinga
5fe69a18f5 Fixed bug 2758 - Android issues with NDK r10c and API-21
Sylvain

After a long time, I found out more clearly what was going wrong.

The native libraries should be built with a "APP_PLATFORM" as low as possible.
Ideally, APP_PLATFORM should be equals to the minSdkVersion of the AndroidManifest.xml
So that the application never runs on a lower APP_PLATFORM than it has been built for.

An additional good patch would be to write explicitly in "jni/Application.mk": APP_PLATFORM=android-10

(If no APP_PLATFORM is set, the "targetSdkVersion" of the AndroidManifest.xml is applied as an APP_PLATFORM to the native libraries. And currently, this is bad, because targetSdkVersion is 12, whereas minSdkLevel is 10.
And in fact, there is a warning from ndk: "Android NDK: WARNING: APP_PLATFORM android-12 is larger than android:minSdkVersion 10 in ./AndroidManifest.xml".)


to precise what happened in the initial reported test-case:
Let say the "c" code contains a call to "srand()".

with APP_PLATFORM=android-21, libSDL2.so contains a undef reference to "srand()".
with APP_PLATFORM=android-10, libSDL2.so contains a undef reference to "srand48()".

but srand() is missing on devices with APP_PLATFORM=android-10 (it was in fact replaced by srand48()).
So, if you build for android-21 (where srand() is available), you will really have a call to "srand()" and it will fail on android-10.
That was the issue. The path tried to fix this by in fact always calling srand48().


SDL patches that were applied are beneficial anyway, there are implicitly allowing they backward compatibility of using android-21 on a android-10 platform.
It can be helpful in case you want to target a higher APP_PLATFORM than minSdkVersion to have potentially access to more functions.
Eg you want to have access to GLES3 functions (or other) of "android-21". But, if dlopen() fails (on android-10), you do a fall-back to GLES2.
2016-10-14 06:57:55 -07:00
Sam Lantinga
032bd3f6e8 Fixed building with cmake when fcitx isn't installed 2016-10-14 01:04:21 -07:00
Sam Lantinga
4de58c47d1 Fixed divide by zero if setting integer scale without setting logical width and height 2016-10-14 00:51:57 -07:00
Sam Lantinga
173b8f26b4 Fixed typo getting the drawable size 2016-10-13 04:57:31 -07:00