Commit Graph

272 Commits

Author SHA1 Message Date
Ozkan Sezer
37b093eaf2 test/checkkeysthreads: build fixes, and add to os2 makefile. 2021-06-05 00:05:56 +03:00
Francesco Abbate
0dd7024d55 Modifies WaitEvent and WaitEventTimeout to actually wait instead of polling
When possible use native os functions to make a blocking call waiting for
an incoming event. Previous behavior was to continuously poll the event
queue with a small delay between each poll.

The blocking call uses a new optional video driver event,
WaitEventTimeout, if available. It is called only if an window
already shown is available. If present the window is designated
using the variable wakeup_window to receive a wakeup event if
needed.

The WaitEventTimeout function accept a timeout parameter. If
positive the call will wait for an event or return if the timeout
expired without any event. If the timeout is zero it will
implement a polling behavior. If the timeout is negative the
function will block indefinetely waiting for an event.

To let the main thread sees events sent form a different thread
a "wake-up" signal is sent to the main thread if the main thread
is in a blocking state. The wake-up event is sent to the designated
wakeup_window if present.

The wake-up event is sent only if the PushEvent call is coming
from a different thread. Before sending the wake-up event
the ID of the thread making the blocking call is saved using the
variable blocking_thread_id and it is compared to the current
thread's id to decide if the wake-up event should be sent.

Two new optional video device methods are introduced:

WaitEventTimeout
SendWakeupEvent

in addition the mutex

wakeup_lock

which is defined and initialized but only for the drivers supporting the
methods above.

If the methods are not present the system behaves as previously
performing a periodic polling of the events queue.

The blocking call is disabled if a joystick or sensor is detected
and falls back to previous behavior.
2021-06-04 13:50:50 -07:00
Ozkan Sezer
646ddfb782 minor watcom build fixes. 2021-05-15 00:22:50 +03:00
Ozkan Sezer
babd79b8ef bump minimum required autoconf version and revise autogen.sh 2021-04-14 23:20:40 +03:00
Ozkan Sezer
197cfcaf71 ran configure.ac through autoupdate-2.69
generated configure script is practically the same except for whitespace
changes.
2021-04-14 21:10:40 +03:00
Ryan C. Gordon
da66755450
Fixed up legacy MoinMoin URLs at wiki.libsdl.org
Fixes #4064.
2021-04-01 12:20:33 -04:00
Ryan C. Gordon
2542977b0a
Revert "Update wiki.libsdl.org urls to libsdl-org/SDL/wiki (#4069)"
This reverts commit 82a96afa70.

We ended up not moving to GitHub's wiki after all and built
https://github.com/icculus/ghwikipp to fill the gap...since the wiki is
back at https://wiki.libsdl.org/, put back the original URLs.
2021-04-01 12:15:28 -04:00
Christian Rauch
570768f627 test: fix shadowing variables 2021-03-29 09:01:26 -07:00
Christian Rauch
b972258d56 test: remove unused variables and typedefs 2021-03-29 09:01:26 -07:00
Christian Rauch
3f25704592 test: portable 64bit address format specifier 2021-03-29 09:01:26 -07:00
David Gow
1cd97e2695 testmessage: Create a renderer for window display on Wayland
On Wayland -- or at least on some Wayland implementations -- windows
aren't shown until something has been rendered into them. For the
'testmessage' test program, this means that the final messagebox (a
modal one) is blocking an "invisible window", which can then be
difficult to close.

By creating a renderer and presenting once, the window is properly
displayed, and the test behaves as it does under X11 (including
XWayland).
2021-03-29 08:50:30 -07:00
Sam Lantinga
8b87b438b4 Don't try to map the touchpad button, since we don't have any art for that at the moment. 2021-03-26 13:01:06 -07:00
Ozkan Sezer
e5821bf276 regenerated configure. 2021-03-18 00:10:00 +03:00
Vanfanel
e6b87005c1 Fix tests configuration and building when only GLVND full OpenGL implementation is present. 2021-03-17 12:33:22 -07:00
Ozkan Sezer
9d46bd25c7 revert commit 81cdb1bb0d (unifont license issue.) 2021-03-11 17:00:10 +03:00
Ozkan Sezer
81cdb1bb0d test: add unifont-9.0.02.hex as a resource (so it works out-of-the-box)
from a patchset by Vladislav Dmitrievich Turbanov:
https://github.com/libsdl-org/SDL/pull/4062
2021-03-04 18:32:32 +03:00
Ozkan Sezer
a52d0db532 test/CMakeLists.txt: add OpenGL module checks and adjust dependencies.
from a patchset by Vladislav Dmitrievich Turbanov:
https://github.com/libsdl-org/SDL/pull/4062
2021-03-04 18:28:10 +03:00
Ozkan Sezer
e7abf96801 test/CMakeLists.txt: bump cmake minimum required to 3.0 for consistency
from a patchset by Vladislav Dmitrievich Turbanov:
https://github.com/libsdl-org/SDL/pull/4062
2021-03-04 18:28:04 +03:00
Ozkan Sezer
a29fe29296 configury: replace host checks against *-*-mingw32* with *-*-mingw* 2021-02-18 20:10:50 +03:00
Cameron Cawley
9323cd51f0 Check for ARM SIMD in testplatform 2021-02-17 11:10:02 +03:00
Erik Yuzwa
82a96afa70
Update wiki.libsdl.org urls to libsdl-org/SDL/wiki (#4069) 2021-02-13 11:49:31 -05:00
Ryan C. Gordon
4ff51d29c3 Deprecate SDL_GetRevisionNumber and update things for git instead of hg.
Fixes #4063
2021-02-12 14:31:38 -05:00
Vladislav Dmitrievich Turbanov
31e8a4627a * Fixed closing the test window. 2021-02-11 14:20:01 -08:00
Cameron Gutman
6b057c6783 Expose separate keyboard and mouse grab support
This adds SDL_SetWindowKeyboardGrab(), SDL_GetWindowKeyboardGrab(),
SDL_SetWindowMouseGrab(), SDL_GetWindowMouseGrab(), and new
SDL_WINDOW_KEYBOARD_GRABBED flag. It also updates the test harness to exercise
this functionality and makes a minor fix to X11 that I missed in
https://hg.libsdl.org/SDL/rev/02a2d609369b

To fit in with this new support, SDL_WINDOW_INPUT_CAPTURE has been renamed to
SDL_WINDOW_MOUSE_CAPTURE with the old name remaining as an alias for backwards
compatibility with older code.
2021-02-10 10:22:17 -05:00
Ozkan Sezer
d0c5097cdc minor autotools build system updates. 2021-01-24 00:51:25 -05:00
Sylvain Becker
4fbb9f31ab Fix declarations after statement 2021-01-24 00:51:24 -05:00
Sylvain Becker
0e7d435f13 Add basic testgles2_sdf program to demonstrate sign distance field with opengles2 2021-01-24 00:51:24 -05:00
Sam Lantinga
c94283d404 testgamecontroller: log which controller the event came from 2021-01-13 11:01:54 -08:00
Sam Lantinga
9130f7c377 Updated copyright for 2021 2021-01-02 10:25:38 -08:00
Ozkan Sezer
88eaf356a7 minor update to test/acinclude.m4 (pkg.m4) 2020-12-30 15:53:20 +03:00
Ozkan Sezer
5ed3d21f6e testsem.c: fix -Wmissing-braces warnings. 2020-12-24 00:55:30 +03:00
Joel Linn
2b040cebbe Atomic test: Fix use after free
SDL_SemPost() was called by the FIFO threads after the semaphore was
freed because the main thread actually synchronized on the
`writerRunning`/`readersRunning` count and not the semaphores itself.
2020-12-23 13:36:23 -08:00
Joel Linn
6267b95177 Semaphore test: Add overhead tests. 2020-12-23 13:36:02 -08:00
Joel Linn
95a6d4e848 Semaphore test: Put test into separate function. 2020-12-23 13:35:35 -08:00
Ozkan Sezer
090fffac6a test/Makefile.os2: add warning switches to CFLAGS. 2020-12-24 00:29:40 +03:00
Ozkan Sezer
239c8f1f4c testvulkan.c: fix -Wmissing-braces warnings. also fix whitespace. 2020-12-24 00:28:50 +03:00
Ozkan Sezer
20ca1192d2 testgesture.c: comment out unused drawLine() 2020-12-24 00:26:32 +03:00
Ozkan Sezer
b064028c2d testatomic.c: fix warnings due to SDL_AtomicDecRef() use 2020-12-24 00:25:40 +03:00
Sam Lantinga
390b2cf0d3 Enable PS5 enhanced functionality for testgamecontroller 2020-12-22 20:53:27 -08:00
Sam Lantinga
058a0ab47f Set the pad lights on the PS5 controller corresponding to the player index
Also allow setting the player index from testgamecontroller using the number keys
2020-12-22 14:38:32 -08:00
Ozkan Sezer
b4b674dabb CMakeLists.txt: sync DYLIB_CURRENT_VERSION to Xcode project 2020-12-22 22:10:50 +03:00
Sam Lantinga
350f1b0d16 Updated SDL to version 2.0.15 for development 2020-12-22 10:36:15 -08:00
Ozkan Sezer
9f655fe522 regenerated configure 2020-12-22 17:03:20 +03:00
Ozkan Sezer
86191351c0 acinclude & sdl2.m4 updates:
- acinclude/alsa.m4, esd.m4: Ran through autoupdate to replace several
  AC_TRY_[COMPILE|LINK|RUN] with corresponding AC_???_IFELSE , so that
  autoconf-2.70 doesn't warn.
- sdl2.m4: Ditto.
- test/acinclude.m4 (sdl2): Ditto.
2020-12-22 17:00:28 +03:00
Ozkan Sezer
f117db5186 sdl2.m4 updates:
- remove HP/UX 9 (%@#!) support
- change fopen() mode from "a" to "w" in test code.
- bump its serial num to 2.
- test/acinclude.m4: same sdl2.m4 updates.
2020-12-22 17:00:11 +03:00
Ozkan Sezer
537f824f38 test/Makefile.os2: wlib must run case-sensitively. 2020-12-21 20:40:10 +03:00
Sam Lantinga
67e9132dd5 Fixed circular dependency problem when building in the test directory 2020-12-20 12:22:28 -08:00
Ozkan Sezer
5c654d0df4 tests: regenerate configure using autoconf patched for AC_PATH_X11
Specifically this patch which does not invoke _AC_PATH_X_XMKMF and
_AC_PATH_X_DIRECT internal autoconf routines when cross-compiling:
http://git.savannah.gnu.org/gitweb/?p=autoconf.git;a=commitdiff;h=33c3a47c04ab70a4dd54963fe433a171bc03747f

Without this, CFLAGS would brokenly have system include paths like
-I/usr/include/X11 when cross-compiling e.g. for windows.  (And it
also resulted in annoying imake crashes for my setup...)
2020-12-18 17:00:00 +03:00
Ozkan Sezer
716ac535d8 test/acinclude.m4: rename SDL_CONFIG to SDL2_CONFIG, regenerate configure 2020-12-15 01:20:00 +03:00
Ozkan Sezer
44d4a61d92 minor cleanups to configure.ac to reduce autoconf-2.70 warnings a bit.
configure output is practically unchanged. there are still lots of
AC_TRY_COMPILE/AC_TRY_LINK replacements needed to really eliminate
the warnings, but that's for another time.
2020-12-14 08:11:40 +03:00