SDL2 for PSP
Go to file
Sam Lantinga 9568645775 Fixed bug #55
From Christian Walther:
When writing my patch for #12, I ended up doing all sorts of changes to the way
application/window activating/deactivating is handled in the Quartz backend,
resulting in the attached patch. It does make the code a bit cleaner IMHO, but
as it might be regarded as a case of "if it ain't broken, don't fix it" I'd
like to hear other people's opinion about it. Please shout if some change
strikes you as unnecessary or wrong, and I'll explain the reasons behind it. As
far as I tested it, it does not introduce any new bugs, but I may well have
missed some.

- The most fundamental change (that triggered most of the others) is irrelevant
for the usual single-window SDL applications, it only affects the people who
are crazy enough to display other Cocoa windows alongside the SDL window (I'm
actually doing this currently, although the additional window only displays
debugging info and won't be present in the final product): Before, some things
were done on the application becoming active, some on the window becoming key,
and some on the window becoming main. Conceptually, all these actions belong to
the window becoming key, so that's what I implemented. However, since in a
single-window application these three events always happen together, the
previous implementation "ain't broken".

- This slightly changed the meaning of the SDL_APPMOUSEFOCUS flag from
SDL_GetAppState(): Before, it meant "window is main and mouse is inside window
(or mode is fullscreen)". Now, it means "window is key and mouse is inside
window (or mode is fullscreen)". It makes more sense to me that way. (See
http://developer.apple.com/documentation/Cocoa/Conceptual/WinPanel/Concepts/ChangingMainKeyWindow.html
for a discussion of what key and main windows are.) The other two flags are
unchanged: SDL_APPACTIVE = application is not hidden and window is not
minimized, SDL_APPINPUTFOCUS = window is key (or mode is fullscreen).

- As a side effect, the reorganization fixes the following two issues (and
maybe others) (but they could also be fixed in less invasive ways):

* A regression that was introduced in revision 1.42 of SDL_QuartzVideo.m
(http://libsdl.org/cgi/cvsweb.cgi/SDL12/src/video/quartz/SDL_QuartzVideo.m.diff?r1=1.41&r2=1.42)
(from half-desirable to undesirable behavior):

Situation: While in windowed mode, hide the cursor using
SDL_ShowCursor(SDL_DISABLE), move the mouse outside of the window so that the
cursor becomes visible again, and SDL_SetVideoMode() to a fullscreen mode.
What happened before revision 1.42: The cursor is visible, but becomes
invisible as soon as the mouse is moved (half-desirable).
What happens in revision 1.42 and after (including current CVS): The cursor is
visible and stays visible (undesirable).
What happens after my patch: The cursor is invisible from the beginning
(desirable).

* When the cursor is hidden and grabbed, switch away from the application using
cmd-tab (which ungrabs and makes the cursor visible), move the cursor outside
of the SDL window, then cmd-tab back to the application. In 1.2.8 and in the
current CVS, the cursor is re-grabbed, but it stays visible (immovable in the
middle of the window). With my patch, the cursor is correctly re-grabbed and
hidden. (For some reason, it still doesn't work correctly if you switch back to
the application using the dock instead of cmd-tab. I haven't been able to
figure out why. I can step over [NSCursor hide] being called in the debugger,
but it seems to have no effect.)

- The patch includes my patch for #12 (it was easier to obtain using cvs diff
that way). If you apply both of them, you will end up with 6 duplicate lines in
SDL_QuartzEvents.m.

--HG--
extra : convert_revision : svn%3Ac70aab31-4412-0410-b14c-859654838e24/trunk%401636
2006-04-13 14:17:48 +00:00
build-scripts Fixed bug #177 2006-03-24 05:11:51 +00:00
docs Fixes bug #195: 2006-04-13 13:08:26 +00:00
include Fixed bug #185 2006-04-13 14:14:06 +00:00
src Fixed bug #55 2006-04-13 14:17:48 +00:00
test Fixes bug #195: 2006-04-13 13:08:26 +00:00
.cvsignore Fixed bug #175 2006-03-23 21:39:58 +00:00
acinclude.m4 Fixed building DLL on Windows 2006-03-25 20:40:30 +00:00
autogen.sh Show an error message if autoconf isn't found 2006-03-21 07:02:34 +00:00
Borland.html *** empty log message *** 2003-07-01 01:18:27 +00:00
Borland.zip *** empty log message *** 2003-07-01 01:18:27 +00:00
BUGS Fixes bug #195: 2006-04-13 13:08:26 +00:00
configure.in Fixed bug #185 2006-04-13 14:14:06 +00:00
COPYING This library is now available under the LGPL 2.1, the major change of which 2006-01-30 14:27:56 +00:00
CREDITS Fixes bug #195: 2006-04-13 13:08:26 +00:00
CWprojects.sea.bin Updated CodeWarrior export list with SDL_iconv 2006-03-14 08:01:30 +00:00
docs.html *** empty log message *** 2005-08-21 08:02:23 +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 Date: Tue, 2 Mar 2004 11:34:54 +0100 2004-03-02 13:01:02 +00:00
Makefile.dc By default all the real targets have dummy audio/video and disk audio. 2006-03-14 16:19:32 +00:00
Makefile.in Added a delay so the warning message isn't accidentally missed. 2006-04-13 13:25:21 +00:00
Makefile.minimal Fixed bug #171 2006-03-23 21:28:33 +00:00
MPWmake.sea.bin Updated MacOS Classic build 2006-03-13 05:36:42 +00:00
README Fixes bug #195: 2006-04-13 13:08:26 +00:00
README-SDL.txt
README.AmigaOS
README.BeOS Added a reminder on where to put libSDL.so 2006-02-18 07:21:42 +00:00
README.CVS *** empty log message *** 2004-05-16 22:37:59 +00:00
README.DC *** empty log message *** 2006-03-02 13:26:24 +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
README.MacOSX Fixes bug #195: 2006-04-13 13:08:26 +00:00
README.MiNT Added preliminary support for MiNT /dev/mouse driver (disabled atm) 2006-02-23 21:51:10 +00:00
README.NanoX Date: Sat, 24 Aug 2002 22:20:01 -0600 2002-08-25 06:21:49 +00:00
README.OS2 Updated OS/2 build, yay! 2006-02-26 19:30:21 +00:00
README.PicoGUI Added initial support for PicoGUI (thanks Micah!) 2002-08-01 23:24:13 +00:00
README.Porting Added documentation on how to build a completely useless SDL library. :) 2006-03-08 08:30:17 +00:00
README.QNX Date: Sat, 24 Apr 2004 15:13:32 +0300 2004-05-06 15:55:06 +00:00
README.Qtopia Added a README for Qtopia 2002-06-01 18:43:51 +00:00
README.RISCOS Update from Alan Buckley 2006-02-06 08:47:44 +00:00
README.WinCE Updated Windows CE/PocketPC support...adds GAPI driver, landscape mode, 2006-01-19 08:43:00 +00:00
README.wscons To: sdl@libsdl.org 2005-11-22 15:19:50 +00:00
sdl-config.in EXTRA_LDFLAGS are the linker flags and libraries needed to build SDL. 2006-03-18 18:41:59 +00:00
sdl.m4 Fixed bug #166 2006-03-19 05:27:22 +00:00
SDL.qpg.in Date: Fri, 18 Feb 2005 07:58:00 +0200 2006-01-29 09:19:55 +00:00
SDL.spec.in Improved DirectFB install detection 2006-03-22 09:18:10 +00:00
TODO Fixes bug #195: 2006-04-13 13:08:26 +00:00
VisualC.html Merged the Visual C++ 6 and 7 projects so all Visual C++ users unpack the same set of projects to get started. 2005-08-24 21:57:48 +00:00
VisualC.zip Added disk and dummy drivers to the Visual C++ projects 2006-03-14 17:21:49 +00:00
VisualCE.zip Added disk/dummy audio and dummy video to the Visual CE projects 2006-03-15 04:32:49 +00:00
Watcom-OS2.zip Updated OS/2 build, yay! 2006-02-26 19:30:21 +00:00
WhatsNew Added current_w and current_h to the SDL_VideoInfo structure, which is set to the desktop resolution during video intialization, and then set to the current resolution when a video mode is set. 2006-03-15 17:46:41 +00:00

                         Simple DirectMedia Layer

                                  (SDL)

                                Version 1.2

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

This is the Simple DirectMedia Layer, a general 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, C#, Eiffel, Java, Lua, ML,
Objective C, Pascal, Perl, PHP, Pike, Python, and Ruby.

The current version supports Linux, Windows, BeOS, MacOS, Mac OS X,
FreeBSD, OpenBSD, BSD/OS, Solaris, IRIX, and QNX.  The code contains
support for Windows CE, AmigaOS, Dreamcast, Atari, NetBSD, AIX, OSF/Tru64,
RISC OS, SymbianOS, and OS/2, 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)