Commit Graph

280 Commits (ce8261dd6da0f1588ed608f392632252c7a5e693)

Author SHA1 Message Date
Sam Lantinga 1ddff75c70 Some controllers have trouble getting out to 20000 2017-01-04 05:09:02 -08:00
Sam Lantinga 082132a70c Fixed binding the D-pad on some Super NES style controllers
Fixed a case where partial trigger pull could be bound to another button

There is a fundamental problem not resolved by this commit:

Some controllers have axes (triggers, pedals, etc.) that don't start at zero, but we're guaranteed that if we get a value that it's correct. For these controllers, the current code works, where we take the first value we get and use that as the zero point and generate axis motion starting from that point on.

Other controllers have digital axes (D-pad) that assume a zero starting point, and the first value we get is the min or max axis value when the D-pad is moved. For these controllers, the current code thinks that the zero point is the axis value after the D-pad motion and this doesn't work.

My hypothesis is that the first class of devices is more common and that we should solve for that, and add an exception to SDL_JoystickAxesCenteredAtZero() as needed for the second class of devices.
2017-01-03 23:39:28 -08:00
Sam Lantinga 45b774e3f7 Updated copyright for 2017 2017-01-01 18:33:28 -08:00
Philipp Wiesemann e61daa7270 Fixed warning and missing animation delay in testoverlay2 program. 2016-12-30 19:57:50 +01:00
Philipp Wiesemann c2b90f2df8 Fixed compiling of testgamecontroller program with C++. 2016-12-28 20:11:29 +01:00
Philipp Wiesemann de79828b9f Fixed warning about unused variable in controllermap program. 2016-12-28 20:11:12 +01:00
Sam Lantinga 21cb42d79b Make sure we go all the way back (within the XBox controller dead zone) to prevent accidentally binding axes inverted 2016-12-27 09:51:58 -08:00
Sam Lantinga 6d7da0887d Split controller axes into positive and negative sides so each can be bound independently.
Using this a D-Pad can be mapped to a thumbstick and vice versa.
Also added support for inverted axes, improving trigger binding support
2016-12-27 01:39:07 -08:00
Philipp Wiesemann b515b34dbb Fixed hotplug with more than one device in testjoystick program. 2016-12-16 22:58:32 +01:00
Philipp Wiesemann 0a3f9d0cfb Fixed warning about unused variable in controllermap program. 2016-12-16 22:58:16 +01:00
Sam Lantinga 0c5e7a1067 Fixed handling joysticks that send multiple events for a single control, e.g. both a button and axis event for a trigger.
Tested with the 8Bitdo NES30 Pro on Linux
2016-12-15 14:27:22 -08:00
Sam Lantinga 70aa2a5717 Only print out the controller mappings if we're not going to test a controller 2016-12-09 04:17:10 -08:00
Sam Lantinga 68d7be3949 Fixed bug 3508 - variably modified ?SDL_dummy_size? at file scope in test/testatomic.c
Ciro Santilli

GCC 6, Ubuntu 16.10, cd test; ./configure; make

/bin/sh config.status Makefile
config.status: creating Makefile
gcc -o loopwave loopwave.c -g -O2 -D_REENTRANT -I/usr/include/SDL2 -DHAVE_OPENGLES2 -DHAVE_OPENGL -DHAVE_SDL_TTF -g -lSDL2_test -lSDL2
gcc -o testatomic testatomic.c -g -O2 -D_REENTRANT -I/usr/include/SDL2 -DHAVE_OPENGLES2 -DHAVE_OPENGL -DHAVE_SDL_TTF -g -lSDL2_test -lSDL2
In file included from /usr/include/SDL2/SDL_main.h:25:0,
                 from /usr/include/SDL2/SDL.h:32,
                 from testatomic.c:14:
/usr/include/SDL2/SDL_stdinc.h:261:20: error: variably modified ?SDL_dummy_size? at file scope
        typedef int SDL_dummy_ ## name[(x) * 2 - 1]
                    ^
testatomic.c:106:1: note: in expansion of macro ?SDL_COMPILE_TIME_ASSERT?
 SDL_COMPILE_TIME_ASSERT(size, CountTo>0); /* check for rollover */
 ^~~~~~~~~~~~~~~~~~~~~~~
Makefile:114: recipe for target 'testatomic' failed
make: *** [testatomic] Error 1

If I remove the line SDL_COMPILE_TIME_ASSERT(size, CountTo>0); /* check for rollover */ it works, lazy to figure out the best way to do this.
2016-12-06 00:40:09 -08:00
Sam Lantinga dd5d85a4e7 Added an API to iterate over game controller mappings 2016-11-29 06:36:57 -08:00
Ryan C. Gordon 35430a73f2 cpuinfo: first attempt at SDL_HasNEON() implementation. 2016-11-17 01:15:16 -05:00
Sam Lantinga c406f649b3 Added USB VID/PID information to the SDL test programs 2016-11-10 18:53:50 -08:00
Sam Lantinga 0396af651a Shifting a value by more than its bits isn't defined and has varying behavior depending on compiler and platform 2016-11-06 14:13:28 -08:00
Sam Lantinga 40b571c91e Fixed bug 3468 - _allshr in SDL_stdlib.c is not working properly
Mark Pizzolato

On Windows with Visual Studio, when building SDL as a static library using the x86 (32bit) mode, several intrinsic operations are implemented in code in SDL_stdlib.c.

One of these, _allshr() is not properly implemented and fails for some input.  As a result, some operations on 64bit data elements (long long) don't always work.

I classified this bug as a blocker since things absolutely don't work when the affected code is invoked.  The affected code is only invoked when SDL is compiled in x86 mode on Visual Studio when building a SDL as a static library.  This build environment isn't common, and hence the bug hasn't been noticed previously.

I reopened #2537 and mentioned this problem and provided a fix.  That fix is provided again here along with test code which could be added to some of the SDL test code.  This test code verifies that the x86 intrinsic routines produce the same results as the native x64 instructions which these routines emulate under the Microsoft compiler.  The point of the tests is to make sure that Visual Studio x86 code produces the same results as Visual Studio x64 code.  Some of the arguments (or boundary conditions) may produce different results on other compiler environments, so the tests really shouldn't be run on all compilers.  The test driver only actually exercised code when the compiler defines _MSC_VER, so the driver can generically be invoked without issue.
2016-11-06 10:01:08 -08:00
Sam Lantinga 5298830945 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
Philipp Wiesemann 98d188f5de Added call to SDL_HasAVX2() in platform test program. 2016-10-30 21:01:46 +01:00
Philipp Wiesemann 826508b6ee Removed unused constants in controllermap program. 2016-10-15 20:01:30 +02:00
Sam Lantinga c490b54e08 Fixed black screen on Steam Link 2016-10-13 04:01:25 -07:00
Sam Lantinga cb7b823cc1 Fixed black screen on Steam Link 2016-10-13 02:09:37 -07:00
Philipp Wiesemann ed80cfd9bc Removed empty statements in tests. 2016-10-12 23:36:49 +02:00
Philipp Wiesemann 367a6a3ddf Fixed compiling of three test programs with C++. 2016-10-09 20:31:32 +02:00
Sam Lantinga 56c88c4531 Modified the custom cursor test to be able to load BMP files as cursors 2016-10-04 04:08:02 -07:00
Sam Lantinga f032f811a3 Fixed bug 3318 - testime.c enhancement with GNU Unifont support
Simon Hug

I'm proposing some changes to the IME test program test/testime.c. The patch includes support for the GNU Unifont hex file, making the SDL_ttf dependency optional. There were also one or two bugs that prevented the text and underline from showing up poperly.
2016-10-01 12:43:14 -07:00
Sam Lantinga 3ac201cf7f Fixed bug 3319 - Getting the POSIX out of testqsort.c
Simon Hug

There's a call to the POSIX function random in test/testqsort.c. Naturally, Windows doesn't do that. The attached patch changes the call to the SDLtest framework random functions and adds some seed control.

Looking at SDLTest_RandomInitTime, I just want to say that 'srand((unsigned int)time(NULL)); a=rand(); srand(clock()); b=rand();' is an absolutely terrible way to initialize a seed on Windows because of its terrible LCG.
2016-10-01 12:33:26 -07:00
Sam Lantinga 2cbe9e2b77 Fixed bug 3322 - Missing error checking in testaudioinfo and testaudiohotplug
Simon Hug

The two tests test/testaudioinfo.c and test/testaudiohotplug.c are missing error checking when they call SDL_GetAudioDeviceName. This function can return NULL which the tests pass straight to SDL_Log.
2016-10-01 12:29:55 -07:00
Philipp Wiesemann 929b965c62 Fixed compiling of three test programs with C++. 2016-09-21 23:06:38 +02:00
Philipp Wiesemann 48490a528a Fixed log message in audio capture test program. 2016-08-30 21:16:04 +02:00
Ryan C. Gordon b6daf1f60a testaudiocapture: ask for way more output samples.
Fixes Emscripten builds on Chrome for Android.
2016-08-12 22:50:48 -04:00
Ryan C. Gordon 3139e5d16b testaudiocapture: open capture device to same spec as output device.
...since our resampler is still terrible (sorry!).
2016-08-09 16:57:49 -04:00
Ryan C. Gordon a15b974044 testaudiocapture: use capture device buffer queueing, for better test coverage. 2016-08-06 02:48:00 -04:00
Ryan C. Gordon 7bfe494c62 testaudiocapture: don't use fullscreen for the window. 2016-08-06 02:45:51 -04:00
Ryan C. Gordon 3ed9b0f567 testaudiocapture: made test app interactive.
(hold down mouse/finger to record, then it plays back what it heard. Repeat.)
2016-08-03 00:31:08 -04:00
Ryan C. Gordon f758483a28 testaudiocapture: Make a simple green/red window when recording/playing. 2016-08-02 19:17:51 -04:00
Ryan C. Gordon b35b9f950e testaudiocapture: Let specific devices be opened. 2016-08-02 13:38:56 -04:00
Ryan C. Gordon ee09975007 audio: Initial bits to enable audio capture support. 2016-08-01 00:18:56 -04:00
Brandon Schaefer 578edca454 Tests: Would be wise to compile this 2016-07-13 09:41:43 -07:00
Brandon Schaefer bebb6dee8d Tests: Somehow tabs leaked in... 2016-07-13 07:39:01 -07:00
Brandon Schaefer f2413850d9 Tests: Add a manual test for a custom cursor (Taken from the API docs) 2016-07-13 07:34:06 -07:00
Brandon Schaefer d8866e8400 Tests: Mir needs the window to swap at lease 1 frame for the cursor to show. So render in testwm2 2016-07-13 07:07:46 -07:00
Philipp Wiesemann b524657118 Fixed three source comments in tests. 2016-06-28 21:15:16 +02:00
Philipp Wiesemann b5aa5b04d6 Added a simple test case for SDL_sscanf() to tests.
It fails on platforms where SDL's custom implementation is used.

Relates to Bugzilla #3341.
2016-06-28 21:14:11 +02:00
Philipp Wiesemann 73b63e5b57 Fixed crash in shape test program if memory allocation failed. 2016-05-10 21:13:58 +02:00
Philipp Wiesemann 31e23d57d3 Fixed error return values in filesystem test program. 2016-05-10 21:12:48 +02:00
Philipp Wiesemann 6a9a8b682c Fixed memory leak in game controller test program. 2016-05-05 22:05:21 +02:00
Philipp Wiesemann b53007b0c8 Added missing error return in test program. 2016-04-14 21:10:08 +02:00
Philipp Wiesemann 9011eb1c41 Removed not needed SDL_WINDOW_SHOWN from chessboard test program. 2016-03-28 21:02:30 +02:00
Philipp Wiesemann b82f48bad3 Fixed compiling IME test program with HAVE_SDL_TTF on C89 compilers. 2016-03-10 21:00:27 +01:00
Philipp Wiesemann 43594e3f3d Removed unnecessary include statement in test program. 2016-03-10 21:00:13 +01:00
Ryan C. Gordon deb2acbcd9 A simple test program for SDL_qsort(). 2016-03-10 01:50:43 -05:00
Philipp Wiesemann 21d3297597 Fixed compile warnings about unused variables in IME test program. 2016-03-03 20:11:43 +01:00
Philipp Wiesemann e8b4368512 Replaced strlen() with SDL_strlen() in IME test program. 2016-03-02 20:24:43 +01:00
Ryan C. Gordon 416d046663 Mac: Implemented SDL_GetDisplayDPI (thanks, Kirill!).
Fixes Bugzilla #3223.
2016-01-07 14:02:37 -05:00
Ryan C. Gordon 8e855f2fbc 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 f9b7379341 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 c3114975db Added SDL_GetDisplayUsableBounds(). 2016-01-04 23:52:40 -05:00
Ryan C. Gordon fa8c83c1c1 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 42065e785d Updated copyright to 2016 2016-01-02 10:10:34 -08:00
Philipp Wiesemann 1446faf00e Fixed a comment in two test programs. 2015-12-25 13:41:23 +01:00
Sam Lantinga cbe19d5378 Fixed whitespace in testspriteminimal.c 2015-12-24 06:11:05 -08:00
Sam Lantinga 7b680a2ab7 Fixed mapping third party XBox controllers that have the trigger axis all the way in until they are pulled and get updated values. 2015-12-18 18:49:23 -08:00
Philipp Wiesemann 11c13916dd Fixed outdated information in README for test programs.
Two programs were removed some time ago and one was renamed.
2015-12-07 21:43:16 +01:00
Philipp Wiesemann 96229eed81 Changed comment in test program to avoid confusion.
There is a library called SDL_sound which is not used here.
2015-12-06 17:50:51 +01:00
Philipp Wiesemann 4abb73298a Fixed comment in filesystem test program. 2015-12-04 22:12:36 +01:00
Philipp Wiesemann 74de09ad4e Fixed compile error in timer test program if PRIu64 not available. 2015-12-01 22:24:04 +01:00
Philipp Wiesemann 1e2a4439a3 Fixed compile warning in IME test program. 2015-12-01 22:22:58 +01:00
Philipp Wiesemann b2445f7bbd Fixed filesystem test program to compile with older versions of C. 2015-12-01 22:21:29 +01:00
Philipp Wiesemann 11d98995da Replaced tabs with spaces in test programs. 2015-11-25 21:39:28 +01:00
Ryan C. Gordon e6ad29aec8 Added SDL_JoystickFromInstanceID() and SDL_GameControllerFromInstanceID(). 2015-11-14 12:35:45 -05:00
Philipp Wiesemann d80f45666b Fixed freeing uninitialized pointers on failure cleanup in tests. 2015-10-07 21:16:59 +02:00
Alex Szpakowski 2bf6f1bcb7 Added initial support for MFi game controllers on iOS. 2015-09-20 23:08:36 -03:00
Ryan C. Gordon d338f46512 Added copyright information on test/sample.wav; the mystery is solved! :) 2015-09-18 16:22:23 -04:00
Philipp Wiesemann eb57d75242 Added missing SDL_Quit() in test program. 2015-08-09 20:01:01 +02:00
Ryan C. Gordon 344fbe61b3 testdisplayinfo.c forgot to SDL_Quit() at the end. 2015-08-07 01:00:14 -04:00
Philipp Wiesemann 8bbded2583 Fixed comment in test program. 2015-07-15 21:10:38 +02:00
Ryan C. Gordon b7ecc67009 Added test/testdisplayinfo.c 2015-07-14 21:28:26 -04:00
Philipp Wiesemann 0e45984fa0 Fixed crash if initialization of EGL failed but was tried again later.
The internal function SDL_EGL_LoadLibrary() did not delete and remove a mostly
uninitialized data structure if loading the library first failed. A later try to
use EGL then skipped initialization and assumed it was previously successful
because the data structure now already existed. This led to at least one crash
in the internal function SDL_EGL_ChooseConfig() because a NULL pointer was
dereferenced to make a call to eglBindAPI().
2015-06-21 17:33:46 +02:00