SDL2 for the Nintendo Wii U (build with "cmake [SDL source path] -DCMAKE_TOOLCHAIN_FILE=$WUT_ROOT/share/wut.toolchain.cmake -DCMAKE_INSTALL_PREFIX=$DEVKITPRO/portlibs/wiiu")
Go to file
Ryan C. Gordon 64c6c74bc0 Massive Quartz input enhancements from Darrell Walisser. His email:
Enclosed is a patch that addresses the following:

--Various minor cleanups.
Removed dead/obsolete code, made some style cleanups

--Mouse Events
Now keep track of what button(s) were pressed so we know when to send
the mouse up event. This fixes the case where the mouse is dragged
outside of the game window and released (in which case we want to send
the mouse up event even though the mouse is outside the game window).

--Input Grabbing
Here is my take on the grabbing situation, which is the basis for the
new implementation.

There are 3 grab states, ungrabbed (UG), visible (VG), and invisible
(IG). Both VG and IG keep the mouse constrained to the window and
produce relative motion events. In VG the cursor is visible (duh), in
IG it is not. In VG, absolute motion events also work.

There are 6 actions that can affect grabbing:

1. Set Fullscreen/Window (F/W). In fullscreen, a visible grab should do
nothing. However, a fullscreen visible grab can be treated just like a
windowed visible grab, which is what I have done to help simplify
things.

2. Cursor hide/show (H/S). If the cursor is hidden when grabbing, the
grab is an invisible grab. If the cursor is visible, the grab should
just constrain the mouse to the window.

3. Input grab/ungrab(G/U). If grabbed, the cursor should be confined to
the window as should the keyboard input. On Mac OS X, the keyboard
input is implicitly grabbed by confining the cursor, except for
command-tab which can switch away from the application. Should the
window come to the foreground if the application is deactivated and
grab input is called? This isn't necessary in this implementation
because the grab state will be asserted upon activation.

Using my notation, these are all the cases that need to be handled
(state + action = new state).

UG+U = UG
UG+G = VG or IG, if cursor is visible or not
UG+H = UG
UG+S = UG

VG+U = UG
VG+G = VG
VG+H = IG
VG+S = VG

IG+U = UG
IG+G = IG
IG+H = IG
IG+S = VG

The cases that result in the same state can be ignored in the code,
which cuts it down to just 5 cases.

Another issue is what happens when the app loses/gains input focus from
deactivate/activate or iconify/deiconify. I think that if input focus
is ever lost (outside of SDL's control), the grab state should be
suspended and the cursor should become visible and active again. When
regained, the cursor should reappear in its original location and/or
grab state. This way, when reactivating the cursor is still in the same
position as before so apps shouldn't get confused when the next motion
event comes in. This is what I've done in this patch.
2002-12-27 20:52:41 +00:00
docs Updated from the SDL Documentation Project 2001-09-14 02:41:09 +00:00
include Turn on enums always ints for CodeWarrior (thanks Darrell!) 2002-10-22 21:35:49 +00:00
src Massive Quartz input enhancements from Darrell Walisser. His email: 2002-12-27 20:52:41 +00:00
test Added some code to toggle fullscreen and input grab for testing... --ryan. 2002-12-20 03:37:28 +00:00
.cvsignore Initial revision 2001-04-26 16:45:43 +00:00
acinclude.m4 Changes since SDL 1.2.0 release 2001-04-26 16:50:19 +00:00
autogen.sh *** empty log message *** 2002-04-13 14:44:33 +00:00
Borland.html Updated the Borland C++ projects (thanks Dominique!) 2002-08-24 16:15:37 +00:00
Borland.zip Updated the Borland C++ projects (thanks Dominique!) 2002-08-24 16:15:37 +00:00
BUGS Date: Sat, 1 Jun 2002 17:56:45 -0500 2002-06-01 23:05:05 +00:00
config.guess Added MacOS X Project Builder projects 2001-06-10 18:20:23 +00:00
config.sub Added MacOS X Project Builder projects 2001-06-10 18:20:23 +00:00
configure.in Updated Atari port for new system headers (thanks Patrice!) 2002-12-07 06:54:47 +00:00
COPYING Initial revision 2001-04-26 16:45:43 +00:00
CREDITS Updated the credits 2002-08-25 02:05:24 +00:00
CWprojects.sea.bin Updated MacOS projects with "enums as int" build option 2002-09-01 19:34:01 +00:00
docs.html Open ALSA devices in non-blocking mode (thanks Aleksey!) 2002-11-17 20:02:26 +00:00
EpocBuildFiles.zip Added support for building SDL for EPOC/SymbianOS 6.0 (thanks Hannu!) 2001-12-14 12:37:34 +00:00
INSTALL *** empty log message *** 2002-10-20 00:15:33 +00:00
install-sh Initial revision 2001-04-26 16:45:43 +00:00
ltconfig Fixed building Windows DLL with latest native Cygwin tools 2002-08-17 17:21:04 +00:00
ltmain.sh *** empty log message *** 2002-06-08 19:33:48 +00:00
Makefile.am Added Visual C++ 7 (.NET) projects (thanks James!) 2002-10-08 15:43:40 +00:00
Makefile.dc Added initial support for Dreamcast (thanks HERO!) 2002-10-05 16:50:56 +00:00
missing Initial revision 2001-04-26 16:45:43 +00:00
mkinstalldirs Initial revision 2001-04-26 16:45:43 +00:00
MPWmake.sea.bin Updated MacOS projects with "enums as int" build option 2002-09-01 19:34:01 +00:00
PBProjects.tar.gz Updated the Project Builder stationary with SDLMain.* 2002-10-08 15:48:21 +00:00
README *** empty log message *** 2002-11-24 20:44:08 +00:00
README-SDL.txt Initial revision 2001-04-26 16:45:43 +00:00
README.AmigaOS Updated the Amiga OS port of SDL (thanks Gabriele) 2001-05-10 20:13:29 +00:00
README.CVS Date: Sat, 8 Sep 2001 04:42:23 +0200 2001-09-11 19:00:18 +00:00
README.DC Added initial support for Dreamcast (thanks HERO!) 2002-10-05 16:50:56 +00:00
README.Epoc Added support for building SDL for EPOC/SymbianOS 6.0 (thanks Hannu!) 2001-12-14 12:37:34 +00:00
README.MacOS Date: Sat, 8 Sep 2001 04:42:23 +0200 2001-09-11 19:00:18 +00:00
README.MacOSX *** empty log message *** 2001-11-02 18:12:52 +00:00
README.MiNT Updated Atari port for new system headers (thanks Patrice!) 2002-12-07 06:54:47 +00:00
README.NanoX Date: Sat, 24 Aug 2002 22:20:01 -0600 2002-08-25 06:21:49 +00:00
README.PicoGUI Added initial support for PicoGUI (thanks Micah!) 2002-08-01 23:24:13 +00:00
README.QNX Date: Wed, 22 May 2002 22:30:58 +0300 2002-05-28 19:31:32 +00:00
README.Qtopia Added a README for Qtopia 2002-06-01 18:43:51 +00:00
README.WinCE Updated for embedded Visual C++ 4.0 2002-08-20 00:20:06 +00:00
sdl-config.in The portable way of including SDL is #include "SDL.h" 2002-09-09 05:28:06 +00:00
sdl.m4 Fixed path problem with sdl.m4 macro file 2002-09-09 05:12:32 +00:00
SDL.spec.in *** empty log message *** 2002-05-31 04:45:46 +00:00
strip_fPIC.sh Fixed to work on Solaris x86 2001-05-10 20:19:50 +00:00
TODO *** empty log message *** 2001-08-18 10:33:55 +00:00
VisualC.html Added Visual C++ 7 (.NET) projects (thanks James!) 2002-10-08 15:43:40 +00:00
VisualC.zip Doh! Forgot to set the Win32 DLL version to 1.2.5 2002-10-07 02:39:37 +00:00
VisualC7.zip Added Visual C++ 7 (.NET) projects (thanks James!) 2002-10-08 15:43:40 +00:00
VisualCE.zip Updated for embedded Visual C++ 4.0 2002-08-20 00:20:06 +00:00
WhatsNew Added SDL_BUTTON_WHEELUP (4) and SDL_BUTTON_WHEELDOWN (5) 2002-08-19 18:09:44 +00:00

                         Simple DirectMedia Layer

                                  (SDL)

                                Version 1.2

---
http://www.libsdl.org/

This is the Simple DirectMedia Layer, a generic API that provides low
level access to audio, keyboard, mouse, joystick, 3D hardware via OpenGL,
and 2D framebuffer across multiple platforms.

SDL is written in C, but works with C++ natively, and has bindings to
several other languages, including Ada, Eiffel, Java, ML, Perl, PHP,
Pike, Python, and Ruby.

The current version supports Linux, Windows, BeOS, MacOS, MacOS X,
FreeBSD, OpenBSD, BSD/OS, Solaris, and IRIX.  The code contains support
for Windows CE, AmigaOS, Atari, QNX, NetBSD, AIX, OSF/Tru64, and SymbianOS,
but these are not officially supported.

This library is distributed under GNU LGPL version 2, which can be
found in the file  "COPYING".  This license allows you to use SDL
freely in commercial programs as long as you link with the dynamic
library.

The best way to learn how to use SDL is to check out the header files in
the "include" subdirectory and the programs in the "test" subdirectory.
The header files and test programs are well commented and always up to date.
More documentation is available in HTML format in "./docs/index.html"

The test programs in the "test" subdirectory are in the public domain.

Frequently asked questions are answered online:
	http://www.libsdl.org/faq.php

If you need help with the library, or just want to discuss SDL related
issues, you can join the developers mailing list:
	http://www.libsdl.org/mailing-list.php

Enjoy!
	Sam Lantinga				(slouken@libsdl.org)