Commit Graph

1226 Commits

Author SHA1 Message Date
Philipp Wiesemann
3f675a01a7 Fixed warning about implicit conversion in controllermap program. 2017-03-04 23:05:47 +01:00
Brandon Schaefer
62c9848b3d mistake: Revert the files that I did not mean to commit 2017-03-01 15:05:54 -08:00
Brandon Schaefer
88dad22cdf * Some refactoring and bug fixes. Thanks Michał Kuchta! 2017-03-01 14:50:59 -08:00
Philipp Wiesemann
844198cfac Fixed warnings if compiling loopwave programs with C++. 2017-02-19 21:05:42 +01:00
Sam Lantinga
88be409a04 Added support for the HOTAS Warthog throttle 2017-01-31 12:23:29 -08:00
Sam Lantinga
eb445857f5 Added the HOTAS Warthog as a flight stick 2017-01-31 10:20:09 -08:00
Philipp Wiesemann
715bc7f1f1 Fixed copyright symbol in testgles2 program. 2017-01-21 22:00:40 +01:00
Sam Lantinga
d1508cc1ad Fixed mapping the PG-9021 which, on Linux, emits a button partway through the trigger press along with axis motion all along the pull 2017-01-20 16:40:11 -08:00
Philipp Wiesemann
e5d8e161d0 Fixed warnings about missing initializers in testoverlay2 program. 2017-01-14 21:34:45 +01:00
Sam Lantinga
9fca03e6fd Fixed bugs 2570, 3145, improved OpenGL ES context support on Windows and X11
Mark Callow

The attached patch does the following for the X11 and Windows platforms, the only ones where SDL attempts to use context_create_es_profile:

- Adds SDL_HINT_OPENGL_ES_DRIVER by which the application can
  say to use the OpenGL ES driver & EGL rather than the Open GL
  driver. (For bug #2570)
- Adds code to {WIN,X11}_GL_InitExtensions to determine the maximum
  OpenGL ES version supported by the OpenGL driver (for bug #3145)
- Modifies the test that determines whether to use the OpenGL
  driver or the real OpenGL ES driver to take into account the
  hint, the requested and supported ES version and whether ES 1.X
  is being requested. (For bug #2570 & bug #3145)
- Enables the testgles2 test for __WINDOWS__ and __LINUX__ and adds
  the test to the VisualC projects.

With the fix in place I have run testdraw2, testgl and testgles2 without any issues and have run my own apps that use OpenGL, OpenGL ES 3 and OpenGL ES 1.1.
2017-01-10 08:54:33 -08:00
Ryan C. Gordon
01d4ee3876 testresample: write correct length to the .wav header. 2017-01-09 15:56:11 -05:00
Ryan C. Gordon
67c4e17d5c audio: Improvements in channel conversion code. 2017-01-08 16:18:49 -05:00
Ryan C. Gordon
b678227a81 Fixed a bunch of compiler warnings in the test code. 2017-01-07 22:24:45 -05:00
Sam Lantinga
1e81ac1559 Added SDL_JoystickGetAxisInitialState() to get a joystick axis' initial value.
This is useful for controller mapping programs to determine an axis' zero state
2017-01-04 10:28:07 -08:00
Sam Lantinga
c35b0eefbe Some controllers have trouble getting out to 20000 2017-01-04 05:09:02 -08:00
Sam Lantinga
c9ed79623c 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
d77ab77a7a Updated copyright for 2017 2017-01-01 18:33:28 -08:00
Philipp Wiesemann
0cc40f2af6 Fixed warning and missing animation delay in testoverlay2 program. 2016-12-30 19:57:50 +01:00
Philipp Wiesemann
eb909cf972 Fixed compiling of testgamecontroller program with C++. 2016-12-28 20:11:29 +01:00
Philipp Wiesemann
3d06b2ce33 Fixed warning about unused variable in controllermap program. 2016-12-28 20:11:12 +01:00
Sam Lantinga
e1d3e01601 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
bdd7e6b176 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
af39fc10d3 Fixed hotplug with more than one device in testjoystick program. 2016-12-16 22:58:32 +01:00
Philipp Wiesemann
7d96beee5e Fixed warning about unused variable in controllermap program. 2016-12-16 22:58:16 +01:00
Sam Lantinga
103da69c77 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
800baf2915 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
23e29e1256 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
f660677b48 Added an API to iterate over game controller mappings 2016-11-29 06:36:57 -08:00
Ryan C. Gordon
162885911a cpuinfo: first attempt at SDL_HasNEON() implementation. 2016-11-17 01:15:16 -05:00
Sam Lantinga
2927b15bca Added USB VID/PID information to the SDL test programs 2016-11-10 18:53:50 -08:00
Sam Lantinga
f92177479a 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
d516ea5ace 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
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
Philipp Wiesemann
99df4e5235 Added call to SDL_HasAVX2() in platform test program. 2016-10-30 21:01:46 +01:00
Philipp Wiesemann
8f8e7db610 Removed unused constants in controllermap program. 2016-10-15 20:01:30 +02:00
Sam Lantinga
7b6ea53777 Fixed black screen on Steam Link 2016-10-13 04:01:25 -07:00
Sam Lantinga
13c3adb1fd Fixed black screen on Steam Link 2016-10-13 02:09:37 -07:00
Philipp Wiesemann
12f1d2d7dc Removed empty statements in tests. 2016-10-12 23:36:49 +02:00
Philipp Wiesemann
3e00b2acf9 Fixed compiling of three test programs with C++. 2016-10-09 20:31:32 +02:00
Sam Lantinga
a6c4b433cd Modified the custom cursor test to be able to load BMP files as cursors 2016-10-04 04:08:02 -07:00
Sam Lantinga
5c21fe25e1 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
d563a8bfd7 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
d1c4b0533b 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
9335a5b22f Fixed compiling of three test programs with C++. 2016-09-21 23:06:38 +02:00
Philipp Wiesemann
0510ab75b3 Fixed log message in audio capture test program. 2016-08-30 21:16:04 +02:00
Ryan C. Gordon
3a61ba8a90 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
15f5e2ffcb 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
32f2f907e8 testaudiocapture: use capture device buffer queueing, for better test coverage. 2016-08-06 02:48:00 -04:00
Ryan C. Gordon
41e101f785 testaudiocapture: don't use fullscreen for the window. 2016-08-06 02:45:51 -04:00
Ryan C. Gordon
f32e1a4671 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
1b81d1bf07 testaudiocapture: Make a simple green/red window when recording/playing. 2016-08-02 19:17:51 -04:00
Ryan C. Gordon
ceae704649 testaudiocapture: Let specific devices be opened. 2016-08-02 13:38:56 -04:00
Ryan C. Gordon
5b2b9fb1f8 audio: Initial bits to enable audio capture support. 2016-08-01 00:18:56 -04:00
Brandon Schaefer
9db1333999 Tests: Would be wise to compile this 2016-07-13 09:41:43 -07:00
Brandon Schaefer
49143c57e9 Tests: Somehow tabs leaked in... 2016-07-13 07:39:01 -07:00
Brandon Schaefer
409cdc5f26 Tests: Add a manual test for a custom cursor (Taken from the API docs) 2016-07-13 07:34:06 -07:00
Brandon Schaefer
a5a929a55d 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
5bb52655db Fixed three source comments in tests. 2016-06-28 21:15:16 +02:00
Philipp Wiesemann
0619020de6 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
d231148b56 Fixed crash in shape test program if memory allocation failed. 2016-05-10 21:13:58 +02:00
Philipp Wiesemann
5bca661e1e Fixed error return values in filesystem test program. 2016-05-10 21:12:48 +02:00
Philipp Wiesemann
48c993965d Fixed memory leak in game controller test program. 2016-05-05 22:05:21 +02:00
Philipp Wiesemann
b47f52e9c8 Added missing error return in test program. 2016-04-14 21:10:08 +02:00
Philipp Wiesemann
167819be2c Removed not needed SDL_WINDOW_SHOWN from chessboard test program. 2016-03-28 21:02:30 +02:00
Philipp Wiesemann
69630ccfed Fixed compiling IME test program with HAVE_SDL_TTF on C89 compilers. 2016-03-10 21:00:27 +01:00
Philipp Wiesemann
f7f9aa434c Removed unnecessary include statement in test program. 2016-03-10 21:00:13 +01:00
Ryan C. Gordon
3373009f25 A simple test program for SDL_qsort(). 2016-03-10 01:50:43 -05:00
Philipp Wiesemann
f2c6a9e9d1 Fixed compile warnings about unused variables in IME test program. 2016-03-03 20:11:43 +01:00
Philipp Wiesemann
3a4c0b8a4f Replaced strlen() with SDL_strlen() in IME test program. 2016-03-02 20:24:43 +01:00
Ryan C. Gordon
15cec4cfce Mac: Implemented SDL_GetDisplayDPI (thanks, Kirill!).
Fixes Bugzilla #3223.
2016-01-07 14:02:37 -05:00
Ryan C. Gordon
e83e190025 Added SDL_DROPBEGIN and SDL_DROPCOMPLETE events, plus window IDs for drops.
This allows an app to know when a set of drops are coming in a grouping of
some sort (for example, a user selected multiple files and dropped them all
on the window with a single drag), and when that set is complete.

This also adds a window ID to the drop events, so the app can determine to
which window a given drop was delivered. For application-level drops (for
example, you launched an app by dropping a file on its icon), the window ID
will be zero.
2016-01-05 01:42:00 -05:00
Ryan C. Gordon
4711bc9d8b Added SDL_DROPTEXT event, for dragging and dropping string data.
This patch is based on work in Unreal Engine 4's fork of SDL,
compliments of Epic Games.
2016-01-05 02:26:45 -05:00
Ryan C. Gordon
34581fedd1 Added SDL_GetDisplayUsableBounds(). 2016-01-04 23:52:40 -05:00
Ryan C. Gordon
0e7135739a Remove almost all instances of "volatile" keyword.
As Tiffany pointed out in Bugzilla, volatile is not useful for thread safety:

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

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

Fixes Bugzilla #3220.
2016-01-03 06:50:50 -05:00
Sam Lantinga
255c182471 Updated copyright to 2016 2016-01-02 10:10:34 -08:00
Philipp Wiesemann
20f4ae2fb8 Fixed a comment in two test programs. 2015-12-25 13:41:23 +01:00
Sam Lantinga
c47561fe68 Fixed whitespace in testspriteminimal.c 2015-12-24 06:11:05 -08:00
Sam Lantinga
17a35ec885 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
3e38a72ac9 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
efcbc7ceb9 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
632b32ec5a Fixed comment in filesystem test program. 2015-12-04 22:12:36 +01:00
Philipp Wiesemann
f1d3b82092 Fixed compile error in timer test program if PRIu64 not available. 2015-12-01 22:24:04 +01:00
Philipp Wiesemann
8f5f197236 Fixed compile warning in IME test program. 2015-12-01 22:22:58 +01:00
Philipp Wiesemann
f2375a7774 Fixed filesystem test program to compile with older versions of C. 2015-12-01 22:21:29 +01:00
Philipp Wiesemann
9677d33467 Replaced tabs with spaces in test programs. 2015-11-25 21:39:28 +01:00
Ryan C. Gordon
87c985cd18 Added SDL_JoystickFromInstanceID() and SDL_GameControllerFromInstanceID(). 2015-11-14 12:35:45 -05:00
Philipp Wiesemann
0b442eb2d8 Fixed freeing uninitialized pointers on failure cleanup in tests. 2015-10-07 21:16:59 +02:00
Alex Szpakowski
4a556c4c01 Added initial support for MFi game controllers on iOS. 2015-09-20 23:08:36 -03:00
Ryan C. Gordon
4785ff74f2 Added copyright information on test/sample.wav; the mystery is solved! :) 2015-09-18 16:22:23 -04:00
Philipp Wiesemann
16c3694035 Added missing SDL_Quit() in test program. 2015-08-09 20:01:01 +02:00
Ryan C. Gordon
210c2bec08 testdisplayinfo.c forgot to SDL_Quit() at the end. 2015-08-07 01:00:14 -04:00
Philipp Wiesemann
e859cd05af Fixed comment in test program. 2015-07-15 21:10:38 +02:00
Ryan C. Gordon
13cafe01a0 Added test/testdisplayinfo.c 2015-07-14 21:28:26 -04:00
Philipp Wiesemann
99c2ebb8b1 Fixed comment in test program. 2015-06-16 20:27:01 +02:00
Philipp Wiesemann
3834b61647 Fixed not needed calculation in test program. 2015-06-04 17:52:27 +02:00
Ryan C. Gordon
be1231750c testmessage: Try Unicode chars in the title, too. 2015-05-31 23:53:10 -04:00
Ryan C. Gordon
c311fafac8 testmessage.c should report when message boxes were closed. 2015-05-31 22:27:46 -04:00
Ryan C. Gordon
a0719e44ef Fixed memory leaks in testfilesystem.c (thanks, Nitz!).
Fixes Bugzilla #2991.
2015-05-31 21:50:50 -04:00
Sam Lantinga
c03e66f608 Fixed X11 build, added code to print initial modifiers to checkkeys 2015-05-28 09:52:48 -07:00
Ryan C. Gordon
906a4d69c1 Stack hint should look for 0, not -1, and not care about environment variables. 2015-05-26 21:19:23 -04:00