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