Rearrange documentation
authorGabriel Jacobo <gabomdq@gmail.com>
Tue, 29 Jul 2014 09:20:12 -0300
changeset 9023276802355854
parent 9019 23e35485dae3
child 9025 d09d4b578e77
Rearrange documentation

1) Moves all READMEs to docs/
2) Renames them to *.md, adds some Markdown with the idea to add a lot more
3) Moves the doxyfile config to doc/ and makes it parse the headers at ../include as well as the md files in docs.
4) Skips SDL_opengl*.h headers from the docs
5) Minor fixes to doxyfile
README-SDL.txt
README-android.txt
README-cmake.txt
README-directfb.txt
README-dynapi.txt
README-gesture.txt
README-hg.txt
README-ios.txt
README-linux.txt
README-macosx.txt
README-nacl.txt
README-pandora.txt
README-platforms.txt
README-porting.txt
README-psp.txt
README-raspberrypi.txt
README-touch.txt
README-wince.txt
README-windows.txt
README-winrt.txt
README.txt
doc/README-SDL.md
doc/README-android.md
doc/README-cmake.md
doc/README-directfb.md
doc/README-dynapi.md
doc/README-gesture.md
doc/README-hg.md
doc/README-ios.md
doc/README-linux.md
doc/README-macosx.md
doc/README-nacl.md
doc/README-pandora.md
doc/README-platforms.md
doc/README-porting.md
doc/README-psp.md
doc/README-raspberrypi.md
doc/README-touch.md
doc/README-wince.md
doc/README-windows.md
doc/README-winrt.md
doc/README.md
doc/doxyfile
include/SDL.h
include/doxyfile
     1.1 --- a/README-SDL.txt	Mon Jul 28 10:54:25 2014 -0400
     1.2 +++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
     1.3 @@ -1,13 +0,0 @@
     1.4 -
     1.5 -Please distribute this file with the SDL runtime environment:
     1.6 -
     1.7 -The Simple DirectMedia Layer (SDL for short) is a cross-platform library
     1.8 -designed to make it easy to write multi-media software, such as games and
     1.9 -emulators.
    1.10 -
    1.11 -The Simple DirectMedia Layer library source code is available from:
    1.12 -http://www.libsdl.org/
    1.13 -
    1.14 -This library is distributed under the terms of the zlib license:
    1.15 -http://www.zlib.net/zlib_license.html
    1.16 -
     2.1 --- a/README-android.txt	Mon Jul 28 10:54:25 2014 -0400
     2.2 +++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
     2.3 @@ -1,438 +0,0 @@
     2.4 -================================================================================
     2.5 -Simple DirectMedia Layer for Android
     2.6 -================================================================================
     2.7 -
     2.8 -Requirements:
     2.9 -
    2.10 -Android SDK (version 12 or later)
    2.11 -http://developer.android.com/sdk/index.html
    2.12 -
    2.13 -Android NDK r7 or later
    2.14 -http://developer.android.com/tools/sdk/ndk/index.html
    2.15 -
    2.16 -Minimum API level supported by SDL: 10 (Android 2.3.3)
    2.17 -Joystick support is available for API level >=12 devices.
    2.18 -
    2.19 -================================================================================
    2.20 - How the port works
    2.21 -================================================================================
    2.22 -
    2.23 -- Android applications are Java-based, optionally with parts written in C
    2.24 -- As SDL apps are C-based, we use a small Java shim that uses JNI to talk to 
    2.25 -the SDL library
    2.26 -- This means that your application C code must be placed inside an Android 
    2.27 -Java project, along with some C support code that communicates with Java
    2.28 -- This eventually produces a standard Android .apk package
    2.29 -
    2.30 -The Android Java code implements an "Activity" and can be found in:
    2.31 -android-project/src/org/libsdl/app/SDLActivity.java
    2.32 -
    2.33 -The Java code loads your game code, the SDL shared library, and
    2.34 -dispatches to native functions implemented in the SDL library:
    2.35 -src/core/android/SDL_android.c
    2.36 -
    2.37 -Your project must include some glue code that starts your main() routine:
    2.38 -src/main/android/SDL_android_main.c
    2.39 -
    2.40 -
    2.41 -================================================================================
    2.42 - Building an app
    2.43 -================================================================================
    2.44 -
    2.45 -For simple projects you can use the script located at build-scripts/androidbuild.sh
    2.46 -
    2.47 -There's two ways of using it:
    2.48 -
    2.49 -androidbuild.sh com.yourcompany.yourapp < sources.list
    2.50 -androidbuild.sh com.yourcompany.yourapp source1.c source2.c ...sourceN.c
    2.51 -
    2.52 -sources.list should be a text file with a source file name in each line
    2.53 -Filenames should be specified relative to the current directory, for example if
    2.54 -you are in the build-scripts directory and want to create the testgles.c test, you'll
    2.55 -run:
    2.56 -    
    2.57 -./androidbuild.sh org.libsdl.testgles ../test/testgles.c
    2.58 -
    2.59 -One limitation of this script is that all sources provided will be aggregated into
    2.60 -a single directory, thus all your source files should have a unique name.
    2.61 -
    2.62 -Once the project is complete the script will tell you where the debug APK is located.
    2.63 -If you want to create a signed release APK, you can use the project created by this
    2.64 -utility to generate it.
    2.65 -
    2.66 -Finally, a word of caution: re running androidbuild.sh wipes any changes you may have
    2.67 -done in the build directory for the app!
    2.68 -
    2.69 -
    2.70 -For more complex projects, follow these instructions:
    2.71 -    
    2.72 -1. Copy the android-project directory wherever you want to keep your projects
    2.73 -   and rename it to the name of your project.
    2.74 -2. Move or symlink this SDL directory into the <project>/jni directory
    2.75 -3. Edit <project>/jni/src/Android.mk to include your source files
    2.76 -4. Run 'ndk-build' (a script provided by the NDK). This compiles the C source
    2.77 -
    2.78 -If you want to use the Eclipse IDE, skip to the Eclipse section below.
    2.79 -
    2.80 -5. Create <project>/local.properties and use that to point to the Android SDK directory, by writing a line with the following form:
    2.81 -sdk.dir=PATH_TO_ANDROID_SDK
    2.82 -6. Run 'ant debug' in android/project. This compiles the .java and eventually 
    2.83 -   creates a .apk with the native code embedded
    2.84 -7. 'ant debug install' will push the apk to the device or emulator (if connected)
    2.85 -
    2.86 -Here's an explanation of the files in the Android project, so you can customize them:
    2.87 -
    2.88 -android-project/
    2.89 -	AndroidManifest.xml	- package manifest. Among others, it contains the class name
    2.90 -				  of the main Activity and the package name of the application.
    2.91 -	build.properties	- empty
    2.92 -	build.xml		- build description file, used by ant. The actual application name
    2.93 -				  is specified here.
    2.94 -	default.properties	- holds the target ABI for the application, android-10 and up
    2.95 -	project.properties	- holds the target ABI for the application, android-10 and up
    2.96 -	local.properties	- holds the SDK path, you should change this to the path to your SDK
    2.97 -	jni/			- directory holding native code
    2.98 -	jni/Android.mk		- Android makefile that can call recursively the Android.mk files
    2.99 -				  in all subdirectories
   2.100 -	jni/SDL/		- (symlink to) directory holding the SDL library files
   2.101 -	jni/SDL/Android.mk	- Android makefile for creating the SDL shared library
   2.102 -	jni/src/		- directory holding your C/C++ source
   2.103 -	jni/src/Android.mk	- Android makefile that you should customize to include your 
   2.104 -                                  source code and any library references
   2.105 -	res/			- directory holding resources for your application
   2.106 -	res/drawable-*		- directories holding icons for different phone hardware. Could be
   2.107 -				  one dir called "drawable".
   2.108 -	res/layout/main.xml	- Usually contains a file main.xml, which declares the screen layout.
   2.109 -				  We don't need it because we use the SDL video output.
   2.110 -	res/values/strings.xml	- strings used in your application, including the application name
   2.111 -				  shown on the phone.
   2.112 -	src/org/libsdl/app/SDLActivity.java - the Java class handling the initialization and binding
   2.113 -				  to SDL.  Be very careful changing this, as the SDL library relies
   2.114 -				  on this implementation.
   2.115 -
   2.116 -
   2.117 -================================================================================
   2.118 - Build an app with static linking of libSDL
   2.119 -================================================================================
   2.120 -
   2.121 -This build uses the Android NDK module system.
   2.122 -
   2.123 -Instructions:
   2.124 -1. Copy the android-project directory wherever you want to keep your projects
   2.125 -   and rename it to the name of your project.
   2.126 -2. Rename <project>/jni/src/Android_static.mk to <project>/jni/src/Android.mk
   2.127 -   (overwrite the existing one)
   2.128 -3. Edit <project>/jni/src/Android.mk to include your source files
   2.129 -4. create and export an environment variable named NDK_MODULE_PATH that points
   2.130 -   to the parent directory of this SDL directory. e.g.:
   2.131 -
   2.132 -   export NDK_MODULE_PATH="$PWD"/..
   2.133 -
   2.134 -5. Edit <project>/src/org/libsdl/app/SDLActivity.java and remove the call to
   2.135 -   System.loadLibrary("SDL2") line 42.
   2.136 -6. Run 'ndk-build' (a script provided by the NDK). This compiles the C source
   2.137 -
   2.138 -
   2.139 -================================================================================
   2.140 - Customizing your application name
   2.141 -================================================================================
   2.142 -
   2.143 -To customize your application name, edit AndroidManifest.xml and replace
   2.144 -"org.libsdl.app" with an identifier for your product package.
   2.145 -
   2.146 -Then create a Java class extending SDLActivity and place it in a directory
   2.147 -under src matching your package, e.g.
   2.148 -	src/com/gamemaker/game/MyGame.java
   2.149 -
   2.150 -Here's an example of a minimal class file:
   2.151 ---- MyGame.java --------------------------
   2.152 -package com.gamemaker.game;
   2.153 -
   2.154 -import org.libsdl.app.SDLActivity; 
   2.155 -
   2.156 -/* 
   2.157 - * A sample wrapper class that just calls SDLActivity 
   2.158 - */ 
   2.159 -
   2.160 -public class MyGame extends SDLActivity { }
   2.161 -
   2.162 -------------------------------------------
   2.163 -
   2.164 -Then replace "SDLActivity" in AndroidManifest.xml with the name of your
   2.165 -class, .e.g. "MyGame"
   2.166 -
   2.167 -================================================================================
   2.168 - Customizing your application icon
   2.169 -================================================================================
   2.170 -
   2.171 -Conceptually changing your icon is just replacing the "ic_launcher.png" files in
   2.172 -the drawable directories under the res directory. There are four directories for
   2.173 -different screen sizes. These can be replaced with one dir called "drawable",
   2.174 -containing an icon file "ic_launcher.png" with dimensions 48x48 or 72x72.
   2.175 -
   2.176 -You may need to change the name of your icon in AndroidManifest.xml to match
   2.177 -this icon filename.
   2.178 -
   2.179 -================================================================================
   2.180 - Loading assets
   2.181 -================================================================================
   2.182 -
   2.183 -Any files you put in the "assets" directory of your android-project directory
   2.184 -will get bundled into the application package and you can load them using the
   2.185 -standard functions in SDL_rwops.h.
   2.186 -
   2.187 -There are also a few Android specific functions that allow you to get other
   2.188 -useful paths for saving and loading data:
   2.189 -SDL_AndroidGetInternalStoragePath()
   2.190 -SDL_AndroidGetExternalStorageState()
   2.191 -SDL_AndroidGetExternalStoragePath()
   2.192 -
   2.193 -See SDL_system.h for more details on these functions.
   2.194 -
   2.195 -The asset packaging system will, by default, compress certain file extensions.
   2.196 -SDL includes two asset file access mechanisms, the preferred one is the so
   2.197 -called "File Descriptor" method, which is faster and doesn't involve the Dalvik
   2.198 -GC, but given this method does not work on compressed assets, there is also the
   2.199 -"Input Stream" method, which is automatically used as a fall back by SDL. You
   2.200 -may want to keep this fact in mind when building your APK, specially when large
   2.201 -files are involved.
   2.202 -For more information on which extensions get compressed by default and how to
   2.203 -disable this behaviour, see for example:
   2.204 -    
   2.205 -http://ponystyle.com/blog/2010/03/26/dealing-with-asset-compression-in-android-apps/
   2.206 -
   2.207 -================================================================================
   2.208 - Pause / Resume behaviour
   2.209 -================================================================================
   2.210 -
   2.211 -If SDL is compiled with SDL_ANDROID_BLOCK_ON_PAUSE defined (the default),
   2.212 -the event loop will block itself when the app is paused (ie, when the user
   2.213 -returns to the main Android dashboard). Blocking is better in terms of battery
   2.214 -use, and it allows your app to spring back to life instantaneously after resume
   2.215 -(versus polling for a resume message).
   2.216 -
   2.217 -Upon resume, SDL will attempt to restore the GL context automatically.
   2.218 -In modern devices (Android 3.0 and up) this will most likely succeed and your
   2.219 -app can continue to operate as it was.
   2.220 -
   2.221 -However, there's a chance (on older hardware, or on systems under heavy load),
   2.222 -where the GL context can not be restored. In that case you have to listen for
   2.223 -a specific message, (which is not yet implemented!) and restore your textures
   2.224 -manually or quit the app (which is actually the kind of behaviour you'll see
   2.225 -under iOS, if the OS can not restore your GL context it will just kill your app)
   2.226 -
   2.227 -================================================================================
   2.228 - Threads and the Java VM
   2.229 -================================================================================
   2.230 -
   2.231 -For a quick tour on how Linux native threads interoperate with the Java VM, take
   2.232 -a look here: http://developer.android.com/guide/practices/jni.html
   2.233 -If you want to use threads in your SDL app, it's strongly recommended that you
   2.234 -do so by creating them using SDL functions. This way, the required attach/detach
   2.235 -handling is managed by SDL automagically. If you have threads created by other
   2.236 -means and they make calls to SDL functions, make sure that you call
   2.237 -Android_JNI_SetupThread before doing anything else otherwise SDL will attach
   2.238 -your thread automatically anyway (when you make an SDL call), but it'll never
   2.239 -detach it.
   2.240 -
   2.241 -================================================================================
   2.242 - Using STL
   2.243 -================================================================================
   2.244 -
   2.245 -You can use STL in your project by creating an Application.mk file in the jni
   2.246 -folder and adding the following line:
   2.247 -APP_STL := stlport_static
   2.248 -
   2.249 -For more information check out CPLUSPLUS-SUPPORT.html in the NDK documentation.
   2.250 -
   2.251 -================================================================================
   2.252 - Additional documentation
   2.253 -================================================================================
   2.254 -
   2.255 -The documentation in the NDK docs directory is very helpful in understanding the
   2.256 -build process and how to work with native code on the Android platform.
   2.257 -
   2.258 -The best place to start is with docs/OVERVIEW.TXT
   2.259 -
   2.260 -
   2.261 -================================================================================
   2.262 - Using Eclipse
   2.263 -================================================================================
   2.264 -
   2.265 -First make sure that you've installed Eclipse and the Android extensions as described here:
   2.266 -	http://developer.android.com/tools/sdk/eclipse-adt.html
   2.267 -
   2.268 -Once you've copied the SDL android project and customized it, you can create an Eclipse project from it:
   2.269 - * File -> New -> Other
   2.270 - * Select the Android -> Android Project wizard and click Next
   2.271 - * Enter the name you'd like your project to have
   2.272 - * Select "Create project from existing source" and browse for your project directory
   2.273 - * Make sure the Build Target is set to Android 2.0
   2.274 - * Click Finish
   2.275 -
   2.276 -
   2.277 -================================================================================
   2.278 - Using the emulator
   2.279 -================================================================================
   2.280 -
   2.281 -There are some good tips and tricks for getting the most out of the
   2.282 -emulator here: http://developer.android.com/tools/devices/emulator.html
   2.283 -
   2.284 -Especially useful is the info on setting up OpenGL ES 2.0 emulation.
   2.285 -
   2.286 -Notice that this software emulator is incredibly slow and needs a lot of disk space.
   2.287 -Using a real device works better.
   2.288 -
   2.289 -================================================================================
   2.290 - Troubleshooting
   2.291 -================================================================================
   2.292 -
   2.293 -You can create and run an emulator from the Eclipse IDE:
   2.294 - * Window -> Android SDK and AVD Manager
   2.295 -
   2.296 -You can see if adb can see any devices with the following command:
   2.297 -	adb devices
   2.298 -
   2.299 -You can see the output of log messages on the default device with:
   2.300 -	adb logcat
   2.301 -
   2.302 -You can push files to the device with:
   2.303 -	adb push local_file remote_path_and_file
   2.304 -
   2.305 -You can push files to the SD Card at /sdcard, for example:
   2.306 -	adb push moose.dat /sdcard/moose.dat
   2.307 -
   2.308 -You can see the files on the SD card with a shell command:
   2.309 -	adb shell ls /sdcard/
   2.310 -
   2.311 -You can start a command shell on the default device with:
   2.312 -	adb shell
   2.313 -
   2.314 -You can remove the library files of your project (and not the SDL lib files) with:
   2.315 -	ndk-build clean
   2.316 -
   2.317 -You can do a build with the following command:
   2.318 -	ndk-build
   2.319 -
   2.320 -You can see the complete command line that ndk-build is using by passing V=1 on the command line:
   2.321 -	ndk-build V=1
   2.322 -
   2.323 -If your application crashes in native code, you can use addr2line to convert the
   2.324 -addresses in the stack trace to lines in your code.
   2.325 -
   2.326 -For example, if your crash looks like this:
   2.327 -I/DEBUG   (   31): signal 11 (SIGSEGV), code 2 (SEGV_ACCERR), fault addr 400085d0
   2.328 -I/DEBUG   (   31):  r0 00000000  r1 00001000  r2 00000003  r3 400085d4
   2.329 -I/DEBUG   (   31):  r4 400085d0  r5 40008000  r6 afd41504  r7 436c6a7c
   2.330 -I/DEBUG   (   31):  r8 436c6b30  r9 435c6fb0  10 435c6f9c  fp 4168d82c
   2.331 -I/DEBUG   (   31):  ip 8346aff0  sp 436c6a60  lr afd1c8ff  pc afd1c902  cpsr 60000030
   2.332 -I/DEBUG   (   31):          #00  pc 0001c902  /system/lib/libc.so
   2.333 -I/DEBUG   (   31):          #01  pc 0001ccf6  /system/lib/libc.so
   2.334 -I/DEBUG   (   31):          #02  pc 000014bc  /data/data/org.libsdl.app/lib/libmain.so
   2.335 -I/DEBUG   (   31):          #03  pc 00001506  /data/data/org.libsdl.app/lib/libmain.so
   2.336 -
   2.337 -You can see that there's a crash in the C library being called from the main code.
   2.338 -I run addr2line with the debug version of my code:
   2.339 -	arm-eabi-addr2line -C -f -e obj/local/armeabi/libmain.so
   2.340 -and then paste in the number after "pc" in the call stack, from the line that I care about:
   2.341 -000014bc
   2.342 -
   2.343 -I get output from addr2line showing that it's in the quit function, in testspriteminimal.c, on line 23.
   2.344 -
   2.345 -You can add logging to your code to help show what's happening:
   2.346 -
   2.347 -#include <android/log.h>
   2.348 -
   2.349 -	__android_log_print(ANDROID_LOG_INFO, "foo", "Something happened! x = %d", x);
   2.350 -
   2.351 -If you need to build without optimization turned on, you can create a file called
   2.352 -"Application.mk" in the jni directory, with the following line in it:
   2.353 -APP_OPTIM := debug
   2.354 -
   2.355 -
   2.356 -================================================================================
   2.357 - Memory debugging
   2.358 -================================================================================
   2.359 -
   2.360 -The best (and slowest) way to debug memory issues on Android is valgrind.
   2.361 -Valgrind has support for Android out of the box, just grab code using:
   2.362 -	svn co svn://svn.valgrind.org/valgrind/trunk valgrind
   2.363 -... and follow the instructions in the file README.android to build it.
   2.364 -
   2.365 -One thing I needed to do on Mac OS X was change the path to the toolchain,
   2.366 -and add ranlib to the environment variables:
   2.367 -export RANLIB=$NDKROOT/toolchains/arm-linux-androideabi-4.4.3/prebuilt/darwin-x86/bin/arm-linux-androideabi-ranlib
   2.368 -
   2.369 -Once valgrind is built, you can create a wrapper script to launch your
   2.370 -application with it, changing org.libsdl.app to your package identifier:
   2.371 ---- start_valgrind_app -------------------
   2.372 -#!/system/bin/sh
   2.373 -export TMPDIR=/data/data/org.libsdl.app
   2.374 -exec /data/local/Inst/bin/valgrind --log-file=/sdcard/valgrind.log --error-limit=no $*
   2.375 -------------------------------------------
   2.376 -
   2.377 -Then push it to the device:
   2.378 -	adb push start_valgrind_app /data/local
   2.379 -
   2.380 -and make it executable:
   2.381 -	adb shell chmod 755 /data/local/start_valgrind_app
   2.382 -
   2.383 -and tell Android to use the script to launch your application:
   2.384 -	adb shell setprop wrap.org.libsdl.app "logwrapper /data/local/start_valgrind_app"
   2.385 -
   2.386 -If the setprop command says "could not set property", it's likely that
   2.387 -your package name is too long and you should make it shorter by changing
   2.388 -AndroidManifest.xml and the path to your class file in android-project/src
   2.389 -
   2.390 -You can then launch your application normally and waaaaaaaiiittt for it.
   2.391 -You can monitor the startup process with the logcat command above, and
   2.392 -when it's done (or even while it's running) you can grab the valgrind
   2.393 -output file:
   2.394 -	adb pull /sdcard/valgrind.log
   2.395 -
   2.396 -When you're done instrumenting with valgrind, you can disable the wrapper:
   2.397 -	adb shell setprop wrap.org.libsdl.app ""
   2.398 -
   2.399 -================================================================================
   2.400 - Why is API level 10 the minimum required?
   2.401 -================================================================================
   2.402 -
   2.403 -API level 10 is the minimum required level at runtime (that is, on the device) 
   2.404 -because SDL requires some functionality for running not
   2.405 -available on older devices. Since the incorporation of joystick support into SDL,
   2.406 -the minimum SDK required to *build* SDL is version 12. Devices running API levels
   2.407 -10-11 are still supported, only with the joystick functionality disabled.
   2.408 -
   2.409 -Support for native OpenGL ES and ES2 applications was introduced in the NDK for
   2.410 -API level 4 and 8. EGL was made a stable API in the NDK for API level 9, which
   2.411 -has since then been obsoleted, with the recommendation to developers to bump the
   2.412 -required API level to 10.
   2.413 -As of this writing, according to http://developer.android.com/about/dashboards/index.html
   2.414 -about 90% of the Android devices accessing Google Play support API level 10 or
   2.415 -higher (March 2013).
   2.416 -
   2.417 -================================================================================
   2.418 - A note regarding the use of the "dirty rectangles" rendering technique
   2.419 -================================================================================
   2.420 -
   2.421 -If your app uses a variation of the "dirty rectangles" rendering technique,
   2.422 -where you only update a portion of the screen on each frame, you may notice a
   2.423 -variety of visual glitches on Android, that are not present on other platforms.
   2.424 -This is caused by SDL's use of EGL as the support system to handle OpenGL ES/ES2
   2.425 -contexts, in particular the use of the eglSwapBuffers function. As stated in the
   2.426 -documentation for the function "The contents of ancillary buffers are always 
   2.427 -undefined after calling eglSwapBuffers".
   2.428 -Setting the EGL_SWAP_BEHAVIOR attribute of the surface to EGL_BUFFER_PRESERVED
   2.429 -is not possible for SDL as it requires EGL 1.4, available only on the API level
   2.430 -17+, so the only workaround available on this platform is to redraw the entire
   2.431 -screen each frame.
   2.432 -
   2.433 -Reference: http://www.khronos.org/registry/egl/specs/EGLTechNote0001.html
   2.434 -
   2.435 -================================================================================
   2.436 - Known issues
   2.437 -================================================================================
   2.438 -
   2.439 -- The number of buttons reported for each joystick is hardcoded to be 36, which
   2.440 -is the current maximum number of buttons Android can report.
   2.441 -
     3.1 --- a/README-cmake.txt	Mon Jul 28 10:54:25 2014 -0400
     3.2 +++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
     3.3 @@ -1,31 +0,0 @@
     3.4 -================================================================================
     3.5 -CMake build system for SDL (www.cmake.org)
     3.6 -================================================================================
     3.7 -
     3.8 -SDL's build system was traditionally based on autotools. Over time, this
     3.9 -approach has suffered from several issues across the different supported 
    3.10 -platforms.
    3.11 -To solve these problems, a new build system based on CMake is under development.
    3.12 -It works in parallel to the legacy system, so users can experiment with it
    3.13 -without complication.
    3.14 -While still experimental, the build system should be usable on the following
    3.15 -platforms:
    3.16 -    
    3.17 -    * FreeBSD
    3.18 -    * Linux
    3.19 -    * VS.NET 2010
    3.20 -    * MinGW and Msys
    3.21 -    * OS X with support for XCode
    3.22 -    
    3.23 -================================================================================
    3.24 -Usage
    3.25 -================================================================================
    3.26 -
    3.27 -Assuming the source for SDL is located at ~/sdl
    3.28 -
    3.29 -cd ~
    3.30 -mkdir build
    3.31 -cd build
    3.32 -cmake ../sdl
    3.33 -
    3.34 -This will build the static and dynamic versions of SDL in the ~/build directory.
     4.1 --- a/README-directfb.txt	Mon Jul 28 10:54:25 2014 -0400
     4.2 +++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
     4.3 @@ -1,106 +0,0 @@
     4.4 -SDL on DirectFB
     4.5 -
     4.6 -Supports:
     4.7 -
     4.8 -- Hardware YUV overlays
     4.9 -- OpenGL - software only
    4.10 -- 2D/3D accelerations (depends on directfb driver)
    4.11 -- multiple displays
    4.12 -- windows
    4.13 -
    4.14 -What you need:
    4.15 -
    4.16 -DirectFB 1.0.1, 1.2.x, 1.3.0
    4.17 -Kernel-Framebuffer support: required: vesafb, radeonfb .... 
    4.18 -Mesa 7.0.x	   - optional for OpenGL
    4.19 -
    4.20 -/etc/directfbrc
    4.21 -
    4.22 -This file should contain the following lines to make
    4.23 -your joystick work and avoid crashes:
    4.24 -------------------------
    4.25 -disable-module=joystick
    4.26 -disable-module=cle266
    4.27 -disable-module=cyber5k
    4.28 -no-linux-input-grab
    4.29 -------------------------
    4.30 -
    4.31 -To disable to use x11 backend when DISPLAY variable is found use
    4.32 -
    4.33 -export SDL_DIRECTFB_X11_CHECK=0
    4.34 -
    4.35 -To disable the use of linux input devices, i.e. multimice/multikeyboard support,
    4.36 -use
    4.37 -
    4.38 -export SDL_DIRECTFB_LINUX_INPUT=0
    4.39 -
    4.40 -To use hardware accelerated YUV-overlays for YUV-textures, use:
    4.41 -
    4.42 -export SDL_DIRECTFB_YUV_DIRECT=1
    4.43 -
    4.44 -This is disabled by default. It will only support one 
    4.45 -YUV texture, namely the first. Every other YUV texture will be
    4.46 -rendered in software.
    4.47 -
    4.48 -In addition, you may use (directfb-1.2.x)
    4.49 -
    4.50 -export SDL_DIRECTFB_YUV_UNDERLAY=1
    4.51 -
    4.52 -to make the YUV texture an underlay. This will make the cursor to
    4.53 -be shown.
    4.54 -
    4.55 -Simple Window Manager
    4.56 -=====================
    4.57 -
    4.58 -The driver has support for a very, very basic window manager you may
    4.59 -want to use when running with "wm=default". Use
    4.60 -
    4.61 -export SDL_DIRECTFB_WM=1
    4.62 -
    4.63 -to enable basic window borders. In order to have the window title rendered,
    4.64 -you need to have the following font installed:
    4.65 -
    4.66 -/usr/share/fonts/truetype/freefont/FreeSans.ttf
    4.67 -
    4.68 -OpenGL Support
    4.69 -==============
    4.70 -
    4.71 -The following instructions will give you *software* OpenGL. However this
    4.72 -works at least on all directfb supported platforms.
    4.73 -
    4.74 -As of this writing 20100802 you need to pull Mesa from git and do the following:
    4.75 -
    4.76 -------------------------
    4.77 -git clone git://anongit.freedesktop.org/git/mesa/mesa
    4.78 -cd mesa 
    4.79 -git checkout 2c9fdaf7292423c157fc79b5ce43f0f199dd753a
    4.80 -------------------------
    4.81 -
    4.82 -Edit configs/linux-directfb so that the Directories-section looks like
    4.83 -------------------------
    4.84 -# Directories
    4.85 -SRC_DIRS     = mesa glu 
    4.86 -GLU_DIRS     = sgi
    4.87 -DRIVER_DIRS  = directfb
    4.88 -PROGRAM_DIRS = 
    4.89 -------------------------
    4.90 -
    4.91 -make linux-directfb
    4.92 -make
    4.93 -
    4.94 -echo Installing - please enter sudo pw.
    4.95 -
    4.96 -sudo make install INSTALL_DIR=/usr/local/dfb_GL
    4.97 -cd src/mesa/drivers/directfb
    4.98 -make
    4.99 -sudo make install INSTALL_DIR=/usr/local/dfb_GL
   4.100 -------------------------
   4.101 -
   4.102 -To run the SDL - testprograms:
   4.103 -
   4.104 -export SDL_VIDEODRIVER=directfb
   4.105 -export LD_LIBRARY_PATH=/usr/local/dfb_GL/lib
   4.106 -export LD_PRELOAD=/usr/local/dfb_GL/libGL.so.7
   4.107 -
   4.108 -./testgl
   4.109 -
     5.1 --- a/README-dynapi.txt	Mon Jul 28 10:54:25 2014 -0400
     5.2 +++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
     5.3 @@ -1,130 +0,0 @@
     5.4 -================================================================================
     5.5 -Dynamic API
     5.6 -================================================================================
     5.7 -Originally posted by Ryan at https://plus.google.com/103391075724026391227/posts/TB8UfnDYu4U
     5.8 -
     5.9 -Background:
    5.10 -
    5.11 -- The Steam Runtime has (at least in theory) a really kick-ass build of SDL2, 
    5.12 -  but developers are shipping their own SDL2 with individual Steam games. 
    5.13 -  These games might stop getting updates, but a newer SDL2 might be needed later. 
    5.14 -  Certainly we'll always be fixing bugs in SDL, even if a new video target isn't 
    5.15 -  ever needed, and these fixes won't make it to a game shipping its own SDL.
    5.16 -- Even if we replace the SDL2 in those games with a compatible one, that is to 
    5.17 -  say, edit a developer's Steam depot (yuck!), there are developers that are 
    5.18 -  statically linking SDL2 that we can't do this for. We can't even force the 
    5.19 -  dynamic loader to ignore their SDL2 in this case, of course.
    5.20 -- If you don't ship an SDL2 with the game in some form, people that disabled the
    5.21 -  Steam Runtime, or just tried to run the game from the command line instead of 
    5.22 -  Steam might find themselves unable to run the game, due to a missing dependency.
    5.23 -- If you want to ship on non-Steam platforms like GOG or Humble Bundle, or target
    5.24 -  generic Linux boxes that may or may not have SDL2 installed, you have to ship 
    5.25 -  the library or risk a total failure to launch. So now, you might have to have 
    5.26 -  a non-Steam build plus a Steam build (that is, one with and one without SDL2 
    5.27 -  included), which is inconvenient if you could have had one universal build 
    5.28 -  that works everywhere.
    5.29 -- We like the zlib license, but the biggest complaint from the open source 
    5.30 -  community about the license change is the static linking. The LGPL forced this 
    5.31 -  as a legal, not technical issue, but zlib doesn't care. Even those that aren't
    5.32 -  concerned about the GNU freedoms found themselves solving the same problems: 
    5.33 -  swapping in a newer SDL to an older game often times can save the day. 
    5.34 -  Static linking stops this dead.
    5.35 -
    5.36 -So here's what we did:
    5.37 -
    5.38 -SDL now has, internally, a table of function pointers. So, this is what SDL_Init
    5.39 -now looks like:
    5.40 -
    5.41 -    UInt32 SDL_Init(Uint32 flags)
    5.42 -    {
    5.43 -        return jump_table.SDL_Init(flags);
    5.44 -    }
    5.45 -
    5.46 -Except that is all done with a bunch of macro magic so we don't have to maintain
    5.47 -every one of these.
    5.48 -
    5.49 -What is jump_table.SDL_init()? Eventually, that's a function pointer of the real
    5.50 -SDL_Init() that you've been calling all this time. But at startup, it looks more 
    5.51 -like this:
    5.52 -
    5.53 -    Uint32 SDL_Init_DEFAULT(Uint32 flags)
    5.54 -    {
    5.55 -        SDL_InitDynamicAPI();
    5.56 -        return jump_table.SDL_Init(flags);
    5.57 -    }
    5.58 -
    5.59 -SDL_InitDynamicAPI() fills in jump_table with all the actual SDL function 
    5.60 -pointers, which means that this _DEFAULT function never gets called again. 
    5.61 -First call to any SDL function sets the whole thing up.
    5.62 -
    5.63 -So you might be asking, what was the value in that? Isn't this what the operating
    5.64 -system's dynamic loader was supposed to do for us? Yes, but now we've got this 
    5.65 -level of indirection, we can do things like this:
    5.66 -
    5.67 -    export SDL_DYNAMIC_API=/my/actual/libSDL-2.0.so.0
    5.68 -    ./MyGameThatIsStaticallyLinkedToSDL2
    5.69 -
    5.70 -And now, this game that is staticallly linked to SDL, can still be overridden 
    5.71 -with a newer, or better, SDL. The statically linked one will only be used as 
    5.72 -far as calling into the jump table in this case. But in cases where no override
    5.73 -is desired, the statically linked version will provide its own jump table, 
    5.74 -and everyone is happy.
    5.75 -
    5.76 -So now:
    5.77 -- Developers can statically link SDL, and users can still replace it. 
    5.78 -  (We'd still rather you ship a shared library, though!)
    5.79 -- Developers can ship an SDL with their game, Valve can override it for, say, 
    5.80 -  new features on SteamOS, or distros can override it for their own needs, 
    5.81 -  but it'll also just work in the default case.
    5.82 -- Developers can ship the same package to everyone (Humble Bundle, GOG, etc), 
    5.83 -  and it'll do the right thing.
    5.84 -- End users (and Valve) can update a game's SDL in almost any case, 
    5.85 -  to keep abandoned games running on newer platforms.
    5.86 -- Everyone develops with SDL exactly as they have been doing all along. 
    5.87 -  Same headers, same ABI. Just get the latest version to enable this magic.
    5.88 -
    5.89 -
    5.90 -A little more about SDL_InitDynamicAPI():
    5.91 -
    5.92 -Internally, InitAPI does some locking to make sure everything waits until a 
    5.93 -single thread initializes everything (although even SDL_CreateThread() goes 
    5.94 -through here before spinning a thread, too), and then decides if it should use
    5.95 -an external SDL library. If not, it sets up the jump table using the current 
    5.96 -SDL's function pointers (which might be statically linked into a program, or in
    5.97 -a shared library of its own). If so, it loads that library and looks for and 
    5.98 -calls a single function:
    5.99 -
   5.100 -    SInt32 SDL_DYNAPI_entry(Uint32 version, void *table, Uint32 tablesize);
   5.101 -
   5.102 -That function takes a version number (more on that in a moment), the address of
   5.103 -the jump table, and the size, in bytes, of the table. 
   5.104 -Now, we've got policy here: this table's layout never changes; new stuff gets 
   5.105 -added to the end. Therefore SDL_DYNAPI_entry() knows that it can provide all 
   5.106 -the needed functions if tablesize <= sizeof its own jump table. If tablesize is
   5.107 -bigger (say, SDL 2.0.4 is trying to load SDL 2.0.3), then we know to abort, but
   5.108 -if it's smaller, we know we can provide the entire API that the caller needs.
   5.109 -
   5.110 -The version variable is a failsafe switch. 
   5.111 -Right now it's always 1. This number changes when there are major API changes 
   5.112 -(so we know if the tablesize might be smaller, or entries in it have changed). 
   5.113 -Right now SDL_DYNAPI_entry gives up if the version doesn't match, but it's not 
   5.114 -inconceivable to have a small dispatch library that only supplies this one 
   5.115 -function and loads different, otherwise-incompatible SDL libraries and has the
   5.116 -right one initialize the jump table based on the version. For something that 
   5.117 -must generically catch lots of different versions of SDL over time, like the 
   5.118 -Steam Client, this isn't a bad option.
   5.119 -
   5.120 -Finally, I'm sure some people are reading this and thinking,
   5.121 -"I don't want that overhead in my project!"  
   5.122 -To which I would point out that the extra function call through the jump table 
   5.123 -probably wouldn't even show up in a profile, but lucky you: this can all be 
   5.124 -disabled. You can build SDL without this if you absolutely must, but we would 
   5.125 -encourage you not to do that. However, on heavily locked down platforms like 
   5.126 -iOS, or maybe when debugging,  it makes sense to disable it. The way this is 
   5.127 -designed in SDL, you just have to change one #define, and the entire system 
   5.128 -vaporizes out, and SDL functions exactly like it always did. Most of it is 
   5.129 -macro magic, so the system is contained to one C file and a few headers. 
   5.130 -However, this is on by default and you have to edit a header file to turn it 
   5.131 -off. Our hopes is that if we make it easy to disable, but not too easy, 
   5.132 -everyone will ultimately be able to get what they want, but we've gently 
   5.133 -nudged everyone towards what we think is the best solution.
     6.1 --- a/README-gesture.txt	Mon Jul 28 10:54:25 2014 -0400
     6.2 +++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
     6.3 @@ -1,72 +0,0 @@
     6.4 -===========================================================================
     6.5 -Dollar Gestures
     6.6 -===========================================================================
     6.7 -SDL Provides an implementation of the $1 gesture recognition system. This allows for recording, saving, loading, and performing single stroke gestures.
     6.8 -
     6.9 -Gestures can be performed with any number of fingers (the centroid of the fingers must follow the path of the gesture), but the number of fingers must be constant (a finger cannot go down in the middle of a gesture). The path of a gesture is considered the path from the time when the final finger went down, to the first time any finger comes up. 
    6.10 -
    6.11 -Dollar gestures are assigned an Id based on a hash function. This is guaranteed to remain constant for a given gesture. There is a (small) chance that two different gestures will be assigned the same ID. In this case, simply re-recording one of the gestures should result in a different ID.
    6.12 -
    6.13 -Recording:
    6.14 -----------
    6.15 -To begin recording on a touch device call:
    6.16 -SDL_RecordGesture(SDL_TouchID touchId), where touchId is the id of the touch device you wish to record on, or -1 to record on all connected devices.
    6.17 -
    6.18 -Recording terminates as soon as a finger comes up. Recording is acknowledged by an SDL_DOLLARRECORD event.
    6.19 -A SDL_DOLLARRECORD event is a dgesture with the following fields:
    6.20 -
    6.21 -event.dgesture.touchId   - the Id of the touch used to record the gesture.
    6.22 -event.dgesture.gestureId - the unique id of the recorded gesture.
    6.23 -
    6.24 -
    6.25 -Performing:
    6.26 ------------
    6.27 -As long as there is a dollar gesture assigned to a touch, every finger-up event will also cause an SDL_DOLLARGESTURE event with the following fields:
    6.28 -
    6.29 -event.dgesture.touchId    - the Id of the touch which performed the gesture.
    6.30 -event.dgesture.gestureId  - the unique id of the closest gesture to the performed stroke.
    6.31 -event.dgesture.error      - the difference between the gesture template and the actual performed gesture. Lower error is a better match.
    6.32 -event.dgesture.numFingers - the number of fingers used to draw the stroke.
    6.33 -
    6.34 -Most programs will want to define an appropriate error threshold and check to be sure that the error of a gesture is not abnormally high (an indicator that no gesture was performed).
    6.35 -
    6.36 -
    6.37 -
    6.38 -Saving:
    6.39 --------
    6.40 -To save a template, call SDL_SaveDollarTemplate(gestureId, dst) where gestureId is the id of the gesture you want to save, and dst is an SDL_RWops pointer to the file where the gesture will be stored.
    6.41 -
    6.42 -To save all currently loaded templates, call SDL_SaveAllDollarTemplates(dst) where dst is an SDL_RWops pointer to the file where the gesture will be stored.
    6.43 -
    6.44 -Both functions return the number of gestures successfully saved.
    6.45 -
    6.46 -
    6.47 -Loading:
    6.48 ---------
    6.49 -To load templates from a file, call SDL_LoadDollarTemplates(touchId,src) where touchId is the id of the touch to load to (or -1 to load to all touch devices), and src is an SDL_RWops pointer to a gesture save file. 
    6.50 -
    6.51 -SDL_LoadDollarTemplates returns the number of templates successfully loaded.
    6.52 -
    6.53 -
    6.54 -
    6.55 -===========================================================================
    6.56 -Multi Gestures
    6.57 -===========================================================================
    6.58 -SDL provides simple support for pinch/rotate/swipe gestures. 
    6.59 -Every time a finger is moved an SDL_MULTIGESTURE event is sent with the following fields:
    6.60 -
    6.61 -event.mgesture.touchId - the Id of the touch on which the gesture was performed.
    6.62 -event.mgesture.x       - the normalized x coordinate of the gesture. (0..1)
    6.63 -event.mgesture.y       - the normalized y coordinate of the gesture. (0..1)
    6.64 -event.mgesture.dTheta  - the amount that the fingers rotated during this motion.
    6.65 -event.mgesture.dDist   - the amount that the fingers pinched during this motion.
    6.66 -event.mgesture.numFingers - the number of fingers used in the gesture.
    6.67 -
    6.68 -
    6.69 -===========================================================================
    6.70 -Notes
    6.71 -===========================================================================
    6.72 -For a complete example see test/testgesture.c
    6.73 -
    6.74 -Please direct questions/comments to:
    6.75 -   jim.tla+sdl_touch@gmail.com
     7.1 --- a/README-hg.txt	Mon Jul 28 10:54:25 2014 -0400
     7.2 +++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
     7.3 @@ -1,23 +0,0 @@
     7.4 -The latest development version of SDL is available via Mercurial.
     7.5 -Mercurial allows you to get up-to-the-minute fixes and enhancements;
     7.6 -as a developer works on a source tree, you can use "hg" to mirror that
     7.7 -source tree instead of waiting for an official release. Please look
     7.8 -at the Mercurial website ( http://mercurial.selenic.com/ ) for more
     7.9 -information on using hg, where you can also download software for
    7.10 -Mac OS X, Windows, and Unix systems.
    7.11 -
    7.12 -  hg clone http://hg.libsdl.org/SDL
    7.13 -
    7.14 -If you are building SDL with an IDE, you will need to copy the file
    7.15 -include/SDL_config.h.default to include/SDL_config.h before building.
    7.16 -
    7.17 -If you are building SDL via configure, you will need to run autogen.sh
    7.18 -before running configure.
    7.19 -
    7.20 -There is a web interface to the subversion repository at:
    7.21 -
    7.22 -	http://hg.libsdl.org/SDL/
    7.23 -
    7.24 -There is an RSS feed available at that URL, for those that want to
    7.25 -track commits in real time.
    7.26 -
     8.1 --- a/README-ios.txt	Mon Jul 28 10:54:25 2014 -0400
     8.2 +++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
     8.3 @@ -1,222 +0,0 @@
     8.4 -==============================================================================
     8.5 -Building the Simple DirectMedia Layer for iPhone OS 5.1
     8.6 -==============================================================================
     8.7 -
     8.8 -Requirements: Mac OS X v10.5 or later and the iPhone SDK.
     8.9 -
    8.10 -Instructions:
    8.11 -1.  Open SDL.xcodeproj (located in Xcode-iOS/SDL) in XCode.
    8.12 -2.  Select your desired target, and hit build.
    8.13 -
    8.14 -There are three build targets:
    8.15 -- libSDL.a:
    8.16 -	Build SDL as a statically linked library
    8.17 -- testsdl
    8.18 -	Build a test program (there are known test failures which are fine)
    8.19 -- Template:
    8.20 -	Package a project template together with the SDL for iPhone static libraries and copies of the SDL headers.  The template includes proper references to the SDL library and headers, skeleton code for a basic SDL program, and placeholder graphics for the application icon and startup screen.
    8.21 -
    8.22 -==============================================================================
    8.23 -Build SDL for iOS from the command line
    8.24 -==============================================================================
    8.25 -
    8.26 -1. cd (PATH WHERE THE SDL CODE IS)/build-scripts
    8.27 -2. ./iosbuild.sh
    8.28 -
    8.29 -If everything goes fine, you should see a build/ios directory, inside there's
    8.30 -two directories "lib" and "include". 
    8.31 -"include" contains a copy of the SDL headers that you'll need for your project,
    8.32 -make sure to configure XCode to look for headers there.
    8.33 -"lib" contains find two files, libSDL2.a and libSDL2main.a, you have to add both 
    8.34 -to your XCode project. These libraries contain three architectures in them,
    8.35 -armv6 for legacy devices, armv7, and i386 (for the simulator).
    8.36 -By default, iosbuild.sh will autodetect the SDK version you have installed using 
    8.37 -xcodebuild -showsdks, and build for iOS >= 3.0, you can override this behaviour 
    8.38 -by setting the MIN_OS_VERSION variable, ie:
    8.39 -
    8.40 -MIN_OS_VERSION=4.2 ./iosbuild.sh
    8.41 -
    8.42 -==============================================================================
    8.43 -Using the Simple DirectMedia Layer for iOS
    8.44 -==============================================================================
    8.45 -
    8.46 -FIXME: This needs to be updated for the latest methods
    8.47 -
    8.48 -Here is the easiest method:
    8.49 -1.  Build the SDL libraries (libSDL.a and libSDLSimulator.a) and the iPhone SDL Application template.
    8.50 -1.  Install the iPhone SDL Application template by copying it to one of XCode's template directories.  I recommend creating a directory called "SDL" in "/Developer/Platforms/iOS.platform/Developer/Library/XCode/Project Templates/" and placing it there.
    8.51 -2.  Start a new project using the template.  The project should be immediately ready for use with SDL.
    8.52 -
    8.53 -Here is a more manual method:
    8.54 -1.  Create a new iPhone view based application.
    8.55 -2.  Build the SDL static libraries (libSDL.a and libSDLSimulator.a) for iPhone and include them in your project.  XCode will ignore the library that is not currently of the correct architecture, hence your app will work both on iPhone and in the iPhone Simulator.
    8.56 -3.  Include the SDL header files in your project.
    8.57 -4.  Remove the ApplicationDelegate.h and ApplicationDelegate.m files -- SDL for iPhone provides its own UIApplicationDelegate.  Remove MainWindow.xib -- SDL for iPhone produces its user interface programmatically.
    8.58 -5.  Delete the contents of main.m and program your app as a regular SDL program instead.  You may replace main.m with your own main.c, but you must tell XCode not to use the project prefix file, as it includes Objective-C code.
    8.59 -
    8.60 -==============================================================================
    8.61 -Notes -- Application events
    8.62 -==============================================================================
    8.63 -
    8.64 -On iOS the application goes through a fixed life cycle and you will get
    8.65 -notifications of state changes via application events. When these events
    8.66 -are delivered you must handle them in an event callback because the OS may
    8.67 -not give you any processing time after the events are delivered.
    8.68 -
    8.69 -e.g.
    8.70 -
    8.71 -int HandleAppEvents(void *userdata, SDL_Event *event)
    8.72 -{
    8.73 -    switch (event->type)
    8.74 -    {
    8.75 -    case SDL_APP_TERMINATING:
    8.76 -        /* Terminate the app.
    8.77 -           Shut everything down before returning from this function.
    8.78 -        */
    8.79 -        return 0;
    8.80 -    case SDL_APP_LOWMEMORY:
    8.81 -        /* You will get this when your app is paused and iOS wants more memory.
    8.82 -           Release as much memory as possible.
    8.83 -        */
    8.84 -        return 0;
    8.85 -    case SDL_APP_WILLENTERBACKGROUND:
    8.86 -        /* Prepare your app to go into the background.  Stop loops, etc.
    8.87 -           This gets called when the user hits the home button, or gets a call.
    8.88 -        */
    8.89 -        return 0;
    8.90 -    case SDL_APP_DIDENTERBACKGROUND:
    8.91 -        /* This will get called if the user accepted whatever sent your app to the background.
    8.92 -           If the user got a phone call and canceled it, you'll instead get an SDL_APP_DIDENTERFOREGROUND event and restart your loops.
    8.93 -           When you get this, you have 5 seconds to save all your state or the app will be terminated.
    8.94 -           Your app is NOT active at this point.
    8.95 -        */
    8.96 -        return 0;
    8.97 -    case SDL_APP_WILLENTERFOREGROUND:
    8.98 -        /* This call happens when your app is coming back to the foreground.
    8.99 -           Restore all your state here.
   8.100 -        */
   8.101 -        return 0;
   8.102 -    case SDL_APP_DIDENTERFOREGROUND:
   8.103 -        /* Restart your loops here.
   8.104 -           Your app is interactive and getting CPU again.
   8.105 -        */
   8.106 -        return 0;
   8.107 -    default:
   8.108 -        /* No special processing, add it to the event queue */
   8.109 -        return 1;
   8.110 -    }
   8.111 -}
   8.112 -
   8.113 -int main(int argc, char *argv[])
   8.114 -{
   8.115 -    SDL_SetEventFilter(HandleAppEvents, NULL);
   8.116 -
   8.117 -    ... run your main loop
   8.118 -
   8.119 -    return 0;
   8.120 -}
   8.121 -
   8.122 -    
   8.123 -==============================================================================
   8.124 -Notes -- Accelerometer as Joystick
   8.125 -==============================================================================
   8.126 -
   8.127 -SDL for iPhone supports polling the built in accelerometer as a joystick device.  For an example on how to do this, see the accelerometer.c in the demos directory.
   8.128 -
   8.129 -The main thing to note when using the accelerometer with SDL is that while the iPhone natively reports accelerometer as floating point values in units of g-force, SDL_JoystickGetAxis reports joystick values as signed integers.  Hence, in order to convert between the two, some clamping and scaling is necessary on the part of the iPhone SDL joystick driver.  To convert SDL_JoystickGetAxis reported values BACK to units of g-force, simply multiply the values by SDL_IPHONE_MAX_GFORCE / 0x7FFF.
   8.130 -
   8.131 -==============================================================================
   8.132 -Notes -- OpenGL ES
   8.133 -==============================================================================
   8.134 -
   8.135 -Your SDL application for iPhone uses OpenGL ES for video by default.
   8.136 -
   8.137 -OpenGL ES for iPhone supports several display pixel formats, such as RGBA8 and RGB565, which provide a 32 bit and 16 bit color buffer respectively.  By default, the implementation uses RGB565, but you may use RGBA8 by setting each color component to 8 bits in SDL_GL_SetAttribute.
   8.138 -
   8.139 -If your application doesn't use OpenGL's depth buffer, you may find significant performance improvement by setting SDL_GL_DEPTH_SIZE to 0.
   8.140 -
   8.141 -Finally, if your application completely redraws the screen each frame, you may find significant performance improvement by setting the attribute SDL_GL_RETAINED_BACKING to 1.
   8.142 -
   8.143 -==============================================================================
   8.144 -Notes -- Keyboard
   8.145 -==============================================================================
   8.146 -
   8.147 -The SDL keyboard API has been extended to support on-screen keyboards:
   8.148 -
   8.149 -void SDL_StartTextInput()
   8.150 -	-- enables text events and reveals the onscreen keyboard.
   8.151 -void SDL_StopTextInput()
   8.152 -	-- disables text events and hides the onscreen keyboard.
   8.153 -SDL_bool SDL_IsTextInputActive()
   8.154 -	-- returns whether or not text events are enabled (and the onscreen keyboard is visible)
   8.155 -
   8.156 -==============================================================================
   8.157 -Notes -- Reading and Writing files
   8.158 -==============================================================================
   8.159 -
   8.160 -Each application installed on iPhone resides in a sandbox which includes its own Application Home directory.  Your application may not access files outside this directory.
   8.161 -
   8.162 -Once your application is installed its directory tree looks like:
   8.163 -
   8.164 -MySDLApp Home/
   8.165 -	MySDLApp.app
   8.166 -	Documents/
   8.167 -	Library/
   8.168 -		Preferences/
   8.169 -	tmp/
   8.170 -
   8.171 -When your SDL based iPhone application starts up, it sets the working directory to the main bundle (MySDLApp Home/MySDLApp.app), where your application resources are stored.  You cannot write to this directory.  Instead, I advise you to write document files to "../Documents/" and preferences to "../Library/Preferences".  
   8.172 -
   8.173 -More information on this subject is available here:
   8.174 -http://developer.apple.com/library/ios/#documentation/iPhone/Conceptual/iPhoneOSProgrammingGuide/Introduction/Introduction.html
   8.175 -
   8.176 -==============================================================================
   8.177 -Notes -- iPhone SDL limitations
   8.178 -==============================================================================
   8.179 -
   8.180 -Windows:
   8.181 -	Full-size, single window applications only.  You cannot create multi-window SDL applications for iPhone OS.  The application window will fill the display, though you have the option of turning on or off the menu-bar (pass SDL_CreateWindow the flag SDL_WINDOW_BORDERLESS).
   8.182 -
   8.183 -Textures:
   8.184 -	The optimal texture formats on iOS are SDL_PIXELFORMAT_ABGR8888, SDL_PIXELFORMAT_ABGR8888, SDL_PIXELFORMAT_BGR888, and SDL_PIXELFORMAT_RGB24 pixel formats.
   8.185 -
   8.186 -Loading Shared Objects:
   8.187 -	This is disabled by default since it seems to break the terms of the iPhone SDK agreement.  It can be re-enabled in SDL_config_iphoneos.h.
   8.188 -
   8.189 -==============================================================================
   8.190 -Game Center 
   8.191 -==============================================================================
   8.192 -
   8.193 -Game Center integration requires that you break up your main loop in order to yield control back to the system. In other words, instead of running an endless main loop, you run each frame in a callback function, using:
   8.194 -    
   8.195 -int SDL_iPhoneSetAnimationCallback(SDL_Window * window, int interval, void (*callback)(void*), void *callbackParam);
   8.196 -
   8.197 -This will set up the given function to be called back on the animation callback, and then you have to return from main() to let the Cocoa event loop run.
   8.198 -
   8.199 -e.g.
   8.200 -
   8.201 -extern "C"
   8.202 -void ShowFrame(void*)
   8.203 -{
   8.204 -    ... do event handling, frame logic and rendering
   8.205 -}
   8.206 -
   8.207 -int main(int argc, char *argv[])
   8.208 -{
   8.209 -   ... initialize game ...
   8.210 -
   8.211 -#if __IPHONEOS__
   8.212 -        // Initialize the Game Center for scoring and matchmaking
   8.213 -        InitGameCenter();
   8.214 -
   8.215 -        // Set up the game to run in the window animation callback on iOS
   8.216 -        // so that Game Center and so forth works correctly.
   8.217 -        SDL_iPhoneSetAnimationCallback(window, 1, ShowFrame, NULL);
   8.218 -#else
   8.219 -        while ( running ) {
   8.220 -                ShowFrame(0);
   8.221 -                DelayFrame();
   8.222 -        }
   8.223 -#endif
   8.224 -        return 0;
   8.225 -}
     9.1 --- a/README-linux.txt	Mon Jul 28 10:54:25 2014 -0400
     9.2 +++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
     9.3 @@ -1,83 +0,0 @@
     9.4 -================================================================================
     9.5 -Simple DirectMedia Layer for Linux
     9.6 -================================================================================
     9.7 -
     9.8 -By default SDL will only link against glibc, the rest of the features will be
     9.9 -enabled dynamically at runtime depending on the available features on the target
    9.10 -system. So, for example if you built SDL with Xinerama support and the target
    9.11 -system does not have the Xinerama libraries installed, it will be disabled
    9.12 -at runtime, and you won't get a missing library error, at least with the 
    9.13 -default configuration parameters.
    9.14 -
    9.15 -
    9.16 -================================================================================
    9.17 -Build Dependencies
    9.18 -================================================================================
    9.19 -    
    9.20 -Ubuntu 13.04, all available features enabled:
    9.21 -
    9.22 -sudo apt-get install build-essential mercurial make cmake autoconf automake \
    9.23 -libtool libasound2-dev libpulse-dev libaudio-dev libx11-dev libxext-dev \
    9.24 -libxrandr-dev libxcursor-dev libxi-dev libxinerama-dev libxxf86vm-dev \
    9.25 -libxss-dev libgl1-mesa-dev libesd0-dev libdbus-1-dev libudev-dev \
    9.26 -libgles1-mesa-dev libgles2-mesa-dev libegl1-mesa-dev
    9.27 -
    9.28 -Ubuntu 14.04 can also add "libwayland-dev libmirclient-dev libxkbcommon-dev"
    9.29 -to that command line for Wayland and Mir support.
    9.30 -
    9.31 -NOTES:
    9.32 -- This includes all the audio targets except arts, because Ubuntu pulled the 
    9.33 -  artsc0-dev package, but in theory SDL still supports it.
    9.34 -- DirectFB isn't included because the configure script (currently) fails to find
    9.35 -  it at all. You can do "sudo apt-get install libdirectfb-dev" and fix the 
    9.36 -  configure script to include DirectFB support. Send patches.  :)
    9.37 -
    9.38 -
    9.39 -================================================================================
    9.40 -Joystick does not work
    9.41 -================================================================================
    9.42 -
    9.43 -If you compiled or are using a version of SDL with udev support (and you should!)
    9.44 -there's a few issues that may cause SDL to fail to detect your joystick. To
    9.45 -debug this, start by installing the evtest utility. On Ubuntu/Debian:
    9.46 -
    9.47 -    sudo apt-get install evtest
    9.48 -    
    9.49 -Then run:
    9.50 -    
    9.51 -    sudo evtest
    9.52 -    
    9.53 -You'll hopefully see your joystick listed along with a name like "/dev/input/eventXX"
    9.54 -Now run:
    9.55 -    
    9.56 -    cat /dev/input/event/XX
    9.57 -
    9.58 -If you get a permission error, you need to set a udev rule to change the mode of
    9.59 -your device (see below)    
    9.60 -    
    9.61 -Also, try:
    9.62 -    
    9.63 -    sudo udevadm info --query=all --name=input/eventXX
    9.64 -    
    9.65 -If you see a line stating ID_INPUT_JOYSTICK=1, great, if you don't see it,
    9.66 -you need to set up an udev rule to force this variable.
    9.67 -
    9.68 -A combined rule for the Saitek Pro Flight Rudder Pedals to fix both issues looks 
    9.69 -like:
    9.70 -    
    9.71 -   SUBSYSTEM=="input", ATTRS{idProduct}=="0763", ATTRS{idVendor}=="06a3", MODE="0666", ENV{ID_INPUT_JOYSTICK}="1"
    9.72 -   SUBSYSTEM=="input", ATTRS{idProduct}=="0764", ATTRS{idVendor}=="06a3", MODE="0666", ENV{ID_INPUT_JOYSTICK}="1"
    9.73 -   
    9.74 -You can set up similar rules for your device by changing the values listed in
    9.75 -idProduct and idVendor. To obtain these values, try:
    9.76 -    
    9.77 -    sudo udevadm info -a --name=input/eventXX | grep idVendor
    9.78 -    sudo udevadm info -a --name=input/eventXX | grep idProduct
    9.79 -    
    9.80 -If multiple values come up for each of these, the one you want is the first one of each.    
    9.81 -
    9.82 -On other systems which ship with an older udev (such as CentOS), you may need
    9.83 -to set up a rule such as:
    9.84 -    
    9.85 -    SUBSYSTEM=="input", ENV{ID_CLASS}=="joystick", ENV{ID_INPUT_JOYSTICK}="1"
    9.86 -
    10.1 --- a/README-macosx.txt	Mon Jul 28 10:54:25 2014 -0400
    10.2 +++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
    10.3 @@ -1,226 +0,0 @@
    10.4 -==============================================================================
    10.5 -Using the Simple DirectMedia Layer with Mac OS X
    10.6 -==============================================================================
    10.7 -
    10.8 -These instructions are for people using Apple's Mac OS X (pronounced
    10.9 -"ten").
   10.10 -
   10.11 -From the developer's point of view, OS X is a sort of hybrid Mac and
   10.12 -Unix system, and you have the option of using either traditional
   10.13 -command line tools or Apple's IDE Xcode.
   10.14 -
   10.15 -To build SDL using the command line, use the standard configure and make
   10.16 -process:
   10.17 -
   10.18 -	./configure
   10.19 -	make
   10.20 -	sudo make install
   10.21 -
   10.22 -You can also build SDL as a Universal library (a single binary for both
   10.23 -32-bit and 64-bit Intel architectures), on Mac OS X 10.7 and newer, by using
   10.24 -the fatbuild.sh script in build-scripts:
   10.25 -	sh build-scripts/fatbuild.sh
   10.26 -	sudo build-scripts/fatbuild.sh install
   10.27 -This script builds SDL with 10.5 ABI compatibility on i386 and 10.6
   10.28 -ABI compatibility on x86_64 architectures.  For best compatibility you
   10.29 -should compile your application the same way.  A script which wraps
   10.30 -gcc to make this easy is provided in test/gcc-fat.sh
   10.31 -
   10.32 -Please note that building SDL requires at least Xcode 4.6 and the 10.7 SDK
   10.33 -(even if you target back to 10.5 systems). PowerPC support for Mac OS X has
   10.34 -been officially dropped as of SDL 2.0.2.
   10.35 -
   10.36 -To use the library once it's built, you essential have two possibilities:
   10.37 -use the traditional autoconf/automake/make method, or use Xcode.
   10.38 -
   10.39 -==============================================================================
   10.40 -Caveats for using SDL with Mac OS X
   10.41 -==============================================================================
   10.42 -
   10.43 -Some things you have to be aware of when using SDL on Mac OS X:
   10.44 -
   10.45 -- If you register your own NSApplicationDelegate (using [NSApp setDelegate:]),
   10.46 -  SDL will not register its own. This means that SDL will not terminate using
   10.47 -  SDL_Quit if it receives a termination request, it will terminate like a 
   10.48 -  normal app, and it will not send a SDL_DROPFILE when you request to open a
   10.49 -  file with the app. To solve these issues, put the following code in your 
   10.50 -  NSApplicationDelegate implementation:
   10.51 -
   10.52 -  - (NSApplicationTerminateReply)applicationShouldTerminate:(NSApplication *)sender
   10.53 -  {
   10.54 -      if (SDL_GetEventState(SDL_QUIT) == SDL_ENABLE) {
   10.55 -          SDL_Event event;
   10.56 -          event.type = SDL_QUIT;
   10.57 -          SDL_PushEvent(&event);
   10.58 -      }
   10.59 -
   10.60 -      return NSTerminateCancel;
   10.61 -  }
   10.62 -
   10.63 -  - (BOOL)application:(NSApplication *)theApplication openFile:(NSString *)filename
   10.64 -  {
   10.65 -      if (SDL_GetEventState(SDL_DROPFILE) == SDL_ENABLE) {
   10.66 -          SDL_Event event;
   10.67 -          event.type = SDL_DROPFILE;
   10.68 -          event.drop.file = SDL_strdup([filename UTF8String]);
   10.69 -          return (SDL_PushEvent(&event) > 0);
   10.70 -      }
   10.71 -
   10.72 -      return NO;
   10.73 -  }
   10.74 -
   10.75 -==============================================================================
   10.76 -Using the Simple DirectMedia Layer with a traditional Makefile
   10.77 -==============================================================================
   10.78 -
   10.79 -An existing autoconf/automake build system for your SDL app has good chances
   10.80 -to work almost unchanged on OS X. However, to produce a "real" Mac OS X binary
   10.81 -that you can distribute to users, you need to put the generated binary into a
   10.82 -so called "bundle", which basically is a fancy folder with a name like
   10.83 -"MyCoolGame.app".
   10.84 -
   10.85 -To get this build automatically, add something like the following rule to
   10.86 -your Makefile.am:
   10.87 -
   10.88 -bundle_contents = APP_NAME.app/Contents
   10.89 -APP_NAME_bundle: EXE_NAME
   10.90 -	mkdir -p $(bundle_contents)/MacOS
   10.91 -	mkdir -p $(bundle_contents)/Resources
   10.92 -	echo "APPL????" > $(bundle_contents)/PkgInfo
   10.93 -	$(INSTALL_PROGRAM) $< $(bundle_contents)/MacOS/
   10.94 -
   10.95 -You should replace EXE_NAME with the name of the executable. APP_NAME is what
   10.96 -will be visible to the user in the Finder. Usually it will be the same
   10.97 -as EXE_NAME but capitalized. E.g. if EXE_NAME is "testgame" then APP_NAME 
   10.98 -usually is "TestGame". You might also want to use @PACKAGE@ to use the package
   10.99 -name as specified in your configure.in file.
  10.100 -
  10.101 -If your project builds more than one application, you will have to do a bit
  10.102 -more. For each of your target applications, you need a separate rule.
  10.103 -
  10.104 -If you want the created bundles to be installed, you may want to add this
  10.105 -rule to your Makefile.am:
  10.106 -
  10.107 -install-exec-hook: APP_NAME_bundle
  10.108 -	rm -rf $(DESTDIR)$(prefix)/Applications/APP_NAME.app
  10.109 -	mkdir -p $(DESTDIR)$(prefix)/Applications/
  10.110 -	cp -r $< /$(DESTDIR)$(prefix)Applications/
  10.111 -
  10.112 -This rule takes the Bundle created by the rule from step 3 and installs them
  10.113 -into $(DESTDIR)$(prefix)/Applications/.
  10.114 -
  10.115 -Again, if you want to install multiple applications, you will have to augment
  10.116 -the make rule accordingly.
  10.117 -
  10.118 -
  10.119 -But beware! That is only part of the story! With the above, you end up with
  10.120 -a bare bone .app bundle, which is double clickable from the Finder. But
  10.121 -there are some more things you should do before shipping your product...
  10.122 -
  10.123 -1) The bundle right now probably is dynamically linked against SDL. That 
  10.124 -   means that when you copy it to another computer, *it will not run*,
  10.125 -   unless you also install SDL on that other computer. A good solution
  10.126 -   for this dilemma is to static link against SDL. On OS X, you can
  10.127 -   achieve that by linking against the libraries listed by
  10.128 -     sdl-config --static-libs
  10.129 -   instead of those listed by
  10.130 -     sdl-config --libs
  10.131 -   Depending on how exactly SDL is integrated into your build systems, the
  10.132 -   way to achieve that varies, so I won't describe it here in detail
  10.133 -2) Add an 'Info.plist' to your application. That is a special XML file which
  10.134 -   contains some meta-information about your application (like some copyright
  10.135 -   information, the version of your app, the name of an optional icon file,
  10.136 -   and other things). Part of that information is displayed by the Finder
  10.137 -   when you click on the .app, or if you look at the "Get Info" window.
  10.138 -   More information about Info.plist files can be found on Apple's homepage.
  10.139 -
  10.140 -
  10.141 -As a final remark, let me add that I use some of the techniques (and some
  10.142 -variations of them) in Exult and ScummVM; both are available in source on
  10.143 -the net, so feel free to take a peek at them for inspiration!
  10.144 -
  10.145 -
  10.146 -==============================================================================
  10.147 -Using the Simple DirectMedia Layer with Xcode
  10.148 -==============================================================================
  10.149 -
  10.150 -These instructions are for using Apple's Xcode IDE to build SDL applications.
  10.151 -
  10.152 -- First steps
  10.153 -
  10.154 -The first thing to do is to unpack the Xcode.tar.gz archive in the
  10.155 -top level SDL directory (where the Xcode.tar.gz archive resides).
  10.156 -Because Stuffit Expander will unpack the archive into a subdirectory,
  10.157 -you should unpack the archive manually from the command line:
  10.158 -	cd [path_to_SDL_source]
  10.159 -	tar zxf Xcode.tar.gz
  10.160 -This will create a new folder called Xcode, which you can browse
  10.161 -normally from the Finder.
  10.162 -
  10.163 -- Building the Framework
  10.164 -
  10.165 -The SDL Library is packaged as a framework bundle, an organized
  10.166 -relocatable folder hierarchy of executable code, interface headers,
  10.167 -and additional resources. For practical purposes, you can think of a 
  10.168 -framework as a more user and system-friendly shared library, whose library
  10.169 -file behaves more or less like a standard UNIX shared library.
  10.170 -
  10.171 -To build the framework, simply open the framework project and build it. 
  10.172 -By default, the framework bundle "SDL.framework" is installed in 
  10.173 -/Library/Frameworks. Therefore, the testers and project stationary expect
  10.174 -it to be located there. However, it will function the same in any of the
  10.175 -following locations:
  10.176 -
  10.177 -    ~/Library/Frameworks
  10.178 -    /Local/Library/Frameworks
  10.179 -    /System/Library/Frameworks
  10.180 -
  10.181 -- Build Options
  10.182 -    There are two "Build Styles" (See the "Targets" tab) for SDL.
  10.183 -    "Deployment" should be used if you aren't tweaking the SDL library.
  10.184 -    "Development" should be used to debug SDL apps or the library itself.
  10.185 -
  10.186 -- Building the Testers
  10.187 -    Open the SDLTest project and build away!
  10.188 -
  10.189 -- Using the Project Stationary
  10.190 -    Copy the stationary to the indicated folders to access it from
  10.191 -    the "New Project" and "Add target" menus. What could be easier?
  10.192 -
  10.193 -- Setting up a new project by hand
  10.194 -    Some of you won't want to use the Stationary so I'll give some tips:
  10.195 -    * Create a new "Cocoa Application"
  10.196 -    * Add src/main/macosx/SDLMain.m , .h and .nib to your project
  10.197 -    * Remove "main.c" from your project
  10.198 -    * Remove "MainMenu.nib" from your project
  10.199 -    * Add "$(HOME)/Library/Frameworks/SDL.framework/Headers" to include path
  10.200 -    * Add "$(HOME)/Library/Frameworks" to the frameworks search path
  10.201 -    * Add "-framework SDL -framework Foundation -framework AppKit" to "OTHER_LDFLAGS"
  10.202 -    * Set the "Main Nib File" under "Application Settings" to "SDLMain.nib"
  10.203 -    * Add your files
  10.204 -    * Clean and build
  10.205 -
  10.206 -- Building from command line
  10.207 -    Use pbxbuild in the same directory as your .pbproj file
  10.208 -
  10.209 -- Running your app
  10.210 -    You can send command line args to your app by either invoking it from
  10.211 -    the command line (in *.app/Contents/MacOS) or by entering them in the
  10.212 -    "Executables" panel of the target settings.
  10.213 -    
  10.214 -- Implementation Notes
  10.215 -    Some things that may be of interest about how it all works...
  10.216 -    * Working directory
  10.217 -        As defined in the SDL_main.m file, the working directory of your SDL app
  10.218 -        is by default set to its parent. You may wish to change this to better
  10.219 -        suit your needs.
  10.220 -    * You have a Cocoa App!
  10.221 -        Your SDL app is essentially a Cocoa application. When your app
  10.222 -        starts up and the libraries finish loading, a Cocoa procedure is called,
  10.223 -        which sets up the working directory and calls your main() method.
  10.224 -        You are free to modify your Cocoa app with generally no consequence 
  10.225 -        to SDL. You cannot, however, easily change the SDL window itself.
  10.226 -        Functionality may be added in the future to help this.
  10.227 -
  10.228 -
  10.229 -Known bugs are listed in the file "BUGS"
    11.1 --- a/README-nacl.txt	Mon Jul 28 10:54:25 2014 -0400
    11.2 +++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
    11.3 @@ -1,104 +0,0 @@
    11.4 -================================================================================
    11.5 -Simple DirectMedia Layer for Native Client
    11.6 -================================================================================
    11.7 -
    11.8 -Requirements: 
    11.9 -    
   11.10 -    * Native Client SDK (https://developer.chrome.com/native-client), 
   11.11 -      (tested with Pepper version 33 or higher).
   11.12 -
   11.13 -The SDL backend for Chrome's Native Client has been tested only with the PNaCl
   11.14 -toolchain, which generates binaries designed to run on ARM and x86_32/64 
   11.15 -platforms. This does not mean it won't work with the other toolchains!
   11.16 -
   11.17 -================================================================================
   11.18 -Building SDL for NaCl
   11.19 -================================================================================
   11.20 -
   11.21 -Set up the right environment variables (see naclbuild.sh), then configure SDL with:
   11.22 -
   11.23 -    configure --host=pnacl --prefix some/install/destination
   11.24 -    
   11.25 -Then "make". 
   11.26 -
   11.27 -As an example of how to create a deployable app a Makefile project is provided 
   11.28 -in test/nacl/Makefile, which includes some monkey patching of the common.mk file 
   11.29 -provided by NaCl, without which linking properly to SDL won't work (the search 
   11.30 -path can't be modified externally, so the linker won't find SDL's binaries unless 
   11.31 -you dump them into the SDK path, which is inconvenient).
   11.32 -Also provided in test/nacl is the required support file, such as index.html, 
   11.33 -manifest.json, etc.
   11.34 -SDL apps for NaCl run on a worker thread using the ppapi_simple infrastructure.
   11.35 -This allows for blocking calls on all the relevant systems (OpenGL ES, filesystem),
   11.36 -hiding the asynchronous nature of the browser behind the scenes...which is not the
   11.37 -same as making it disappear!
   11.38 -
   11.39 -
   11.40 -================================================================================
   11.41 -Running tests
   11.42 -================================================================================
   11.43 -
   11.44 -Due to the nature of NaCl programs, building and running SDL tests is not as
   11.45 -straightforward as one would hope. The script naclbuild.sh in build-scripts 
   11.46 -automates the process and should serve as a guide for users of SDL trying to build 
   11.47 -their own applications.
   11.48 -
   11.49 -Basic usage:
   11.50 -    
   11.51 -    ./naclbuild.sh path/to/pepper/toolchain (i.e. ~/naclsdk/pepper_35)
   11.52 -    
   11.53 -This will build testgles2.c by default.
   11.54 -
   11.55 -If you want to build a different test, for example testrendercopyex.c:
   11.56 -    
   11.57 -    SOURCES=~/sdl/SDL/test/testrendercopyex.c ./naclbuild.sh ~/naclsdk/pepper_35
   11.58 -    
   11.59 -Once the build finishes, you have to serve the contents with a web server (the
   11.60 -script will give you instructions on how to do that with Python).
   11.61 -
   11.62 -================================================================================
   11.63 -RWops and nacl_io
   11.64 -================================================================================
   11.65 -
   11.66 -SDL_RWops work transparently with nacl_io. Two functions control the mount points:
   11.67 -    
   11.68 -    int mount(const char* source, const char* target, 
   11.69 -                      const char* filesystemtype, 
   11.70 -                      unsigned long mountflags, const void *data);
   11.71 -    int umount(const char *target);
   11.72 -    
   11.73 -    For convenience, SDL will by default mount an httpfs tree at / before calling 
   11.74 -the app's main function. Such setting can be overridden by calling:
   11.75 -    
   11.76 -    umount("/");
   11.77 -
   11.78 -And then mounting a different filesystem at /
   11.79 -
   11.80 -It's important to consider that the asynchronous nature of file operations on a
   11.81 -browser is hidden from the application, effectively providing the developer with
   11.82 -a set of blocking file operations just like you get in a regular desktop 
   11.83 -environment, which eases the job of porting to Native Client, but also introduces 
   11.84 -a set of challenges of its own, in particular when big file sizes and slow 
   11.85 -connections are involved.
   11.86 -
   11.87 -For more information on how nacl_io and mount points work, see:
   11.88 -    
   11.89 -    https://developer.chrome.com/native-client/devguide/coding/nacl_io
   11.90 -    https://src.chromium.org/chrome/trunk/src/native_client_sdk/src/libraries/nacl_io/nacl_io.h
   11.91 -
   11.92 -To be able to save into the directory "/save/" (like backup of game) :
   11.93 -
   11.94 -    mount("", "/save", "html5fs", 0, "type=PERSISTENT");
   11.95 -
   11.96 -And add to manifest.json :
   11.97 -
   11.98 -  "permissions": [
   11.99 -     "unlimitedStorage"
  11.100 -  ]
  11.101 -
  11.102 -================================================================================
  11.103 -TODO - Known Issues
  11.104 -================================================================================
  11.105 -* Testing of all systems with a real application (something other than SDL's tests)
  11.106 -* Key events don't seem to work properly
  11.107 -
    12.1 --- a/README-pandora.txt	Mon Jul 28 10:54:25 2014 -0400
    12.2 +++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
    12.3 @@ -1,16 +0,0 @@
    12.4 -SDL 2.0 with open pandora console support ( http://openpandora.org/ )
    12.5 -=====================================================================
    12.6 -
    12.7 -- A pandora specific video driver was written to allow SDL 2.0 with OpenGL ES
    12.8 -support to work on the pandora under the framebuffer. This driver do not have
    12.9 -input support for now, so if you use it you will have to add your own control code.
   12.10 -The video driver name is "pandora" so if you have problem running it from
   12.11 -the framebuffer, try to set the following variable before starting your application :
   12.12 -"export SDL_VIDEODRIVER=pandora"
   12.13 -
   12.14 -- OpenGL ES support was added to the x11 driver, so it's working like the normal
   12.15 -x11 driver one with OpenGLX support, with SDL input event's etc..
   12.16 -
   12.17 -
   12.18 -David Carré (Cpasjuste)
   12.19 -cpasjuste@gmail.com
    13.1 --- a/README-platforms.txt	Mon Jul 28 10:54:25 2014 -0400
    13.2 +++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
    13.3 @@ -1,31 +0,0 @@
    13.4 -
    13.5 -This is a list of the platforms SDL supports, and who maintains them.
    13.6 -
    13.7 -Officially supported platforms
    13.8 -==============================
    13.9 -(code compiles, and thoroughly tested for release)
   13.10 -==============================
   13.11 -Windows XP/Vista/7/8
   13.12 -Mac OS X 10.5+
   13.13 -Linux 2.6+
   13.14 -iOS 5.1.1+
   13.15 -Android 2.3.3+
   13.16 -
   13.17 -Unofficially supported platforms
   13.18 -================================
   13.19 -(code compiles, but not thoroughly tested)
   13.20 -================================
   13.21 -FreeBSD
   13.22 -NetBSD
   13.23 -OpenBSD
   13.24 -Solaris
   13.25 -
   13.26 -Platforms supported by volunteers
   13.27 -=================================
   13.28 -Haiku - maintained by Axel Dörfler <axeld@pinc-software.de>
   13.29 -PSP - maintained by 527721088@qq.com
   13.30 -Pandora - maintained by Scott Smith <pickle136@sbcglobal.net>
   13.31 -NaCl - maintained by Gabriel Jacobo <gabomdq@gmail.com>
   13.32 -
   13.33 -Platforms that need maintainers
   13.34 -===============================
    14.1 --- a/README-porting.txt	Mon Jul 28 10:54:25 2014 -0400
    14.2 +++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
    14.3 @@ -1,61 +0,0 @@
    14.4 -
    14.5 -* Porting To A New Platform
    14.6 -
    14.7 -  The first thing you have to do when porting to a new platform, is look at
    14.8 -include/SDL_platform.h and create an entry there for your operating system.
    14.9 -The standard format is __PLATFORM__, where PLATFORM is the name of the OS.
   14.10 -Ideally SDL_platform.h will be able to auto-detect the system it's building
   14.11 -on based on C preprocessor symbols.
   14.12 -
   14.13 -There are two basic ways of building SDL at the moment:
   14.14 -
   14.15 -1. The "UNIX" way:  ./configure; make; make install
   14.16 -
   14.17 -   If you have a GNUish system, then you might try this.  Edit configure.in,
   14.18 -   take a look at the large section labelled:
   14.19 -	"Set up the configuration based on the target platform!"
   14.20 -   Add a section for your platform, and then re-run autogen.sh and build!
   14.21 -
   14.22 -2. Using an IDE:
   14.23 -
   14.24 -   If you're using an IDE or other non-configure build system, you'll probably
   14.25 -   want to create a custom SDL_config.h for your platform.  Edit SDL_config.h,
   14.26 -   add a section for your platform, and create a custom SDL_config_{platform}.h,
   14.27 -   based on SDL_config.h.minimal and SDL_config.h.in
   14.28 -
   14.29 -   Add the top level include directory to the header search path, and then add
   14.30 -   the following sources to the project:
   14.31 -	src/*.c
   14.32 -	src/atomic/*.c
   14.33 -	src/audio/*.c
   14.34 -	src/cpuinfo/*.c
   14.35 -	src/events/*.c
   14.36 -	src/file/*.c
   14.37 -	src/haptic/*.c
   14.38 -	src/joystick/*.c
   14.39 -	src/power/*.c
   14.40 -	src/render/*.c
   14.41 -	src/stdlib/*.c
   14.42 -	src/thread/*.c
   14.43 -	src/timer/*.c
   14.44 -	src/video/*.c
   14.45 -	src/audio/disk/*.c
   14.46 -	src/audio/dummy/*.c
   14.47 -	src/video/dummy/*.c
   14.48 -	src/haptic/dummy/*.c
   14.49 -	src/joystick/dummy/*.c
   14.50 -	src/main/dummy/*.c
   14.51 -	src/thread/generic/*.c
   14.52 -	src/timer/dummy/*.c
   14.53 -	src/loadso/dummy/*.c
   14.54 -
   14.55 -
   14.56 -Once you have a working library without any drivers, you can go back to each
   14.57 -of the major subsystems and start implementing drivers for your platform.
   14.58 -
   14.59 -If you have any questions, don't hesitate to ask on the SDL mailing list:
   14.60 -	http://www.libsdl.org/mailing-list.php
   14.61 -
   14.62 -Enjoy!
   14.63 -	Sam Lantinga				(slouken@libsdl.org)
   14.64 -
    15.1 --- a/README-psp.txt	Mon Jul 28 10:54:25 2014 -0400
    15.2 +++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
    15.3 @@ -1,17 +0,0 @@
    15.4 -SDL port for the Sony PSP contributed by 
    15.5 -   Captian Lex 
    15.6 -
    15.7 -Credit to
    15.8 -   Marcus R.Brown,Jim Paris,Matthew H for the original SDL 1.2 for PSP
    15.9 -   Geecko for his PSP GU lib "Glib2d"
   15.10 -
   15.11 -Building
   15.12 ---------
   15.13 -To build for the PSP, make sure psp-config is in the path and run:
   15.14 -   make -f Makefile.psp
   15.15 -
   15.16 -
   15.17 -
   15.18 -To Do
   15.19 -------
   15.20 -PSP Screen Keyboard
    16.1 --- a/README-raspberrypi.txt	Mon Jul 28 10:54:25 2014 -0400
    16.2 +++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
    16.3 @@ -1,161 +0,0 @@
    16.4 -================================================================================
    16.5 -SDL2 for Raspberry Pi
    16.6 -================================================================================
    16.7 -
    16.8 -Requirements:
    16.9 -
   16.10 -Raspbian (other Linux distros may work as well).
   16.11 -
   16.12 -================================================================================
   16.13 - Features
   16.14 -================================================================================
   16.15 -
   16.16 -* Works without X11
   16.17 -* Hardware accelerated OpenGL ES 2.x
   16.18 -* Sound via ALSA
   16.19 -* Input (mouse/keyboard/joystick) via EVDEV
   16.20 -* Hotplugging of input devices via UDEV
   16.21 -
   16.22 -================================================================================
   16.23 - Raspbian Build Dependencies
   16.24 -================================================================================
   16.25 -
   16.26 -sudo apt-get install libudev-dev libasound2-dev libdbus-1-dev
   16.27 -
   16.28 -You also need the VideoCore binary stuff that ships in /opt/vc for EGL and 
   16.29 -OpenGL ES 2.x, it usually comes pre installed, but in any case:
   16.30 -    
   16.31 -sudo apt-get install libraspberrypi0 libraspberrypi-bin libraspberrypi-dev
   16.32 -
   16.33 -================================================================================
   16.34 - Cross compiling from x86 Linux
   16.35 -================================================================================
   16.36 -
   16.37 -To cross compile SDL for Raspbian from your desktop machine, you'll need a
   16.38 -Raspbian system root and the cross compilation tools. We'll assume these tools
   16.39 -will be placed in /opt/rpi-tools
   16.40 -
   16.41 -    sudo git clone --depth 1 https://github.com/raspberrypi/tools /opt/rpi-tools
   16.42 -
   16.43 -You'll also need a Rasbian binary image.
   16.44 -Get it from: http://downloads.raspberrypi.org/raspbian_latest 
   16.45 -After unzipping, you'll get file with a name like: <date>-wheezy-raspbian.img
   16.46 -Let's assume the sysroot will be built in /opt/rpi-sysroot.
   16.47 -
   16.48 -    export SYSROOT=/opt/rpi-sysroot
   16.49 -    sudo kpartx -a -v <path_to_raspbian_image>.img
   16.50 -    sudo mount -o loop /dev/mapper/loop0p2 /mnt
   16.51 -    sudo cp -r /mnt $SYSROOT
   16.52 -    sudo apt-get install qemu binfmt-support qemu-user-static
   16.53 -    sudo cp /usr/bin/qemu-arm-static $SYSROOT/usr/bin
   16.54 -    sudo mount --bind /dev $SYSROOT/dev
   16.55 -    sudo mount --bind /proc $SYSROOT/proc
   16.56 -    sudo mount --bind /sys $SYSROOT/sys
   16.57 -
   16.58 -Now, before chrooting into the ARM sysroot, you'll need to apply a workaround,
   16.59 -edit $SYSROOT/etc/ld.so.preload and comment out all lines in it.
   16.60 -
   16.61 -    sudo chroot $SYSROOT
   16.62 -    apt-get install libudev-dev libasound2-dev libdbus-1-dev libraspberrypi0 libraspberrypi-bin libraspberrypi-dev libx11-dev libxext-dev libxrandr-dev libxcursor-dev libxi-dev libxinerama-dev libxxf86vm-dev libxss-dev
   16.63 -    exit
   16.64 -    sudo umount $SYSROOT/dev
   16.65 -    sudo umount $SYSROOT/proc
   16.66 -    sudo umount $SYSROOT/sys
   16.67 -    sudo umount /mnt
   16.68 -    
   16.69 -There's one more fix required, as the libdl.so symlink uses an absolute path 
   16.70 -which doesn't quite work in our setup.
   16.71 -
   16.72 -    sudo rm -rf $SYSROOT/usr/lib/arm-linux-gnueabihf/libdl.so
   16.73 -    sudo ln -s ../../../lib/arm-linux-gnueabihf/libdl.so.2 $SYSROOT/usr/lib/arm-linux-gnueabihf/libdl.so
   16.74 -
   16.75 -The final step is compiling SDL itself.
   16.76 -
   16.77 -    export CC="/opt/rpi-tools/arm-bcm2708/gcc-linaro-arm-linux-gnueabihf-raspbian/bin/arm-linux-gnueabihf-gcc --sysroot=$SYSROOT -I$SYSROOT/opt/vc/include -I$SYSROOT/usr/include -I$SYSROOT/opt/vc/include/interface/vcos/pthreads -I$SYSROOT/opt/vc/include/interface/vmcs_host/linux"
   16.78 -    cd <SDL SOURCE>
   16.79 -    mkdir -p build;cd build
   16.80 -    ../configure --with-sysroot=$SYSROOT --host=arm-raspberry-linux-gnueabihf --prefix=$PWD/rpi-sdl2-installed --disable-pulseaudio --disable-esd
   16.81 -    make
   16.82 -    make install
   16.83 -
   16.84 -To be able to deploy this to /usr/local in the Raspbian system you need to fix up a few paths:
   16.85 -    
   16.86 -    perl -w -pi -e "s#$PWD/rpi-sdl2-installed#/usr/local#g;" ./rpi-sdl2-installed/lib/libSDL2.la ./rpi-sdl2-installed/lib/pkgconfig/sdl2.pc ./rpi-sdl2-installed/bin/sdl2-config
   16.87 -    
   16.88 -================================================================================
   16.89 - Apps don't work or poor video/audio performance
   16.90 -================================================================================
   16.91 -
   16.92 -If you get sound problems, buffer underruns, etc, run "sudo rpi-update" to 
   16.93 -update the RPi's firmware. Note that doing so will fix these problems, but it
   16.94 -will also render the CMA - Dynamic Memory Split functionality useless.
   16.95 -
   16.96 -Also, by default the Raspbian distro configures the GPU RAM at 64MB, this is too
   16.97 -low in general, specially if a 1080p TV is hooked up.
   16.98 -
   16.99 -See here how to configure this setting: http://elinux.org/RPiconfig
  16.100 -
  16.101 -Using a fixed gpu_mem=128 is the best option (specially if you updated the 
  16.102 -firmware, using CMA probably won't work, at least it's the current case).
  16.103 -
  16.104 -================================================================================
  16.105 - No input
  16.106 -================================================================================
  16.107 -
  16.108 -Make sure you belong to the "input" group.
  16.109 -
  16.110 -    sudo usermod -aG input `whoami`
  16.111 -
  16.112 -================================================================================
  16.113 - No HDMI Audio
  16.114 -================================================================================
  16.115 -
  16.116 -If you notice that ALSA works but there's no audio over HDMI, try adding:
  16.117 -    
  16.118 -    hdmi_drive=2
  16.119 -    
  16.120 -to your config.txt file and reboot.
  16.121 -
  16.122 -Reference: http://www.raspberrypi.org/phpBB3/viewtopic.php?t=5062
  16.123 -
  16.124 -================================================================================
  16.125 - Text Input API support
  16.126 -================================================================================
  16.127 -
  16.128 -The Text Input API is supported, with translation of scan codes done via the
  16.129 -kernel symbol tables. For this to work, SDL needs access to a valid console.
  16.130 -If you notice there's no SDL_TEXTINPUT message being emitted, double check that
  16.131 -your app has read access to one of the following:
  16.132 -    
  16.133 -* /proc/self/fd/0
  16.134 -* /dev/tty
  16.135 -* /dev/tty[0...6]
  16.136 -* /dev/vc/0
  16.137 -* /dev/console
  16.138 -
  16.139 -This is usually not a problem if you run from the physical terminal (as opposed
  16.140 -to running from a pseudo terminal, such as via SSH). If running from a PTS, a 
  16.141 -quick workaround is to run your app as root or add yourself to the tty group,
  16.142 -then re login to the system.
  16.143 -
  16.144 -   sudo usermod -aG tty `whoami`
  16.145 -    
  16.146 -The keyboard layout used by SDL is the same as the one the kernel uses.
  16.147 -To configure the layout on Raspbian:
  16.148 -    
  16.149 -    sudo dpkg-reconfigure keyboard-configuration
  16.150 -    
  16.151 -To configure the locale, which controls which keys are interpreted as letters,
  16.152 -this determining the CAPS LOCK behavior:
  16.153 -
  16.154 -    sudo dpkg-reconfigure locales
  16.155 -
  16.156 -================================================================================
  16.157 - Notes
  16.158 -================================================================================
  16.159 -
  16.160 -* When launching apps remotely (via SSH), SDL can prevent local keystrokes from
  16.161 -  leaking into the console only if it has root privileges. Launching apps locally
  16.162 -  does not suffer from this issue.
  16.163 -  
  16.164 -
    17.1 --- a/README-touch.txt	Mon Jul 28 10:54:25 2014 -0400
    17.2 +++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
    17.3 @@ -1,84 +0,0 @@
    17.4 -===========================================================================
    17.5 -System Specific Notes
    17.6 -===========================================================================
    17.7 -Linux:
    17.8 -The linux touch system is currently based off event streams, and proc/bus/devices. The active user must be given permissions to read /dev/input/TOUCHDEVICE, where TOUCHDEVICE is the event stream for your device. Currently only Wacom tablets are supported. If you have an unsupported tablet contact me at jim.tla+sdl_touch@gmail.com and I will help you get support for it.
    17.9 -
   17.10 -Mac:
   17.11 -The Mac and iPhone APIs are pretty. If your touch device supports them then you'll be fine. If it doesn't, then there isn't much we can do.
   17.12 -
   17.13 -iPhone: 
   17.14 -Works out of box.
   17.15 -
   17.16 -Windows:
   17.17 -Unfortunately there is no windows support as of yet. Support for Windows 7 is planned, but we currently have no way to test. If you have a Windows 7 WM_TOUCH supported device, and are willing to help test please contact me at jim.tla+sdl_touch@gmail.com
   17.18 -
   17.19 -===========================================================================
   17.20 -Events
   17.21 -===========================================================================
   17.22 -SDL_FINGERDOWN:
   17.23 -Sent when a finger (or stylus) is placed on a touch device.
   17.24 -Fields:
   17.25 -event.tfinger.touchId  - the Id of the touch device.
   17.26 -event.tfinger.fingerId - the Id of the finger which just went down.
   17.27 -event.tfinger.x        - the x coordinate of the touch (0..1)
   17.28 -event.tfinger.y        - the y coordinate of the touch (0..1)
   17.29 -event.tfinger.pressure - the pressure of the touch (0..1)
   17.30 -
   17.31 -SDL_FINGERMOTION:
   17.32 -Sent when a finger (or stylus) is moved on the touch device.
   17.33 -Fields:
   17.34 -Same as SDL_FINGERDOWN but with additional:
   17.35 -event.tfinger.dx       - change in x coordinate during this motion event.
   17.36 -event.tfinger.dy       - change in y coordinate during this motion event.
   17.37 -
   17.38 -SDL_FINGERUP:
   17.39 -Sent when a finger (or stylus) is lifted from the touch device.
   17.40 -Fields:
   17.41 -Same as SDL_FINGERDOWN.
   17.42 -
   17.43 -
   17.44 -===========================================================================
   17.45 -Functions
   17.46 -===========================================================================
   17.47 -SDL provides the ability to access the underlying Finger structures.
   17.48 -These structures should _never_ be modified.
   17.49 -
   17.50 -The following functions are included from SDL_touch.h
   17.51 -
   17.52 -To get a SDL_TouchID call SDL_GetTouchDevice(index).
   17.53 -This returns a SDL_TouchID.
   17.54 -IMPORTANT: If the touch has been removed, or there is no touch with the given ID, SDL_GetTouchID will return 0. Be sure to check for this!
   17.55 -
   17.56 -The number of touch devices can be queried with SDL_GetNumTouchDevices().
   17.57 -
   17.58 -A SDL_TouchID may be used to get pointers to SDL_Finger.
   17.59 -
   17.60 -SDL_GetNumTouchFingers(touchID) may be used to get the number of fingers currently down on the device.
   17.61 -
   17.62 -The most common reason to access SDL_Finger is to query the fingers outside the event. In most cases accessing the fingers is using the event. This would be accomplished by code like the following:
   17.63 -
   17.64 -      float x = event.tfinger.x;
   17.65 -      float y = event.tfinger.y;
   17.66 -
   17.67 -
   17.68 -
   17.69 -To get a SDL_Finger, call SDL_GetTouchFinger(touchID,index), where touchID is a SDL_TouchID, and index is the requested finger.
   17.70 -This returns a SDL_Finger*, or NULL if the finger does not exist, or has been removed.
   17.71 -A SDL_Finger is guaranteed to be persistent for the duration of a touch, but it will be de-allocated as soon as the finger is removed. This occurs when the SDL_FINGERUP event is _added_ to the event queue, and thus _before_ the SDL_FINGERUP event is polled.
   17.72 -As a result, be very careful to check for NULL return values.
   17.73 -
   17.74 -A SDL_Finger has the following fields:
   17.75 ->x,y,pressure:
   17.76 -	The current coordinates of the touch.
   17.77 ->pressure:
   17.78 -	The pressure of the touch.
   17.79 -
   17.80 -===========================================================================
   17.81 -Notes
   17.82 -===========================================================================
   17.83 -For a complete example see test/testgesture.c
   17.84 -
   17.85 -Please direct questions/comments to:
   17.86 -   jim.tla+sdl_touch@gmail.com
   17.87 -   (original author, API was changed since)
    18.1 --- a/README-wince.txt	Mon Jul 28 10:54:25 2014 -0400
    18.2 +++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
    18.3 @@ -1,8 +0,0 @@
    18.4 -
    18.5 -Windows CE is no longer supported by SDL.
    18.6 -
    18.7 -We have left the CE support in SDL 1.2 for those that must have it, and we
    18.8 -have support for Windows Phone 8 and WinRT in SDL2, as of SDL 2.0.3.
    18.9 -
   18.10 ---ryan.
   18.11 -
    19.1 --- a/README-windows.txt	Mon Jul 28 10:54:25 2014 -0400
    19.2 +++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
    19.3 @@ -1,42 +0,0 @@
    19.4 -================================================================================
    19.5 -Simple DirectMedia Layer for Windows
    19.6 -================================================================================
    19.7 -
    19.8 -================================================================================
    19.9 -OpenGL ES 2.x support
   19.10 -================================================================================
   19.11 -
   19.12 -SDL has support for OpenGL ES 2.x under Windows via two alternative 
   19.13 -implementations. 
   19.14 -The most straightforward method consists in running your app in a system with 
   19.15 -a graphic card paired with a relatively recent (as of November of 2013) driver 
   19.16 -which supports the WGL_EXT_create_context_es2_profile extension. Vendors known 
   19.17 -to ship said extension on Windows currently include nVidia and Intel.
   19.18 -
   19.19 -The other method involves using the ANGLE library (https://code.google.com/p/angleproject/)
   19.20 -If an OpenGL ES 2.x context is requested and no WGL_EXT_create_context_es2_profile
   19.21 -extension is found, SDL will try to load the libEGL.dll library provided by
   19.22 -ANGLE.
   19.23 -To obtain the ANGLE binaries, you can either compile from source from
   19.24 -https://chromium.googlesource.com/angle/angle or copy the relevant binaries from
   19.25 -a recent Chrome/Chromium install for Windows. The files you need are:
   19.26 -    
   19.27 -    * libEGL.dll
   19.28 -    * libGLESv2.dll
   19.29 -    * d3dcompiler_46.dll (supports Windows Vista or later, better shader compiler)
   19.30 -    or...
   19.31 -    * d3dcompiler_43.dll (supports Windows XP or later)
   19.32 -    
   19.33 -If you compile ANGLE from source, you can configure it so it does not need the
   19.34 -d3dcompiler_* DLL at all (for details on this, see their documentation). 
   19.35 -However, by default SDL will try to preload the d3dcompiler_46.dll to
   19.36 -comply with ANGLE's requirements. If you wish SDL to preload d3dcompiler_43.dll (to
   19.37 -support Windows XP) or to skip this step at all, you can use the 
   19.38 -SDL_HINT_VIDEO_WIN_D3DCOMPILER hint (see SDL_hints.h for more details).
   19.39 -
   19.40 -Known Bugs:
   19.41 -    
   19.42 -    * SDL_GL_SetSwapInterval is currently a no op when using ANGLE. It appears
   19.43 -      that there's a bug in the library which prevents the window contents from
   19.44 -      refreshing if this is set to anything other than the default value.
   19.45 -      
    20.1 --- a/README-winrt.txt	Mon Jul 28 10:54:25 2014 -0400
    20.2 +++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
    20.3 @@ -1,45 +0,0 @@
    20.4 -================================================================================
    20.5 -Simple DirectMedia Layer for WinRT
    20.6 -================================================================================
    20.7 -
    20.8 -SDL/WinRT layer allows SDL2-based applications to run on many of Microsoft's
    20.9 -platforms that utilize the "Windows Runtime" (aka "WinRT") APIs.  WinRT apps
   20.10 -are currently always full-screen apps, run in what Microsoft calls their
   20.11 -"Modern" environment (aka. "Metro"), and are distributed via Microsoft-run
   20.12 -online stores.  Some of the operating systems that support such apps include:
   20.13 -
   20.14 -* Windows 8.x
   20.15 -* Windows RT 8.x (aka. Windows 8.x for ARM processors)
   20.16 -* Windows Phone 8.x
   20.17 -
   20.18 -To note, WinRT applications that run on Windows 8.x and/or Windows RT are often
   20.19 -called "Windows Store" apps.
   20.20 -
   20.21 -
   20.22 ---------------------------------------------------------------------------------
   20.23 -Requirements
   20.24 ---------------------------------------------------------------------------------
   20.25 -- Microsoft Visual C++ 2012 -- Free, "Express" editions may be used, so long
   20.26 -  as they include support for either "Windows Store" or "Windows Phone" apps.
   20.27 -  (NOTE: MSVC 2013 support is pending.  2012 projects may be converted to 2013
   20.28 -  projects by MSVC, in the meantime.)
   20.29 -- A valid Microsoft account -- This requirement is not imposed by SDL, but
   20.30 -  rather by Microsoft's Visual C++ toolchain.
   20.31 -
   20.32 -
   20.33 ---------------------------------------------------------------------------------
   20.34 -TODO
   20.35 ---------------------------------------------------------------------------------
   20.36 -- Finish adding support for MSVC 2013, and "Universal" WinRT apps, which
   20.37 -  support Windows 8.1, Windows Phone 8.1, and in the future, Xbox One and
   20.38 -  Windows Desktop.
   20.39 -- Finish adding support for the SDL satellite libraries (SDL_image, SDL_mixer,
   20.40 -  SDL_ttf, etc.)
   20.41 -- Create templates for both MSVC 2012 and MSVC 2013, and have the corresponding
   20.42 -  VSIX packages either include pre-built copies of SDL, or reference binaries
   20.43 -  available via MSVC's NuGet servers
   20.44 -- Write setup instructions that use MSVC 201x templates
   20.45 -- Write setup instructions that don't use MSVC 201x templates, and use
   20.46 -  MSVC project-to-project references, rather than pre-built binaries
   20.47 -- Write a list of caveats found in SDL/WinRT, such as APIs that don't work due
   20.48 -  to platform restrictions, or things that need further work
    21.1 --- a/README.txt	Mon Jul 28 10:54:25 2014 -0400
    21.2 +++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
    21.3 @@ -1,42 +0,0 @@
    21.4 -
    21.5 -                         Simple DirectMedia Layer
    21.6 -
    21.7 -                                  (SDL)
    21.8 -
    21.9 -                                Version 2.0
   21.10 -
   21.11 ----
   21.12 -http://www.libsdl.org/
   21.13 -
   21.14 -Simple DirectMedia Layer is a cross-platform development library designed
   21.15 -to provide low level access to audio, keyboard, mouse, joystick, and graphics
   21.16 -hardware via OpenGL and Direct3D. It is used by video playback software,
   21.17 -emulators, and popular games including Valve's award winning catalog
   21.18 -and many Humble Bundle games.
   21.19 -
   21.20 -SDL officially supports Windows, Mac OS X, Linux, iOS, and Android.
   21.21 -Support for other platforms may be found in the source code.
   21.22 -
   21.23 -SDL is written in C, works natively with C++, and there are bindings 
   21.24 -available for several other languages, including C# and Python.
   21.25 -
   21.26 -This library is distributed under the zlib license, which can be found
   21.27 -in the file "COPYING.txt".
   21.28 -
   21.29 -The best way to learn how to use SDL is to check out the header files in
   21.30 -the "include" subdirectory and the programs in the "test" subdirectory.
   21.31 -The header files and test programs are well commented and always up to date.
   21.32 -More documentation and FAQs are available online at:
   21.33 -	http://wiki.libsdl.org/
   21.34 -
   21.35 -If you need help with the library, or just want to discuss SDL related
   21.36 -issues, you can join the developers mailing list:
   21.37 -	http://www.libsdl.org/mailing-list.php
   21.38 -
   21.39 -If you want to report bugs or contribute patches, please submit them to
   21.40 -bugzilla:
   21.41 -    http://bugzilla.libsdl.org/
   21.42 -
   21.43 -Enjoy!
   21.44 -	Sam Lantinga				(slouken@libsdl.org)
   21.45 -
    22.1 --- /dev/null	Thu Jan 01 00:00:00 1970 +0000
    22.2 +++ b/doc/README-SDL.md	Tue Jul 29 09:20:12 2014 -0300
    22.3 @@ -0,0 +1,13 @@
    22.4 +
    22.5 +Please distribute this file with the SDL runtime environment:
    22.6 +
    22.7 +The Simple DirectMedia Layer (SDL for short) is a cross-platform library
    22.8 +designed to make it easy to write multi-media software, such as games and
    22.9 +emulators.
   22.10 +
   22.11 +The Simple DirectMedia Layer library source code is available from:
   22.12 +http://www.libsdl.org/
   22.13 +
   22.14 +This library is distributed under the terms of the zlib license:
   22.15 +http://www.zlib.net/zlib_license.html
   22.16 +
    23.1 --- /dev/null	Thu Jan 01 00:00:00 1970 +0000
    23.2 +++ b/doc/README-android.md	Tue Jul 29 09:20:12 2014 -0300
    23.3 @@ -0,0 +1,437 @@
    23.4 +Android
    23.5 +================================================================================
    23.6 +
    23.7 +Requirements:
    23.8 +
    23.9 +Android SDK (version 12 or later)
   23.10 +http://developer.android.com/sdk/index.html
   23.11 +
   23.12 +Android NDK r7 or later
   23.13 +http://developer.android.com/tools/sdk/ndk/index.html
   23.14 +
   23.15 +Minimum API level supported by SDL: 10 (Android 2.3.3)
   23.16 +Joystick support is available for API level >=12 devices.
   23.17 +
   23.18 +================================================================================
   23.19 + How the port works
   23.20 +================================================================================
   23.21 +
   23.22 +- Android applications are Java-based, optionally with parts written in C
   23.23 +- As SDL apps are C-based, we use a small Java shim that uses JNI to talk to 
   23.24 +the SDL library
   23.25 +- This means that your application C code must be placed inside an Android 
   23.26 +Java project, along with some C support code that communicates with Java
   23.27 +- This eventually produces a standard Android .apk package
   23.28 +
   23.29 +The Android Java code implements an "Activity" and can be found in:
   23.30 +android-project/src/org/libsdl/app/SDLActivity.java
   23.31 +
   23.32 +The Java code loads your game code, the SDL shared library, and
   23.33 +dispatches to native functions implemented in the SDL library:
   23.34 +src/core/android/SDL_android.c
   23.35 +
   23.36 +Your project must include some glue code that starts your main() routine:
   23.37 +src/main/android/SDL_android_main.c
   23.38 +
   23.39 +
   23.40 +================================================================================
   23.41 + Building an app
   23.42 +================================================================================
   23.43 +
   23.44 +For simple projects you can use the script located at build-scripts/androidbuild.sh
   23.45 +
   23.46 +There's two ways of using it:
   23.47 +
   23.48 +androidbuild.sh com.yourcompany.yourapp < sources.list
   23.49 +androidbuild.sh com.yourcompany.yourapp source1.c source2.c ...sourceN.c
   23.50 +
   23.51 +sources.list should be a text file with a source file name in each line
   23.52 +Filenames should be specified relative to the current directory, for example if
   23.53 +you are in the build-scripts directory and want to create the testgles.c test, you'll
   23.54 +run:
   23.55 +    
   23.56 +./androidbuild.sh org.libsdl.testgles ../test/testgles.c
   23.57 +
   23.58 +One limitation of this script is that all sources provided will be aggregated into
   23.59 +a single directory, thus all your source files should have a unique name.
   23.60 +
   23.61 +Once the project is complete the script will tell you where the debug APK is located.
   23.62 +If you want to create a signed release APK, you can use the project created by this
   23.63 +utility to generate it.
   23.64 +
   23.65 +Finally, a word of caution: re running androidbuild.sh wipes any changes you may have
   23.66 +done in the build directory for the app!
   23.67 +
   23.68 +
   23.69 +For more complex projects, follow these instructions:
   23.70 +    
   23.71 +1. Copy the android-project directory wherever you want to keep your projects
   23.72 +   and rename it to the name of your project.
   23.73 +2. Move or symlink this SDL directory into the <project>/jni directory
   23.74 +3. Edit <project>/jni/src/Android.mk to include your source files
   23.75 +4. Run 'ndk-build' (a script provided by the NDK). This compiles the C source
   23.76 +
   23.77 +If you want to use the Eclipse IDE, skip to the Eclipse section below.
   23.78 +
   23.79 +5. Create <project>/local.properties and use that to point to the Android SDK directory, by writing a line with the following form:
   23.80 +sdk.dir=PATH_TO_ANDROID_SDK
   23.81 +6. Run 'ant debug' in android/project. This compiles the .java and eventually 
   23.82 +   creates a .apk with the native code embedded
   23.83 +7. 'ant debug install' will push the apk to the device or emulator (if connected)
   23.84 +
   23.85 +Here's an explanation of the files in the Android project, so you can customize them:
   23.86 +
   23.87 +android-project/
   23.88 +	AndroidManifest.xml	- package manifest. Among others, it contains the class name
   23.89 +				  of the main Activity and the package name of the application.
   23.90 +	build.properties	- empty
   23.91 +	build.xml		- build description file, used by ant. The actual application name
   23.92 +				  is specified here.
   23.93 +	default.properties	- holds the target ABI for the application, android-10 and up
   23.94 +	project.properties	- holds the target ABI for the application, android-10 and up
   23.95 +	local.properties	- holds the SDK path, you should change this to the path to your SDK
   23.96 +	jni/			- directory holding native code
   23.97 +	jni/Android.mk		- Android makefile that can call recursively the Android.mk files
   23.98 +				  in all subdirectories
   23.99 +	jni/SDL/		- (symlink to) directory holding the SDL library files
  23.100 +	jni/SDL/Android.mk	- Android makefile for creating the SDL shared library
  23.101 +	jni/src/		- directory holding your C/C++ source
  23.102 +	jni/src/Android.mk	- Android makefile that you should customize to include your 
  23.103 +                                  source code and any library references
  23.104 +	res/			- directory holding resources for your application
  23.105 +	res/drawable-*		- directories holding icons for different phone hardware. Could be
  23.106 +				  one dir called "drawable".
  23.107 +	res/layout/main.xml	- Usually contains a file main.xml, which declares the screen layout.
  23.108 +				  We don't need it because we use the SDL video output.
  23.109 +	res/values/strings.xml	- strings used in your application, including the application name
  23.110 +				  shown on the phone.
  23.111 +	src/org/libsdl/app/SDLActivity.java - the Java class handling the initialization and binding
  23.112 +				  to SDL.  Be very careful changing this, as the SDL library relies
  23.113 +				  on this implementation.
  23.114 +
  23.115 +
  23.116 +================================================================================
  23.117 + Build an app with static linking of libSDL
  23.118 +================================================================================
  23.119 +
  23.120 +This build uses the Android NDK module system.
  23.121 +
  23.122 +Instructions:
  23.123 +1. Copy the android-project directory wherever you want to keep your projects
  23.124 +   and rename it to the name of your project.
  23.125 +2. Rename <project>/jni/src/Android_static.mk to <project>/jni/src/Android.mk
  23.126 +   (overwrite the existing one)
  23.127 +3. Edit <project>/jni/src/Android.mk to include your source files
  23.128 +4. create and export an environment variable named NDK_MODULE_PATH that points
  23.129 +   to the parent directory of this SDL directory. e.g.:
  23.130 +
  23.131 +   export NDK_MODULE_PATH="$PWD"/..
  23.132 +
  23.133 +5. Edit <project>/src/org/libsdl/app/SDLActivity.java and remove the call to
  23.134 +   System.loadLibrary("SDL2") line 42.
  23.135 +6. Run 'ndk-build' (a script provided by the NDK). This compiles the C source
  23.136 +
  23.137 +
  23.138 +================================================================================
  23.139 + Customizing your application name
  23.140 +================================================================================
  23.141 +
  23.142 +To customize your application name, edit AndroidManifest.xml and replace
  23.143 +"org.libsdl.app" with an identifier for your product package.
  23.144 +
  23.145 +Then create a Java class extending SDLActivity and place it in a directory
  23.146 +under src matching your package, e.g.
  23.147 +	src/com/gamemaker/game/MyGame.java
  23.148 +
  23.149 +Here's an example of a minimal class file:
  23.150 +--- MyGame.java --------------------------
  23.151 +package com.gamemaker.game;
  23.152 +
  23.153 +import org.libsdl.app.SDLActivity; 
  23.154 +
  23.155 +/* 
  23.156 + * A sample wrapper class that just calls SDLActivity 
  23.157 + */ 
  23.158 +
  23.159 +public class MyGame extends SDLActivity { }
  23.160 +
  23.161 +------------------------------------------
  23.162 +
  23.163 +Then replace "SDLActivity" in AndroidManifest.xml with the name of your
  23.164 +class, .e.g. "MyGame"
  23.165 +
  23.166 +================================================================================
  23.167 + Customizing your application icon
  23.168 +================================================================================
  23.169 +
  23.170 +Conceptually changing your icon is just replacing the "ic_launcher.png" files in
  23.171 +the drawable directories under the res directory. There are four directories for
  23.172 +different screen sizes. These can be replaced with one dir called "drawable",
  23.173 +containing an icon file "ic_launcher.png" with dimensions 48x48 or 72x72.
  23.174 +
  23.175 +You may need to change the name of your icon in AndroidManifest.xml to match
  23.176 +this icon filename.
  23.177 +
  23.178 +================================================================================
  23.179 + Loading assets
  23.180 +================================================================================
  23.181 +
  23.182 +Any files you put in the "assets" directory of your android-project directory
  23.183 +will get bundled into the application package and you can load them using the
  23.184 +standard functions in SDL_rwops.h.
  23.185 +
  23.186 +There are also a few Android specific functions that allow you to get other
  23.187 +useful paths for saving and loading data:
  23.188 +SDL_AndroidGetInternalStoragePath()
  23.189 +SDL_AndroidGetExternalStorageState()
  23.190 +SDL_AndroidGetExternalStoragePath()
  23.191 +
  23.192 +See SDL_system.h for more details on these functions.
  23.193 +
  23.194 +The asset packaging system will, by default, compress certain file extensions.
  23.195 +SDL includes two asset file access mechanisms, the preferred one is the so
  23.196 +called "File Descriptor" method, which is faster and doesn't involve the Dalvik
  23.197 +GC, but given this method does not work on compressed assets, there is also the
  23.198 +"Input Stream" method, which is automatically used as a fall back by SDL. You
  23.199 +may want to keep this fact in mind when building your APK, specially when large
  23.200 +files are involved.
  23.201 +For more information on which extensions get compressed by default and how to
  23.202 +disable this behaviour, see for example:
  23.203 +    
  23.204 +http://ponystyle.com/blog/2010/03/26/dealing-with-asset-compression-in-android-apps/
  23.205 +
  23.206 +================================================================================
  23.207 + Pause / Resume behaviour
  23.208 +================================================================================
  23.209 +
  23.210 +If SDL is compiled with SDL_ANDROID_BLOCK_ON_PAUSE defined (the default),
  23.211 +the event loop will block itself when the app is paused (ie, when the user
  23.212 +returns to the main Android dashboard). Blocking is better in terms of battery
  23.213 +use, and it allows your app to spring back to life instantaneously after resume
  23.214 +(versus polling for a resume message).
  23.215 +
  23.216 +Upon resume, SDL will attempt to restore the GL context automatically.
  23.217 +In modern devices (Android 3.0 and up) this will most likely succeed and your
  23.218 +app can continue to operate as it was.
  23.219 +
  23.220 +However, there's a chance (on older hardware, or on systems under heavy load),
  23.221 +where the GL context can not be restored. In that case you have to listen for
  23.222 +a specific message, (which is not yet implemented!) and restore your textures
  23.223 +manually or quit the app (which is actually the kind of behaviour you'll see
  23.224 +under iOS, if the OS can not restore your GL context it will just kill your app)
  23.225 +
  23.226 +================================================================================
  23.227 + Threads and the Java VM
  23.228 +================================================================================
  23.229 +
  23.230 +For a quick tour on how Linux native threads interoperate with the Java VM, take
  23.231 +a look here: http://developer.android.com/guide/practices/jni.html
  23.232 +If you want to use threads in your SDL app, it's strongly recommended that you
  23.233 +do so by creating them using SDL functions. This way, the required attach/detach
  23.234 +handling is managed by SDL automagically. If you have threads created by other
  23.235 +means and they make calls to SDL functions, make sure that you call
  23.236 +Android_JNI_SetupThread before doing anything else otherwise SDL will attach
  23.237 +your thread automatically anyway (when you make an SDL call), but it'll never
  23.238 +detach it.
  23.239 +
  23.240 +================================================================================
  23.241 + Using STL
  23.242 +================================================================================
  23.243 +
  23.244 +You can use STL in your project by creating an Application.mk file in the jni
  23.245 +folder and adding the following line:
  23.246 +APP_STL := stlport_static
  23.247 +
  23.248 +For more information check out CPLUSPLUS-SUPPORT.html in the NDK documentation.
  23.249 +
  23.250 +================================================================================
  23.251 + Additional documentation
  23.252 +================================================================================
  23.253 +
  23.254 +The documentation in the NDK docs directory is very helpful in understanding the
  23.255 +build process and how to work with native code on the Android platform.
  23.256 +
  23.257 +The best place to start is with docs/OVERVIEW.TXT
  23.258 +
  23.259 +
  23.260 +================================================================================
  23.261 + Using Eclipse
  23.262 +================================================================================
  23.263 +
  23.264 +First make sure that you've installed Eclipse and the Android extensions as described here:
  23.265 +	http://developer.android.com/tools/sdk/eclipse-adt.html
  23.266 +
  23.267 +Once you've copied the SDL android project and customized it, you can create an Eclipse project from it:
  23.268 + * File -> New -> Other
  23.269 + * Select the Android -> Android Project wizard and click Next
  23.270 + * Enter the name you'd like your project to have
  23.271 + * Select "Create project from existing source" and browse for your project directory
  23.272 + * Make sure the Build Target is set to Android 2.0
  23.273 + * Click Finish
  23.274 +
  23.275 +
  23.276 +================================================================================
  23.277 + Using the emulator
  23.278 +================================================================================
  23.279 +
  23.280 +There are some good tips and tricks for getting the most out of the
  23.281 +emulator here: http://developer.android.com/tools/devices/emulator.html
  23.282 +
  23.283 +Especially useful is the info on setting up OpenGL ES 2.0 emulation.
  23.284 +
  23.285 +Notice that this software emulator is incredibly slow and needs a lot of disk space.
  23.286 +Using a real device works better.
  23.287 +
  23.288 +================================================================================
  23.289 + Troubleshooting
  23.290 +================================================================================
  23.291 +
  23.292 +You can create and run an emulator from the Eclipse IDE:
  23.293 + * Window -> Android SDK and AVD Manager
  23.294 +
  23.295 +You can see if adb can see any devices with the following command:
  23.296 +	adb devices
  23.297 +
  23.298 +You can see the output of log messages on the default device with:
  23.299 +	adb logcat
  23.300 +
  23.301 +You can push files to the device with:
  23.302 +	adb push local_file remote_path_and_file
  23.303 +
  23.304 +You can push files to the SD Card at /sdcard, for example:
  23.305 +	adb push moose.dat /sdcard/moose.dat
  23.306 +
  23.307 +You can see the files on the SD card with a shell command:
  23.308 +	adb shell ls /sdcard/
  23.309 +
  23.310 +You can start a command shell on the default device with:
  23.311 +	adb shell
  23.312 +
  23.313 +You can remove the library files of your project (and not the SDL lib files) with:
  23.314 +	ndk-build clean
  23.315 +
  23.316 +You can do a build with the following command:
  23.317 +	ndk-build
  23.318 +
  23.319 +You can see the complete command line that ndk-build is using by passing V=1 on the command line:
  23.320 +	ndk-build V=1
  23.321 +
  23.322 +If your application crashes in native code, you can use addr2line to convert the
  23.323 +addresses in the stack trace to lines in your code.
  23.324 +
  23.325 +For example, if your crash looks like this:
  23.326 +I/DEBUG   (   31): signal 11 (SIGSEGV), code 2 (SEGV_ACCERR), fault addr 400085d0
  23.327 +I/DEBUG   (   31):  r0 00000000  r1 00001000  r2 00000003  r3 400085d4
  23.328 +I/DEBUG   (   31):  r4 400085d0  r5 40008000  r6 afd41504  r7 436c6a7c
  23.329 +I/DEBUG   (   31):  r8 436c6b30  r9 435c6fb0  10 435c6f9c  fp 4168d82c
  23.330 +I/DEBUG   (   31):  ip 8346aff0  sp 436c6a60  lr afd1c8ff  pc afd1c902  cpsr 60000030
  23.331 +I/DEBUG   (   31):          #00  pc 0001c902  /system/lib/libc.so
  23.332 +I/DEBUG   (   31):          #01  pc 0001ccf6  /system/lib/libc.so
  23.333 +I/DEBUG   (   31):          #02  pc 000014bc  /data/data/org.libsdl.app/lib/libmain.so
  23.334 +I/DEBUG   (   31):          #03  pc 00001506  /data/data/org.libsdl.app/lib/libmain.so
  23.335 +
  23.336 +You can see that there's a crash in the C library being called from the main code.
  23.337 +I run addr2line with the debug version of my code:
  23.338 +	arm-eabi-addr2line -C -f -e obj/local/armeabi/libmain.so
  23.339 +and then paste in the number after "pc" in the call stack, from the line that I care about:
  23.340 +000014bc
  23.341 +
  23.342 +I get output from addr2line showing that it's in the quit function, in testspriteminimal.c, on line 23.
  23.343 +
  23.344 +You can add logging to your code to help show what's happening:
  23.345 +
  23.346 +#include <android/log.h>
  23.347 +
  23.348 +	__android_log_print(ANDROID_LOG_INFO, "foo", "Something happened! x = %d", x);
  23.349 +
  23.350 +If you need to build without optimization turned on, you can create a file called
  23.351 +"Application.mk" in the jni directory, with the following line in it:
  23.352 +APP_OPTIM := debug
  23.353 +
  23.354 +
  23.355 +================================================================================
  23.356 + Memory debugging
  23.357 +================================================================================
  23.358 +
  23.359 +The best (and slowest) way to debug memory issues on Android is valgrind.
  23.360 +Valgrind has support for Android out of the box, just grab code using:
  23.361 +	svn co svn://svn.valgrind.org/valgrind/trunk valgrind
  23.362 +... and follow the instructions in the file README.android to build it.
  23.363 +
  23.364 +One thing I needed to do on Mac OS X was change the path to the toolchain,
  23.365 +and add ranlib to the environment variables:
  23.366 +export RANLIB=$NDKROOT/toolchains/arm-linux-androideabi-4.4.3/prebuilt/darwin-x86/bin/arm-linux-androideabi-ranlib
  23.367 +
  23.368 +Once valgrind is built, you can create a wrapper script to launch your
  23.369 +application with it, changing org.libsdl.app to your package identifier:
  23.370 +--- start_valgrind_app -------------------
  23.371 +#!/system/bin/sh
  23.372 +export TMPDIR=/data/data/org.libsdl.app
  23.373 +exec /data/local/Inst/bin/valgrind --log-file=/sdcard/valgrind.log --error-limit=no $*
  23.374 +------------------------------------------
  23.375 +
  23.376 +Then push it to the device:
  23.377 +	adb push start_valgrind_app /data/local
  23.378 +
  23.379 +and make it executable:
  23.380 +	adb shell chmod 755 /data/local/start_valgrind_app
  23.381 +
  23.382 +and tell Android to use the script to launch your application:
  23.383 +	adb shell setprop wrap.org.libsdl.app "logwrapper /data/local/start_valgrind_app"
  23.384 +
  23.385 +If the setprop command says "could not set property", it's likely that
  23.386 +your package name is too long and you should make it shorter by changing
  23.387 +AndroidManifest.xml and the path to your class file in android-project/src
  23.388 +
  23.389 +You can then launch your application normally and waaaaaaaiiittt for it.
  23.390 +You can monitor the startup process with the logcat command above, and
  23.391 +when it's done (or even while it's running) you can grab the valgrind
  23.392 +output file:
  23.393 +	adb pull /sdcard/valgrind.log
  23.394 +
  23.395 +When you're done instrumenting with valgrind, you can disable the wrapper:
  23.396 +	adb shell setprop wrap.org.libsdl.app ""
  23.397 +
  23.398 +================================================================================
  23.399 + Why is API level 10 the minimum required?
  23.400 +================================================================================
  23.401 +
  23.402 +API level 10 is the minimum required level at runtime (that is, on the device) 
  23.403 +because SDL requires some functionality for running not
  23.404 +available on older devices. Since the incorporation of joystick support into SDL,
  23.405 +the minimum SDK required to *build* SDL is version 12. Devices running API levels
  23.406 +10-11 are still supported, only with the joystick functionality disabled.
  23.407 +
  23.408 +Support for native OpenGL ES and ES2 applications was introduced in the NDK for
  23.409 +API level 4 and 8. EGL was made a stable API in the NDK for API level 9, which
  23.410 +has since then been obsoleted, with the recommendation to developers to bump the
  23.411 +required API level to 10.
  23.412 +As of this writing, according to http://developer.android.com/about/dashboards/index.html
  23.413 +about 90% of the Android devices accessing Google Play support API level 10 or
  23.414 +higher (March 2013).
  23.415 +
  23.416 +================================================================================
  23.417 + A note regarding the use of the "dirty rectangles" rendering technique
  23.418 +================================================================================
  23.419 +
  23.420 +If your app uses a variation of the "dirty rectangles" rendering technique,
  23.421 +where you only update a portion of the screen on each frame, you may notice a
  23.422 +variety of visual glitches on Android, that are not present on other platforms.
  23.423 +This is caused by SDL's use of EGL as the support system to handle OpenGL ES/ES2
  23.424 +contexts, in particular the use of the eglSwapBuffers function. As stated in the
  23.425 +documentation for the function "The contents of ancillary buffers are always 
  23.426 +undefined after calling eglSwapBuffers".
  23.427 +Setting the EGL_SWAP_BEHAVIOR attribute of the surface to EGL_BUFFER_PRESERVED
  23.428 +is not possible for SDL as it requires EGL 1.4, available only on the API level
  23.429 +17+, so the only workaround available on this platform is to redraw the entire
  23.430 +screen each frame.
  23.431 +
  23.432 +Reference: http://www.khronos.org/registry/egl/specs/EGLTechNote0001.html
  23.433 +
  23.434 +================================================================================
  23.435 + Known issues
  23.436 +================================================================================
  23.437 +
  23.438 +- The number of buttons reported for each joystick is hardcoded to be 36, which
  23.439 +is the current maximum number of buttons Android can report.
  23.440 +
    24.1 --- /dev/null	Thu Jan 01 00:00:00 1970 +0000
    24.2 +++ b/doc/README-cmake.md	Tue Jul 29 09:20:12 2014 -0300
    24.3 @@ -0,0 +1,31 @@
    24.4 +CMake
    24.5 +================================================================================
    24.6 +(www.cmake.org)
    24.7 +
    24.8 +SDL's build system was traditionally based on autotools. Over time, this
    24.9 +approach has suffered from several issues across the different supported 
   24.10 +platforms.
   24.11 +To solve these problems, a new build system based on CMake is under development.
   24.12 +It works in parallel to the legacy system, so users can experiment with it
   24.13 +without complication.
   24.14 +While still experimental, the build system should be usable on the following
   24.15 +platforms:
   24.16 +    
   24.17 +    * FreeBSD
   24.18 +    * Linux
   24.19 +    * VS.NET 2010
   24.20 +    * MinGW and Msys
   24.21 +    * OS X with support for XCode
   24.22 +    
   24.23 +================================================================================
   24.24 +Usage
   24.25 +================================================================================
   24.26 +
   24.27 +Assuming the source for SDL is located at ~/sdl
   24.28 +
   24.29 +cd ~
   24.30 +mkdir build
   24.31 +cd build
   24.32 +cmake ../sdl
   24.33 +
   24.34 +This will build the static and dynamic versions of SDL in the ~/build directory.
    25.1 --- /dev/null	Thu Jan 01 00:00:00 1970 +0000
    25.2 +++ b/doc/README-directfb.md	Tue Jul 29 09:20:12 2014 -0300
    25.3 @@ -0,0 +1,107 @@
    25.4 +DirectFB
    25.5 +========
    25.6 +
    25.7 +Supports:
    25.8 +
    25.9 +- Hardware YUV overlays
   25.10 +- OpenGL - software only
   25.11 +- 2D/3D accelerations (depends on directfb driver)
   25.12 +- multiple displays
   25.13 +- windows
   25.14 +
   25.15 +What you need:
   25.16 +
   25.17 +DirectFB 1.0.1, 1.2.x, 1.3.0
   25.18 +Kernel-Framebuffer support: required: vesafb, radeonfb .... 
   25.19 +Mesa 7.0.x	   - optional for OpenGL
   25.20 +
   25.21 +/etc/directfbrc
   25.22 +
   25.23 +This file should contain the following lines to make
   25.24 +your joystick work and avoid crashes:
   25.25 +------------------------
   25.26 +disable-module=joystick
   25.27 +disable-module=cle266
   25.28 +disable-module=cyber5k
   25.29 +no-linux-input-grab
   25.30 +------------------------
   25.31 +
   25.32 +To disable to use x11 backend when DISPLAY variable is found use
   25.33 +
   25.34 +export SDL_DIRECTFB_X11_CHECK=0
   25.35 +
   25.36 +To disable the use of linux input devices, i.e. multimice/multikeyboard support,
   25.37 +use
   25.38 +
   25.39 +export SDL_DIRECTFB_LINUX_INPUT=0
   25.40 +
   25.41 +To use hardware accelerated YUV-overlays for YUV-textures, use:
   25.42 +
   25.43 +export SDL_DIRECTFB_YUV_DIRECT=1
   25.44 +
   25.45 +This is disabled by default. It will only support one 
   25.46 +YUV texture, namely the first. Every other YUV texture will be
   25.47 +rendered in software.
   25.48 +
   25.49 +In addition, you may use (directfb-1.2.x)
   25.50 +
   25.51 +export SDL_DIRECTFB_YUV_UNDERLAY=1
   25.52 +
   25.53 +to make the YUV texture an underlay. This will make the cursor to
   25.54 +be shown.
   25.55 +
   25.56 +Simple Window Manager
   25.57 +=====================
   25.58 +
   25.59 +The driver has support for a very, very basic window manager you may
   25.60 +want to use when running with "wm=default". Use
   25.61 +
   25.62 +export SDL_DIRECTFB_WM=1
   25.63 +
   25.64 +to enable basic window borders. In order to have the window title rendered,
   25.65 +you need to have the following font installed:
   25.66 +
   25.67 +/usr/share/fonts/truetype/freefont/FreeSans.ttf
   25.68 +
   25.69 +OpenGL Support
   25.70 +==============
   25.71 +
   25.72 +The following instructions will give you *software* OpenGL. However this
   25.73 +works at least on all directfb supported platforms.
   25.74 +
   25.75 +As of this writing 20100802 you need to pull Mesa from git and do the following:
   25.76 +
   25.77 +------------------------
   25.78 +git clone git://anongit.freedesktop.org/git/mesa/mesa
   25.79 +cd mesa 
   25.80 +git checkout 2c9fdaf7292423c157fc79b5ce43f0f199dd753a
   25.81 +------------------------
   25.82 +
   25.83 +Edit configs/linux-directfb so that the Directories-section looks like
   25.84 +------------------------
   25.85 +# Directories
   25.86 +SRC_DIRS     = mesa glu 
   25.87 +GLU_DIRS     = sgi
   25.88 +DRIVER_DIRS  = directfb
   25.89 +PROGRAM_DIRS = 
   25.90 +------------------------
   25.91 +
   25.92 +make linux-directfb
   25.93 +make
   25.94 +
   25.95 +echo Installing - please enter sudo pw.
   25.96 +
   25.97 +sudo make install INSTALL_DIR=/usr/local/dfb_GL
   25.98 +cd src/mesa/drivers/directfb
   25.99 +make
  25.100 +sudo make install INSTALL_DIR=/usr/local/dfb_GL
  25.101 +------------------------
  25.102 +
  25.103 +To run the SDL - testprograms:
  25.104 +
  25.105 +export SDL_VIDEODRIVER=directfb
  25.106 +export LD_LIBRARY_PATH=/usr/local/dfb_GL/lib
  25.107 +export LD_PRELOAD=/usr/local/dfb_GL/libGL.so.7
  25.108 +
  25.109 +./testgl
  25.110 +
    26.1 --- /dev/null	Thu Jan 01 00:00:00 1970 +0000
    26.2 +++ b/doc/README-dynapi.md	Tue Jul 29 09:20:12 2014 -0300
    26.3 @@ -0,0 +1,129 @@
    26.4 +Dynamic API
    26.5 +================================================================================
    26.6 +Originally posted by Ryan at https://plus.google.com/103391075724026391227/posts/TB8UfnDYu4U
    26.7 +
    26.8 +Background:
    26.9 +
   26.10 +- The Steam Runtime has (at least in theory) a really kick-ass build of SDL2, 
   26.11 +  but developers are shipping their own SDL2 with individual Steam games. 
   26.12 +  These games might stop getting updates, but a newer SDL2 might be needed later. 
   26.13 +  Certainly we'll always be fixing bugs in SDL, even if a new video target isn't 
   26.14 +  ever needed, and these fixes won't make it to a game shipping its own SDL.
   26.15 +- Even if we replace the SDL2 in those games with a compatible one, that is to 
   26.16 +  say, edit a developer's Steam depot (yuck!), there are developers that are 
   26.17 +  statically linking SDL2 that we can't do this for. We can't even force the 
   26.18 +  dynamic loader to ignore their SDL2 in this case, of course.
   26.19 +- If you don't ship an SDL2 with the game in some form, people that disabled the
   26.20 +  Steam Runtime, or just tried to run the game from the command line instead of 
   26.21 +  Steam might find themselves unable to run the game, due to a missing dependency.
   26.22 +- If you want to ship on non-Steam platforms like GOG or Humble Bundle, or target
   26.23 +  generic Linux boxes that may or may not have SDL2 installed, you have to ship 
   26.24 +  the library or risk a total failure to launch. So now, you might have to have 
   26.25 +  a non-Steam build plus a Steam build (that is, one with and one without SDL2 
   26.26 +  included), which is inconvenient if you could have had one universal build 
   26.27 +  that works everywhere.
   26.28 +- We like the zlib license, but the biggest complaint from the open source 
   26.29 +  community about the license change is the static linking. The LGPL forced this 
   26.30 +  as a legal, not technical issue, but zlib doesn't care. Even those that aren't
   26.31 +  concerned about the GNU freedoms found themselves solving the same problems: 
   26.32 +  swapping in a newer SDL to an older game often times can save the day. 
   26.33 +  Static linking stops this dead.
   26.34 +
   26.35 +So here's what we did:
   26.36 +
   26.37 +SDL now has, internally, a table of function pointers. So, this is what SDL_Init
   26.38 +now looks like:
   26.39 +
   26.40 +    UInt32 SDL_Init(Uint32 flags)
   26.41 +    {
   26.42 +        return jump_table.SDL_Init(flags);
   26.43 +    }
   26.44 +
   26.45 +Except that is all done with a bunch of macro magic so we don't have to maintain
   26.46 +every one of these.
   26.47 +
   26.48 +What is jump_table.SDL_init()? Eventually, that's a function pointer of the real
   26.49 +SDL_Init() that you've been calling all this time. But at startup, it looks more 
   26.50 +like this:
   26.51 +
   26.52 +    Uint32 SDL_Init_DEFAULT(Uint32 flags)
   26.53 +    {
   26.54 +        SDL_InitDynamicAPI();
   26.55 +        return jump_table.SDL_Init(flags);
   26.56 +    }
   26.57 +
   26.58 +SDL_InitDynamicAPI() fills in jump_table with all the actual SDL function 
   26.59 +pointers, which means that this _DEFAULT function never gets called again. 
   26.60 +First call to any SDL function sets the whole thing up.
   26.61 +
   26.62 +So you might be asking, what was the value in that? Isn't this what the operating
   26.63 +system's dynamic loader was supposed to do for us? Yes, but now we've got this 
   26.64 +level of indirection, we can do things like this:
   26.65 +
   26.66 +    export SDL_DYNAMIC_API=/my/actual/libSDL-2.0.so.0
   26.67 +    ./MyGameThatIsStaticallyLinkedToSDL2
   26.68 +
   26.69 +And now, this game that is staticallly linked to SDL, can still be overridden 
   26.70 +with a newer, or better, SDL. The statically linked one will only be used as 
   26.71 +far as calling into the jump table in this case. But in cases where no override
   26.72 +is desired, the statically linked version will provide its own jump table, 
   26.73 +and everyone is happy.
   26.74 +
   26.75 +So now:
   26.76 +- Developers can statically link SDL, and users can still replace it. 
   26.77 +  (We'd still rather you ship a shared library, though!)
   26.78 +- Developers can ship an SDL with their game, Valve can override it for, say, 
   26.79 +  new features on SteamOS, or distros can override it for their own needs, 
   26.80 +  but it'll also just work in the default case.
   26.81 +- Developers can ship the same package to everyone (Humble Bundle, GOG, etc), 
   26.82 +  and it'll do the right thing.
   26.83 +- End users (and Valve) can update a game's SDL in almost any case, 
   26.84 +  to keep abandoned games running on newer platforms.
   26.85 +- Everyone develops with SDL exactly as they have been doing all along. 
   26.86 +  Same headers, same ABI. Just get the latest version to enable this magic.
   26.87 +
   26.88 +
   26.89 +A little more about SDL_InitDynamicAPI():
   26.90 +
   26.91 +Internally, InitAPI does some locking to make sure everything waits until a 
   26.92 +single thread initializes everything (although even SDL_CreateThread() goes 
   26.93 +through here before spinning a thread, too), and then decides if it should use
   26.94 +an external SDL library. If not, it sets up the jump table using the current 
   26.95 +SDL's function pointers (which might be statically linked into a program, or in
   26.96 +a shared library of its own). If so, it loads that library and looks for and 
   26.97 +calls a single function:
   26.98 +
   26.99 +    SInt32 SDL_DYNAPI_entry(Uint32 version, void *table, Uint32 tablesize);
  26.100 +
  26.101 +That function takes a version number (more on that in a moment), the address of
  26.102 +the jump table, and the size, in bytes, of the table. 
  26.103 +Now, we've got policy here: this table's layout never changes; new stuff gets 
  26.104 +added to the end. Therefore SDL_DYNAPI_entry() knows that it can provide all 
  26.105 +the needed functions if tablesize <= sizeof its own jump table. If tablesize is
  26.106 +bigger (say, SDL 2.0.4 is trying to load SDL 2.0.3), then we know to abort, but
  26.107 +if it's smaller, we know we can provide the entire API that the caller needs.
  26.108 +
  26.109 +The version variable is a failsafe switch. 
  26.110 +Right now it's always 1. This number changes when there are major API changes 
  26.111 +(so we know if the tablesize might be smaller, or entries in it have changed). 
  26.112 +Right now SDL_DYNAPI_entry gives up if the version doesn't match, but it's not 
  26.113 +inconceivable to have a small dispatch library that only supplies this one 
  26.114 +function and loads different, otherwise-incompatible SDL libraries and has the
  26.115 +right one initialize the jump table based on the version. For something that 
  26.116 +must generically catch lots of different versions of SDL over time, like the 
  26.117 +Steam Client, this isn't a bad option.
  26.118 +
  26.119 +Finally, I'm sure some people are reading this and thinking,
  26.120 +"I don't want that overhead in my project!"  
  26.121 +To which I would point out that the extra function call through the jump table 
  26.122 +probably wouldn't even show up in a profile, but lucky you: this can all be 
  26.123 +disabled. You can build SDL without this if you absolutely must, but we would 
  26.124 +encourage you not to do that. However, on heavily locked down platforms like 
  26.125 +iOS, or maybe when debugging,  it makes sense to disable it. The way this is 
  26.126 +designed in SDL, you just have to change one #define, and the entire system 
  26.127 +vaporizes out, and SDL functions exactly like it always did. Most of it is 
  26.128 +macro magic, so the system is contained to one C file and a few headers. 
  26.129 +However, this is on by default and you have to edit a header file to turn it 
  26.130 +off. Our hopes is that if we make it easy to disable, but not too easy, 
  26.131 +everyone will ultimately be able to get what they want, but we've gently 
  26.132 +nudged everyone towards what we think is the best solution.
    27.1 --- /dev/null	Thu Jan 01 00:00:00 1970 +0000
    27.2 +++ b/doc/README-gesture.md	Tue Jul 29 09:20:12 2014 -0300
    27.3 @@ -0,0 +1,71 @@
    27.4 +Dollar Gestures
    27.5 +===========================================================================
    27.6 +SDL Provides an implementation of the $1 gesture recognition system. This allows for recording, saving, loading, and performing single stroke gestures.
    27.7 +
    27.8 +Gestures can be performed with any number of fingers (the centroid of the fingers must follow the path of the gesture), but the number of fingers must be constant (a finger cannot go down in the middle of a gesture). The path of a gesture is considered the path from the time when the final finger went down, to the first time any finger comes up. 
    27.9 +
   27.10 +Dollar gestures are assigned an Id based on a hash function. This is guaranteed to remain constant for a given gesture. There is a (small) chance that two different gestures will be assigned the same ID. In this case, simply re-recording one of the gestures should result in a different ID.
   27.11 +
   27.12 +Recording:
   27.13 +----------
   27.14 +To begin recording on a touch device call:
   27.15 +SDL_RecordGesture(SDL_TouchID touchId), where touchId is the id of the touch device you wish to record on, or -1 to record on all connected devices.
   27.16 +
   27.17 +Recording terminates as soon as a finger comes up. Recording is acknowledged by an SDL_DOLLARRECORD event.
   27.18 +A SDL_DOLLARRECORD event is a dgesture with the following fields:
   27.19 +
   27.20 +event.dgesture.touchId   - the Id of the touch used to record the gesture.
   27.21 +event.dgesture.gestureId - the unique id of the recorded gesture.
   27.22 +
   27.23 +
   27.24 +Performing:
   27.25 +-----------
   27.26 +As long as there is a dollar gesture assigned to a touch, every finger-up event will also cause an SDL_DOLLARGESTURE event with the following fields:
   27.27 +
   27.28 +event.dgesture.touchId    - the Id of the touch which performed the gesture.
   27.29 +event.dgesture.gestureId  - the unique id of the closest gesture to the performed stroke.
   27.30 +event.dgesture.error      - the difference between the gesture template and the actual performed gesture. Lower error is a better match.
   27.31 +event.dgesture.numFingers - the number of fingers used to draw the stroke.
   27.32 +
   27.33 +Most programs will want to define an appropriate error threshold and check to be sure that the error of a gesture is not abnormally high (an indicator that no gesture was performed).
   27.34 +
   27.35 +
   27.36 +
   27.37 +Saving:
   27.38 +-------
   27.39 +To save a template, call SDL_SaveDollarTemplate(gestureId, dst) where gestureId is the id of the gesture you want to save, and dst is an SDL_RWops pointer to the file where the gesture will be stored.
   27.40 +
   27.41 +To save all currently loaded templates, call SDL_SaveAllDollarTemplates(dst) where dst is an SDL_RWops pointer to the file where the gesture will be stored.
   27.42 +
   27.43 +Both functions return the number of gestures successfully saved.
   27.44 +
   27.45 +
   27.46 +Loading:
   27.47 +--------
   27.48 +To load templates from a file, call SDL_LoadDollarTemplates(touchId,src) where touchId is the id of the touch to load to (or -1 to load to all touch devices), and src is an SDL_RWops pointer to a gesture save file. 
   27.49 +
   27.50 +SDL_LoadDollarTemplates returns the number of templates successfully loaded.
   27.51 +
   27.52 +
   27.53 +
   27.54 +===========================================================================
   27.55 +Multi Gestures
   27.56 +===========================================================================
   27.57 +SDL provides simple support for pinch/rotate/swipe gestures. 
   27.58 +Every time a finger is moved an SDL_MULTIGESTURE event is sent with the following fields:
   27.59 +
   27.60 +event.mgesture.touchId - the Id of the touch on which the gesture was performed.
   27.61 +event.mgesture.x       - the normalized x coordinate of the gesture. (0..1)
   27.62 +event.mgesture.y       - the normalized y coordinate of the gesture. (0..1)
   27.63 +event.mgesture.dTheta  - the amount that the fingers rotated during this motion.
   27.64 +event.mgesture.dDist   - the amount that the fingers pinched during this motion.
   27.65 +event.mgesture.numFingers - the number of fingers used in the gesture.
   27.66 +
   27.67 +
   27.68 +===========================================================================
   27.69 +Notes
   27.70 +===========================================================================
   27.71 +For a complete example see test/testgesture.c
   27.72 +
   27.73 +Please direct questions/comments to:
   27.74 +   jim.tla+sdl_touch@gmail.com
    28.1 --- /dev/null	Thu Jan 01 00:00:00 1970 +0000
    28.2 +++ b/doc/README-hg.md	Tue Jul 29 09:20:12 2014 -0300
    28.3 @@ -0,0 +1,26 @@
    28.4 +Mercurial
    28.5 +=========
    28.6 +
    28.7 +The latest development version of SDL is available via Mercurial.
    28.8 +Mercurial allows you to get up-to-the-minute fixes and enhancements;
    28.9 +as a developer works on a source tree, you can use "hg" to mirror that
   28.10 +source tree instead of waiting for an official release. Please look
   28.11 +at the Mercurial website ( http://mercurial.selenic.com/ ) for more
   28.12 +information on using hg, where you can also download software for
   28.13 +Mac OS X, Windows, and Unix systems.
   28.14 +
   28.15 +  hg clone http://hg.libsdl.org/SDL
   28.16 +
   28.17 +If you are building SDL with an IDE, you will need to copy the file
   28.18 +include/SDL_config.h.default to include/SDL_config.h before building.
   28.19 +
   28.20 +If you are building SDL via configure, you will need to run autogen.sh
   28.21 +before running configure.
   28.22 +
   28.23 +There is a web interface to the subversion repository at:
   28.24 +
   28.25 +	http://hg.libsdl.org/SDL/
   28.26 +
   28.27 +There is an RSS feed available at that URL, for those that want to
   28.28 +track commits in real time.
   28.29 +
    29.1 --- /dev/null	Thu Jan 01 00:00:00 1970 +0000
    29.2 +++ b/doc/README-ios.md	Tue Jul 29 09:20:12 2014 -0300
    29.3 @@ -0,0 +1,225 @@
    29.4 +iOS
    29.5 +======
    29.6 +
    29.7 +==============================================================================
    29.8 +Building the Simple DirectMedia Layer for iPhone OS 5.1
    29.9 +==============================================================================
   29.10 +
   29.11 +Requirements: Mac OS X v10.5 or later and the iPhone SDK.
   29.12 +
   29.13 +Instructions:
   29.14 +1.  Open SDL.xcodeproj (located in Xcode-iOS/SDL) in XCode.
   29.15 +2.  Select your desired target, and hit build.
   29.16 +
   29.17 +There are three build targets:
   29.18 +- libSDL.a:
   29.19 +	Build SDL as a statically linked library
   29.20 +- testsdl
   29.21 +	Build a test program (there are known test failures which are fine)
   29.22 +- Template:
   29.23 +	Package a project template together with the SDL for iPhone static libraries and copies of the SDL headers.  The template includes proper references to the SDL library and headers, skeleton code for a basic SDL program, and placeholder graphics for the application icon and startup screen.
   29.24 +
   29.25 +==============================================================================
   29.26 +Build SDL for iOS from the command line
   29.27 +==============================================================================
   29.28 +
   29.29 +1. cd (PATH WHERE THE SDL CODE IS)/build-scripts
   29.30 +2. ./iosbuild.sh
   29.31 +
   29.32 +If everything goes fine, you should see a build/ios directory, inside there's
   29.33 +two directories "lib" and "include". 
   29.34 +"include" contains a copy of the SDL headers that you'll need for your project,
   29.35 +make sure to configure XCode to look for headers there.
   29.36 +"lib" contains find two files, libSDL2.a and libSDL2main.a, you have to add both 
   29.37 +to your XCode project. These libraries contain three architectures in them,
   29.38 +armv6 for legacy devices, armv7, and i386 (for the simulator).
   29.39 +By default, iosbuild.sh will autodetect the SDK version you have installed using 
   29.40 +xcodebuild -showsdks, and build for iOS >= 3.0, you can override this behaviour 
   29.41 +by setting the MIN_OS_VERSION variable, ie:
   29.42 +
   29.43 +MIN_OS_VERSION=4.2 ./iosbuild.sh
   29.44 +
   29.45 +==============================================================================
   29.46 +Using the Simple DirectMedia Layer for iOS
   29.47 +==============================================================================
   29.48 +
   29.49 +FIXME: This needs to be updated for the latest methods
   29.50 +
   29.51 +Here is the easiest method:
   29.52 +1.  Build the SDL libraries (libSDL.a and libSDLSimulator.a) and the iPhone SDL Application template.
   29.53 +1.  Install the iPhone SDL Application template by copying it to one of XCode's template directories.  I recommend creating a directory called "SDL" in "/Developer/Platforms/iOS.platform/Developer/Library/XCode/Project Templates/" and placing it there.
   29.54 +2.  Start a new project using the template.  The project should be immediately ready for use with SDL.
   29.55 +
   29.56 +Here is a more manual method:
   29.57 +1.  Create a new iPhone view based application.
   29.58 +2.  Build the SDL static libraries (libSDL.a and libSDLSimulator.a) for iPhone and include them in your project.  XCode will ignore the library that is not currently of the correct architecture, hence your app will work both on iPhone and in the iPhone Simulator.
   29.59 +3.  Include the SDL header files in your project.
   29.60 +4.  Remove the ApplicationDelegate.h and ApplicationDelegate.m files -- SDL for iPhone provides its own UIApplicationDelegate.  Remove MainWindow.xib -- SDL for iPhone produces its user interface programmatically.
   29.61 +5.  Delete the contents of main.m and program your app as a regular SDL program instead.  You may replace main.m with your own main.c, but you must tell XCode not to use the project prefix file, as it includes Objective-C code.
   29.62 +
   29.63 +==============================================================================
   29.64 +Notes -- Application events
   29.65 +==============================================================================
   29.66 +
   29.67 +On iOS the application goes through a fixed life cycle and you will get
   29.68 +notifications of state changes via application events. When these events
   29.69 +are delivered you must handle them in an event callback because the OS may
   29.70 +not give you any processing time after the events are delivered.
   29.71 +
   29.72 +e.g.
   29.73 +
   29.74 +int HandleAppEvents(void *userdata, SDL_Event *event)
   29.75 +{
   29.76 +    switch (event->type)
   29.77 +    {
   29.78 +    case SDL_APP_TERMINATING:
   29.79 +        /* Terminate the app.
   29.80 +           Shut everything down before returning from this function.
   29.81 +        */
   29.82 +        return 0;
   29.83 +    case SDL_APP_LOWMEMORY:
   29.84 +        /* You will get this when your app is paused and iOS wants more memory.
   29.85 +           Release as much memory as possible.
   29.86 +        */
   29.87 +        return 0;
   29.88 +    case SDL_APP_WILLENTERBACKGROUND:
   29.89 +        /* Prepare your app to go into the background.  Stop loops, etc.
   29.90 +           This gets called when the user hits the home button, or gets a call.
   29.91 +        */
   29.92 +        return 0;
   29.93 +    case SDL_APP_DIDENTERBACKGROUND:
   29.94 +        /* This will get called if the user accepted whatever sent your app to the background.
   29.95 +           If the user got a phone call and canceled it, you'll instead get an SDL_APP_DIDENTERFOREGROUND event and restart your loops.
   29.96 +           When you get this, you have 5 seconds to save all your state or the app will be terminated.
   29.97 +           Your app is NOT active at this point.
   29.98 +        */
   29.99 +        return 0;
  29.100 +    case SDL_APP_WILLENTERFOREGROUND:
  29.101 +        /* This call happens when your app is coming back to the foreground.
  29.102 +           Restore all your state here.
  29.103 +        */
  29.104 +        return 0;
  29.105 +    case SDL_APP_DIDENTERFOREGROUND:
  29.106 +        /* Restart your loops here.
  29.107 +           Your app is interactive and getting CPU again.
  29.108 +        */
  29.109 +        return 0;
  29.110 +    default:
  29.111 +        /* No special processing, add it to the event queue */
  29.112 +        return 1;
  29.113 +    }
  29.114 +}
  29.115 +
  29.116 +int main(int argc, char *argv[])
  29.117 +{
  29.118 +    SDL_SetEventFilter(HandleAppEvents, NULL);
  29.119 +
  29.120 +    ... run your main loop
  29.121 +
  29.122 +    return 0;
  29.123 +}
  29.124 +
  29.125 +    
  29.126 +==============================================================================
  29.127 +Notes -- Accelerometer as Joystick
  29.128 +==============================================================================
  29.129 +
  29.130 +SDL for iPhone supports polling the built in accelerometer as a joystick device.  For an example on how to do this, see the accelerometer.c in the demos directory.
  29.131 +
  29.132 +The main thing to note when using the accelerometer with SDL is that while the iPhone natively reports accelerometer as floating point values in units of g-force, SDL_JoystickGetAxis reports joystick values as signed integers.  Hence, in order to convert between the two, some clamping and scaling is necessary on the part of the iPhone SDL joystick driver.  To convert SDL_JoystickGetAxis reported values BACK to units of g-force, simply multiply the values by SDL_IPHONE_MAX_GFORCE / 0x7FFF.
  29.133 +
  29.134 +==============================================================================
  29.135 +Notes -- OpenGL ES
  29.136 +==============================================================================
  29.137 +
  29.138 +Your SDL application for iPhone uses OpenGL ES for video by default.
  29.139 +
  29.140 +OpenGL ES for iPhone supports several display pixel formats, such as RGBA8 and RGB565, which provide a 32 bit and 16 bit color buffer respectively.  By default, the implementation uses RGB565, but you may use RGBA8 by setting each color component to 8 bits in SDL_GL_SetAttribute.
  29.141 +
  29.142 +If your application doesn't use OpenGL's depth buffer, you may find significant performance improvement by setting SDL_GL_DEPTH_SIZE to 0.
  29.143 +
  29.144 +Finally, if your application completely redraws the screen each frame, you may find significant performance improvement by setting the attribute SDL_GL_RETAINED_BACKING to 1.
  29.145 +
  29.146 +==============================================================================
  29.147 +Notes -- Keyboard
  29.148 +==============================================================================
  29.149 +
  29.150 +The SDL keyboard API has been extended to support on-screen keyboards:
  29.151 +
  29.152 +void SDL_StartTextInput()
  29.153 +	-- enables text events and reveals the onscreen keyboard.
  29.154 +void SDL_StopTextInput()
  29.155 +	-- disables text events and hides the onscreen keyboard.
  29.156 +SDL_bool SDL_IsTextInputActive()
  29.157 +	-- returns whether or not text events are enabled (and the onscreen keyboard is visible)
  29.158 +
  29.159 +==============================================================================
  29.160 +Notes -- Reading and Writing files
  29.161 +==============================================================================
  29.162 +
  29.163 +Each application installed on iPhone resides in a sandbox which includes its own Application Home directory.  Your application may not access files outside this directory.
  29.164 +
  29.165 +Once your application is installed its directory tree looks like:
  29.166 +
  29.167 +MySDLApp Home/
  29.168 +	MySDLApp.app
  29.169 +	Documents/
  29.170 +	Library/
  29.171 +		Preferences/
  29.172 +	tmp/
  29.173 +
  29.174 +When your SDL based iPhone application starts up, it sets the working directory to the main bundle (MySDLApp Home/MySDLApp.app), where your application resources are stored.  You cannot write to this directory.  Instead, I advise you to write document files to "../Documents/" and preferences to "../Library/Preferences".  
  29.175 +
  29.176 +More information on this subject is available here:
  29.177 +http://developer.apple.com/library/ios/#documentation/iPhone/Conceptual/iPhoneOSProgrammingGuide/Introduction/Introduction.html
  29.178 +
  29.179 +==============================================================================
  29.180 +Notes -- iPhone SDL limitations
  29.181 +==============================================================================
  29.182 +
  29.183 +Windows:
  29.184 +	Full-size, single window applications only.  You cannot create multi-window SDL applications for iPhone OS.  The application window will fill the display, though you have the option of turning on or off the menu-bar (pass SDL_CreateWindow the flag SDL_WINDOW_BORDERLESS).
  29.185 +
  29.186 +Textures:
  29.187 +	The optimal texture formats on iOS are SDL_PIXELFORMAT_ABGR8888, SDL_PIXELFORMAT_ABGR8888, SDL_PIXELFORMAT_BGR888, and SDL_PIXELFORMAT_RGB24 pixel formats.
  29.188 +
  29.189 +Loading Shared Objects:
  29.190 +	This is disabled by default since it seems to break the terms of the iPhone SDK agreement.  It can be re-enabled in SDL_config_iphoneos.h.
  29.191 +
  29.192 +==============================================================================
  29.193 +Game Center 
  29.194 +==============================================================================
  29.195 +
  29.196 +Game Center integration requires that you break up your main loop in order to yield control back to the system. In other words, instead of running an endless main loop, you run each frame in a callback function, using:
  29.197 +    
  29.198 +int SDL_iPhoneSetAnimationCallback(SDL_Window * window, int interval, void (*callback)(void*), void *callbackParam);
  29.199 +
  29.200 +This will set up the given function to be called back on the animation callback, and then you have to return from main() to let the Cocoa event loop run.
  29.201 +
  29.202 +e.g.
  29.203 +
  29.204 +extern "C"
  29.205 +void ShowFrame(void*)
  29.206 +{
  29.207 +    ... do event handling, frame logic and rendering
  29.208 +}
  29.209 +
  29.210 +int main(int argc, char *argv[])
  29.211 +{
  29.212 +   ... initialize game ...
  29.213 +
  29.214 +#if __IPHONEOS__
  29.215 +        // Initialize the Game Center for scoring and matchmaking
  29.216 +        InitGameCenter();
  29.217 +
  29.218 +        // Set up the game to run in the window animation callback on iOS
  29.219 +        // so that Game Center and so forth works correctly.
  29.220 +        SDL_iPhoneSetAnimationCallback(window, 1, ShowFrame, NULL);
  29.221 +#else
  29.222 +        while ( running ) {
  29.223 +                ShowFrame(0);
  29.224 +                DelayFrame();
  29.225 +        }
  29.226 +#endif
  29.227 +        return 0;
  29.228 +}
    30.1 --- /dev/null	Thu Jan 01 00:00:00 1970 +0000
    30.2 +++ b/doc/README-linux.md	Tue Jul 29 09:20:12 2014 -0300
    30.3 @@ -0,0 +1,82 @@
    30.4 +Linux
    30.5 +================================================================================
    30.6 +
    30.7 +By default SDL will only link against glibc, the rest of the features will be
    30.8 +enabled dynamically at runtime depending on the available features on the target
    30.9 +system. So, for example if you built SDL with Xinerama support and the target
   30.10 +system does not have the Xinerama libraries installed, it will be disabled
   30.11 +at runtime, and you won't get a missing library error, at least with the 
   30.12 +default configuration parameters.
   30.13 +
   30.14 +
   30.15 +================================================================================
   30.16 +Build Dependencies
   30.17 +================================================================================
   30.18 +    
   30.19 +Ubuntu 13.04, all available features enabled:
   30.20 +
   30.21 +sudo apt-get install build-essential mercurial make cmake autoconf automake \
   30.22 +libtool libasound2-dev libpulse-dev libaudio-dev libx11-dev libxext-dev \
   30.23 +libxrandr-dev libxcursor-dev libxi-dev libxinerama-dev libxxf86vm-dev \
   30.24 +libxss-dev libgl1-mesa-dev libesd0-dev libdbus-1-dev libudev-dev \
   30.25 +libgles1-mesa-dev libgles2-mesa-dev libegl1-mesa-dev
   30.26 +
   30.27 +Ubuntu 14.04 can also add "libwayland-dev libmirclient-dev libxkbcommon-dev"
   30.28 +to that command line for Wayland and Mir support.
   30.29 +
   30.30 +NOTES:
   30.31 +- This includes all the audio targets except arts, because Ubuntu pulled the 
   30.32 +  artsc0-dev package, but in theory SDL still supports it.
   30.33 +- DirectFB isn't included because the configure script (currently) fails to find
   30.34 +  it at all. You can do "sudo apt-get install libdirectfb-dev" and fix the 
   30.35 +  configure script to include DirectFB support. Send patches.  :)
   30.36 +
   30.37 +
   30.38 +================================================================================
   30.39 +Joystick does not work
   30.40 +================================================================================
   30.41 +
   30.42 +If you compiled or are using a version of SDL with udev support (and you should!)
   30.43 +there's a few issues that may cause SDL to fail to detect your joystick. To
   30.44 +debug this, start by installing the evtest utility. On Ubuntu/Debian:
   30.45 +
   30.46 +    sudo apt-get install evtest
   30.47 +    
   30.48 +Then run:
   30.49 +    
   30.50 +    sudo evtest
   30.51 +    
   30.52 +You'll hopefully see your joystick listed along with a name like "/dev/input/eventXX"
   30.53 +Now run:
   30.54 +    
   30.55 +    cat /dev/input/event/XX
   30.56 +
   30.57 +If you get a permission error, you need to set a udev rule to change the mode of
   30.58 +your device (see below)    
   30.59 +    
   30.60 +Also, try:
   30.61 +    
   30.62 +    sudo udevadm info --query=all --name=input/eventXX
   30.63 +    
   30.64 +If you see a line stating ID_INPUT_JOYSTICK=1, great, if you don't see it,
   30.65 +you need to set up an udev rule to force this variable.
   30.66 +
   30.67 +A combined rule for the Saitek Pro Flight Rudder Pedals to fix both issues looks 
   30.68 +like:
   30.69 +    
   30.70 +   SUBSYSTEM=="input", ATTRS{idProduct}=="0763", ATTRS{idVendor}=="06a3", MODE="0666", ENV{ID_INPUT_JOYSTICK}="1"
   30.71 +   SUBSYSTEM=="input", ATTRS{idProduct}=="0764", ATTRS{idVendor}=="06a3", MODE="0666", ENV{ID_INPUT_JOYSTICK}="1"
   30.72 +   
   30.73 +You can set up similar rules for your device by changing the values listed in
   30.74 +idProduct and idVendor. To obtain these values, try:
   30.75 +    
   30.76 +    sudo udevadm info -a --name=input/eventXX | grep idVendor
   30.77 +    sudo udevadm info -a --name=input/eventXX | grep idProduct
   30.78 +    
   30.79 +If multiple values come up for each of these, the one you want is the first one of each.    
   30.80 +
   30.81 +On other systems which ship with an older udev (such as CentOS), you may need
   30.82 +to set up a rule such as:
   30.83 +    
   30.84 +    SUBSYSTEM=="input", ENV{ID_CLASS}=="joystick", ENV{ID_INPUT_JOYSTICK}="1"
   30.85 +
    31.1 --- /dev/null	Thu Jan 01 00:00:00 1970 +0000
    31.2 +++ b/doc/README-macosx.md	Tue Jul 29 09:20:12 2014 -0300
    31.3 @@ -0,0 +1,225 @@
    31.4 +Mac OS X
    31.5 +==============================================================================
    31.6 +
    31.7 +These instructions are for people using Apple's Mac OS X (pronounced
    31.8 +"ten").
    31.9 +
   31.10 +From the developer's point of view, OS X is a sort of hybrid Mac and
   31.11 +Unix system, and you have the option of using either traditional
   31.12 +command line tools or Apple's IDE Xcode.
   31.13 +
   31.14 +To build SDL using the command line, use the standard configure and make
   31.15 +process:
   31.16 +
   31.17 +	./configure
   31.18 +	make
   31.19 +	sudo make install
   31.20 +
   31.21 +You can also build SDL as a Universal library (a single binary for both
   31.22 +32-bit and 64-bit Intel architectures), on Mac OS X 10.7 and newer, by using
   31.23 +the fatbuild.sh script in build-scripts:
   31.24 +	sh build-scripts/fatbuild.sh
   31.25 +	sudo build-scripts/fatbuild.sh install
   31.26 +This script builds SDL with 10.5 ABI compatibility on i386 and 10.6
   31.27 +ABI compatibility on x86_64 architectures.  For best compatibility you
   31.28 +should compile your application the same way.  A script which wraps
   31.29 +gcc to make this easy is provided in test/gcc-fat.sh
   31.30 +
   31.31 +Please note that building SDL requires at least Xcode 4.6 and the 10.7 SDK
   31.32 +(even if you target back to 10.5 systems). PowerPC support for Mac OS X has
   31.33 +been officially dropped as of SDL 2.0.2.
   31.34 +
   31.35 +To use the library once it's built, you essential have two possibilities:
   31.36 +use the traditional autoconf/automake/make method, or use Xcode.
   31.37 +
   31.38 +==============================================================================
   31.39 +Caveats for using SDL with Mac OS X
   31.40 +==============================================================================
   31.41 +
   31.42 +Some things you have to be aware of when using SDL on Mac OS X:
   31.43 +
   31.44 +- If you register your own NSApplicationDelegate (using [NSApp setDelegate:]),
   31.45 +  SDL will not register its own. This means that SDL will not terminate using
   31.46 +  SDL_Quit if it receives a termination request, it will terminate like a 
   31.47 +  normal app, and it will not send a SDL_DROPFILE when you request to open a
   31.48 +  file with the app. To solve these issues, put the following code in your 
   31.49 +  NSApplicationDelegate implementation:
   31.50 +
   31.51 +  - (NSApplicationTerminateReply)applicationShouldTerminate:(NSApplication *)sender
   31.52 +  {
   31.53 +      if (SDL_GetEventState(SDL_QUIT) == SDL_ENABLE) {
   31.54 +          SDL_Event event;
   31.55 +          event.type = SDL_QUIT;
   31.56 +          SDL_PushEvent(&event);
   31.57 +      }
   31.58 +
   31.59 +      return NSTerminateCancel;
   31.60 +  }
   31.61 +
   31.62 +  - (BOOL)application:(NSApplication *)theApplication openFile:(NSString *)filename
   31.63 +  {
   31.64 +      if (SDL_GetEventState(SDL_DROPFILE) == SDL_ENABLE) {
   31.65 +          SDL_Event event;
   31.66 +          event.type = SDL_DROPFILE;
   31.67 +          event.drop.file = SDL_strdup([filename UTF8String]);
   31.68 +          return (SDL_PushEvent(&event) > 0);
   31.69 +      }
   31.70 +
   31.71 +      return NO;
   31.72 +  }
   31.73 +
   31.74 +==============================================================================
   31.75 +Using the Simple DirectMedia Layer with a traditional Makefile
   31.76 +==============================================================================
   31.77 +
   31.78 +An existing autoconf/automake build system for your SDL app has good chances
   31.79 +to work almost unchanged on OS X. However, to produce a "real" Mac OS X binary
   31.80 +that you can distribute to users, you need to put the generated binary into a
   31.81 +so called "bundle", which basically is a fancy folder with a name like
   31.82 +"MyCoolGame.app".
   31.83 +
   31.84 +To get this build automatically, add something like the following rule to
   31.85 +your Makefile.am:
   31.86 +
   31.87 +bundle_contents = APP_NAME.app/Contents
   31.88 +APP_NAME_bundle: EXE_NAME
   31.89 +	mkdir -p $(bundle_contents)/MacOS
   31.90 +	mkdir -p $(bundle_contents)/Resources
   31.91 +	echo "APPL????" > $(bundle_contents)/PkgInfo
   31.92 +	$(INSTALL_PROGRAM) $< $(bundle_contents)/MacOS/
   31.93 +
   31.94 +You should replace EXE_NAME with the name of the executable. APP_NAME is what
   31.95 +will be visible to the user in the Finder. Usually it will be the same
   31.96 +as EXE_NAME but capitalized. E.g. if EXE_NAME is "testgame" then APP_NAME 
   31.97 +usually is "TestGame". You might also want to use @PACKAGE@ to use the package
   31.98 +name as specified in your configure.in file.
   31.99 +
  31.100 +If your project builds more than one application, you will have to do a bit
  31.101 +more. For each of your target applications, you need a separate rule.
  31.102 +
  31.103 +If you want the created bundles to be installed, you may want to add this
  31.104 +rule to your Makefile.am:
  31.105 +
  31.106 +install-exec-hook: APP_NAME_bundle
  31.107 +	rm -rf $(DESTDIR)$(prefix)/Applications/APP_NAME.app
  31.108 +	mkdir -p $(DESTDIR)$(prefix)/Applications/
  31.109 +	cp -r $< /$(DESTDIR)$(prefix)Applications/
  31.110 +
  31.111 +This rule takes the Bundle created by the rule from step 3 and installs them
  31.112 +into $(DESTDIR)$(prefix)/Applications/.
  31.113 +
  31.114 +Again, if you want to install multiple applications, you will have to augment
  31.115 +the make rule accordingly.
  31.116 +
  31.117 +
  31.118 +But beware! That is only part of the story! With the above, you end up with
  31.119 +a bare bone .app bundle, which is double clickable from the Finder. But
  31.120 +there are some more things you should do before shipping your product...
  31.121 +
  31.122 +1) The bundle right now probably is dynamically linked against SDL. That 
  31.123 +   means that when you copy it to another computer, *it will not run*,
  31.124 +   unless you also install SDL on that other computer. A good solution
  31.125 +   for this dilemma is to static link against SDL. On OS X, you can
  31.126 +   achieve that by linking against the libraries listed by
  31.127 +     sdl-config --static-libs
  31.128 +   instead of those listed by
  31.129 +     sdl-config --libs
  31.130 +   Depending on how exactly SDL is integrated into your build systems, the
  31.131 +   way to achieve that varies, so I won't describe it here in detail
  31.132 +2) Add an 'Info.plist' to your application. That is a special XML file which
  31.133 +   contains some meta-information about your application (like some copyright
  31.134 +   information, the version of your app, the name of an optional icon file,
  31.135 +   and other things). Part of that information is displayed by the Finder
  31.136 +   when you click on the .app, or if you look at the "Get Info" window.
  31.137 +   More information about Info.plist files can be found on Apple's homepage.
  31.138 +
  31.139 +
  31.140 +As a final remark, let me add that I use some of the techniques (and some
  31.141 +variations of them) in Exult and ScummVM; both are available in source on
  31.142 +the net, so feel free to take a peek at them for inspiration!
  31.143 +
  31.144 +
  31.145 +==============================================================================
  31.146 +Using the Simple DirectMedia Layer with Xcode
  31.147 +==============================================================================
  31.148 +
  31.149 +These instructions are for using Apple's Xcode IDE to build SDL applications.
  31.150 +
  31.151 +- First steps
  31.152 +
  31.153 +The first thing to do is to unpack the Xcode.tar.gz archive in the
  31.154 +top level SDL directory (where the Xcode.tar.gz archive resides).
  31.155 +Because Stuffit Expander will unpack the archive into a subdirectory,
  31.156 +you should unpack the archive manually from the command line:
  31.157 +	cd [path_to_SDL_source]
  31.158 +	tar zxf Xcode.tar.gz
  31.159 +This will create a new folder called Xcode, which you can browse
  31.160 +normally from the Finder.
  31.161 +
  31.162 +- Building the Framework
  31.163 +
  31.164 +The SDL Library is packaged as a framework bundle, an organized
  31.165 +relocatable folder hierarchy of executable code, interface headers,
  31.166 +and additional resources. For practical purposes, you can think of a 
  31.167 +framework as a more user and system-friendly shared library, whose library
  31.168 +file behaves more or less like a standard UNIX shared library.
  31.169 +
  31.170 +To build the framework, simply open the framework project and build it. 
  31.171 +By default, the framework bundle "SDL.framework" is installed in 
  31.172 +/Library/Frameworks. Therefore, the testers and project stationary expect
  31.173 +it to be located there. However, it will function the same in any of the
  31.174 +following locations:
  31.175 +
  31.176 +    ~/Library/Frameworks
  31.177 +    /Local/Library/Frameworks
  31.178 +    /System/Library/Frameworks
  31.179 +
  31.180 +- Build Options
  31.181 +    There are two "Build Styles" (See the "Targets" tab) for SDL.
  31.182 +    "Deployment" should be used if you aren't tweaking the SDL library.
  31.183 +    "Development" should be used to debug SDL apps or the library itself.
  31.184 +
  31.185 +- Building the Testers
  31.186 +    Open the SDLTest project and build away!
  31.187 +
  31.188 +- Using the Project Stationary
  31.189 +    Copy the stationary to the indicated folders to access it from
  31.190 +    the "New Project" and "Add target" menus. What could be easier?
  31.191 +
  31.192 +- Setting up a new project by hand
  31.193 +    Some of you won't want to use the Stationary so I'll give some tips:
  31.194 +    * Create a new "Cocoa Application"
  31.195 +    * Add src/main/macosx/SDLMain.m , .h and .nib to your project
  31.196 +    * Remove "main.c" from your project
  31.197 +    * Remove "MainMenu.nib" from your project
  31.198 +    * Add "$(HOME)/Library/Frameworks/SDL.framework/Headers" to include path
  31.199 +    * Add "$(HOME)/Library/Frameworks" to the frameworks search path
  31.200 +    * Add "-framework SDL -framework Foundation -framework AppKit" to "OTHER_LDFLAGS"
  31.201 +    * Set the "Main Nib File" under "Application Settings" to "SDLMain.nib"
  31.202 +    * Add your files
  31.203 +    * Clean and build
  31.204 +
  31.205 +- Building from command line
  31.206 +    Use pbxbuild in the same directory as your .pbproj file
  31.207 +
  31.208 +- Running your app
  31.209 +    You can send command line args to your app by either invoking it from
  31.210 +    the command line (in *.app/Contents/MacOS) or by entering them in the
  31.211 +    "Executables" panel of the target settings.
  31.212 +    
  31.213 +- Implementation Notes
  31.214 +    Some things that may be of interest about how it all works...
  31.215 +    * Working directory
  31.216 +        As defined in the SDL_main.m file, the working directory of your SDL app
  31.217 +        is by default set to its parent. You may wish to change this to better
  31.218 +        suit your needs.
  31.219 +    * You have a Cocoa App!
  31.220 +        Your SDL app is essentially a Cocoa application. When your app
  31.221 +        starts up and the libraries finish loading, a Cocoa procedure is called,
  31.222 +        which sets up the working directory and calls your main() method.
  31.223 +        You are free to modify your Cocoa app with generally no consequence 
  31.224 +        to SDL. You cannot, however, easily change the SDL window itself.
  31.225 +        Functionality may be added in the future to help this.
  31.226 +
  31.227 +
  31.228 +Known bugs are listed in the file "BUGS"
    32.1 --- /dev/null	Thu Jan 01 00:00:00 1970 +0000
    32.2 +++ b/doc/README-nacl.md	Tue Jul 29 09:20:12 2014 -0300
    32.3 @@ -0,0 +1,103 @@
    32.4 +Native Client
    32.5 +================================================================================
    32.6 +
    32.7 +Requirements: 
    32.8 +    
    32.9 +    * Native Client SDK (https://developer.chrome.com/native-client), 
   32.10 +      (tested with Pepper version 33 or higher).
   32.11 +
   32.12 +The SDL backend for Chrome's Native Client has been tested only with the PNaCl
   32.13 +toolchain, which generates binaries designed to run on ARM and x86_32/64 
   32.14 +platforms. This does not mean it won't work with the other toolchains!
   32.15 +
   32.16 +================================================================================
   32.17 +Building SDL for NaCl
   32.18 +================================================================================
   32.19 +
   32.20 +Set up the right environment variables (see naclbuild.sh), then configure SDL with:
   32.21 +
   32.22 +    configure --host=pnacl --prefix some/install/destination
   32.23 +    
   32.24 +Then "make". 
   32.25 +
   32.26 +As an example of how to create a deployable app a Makefile project is provided 
   32.27 +in test/nacl/Makefile, which includes some monkey patching of the common.mk file 
   32.28 +provided by NaCl, without which linking properly to SDL won't work (the search 
   32.29 +path can't be modified externally, so the linker won't find SDL's binaries unless 
   32.30 +you dump them into the SDK path, which is inconvenient).
   32.31 +Also provided in test/nacl is the required support file, such as index.html, 
   32.32 +manifest.json, etc.
   32.33 +SDL apps for NaCl run on a worker thread using the ppapi_simple infrastructure.
   32.34 +This allows for blocking calls on all the relevant systems (OpenGL ES, filesystem),
   32.35 +hiding the asynchronous nature of the browser behind the scenes...which is not the
   32.36 +same as making it disappear!
   32.37 +
   32.38 +
   32.39 +================================================================================
   32.40 +Running tests
   32.41 +================================================================================
   32.42 +
   32.43 +Due to the nature of NaCl programs, building and running SDL tests is not as
   32.44 +straightforward as one would hope. The script naclbuild.sh in build-scripts 
   32.45 +automates the process and should serve as a guide for users of SDL trying to build 
   32.46 +their own applications.
   32.47 +
   32.48 +Basic usage:
   32.49 +    
   32.50 +    ./naclbuild.sh path/to/pepper/toolchain (i.e. ~/naclsdk/pepper_35)
   32.51 +    
   32.52 +This will build testgles2.c by default.
   32.53 +
   32.54 +If you want to build a different test, for example testrendercopyex.c:
   32.55 +    
   32.56 +    SOURCES=~/sdl/SDL/test/testrendercopyex.c ./naclbuild.sh ~/naclsdk/pepper_35
   32.57 +    
   32.58 +Once the build finishes, you have to serve the contents with a web server (the
   32.59 +script will give you instructions on how to do that with Python).
   32.60 +
   32.61 +================================================================================
   32.62 +RWops and nacl_io
   32.63 +================================================================================
   32.64 +
   32.65 +SDL_RWops work transparently with nacl_io. Two functions control the mount points:
   32.66 +    
   32.67 +    int mount(const char* source, const char* target, 
   32.68 +                      const char* filesystemtype, 
   32.69 +                      unsigned long mountflags, const void *data);
   32.70 +    int umount(const char *target);
   32.71 +    
   32.72 +    For convenience, SDL will by default mount an httpfs tree at / before calling 
   32.73 +the app's main function. Such setting can be overridden by calling:
   32.74 +    
   32.75 +    umount("/");
   32.76 +
   32.77 +And then mounting a different filesystem at /
   32.78 +
   32.79 +It's important to consider that the asynchronous nature of file operations on a
   32.80 +browser is hidden from the application, effectively providing the developer with
   32.81 +a set of blocking file operations just like you get in a regular desktop 
   32.82 +environment, which eases the job of porting to Native Client, but also introduces 
   32.83 +a set of challenges of its own, in particular when big file sizes and slow 
   32.84 +connections are involved.
   32.85 +
   32.86 +For more information on how nacl_io and mount points work, see:
   32.87 +    
   32.88 +    https://developer.chrome.com/native-client/devguide/coding/nacl_io
   32.89 +    https://src.chromium.org/chrome/trunk/src/native_client_sdk/src/libraries/nacl_io/nacl_io.h
   32.90 +
   32.91 +To be able to save into the directory "/save/" (like backup of game) :
   32.92 +
   32.93 +    mount("", "/save", "html5fs", 0, "type=PERSISTENT");
   32.94 +
   32.95 +And add to manifest.json :
   32.96 +
   32.97 +  "permissions": [
   32.98 +     "unlimitedStorage"
   32.99 +  ]
  32.100 +
  32.101 +================================================================================
  32.102 +TODO - Known Issues
  32.103 +================================================================================
  32.104 +* Testing of all systems with a real application (something other than SDL's tests)
  32.105 +* Key events don't seem to work properly
  32.106 +
    33.1 --- /dev/null	Thu Jan 01 00:00:00 1970 +0000
    33.2 +++ b/doc/README-pandora.md	Tue Jul 29 09:20:12 2014 -0300
    33.3 @@ -0,0 +1,17 @@
    33.4 +Pandora 
    33.5 +=====================================================================
    33.6 +
    33.7 +( http://openpandora.org/ )
    33.8 +- A pandora specific video driver was written to allow SDL 2.0 with OpenGL ES
    33.9 +support to work on the pandora under the framebuffer. This driver do not have
   33.10 +input support for now, so if you use it you will have to add your own control code.
   33.11 +The video driver name is "pandora" so if you have problem running it from
   33.12 +the framebuffer, try to set the following variable before starting your application :
   33.13 +"export SDL_VIDEODRIVER=pandora"
   33.14 +
   33.15 +- OpenGL ES support was added to the x11 driver, so it's working like the normal
   33.16 +x11 driver one with OpenGLX support, with SDL input event's etc..
   33.17 +
   33.18 +
   33.19 +David Carré (Cpasjuste)
   33.20 +cpasjuste@gmail.com
    34.1 --- /dev/null	Thu Jan 01 00:00:00 1970 +0000
    34.2 +++ b/doc/README-platforms.md	Tue Jul 29 09:20:12 2014 -0300
    34.3 @@ -0,0 +1,34 @@
    34.4 +Platforms
    34.5 +=========
    34.6 +
    34.7 +
    34.8 +This is a list of the platforms SDL supports, and who maintains them.
    34.9 +
   34.10 +Officially supported platforms
   34.11 +==============================
   34.12 +(code compiles, and thoroughly tested for release)
   34.13 +==============================
   34.14 +Windows XP/Vista/7/8
   34.15 +Mac OS X 10.5+
   34.16 +Linux 2.6+
   34.17 +iOS 5.1.1+
   34.18 +Android 2.3.3+
   34.19 +
   34.20 +Unofficially supported platforms
   34.21 +================================
   34.22 +(code compiles, but not thoroughly tested)
   34.23 +================================
   34.24 +FreeBSD
   34.25 +NetBSD
   34.26 +OpenBSD
   34.27 +Solaris
   34.28 +
   34.29 +Platforms supported by volunteers
   34.30 +=================================
   34.31 +Haiku - maintained by Axel Dörfler <axeld@pinc-software.de>
   34.32 +PSP - maintained by 527721088@qq.com
   34.33 +Pandora - maintained by Scott Smith <pickle136@sbcglobal.net>
   34.34 +NaCl - maintained by Gabriel Jacobo <gabomdq@gmail.com>
   34.35 +
   34.36 +Platforms that need maintainers
   34.37 +===============================
    35.1 --- /dev/null	Thu Jan 01 00:00:00 1970 +0000
    35.2 +++ b/doc/README-porting.md	Tue Jul 29 09:20:12 2014 -0300
    35.3 @@ -0,0 +1,63 @@
    35.4 +Porting
    35.5 +=======
    35.6 +
    35.7 +* Porting To A New Platform
    35.8 +
    35.9 +  The first thing you have to do when porting to a new platform, is look at
   35.10 +include/SDL_platform.h and create an entry there for your operating system.
   35.11 +The standard format is __PLATFORM__, where PLATFORM is the name of the OS.
   35.12 +Ideally SDL_platform.h will be able to auto-detect the system it's building
   35.13 +on based on C preprocessor symbols.
   35.14 +
   35.15 +There are two basic ways of building SDL at the moment:
   35.16 +
   35.17 +1. The "UNIX" way:  ./configure; make; make install
   35.18 +
   35.19 +   If you have a GNUish system, then you might try this.  Edit configure.in,
   35.20 +   take a look at the large section labelled:
   35.21 +	"Set up the configuration based on the target platform!"
   35.22 +   Add a section for your platform, and then re-run autogen.sh and build!
   35.23 +
   35.24 +2. Using an IDE:
   35.25 +
   35.26 +   If you're using an IDE or other non-configure build system, you'll probably
   35.27 +   want to create a custom SDL_config.h for your platform.  Edit SDL_config.h,
   35.28 +   add a section for your platform, and create a custom SDL_config_{platform}.h,
   35.29 +   based on SDL_config.h.minimal and SDL_config.h.in
   35.30 +
   35.31 +   Add the top level include directory to the header search path, and then add
   35.32 +   the following sources to the project:
   35.33 +	src/*.c
   35.34 +	src/atomic/*.c
   35.35 +	src/audio/*.c
   35.36 +	src/cpuinfo/*.c
   35.37 +	src/events/*.c
   35.38 +	src/file/*.c
   35.39 +	src/haptic/*.c
   35.40 +	src/joystick/*.c
   35.41 +	src/power/*.c
   35.42 +	src/render/*.c
   35.43 +	src/stdlib/*.c
   35.44 +	src/thread/*.c
   35.45 +	src/timer/*.c
   35.46 +	src/video/*.c
   35.47 +	src/audio/disk/*.c
   35.48 +	src/audio/dummy/*.c
   35.49 +	src/video/dummy/*.c
   35.50 +	src/haptic/dummy/*.c
   35.51 +	src/joystick/dummy/*.c
   35.52 +	src/main/dummy/*.c
   35.53 +	src/thread/generic/*.c
   35.54 +	src/timer/dummy/*.c
   35.55 +	src/loadso/dummy/*.c
   35.56 +
   35.57 +
   35.58 +Once you have a working library without any drivers, you can go back to each
   35.59 +of the major subsystems and start implementing drivers for your platform.
   35.60 +
   35.61 +If you have any questions, don't hesitate to ask on the SDL mailing list:
   35.62 +	http://www.libsdl.org/mailing-list.php
   35.63 +
   35.64 +Enjoy!
   35.65 +	Sam Lantinga				(slouken@libsdl.org)
   35.66 +
    36.1 --- /dev/null	Thu Jan 01 00:00:00 1970 +0000
    36.2 +++ b/doc/README-psp.md	Tue Jul 29 09:20:12 2014 -0300
    36.3 @@ -0,0 +1,19 @@
    36.4 +PSP
    36.5 +======
    36.6 +SDL port for the Sony PSP contributed by 
    36.7 +   Captian Lex 
    36.8 +
    36.9 +Credit to
   36.10 +   Marcus R.Brown,Jim Paris,Matthew H for the original SDL 1.2 for PSP
   36.11 +   Geecko for his PSP GU lib "Glib2d"
   36.12 +
   36.13 +Building
   36.14 +--------
   36.15 +To build for the PSP, make sure psp-config is in the path and run:
   36.16 +   make -f Makefile.psp
   36.17 +
   36.18 +
   36.19 +
   36.20 +To Do
   36.21 +------
   36.22 +PSP Screen Keyboard
    37.1 --- /dev/null	Thu Jan 01 00:00:00 1970 +0000
    37.2 +++ b/doc/README-raspberrypi.md	Tue Jul 29 09:20:12 2014 -0300
    37.3 @@ -0,0 +1,160 @@
    37.4 +Raspberry Pi
    37.5 +================================================================================
    37.6 +
    37.7 +Requirements:
    37.8 +
    37.9 +Raspbian (other Linux distros may work as well).
   37.10 +
   37.11 +================================================================================
   37.12 + Features
   37.13 +================================================================================
   37.14 +
   37.15 +* Works without X11
   37.16 +* Hardware accelerated OpenGL ES 2.x
   37.17 +* Sound via ALSA
   37.18 +* Input (mouse/keyboard/joystick) via EVDEV
   37.19 +* Hotplugging of input devices via UDEV
   37.20 +
   37.21 +================================================================================
   37.22 + Raspbian Build Dependencies
   37.23 +================================================================================
   37.24 +
   37.25 +sudo apt-get install libudev-dev libasound2-dev libdbus-1-dev
   37.26 +
   37.27 +You also need the VideoCore binary stuff that ships in /opt/vc for EGL and 
   37.28 +OpenGL ES 2.x, it usually comes pre installed, but in any case:
   37.29 +    
   37.30 +sudo apt-get install libraspberrypi0 libraspberrypi-bin libraspberrypi-dev
   37.31 +
   37.32 +================================================================================
   37.33 + Cross compiling from x86 Linux
   37.34 +================================================================================
   37.35 +
   37.36 +To cross compile SDL for Raspbian from your desktop machine, you'll need a
   37.37 +Raspbian system root and the cross compilation tools. We'll assume these tools
   37.38 +will be placed in /opt/rpi-tools
   37.39 +
   37.40 +    sudo git clone --depth 1 https://github.com/raspberrypi/tools /opt/rpi-tools
   37.41 +
   37.42 +You'll also need a Rasbian binary image.
   37.43 +Get it from: http://downloads.raspberrypi.org/raspbian_latest 
   37.44 +After unzipping, you'll get file with a name like: <date>-wheezy-raspbian.img
   37.45 +Let's assume the sysroot will be built in /opt/rpi-sysroot.
   37.46 +
   37.47 +    export SYSROOT=/opt/rpi-sysroot
   37.48 +    sudo kpartx -a -v <path_to_raspbian_image>.img
   37.49 +    sudo mount -o loop /dev/mapper/loop0p2 /mnt
   37.50 +    sudo cp -r /mnt $SYSROOT
   37.51 +    sudo apt-get install qemu binfmt-support qemu-user-static
   37.52 +    sudo cp /usr/bin/qemu-arm-static $SYSROOT/usr/bin
   37.53 +    sudo mount --bind /dev $SYSROOT/dev
   37.54 +    sudo mount --bind /proc $SYSROOT/proc
   37.55 +    sudo mount --bind /sys $SYSROOT/sys
   37.56 +
   37.57 +Now, before chrooting into the ARM sysroot, you'll need to apply a workaround,
   37.58 +edit $SYSROOT/etc/ld.so.preload and comment out all lines in it.
   37.59 +
   37.60 +    sudo chroot $SYSROOT
   37.61 +    apt-get install libudev-dev libasound2-dev libdbus-1-dev libraspberrypi0 libraspberrypi-bin libraspberrypi-dev libx11-dev libxext-dev libxrandr-dev libxcursor-dev libxi-dev libxinerama-dev libxxf86vm-dev libxss-dev
   37.62 +    exit
   37.63 +    sudo umount $SYSROOT/dev
   37.64 +    sudo umount $SYSROOT/proc
   37.65 +    sudo umount $SYSROOT/sys
   37.66 +    sudo umount /mnt
   37.67 +    
   37.68 +There's one more fix required, as the libdl.so symlink uses an absolute path 
   37.69 +which doesn't quite work in our setup.
   37.70 +
   37.71 +    sudo rm -rf $SYSROOT/usr/lib/arm-linux-gnueabihf/libdl.so
   37.72 +    sudo ln -s ../../../lib/arm-linux-gnueabihf/libdl.so.2 $SYSROOT/usr/lib/arm-linux-gnueabihf/libdl.so
   37.73 +
   37.74 +The final step is compiling SDL itself.
   37.75 +
   37.76 +    export CC="/opt/rpi-tools/arm-bcm2708/gcc-linaro-arm-linux-gnueabihf-raspbian/bin/arm-linux-gnueabihf-gcc --sysroot=$SYSROOT -I$SYSROOT/opt/vc/include -I$SYSROOT/usr/include -I$SYSROOT/opt/vc/include/interface/vcos/pthreads -I$SYSROOT/opt/vc/include/interface/vmcs_host/linux"
   37.77 +    cd <SDL SOURCE>
   37.78 +    mkdir -p build;cd build
   37.79 +    ../configure --with-sysroot=$SYSROOT --host=arm-raspberry-linux-gnueabihf --prefix=$PWD/rpi-sdl2-installed --disable-pulseaudio --disable-esd
   37.80 +    make
   37.81 +    make install
   37.82 +
   37.83 +To be able to deploy this to /usr/local in the Raspbian system you need to fix up a few paths:
   37.84 +    
   37.85 +    perl -w -pi -e "s#$PWD/rpi-sdl2-installed#/usr/local#g;" ./rpi-sdl2-installed/lib/libSDL2.la ./rpi-sdl2-installed/lib/pkgconfig/sdl2.pc ./rpi-sdl2-installed/bin/sdl2-config
   37.86 +    
   37.87 +================================================================================
   37.88 + Apps don't work or poor video/audio performance
   37.89 +================================================================================
   37.90 +
   37.91 +If you get sound problems, buffer underruns, etc, run "sudo rpi-update" to 
   37.92 +update the RPi's firmware. Note that doing so will fix these problems, but it
   37.93 +will also render the CMA - Dynamic Memory Split functionality useless.
   37.94 +
   37.95 +Also, by default the Raspbian distro configures the GPU RAM at 64MB, this is too
   37.96 +low in general, specially if a 1080p TV is hooked up.
   37.97 +
   37.98 +See here how to configure this setting: http://elinux.org/RPiconfig
   37.99 +
  37.100 +Using a fixed gpu_mem=128 is the best option (specially if you updated the 
  37.101 +firmware, using CMA probably won't work, at least it's the current case).
  37.102 +
  37.103 +================================================================================
  37.104 + No input
  37.105 +================================================================================
  37.106 +
  37.107 +Make sure you belong to the "input" group.
  37.108 +
  37.109 +    sudo usermod -aG input `whoami`
  37.110 +
  37.111 +================================================================================
  37.112 + No HDMI Audio
  37.113 +================================================================================
  37.114 +
  37.115 +If you notice that ALSA works but there's no audio over HDMI, try adding:
  37.116 +    
  37.117 +    hdmi_drive=2
  37.118 +    
  37.119 +to your config.txt file and reboot.
  37.120 +
  37.121 +Reference: http://www.raspberrypi.org/phpBB3/viewtopic.php?t=5062
  37.122 +
  37.123 +================================================================================
  37.124 + Text Input API support
  37.125 +================================================================================
  37.126 +
  37.127 +The Text Input API is supported, with translation of scan codes done via the
  37.128 +kernel symbol tables. For this to work, SDL needs access to a valid console.
  37.129 +If you notice there's no SDL_TEXTINPUT message being emitted, double check that
  37.130 +your app has read access to one of the following:
  37.131 +    
  37.132 +* /proc/self/fd/0
  37.133 +* /dev/tty
  37.134 +* /dev/tty[0...6]
  37.135 +* /dev/vc/0
  37.136 +* /dev/console
  37.137 +
  37.138 +This is usually not a problem if you run from the physical terminal (as opposed
  37.139 +to running from a pseudo terminal, such as via SSH). If running from a PTS, a 
  37.140 +quick workaround is to run your app as root or add yourself to the tty group,
  37.141 +then re login to the system.
  37.142 +
  37.143 +   sudo usermod -aG tty `whoami`
  37.144 +    
  37.145 +The keyboard layout used by SDL is the same as the one the kernel uses.
  37.146 +To configure the layout on Raspbian:
  37.147 +    
  37.148 +    sudo dpkg-reconfigure keyboard-configuration
  37.149 +    
  37.150 +To configure the locale, which controls which keys are interpreted as letters,
  37.151 +this determining the CAPS LOCK behavior:
  37.152 +
  37.153 +    sudo dpkg-reconfigure locales
  37.154 +
  37.155 +================================================================================
  37.156 + Notes
  37.157 +================================================================================
  37.158 +
  37.159 +* When launching apps remotely (via SSH), SDL can prevent local keystrokes from
  37.160 +  leaking into the console only if it has root privileges. Launching apps locally
  37.161 +  does not suffer from this issue.
  37.162 +  
  37.163 +
    38.1 --- /dev/null	Thu Jan 01 00:00:00 1970 +0000
    38.2 +++ b/doc/README-touch.md	Tue Jul 29 09:20:12 2014 -0300
    38.3 @@ -0,0 +1,85 @@
    38.4 +Touch
    38.5 +===========================================================================
    38.6 +System Specific Notes
    38.7 +===========================================================================
    38.8 +Linux:
    38.9 +The linux touch system is currently based off event streams, and proc/bus/devices. The active user must be given permissions to read /dev/input/TOUCHDEVICE, where TOUCHDEVICE is the event stream for your device. Currently only Wacom tablets are supported. If you have an unsupported tablet contact me at jim.tla+sdl_touch@gmail.com and I will help you get support for it.
   38.10 +
   38.11 +Mac:
   38.12 +The Mac and iPhone APIs are pretty. If your touch device supports them then you'll be fine. If it doesn't, then there isn't much we can do.
   38.13 +
   38.14 +iPhone: 
   38.15 +Works out of box.
   38.16 +
   38.17 +Windows:
   38.18 +Unfortunately there is no windows support as of yet. Support for Windows 7 is planned, but we currently have no way to test. If you have a Windows 7 WM_TOUCH supported device, and are willing to help test please contact me at jim.tla+sdl_touch@gmail.com
   38.19 +
   38.20 +===========================================================================
   38.21 +Events
   38.22 +===========================================================================
   38.23 +SDL_FINGERDOWN:
   38.24 +Sent when a finger (or stylus) is placed on a touch device.
   38.25 +Fields:
   38.26 +event.tfinger.touchId  - the Id of the touch device.
   38.27 +event.tfinger.fingerId - the Id of the finger which just went down.
   38.28 +event.tfinger.x        - the x coordinate of the touch (0..1)
   38.29 +event.tfinger.y        - the y coordinate of the touch (0..1)
   38.30 +event.tfinger.pressure - the pressure of the touch (0..1)
   38.31 +
   38.32 +SDL_FINGERMOTION:
   38.33 +Sent when a finger (or stylus) is moved on the touch device.
   38.34 +Fields:
   38.35 +Same as SDL_FINGERDOWN but with additional:
   38.36 +event.tfinger.dx       - change in x coordinate during this motion event.
   38.37 +event.tfinger.dy       - change in y coordinate during this motion event.
   38.38 +
   38.39 +SDL_FINGERUP:
   38.40 +Sent when a finger (or stylus) is lifted from the touch device.
   38.41 +Fields:
   38.42 +Same as SDL_FINGERDOWN.
   38.43 +
   38.44 +
   38.45 +===========================================================================
   38.46 +Functions
   38.47 +===========================================================================
   38.48 +SDL provides the ability to access the underlying Finger structures.
   38.49 +These structures should _never_ be modified.
   38.50 +
   38.51 +The following functions are included from SDL_touch.h
   38.52 +
   38.53 +To get a SDL_TouchID call SDL_GetTouchDevice(index).
   38.54 +This returns a SDL_TouchID.
   38.55 +IMPORTANT: If the touch has been removed, or there is no touch with the given ID, SDL_GetTouchID will return 0. Be sure to check for this!
   38.56 +
   38.57 +The number of touch devices can be queried with SDL_GetNumTouchDevices().
   38.58 +
   38.59 +A SDL_TouchID may be used to get pointers to SDL_Finger.
   38.60 +
   38.61 +SDL_GetNumTouchFingers(touchID) may be used to get the number of fingers currently down on the device.
   38.62 +
   38.63 +The most common reason to access SDL_Finger is to query the fingers outside the event. In most cases accessing the fingers is using the event. This would be accomplished by code like the following:
   38.64 +
   38.65 +      float x = event.tfinger.x;
   38.66 +      float y = event.tfinger.y;
   38.67 +
   38.68 +
   38.69 +
   38.70 +To get a SDL_Finger, call SDL_GetTouchFinger(touchID,index), where touchID is a SDL_TouchID, and index is the requested finger.
   38.71 +This returns a SDL_Finger*, or NULL if the finger does not exist, or has been removed.
   38.72 +A SDL_Finger is guaranteed to be persistent for the duration of a touch, but it will be de-allocated as soon as the finger is removed. This occurs when the SDL_FINGERUP event is _added_ to the event queue, and thus _before_ the SDL_FINGERUP event is polled.
   38.73 +As a result, be very careful to check for NULL return values.
   38.74 +
   38.75 +A SDL_Finger has the following fields:
   38.76 +>x,y,pressure:
   38.77 +	The current coordinates of the touch.
   38.78 +>pressure:
   38.79 +	The pressure of the touch.
   38.80 +
   38.81 +===========================================================================
   38.82 +Notes
   38.83 +===========================================================================
   38.84 +For a complete example see test/testgesture.c
   38.85 +
   38.86 +Please direct questions/comments to:
   38.87 +   jim.tla+sdl_touch@gmail.com
   38.88 +   (original author, API was changed since)
    39.1 --- /dev/null	Thu Jan 01 00:00:00 1970 +0000
    39.2 +++ b/doc/README-wince.md	Tue Jul 29 09:20:12 2014 -0300
    39.3 @@ -0,0 +1,10 @@
    39.4 +WinCE
    39.5 +=====
    39.6 +
    39.7 +Windows CE is no longer supported by SDL.
    39.8 +
    39.9 +We have left the CE support in SDL 1.2 for those that must have it, and we
   39.10 +have support for Windows Phone 8 and WinRT in SDL2, as of SDL 2.0.3.
   39.11 +
   39.12 +--ryan.
   39.13 +
    40.1 --- /dev/null	Thu Jan 01 00:00:00 1970 +0000
    40.2 +++ b/doc/README-windows.md	Tue Jul 29 09:20:12 2014 -0300
    40.3 @@ -0,0 +1,41 @@
    40.4 +Windows
    40.5 +================================================================================
    40.6 +
    40.7 +================================================================================
    40.8 +OpenGL ES 2.x support
    40.9 +================================================================================
   40.10 +
   40.11 +SDL has support for OpenGL ES 2.x under Windows via two alternative 
   40.12 +implementations. 
   40.13 +The most straightforward method consists in running your app in a system with 
   40.14 +a graphic card paired with a relatively recent (as of November of 2013) driver 
   40.15 +which supports the WGL_EXT_create_context_es2_profile extension. Vendors known 
   40.16 +to ship said extension on Windows currently include nVidia and Intel.
   40.17 +
   40.18 +The other method involves using the ANGLE library (https://code.google.com/p/angleproject/)
   40.19 +If an OpenGL ES 2.x context is requested and no WGL_EXT_create_context_es2_profile
   40.20 +extension is found, SDL will try to load the libEGL.dll library provided by
   40.21 +ANGLE.
   40.22 +To obtain the ANGLE binaries, you can either compile from source from
   40.23 +https://chromium.googlesource.com/angle/angle or copy the relevant binaries from
   40.24 +a recent Chrome/Chromium install for Windows. The files you need are:
   40.25 +    
   40.26 +    * libEGL.dll
   40.27 +    * libGLESv2.dll
   40.28 +    * d3dcompiler_46.dll (supports Windows Vista or later, better shader compiler)
   40.29 +    or...
   40.30 +    * d3dcompiler_43.dll (supports Windows XP or later)
   40.31 +    
   40.32 +If you compile ANGLE from source, you can configure it so it does not need the
   40.33 +d3dcompiler_* DLL at all (for details on this, see their documentation). 
   40.34 +However, by default SDL will try to preload the d3dcompiler_46.dll to
   40.35 +comply with ANGLE's requirements. If you wish SDL to preload d3dcompiler_43.dll (to
   40.36 +support Windows XP) or to skip this step at all, you can use the 
   40.37 +SDL_HINT_VIDEO_WIN_D3DCOMPILER hint (see SDL_hints.h for more details).
   40.38 +
   40.39 +Known Bugs:
   40.40 +    
   40.41 +    * SDL_GL_SetSwapInterval is currently a no op when using ANGLE. It appears
   40.42 +      that there's a bug in the library which prevents the window contents from
   40.43 +      refreshing if this is set to anything other than the default value.
   40.44 +      
    41.1 --- /dev/null	Thu Jan 01 00:00:00 1970 +0000
    41.2 +++ b/doc/README-winrt.md	Tue Jul 29 09:20:12 2014 -0300
    41.3 @@ -0,0 +1,44 @@
    41.4 +WinRT
    41.5 +================================================================================
    41.6 +
    41.7 +SDL/WinRT layer allows SDL2-based applications to run on many of Microsoft's
    41.8 +platforms that utilize the "Windows Runtime" (aka "WinRT") APIs.  WinRT apps
    41.9 +are currently always full-screen apps, run in what Microsoft calls their
   41.10 +"Modern" environment (aka. "Metro"), and are distributed via Microsoft-run
   41.11 +online stores.  Some of the operating systems that support such apps include:
   41.12 +
   41.13 +* Windows 8.x
   41.14 +* Windows RT 8.x (aka. Windows 8.x for ARM processors)
   41.15 +* Windows Phone 8.x
   41.16 +
   41.17 +To note, WinRT applications that run on Windows 8.x and/or Windows RT are often
   41.18 +called "Windows Store" apps.
   41.19 +
   41.20 +
   41.21 +--------------------------------------------------------------------------------
   41.22 +Requirements
   41.23 +--------------------------------------------------------------------------------
   41.24 +- Microsoft Visual C++ 2012 -- Free, "Express" editions may be used, so long
   41.25 +  as they include support for either "Windows Store" or "Windows Phone" apps.
   41.26 +  (NOTE: MSVC 2013 support is pending.  2012 projects may be converted to 2013
   41.27 +  projects by MSVC, in the meantime.)
   41.28 +- A valid Microsoft account -- This requirement is not imposed by SDL, but
   41.29 +  rather by Microsoft's Visual C++ toolchain.
   41.30 +
   41.31 +
   41.32 +--------------------------------------------------------------------------------
   41.33 +TODO
   41.34 +--------------------------------------------------------------------------------
   41.35 +- Finish adding support for MSVC 2013, and "Universal" WinRT apps, which
   41.36 +  support Windows 8.1, Windows Phone 8.1, and in the future, Xbox One and
   41.37 +  Windows Desktop.
   41.38 +- Finish adding support for the SDL satellite libraries (SDL_image, SDL_mixer,
   41.39 +  SDL_ttf, etc.)
   41.40 +- Create templates for both MSVC 2012 and MSVC 2013, and have the corresponding
   41.41 +  VSIX packages either include pre-built copies of SDL, or reference binaries
   41.42 +  available via MSVC's NuGet servers
   41.43 +- Write setup instructions that use MSVC 201x templates
   41.44 +- Write setup instructions that don't use MSVC 201x templates, and use
   41.45 +  MSVC project-to-project references, rather than pre-built binaries
   41.46 +- Write a list of caveats found in SDL/WinRT, such as APIs that don't work due
   41.47 +  to platform restrictions, or things that need further work
    42.1 --- /dev/null	Thu Jan 01 00:00:00 1970 +0000
    42.2 +++ b/doc/README.md	Tue Jul 29 09:20:12 2014 -0300
    42.3 @@ -0,0 +1,62 @@
    42.4 +Simple DirectMedia Layer {#mainpage}
    42.5 +========================
    42.6 +
    42.7 +                                  (SDL)
    42.8 +
    42.9 +                                Version 2.0
   42.10 +
   42.11 +---
   42.12 +http://www.libsdl.org/
   42.13 +
   42.14 +Simple DirectMedia Layer is a cross-platform development library designed
   42.15 +to provide low level access to audio, keyboard, mouse, joystick, and graphics
   42.16 +hardware via OpenGL and Direct3D. It is used by video playback software,
   42.17 +emulators, and popular games including Valve's award winning catalog
   42.18 +and many Humble Bundle games. 42
   42.19 +
   42.20 +SDL officially supports Windows, Mac OS X, Linux, iOS, and Android.
   42.21 +Support for other platforms may be found in the source code.
   42.22 +
   42.23 +SDL is written in C, works natively with C++, and there are bindings 
   42.24 +available for several other languages, including C# and Python.
   42.25 +
   42.26 +This library is distributed under the zlib license, which can be found
   42.27 +in the file "COPYING.txt".
   42.28 +
   42.29 +The best way to learn how to use SDL is to check out the header files in
   42.30 +the "include" subdirectory and the programs in the "test" subdirectory.
   42.31 +The header files and test programs are well commented and always up to date.
   42.32 +
   42.33 +More documentation and FAQs are available online at [the wiki](http://wiki.libsdl.org/)
   42.34 +
   42.35 +- [Android](README-android.md)
   42.36 +- [CMake](README-cmake.md)
   42.37 +- [DirectFB](README-directfb.md)
   42.38 +- [DynAPI](README-dynapi.md)
   42.39 +- [Gesture](README-gesture.md)
   42.40 +- [Mercurial](README-hg.md)
   42.41 +- [iOS](README-ios.md)
   42.42 +- [Linux](README-linux.md)
   42.43 +- [OS X](README-macosx.md)
   42.44 +- [Native Client](README-nacl.md)
   42.45 +- [Pandora](README-pandora.md)
   42.46 +- [Supported Platforms](README-platforms.md)
   42.47 +- [Porting information](README-porting.md)
   42.48 +- [PSP](README-psp.md)
   42.49 +- [Raspberry Pi](README-raspberrypi.md)
   42.50 +- [Touch](README-touch.md)
   42.51 +- [WinCE](README-wince.md)
   42.52 +- [Windows](README-windows.md)
   42.53 +- [WinRT](README-winrt.md)
   42.54 +
   42.55 +If you need help with the library, or just want to discuss SDL related
   42.56 +issues, you can join the [developers mailing list](http://www.libsdl.org/mailing-list.php)
   42.57 +
   42.58 +If you want to report bugs or contribute patches, please submit them to
   42.59 +[bugzilla](http://bugzilla.libsdl.org/)
   42.60 +
   42.61 +Enjoy!
   42.62 +
   42.63 +
   42.64 +Sam Lantinga <mailto:slouken@libsdl.org>
   42.65 +
    43.1 --- /dev/null	Thu Jan 01 00:00:00 1970 +0000
    43.2 +++ b/doc/doxyfile	Tue Jul 29 09:20:12 2014 -0300
    43.3 @@ -0,0 +1,1559 @@
    43.4 +# Doxyfile 1.5.9
    43.5 +
    43.6 +# This file describes the settings to be used by the documentation system
    43.7 +# doxygen (www.doxygen.org) for a project
    43.8 +#
    43.9 +# All text after a hash (#) is considered a comment and will be ignored
   43.10 +# The format is:
   43.11 +#       TAG = value [value, ...]
   43.12 +# For lists items can also be appended using:
   43.13 +#       TAG += value [value, ...]
   43.14 +# Values that contain spaces should be placed between quotes (" ")
   43.15 +
   43.16 +#---------------------------------------------------------------------------
   43.17 +# Project related configuration options
   43.18 +#---------------------------------------------------------------------------
   43.19 +
   43.20 +# This tag specifies the encoding used for all characters in the config file 
   43.21 +# that follow. The default is UTF-8 which is also the encoding used for all 
   43.22 +# text before the first occurrence of this tag. Doxygen uses libiconv (or the 
   43.23 +# iconv built into libc) for the transcoding. See 
   43.24 +# http://www.gnu.org/software/libiconv for the list of possible encodings.
   43.25 +
   43.26 +DOXYFILE_ENCODING      = UTF-8
   43.27 +
   43.28 +# The PROJECT_NAME tag is a single word (or a sequence of words surrounded 
   43.29 +# by quotes) that should identify the project.
   43.30 +
   43.31 +PROJECT_NAME           = SDL
   43.32 +
   43.33 +# The PROJECT_NUMBER tag can be used to enter a project or revision number. 
   43.34 +# This could be handy for archiving the generated documentation or 
   43.35 +# if some version control system is used.
   43.36 +
   43.37 +PROJECT_NUMBER         = 2.0.0
   43.38 +
   43.39 +# The OUTPUT_DIRECTORY tag is used to specify the (relative or absolute) 
   43.40 +# base path where the generated documentation will be put. 
   43.41 +# If a relative path is entered, it will be relative to the location 
   43.42 +# where doxygen was started. If left blank the current directory will be used.
   43.43 +
   43.44 +OUTPUT_DIRECTORY       = ./output
   43.45 +
   43.46 +# If the CREATE_SUBDIRS tag is set to YES, then doxygen will create 
   43.47 +# 4096 sub-directories (in 2 levels) under the output directory of each output 
   43.48 +# format and will distribute the generated files over these directories. 
   43.49 +# Enabling this option can be useful when feeding doxygen a huge amount of 
   43.50 +# source files, where putting all generated files in the same directory would 
   43.51 +# otherwise cause performance problems for the file system.
   43.52 +
   43.53 +CREATE_SUBDIRS         = YES
   43.54 +
   43.55 +# The OUTPUT_LANGUAGE tag is used to specify the language in which all 
   43.56 +# documentation generated by doxygen is written. Doxygen will use this 
   43.57 +# information to generate all constant output in the proper language. 
   43.58 +# The default language is English, other supported languages are: 
   43.59 +# Afrikaans, Arabic, Brazilian, Catalan, Chinese, Chinese-Traditional, 
   43.60 +# Croatian, Czech, Danish, Dutch, Esperanto, Farsi, Finnish, French, German, 
   43.61 +# Greek, Hungarian, Italian, Japanese, Japanese-en (Japanese with English 
   43.62 +# messages), Korean, Korean-en, Lithuanian, Norwegian, Macedonian, Persian, 
   43.63 +# Polish, Portuguese, Romanian, Russian, Serbian, Serbian-Cyrilic, Slovak, 
   43.64 +# Slovene, Spanish, Swedish, Ukrainian, and Vietnamese.
   43.65 +
   43.66 +OUTPUT_LANGUAGE        = English
   43.67 +
   43.68 +# If the BRIEF_MEMBER_DESC tag is set to YES (the default) Doxygen will 
   43.69 +# include brief member descriptions after the members that are listed in 
   43.70 +# the file and class documentation (similar to JavaDoc). 
   43.71 +# Set to NO to disable this.
   43.72 +
   43.73 +BRIEF_MEMBER_DESC      = YES
   43.74 +
   43.75 +# If the REPEAT_BRIEF tag is set to YES (the default) Doxygen will prepend 
   43.76 +# the brief description of a member or function before the detailed description. 
   43.77 +# Note: if both HIDE_UNDOC_MEMBERS and BRIEF_MEMBER_DESC are set to NO, the 
   43.78 +# brief descriptions will be completely suppressed.
   43.79 +
   43.80 +REPEAT_BRIEF           = YES
   43.81 +
   43.82 +# This tag implements a quasi-intelligent brief description abbreviator 
   43.83 +# that is used to form the text in various listings. Each string 
   43.84 +# in this list, if found as the leading text of the brief description, will be 
   43.85 +# stripped from the text and the result after processing the whole list, is 
   43.86 +# used as the annotated text. Otherwise, the brief description is used as-is. 
   43.87 +# If left blank, the following values are used ("$name" is automatically 
   43.88 +# replaced with the name of the entity): "The $name class" "The $name widget" 
   43.89 +# "The $name file" "is" "provides" "specifies" "contains" 
   43.90 +# "represents" "a" "an" "the"
   43.91 +
   43.92 +ABBREVIATE_BRIEF       = "The $name class" \
   43.93 +                         "The $name widget" \
   43.94 +                         "The $name file" \
   43.95 +                         is \
   43.96 +                         provides \
   43.97 +                         specifies \
   43.98 +                         contains \
   43.99 +                         represents \
  43.100 +                         a \
  43.101 +                         an \
  43.102 +                         the
  43.103 +
  43.104 +# If the ALWAYS_DETAILED_SEC and REPEAT_BRIEF tags are both set to YES then 
  43.105 +# Doxygen will generate a detailed section even if there is only a brief 
  43.106 +# description.
  43.107 +
  43.108 +ALWAYS_DETAILED_SEC    = YES
  43.109 +
  43.110 +# If the INLINE_INHERITED_MEMB tag is set to YES, doxygen will show all 
  43.111 +# inherited members of a class in the documentation of that class as if those 
  43.112 +# members were ordinary class members. Constructors, destructors and assignment 
  43.113 +# operators of the base classes will not be shown.
  43.114 +
  43.115 +INLINE_INHERITED_MEMB  = NO
  43.116 +
  43.117 +# If the FULL_PATH_NAMES tag is set to YES then Doxygen will prepend the full 
  43.118 +# path before files name in the file list and in the header files. If set 
  43.119 +# to NO the shortest path that makes the file name unique will be used.
  43.120 +
  43.121 +FULL_PATH_NAMES        = YES
  43.122 +
  43.123 +# If the FULL_PATH_NAMES tag is set to YES then the STRIP_FROM_PATH tag 
  43.124 +# can be used to strip a user-defined part of the path. Stripping is 
  43.125 +# only done if one of the specified strings matches the left-hand part of 
  43.126 +# the path. The tag can be used to show relative paths in the file list. 
  43.127 +# If left blank the directory from which doxygen is run is used as the 
  43.128 +# path to strip.
  43.129 +
  43.130 +STRIP_FROM_PATH        =
  43.131 +
  43.132 +# The STRIP_FROM_INC_PATH tag can be used to strip a user-defined part of 
  43.133 +# the path mentioned in the documentation of a class, which tells 
  43.134 +# the reader which header file to include in order to use a class. 
  43.135 +# If left blank only the name of the header file containing the class 
  43.136 +# definition is used. Otherwise one should specify the include paths that 
  43.137 +# are normally passed to the compiler using the -I flag.
  43.138 +
  43.139 +STRIP_FROM_INC_PATH    = 
  43.140 +
  43.141 +# If the SHORT_NAMES tag is set to YES, doxygen will generate much shorter 
  43.142 +# (but less readable) file names. This can be useful is your file systems 
  43.143 +# doesn't support long names like on DOS, Mac, or CD-ROM.
  43.144 +
  43.145 +SHORT_NAMES            = NO
  43.146 +
  43.147 +# If the JAVADOC_AUTOBRIEF tag is set to YES then Doxygen 
  43.148 +# will interpret the first line (until the first dot) of a JavaDoc-style 
  43.149 +# comment as the brief description. If set to NO, the JavaDoc 
  43.150 +# comments will behave just like regular Qt-style comments 
  43.151 +# (thus requiring an explicit @brief command for a brief description.)
  43.152 +
  43.153 +JAVADOC_AUTOBRIEF      = NO
  43.154 +
  43.155 +# If the QT_AUTOBRIEF tag is set to YES then Doxygen will 
  43.156 +# interpret the first line (until the first dot) of a Qt-style 
  43.157 +# comment as the brief description. If set to NO, the comments 
  43.158 +# will behave just like regular Qt-style comments (thus requiring 
  43.159 +# an explicit \brief command for a brief description.)
  43.160 +
  43.161 +QT_AUTOBRIEF           = NO
  43.162 +
  43.163 +# The MULTILINE_CPP_IS_BRIEF tag can be set to YES to make Doxygen 
  43.164 +# treat a multi-line C++ special comment block (i.e. a block of //! or /// 
  43.165 +# comments) as a brief description. This used to be the default behaviour. 
  43.166 +# The new default is to treat a multi-line C++ comment block as a detailed 
  43.167 +# description. Set this tag to YES if you prefer the old behaviour instead.
  43.168 +
  43.169 +MULTILINE_CPP_IS_BRIEF = NO
  43.170 +
  43.171 +# If the INHERIT_DOCS tag is set to YES (the default) then an undocumented 
  43.172 +# member inherits the documentation from any documented member that it 
  43.173 +# re-implements.
  43.174 +
  43.175 +INHERIT_DOCS           = YES
  43.176 +
  43.177 +# If the SEPARATE_MEMBER_PAGES tag is set to YES, then doxygen will produce 
  43.178 +# a new page for each member. If set to NO, the documentation of a member will 
  43.179 +# be part of the file/class/namespace that contains it.
  43.180 +
  43.181 +SEPARATE_MEMBER_PAGES  = NO
  43.182 +
  43.183 +# The TAB_SIZE tag can be used to set the number of spaces in a tab. 
  43.184 +# Doxygen uses this value to replace tabs by spaces in code fragments.
  43.185 +
  43.186 +TAB_SIZE               = 8
  43.187 +
  43.188 +# This tag can be used to specify a number of aliases that acts 
  43.189 +# as commands in the documentation. An alias has the form "name=value". 
  43.190 +# For example adding "sideeffect=\par Side Effects:\n" will allow you to 
  43.191 +# put the command \sideeffect (or @sideeffect) in the documentation, which 
  43.192 +# will result in a user-defined paragraph with heading "Side Effects:". 
  43.193 +# You can put \n's in the value part of an alias to insert newlines.
  43.194 +
  43.195 +ALIASES                = "defined=\"\def\"" \
  43.196 +                         "discussion=\"\par Discussion:\n\""
  43.197 +
  43.198 +# Set the OPTIMIZE_OUTPUT_FOR_C tag to YES if your project consists of C 
  43.199 +# sources only. Doxygen will then generate output that is more tailored for C. 
  43.200 +# For instance, some of the names that are used will be different. The list 
  43.201 +# of all members will be omitted, etc.
  43.202 +
  43.203 +OPTIMIZE_OUTPUT_FOR_C  = YES
  43.204 +
  43.205 +# Set the OPTIMIZE_OUTPUT_JAVA tag to YES if your project consists of Java 
  43.206 +# sources only. Doxygen will then generate output that is more tailored for 
  43.207 +# Java. For instance, namespaces will be presented as packages, qualified 
  43.208 +# scopes will look different, etc.
  43.209 +
  43.210 +OPTIMIZE_OUTPUT_JAVA   = NO
  43.211 +
  43.212 +# Set the OPTIMIZE_FOR_FORTRAN tag to YES if your project consists of Fortran 
  43.213 +# sources only. Doxygen will then generate output that is more tailored for 
  43.214 +# Fortran.
  43.215 +
  43.216 +OPTIMIZE_FOR_FORTRAN   = NO
  43.217 +
  43.218 +# Set the OPTIMIZE_OUTPUT_VHDL tag to YES if your project consists of VHDL 
  43.219 +# sources. Doxygen will then generate output that is tailored for 
  43.220 +# VHDL.
  43.221 +
  43.222 +OPTIMIZE_OUTPUT_VHDL   = NO
  43.223 +
  43.224 +# Doxygen selects the parser to use depending on the extension of the files it parses. 
  43.225 +# With this tag you can assign which parser to use for a given extension. 
  43.226 +# Doxygen has a built-in mapping, but you can override or extend it using this tag. 
  43.227 +# The format is ext=language, where ext is a file extension, and language is one of 
  43.228 +# the parsers supported by doxygen: IDL, Java, Javascript, C#, C, C++, D, PHP, 
  43.229 +# Objective-C, Python, Fortran, VHDL, C, C++. For instance to make doxygen treat 
  43.230 +# .inc files as Fortran files (default is PHP), and .f files as C (default is Fortran), 
  43.231 +# use: inc=Fortran f=C. Note that for custom extensions you also need to set
  43.232 +# FILE_PATTERNS otherwise the files are not read by doxygen.
  43.233 +
  43.234 +EXTENSION_MAPPING      = 
  43.235 +
  43.236 +# If you use STL classes (i.e. std::string, std::vector, etc.) but do not want 
  43.237 +# to include (a tag file for) the STL sources as input, then you should 
  43.238 +# set this tag to YES in order to let doxygen match functions declarations and 
  43.239 +# definitions whose arguments contain STL classes (e.g. func(std::string); v.s. 
  43.240 +# func(std::string) {}). This also make the inheritance and collaboration 
  43.241 +# diagrams that involve STL classes more complete and accurate.
  43.242 +
  43.243 +BUILTIN_STL_SUPPORT    = YES
  43.244 +
  43.245 +# If you use Microsoft's C++/CLI language, you should set this option to YES to 
  43.246 +# enable parsing support.
  43.247 +
  43.248 +CPP_CLI_SUPPORT        = NO
  43.249 +
  43.250 +# Set the SIP_SUPPORT tag to YES if your project consists of sip sources only. 
  43.251 +# Doxygen will parse them like normal C++ but will assume all classes use public 
  43.252 +# instead of private inheritance when no explicit protection keyword is present.
  43.253 +
  43.254 +SIP_SUPPORT            = NO
  43.255 +
  43.256 +# For Microsoft's IDL there are propget and propput attributes to indicate getter 
  43.257 +# and setter methods for a property. Setting this option to YES (the default) 
  43.258 +# will make doxygen to replace the get and set methods by a property in the 
  43.259 +# documentation. This will only work if the methods are indeed getting or 
  43.260 +# setting a simple type. If this is not the case, or you want to show the 
  43.261 +# methods anyway, you should set this option to NO.
  43.262 +
  43.263 +IDL_PROPERTY_SUPPORT   = YES
  43.264 +
  43.265 +# If member grouping is used in the documentation and the DISTRIBUTE_GROUP_DOC 
  43.266 +# tag is set to YES, then doxygen will reuse the documentation of the first 
  43.267 +# member in the group (if any) for the other members of the group. By default 
  43.268 +# all members of a group must be documented explicitly.
  43.269 +
  43.270 +DISTRIBUTE_GROUP_DOC   = NO
  43.271 +
  43.272 +# Set the SUBGROUPING tag to YES (the default) to allow class member groups of 
  43.273 +# the same type (for instance a group of public functions) to be put as a 
  43.274 +# subgroup of that type (e.g. under the Public Functions section). Set it to 
  43.275 +# NO to prevent subgrouping. Alternatively, this can be done per class using 
  43.276 +# the \nosubgrouping command.
  43.277 +
  43.278 +SUBGROUPING            = YES
  43.279 +
  43.280 +# When TYPEDEF_HIDES_STRUCT is enabled, a typedef of a struct, union, or enum 
  43.281 +# is documented as struct, union, or enum with the name of the typedef. So 
  43.282 +# typedef struct TypeS {} TypeT, will appear in the documentation as a struct 
  43.283 +# with name TypeT. When disabled the typedef will appear as a member of a file, 
  43.284 +# namespace, or class. And the struct will be named TypeS. This can typically 
  43.285 +# be useful for C code in case the coding convention dictates that all compound 
  43.286 +# types are typedef'ed and only the typedef is referenced, never the tag name.
  43.287 +
  43.288 +TYPEDEF_HIDES_STRUCT   = YES
  43.289 +
  43.290 +# The SYMBOL_CACHE_SIZE determines the size of the internal cache use to 
  43.291 +# determine which symbols to keep in memory and which to flush to disk. 
  43.292 +# When the cache is full, less often used symbols will be written to disk. 
  43.293 +# For small to medium size projects (<1000 input files) the default value is 
  43.294 +# probably good enough. For larger projects a too small cache size can cause 
  43.295 +# doxygen to be busy swapping symbols to and from disk most of the time 
  43.296 +# causing a significant performance penality. 
  43.297 +# If the system has enough physical memory increasing the cache will improve the 
  43.298 +# performance by keeping more symbols in memory. Note that the value works on 
  43.299 +# a logarithmic scale so increasing the size by one will rougly double the 
  43.300 +# memory usage. The cache size is given by this formula: 
  43.301 +# 2^(16+SYMBOL_CACHE_SIZE). The valid range is 0..9, the default is 0, 
  43.302 +# corresponding to a cache size of 2^16 = 65536 symbols
  43.303 +
  43.304 +SYMBOL_CACHE_SIZE      = 0
  43.305 +
  43.306 +#---------------------------------------------------------------------------
  43.307 +# Build related configuration options
  43.308 +#---------------------------------------------------------------------------
  43.309 +
  43.310 +# If the EXTRACT_ALL tag is set to YES doxygen will assume all entities in 
  43.311 +# documentation are documented, even if no documentation was available. 
  43.312 +# Private class members and static file members will be hidden unless 
  43.313 +# the EXTRACT_PRIVATE and EXTRACT_STATIC tags are set to YES
  43.314 +
  43.315 +EXTRACT_ALL            = YES
  43.316 +
  43.317 +# If the EXTRACT_PRIVATE tag is set to YES all private members of a class 
  43.318 +# will be included in the documentation.
  43.319 +
  43.320 +EXTRACT_PRIVATE        = YES
  43.321 +
  43.322 +# If the EXTRACT_STATIC tag is set to YES all static members of a file 
  43.323 +# will be included in the documentation.
  43.324 +
  43.325 +EXTRACT_STATIC         = YES
  43.326 +
  43.327 +# If the EXTRACT_LOCAL_CLASSES tag is set to YES classes (and structs) 
  43.328 +# defined locally in source files will be included in the documentation. 
  43.329 +# If set to NO only classes defined in header files are included.
  43.330 +
  43.331 +EXTRACT_LOCAL_CLASSES  = YES
  43.332 +
  43.333 +# This flag is only useful for Objective-C code. When set to YES local 
  43.334 +# methods, which are defined in the implementation section but not in 
  43.335 +# the interface are included in the documentation. 
  43.336 +# If set to NO (the default) only methods in the interface are included.
  43.337 +
  43.338 +EXTRACT_LOCAL_METHODS  = YES
  43.339 +
  43.340 +# If this flag is set to YES, the members of anonymous namespaces will be 
  43.341 +# extracted and appear in the documentation as a namespace called 
  43.342 +# 'anonymous_namespace{file}', where file will be replaced with the base 
  43.343 +# name of the file that contains the anonymous namespace. By default 
  43.344 +# anonymous namespace are hidden.
  43.345 +
  43.346 +EXTRACT_ANON_NSPACES   = YES
  43.347 +
  43.348 +# If the HIDE_UNDOC_MEMBERS tag is set to YES, Doxygen will hide all 
  43.349 +# undocumented members of documented classes, files or namespaces. 
  43.350 +# If set to NO (the default) these members will be included in the 
  43.351 +# various overviews, but no documentation section is generated. 
  43.352 +# This option has no effect if EXTRACT_ALL is enabled.
  43.353 +
  43.354 +HIDE_UNDOC_MEMBERS     = NO
  43.355 +
  43.356 +# If the HIDE_UNDOC_CLASSES tag is set to YES, Doxygen will hide all 
  43.357 +# undocumented classes that are normally visible in the class hierarchy. 
  43.358 +# If set to NO (the default) these classes will be included in the various 
  43.359 +# overviews. This option has no effect if EXTRACT_ALL is enabled.
  43.360 +
  43.361 +HIDE_UNDOC_CLASSES     = NO
  43.362 +
  43.363 +# If the HIDE_FRIEND_COMPOUNDS tag is set to YES, Doxygen will hide all 
  43.364 +# friend (class|struct|union) declarations. 
  43.365 +# If set to NO (the default) these declarations will be included in the 
  43.366 +# documentation.
  43.367 +
  43.368 +HIDE_FRIEND_COMPOUNDS  = NO
  43.369 +
  43.370 +# If the HIDE_IN_BODY_DOCS tag is set to YES, Doxygen will hide any 
  43.371 +# documentation blocks found inside the body of a function. 
  43.372 +# If set to NO (the default) these blocks will be appended to the 
  43.373 +# function's detailed documentation block.
  43.374 +
  43.375 +HIDE_IN_BODY_DOCS      = NO
  43.376 +
  43.377 +# The INTERNAL_DOCS tag determines if documentation 
  43.378 +# that is typed after a \internal command is included. If the tag is set 
  43.379 +# to NO (the default) then the documentation will be excluded. 
  43.380 +# Set it to YES to include the internal documentation.
  43.381 +
  43.382 +INTERNAL_DOCS          = YES
  43.383 +
  43.384 +# If the CASE_SENSE_NAMES tag is set to NO then Doxygen will only generate 
  43.385 +# file names in lower-case letters. If set to YES upper-case letters are also 
  43.386 +# allowed. This is useful if you have classes or files whose names only differ 
  43.387 +# in case and if your file system supports case sensitive file names. Windows 
  43.388 +# and Mac users are advised to set this option to NO.
  43.389 +
  43.390 +CASE_SENSE_NAMES       = NO
  43.391 +
  43.392 +# If the HIDE_SCOPE_NAMES tag is set to NO (the default) then Doxygen 
  43.393 +# will show members with their full class and namespace scopes in the 
  43.394 +# documentation. If set to YES the scope will be hidden.
  43.395 +
  43.396 +HIDE_SCOPE_NAMES       = NO
  43.397 +
  43.398 +# If the SHOW_INCLUDE_FILES tag is set to YES (the default) then Doxygen 
  43.399 +# will put a list of the files that are included by a file in the documentation 
  43.400 +# of that file.
  43.401 +
  43.402 +SHOW_INCLUDE_FILES     = YES
  43.403 +
  43.404 +# If the INLINE_INFO tag is set to YES (the default) then a tag [inline] 
  43.405 +# is inserted in the documentation for inline members.
  43.406 +
  43.407 +INLINE_INFO            = YES
  43.408 +
  43.409 +# If the SORT_MEMBER_DOCS tag is set to YES (the default) then doxygen 
  43.410 +# will sort the (detailed) documentation of file and class members 
  43.411 +# alphabetically by member name. If set to NO the members will appear in 
  43.412 +# declaration order.
  43.413 +
  43.414 +SORT_MEMBER_DOCS       = YES
  43.415 +
  43.416 +# If the SORT_BRIEF_DOCS tag is set to YES then doxygen will sort the 
  43.417 +# brief documentation of file, namespace and class members alphabetically 
  43.418 +# by member name. If set to NO (the default) the members will appear in 
  43.419 +# declaration order.
  43.420 +
  43.421 +SORT_BRIEF_DOCS        = NO
  43.422 +
  43.423 +# If the SORT_GROUP_NAMES tag is set to YES then doxygen will sort the 
  43.424 +# hierarchy of group names into alphabetical order. If set to NO (the default) 
  43.425 +# the group names will appear in their defined order.
  43.426 +
  43.427 +SORT_GROUP_NAMES       = NO
  43.428 +
  43.429 +# If the SORT_BY_SCOPE_NAME tag is set to YES, the class list will be 
  43.430 +# sorted by fully-qualified names, including namespaces. If set to 
  43.431 +# NO (the default), the class list will be sorted only by class name, 
  43.432 +# not including the namespace part. 
  43.433 +# Note: This option is not very useful if HIDE_SCOPE_NAMES is set to YES. 
  43.434 +# Note: This option applies only to the class list, not to the 
  43.435 +# alphabetical list.
  43.436 +
  43.437 +SORT_BY_SCOPE_NAME     = NO
  43.438 +
  43.439 +# The GENERATE_TODOLIST tag can be used to enable (YES) or 
  43.440 +# disable (NO) the todo list. This list is created by putting \todo 
  43.441 +# commands in the documentation.
  43.442 +
  43.443 +GENERATE_TODOLIST      = YES
  43.444 +
  43.445 +# The GENERATE_TESTLIST tag can be used to enable (YES) or 
  43.446 +# disable (NO) the test list. This list is created by putting \test 
  43.447 +# commands in the documentation.
  43.448 +
  43.449 +GENERATE_TESTLIST      = YES
  43.450 +
  43.451 +# The GENERATE_BUGLIST tag can be used to enable (YES) or 
  43.452 +# disable (NO) the bug list. This list is created by putting \bug 
  43.453 +# commands in the documentation.
  43.454 +
  43.455 +GENERATE_BUGLIST       = YES
  43.456 +
  43.457 +# The GENERATE_DEPRECATEDLIST tag can be used to enable (YES) or 
  43.458 +# disable (NO) the deprecated list. This list is created by putting 
  43.459 +# \deprecated commands in the documentation.
  43.460 +
  43.461 +GENERATE_DEPRECATEDLIST= YES
  43.462 +
  43.463 +# The ENABLED_SECTIONS tag can be used to enable conditional 
  43.464 +# documentation sections, marked by \if sectionname ... \endif.
  43.465 +
  43.466 +ENABLED_SECTIONS       = 
  43.467 +
  43.468 +# The MAX_INITIALIZER_LINES tag determines the maximum number of lines 
  43.469 +# the initial value of a variable or define consists of for it to appear in 
  43.470 +# the documentation. If the initializer consists of more lines than specified 
  43.471 +# here it will be hidden. Use a value of 0 to hide initializers completely. 
  43.472 +# The appearance of the initializer of individual variables and defines in the 
  43.473 +# documentation can be controlled using \showinitializer or \hideinitializer 
  43.474 +# command in the documentation regardless of this setting.
  43.475 +
  43.476 +MAX_INITIALIZER_LINES  = 30
  43.477 +
  43.478 +# If the sources in your project are distributed over multiple directories 
  43.479 +# then setting the SHOW_DIRECTORIES tag to YES will show the directory hierarchy 
  43.480 +# in the documentation. The default is NO.
  43.481 +
  43.482 +SHOW_DIRECTORIES       = YES
  43.483 +
  43.484 +# Set the SHOW_FILES tag to NO to disable the generation of the Files page. 
  43.485 +# This will remove the Files entry from the Quick Index and from the 
  43.486 +# Folder Tree View (if specified). The default is YES.
  43.487 +
  43.488 +SHOW_FILES             = YES
  43.489 +
  43.490 +# Set the SHOW_NAMESPACES tag to NO to disable the generation of the 
  43.491 +# Namespaces page.  This will remove the Namespaces entry from the Quick Index 
  43.492 +# and from the Folder Tree View (if specified). The default is YES.
  43.493 +
  43.494 +SHOW_NAMESPACES        = YES
  43.495 +
  43.496 +# The FILE_VERSION_FILTER tag can be used to specify a program or script that 
  43.497 +# doxygen should invoke to get the current version for each file (typically from 
  43.498 +# the version control system). Doxygen will invoke the program by executing (via 
  43.499 +# popen()) the command <command> <input-file>, where <command> is the value of 
  43.500 +# the FILE_VERSION_FILTER tag, and <input-file> is the name of an input file 
  43.501 +# provided by doxygen. Whatever the program writes to standard output 
  43.502 +# is used as the file version. See the manual for examples.
  43.503 +
  43.504 +FILE_VERSION_FILTER    = 
  43.505 +
  43.506 +# The LAYOUT_FILE tag can be used to specify a layout file which will be parsed by 
  43.507 +# doxygen. The layout file controls the global structure of the generated output files 
  43.508 +# in an output format independent way. The create the layout file that represents 
  43.509 +# doxygen's defaults, run doxygen with the -l option. You can optionally specify a 
  43.510 +# file name after the option, if omitted DoxygenLayout.xml will be used as the name 
  43.511 +# of the layout file.
  43.512 +
  43.513 +LAYOUT_FILE            = 
  43.514 +
  43.515 +#---------------------------------------------------------------------------
  43.516 +# configuration options related to warning and progress messages
  43.517 +#---------------------------------------------------------------------------
  43.518 +
  43.519 +# The QUIET tag can be used to turn on/off the messages that are generated 
  43.520 +# by doxygen. Possible values are YES and NO. If left blank NO is used.
  43.521 +
  43.522 +QUIET                  = NO
  43.523 +
  43.524 +# The WARNINGS tag can be used to turn on/off the warning messages that are 
  43.525 +# generated by doxygen. Possible values are YES and NO. If left blank 
  43.526 +# NO is used.
  43.527 +
  43.528 +WARNINGS               = YES
  43.529 +
  43.530 +# If WARN_IF_UNDOCUMENTED is set to YES, then doxygen will generate warnings 
  43.531 +# for undocumented members. If EXTRACT_ALL is set to YES then this flag will 
  43.532 +# automatically be disabled.
  43.533 +
  43.534 +WARN_IF_UNDOCUMENTED   = YES
  43.535 +
  43.536 +# If WARN_IF_DOC_ERROR is set to YES, doxygen will generate warnings for 
  43.537 +# potential errors in the documentation, such as not documenting some 
  43.538 +# parameters in a documented function, or documenting parameters that 
  43.539 +# don't exist or using markup commands wrongly.
  43.540 +
  43.541 +WARN_IF_DOC_ERROR      = YES
  43.542 +
  43.543 +# This WARN_NO_PARAMDOC option can be abled to get warnings for 
  43.544 +# functions that are documented, but have no documentation for their parameters 
  43.545 +# or return value. If set to NO (the default) doxygen will only warn about 
  43.546 +# wrong or incomplete parameter documentation, but not about the absence of 
  43.547 +# documentation.
  43.548 +
  43.549 +WARN_NO_PARAMDOC       = YES
  43.550 +
  43.551 +# The WARN_FORMAT tag determines the format of the warning messages that 
  43.552 +# doxygen can produce. The string should contain the $file, $line, and $text 
  43.553 +# tags, which will be replaced by the file and line number from which the 
  43.554 +# warning originated and the warning text. Optionally the format may contain 
  43.555 +# $version, which will be replaced by the version of the file (if it could 
  43.556 +# be obtained via FILE_VERSION_FILTER)
  43.557 +
  43.558 +WARN_FORMAT            = "$file:$line: $text"
  43.559 +
  43.560 +# The WARN_LOGFILE tag can be used to specify a file to which warning 
  43.561 +# and error messages should be written. If left blank the output is written 
  43.562 +# to stderr.
  43.563 +
  43.564 +WARN_LOGFILE           = ./doxygen_warn.txt
  43.565 +
  43.566 +#---------------------------------------------------------------------------
  43.567 +# configuration options related to the input files
  43.568 +#---------------------------------------------------------------------------
  43.569 +
  43.570 +# The INPUT tag can be used to specify the files and/or directories that contain 
  43.571 +# documented source files. You may enter file names like "myfile.cpp" or 
  43.572 +# directories like "/usr/src/myproject". Separate the files or directories 
  43.573 +# with spaces.
  43.574 +
  43.575 +INPUT                  = . ../include
  43.576 +
  43.577 +# This tag can be used to specify the character encoding of the source files 
  43.578 +# that doxygen parses. Internally doxygen uses the UTF-8 encoding, which is 
  43.579 +# also the default input encoding. Doxygen uses libiconv (or the iconv built 
  43.580 +# into libc) for the transcoding. See http://www.gnu.org/software/libiconv for 
  43.581 +# the list of possible encodings.
  43.582 +
  43.583 +INPUT_ENCODING         = UTF-8
  43.584 +
  43.585 +# If the value of the INPUT tag contains directories, you can use the 
  43.586 +# FILE_PATTERNS tag to specify one or more wildcard pattern (like *.cpp 
  43.587 +# and *.h) to filter out the source-files in the directories. If left 
  43.588 +# blank the following patterns are tested: 
  43.589 +# *.c *.cc *.cxx *.cpp *.c++ *.java *.ii *.ixx *.ipp *.i++ *.inl *.h *.hh *.hxx 
  43.590 +# *.hpp *.h++ *.idl *.odl *.cs *.php *.php3 *.inc *.m *.mm *.py *.f90
  43.591 +
  43.592 +FILE_PATTERNS          = *.c \
  43.593 +                         *.cc \
  43.594 +                         *.cxx \
  43.595 +                         *.cpp \
  43.596 +                         *.c++ \
  43.597 +                         *.d \
  43.598 +                         *.java \
  43.599 +                         *.ii \
  43.600 +                         *.ixx \
  43.601 +                         *.ipp \
  43.602 +                         *.i++ \
  43.603 +                         *.inl \
  43.604 +                         *.h \
  43.605 +                         *.hh \
  43.606 +                         *.hxx \
  43.607 +                         *.hpp \
  43.608 +                         *.h++ \
  43.609 +                         *.idl \
  43.610 +                         *.odl \
  43.611 +                         *.cs \
  43.612 +                         *.php \
  43.613 +                         *.php3 \
  43.614 +                         *.inc \
  43.615 +                         *.m \
  43.616 +                         *.mm \
  43.617 +                         *.dox \
  43.618 +                         *.py \
  43.619 +                         *.f90 \
  43.620 +                         *.f \
  43.621 +                         *.vhd \
  43.622 +                         *.vhdl \
  43.623 +                         *.h.in \
  43.624 +                         *.h.default \
  43.625 +                         *.md
  43.626 +
  43.627 +# The RECURSIVE tag can be used to turn specify whether or not subdirectories 
  43.628 +# should be searched for input files as well. Possible values are YES and NO. 
  43.629 +# If left blank NO is used.
  43.630 +
  43.631 +RECURSIVE              = YES
  43.632 +
  43.633 +# The EXCLUDE tag can be used to specify files and/or directories that should 
  43.634 +# excluded from the INPUT source files. This way you can easily exclude a 
  43.635 +# subdirectory from a directory tree whose root is specified with the INPUT tag.
  43.636 +
  43.637 +EXCLUDE                = ../include/SDL_opengles2_gl2ext.h \
  43.638 +                         ../include/SDL_opengles2_gl2platform.h \
  43.639 +                         ../include/SDL_opengles2_khrplatform.h \
  43.640 +                         ../include/SDL_opengl_glext.h \
  43.641 +                         ../include/SDL_opengles2_gl2.h \
  43.642 +                         ../include/SDL_opengles2.h \
  43.643 +                         ../include/SDL_opengles.h \
  43.644 +                         ../include/SDL_opengl.h \
  43.645 +
  43.646 +
  43.647 +# The EXCLUDE_SYMLINKS tag can be used select whether or not files or 
  43.648 +# directories that are symbolic links (a Unix filesystem feature) are excluded 
  43.649 +# from the input.
  43.650 +
  43.651 +EXCLUDE_SYMLINKS       = NO
  43.652 +
  43.653 +# If the value of the INPUT tag contains directories, you can use the 
  43.654 +# EXCLUDE_PATTERNS tag to specify one or more wildcard patterns to exclude 
  43.655 +# certain files from those directories. Note that the wildcards are matched 
  43.656 +# against the file with absolute path, so to exclude all test directories 
  43.657 +# for example use the pattern */test/*
  43.658 +
  43.659 +EXCLUDE_PATTERNS       =
  43.660 +
  43.661 +# The EXCLUDE_SYMBOLS tag can be used to specify one or more symbol names 
  43.662 +# (namespaces, classes, functions, etc.) that should be excluded from the 
  43.663 +# output. The symbol name can be a fully qualified name, a word, or if the 
  43.664 +# wildcard * is used, a substring. Examples: ANamespace, AClass, 
  43.665 +# AClass::ANamespace, ANamespace::*Test
  43.666 +
  43.667 +EXCLUDE_SYMBOLS        = 
  43.668 +
  43.669 +# The EXAMPLE_PATH tag can be used to specify one or more files or 
  43.670 +# directories that contain example code fragments that are included (see 
  43.671 +# the \include command).
  43.672 +
  43.673 +EXAMPLE_PATH           =
  43.674 +
  43.675 +# If the value of the EXAMPLE_PATH tag contains directories, you can use the 
  43.676 +# EXAMPLE_PATTERNS tag to specify one or more wildcard pattern (like *.cpp 
  43.677 +# and *.h) to filter out the source-files in the directories. If left 
  43.678 +# blank all files are included.
  43.679 +
  43.680 +EXAMPLE_PATTERNS       = *
  43.681 +
  43.682 +# If the EXAMPLE_RECURSIVE tag is set to YES then subdirectories will be 
  43.683 +# searched for input files to be used with the \include or \dontinclude 
  43.684 +# commands irrespective of the value of the RECURSIVE tag. 
  43.685 +# Possible values are YES and NO. If left blank NO is used.
  43.686 +
  43.687 +EXAMPLE_RECURSIVE      = YES
  43.688 +
  43.689 +# The IMAGE_PATH tag can be used to specify one or more files or 
  43.690 +# directories that contain image that are included in the documentation (see 
  43.691 +# the \image command).
  43.692 +
  43.693 +IMAGE_PATH             = 
  43.694 +
  43.695 +# The INPUT_FILTER tag can be used to specify a program that doxygen should 
  43.696 +# invoke to filter for each input file. Doxygen will invoke the filter program 
  43.697 +# by executing (via popen()) the command <filter> <input-file>, where <filter> 
  43.698 +# is the value of the INPUT_FILTER tag, and <input-file> is the name of an 
  43.699 +# input file. Doxygen will then use the output that the filter program writes 
  43.700 +# to standard output.  If FILTER_PATTERNS is specified, this tag will be 
  43.701 +# ignored.
  43.702 +
  43.703 +INPUT_FILTER           = 
  43.704 +
  43.705 +# The FILTER_PATTERNS tag can be used to specify filters on a per file pattern 
  43.706 +# basis.  Doxygen will compare the file name with each pattern and apply the 
  43.707 +# filter if there is a match.  The filters are a list of the form: 
  43.708 +# pattern=filter (like *.cpp=my_cpp_filter). See INPUT_FILTER for further 
  43.709 +# info on how filters are used. If FILTER_PATTERNS is empty, INPUT_FILTER 
  43.710 +# is applied to all files.
  43.711 +
  43.712 +FILTER_PATTERNS        = 
  43.713 +
  43.714 +# If the FILTER_SOURCE_FILES tag is set to YES, the input filter (if set using 
  43.715 +# INPUT_FILTER) will be used to filter the input files when producing source 
  43.716 +# files to browse (i.e. when SOURCE_BROWSER is set to YES).
  43.717 +
  43.718 +FILTER_SOURCE_FILES    = NO
  43.719 +
  43.720 +#---------------------------------------------------------------------------
  43.721 +# configuration options related to source browsing
  43.722 +#---------------------------------------------------------------------------
  43.723 +
  43.724 +# If the SOURCE_BROWSER tag is set to YES then a list of source files will 
  43.725 +# be generated. Documented entities will be cross-referenced with these sources. 
  43.726 +# Note: To get rid of all source code in the generated output, make sure also 
  43.727 +# VERBATIM_HEADERS is set to NO.
  43.728 +
  43.729 +SOURCE_BROWSER         = YES
  43.730 +
  43.731 +# Setting the INLINE_SOURCES tag to YES will include the body 
  43.732 +# of functions and classes directly in the documentation.
  43.733 +
  43.734 +INLINE_SOURCES         = YES
  43.735 +
  43.736 +# Setting the STRIP_CODE_COMMENTS tag to YES (the default) will instruct 
  43.737 +# doxygen to hide any special comment blocks from generated source code 
  43.738 +# fragments. Normal C and C++ comments will always remain visible.
  43.739 +
  43.740 +STRIP_CODE_COMMENTS    = NO
  43.741 +
  43.742 +# If the REFERENCED_BY_RELATION tag is set to YES 
  43.743 +# then for each documented function all documented 
  43.744 +# functions referencing it will be listed.
  43.745 +
  43.746 +REFERENCED_BY_RELATION = YES
  43.747 +
  43.748 +# If the REFERENCES_RELATION tag is set to YES 
  43.749 +# then for each documented function all documented entities 
  43.750 +# called/used by that function will be listed.
  43.751 +
  43.752 +REFERENCES_RELATION    = YES
  43.753 +
  43.754 +# If the REFERENCES_LINK_SOURCE tag is set to YES (the default) 
  43.755 +# and SOURCE_BROWSER tag is set to YES, then the hyperlinks from 
  43.756 +# functions in REFERENCES_RELATION and REFERENCED_BY_RELATION lists will 
  43.757 +# link to the source code.  Otherwise they will link to the documentation.
  43.758 +
  43.759 +REFERENCES_LINK_SOURCE = YES
  43.760 +
  43.761 +# If the USE_HTAGS tag is set to YES then the references to source code 
  43.762 +# will point to the HTML generated by the htags(1) tool instead of doxygen 
  43.763 +# built-in source browser. The htags tool is part of GNU's global source 
  43.764 +# tagging system (see http://www.gnu.org/software/global/global.html). You 
  43.765 +# will need version 4.8.6 or higher.
  43.766 +
  43.767 +USE_HTAGS              = NO
  43.768 +
  43.769 +# If the VERBATIM_HEADERS tag is set to YES (the default) then Doxygen 
  43.770 +# will generate a verbatim copy of the header file for each class for 
  43.771 +# which an include is specified. Set to NO to disable this.
  43.772 +
  43.773 +VERBATIM_HEADERS       = YES
  43.774 +
  43.775 +#---------------------------------------------------------------------------
  43.776 +# configuration options related to the alphabetical class index
  43.777 +#---------------------------------------------------------------------------
  43.778 +
  43.779 +# If the ALPHABETICAL_INDEX tag is set to YES, an alphabetical index 
  43.780 +# of all compounds will be generated. Enable this if the project 
  43.781 +# contains a lot of classes, structs, unions or interfaces.
  43.782 +
  43.783 +ALPHABETICAL_INDEX     = YES
  43.784 +
  43.785 +# If the alphabetical index is enabled (see ALPHABETICAL_INDEX) then 
  43.786 +# the COLS_IN_ALPHA_INDEX tag can be used to specify the number of columns 
  43.787 +# in which this list will be split (can be a number in the range [1..20])
  43.788 +
  43.789 +COLS_IN_ALPHA_INDEX    = 5
  43.790 +
  43.791 +# In case all classes in a project start with a common prefix, all 
  43.792 +# classes will be put under the same header in the alphabetical index. 
  43.793 +# The IGNORE_PREFIX tag can be used to specify one or more prefixes that 
  43.794 +# should be ignored while generating the index headers.
  43.795 +
  43.796 +IGNORE_PREFIX          = SDL_ \
  43.797 +                         SDL
  43.798 +
  43.799 +#---------------------------------------------------------------------------
  43.800 +# configuration options related to the HTML output
  43.801 +#---------------------------------------------------------------------------
  43.802 +
  43.803 +# If the GENERATE_HTML tag is set to YES (the default) Doxygen will 
  43.804 +# generate HTML output.
  43.805 +
  43.806 +GENERATE_HTML          = YES
  43.807 +
  43.808 +# The HTML_OUTPUT tag is used to specify where the HTML docs will be put. 
  43.809 +# If a relative path is entered the value of OUTPUT_DIRECTORY will be 
  43.810 +# put in front of it. If left blank `html' will be used as the default path.
  43.811 +
  43.812 +HTML_OUTPUT            = html
  43.813 +
  43.814 +# The HTML_FILE_EXTENSION tag can be used to specify the file extension for 
  43.815 +# each generated HTML page (for example: .htm,.php,.asp). If it is left blank 
  43.816 +# doxygen will generate files with .html extension.
  43.817 +
  43.818 +HTML_FILE_EXTENSION    = .html
  43.819 +
  43.820 +# The HTML_HEADER tag can be used to specify a personal HTML header for 
  43.821 +# each generated HTML page. If it is left blank doxygen will generate a 
  43.822 +# standard header.
  43.823 +
  43.824 +HTML_HEADER            = 
  43.825 +
  43.826 +# The HTML_FOOTER tag can be used to specify a personal HTML footer for 
  43.827 +# each generated HTML page. If it is left blank doxygen will generate a 
  43.828 +# standard footer.
  43.829 +
  43.830 +HTML_FOOTER            = 
  43.831 +
  43.832 +# The HTML_STYLESHEET tag can be used to specify a user-defined cascading 
  43.833 +# style sheet that is used by each HTML page. It can be used to 
  43.834 +# fine-tune the look of the HTML output. If the tag is left blank doxygen 
  43.835 +# will generate a default style sheet. Note that doxygen will try to copy 
  43.836 +# the style sheet file to the HTML output directory, so don't put your own 
  43.837 +# stylesheet in the HTML output directory as well, or it will be erased!
  43.838 +
  43.839 +HTML_STYLESHEET        = 
  43.840 +
  43.841 +# If the HTML_ALIGN_MEMBERS tag is set to YES, the members of classes, 
  43.842 +# files or namespaces will be aligned in HTML using tables. If set to 
  43.843 +# NO a bullet list will be used.
  43.844 +
  43.845 +HTML_ALIGN_MEMBERS     = YES
  43.846 +
  43.847 +# If the HTML_DYNAMIC_SECTIONS tag is set to YES then the generated HTML 
  43.848 +# documentation will contain sections that can be hidden and shown after the 
  43.849 +# page has loaded. For this to work a browser that supports 
  43.850 +# JavaScript and DHTML is required (for instance Mozilla 1.0+, Firefox 
  43.851 +# Netscape 6.0+, Internet explorer 5.0+, Konqueror, or Safari).
  43.852 +
  43.853 +HTML_DYNAMIC_SECTIONS  = YES
  43.854 +
  43.855 +# If the GENERATE_DOCSET tag is set to YES, additional index files 
  43.856 +# will be generated that can be used as input for Apple's Xcode 3 
  43.857 +# integrated development environment, introduced with OSX 10.5 (Leopard). 
  43.858 +# To create a documentation set, doxygen will generate a Makefile in the 
  43.859 +# HTML output directory. Running make will produce the docset in that 
  43.860 +# directory and running "make install" will install the docset in 
  43.861 +# ~/Library/Developer/Shared/Documentation/DocSets so that Xcode will find 
  43.862 +# it at startup. 
  43.863 +# See http://developer.apple.com/tools/creatingdocsetswithdoxygen.html for more information.
  43.864 +
  43.865 +GENERATE_DOCSET        = NO
  43.866 +
  43.867 +# When GENERATE_DOCSET tag is set to YES, this tag determines the name of the 
  43.868 +# feed. A documentation feed provides an umbrella under which multiple 
  43.869 +# documentation sets from a single provider (such as a company or product suite) 
  43.870 +# can be grouped.
  43.871 +
  43.872 +DOCSET_FEEDNAME        = "SDL 2.0 Doxygen"
  43.873 +
  43.874 +# When GENERATE_DOCSET tag is set to YES, this tag specifies a string that 
  43.875 +# should uniquely identify the documentation set bundle. This should be a 
  43.876 +# reverse domain-name style string, e.g. com.mycompany.MyDocSet. Doxygen 
  43.877 +# will append .docset to the name.
  43.878 +
  43.879 +DOCSET_BUNDLE_ID       = org.libsdl.sdl20
  43.880 +
  43.881 +# If the GENERATE_HTMLHELP tag is set to YES, additional index files 
  43.882 +# will be generated that can be used as input for tools like the 
  43.883 +# Microsoft HTML help workshop to generate a compiled HTML help file (.chm) 
  43.884 +# of the generated HTML documentation.
  43.885 +
  43.886 +GENERATE_HTMLHELP      = NO
  43.887 +
  43.888 +# If the GENERATE_HTMLHELP tag is set to YES, the CHM_FILE tag can 
  43.889 +# be used to specify the file name of the resulting .chm file. You 
  43.890 +# can add a path in front of the file if the result should not be 
  43.891 +# written to the html output directory.
  43.892 +
  43.893 +CHM_FILE               = ./sdl20.chm
  43.894 +
  43.895 +# If the GENERATE_HTMLHELP tag is set to YES, the HHC_LOCATION tag can 
  43.896 +# be used to specify the location (absolute path including file name) of 
  43.897 +# the HTML help compiler (hhc.exe). If non-empty doxygen will try to run 
  43.898 +# the HTML help compiler on the generated index.hhp.
  43.899 +
  43.900 +HHC_LOCATION           = 
  43.901 +
  43.902 +# If the GENERATE_HTMLHELP tag is set to YES, the GENERATE_CHI flag 
  43.903 +# controls if a separate .chi index file is generated (YES) or that 
  43.904 +# it should be included in the master .chm file (NO).
  43.905 +
  43.906 +GENERATE_CHI           = NO
  43.907 +
  43.908 +# If the GENERATE_HTMLHELP tag is set to YES, the CHM_INDEX_ENCODING 
  43.909 +# is used to encode HtmlHelp index (hhk), content (hhc) and project file 
  43.910 +# content.
  43.911 +
  43.912 +CHM_INDEX_ENCODING     = 
  43.913 +
  43.914 +# If the GENERATE_HTMLHELP tag is set to YES, the BINARY_TOC flag 
  43.915 +# controls whether a binary table of contents is generated (YES) or a 
  43.916 +# normal table of contents (NO) in the .chm file.
  43.917 +
  43.918 +BINARY_TOC             = NO
  43.919 +
  43.920 +# The TOC_EXPAND flag can be set to YES to add extra items for group members 
  43.921 +# to the contents of the HTML help documentation and to the tree view.
  43.922 +
  43.923 +TOC_EXPAND             = YES
  43.924 +
  43.925 +# If the GENERATE_QHP tag is set to YES and both QHP_NAMESPACE and QHP_VIRTUAL_FOLDER 
  43.926 +# are set, an additional index file will be generated that can be used as input for 
  43.927 +# Qt's qhelpgenerator to generate a Qt Compressed Help (.qch) of the generated 
  43.928 +# HTML documentation.
  43.929 +
  43.930 +GENERATE_QHP           = NO
  43.931 +
  43.932 +# If the QHG_LOCATION tag is specified, the QCH_FILE tag can 
  43.933 +# be used to specify the file name of the resulting .qch file. 
  43.934 +# The path specified is relative to the HTML output folder.
  43.935 +
  43.936 +QCH_FILE               = 
  43.937 +
  43.938 +# The QHP_NAMESPACE tag specifies the namespace to use when generating 
  43.939 +# Qt Help Project output. For more information please see 
  43.940 +# http://doc.trolltech.com/qthelpproject.html#namespace
  43.941 +
  43.942 +QHP_NAMESPACE          = 
  43.943 +
  43.944 +# The QHP_VIRTUAL_FOLDER tag specifies the namespace to use when generating 
  43.945 +# Qt Help Project output. For more information please see 
  43.946 +# http://doc.trolltech.com/qthelpproject.html#virtual-folders
  43.947 +
  43.948 +QHP_VIRTUAL_FOLDER     = doc
  43.949 +
  43.950 +# If QHP_CUST_FILTER_NAME is set, it specifies the name of a custom filter to add. 
  43.951 +# For more information please see 
  43.952 +# http://doc.trolltech.com/qthelpproject.html#custom-filters
  43.953 +
  43.954 +QHP_CUST_FILTER_NAME   = 
  43.955 +
  43.956 +# The QHP_CUST_FILT_ATTRS tag specifies the list of the attributes of the custom filter to add.For more information please see 
  43.957 +# <a href="http://doc.trolltech.com/qthelpproject.html#custom-filters">Qt Help Project / Custom Filters</a>.
  43.958 +
  43.959 +QHP_CUST_FILTER_ATTRS  = 
  43.960 +
  43.961 +# The QHP_SECT_FILTER_ATTRS tag specifies the list of the attributes this project's 
  43.962 +# filter section matches. 
  43.963 +# <a href="http://doc.trolltech.com/qthelpproject.html#filter-attributes">Qt Help Project / Filter Attributes</a>.
  43.964 +
  43.965 +QHP_SECT_FILTER_ATTRS  = 
  43.966 +
  43.967 +# If the GENERATE_QHP tag is set to YES, the QHG_LOCATION tag can 
  43.968 +# be used to specify the location of Qt's qhelpgenerator. 
  43.969 +# If non-empty doxygen will try to run qhelpgenerator on the generated 
  43.970 +# .qhp file.
  43.971 +
  43.972 +QHG_LOCATION           = 
  43.973 +
  43.974 +# The DISABLE_INDEX tag can be used to turn on/off the condensed index at 
  43.975 +# top of each HTML page. The value NO (the default) enables the index and 
  43.976 +# the value YES disables it.
  43.977 +
  43.978 +DISABLE_INDEX          = NO
  43.979 +
  43.980 +# This tag can be used to set the number of enum values (range [1..20]) 
  43.981 +# that doxygen will group on one line in the generated HTML documentation.
  43.982 +
  43.983 +ENUM_VALUES_PER_LINE   = 1
  43.984 +
  43.985 +# The GENERATE_TREEVIEW tag is used to specify whether a tree-like index 
  43.986 +# structure should be generated to display hierarchical information. 
  43.987 +# If the tag value is set to FRAME, a side panel will be generated 
  43.988 +# containing a tree-like index structure (just like the one that 
  43.989 +# is generated for HTML Help). For this to work a browser that supports 
  43.990 +# JavaScript, DHTML, CSS and frames is required (for instance Mozilla 1.0+, 
  43.991 +# Netscape 6.0+, Internet explorer 5.0+, or Konqueror). Windows users are 
  43.992 +# probably better off using the HTML help feature. Other possible values 
  43.993 +# for this tag are: HIERARCHIES, which will generate the Groups, Directories, 
  43.994 +# and Class Hierarchy pages using a tree view instead of an ordered list; 
  43.995 +# ALL, which combines the behavior of FRAME and HIERARCHIES; and NONE, which 
  43.996 +# disables this behavior completely. For backwards compatibility with previous 
  43.997 +# releases of Doxygen, the values YES and NO are equivalent to FRAME and NONE 
  43.998 +# respectively.
  43.999 +
 43.1000 +GENERATE_TREEVIEW      = ALL
 43.1001 +
 43.1002 +# If the treeview is enabled (see GENERATE_TREEVIEW) then this tag can be 
 43.1003 +# used to set the initial width (in pixels) of the frame in which the tree 
 43.1004 +# is shown.
 43.1005 +
 43.1006 +TREEVIEW_WIDTH         = 250
 43.1007 +
 43.1008 +# Use this tag to change the font size of Latex formulas included 
 43.1009 +# as images in the HTML documentation. The default is 10. Note that 
 43.1010 +# when you change the font size after a successful doxygen run you need 
 43.1011 +# to manually remove any form_*.png images from the HTML output directory 
 43.1012 +# to force them to be regenerated.
 43.1013 +
 43.1014 +FORMULA_FONTSIZE       = 10
 43.1015 +
 43.1016 +#---------------------------------------------------------------------------
 43.1017 +# configuration options related to the LaTeX output
 43.1018 +#---------------------------------------------------------------------------
 43.1019 +
 43.1020 +# If the GENERATE_LATEX tag is set to YES (the default) Doxygen will 
 43.1021 +# generate Latex output.
 43.1022 +
 43.1023 +GENERATE_LATEX         = NO
 43.1024 +
 43.1025 +# The LATEX_OUTPUT tag is used to specify where the LaTeX docs will be put. 
 43.1026 +# If a relative path is entered the value of OUTPUT_DIRECTORY will be 
 43.1027 +# put in front of it. If left blank `latex' will be used as the default path.
 43.1028 +
 43.1029 +LATEX_OUTPUT           = latex
 43.1030 +
 43.1031 +# The LATEX_CMD_NAME tag can be used to specify the LaTeX command name to be 
 43.1032 +# invoked. If left blank `latex' will be used as the default command name.
 43.1033 +
 43.1034 +LATEX_CMD_NAME         = latex
 43.1035 +
 43.1036 +# The MAKEINDEX_CMD_NAME tag can be used to specify the command name to 
 43.1037 +# generate index for LaTeX. If left blank `makeindex' will be used as the 
 43.1038 +# default command name.
 43.1039 +
 43.1040 +MAKEINDEX_CMD_NAME     = makeindex
 43.1041 +
 43.1042 +# If the COMPACT_LATEX tag is set to YES Doxygen generates more compact 
 43.1043 +# LaTeX documents. This may be useful for small projects and may help to 
 43.1044 +# save some trees in general.
 43.1045 +
 43.1046 +COMPACT_LATEX          = NO
 43.1047 +
 43.1048 +# The PAPER_TYPE tag can be used to set the paper type that is used 
 43.1049 +# by the printer. Possible values are: a4, a4wide, letter, legal and 
 43.1050 +# executive. If left blank a4wide will be used.
 43.1051 +
 43.1052 +PAPER_TYPE             = a4wide
 43.1053 +
 43.1054 +# The EXTRA_PACKAGES tag can be to specify one or more names of LaTeX 
 43.1055 +# packages that should be included in the LaTeX output.
 43.1056 +
 43.1057 +EXTRA_PACKAGES         = 
 43.1058 +
 43.1059 +# The LATEX_HEADER tag can be used to specify a personal LaTeX header for 
 43.1060 +# the generated latex document. The header should contain everything until 
 43.1061 +# the first chapter. If it is left blank doxygen will generate a 
 43.1062 +# standard header. Notice: only use this tag if you know what you are doing!
 43.1063 +
 43.1064 +LATEX_HEADER           = 
 43.1065 +
 43.1066 +# If the PDF_HYPERLINKS tag is set to YES, the LaTeX that is generated 
 43.1067 +# is prepared for conversion to pdf (using ps2pdf). The pdf file will 
 43.1068 +# contain links (just like the HTML output) instead of page references 
 43.1069 +# This makes the output suitable for online browsing using a pdf viewer.
 43.1070 +
 43.1071 +PDF_HYPERLINKS         = YES
 43.1072 +
 43.1073 +# If the USE_PDFLATEX tag is set to YES, pdflatex will be used instead of 
 43.1074 +# plain latex in the generated Makefile. Set this option to YES to get a 
 43.1075 +# higher quality PDF documentation.
 43.1076 +
 43.1077 +USE_PDFLATEX           = YES
 43.1078 +
 43.1079 +# If the LATEX_BATCHMODE tag is set to YES, doxygen will add the \\batchmode. 
 43.1080 +# command to the generated LaTeX files. This will instruct LaTeX to keep 
 43.1081 +# running if errors occur, instead of asking the user for help. 
 43.1082 +# This option is also used when generating formulas in HTML.
 43.1083 +
 43.1084 +LATEX_BATCHMODE        = NO
 43.1085 +
 43.1086 +# If LATEX_HIDE_INDICES is set to YES then doxygen will not 
 43.1087 +# include the index chapters (such as File Index, Compound Index, etc.) 
 43.1088 +# in the output.
 43.1089 +
 43.1090 +LATEX_HIDE_INDICES     = NO
 43.1091 +
 43.1092 +# If LATEX_SOURCE_CODE is set to YES then doxygen will include
 43.1093 +# source code with syntax highlighting in the LaTeX output.
 43.1094 +# Note that which sources are shown also depends on other settings
 43.1095 +# such as SOURCE_BROWSER.
 43.1096 +
 43.1097 +LATEX_SOURCE_CODE      = NO
 43.1098 +
 43.1099 +#---------------------------------------------------------------------------
 43.1100 +# configuration options related to the RTF output
 43.1101 +#---------------------------------------------------------------------------
 43.1102 +
 43.1103 +# If the GENERATE_RTF tag is set to YES Doxygen will generate RTF output 
 43.1104 +# The RTF output is optimized for Word 97 and may not look very pretty with 
 43.1105 +# other RTF readers or editors.
 43.1106 +
 43.1107 +GENERATE_RTF           = NO
 43.1108 +
 43.1109 +# The RTF_OUTPUT tag is used to specify where the RTF docs will be put. 
 43.1110 +# If a relative path is entered the value of OUTPUT_DIRECTORY will be 
 43.1111 +# put in front of it. If left blank `rtf' will be used as the default path.
 43.1112 +
 43.1113 +RTF_OUTPUT             = rtf
 43.1114 +
 43.1115 +# If the COMPACT_RTF tag is set to YES Doxygen generates more compact 
 43.1116 +# RTF documents. This may be useful for small projects and may help to 
 43.1117 +# save some trees in general.
 43.1118 +
 43.1119 +COMPACT_RTF            = NO
 43.1120 +
 43.1121 +# If the RTF_HYPERLINKS tag is set to YES, the RTF that is generated 
 43.1122 +# will contain hyperlink fields. The RTF file will 
 43.1123 +# contain links (just like the HTML output) instead of page references. 
 43.1124 +# This makes the output suitable for online browsing using WORD or other 
 43.1125 +# programs which support those fields. 
 43.1126 +# Note: wordpad (write) and others do not support links.
 43.1127 +
 43.1128 +RTF_HYPERLINKS         = NO
 43.1129 +
 43.1130 +# Load stylesheet definitions from file. Syntax is similar to doxygen's 
 43.1131 +# config file, i.e. a series of assignments. You only have to provide 
 43.1132 +# replacements, missing definitions are set to their default value.
 43.1133 +
 43.1134 +RTF_STYLESHEET_FILE    = 
 43.1135 +
 43.1136 +# Set optional variables used in the generation of an rtf document. 
 43.1137 +# Syntax is similar to doxygen's config file.
 43.1138 +
 43.1139 +RTF_EXTENSIONS_FILE    = 
 43.1140 +
 43.1141 +#---------------------------------------------------------------------------
 43.1142 +# configuration options related to the man page output
 43.1143 +#---------------------------------------------------------------------------
 43.1144 +
 43.1145 +# If the GENERATE_MAN tag is set to YES (the default) Doxygen will 
 43.1146 +# generate man pages
 43.1147 +
 43.1148 +GENERATE_MAN           = NO
 43.1149 +
 43.1150 +# The MAN_OUTPUT tag is used to specify where the man pages will be put. 
 43.1151 +# If a relative path is entered the value of OUTPUT_DIRECTORY will be 
 43.1152 +# put in front of it. If left blank `man' will be used as the default path.
 43.1153 +
 43.1154 +MAN_OUTPUT             = man
 43.1155 +
 43.1156 +# The MAN_EXTENSION tag determines the extension that is added to 
 43.1157 +# the generated man pages (default is the subroutine's section .3)
 43.1158 +
 43.1159 +MAN_EXTENSION          = .3
 43.1160 +
 43.1161 +# If the MAN_LINKS tag is set to YES and Doxygen generates man output, 
 43.1162 +# then it will generate one additional man file for each entity 
 43.1163 +# documented in the real man page(s). These additional files 
 43.1164 +# only source the real man page, but without them the man command 
 43.1165 +# would be unable to find the correct page. The default is NO.
 43.1166 +
 43.1167 +MAN_LINKS              = NO
 43.1168 +
 43.1169 +#---------------------------------------------------------------------------
 43.1170 +# configuration options related to the XML output
 43.1171 +#---------------------------------------------------------------------------
 43.1172 +
 43.1173 +# If the GENERATE_XML tag is set to YES Doxygen will 
 43.1174 +# generate an XML file that captures the structure of 
 43.1175 +# the code including all documentation.
 43.1176 +
 43.1177 +GENERATE_XML           = NO
 43.1178 +
 43.1179 +# The XML_OUTPUT tag is used to specify where the XML pages will be put. 
 43.1180 +# If a relative path is entered the value of OUTPUT_DIRECTORY will be 
 43.1181 +# put in front of it. If left blank `xml' will be used as the default path.
 43.1182 +
 43.1183 +XML_OUTPUT             = xml
 43.1184 +
 43.1185 +# The XML_SCHEMA tag can be used to specify an XML schema, 
 43.1186 +# which can be used by a validating XML parser to check the 
 43.1187 +# syntax of the XML files.
 43.1188 +
 43.1189 +XML_SCHEMA             = 
 43.1190 +
 43.1191 +# The XML_DTD tag can be used to specify an XML DTD, 
 43.1192 +# which can be used by a validating XML parser to check the 
 43.1193 +# syntax of the XML files.
 43.1194 +
 43.1195 +XML_DTD                = 
 43.1196 +
 43.1197 +# If the XML_PROGRAMLISTING tag is set to YES Doxygen will 
 43.1198 +# dump the program listings (including syntax highlighting 
 43.1199 +# and cross-referencing information) to the XML output. Note that 
 43.1200 +# enabling this will significantly increase the size of the XML output.
 43.1201 +
 43.1202 +XML_PROGRAMLISTING     = YES
 43.1203 +
 43.1204 +#---------------------------------------------------------------------------
 43.1205 +# configuration options for the AutoGen Definitions output
 43.1206 +#---------------------------------------------------------------------------
 43.1207 +
 43.1208 +# If the GENERATE_AUTOGEN_DEF tag is set to YES Doxygen will 
 43.1209 +# generate an AutoGen Definitions (see autogen.sf.net) file 
 43.1210 +# that captures the structure of the code including all 
 43.1211 +# documentation. Note that this feature is still experimental 
 43.1212 +# and incomplete at the moment.
 43.1213 +
 43.1214 +GENERATE_AUTOGEN_DEF   = NO
 43.1215 +
 43.1216 +#---------------------------------------------------------------------------
 43.1217 +# configuration options related to the Perl module output
 43.1218 +#---------------------------------------------------------------------------
 43.1219 +
 43.1220 +# If the GENERATE_PERLMOD tag is set to YES Doxygen will 
 43.1221 +# generate a Perl module file that captures the structure of 
 43.1222 +# the code including all documentation. Note that this 
 43.1223 +# feature is still experimental and incomplete at the 
 43.1224 +# moment.
 43.1225 +
 43.1226 +GENERATE_PERLMOD       = NO
 43.1227 +
 43.1228 +# If the PERLMOD_LATEX tag is set to YES Doxygen will generate 
 43.1229 +# the necessary Makefile rules, Perl scripts and LaTeX code to be able 
 43.1230 +# to generate PDF and DVI output from the Perl module output.
 43.1231 +
 43.1232 +PERLMOD_LATEX          = NO
 43.1233 +
 43.1234 +# If the PERLMOD_PRETTY tag is set to YES the Perl module output will be 
 43.1235 +# nicely formatted so it can be parsed by a human reader.  This is useful 
 43.1236 +# if you want to understand what is going on.  On the other hand, if this 
 43.1237 +# tag is set to NO the size of the Perl module output will be much smaller 
 43.1238 +# and Perl will parse it just the same.
 43.1239 +
 43.1240 +PERLMOD_PRETTY         = YES
 43.1241 +
 43.1242 +# The names of the make variables in the generated doxyrules.make file 
 43.1243 +# are prefixed with the string contained in PERLMOD_MAKEVAR_PREFIX. 
 43.1244 +# This is useful so different doxyrules.make files included by the same 
 43.1245 +# Makefile don't overwrite each other's variables.
 43.1246 +
 43.1247 +PERLMOD_MAKEVAR_PREFIX = 
 43.1248 +
 43.1249 +#---------------------------------------------------------------------------
 43.1250 +# Configuration options related to the preprocessor   
 43.1251 +#---------------------------------------------------------------------------
 43.1252 +
 43.1253 +# If the ENABLE_PREPROCESSING tag is set to YES (the default) Doxygen will 
 43.1254 +# evaluate all C-preprocessor directives found in the sources and include 
 43.1255 +# files.
 43.1256 +
 43.1257 +ENABLE_PREPROCESSING   = YES
 43.1258 +
 43.1259 +# If the MACRO_EXPANSION tag is set to YES Doxygen will expand all macro 
 43.1260 +# names in the source code. If set to NO (the default) only conditional 
 43.1261 +# compilation will be performed. Macro expansion can be done in a controlled 
 43.1262 +# way by setting EXPAND_ONLY_PREDEF to YES.
 43.1263 +
 43.1264 +MACRO_EXPANSION        = YES
 43.1265 +
 43.1266 +# If the EXPAND_ONLY_PREDEF and MACRO_EXPANSION tags are both set to YES 
 43.1267 +# then the macro expansion is limited to the macros specified with the 
 43.1268 +# PREDEFINED and EXPAND_AS_DEFINED tags.
 43.1269 +
 43.1270 +EXPAND_ONLY_PREDEF     = YES
 43.1271 +
 43.1272 +# If the SEARCH_INCLUDES tag is set to YES (the default) the includes files 
 43.1273 +# in the INCLUDE_PATH (see below) will be search if a #include is found.
 43.1274 +
 43.1275 +SEARCH_INCLUDES        = YES
 43.1276 +
 43.1277 +# The INCLUDE_PATH tag can be used to specify one or more directories that 
 43.1278 +# contain include files that are not input files but should be processed by 
 43.1279 +# the preprocessor.
 43.1280 +
 43.1281 +INCLUDE_PATH           =
 43.1282 +
 43.1283 +# You can use the INCLUDE_FILE_PATTERNS tag to specify one or more wildcard 
 43.1284 +# patterns (like *.h and *.hpp) to filter out the header-files in the 
 43.1285 +# directories. If left blank, the patterns specified with FILE_PATTERNS will 
 43.1286 +# be used.
 43.1287 +
 43.1288 +INCLUDE_FILE_PATTERNS  = 
 43.1289 +
 43.1290 +# The PREDEFINED tag can be used to specify one or more macro names that 
 43.1291 +# are defined before the preprocessor is started (similar to the -D option of 
 43.1292 +# gcc). The argument of the tag is a list of macros of the form: name 
 43.1293 +# or name=definition (no spaces). If the definition and the = are 
 43.1294 +# omitted =1 is assumed. To prevent a macro definition from being 
 43.1295 +# undefined via #undef or recursively expanded use the := operator 
 43.1296 +# instead of the = operator.
 43.1297 +
 43.1298 +PREDEFINED             = DOXYGEN_SHOULD_IGNORE_THIS=1 \
 43.1299 +                         DECLSPEC= \
 43.1300 +                         SDLCALL= \
 43.1301 +                         _WIN32=1
 43.1302 +
 43.1303 +# If the MACRO_EXPANSION and EXPAND_ONLY_PREDEF tags are set to YES then 
 43.1304 +# this tag can be used to specify a list of macro names that should be expanded. 
 43.1305 +# The macro definition that is found in the sources will be used. 
 43.1306 +# Use the PREDEFINED tag if you want to use a different macro definition.
 43.1307 +
 43.1308 +EXPAND_AS_DEFINED      = 
 43.1309 +
 43.1310 +# If the SKIP_FUNCTION_MACROS tag is set to YES (the default) then 
 43.1311 +# doxygen's preprocessor will remove all function-like macros that are alone 
 43.1312 +# on a line, have an all uppercase name, and do not end with a semicolon. Such 
 43.1313 +# function macros are typically used for boiler-plate code, and will confuse 
 43.1314 +# the parser if not removed.
 43.1315 +
 43.1316 +SKIP_FUNCTION_MACROS   = YES
 43.1317 +
 43.1318 +#---------------------------------------------------------------------------
 43.1319 +# Configuration::additions related to external references   
 43.1320 +#---------------------------------------------------------------------------
 43.1321 +
 43.1322 +# The TAGFILES option can be used to specify one or more tagfiles. 
 43.1323 +# Optionally an initial location of the external documentation 
 43.1324 +# can be added for each tagfile. The format of a tag file without 
 43.1325 +# this location is as follows: 
 43.1326 +#   TAGFILES = file1 file2 ... 
 43.1327 +# Adding location for the tag files is done as follows: 
 43.1328 +#   TAGFILES = file1=loc1 "file2 = loc2" ... 
 43.1329 +# where "loc1" and "loc2" can be relative or absolute paths or 
 43.1330 +# URLs. If a location is present for each tag, the installdox tool 
 43.1331 +# does not have to be run to correct the links. 
 43.1332 +# Note that each tag file must have a unique name 
 43.1333 +# (where the name does NOT include the path) 
 43.1334 +# If a tag file is not located in the directory in which doxygen 
 43.1335 +# is run, you must also specify the path to the tagfile here.
 43.1336 +
 43.1337 +TAGFILES               = 
 43.1338 +
 43.1339 +# When a file name is specified after GENERATE_TAGFILE, doxygen will create 
 43.1340 +# a tag file that is based on the input files it reads.
 43.1341 +
 43.1342 +GENERATE_TAGFILE       = ./SDL.tag
 43.1343 +
 43.1344 +# If the ALLEXTERNALS tag is set to YES all external classes will be listed 
 43.1345 +# in the class index. If set to NO only the inherited external classes 
 43.1346 +# will be listed.
 43.1347 +
 43.1348 +ALLEXTERNALS           = NO
 43.1349 +
 43.1350 +# If the EXTERNAL_GROUPS tag is set to YES all external groups will be listed 
 43.1351 +# in the modules index. If set to NO, only the current project's groups will 
 43.1352 +# be listed.
 43.1353 +
 43.1354 +EXTERNAL_GROUPS        = YES
 43.1355 +
 43.1356 +# The PERL_PATH should be the absolute path and name of the perl script 
 43.1357 +# interpreter (i.e. the result of `which perl').
 43.1358 +
 43.1359 +PERL_PATH              = c:\Perl\bin\perl.exe
 43.1360 +
 43.1361 +#---------------------------------------------------------------------------
 43.1362 +# Configuration options related to the dot tool   
 43.1363 +#---------------------------------------------------------------------------
 43.1364 +
 43.1365 +# If the CLASS_DIAGRAMS tag is set to YES (the default) Doxygen will 
 43.1366 +# generate a inheritance diagram (in HTML, RTF and LaTeX) for classes with base 
 43.1367 +# or super classes. Setting the tag to NO turns the diagrams off. Note that 
 43.1368 +# this option is superseded by the HAVE_DOT option below. This is only a 
 43.1369 +# fallback. It is recommended to install and use dot, since it yields more 
 43.1370 +# powerful graphs.
 43.1371 +
 43.1372 +CLASS_DIAGRAMS         = YES
 43.1373 +
 43.1374 +# You can define message sequence charts within doxygen comments using the \msc 
 43.1375 +# command. Doxygen will then run the mscgen tool (see 
 43.1376 +# http://www.mcternan.me.uk/mscgen/) to produce the chart and insert it in the 
 43.1377 +# documentation. The MSCGEN_PATH tag allows you to specify the directory where 
 43.1378 +# the mscgen tool resides. If left empty the tool is assumed to be found in the 
 43.1379 +# default search path.
 43.1380 +
 43.1381 +MSCGEN_PATH            = 
 43.1382 +
 43.1383 +# If set to YES, the inheritance and collaboration graphs will hide 
 43.1384 +# inheritance and usage relations if the target is undocumented 
 43.1385 +# or is not a class.
 43.1386 +
 43.1387 +HIDE_UNDOC_RELATIONS   = YES
 43.1388 +
 43.1389 +# If you set the HAVE_DOT tag to YES then doxygen will assume the dot tool is 
 43.1390 +# available from the path. This tool is part of Graphviz, a graph visualization 
 43.1391 +# toolkit from AT&T and Lucent Bell Labs. The other options in this section 
 43.1392 +# have no effect if this option is set to NO (the default)
 43.1393 +
 43.1394 +HAVE_DOT               = YES
 43.1395 +
 43.1396 +# By default doxygen will write a font called FreeSans.ttf to the output 
 43.1397 +# directory and reference it in all dot files that doxygen generates. This 
 43.1398 +# font does not include all possible unicode characters however, so when you need 
 43.1399 +# these (or just want a differently looking font) you can specify the font name 
 43.1400 +# using DOT_FONTNAME. You need need to make sure dot is able to find the font, 
 43.1401 +# which can be done by putting it in a standard location or by setting the 
 43.1402 +# DOTFONTPATH environment variable or by setting DOT_FONTPATH to the directory 
 43.1403 +# containing the font.
 43.1404 +
 43.1405 +DOT_FONTNAME           = FreeSans
 43.1406 +
 43.1407 +# The DOT_FONTSIZE tag can be used to set the size of the font of dot graphs. 
 43.1408 +# The default size is 10pt.
 43.1409 +
 43.1410 +DOT_FONTSIZE           = 10
 43.1411 +
 43.1412 +# By default doxygen will tell dot to use the output directory to look for the 
 43.1413 +# FreeSans.ttf font (which doxygen will put there itself). If you specify a 
 43.1414 +# different font using DOT_FONTNAME you can set the path where dot 
 43.1415 +# can find it using this tag.
 43.1416 +
 43.1417 +DOT_FONTPATH           = 
 43.1418 +
 43.1419 +# If the CLASS_GRAPH and HAVE_DOT tags are set to YES then doxygen 
 43.1420 +# will generate a graph for each documented class showing the direct and 
 43.1421 +# indirect inheritance relations. Setting this tag to YES will force the 
 43.1422 +# the CLASS_DIAGRAMS tag to NO.
 43.1423 +
 43.1424 +CLASS_GRAPH            = YES
 43.1425 +
 43.1426 +# If the COLLABORATION_GRAPH and HAVE_DOT tags are set to YES then doxygen 
 43.1427 +# will generate a graph for each documented class showing the direct and 
 43.1428 +# indirect implementation dependencies (inheritance, containment, and 
 43.1429 +# class references variables) of the class with other documented classes.
 43.1430 +
 43.1431 +COLLABORATION_GRAPH    = YES
 43.1432 +
 43.1433 +# If the GROUP_GRAPHS and HAVE_DOT tags are set to YES then doxygen 
 43.1434 +# will generate a graph for groups, showing the direct groups dependencies
 43.1435 +
 43.1436 +GROUP_GRAPHS           = YES
 43.1437 +
 43.1438 +# If the UML_LOOK tag is set to YES doxygen will generate inheritance and 
 43.1439 +# collaboration diagrams in a style similar to the OMG's Unified Modeling 
 43.1440 +# Language.
 43.1441 +
 43.1442 +UML_LOOK               = NO
 43.1443 +
 43.1444 +# If set to YES, the inheritance and collaboration graphs will show the 
 43.1445 +# relations between templates and their instances.
 43.1446 +
 43.1447 +TEMPLATE_RELATIONS     = YES
 43.1448 +
 43.1449 +# If the ENABLE_PREPROCESSING, SEARCH_INCLUDES, INCLUDE_GRAPH, and HAVE_DOT 
 43.1450 +# tags are set to YES then doxygen will generate a graph for each documented 
 43.1451 +# file showing the direct and indirect include dependencies of the file with 
 43.1452 +# other documented files.
 43.1453 +
 43.1454 +INCLUDE_GRAPH          = YES
 43.1455 +
 43.1456 +# If the ENABLE_PREPROCESSING, SEARCH_INCLUDES, INCLUDED_BY_GRAPH, and 
 43.1457 +# HAVE_DOT tags are set to YES then doxygen will generate a graph for each 
 43.1458 +# documented header file showing the documented files that directly or 
 43.1459 +# indirectly include this file.
 43.1460 +
 43.1461 +INCLUDED_BY_GRAPH      = YES
 43.1462 +
 43.1463 +# If the CALL_GRAPH and HAVE_DOT options are set to YES then 
 43.1464 +# doxygen will generate a call dependency graph for every global function 
 43.1465 +# or class method. Note that enabling this option will significantly increase 
 43.1466 +# the time of a run. So in most cases it will be better to enable call graphs 
 43.1467 +# for selected functions only using the \callgraph command.
 43.1468 +
 43.1469 +CALL_GRAPH             = NO
 43.1470 +
 43.1471 +# If the CALLER_GRAPH and HAVE_DOT tags are set to YES then 
 43.1472 +# doxygen will generate a caller dependency graph for every global function 
 43.1473 +# or class method. Note that enabling this option will significantly increase 
 43.1474 +# the time of a run. So in most cases it will be better to enable caller 
 43.1475 +# graphs for selected functions only using the \callergraph command.
 43.1476 +
 43.1477 +CALLER_GRAPH           = NO
 43.1478 +
 43.1479 +# If the GRAPHICAL_HIERARCHY and HAVE_DOT tags are set to YES then doxygen 
 43.1480 +# will graphical hierarchy of all classes instead of a textual one.
 43.1481 +
 43.1482 +GRAPHICAL_HIERARCHY    = YES
 43.1483 +
 43.1484 +# If the DIRECTORY_GRAPH, SHOW_DIRECTORIES and HAVE_DOT tags are set to YES 
 43.1485 +# then doxygen will show the dependencies a directory has on other directories 
 43.1486 +# in a graphical way. The dependency relations are determined by the #include 
 43.1487 +# relations between the files in the directories.
 43.1488 +
 43.1489 +DIRECTORY_GRAPH        = YES
 43.1490 +
 43.1491 +# The DOT_IMAGE_FORMAT tag can be used to set the image format of the images 
 43.1492 +# generated by dot. Possible values are png, jpg, or gif 
 43.1493 +# If left blank png will be used.
 43.1494 +
 43.1495 +DOT_IMAGE_FORMAT       = png
 43.1496 +
 43.1497 +# The tag DOT_PATH can be used to specify the path where the dot tool can be 
 43.1498 +# found. If left blank, it is assumed the dot tool can be found in the path.
 43.1499 +
 43.1500 +DOT_PATH               = 
 43.1501 +
 43.1502 +# The DOTFILE_DIRS tag can be used to specify one or more directories that 
 43.1503 +# contain dot files that are included in the documentation (see the 
 43.1504 +# \dotfile command).
 43.1505 +
 43.1506 +DOTFILE_DIRS           = 
 43.1507 +
 43.1508 +# The DOT_GRAPH_MAX_NODES tag can be used to set the maximum number of 
 43.1509 +# nodes that will be shown in the graph. If the number of nodes in a graph 
 43.1510 +# becomes larger than this value, doxygen will truncate the graph, which is 
 43.1511 +# visualized by representing a node as a red box. Note that doxygen if the 
 43.1512 +# number of direct children of the root node in a graph is already larger than 
 43.1513 +# DOT_GRAPH_MAX_NODES then the graph will not be shown at all. Also note 
 43.1514 +# that the size of a graph can be further restricted by MAX_DOT_GRAPH_DEPTH.
 43.1515 +
 43.1516 +DOT_GRAPH_MAX_NODES    = 50
 43.1517 +
 43.1518 +# The MAX_DOT_GRAPH_DEPTH tag can be used to set the maximum depth of the 
 43.1519 +# graphs generated by dot. A depth value of 3 means that only nodes reachable 
 43.1520 +# from the root by following a path via at most 3 edges will be shown. Nodes 
 43.1521 +# that lay further from the root node will be omitted. Note that setting this 
 43.1522 +# option to 1 or 2 may greatly reduce the computation time needed for large 
 43.1523 +# code bases. Also note that the size of a graph can be further restricted by 
 43.1524 +# DOT_GRAPH_MAX_NODES. Using a depth of 0 means no depth restriction.
 43.1525 +
 43.1526 +MAX_DOT_GRAPH_DEPTH    = 2
 43.1527 +
 43.1528 +# Set the DOT_TRANSPARENT tag to YES to generate images with a transparent 
 43.1529 +# background. This is disabled by default, because dot on Windows does not 
 43.1530 +# seem to support this out of the box. Warning: Depending on the platform used, 
 43.1531 +# enabling this option may lead to badly anti-aliased labels on the edges of 
 43.1532 +# a graph (i.e. they become hard to read).
 43.1533 +
 43.1534 +DOT_TRANSPARENT        = NO
 43.1535 +
 43.1536 +# Set the DOT_MULTI_TARGETS tag to YES allow dot to generate multiple output 
 43.1537 +# files in one run (i.e. multiple -o and -T options on the command line). This 
 43.1538 +# makes dot run faster, but since only newer versions of dot (>1.8.10) 
 43.1539 +# support this, this feature is disabled by default.
 43.1540 +
 43.1541 +DOT_MULTI_TARGETS      = YES
 43.1542 +
 43.1543 +# If the GENERATE_LEGEND tag is set to YES (the default) Doxygen will 
 43.1544 +# generate a legend page explaining the meaning of the various boxes and 
 43.1545 +# arrows in the dot generated graphs.
 43.1546 +
 43.1547 +GENERATE_LEGEND        = YES
 43.1548 +
 43.1549 +# If the DOT_CLEANUP tag is set to YES (the default) Doxygen will 
 43.1550 +# remove the intermediate dot files that are used to generate 
 43.1551 +# the various graphs.
 43.1552 +
 43.1553 +DOT_CLEANUP            = YES
 43.1554 +
 43.1555 +#---------------------------------------------------------------------------
 43.1556 +# Options related to the search engine
 43.1557 +#---------------------------------------------------------------------------
 43.1558 +
 43.1559 +# The SEARCHENGINE tag specifies whether or not a search engine should be 
 43.1560 +# used. If set to NO the values of all tags below this one will be ignored.
 43.1561 +
 43.1562 +SEARCHENGINE           = NO
    44.1 --- a/include/SDL.h	Mon Jul 28 10:54:25 2014 -0400
    44.2 +++ b/include/SDL.h	Tue Jul 29 09:20:12 2014 -0300
    44.3 @@ -25,41 +25,6 @@
    44.4   *  Main include header for the SDL library
    44.5   */
    44.6  
    44.7 -/**
    44.8 - *  \mainpage Simple DirectMedia Layer (SDL)
    44.9 - *
   44.10 - *  http://www.libsdl.org/
   44.11 - *
   44.12 - *  \section intro_sec Introduction
   44.13 - *
   44.14 - *  Simple DirectMedia Layer is a cross-platform development library designed
   44.15 - *  to provide low level access to audio, keyboard, mouse, joystick, and
   44.16 - *  graphics hardware via OpenGL and Direct3D. It is used by video playback
   44.17 - *  software, emulators, and popular games including Valve's award winning
   44.18 - *  catalog and many Humble Bundle games.
   44.19 - *
   44.20 - *  SDL officially supports Windows, Mac OS X, Linux, iOS, and Android.
   44.21 - *  Support for other platforms may be found in the source code.
   44.22 - *
   44.23 - *  SDL is written in C, works natively with C++, and there are bindings 
   44.24 - *  available for several other languages, including C# and Python.
   44.25 - *
   44.26 - *  This library is distributed under the zlib license, which can be found
   44.27 - *  in the file "COPYING.txt".
   44.28 - *
   44.29 - *  The best way to learn how to use SDL is to check out the header files in
   44.30 - *  the "include" subdirectory and the programs in the "test" subdirectory.
   44.31 - *  The header files and test programs are well commented and always up to date.
   44.32 - *  More documentation and FAQs are available online at:
   44.33 - *      http://wiki.libsdl.org/
   44.34 - *
   44.35 - *  If you need help with the library, or just want to discuss SDL related
   44.36 - *  issues, you can join the developers mailing list:
   44.37 - *      http://www.libsdl.org/mailing-list.php
   44.38 - *
   44.39 - *  Enjoy!
   44.40 - *      Sam Lantinga                (slouken@libsdl.org)
   44.41 - */
   44.42  
   44.43  #ifndef _SDL_H
   44.44  #define _SDL_H
    45.1 --- a/include/doxyfile	Mon Jul 28 10:54:25 2014 -0400
    45.2 +++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
    45.3 @@ -1,1555 +0,0 @@
    45.4 -# Doxyfile 1.5.9
    45.5 -
    45.6 -# This file describes the settings to be used by the documentation system
    45.7 -# doxygen (www.doxygen.org) for a project
    45.8 -#
    45.9 -# All text after a hash (#) is considered a comment and will be ignored
   45.10 -# The format is:
   45.11 -#       TAG = value [value, ...]
   45.12 -# For lists items can also be appended using:
   45.13 -#       TAG += value [value, ...]
   45.14 -# Values that contain spaces should be placed between quotes (" ")
   45.15 -
   45.16 -#---------------------------------------------------------------------------
   45.17 -# Project related configuration options
   45.18 -#---------------------------------------------------------------------------
   45.19 -
   45.20 -# This tag specifies the encoding used for all characters in the config file 
   45.21 -# that follow. The default is UTF-8 which is also the encoding used for all 
   45.22 -# text before the first occurrence of this tag. Doxygen uses libiconv (or the 
   45.23 -# iconv built into libc) for the transcoding. See 
   45.24 -# http://www.gnu.org/software/libiconv for the list of possible encodings.
   45.25 -
   45.26 -DOXYFILE_ENCODING      = UTF-8
   45.27 -
   45.28 -# The PROJECT_NAME tag is a single word (or a sequence of words surrounded 
   45.29 -# by quotes) that should identify the project.
   45.30 -
   45.31 -PROJECT_NAME           = SDL
   45.32 -
   45.33 -# The PROJECT_NUMBER tag can be used to enter a project or revision number. 
   45.34 -# This could be handy for archiving the generated documentation or 
   45.35 -# if some version control system is used.
   45.36 -
   45.37 -PROJECT_NUMBER         = 2.0.0
   45.38 -
   45.39 -# The OUTPUT_DIRECTORY tag is used to specify the (relative or absolute) 
   45.40 -# base path where the generated documentation will be put. 
   45.41 -# If a relative path is entered, it will be relative to the location 
   45.42 -# where doxygen was started. If left blank the current directory will be used.
   45.43 -
   45.44 -OUTPUT_DIRECTORY       = .
   45.45 -
   45.46 -# If the CREATE_SUBDIRS tag is set to YES, then doxygen will create 
   45.47 -# 4096 sub-directories (in 2 levels) under the output directory of each output 
   45.48 -# format and will distribute the generated files over these directories. 
   45.49 -# Enabling this option can be useful when feeding doxygen a huge amount of 
   45.50 -# source files, where putting all generated files in the same directory would 
   45.51 -# otherwise cause performance problems for the file system.
   45.52 -
   45.53 -CREATE_SUBDIRS         = YES
   45.54 -
   45.55 -# The OUTPUT_LANGUAGE tag is used to specify the language in which all 
   45.56 -# documentation generated by doxygen is written. Doxygen will use this 
   45.57 -# information to generate all constant output in the proper language. 
   45.58 -# The default language is English, other supported languages are: 
   45.59 -# Afrikaans, Arabic, Brazilian, Catalan, Chinese, Chinese-Traditional, 
   45.60 -# Croatian, Czech, Danish, Dutch, Esperanto, Farsi, Finnish, French, German, 
   45.61 -# Greek, Hungarian, Italian, Japanese, Japanese-en (Japanese with English 
   45.62 -# messages), Korean, Korean-en, Lithuanian, Norwegian, Macedonian, Persian, 
   45.63 -# Polish, Portuguese, Romanian, Russian, Serbian, Serbian-Cyrilic, Slovak, 
   45.64 -# Slovene, Spanish, Swedish, Ukrainian, and Vietnamese.
   45.65 -
   45.66 -OUTPUT_LANGUAGE        = English
   45.67 -
   45.68 -# If the BRIEF_MEMBER_DESC tag is set to YES (the default) Doxygen will 
   45.69 -# include brief member descriptions after the members that are listed in 
   45.70 -# the file and class documentation (similar to JavaDoc). 
   45.71 -# Set to NO to disable this.
   45.72 -
   45.73 -BRIEF_MEMBER_DESC      = YES
   45.74 -
   45.75 -# If the REPEAT_BRIEF tag is set to YES (the default) Doxygen will prepend 
   45.76 -# the brief description of a member or function before the detailed description. 
   45.77 -# Note: if both HIDE_UNDOC_MEMBERS and BRIEF_MEMBER_DESC are set to NO, the 
   45.78 -# brief descriptions will be completely suppressed.
   45.79 -
   45.80 -REPEAT_BRIEF           = YES
   45.81 -
   45.82 -# This tag implements a quasi-intelligent brief description abbreviator 
   45.83 -# that is used to form the text in various listings. Each string 
   45.84 -# in this list, if found as the leading text of the brief description, will be 
   45.85 -# stripped from the text and the result after processing the whole list, is 
   45.86 -# used as the annotated text. Otherwise, the brief description is used as-is. 
   45.87 -# If left blank, the following values are used ("$name" is automatically 
   45.88 -# replaced with the name of the entity): "The $name class" "The $name widget" 
   45.89 -# "The $name file" "is" "provides" "specifies" "contains" 
   45.90 -# "represents" "a" "an" "the"
   45.91 -
   45.92 -ABBREVIATE_BRIEF       = "The $name class" \
   45.93 -                         "The $name widget" \
   45.94 -                         "The $name file" \
   45.95 -                         is \
   45.96 -                         provides \
   45.97 -                         specifies \
   45.98 -                         contains \
   45.99 -                         represents \
  45.100 -                         a \
  45.101 -                         an \
  45.102 -                         the
  45.103 -
  45.104 -# If the ALWAYS_DETAILED_SEC and REPEAT_BRIEF tags are both set to YES then 
  45.105 -# Doxygen will generate a detailed section even if there is only a brief 
  45.106 -# description.
  45.107 -
  45.108 -ALWAYS_DETAILED_SEC    = YES
  45.109 -
  45.110 -# If the INLINE_INHERITED_MEMB tag is set to YES, doxygen will show all 
  45.111 -# inherited members of a class in the documentation of that class as if those 
  45.112 -# members were ordinary class members. Constructors, destructors and assignment 
  45.113 -# operators of the base classes will not be shown.
  45.114 -
  45.115 -INLINE_INHERITED_MEMB  = NO
  45.116 -
  45.117 -# If the FULL_PATH_NAMES tag is set to YES then Doxygen will prepend the full 
  45.118 -# path before files name in the file list and in the header files. If set 
  45.119 -# to NO the shortest path that makes the file name unique will be used.
  45.120 -
  45.121 -FULL_PATH_NAMES        = YES
  45.122 -
  45.123 -# If the FULL_PATH_NAMES tag is set to YES then the STRIP_FROM_PATH tag 
  45.124 -# can be used to strip a user-defined part of the path. Stripping is 
  45.125 -# only done if one of the specified strings matches the left-hand part of 
  45.126 -# the path. The tag can be used to show relative paths in the file list. 
  45.127 -# If left blank the directory from which doxygen is run is used as the 
  45.128 -# path to strip.
  45.129 -
  45.130 -STRIP_FROM_PATH        =
  45.131 -
  45.132 -# The STRIP_FROM_INC_PATH tag can be used to strip a user-defined part of 
  45.133 -# the path mentioned in the documentation of a class, which tells 
  45.134 -# the reader which header file to include in order to use a class. 
  45.135 -# If left blank only the name of the header file containing the class 
  45.136 -# definition is used. Otherwise one should specify the include paths that 
  45.137 -# are normally passed to the compiler using the -I flag.
  45.138 -
  45.139 -STRIP_FROM_INC_PATH    = 
  45.140 -
  45.141 -# If the SHORT_NAMES tag is set to YES, doxygen will generate much shorter 
  45.142 -# (but less readable) file names. This can be useful is your file systems 
  45.143 -# doesn't support long names like on DOS, Mac, or CD-ROM.
  45.144 -
  45.145 -SHORT_NAMES            = NO
  45.146 -
  45.147 -# If the JAVADOC_AUTOBRIEF tag is set to YES then Doxygen 
  45.148 -# will interpret the first line (until the first dot) of a JavaDoc-style 
  45.149 -# comment as the brief description. If set to NO, the JavaDoc 
  45.150 -# comments will behave just like regular Qt-style comments 
  45.151 -# (thus requiring an explicit @brief command for a brief description.)
  45.152 -
  45.153 -JAVADOC_AUTOBRIEF      = NO
  45.154 -
  45.155 -# If the QT_AUTOBRIEF tag is set to YES then Doxygen will 
  45.156 -# interpret the first line (until the first dot) of a Qt-style 
  45.157 -# comment as the brief description. If set to NO, the comments 
  45.158 -# will behave just like regular Qt-style comments (thus requiring 
  45.159 -# an explicit \brief command for a brief description.)
  45.160 -
  45.161 -QT_AUTOBRIEF           = NO
  45.162 -
  45.163 -# The MULTILINE_CPP_IS_BRIEF tag can be set to YES to make Doxygen 
  45.164 -# treat a multi-line C++ special comment block (i.e. a block of //! or /// 
  45.165 -# comments) as a brief description. This used to be the default behaviour. 
  45.166 -# The new default is to treat a multi-line C++ comment block as a detailed 
  45.167 -# description. Set this tag to YES if you prefer the old behaviour instead.
  45.168 -
  45.169 -MULTILINE_CPP_IS_BRIEF = NO
  45.170 -
  45.171 -# If the INHERIT_DOCS tag is set to YES (the default) then an undocumented 
  45.172 -# member inherits the documentation from any documented member that it 
  45.173 -# re-implements.
  45.174 -
  45.175 -INHERIT_DOCS           = YES
  45.176 -
  45.177 -# If the SEPARATE_MEMBER_PAGES tag is set to YES, then doxygen will produce 
  45.178 -# a new page for each member. If set to NO, the documentation of a member will 
  45.179 -# be part of the file/class/namespace that contains it.
  45.180 -
  45.181 -SEPARATE_MEMBER_PAGES  = NO
  45.182 -
  45.183 -# The TAB_SIZE tag can be used to set the number of spaces in a tab. 
  45.184 -# Doxygen uses this value to replace tabs by spaces in code fragments.
  45.185 -
  45.186 -TAB_SIZE               = 8
  45.187 -
  45.188 -# This tag can be used to specify a number of aliases that acts 
  45.189 -# as commands in the documentation. An alias has the form "name=value". 
  45.190 -# For example adding "sideeffect=\par Side Effects:\n" will allow you to 
  45.191 -# put the command \sideeffect (or @sideeffect) in the documentation, which 
  45.192 -# will result in a user-defined paragraph with heading "Side Effects:". 
  45.193 -# You can put \n's in the value part of an alias to insert newlines.
  45.194 -
  45.195 -ALIASES                = "defined=\"\def\"" \
  45.196 -                         "discussion=\"\par Discussion:\n\""
  45.197 -
  45.198 -# Set the OPTIMIZE_OUTPUT_FOR_C tag to YES if your project consists of C 
  45.199 -# sources only. Doxygen will then generate output that is more tailored for C. 
  45.200 -# For instance, some of the names that are used will be different. The list 
  45.201 -# of all members will be omitted, etc.
  45.202 -
  45.203 -OPTIMIZE_OUTPUT_FOR_C  = YES
  45.204 -
  45.205 -# Set the OPTIMIZE_OUTPUT_JAVA tag to YES if your project consists of Java 
  45.206 -# sources only. Doxygen will then generate output that is more tailored for 
  45.207 -# Java. For instance, namespaces will be presented as packages, qualified 
  45.208 -# scopes will look different, etc.
  45.209 -
  45.210 -OPTIMIZE_OUTPUT_JAVA   = NO
  45.211 -
  45.212 -# Set the OPTIMIZE_FOR_FORTRAN tag to YES if your project consists of Fortran 
  45.213 -# sources only. Doxygen will then generate output that is more tailored for 
  45.214 -# Fortran.
  45.215 -
  45.216 -OPTIMIZE_FOR_FORTRAN   = NO
  45.217 -
  45.218 -# Set the OPTIMIZE_OUTPUT_VHDL tag to YES if your project consists of VHDL 
  45.219 -# sources. Doxygen will then generate output that is tailored for 
  45.220 -# VHDL.
  45.221 -
  45.222 -OPTIMIZE_OUTPUT_VHDL   = NO
  45.223 -
  45.224 -# Doxygen selects the parser to use depending on the extension of the files it parses. 
  45.225 -# With this tag you can assign which parser to use for a given extension. 
  45.226 -# Doxygen has a built-in mapping, but you can override or extend it using this tag. 
  45.227 -# The format is ext=language, where ext is a file extension, and language is one of 
  45.228 -# the parsers supported by doxygen: IDL, Java, Javascript, C#, C, C++, D, PHP, 
  45.229 -# Objective-C, Python, Fortran, VHDL, C, C++. For instance to make doxygen treat 
  45.230 -# .inc files as Fortran files (default is PHP), and .f files as C (default is Fortran), 
  45.231 -# use: inc=Fortran f=C. Note that for custom extensions you also need to set
  45.232 -# FILE_PATTERNS otherwise the files are not read by doxygen.
  45.233 -
  45.234 -EXTENSION_MAPPING      = 
  45.235 -
  45.236 -# If you use STL classes (i.e. std::string, std::vector, etc.) but do not want 
  45.237 -# to include (a tag file for) the STL sources as input, then you should 
  45.238 -# set this tag to YES in order to let doxygen match functions declarations and 
  45.239 -# definitions whose arguments contain STL classes (e.g. func(std::string); v.s. 
  45.240 -# func(std::string) {}). This also make the inheritance and collaboration 
  45.241 -# diagrams that involve STL classes more complete and accurate.
  45.242 -
  45.243 -BUILTIN_STL_SUPPORT    = YES
  45.244 -
  45.245 -# If you use Microsoft's C++/CLI language, you should set this option to YES to 
  45.246 -# enable parsing support.
  45.247 -
  45.248 -CPP_CLI_SUPPORT        = NO
  45.249 -
  45.250 -# Set the SIP_SUPPORT tag to YES if your project consists of sip sources only. 
  45.251 -# Doxygen will parse them like normal C++ but will assume all classes use public 
  45.252 -# instead of private inheritance when no explicit protection keyword is present.
  45.253 -
  45.254 -SIP_SUPPORT            = NO
  45.255 -
  45.256 -# For Microsoft's IDL there are propget and propput attributes to indicate getter 
  45.257 -# and setter methods for a property. Setting this option to YES (the default) 
  45.258 -# will make doxygen to replace the get and set methods by a property in the 
  45.259 -# documentation. This will only work if the methods are indeed getting or 
  45.260 -# setting a simple type. If this is not the case, or you want to show the 
  45.261 -# methods anyway, you should set this option to NO.
  45.262 -
  45.263 -IDL_PROPERTY_SUPPORT   = YES
  45.264 -
  45.265 -# If member grouping is used in the documentation and the DISTRIBUTE_GROUP_DOC 
  45.266 -# tag is set to YES, then doxygen will reuse the documentation of the first 
  45.267 -# member in the group (if any) for the other members of the group. By default 
  45.268 -# all members of a group must be documented explicitly.
  45.269 -
  45.270 -DISTRIBUTE_GROUP_DOC   = NO
  45.271 -
  45.272 -# Set the SUBGROUPING tag to YES (the default) to allow class member groups of 
  45.273 -# the same type (for instance a group of public functions) to be put as a 
  45.274 -# subgroup of that type (e.g. under the Public Functions section). Set it to 
  45.275 -# NO to prevent subgrouping. Alternatively, this can be done per class using 
  45.276 -# the \nosubgrouping command.
  45.277 -
  45.278 -SUBGROUPING            = YES
  45.279 -
  45.280 -# When TYPEDEF_HIDES_STRUCT is enabled, a typedef of a struct, union, or enum 
  45.281 -# is documented as struct, union, or enum with the name of the typedef. So 
  45.282 -# typedef struct TypeS {} TypeT, will appear in the documentation as a struct 
  45.283 -# with name TypeT. When disabled the typedef will appear as a member of a file, 
  45.284 -# namespace, or class. And the struct will be named TypeS. This can typically 
  45.285 -# be useful for C code in case the coding convention dictates that all compound 
  45.286 -# types are typedef'ed and only the typedef is referenced, never the tag name.
  45.287 -
  45.288 -TYPEDEF_HIDES_STRUCT   = YES
  45.289 -
  45.290 -# The SYMBOL_CACHE_SIZE determines the size of the internal cache use to 
  45.291 -# determine which symbols to keep in memory and which to flush to disk. 
  45.292 -# When the cache is full, less often used symbols will be written to disk. 
  45.293 -# For small to medium size projects (<1000 input files) the default value is 
  45.294 -# probably good enough. For larger projects a too small cache size can cause 
  45.295 -# doxygen to be busy swapping symbols to and from disk most of the time 
  45.296 -# causing a significant performance penality. 
  45.297 -# If the system has enough physical memory increasing the cache will improve the 
  45.298 -# performance by keeping more symbols in memory. Note that the value works on 
  45.299 -# a logarithmic scale so increasing the size by one will rougly double the 
  45.300 -# memory usage. The cache size is given by this formula: 
  45.301 -# 2^(16+SYMBOL_CACHE_SIZE). The valid range is 0..9, the default is 0, 
  45.302 -# corresponding to a cache size of 2^16 = 65536 symbols
  45.303 -
  45.304 -SYMBOL_CACHE_SIZE      = 0
  45.305 -
  45.306 -#---------------------------------------------------------------------------
  45.307 -# Build related configuration options
  45.308 -#---------------------------------------------------------------------------
  45.309 -
  45.310 -# If the EXTRACT_ALL tag is set to YES doxygen will assume all entities in 
  45.311 -# documentation are documented, even if no documentation was available. 
  45.312 -# Private class members and static file members will be hidden unless 
  45.313 -# the EXTRACT_PRIVATE and EXTRACT_STATIC tags are set to YES
  45.314 -
  45.315 -EXTRACT_ALL            = YES
  45.316 -
  45.317 -# If the EXTRACT_PRIVATE tag is set to YES all private members of a class 
  45.318 -# will be included in the documentation.
  45.319 -
  45.320 -EXTRACT_PRIVATE        = YES
  45.321 -
  45.322 -# If the EXTRACT_STATIC tag is set to YES all static members of a file 
  45.323 -# will be included in the documentation.
  45.324 -
  45.325 -EXTRACT_STATIC         = YES
  45.326 -
  45.327 -# If the EXTRACT_LOCAL_CLASSES tag is set to YES classes (and structs) 
  45.328 -# defined locally in source files will be included in the documentation. 
  45.329 -# If set to NO only classes defined in header files are included.
  45.330 -
  45.331 -EXTRACT_LOCAL_CLASSES  = YES
  45.332 -
  45.333 -# This flag is only useful for Objective-C code. When set to YES local 
  45.334 -# methods, which are defined in the implementation section but not in 
  45.335 -# the interface are included in the documentation. 
  45.336 -# If set to NO (the default) only methods in the interface are included.
  45.337 -
  45.338 -EXTRACT_LOCAL_METHODS  = YES
  45.339 -
  45.340 -# If this flag is set to YES, the members of anonymous namespaces will be 
  45.341 -# extracted and appear in the documentation as a namespace called 
  45.342 -# 'anonymous_namespace{file}', where file will be replaced with the base 
  45.343 -# name of the file that contains the anonymous namespace. By default 
  45.344 -# anonymous namespace are hidden.
  45.345 -
  45.346 -EXTRACT_ANON_NSPACES   = YES
  45.347 -
  45.348 -# If the HIDE_UNDOC_MEMBERS tag is set to YES, Doxygen will hide all 
  45.349 -# undocumented members of documented classes, files or namespaces. 
  45.350 -# If set to NO (the default) these members will be included in the 
  45.351 -# various overviews, but no documentation section is generated. 
  45.352 -# This option has no effect if EXTRACT_ALL is enabled.
  45.353 -
  45.354 -HIDE_UNDOC_MEMBERS     = NO
  45.355 -
  45.356 -# If the HIDE_UNDOC_CLASSES tag is set to YES, Doxygen will hide all 
  45.357 -# undocumented classes that are normally visible in the class hierarchy. 
  45.358 -# If set to NO (the default) these classes will be included in the various 
  45.359 -# overviews. This option has no effect if EXTRACT_ALL is enabled.
  45.360 -
  45.361 -HIDE_UNDOC_CLASSES     = NO
  45.362 -
  45.363 -# If the HIDE_FRIEND_COMPOUNDS tag is set to YES, Doxygen will hide all 
  45.364 -# friend (class|struct|union) declarations. 
  45.365 -# If set to NO (the default) these declarations will be included in the 
  45.366 -# documentation.
  45.367 -
  45.368 -HIDE_FRIEND_COMPOUNDS  = NO
  45.369 -
  45.370 -# If the HIDE_IN_BODY_DOCS tag is set to YES, Doxygen will hide any 
  45.371 -# documentation blocks found inside the body of a function. 
  45.372 -# If set to NO (the default) these blocks will be appended to the 
  45.373 -# function's detailed documentation block.
  45.374 -
  45.375 -HIDE_IN_BODY_DOCS      = NO
  45.376 -
  45.377 -# The INTERNAL_DOCS tag determines if documentation 
  45.378 -# that is typed after a \internal command is included. If the tag is set 
  45.379 -# to NO (the default) then the documentation will be excluded. 
  45.380 -# Set it to YES to include the internal documentation.
  45.381 -
  45.382 -INTERNAL_DOCS          = YES
  45.383 -
  45.384 -# If the CASE_SENSE_NAMES tag is set to NO then Doxygen will only generate 
  45.385 -# file names in lower-case letters. If set to YES upper-case letters are also 
  45.386 -# allowed. This is useful if you have classes or files whose names only differ 
  45.387 -# in case and if your file system supports case sensitive file names. Windows 
  45.388 -# and Mac users are advised to set this option to NO.
  45.389 -
  45.390 -CASE_SENSE_NAMES       = NO
  45.391 -
  45.392 -# If the HIDE_SCOPE_NAMES tag is set to NO (the default) then Doxygen 
  45.393 -# will show members with their full class and namespace scopes in the 
  45.394 -# documentation. If set to YES the scope will be hidden.
  45.395 -
  45.396 -HIDE_SCOPE_NAMES       = NO
  45.397 -
  45.398 -# If the SHOW_INCLUDE_FILES tag is set to YES (the default) then Doxygen 
  45.399 -# will put a list of the files that are included by a file in the documentation 
  45.400 -# of that file.
  45.401 -
  45.402 -SHOW_INCLUDE_FILES     = YES
  45.403 -
  45.404 -# If the INLINE_INFO tag is set to YES (the default) then a tag [inline] 
  45.405 -# is inserted in the documentation for inline members.
  45.406 -
  45.407 -INLINE_INFO            = YES
  45.408 -
  45.409 -# If the SORT_MEMBER_DOCS tag is set to YES (the default) then doxygen 
  45.410 -# will sort the (detailed) documentation of file and class members 
  45.411 -# alphabetically by member name. If set to NO the members will appear in 
  45.412 -# declaration order.
  45.413 -
  45.414 -SORT_MEMBER_DOCS       = YES
  45.415 -
  45.416 -# If the SORT_BRIEF_DOCS tag is set to YES then doxygen will sort the 
  45.417 -# brief documentation of file, namespace and class members alphabetically 
  45.418 -# by member name. If set to NO (the default) the members will appear in 
  45.419 -# declaration order.
  45.420 -
  45.421 -SORT_BRIEF_DOCS        = NO
  45.422 -
  45.423 -# If the SORT_GROUP_NAMES tag is set to YES then doxygen will sort the 
  45.424 -# hierarchy of group names into alphabetical order. If set to NO (the default) 
  45.425 -# the group names will appear in their defined order.
  45.426 -
  45.427 -SORT_GROUP_NAMES       = NO
  45.428 -
  45.429 -# If the SORT_BY_SCOPE_NAME tag is set to YES, the class list will be 
  45.430 -# sorted by fully-qualified names, including namespaces. If set to 
  45.431 -# NO (the default), the class list will be sorted only by class name, 
  45.432 -# not including the namespace part. 
  45.433 -# Note: This option is not very useful if HIDE_SCOPE_NAMES is set to YES. 
  45.434 -# Note: This option applies only to the class list, not to the 
  45.435 -# alphabetical list.
  45.436 -
  45.437 -SORT_BY_SCOPE_NAME     = NO
  45.438 -
  45.439 -# The GENERATE_TODOLIST tag can be used to enable (YES) or 
  45.440 -# disable (NO) the todo list. This list is created by putting \todo 
  45.441 -# commands in the documentation.
  45.442 -
  45.443 -GENERATE_TODOLIST      = YES
  45.444 -
  45.445 -# The GENERATE_TESTLIST tag can be used to enable (YES) or 
  45.446 -# disable (NO) the test list. This list is created by putting \test 
  45.447 -# commands in the documentation.
  45.448 -
  45.449 -GENERATE_TESTLIST      = YES
  45.450 -
  45.451 -# The GENERATE_BUGLIST tag can be used to enable (YES) or 
  45.452 -# disable (NO) the bug list. This list is created by putting \bug 
  45.453 -# commands in the documentation.
  45.454 -
  45.455 -GENERATE_BUGLIST       = YES
  45.456 -
  45.457 -# The GENERATE_DEPRECATEDLIST tag can be used to enable (YES) or 
  45.458 -# disable (NO) the deprecated list. This list is created by putting 
  45.459 -# \deprecated commands in the documentation.
  45.460 -
  45.461 -GENERATE_DEPRECATEDLIST= YES
  45.462 -
  45.463 -# The ENABLED_SECTIONS tag can be used to enable conditional 
  45.464 -# documentation sections, marked by \if sectionname ... \endif.
  45.465 -
  45.466 -ENABLED_SECTIONS       = 
  45.467 -
  45.468 -# The MAX_INITIALIZER_LINES tag determines the maximum number of lines 
  45.469 -# the initial value of a variable or define consists of for it to appear in 
  45.470 -# the documentation. If the initializer consists of more lines than specified 
  45.471 -# here it will be hidden. Use a value of 0 to hide initializers completely. 
  45.472 -# The appearance of the initializer of individual variables and defines in the 
  45.473 -# documentation can be controlled using \showinitializer or \hideinitializer 
  45.474 -# command in the documentation regardless of this setting.
  45.475 -
  45.476 -MAX_INITIALIZER_LINES  = 30
  45.477 -
  45.478 -# If the sources in your project are distributed over multiple directories 
  45.479 -# then setting the SHOW_DIRECTORIES tag to YES will show the directory hierarchy 
  45.480 -# in the documentation. The default is NO.
  45.481 -
  45.482 -SHOW_DIRECTORIES       = YES
  45.483 -
  45.484 -# Set the SHOW_FILES tag to NO to disable the generation of the Files page. 
  45.485 -# This will remove the Files entry from the Quick Index and from the 
  45.486 -# Folder Tree View (if specified). The default is YES.
  45.487 -
  45.488 -SHOW_FILES             = YES
  45.489 -
  45.490 -# Set the SHOW_NAMESPACES tag to NO to disable the generation of the 
  45.491 -# Namespaces page.  This will remove the Namespaces entry from the Quick Index 
  45.492 -# and from the Folder Tree View (if specified). The default is YES.
  45.493 -
  45.494 -SHOW_NAMESPACES        = YES
  45.495 -
  45.496 -# The FILE_VERSION_FILTER tag can be used to specify a program or script that 
  45.497 -# doxygen should invoke to get the current version for each file (typically from 
  45.498 -# the version control system). Doxygen will invoke the program by executing (via 
  45.499 -# popen()) the command <command> <input-file>, where <command> is the value of 
  45.500 -# the FILE_VERSION_FILTER tag, and <input-file> is the name of an input file 
  45.501 -# provided by doxygen. Whatever the program writes to standard output 
  45.502 -# is used as the file version. See the manual for examples.
  45.503 -
  45.504 -FILE_VERSION_FILTER    = 
  45.505 -
  45.506 -# The LAYOUT_FILE tag can be used to specify a layout file which will be parsed by 
  45.507 -# doxygen. The layout file controls the global structure of the generated output files 
  45.508 -# in an output format independent way. The create the layout file that represents 
  45.509 -# doxygen's defaults, run doxygen with the -l option. You can optionally specify a 
  45.510 -# file name after the option, if omitted DoxygenLayout.xml will be used as the name 
  45.511 -# of the layout file.
  45.512 -
  45.513 -LAYOUT_FILE            = 
  45.514 -
  45.515 -#---------------------------------------------------------------------------
  45.516 -# configuration options related to warning and progress messages
  45.517 -#---------------------------------------------------------------------------
  45.518 -
  45.519 -# The QUIET tag can be used to turn on/off the messages that are generated 
  45.520 -# by doxygen. Possible values are YES and NO. If left blank NO is used.
  45.521 -
  45.522 -QUIET                  = NO
  45.523 -
  45.524 -# The WARNINGS tag can be used to turn on/off the warning messages that are 
  45.525 -# generated by doxygen. Possible values are YES and NO. If left blank 
  45.526 -# NO is used.
  45.527 -
  45.528 -WARNINGS               = YES
  45.529 -
  45.530 -# If WARN_IF_UNDOCUMENTED is set to YES, then doxygen will generate warnings 
  45.531 -# for undocumented members. If EXTRACT_ALL is set to YES then this flag will 
  45.532 -# automatically be disabled.
  45.533 -
  45.534 -WARN_IF_UNDOCUMENTED   = YES
  45.535 -
  45.536 -# If WARN_IF_DOC_ERROR is set to YES, doxygen will generate warnings for 
  45.537 -# potential errors in the documentation, such as not documenting some 
  45.538 -# parameters in a documented function, or documenting parameters that 
  45.539 -# don't exist or using markup commands wrongly.
  45.540 -
  45.541 -WARN_IF_DOC_ERROR      = YES
  45.542 -
  45.543 -# This WARN_NO_PARAMDOC option can be abled to get warnings for 
  45.544 -# functions that are documented, but have no documentation for their parameters 
  45.545 -# or return value. If set to NO (the default) doxygen will only warn about 
  45.546 -# wrong or incomplete parameter documentation, but not about the absence of 
  45.547 -# documentation.
  45.548 -
  45.549 -WARN_NO_PARAMDOC       = YES
  45.550 -
  45.551 -# The WARN_FORMAT tag determines the format of the warning messages that 
  45.552 -# doxygen can produce. The string should contain the $file, $line, and $text 
  45.553 -# tags, which will be replaced by the file and line number from which the 
  45.554 -# warning originated and the warning text. Optionally the format may contain 
  45.555 -# $version, which will be replaced by the version of the file (if it could 
  45.556 -# be obtained via FILE_VERSION_FILTER)
  45.557 -
  45.558 -WARN_FORMAT            = "$file:$line: $text"
  45.559 -
  45.560 -# The WARN_LOGFILE tag can be used to specify a file to which warning 
  45.561 -# and error messages should be written. If left blank the output is written 
  45.562 -# to stderr.
  45.563 -
  45.564 -WARN_LOGFILE           = ./doxygen_warn.txt
  45.565 -
  45.566 -#---------------------------------------------------------------------------
  45.567 -# configuration options related to the input files
  45.568 -#---------------------------------------------------------------------------
  45.569 -
  45.570 -# The INPUT tag can be used to specify the files and/or directories that contain 
  45.571 -# documented source files. You may enter file names like "myfile.cpp" or 
  45.572 -# directories like "/usr/src/myproject". Separate the files or directories 
  45.573 -# with spaces.
  45.574 -
  45.575 -INPUT                  = .
  45.576 -
  45.577 -# This tag can be used to specify the character encoding of the source files 
  45.578 -# that doxygen parses. Internally doxygen uses the UTF-8 encoding, which is 
  45.579 -# also the default input encoding. Doxygen uses libiconv (or the iconv built 
  45.580 -# into libc) for the transcoding. See http://www.gnu.org/software/libiconv for 
  45.581 -# the list of possible encodings.
  45.582 -
  45.583 -INPUT_ENCODING         = UTF-8
  45.584 -
  45.585 -# If the value of the INPUT tag contains directories, you can use the 
  45.586 -# FILE_PATTERNS tag to specify one or more wildcard pattern (like *.cpp 
  45.587 -# and *.h) to filter out the source-files in the directories. If left 
  45.588 -# blank the following patterns are tested: 
  45.589 -# *.c *.cc *.cxx *.cpp *.c++ *.java *.ii *.ixx *.ipp *.i++ *.inl *.h *.hh *.hxx 
  45.590 -# *.hpp *.h++ *.idl *.odl *.cs *.php *.php3 *.inc *.m *.mm *.py *.f90
  45.591 -
  45.592 -FILE_PATTERNS          = *.c \
  45.593 -                         *.cc \
  45.594 -                         *.cxx \
  45.595 -                         *.cpp \
  45.596 -                         *.c++ \
  45.597 -                         *.d \
  45.598 -                         *.java \
  45.599 -                         *.ii \
  45.600 -                         *.ixx \
  45.601 -                         *.ipp \
  45.602 -                         *.i++ \
  45.603 -                         *.inl \
  45.604 -                         *.h \
  45.605 -                         *.hh \
  45.606 -                         *.hxx \
  45.607 -                         *.hpp \
  45.608 -                         *.h++ \
  45.609 -                         *.idl \
  45.610 -                         *.odl \
  45.611 -                         *.cs \
  45.612 -                         *.php \
  45.613 -                         *.php3 \
  45.614 -                         *.inc \
  45.615 -                         *.m \
  45.616 -                         *.mm \
  45.617 -                         *.dox \
  45.618 -                         *.py \
  45.619 -                         *.f90 \
  45.620 -                         *.f \
  45.621 -                         *.vhd \
  45.622 -                         *.vhdl \
  45.623 -                         *.h.in \
  45.624 -                         *.h.default
  45.625 -
  45.626 -# The RECURSIVE tag can be used to turn specify whether or not subdirectories 
  45.627 -# should be searched for input files as well. Possible values are YES and NO. 
  45.628 -# If left blank NO is used.
  45.629 -
  45.630 -RECURSIVE              = YES
  45.631 -
  45.632 -# The EXCLUDE tag can be used to specify files and/or directories that should 
  45.633 -# excluded from the INPUT source files. This way you can easily exclude a 
  45.634 -# subdirectory from a directory tree whose root is specified with the INPUT tag.
  45.635 -
  45.636 -EXCLUDE                = ../doxy \
  45.637 -                         ../test \
  45.638 -                         ../Xcode \
  45.639 -                         ../VisualC \
  45.640 -                         ../VisualCE \
  45.641 -                         ../Xcode-iOS
  45.642 -
  45.643 -# The EXCLUDE_SYMLINKS tag can be used select whether or not files or 
  45.644 -# directories that are symbolic links (a Unix filesystem feature) are excluded 
  45.645 -# from the input.
  45.646 -
  45.647 -EXCLUDE_SYMLINKS       = NO
  45.648 -
  45.649 -# If the value of the INPUT tag contains directories, you can use the 
  45.650 -# EXCLUDE_PATTERNS tag to specify one or more wildcard patterns to exclude 
  45.651 -# certain files from those directories. Note that the wildcards are matched 
  45.652 -# against the file with absolute path, so to exclude all test directories 
  45.653 -# for example use the pattern */test/*
  45.654 -
  45.655 -EXCLUDE_PATTERNS       =
  45.656 -
  45.657 -# The EXCLUDE_SYMBOLS tag can be used to specify one or more symbol names 
  45.658 -# (namespaces, classes, functions, etc.) that should be excluded from the 
  45.659 -# output. The symbol name can be a fully qualified name, a word, or if the 
  45.660 -# wildcard * is used, a substring. Examples: ANamespace, AClass, 
  45.661 -# AClass::ANamespace, ANamespace::*Test
  45.662 -
  45.663 -EXCLUDE_SYMBOLS        = 
  45.664 -
  45.665 -# The EXAMPLE_PATH tag can be used to specify one or more files or 
  45.666 -# directories that contain example code fragments that are included (see 
  45.667 -# the \include command).
  45.668 -
  45.669 -EXAMPLE_PATH           =
  45.670 -
  45.671 -# If the value of the EXAMPLE_PATH tag contains directories, you can use the 
  45.672 -# EXAMPLE_PATTERNS tag to specify one or more wildcard pattern (like *.cpp 
  45.673 -# and *.h) to filter out the source-files in the directories. If left 
  45.674 -# blank all files are included.
  45.675 -
  45.676 -EXAMPLE_PATTERNS       = *
  45.677 -
  45.678 -# If the EXAMPLE_RECURSIVE tag is set to YES then subdirectories will be 
  45.679 -# searched for input files to be used with the \include or \dontinclude 
  45.680 -# commands irrespective of the value of the RECURSIVE tag. 
  45.681 -# Possible values are YES and NO. If left blank NO is used.
  45.682 -
  45.683 -EXAMPLE_RECURSIVE      = YES
  45.684 -
  45.685 -# The IMAGE_PATH tag can be used to specify one or more files or 
  45.686 -# directories that contain image that are included in the documentation (see 
  45.687 -# the \image command).
  45.688 -
  45.689 -IMAGE_PATH             = 
  45.690 -
  45.691 -# The INPUT_FILTER tag can be used to specify a program that doxygen should 
  45.692 -# invoke to filter for each input file. Doxygen will invoke the filter program 
  45.693 -# by executing (via popen()) the command <filter> <input-file>, where <filter> 
  45.694 -# is the value of the INPUT_FILTER tag, and <input-file> is the name of an 
  45.695 -# input file. Doxygen will then use the output that the filter program writes 
  45.696 -# to standard output.  If FILTER_PATTERNS is specified, this tag will be 
  45.697 -# ignored.
  45.698 -
  45.699 -INPUT_FILTER           = 
  45.700 -
  45.701 -# The FILTER_PATTERNS tag can be used to specify filters on a per file pattern 
  45.702 -# basis.  Doxygen will compare the file name with each pattern and apply the 
  45.703 -# filter if there is a match.  The filters are a list of the form: 
  45.704 -# pattern=filter (like *.cpp=my_cpp_filter). See INPUT_FILTER for further 
  45.705 -# info on how filters are used. If FILTER_PATTERNS is empty, INPUT_FILTER 
  45.706 -# is applied to all files.
  45.707 -
  45.708 -FILTER_PATTERNS        = 
  45.709 -
  45.710 -# If the FILTER_SOURCE_FILES tag is set to YES, the input filter (if set using 
  45.711 -# INPUT_FILTER) will be used to filter the input files when producing source 
  45.712 -# files to browse (i.e. when SOURCE_BROWSER is set to YES).
  45.713 -
  45.714 -FILTER_SOURCE_FILES    = NO
  45.715 -
  45.716 -#---------------------------------------------------------------------------
  45.717 -# configuration options related to source browsing
  45.718 -#---------------------------------------------------------------------------
  45.719 -
  45.720 -# If the SOURCE_BROWSER tag is set to YES then a list of source files will 
  45.721 -# be generated. Documented entities will be cross-referenced with these sources. 
  45.722 -# Note: To get rid of all source code in the generated output, make sure also 
  45.723 -# VERBATIM_HEADERS is set to NO.
  45.724 -
  45.725 -SOURCE_BROWSER         = YES
  45.726 -
  45.727 -# Setting the INLINE_SOURCES tag to YES will include the body 
  45.728 -# of functions and classes directly in the documentation.
  45.729 -
  45.730 -INLINE_SOURCES         = YES
  45.731 -
  45.732 -# Setting the STRIP_CODE_COMMENTS tag to YES (the default) will instruct 
  45.733 -# doxygen to hide any special comment blocks from generated source code 
  45.734 -# fragments. Normal C and C++ comments will always remain visible.
  45.735 -
  45.736 -STRIP_CODE_COMMENTS    = NO
  45.737 -
  45.738 -# If the REFERENCED_BY_RELATION tag is set to YES 
  45.739 -# then for each documented function all documented 
  45.740 -# functions referencing it will be listed.
  45.741 -
  45.742 -REFERENCED_BY_RELATION = YES
  45.743 -
  45.744 -# If the REFERENCES_RELATION tag is set to YES 
  45.745 -# then for each documented function all documented entities 
  45.746 -# called/used by that function will be listed.
  45.747 -
  45.748 -REFERENCES_RELATION    = YES
  45.749 -
  45.750 -# If the REFERENCES_LINK_SOURCE tag is set to YES (the default) 
  45.751 -# and SOURCE_BROWSER tag is set to YES, then the hyperlinks from 
  45.752 -# functions in REFERENCES_RELATION and REFERENCED_BY_RELATION lists will 
  45.753 -# link to the source code.  Otherwise they will link to the documentation.
  45.754 -
  45.755 -REFERENCES_LINK_SOURCE = YES
  45.756 -
  45.757 -# If the USE_HTAGS tag is set to YES then the references to source code 
  45.758 -# will point to the HTML generated by the htags(1) tool instead of doxygen 
  45.759 -# built-in source browser. The htags tool is part of GNU's global source 
  45.760 -# tagging system (see http://www.gnu.org/software/global/global.html). You 
  45.761 -# will need version 4.8.6 or higher.
  45.762 -
  45.763 -USE_HTAGS              = NO
  45.764 -
  45.765 -# If the VERBATIM_HEADERS tag is set to YES (the default) then Doxygen 
  45.766 -# will generate a verbatim copy of the header file for each class for 
  45.767 -# which an include is specified. Set to NO to disable this.
  45.768 -
  45.769 -VERBATIM_HEADERS       = YES
  45.770 -
  45.771 -#---------------------------------------------------------------------------
  45.772 -# configuration options related to the alphabetical class index
  45.773 -#---------------------------------------------------------------------------
  45.774 -
  45.775 -# If the ALPHABETICAL_INDEX tag is set to YES, an alphabetical index 
  45.776 -# of all compounds will be generated. Enable this if the project 
  45.777 -# contains a lot of classes, structs, unions or interfaces.
  45.778 -
  45.779 -ALPHABETICAL_INDEX     = YES
  45.780 -
  45.781 -# If the alphabetical index is enabled (see ALPHABETICAL_INDEX) then 
  45.782 -# the COLS_IN_ALPHA_INDEX tag can be used to specify the number of columns 
  45.783 -# in which this list will be split (can be a number in the range [1..20])
  45.784 -
  45.785 -COLS_IN_ALPHA_INDEX    = 5
  45.786 -
  45.787 -# In case all classes in a project start with a common prefix, all 
  45.788 -# classes will be put under the same header in the alphabetical index. 
  45.789 -# The IGNORE_PREFIX tag can be used to specify one or more prefixes that 
  45.790 -# should be ignored while generating the index headers.
  45.791 -
  45.792 -IGNORE_PREFIX          = SDL_ \
  45.793 -                         SDL
  45.794 -
  45.795 -#---------------------------------------------------------------------------
  45.796 -# configuration options related to the HTML output
  45.797 -#---------------------------------------------------------------------------
  45.798 -
  45.799 -# If the GENERATE_HTML tag is set to YES (the default) Doxygen will 
  45.800 -# generate HTML output.
  45.801 -
  45.802 -GENERATE_HTML          = YES
  45.803 -
  45.804 -# The HTML_OUTPUT tag is used to specify where the HTML docs will be put. 
  45.805 -# If a relative path is entered the value of OUTPUT_DIRECTORY will be 
  45.806 -# put in front of it. If left blank `html' will be used as the default path.
  45.807 -
  45.808 -HTML_OUTPUT            = html
  45.809 -
  45.810 -# The HTML_FILE_EXTENSION tag can be used to specify the file extension for 
  45.811 -# each generated HTML page (for example: .htm,.php,.asp). If it is left blank 
  45.812 -# doxygen will generate files with .html extension.
  45.813 -
  45.814 -HTML_FILE_EXTENSION    = .html
  45.815 -
  45.816 -# The HTML_HEADER tag can be used to specify a personal HTML header for 
  45.817 -# each generated HTML page. If it is left blank doxygen will generate a 
  45.818 -# standard header.
  45.819 -
  45.820 -HTML_HEADER            = 
  45.821 -
  45.822 -# The HTML_FOOTER tag can be used to specify a personal HTML footer for 
  45.823 -# each generated HTML page. If it is left blank doxygen will generate a 
  45.824 -# standard footer.
  45.825 -
  45.826 -HTML_FOOTER            = 
  45.827 -
  45.828 -# The HTML_STYLESHEET tag can be used to specify a user-defined cascading 
  45.829 -# style sheet that is used by each HTML page. It can be used to 
  45.830 -# fine-tune the look of the HTML output. If the tag is left blank doxygen 
  45.831 -# will generate a default style sheet. Note that doxygen will try to copy 
  45.832 -# the style sheet file to the HTML output directory, so don't put your own 
  45.833 -# stylesheet in the HTML output directory as well, or it will be erased!
  45.834 -
  45.835 -HTML_STYLESHEET        = 
  45.836 -
  45.837 -# If the HTML_ALIGN_MEMBERS tag is set to YES, the members of classes, 
  45.838 -# files or namespaces will be aligned in HTML using tables. If set to 
  45.839 -# NO a bullet list will be used.
  45.840 -
  45.841 -HTML_ALIGN_MEMBERS     = YES
  45.842 -
  45.843 -# If the HTML_DYNAMIC_SECTIONS tag is set to YES then the generated HTML 
  45.844 -# documentation will contain sections that can be hidden and shown after the 
  45.845 -# page has loaded. For this to work a browser that supports 
  45.846 -# JavaScript and DHTML is required (for instance Mozilla 1.0+, Firefox 
  45.847 -# Netscape 6.0+, Internet explorer 5.0+, Konqueror, or Safari).
  45.848 -
  45.849 -HTML_DYNAMIC_SECTIONS  = YES
  45.850 -
  45.851 -# If the GENERATE_DOCSET tag is set to YES, additional index files 
  45.852 -# will be generated that can be used as input for Apple's Xcode 3 
  45.853 -# integrated development environment, introduced with OSX 10.5 (Leopard). 
  45.854 -# To create a documentation set, doxygen will generate a Makefile in the 
  45.855 -# HTML output directory. Running make will produce the docset in that 
  45.856 -# directory and running "make install" will install the docset in 
  45.857 -# ~/Library/Developer/Shared/Documentation/DocSets so that Xcode will find 
  45.858 -# it at startup. 
  45.859 -# See http://developer.apple.com/tools/creatingdocsetswithdoxygen.html for more information.
  45.860 -
  45.861 -GENERATE_DOCSET        = NO
  45.862 -
  45.863 -# When GENERATE_DOCSET tag is set to YES, this tag determines the name of the 
  45.864 -# feed. A documentation feed provides an umbrella under which multiple 
  45.865 -# documentation sets from a single provider (such as a company or product suite) 
  45.866 -# can be grouped.
  45.867 -
  45.868 -DOCSET_FEEDNAME        = "SDL 2.0 Doxygen"
  45.869 -
  45.870 -# When GENERATE_DOCSET tag is set to YES, this tag specifies a string that 
  45.871 -# should uniquely identify the documentation set bundle. This should be a 
  45.872 -# reverse domain-name style string, e.g. com.mycompany.MyDocSet. Doxygen 
  45.873 -# will append .docset to the name.
  45.874 -
  45.875 -DOCSET_BUNDLE_ID       = org.libsdl.sdl20
  45.876 -
  45.877 -# If the GENERATE_HTMLHELP tag is set to YES, additional index files 
  45.878 -# will be generated that can be used as input for tools like the 
  45.879 -# Microsoft HTML help workshop to generate a compiled HTML help file (.chm) 
  45.880 -# of the generated HTML documentation.
  45.881 -
  45.882 -GENERATE_HTMLHELP      = NO
  45.883 -
  45.884 -# If the GENERATE_HTMLHELP tag is set to YES, the CHM_FILE tag can 
  45.885 -# be used to specify the file name of the resulting .chm file. You 
  45.886 -# can add a path in front of the file if the result should not be 
  45.887 -# written to the html output directory.
  45.888 -
  45.889 -CHM_FILE               = ./sdl20.chm
  45.890 -
  45.891 -# If the GENERATE_HTMLHELP tag is set to YES, the HHC_LOCATION tag can 
  45.892 -# be used to specify the location (absolute path including file name) of 
  45.893 -# the HTML help compiler (hhc.exe). If non-empty doxygen will try to run 
  45.894 -# the HTML help compiler on the generated index.hhp.
  45.895 -
  45.896 -HHC_LOCATION           = 
  45.897 -
  45.898 -# If the GENERATE_HTMLHELP tag is set to YES, the GENERATE_CHI flag 
  45.899 -# controls if a separate .chi index file is generated (YES) or that 
  45.900 -# it should be included in the master .chm file (NO).
  45.901 -
  45.902 -GENERATE_CHI           = NO
  45.903 -
  45.904 -# If the GENERATE_HTMLHELP tag is set to YES, the CHM_INDEX_ENCODING 
  45.905 -# is used to encode HtmlHelp index (hhk), content (hhc) and project file 
  45.906 -# content.
  45.907 -
  45.908 -CHM_INDEX_ENCODING     = 
  45.909 -
  45.910 -# If the GENERATE_HTMLHELP tag is set to YES, the BINARY_TOC flag 
  45.911 -# controls whether a binary table of contents is generated (YES) or a 
  45.912 -# normal table of contents (NO) in the .chm file.
  45.913 -
  45.914 -BINARY_TOC             = NO
  45.915 -
  45.916 -# The TOC_EXPAND flag can be set to YES to add extra items for group members 
  45.917 -# to the contents of the HTML help documentation and to the tree view.
  45.918 -
  45.919 -TOC_EXPAND             = YES
  45.920 -
  45.921 -# If the GENERATE_QHP tag is set to YES and both QHP_NAMESPACE and QHP_VIRTUAL_FOLDER 
  45.922 -# are set, an additional index file will be generated that can be used as input for 
  45.923 -# Qt's qhelpgenerator to generate a Qt Compressed Help (.qch) of the generated 
  45.924 -# HTML documentation.
  45.925 -
  45.926 -GENERATE_QHP           = NO
  45.927 -
  45.928 -# If the QHG_LOCATION tag is specified, the QCH_FILE tag can 
  45.929 -# be used to specify the file name of the resulting .qch file. 
  45.930 -# The path specified is relative to the HTML output folder.
  45.931 -
  45.932 -QCH_FILE               = 
  45.933 -
  45.934 -# The QHP_NAMESPACE tag specifies the namespace to use when generating 
  45.935 -# Qt Help Project output. For more information please see 
  45.936 -# http://doc.trolltech.com/qthelpproject.html#namespace
  45.937 -
  45.938 -QHP_NAMESPACE          = 
  45.939 -
  45.940 -# The QHP_VIRTUAL_FOLDER tag specifies the namespace to use when generating 
  45.941 -# Qt Help Project output. For more information please see 
  45.942 -# http://doc.trolltech.com/qthelpproject.html#virtual-folders
  45.943 -
  45.944 -QHP_VIRTUAL_FOLDER     = doc
  45.945 -
  45.946 -# If QHP_CUST_FILTER_NAME is set, it specifies the name of a custom filter to add. 
  45.947 -# For more information please see 
  45.948 -# http://doc.trolltech.com/qthelpproject.html#custom-filters
  45.949 -
  45.950 -QHP_CUST_FILTER_NAME   = 
  45.951 -
  45.952 -# The QHP_CUST_FILT_ATTRS tag specifies the list of the attributes of the custom filter to add.For more information please see 
  45.953 -# <a href="http://doc.trolltech.com/qthelpproject.html#custom-filters">Qt Help Project / Custom Filters</a>.
  45.954 -
  45.955 -QHP_CUST_FILTER_ATTRS  = 
  45.956 -
  45.957 -# The QHP_SECT_FILTER_ATTRS tag specifies the list of the attributes this project's 
  45.958 -# filter section matches. 
  45.959 -# <a href="http://doc.trolltech.com/qthelpproject.html#filter-attributes">Qt Help Project / Filter Attributes</a>.
  45.960 -
  45.961 -QHP_SECT_FILTER_ATTRS  = 
  45.962 -
  45.963 -# If the GENERATE_QHP tag is set to YES, the QHG_LOCATION tag can 
  45.964 -# be used to specify the location of Qt's qhelpgenerator. 
  45.965 -# If non-empty doxygen will try to run qhelpgenerator on the generated 
  45.966 -# .qhp file.
  45.967 -
  45.968 -QHG_LOCATION           = 
  45.969 -
  45.970 -# The DISABLE_INDEX tag can be used to turn on/off the condensed index at 
  45.971 -# top of each HTML page. The value NO (the default) enables the index and 
  45.972 -# the value YES disables it.
  45.973 -
  45.974 -DISABLE_INDEX          = NO
  45.975 -
  45.976 -# This tag can be used to set the number of enum values (range [1..20]) 
  45.977 -# that doxygen will group on one line in the generated HTML documentation.
  45.978 -
  45.979 -ENUM_VALUES_PER_LINE   = 1
  45.980 -
  45.981 -# The GENERATE_TREEVIEW tag is used to specify whether a tree-like index 
  45.982 -# structure should be generated to display hierarchical information. 
  45.983 -# If the tag value is set to FRAME, a side panel will be generated 
  45.984 -# containing a tree-like index structure (just like the one that 
  45.985 -# is generated for HTML Help). For this to work a browser that supports 
  45.986 -# JavaScript, DHTML, CSS and frames is required (for instance Mozilla 1.0+, 
  45.987 -# Netscape 6.0+, Internet explorer 5.0+, or Konqueror). Windows users are 
  45.988 -# probably better off using the HTML help feature. Other possible values 
  45.989 -# for this tag are: HIERARCHIES, which will generate the Groups, Directories, 
  45.990 -# and Class Hierarchy pages using a tree view instead of an ordered list; 
  45.991 -# ALL, which combines the behavior of FRAME and HIERARCHIES; and NONE, which 
  45.992 -# disables this behavior completely. For backwards compatibility with previous 
  45.993 -# releases of Doxygen, the values YES and NO are equivalent to FRAME and NONE 
  45.994 -# respectively.
  45.995 -
  45.996 -GENERATE_TREEVIEW      = ALL
  45.997 -
  45.998 -# If the treeview is enabled (see GENERATE_TREEVIEW) then this tag can be 
  45.999 -# used to set the initial width (in pixels) of the frame in which the tree 
 45.1000 -# is shown.
 45.1001 -
 45.1002 -TREEVIEW_WIDTH         = 250
 45.1003 -
 45.1004 -# Use this tag to change the font size of Latex formulas included 
 45.1005 -# as images in the HTML documentation. The default is 10. Note that 
 45.1006 -# when you change the font size after a successful doxygen run you need 
 45.1007 -# to manually remove any form_*.png images from the HTML output directory 
 45.1008 -# to force them to be regenerated.
 45.1009 -
 45.1010 -FORMULA_FONTSIZE       = 10
 45.1011 -
 45.1012 -#---------------------------------------------------------------------------
 45.1013 -# configuration options related to the LaTeX output
 45.1014 -#---------------------------------------------------------------------------
 45.1015 -
 45.1016 -# If the GENERATE_LATEX tag is set to YES (the default) Doxygen will 
 45.1017 -# generate Latex output.
 45.1018 -
 45.1019 -GENERATE_LATEX         = NO
 45.1020 -
 45.1021 -# The LATEX_OUTPUT tag is used to specify where the LaTeX docs will be put. 
 45.1022 -# If a relative path is entered the value of OUTPUT_DIRECTORY will be 
 45.1023 -# put in front of it. If left blank `latex' will be used as the default path.
 45.1024 -
 45.1025 -LATEX_OUTPUT           = latex
 45.1026 -
 45.1027 -# The LATEX_CMD_NAME tag can be used to specify the LaTeX command name to be 
 45.1028 -# invoked. If left blank `latex' will be used as the default command name.
 45.1029 -
 45.1030 -LATEX_CMD_NAME         = latex
 45.1031 -
 45.1032 -# The MAKEINDEX_CMD_NAME tag can be used to specify the command name to 
 45.1033 -# generate index for LaTeX. If left blank `makeindex' will be used as the 
 45.1034 -# default command name.
 45.1035 -
 45.1036 -MAKEINDEX_CMD_NAME     = makeindex
 45.1037 -
 45.1038 -# If the COMPACT_LATEX tag is set to YES Doxygen generates more compact 
 45.1039 -# LaTeX documents. This may be useful for small projects and may help to 
 45.1040 -# save some trees in general.
 45.1041 -
 45.1042 -COMPACT_LATEX          = NO
 45.1043 -
 45.1044 -# The PAPER_TYPE tag can be used to set the paper type that is used 
 45.1045 -# by the printer. Possible values are: a4, a4wide, letter, legal and 
 45.1046 -# executive. If left blank a4wide will be used.
 45.1047 -
 45.1048 -PAPER_TYPE             = a4wide
 45.1049 -
 45.1050 -# The EXTRA_PACKAGES tag can be to specify one or more names of LaTeX 
 45.1051 -# packages that should be included in the LaTeX output.
 45.1052 -
 45.1053 -EXTRA_PACKAGES         = 
 45.1054 -
 45.1055 -# The LATEX_HEADER tag can be used to specify a personal LaTeX header for 
 45.1056 -# the generated latex document. The header should contain everything until 
 45.1057 -# the first chapter. If it is left blank doxygen will generate a 
 45.1058 -# standard header. Notice: only use this tag if you know what you are doing!
 45.1059 -
 45.1060 -LATEX_HEADER           = 
 45.1061 -
 45.1062 -# If the PDF_HYPERLINKS tag is set to YES, the LaTeX that is generated 
 45.1063 -# is prepared for conversion to pdf (using ps2pdf). The pdf file will 
 45.1064 -# contain links (just like the HTML output) instead of page references 
 45.1065 -# This makes the output suitable for online browsing using a pdf viewer.
 45.1066 -
 45.1067 -PDF_HYPERLINKS         = YES
 45.1068 -
 45.1069 -# If the USE_PDFLATEX tag is set to YES, pdflatex will be used instead of 
 45.1070 -# plain latex in the generated Makefile. Set this option to YES to get a 
 45.1071 -# higher quality PDF documentation.
 45.1072 -
 45.1073 -USE_PDFLATEX           = YES
 45.1074 -
 45.1075 -# If the LATEX_BATCHMODE tag is set to YES, doxygen will add the \\batchmode. 
 45.1076 -# command to the generated LaTeX files. This will instruct LaTeX to keep 
 45.1077 -# running if errors occur, instead of asking the user for help. 
 45.1078 -# This option is also used when generating formulas in HTML.
 45.1079 -
 45.1080 -LATEX_BATCHMODE        = NO
 45.1081 -
 45.1082 -# If LATEX_HIDE_INDICES is set to YES then doxygen will not 
 45.1083 -# include the index chapters (such as File Index, Compound Index, etc.) 
 45.1084 -# in the output.
 45.1085 -
 45.1086 -LATEX_HIDE_INDICES     = NO
 45.1087 -
 45.1088 -# If LATEX_SOURCE_CODE is set to YES then doxygen will include
 45.1089 -# source code with syntax highlighting in the LaTeX output.
 45.1090 -# Note that which sources are shown also depends on other settings
 45.1091 -# such as SOURCE_BROWSER.
 45.1092 -
 45.1093 -LATEX_SOURCE_CODE      = NO
 45.1094 -
 45.1095 -#---------------------------------------------------------------------------
 45.1096 -# configuration options related to the RTF output
 45.1097 -#---------------------------------------------------------------------------
 45.1098 -
 45.1099 -# If the GENERATE_RTF tag is set to YES Doxygen will generate RTF output 
 45.1100 -# The RTF output is optimized for Word 97 and may not look very pretty with 
 45.1101 -# other RTF readers or editors.
 45.1102 -
 45.1103 -GENERATE_RTF           = NO
 45.1104 -
 45.1105 -# The RTF_OUTPUT tag is used to specify where the RTF docs will be put. 
 45.1106 -# If a relative path is entered the value of OUTPUT_DIRECTORY will be 
 45.1107 -# put in front of it. If left blank `rtf' will be used as the default path.
 45.1108 -
 45.1109 -RTF_OUTPUT             = rtf
 45.1110 -
 45.1111 -# If the COMPACT_RTF tag is set to YES Doxygen generates more compact 
 45.1112 -# RTF documents. This may be useful for small projects and may help to 
 45.1113 -# save some trees in general.
 45.1114 -
 45.1115 -COMPACT_RTF            = NO
 45.1116 -
 45.1117 -# If the RTF_HYPERLINKS tag is set to YES, the RTF that is generated 
 45.1118 -# will contain hyperlink fields. The RTF file will 
 45.1119 -# contain links (just like the HTML output) instead of page references. 
 45.1120 -# This makes the output suitable for online browsing using WORD or other 
 45.1121 -# programs which support those fields. 
 45.1122 -# Note: wordpad (write) and others do not support links.
 45.1123 -
 45.1124 -RTF_HYPERLINKS         = NO
 45.1125 -
 45.1126 -# Load stylesheet definitions from file. Syntax is similar to doxygen's 
 45.1127 -# config file, i.e. a series of assignments. You only have to provide 
 45.1128 -# replacements, missing definitions are set to their default value.
 45.1129 -
 45.1130 -RTF_STYLESHEET_FILE    = 
 45.1131 -
 45.1132 -# Set optional variables used in the generation of an rtf document. 
 45.1133 -# Syntax is similar to doxygen's config file.
 45.1134 -
 45.1135 -RTF_EXTENSIONS_FILE    = 
 45.1136 -
 45.1137 -#---------------------------------------------------------------------------
 45.1138 -# configuration options related to the man page output
 45.1139 -#---------------------------------------------------------------------------
 45.1140 -
 45.1141 -# If the GENERATE_MAN tag is set to YES (the default) Doxygen will 
 45.1142 -# generate man pages
 45.1143 -
 45.1144 -GENERATE_MAN           = NO
 45.1145 -
 45.1146 -# The MAN_OUTPUT tag is used to specify where the man pages will be put. 
 45.1147 -# If a relative path is entered the value of OUTPUT_DIRECTORY will be 
 45.1148 -# put in front of it. If left blank `man' will be used as the default path.
 45.1149 -
 45.1150 -MAN_OUTPUT             = man
 45.1151 -
 45.1152 -# The MAN_EXTENSION tag determines the extension that is added to 
 45.1153 -# the generated man pages (default is the subroutine's section .3)
 45.1154 -
 45.1155 -MAN_EXTENSION          = .3
 45.1156 -
 45.1157 -# If the MAN_LINKS tag is set to YES and Doxygen generates man output, 
 45.1158 -# then it will generate one additional man file for each entity 
 45.1159 -# documented in the real man page(s). These additional files 
 45.1160 -# only source the real man page, but without them the man command 
 45.1161 -# would be unable to find the correct page. The default is NO.
 45.1162 -
 45.1163 -MAN_LINKS              = NO
 45.1164 -
 45.1165 -#---------------------------------------------------------------------------
 45.1166 -# configuration options related to the XML output
 45.1167 -#---------------------------------------------------------------------------
 45.1168 -
 45.1169 -# If the GENERATE_XML tag is set to YES Doxygen will 
 45.1170 -# generate an XML file that captures the structure of 
 45.1171 -# the code including all documentation.
 45.1172 -
 45.1173 -GENERATE_XML           = NO
 45.1174 -
 45.1175 -# The XML_OUTPUT tag is used to specify where the XML pages will be put. 
 45.1176 -# If a relative path is entered the value of OUTPUT_DIRECTORY will be 
 45.1177 -# put in front of it. If left blank `xml' will be used as the default path.
 45.1178 -
 45.1179 -XML_OUTPUT             = xml
 45.1180 -
 45.1181 -# The XML_SCHEMA tag can be used to specify an XML schema, 
 45.1182 -# which can be used by a validating XML parser to check the 
 45.1183 -# syntax of the XML files.
 45.1184 -
 45.1185 -XML_SCHEMA             = 
 45.1186 -
 45.1187 -# The XML_DTD tag can be used to specify an XML DTD, 
 45.1188 -# which can be used by a validating XML parser to check the 
 45.1189 -# syntax of the XML files.
 45.1190 -
 45.1191 -XML_DTD                = 
 45.1192 -
 45.1193 -# If the XML_PROGRAMLISTING tag is set to YES Doxygen will 
 45.1194 -# dump the program listings (including syntax highlighting 
 45.1195 -# and cross-referencing information) to the XML output. Note that 
 45.1196 -# enabling this will significantly increase the size of the XML output.
 45.1197 -
 45.1198 -XML_PROGRAMLISTING     = YES
 45.1199 -
 45.1200 -#---------------------------------------------------------------------------
 45.1201 -# configuration options for the AutoGen Definitions output
 45.1202 -#---------------------------------------------------------------------------
 45.1203 -
 45.1204 -# If the GENERATE_AUTOGEN_DEF tag is set to YES Doxygen will 
 45.1205 -# generate an AutoGen Definitions (see autogen.sf.net) file 
 45.1206 -# that captures the structure of the code including all 
 45.1207 -# documentation. Note that this feature is still experimental 
 45.1208 -# and incomplete at the moment.
 45.1209 -
 45.1210 -GENERATE_AUTOGEN_DEF   = NO
 45.1211 -
 45.1212 -#---------------------------------------------------------------------------
 45.1213 -# configuration options related to the Perl module output
 45.1214 -#---------------------------------------------------------------------------
 45.1215 -
 45.1216 -# If the GENERATE_PERLMOD tag is set to YES Doxygen will 
 45.1217 -# generate a Perl module file that captures the structure of 
 45.1218 -# the code including all documentation. Note that this 
 45.1219 -# feature is still experimental and incomplete at the 
 45.1220 -# moment.
 45.1221 -
 45.1222 -GENERATE_PERLMOD       = NO
 45.1223 -
 45.1224 -# If the PERLMOD_LATEX tag is set to YES Doxygen will generate 
 45.1225 -# the necessary Makefile rules, Perl scripts and LaTeX code to be able 
 45.1226 -# to generate PDF and DVI output from the Perl module output.
 45.1227 -
 45.1228 -PERLMOD_LATEX          = NO
 45.1229 -
 45.1230 -# If the PERLMOD_PRETTY tag is set to YES the Perl module output will be 
 45.1231 -# nicely formatted so it can be parsed by a human reader.  This is useful 
 45.1232 -# if you want to understand what is going on.  On the other hand, if this 
 45.1233 -# tag is set to NO the size of the Perl module output will be much smaller 
 45.1234 -# and Perl will parse it just the same.
 45.1235 -
 45.1236 -PERLMOD_PRETTY         = YES
 45.1237 -
 45.1238 -# The names of the make variables in the generated doxyrules.make file 
 45.1239 -# are prefixed with the string contained in PERLMOD_MAKEVAR_PREFIX. 
 45.1240 -# This is useful so different doxyrules.make files included by the same 
 45.1241 -# Makefile don't overwrite each other's variables.
 45.1242 -
 45.1243 -PERLMOD_MAKEVAR_PREFIX = 
 45.1244 -
 45.1245 -#---------------------------------------------------------------------------
 45.1246 -# Configuration options related to the preprocessor   
 45.1247 -#---------------------------------------------------------------------------
 45.1248 -
 45.1249 -# If the ENABLE_PREPROCESSING tag is set to YES (the default) Doxygen will 
 45.1250 -# evaluate all C-preprocessor directives found in the sources and include 
 45.1251 -# files.
 45.1252 -
 45.1253 -ENABLE_PREPROCESSING   = YES
 45.1254 -
 45.1255 -# If the MACRO_EXPANSION tag is set to YES Doxygen will expand all macro 
 45.1256 -# names in the source code. If set to NO (the default) only conditional 
 45.1257 -# compilation will be performed. Macro expansion can be done in a controlled 
 45.1258 -# way by setting EXPAND_ONLY_PREDEF to YES.
 45.1259 -
 45.1260 -MACRO_EXPANSION        = YES
 45.1261 -
 45.1262 -# If the EXPAND_ONLY_PREDEF and MACRO_EXPANSION tags are both set to YES 
 45.1263 -# then the macro expansion is limited to the macros specified with the 
 45.1264 -# PREDEFINED and EXPAND_AS_DEFINED tags.
 45.1265 -
 45.1266 -EXPAND_ONLY_PREDEF     = YES
 45.1267 -
 45.1268 -# If the SEARCH_INCLUDES tag is set to YES (the default) the includes files 
 45.1269 -# in the INCLUDE_PATH (see below) will be search if a #include is found.
 45.1270 -
 45.1271 -SEARCH_INCLUDES        = YES
 45.1272 -
 45.1273 -# The INCLUDE_PATH tag can be used to specify one or more directories that 
 45.1274 -# contain include files that are not input files but should be processed by 
 45.1275 -# the preprocessor.
 45.1276 -
 45.1277 -INCLUDE_PATH           = 
 45.1278 -
 45.1279 -# You can use the INCLUDE_FILE_PATTERNS tag to specify one or more wildcard 
 45.1280 -# patterns (like *.h and *.hpp) to filter out the header-files in the 
 45.1281 -# directories. If left blank, the patterns specified with FILE_PATTERNS will 
 45.1282 -# be used.
 45.1283 -
 45.1284 -INCLUDE_FILE_PATTERNS  = 
 45.1285 -
 45.1286 -# The PREDEFINED tag can be used to specify one or more macro names that 
 45.1287 -# are defined before the preprocessor is started (similar to the -D option of 
 45.1288 -# gcc). The argument of the tag is a list of macros of the form: name 
 45.1289 -# or name=definition (no spaces). If the definition and the = are 
 45.1290 -# omitted =1 is assumed. To prevent a macro definition from being 
 45.1291 -# undefined via #undef or recursively expanded use the := operator 
 45.1292 -# instead of the = operator.
 45.1293 -
 45.1294 -PREDEFINED             = DOXYGEN_SHOULD_IGNORE_THIS=1 \
 45.1295 -                         DECLSPEC= \
 45.1296 -                         SDLCALL= \
 45.1297 -                         _WIN32=1
 45.1298 -
 45.1299 -# If the MACRO_EXPANSION and EXPAND_ONLY_PREDEF tags are set to YES then 
 45.1300 -# this tag can be used to specify a list of macro names that should be expanded. 
 45.1301 -# The macro definition that is found in the sources will be used. 
 45.1302 -# Use the PREDEFINED tag if you want to use a different macro definition.
 45.1303 -
 45.1304 -EXPAND_AS_DEFINED      = 
 45.1305 -
 45.1306 -# If the SKIP_FUNCTION_MACROS tag is set to YES (the default) then 
 45.1307 -# doxygen's preprocessor will remove all function-like macros that are alone 
 45.1308 -# on a line, have an all uppercase name, and do not end with a semicolon. Such 
 45.1309 -# function macros are typically used for boiler-plate code, and will confuse 
 45.1310 -# the parser if not removed.
 45.1311 -
 45.1312 -SKIP_FUNCTION_MACROS   = YES
 45.1313 -
 45.1314 -#---------------------------------------------------------------------------
 45.1315 -# Configuration::additions related to external references   
 45.1316 -#---------------------------------------------------------------------------
 45.1317 -
 45.1318 -# The TAGFILES option can be used to specify one or more tagfiles. 
 45.1319 -# Optionally an initial location of the external documentation 
 45.1320 -# can be added for each tagfile. The format of a tag file without 
 45.1321 -# this location is as follows: 
 45.1322 -#   TAGFILES = file1 file2 ... 
 45.1323 -# Adding location for the tag files is done as follows: 
 45.1324 -#   TAGFILES = file1=loc1 "file2 = loc2" ... 
 45.1325 -# where "loc1" and "loc2" can be relative or absolute paths or 
 45.1326 -# URLs. If a location is present for each tag, the installdox tool 
 45.1327 -# does not have to be run to correct the links. 
 45.1328 -# Note that each tag file must have a unique name 
 45.1329 -# (where the name does NOT include the path) 
 45.1330 -# If a tag file is not located in the directory in which doxygen 
 45.1331 -# is run, you must also specify the path to the tagfile here.
 45.1332 -
 45.1333 -TAGFILES               = 
 45.1334 -
 45.1335 -# When a file name is specified after GENERATE_TAGFILE, doxygen will create 
 45.1336 -# a tag file that is based on the input files it reads.
 45.1337 -
 45.1338 -GENERATE_TAGFILE       = ./SDL.tag
 45.1339 -
 45.1340 -# If the ALLEXTERNALS tag is set to YES all external classes will be listed 
 45.1341 -# in the class index. If set to NO only the inherited external classes 
 45.1342 -# will be listed.
 45.1343 -
 45.1344 -ALLEXTERNALS           = NO
 45.1345 -
 45.1346 -# If the EXTERNAL_GROUPS tag is set to YES all external groups will be listed 
 45.1347 -# in the modules index. If set to NO, only the current project's groups will 
 45.1348 -# be listed.
 45.1349 -
 45.1350 -EXTERNAL_GROUPS        = YES
 45.1351 -
 45.1352 -# The PERL_PATH should be the absolute path and name of the perl script 
 45.1353 -# interpreter (i.e. the result of `which perl').
 45.1354 -
 45.1355 -PERL_PATH              = c:\Perl\bin\perl.exe
 45.1356 -
 45.1357 -#---------------------------------------------------------------------------
 45.1358 -# Configuration options related to the dot tool   
 45.1359 -#---------------------------------------------------------------------------
 45.1360 -
 45.1361 -# If the CLASS_DIAGRAMS tag is set to YES (the default) Doxygen will 
 45.1362 -# generate a inheritance diagram (in HTML, RTF and LaTeX) for classes with base 
 45.1363 -# or super classes. Setting the tag to NO turns the diagrams off. Note that 
 45.1364 -# this option is superseded by the HAVE_DOT option below. This is only a 
 45.1365 -# fallback. It is recommended to install and use dot, since it yields more 
 45.1366 -# powerful graphs.
 45.1367 -
 45.1368 -CLASS_DIAGRAMS         = YES
 45.1369 -
 45.1370 -# You can define message sequence charts within doxygen comments using the \msc 
 45.1371 -# command. Doxygen will then run the mscgen tool (see 
 45.1372 -# http://www.mcternan.me.uk/mscgen/) to produce the chart and insert it in the 
 45.1373 -# documentation. The MSCGEN_PATH tag allows you to specify the directory where 
 45.1374 -# the mscgen tool resides. If left empty the tool is assumed to be found in the 
 45.1375 -# default search path.
 45.1376 -
 45.1377 -MSCGEN_PATH            = 
 45.1378 -
 45.1379 -# If set to YES, the inheritance and collaboration graphs will hide 
 45.1380 -# inheritance and usage relations if the target is undocumented 
 45.1381 -# or is not a class.
 45.1382 -
 45.1383 -HIDE_UNDOC_RELATIONS   = YES
 45.1384 -
 45.1385 -# If you set the HAVE_DOT tag to YES then doxygen will assume the dot tool is 
 45.1386 -# available from the path. This tool is part of Graphviz, a graph visualization 
 45.1387 -# toolkit from AT&T and Lucent Bell Labs. The other options in this section 
 45.1388 -# have no effect if this option is set to NO (the default)
 45.1389 -
 45.1390 -HAVE_DOT               = YES
 45.1391 -
 45.1392 -# By default doxygen will write a font called FreeSans.ttf to the output 
 45.1393 -# directory and reference it in all dot files that doxygen generates. This 
 45.1394 -# font does not include all possible unicode characters however, so when you need 
 45.1395 -# these (or just want a differently looking font) you can specify the font name 
 45.1396 -# using DOT_FONTNAME. You need need to make sure dot is able to find the font, 
 45.1397 -# which can be done by putting it in a standard location or by setting the 
 45.1398 -# DOTFONTPATH environment variable or by setting DOT_FONTPATH to the directory 
 45.1399 -# containing the font.
 45.1400 -
 45.1401 -DOT_FONTNAME           = FreeSans
 45.1402 -
 45.1403 -# The DOT_FONTSIZE tag can be used to set the size of the font of dot graphs. 
 45.1404 -# The default size is 10pt.
 45.1405 -
 45.1406 -DOT_FONTSIZE           = 10
 45.1407 -
 45.1408 -# By default doxygen will tell dot to use the output directory to look for the 
 45.1409 -# FreeSans.ttf font (which doxygen will put there itself). If you specify a 
 45.1410 -# different font using DOT_FONTNAME you can set the path where dot 
 45.1411 -# can find it using this tag.
 45.1412 -
 45.1413 -DOT_FONTPATH           = 
 45.1414 -
 45.1415 -# If the CLASS_GRAPH and HAVE_DOT tags are set to YES then doxygen 
 45.1416 -# will generate a graph for each documented class showing the direct and 
 45.1417 -# indirect inheritance relations. Setting this tag to YES will force the 
 45.1418 -# the CLASS_DIAGRAMS tag to NO.
 45.1419 -
 45.1420 -CLASS_GRAPH            = YES
 45.1421 -
 45.1422 -# If the COLLABORATION_GRAPH and HAVE_DOT tags are set to YES then doxygen 
 45.1423 -# will generate a graph for each documented class showing the direct and 
 45.1424 -# indirect implementation dependencies (inheritance, containment, and 
 45.1425 -# class references variables) of the class with other documented classes.
 45.1426 -
 45.1427 -COLLABORATION_GRAPH    = YES
 45.1428 -
 45.1429 -# If the GROUP_GRAPHS and HAVE_DOT tags are set to YES then doxygen 
 45.1430 -# will generate a graph for groups, showing the direct groups dependencies
 45.1431 -
 45.1432 -GROUP_GRAPHS           = YES
 45.1433 -
 45.1434 -# If the UML_LOOK tag is set to YES doxygen will generate inheritance and 
 45.1435 -# collaboration diagrams in a style similar to the OMG's Unified Modeling 
 45.1436 -# Language.
 45.1437 -
 45.1438 -UML_LOOK               = NO
 45.1439 -
 45.1440 -# If set to YES, the inheritance and collaboration graphs will show the 
 45.1441 -# relations between templates and their instances.
 45.1442 -
 45.1443 -TEMPLATE_RELATIONS     = YES
 45.1444 -
 45.1445 -# If the ENABLE_PREPROCESSING, SEARCH_INCLUDES, INCLUDE_GRAPH, and HAVE_DOT 
 45.1446 -# tags are set to YES then doxygen will generate a graph for each documented 
 45.1447 -# file showing the direct and indirect include dependencies of the file with 
 45.1448 -# other documented files.
 45.1449 -
 45.1450 -INCLUDE_GRAPH          = YES
 45.1451 -
 45.1452 -# If the ENABLE_PREPROCESSING, SEARCH_INCLUDES, INCLUDED_BY_GRAPH, and 
 45.1453 -# HAVE_DOT tags are set to YES then doxygen will generate a graph for each 
 45.1454 -# documented header file showing the documented files that directly or 
 45.1455 -# indirectly include this file.
 45.1456 -
 45.1457 -INCLUDED_BY_GRAPH      = YES
 45.1458 -
 45.1459 -# If the CALL_GRAPH and HAVE_DOT options are set to YES then 
 45.1460 -# doxygen will generate a call dependency graph for every global function 
 45.1461 -# or class method. Note that enabling this option will significantly increase 
 45.1462 -# the time of a run. So in most cases it will be better to enable call graphs 
 45.1463 -# for selected functions only using the \callgraph command.
 45.1464 -
 45.1465 -CALL_GRAPH             = NO
 45.1466 -
 45.1467 -# If the CALLER_GRAPH and HAVE_DOT tags are set to YES then 
 45.1468 -# doxygen will generate a caller dependency graph for every global function 
 45.1469 -# or class method. Note that enabling this option will significantly increase 
 45.1470 -# the time of a run. So in most cases it will be better to enable caller 
 45.1471 -# graphs for selected functions only using the \callergraph command.
 45.1472 -
 45.1473 -CALLER_GRAPH           = NO
 45.1474 -
 45.1475 -# If the GRAPHICAL_HIERARCHY and HAVE_DOT tags are set to YES then doxygen 
 45.1476 -# will graphical hierarchy of all classes instead of a textual one.
 45.1477 -
 45.1478 -GRAPHICAL_HIERARCHY    = YES
 45.1479 -
 45.1480 -# If the DIRECTORY_GRAPH, SHOW_DIRECTORIES and HAVE_DOT tags are set to YES 
 45.1481 -# then doxygen will show the dependencies a directory has on other directories 
 45.1482 -# in a graphical way. The dependency relations are determined by the #include 
 45.1483 -# relations between the files in the directories.
 45.1484 -
 45.1485 -DIRECTORY_GRAPH        = YES
 45.1486 -
 45.1487 -# The DOT_IMAGE_FORMAT tag can be used to set the image format of the images 
 45.1488 -# generated by dot. Possible values are png, jpg, or gif 
 45.1489 -# If left blank png will be used.
 45.1490 -
 45.1491 -DOT_IMAGE_FORMAT       = png
 45.1492 -
 45.1493 -# The tag DOT_PATH can be used to specify the path where the dot tool can be 
 45.1494 -# found. If left blank, it is assumed the dot tool can be found in the path.
 45.1495 -
 45.1496 -DOT_PATH               = 
 45.1497 -
 45.1498 -# The DOTFILE_DIRS tag can be used to specify one or more directories that 
 45.1499 -# contain dot files that are included in the documentation (see the 
 45.1500 -# \dotfile command).
 45.1501 -
 45.1502 -DOTFILE_DIRS           = 
 45.1503 -
 45.1504 -# The DOT_GRAPH_MAX_NODES tag can be used to set the maximum number of 
 45.1505 -# nodes that will be shown in the graph. If the number of nodes in a graph 
 45.1506 -# becomes larger than this value, doxygen will truncate the graph, which is 
 45.1507 -# visualized by representing a node as a red box. Note that doxygen if the 
 45.1508 -# number of direct children of the root node in a graph is already larger than 
 45.1509 -# DOT_GRAPH_MAX_NODES then the graph will not be shown at all. Also note 
 45.1510 -# that the size of a graph can be further restricted by MAX_DOT_GRAPH_DEPTH.
 45.1511 -
 45.1512 -DOT_GRAPH_MAX_NODES    = 50
 45.1513 -
 45.1514 -# The MAX_DOT_GRAPH_DEPTH tag can be used to set the maximum depth of the 
 45.1515 -# graphs generated by dot. A depth value of 3 means that only nodes reachable 
 45.1516 -# from the root by following a path via at most 3 edges will be shown. Nodes 
 45.1517 -# that lay further from the root node will be omitted. Note that setting this 
 45.1518 -# option to 1 or 2 may greatly reduce the computation time needed for large 
 45.1519 -# code bases. Also note that the size of a graph can be further restricted by 
 45.1520 -# DOT_GRAPH_MAX_NODES. Using a depth of 0 means no depth restriction.
 45.1521 -
 45.1522 -MAX_DOT_GRAPH_DEPTH    = 2
 45.1523 -
 45.1524 -# Set the DOT_TRANSPARENT tag to YES to generate images with a transparent 
 45.1525 -# background. This is disabled by default, because dot on Windows does not 
 45.1526 -# seem to support this out of the box. Warning: Depending on the platform used, 
 45.1527 -# enabling this option may lead to badly anti-aliased labels on the edges of 
 45.1528 -# a graph (i.e. they become hard to read).
 45.1529 -
 45.1530 -DOT_TRANSPARENT        = NO
 45.1531 -
 45.1532 -# Set the DOT_MULTI_TARGETS tag to YES allow dot to generate multiple output 
 45.1533 -# files in one run (i.e. multiple -o and -T options on the command line). This 
 45.1534 -# makes dot run faster, but since only newer versions of dot (>1.8.10) 
 45.1535 -# support this, this feature is disabled by default.
 45.1536 -
 45.1537 -DOT_MULTI_TARGETS      = YES
 45.1538 -
 45.1539 -# If the GENERATE_LEGEND tag is set to YES (the default) Doxygen will 
 45.1540 -# generate a legend page explaining the meaning of the various boxes and 
 45.1541 -# arrows in the dot generated graphs.
 45.1542 -
 45.1543 -GENERATE_LEGEND        = YES
 45.1544 -
 45.1545 -# If the DOT_CLEANUP tag is set to YES (the default) Doxygen will 
 45.1546 -# remove the intermediate dot files that are used to generate 
 45.1547 -# the various graphs.
 45.1548 -
 45.1549 -DOT_CLEANUP            = YES
 45.1550 -
 45.1551 -#---------------------------------------------------------------------------
 45.1552 -# Options related to the search engine
 45.1553 -#---------------------------------------------------------------------------
 45.1554 -
 45.1555 -# The SEARCHENGINE tag specifies whether or not a search engine should be 
 45.1556 -# used. If set to NO the values of all tags below this one will be ignored.
 45.1557 -
 45.1558 -SEARCHENGINE           = NO