SDL 1.2 is moving to a branch, and SDL 1.3 is becoming the head.
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/.indent.pro Mon Jul 10 21:04:37 2006 +0000
@@ -0,0 +1,1 @@
+-i4 -nut -nsc -br -ce -cdw -npcs
Binary file CWprojects.sea.bin has changed
--- a/Makefile.dc Thu Jul 06 18:01:37 2006 +0000
+++ b/Makefile.dc Mon Jul 10 21:04:37 2006 +0000
@@ -55,6 +55,7 @@
src/video/dummy/SDL_nullevents.c \
src/video/dummy/SDL_nullmouse.c \
src/video/dummy/SDL_nullvideo.c \
+ src/video/glsdl/SDL_glsdl.c \
src/video/SDL_blit.c \
src/video/SDL_blit_0.c \
src/video/SDL_blit_1.c \
--- a/Makefile.in Thu Jul 06 18:01:37 2006 +0000
+++ b/Makefile.in Mon Jul 10 21:04:37 2006 +0000
@@ -167,6 +167,29 @@
rpm: $(distfile)
rpmbuild -ta $?
+# Run indent on the source to standardize coding style
+indent:
+ @echo "Running indent... modified files:"
+ @cd $(srcdir) && \
+ find . \( \
+ -name '*.h' -o \
+ -name '*.c' -o \
+ -name '*.cc' \) \
+ -print | \
+ while read file; do \
+ indent "$$file" -o "$$file.indent"; \
+ if cmp "$$file" "$$file.indent" >/dev/null; then \
+ rm -f "$$file.indent"; \
+ else \
+ echo "$$file"; \
+ mv -f "$$file.indent" "$$file"; \
+ fi; \
+ done
+
+# Run indent and then commit modified files
+commit: indent
+ svn commit
+
# Create a SVN snapshot that people can run update on
snapshot:
svn co svn://libsdl.org/trunk/SDL
--- a/README.OS2 Thu Jul 06 18:01:37 2006 +0000
+++ b/README.OS2 Mon Jul 10 21:04:37 2006 +0000
@@ -3,7 +3,7 @@
SDL on OS/2
===========
-Last updated on May. 17, 2006.
+Last updated on May. 1, 2006.
1. How to compile?
@@ -13,6 +13,8 @@
- The OS/2 Developer's Toolkit
- The OpenWatcom compiler
(http://www.openwatcom.org)
+- The FSLib library
+ (ftp://ftp.netlabs.org/pub/SDL)
First of all, you have to unzip the Watcom-OS2.zip file. This will result in a
file called "makefile" and a file called "setvars.cmd" in this folder (and some
@@ -30,7 +32,7 @@
for debugging.
Then run "wmake".
-This should create the SDL12.DLL and the corresponding SDL12.LIB file here.
+This should create the SDL.DLL and the corresponding SDL.LIB file here.
To test applications, it's a good idea to use the 'debug' build of SDL, and
redirect the standard output and standard error output to files, to see what
@@ -46,8 +48,8 @@
2. How to compile the testapps?
-------------------------------
-Once you have SDL12.DLL compiled, navigate into the 'test' folder, copy in
-there the newly built SDL12.DLL, and copy in there FSLib.DLL.
+Once you have SDL.DLL compiled, navigate into the 'test' folder, copy in there
+the newly built SDL.DLL, and copy in there FSLib.DLL.
Then run "wmake" in there to compile some of the testapps.
@@ -189,10 +191,6 @@
10. Changelog of the OS/2 port
------------------------------
-Version 1.2.10 - 2006-05-17 - Doodle
- - Small modifications for v1.2.10 release
- - Changed DLL name to include version info (currently SDL12.dll)
-
Version 1.2 - 2006-05-01 - Doodle
- Modified makefile system to have only one makefile
- Included FSLib headers, DLL and LIB file
@@ -218,7 +216,7 @@
SET SDL_USE_PROPORTIONAL_WINDOW=1
dosbox.exe
)
- or, if you have the HOME environment variable set, then SDL12.DLL will
+ or, if you have the HOME environment variable set, then SDL.DLL will
create a file in that directory called .sdl.proportionals, and you can
put there the name of executable files that will be automatically made
proportional.
--- a/TODO Thu Jul 06 18:01:37 2006 +0000
+++ b/TODO Mon Jul 10 21:04:37 2006 +0000
@@ -2,6 +2,9 @@
Wish list for the 1.3 development branch:
http://bugzilla.libsdl.org/
+ * Add a way to register custom events
+ * Add internal support for adding video modes and refresh rates
+ * Support querying and setting refresh rate with video modes
* Add mousewheel events (new unified event architecture?)
* DirectInput joystick support needs to be implemented
* Be able to enumerate and select available audio and video drivers
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/UNDER_CONSTRUCTION.txt Mon Jul 10 21:04:37 2006 +0000
@@ -0,0 +1,1 @@
+WARNING: This code is under construction, may not build, and is unstable!
Binary file VisualC.zip has changed
Binary file Watcom-OS2.zip has changed
--- a/WhatsNew Thu Jul 06 18:01:37 2006 +0000
+++ b/WhatsNew Mon Jul 10 21:04:37 2006 +0000
@@ -1,7 +1,11 @@
This is a list of API changes in SDL's version history.
-Version 1.0:
+1.3.0:
+ Added SDL_GetNumVideoDrivers() and SDL_GetVideoDriver().
+ Replaced SDL_VideoDriverName() with SDL_GetCurrentVideoDriver()
+ Added SDL_GetNumAudioDrivers() and SDL_GetAudioDriver().
+ Replaced SDL_AudioDriverName() with SDL_GetCurrentAudioDriver()
1.2.10:
If SDL_OpenAudio() is passed zero for the desired format
@@ -416,8 +420,6 @@
1.0.0:
New public release
-Version 0.11:
-
0.11.5:
A new function SDL_GetVideoSurface() has been added, and returns
a pointer to the current display surface.
@@ -436,8 +438,6 @@
installing fatal signal handlers on operating systems that support
them.
-Version 0.9:
-
0.9.15:
SDL_CreateColorCursor() has been removed. Color cursors should
be implemented as sprites, blitted by the application when the
--- a/configure.in Thu Jul 06 18:01:37 2006 +0000
+++ b/configure.in Mon Jul 10 21:04:37 2006 +0000
@@ -15,10 +15,10 @@
# set SDL_BINARY_AGE and SDL_INTERFACE_AGE to 0.
#
SDL_MAJOR_VERSION=1
-SDL_MINOR_VERSION=2
-SDL_MICRO_VERSION=11
+SDL_MINOR_VERSION=3
+SDL_MICRO_VERSION=0
SDL_INTERFACE_AGE=0
-SDL_BINARY_AGE=11
+SDL_BINARY_AGE=0
SDL_VERSION=$SDL_MAJOR_VERSION.$SDL_MINOR_VERSION.$SDL_MICRO_VERSION
AC_SUBST(SDL_MAJOR_VERSION)
@@ -1533,6 +1533,20 @@
fi
}
+dnl Find glSDL
+CheckglSDL()
+{
+ AC_ARG_ENABLE(video-glsdl,
+[ --enable-video-glsdl use glSDL video driver [default=yes]],
+ , enable_video_glsdl=yes)
+ AC_MSG_CHECKING(for glSDL support)
+ AC_MSG_RESULT($video_opengl)
+ if test x$video_opengl = xyes -a x$enable_video_glsdl = xyes; then
+ AC_DEFINE(SDL_VIDEO_DRIVER_GLSDL)
+ SOURCES="$SOURCES $srcdir/src/video/glsdl/*.c"
+ fi
+}
+
dnl Check for Mesa offscreen rendering
CheckAtariOSMesa()
{
@@ -1847,13 +1861,6 @@
if test x$enable_stdio_redirect != xyes; then
EXTRA_CFLAGS="$EXTRA_CFLAGS -DNO_STDIO_REDIRECT"
fi
-
- if test x$enable_video = xyes; then
- AC_DEFINE(SDL_VIDEO_DRIVER_WINDIB)
- SOURCES="$SOURCES $srcdir/src/video/wincommon/*.c"
- SOURCES="$SOURCES $srcdir/src/video/windib/*.c"
- have_video=yes
- fi
}
dnl Find the DirectX includes and libraries
@@ -1863,18 +1870,9 @@
AC_HELP_STRING([--enable-directx], [use DirectX for Win32 audio/video [[default=yes]]]),
, enable_directx=yes)
if test x$enable_directx = xyes; then
- have_directx=no
- AC_CHECK_HEADER(ddraw.h, have_ddraw=yes)
+ AC_CHECK_HEADER(d3d9.h, have_d3d=yes)
AC_CHECK_HEADER(dsound.h, have_dsound=yes)
AC_CHECK_HEADER(dinput.h, use_dinput=yes)
- if test x$have_ddraw = xyes -a x$have_dsound = xyes -a x$use_dinput = xyes; then
- have_directx=yes
- fi
- if test x$enable_video = xyes -a x$have_directx = xyes; then
- AC_DEFINE(SDL_VIDEO_DRIVER_DDRAW)
- SOURCES="$SOURCES $srcdir/src/video/windx5/*.c"
- have_video=yes
- fi
fi
}
@@ -2155,6 +2153,7 @@
CheckQtopia
CheckPicoGUI
CheckOpenGLX11
+ CheckglSDL
CheckInputEvents
CheckTslib
CheckUSBHID
@@ -2253,6 +2252,7 @@
CheckPHOTON
CheckX11
CheckOpenGLX11
+ CheckglSDL
CheckPTHREAD
# Set up files for the audio library
if test x$enable_audio = xyes; then
@@ -2290,13 +2290,32 @@
CheckDummyAudio
CheckWIN32
CheckWIN32GL
+ CheckglSDL
CheckDIRECTX
CheckNASM
+ # Set up files for the video library
+ if test x$enable_video = xyes; then
+ AC_DEFINE(SDL_VIDEO_DRIVER_WIN32)
+ SOURCES="$SOURCES $srcdir/src/video/win32/*.c"
+ have_video=yes
+ AC_ARG_ENABLE(render-gdi,
+AC_HELP_STRING([--enable-render-gdi], [enable the GDI render driver [[default=yes]]]),
+ , enable_render_gdi=yes)
+ if test x$enable_render_gdi = xyes; then
+ AC_DEFINE(SDL_VIDEO_RENDER_GDI)
+ fi
+ AC_ARG_ENABLE(render-d3d,
+AC_HELP_STRING([--enable-render-d3d], [enable the Direct3D render driver [[default=yes]]]),
+ , enable_render_d3d=yes)
+ if test x$enable_render_d3d = xyes -a x$have_d3d = xyes; then
+ AC_DEFINE(SDL_VIDEO_RENDER_D3D)
+ fi
+ fi
# Set up files for the audio library
if test x$enable_audio = xyes; then
AC_DEFINE(SDL_AUDIO_DRIVER_WAVEOUT)
SOURCES="$SOURCES $srcdir/src/audio/windib/*.c"
- if test x$have_directx = xyes; then
+ if test x$have_dsound = xyes; then
AC_DEFINE(SDL_AUDIO_DRIVER_DSOUND)
SOURCES="$SOURCES $srcdir/src/audio/windx5/*.c"
fi
@@ -2304,8 +2323,13 @@
fi
# Set up files for the joystick library
if test x$enable_joystick = xyes; then
- AC_DEFINE(SDL_JOYSTICK_WINMM)
- SOURCES="$SOURCES $srcdir/src/joystick/win32/*.c"
+ if test x$have_dinput = xyes; then
+ AC_DEFINE(SDL_JOYSTICK_DINPUT)
+ SOURCES="$SOURCES $srcdir/src/joystick/win32/SDL_dxjoystick.c"
+ else
+ AC_DEFINE(SDL_JOYSTICK_WINMM)
+ SOURCES="$SOURCES $srcdir/src/joystick/win32/SDL_mmjoystick.c"
+ fi
have_joystick=yes
fi
# Set up files for the cdrom library
@@ -2336,10 +2360,7 @@
have_loadso=yes
fi
# Set up the system libraries we need
- EXTRA_LDFLAGS="$EXTRA_LDFLAGS -luser32 -lgdi32 -lwinmm"
- if test x$have_directx = xyes; then
- EXTRA_LDFLAGS="$EXTRA_LDFLAGS -ldxguid"
- fi
+ EXTRA_LDFLAGS="$EXTRA_LDFLAGS -luser32 -lgdi32 -lmsimg32 -lwinmm"
# The Win32 platform requires special setup
SDLMAIN_SOURCES="$srcdir/src/main/win32/*.c"
SDL_CFLAGS="$SDL_CFLAGS -Dmain=SDL_main"
@@ -2354,6 +2375,7 @@
CheckNASM
CheckBWINDOW
CheckBeGL
+ CheckglSDL
# Set up files for the audio library
if test x$enable_audio = xyes; then
AC_DEFINE(SDL_AUDIO_DRIVER_BAUDIO)
@@ -2435,6 +2457,7 @@
CheckX11
CheckMacGL
CheckOpenGLX11
+ CheckglSDL
CheckPTHREAD
CheckAltivec
@@ -2496,6 +2519,7 @@
CheckAtariAudio
CheckAtariLdg
CheckAtariOSMesa
+ CheckglSDL
CheckPTH
# Set up files for the audio library
if test x$enable_threads = xyes -a x$enable_pth = xyes; then
--- a/docs.html Thu Jul 06 18:01:37 2006 +0000
+++ b/docs.html Mon Jul 10 21:04:37 2006 +0000
@@ -14,64 +14,6 @@
<H2> <A HREF="docs/index.html">API Documentation</A> </H2>
-<H2> SDL 1.2.11 Release Notes </H2>
-<P>
-SDL 1.2.11 is a minor bug fix release.
-</P>
-
-<H3> Unix Notes </H3>
-
-<BLOCKQUOTE>
-<P>
- Dynamic X11 loading is only enabled with gcc 4 supporting -fvisibility=hidden. This fixes crashes related to symbol collisions, and allows building on Solaris and IRIX.
-</P>
-<P>
- Fixed building SDL with Xinerama disabled.
-</P>
-<P>
- Fixed DRI OpenGL library loading, using RTLD_GLOBAL in dlopen().
-</P>
-<P>
- Added pkgconfig configuration support.
-</P>
-</BLOCKQUOTE>
-
-<H3> Windows Notes </H3>
-
-<BLOCKQUOTE>
-<P>
- Setting SDL_GL_SWAP_CONTROL now works with Windows OpenGL.
-</P>
-<P>
- The Win32 window positioning code works properly for windows with menus.
-</P>
-<P>
- DirectSound audio quality has been improved on certain sound cards.
-</P>
-<P>
- Fixed 5.1 audio channel ordering on Windows and Mac OS X.
-</P>
-<P>
- Plugged a couple of minor memory leaks in the windib video driver.
-</P>
-<P>
- Fixed type collision with stdint.h when building with gcc on Win32.
-</P>
-<P>
- Fixed building with the Digital Mars Compiler on Win32.
-</P>
-</BLOCKQUOTE>
-
-<H3> Mac OS X Notes </H3>
-
-<BLOCKQUOTE>
-<P>
- The Quartz video driver supports 32x32 cursors on Mac OS X 10.3 and above.
-</P>
-</BLOCKQUOTE>
-
-<IMG SRC="docs/images/rainbow.gif" ALT="[separator]" WIDTH="100%">
-
<H2> SDL 1.2.10 Release Notes </H2>
<P>
SDL 1.2.10 is a major release, featuring a revamp of the build system and many API improvements and bug fixes.
--- a/include/SDL.h Thu Jul 06 18:01:37 2006 +0000
+++ b/include/SDL.h Mon Jul 10 21:04:37 2006 +0000
@@ -20,7 +20,56 @@
slouken@libsdl.org
*/
-/* Main include header for the SDL library */
+/**
+ * \file SDL.h
+ *
+ * Main include header for the SDL library
+ */
+/**
+ * \mainpage Simple DirectMedia Layer (SDL)
+
+http://www.libsdl.org/
+
+* \section intro_sec Introduction
+
+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.
+
+The current version supports Linux, Windows, Windows CE, BeOS, MacOS,
+Mac OS X, FreeBSD, NetBSD, OpenBSD, BSD/OS, Solaris, IRIX, and QNX.
+The code contains support for AmigaOS, Dreamcast, Atari, AIX, OSF/Tru64,
+RISC OS, SymbianOS, and OS/2, but these are not officially supported.
+
+SDL is written in C, but works with C++ natively, and has bindings to
+several other languages, including Ada, C#, Eiffel, Erlang, Euphoria,
+Guile, Haskell, Java, Lisp, Lua, ML, Objective C, Pascal, Perl, PHP,
+Pike, Pliant, Python, Ruby, and Smalltalk.
+
+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", and
+a documentation wiki is available online at:
+ http://www.libsdl.org/cgi/docwiki.cgi
+
+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)
+ */
#ifndef _SDL_H
#define _SDL_H
@@ -40,11 +89,14 @@
#include "SDL_timer.h"
#include "SDL_video.h"
#include "SDL_version.h"
+#include "SDL_compat.h"
#include "begin_code.h"
/* Set up for C function definitions, even when using C++ */
#ifdef __cplusplus
+/* *INDENT-OFF* */
extern "C" {
+/* *INDENT-ON* */
#endif
/* As of version 0.5, SDL is loaded dynamically into the application */
@@ -57,8 +109,8 @@
#define SDL_INIT_VIDEO 0x00000020
#define SDL_INIT_CDROM 0x00000100
#define SDL_INIT_JOYSTICK 0x00000200
-#define SDL_INIT_NOPARACHUTE 0x00100000 /* Don't catch fatal signals */
-#define SDL_INIT_EVENTTHREAD 0x01000000 /* Not supported on all OS's */
+#define SDL_INIT_NOPARACHUTE 0x00100000 /* Don't catch fatal signals */
+#define SDL_INIT_EVENTTHREAD 0x01000000 /* Not supported on all OS's */
#define SDL_INIT_EVERYTHING 0x0000FFFF
/* This function loads the SDL dynamically linked library and initializes
@@ -87,8 +139,12 @@
/* Ends C function definitions when using C++ */
#ifdef __cplusplus
+/* *INDENT-OFF* */
}
+/* *INDENT-ON* */
#endif
#include "close_code.h"
#endif /* _SDL_H */
+
+/* vi: set ts=4 sw=4 expandtab: */
--- a/include/SDL_active.h Thu Jul 06 18:01:37 2006 +0000
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,58 +0,0 @@
-/*
- SDL - Simple DirectMedia Layer
- Copyright (C) 1997-2006 Sam Lantinga
-
- This library is free software; you can redistribute it and/or
- modify it under the terms of the GNU Lesser General Public
- License as published by the Free Software Foundation; either
- version 2.1 of the License, or (at your option) any later version.
-
- This library is distributed in the hope that it will be useful,
- but WITHOUT ANY WARRANTY; without even the implied warranty of
- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
- License along with this library; if not, write to the Free Software
- Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
-
- Sam Lantinga
- slouken@libsdl.org
-*/
-
-/* Include file for SDL application focus event handling */
-
-#ifndef _SDL_active_h
-#define _SDL_active_h
-
-#include "SDL_stdinc.h"
-#include "SDL_error.h"
-
-#include "begin_code.h"
-/* Set up for C function definitions, even when using C++ */
-#ifdef __cplusplus
-extern "C" {
-#endif
-
-/* The available application states */
-#define SDL_APPMOUSEFOCUS 0x01 /* The app has mouse coverage */
-#define SDL_APPINPUTFOCUS 0x02 /* The app has input focus */
-#define SDL_APPACTIVE 0x04 /* The application is active */
-
-/* Function prototypes */
-/*
- * This function returns the current state of the application, which is a
- * bitwise combination of SDL_APPMOUSEFOCUS, SDL_APPINPUTFOCUS, and
- * SDL_APPACTIVE. If SDL_APPACTIVE is set, then the user is able to
- * see your application, otherwise it has been iconified or disabled.
- */
-extern DECLSPEC Uint8 SDLCALL SDL_GetAppState(void);
-
-
-/* Ends C function definitions when using C++ */
-#ifdef __cplusplus
-}
-#endif
-#include "close_code.h"
-
-#endif /* _SDL_active_h */
--- a/include/SDL_audio.h Thu Jul 06 18:01:37 2006 +0000
+++ b/include/SDL_audio.h Mon Jul 10 21:04:37 2006 +0000
@@ -20,7 +20,11 @@
slouken@libsdl.org
*/
-/* Access to the raw audio mixing buffer for the SDL library */
+/**
+ * \file SDL_audio.h
+ *
+ * Access to the raw audio mixing buffer for the SDL library
+ */
#ifndef _SDL_audio_h
#define _SDL_audio_h
@@ -35,35 +39,38 @@
#include "begin_code.h"
/* Set up for C function definitions, even when using C++ */
#ifdef __cplusplus
+/* *INDENT-OFF* */
extern "C" {
+/* *INDENT-ON* */
#endif
/* The calculated values in this structure are calculated by SDL_OpenAudio() */
-typedef struct SDL_AudioSpec {
- int freq; /* DSP frequency -- samples per second */
- Uint16 format; /* Audio data format */
- Uint8 channels; /* Number of channels: 1 mono, 2 stereo */
- Uint8 silence; /* Audio buffer silence value (calculated) */
- Uint16 samples; /* Audio buffer size in samples (power of 2) */
- Uint16 padding; /* Necessary for some compile environments */
- Uint32 size; /* Audio buffer size in bytes (calculated) */
- /* This function is called when the audio device needs more data.
- 'stream' is a pointer to the audio data buffer
- 'len' is the length of that buffer in bytes.
- Once the callback returns, the buffer will no longer be valid.
- Stereo samples are stored in a LRLRLR ordering.
- */
- void (SDLCALL *callback)(void *userdata, Uint8 *stream, int len);
- void *userdata;
+typedef struct SDL_AudioSpec
+{
+ int freq; /* DSP frequency -- samples per second */
+ Uint16 format; /* Audio data format */
+ Uint8 channels; /* Number of channels: 1 mono, 2 stereo */
+ Uint8 silence; /* Audio buffer silence value (calculated) */
+ Uint16 samples; /* Audio buffer size in samples (power of 2) */
+ Uint16 padding; /* Necessary for some compile environments */
+ Uint32 size; /* Audio buffer size in bytes (calculated) */
+ /* This function is called when the audio device needs more data.
+ 'stream' is a pointer to the audio data buffer
+ 'len' is the length of that buffer in bytes.
+ Once the callback returns, the buffer will no longer be valid.
+ Stereo samples are stored in a LRLRLR ordering.
+ */
+ void (SDLCALL * callback) (void *userdata, Uint8 * stream, int len);
+ void *userdata;
} SDL_AudioSpec;
/* Audio format flags (defaults to LSB byte order) */
-#define AUDIO_U8 0x0008 /* Unsigned 8-bit samples */
-#define AUDIO_S8 0x8008 /* Signed 8-bit samples */
-#define AUDIO_U16LSB 0x0010 /* Unsigned 16-bit samples */
-#define AUDIO_S16LSB 0x8010 /* Signed 16-bit samples */
-#define AUDIO_U16MSB 0x1010 /* As above, but big-endian byte order */
-#define AUDIO_S16MSB 0x9010 /* As above, but big-endian byte order */
+#define AUDIO_U8 0x0008 /* Unsigned 8-bit samples */
+#define AUDIO_S8 0x8008 /* Signed 8-bit samples */
+#define AUDIO_U16LSB 0x0010 /* Unsigned 16-bit samples */
+#define AUDIO_S16LSB 0x8010 /* Signed 16-bit samples */
+#define AUDIO_U16MSB 0x1010 /* As above, but big-endian byte order */
+#define AUDIO_S16MSB 0x9010 /* As above, but big-endian byte order */
#define AUDIO_U16 AUDIO_U16LSB
#define AUDIO_S16 AUDIO_S16LSB
@@ -78,23 +85,30 @@
/* A structure to hold a set of audio conversion filters and buffers */
-typedef struct SDL_AudioCVT {
- int needed; /* Set to 1 if conversion possible */
- Uint16 src_format; /* Source audio format */
- Uint16 dst_format; /* Target audio format */
- double rate_incr; /* Rate conversion increment */
- Uint8 *buf; /* Buffer to hold entire audio data */
- int len; /* Length of original audio buffer */
- int len_cvt; /* Length of converted audio buffer */
- int len_mult; /* buffer must be len*len_mult big */
- double len_ratio; /* Given len, final size is len*len_ratio */
- void (SDLCALL *filters[10])(struct SDL_AudioCVT *cvt, Uint16 format);
- int filter_index; /* Current audio conversion function */
+typedef struct SDL_AudioCVT
+{
+ int needed; /* Set to 1 if conversion possible */
+ Uint16 src_format; /* Source audio format */
+ Uint16 dst_format; /* Target audio format */
+ double rate_incr; /* Rate conversion increment */
+ Uint8 *buf; /* Buffer to hold entire audio data */
+ int len; /* Length of original audio buffer */
+ int len_cvt; /* Length of converted audio buffer */
+ int len_mult; /* buffer must be len*len_mult big */
+ double len_ratio; /* Given len, final size is len*len_ratio */
+ void (SDLCALL * filters[10]) (struct SDL_AudioCVT * cvt, Uint16 format);
+ int filter_index; /* Current audio conversion function */
} SDL_AudioCVT;
/* Function prototypes */
+/* These functions return the list of built in video drivers, in the
+ * order that they are normally initialized by default.
+ */
+extern DECLSPEC int SDLCALL SDL_GetNumAudioDrivers(void);
+extern DECLSPEC const char *SDLCALL SDL_GetAudioDriver(int index);
+
/* These functions are used internally, and should not be used unless you
* have a specific need to specify the audio driver you want to use.
* You should normally use SDL_Init() or SDL_InitSubSystem().
@@ -102,11 +116,10 @@
extern DECLSPEC int SDLCALL SDL_AudioInit(const char *driver_name);
extern DECLSPEC void SDLCALL SDL_AudioQuit(void);
-/* This function fills the given character buffer with the name of the
- * current audio driver, and returns a pointer to it if the audio driver has
- * been initialized. It returns NULL if no driver has been initialized.
+/* This function returns the name of the current audio driver, or NULL
+ * if no driver has been initialized.
*/
-extern DECLSPEC char * SDLCALL SDL_AudioDriverName(char *namebuf, int maxlen);
+extern DECLSPEC const char *SDLCALL SDL_GetCurrentAudioDriver(void);
/*
* This function opens the audio device with the desired parameters, and
@@ -149,15 +162,17 @@
* may modify the requested size of the audio buffer, you should allocate
* any local mixing buffers after you open the audio device.
*/
-extern DECLSPEC int SDLCALL SDL_OpenAudio(SDL_AudioSpec *desired, SDL_AudioSpec *obtained);
+extern DECLSPEC int SDLCALL SDL_OpenAudio(SDL_AudioSpec * desired,
+ SDL_AudioSpec * obtained);
/*
* Get the current audio state:
*/
-typedef enum {
- SDL_AUDIO_STOPPED = 0,
- SDL_AUDIO_PLAYING,
- SDL_AUDIO_PAUSED
+typedef enum
+{
+ SDL_AUDIO_STOPPED = 0,
+ SDL_AUDIO_PLAYING,
+ SDL_AUDIO_PAUSED
} SDL_audiostatus;
extern DECLSPEC SDL_audiostatus SDLCALL SDL_GetAudioStatus(void);
@@ -187,7 +202,11 @@
* wave file cannot be opened, uses an unknown data format, or is
* corrupt. Currently raw and MS-ADPCM WAVE files are supported.
*/
-extern DECLSPEC SDL_AudioSpec * SDLCALL SDL_LoadWAV_RW(SDL_RWops *src, int freesrc, SDL_AudioSpec *spec, Uint8 **audio_buf, Uint32 *audio_len);
+extern DECLSPEC SDL_AudioSpec *SDLCALL SDL_LoadWAV_RW(SDL_RWops * src,
+ int freesrc,
+ SDL_AudioSpec * spec,
+ Uint8 ** audio_buf,
+ Uint32 * audio_len);
/* Compatibility convenience function -- loads a WAV from a file */
#define SDL_LoadWAV(file, spec, audio_buf, audio_len) \
@@ -196,7 +215,7 @@
/*
* This function frees data previously allocated with SDL_LoadWAV_RW()
*/
-extern DECLSPEC void SDLCALL SDL_FreeWAV(Uint8 *audio_buf);
+extern DECLSPEC void SDLCALL SDL_FreeWAV(Uint8 * audio_buf);
/*
* This function takes a source format and rate and a destination format
@@ -205,9 +224,13 @@
* to the other.
* This function returns 0, or -1 if there was an error.
*/
-extern DECLSPEC int SDLCALL SDL_BuildAudioCVT(SDL_AudioCVT *cvt,
- Uint16 src_format, Uint8 src_channels, int src_rate,
- Uint16 dst_format, Uint8 dst_channels, int dst_rate);
+extern DECLSPEC int SDLCALL SDL_BuildAudioCVT(SDL_AudioCVT * cvt,
+ Uint16 src_format,
+ Uint8 src_channels,
+ int src_rate,
+ Uint16 dst_format,
+ Uint8 dst_channels,
+ int dst_rate);
/* Once you have initialized the 'cvt' structure using SDL_BuildAudioCVT(),
* created an audio buffer cvt->buf, and filled it with cvt->len bytes of
@@ -217,7 +240,7 @@
* cvt->buf should be allocated after the cvt structure is initialized by
* SDL_BuildAudioCVT(), and should be cvt->len*cvt->len_mult bytes long.
*/
-extern DECLSPEC int SDLCALL SDL_ConvertAudio(SDL_AudioCVT *cvt);
+extern DECLSPEC int SDLCALL SDL_ConvertAudio(SDL_AudioCVT * cvt);
/*
* This takes two audio buffers of the playing audio format and mixes
@@ -227,7 +250,8 @@
* This is provided for convenience -- you can mix your own audio data.
*/
#define SDL_MIX_MAXVOLUME 128
-extern DECLSPEC void SDLCALL SDL_MixAudio(Uint8 *dst, const Uint8 *src, Uint32 len, int volume);
+extern DECLSPEC void SDLCALL SDL_MixAudio(Uint8 * dst, const Uint8 * src,
+ Uint32 len, int volume);
/*
* The lock manipulated by these functions protects the callback function.
@@ -246,8 +270,12 @@
/* Ends C function definitions when using C++ */
#ifdef __cplusplus
+/* *INDENT-OFF* */
}
+/* *INDENT-ON* */
#endif
#include "close_code.h"
#endif /* _SDL_audio_h */
+
+/* vi: set ts=4 sw=4 expandtab: */
--- a/include/SDL_byteorder.h Thu Jul 06 18:01:37 2006 +0000
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,24 +0,0 @@
-/*
- SDL - Simple DirectMedia Layer
- Copyright (C) 1997-2006 Sam Lantinga
-
- This library is free software; you can redistribute it and/or
- modify it under the terms of the GNU Lesser General Public
- License as published by the Free Software Foundation; either
- version 2.1 of the License, or (at your option) any later version.
-
- This library is distributed in the hope that it will be useful,
- but WITHOUT ANY WARRANTY; without even the implied warranty of
- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
- License along with this library; if not, write to the Free Software
- Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
-
- Sam Lantinga
- slouken@libsdl.org
-*/
-
-/* DEPRECATED */
-#include "SDL_endian.h"
--- a/include/SDL_cdrom.h Thu Jul 06 18:01:37 2006 +0000
+++ b/include/SDL_cdrom.h Mon Jul 10 21:04:37 2006 +0000
@@ -20,7 +20,11 @@
slouken@libsdl.org
*/
-/* This is the CD-audio control API for Simple DirectMedia Layer */
+/**
+ * \file SDL_cdrom.h
+ *
+ * This is the CD-audio control API for Simple DirectMedia Layer
+ */
#ifndef _SDL_cdrom_h
#define _SDL_cdrom_h
@@ -31,7 +35,9 @@
#include "begin_code.h"
/* Set up for C function definitions, even when using C++ */
#ifdef __cplusplus
+/* *INDENT-OFF* */
extern "C" {
+/* *INDENT-ON* */
#endif
/* In order to use these functions, SDL_Init() must have been called
@@ -47,35 +53,38 @@
#define SDL_DATA_TRACK 0x04
/* The possible states which a CD-ROM drive can be in. */
-typedef enum {
- CD_TRAYEMPTY,
- CD_STOPPED,
- CD_PLAYING,
- CD_PAUSED,
- CD_ERROR = -1
+typedef enum
+{
+ CD_TRAYEMPTY,
+ CD_STOPPED,
+ CD_PLAYING,
+ CD_PAUSED,
+ CD_ERROR = -1
} CDstatus;
/* Given a status, returns true if there's a disk in the drive */
#define CD_INDRIVE(status) ((int)(status) > 0)
-typedef struct SDL_CDtrack {
- Uint8 id; /* Track number */
- Uint8 type; /* Data or audio track */
- Uint16 unused;
- Uint32 length; /* Length, in frames, of this track */
- Uint32 offset; /* Offset, in frames, from start of disk */
+typedef struct SDL_CDtrack
+{
+ Uint8 id; /* Track number */
+ Uint8 type; /* Data or audio track */
+ Uint16 unused;
+ Uint32 length; /* Length, in frames, of this track */
+ Uint32 offset; /* Offset, in frames, from start of disk */
} SDL_CDtrack;
/* This structure is only current as of the last call to SDL_CDStatus() */
-typedef struct SDL_CD {
- int id; /* Private drive identifier */
- CDstatus status; /* Current drive status */
+typedef struct SDL_CD
+{
+ int id; /* Private drive identifier */
+ CDstatus status; /* Current drive status */
- /* The rest of this structure is only valid if there's a CD in drive */
- int numtracks; /* Number of tracks on disk */
- int cur_track; /* Current track position */
- int cur_frame; /* Current frame offset within current track */
- SDL_CDtrack track[SDL_MAX_TRACKS+1];
+ /* The rest of this structure is only valid if there's a CD in drive */
+ int numtracks; /* Number of tracks on disk */
+ int cur_track; /* Current track position */
+ int cur_frame; /* Current frame offset within current track */
+ SDL_CDtrack track[SDL_MAX_TRACKS + 1];
} SDL_CD;
/* Conversion functions from frames to Minute/Second/Frames and vice versa */
@@ -103,7 +112,7 @@
"E:"
"/dev/disk/ide/1/master"
*/
-extern DECLSPEC const char * SDLCALL SDL_CDName(int drive);
+extern DECLSPEC const char *SDLCALL SDL_CDName(int drive);
/* Opens a CD-ROM drive for access. It returns a drive handle on success,
or NULL if the drive was invalid or busy. This newly opened CD-ROM
@@ -111,13 +120,13 @@
CD-ROM handle.
Drives are numbered starting with 0. Drive 0 is the system default CD-ROM.
*/
-extern DECLSPEC SDL_CD * SDLCALL SDL_CDOpen(int drive);
+extern DECLSPEC SDL_CD *SDLCALL SDL_CDOpen(int drive);
/* This function returns the current status of the given drive.
If the drive has a CD in it, the table of contents of the CD and current
play position of the CD will be stored in the SDL_CD structure.
*/
-extern DECLSPEC CDstatus SDLCALL SDL_CDStatus(SDL_CD *cdrom);
+extern DECLSPEC CDstatus SDLCALL SDL_CDStatus(SDL_CD * cdrom);
/* Play the given CD starting at 'start_track' and 'start_frame' for 'ntracks'
tracks and 'nframes' frames. If both 'ntrack' and 'nframe' are 0, play
@@ -138,34 +147,40 @@
This function returns 0, or -1 if there was an error.
*/
-extern DECLSPEC int SDLCALL SDL_CDPlayTracks(SDL_CD *cdrom,
- int start_track, int start_frame, int ntracks, int nframes);
+extern DECLSPEC int SDLCALL SDL_CDPlayTracks(SDL_CD * cdrom,
+ int start_track,
+ int start_frame, int ntracks,
+ int nframes);
/* Play the given CD starting at 'start' frame for 'length' frames.
It returns 0, or -1 if there was an error.
*/
-extern DECLSPEC int SDLCALL SDL_CDPlay(SDL_CD *cdrom, int start, int length);
+extern DECLSPEC int SDLCALL SDL_CDPlay(SDL_CD * cdrom, int start, int length);
/* Pause play -- returns 0, or -1 on error */
-extern DECLSPEC int SDLCALL SDL_CDPause(SDL_CD *cdrom);
+extern DECLSPEC int SDLCALL SDL_CDPause(SDL_CD * cdrom);
/* Resume play -- returns 0, or -1 on error */
-extern DECLSPEC int SDLCALL SDL_CDResume(SDL_CD *cdrom);
+extern DECLSPEC int SDLCALL SDL_CDResume(SDL_CD * cdrom);
/* Stop play -- returns 0, or -1 on error */
-extern DECLSPEC int SDLCALL SDL_CDStop(SDL_CD *cdrom);
+extern DECLSPEC int SDLCALL SDL_CDStop(SDL_CD * cdrom);
/* Eject CD-ROM -- returns 0, or -1 on error */
-extern DECLSPEC int SDLCALL SDL_CDEject(SDL_CD *cdrom);
+extern DECLSPEC int SDLCALL SDL_CDEject(SDL_CD * cdrom);
/* Closes the handle for the CD-ROM drive */
-extern DECLSPEC void SDLCALL SDL_CDClose(SDL_CD *cdrom);
+extern DECLSPEC void SDLCALL SDL_CDClose(SDL_CD * cdrom);
/* Ends C function definitions when using C++ */
#ifdef __cplusplus
+/* *INDENT-OFF* */
}
+/* *INDENT-ON* */
#endif
#include "close_code.h"
#endif /* _SDL_video_h */
+
+/* vi: set ts=4 sw=4 expandtab: */
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/include/SDL_compat.h Mon Jul 10 21:04:37 2006 +0000
@@ -0,0 +1,186 @@
+/*
+ SDL - Simple DirectMedia Layer
+ Copyright (C) 1997-2006 Sam Lantinga
+
+ This library is free software; you can redistribute it and/or
+ modify it under the terms of the GNU Lesser General Public
+ License as published by the Free Software Foundation; either
+ version 2.1 of the License, or (at your option) any later version.
+
+ This library is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ Lesser General Public License for more details.
+
+ You should have received a copy of the GNU Lesser General Public
+ License along with this library; if not, write to the Free Software
+ Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
+
+ Sam Lantinga
+ slouken@libsdl.org
+*/
+
+/* This file contains functions for backwards compatibility with SDL 1.2 */
+
+#ifndef _SDL_compat_h
+#define _SDL_compat_h
+
+#include "SDL_video.h"
+#include "SDL_version.h"
+
+#include "begin_code.h"
+/* Set up for C function definitions, even when using C++ */
+#ifdef __cplusplus
+/* *INDENT-OFF* */
+extern "C" {
+/* *INDENT-ON* */
+#endif
+
+#define SDL_SWSURFACE 0x00000000
+#define SDL_ANYFORMAT 0x00100000
+#define SDL_HWPALETTE 0x00200000
+#define SDL_DOUBLEBUF 0x00400000
+#define SDL_FULLSCREEN 0x00800000
+#define SDL_RESIZABLE 0x01000000
+#define SDL_NOFRAME 0x02000000
+#define SDL_OPENGL 0x04000000
+#define SDL_ASYNCBLIT 0x08000000 /* Not used */
+#define SDL_HWACCEL 0x08000000 /* Not used */
+
+#define SDL_APPMOUSEFOCUS 0x01
+#define SDL_APPINPUTFOCUS 0x02
+#define SDL_APPACTIVE 0x04
+
+#define SDL_LOGPAL 0x01
+#define SDL_PHYSPAL 0x02
+
+#define SDL_ACTIVEEVENT SDL_EVENT_RESERVED1
+#define SDL_VIDEORESIZE SDL_EVENT_RESERVED2
+#define SDL_VIDEOEXPOSE SDL_EVENT_RESERVED3
+#define SDL_ACTIVEEVENTMASK SDL_EVENTMASK(SDL_ACTIVEEVENT)
+#define SDL_VIDEORESIZEMASK SDL_EVENTMASK(SDL_VIDEORESIZE)
+#define SDL_VIDEOEXPOSEMASK SDL_EVENTMASK(SDL_VIDEOEXPOSE)
+
+#define SDL_BUTTON_WHEELUP 4
+#define SDL_BUTTON_WHEELDOWN 5
+
+typedef struct SDL_VideoInfo
+{
+ Uint32 hw_available:1;
+ Uint32 wm_available:1;
+ Uint32 UnusedBits1:6;
+ Uint32 UnusedBits2:1;
+ Uint32 blit_hw:1;
+ Uint32 blit_hw_CC:1;
+ Uint32 blit_hw_A:1;
+ Uint32 blit_sw:1;
+ Uint32 blit_sw_CC:1;
+ Uint32 blit_sw_A:1;
+ Uint32 blit_fill:1;
+ Uint32 UnusedBits3:16;
+ Uint32 video_mem;
+
+ SDL_PixelFormat *vfmt;
+} SDL_VideoInfo;
+
+/* The most common video overlay formats.
+ For an explanation of these pixel formats, see:
+ http://www.webartz.com/fourcc/indexyuv.htm
+
+ For information on the relationship between color spaces, see:
+ http://www.neuro.sfc.keio.ac.jp/~aly/polygon/info/color-space-faq.html
+ */
+#define SDL_YV12_OVERLAY 0x32315659 /* Planar mode: Y + V + U (3 planes) */
+#define SDL_IYUV_OVERLAY 0x56555949 /* Planar mode: Y + U + V (3 planes) */
+#define SDL_YUY2_OVERLAY 0x32595559 /* Packed mode: Y0+U0+Y1+V0 (1 plane) */
+#define SDL_UYVY_OVERLAY 0x59565955 /* Packed mode: U0+Y0+V0+Y1 (1 plane) */
+#define SDL_YVYU_OVERLAY 0x55595659 /* Packed mode: Y0+V0+Y1+U0 (1 plane) */
+
+/* The YUV hardware video overlay */
+typedef struct SDL_Overlay
+{
+ Uint32 format; /* Read-only */
+ int w, h; /* Read-only */
+ int planes; /* Read-only */
+ Uint16 *pitches; /* Read-only */
+ Uint8 **pixels; /* Read-write */
+
+ /* Hardware-specific surface info */
+ struct private_yuvhwfuncs *hwfuncs;
+ struct private_yuvhwdata *hwdata;
+
+ /* Special flags */
+ Uint32 hw_overlay:1; /* Flag: This overlay hardware accelerated? */
+ Uint32 UnusedBits:31;
+} SDL_Overlay;
+
+typedef enum
+{
+ SDL_GRAB_QUERY = -1,
+ SDL_GRAB_OFF = 0,
+ SDL_GRAB_ON = 1
+} SDL_GrabMode;
+
+struct SDL_SysWMinfo;
+
+#define SDL_SetModuleHandle(x)
+#define SDL_AllocSurface SDL_CreateRGBSurface
+
+extern DECLSPEC const SDL_version *SDLCALL SDL_Linked_Version(void);
+extern DECLSPEC char *SDLCALL SDL_AudioDriverName(char *namebuf, int maxlen);
+extern DECLSPEC char *SDLCALL SDL_VideoDriverName(char *namebuf, int maxlen);
+extern DECLSPEC const SDL_VideoInfo *SDLCALL SDL_GetVideoInfo(void);
+extern DECLSPEC int SDLCALL SDL_VideoModeOK(int width, int height, int bpp,
+ Uint32 flags);
+extern DECLSPEC SDL_Rect **SDLCALL SDL_ListModes(SDL_PixelFormat * format,
+ Uint32 flags);
+extern DECLSPEC SDL_Surface *SDLCALL SDL_SetVideoMode(int width, int height,
+ int bpp, Uint32 flags);
+extern DECLSPEC SDL_Surface *SDLCALL SDL_GetVideoSurface(void);
+extern DECLSPEC void SDLCALL SDL_UpdateRects(SDL_Surface * screen,
+ int numrects, SDL_Rect * rects);
+extern DECLSPEC void SDLCALL SDL_UpdateRect(SDL_Surface * screen, Sint32 x,
+ Sint32 y, Uint32 w, Uint32 h);
+extern DECLSPEC int SDLCALL SDL_Flip(SDL_Surface * screen);
+extern DECLSPEC SDL_Surface *SDLCALL SDL_DisplayFormat(SDL_Surface * surface);
+extern DECLSPEC SDL_Surface *SDLCALL SDL_DisplayFormatAlpha(SDL_Surface *
+ surface);
+extern DECLSPEC void SDLCALL SDL_WM_SetCaption(const char *title,
+ const char *icon);
+extern DECLSPEC void SDLCALL SDL_WM_GetCaption(char **title, char **icon);
+extern DECLSPEC void SDLCALL SDL_WM_SetIcon(SDL_Surface * icon, Uint8 * mask);
+extern DECLSPEC int SDLCALL SDL_WM_IconifyWindow(void);
+extern DECLSPEC int SDLCALL SDL_WM_ToggleFullScreen(SDL_Surface * surface);
+extern DECLSPEC SDL_GrabMode SDLCALL SDL_WM_GrabInput(SDL_GrabMode mode);
+extern DECLSPEC int SDLCALL SDL_SetPalette(SDL_Surface * surface, int flags,
+ const SDL_Color * colors,
+ int firstcolor, int ncolors);
+extern DECLSPEC int SDLCALL SDL_SetColors(SDL_Surface * surface,
+ const SDL_Color * colors,
+ int firstcolor, int ncolors);
+extern DECLSPEC int SDLCALL SDL_GetWMInfo(struct SDL_SysWMinfo *info);
+extern DECLSPEC Uint8 SDLCALL SDL_GetAppState(void);
+extern DECLSPEC void SDLCALL SDL_WarpMouse(Uint16 x, Uint16 y);
+extern DECLSPEC SDL_Overlay *SDLCALL SDL_CreateYUVOverlay(int width,
+ int height,
+ Uint32 format,
+ SDL_Surface *
+ display);
+extern DECLSPEC int SDLCALL SDL_LockYUVOverlay(SDL_Overlay * overlay);
+extern DECLSPEC void SDLCALL SDL_UnlockYUVOverlay(SDL_Overlay * overlay);
+extern DECLSPEC int SDLCALL SDL_DisplayYUVOverlay(SDL_Overlay * overlay,
+ SDL_Rect * dstrect);
+extern DECLSPEC void SDLCALL SDL_FreeYUVOverlay(SDL_Overlay * overlay);
+extern DECLSPEC int SDLCALL SDL_GL_GetAttribute(SDL_GLattr attr, int *value);
+
+/* Ends C function definitions when using C++ */
+#ifdef __cplusplus
+/* *INDENT-OFF* */
+}
+/* *INDENT-ON* */
+#endif
+#include "close_code.h"
+
+#endif /* _SDL_compat_h */
+
+/* vi: set ts=4 sw=4 expandtab: */
--- a/include/SDL_config.h.in Thu Jul 06 18:01:37 2006 +0000
+++ b/include/SDL_config.h.in Mon Jul 10 21:04:37 2006 +0000
@@ -198,6 +198,7 @@
#undef SDL_JOYSTICK_AMIGA
#undef SDL_JOYSTICK_BEOS
#undef SDL_JOYSTICK_DC
+#undef SDL_JOYSTICK_DINPUT
#undef SDL_JOYSTICK_DUMMY
#undef SDL_JOYSTICK_IOKIT
#undef SDL_JOYSTICK_LINUX
@@ -252,7 +253,6 @@
#undef SDL_VIDEO_DRIVER_BWINDOW
#undef SDL_VIDEO_DRIVER_CYBERGRAPHICS
#undef SDL_VIDEO_DRIVER_DC
-#undef SDL_VIDEO_DRIVER_DDRAW
#undef SDL_VIDEO_DRIVER_DGA
#undef SDL_VIDEO_DRIVER_DIRECTFB
#undef SDL_VIDEO_DRIVER_DRAWSPROCKET
@@ -262,6 +262,7 @@
#undef SDL_VIDEO_DRIVER_GAPI
#undef SDL_VIDEO_DRIVER_GEM
#undef SDL_VIDEO_DRIVER_GGI
+#undef SDL_VIDEO_DRIVER_GLSDL
#undef SDL_VIDEO_DRIVER_IPOD
#undef SDL_VIDEO_DRIVER_NANOX
#undef SDL_VIDEO_DRIVER_OS2FS
@@ -274,7 +275,7 @@
#undef SDL_VIDEO_DRIVER_SVGALIB
#undef SDL_VIDEO_DRIVER_TOOLBOX
#undef SDL_VIDEO_DRIVER_VGL
-#undef SDL_VIDEO_DRIVER_WINDIB
+#undef SDL_VIDEO_DRIVER_WIN32
#undef SDL_VIDEO_DRIVER_WSCONS
#undef SDL_VIDEO_DRIVER_X11
#undef SDL_VIDEO_DRIVER_X11_DGAMOUSE
@@ -290,6 +291,10 @@
#undef SDL_VIDEO_DRIVER_X11_XV
#undef SDL_VIDEO_DRIVER_XBIOS
+#undef SDL_VIDEO_RENDER_D3D
+#undef SDL_VIDEO_RENDER_GDI
+#undef SDL_VIDEO_RENDER_OGL
+
/* Enable OpenGL support */
#undef SDL_VIDEO_OPENGL
#undef SDL_VIDEO_OPENGL_GLX
--- a/include/SDL_config_amiga.h Thu Jul 06 18:01:37 2006 +0000
+++ b/include/SDL_config_amiga.h Mon Jul 10 21:04:37 2006 +0000
@@ -73,6 +73,7 @@
/* Enable various video drivers */
#define SDL_VIDEO_DRIVER_CYBERGRAPHICS 1
#define SDL_VIDEO_DRIVER_DUMMY 1
+#define SDL_VIDEO_DRIVER_GLSDL 1
/* Enable OpenGL support */
#define SDL_VIDEO_OPENGL 1
--- a/include/SDL_config_dreamcast.h Thu Jul 06 18:01:37 2006 +0000
+++ b/include/SDL_config_dreamcast.h Mon Jul 10 21:04:37 2006 +0000
@@ -102,5 +102,6 @@
/* Enable various video drivers */
#define SDL_VIDEO_DRIVER_DC 1
#define SDL_VIDEO_DRIVER_DUMMY 1
+#define SDL_VIDEO_DRIVER_GLSDL 1
#endif /* _SDL_config_dreamcast_h */
--- a/include/SDL_config_macos.h Thu Jul 06 18:01:37 2006 +0000
+++ b/include/SDL_config_macos.h Mon Jul 10 21:04:37 2006 +0000
@@ -29,15 +29,15 @@
#include <MacTypes.h>
-typedef SInt8 int8_t;
-typedef UInt8 uint8_t;
-typedef SInt16 int16_t;
-typedef UInt16 uint16_t;
-typedef SInt32 int32_t;
-typedef UInt32 uint32_t;
-typedef SInt64 int64_t;
-typedef UInt64 uint64_t;
-typedef unsigned long uintptr_t;
+typedef SInt8 int8_t;
+typedef UInt8 uint8_t;
+typedef SInt16 int16_t;
+typedef UInt16 uint16_t;
+typedef SInt32 int32_t;
+typedef UInt32 uint32_t;
+typedef SInt64 int64_t;
+typedef UInt64 uint64_t;
+typedef unsigned long uintptr_t;
#define SDL_HAS_64BIT_TYPE 1
@@ -104,6 +104,7 @@
/* Enable various video drivers */
#define SDL_VIDEO_DRIVER_DUMMY 1
#define SDL_VIDEO_DRIVER_DRAWSPROCKET 1
+#define SDL_VIDEO_DRIVER_GLSDL 1
#define SDL_VIDEO_DRIVER_TOOLBOX 1
/* Enable OpenGL support */
--- a/include/SDL_config_os2.h Thu Jul 06 18:01:37 2006 +0000
+++ b/include/SDL_config_os2.h Mon Jul 10 21:04:37 2006 +0000
@@ -27,16 +27,16 @@
/* This is a set of defines to configure the SDL features */
-typedef signed char int8_t;
-typedef unsigned char uint8_t;
-typedef signed short int16_t;
-typedef unsigned short uint16_t;
-typedef signed int int32_t;
-typedef unsigned int uint32_t;
-typedef unsigned int size_t;
-typedef unsigned long uintptr_t;
-typedef signed long long int64_t;
-typedef unsigned long long uint64_t;
+typedef signed char int8_t;
+typedef unsigned char uint8_t;
+typedef signed short int16_t;
+typedef unsigned short uint16_t;
+typedef signed int int32_t;
+typedef unsigned int uint32_t;
+typedef unsigned int size_t;
+typedef unsigned long uintptr_t;
+typedef signed long long int64_t;
+typedef unsigned long long uint64_t;
#define SDL_HAS_64BIT_TYPE 1
--- a/include/SDL_config_win32.h Thu Jul 06 18:01:37 2006 +0000
+++ b/include/SDL_config_win32.h Mon Jul 10 21:04:37 2006 +0000
@@ -30,23 +30,23 @@
#ifdef __GNUC__
#define HAVE_STDINT_H 1
#elif defined(_MSC_VER)
-typedef signed __int8 int8_t;
-typedef unsigned __int8 uint8_t;
-typedef signed __int16 int16_t;
-typedef unsigned __int16 uint16_t;
-typedef signed __int32 int32_t;
-typedef unsigned __int32 uint32_t;
-typedef signed __int64 int64_t;
-typedef unsigned __int64 uint64_t;
+typedef signed __int8 int8_t;
+typedef unsigned __int8 uint8_t;
+typedef signed __int16 int16_t;
+typedef unsigned __int16 uint16_t;
+typedef signed __int32 int32_t;
+typedef unsigned __int32 uint32_t;
+typedef signed __int64 int64_t;
+typedef unsigned __int64 uint64_t;
#ifndef _UINTPTR_T_DEFINED
#ifdef _WIN64
-typedef unsigned __int64 uintptr_t;
+typedef unsigned __int64 uintptr_t;
#else
-typedef unsigned int uintptr_t;
+typedef unsigned int uintptr_t;
#endif
#define _UINTPTR_T_DEFINED
#endif
-#else /* !__GNUC__ && !_MSC_VER */
+#else /* !__GNUC__ && !_MSC_VER */
typedef signed char int8_t;
typedef unsigned char uint8_t;
typedef signed short int16_t;
@@ -150,19 +150,17 @@
#endif
/* Enable various video drivers */
-#ifdef _WIN32_WCE
-#define SDL_VIDEO_DRIVER_GAPI 1
-#endif
-#ifndef _WIN32_WCE
-#define SDL_VIDEO_DRIVER_DDRAW 1
-#endif
#define SDL_VIDEO_DRIVER_DUMMY 1
-#define SDL_VIDEO_DRIVER_WINDIB 1
+#define SDL_VIDEO_DRIVER_WIN32 1
+
+#define SDL_VIDEO_RENDER_D3D 1
+#define SDL_VIDEO_RENDER_GDI 1
/* Enable OpenGL support */
#ifndef _WIN32_WCE
#define SDL_VIDEO_OPENGL 1
#define SDL_VIDEO_OPENGL_WGL 1
+#define SDL_VIDEO_RENDER_OGL 1
#endif
/* Enable assembly routines (Win64 doesn't have inline asm) */
--- a/include/SDL_copying.h Thu Jul 06 18:01:37 2006 +0000
+++ b/include/SDL_copying.h Mon Jul 10 21:04:37 2006 +0000
@@ -19,4 +19,3 @@
Sam Lantinga
slouken@libsdl.org
*/
-
--- a/include/SDL_cpuinfo.h Thu Jul 06 18:01:37 2006 +0000
+++ b/include/SDL_cpuinfo.h Mon Jul 10 21:04:37 2006 +0000
@@ -20,8 +20,11 @@
slouken@libsdl.org
*/
-/* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * */
-/* CPU feature detection for SDL */
+/**
+ * \file SDL_cpuinfo.h
+ *
+ * CPU feature detection for SDL
+ */
#ifndef _SDL_cpuinfo_h
#define _SDL_cpuinfo_h
@@ -31,7 +34,9 @@
#include "begin_code.h"
/* Set up for C function definitions, even when using C++ */
#ifdef __cplusplus
+/* *INDENT-OFF* */
extern "C" {
+/* *INDENT-ON* */
#endif
/* This function returns true if the CPU has the RDTSC instruction
@@ -68,8 +73,12 @@
/* Ends C function definitions when using C++ */
#ifdef __cplusplus
+/* *INDENT-OFF* */
}
+/* *INDENT-ON* */
#endif
#include "close_code.h"
#endif /* _SDL_cpuinfo_h */
+
+/* vi: set ts=4 sw=4 expandtab: */
--- a/include/SDL_endian.h Thu Jul 06 18:01:37 2006 +0000
+++ b/include/SDL_endian.h Mon Jul 10 21:04:37 2006 +0000
@@ -20,7 +20,11 @@
slouken@libsdl.org
*/
-/* Functions for reading and writing endian-specific values */
+/**
+ * \file SDL_endian.h
+ *
+ * Functions for reading and writing endian-specific values
+ */
#ifndef _SDL_endian_h
#define _SDL_endian_h
@@ -31,7 +35,7 @@
#define SDL_LIL_ENDIAN 1234
#define SDL_BIG_ENDIAN 4321
-#ifndef SDL_BYTEORDER /* Not defined in SDL_config.h? */
+#ifndef SDL_BYTEORDER /* Not defined in SDL_config.h? */
#if defined(__hppa__) || \
defined(__m68k__) || defined(mc68000) || defined(_M_M68K) || \
(defined(__MIPS__) && defined(__MISPEB__)) || \
@@ -47,7 +51,9 @@
#include "begin_code.h"
/* Set up for C function definitions, even when using C++ */
#ifdef __cplusplus
+/* *INDENT-OFF* */
extern "C" {
+/* *INDENT-ON* */
#endif
/* Use inline functions for compilers that support them, and static
@@ -57,104 +63,124 @@
*/
#if defined(__GNUC__) && defined(__i386__) && \
!(__GNUC__ == 2 && __GNUC_MINOR__ == 95 /* broken gcc version */)
-static __inline__ Uint16 SDL_Swap16(Uint16 x)
+static __inline__ Uint16
+SDL_Swap16(Uint16 x)
{
- __asm__("xchgb %b0,%h0" : "=q" (x) : "0" (x));
- return x;
+ __asm__("xchgb %b0,%h0": "=q"(x):"0"(x));
+ return x;
}
#elif defined(__GNUC__) && defined(__x86_64__)
-static __inline__ Uint16 SDL_Swap16(Uint16 x)
+static __inline__ Uint16
+SDL_Swap16(Uint16 x)
{
- __asm__("xchgb %b0,%h0" : "=Q" (x) : "0" (x));
- return x;
+ __asm__("xchgb %b0,%h0": "=Q"(x):"0"(x));
+ return x;
}
#elif defined(__GNUC__) && (defined(__powerpc__) || defined(__ppc__))
-static __inline__ Uint16 SDL_Swap16(Uint16 x)
+static __inline__ Uint16
+SDL_Swap16(Uint16 x)
{
- Uint16 result;
+ Uint16 result;
- __asm__("rlwimi %0,%2,8,16,23" : "=&r" (result) : "0" (x >> 8), "r" (x));
- return result;
+ __asm__("rlwimi %0,%2,8,16,23": "=&r"(result):"0"(x >> 8), "r"(x));
+ return result;
}
#elif defined(__GNUC__) && (defined(__M68000__) || defined(__M68020__))
-static __inline__ Uint16 SDL_Swap16(Uint16 x)
+static __inline__ Uint16
+SDL_Swap16(Uint16 x)
{
- __asm__("rorw #8,%0" : "=d" (x) : "0" (x) : "cc");
- return x;
+ __asm__("rorw #8,%0": "=d"(x): "0"(x):"cc");
+ return x;
}
#else
-static __inline__ Uint16 SDL_Swap16(Uint16 x) {
- return((x<<8)|(x>>8));
+static __inline__ Uint16
+SDL_Swap16(Uint16 x)
+{
+ return ((x << 8) | (x >> 8));
}
#endif
#if defined(__GNUC__) && defined(__i386__)
-static __inline__ Uint32 SDL_Swap32(Uint32 x)
+static __inline__ Uint32
+SDL_Swap32(Uint32 x)
{
- __asm__("bswap %0" : "=r" (x) : "0" (x));
- return x;
+ __asm__("bswap %0": "=r"(x):"0"(x));
+ return x;
}
#elif defined(__GNUC__) && defined(__x86_64__)
-static __inline__ Uint32 SDL_Swap32(Uint32 x)
+static __inline__ Uint32
+SDL_Swap32(Uint32 x)
{
- __asm__("bswapl %0" : "=r" (x) : "0" (x));
- return x;
+ __asm__("bswapl %0": "=r"(x):"0"(x));
+ return x;
}
#elif defined(__GNUC__) && (defined(__powerpc__) || defined(__ppc__))
-static __inline__ Uint32 SDL_Swap32(Uint32 x)
+static __inline__ Uint32
+SDL_Swap32(Uint32 x)
{
- Uint32 result;
+ Uint32 result;
- __asm__("rlwimi %0,%2,24,16,23" : "=&r" (result) : "0" (x>>24), "r" (x));
- __asm__("rlwimi %0,%2,8,8,15" : "=&r" (result) : "0" (result), "r" (x));
- __asm__("rlwimi %0,%2,24,0,7" : "=&r" (result) : "0" (result), "r" (x));
- return result;
+ __asm__("rlwimi %0,%2,24,16,23": "=&r"(result):"0"(x >> 24), "r"(x));
+ __asm__("rlwimi %0,%2,8,8,15": "=&r"(result):"0"(result), "r"(x));
+ __asm__("rlwimi %0,%2,24,0,7": "=&r"(result):"0"(result), "r"(x));
+ return result;
}
#elif defined(__GNUC__) && (defined(__M68000__) || defined(__M68020__))
-static __inline__ Uint32 SDL_Swap32(Uint32 x)
+static __inline__ Uint32
+SDL_Swap32(Uint32 x)
{
- __asm__("rorw #8,%0\n\tswap %0\n\trorw #8,%0" : "=d" (x) : "0" (x) : "cc");
- return x;
+ __asm__("rorw #8,%0\n\tswap %0\n\trorw #8,%0": "=d"(x): "0"(x):"cc");
+ return x;
}
#else
-static __inline__ Uint32 SDL_Swap32(Uint32 x) {
- return((x<<24)|((x<<8)&0x00FF0000)|((x>>8)&0x0000FF00)|(x>>24));
+static __inline__ Uint32
+SDL_Swap32(Uint32 x)
+{
+ return ((x << 24) | ((x << 8) & 0x00FF0000) | ((x >> 8) & 0x0000FF00) |
+ (x >> 24));
}
#endif
#ifdef SDL_HAS_64BIT_TYPE
#if defined(__GNUC__) && defined(__i386__)
-static __inline__ Uint64 SDL_Swap64(Uint64 x)
+static __inline__ Uint64
+SDL_Swap64(Uint64 x)
{
- union {
- struct { Uint32 a,b; } s;
- Uint64 u;
- } v;
- v.u = x;
- __asm__("bswapl %0 ; bswapl %1 ; xchgl %0,%1"
- : "=r" (v.s.a), "=r" (v.s.b)
- : "0" (v.s.a), "1" (v.s.b));
- return v.u;
+ union
+ {
+ struct
+ {
+ Uint32 a, b;
+ } s;
+ Uint64 u;
+ } v;
+ v.u = x;
+ __asm__("bswapl %0 ; bswapl %1 ; xchgl %0,%1": "=r"(v.s.a), "=r"(v.s.b):"0"(v.s.a),
+ "1"(v.s.
+ b));
+ return v.u;
}
#elif defined(__GNUC__) && defined(__x86_64__)
-static __inline__ Uint64 SDL_Swap64(Uint64 x)
+static __inline__ Uint64
+SDL_Swap64(Uint64 x)
{
- __asm__("bswapq %0" : "=r" (x) : "0" (x));
- return x;
+ __asm__("bswapq %0": "=r"(x):"0"(x));
+ return x;
}
#else
-static __inline__ Uint64 SDL_Swap64(Uint64 x)
+static __inline__ Uint64
+SDL_Swap64(Uint64 x)
{
- Uint32 hi, lo;
+ Uint32 hi, lo;
- /* Separate into high and low 32-bit values and swap them */
- lo = (Uint32)(x&0xFFFFFFFF);
- x >>= 32;
- hi = (Uint32)(x&0xFFFFFFFF);
- x = SDL_Swap32(lo);
- x <<= 32;
- x |= SDL_Swap32(hi);
- return(x);
+ /* Separate into high and low 32-bit values and swap them */
+ lo = (Uint32) (x & 0xFFFFFFFF);
+ x >>= 32;
+ hi = (Uint32) (x & 0xFFFFFFFF);
+ x = SDL_Swap32(lo);
+ x <<= 32;
+ x |= SDL_Swap32(hi);
+ return (x);
}
#endif
#else
@@ -185,8 +211,12 @@
/* Ends C function definitions when using C++ */
#ifdef __cplusplus
+/* *INDENT-OFF* */
}
+/* *INDENT-ON* */
#endif
#include "close_code.h"
#endif /* _SDL_endian_h */
+
+/* vi: set ts=4 sw=4 expandtab: */
--- a/include/SDL_error.h Thu Jul 06 18:01:37 2006 +0000
+++ b/include/SDL_error.h Mon Jul 10 21:04:37 2006 +0000
@@ -20,7 +20,10 @@
slouken@libsdl.org
*/
-/* Simple error message routines for SDL */
+/**
+ * \file SDL_error.h
+ * Simple error message routines for SDL
+ */
#ifndef _SDL_error_h
#define _SDL_error_h
@@ -30,32 +33,39 @@
#include "begin_code.h"
/* Set up for C function definitions, even when using C++ */
#ifdef __cplusplus
+/* *INDENT-OFF* */
extern "C" {
+/* *INDENT-ON* */
#endif
/* Public functions */
extern DECLSPEC void SDLCALL SDL_SetError(const char *fmt, ...);
-extern DECLSPEC char * SDLCALL SDL_GetError(void);
+extern DECLSPEC char *SDLCALL SDL_GetError(void);
extern DECLSPEC void SDLCALL SDL_ClearError(void);
/* Private error message function - used internally */
#define SDL_OutOfMemory() SDL_Error(SDL_ENOMEM)
#define SDL_Unsupported() SDL_Error(SDL_UNSUPPORTED)
-typedef enum {
- SDL_ENOMEM,
- SDL_EFREAD,
- SDL_EFWRITE,
- SDL_EFSEEK,
- SDL_UNSUPPORTED,
- SDL_LASTERROR
+typedef enum
+{
+ SDL_ENOMEM,
+ SDL_EFREAD,
+ SDL_EFWRITE,
+ SDL_EFSEEK,
+ SDL_UNSUPPORTED,
+ SDL_LASTERROR
} SDL_errorcode;
extern DECLSPEC void SDLCALL SDL_Error(SDL_errorcode code);
/* Ends C function definitions when using C++ */
#ifdef __cplusplus
+/* *INDENT-OFF* */
}
+/* *INDENT-ON* */
#endif
#include "close_code.h"
#endif /* _SDL_error_h */
+
+/* vi: set ts=4 sw=4 expandtab: */
--- a/include/SDL_events.h Thu Jul 06 18:01:37 2006 +0000
+++ b/include/SDL_events.h Mon Jul 10 21:04:37 2006 +0000
@@ -20,14 +20,18 @@
slouken@libsdl.org
*/
-/* Include file for SDL event handling */
+/**
+ * \file SDL_events.h
+ *
+ * Include file for SDL event handling
+ */
#ifndef _SDL_events_h
#define _SDL_events_h
#include "SDL_stdinc.h"
#include "SDL_error.h"
-#include "SDL_active.h"
+#include "SDL_video.h"
#include "SDL_keyboard.h"
#include "SDL_mouse.h"
#include "SDL_joystick.h"
@@ -36,202 +40,304 @@
#include "begin_code.h"
/* Set up for C function definitions, even when using C++ */
#ifdef __cplusplus
+/* *INDENT-OFF* */
extern "C" {
+/* *INDENT-ON* */
#endif
/* General keyboard/mouse state definitions */
#define SDL_RELEASED 0
#define SDL_PRESSED 1
-/* Event enumerations */
-typedef enum {
- SDL_NOEVENT = 0, /* Unused (do not remove) */
- SDL_ACTIVEEVENT, /* Application loses/gains visibility */
- SDL_KEYDOWN, /* Keys pressed */
- SDL_KEYUP, /* Keys released */
- SDL_MOUSEMOTION, /* Mouse moved */
- SDL_MOUSEBUTTONDOWN, /* Mouse button pressed */
- SDL_MOUSEBUTTONUP, /* Mouse button released */
- SDL_JOYAXISMOTION, /* Joystick axis motion */
- SDL_JOYBALLMOTION, /* Joystick trackball motion */
- SDL_JOYHATMOTION, /* Joystick hat position change */
- SDL_JOYBUTTONDOWN, /* Joystick button pressed */
- SDL_JOYBUTTONUP, /* Joystick button released */
- SDL_QUIT, /* User-requested quit */
- SDL_SYSWMEVENT, /* System specific event */
- SDL_EVENT_RESERVEDA, /* Reserved for future use.. */
- SDL_EVENT_RESERVEDB, /* Reserved for future use.. */
- SDL_VIDEORESIZE, /* User resized video mode */
- SDL_VIDEOEXPOSE, /* Screen needs to be redrawn */
- SDL_EVENT_RESERVED2, /* Reserved for future use.. */
- SDL_EVENT_RESERVED3, /* Reserved for future use.. */
- SDL_EVENT_RESERVED4, /* Reserved for future use.. */
- SDL_EVENT_RESERVED5, /* Reserved for future use.. */
- SDL_EVENT_RESERVED6, /* Reserved for future use.. */
- SDL_EVENT_RESERVED7, /* Reserved for future use.. */
- /* Events SDL_USEREVENT through SDL_MAXEVENTS-1 are for your use */
- SDL_USEREVENT = 24,
- /* This last event is only for bounding internal arrays
- It is the number of bits in the event mask datatype -- Uint32
- */
- SDL_NUMEVENTS = 32
+/**
+ * \enum SDL_EventType
+ *
+ * \brief The types of events that can be delivered
+ */
+typedef enum
+{
+ SDL_NOEVENT = 0, /**< Unused (do not remove) */
+ SDL_WINDOWEVENT, /**< Window state change */
+ SDL_KEYDOWN, /**< Keys pressed */
+ SDL_KEYUP, /**< Keys released */
+ SDL_TEXTINPUT, /**< Keyboard text input */
+ SDL_MOUSEMOTION, /**< Mouse moved */
+ SDL_MOUSEBUTTONDOWN, /**< Mouse button pressed */
+ SDL_MOUSEBUTTONUP, /**< Mouse button released */
+ SDL_MOUSEWHEEL, /**< Mouse wheel motion */
+ SDL_JOYAXISMOTION, /**< Joystick axis motion */
+ SDL_JOYBALLMOTION, /**< Joystick trackball motion */
+ SDL_JOYHATMOTION, /**< Joystick hat position change */
+ SDL_JOYBUTTONDOWN, /**< Joystick button pressed */
+ SDL_JOYBUTTONUP, /**< Joystick button released */
+ SDL_QUIT, /**< User-requested quit */
+ SDL_SYSWMEVENT, /**< System specific event */
+ SDL_EVENT_RESERVED1, /**< Reserved for future use... */
+ SDL_EVENT_RESERVED2, /**< Reserved for future use... */
+ SDL_EVENT_RESERVED3, /**< Reserved for future use... */
+ /* Events SDL_USEREVENT through SDL_MAXEVENTS-1 are for your use */
+ SDL_USEREVENT = 24,
+ /* This last event is only for bounding internal arrays
+ It is the number of bits in the event mask datatype -- Uint32
+ */
+ SDL_NUMEVENTS = 32
} SDL_EventType;
-/* Predefined event masks */
+/**
+ * \enum SDL_EventMask
+ *
+ * \brief Predefined event masks
+ */
#define SDL_EVENTMASK(X) (1<<(X))
-typedef enum {
- SDL_ACTIVEEVENTMASK = SDL_EVENTMASK(SDL_ACTIVEEVENT),
- SDL_KEYDOWNMASK = SDL_EVENTMASK(SDL_KEYDOWN),
- SDL_KEYUPMASK = SDL_EVENTMASK(SDL_KEYUP),
- SDL_KEYEVENTMASK = SDL_EVENTMASK(SDL_KEYDOWN)|
- SDL_EVENTMASK(SDL_KEYUP),
- SDL_MOUSEMOTIONMASK = SDL_EVENTMASK(SDL_MOUSEMOTION),
- SDL_MOUSEBUTTONDOWNMASK = SDL_EVENTMASK(SDL_MOUSEBUTTONDOWN),
- SDL_MOUSEBUTTONUPMASK = SDL_EVENTMASK(SDL_MOUSEBUTTONUP),
- SDL_MOUSEEVENTMASK = SDL_EVENTMASK(SDL_MOUSEMOTION)|
- SDL_EVENTMASK(SDL_MOUSEBUTTONDOWN)|
- SDL_EVENTMASK(SDL_MOUSEBUTTONUP),
- SDL_JOYAXISMOTIONMASK = SDL_EVENTMASK(SDL_JOYAXISMOTION),
- SDL_JOYBALLMOTIONMASK = SDL_EVENTMASK(SDL_JOYBALLMOTION),
- SDL_JOYHATMOTIONMASK = SDL_EVENTMASK(SDL_JOYHATMOTION),
- SDL_JOYBUTTONDOWNMASK = SDL_EVENTMASK(SDL_JOYBUTTONDOWN),
- SDL_JOYBUTTONUPMASK = SDL_EVENTMASK(SDL_JOYBUTTONUP),
- SDL_JOYEVENTMASK = SDL_EVENTMASK(SDL_JOYAXISMOTION)|
- SDL_EVENTMASK(SDL_JOYBALLMOTION)|
- SDL_EVENTMASK(SDL_JOYHATMOTION)|
- SDL_EVENTMASK(SDL_JOYBUTTONDOWN)|
- SDL_EVENTMASK(SDL_JOYBUTTONUP),
- SDL_VIDEORESIZEMASK = SDL_EVENTMASK(SDL_VIDEORESIZE),
- SDL_VIDEOEXPOSEMASK = SDL_EVENTMASK(SDL_VIDEOEXPOSE),
- SDL_QUITMASK = SDL_EVENTMASK(SDL_QUIT),
- SDL_SYSWMEVENTMASK = SDL_EVENTMASK(SDL_SYSWMEVENT)
-} SDL_EventMask ;
+typedef enum
+{
+ SDL_WINDOWEVENTMASK = SDL_EVENTMASK(SDL_WINDOWEVENT),
+ SDL_KEYDOWNMASK = SDL_EVENTMASK(SDL_KEYDOWN),
+ SDL_KEYUPMASK = SDL_EVENTMASK(SDL_KEYUP),
+ SDL_KEYEVENTMASK = SDL_EVENTMASK(SDL_KEYDOWN) | SDL_EVENTMASK(SDL_KEYUP),
+ SDL_TEXTINPUTMASK = SDL_EVENTMASK(SDL_TEXTINPUT),
+ SDL_MOUSEMOTIONMASK = SDL_EVENTMASK(SDL_MOUSEMOTION),
+ SDL_MOUSEBUTTONDOWNMASK = SDL_EVENTMASK(SDL_MOUSEBUTTONDOWN),
+ SDL_MOUSEBUTTONUPMASK = SDL_EVENTMASK(SDL_MOUSEBUTTONUP),
+ SDL_MOUSEWHEELMASK = SDL_EVENTMASK(SDL_MOUSEWHEEL),
+ SDL_MOUSEEVENTMASK = SDL_EVENTMASK(SDL_MOUSEMOTION) |
+ SDL_EVENTMASK(SDL_MOUSEBUTTONDOWN) | SDL_EVENTMASK(SDL_MOUSEBUTTONUP),
+ SDL_JOYAXISMOTIONMASK = SDL_EVENTMASK(SDL_JOYAXISMOTION),
+ SDL_JOYBALLMOTIONMASK = SDL_EVENTMASK(SDL_JOYBALLMOTION),
+ SDL_JOYHATMOTIONMASK = SDL_EVENTMASK(SDL_JOYHATMOTION),
+ SDL_JOYBUTTONDOWNMASK = SDL_EVENTMASK(SDL_JOYBUTTONDOWN),
+ SDL_JOYBUTTONUPMASK = SDL_EVENTMASK(SDL_JOYBUTTONUP),
+ SDL_JOYEVENTMASK = SDL_EVENTMASK(SDL_JOYAXISMOTION) |
+ SDL_EVENTMASK(SDL_JOYBALLMOTION) |
+ SDL_EVENTMASK(SDL_JOYHATMOTION) |
+ SDL_EVENTMASK(SDL_JOYBUTTONDOWN) | SDL_EVENTMASK(SDL_JOYBUTTONUP),
+ SDL_QUITMASK = SDL_EVENTMASK(SDL_QUIT),
+ SDL_SYSWMEVENTMASK = SDL_EVENTMASK(SDL_SYSWMEVENT)
+} SDL_EventMask;
#define SDL_ALLEVENTS 0xFFFFFFFF
-/* Application visibility event structure */
-typedef struct SDL_ActiveEvent {
- Uint8 type; /* SDL_ACTIVEEVENT */
- Uint8 gain; /* Whether given states were gained or lost (1/0) */
- Uint8 state; /* A mask of the focus states */
-} SDL_ActiveEvent;
+/**
+ * \struct SDL_WindowEvent
+ *
+ * \brief Window state change event data
+ */
+typedef struct SDL_WindowEvent
+{
+ Uint8 type; /**< SDL_WINDOWEVENT */
+ Uint8 event; /**< SDL_WindowEventID */
+ int data1; /**< event dependent data */
+ int data2; /**< event dependent data */
+ SDL_WindowID windowID; /**< The associated window */
+} SDL_WindowEvent;
-/* Keyboard event structure */
-typedef struct SDL_KeyboardEvent {
- Uint8 type; /* SDL_KEYDOWN or SDL_KEYUP */
- Uint8 which; /* The keyboard device index */
- Uint8 state; /* SDL_PRESSED or SDL_RELEASED */
- SDL_keysym keysym;
+/**
+ * \struct SDL_KeyboardEvent
+ *
+ * \brief Keyboard button event structure
+ */
+typedef struct SDL_KeyboardEvent
+{
+ Uint8 type; /**< SDL_KEYDOWN or SDL_KEYUP */
+ Uint8 which; /**< The keyboard device index */
+ Uint8 state; /**< SDL_PRESSED or SDL_RELEASED */
+ SDL_keysym keysym; /**< The key that was pressed or released */
+ SDL_WindowID windowID; /**< The window with keyboard focus, if any */
} SDL_KeyboardEvent;
-/* Mouse motion event structure */
-typedef struct SDL_MouseMotionEvent {
- Uint8 type; /* SDL_MOUSEMOTION */
- Uint8 which; /* The mouse device index */
- Uint8 state; /* The current button state */
- Uint16 x, y; /* The X/Y coordinates of the mouse */
- Sint16 xrel; /* The relative motion in the X direction */
- Sint16 yrel; /* The relative motion in the Y direction */
+/**
+ * \struct SDL_TextInputEvent
+ *
+ * \brief Keyboard text input event structure
+ */
+typedef struct SDL_TextInputEvent
+{
+ Uint8 type; /**< SDL_TEXTINPUT */
+ Uint8 which; /**< The keyboard device index */
+ char text[32]; /**< The input text */
+ SDL_WindowID windowID; /**< The window with keyboard focus, if any */
+} SDL_TextInputEvent;
+
+/**
+ * \struct SDL_MouseMotionEvent
+ *
+ * \brief Mouse motion event structure
+ */
+typedef struct SDL_MouseMotionEvent
+{
+ Uint8 type; /**< SDL_MOUSEMOTION */
+ Uint8 which; /**< The mouse device index */
+ Uint8 state; /**< The current button state */
+ int x; /**< X coordinate, relative to window */
+ int y; /**< Y coordinate, relative to window */
+ int xrel; /**< The relative motion in the X direction */
+ int yrel; /**< The relative motion in the Y direction */
+ SDL_WindowID windowID; /**< The window with mouse focus, if any */
} SDL_MouseMotionEvent;
-/* Mouse button event structure */
-typedef struct SDL_MouseButtonEvent {
- Uint8 type; /* SDL_MOUSEBUTTONDOWN or SDL_MOUSEBUTTONUP */
- Uint8 which; /* The mouse device index */
- Uint8 button; /* The mouse button index */
- Uint8 state; /* SDL_PRESSED or SDL_RELEASED */
- Uint16 x, y; /* The X/Y coordinates of the mouse at press time */
+/**
+ * \struct SDL_MouseButtonEvent
+ *
+ * \brief Mouse button event structure
+ */
+typedef struct SDL_MouseButtonEvent
+{
+ Uint8 type; /**< SDL_MOUSEBUTTONDOWN or SDL_MOUSEBUTTONUP */
+ Uint8 which; /**< The mouse device index */
+ Uint8 button; /**< The mouse button index */
+ Uint8 state; /**< SDL_PRESSED or SDL_RELEASED */
+ int x; /**< X coordinate, relative to window */
+ int y; /**< Y coordinate, relative to window */
+ SDL_WindowID windowID; /**< The window with mouse focus, if any */
} SDL_MouseButtonEvent;
-/* Joystick axis motion event structure */
-typedef struct SDL_JoyAxisEvent {
- Uint8 type; /* SDL_JOYAXISMOTION */
- Uint8 which; /* The joystick device index */
- Uint8 axis; /* The joystick axis index */
- Sint16 value; /* The axis value (range: -32768 to 32767) */
+/**
+ * \struct SDL_MouseWheelEvent
+ *
+ * \brief Mouse wheel event structure
+ */
+typedef struct SDL_MouseWheelEvent
+{
+ Uint8 type; /**< SDL_MOUSEWHEEL */
+ Uint8 which; /**< The mouse device index */
+ int motion; /**< The direction and distance scrolled */
+ SDL_WindowID windowID; /**< The window with mouse focus, if any */
+} SDL_MouseWheelEvent;
+
+/**
+ * \struct SDL_JoyAxisEvent
+ *
+ * \brief Joystick axis motion event structure
+ */
+typedef struct SDL_JoyAxisEvent
+{
+ Uint8 type; /**< SDL_JOYAXISMOTION */
+ Uint8 which; /**< The joystick device index */
+ Uint8 axis; /**< The joystick axis index */
+ int value; /**< The axis value (range: -32768 to 32767) */
} SDL_JoyAxisEvent;
-/* Joystick trackball motion event structure */
-typedef struct SDL_JoyBallEvent {
- Uint8 type; /* SDL_JOYBALLMOTION */
- Uint8 which; /* The joystick device index */
- Uint8 ball; /* The joystick trackball index */
- Sint16 xrel; /* The relative motion in the X direction */
- Sint16 yrel; /* The relative motion in the Y direction */
+/**
+ * \struct SDL_JoyBallEvent
+ *
+ * \brief Joystick trackball motion event structure
+ */
+typedef struct SDL_JoyBallEvent
+{
+ Uint8 type; /**< SDL_JOYBALLMOTION */
+ Uint8 which; /**< The joystick device index */
+ Uint8 ball; /**< The joystick trackball index */
+ int xrel; /**< The relative motion in the X direction */
+ int yrel; /**< The relative motion in the Y direction */
} SDL_JoyBallEvent;
-/* Joystick hat position change event structure */
-typedef struct SDL_JoyHatEvent {
- Uint8 type; /* SDL_JOYHATMOTION */
- Uint8 which; /* The joystick device index */
- Uint8 hat; /* The joystick hat index */
- Uint8 value; /* The hat position value:
- SDL_HAT_LEFTUP SDL_HAT_UP SDL_HAT_RIGHTUP
- SDL_HAT_LEFT SDL_HAT_CENTERED SDL_HAT_RIGHT
- SDL_HAT_LEFTDOWN SDL_HAT_DOWN SDL_HAT_RIGHTDOWN
- Note that zero means the POV is centered.
- */
+/**
+ * \struct SDL_JoyHatEvent
+ *
+ * \brief Joystick hat position change event structure
+ */
+typedef struct SDL_JoyHatEvent
+{
+ Uint8 type; /**< SDL_JOYHATMOTION */
+ Uint8 which; /**< The joystick device index */
+ Uint8 hat; /**< The joystick hat index */
+ Uint8 value; /**< The hat position value:
+ SDL_HAT_LEFTUP SDL_HAT_UP SDL_HAT_RIGHTUP
+ SDL_HAT_LEFT SDL_HAT_CENTERED SDL_HAT_RIGHT
+ SDL_HAT_LEFTDOWN SDL_HAT_DOWN SDL_HAT_RIGHTDOWN
+ Note that zero means the POV is centered.
+ */
} SDL_JoyHatEvent;
-/* Joystick button event structure */
-typedef struct SDL_JoyButtonEvent {
- Uint8 type; /* SDL_JOYBUTTONDOWN or SDL_JOYBUTTONUP */
- Uint8 which; /* The joystick device index */
- Uint8 button; /* The joystick button index */
- Uint8 state; /* SDL_PRESSED or SDL_RELEASED */
+/**
+ * \struct SDL_JoyButtonEvent
+ *
+ * \brief Joystick button event structure
+ */
+typedef struct SDL_JoyButtonEvent
+{
+ Uint8 type; /**< SDL_JOYBUTTONDOWN or SDL_JOYBUTTONUP */
+ Uint8 which; /**< The joystick device index */
+ Uint8 button; /**< The joystick button index */
+ Uint8 state; /**< SDL_PRESSED or SDL_RELEASED */
} SDL_JoyButtonEvent;
-/* The "window resized" event
- When you get this event, you are responsible for setting a new video
- mode with the new width and height.
+/**
+ * \struct SDL_QuitEvent
+ *
+ * \brief The "quit requested" event
*/
-typedef struct SDL_ResizeEvent {
- Uint8 type; /* SDL_VIDEORESIZE */
- int w; /* New width */
- int h; /* New height */
-} SDL_ResizeEvent;
-
-/* The "screen redraw" event */
-typedef struct SDL_ExposeEvent {
- Uint8 type; /* SDL_VIDEOEXPOSE */
-} SDL_ExposeEvent;
-
-/* The "quit requested" event */
-typedef struct SDL_QuitEvent {
- Uint8 type; /* SDL_QUIT */
+typedef struct SDL_QuitEvent
+{
+ Uint8 type; /**< SDL_QUIT */
} SDL_QuitEvent;
-/* A user-defined event type */
-typedef struct SDL_UserEvent {
- Uint8 type; /* SDL_USEREVENT through SDL_NUMEVENTS-1 */
- int code; /* User defined event code */
- void *data1; /* User defined data pointer */
- void *data2; /* User defined data pointer */
+/**
+ * \struct SDL_UserEvent
+ *
+ * \brief A user-defined event type
+ */
+typedef struct SDL_UserEvent
+{
+ Uint8 type; /**< SDL_USEREVENT through SDL_NUMEVENTS-1 */
+ int code; /**< User defined event code */
+ void *data1; /**< User defined data pointer */
+ void *data2; /**< User defined data pointer */
} SDL_UserEvent;
-/* If you want to use this event, you should include SDL_syswm.h */
+/**
+ * \struct SDL_SysWMEvent
+ *
+ * \brief A video driver dependent system event
+ *
+ * \note If you want to use this event, you should include SDL_syswm.h
+ */
struct SDL_SysWMmsg;
typedef struct SDL_SysWMmsg SDL_SysWMmsg;
-typedef struct SDL_SysWMEvent {
- Uint8 type;
- SDL_SysWMmsg *msg;
+typedef struct SDL_SysWMEvent
+{
+ Uint8 type; /**< SDL_SYSWMEVENT */
+ SDL_SysWMmsg *msg; /**< driver dependent data, defined in SDL_syswm.h */
} SDL_SysWMEvent;
-/* General event structure */
-typedef union SDL_Event {
- Uint8 type;
- SDL_ActiveEvent active;
- SDL_KeyboardEvent key;
- SDL_MouseMotionEvent motion;
- SDL_MouseButtonEvent button;
- SDL_JoyAxisEvent jaxis;
- SDL_JoyBallEvent jball;
- SDL_JoyHatEvent jhat;
- SDL_JoyButtonEvent jbutton;
- SDL_ResizeEvent resize;
- SDL_ExposeEvent expose;
- SDL_QuitEvent quit;
- SDL_UserEvent user;
- SDL_SysWMEvent syswm;
+/* Typedefs for backwards compatibility */
+typedef struct SDL_ActiveEvent
+{
+ Uint8 type;
+ Uint8 gain;
+ Uint8 state;
+} SDL_ActiveEvent;
+typedef struct SDL_ResizeEvent
+{
+ Uint8 type;
+ int w;
+ int h;
+} SDL_ResizeEvent;
+
+/**
+ * \union SDL_Event
+ *
+ * \brief General event structure
+ */
+typedef union SDL_Event
+{
+ Uint8 type; /**< Event type, shared with all events */
+ SDL_WindowEvent window; /**< Window event data */
+ SDL_KeyboardEvent key; /**< Keyboard event data */
+ SDL_TextInputEvent text; /**< Text input event data */
+ SDL_MouseMotionEvent motion; /**< Mouse motion event data */
+ SDL_MouseButtonEvent button; /**< Mouse button event data */
+ SDL_MouseWheelEvent wheel; /**< Mouse wheel event data */
+ SDL_JoyAxisEvent jaxis; /**< Joystick axis event data */
+ SDL_JoyBallEvent jball; /**< Joystick ball event data */
+ SDL_JoyHatEvent jhat; /**< Joystick hat event data */
+ SDL_JoyButtonEvent jbutton; /**< Joystick button event data */
+ SDL_QuitEvent quit; /**< Quit request event data */
+ SDL_UserEvent user; /**< Custom event data */
+ SDL_SysWMEvent syswm; /**< System dependent window event data */
+
+ /* Temporarily here for backwards compatibility */
+ SDL_ActiveEvent active;
+ SDL_ResizeEvent resize;
} SDL_Event;
@@ -255,32 +361,38 @@
This function returns the number of events actually stored, or -1
if there was an error. This function is thread-safe.
*/
-typedef enum {
- SDL_ADDEVENT,
- SDL_PEEKEVENT,
- SDL_GETEVENT
+typedef enum
+{
+ SDL_ADDEVENT,
+ SDL_PEEKEVENT,
+ SDL_GETEVENT
} SDL_eventaction;
/* */
-extern DECLSPEC int SDLCALL SDL_PeepEvents(SDL_Event *events, int numevents,
- SDL_eventaction action, Uint32 mask);
+extern DECLSPEC int SDLCALL SDL_PeepEvents(SDL_Event * events, int numevents,
+ SDL_eventaction action,
+ Uint32 mask);
+
+/* Checks to see if certain event types are in the event queue.
+ */
+extern DECLSPEC SDL_bool SDLCALL SDL_HasEvent(Uint32 mask);
/* Polls for currently pending events, and returns 1 if there are any pending
events, or 0 if there are none available. If 'event' is not NULL, the next
event is removed from the queue and stored in that area.
*/
-extern DECLSPEC int SDLCALL SDL_PollEvent(SDL_Event *event);
+extern DECLSPEC int SDLCALL SDL_PollEvent(SDL_Event * event);
/* Waits indefinitely for the next available event, returning 1, or 0 if there
was an error while waiting for events. If 'event' is not NULL, the next
event is removed from the queue and stored in that area.
*/
-extern DECLSPEC int SDLCALL SDL_WaitEvent(SDL_Event *event);
+extern DECLSPEC int SDLCALL SDL_WaitEvent(SDL_Event * event);
/* Add an event to the event queue.
- This function returns 0 on success, or -1 if the event queue was full
- or there was some other error.
+ This function returns 1 on success, 0 if the event was filtered,
+ or -1 if the event queue was full or there was some other error.
*/
-extern DECLSPEC int SDLCALL SDL_PushEvent(SDL_Event *event);
+extern DECLSPEC int SDLCALL SDL_PushEvent(SDL_Event * event);
/*
This function sets up a filter to process all events before they
@@ -288,7 +400,7 @@
The filter is protypted as:
*/
-typedef int (SDLCALL *SDL_EventFilter)(const SDL_Event *event);
+typedef int (SDLCALL * SDL_EventFilter) (void *userdata, SDL_Event * event);
/*
If the filter returns 1, then the event will be added to the internal queue.
If it returns 0, then the event will be dropped from the queue, but the
@@ -305,13 +417,22 @@
If the quit event is generated by an interrupt signal, it will bypass the
internal queue and be delivered to the application at the next event poll.
*/
-extern DECLSPEC void SDLCALL SDL_SetEventFilter(SDL_EventFilter filter);
+extern DECLSPEC void SDLCALL SDL_SetEventFilter(SDL_EventFilter filter,
+ void *userdata);
/*
Return the current event filter - can be used to "chain" filters.
- If there is no event filter set, this function returns NULL.
+ If there is no event filter set, this function returns SDL_FALSE.
*/
-extern DECLSPEC SDL_EventFilter SDLCALL SDL_GetEventFilter(void);
+extern DECLSPEC SDL_bool SDLCALL SDL_GetEventFilter(SDL_EventFilter * filter,
+ void **userdata);
+
+/*
+ Run the filter function on the current event queue, removing any
+ events for which the filter returns 0.
+*/
+extern DECLSPEC void SDLCALL SDL_FilterEvents(SDL_EventFilter filter,
+ void *userdata);
/*
This function allows you to set the state of processing certain events.
@@ -330,8 +451,12 @@
/* Ends C function definitions when using C++ */
#ifdef __cplusplus
+/* *INDENT-OFF* */
}
+/* *INDENT-ON* */
#endif
#include "close_code.h"
#endif /* _SDL_events_h */
+
+/* vi: set ts=4 sw=4 expandtab: */
--- a/include/SDL_getenv.h Thu Jul 06 18:01:37 2006 +0000
+++ /dev/null Thu Jan 01 00:00:00 1970 +0000
@@ -1,24 +0,0 @@
-/*
- SDL - Simple DirectMedia Layer
- Copyright (C) 1997-2006 Sam Lantinga
-
- This library is free software; you can redistribute it and/or
- modify it under the terms of the GNU Lesser General Public
- License as published by the Free Software Foundation; either
- version 2.1 of the License, or (at your option) any later version.
-
- This library is distributed in the hope that it will be useful,
- but WITHOUT ANY WARRANTY; without even the implied warranty of
- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- Lesser General Public License for more details.
-
- You should have received a copy of the GNU Lesser General Public
- License along with this library; if not, write to the Free Software
- Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
-
- Sam Lantinga
- slouken@libsdl.org
-*/
-
-/* DEPRECATED */
-#include "SDL_stdinc.h"
--- a/include/SDL_joystick.h Thu Jul 06 18:01:37 2006 +0000
+++ b/include/SDL_joystick.h Mon Jul 10 21:04:37 2006 +0000
@@ -20,7 +20,11 @@
slouken@libsdl.org
*/
-/* Include file for SDL joystick event handling */
+/**
+ * \file SDL_joystick.h
+ *
+ * Include file for SDL joystick event handling
+ */
#ifndef _SDL_joystick_h
#define _SDL_joystick_h
@@ -31,7 +35,9 @@
#include "begin_code.h"
/* Set up for C function definitions, even when using C++ */
#ifdef __cplusplus
+/* *INDENT-OFF* */
extern "C" {
+/* *INDENT-ON* */
#endif
/* In order to use these functions, SDL_Init() must have been called
@@ -55,7 +61,7 @@
* This can be called before any joysticks are opened.
* If no name can be found, this function returns NULL.
*/
-extern DECLSPEC const char * SDLCALL SDL_JoystickName(int device_index);
+extern DECLSPEC const char *SDLCALL SDL_JoystickName(int device_index);
/*
* Open a joystick for use - the index passed as an argument refers to
@@ -64,7 +70,7 @@
*
* This function returns a joystick identifier, or NULL if an error occurred.
*/
-extern DECLSPEC SDL_Joystick * SDLCALL SDL_JoystickOpen(int device_index);
+extern DECLSPEC SDL_Joystick *SDLCALL SDL_JoystickOpen(int device_index);
/*
* Returns 1 if the joystick has been opened, or 0 if it has not.
@@ -74,29 +80,29 @@
/*
* Get the device index of an opened joystick.
*/
-extern DECLSPEC int SDLCALL SDL_JoystickIndex(SDL_Joystick *joystick);
+extern DECLSPEC int SDLCALL SDL_JoystickIndex(SDL_Joystick * joystick);
/*
* Get the number of general axis controls on a joystick
*/
-extern DECLSPEC int SDLCALL SDL_JoystickNumAxes(SDL_Joystick *joystick);
+extern DECLSPEC int SDLCALL SDL_JoystickNumAxes(SDL_Joystick * joystick);
/*
* Get the number of trackballs on a joystick
* Joystick trackballs have only relative motion events associated
* with them and their state cannot be polled.
*/
-extern DECLSPEC int SDLCALL SDL_JoystickNumBalls(SDL_Joystick *joystick);
+extern DECLSPEC int SDLCALL SDL_JoystickNumBalls(SDL_Joystick * joystick);
/*
* Get the number of POV hats on a joystick
*/
-extern DECLSPEC int SDLCALL SDL_JoystickNumHats(SDL_Joystick *joystick);
+extern DECLSPEC int SDLCALL SDL_JoystickNumHats(SDL_Joystick * joystick);
/*
* Get the number of buttons on a joystick
*/
-extern DECLSPEC int SDLCALL SDL_JoystickNumButtons(SDL_Joystick *joystick);
+extern DECLSPEC int SDLCALL SDL_JoystickNumButtons(SDL_Joystick * joystick);
/*
* Update the current state of the open joysticks.
@@ -119,7 +125,8 @@
* The state is a value ranging from -32768 to 32767.
* The axis indices start at index 0.
*/
-extern DECLSPEC Sint16 SDLCALL SDL_JoystickGetAxis(SDL_Joystick *joystick, int axis);
+extern DECLSPEC Sint16 SDLCALL SDL_JoystickGetAxis(SDL_Joystick * joystick,
+ int axis);
/*
* Get the current state of a POV hat on a joystick
@@ -137,31 +144,38 @@
/*
* The hat indices start at index 0.
*/
-extern DECLSPEC Uint8 SDLCALL SDL_JoystickGetHat(SDL_Joystick *joystick, int hat);
+extern DECLSPEC Uint8 SDLCALL SDL_JoystickGetHat(SDL_Joystick * joystick,
+ int hat);
/*
* Get the ball axis change since the last poll
* This returns 0, or -1 if you passed it invalid parameters.
* The ball indices start at index 0.
*/
-extern DECLSPEC int SDLCALL SDL_JoystickGetBall(SDL_Joystick *joystick, int ball, int *dx, int *dy);
+extern DECLSPEC int SDLCALL SDL_JoystickGetBall(SDL_Joystick * joystick,
+ int ball, int *dx, int *dy);
/*
* Get the current state of a button on a joystick
* The button indices start at index 0.
*/
-extern DECLSPEC Uint8 SDLCALL SDL_JoystickGetButton(SDL_Joystick *joystick, int button);
+extern DECLSPEC Uint8 SDLCALL SDL_JoystickGetButton(SDL_Joystick * joystick,
+ int button);
/*
* Close a joystick previously opened with SDL_JoystickOpen()
*/
-extern DECLSPEC void SDLCALL SDL_JoystickClose(SDL_Joystick *joystick);
+extern DECLSPEC void SDLCALL SDL_JoystickClose(SDL_Joystick * joystick);
/* Ends C function definitions when using C++ */
#ifdef __cplusplus
+/* *INDENT-OFF* */
}
+/* *INDENT-ON* */
#endif
#include "close_code.h"
#endif /* _SDL_joystick_h */
+
+/* vi: set ts=4 sw=4 expandtab: */
--- a/include/SDL_keyboard.h Thu Jul 06 18:01:37 2006 +0000
+++ b/include/SDL_keyboard.h Mon Jul 10 21:04:37 2006 +0000
@@ -20,7 +20,11 @@
slouken@libsdl.org
*/
-/* Include file for SDL keyboard event handling */
+/**
+ * \file SDL_keyboard.h
+ *
+ * Include file for SDL keyboard event handling
+ */
#ifndef _SDL_keyboard_h
#define _SDL_keyboard_h
@@ -32,90 +36,133 @@
#include "begin_code.h"
/* Set up for C function definitions, even when using C++ */
#ifdef __cplusplus
+/* *INDENT-OFF* */
extern "C" {
+/* *INDENT-ON* */
#endif
-/* Keysym structure
- - The scancode is hardware dependent, and should not be used by general
- applications. If no hardware scancode is available, it will be 0.
-
- - The 'unicode' translated character is only available when character
- translation is enabled by the SDL_EnableUNICODE() API. If non-zero,
- this is a UNICODE character corresponding to the keypress. If the
- high 9 bits of the character are 0, then this maps to the equivalent
- ASCII character:
- char ch;
- if ( (keysym.unicode & 0xFF80) == 0 ) {
- ch = keysym.unicode & 0x7F;
- } else {
- An international character..
- }
+/**
+ * \struct SDL_keysym
+ *
+ * \brief The SDL keysym structure, used in key events.
*/
-typedef struct SDL_keysym {
- Uint8 scancode; /* hardware specific scancode */
- SDLKey sym; /* SDL virtual keysym */
- SDLMod mod; /* current key modifiers */
- Uint16 unicode; /* translated character */
+typedef struct SDL_keysym
+{
+ Uint8 scancode; /**< keyboard specific scancode */
+ Uint8 padding[3]; /**< alignment padding */
+ Uint16 sym; /**< SDL virtual keysym */
+ Uint16 mod; /**< current key modifiers */
+ Uint32 unicode; /**< OBSOLETE, use SDL_TextInputEvent instead */
} SDL_keysym;
-/* This is the mask which refers to all hotkey bindings */
-#define SDL_ALL_HOTKEYS 0xFFFFFFFF
+/* Function prototypes */
+
+/**
+ * \fn int SDL_GetNumKeyboards(void)
+ *
+ * \brief Get the number of keyboard input devices available.
+ *
+ * \sa SDL_SelectKeyboard()
+ */
+extern DECLSPEC int SDLCALL SDL_GetNumKeyboards(void);
-/* Function prototypes */
-/*
- * Enable/Disable UNICODE translation of keyboard input.
- * This translation has some overhead, so translation defaults off.
- * If 'enable' is 1, translation is enabled.
- * If 'enable' is 0, translation is disabled.
- * If 'enable' is -1, the translation state is not changed.
- * It returns the previous state of keyboard translation.
+/**
+ * \fn int SDL_SelectKeyboard(int index)
+ *
+ * \brief Set the index of the currently selected keyboard.
+ *
+ * \return The index of the previously selected keyboard.
+ *
+ * \note You can query the currently selected keyboard by passing an index of -1.
+ *
+ * \sa SDL_GetNumKeyboards()
+ */
+extern DECLSPEC int SDLCALL SDL_SelectKeyboard(int index);
+
+/**
+ * \fn int SDL_EnableUNICODE(int enable)
+ *
+ * \brief Enable/Disable UNICODE translation of keyboard input.
+ *
+ * \param enable 1 to enable translation, 0 to disable translation, -1 to query translation
+ *
+ * \return The previous state of keyboard translation
+ *
+ * \note This translation has some overhead, so translation defaults off.
*/
extern DECLSPEC int SDLCALL SDL_EnableUNICODE(int enable);
-/*
- * Enable/Disable keyboard repeat. Keyboard repeat defaults to off.
- * 'delay' is the initial delay in ms between the time when a key is
- * pressed, and keyboard repeat begins.
- * 'interval' is the time in ms between keyboard repeat events.
+/**
+ * \fn int SDL_EnableKeyRepeat(int delay, int interval)
+ *
+ * \brief Enable keyboard repeat for the selected keyboard.
+ *
+ * \param delay The initial delay in milliseconds between the time when a
+ * key is pressed and keyboard repeat begins. Setting a delay
+ * of 0 will disable keyboard repeat.
+ * \param interval The time in milliseconds between keyboard repeat events.
+ *
+ * \return 0 on success, or -1 if there was an error.
+ *
+ * \note Keyboard repeat defaults to off.
*/
#define SDL_DEFAULT_REPEAT_DELAY 500
#define SDL_DEFAULT_REPEAT_INTERVAL 30
-/*
- * If 'delay' is set to 0, keyboard repeat is disabled.
+ /**/
+ extern DECLSPEC int SDLCALL SDL_EnableKeyRepeat(int delay, int interval);
+
+/**
+ * \fn void SDL_GetKeyRepeat(int *delay, int *interval)
+ *
+ * \brief Get the current keyboard repeat setting for the selected keyboard.
*/
-extern DECLSPEC int SDLCALL SDL_EnableKeyRepeat(int delay, int interval);
extern DECLSPEC void SDLCALL SDL_GetKeyRepeat(int *delay, int *interval);
-/*
- * Get a snapshot of the current state of the keyboard.
- * Returns an array of keystates, indexed by the SDLK_* syms.
- * Used:
+/**
+ * \fn Uint8 *SDL_GetKeyState(int *numkeys)
+ *
+ * \brief Get a snapshot of the current state of the selected keyboard.
+ *
+ * \return An array of keystates, indexed by the SDLK_* syms.
+ *
+ * Example:
* Uint8 *keystate = SDL_GetKeyState(NULL);
* if ( keystate[SDLK_RETURN] ) ... <RETURN> is pressed.
*/
-extern DECLSPEC Uint8 * SDLCALL SDL_GetKeyState(int *numkeys);
+extern DECLSPEC Uint8 *SDLCALL SDL_GetKeyState(int *numkeys);
-/*
- * Get the current key modifier state
+/**
+ * \fn SDLMod SDL_GetModState(void)
+ *
+ * \brief Get the current key modifier state for the selected keyboard.
*/
extern DECLSPEC SDLMod SDLCALL SDL_GetModState(void);
-/*
- * Set the current key modifier state
- * This does not change the keyboard state, only the key modifier flags.
+/**
+ * \fn void SDL_SetModState(SDLMod modstate)
+ *
+ * \brief Set the current key modifier state for the selected keyboard.
+ *
+ * \note This does not change the keyboard state, only the key modifier flags.
*/
extern DECLSPEC void SDLCALL SDL_SetModState(SDLMod modstate);
-/*
- * Get the name of an SDL virtual keysym
+/**
+ * \fn const char *SDL_GetKeyName(SDLKey key)
+ *
+ * \brief Get the name of an SDL virtual keysym
*/
-extern DECLSPEC char * SDLCALL SDL_GetKeyName(SDLKey key);
+extern DECLSPEC const char *SDLCALL SDL_GetKeyName(SDLKey key);
/* Ends C function definitions when using C++ */
#ifdef __cplusplus
+/* *INDENT-OFF* */
}
+/* *INDENT-ON* */
#endif
#include "close_code.h"
#endif /* _SDL_keyboard_h */
+
+/* vi: set ts=4 sw=4 expandtab: */
--- a/include/SDL_keysym.h Thu Jul 06 18:01:37 2006 +0000
+++ b/include/SDL_keysym.h Mon Jul 10 21:04:37 2006 +0000
@@ -20,287 +20,203 @@
slouken@libsdl.org
*/
+/**
+ * \file SDL_keysym.h
+ */
+
#ifndef _SDL_keysym_h
#define _SDL_keysym_h
-/* What we really want is a mapping of every raw key on the keyboard.
- To support international keyboards, we use the range 0xA1 - 0xFF
- as international virtual keycodes. We'll follow in the footsteps of X11...
- The names of the keys
+/**
+ * \enum SDLKey
+ *
+ * \brief The SDL virtual key representation
+ *
+ * The SDLKey represents the unmodified character printed on the key
+ * for the current keyboard layout. The first 255 characters are used
+ * unchanged from Latin-1, e.g. a key with 'a' on it will have the value "a".
+ * The rest of the keys are named below, and fall into the range above 255.
*/
-
-typedef enum {
- /* The keyboard syms have been cleverly chosen to map to ASCII */
- SDLK_UNKNOWN = 0,
- SDLK_FIRST = 0,
- SDLK_BACKSPACE = 8,
- SDLK_TAB = 9,
- SDLK_CLEAR = 12,
- SDLK_RETURN = 13,
- SDLK_PAUSE = 19,
- SDLK_ESCAPE = 27,
- SDLK_SPACE = 32,
- SDLK_EXCLAIM = 33,
- SDLK_QUOTEDBL = 34,
- SDLK_HASH = 35,
- SDLK_DOLLAR = 36,
- SDLK_AMPERSAND = 38,
- SDLK_QUOTE = 39,
- SDLK_LEFTPAREN = 40,
- SDLK_RIGHTPAREN = 41,
- SDLK_ASTERISK = 42,
- SDLK_PLUS = 43,
- SDLK_COMMA = 44,
- SDLK_MINUS = 45,
- SDLK_PERIOD = 46,
- SDLK_SLASH = 47,
- SDLK_0 = 48,
- SDLK_1 = 49,
- SDLK_2 = 50,
- SDLK_3 = 51,
- SDLK_4 = 52,
- SDLK_5 = 53,
- SDLK_6 = 54,
- SDLK_7 = 55,
- SDLK_8 = 56,
- SDLK_9 = 57,
- SDLK_COLON = 58,
- SDLK_SEMICOLON = 59,
- SDLK_LESS = 60,
- SDLK_EQUALS = 61,
- SDLK_GREATER = 62,
- SDLK_QUESTION = 63,
- SDLK_AT = 64,
- /*
- Skip uppercase letters
- */
- SDLK_LEFTBRACKET = 91,
- SDLK_BACKSLASH = 92,
- SDLK_RIGHTBRACKET = 93,
- SDLK_CARET = 94,
- SDLK_UNDERSCORE = 95,
- SDLK_BACKQUOTE = 96,
- SDLK_a = 97,
- SDLK_b = 98,
- SDLK_c = 99,
- SDLK_d = 100,
- SDLK_e = 101,
- SDLK_f = 102,
- SDLK_g = 103,
- SDLK_h = 104,
- SDLK_i = 105,
- SDLK_j = 106,
- SDLK_k = 107,
- SDLK_l = 108,
- SDLK_m = 109,
- SDLK_n = 110,
- SDLK_o = 111,
- SDLK_p = 112,
- SDLK_q = 113,
- SDLK_r = 114,
- SDLK_s = 115,
- SDLK_t = 116,
- SDLK_u = 117,
- SDLK_v = 118,
- SDLK_w = 119,
- SDLK_x = 120,
- SDLK_y = 121,
- SDLK_z = 122,
- SDLK_DELETE = 127,
- /* End of ASCII mapped keysyms */
+typedef enum
+{
+ /* The keyboard syms have been cleverly chosen to map to ASCII */
+ SDLK_UNKNOWN = 0,
+ SDLK_FIRST = 0,
+ SDLK_BACKSPACE = 8,
+ SDLK_TAB = 9,
+ SDLK_CLEAR = 12,
+ SDLK_RETURN = 13,
+ SDLK_PAUSE = 19,
+ SDLK_ESCAPE = 27,
+ SDLK_SPACE = 32,
+ SDLK_EXCLAIM = 33,
+ SDLK_QUOTEDBL = 34,
+ SDLK_HASH = 35,
+ SDLK_DOLLAR = 36,
+ SDLK_AMPERSAND = 38,
+ SDLK_QUOTE = 39,
+ SDLK_LEFTPAREN = 40,
+ SDLK_RIGHTPAREN = 41,
+ SDLK_ASTERISK = 42,
+ SDLK_PLUS = 43,
+ SDLK_COMMA = 44,
+ SDLK_MINUS = 45,
+ SDLK_PERIOD = 46,
+ SDLK_SLASH = 47,
+ SDLK_0 = 48,
+ SDLK_1 = 49,
+ SDLK_2 = 50,
+ SDLK_3 = 51,
+ SDLK_4 = 52,
+ SDLK_5 = 53,
+ SDLK_6 = 54,
+ SDLK_7 = 55,
+ SDLK_8 = 56,
+ SDLK_9 = 57,
+ SDLK_COLON = 58,
+ SDLK_SEMICOLON = 59,
+ SDLK_LESS = 60,
+ SDLK_EQUALS = 61,
+ SDLK_GREATER = 62,
+ SDLK_QUESTION = 63,
+ SDLK_AT = 64,
+ /*
+ Skip uppercase letters
+ */
+ SDLK_LEFTBRACKET = 91,
+ SDLK_BACKSLASH = 92,
+ SDLK_RIGHTBRACKET = 93,
+ SDLK_CARET = 94,
+ SDLK_UNDERSCORE = 95,
+ SDLK_BACKQUOTE = 96,
+ SDLK_a = 97,
+ SDLK_b = 98,
+ SDLK_c = 99,
+ SDLK_d = 100,
+ SDLK_e = 101,
+ SDLK_f = 102,
+ SDLK_g = 103,
+ SDLK_h = 104,
+ SDLK_i = 105,
+ SDLK_j = 106,
+ SDLK_k = 107,
+ SDLK_l = 108,
+ SDLK_m = 109,
+ SDLK_n = 110,
+ SDLK_o = 111,
+ SDLK_p = 112,
+ SDLK_q = 113,
+ SDLK_r = 114,
+ SDLK_s = 115,
+ SDLK_t = 116,
+ SDLK_u = 117,
+ SDLK_v = 118,
+ SDLK_w = 119,
+ SDLK_x = 120,
+ SDLK_y = 121,
+ SDLK_z = 122,
+ SDLK_DELETE = 127,
+ /* End of ASCII mapped keysyms */
- /* International keyboard syms */
- SDLK_WORLD_0 = 160, /* 0xA0 */
- SDLK_WORLD_1 = 161,
- SDLK_WORLD_2 = 162,
- SDLK_WORLD_3 = 163,
- SDLK_WORLD_4 = 164,
- SDLK_WORLD_5 = 165,
- SDLK_WORLD_6 = 166,
- SDLK_WORLD_7 = 167,
- SDLK_WORLD_8 = 168,
- SDLK_WORLD_9 = 169,
- SDLK_WORLD_10 = 170,
- SDLK_WORLD_11 = 171,
- SDLK_WORLD_12 = 172,
- SDLK_WORLD_13 = 173,
- SDLK_WORLD_14 = 174,
- SDLK_WORLD_15 = 175,
- SDLK_WORLD_16 = 176,
- SDLK_WORLD_17 = 177,
- SDLK_WORLD_18 = 178,
- SDLK_WORLD_19 = 179,
- SDLK_WORLD_20 = 180,
- SDLK_WORLD_21 = 181,
- SDLK_WORLD_22 = 182,
- SDLK_WORLD_23 = 183,
- SDLK_WORLD_24 = 184,
- SDLK_WORLD_25 = 185,
- SDLK_WORLD_26 = 186,
- SDLK_WORLD_27 = 187,
- SDLK_WORLD_28 = 188,
- SDLK_WORLD_29 = 189,
- SDLK_WORLD_30 = 190,
- SDLK_WORLD_31 = 191,
- SDLK_WORLD_32 = 192,
- SDLK_WORLD_33 = 193,
- SDLK_WORLD_34 = 194,
- SDLK_WORLD_35 = 195,
- SDLK_WORLD_36 = 196,
- SDLK_WORLD_37 = 197,
- SDLK_WORLD_38 = 198,
- SDLK_WORLD_39 = 199,
- SDLK_WORLD_40 = 200,
- SDLK_WORLD_41 = 201,
- SDLK_WORLD_42 = 202,
- SDLK_WORLD_43 = 203,
- SDLK_WORLD_44 = 204,
- SDLK_WORLD_45 = 205,
- SDLK_WORLD_46 = 206,
- SDLK_WORLD_47 = 207,
- SDLK_WORLD_48 = 208,
- SDLK_WORLD_49 = 209,
- SDLK_WORLD_50 = 210,
- SDLK_WORLD_51 = 211,
- SDLK_WORLD_52 = 212,
- SDLK_WORLD_53 = 213,
- SDLK_WORLD_54 = 214,
- SDLK_WORLD_55 = 215,
- SDLK_WORLD_56 = 216,
- SDLK_WORLD_57 = 217,
- SDLK_WORLD_58 = 218,
- SDLK_WORLD_59 = 219,
- SDLK_WORLD_60 = 220,
- SDLK_WORLD_61 = 221,
- SDLK_WORLD_62 = 222,
- SDLK_WORLD_63 = 223,
- SDLK_WORLD_64 = 224,
- SDLK_WORLD_65 = 225,
- SDLK_WORLD_66 = 226,
- SDLK_WORLD_67 = 227,
- SDLK_WORLD_68 = 228,
- SDLK_WORLD_69 = 229,
- SDLK_WORLD_70 = 230,
- SDLK_WORLD_71 = 231,
- SDLK_WORLD_72 = 232,
- SDLK_WORLD_73 = 233,
- SDLK_WORLD_74 = 234,
- SDLK_WORLD_75 = 235,
- SDLK_WORLD_76 = 236,
- SDLK_WORLD_77 = 237,
- SDLK_WORLD_78 = 238,
- SDLK_WORLD_79 = 239,
- SDLK_WORLD_80 = 240,
- SDLK_WORLD_81 = 241,
- SDLK_WORLD_82 = 242,
- SDLK_WORLD_83 = 243,
- SDLK_WORLD_84 = 244,
- SDLK_WORLD_85 = 245,
- SDLK_WORLD_86 = 246,
- SDLK_WORLD_87 = 247,
- SDLK_WORLD_88 = 248,
- SDLK_WORLD_89 = 249,
- SDLK_WORLD_90 = 250,
- SDLK_WORLD_91 = 251,
- SDLK_WORLD_92 = 252,
- SDLK_WORLD_93 = 253,
- SDLK_WORLD_94 = 254,
- SDLK_WORLD_95 = 255, /* 0xFF */
+ /* Numeric keypad */
+ SDLK_KP0 = 256,
+ SDLK_KP1 = 257,
+ SDLK_KP2 = 258,
+ SDLK_KP3 = 259,
+ SDLK_KP4 = 260,
+ SDLK_KP5 = 261,
+ SDLK_KP6 = 262,
+ SDLK_KP7 = 263,
+ SDLK_KP8 = 264,
+ SDLK_KP9 = 265,
+ SDLK_KP_PERIOD = 266,
+ SDLK_KP_DIVIDE = 267,
+ SDLK_KP_MULTIPLY = 268,
+ SDLK_KP_MINUS = 269,
+ SDLK_KP_PLUS = 270,
+ SDLK_KP_ENTER = 271,
+ SDLK_KP_EQUALS = 272,
+
+ /* Arrows + Home/End pad */
+ SDLK_UP = 273,
+ SDLK_DOWN = 274,
+ SDLK_RIGHT = 275,
+ SDLK_LEFT = 276,
+ SDLK_INSERT = 277,
+ SDLK_HOME = 278,
+ SDLK_END = 279,
+ SDLK_PAGEUP = 280,
+ SDLK_PAGEDOWN = 281,
- /* Numeric keypad */
- SDLK_KP0 = 256,
- SDLK_KP1 = 257,
- SDLK_KP2 = 258,
- SDLK_KP3 = 259,
- SDLK_KP4 = 260,
- SDLK_KP5 = 261,
- SDLK_KP6 = 262,
- SDLK_KP7 = 263,
- SDLK_KP8 = 264,
- SDLK_KP9 = 265,
- SDLK_KP_PERIOD = 266,
- SDLK_KP_DIVIDE = 267,
- SDLK_KP_MULTIPLY = 268,
- SDLK_KP_MINUS = 269,
- SDLK_KP_PLUS = 270,
- SDLK_KP_ENTER = 271,
- SDLK_KP_EQUALS = 272,
-
- /* Arrows + Home/End pad */
- SDLK_UP = 273,
- SDLK_DOWN = 274,
- SDLK_RIGHT = 275,
- SDLK_LEFT = 276,
- SDLK_INSERT = 277,
- SDLK_HOME = 278,
- SDLK_END = 279,
- SDLK_PAGEUP = 280,
- SDLK_PAGEDOWN = 281,
+ /* Function keys */
+ SDLK_F1 = 282,
+ SDLK_F2 = 283,
+ SDLK_F3 = 284,
+ SDLK_F4 = 285,
+ SDLK_F5 = 286,
+ SDLK_F6 = 287,
+ SDLK_F7 = 288,
+ SDLK_F8 = 289,
+ SDLK_F9 = 290,
+ SDLK_F10 = 291,
+ SDLK_F11 = 292,
+ SDLK_F12 = 293,
+ SDLK_F13 = 294,
+ SDLK_F14 = 295,
+ SDLK_F15 = 296,
- /* Function keys */
- SDLK_F1 = 282,
- SDLK_F2 = 283,
- SDLK_F3 = 284,
- SDLK_F4 = 285,
- SDLK_F5 = 286,
- SDLK_F6 = 287,
- SDLK_F7 = 288,
- SDLK_F8 = 289,
- SDLK_F9 = 290,
- SDLK_F10 = 291,
- SDLK_F11 = 292,
- SDLK_F12 = 293,
- SDLK_F13 = 294,
- SDLK_F14 = 295,
- SDLK_F15 = 296,
+ /* Key state modifier keys */
+ SDLK_NUMLOCK = 300,
+ SDLK_CAPSLOCK = 301,
+ SDLK_SCROLLOCK = 302,
+ SDLK_RSHIFT = 303,
+ SDLK_LSHIFT = 304,
+ SDLK_RCTRL = 305,
+ SDLK_LCTRL = 306,
+ SDLK_RALT = 307,
+ SDLK_LALT = 308,
+ SDLK_RMETA = 309,
+ SDLK_LMETA = 310,
+ SDLK_LSUPER = 311, /**< Left "Windows" key */
+ SDLK_RSUPER = 312, /**< Right "Windows" key */
+ SDLK_MODE = 313, /**< "Alt Gr" key */
+ SDLK_COMPOSE = 314, /**< Multi-key compose key */
- /* Key state modifier keys */
- SDLK_NUMLOCK = 300,
- SDLK_CAPSLOCK = 301,
- SDLK_SCROLLOCK = 302,
- SDLK_RSHIFT = 303,
- SDLK_LSHIFT = 304,
- SDLK_RCTRL = 305,
- SDLK_LCTRL = 306,
- SDLK_RALT = 307,
- SDLK_LALT = 308,
- SDLK_RMETA = 309,
- SDLK_LMETA = 310,
- SDLK_LSUPER = 311, /* Left "Windows" key */
- SDLK_RSUPER = 312, /* Right "Windows" key */
- SDLK_MODE = 313, /* "Alt Gr" key */
- SDLK_COMPOSE = 314, /* Multi-key compose key */
+ /* Miscellaneous function keys */
+ SDLK_HELP = 315,
+ SDLK_PRINT = 316,
+ SDLK_SYSREQ = 317,
+ SDLK_BREAK = 318,
+ SDLK_MENU = 319,
+ SDLK_POWER = 320, /**< Power Macintosh power key */
+ SDLK_EURO = 321, /**< Some european keyboards */
+ SDLK_UNDO = 322, /**< Atari keyboard has Undo */
- /* Miscellaneous function keys */
- SDLK_HELP = 315,
- SDLK_PRINT = 316,
- SDLK_SYSREQ = 317,
- SDLK_BREAK = 318,
- SDLK_MENU = 319,
- SDLK_POWER = 320, /* Power Macintosh power key */
- SDLK_EURO = 321, /* Some european keyboards */
- SDLK_UNDO = 322, /* Atari keyboard has Undo */
+ /* Add any other keys here */
- /* Add any other keys here */
-
- SDLK_LAST
+ SDLK_LAST
} SDLKey;
-/* Enumeration of valid key mods (possibly OR'd together) */
-typedef enum {
- KMOD_NONE = 0x0000,
- KMOD_LSHIFT= 0x0001,
- KMOD_RSHIFT= 0x0002,
- KMOD_LCTRL = 0x0040,
- KMOD_RCTRL = 0x0080,
- KMOD_LALT = 0x0100,
- KMOD_RALT = 0x0200,
- KMOD_LMETA = 0x0400,
- KMOD_RMETA = 0x0800,
- KMOD_NUM = 0x1000,
- KMOD_CAPS = 0x2000,
- KMOD_MODE = 0x4000,
- KMOD_RESERVED = 0x8000
+/**
+ * \enum SDLMod
+ *
+ * \brief Enumeration of valid key mods (possibly OR'd together)
+ */
+typedef enum
+{
+ KMOD_NONE = 0x0000,
+ KMOD_LSHIFT = 0x0001,
+ KMOD_RSHIFT = 0x0002,
+ KMOD_LCTRL = 0x0040,
+ KMOD_RCTRL = 0x0080,
+ KMOD_LALT = 0x0100,
+ KMOD_RALT = 0x0200,
+ KMOD_LMETA = 0x0400,
+ KMOD_RMETA = 0x0800,
+ KMOD_NUM = 0x1000,
+ KMOD_CAPS = 0x2000,
+ KMOD_MODE = 0x4000,
+ KMOD_RESERVED = 0x8000
} SDLMod;
#define KMOD_CTRL (KMOD_LCTRL|KMOD_RCTRL)
--- a/include/SDL_loadso.h Thu Jul 06 18:01:37 2006 +0000
+++ b/include/SDL_loadso.h Mon Jul 10 21:04:37 2006 +0000
@@ -20,23 +20,24 @@
slouken@libsdl.org
*/
-/* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * */
-/* System dependent library loading routines */
-
-/* Some things to keep in mind:
- - These functions only work on C function names. Other languages may
- have name mangling and intrinsic language support that varies from
- compiler to compiler.
- - Make sure you declare your function pointers with the same calling
- convention as the actual library function. Your code will crash
- mysteriously if you do not do this.
- - Avoid namespace collisions. If you load a symbol from the library,
- it is not defined whether or not it goes into the global symbol
- namespace for the application. If it does and it conflicts with
- symbols in your code or other shared libraries, you will not get
- the results you expect. :)
-*/
-
+/**
+ * \file SDL_loadso.h
+ *
+ * System dependent library loading routines
+ *
+ * Some things to keep in mind:
+ * - These functions only work on C function names. Other languages may
+ * have name mangling and intrinsic language support that varies from
+ * compiler to compiler.
+ * - Make sure you declare your function pointers with the same calling
+ * convention as the actual library function. Your code will crash
+ * mysteriously if you do not do this.
+ * - Avoid namespace collisions. If you load a symbol from the library,
+ * it is not defined whether or not it goes into the global symbol
+ * namespace for the application. If it does and it conflicts with
+ * symbols in your code or other shared libraries, you will not get
+ * the results you expect. :)
+ */
#ifndef _SDL_loadso_h
#define _SDL_loadso_h
@@ -47,28 +48,35 @@
#include "begin_code.h"
/* Set up for C function definitions, even when using C++ */
#ifdef __cplusplus
+/* *INDENT-OFF* */
extern "C" {
+/* *INDENT-ON* */
#endif
/* This function dynamically loads a shared object and returns a pointer
* to the object handle (or NULL if there was an error).
* The 'sofile' parameter is a system dependent name of the object file.
*/
-extern DECLSPEC void * SDLCALL SDL_LoadObject(const char *sofile);
+extern DECLSPEC void *SDLCALL SDL_LoadObject(const char *sofile);
/* Given an object handle, this function looks up the address of the
* named function in the shared object and returns it. This address
* is no longer valid after calling SDL_UnloadObject().
*/
-extern DECLSPEC void * SDLCALL SDL_LoadFunction(void *handle, const char *name);
+extern DECLSPEC void *SDLCALL SDL_LoadFunction(void *handle,
+ const char *name);
/* Unload a shared object from memory */
extern DECLSPEC void SDLCALL SDL_UnloadObject(void *handle);
/* Ends C function definitions when using C++ */
#ifdef __cplusplus
+/* *INDENT-OFF* */
}
+/* *INDENT-ON* */
#endif
#include "close_code.h"
#endif /* _SDL_loadso_h */
+
+/* vi: set ts=4 sw=4 expandtab: */
--- a/include/SDL_main.h Thu Jul 06 18:01:37 2006 +0000
+++ b/include/SDL_main.h Mon Jul 10 21:04:37 2006 +0000
@@ -58,17 +58,20 @@
#include "begin_code.h"
#ifdef __cplusplus
+/* *INDENT-OFF* */
extern "C" {
+/* *INDENT-ON* */
#endif
-/* This should be called from your WinMain() function, if any */
-extern DECLSPEC void SDLCALL SDL_SetModuleHandle(void *hInst);
-/* This can also be called, but is no longer necessary */
-extern DECLSPEC int SDLCALL SDL_RegisterApp(char *name, Uint32 style, void *hInst);
-/* This can also be called, but is no longer necessary (SDL_Quit calls it) */
+/* This can be called to set the application class at startup */
+extern DECLSPEC int SDLCALL SDL_RegisterApp(char *name, Uint32 style,
+ void *hInst);
extern DECLSPEC void SDLCALL SDL_UnregisterApp(void);
+
#ifdef __cplusplus
+/* *INDENT-OFF* */
}
+/* *INDENT-ON* */
#endif
#include "close_code.h"
#endif
@@ -78,7 +81,9 @@
#include "begin_code.h"
#ifdef __cplusplus
+/* *INDENT-OFF* */
extern "C" {
+/* *INDENT-ON* */
#endif
/* Forward declaration so we don't need to include QuickDraw.h */
@@ -88,7 +93,9 @@
extern DECLSPEC void SDLCALL SDL_InitQuickDraw(struct QDGlobals *the_qd);
#ifdef __cplusplus
+/* *INDENT-OFF* */
}
+/* *INDENT-ON* */
#endif
#include "close_code.h"
#endif
@@ -96,3 +103,5 @@
#endif /* Need to redefine main()? */
#endif /* _SDL_main_h */
+
+/* vi: set ts=4 sw=4 expandtab: */
--- a/include/SDL_mouse.h Thu Jul 06 18:01:37 2006 +0000
+++ b/include/SDL_mouse.h Mon Jul 10 21:04:37 2006 +0000
@@ -20,7 +20,11 @@
slouken@libsdl.org
*/
-/* Include file for SDL mouse event handling */
+/**
+ * \file SDL_mouse.h
+ *
+ * Include file for SDL mouse event handling
+ */
#ifndef _SDL_mouse_h
#define _SDL_mouse_h
@@ -32,43 +36,116 @@
#include "begin_code.h"
/* Set up for C function definitions, even when using C++ */
#ifdef __cplusplus
+/* *INDENT-OFF* */
extern "C" {
+/* *INDENT-ON* */
#endif
-typedef struct WMcursor WMcursor; /* Implementation dependent */
-typedef struct SDL_Cursor {
- SDL_Rect area; /* The area of the mouse cursor */
- Sint16 hot_x, hot_y; /* The "tip" of the cursor */
- Uint8 *data; /* B/W cursor data */
- Uint8 *mask; /* B/W cursor mask */
- Uint8 *save[2]; /* Place to save cursor area */
- WMcursor *wm_cursor; /* Window-manager cursor */
-} SDL_Cursor;
+typedef struct SDL_Cursor SDL_Cursor; /* Implementation dependent */
/* Function prototypes */
-/*
- * Retrieve the current state of the mouse.
+
+/**
+ * \fn int SDL_GetNumMice(void)
+ *
+ * \brief Get the number of mouse input devices available.
+ *
+ * \sa SDL_SelectMouse()
+ */
+extern DECLSPEC int SDLCALL SDL_GetNumMice(void);
+
+/**
+ * \fn int SDL_SelectMouse(int index)
+ *
+ * \brief Set the index of the currently selected mouse.
+ *
+ * \return The index of the previously selected mouse.
+ *
+ * \note You can query the currently selected mouse by passing an index of -1.
+ *
+ * \sa SDL_GetNumMice()
+ */
+extern DECLSPEC int SDLCALL SDL_SelectMouse(int index);
+
+/**
+ * \fn SDL_WindowID SDL_GetMouseFocusWindow(void)
+ *
+ * \brief Get the window which currently has focus for the currently selected mouse.
+ */
+extern DECLSPEC SDL_WindowID SDLCALL SDL_GetMouseFocusWindow(void);
+
+/**
+ * \fn int SDL_SetRelativeMouseMode(SDL_bool enabled)
+ *
+ * \brief Set relative mouse mode for the currently selected mouse.
+ *
+ * \param enabled Whether or not to enable relative mode
+ *
+ * \return 0 on success, or -1 if relative mode is not supported.
+ *
+ * While the mouse is in relative mode, the cursor is hidden, and the
+ * driver will try to report continuous motion in the current window.
+ * Only relative motion events will be delivered, the mouse position
+ * will not change.
+ *
+ * \note This function will flush any pending mouse motion.
+ *
+ * \sa SDL_GetRelativeMouseMode()
+ */
+extern DECLSPEC int SDLCALL SDL_SetRelativeMouseMode(SDL_bool enabled);
+
+/**
+ * \fn SDL_bool SDL_GetRelativeMouseMode()
+ *
+ * \brief Query whether relative mouse mode is enabled for the currently selected mouse.
+ *
+ * \sa SDL_SetRelativeMouseMode()
+ */
+extern DECLSPEC SDL_bool SDLCALL SDL_GetRelativeMouseMode();
+
+/**
+ * \fn Uint8 SDL_GetMouseState(int *x, int *y)
+ *
+ * \brief Retrieve the current state of the currently selected mouse.
+ *
* The current button state is returned as a button bitmask, which can
* be tested using the SDL_BUTTON(X) macros, and x and y are set to the
- * current mouse cursor position. You can pass NULL for either x or y.
+ * mouse cursor position relative to the focus window for the currently
+ * selected mouse. You can pass NULL for either x or y.
*/
extern DECLSPEC Uint8 SDLCALL SDL_GetMouseState(int *x, int *y);
-/*
- * Retrieve the current state of the mouse.
+/**
+ * \fn Uint8 SDL_GetRelativeMouseState(int *x, int *y)
+ *
+ * \brief Retrieve the state of the currently selected mouse.
+ *
* The current button state is returned as a button bitmask, which can
* be tested using the SDL_BUTTON(X) macros, and x and y are set to the
* mouse deltas since the last call to SDL_GetRelativeMouseState().
*/
extern DECLSPEC Uint8 SDLCALL SDL_GetRelativeMouseState(int *x, int *y);
-/*
- * Set the position of the mouse cursor (generates a mouse motion event)
+/**
+ * \fn void SDL_WarpMouseInWindow(SDL_WindowID windowID, int x, int y)
+ *
+ * \brief Moves the currently selected mouse to the given position within the window.
+ *
+ * \param windowID The window to move the mouse into, or 0 for the current mouse focus
+ * \param x The x coordinate within the window
+ * \param y The y coordinate within the window
+ *
+ * \note This function generates a mouse motion event
*/
-extern DECLSPEC void SDLCALL SDL_WarpMouse(Uint16 x, Uint16 y);
+extern DECLSPEC void SDLCALL SDL_WarpMouseInWindow(SDL_WindowID windowID,
+ int x, int y);
-/*
- * Create a cursor using the specified data and mask (in MSB format).
+/**
+ * \fn SDL_Cursor *SDL_CreateCursor (const Uint8 * data, const Uint8 * mask, int w, int h, int hot_x, int hot_y)
+ *
+ * \brief Create a cursor for the currently selected mouse, using the
+ * specified bitmap data and mask (in MSB format).
+ *
* The cursor width must be a multiple of 8 bits.
*
* The cursor is created in black and white according to the following:
@@ -78,34 +155,46 @@
* 0 0 Transparent
* 1 0 Inverted color if possible, black if not.
*
- * Cursors created with this function must be freed with SDL_FreeCursor().
+ * \sa SDL_FreeCursor()
*/
-extern DECLSPEC SDL_Cursor * SDLCALL SDL_CreateCursor
- (Uint8 *data, Uint8 *mask, int w, int h, int hot_x, int hot_y);
+extern DECLSPEC SDL_Cursor *SDLCALL SDL_CreateCursor(const Uint8 * data,
+ const Uint8 * mask,
+ int w, int h, int hot_x,
+ int hot_y);
-/*
- * Set the currently active cursor to the specified one.
- * If the cursor is currently visible, the change will be immediately
- * represented on the display.
+/**
+ * \fn void SDL_SetCursor(SDL_Cursor * cursor)
+ *
+ * \brief Set the active cursor for the currently selected mouse.
+ *
+ * \note The cursor must have been created for the selected mouse.
*/
-extern DECLSPEC void SDLCALL SDL_SetCursor(SDL_Cursor *cursor);
+extern DECLSPEC void SDLCALL SDL_SetCursor(SDL_Cursor * cursor);
-/*
- * Returns the currently active cursor.
- */
-extern DECLSPEC SDL_Cursor * SDLCALL SDL_GetCursor(void);
-
-/*
- * Deallocates a cursor created with SDL_CreateCursor().
+/**
+ * \fn SDL_Cursor *SDL_GetCursor(void)
+ *
+ * \brief Return the active cursor for the currently selected mouse.
*/
-extern DECLSPEC void SDLCALL SDL_FreeCursor(SDL_Cursor *cursor);
+extern DECLSPEC SDL_Cursor *SDLCALL SDL_GetCursor(void);
-/*
- * Toggle whether or not the cursor is shown on the screen.
- * The cursor start off displayed, but can be turned off.
- * SDL_ShowCursor() returns 1 if the cursor was being displayed
- * before the call, or 0 if it was not. You can query the current
- * state by passing a 'toggle' value of -1.
+/**
+ * \fn void SDL_FreeCursor(SDL_Cursor * cursor)
+ *
+ * \brief Frees a cursor created with SDL_CreateCursor().
+ *
+ * \sa SDL_CreateCursor()
+ */
+extern DECLSPEC void SDLCALL SDL_FreeCursor(SDL_Cursor * cursor);
+
+/**
+ * \fn int SDL_ShowCursor(int toggle)
+ *
+ * \brief Toggle whether or not the cursor is shown for the currently selected mouse.
+ *
+ * \param toggle 1 to show the cursor, 0 to hide it, -1 to query the current state.
+ *
+ * \return 1 if the cursor is shown, or 0 if the cursor is hidden.
*/
extern DECLSPEC int SDLCALL SDL_ShowCursor(int toggle);
@@ -113,15 +202,11 @@
Button 1: Left mouse button
Button 2: Middle mouse button
Button 3: Right mouse button
- Button 4: Mouse wheel up (may also be a real button)
- Button 5: Mouse wheel down (may also be a real button)
*/
#define SDL_BUTTON(X) (1 << ((X)-1))
#define SDL_BUTTON_LEFT 1
#define SDL_BUTTON_MIDDLE 2
#define SDL_BUTTON_RIGHT 3
-#define SDL_BUTTON_WHEELUP 4
-#define SDL_BUTTON_WHEELDOWN 5
#define SDL_BUTTON_LMASK SDL_BUTTON(SDL_BUTTON_LEFT)
#define SDL_BUTTON_MMASK SDL_BUTTON(SDL_BUTTON_MIDDLE)
#define SDL_BUTTON_RMASK SDL_BUTTON(SDL_BUTTON_RIGHT)
@@ -129,8 +214,12 @@
/* Ends C function definitions when using C++ */
#ifdef __cplusplus
+/* *INDENT-OFF* */
}
+/* *INDENT-ON* */
#endif
#include "close_code.h"
#endif /* _SDL_mouse_h */
+
+/* vi: set ts=4 sw=4 expandtab: */
--- a/include/SDL_mutex.h Thu Jul 06 18:01:37 2006 +0000
+++ b/include/SDL_mutex.h Mon Jul 10 21:04:37 2006 +0000
@@ -23,10 +23,11 @@
#ifndef _SDL_mutex_h
#define _SDL_mutex_h
-/* Functions to provide thread synchronization primitives
-
- These are independent of the other SDL routines.
-*/
+/**
+ * \file SDL_mutex.h
+ *
+ * Functions to provide thread synchronization primitives
+ */
#include "SDL_stdinc.h"
#include "SDL_error.h"
@@ -34,7 +35,9 @@
#include "begin_code.h"
/* Set up for C function definitions, even when using C++ */
#ifdef __cplusplus
+/* *INDENT-OFF* */
extern "C" {
+/* *INDENT-ON* */
#endif
/* Synchronization functions which can time out return this value
@@ -55,21 +58,21 @@
typedef struct SDL_mutex SDL_mutex;
/* Create a mutex, initialized unlocked */
-extern DECLSPEC SDL_mutex * SDLCALL SDL_CreateMutex(void);
+extern DECLSPEC SDL_mutex *SDLCALL SDL_CreateMutex(void);
/* Lock the mutex (Returns 0, or -1 on error) */
#define SDL_LockMutex(m) SDL_mutexP(m)
-extern DECLSPEC int SDLCALL SDL_mutexP(SDL_mutex *mutex);
+extern DECLSPEC int SDLCALL SDL_mutexP(SDL_mutex * mutex);
/* Unlock the mutex (Returns 0, or -1 on error)
It is an error to unlock a mutex that has not been locked by
the current thread, and doing so results in undefined behavior.
*/
#define SDL_UnlockMutex(m) SDL_mutexV(m)
-extern DECLSPEC int SDLCALL SDL_mutexV(SDL_mutex *mutex);
+extern DECLSPEC int SDLCALL SDL_mutexV(SDL_mutex * mutex);
/* Destroy a mutex */
-extern DECLSPEC void SDLCALL SDL_DestroyMutex(SDL_mutex *mutex);
+extern DECLSPEC void SDLCALL SDL_DestroyMutex(SDL_mutex * mutex);
/* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * */
@@ -81,21 +84,21 @@
typedef struct SDL_semaphore SDL_sem;
/* Create a semaphore, initialized with value, returns NULL on failure. */
-extern DECLSPEC SDL_sem * SDLCALL SDL_CreateSemaphore(Uint32 initial_value);
+extern DECLSPEC SDL_sem *SDLCALL SDL_CreateSemaphore(Uint32 initial_value);
/* Destroy a semaphore */
-extern DECLSPEC void SDLCALL SDL_DestroySemaphore(SDL_sem *sem);
+extern DECLSPEC void SDLCALL SDL_DestroySemaphore(SDL_sem * sem);
/* This function suspends the calling thread until the semaphore pointed
* to by sem has a positive count. It then atomically decreases the semaphore
* count.
*/
-extern DECLSPEC int SDLCALL SDL_SemWait(SDL_sem *sem);
+extern DECLSPEC int SDLCALL SDL_SemWait(SDL_sem * sem);
/* Non-blocking variant of SDL_SemWait(), returns 0 if the wait succeeds,
SDL_MUTEX_TIMEDOUT if the wait would block, and -1 on error.
*/
-extern DECLSPEC int SDLCALL SDL_SemTryWait(SDL_sem *sem);
+extern DECLSPEC int SDLCALL SDL_SemTryWait(SDL_sem * sem);
/* Variant of SDL_SemWait() with a timeout in milliseconds, returns 0 if
the wait succeeds, SDL_MUTEX_TIMEDOUT if the wait does not succeed in
@@ -103,15 +106,15 @@
On some platforms this function is implemented by looping with a delay
of 1 ms, and so should be avoided if possible.
*/
-extern DECLSPEC int SDLCALL SDL_SemWaitTimeout(SDL_sem *sem, Uint32 ms);
+extern DECLSPEC int SDLCALL SDL_SemWaitTimeout(SDL_sem * sem, Uint32 ms);
/* Atomically increases the semaphore's count (not blocking), returns 0,
or -1 on error.
*/
-extern DECLSPEC int SDLCALL SDL_SemPost(SDL_sem *sem);
+extern DECLSPEC int SDLCALL SDL_SemPost(SDL_sem * sem);
/* Returns the current count of the semaphore */
-extern DECLSPEC Uint32 SDLCALL SDL_SemValue(SDL_sem *sem);
+extern DECLSPEC Uint32 SDLCALL SDL_SemValue(SDL_sem * sem);
/* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * */
@@ -123,27 +126,27 @@
typedef struct SDL_cond SDL_cond;
/* Create a condition variable */
-extern DECLSPEC SDL_cond * SDLCALL SDL_CreateCond(void);
+extern DECLSPEC SDL_cond *SDLCALL SDL_CreateCond(void);
/* Destroy a condition variable */
-extern DECLSPEC void SDLCALL SDL_DestroyCond(SDL_cond *cond);
+extern DECLSPEC void SDLCALL SDL_DestroyCond(SDL_cond * cond);
/* Restart one of the threads that are waiting on the condition variable,
returns 0 or -1 on error.
*/
-extern DECLSPEC int SDLCALL SDL_CondSignal(SDL_cond *cond);
+extern DECLSPEC int SDLCALL SDL_CondSignal(SDL_cond * cond);
/* Restart all threads that are waiting on the condition variable,
returns 0 or -1 on error.
*/
-extern DECLSPEC int SDLCALL SDL_CondBroadcast(SDL_cond *cond);
+extern DECLSPEC int SDLCALL SDL_CondBroadcast(SDL_cond * cond);
/* Wait on the condition variable, unlocking the provided mutex.
The mutex must be locked before entering this function!
The mutex is re-locked once the condition variable is signaled.
Returns 0 when it is signaled, or -1 on error.
*/
-extern DECLSPEC int SDLCALL SDL_CondWait(SDL_cond *cond, SDL_mutex *mut);
+extern DECLSPEC int SDLCALL SDL_CondWait(SDL_cond * cond, SDL_mutex * mut);
/* Waits for at most 'ms' milliseconds, and returns 0 if the condition
variable is signaled, SDL_MUTEX_TIMEDOUT if the condition is not
@@ -151,12 +154,17 @@
On some platforms this function is implemented by looping with a delay
of 1 ms, and so should be avoided if possible.
*/
-extern DECLSPEC int SDLCALL SDL_CondWaitTimeout(SDL_cond *cond, SDL_mutex *mutex, Uint32 ms);
+extern DECLSPEC int SDLCALL SDL_CondWaitTimeout(SDL_cond * cond,
+ SDL_mutex * mutex, Uint32 ms);
/* Ends C function definitions when using C++ */
#ifdef __cplusplus
+/* *INDENT-OFF* */
}
+/* *INDENT-ON* */
#endif
#include "close_code.h"
#endif /* _SDL_mutex_h */
+
+/* vi: set ts=4 sw=4 expandtab: */
--- a/include/SDL_opengl.h Thu Jul 06 18:01:37 2006 +0000
+++ b/include/SDL_opengl.h Mon Jul 10 21:04:37 2006 +0000
@@ -27,33 +27,35 @@
#ifdef __WIN32__
#define WIN32_LEAN_AND_MEAN
#ifndef NOMINMAX
-#define NOMINMAX /* Don't defined min() and max() */
+#define NOMINMAX /* Don't defined min() and max() */
#endif
#include <windows.h>
#endif
#ifndef NO_SDL_GLEXT
-#define __glext_h_ /* Don't let gl.h include glext.h */
+#define __glext_h_ /* Don't let gl.h include glext.h */
#endif
#if defined(__MACOSX__)
-#include <OpenGL/gl.h> /* Header File For The OpenGL Library */
-#include <OpenGL/glu.h> /* Header File For The GLU Library */
+#include <OpenGL/gl.h> /* Header File For The OpenGL Library */
+#include <OpenGL/glu.h> /* Header File For The GLU Library */
#elif defined(__MACOS__)
-#include <gl.h> /* Header File For The OpenGL Library */
-#include <glu.h> /* Header File For The GLU Library */
+#include <gl.h> /* Header File For The OpenGL Library */
+#include <glu.h> /* Header File For The GLU Library */
#else
-#include <GL/gl.h> /* Header File For The OpenGL Library */
-#include <GL/glu.h> /* Header File For The GLU Library */
+#include <GL/gl.h> /* Header File For The OpenGL Library */
+#include <GL/glu.h> /* Header File For The GLU Library */
#endif
#ifndef NO_SDL_GLEXT
#undef __glext_h_
#endif
-/* This file taken from "GLext.h" from the Jeff Molofee OpenGL tutorials.
- It is included here because glext.h is not available on some systems.
+/* This file is included because glext.h is not available on some systems.
If you don't want this version included, simply define "NO_SDL_GLEXT"
+ The latest version is available from:
+ http://oss.sgi.com/projects/ogl-sample/registry/
*/
-#ifndef NO_SDL_GLEXT
-#if !defined(__glext_h_) && !defined(GL_GLEXT_LEGACY)
+#if !defined(NO_SDL_GLEXT) && !defined(GL_GLEXT_LEGACY)
+/* *INDENT-OFF* */
+#ifndef __glext_h_
#define __glext_h_
#ifdef __cplusplus
@@ -6548,4 +6550,5 @@
#endif
#endif
+/* *INDENT-ON* */
#endif /* NO_SDL_GLEXT */
--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/include/SDL_pixels.h Mon Jul 10 21:04:37 2006 +0000
@@ -0,0 +1,348 @@
+/*
+ SDL - Simple DirectMedia Layer
+ Copyright (C) 1997-2006 Sam Lantinga
+
+ This library is free software; you can redistribute it and/or
+ modify it under the terms of the GNU Lesser General Public
+ License as published by the Free Software Foundation; either
+ version 2.1 of the License, or (at your option) any later version.
+
+ This library is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ Lesser General Public License for more details.
+
+ You should have received a copy of the GNU Lesser General Public
+ License along with this library; if not, write to the Free Software
+ Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
+
+ Sam Lantinga
+ slouken@libsdl.org
+*/
+
+/**
+ * \file SDL_pixels.h
+ *
+ * Header for the enumerated pixel format definitions
+ */
+
+#ifndef _SDL_pixels_h
+#define _SDL_pixels_h
+
+#include "begin_code.h"
+/* Set up for C function definitions, even when using C++ */
+#ifdef __cplusplus
+/* *INDENT-OFF* */
+extern "C" {
+/* *INDENT-ON* */
+#endif
+
+enum
+{ /* Pixel type */
+ SDL_PixelType_Unknown,
+ SDL_PixelType_Index1,
+ SDL_PixelType_Index4,
+ SDL_PixelType_Index8,
+ SDL_PixelType_Packed8,
+ SDL_PixelType_Packed16,
+ SDL_PixelType_Packed32,
+ SDL_PixelType_ArrayU8,
+ SDL_PixelType_ArrayU16,
+ SDL_PixelType_ArrayU32,
+ SDL_PixelType_ArrayF16,
+ SDL_PixelType_ArrayF32,
+};
+
+enum
+{ /* bitmap pixel order, high bit -> low bit */
+ SDL_BitmapOrder_None,
+ SDL_BitmapOrder_4321,
+ SDL_BitmapOrder_1234,
+};
+enum
+{ /* packed component order, high bit -> low bit */
+ SDL_PackedOrder_None,
+ SDL_PackedOrder_XRGB,
+ SDL_PackedOrder_RGBX,
+ SDL_PackedOrder_ARGB,
+ SDL_PackedOrder_RGBA,
+ SDL_PackedOrder_XBGR,
+ SDL_PackedOrder_BGRX,
+ SDL_PackedOrder_ABGR,
+ SDL_PackedOrder_BGRA,
+};
+enum
+{ /* array component order, low byte -> high byte */
+ SDL_ArrayOrder_None,
+ SDL_ArrayOrder_RGB,
+ SDL_ArrayOrder_RGBA,
+ SDL_ArrayOrder_ARGB,
+ SDL_ArrayOrder_BGR,
+ SDL_ArrayOrder_BGRA,
+ SDL_ArrayOrder_ABGR,
+};
+
+enum
+{ /* Packed component layout */
+ SDL_PackedLayout_None,
+ SDL_PackedLayout_332,
+ SDL_PackedLayout_4444,
+ SDL_PackedLayout_1555,
+ SDL_PackedLayout_5551,
+ SDL_PackedLayout_565,
+ SDL_PackedLayout_8888,
+ SDL_PackedLayout_2101010,
+ SDL_PackedLayout_1010102,
+};
+
+#define SDL_DEFINE_PIXELFOURCC(A, B, C, D) \
+ ((A) | ((B) << 8) | ((C) << 16) | ((D) << 24))
+
+#define SDL_DEFINE_PIXELFORMAT(type, order, layout, bits, bytes) \
+ ((1 << 31) | ((type) << 24) | ((order) << 20) | ((layout) << 16) | \
+ ((bits) << 8) | ((bytes) << 0))
+
+#define SDL_PIXELTYPE(X) (((X) >> 24) & 0x0F)
+#define SDL_PIXELORDER(X) (((X) >> 20) & 0x0F)
+#define SDL_PIXELLAYOUT(X) (((X) >> 16) & 0x0F)
+#define SDL_BITSPERPIXEL(X) (((X) >> 8) & 0xFF)
+#define SDL_BYTESPERPIXEL(X) (((X) >> 0) & 0xFF)
+
+#define SDL_ISPIXELFORMAT_INDEXED(format) \
+ ((SDL_PIXELTYPE(format) == SDL_PixelType_Index1) || \
+ (SDL_PIXELTYPE(format) == SDL_PixelType_Index4) || \
+ (SDL_PIXELTYPE(format) == SDL_PixelType_Index8))
+
+#define SDL_ISPIXELFORMAT_FOURCC(format) \
+ ((format) && !((format) & 0x80000000))
+
+enum
+{
+ SDL_PixelFormat_Unknown,
+ SDL_PixelFormat_Index1LSB =
+ SDL_DEFINE_PIXELFORMAT(SDL_PixelType_Index1, SDL_BitmapOrder_1234, 0,
+ 1, 0),
+ SDL_PixelFormat_Index1MSB =
+ SDL_DEFINE_PIXELFORMAT(SDL_PixelType_Index1, SDL_BitmapOrder_4321, 0,
+ 1, 0),
+ SDL_PixelFormat_Index4LSB =
+ SDL_DEFINE_PIXELFORMAT(SDL_PixelType_Index4, SDL_BitmapOrder_1234, 0,
+ 2, 0),
+ SDL_PixelFormat_Index4MSB =
+ SDL_DEFINE_PIXELFORMAT(SDL_PixelType_Index4, SDL_BitmapOrder_4321, 0,
+ 2, 0),
+ SDL_PixelFormat_Index8 =
+ SDL_DEFINE_PIXELFORMAT(SDL_PixelType_Index8, 0, 0, 8, 1),
+ SDL_PixelFormat_RGB332 =
+ SDL_DEFINE_PIXELFORMAT(SDL_PixelType_Packed8, SDL_PackedOrder_XRGB,
+ SDL_PackedLayout_332, 8, 1),
+ SDL_PixelFormat_RGB444 =
+ SDL_DEFINE_PIXELFORMAT(SDL_PixelType_Packed16, SDL_PackedOrder_XRGB,
+ SDL_PackedLayout_4444, 12, 2),
+ SDL_PixelFormat_RGB555 =
+ SDL_DEFINE_PIXELFORMAT(SDL_PixelType_Packed16, SDL_PackedOrder_XRGB,
+ SDL_PackedLayout_1555, 15, 2),
+ SDL_PixelFormat_ARGB4444 =
+ SDL_DEFINE_PIXELFORMAT(SDL_PixelType_Packed16, SDL_PackedOrder_ARGB,
+ SDL_PackedLayout_4444, 16, 2),
+ SDL_PixelFormat_ARGB1555 =
+ SDL_DEFINE_PIXELFORMAT(SDL_PixelType_Packed16, SDL_PackedOrder_ARGB,
+ SDL_PackedLayout_1555, 16, 2),
+ SDL_PixelFormat_RGB565 =
+ SDL_DEFINE_PIXELFORMAT(SDL_PixelType_Packed16, SDL_PackedOrder_XRGB,
+ SDL_PackedLayout_565, 16, 2),
+ SDL_PixelFormat_RGB24 =
+ SDL_DEFINE_PIXELFORMAT(SDL_PixelType_ArrayU8, SDL_ArrayOrder_RGB, 0,
+ 24, 3),
+ SDL_PixelFormat_BGR24 =
+ SDL_DEFINE_PIXELFORMAT(SDL_PixelType_ArrayU8, SDL_ArrayOrder_BGR, 0,
+ 24, 3),
+ SDL_PixelFormat_RGB888 =
+ SDL_DEFINE_PIXELFORMAT(SDL_PixelType_Packed32, SDL_PackedOrder_XRGB,
+ SDL_PackedLayout_8888, 24, 4),
+ SDL_PixelFormat_BGR888 =
+ SDL_DEFINE_PIXELFORMAT(SDL_PixelType_Packed32, SDL_PackedOrder_XBGR,
+ SDL_PackedLayout_8888, 24, 4),
+ SDL_PixelFormat_ARGB8888 =
+ SDL_DEFINE_PIXELFORMAT(SDL_PixelType_Packed32, SDL_PackedOrder_ARGB,
+ SDL_PackedLayout_8888, 32, 4),
+ SDL_PixelFormat_RGBA8888 =
+ SDL_DEFINE_PIXELFORMAT(SDL_PixelType_Packed32, SDL_PackedOrder_RGBA,
+ SDL_PackedLayout_8888, 32, 4),
+ SDL_PixelFormat_ABGR8888 =
+ SDL_DEFINE_PIXELFORMAT(SDL_PixelType_Packed32, SDL_PackedOrder_ABGR,
+ SDL_PackedLayout_8888, 32, 4),
+ SDL_PixelFormat_BGRA8888 =
+ SDL_DEFINE_PIXELFORMAT(SDL_PixelType_Packed32, SDL_PackedOrder_BGRA,
+ SDL_PackedLayout_8888, 32, 4),
+ SDL_PixelFormat_ARGB2101010 =
+ SDL_DEFINE_PIXELFORMAT(SDL_PixelType_Packed32, SDL_PackedOrder_ARGB,
+ SDL_PackedLayout_2101010, 32, 4),
+
+ SDL_PixelFormat_YV12 = /* Planar mode: Y + V + U (3 planes) */
+ SDL_DEFINE_PIXELFOURCC('Y', 'V', '1', '2'),
+ SDL_PixelFormat_IYUV = /* Planar mode: Y + U + V (3 planes) */
+ SDL_DEFINE_PIXELFOURCC('I', 'Y', 'U', 'V'),
+ SDL_PixelFormat_YUY2 = /* Packed mode: Y0+U0+Y1+V0 (1 plane) */
+ SDL_DEFINE_PIXELFOURCC('Y', 'U', 'Y', '2'),
+ SDL_PixelFormat_UYVY = /* Packed mode: U0+Y0+V0+Y1 (1 plane) */
+ SDL_DEFINE_PIXELFOURCC('U', 'Y', 'V', 'Y'),
+ SDL_PixelFormat_YVYU = /* Packed mode: Y0+V0+Y1+U0 (1 plane) */
+ SDL_DEFINE_PIXELFOURCC('Y', 'V', 'Y', 'U'),
+};
+
+typedef struct SDL_Color
+{
+ Uint8 r;
+ Uint8 g;
+ Uint8 b;
+ Uint8 unused;
+} SDL_Color;
+#define SDL_Colour SDL_Color
+
+typedef struct SDL_Palette SDL_Palette;
+typedef int (*SDL_PaletteChangedFunc) (void *userdata, SDL_Palette * palette);
+
+typedef struct SDL_PaletteWatch
+{
+ SDL_PaletteChangedFunc callback;
+ void *userdata;
+ struct SDL_PaletteWatch *next;
+} SDL_PaletteWatch;
+
+struct SDL_Palette
+{
+ int ncolors;
+ SDL_Color *colors;
+
+ int refcount;
+ SDL_PaletteWatch *watch;
+};
+
+/* Everything in the pixel format structure is read-only */
+typedef struct SDL_PixelFormat
+{
+ SDL_Palette *palette;
+ Uint8 BitsPerPixel;
+ Uint8 BytesPerPixel;
+ Uint8 Rloss;
+ Uint8 Gloss;
+ Uint8 Bloss;
+ Uint8 Aloss;
+ Uint8 Rshift;
+ Uint8 Gshift;
+ Uint8 Bshift;
+ Uint8 Ashift;
+ Uint32 Rmask;
+ Uint32 Gmask;
+ Uint32 Bmask;
+ Uint32 Amask;
+
+ /* RGB color key information */
+ Uint32 colorkey;
+ /* Alpha value information (per-surface alpha) */
+ Uint8 alpha;
+} SDL_PixelFormat;
+
+/**
+ * \fn SDL_bool SDL_PixelFormatEnumToMasks(Uint32 format, int *bpp, Uint32 * Rmask, Uint32 * Gmask, Uint32 * Bmask, Uint32 * Amask)
+ *
+ * \brief Convert one of the enumerated pixel formats to a bpp and RGBA masks.
+ *
+ * \return SDL_TRUE, or SDL_FALSE if the conversion wasn't possible.
+ *
+ * \sa SDL_MasksToPixelFormatEnum()
+ */
+extern DECLSPEC SDL_bool SDLCALL SDL_PixelFormatEnumToMasks(Uint32 format,
+ int *bpp,
+ Uint32 * Rmask,
+ Uint32 * Gmask,
+ Uint32 * Bmask,
+ Uint32 * Amask);
+
+/**
+ * \fn Uint32 SDL_MasksToPixelFormatEnum(int bpp, Uint32 Rmask, Uint32 Gmask, Uint32 Bmask, Uint32 Amask)
+ *
+ * \brief Convert a bpp and RGBA masks to an enumerated pixel format.
+ *
+ * \return The pixel format, or SDL_PixelFormat_Unknown if the conversion wasn't possible.
+ *
+ * \sa SDL_PixelFormatEnumToMasks()
+ */
+extern DECLSPEC Uint32 SDLCALL SDL_MasksToPixelFormatEnum(int bpp,
+ Uint32 Rmask,
+ Uint32 Gmask,
+ Uint32 Bmask,
+ Uint32 Amask);
+
+/**
+ * \fn SDL_Palette *SDL_AllocPalette(int ncolors)
+ *
+ * \brief Create a palette structure with the specified number of color entries.
+ *
+ * \return A new palette, or NULL if there wasn't enough memory
+ *
+ * \note The palette entries are initialized to white.
+ *
+ * \sa SDL_FreePalette()
+ */
+extern DECLSPEC SDL_Palette *SDLCALL SDL_AllocPalette(int ncolors);
+
+/**
+ * \fn int SDL_AddPaletteWatch(SDL_Palette *palette, SDL_PaletteChangedFunc callback, void *userdata)
+ *
+ * \brief Add a callback function which is called when the palette changes.
+ *
+ * \sa SDL_DelPaletteWatch()
+ */
+extern DECLSPEC int SDLCALL SDL_AddPaletteWatch(SDL_Palette * palette,
+ SDL_PaletteChangedFunc
+ callback, void *userdata);
+
+/**
+ * \fn void SDL_DelPaletteWatch(SDL_Palette *palette, SDL_PaletteChangedFunc callback, void *userdata)
+ *
+ * \brief Remove a callback function previously added with SDL_AddPaletteWatch()
+ *
+ * \sa SDL_AddPaletteWatch()
+ */
+extern DECLSPEC void SDLCALL SDL_DelPaletteWatch(SDL_Palette * palette,
+ SDL_PaletteChangedFunc
+ callback, void *userdata);
+
+/**
+ * \fn int SDL_SetPaletteColors(SDL_Palette *palette, const SDL_Colors *colors, int firstcolor, int numcolors)
+ *
+ * \brief Set a range of colors in a palette.
+ *
+ * \param palette The palette to modify
+ * \param colors An array of colors to copy into the palette
+ * \param firstcolor The index of the first palette entry to modify
+ * \param ncolors The number of entries to modify
+ *
+ * \return 0 on success, or -1 if not all of the colors could be set
+ */
+extern DECLSPEC int SDLCALL SDL_SetPaletteColors(SDL_Palette * palette,
+ const SDL_Color * colors,
+ int firstcolor, int ncolors);
+
+/**
+ * \fn void SDL_FreePalette(SDL_Palette *palette)
+ *
+ * \brief Free a palette created with SDL_AllocPalette()
+ *
+ * \sa SDL_AllocPalette()
+ */
+extern DECLSPEC void SDLCALL SDL_FreePalette(SDL_Palette * palette);
+
+/* Ends C function definitions when using C++ */
+#ifdef __cplusplus
+/* *INDENT-OFF* */
+}
+/* *INDENT-ON* */
+#endif
+#include "close_code.h"
+
+#endif /* _SDL_pixels_h */
+
+/* vi: set ts=4 sw=4 expandtab: */
--- a/include/SDL_quit.h Thu Jul 06 18:01:37 2006 +0000
+++ b/include/SDL_quit.h Mon Jul 10 21:04:37 2006 +0000
@@ -20,7 +20,11 @@
slouken@libsdl.org
*/
-/* Include file for SDL quit event handling */
+/**
+ * \file SDL_quit.h
+ *
+ * Include file for SDL quit event handling
+ */
#ifndef _SDL_quit_h
#define _SDL_quit_h
--- a/include/SDL_rwops.h Thu Jul 06 18:01:37 2006 +0000
+++ b/include/SDL_rwops.h Mon Jul 10 21:04:37 2006 +0000
@@ -20,9 +20,12 @@
slouken@libsdl.org
*/
-/* This file provides a general interface for SDL to read and write
- data sources. It can easily be extended to files, memory, etc.
-*/
+/**
+ * \file SDL_rwops.h
+ *
+ * This file provides a general interface for SDL to read and write
+ * data sources. It can easily be extended to files, memory, etc.
+ */
#ifndef _SDL_rwops_h
#define _SDL_rwops_h
@@ -33,77 +36,89 @@
#include "begin_code.h"
/* Set up for C function definitions, even when using C++ */
#ifdef __cplusplus
+/* *INDENT-OFF* */
extern "C" {
+/* *INDENT-ON* */
#endif
/* This is the read/write operation structure -- very basic */
-typedef struct SDL_RWops {
- /* Seek to 'offset' relative to whence, one of stdio's whence values:
- SEEK_SET, SEEK_CUR, SEEK_END
- Returns the final offset in the data source.
- */
- int (SDLCALL *seek)(struct SDL_RWops *context, int offset, int whence);
+typedef struct SDL_RWops
+{
+ /* Seek to 'offset' relative to whence, one of stdio's whence values:
+ SEEK_SET, SEEK_CUR, SEEK_END
+ Returns the final offset in the data source.
+ */
+ int (SDLCALL * seek) (struct SDL_RWops * context, int offset, int whence);
- /* Read up to 'num' objects each of size 'objsize' from the data
- source to the area pointed at by 'ptr'.
- Returns the number of objects read, or -1 if the read failed.
- */
- int (SDLCALL *read)(struct SDL_RWops *context, void *ptr, int size, int maxnum);
+ /* Read up to 'num' objects each of size 'objsize' from the data
+ source to the area pointed at by 'ptr'.
+ Returns the number of objects read, or -1 if the read failed.
+ */
+ int (SDLCALL * read) (struct SDL_RWops * context, void *ptr, int size,
+ int maxnum);
- /* Write exactly 'num' objects each of size 'objsize' from the area
- pointed at by 'ptr' to data source.
- Returns 'num', or -1 if the write failed.
- */
- int (SDLCALL *write)(struct SDL_RWops *context, const void *ptr, int size, int num);
+ /* Write exactly 'num' objects each of size 'objsize' from the area
+ pointed at by 'ptr' to data source.
+ Returns 'num', or -1 if the write failed.
+ */
+ int (SDLCALL * write) (struct SDL_RWops * context, const void *ptr,
+ int size, int num);
- /* Close and free an allocated SDL_FSops structure */
- int (SDLCALL *close)(struct SDL_RWops *context);
+ /* Close and free an allocated SDL_FSops structure */
+ int (SDLCALL * close) (struct SDL_RWops * context);
- Uint32 type;
- union {
+ Uint32 type;
+ union
+ {
#ifdef __WIN32__
- struct {
- int append;
- void* h;
- } win32io;
+ struct
+ {
+ int append;
+ void *h;
+ } win32io;
#endif
-#ifdef HAVE_STDIO_H
- struct {
- int autoclose;
- FILE *fp;
- } stdio;
+#ifdef HAVE_STDIO_H
+ struct
+ {
+ int autoclose;
+ FILE *fp;
+ } stdio;
#endif
- struct {
- Uint8 *base;
- Uint8 *here;
- Uint8 *stop;
- } mem;
- struct {
- void *data1;
- } unknown;
- } hidden;
+ struct
+ {
+ Uint8 *base;
+ Uint8 *here;
+ Uint8 *stop;
+ } mem;
+ struct
+ {
+ void *data1;
+ } unknown;
+ } hidden;
} SDL_RWops;
/* Functions to create SDL_RWops structures from various data sources */
-extern DECLSPEC SDL_RWops * SDLCALL SDL_RWFromFile(const char *file, const char *mode);
+extern DECLSPEC SDL_RWops *SDLCALL SDL_RWFromFile(const char *file,
+ const char *mode);
#ifdef HAVE_STDIO_H
-extern DECLSPEC SDL_RWops * SDLCALL SDL_RWFromFP(FILE *fp, int autoclose);
+extern DECLSPEC SDL_RWops *SDLCALL SDL_RWFromFP(FILE * fp, int autoclose);
#endif
-extern DECLSPEC SDL_RWops * SDLCALL SDL_RWFromMem(void *mem, int size);
-extern DECLSPEC SDL_RWops * SDLCALL SDL_RWFromConstMem(const void *mem, int size);
+extern DECLSPEC SDL_RWops *SDLCALL SDL_RWFromMem(void *mem, int size);
+extern DECLSPEC SDL_RWops *SDLCALL SDL_RWFromConstMem(const void *mem,
+ int size);
-extern DECLSPEC SDL_RWops * SDLCALL SDL_AllocRW(void);
-extern DECLSPEC void SDLCALL SDL_FreeRW(SDL_RWops *area);
+extern DECLSPEC SDL_RWops *SDLCALL SDL_AllocRW(void);
+extern DECLSPEC void SDLCALL SDL_FreeRW(SDL_RWops * area);
-#define RW_SEEK_SET 0 /* Seek from the beginning of data */
-#define RW_SEEK_CUR 1 /* Seek relative to current read point */
-#define RW_SEEK_END 2 /* Seek relative to the end of data */
+#define RW_SEEK_SET 0 /* Seek from the beginning of data */
+#define RW_SEEK_CUR 1 /* Seek relative to current read point */
+#define RW_SEEK_END 2 /* Seek relative to the end of data */
/* Macros to easily read and write from an SDL_RWops structure */
#define SDL_RWseek(ctx, offset, whence) (ctx)->seek(ctx, offset, whence)
@@ -114,26 +129,30 @@
/* Read an item of the specified endianness and return in native format */
-extern DECLSPEC Uint16 SDLCALL SDL_ReadLE16(SDL_RWops *src);
-extern DECLSPEC Uint16 SDLCALL SDL_ReadBE16(SDL_RWops *src);
-extern DECLSPEC Uint32 SDLCALL SDL_ReadLE32(SDL_RWops *src);
-extern DECLSPEC Uint32 SDLCALL SDL_ReadBE32(SDL_RWops *src);
-extern DECLSPEC Uint64 SDLCALL SDL_ReadLE64(SDL_RWops *src);
-extern DECLSPEC Uint64 SDLCALL SDL_ReadBE64(SDL_RWops *src);
+extern DECLSPEC Uint16 SDLCALL SDL_ReadLE16(SDL_RWops * src);
+extern DECLSPEC Uint16 SDLCALL SDL_ReadBE16(SDL_RWops * src);
+extern DECLSPEC Uint32 SDLCALL SDL_ReadLE32(SDL_RWops * src);
+extern DECLSPEC Uint32 SDLCALL SDL_ReadBE32(SDL_RWops * src);
+extern DECLSPEC Uint64 SDLCALL SDL_ReadLE64(SDL_RWops * src);
+extern DECLSPEC Uint64 SDLCALL SDL_ReadBE64(SDL_RWops * src);
/* Write an item of native format to the specified endianness */
-extern DECLSPEC int SDLCALL SDL_WriteLE16(SDL_RWops *dst, Uint16 value);
-extern DECLSPEC int SDLCALL SDL_WriteBE16(SDL_RWops *dst, Uint16 value);
-extern DECLSPEC int SDLCALL SDL_WriteLE32(SDL_RWops *dst, Uint32 value);
-extern DECLSPEC int SDLCALL SDL_WriteBE32(SDL_RWops *dst, Uint32 value);
-extern DECLSPEC int SDLCALL SDL_WriteLE64(SDL_RWops *dst, Uint64 value);
-extern DECLSPEC int SDLCALL SDL_WriteBE64(SDL_RWops *dst, Uint64 value);
+extern DECLSPEC int SDLCALL SDL_WriteLE16(SDL_RWops * dst, Uint16 value);
+extern DECLSPEC int SDLCALL SDL_WriteBE16(SDL_RWops * dst, Uint16 value);
+extern DECLSPEC int SDLCALL SDL_WriteLE32(SDL_RWops * dst, Uint32 value);
+extern DECLSPEC int SDLCALL SDL_WriteBE32(SDL_RWops * dst, Uint32 value);
+extern DECLSPEC int SDLCALL SDL_WriteLE64(SDL_RWops * dst, Uint64 value);
+extern DECLSPEC int SDLCALL SDL_WriteBE64(SDL_RWops * dst, Uint64 value);
/* Ends C function definitions when using C++ */
#ifdef __cplusplus
+/* *INDENT-OFF* */
}
+/* *INDENT-ON* */
#endif
#include "close_code.h"
#endif /* _SDL_rwops_h */
+
+/* vi: set ts=4 sw=4 expandtab: */
--- a/include/SDL_stdinc.h Thu Jul 06 18:01:37 2006 +0000
+++ b/include/SDL_stdinc.h Mon Jul 10 21:04:37 2006 +0000
@@ -20,7 +20,11 @@
slouken@libsdl.org
*/
-/* This is a general header that includes C language support */
+/**
+ * \file SDL_stdinc.h
+ *
+ * This is a general header that includes C language support
+ */
#ifndef _SDL_stdinc_h
#define _SDL_stdinc_h
@@ -77,33 +81,66 @@
#define SDL_TABLESIZE(table) SDL_arraysize(table)
/* Basic data types */
-typedef enum SDL_bool {
- SDL_FALSE = 0,
- SDL_TRUE = 1
+typedef enum SDL_bool
+{
+ SDL_FALSE = 0,
+ SDL_TRUE = 1
} SDL_bool;
-typedef int8_t Sint8;
-typedef uint8_t Uint8;
-typedef int16_t Sint16;
-typedef uint16_t Uint16;
-typedef int32_t Sint32;
-typedef uint32_t Uint32;
+/**
+ * \typedef Sint8
+ * \brief A signed 8-bit integer type.
+ */
+typedef int8_t Sint8;
+/**
+ * \typedef Uint8
+ * \brief An unsigned 8-bit integer type.
+ */
+typedef uint8_t Uint8;
+/**
+ * \typedef Sint16
+ * \brief A signed 16-bit integer type.
+ */
+typedef int16_t Sint16;
+/**
+ * \typedef Uint16
+ * \brief An unsigned 16-bit integer type.
+ */
+typedef uint16_t Uint16;
+/**
+ * \typedef Sint32
+ * \brief A signed 32-bit integer type.
+ */
+typedef int32_t Sint32;
+/**
+ * \typedef Uint32
+ * \brief An unsigned 32-bit integer type.
+ */
+typedef uint32_t Uint32;
#ifdef SDL_HAS_64BIT_TYPE
-typedef int64_t Sint64;
-typedef uint64_t Uint64;
+/**
+ * \typedef Sint64
+ * \brief A signed 64-bit integer type.
+ * \warning On platforms without any sort of 64-bit datatype, this is equivalent to Sint32!
+ */
+typedef int64_t Sint64;
+/**
+ * \typedef Uint64
+ * \brief An unsigned 64-bit integer type.
+ * \warning On platforms without any sort of 64-bit datatype, this is equivalent to Uint32!
+ */
+typedef uint64_t Uint64;
#else
/* This is really just a hack to prevent the compiler from complaining */
-typedef struct {
- Uint32 hi;
- Uint32 lo;
-} Uint64, Sint64;
+typdef Sint32 Sint64;
+typdef Uint32 Uint32;
#endif
/* Make sure the types really have the right sizes */
#define SDL_COMPILE_TIME_ASSERT(name, x) \
typedef int SDL_dummy_ ## name[(x) * 2 - 1]
-
+#ifndef DOXYGEN_SHOULD_IGNORE_THIS
SDL_COMPILE_TIME_ASSERT(uint8, sizeof(Uint8) == 1);
SDL_COMPILE_TIME_ASSERT(sint8, sizeof(Sint8) == 1);
SDL_COMPILE_TIME_ASSERT(uint16, sizeof(Uint16) == 2);
@@ -112,6 +149,7 @@
SDL_COMPILE_TIME_ASSERT(sint32, sizeof(Sint32) == 4);
SDL_COMPILE_TIME_ASSERT(uint64, sizeof(Uint64) == 8);
SDL_COMPILE_TIME_ASSERT(sint64, sizeof(Sint64) == 8);
+#endif /* DOXYGEN_SHOULD_IGNORE_THIS */
/* Check to make sure enums are the size of ints, for structure packing.
For both Watcom C/C++ and Borland C/C++ the compiler option that makes
@@ -123,35 +161,39 @@
#pragma enumsalwaysint on
#endif
-typedef enum {
- DUMMY_ENUM_VALUE
+#ifndef DOXYGEN_SHOULD_IGNORE_THIS
+typedef enum
+{
+ DUMMY_ENUM_VALUE
} SDL_DUMMY_ENUM;
SDL_COMPILE_TIME_ASSERT(enum, sizeof(SDL_DUMMY_ENUM) == sizeof(int));
-
+#endif /* DOXYGEN_SHOULD_IGNORE_THIS */
#include "begin_code.h"
/* Set up for C function definitions, even when using C++ */
#ifdef __cplusplus
+/* *INDENT-OFF* */
extern "C" {
+/* *INDENT-ON* */
#endif
#ifdef HAVE_MALLOC
#define SDL_malloc malloc
#else
-extern DECLSPEC void * SDLCALL SDL_malloc(size_t size);
+extern DECLSPEC void *SDLCALL SDL_malloc(size_t size);
#endif
#ifdef HAVE_CALLOC
#define SDL_calloc calloc
#else
-extern DECLSPEC void * SDLCALL SDL_calloc(size_t nmemb, size_t size);
+extern DECLSPEC void *SDLCALL SDL_calloc(size_t nmemb, size_t size);
#endif
#ifdef HAVE_REALLOC
#define SDL_realloc realloc
#else
-extern DECLSPEC void * SDLCALL SDL_realloc(void *mem, size_t size);
+extern DECLSPEC void *SDLCALL SDL_realloc(void *mem, size_t size);
#endif
#ifdef HAVE_FREE
@@ -173,11 +215,11 @@
# elif defined(__DMC__)
# include <stdlib.h>
# elif defined(__AIX__)
- #pragma alloca
+#pragma alloca
# elif defined(__MRC__)
- void *alloca (unsigned);
+void *alloca(unsigned);
# else
- char *alloca ();
+char *alloca();
# endif
#endif
#ifdef HAVE_ALLOCA
@@ -191,7 +233,7 @@
#ifdef HAVE_GETENV
#define SDL_getenv getenv
#else
-extern DECLSPEC char * SDLCALL SDL_getenv(const char *name);
+extern DECLSPEC char *SDLCALL SDL_getenv(const char *name);
#endif
#ifdef HAVE_PUTENV
@@ -204,7 +246,8 @@
#define SDL_qsort qsort
#else
extern DECLSPEC void SDLCALL SDL_qsort(void *base, size_t nmemb, size_t size,
- int (*compare)(const void *, const void *));
+ int (*compare) (const void *,
+ const void *));
#endif
#ifdef HAVE_ABS
@@ -231,8 +274,10 @@
#ifdef HAVE_MEMSET
#define SDL_memset memset
#else
-extern DECLSPEC void * SDLCALL SDL_memset(void *dst, int c, size_t len);
+extern DECLSPEC void *SDLCALL SDL_memset(void *dst, int c, size_t len);
#endif
+#define SDL_zero(x) SDL_memset(&(x), 0, sizeof((x)))
+#define SDL_zerop(x) SDL_memset((x), 0, sizeof(*(x)))
#if defined(__GNUC__) && defined(i386)
#define SDL_memset4(dst, val, len) \
@@ -288,7 +333,8 @@
#elif defined(HAVE_BCOPY)
#define SDL_memcpy(d, s, n) bcopy((s), (d), (n))
#else
-extern DECLSPEC void * SDLCALL SDL_memcpy(void *dst, const void *src, size_t len);
+extern DECLSPEC void *SDLCALL SDL_memcpy(void *dst, const void *src,
+ size_t len);
#endif
#endif
@@ -335,7 +381,8 @@
} while(0)
#endif
#ifndef SDL_revcpy
-extern DECLSPEC void * SDLCALL SDL_revcpy(void *dst, const void *src, size_t len);
+extern DECLSPEC void *SDLCALL SDL_revcpy(void *dst, const void *src,
+ size_t len);
#endif
#ifdef HAVE_MEMMOVE
@@ -356,7 +403,8 @@
#ifdef HAVE_MEMCMP
#define SDL_memcmp memcmp
#else
-extern DECLSPEC int SDLCALL SDL_memcmp(const void *s1, const void *s2, size_t len);
+extern DECLSPEC int SDLCALL SDL_memcmp(const void *s1, const void *s2,
+ size_t len);
#endif
#ifdef HAVE_STRLEN
@@ -368,37 +416,39 @@
#ifdef HAVE_STRLCPY
#define SDL_strlcpy strlcpy
#else
-extern DECLSPEC size_t SDLCALL SDL_strlcpy(char *dst, const char *src, size_t maxlen);
+extern DECLSPEC size_t SDLCALL SDL_strlcpy(char *dst, const char *src,
+ size_t maxlen);
#endif
#ifdef HAVE_STRLCAT
#define SDL_strlcat strlcat
#else
-extern DECLSPEC size_t SDLCALL SDL_strlcat(char *dst, const char *src, size_t maxlen);
+extern DECLSPEC size_t SDLCALL SDL_strlcat(char *dst, const char *src,
+ size_t maxlen);
#endif
#ifdef HAVE_STRDUP
#define SDL_strdup strdup
#else
-extern DECLSPEC char * SDLCALL SDL_strdup(const char *string);
+extern DECLSPEC char *SDLCALL SDL_strdup(const char *string);
#endif
#ifdef HAVE__STRREV
#define SDL_strrev _strrev
#else
-extern DECLSPEC char * SDLCALL SDL_strrev(char *string);
+extern DECLSPEC char *SDLCALL SDL_strrev(char *string);
#endif
#ifdef HAVE__STRUPR
#define SDL_strupr _strupr
#else
-extern DECLSPEC char * SDLCALL SDL_strupr(char *string);
+extern DECLSPEC char *SDLCALL SDL_strupr(char *string);
#endif
#ifdef HAVE__STRLWR
#define SDL_strlwr _strlwr
#else
-extern DECLSPEC char * SDLCALL SDL_strlwr(char *string);
+extern DECLSPEC char *SDLCALL SDL_strlwr(char *string);
#endif
#ifdef HAVE_STRCHR
@@ -406,7 +456,7 @@
#elif defined(HAVE_INDEX)
#define SDL_strchr index
#else
-extern DECLSPEC char * SDLCALL SDL_strchr(const char *string, int c);
+extern DECLSPEC char *SDLCALL SDL_strchr(const char *string, int c);
#endif
#ifdef HAVE_STRRCHR
@@ -414,13 +464,14 @@
#elif defined(HAVE_RINDEX)
#define SDL_strrchr rindex
#else
-extern DECLSPEC char * SDLCALL SDL_strrchr(const char *string, int c);
+extern DECLSPEC char *SDLCALL SDL_strrchr(const char *string, int c);
#endif
#ifdef HAVE_STRSTR
#define SDL_strstr strstr
#else
-extern DECLSPEC char * SDLCALL SDL_strstr(const char *haystack, const char *needle);
+extern DECLSPEC char *SDLCALL SDL_strstr(const char *haystack,
+ const char *needle);
#endif
#ifdef HAVE_ITOA
@@ -432,7 +483,7 @@
#ifdef HAVE__LTOA
#define SDL_ltoa _ltoa
#else
-extern DECLSPEC char * SDLCALL SDL_ltoa(long value, char *string, int radix);
+extern DECLSPEC char *SDLCALL SDL_ltoa(long value, char *string, int radix);
#endif
#ifdef HAVE__UITOA
@@ -444,19 +495,22 @@
#ifdef HAVE__ULTOA
#define SDL_ultoa _ultoa
#else
-extern DECLSPEC char * SDLCALL SDL_ultoa(unsigned long value, char *string, int radix);
+extern DECLSPEC char *SDLCALL SDL_ultoa(unsigned long value, char *string,
+ int radix);
#endif
#ifdef HAVE_STRTOL
#define SDL_strtol strtol
#else
-extern DECLSPEC long SDLCALL SDL_strtol(const char *string, char **endp, int base);
+extern DECLSPEC long SDLCALL SDL_strtol(const char *string, char **endp,
+ int base);
#endif
#ifdef HAVE_STRTOUL
#define SDL_strtoul strtoul
#else
-extern DECLSPEC unsigned long SDLCALL SDL_strtoul(const char *string, char **endp, int base);
+extern DECLSPEC unsigned long SDLCALL SDL_strtoul(const char *string,
+ char **endp, int base);
#endif
#ifdef SDL_HAS_64BIT_TYPE
@@ -464,25 +518,29 @@
#ifdef HAVE__I64TOA
#define SDL_lltoa _i64toa
#else
-extern DECLSPEC char* SDLCALL SDL_lltoa(Sint64 value, char *string, int radix);
+extern DECLSPEC char *SDLCALL SDL_lltoa(Sint64 value, char *string,
+ int radix);
#endif
#ifdef HAVE__UI64TOA
#define SDL_ulltoa _ui64toa
#else
-extern DECLSPEC char* SDLCALL SDL_ulltoa(Uint64 value, char *string, int radix);
+extern DECLSPEC char *SDLCALL SDL_ulltoa(Uint64 value, char *string,
+ int radix);
#endif
#ifdef HAVE_STRTOLL
#define SDL_strtoll strtoll
#else
-extern DECLSPEC Sint64 SDLCALL SDL_strtoll(const char *string, char **endp, int base);
+extern DECLSPEC Sint64 SDLCALL SDL_strtoll(const char *string, char **endp,
+ int base);
#endif
#ifdef HAVE_STRTOULL
#define SDL_strtoull strtoull
#else
-extern DECLSPEC Uint64 SDLCALL SDL_strtoull(const char *string, char **endp, int base);
+extern DECLSPEC Uint64 SDLCALL SDL_strtoull(const char *string, char **endp,
+ int base);
#endif
#endif /* SDL_HAS_64BIT_TYPE */
@@ -514,7 +572,8 @@
#ifdef HAVE_STRNCMP
#define SDL_strncmp strncmp
#else
-extern DECLSPEC int SDLCALL SDL_strncmp(const char *str1, const char *str2, size_t maxlen);
+extern DECLSPEC int SDLCALL SDL_strncmp(const char *str1, const char *str2,
+ size_t maxlen);
#endif
#ifdef HAVE_STRCASECMP
@@ -522,7 +581,8 @@
#elif defined(HAVE__STRICMP)
#define SDL_strcasecmp _stricmp
#else
-extern DECLSPEC int SDLCALL SDL_strcasecmp(const char *str1, const char *str2);
+extern DECLSPEC int SDLCALL SDL_strcasecmp(const char *str1,
+ const char *str2);
#endif
#ifdef HAVE_STRNCASECMP
@@ -530,25 +590,29 @@
#elif defined(HAVE__STRNICMP)
#define SDL_strncasecmp _strnicmp
#else
-extern DECLSPEC int SDLCALL SDL_strncasecmp(const char *str1, const char *str2, size_t maxlen);
+extern DECLSPEC int SDLCALL SDL_strncasecmp(const char *str1,
+ const char *str2, size_t maxlen);
#endif
#ifdef HAVE_SSCANF
#define SDL_sscanf sscanf
#else
-extern DECLSPEC int SDLCALL SDL_sscanf(const char *text, const char *fmt, ...);
+extern DECLSPEC int SDLCALL SDL_sscanf(const char *text, const char *fmt,
+ ...);
#endif
#ifdef HAVE_SNPRINTF
#define SDL_snprintf snprintf
#else
-extern DECLSPEC int SDLCALL SDL_snprintf(char *text, size_t maxlen, const char *fmt, ...);
+extern DECLSPEC int SDLCALL SDL_snprintf(char *text, size_t maxlen,
+ const char *fmt, ...);
#endif
#ifdef HAVE_VSNPRINTF
#define SDL_vsnprintf vsnprintf
#else
-extern DECLSPEC int SDLCALL SDL_vsnprintf(char *text, size_t maxlen, const char *fmt, va_list ap);
+extern DECLSPEC int SDLCALL SDL_vsnprintf(char *text, size_t maxlen,
+ const char *fmt, va_list ap);
#endif
/* The SDL implementation of iconv() returns these error codes */
@@ -561,17 +625,25 @@
#define SDL_iconv_t iconv_t
#define SDL_iconv_open iconv_open
#define SDL_iconv_close iconv_close
-extern DECLSPEC size_t SDLCALL SDL_iconv(SDL_iconv_t cd, char **inbuf, size_t *inbytesleft, char **outbuf, size_t *outbytesleft);
+extern DECLSPEC size_t SDLCALL SDL_iconv(SDL_iconv_t cd, char **inbuf,
+ size_t * inbytesleft, char **outbuf,
+ size_t * outbytesleft);
#else
typedef struct _SDL_iconv_t *SDL_iconv_t;
-extern DECLSPEC SDL_iconv_t SDLCALL SDL_iconv_open(const char *tocode, const char *fromcode);
+extern DECLSPEC SDL_iconv_t SDLCALL SDL_iconv_open(const char *tocode,
+ const char *fromcode);
extern DECLSPEC int SDLCALL SDL_iconv_close(SDL_iconv_t cd);
-extern DECLSPEC size_t SDLCALL SDL_iconv(SDL_iconv_t cd, char **inbuf, size_t *inbytesleft, char **outbuf, size_t *outbytesleft);
+extern DECLSPEC size_t SDLCALL SDL_iconv(SDL_iconv_t cd, char **inbuf,
+ size_t * inbytesleft, char **outbuf,
+ size_t * outbytesleft);
#endif
/* This function converts a string between encodings in one pass, returning a
string that must be freed with SDL_free() or NULL on error.
*/
-extern DECLSPEC char * SDLCALL SDL_iconv_string(const char *tocode, const char *fromcode, char *inbuf, size_t inbytesleft);
+extern DECLSPEC char *SDLCALL SDL_iconv_string(const char *tocode,
+ const char *fromcode,
+ char *inbuf,
+ size_t inbytesleft);
#define SDL_iconv_utf8_ascii(S) SDL_iconv_string("ASCII", "UTF-8", S, SDL_strlen(S)+1)
#define SDL_iconv_utf8_latin1(S) SDL_iconv_string("LATIN1", "UTF-8", S, SDL_strlen(S)+1)
#define SDL_iconv_utf8_ucs2(S) (Uint16 *)SDL_iconv_string("UCS-2", "UTF-8", S, SDL_strlen(S)+1)
@@ -579,8 +651,12 @@
/* Ends C function definitions when using C++ */
#ifdef __cplusplus
+/* *INDENT-OFF* */
}
+/* *INDENT-ON* */
#endif
#include "close_code.h"
#endif /* _SDL_stdinc_h */
+
+/* vi: set ts=4 sw=4 expandtab: */
--- a/include/SDL_syswm.h Thu Jul 06 18:01:37 2006 +0000
+++ b/include/SDL_syswm.h Mon Jul 10 21:04:37 2006 +0000
@@ -20,19 +20,26 @@
slouken@libsdl.org
*/
-/* Include file for SDL custom system window manager hooks */
+/**
+ * \file SDL_syswm.h
+ *
+ * Include file for SDL custom system window manager hooks
+ */
#ifndef _SDL_syswm_h
#define _SDL_syswm_h
#include "SDL_stdinc.h"
#include "SDL_error.h"
+#include "SDL_video.h"
#include "SDL_version.h"
#include "begin_code.h"
/* Set up for C function definitions, even when using C++ */
#ifdef __cplusplus
+/* *INDENT-OFF* */
extern "C" {
+/* *INDENT-ON* */
#endif
/* Your application has access to a special type of event 'SDL_SYSWMEVENT',
@@ -42,7 +49,6 @@
*/
#ifdef SDL_PROTOTYPES_ONLY
struct SDL_SysWMinfo;
-typedef struct SDL_SysWMinfo SDL_SysWMinfo;
#else
/* This is the structure for custom window manager events */
@@ -61,150 +67,179 @@
#endif
/* These are the various supported subsystems under UNIX */
-typedef enum {
- SDL_SYSWM_X11
+typedef enum
+{
+ SDL_SYSWM_X11
} SDL_SYSWM_TYPE;
/* The UNIX custom event structure */
-struct SDL_SysWMmsg {
- SDL_version version;
- SDL_SYSWM_TYPE subsystem;
- union {
- XEvent xevent;
- } event;
+struct SDL_SysWMmsg
+{
+ SDL_version version;
+ SDL_SYSWM_TYPE subsystem;
+ union
+ {
+ XEvent xevent;
+ } event;
};
/* The UNIX custom window manager information structure.
When this structure is returned, it holds information about which
low level system it is using, and will be one of SDL_SYSWM_TYPE.
*/
-typedef struct SDL_SysWMinfo {
- SDL_version version;
- SDL_SYSWM_TYPE subsystem;
- union {
- struct {
- Display *display; /* The X11 display */
- Window window; /* The X11 display window */
- /* These locking functions should be called around
- any X11 functions using the display variable.
- They lock the event thread, so should not be
- called around event functions or from event filters.
- */
- void (*lock_func)(void);
- void (*unlock_func)(void);
+struct SDL_SysWMinfo
+{
+ SDL_version version;
+ SDL_SYSWM_TYPE subsystem;
+ union
+ {
+ struct
+ {
+ Display *display; /* The X11 display */
+ Window window; /* The X11 display window */
+ /* These locking functions should be called around
+ any X11 functions using the display variable.
+ They lock the event thread, so should not be
+ called around event functions or from event filters.
+ */
+ void (*lock_func) (void);
+ void (*unlock_func) (void);
- /* Introduced in SDL 1.0.2 */
- Window fswindow; /* The X11 fullscreen window */
- Window wmwindow; /* The X11 managed input window */
- } x11;
- } info;
-} SDL_SysWMinfo;
+ /* Introduced in SDL 1.0.2 */
+ Window fswindow; /* The X11 fullscreen window */
+ Window wmwindow; /* The X11 managed input window */
+ } x11;
+ } info;
+};
#elif defined(SDL_VIDEO_DRIVER_NANOX)
#include <microwin/nano-X.h>
/* The generic custom event structure */
-struct SDL_SysWMmsg {
- SDL_version version;
- int data;
+struct SDL_SysWMmsg
+{
+ SDL_version version;
+ int data;
};
/* The windows custom window manager information structure */
-typedef struct SDL_SysWMinfo {
- SDL_version version ;
- GR_WINDOW_ID window ; /* The display window */
-} SDL_SysWMinfo;
+struct SDL_SysWMinfo
+{
+ SDL_version version;
+ GR_WINDOW_ID window; /* The display window */
+};
-#elif defined(SDL_VIDEO_DRIVER_WINDIB) || defined(SDL_VIDEO_DRIVER_DDRAW) || defined(SDL_VIDEO_DRIVER_GAPI)
+#elif defined(SDL_VIDEO_DRIVER_WIN32)
#define WIN32_LEAN_AND_MEAN
#include <windows.h>
/* The windows custom event structure */
-struct SDL_SysWMmsg {
- SDL_version version;
- HWND hwnd; /* The window for the message */
- UINT msg; /* The type of message */
- WPARAM wParam; /* WORD message parameter */
- LPARAM lParam; /* LONG message parameter */
+struct SDL_SysWMmsg
+{
+ SDL_version version;
+ HWND hwnd; /* The window for the message */
+ UINT msg; /* The type of message */
+ WPARAM wParam; /* WORD message parameter */
+ LPARAM lParam; /* LONG message parameter */
};
/* The windows custom window manager information structure */
-typedef struct SDL_SysWMinfo {
- SDL_version version;
- HWND window; /* The Win32 display window */
- HGLRC hglrc; /* The OpenGL context, if any */
-} SDL_SysWMinfo;
+struct SDL_SysWMinfo
+{
+ SDL_version version;
+ HWND window; /* The Win32 display window */
+ HGLRC hglrc; /* The OpenGL context, if any */
+};
#elif defined(SDL_VIDEO_DRIVER_RISCOS)
/* RISC OS custom event structure */
-struct SDL_SysWMmsg {
- SDL_version version;
- int eventCode; /* The window for the message */
- int pollBlock[64];
+struct SDL_SysWMmsg
+{
+ SDL_version version;
+ int eventCode; /* The window for the message */
+ int pollBlock[64];
};
/* The RISC OS custom window manager information structure */
-typedef struct SDL_SysWMinfo {
- SDL_version version;
- int wimpVersion; /* Wimp version running under */
- int taskHandle; /* The RISC OS task handle */
- int window; /* The RISC OS display window */
-} SDL_SysWMinfo;
+struct SDL_SysWMinfo
+{
+ SDL_version version;
+ int wimpVersion; /* Wimp version running under */
+ int taskHandle; /* The RISC OS task handle */
+ int window; /* The RISC OS display window */
+};
#elif defined(SDL_VIDEO_DRIVER_PHOTON)
#include <sys/neutrino.h>
#include <Ph.h>
/* The QNX custom event structure */
-struct SDL_SysWMmsg {
- SDL_version version;
- int data;
+struct SDL_SysWMmsg
+{
+ SDL_version version;
+ int data;
};
/* The QNX custom window manager information structure */
-typedef struct SDL_SysWMinfo {
- SDL_version version;
- int data;
-} SDL_SysWMinfo;
+struct SDL_SysWMinfo
+{
+ SDL_version version;
+ int data;
+};
#else
/* The generic custom event structure */
-struct SDL_SysWMmsg {
- SDL_version version;
- int data;
+struct SDL_SysWMmsg
+{
+ SDL_version version;
+ int data;
};
/* The generic custom window manager information structure */
-typedef struct SDL_SysWMinfo {
- SDL_version version;
- int data;
-} SDL_SysWMinfo;
+struct SDL_SysWMinfo
+{
+ SDL_version version;
+ int data;
+};
#endif /* video driver type */
#endif /* SDL_PROTOTYPES_ONLY */
+typedef struct SDL_SysWMinfo SDL_SysWMinfo;
+
/* Function prototypes */
-/*
- * This function gives you custom hooks into the window manager information.
- * It fills the structure pointed to by 'info' with custom information and
- * returns 1 if the function is implemented. If it's not implemented, or
- * the version member of the 'info' structure is invalid, it returns 0.
+/**
+ * \fn SDL_bool SDL_GetWindowWMInfo (SDL_WindowID windowID, SDL_SysWMinfo * info)
+ *
+ * \brief This function allows access to driver-dependent window information.
+ *
+ * \param windowID The window about which information is being requested
+ * \param info This structure must be initialized with the SDL version, and is then filled in with information about the given window.
+ *
+ * \return SDL_TRUE if the function is implemented and the version member of the 'info' struct is valid, SDL_FALSE otherwise.
*
* You typically use this function like this:
+ * \code
* SDL_SysWMInfo info;
* SDL_VERSION(&info.version);
- * if ( SDL_GetWMInfo(&info) ) { ... }
+ * if ( SDL_GetWindowWMInfo(&info) ) { ... }
+ * \endcode
*/
-extern DECLSPEC int SDLCALL SDL_GetWMInfo(SDL_SysWMinfo *info);
+extern DECLSPEC SDL_bool SDLCALL SDL_GetWindowWMInfo(SDL_WindowID windowID,
+ SDL_SysWMinfo * info);
/* Ends C function definitions when using C++ */
#ifdef __cplusplus
+/* *INDENT-OFF* */
}
+/* *INDENT-ON* */
#endif
#include "close_code.h"
#endif /* _SDL_syswm_h */
+
+/* vi: set ts=4 sw=4 expandtab: */
--- a/include/SDL_thread.h Thu Jul 06 18:01:37 2006 +0000
+++ b/include/SDL_thread.h Mon Jul 10 21:04:37 2006 +0000
@@ -23,10 +23,11 @@
#ifndef _SDL_thread_h
#define _SDL_thread_h
-/* Header for the SDL thread management routines
-
- These are independent of the other SDL routines.
-*/
+/**
+ * \file SDL_thread.h
+ *
+ * Header for the SDL thread management routines
+ */
#include "SDL_stdinc.h"
#include "SDL_error.h"
@@ -37,7 +38,9 @@
#include "begin_code.h"
/* Set up for C function definitions, even when using C++ */
#ifdef __cplusplus
+/* *INDENT-OFF* */
extern "C" {
+/* *INDENT-ON* */
#endif
/* The SDL thread structure, defined in SDL_thread.c */
@@ -61,25 +64,39 @@
*/
#define SDL_PASSED_BEGINTHREAD_ENDTHREAD
#ifndef _WIN32_WCE
-#include <process.h> /* This has _beginthread() and _endthread() defined! */
+#include <process.h> /* This has _beginthread() and _endthread() defined! */
#endif
#ifdef __OS2__
-typedef int (*pfnSDL_CurrentBeginThread)(void (*func)(void *), void *, unsigned, void *arg);
-typedef void (*pfnSDL_CurrentEndThread)(void);
+typedef int (*pfnSDL_CurrentBeginThread) (void (*func) (void *), void *,
+ unsigned, void *arg);
+typedef void (*pfnSDL_CurrentEndThread) (void);
#elif __GNUC__
-typedef unsigned long (__cdecl *pfnSDL_CurrentBeginThread) (void *, unsigned,
- unsigned (__stdcall *func)(void *), void *arg,
- unsigned, unsigned *threadID);
-typedef void (__cdecl *pfnSDL_CurrentEndThread)(unsigned code);
+typedef unsigned long (__cdecl * pfnSDL_CurrentBeginThread) (void *, unsigned,
+ unsigned
+ (__stdcall *
+ func) (void *),
+ void *arg,
+ unsigned,
+ unsigned
+ *threadID);
+typedef void (__cdecl * pfnSDL_CurrentEndThread) (unsigned code);
#else
-typedef uintptr_t (__cdecl *pfnSDL_CurrentBeginThread) (void *, unsigned,
- unsigned (__stdcall *func)(void *), void *arg,
- unsigned, unsigned *threadID);
-typedef void (__cdecl *pfnSDL_CurrentEndThread)(unsigned code);
+typedef uintptr_t(__cdecl * pfnSDL_CurrentBeginThread) (void *, unsigned,
+ unsigned (__stdcall *
+ func) (void
+ *),
+ void *arg, unsigned,
+ unsigned *threadID);
+typedef void (__cdecl * pfnSDL_CurrentEndThread) (unsigned code);
#endif
-extern DECLSPEC SDL_Thread * SDLCALL SDL_CreateThread(int (SDLCALL *fn)(void *), void *data, pfnSDL_CurrentBeginThread pfnBeginThread, pfnSDL_CurrentEndThread pfnEndThread);
+extern DECLSPEC SDL_Thread *SDLCALL SDL_CreateThread(int (*fn) (void *),
+ void *data,
+ pfnSDL_CurrentBeginThread
+ pfnBeginThread,
+ pfnSDL_CurrentEndThread
+ pfnEndThread);
#ifdef __OS2__
#define SDL_CreateThread(fn, data) SDL_CreateThread(fn, data, _beginthread, _endthread)
@@ -89,7 +106,8 @@
#define SDL_CreateThread(fn, data) SDL_CreateThread(fn, data, _beginthreadex, _endthreadex)
#endif
#else
-extern DECLSPEC SDL_Thread * SDLCALL SDL_CreateThread(int (SDLCALL *fn)(void *), void *data);
+extern DECLSPEC SDL_Thread *SDLCALL
+SDL_CreateThread(int (SDLCALL * fn) (void *), void *data);
#endif
/* Get the 32-bit thread identifier for the current thread */
@@ -98,22 +116,26 @@
/* Get the 32-bit thread identifier for the specified thread,
equivalent to SDL_ThreadID() if the specified thread is NULL.
*/
-extern DECLSPEC Uint32 SDLCALL SDL_GetThreadID(SDL_Thread *thread);
+extern DECLSPEC Uint32 SDLCALL SDL_GetThreadID(SDL_Thread * thread);
/* Wait for a thread to finish.
The return code for the thread function is placed in the area
pointed to by 'status', if 'status' is not NULL.
*/
-extern DECLSPEC void SDLCALL SDL_WaitThread(SDL_Thread *thread, int *status);
+extern DECLSPEC void SDLCALL SDL_WaitThread(SDL_Thread * thread, int *status);
/* Forcefully kill a thread without worrying about its state */
-extern DECLSPEC void SDLCALL SDL_KillThread(SDL_Thread *thread);
+extern DECLSPEC void SDLCALL SDL_KillThread(SDL_Thread * thread);
/* Ends C function definitions when using C++ */
#ifdef __cplusplus
+/* *INDENT-OFF* */
}
+/* *INDENT-ON* */
#endif
#include "close_code.h"
#endif /* _SDL_thread_h */
+
+/* vi: set ts=4 sw=4 expandtab: */
--- a/include/SDL_timer.h Thu Jul 06 18:01:37 2006 +0000
+++ b/include/SDL_timer.h Mon Jul 10 21:04:37 2006 +0000
@@ -23,7 +23,11 @@
#ifndef _SDL_timer_h
#define _SDL_timer_h
-/* Header for the SDL time management routines */
+/**
+ * \file SDL_timer.h
+ *
+ * Header for the SDL time management routines
+ */
#include "SDL_stdinc.h"
#include "SDL_error.h"
@@ -31,25 +35,27 @@
#include "begin_code.h"
/* Set up for C function definitions, even when using C++ */
#ifdef __cplusplus
+/* *INDENT-OFF* */
extern "C" {
+/* *INDENT-ON* */
#endif
/* This is the OS scheduler timeslice, in milliseconds */
#define SDL_TIMESLICE 10
/* This is the maximum resolution of the SDL timer on all platforms */
-#define TIMER_RESOLUTION 10 /* Experimentally determined */
+#define TIMER_RESOLUTION 10 /* Experimentally determined */
/* Get the number of milliseconds since the SDL library initialization.
* Note that this value wraps if the program runs for more than ~49 days.
- */
+ */
extern DECLSPEC Uint32 SDLCALL SDL_GetTicks(void);
/* Wait a specified number of milliseconds before returning */
extern DECLSPEC void SDLCALL SDL_Delay(Uint32 ms);
/* Function prototype for the timer callback function */
-typedef Uint32 (SDLCALL *SDL_TimerCallback)(Uint32 interval);
+typedef Uint32(SDLCALL * SDL_TimerCallback) (Uint32 interval);
/* Set a callback to run after the specified number of milliseconds has
* elapsed. The callback function is passed the current timer interval
@@ -79,7 +85,8 @@
*
* This function returns 0 if successful, or -1 if there was an error.
*/
-extern DECLSPEC int SDLCALL SDL_SetTimer(Uint32 interval, SDL_TimerCallback callback);
+extern DECLSPEC int SDLCALL SDL_SetTimer(Uint32 interval,
+ SDL_TimerCallback callback);
/* New timer API, supports multiple timers
* Written by Stephane Peter <megastep@lokigames.com>
@@ -91,7 +98,7 @@
* passed in, the periodic alarm continues, otherwise a new alarm is
* scheduled. If the callback returns 0, the periodic alarm is cancelled.
*/
-typedef Uint32 (SDLCALL *SDL_NewTimerCallback)(Uint32 interval, void *param);
+typedef Uint32(SDLCALL * SDL_NewTimerCallback) (Uint32 interval, void *param);
/* Definition of the timer ID type */
typedef struct _SDL_TimerID *SDL_TimerID;
@@ -99,7 +106,9 @@
/* Add a new timer to the pool of timers already running.
Returns a timer ID, or NULL when an error occurs.
*/
-extern DECLSPEC SDL_TimerID SDLCALL SDL_AddTimer(Uint32 interval, SDL_NewTimerCallback callback, void *param);
+extern DECLSPEC SDL_TimerID SDLCALL SDL_AddTimer(Uint32 interval,
+ SDL_NewTimerCallback
+ callback, void *param);
/* Remove one of the multiple timers knowing its ID.
* Returns a boolean value indicating success.
@@ -108,8 +117,12 @@
/* Ends C function definitions when using C++ */
#ifdef __cplusplus
+/* *INDENT-OFF* */
}
+/* *INDENT-ON* */
#endif
#include "close_code.h"
#endif /* _SDL_timer_h */
+
+/* vi: set ts=4 sw=4 expandtab: */
--- a/include/SDL_version.h Thu Jul 06 18:01:37 2006 +0000
+++ b/include/SDL_version.h Mon Jul 10 21:04:37 2006 +0000
@@ -20,7 +20,11 @@
slouken@libsdl.org
*/
-/* This header defines the current SDL version */
+/**
+ * \file SDL_version.h
+ *
+ * This header defines the current SDL version
+ */
#ifndef _SDL_version_h
#define _SDL_version_h
@@ -30,29 +34,58 @@
#include "begin_code.h"
/* Set up for C function definitions, even when using C++ */
#ifdef __cplusplus
+/* *INDENT-OFF* */
extern "C" {
+/* *INDENT-ON* */
#endif
+/**
+ * \struct SDL_version
+ * \brief Information the version of SDL in use.
+ *
+ * Represents the library's version as three levels: major revision
+ * (increments with massive changes, additions, and enhancements),
+ * minor revision (increments with backwards-compatible changes to the
+ * major revision), and patchlevel (increments with fixes to the minor
+ * revision).
+ *
+ * \sa SDL_VERSION
+ * \sa SDL_GetVersion
+ */
+typedef struct SDL_version
+{
+ Uint8 major; /**< major version */
+ Uint8 minor; /**< minor version */
+ Uint8 patch; /**< update version */
+} SDL_version;
+
/* Printable format: "%d.%d.%d", MAJOR, MINOR, PATCHLEVEL
*/
#define SDL_MAJOR_VERSION 1
-#define SDL_MINOR_VERSION 2
-#define SDL_PATCHLEVEL 11
-
-typedef struct SDL_version {
- Uint8 major;
- Uint8 minor;
- Uint8 patch;
-} SDL_version;
+#define SDL_MINOR_VERSION 3
+#define SDL_PATCHLEVEL 0
-/* This macro can be used to fill a version structure with the compile-time
- * version of the SDL library.
+/**
+ * \def SDL_VERSION(x)
+ * \brief Macro to determine SDL version program was compiled against.
+ *
+ * This macro fills in a SDL_version structure with the version of the
+ * library you compiled against. This is determined by what header the
+ * compiler uses. Note that if you dynamically linked the library, you might
+ * have a slightly newer or older version at runtime. That version can be
+ * determined with SDL_GetVersion(), which, unlike SDL_VERSION,
+ * is not a macro.
+ *
+ * \param x A pointer to a SDL_version struct to initialize.
+ *
+ * \sa SDL_version
+ * \sa SDL_GetVersion
*/
-#define SDL_VERSION(X) \
+#define SDL_VERSION(x) \
{ \
- (X)->major = SDL_MAJOR_VERSION; \
- (X)->minor = SDL_MINOR_VERSION; \
- (X)->patch = SDL_PATCHLEVEL; \
+ (x)->major = SDL_MAJOR_VERSION; \
+ (x)->minor = SDL_MINOR_VERSION; \
+ (x)->patch = SDL_PATCHLEVEL; \
}
/* This macro turns the version numbers into a numeric value:
@@ -70,16 +103,42 @@
#define SDL_VERSION_ATLEAST(X, Y, Z) \
(SDL_COMPILEDVERSION >= SDL_VERSIONNUM(X, Y, Z))
-/* This function gets the version of the dynamically linked SDL library.
- it should NOT be used to fill a version structure, instead you should
- use the SDL_Version() macro.
+/**
+ * \fn void SDL_GetVersion(SDL_version *ver)
+ * \brief Get the version of SDL that is linked against your program.
+ *
+ * If you are using a shared library (DLL) version of SDL, then it is
+ * possible that it will be different than the version you compiled against.
+ *
+ * This is a real function; the macro SDL_VERSION tells you what version
+ * of SDL you compiled against:
+ *
+ * \code
+ * SDL_version compiled;
+ * SDL_version linked;
+ *
+ * SDL_VERSION(&compiled);
+ * SDL_GetVersion(&linked);
+ * printf("We compiled against SDL version %d.%d.%d ...\n",
+ * compiled.major, compiled.minor, compiled.patch);
+ * printf("But we linked against SDL version %d.%d.%d.\n",
+ * linked.major, linked.minor, linked.patch);
+ * \endcode
+ *
+ * This function may be called safely at any time, even before SDL_Init().
+ *
+ * \sa SDL_VERSION
*/
-extern DECLSPEC const SDL_version * SDLCALL SDL_Linked_Version(void);
+extern DECLSPEC void SDLCALL SDL_GetVersion(SDL_version * ver);
/* Ends C function definitions when using C++ */
#ifdef __cplusplus
+/* *INDENT-OFF* */
}
+/* *INDENT-ON* */
#endif
#include "close_code.h"
#endif /* _SDL_version_h */
+
+/* vi: set ts=4 sw=4 expandtab: */
--- a/include/SDL_video.h Thu Jul 06 18:01:37 2006 +0000
+++ b/include/SDL_video.h Mon Jul 10 21:04:37 2006 +0000
@@ -20,185 +20,293 @@
slouken@libsdl.org
*/
-/* Header file for access to the SDL raw framebuffer window */
+/**
+ * \file SDL_video.h
+ *
+ * Header file for access to the SDL raw framebuffer window
+ */
#ifndef _SDL_video_h
#define _SDL_video_h
#include "SDL_stdinc.h"
#include "SDL_error.h"
+#include "SDL_pixels.h"
#include "SDL_rwops.h"
#include "begin_code.h"
/* Set up for C function definitions, even when using C++ */
#ifdef __cplusplus
+/* *INDENT-OFF* */
extern "C" {
+/* *INDENT-ON* */
#endif
/* Transparency definitions: These define alpha as the opacity of a surface */
#define SDL_ALPHA_OPAQUE 255
#define SDL_ALPHA_TRANSPARENT 0
-/* Useful data types */
-typedef struct SDL_Rect {
- Sint16 x, y;
- Uint16 w, h;
+/**
+ * \struct SDL_Rect
+ *
+ * \brief A rectangle, with the origin at the upper left.
+ */
+typedef struct SDL_Rect
+{
+ int x, y;
+ int w, h;
} SDL_Rect;
-typedef struct SDL_Color {
- Uint8 r;
- Uint8 g;
- Uint8 b;
- Uint8 unused;
-} SDL_Color;
-#define SDL_Colour SDL_Color
+/**
+ * \struct SDL_DisplayMode
+ *
+ * \brief The structure that defines a display mode
+ *
+ * \sa SDL_GetNumDisplayModes()
+ * \sa SDL_GetDisplayMode()
+ * \sa SDL_GetDesktopDisplayMode()
+ * \sa SDL_GetCurrentDisplayMode()
+ * \sa SDL_GetClosestDisplayMode()
+ * \sa SDL_SetDisplayMode()
+ */
+typedef struct
+{
+ Uint32 format; /**< pixel format */
+ int w; /**< width */
+ int h; /**< height */
+ int refresh_rate; /**< refresh rate (or zero for unspecified) */
+ void *driverdata; /**< driver-specific data, initialize to 0 */
+} SDL_DisplayMode;
-typedef struct SDL_Palette {
- int ncolors;
- SDL_Color *colors;
-} SDL_Palette;
+/**
+ * \typedef SDL_WindowID
+ *
+ * \brief The type used to identify a window
+ *
+ * \sa SDL_CreateWindow()
+ * \sa SDL_CreateWindowFrom()
+ * \sa SDL_DestroyWindow()
+ * \sa SDL_GetWindowData()
+ * \sa SDL_GetWindowFlags()
+ * \sa SDL_GetWindowGrab()
+ * \sa SDL_GetWindowPosition()
+ * \sa SDL_GetWindowSize()
+ * \sa SDL_GetWindowTitle()
+ * \sa SDL_HideWindow()
+ * \sa SDL_MaximizeWindow()
+ * \sa SDL_MinimizeWindow()
+ * \sa SDL_RaiseWindow()
+ * \sa SDL_RestoreWindow()
+ * \sa SDL_SetWindowData()
+ * \sa SDL_SetWindowFullscreen()
+ * \sa SDL_SetWindowGrab()
+ * \sa SDL_SetWindowIcon()
+ * \sa SDL_SetWindowPosition()
+ * \sa SDL_SetWindowSize()
+ * \sa SDL_SetWindowTitle()
+ * \sa SDL_ShowWindow()
+ */
+typedef Uint32 SDL_WindowID;
+
+/**
+ * \enum SDL_WindowFlags
+ *
+ * \brief The flags on a window
+ *
+ * \sa SDL_GetWindowFlags()
+ */
+typedef enum
+{
+ SDL_WINDOW_FULLSCREEN = 0x00000001, /**< fullscreen window, implies borderless */
+ SDL_WINDOW_OPENGL = 0x00000002, /**< window usable with OpenGL context */
+ SDL_WINDOW_SHOWN = 0x00000004, /**< window is visible */
+ SDL_WINDOW_BORDERLESS = 0x00000008, /**< no window decoration */
+ SDL_WINDOW_RESIZABLE = 0x00000010, /**< window can be resized */
+ SDL_WINDOW_MINIMIZED = 0x00000020, /**< minimized */
+ SDL_WINDOW_MAXIMIZED = 0x00000040, /**< maximized */
+ SDL_WINDOW_INPUT_GRABBED = 0x00000100, /**< window has grabbed input focus */
+ SDL_WINDOW_INPUT_FOCUS = 0x00000200, /**< window has input focus */
+ SDL_WINDOW_MOUSE_FOCUS = 0x00000400, /**< window has mouse focus */
+} SDL_WindowFlags;
+
+/**
+ * \def SDL_WINDOWPOS_UNDEFINED
+ * \brief Used to indicate that you don't care what the window position is.
+ */
+#define SDL_WINDOWPOS_UNDEFINED 0x7FFFFFF
+/**
+ * \def SDL_WINDOWPOS_CENTERED
+ * \brief Used to indicate that the window position should be centered.
+ */
+#define SDL_WINDOWPOS_CENTERED 0x7FFFFFE
-/* Everything in the pixel format structure is read-only */
-typedef struct SDL_PixelFormat {
- SDL_Palette *palette;
- Uint8 BitsPerPixel;
- Uint8 BytesPerPixel;
- Uint8 Rloss;
- Uint8 Gloss;
- Uint8 Bloss;
- Uint8 Aloss;
- Uint8 Rshift;
- Uint8 Gshift;
- Uint8 Bshift;
- Uint8 Ashift;
- Uint32 Rmask;
- Uint32 Gmask;
- Uint32 Bmask;
- Uint32 Amask;
+/**
+ * \enum SDL_WindowEventID
+ *
+ * \brief Event subtype for window events
+ */
+typedef enum
+{
+ SDL_WINDOWEVENT_NONE, /**< Never used */
+ SDL_WINDOWEVENT_SHOWN, /**< Window has been shown */
+ SDL_WINDOWEVENT_HIDDEN, /**< Window has been hidden */
+ SDL_WINDOWEVENT_EXPOSED, /**< Window has been exposed and should be redrawn */
+ SDL_WINDOWEVENT_MOVED, /**< Window has been moved to data1,data2 */
+ SDL_WINDOWEVENT_RESIZED, /**< Window size changed to data1xdata2 */
+ SDL_WINDOWEVENT_MINIMIZED, /**< Window has been minimized */
+ SDL_WINDOWEVENT_MAXIMIZED, /**< Window has been maximized */
+ SDL_WINDOWEVENT_RESTORED, /**< Window has been restored to normal size and position */
+ SDL_WINDOWEVENT_ENTER, /**< The window has gained mouse focus */
+ SDL_WINDOWEVENT_LEAVE, /**< The window has lost mouse focus */
+ SDL_WINDOWEVENT_FOCUS_GAINED, /**< The window has gained keyboard focus */
+ SDL_WINDOWEVENT_FOCUS_LOST, /**< The window has lost keyboard focus */
+ SDL_WINDOWEVENT_CLOSE, /**< The window manager requests that the window be closed */
+} SDL_WindowEventID;
+
+/**
+ * \enum SDL_RendererFlags
+ *
+ * \brief Flags used when initializing a render manager.
+ */
+typedef enum
+{
+ SDL_Renderer_PresentDiscard = 0x00000001, /**< Present leaves the contents of the backbuffer undefined */
+ SDL_Renderer_PresentCopy = 0x00000002, /**< Present uses a copy from back buffer to the front buffer */
+ SDL_Renderer_PresentFlip2 = 0x00000004, /**< Present uses a flip, swapping back buffer and front buffer */
+ SDL_Renderer_PresentFlip3 = 0x00000008, /**< Present uses a flip, rotating between two back buffers and a front buffer */
+ SDL_Renderer_PresentVSync = 0x00000010, /**< Present is synchronized with the refresh rate */
+ SDL_Renderer_RenderTarget = 0x00000020, /**< The renderer can create texture render targets */
+ SDL_Renderer_Accelerated = 0x00000040, /**< The renderer uses hardware acceleration */
+ SDL_Renderer_ = 0x00000080, /**< The renderer uses hardware acceleration */
+ SDL_Renderer_Minimal = 0x00000100, /**< The renderer only supports the read/write pixel and present functions */
+} SDL_RendererFlags;
+
+/**
+ * \struct SDL_RendererInfo
+ *
+ * \brief Information on the capabilities of a render manager.
+ */
+typedef struct SDL_RendererInfo
+{
+ const char *name; /**< The name of the renderer */
+ Uint32 flags; /**< Supported SDL_RendererFlags */
+ Uint32 blend_modes; /**< A mask of supported blend modes */
+ Uint32 scale_modes; /**< A mask of supported scale modes */
+ Uint32 num_texture_formats; /**< The number of available texture formats */
+ Uint32 texture_formats[32]; /**< The available texture formats */
+ int max_texture_width; /**< The maximimum texture width */
+ int max_texture_height; /**< The maximimum texture height */
+} SDL_RendererInfo;
- /* RGB color key information */
- Uint32 colorkey;
- /* Alpha value information (per-surface alpha) */
- Uint8 alpha;
-} SDL_PixelFormat;
+/**
+ * \enum SDL_TextureAccess
+ *
+ * \brief The access pattern allowed for a texture
+ */
+typedef enum
+{
+ SDL_TextureAccess_Render, /**< Unlockable video memory, rendering allowed */
+ SDL_TextureAccess_Remote, /**< Unlockable video memory */
+ SDL_TextureAccess_Local, /**< Lockable system memory */
+} SDL_TextureAccess;
+
+/**
+ * \enum SDL_TextureBlendMode
+ *
+ * \brief The blend mode used in SDL_RenderCopy()
+ */
+typedef enum
+{
+ SDL_TextureBlendMode_None = 0x00000000, /**< No blending */
+ SDL_TextureBlendMode_Mask = 0x00000001, /**< dst = A ? src : dst (alpha is mask) */
+ SDL_TextureBlendMode_Blend = 0x00000002, /**< dst = (src * A) + (dst * (1-A)) */
+ SDL_TextureBlendMode_Add = 0x00000004, /**< dst = (src * A) + dst */
+ SDL_TextureBlendMode_Mod = 0x00000008, /**< dst = src * dst */
+} SDL_TextureBlendMode;
+
+/**
+ * \enum SDL_TextureScaleMode
+ *
+ * \brief The scale mode used in SDL_RenderCopy()
+ */
+typedef enum
+{
+ SDL_TextureScaleMode_None = 0x00000000, /**< No scaling, rectangles must match dimensions */
+ SDL_TextureScaleMode_Fast = 0x00000001, /**< Point sampling or equivalent algorithm */
+ SDL_TextureScaleMode_Slow = 0x00000002, /**< Linear filtering or equivalent algorithm */
+ SDL_TextureScaleMode_Best = 0x00000004, /**< Bicubic filtering or equivalent algorithm */
+} SDL_TextureScaleMode;
+
+/**
+ * \typedef SDL_TextureID
+ *
+ * \brief An efficient driver-specific representation of pixel data
+ */
+typedef Uint32 SDL_TextureID;
+
+/**
+ * \typedef SDL_GLContext
+ *
+ * \brief An opaque handle to an OpenGL context.
+ */
+typedef void *SDL_GLContext;
+
+
+/* These are the currently supported flags for the SDL_surface */
+/* Used internally (read-only) */
+#define SDL_HWSURFACE 0x00000001 /* Surface represents a texture */
+#define SDL_PREALLOC 0x00000002 /* Surface uses preallocated memory */
+#define SDL_SRCALPHA 0x00000004 /* Blit uses source alpha blending */
+#define SDL_SRCCOLORKEY 0x00000008 /* Blit uses a source color key */
+#define SDL_RLEACCELOK 0x00000010 /* Private flag */
+#define SDL_RLEACCEL 0x00000020 /* Surface is RLE encoded */
+
+/* Evaluates to true if the surface needs to be locked before access */
+#define SDL_MUSTLOCK(S) (((S)->flags & (SDL_HWSURFACE|SDL_RLEACCEL)) != 0)
/* This structure should be treated as read-only, except for 'pixels',
which, if not NULL, contains the raw pixel data for the surface.
*/
-typedef struct SDL_Surface {
- Uint32 flags; /* Read-only */
- SDL_PixelFormat *format; /* Read-only */
- int w, h; /* Read-only */
- Uint16 pitch; /* Read-only */
- void *pixels; /* Read-write */
- int offset; /* Private */
+typedef struct SDL_Surface
+{
+ Uint32 flags; /* Read-only */
+ SDL_PixelFormat *format; /* Read-only */
+ int w, h; /* Read-only */
+ int pitch; /* Read-only */
+ void *pixels; /* Read-write */
- /* Hardware-specific surface info */
- struct private_hwdata *hwdata;
+ /* texture associated with the surface, if any */
+ SDL_TextureID textureID;
- /* clipping information */
- SDL_Rect clip_rect; /* Read-only */
- Uint32 unused1; /* for binary compatibility */
+ /* information needed for surfaces requiring locks */
+ int locked;
+ void *lock_data;
- /* Allow recursive locks */
- Uint32 locked; /* Private */
+ /* clipping information */
+ SDL_Rect clip_rect; /* Read-only */
- /* info for fast blit mapping to other surfaces */
- struct SDL_BlitMap *map; /* Private */
+ /* info for fast blit mapping to other surfaces */
+ struct SDL_BlitMap *map; /* Private */
- /* format version, bumped at every change to invalidate blit maps */
- unsigned int format_version; /* Private */
+ /* format version, bumped at every change to invalidate blit maps */
+ unsigned int format_version; /* Private */
- /* Reference count -- used when freeing surface */
- int refcount; /* Read-mostly */
+ /* Reference count -- used when freeing surface */
+ int refcount; /* Read-mostly */
} SDL_Surface;
-/* These are the currently supported flags for the SDL_surface */
-/* Available for SDL_CreateRGBSurface() or SDL_SetVideoMode() */
-#define SDL_SWSURFACE 0x00000000 /* Surface is in system memory */
-#define SDL_HWSURFACE 0x00000001 /* Surface is in video memory */
-#define SDL_ASYNCBLIT 0x00000004 /* Use asynchronous blits if possible */
-/* Available for SDL_SetVideoMode() */
-#define SDL_ANYFORMAT 0x10000000 /* Allow any video depth/pixel-format */
-#define SDL_HWPALETTE 0x20000000 /* Surface has exclusive palette */
-#define SDL_DOUBLEBUF 0x40000000 /* Set up double-buffered video mode */
-#define SDL_FULLSCREEN 0x80000000 /* Surface is a full screen display */
-#define SDL_OPENGL 0x00000002 /* Create an OpenGL rendering context */
-#define SDL_OPENGLBLIT 0x0000000A /* Create an OpenGL rendering context and use it for blitting */
-#define SDL_RESIZABLE 0x00000010 /* This video mode may be resized */
-#define SDL_NOFRAME 0x00000020 /* No window caption or edge frame */
-/* Used internally (read-only) */
-#define SDL_HWACCEL 0x00000100 /* Blit uses hardware acceleration */
-#define SDL_SRCCOLORKEY 0x00001000 /* Blit uses a source color key */
-#define SDL_RLEACCELOK 0x00002000 /* Private flag */
-#define SDL_RLEACCEL 0x00004000 /* Surface is RLE encoded */
-#define SDL_SRCALPHA 0x00010000 /* Blit uses source alpha blending */
-#define SDL_PREALLOC 0x01000000 /* Surface uses preallocated memory */
-
-/* Evaluates to true if the surface needs to be locked before access */
-#define SDL_MUSTLOCK(surface) \
- (surface->offset || \
- ((surface->flags & (SDL_HWSURFACE|SDL_ASYNCBLIT|SDL_RLEACCEL)) != 0))
-
/* typedef for private surface blitting functions */
-typedef int (*SDL_blit)(struct SDL_Surface *src, SDL_Rect *srcrect,
- struct SDL_Surface *dst, SDL_Rect *dstrect);
-
-
-/* Useful for determining the video hardware capabilities */
-typedef struct SDL_VideoInfo {
- Uint32 hw_available :1; /* Flag: Can you create hardware surfaces? */
- Uint32 wm_available :1; /* Flag: Can you talk to a window manager? */
- Uint32 UnusedBits1 :6;
- Uint32 UnusedBits2 :1;
- Uint32 blit_hw :1; /* Flag: Accelerated blits HW --> HW */
- Uint32 blit_hw_CC :1; /* Flag: Accelerated blits with Colorkey */
- Uint32 blit_hw_A :1; /* Flag: Accelerated blits with Alpha */
- Uint32 blit_sw :1; /* Flag: Accelerated blits SW --> HW */
- Uint32 blit_sw_CC :1; /* Flag: Accelerated blits with Colorkey */