From 0e45984fa036fff1912c62fee3ed4f5481f3c324 Mon Sep 17 00:00:00 2001 From: Philipp Wiesemann Date: Sun, 21 Jun 2015 17:33:46 +0200 Subject: [PATCH] Fixed crash if initialization of EGL failed but was tried again later. The internal function SDL_EGL_LoadLibrary() did not delete and remove a mostly uninitialized data structure if loading the library first failed. A later try to use EGL then skipped initialization and assumed it was previously successful because the data structure now already existed. This led to at least one crash in the internal function SDL_EGL_ChooseConfig() because a NULL pointer was dereferenced to make a call to eglBindAPI(). --- .hgignore | 123 + Android.mk | 69 + BUGS.txt | 16 + CMakeLists.txt | 1450 + COPYING.txt | 20 + CREDITS.txt | 53 + INSTALL.txt | 40 + Makefile.in | 234 + Makefile.minimal | 42 + Makefile.pandora | 37 + Makefile.psp | 92 + Makefile.wiz | 61 + README-SDL.txt | 13 + README.txt | 21 + SDL2.spec.in | 118 + TODO.txt | 10 + .../WinPhone80_VS2012/SDL-WinPhone80.vcxproj | 452 + .../SDL-WinPhone80.vcxproj.filters | 678 + .../WinPhone81_VS2013/SDL-WinPhone81.vcxproj | 446 + .../SDL-WinPhone81.vcxproj.filters | 690 + VisualC-WinRT/WinRT80_VS2012/SDL-WinRT80.sln | 32 + .../WinRT80_VS2012/SDL-WinRT80.vcxproj | 548 + .../SDL-WinRT80.vcxproj.filters | 726 + .../WinRT81_VS2013/SDL-WinRT81.vcxproj | 550 + .../SDL-WinRT81.vcxproj.filters | 717 + VisualC-WinRT/tests/loopwave/Assets/Logo.png | Bin 0 -> 801 bytes .../tests/loopwave/Assets/SmallLogo.png | Bin 0 -> 329 bytes .../tests/loopwave/Assets/SplashScreen.png | Bin 0 -> 2146 bytes .../tests/loopwave/Assets/StoreLogo.png | Bin 0 -> 429 bytes .../tests/loopwave/Package.appxmanifest | 42 + .../tests/loopwave/loopwave_VS2012.vcxproj | 170 + .../loopwave/loopwave_VS2012_TemporaryKey.pfx | Bin 0 -> 2504 bytes .../tests/testthread/Assets/Logo.png | Bin 0 -> 801 bytes .../tests/testthread/Assets/SmallLogo.png | Bin 0 -> 329 bytes .../tests/testthread/Assets/SplashScreen.png | Bin 0 -> 2146 bytes .../tests/testthread/Assets/StoreLogo.png | Bin 0 -> 429 bytes .../tests/testthread/Package.appxmanifest | 42 + .../testthread/testthread_VS2012.vcxproj | 160 + .../testthread_VS2012_TemporaryKey.pfx | Bin 0 -> 2504 bytes VisualC.html | 146 + VisualC/SDL.sln | 269 + VisualC/SDL/SDL.vcxproj | 511 + VisualC/SDL/SDL.vcxproj.filters | 444 + VisualC/SDL/SDL_VS2008.vcproj | 1509 + VisualC/SDL_VS2008.sln | 269 + VisualC/SDLmain/SDLmain.vcxproj | 158 + VisualC/SDLmain/SDLmain_VS2008.vcproj | 296 + VisualC/SDLtest/SDLtest.vcxproj | 172 + VisualC/SDLtest/SDLtest_VS2008.vcproj | 352 + VisualC/clean.sh | 4 + VisualC/tests/checkkeys/checkkeys.vcxproj | 214 + .../tests/checkkeys/checkkeys_VS2008.vcproj | 388 + .../tests/controllermap/controllermap.vcxproj | 255 + .../controllermap/controllermap_VS2008.vcproj | 480 + VisualC/tests/loopwave/loopwave.vcxproj | 225 + VisualC/tests/loopwave/loopwave_VS2008.vcproj | 396 + VisualC/tests/testatomic/testatomic.vcxproj | 199 + .../tests/testatomic/testatomic_VS2008.vcproj | 348 + .../testautomation/testautomation.vcxproj | 226 + .../testautomation_VS2008.vcproj | 431 + VisualC/tests/testdraw2/testdraw2.vcxproj | 205 + .../tests/testdraw2/testdraw2_VS2008.vcproj | 355 + VisualC/tests/testfile/testfile.vcxproj | 199 + VisualC/tests/testfile/testfile_VS2008.vcproj | 348 + .../testgamecontroller.vcxproj | 255 + .../testgamecontroller_VS2008.vcproj | 480 + VisualC/tests/testgesture/testgesture.vcxproj | 199 + .../testgesture/testgesture_VS2008.vcproj | 348 + VisualC/tests/testgl2/testgl2.vcxproj | 209 + VisualC/tests/testgl2/testgl2_VS2008.vcproj | 359 + VisualC/tests/testgles2/testgles2.vcxproj | 199 + .../tests/testgles2/testgles2_VS2008.vcproj | 348 + .../tests/testjoystick/testjoystick.vcxproj | 199 + .../testjoystick/testjoystick_VS2008.vcproj | 348 + .../tests/testoverlay2/testoverlay2.vcxproj | 219 + .../testoverlay2/testoverlay2_VS2008.vcproj | 392 + .../tests/testplatform/testplatform.vcxproj | 227 + .../testplatform/testplatform_VS2008.vcproj | 364 + VisualC/tests/testpower/testpower.vcxproj | 199 + .../tests/testpower/testpower_VS2008.vcproj | 348 + .../testrendertarget/testrendertarget.vcxproj | 243 + .../testrendertarget_VS2008.vcproj | 443 + VisualC/tests/testrumble/testrumble.vcxproj | 199 + .../tests/testrumble/testrumble_VS2008.vcproj | 348 + VisualC/tests/testscale/testscale.vcxproj | 243 + .../tests/testscale/testscale_VS2008.vcproj | 443 + VisualC/tests/testshape/testshape.vcxproj | 199 + .../tests/testshape/testshape_VS2008.vcproj | 348 + VisualC/tests/testsprite2/testsprite2.vcxproj | 225 + .../testsprite2/testsprite2_VS2008.vcproj | 399 + .../unittest/testquit/testquit_VS2012.vcxproj | 216 + VisualC/visualtest/visualtest_VS2012.vcxproj | 304 + WhatsNew.txt | 185 + Xcode-iOS/Demos/Default.png | Bin 0 -> 18383 bytes .../Demos/Demos.xcodeproj/project.pbxproj | 1026 + Xcode-iOS/Demos/Icon.png | Bin 0 -> 2409 bytes Xcode-iOS/Demos/Info.plist | 30 + Xcode-iOS/Demos/README | 43 + .../Demos/data/bitmapfont/kromasky_16x16.bmp | Bin 0 -> 45368 bytes Xcode-iOS/Demos/data/bitmapfont/license.txt | 258 + Xcode-iOS/Demos/data/drums/ds_brush_snare.wav | Bin 0 -> 194604 bytes Xcode-iOS/Demos/data/drums/ds_china.wav | Bin 0 -> 984604 bytes .../Demos/data/drums/ds_kick_big_amb.wav | Bin 0 -> 307080 bytes .../Demos/data/drums/ds_loose_skin_mute.wav | Bin 0 -> 127052 bytes Xcode-iOS/Demos/data/icon.bmp | Bin 0 -> 578 bytes Xcode-iOS/Demos/data/ship.bmp | Bin 0 -> 12344 bytes Xcode-iOS/Demos/data/space.bmp | Bin 0 -> 460856 bytes Xcode-iOS/Demos/data/stroke.bmp | Bin 0 -> 3128 bytes Xcode-iOS/Demos/src/accelerometer.c | 239 + Xcode-iOS/Demos/src/common.c | 36 + Xcode-iOS/Demos/src/common.h | 12 + Xcode-iOS/Demos/src/fireworks.c | 478 + Xcode-iOS/Demos/src/happy.c | 177 + Xcode-iOS/Demos/src/keyboard.c | 310 + Xcode-iOS/Demos/src/mixer.c | 353 + Xcode-iOS/Demos/src/rectangles.c | 81 + Xcode-iOS/Demos/src/touch.c | 125 + Xcode-iOS/SDL/SDL.xcodeproj/project.pbxproj | 1340 + .../SDL2test.xcodeproj/project.pbxproj | 270 + .../SDL iOS Application/Default-568h@2x.png | Bin 0 -> 83791 bytes .../Template/SDL iOS Application/Default.png | Bin 0 -> 18383 bytes .../Template/SDL iOS Application/Icon.png | Bin 0 -> 2409 bytes .../Template/SDL iOS Application/Info.plist | 28 + .../TemplateIcon.icns | Bin 0 -> 34248 bytes .../TemplateInfo.plist | 10 + .../project.pbxproj | 304 + .../contents.xcworkspacedata | 7 + Xcode-iOS/Template/SDL iOS Application/main.c | 98 + Xcode-iOS/Test/Info.plist | 28 + Xcode-iOS/Test/README | 22 + .../TestiPhoneOS.xcodeproj/project.pbxproj | 2291 ++ Xcode/SDL/Info-Framework.plist | 28 + Xcode/SDL/SDL.xcodeproj/project.pbxproj | 2977 ++ Xcode/SDL/pkg-support/SDL.info | 15 + Xcode/SDL/pkg-support/resources/License.txt | 19 + Xcode/SDL/pkg-support/resources/ReadMe.txt | 32 + Xcode/SDL/pkg-support/resources/SDL_DS_Store | Bin 0 -> 15364 bytes Xcode/SDL/pkg-support/sdl_logo.pdf | Bin 0 -> 163800 bytes .../SDLTest/SDLTest.xcodeproj/project.pbxproj | 4882 +++ Xcode/SDLTest/TestDropFile-Info.plist | 35 + Xcode/XcodeDocSet/Doxyfile | 1558 + acinclude/ac_check_define.m4 | 14 + acinclude/alsa.m4 | 145 + acinclude/ax_check_compiler_flags.m4 | 76 + acinclude/ax_gcc_archflag.m4 | 215 + acinclude/ax_gcc_x86_cpuid.m4.htm | 79 + acinclude/esd.m4 | 168 + acinclude/libtool.m4 | 7995 +++++ acinclude/ltoptions.m4 | 384 + acinclude/ltsugar.m4 | 123 + acinclude/ltversion.m4 | 23 + acinclude/lt~obsolete.m4 | 98 + android-project/AndroidManifest.xml | 53 + android-project/ant.properties | 17 + android-project/build.properties | 17 + android-project/build.xml | 93 + android-project/default.properties | 11 + android-project/jni/Android.mk | 1 + android-project/jni/Application.mk | 6 + android-project/jni/src/Android.mk | 19 + android-project/jni/src/Android_static.mk | 12 + android-project/proguard-project.txt | 20 + android-project/project.properties | 14 + .../res/drawable-hdpi/ic_launcher.png | Bin 0 -> 2683 bytes .../res/drawable-mdpi/ic_launcher.png | Bin 0 -> 1698 bytes .../res/drawable-xhdpi/ic_launcher.png | Bin 0 -> 3872 bytes .../res/drawable-xxhdpi/ic_launcher.png | Bin 0 -> 6874 bytes android-project/res/layout/main.xml | 13 + android-project/res/values/strings.xml | 4 + .../src/org/libsdl/app/SDLActivity.java | 1638 + autogen.sh | 19 + build-scripts/androidbuild.sh | 135 + build-scripts/checker-buildbot.sh | 93 + build-scripts/config.guess | 1542 + build-scripts/config.sub | 1815 ++ build-scripts/emscripten-buildbot.sh | 72 + build-scripts/g++-fat.sh | 101 + build-scripts/gcc-fat.sh | 102 + build-scripts/install-sh | 323 + build-scripts/iosbuild.sh | 277 + build-scripts/ltmain.sh | 9655 ++++++ build-scripts/mkinstalldirs | 99 + build-scripts/nacl-buildbot.sh | 57 + build-scripts/naclbuild.sh | 105 + build-scripts/raspberrypi-buildbot.sh | 60 + build-scripts/showrev.sh | 7 + build-scripts/strip_fPIC.sh | 21 + build-scripts/update-copyright.sh | 9 + build-scripts/updaterev.sh | 20 + build-scripts/windows-buildbot-zipper.bat | 31 + build-scripts/winrtbuild.bat | 8 + build-scripts/winrtbuild.ps1 | 225 + cmake/macros.cmake | 73 + cmake/sdlchecks.cmake | 1018 + cmake_uninstall.cmake.in | 18 + configure | 26284 ++++++++++++++++ configure.in | 3572 +++ debian/changelog | 84 + debian/compat | 1 + debian/control | 76 + debian/copyright | 362 + debian/docs | 4 + debian/libsdl2-dev.install | 8 + debian/libsdl2-dev.manpages | 1 + debian/libsdl2.install | 1 + debian/rules | 41 + debian/sdl2-config.1 | 86 + debian/source/format | 1 + debian/watch | 2 + docs/README-android.md | 464 + docs/README-cmake.md | 32 + docs/README-directfb.md | 107 + docs/README-dynapi.md | 130 + docs/README-emscripten.md | 33 + docs/README-gesture.md | 71 + docs/README-hg.md | 25 + docs/README-ios.md | 230 + docs/README-linux.md | 82 + docs/README-macosx.md | 226 + docs/README-nacl.md | 103 + docs/README-pandora.md | 17 + docs/README-platforms.md | 8 + docs/README-porting.md | 63 + docs/README-psp.md | 19 + docs/README-raspberrypi.md | 178 + docs/README-touch.md | 86 + docs/README-wince.md | 10 + docs/README-windows.md | 41 + docs/README-winrt.md | 480 + docs/README.md | 63 + docs/doxyfile | 1560 + include/SDL.h | 132 + include/SDL_assert.h | 289 + include/SDL_atomic.h | 268 + include/SDL_audio.h | 605 + include/SDL_bits.h | 97 + include/SDL_blendmode.h | 63 + include/SDL_clipboard.h | 71 + include/SDL_config.h | 55 + include/SDL_config.h.cmake | 413 + include/SDL_config.h.in | 359 + include/SDL_config_android.h | 145 + include/SDL_config_iphoneos.h | 162 + include/SDL_config_macosx.h | 188 + include/SDL_config_minimal.h | 81 + include/SDL_config_pandora.h | 127 + include/SDL_config_psp.h | 143 + include/SDL_config_windows.h | 221 + include/SDL_config_winrt.h | 194 + include/SDL_config_wiz.h | 121 + include/SDL_copying.h | 20 + include/SDL_cpuinfo.h | 161 + include/SDL_egl.h | 1397 + include/SDL_endian.h | 239 + include/SDL_error.h | 76 + include/SDL_events.h | 747 + include/SDL_filesystem.h | 136 + include/SDL_gamecontroller.h | 318 + include/SDL_gesture.h | 87 + include/SDL_haptic.h | 1223 + include/SDL_hints.h | 666 + include/SDL_joystick.h | 254 + include/SDL_keyboard.h | 217 + include/SDL_keycode.h | 341 + include/SDL_loadso.h | 81 + include/SDL_log.h | 211 + include/SDL_main.h | 161 + include/SDL_messagebox.h | 144 + include/SDL_mouse.h | 299 + include/SDL_mutex.h | 251 + include/SDL_name.h | 33 + include/SDL_opengl.h | 2176 ++ include/SDL_opengl_glext.h | 11177 +++++++ include/SDL_opengles.h | 38 + include/SDL_opengles2.h | 50 + include/SDL_opengles2_gl2.h | 621 + include/SDL_opengles2_gl2ext.h | 2050 ++ include/SDL_opengles2_gl2platform.h | 30 + include/SDL_opengles2_khrplatform.h | 282 + include/SDL_pixels.h | 454 + include/SDL_platform.h | 181 + include/SDL_power.h | 75 + include/SDL_quit.h | 58 + include/SDL_rect.h | 148 + include/SDL_render.h | 880 + include/SDL_revision.h | 2 + include/SDL_rwops.h | 231 + include/SDL_scancode.h | 401 + include/SDL_shape.h | 143 + include/SDL_stdinc.h | 527 + include/SDL_surface.h | 503 + include/SDL_system.h | 216 + include/SDL_syswm.h | 300 + include/SDL_test.h | 68 + include/SDL_test_assert.h | 105 + include/SDL_test_common.h | 188 + include/SDL_test_compare.h | 69 + include/SDL_test_crc32.h | 124 + include/SDL_test_font.h | 76 + include/SDL_test_fuzzer.h | 384 + include/SDL_test_harness.h | 123 + include/SDL_test_images.h | 78 + include/SDL_test_log.h | 67 + include/SDL_test_md5.h | 129 + include/SDL_test_random.h | 115 + include/SDL_thread.h | 287 + include/SDL_timer.h | 115 + include/SDL_touch.h | 86 + include/SDL_types.h | 29 + include/SDL_version.h | 162 + include/SDL_video.h | 1068 + include/begin_code.h | 146 + include/close_code.h | 37 + .../Cygwin/build-scripts/clean_premake.bat | 4 + premake/Cygwin/build-scripts/cygwin.bat | 4 + premake/Cygwin/build-scripts/make.debug.bat | 5 + premake/Cygwin/build-scripts/make.release.bat | 5 + premake/Cygwin/build-scripts/premake4.exe | Bin 0 -> 483840 bytes .../Cygwin/build-scripts/run.tests.debug.bat | 68 + .../build-scripts/run.tests.release.bat | 68 + premake/Linux/SDL_config_premake.h | 312 + premake/Linux/build-scripts/clean_premake.sh | 6 + premake/Linux/build-scripts/gmake.sh | 6 + premake/Linux/build-scripts/premake4 | Bin 0 -> 339312 bytes premake/Linux/build-scripts/run.tests.sh | 94 + premake/MinGW/SDL_config_premake.h | 193 + premake/MinGW/build-scripts/clean_premake.bat | 4 + premake/MinGW/build-scripts/mingw.bat | 4 + premake/MinGW/build-scripts/premake4.exe | Bin 0 -> 483840 bytes premake/MinGW/build-scripts/run.tests.bat | 108 + premake/README-cygwin.txt | 29 + premake/README-ios.txt | 34 + premake/README-linux.txt | 46 + premake/README-macosx.txt | 35 + premake/README-mingw.txt | 39 + premake/README-windows.txt | 37 + premake/README.txt | 330 + premake/VisualC/VS2008/SDL.sln | 487 + premake/VisualC/VS2008/SDL2/SDL2.vcproj | 3004 ++ .../VisualC/VS2008/SDL2main/SDL2main.vcproj | 199 + .../VisualC/VS2008/SDL2test/SDL2test.vcproj | 254 + premake/VisualC/VS2008/SDL_config_premake.h | 202 + .../VS2008/tests/checkkeys/checkkeys.vcproj | 208 + .../VS2008/tests/loopwave/loopwave.vcproj | 208 + .../VS2008/tests/testatomic/testatomic.vcproj | 208 + .../tests/testaudioinfo/testaudioinfo.vcproj | 208 + .../testautomation/testautomation.vcproj | 280 + .../testchessboard/testchessboard.vcproj | 208 + .../VS2008/tests/testdraw2/testdraw2.vcproj | 208 + .../VS2008/tests/testerror/testerror.vcproj | 208 + .../VS2008/tests/testfile/testfile.vcproj | 208 + .../testfilesystem/testfilesystem.vcproj | 208 + .../testgamecontroller.vcproj | 208 + .../tests/testgesture/testgesture.vcproj | 208 + .../VS2008/tests/testgl2/testgl2.vcproj | 208 + .../VS2008/tests/testgles/testgles.vcproj | 208 + .../VS2008/tests/testhaptic/testhaptic.vcproj | 208 + .../VS2008/tests/testiconv/testiconv.vcproj | 208 + .../VS2008/tests/testime/testime.vcproj | 208 + .../tests/testjoystick/testjoystick.vcproj | 208 + .../VS2008/tests/testkeys/testkeys.vcproj | 208 + .../VS2008/tests/testloadso/testloadso.vcproj | 208 + .../VS2008/tests/testlock/testlock.vcproj | 208 + .../tests/testmessage/testmessage.vcproj | 208 + .../testmultiaudio/testmultiaudio.vcproj | 208 + .../VS2008/tests/testnative/testnative.vcproj | 216 + .../tests/testoverlay2/testoverlay2.vcproj | 208 + .../tests/testplatform/testplatform.vcproj | 208 + .../VS2008/tests/testpower/testpower.vcproj | 208 + .../tests/testrelative/testrelative.vcproj | 208 + .../testrendercopyex/testrendercopyex.vcproj | 208 + .../testrendertarget/testrendertarget.vcproj | 208 + .../tests/testresample/testresample.vcproj | 208 + .../VS2008/tests/testrumble/testrumble.vcproj | 208 + .../VS2008/tests/testscale/testscale.vcproj | 208 + .../VS2008/tests/testsem/testsem.vcproj | 208 + .../VS2008/tests/testshader/testshader.vcproj | 208 + .../VS2008/tests/testshape/testshape.vcproj | 208 + .../tests/testsprite2/testsprite2.vcproj | 208 + .../testspriteminimal.vcproj | 208 + .../tests/teststreaming/teststreaming.vcproj | 208 + .../VS2008/tests/testthread/testthread.vcproj | 208 + .../VS2008/tests/testtimer/testtimer.vcproj | 208 + .../VS2008/tests/testver/testver.vcproj | 208 + .../VS2008/tests/testwm2/testwm2.vcproj | 208 + .../tests/torturethread/torturethread.vcproj | 208 + premake/VisualC/VS2010/SDL.sln | 487 + premake/VisualC/VS2010/SDL2/SDL2.vcxproj | 430 + .../VisualC/VS2010/SDL2/SDL2.vcxproj.filters | 708 + .../VisualC/VS2010/SDL2main/SDL2main.vcxproj | 115 + .../VS2010/SDL2main/SDL2main.vcxproj.filters | 19 + .../VisualC/VS2010/SDL2test/SDL2test.vcxproj | 157 + .../VS2010/SDL2test/SDL2test.vcxproj.filters | 58 + premake/VisualC/VS2010/SDL_config_premake.h | 202 + .../VS2010/tests/checkkeys/checkkeys.vcxproj | 129 + .../tests/checkkeys/checkkeys.vcxproj.filters | 13 + .../VS2010/tests/loopwave/loopwave.vcxproj | 129 + .../tests/loopwave/loopwave.vcxproj.filters | 13 + .../tests/testatomic/testatomic.vcxproj | 129 + .../testatomic/testatomic.vcxproj.filters | 13 + .../tests/testaudioinfo/testaudioinfo.vcxproj | 129 + .../testaudioinfo.vcxproj.filters | 13 + .../testautomation/testautomation.vcxproj | 169 + .../testautomation.vcxproj.filters | 69 + .../testchessboard/testchessboard.vcxproj | 129 + .../testchessboard.vcxproj.filters | 13 + .../VS2010/tests/testdraw2/testdraw2.vcxproj | 132 + .../tests/testdraw2/testdraw2.vcxproj.filters | 13 + .../VS2010/tests/testerror/testerror.vcxproj | 129 + .../tests/testerror/testerror.vcxproj.filters | 13 + .../VS2010/tests/testfile/testfile.vcxproj | 129 + .../tests/testfile/testfile.vcxproj.filters | 13 + .../testfilesystem/testfilesystem.vcxproj | 129 + .../testfilesystem.vcxproj.filters | 13 + .../testgamecontroller.vcxproj | 129 + .../testgamecontroller.vcxproj.filters | 13 + .../tests/testgesture/testgesture.vcxproj | 129 + .../testgesture/testgesture.vcxproj.filters | 13 + .../VS2010/tests/testgl2/testgl2.vcxproj | 134 + .../tests/testgl2/testgl2.vcxproj.filters | 13 + .../VS2010/tests/testgles/testgles.vcxproj | 132 + .../tests/testgles/testgles.vcxproj.filters | 13 + .../tests/testhaptic/testhaptic.vcxproj | 129 + .../testhaptic/testhaptic.vcxproj.filters | 13 + .../VS2010/tests/testiconv/testiconv.vcxproj | 129 + .../tests/testiconv/testiconv.vcxproj.filters | 13 + .../VS2010/tests/testime/testime.vcxproj | 132 + .../tests/testime/testime.vcxproj.filters | 13 + .../tests/testjoystick/testjoystick.vcxproj | 129 + .../testjoystick/testjoystick.vcxproj.filters | 13 + .../VS2010/tests/testkeys/testkeys.vcxproj | 129 + .../tests/testkeys/testkeys.vcxproj.filters | 13 + .../tests/testloadso/testloadso.vcxproj | 129 + .../testloadso/testloadso.vcxproj.filters | 13 + .../VS2010/tests/testlock/testlock.vcxproj | 129 + .../tests/testlock/testlock.vcxproj.filters | 13 + .../tests/testmessage/testmessage.vcxproj | 129 + .../testmessage/testmessage.vcxproj.filters | 13 + .../testmultiaudio/testmultiaudio.vcxproj | 129 + .../testmultiaudio.vcxproj.filters | 13 + .../tests/testnative/testnative.vcxproj | 134 + .../testnative/testnative.vcxproj.filters | 21 + .../tests/testoverlay2/testoverlay2.vcxproj | 129 + .../testoverlay2/testoverlay2.vcxproj.filters | 13 + .../tests/testplatform/testplatform.vcxproj | 129 + .../testplatform/testplatform.vcxproj.filters | 13 + .../VS2010/tests/testpower/testpower.vcxproj | 129 + .../tests/testpower/testpower.vcxproj.filters | 13 + .../tests/testrelative/testrelative.vcxproj | 132 + .../testrelative/testrelative.vcxproj.filters | 13 + .../testrendercopyex/testrendercopyex.vcxproj | 132 + .../testrendercopyex.vcxproj.filters | 13 + .../testrendertarget/testrendertarget.vcxproj | 132 + .../testrendertarget.vcxproj.filters | 13 + .../tests/testresample/testresample.vcxproj | 129 + .../testresample/testresample.vcxproj.filters | 13 + .../tests/testrumble/testrumble.vcxproj | 129 + .../testrumble/testrumble.vcxproj.filters | 13 + .../VS2010/tests/testscale/testscale.vcxproj | 132 + .../tests/testscale/testscale.vcxproj.filters | 13 + .../VS2010/tests/testsem/testsem.vcxproj | 129 + .../tests/testsem/testsem.vcxproj.filters | 13 + .../tests/testshader/testshader.vcxproj | 131 + .../testshader/testshader.vcxproj.filters | 13 + .../VS2010/tests/testshape/testshape.vcxproj | 129 + .../tests/testshape/testshape.vcxproj.filters | 13 + .../tests/testsprite2/testsprite2.vcxproj | 132 + .../testsprite2/testsprite2.vcxproj.filters | 13 + .../testspriteminimal.vcxproj | 129 + .../testspriteminimal.vcxproj.filters | 13 + .../tests/teststreaming/teststreaming.vcxproj | 129 + .../teststreaming.vcxproj.filters | 13 + .../tests/testthread/testthread.vcxproj | 129 + .../testthread/testthread.vcxproj.filters | 13 + .../VS2010/tests/testtimer/testtimer.vcxproj | 129 + .../tests/testtimer/testtimer.vcxproj.filters | 13 + .../VS2010/tests/testver/testver.vcxproj | 129 + .../tests/testver/testver.vcxproj.filters | 13 + .../VS2010/tests/testwm2/testwm2.vcxproj | 132 + .../tests/testwm2/testwm2.vcxproj.filters | 13 + .../tests/torturethread/torturethread.vcxproj | 129 + .../torturethread.vcxproj.filters | 13 + premake/VisualC/VS2012/SDL.sln | 487 + premake/VisualC/VS2012/SDL2/SDL2.vcxproj | 432 + .../VisualC/VS2012/SDL2/SDL2.vcxproj.filters | 708 + .../VisualC/VS2012/SDL2main/SDL2main.vcxproj | 117 + .../VS2012/SDL2main/SDL2main.vcxproj.filters | 19 + .../VisualC/VS2012/SDL2test/SDL2test.vcxproj | 159 + .../VS2012/SDL2test/SDL2test.vcxproj.filters | 58 + premake/VisualC/VS2012/SDL_config_premake.h | 202 + .../VS2012/tests/checkkeys/checkkeys.vcxproj | 131 + .../tests/checkkeys/checkkeys.vcxproj.filters | 13 + .../VS2012/tests/loopwave/loopwave.vcxproj | 131 + .../tests/loopwave/loopwave.vcxproj.filters | 13 + .../tests/testatomic/testatomic.vcxproj | 131 + .../testatomic/testatomic.vcxproj.filters | 13 + .../tests/testaudioinfo/testaudioinfo.vcxproj | 131 + .../testaudioinfo.vcxproj.filters | 13 + .../testautomation/testautomation.vcxproj | 171 + .../testautomation.vcxproj.filters | 69 + .../testchessboard/testchessboard.vcxproj | 131 + .../testchessboard.vcxproj.filters | 13 + .../VS2012/tests/testdraw2/testdraw2.vcxproj | 134 + .../tests/testdraw2/testdraw2.vcxproj.filters | 13 + .../VS2012/tests/testerror/testerror.vcxproj | 131 + .../tests/testerror/testerror.vcxproj.filters | 13 + .../VS2012/tests/testfile/testfile.vcxproj | 131 + .../tests/testfile/testfile.vcxproj.filters | 13 + .../testfilesystem/testfilesystem.vcxproj | 131 + .../testfilesystem.vcxproj.filters | 13 + .../testgamecontroller.vcxproj | 131 + .../testgamecontroller.vcxproj.filters | 13 + .../tests/testgesture/testgesture.vcxproj | 131 + .../testgesture/testgesture.vcxproj.filters | 13 + .../VS2012/tests/testgl2/testgl2.vcxproj | 136 + .../tests/testgl2/testgl2.vcxproj.filters | 13 + .../VS2012/tests/testgles/testgles.vcxproj | 134 + .../tests/testgles/testgles.vcxproj.filters | 13 + .../tests/testhaptic/testhaptic.vcxproj | 131 + .../testhaptic/testhaptic.vcxproj.filters | 13 + .../VS2012/tests/testiconv/testiconv.vcxproj | 131 + .../tests/testiconv/testiconv.vcxproj.filters | 13 + .../VS2012/tests/testime/testime.vcxproj | 134 + .../tests/testime/testime.vcxproj.filters | 13 + .../tests/testjoystick/testjoystick.vcxproj | 131 + .../testjoystick/testjoystick.vcxproj.filters | 13 + .../VS2012/tests/testkeys/testkeys.vcxproj | 131 + .../tests/testkeys/testkeys.vcxproj.filters | 13 + .../tests/testloadso/testloadso.vcxproj | 131 + .../testloadso/testloadso.vcxproj.filters | 13 + .../VS2012/tests/testlock/testlock.vcxproj | 131 + .../tests/testlock/testlock.vcxproj.filters | 13 + .../tests/testmessage/testmessage.vcxproj | 131 + .../testmessage/testmessage.vcxproj.filters | 13 + .../testmultiaudio/testmultiaudio.vcxproj | 131 + .../testmultiaudio.vcxproj.filters | 13 + .../tests/testnative/testnative.vcxproj | 136 + .../testnative/testnative.vcxproj.filters | 21 + .../tests/testoverlay2/testoverlay2.vcxproj | 131 + .../testoverlay2/testoverlay2.vcxproj.filters | 13 + .../tests/testplatform/testplatform.vcxproj | 131 + .../testplatform/testplatform.vcxproj.filters | 13 + .../VS2012/tests/testpower/testpower.vcxproj | 131 + .../tests/testpower/testpower.vcxproj.filters | 13 + .../tests/testrelative/testrelative.vcxproj | 134 + .../testrelative/testrelative.vcxproj.filters | 13 + .../testrendercopyex/testrendercopyex.vcxproj | 134 + .../testrendercopyex.vcxproj.filters | 13 + .../testrendertarget/testrendertarget.vcxproj | 134 + .../testrendertarget.vcxproj.filters | 13 + .../tests/testresample/testresample.vcxproj | 131 + .../testresample/testresample.vcxproj.filters | 13 + .../tests/testrumble/testrumble.vcxproj | 131 + .../testrumble/testrumble.vcxproj.filters | 13 + .../VS2012/tests/testscale/testscale.vcxproj | 134 + .../tests/testscale/testscale.vcxproj.filters | 13 + .../VS2012/tests/testsem/testsem.vcxproj | 131 + .../tests/testsem/testsem.vcxproj.filters | 13 + .../tests/testshader/testshader.vcxproj | 133 + .../testshader/testshader.vcxproj.filters | 13 + .../VS2012/tests/testshape/testshape.vcxproj | 131 + .../tests/testshape/testshape.vcxproj.filters | 13 + .../tests/testsprite2/testsprite2.vcxproj | 134 + .../testsprite2/testsprite2.vcxproj.filters | 13 + .../testspriteminimal.vcxproj | 131 + .../testspriteminimal.vcxproj.filters | 13 + .../tests/teststreaming/teststreaming.vcxproj | 131 + .../teststreaming.vcxproj.filters | 13 + .../tests/testthread/testthread.vcxproj | 131 + .../testthread/testthread.vcxproj.filters | 13 + .../VS2012/tests/testtimer/testtimer.vcxproj | 131 + .../tests/testtimer/testtimer.vcxproj.filters | 13 + .../VS2012/tests/testver/testver.vcxproj | 131 + .../tests/testver/testver.vcxproj.filters | 13 + .../VS2012/tests/testwm2/testwm2.vcxproj | 134 + .../tests/testwm2/testwm2.vcxproj.filters | 13 + .../tests/torturethread/torturethread.vcxproj | 131 + .../torturethread.vcxproj.filters | 13 + .../build-scripts/build.all.vs2010.bat | 5 + .../check.bin.compatibility.vs2010.bat | 81 + .../VisualC/build-scripts/clean_premake.bat | 9 + .../VisualC/build-scripts/generate.all.bat | 9 + premake/VisualC/build-scripts/premake4.exe | Bin 0 -> 483840 bytes .../build-scripts/run.tests.vs2010.bat | 108 + premake/VisualC/build-scripts/vs2008.bat | 4 + premake/VisualC/build-scripts/vs2010.bat | 4 + premake/VisualC/build-scripts/vs2012.bat | 4 + .../accelerometer.xcodeproj/project.pbxproj | 366 + .../fireworks.xcodeproj/project.pbxproj | 362 + .../happy/happy.xcodeproj/project.pbxproj | 362 + .../keyboard.xcodeproj/project.pbxproj | 370 + .../mixer/mixer.xcodeproj/project.pbxproj | 382 + .../rectangles.xcodeproj/project.pbxproj | 350 + .../touch/touch.xcodeproj/project.pbxproj | 362 + .../SDL.xcworkspace/contents.xcworkspacedata | 34 + .../SDL2/SDL2.xcodeproj/project.pbxproj | 1033 + .../SDL2main.xcodeproj/project.pbxproj | 241 + .../SDL2test.xcodeproj/project.pbxproj | 430 + premake/Xcode-iOS/SDL_config_premake.h | 165 + .../build-scripts/clean_premake.command | 4 + premake/Xcode-iOS/build-scripts/premake4 | Bin 0 -> 419580 bytes .../Xcode-iOS/build-scripts/xcode3.command | 4 + .../Xcode-iOS/build-scripts/xcode4.command | 4 + .../SDL2/SDL2.xcodeproj/project.pbxproj | 1231 + .../SDL2main.xcodeproj/project.pbxproj | 323 + .../SDL2test.xcodeproj/project.pbxproj | 520 + premake/Xcode/Xcode3/SDL_config_premake.h | 205 + .../checkkeys.xcodeproj/project.pbxproj | 457 + .../loopwave.xcodeproj/project.pbxproj | 474 + .../testatomic.xcodeproj/project.pbxproj | 457 + .../testaudioinfo.xcodeproj/project.pbxproj | 457 + .../testautomation.xcodeproj/project.pbxproj | 570 + .../testchessboard.xcodeproj/project.pbxproj | 457 + .../testdraw2.xcodeproj/project.pbxproj | 500 + .../testerror.xcodeproj/project.pbxproj | 457 + .../testfile.xcodeproj/project.pbxproj | 457 + .../testfilesystem.xcodeproj/project.pbxproj | 457 + .../project.pbxproj | 457 + .../testgesture.xcodeproj/project.pbxproj | 457 + .../testgl2/testgl2.xcodeproj/project.pbxproj | 504 + .../testgles.xcodeproj/project.pbxproj | 500 + .../testhaptic.xcodeproj/project.pbxproj | 457 + .../testiconv.xcodeproj/project.pbxproj | 474 + .../testime/testime.xcodeproj/project.pbxproj | 500 + .../testjoystick.xcodeproj/project.pbxproj | 457 + .../testkeys.xcodeproj/project.pbxproj | 457 + .../testloadso.xcodeproj/project.pbxproj | 457 + .../testlock.xcodeproj/project.pbxproj | 457 + .../testmessage.xcodeproj/project.pbxproj | 457 + .../testmultiaudio.xcodeproj/project.pbxproj | 474 + .../testnative.xcodeproj/project.pbxproj | 480 + .../testoverlay2.xcodeproj/project.pbxproj | 474 + .../testplatform.xcodeproj/project.pbxproj | 457 + .../testpower.xcodeproj/project.pbxproj | 457 + .../testrelative.xcodeproj/project.pbxproj | 500 + .../project.pbxproj | 517 + .../project.pbxproj | 517 + .../testresample.xcodeproj/project.pbxproj | 474 + .../testrumble.xcodeproj/project.pbxproj | 457 + .../testscale.xcodeproj/project.pbxproj | 517 + .../testsem/testsem.xcodeproj/project.pbxproj | 457 + .../testshader.xcodeproj/project.pbxproj | 478 + .../testshape.xcodeproj/project.pbxproj | 474 + .../testsprite2.xcodeproj/project.pbxproj | 517 + .../project.pbxproj | 474 + .../teststreaming.xcodeproj/project.pbxproj | 474 + .../testthread.xcodeproj/project.pbxproj | 457 + .../testtimer.xcodeproj/project.pbxproj | 457 + .../testver/testver.xcodeproj/project.pbxproj | 457 + .../testwm2/testwm2.xcodeproj/project.pbxproj | 500 + .../torturethread.xcodeproj/project.pbxproj | 457 + .../SDL.xcworkspace/contents.xcworkspacedata | 145 + .../SDL2/SDL2.xcodeproj/project.pbxproj | 1229 + .../SDL2main.xcodeproj/project.pbxproj | 321 + .../SDL2test.xcodeproj/project.pbxproj | 518 + premake/Xcode/Xcode4/SDL_config_premake.h | 205 + .../checkkeys.xcodeproj/project.pbxproj | 455 + .../loopwave.xcodeproj/project.pbxproj | 472 + .../testatomic.xcodeproj/project.pbxproj | 455 + .../testaudioinfo.xcodeproj/project.pbxproj | 455 + .../testautomation.xcodeproj/project.pbxproj | 568 + .../testchessboard.xcodeproj/project.pbxproj | 455 + .../testdraw2.xcodeproj/project.pbxproj | 498 + .../testerror.xcodeproj/project.pbxproj | 455 + .../testfile.xcodeproj/project.pbxproj | 455 + .../testfilesystem.xcodeproj/project.pbxproj | 455 + .../project.pbxproj | 455 + .../testgesture.xcodeproj/project.pbxproj | 455 + .../testgl2/testgl2.xcodeproj/project.pbxproj | 502 + .../testgles.xcodeproj/project.pbxproj | 498 + .../testhaptic.xcodeproj/project.pbxproj | 455 + .../testiconv.xcodeproj/project.pbxproj | 472 + .../testime/testime.xcodeproj/project.pbxproj | 498 + .../testjoystick.xcodeproj/project.pbxproj | 455 + .../testkeys.xcodeproj/project.pbxproj | 455 + .../testloadso.xcodeproj/project.pbxproj | 455 + .../testlock.xcodeproj/project.pbxproj | 455 + .../testmessage.xcodeproj/project.pbxproj | 455 + .../testmultiaudio.xcodeproj/project.pbxproj | 472 + .../testnative.xcodeproj/project.pbxproj | 478 + .../testoverlay2.xcodeproj/project.pbxproj | 472 + .../testplatform.xcodeproj/project.pbxproj | 455 + .../testpower.xcodeproj/project.pbxproj | 455 + .../testrelative.xcodeproj/project.pbxproj | 498 + .../project.pbxproj | 515 + .../project.pbxproj | 515 + .../testresample.xcodeproj/project.pbxproj | 472 + .../testrumble.xcodeproj/project.pbxproj | 455 + .../testscale.xcodeproj/project.pbxproj | 515 + .../testsem/testsem.xcodeproj/project.pbxproj | 455 + .../testshader.xcodeproj/project.pbxproj | 476 + .../testshape.xcodeproj/project.pbxproj | 472 + .../testsprite2.xcodeproj/project.pbxproj | 515 + .../project.pbxproj | 472 + .../teststreaming.xcodeproj/project.pbxproj | 472 + .../testthread.xcodeproj/project.pbxproj | 455 + .../testtimer.xcodeproj/project.pbxproj | 455 + .../testver/testver.xcodeproj/project.pbxproj | 455 + .../testwm2/testwm2.xcodeproj/project.pbxproj | 498 + .../torturethread.xcodeproj/project.pbxproj | 455 + .../build.all.xcode3.i386.command | 35 + .../build.all.xcode3.x86_64.command | 35 + .../build.all.xcode4.i386.command | 33 + .../build.all.xcode4.x86_64.command | 33 + .../Xcode/build-scripts/clean_premake.command | 4 + premake/Xcode/build-scripts/premake4 | Bin 0 -> 419580 bytes premake/Xcode/build-scripts/run.tests.command | 93 + premake/Xcode/build-scripts/xcode3.command | 4 + premake/Xcode/build-scripts/xcode4.command | 4 + premake/changelog | 828 + premake/config/SDL_config_cygwin.template.h | 171 + premake/config/SDL_config_iphoneos.template.h | 112 + premake/config/SDL_config_linux.template.h | 178 + premake/config/SDL_config_macosx.template.h | 161 + premake/config/SDL_config_minimal.template.h | 78 + premake/config/SDL_config_windows.template.h | 149 + premake/patches/709.patch | 29 + premake/patches/711.patch | 30 + premake/patches/712.patch | 58 + premake/patches/713.patch | 64 + premake/patches/iOS.patch | 71 + premake/patches/premake.patches.txt | 26 + premake/premake4.lua | 482 + premake/projects/SDL2.lua | 408 + premake/projects/SDL2main.lua | 31 + premake/projects/SDL2test.lua | 28 + premake/projects/accelerometer.lua | 28 + premake/projects/checkkeys.lua | 28 + premake/projects/fireworks.lua | 28 + premake/projects/happy.lua | 28 + premake/projects/keyboard.lua | 28 + premake/projects/loopwave.lua | 30 + premake/projects/mixer.lua | 30 + premake/projects/rectangles.lua | 28 + premake/projects/testatomic.lua | 28 + premake/projects/testaudioinfo.lua | 28 + premake/projects/testautomation.lua | 28 + premake/projects/testdraw2.lua | 28 + premake/projects/testdrawchessboard.lua | 28 + premake/projects/testerror.lua | 28 + premake/projects/testfile.lua | 28 + premake/projects/testfilesystem.lua | 28 + premake/projects/testgamecontroller.lua | 28 + premake/projects/testgesture.lua | 28 + premake/projects/testgl2.lua | 34 + premake/projects/testgles.lua | 28 + premake/projects/testhaptic.lua | 28 + premake/projects/testiconv.lua | 29 + premake/projects/testime.lua | 28 + premake/projects/testintersection.lua | 28 + premake/projects/testjoystick.lua | 28 + premake/projects/testkeys.lua | 28 + premake/projects/testloadso.lua | 28 + premake/projects/testlock.lua | 28 + premake/projects/testmessage.lua | 28 + premake/projects/testmultiaudio.lua | 29 + premake/projects/testnative.lua | 40 + premake/projects/testoverlay2.lua | 30 + premake/projects/testplatform.lua | 28 + premake/projects/testpower.lua | 28 + premake/projects/testrelative.lua | 28 + premake/projects/testrendercopyex.lua | 29 + premake/projects/testrendertarget.lua | 30 + premake/projects/testresample.lua | 30 + premake/projects/testrumble.lua | 28 + premake/projects/testscale.lua | 30 + premake/projects/testsem.lua | 28 + premake/projects/testshader.lua | 35 + premake/projects/testshape.lua | 32 + premake/projects/testsprite2.lua | 30 + premake/projects/testspriteminimal.lua | 29 + premake/projects/teststreaming.lua | 29 + premake/projects/testthread.lua | 28 + premake/projects/testtimer.lua | 28 + premake/projects/testver.lua | 28 + premake/projects/testwm2.lua | 28 + premake/projects/torturethread.lua | 28 + premake/projects/touch.lua | 28 + premake/util/sdl_check_compile.lua | 307 + premake/util/sdl_dependency_checkers.lua | 204 + premake/util/sdl_depends.lua | 74 + premake/util/sdl_file.lua | 141 + premake/util/sdl_gen_config.lua | 68 + premake/util/sdl_projects.lua | 461 + premake/util/sdl_string.lua | 103 + sdl2-config.in | 60 + sdl2.m4 | 202 + sdl2.pc.in | 15 + src/SDL.c | 477 + src/SDL_assert.c | 384 + src/SDL_assert_c.h | 24 + src/SDL_error.c | 275 + src/SDL_error_c.h | 64 + src/SDL_hints.c | 223 + src/SDL_internal.h | 38 + src/SDL_log.c | 440 + src/atomic/SDL_atomic.c | 246 + src/atomic/SDL_spinlock.c | 135 + src/audio/SDL_audio.c | 1455 + src/audio/SDL_audio_c.h | 55 + src/audio/SDL_audiocvt.c | 1121 + src/audio/SDL_audiodev.c | 123 + src/audio/SDL_audiodev_c.h | 38 + src/audio/SDL_audiomem.h | 25 + src/audio/SDL_audiotypecvt.c | 16015 ++++++++++ src/audio/SDL_mixer.c | 321 + src/audio/SDL_sysaudio.h | 199 + src/audio/SDL_wave.c | 624 + src/audio/SDL_wave.h | 67 + src/audio/alsa/SDL_alsa_audio.c | 685 + src/audio/alsa/SDL_alsa_audio.h | 45 + src/audio/android/SDL_androidaudio.c | 185 + src/audio/android/SDL_androidaudio.h | 41 + src/audio/arts/SDL_artsaudio.c | 384 + src/audio/arts/SDL_artsaudio.h | 52 + src/audio/bsd/SDL_bsdaudio.c | 363 + src/audio/bsd/SDL_bsdaudio.h | 51 + src/audio/coreaudio/SDL_coreaudio.c | 698 + src/audio/coreaudio/SDL_coreaudio.h | 57 + src/audio/directsound/SDL_directsound.c | 517 + src/audio/directsound/SDL_directsound.h | 46 + src/audio/disk/SDL_diskaudio.c | 165 + src/audio/disk/SDL_diskaudio.h | 42 + src/audio/dsp/SDL_dspaudio.c | 308 + src/audio/dsp/SDL_dspaudio.h | 43 + src/audio/dummy/SDL_dummyaudio.c | 48 + src/audio/dummy/SDL_dummyaudio.h | 41 + src/audio/emscripten/SDL_emscriptenaudio.c | 275 + src/audio/emscripten/SDL_emscriptenaudio.h | 42 + src/audio/esd/SDL_esdaudio.c | 345 + src/audio/esd/SDL_esdaudio.h | 50 + src/audio/fusionsound/SDL_fsaudio.c | 345 + src/audio/fusionsound/SDL_fsaudio.h | 49 + src/audio/haiku/SDL_haikuaudio.cc | 240 + src/audio/haiku/SDL_haikuaudio.h | 38 + src/audio/nacl/SDL_naclaudio.c | 152 + src/audio/nacl/SDL_naclaudio.h | 41 + src/audio/nas/SDL_nasaudio.c | 397 + src/audio/nas/SDL_nasaudio.h | 56 + src/audio/paudio/SDL_paudio.c | 541 + src/audio/paudio/SDL_paudio.h | 47 + src/audio/psp/SDL_pspaudio.c | 199 + src/audio/psp/SDL_pspaudio.h | 45 + src/audio/pulseaudio/SDL_pulseaudio.c | 699 + src/audio/pulseaudio/SDL_pulseaudio.h | 49 + src/audio/qsa/SDL_qsa_audio.c | 809 + src/audio/qsa/SDL_qsa_audio.h | 57 + src/audio/sdlgenaudiocvt.pl | 761 + src/audio/sndio/SDL_sndioaudio.c | 332 + src/audio/sndio/SDL_sndioaudio.h | 45 + src/audio/sun/SDL_sunaudio.c | 428 + src/audio/sun/SDL_sunaudio.h | 47 + src/audio/winmm/SDL_winmm.c | 365 + src/audio/winmm/SDL_winmm.h | 45 + src/audio/xaudio2/SDL_xaudio2.c | 526 + .../xaudio2/SDL_xaudio2_winrthelpers.cpp | 90 + src/audio/xaudio2/SDL_xaudio2_winrthelpers.h | 70 + src/core/android/SDL_android.c | 1631 + src/core/android/SDL_android.h | 93 + src/core/linux/SDL_dbus.c | 239 + src/core/linux/SDL_dbus.h | 82 + src/core/linux/SDL_evdev.c | 809 + src/core/linux/SDL_evdev.h | 59 + src/core/linux/SDL_ibus.c | 680 + src/core/linux/SDL_ibus.h | 58 + src/core/linux/SDL_udev.c | 532 + src/core/linux/SDL_udev.h | 117 + src/core/windows/SDL_directx.h | 111 + src/core/windows/SDL_windows.c | 129 + src/core/windows/SDL_windows.h | 64 + src/core/windows/SDL_xinput.c | 129 + src/core/windows/SDL_xinput.h | 134 + src/core/winrt/SDL_winrtapp_common.cpp | 37 + src/core/winrt/SDL_winrtapp_common.h | 31 + src/core/winrt/SDL_winrtapp_direct3d.cpp | 738 + src/core/winrt/SDL_winrtapp_direct3d.h | 83 + src/core/winrt/SDL_winrtapp_xaml.cpp | 160 + src/core/winrt/SDL_winrtapp_xaml.h | 33 + src/cpuinfo/SDL_cpuinfo.c | 799 + src/dynapi/SDL_dynapi.c | 319 + src/dynapi/SDL_dynapi.h | 61 + src/dynapi/SDL_dynapi_overrides.h | 595 + src/dynapi/SDL_dynapi_procs.h | 629 + src/dynapi/gendynapi.pl | 141 + src/events/SDL_clipboardevents.c | 46 + src/events/SDL_clipboardevents_c.h | 30 + src/events/SDL_dropevents.c | 46 + src/events/SDL_dropevents_c.h | 30 + src/events/SDL_events.c | 652 + src/events/SDL_events_c.h | 52 + src/events/SDL_gesture.c | 673 + src/events/SDL_gesture_c.h | 34 + src/events/SDL_keyboard.c | 1003 + src/events/SDL_keyboard_c.h | 67 + src/events/SDL_mouse.c | 896 + src/events/SDL_mouse_c.h | 130 + src/events/SDL_quit.c | 154 + src/events/SDL_sysevents.h | 36 + src/events/SDL_touch.c | 365 + src/events/SDL_touch_c.h | 61 + src/events/SDL_windowevents.c | 210 + src/events/SDL_windowevents_c.h | 31 + src/events/blank_cursor.h | 33 + src/events/default_cursor.h | 114 + src/events/scancodes_darwin.h | 159 + src/events/scancodes_linux.h | 263 + src/events/scancodes_windows.h | 55 + src/events/scancodes_xfree86.h | 421 + src/file/SDL_rwops.c | 769 + src/file/cocoa/SDL_rwopsbundlesupport.h | 30 + src/file/cocoa/SDL_rwopsbundlesupport.m | 62 + src/filesystem/android/SDL_sysfilesystem.c | 62 + src/filesystem/cocoa/SDL_sysfilesystem.m | 106 + src/filesystem/dummy/SDL_sysfilesystem.c | 47 + src/filesystem/emscripten/SDL_sysfilesystem.c | 69 + src/filesystem/haiku/SDL_sysfilesystem.cc | 93 + src/filesystem/nacl/SDL_sysfilesystem.c | 42 + src/filesystem/unix/SDL_sysfilesystem.c | 210 + src/filesystem/windows/SDL_sysfilesystem.c | 182 + src/filesystem/winrt/SDL_sysfilesystem.cpp | 221 + src/haptic/SDL_haptic.c | 848 + src/haptic/SDL_haptic_c.h | 25 + src/haptic/SDL_syshaptic.h | 208 + src/haptic/darwin/SDL_syshaptic.c | 1417 + src/haptic/darwin/SDL_syshaptic_c.h | 26 + src/haptic/dummy/SDL_syshaptic.c | 186 + src/haptic/linux/SDL_syshaptic.c | 1159 + src/haptic/windows/SDL_dinputhaptic.c | 1300 + src/haptic/windows/SDL_dinputhaptic_c.h | 47 + src/haptic/windows/SDL_windowshaptic.c | 449 + src/haptic/windows/SDL_windowshaptic_c.h | 88 + src/haptic/windows/SDL_xinputhaptic.c | 495 + src/haptic/windows/SDL_xinputhaptic_c.h | 47 + src/joystick/SDL_gamecontroller.c | 1257 + src/joystick/SDL_gamecontrollerdb.h | 91 + src/joystick/SDL_joystick.c | 825 + src/joystick/SDL_joystick_c.h | 48 + src/joystick/SDL_sysjoystick.h | 117 + src/joystick/android/SDL_sysjoystick.c | 582 + src/joystick/android/SDL_sysjoystick_c.h | 52 + src/joystick/bsd/SDL_sysjoystick.c | 653 + src/joystick/darwin/SDL_sysjoystick.c | 820 + src/joystick/darwin/SDL_sysjoystick_c.h | 71 + src/joystick/dummy/SDL_sysjoystick.c | 125 + src/joystick/emscripten/SDL_sysjoystick.c | 427 + src/joystick/emscripten/SDL_sysjoystick_c.h | 52 + src/joystick/haiku/SDL_haikujoystick.cc | 274 + src/joystick/iphoneos/SDL_sysjoystick.m | 203 + src/joystick/linux/SDL_sysjoystick.c | 880 + src/joystick/linux/SDL_sysjoystick_c.h | 57 + src/joystick/psp/SDL_sysjoystick.c | 270 + src/joystick/sort_controllers.py | 65 + src/joystick/windows/SDL_dinputjoystick.c | 906 + src/joystick/windows/SDL_dinputjoystick_c.h | 30 + src/joystick/windows/SDL_mmjoystick.c | 467 + src/joystick/windows/SDL_windowsjoystick.c | 569 + src/joystick/windows/SDL_windowsjoystick_c.h | 88 + src/joystick/windows/SDL_xinputjoystick.c | 383 + src/joystick/windows/SDL_xinputjoystick_c.h | 33 + src/libm/e_atan2.c | 116 + src/libm/e_log.c | 167 + src/libm/e_pow.c | 342 + src/libm/e_rem_pio2.c | 201 + src/libm/e_sqrt.c | 464 + src/libm/k_cos.c | 100 + src/libm/k_rem_pio2.c | 363 + src/libm/k_sin.c | 87 + src/libm/k_tan.c | 118 + src/libm/math_libm.h | 38 + src/libm/math_private.h | 221 + src/libm/s_atan.c | 115 + src/libm/s_copysign.c | 42 + src/libm/s_cos.c | 91 + src/libm/s_fabs.c | 39 + src/libm/s_floor.c | 96 + src/libm/s_scalbn.c | 79 + src/libm/s_sin.c | 91 + src/libm/s_tan.c | 67 + src/loadso/dlopen/SDL_sysloadso.c | 74 + src/loadso/dummy/SDL_sysloadso.c | 54 + src/loadso/haiku/SDL_sysloadso.c | 71 + src/loadso/windows/SDL_sysloadso.c | 80 + src/main/android/SDL_android_main.c | 78 + src/main/dummy/SDL_dummy_main.c | 28 + src/main/haiku/SDL_BApp.h | 380 + src/main/haiku/SDL_BeApp.cc | 136 + src/main/haiku/SDL_BeApp.h | 40 + src/main/nacl/SDL_nacl_main.c | 93 + src/main/psp/SDL_psp_main.c | 70 + src/main/windows/SDL_windows_main.c | 201 + src/main/windows/version.rc | 38 + src/main/winrt/SDL_winrt_main_NonXAML.cpp | 59 + src/power/SDL_power.c | 126 + src/power/android/SDL_syspower.c | 63 + src/power/emscripten/SDL_syspower.c | 62 + src/power/haiku/SDL_syspower.c | 126 + src/power/linux/SDL_syspower.c | 519 + src/power/macosx/SDL_syspower.c | 192 + src/power/psp/SDL_syspower.c | 68 + src/power/uikit/SDL_syspower.h | 32 + src/power/uikit/SDL_syspower.m | 98 + src/power/windows/SDL_syspower.c | 76 + src/power/winrt/SDL_syspower.cpp | 44 + src/render/SDL_d3dmath.c | 136 + src/render/SDL_d3dmath.h | 72 + src/render/SDL_render.c | 1928 ++ src/render/SDL_sysrender.h | 202 + src/render/SDL_yuv_mmx.c | 431 + src/render/SDL_yuv_sw.c | 1405 + src/render/SDL_yuv_sw_c.h | 72 + src/render/direct3d/SDL_render_d3d.c | 1980 ++ src/render/direct3d11/SDL_render_d3d11.c | 3001 ++ src/render/direct3d11/SDL_render_winrt.cpp | 116 + src/render/direct3d11/SDL_render_winrt.h | 40 + src/render/mmx.h | 642 + src/render/opengl/SDL_glfuncs.h | 477 + src/render/opengl/SDL_render_gl.c | 1581 + src/render/opengl/SDL_shaders_gl.c | 463 + src/render/opengl/SDL_shaders_gl.h | 41 + src/render/opengles/SDL_glesfuncs.h | 63 + src/render/opengles/SDL_render_gles.c | 1244 + src/render/opengles2/SDL_gles2funcs.h | 75 + src/render/opengles2/SDL_render_gles2.c | 2121 ++ src/render/opengles2/SDL_shaders_gles2.c | 906 + src/render/opengles2/SDL_shaders_gles2.h | 63 + src/render/psp/SDL_render_psp.c | 1020 + src/render/software/SDL_blendfillrect.c | 336 + src/render/software/SDL_blendfillrect.h | 27 + src/render/software/SDL_blendline.c | 777 + src/render/software/SDL_blendline.h | 27 + src/render/software/SDL_blendpoint.c | 343 + src/render/software/SDL_blendpoint.h | 27 + src/render/software/SDL_draw.h | 576 + src/render/software/SDL_drawline.c | 209 + src/render/software/SDL_drawline.h | 27 + src/render/software/SDL_drawpoint.c | 114 + src/render/software/SDL_drawpoint.h | 27 + src/render/software/SDL_render_sw.c | 794 + src/render/software/SDL_render_sw_c.h | 24 + src/render/software/SDL_rotate.c | 496 + src/render/software/SDL_rotate.h | 28 + src/stdlib/SDL_getenv.c | 308 + src/stdlib/SDL_iconv.c | 930 + src/stdlib/SDL_malloc.c | 5264 ++++ src/stdlib/SDL_qsort.c | 481 + src/stdlib/SDL_stdlib.c | 971 + src/stdlib/SDL_string.c | 1662 + src/test/SDL_test_assert.c | 150 + src/test/SDL_test_common.c | 1591 + src/test/SDL_test_compare.c | 115 + src/test/SDL_test_crc32.c | 165 + src/test/SDL_test_font.c | 3238 ++ src/test/SDL_test_fuzzer.c | 525 + src/test/SDL_test_harness.c | 676 + src/test/SDL_test_imageBlit.c | 1557 + src/test/SDL_test_imageBlitBlend.c | 2843 ++ src/test/SDL_test_imageFace.c | 246 + src/test/SDL_test_imagePrimitives.c | 512 + src/test/SDL_test_imagePrimitivesBlend.c | 694 + src/test/SDL_test_log.c | 102 + src/test/SDL_test_md5.c | 336 + src/test/SDL_test_random.c | 94 + src/thread/SDL_systhread.h | 65 + src/thread/SDL_thread.c | 456 + src/thread/SDL_thread_c.h | 94 + src/thread/generic/SDL_syscond.c | 220 + src/thread/generic/SDL_sysmutex.c | 165 + src/thread/generic/SDL_sysmutex_c.h | 22 + src/thread/generic/SDL_syssem.c | 217 + src/thread/generic/SDL_systhread.c | 71 + src/thread/generic/SDL_systhread_c.h | 26 + src/thread/generic/SDL_systls.c | 38 + src/thread/psp/SDL_syscond.c | 224 + src/thread/psp/SDL_sysmutex.c | 136 + src/thread/psp/SDL_sysmutex_c.h | 22 + src/thread/psp/SDL_syssem.c | 161 + src/thread/psp/SDL_systhread.c | 112 + src/thread/psp/SDL_systhread_c.h | 24 + src/thread/pthread/SDL_syscond.c | 158 + src/thread/pthread/SDL_sysmutex.c | 195 + src/thread/pthread/SDL_sysmutex_c.h | 32 + src/thread/pthread/SDL_syssem.c | 209 + src/thread/pthread/SDL_systhread.c | 246 + src/thread/pthread/SDL_systhread_c.h | 27 + src/thread/pthread/SDL_systls.c | 69 + src/thread/stdcpp/SDL_syscond.cpp | 164 + src/thread/stdcpp/SDL_sysmutex.cpp | 111 + src/thread/stdcpp/SDL_sysmutex_c.h | 30 + src/thread/stdcpp/SDL_systhread.cpp | 167 + src/thread/stdcpp/SDL_systhread_c.h | 26 + src/thread/windows/SDL_sysmutex.c | 106 + src/thread/windows/SDL_syssem.c | 148 + src/thread/windows/SDL_systhread.c | 245 + src/thread/windows/SDL_systhread_c.h | 32 + src/thread/windows/SDL_systls.c | 72 + src/timer/SDL_timer.c | 389 + src/timer/SDL_timer_c.h | 34 + src/timer/dummy/SDL_systimer.c | 75 + src/timer/haiku/SDL_systimer.c | 80 + src/timer/psp/SDL_systimer.c | 91 + src/timer/unix/SDL_systimer.c | 231 + src/timer/windows/SDL_systimer.c | 198 + src/video/SDL_RLEaccel.c | 1581 + src/video/SDL_RLEaccel_c.h | 31 + src/video/SDL_blit.c | 286 + src/video/SDL_blit.h | 552 + src/video/SDL_blit_0.c | 483 + src/video/SDL_blit_1.c | 550 + src/video/SDL_blit_A.c | 1388 + src/video/SDL_blit_N.c | 2637 ++ src/video/SDL_blit_auto.c | 7419 +++++ src/video/SDL_blit_auto.h | 30 + src/video/SDL_blit_copy.c | 152 + src/video/SDL_blit_copy.h | 24 + src/video/SDL_blit_slow.c | 161 + src/video/SDL_blit_slow.h | 25 + src/video/SDL_bmp.c | 653 + src/video/SDL_clipboard.c | 90 + src/video/SDL_egl.c | 625 + src/video/SDL_egl_c.h | 130 + src/video/SDL_fillrect.c | 343 + src/video/SDL_pixels.c | 1127 + src/video/SDL_pixels_c.h | 41 + src/video/SDL_rect.c | 525 + src/video/SDL_rect_c.h | 25 + src/video/SDL_shape.c | 297 + src/video/SDL_shape_internals.h | 69 + src/video/SDL_stretch.c | 353 + src/video/SDL_surface.c | 1148 + src/video/SDL_sysvideo.h | 428 + src/video/SDL_video.c | 3545 +++ src/video/android/SDL_androidclipboard.c | 48 + src/video/android/SDL_androidclipboard.h | 32 + src/video/android/SDL_androidevents.c | 125 + src/video/android/SDL_androidevents.h | 27 + src/video/android/SDL_androidgl.c | 61 + src/video/android/SDL_androidkeyboard.c | 371 + src/video/android/SDL_androidkeyboard.h | 36 + src/video/android/SDL_androidmessagebox.c | 37 + src/video/android/SDL_androidmessagebox.h | 29 + src/video/android/SDL_androidmouse.c | 84 + src/video/android/SDL_androidmouse.h | 31 + src/video/android/SDL_androidtouch.c | 154 + src/video/android/SDL_androidtouch.h | 29 + src/video/android/SDL_androidvideo.c | 210 + src/video/android/SDL_androidvideo.h | 49 + src/video/android/SDL_androidwindow.c | 139 + src/video/android/SDL_androidwindow.h | 44 + src/video/cocoa/SDL_cocoaclipboard.h | 36 + src/video/cocoa/SDL_cocoaclipboard.m | 113 + src/video/cocoa/SDL_cocoaevents.h | 32 + src/video/cocoa/SDL_cocoaevents.m | 439 + src/video/cocoa/SDL_cocoakeyboard.h | 36 + src/video/cocoa/SDL_cocoakeyboard.m | 607 + src/video/cocoa/SDL_cocoamessagebox.h | 29 + src/video/cocoa/SDL_cocoamessagebox.m | 132 + src/video/cocoa/SDL_cocoamodes.h | 44 + src/video/cocoa/SDL_cocoamodes.m | 494 + src/video/cocoa/SDL_cocoamouse.h | 52 + src/video/cocoa/SDL_cocoamouse.m | 472 + src/video/cocoa/SDL_cocoamousetap.h | 33 + src/video/cocoa/SDL_cocoamousetap.m | 258 + src/video/cocoa/SDL_cocoaopengl.h | 68 + src/video/cocoa/SDL_cocoaopengl.m | 405 + src/video/cocoa/SDL_cocoashape.h | 43 + src/video/cocoa/SDL_cocoashape.m | 115 + src/video/cocoa/SDL_cocoavideo.h | 65 + src/video/cocoa/SDL_cocoavideo.m | 237 + src/video/cocoa/SDL_cocoawindow.h | 145 + src/video/cocoa/SDL_cocoawindow.m | 1663 + src/video/directfb/SDL_DirectFB_WM.c | 413 + src/video/directfb/SDL_DirectFB_WM.h | 56 + src/video/directfb/SDL_DirectFB_dyn.c | 117 + src/video/directfb/SDL_DirectFB_dyn.h | 39 + src/video/directfb/SDL_DirectFB_events.c | 751 + src/video/directfb/SDL_DirectFB_events.h | 32 + src/video/directfb/SDL_DirectFB_modes.c | 414 + src/video/directfb/SDL_DirectFB_modes.h | 59 + src/video/directfb/SDL_DirectFB_mouse.c | 394 + src/video/directfb/SDL_DirectFB_mouse.h | 44 + src/video/directfb/SDL_DirectFB_opengl.c | 345 + src/video/directfb/SDL_DirectFB_opengl.h | 64 + src/video/directfb/SDL_DirectFB_render.c | 1328 + src/video/directfb/SDL_DirectFB_render.h | 25 + src/video/directfb/SDL_DirectFB_shape.c | 134 + src/video/directfb/SDL_DirectFB_shape.h | 39 + src/video/directfb/SDL_DirectFB_video.c | 424 + src/video/directfb/SDL_DirectFB_video.h | 170 + src/video/directfb/SDL_DirectFB_window.c | 532 + src/video/directfb/SDL_DirectFB_window.h | 81 + src/video/dummy/SDL_nullevents.c | 41 + src/video/dummy/SDL_nullevents_c.h | 27 + src/video/dummy/SDL_nullframebuffer.c | 89 + src/video/dummy/SDL_nullframebuffer_c.h | 27 + src/video/dummy/SDL_nullvideo.c | 143 + src/video/dummy/SDL_nullvideo.h | 30 + src/video/emscripten/SDL_emscriptenevents.c | 644 + src/video/emscripten/SDL_emscriptenevents.h | 36 + .../emscripten/SDL_emscriptenframebuffer.c | 136 + .../emscripten/SDL_emscriptenframebuffer.h | 32 + src/video/emscripten/SDL_emscriptenmouse.c | 232 + src/video/emscripten/SDL_emscriptenmouse.h | 39 + src/video/emscripten/SDL_emscriptenopengles.c | 117 + src/video/emscripten/SDL_emscriptenopengles.h | 49 + src/video/emscripten/SDL_emscriptenvideo.c | 319 + src/video/emscripten/SDL_emscriptenvideo.h | 52 + src/video/haiku/SDL_BWin.h | 638 + src/video/haiku/SDL_bclipboard.cc | 95 + src/video/haiku/SDL_bclipboard.h | 31 + src/video/haiku/SDL_bevents.cc | 39 + src/video/haiku/SDL_bevents.h | 37 + src/video/haiku/SDL_bframebuffer.cc | 254 + src/video/haiku/SDL_bframebuffer.h | 45 + src/video/haiku/SDL_bkeyboard.cc | 188 + src/video/haiku/SDL_bkeyboard.h | 42 + src/video/haiku/SDL_bmodes.cc | 331 + src/video/haiku/SDL_bmodes.h | 46 + src/video/haiku/SDL_bopengl.cc | 219 + src/video/haiku/SDL_bopengl.h | 49 + src/video/haiku/SDL_bvideo.cc | 174 + src/video/haiku/SDL_bvideo.h | 42 + src/video/haiku/SDL_bwindow.cc | 223 + src/video/haiku/SDL_bwindow.h | 53 + src/video/mir/SDL_mirdyn.c | 177 + src/video/mir/SDL_mirdyn.h | 53 + src/video/mir/SDL_mirevents.c | 254 + src/video/mir/SDL_mirevents.h | 37 + src/video/mir/SDL_mirframebuffer.c | 159 + src/video/mir/SDL_mirframebuffer.h | 47 + src/video/mir/SDL_mirmouse.c | 161 + src/video/mir/SDL_mirmouse.h | 37 + src/video/mir/SDL_miropengl.c | 96 + src/video/mir/SDL_miropengl.h | 58 + src/video/mir/SDL_mirsym.h | 49 + src/video/mir/SDL_mirvideo.c | 345 + src/video/mir/SDL_mirvideo.h | 41 + src/video/mir/SDL_mirwindow.c | 230 + src/video/mir/SDL_mirwindow.h | 69 + src/video/nacl/SDL_naclevents.c | 438 + src/video/nacl/SDL_naclevents_c.h | 30 + src/video/nacl/SDL_naclglue.c | 24 + src/video/nacl/SDL_naclopengles.c | 171 + src/video/nacl/SDL_naclopengles.h | 38 + src/video/nacl/SDL_naclvideo.c | 183 + src/video/nacl/SDL_naclvideo.h | 67 + src/video/nacl/SDL_naclwindow.c | 79 + src/video/nacl/SDL_naclwindow.h | 32 + src/video/pandora/SDL_pandora.c | 850 + src/video/pandora/SDL_pandora.h | 101 + src/video/pandora/SDL_pandora_events.c | 38 + src/video/pandora/SDL_pandora_events.h | 25 + src/video/psp/SDL_pspevents.c | 290 + src/video/psp/SDL_pspevents_c.h | 31 + src/video/psp/SDL_pspgl.c | 211 + src/video/psp/SDL_pspgl_c.h | 52 + src/video/psp/SDL_pspmouse.c | 41 + src/video/psp/SDL_pspmouse_c.h | 24 + src/video/psp/SDL_pspvideo.c | 328 + src/video/psp/SDL_pspvideo.h | 102 + src/video/raspberry/SDL_rpievents.c | 45 + src/video/raspberry/SDL_rpievents_c.h | 31 + src/video/raspberry/SDL_rpimouse.c | 286 + src/video/raspberry/SDL_rpimouse.h | 43 + src/video/raspberry/SDL_rpiopengles.c | 42 + src/video/raspberry/SDL_rpiopengles.h | 48 + src/video/raspberry/SDL_rpivideo.c | 371 + src/video/raspberry/SDL_rpivideo.h | 98 + src/video/sdlgenblit.pl | 535 + src/video/uikit/SDL_uikitappdelegate.h | 41 + src/video/uikit/SDL_uikitappdelegate.m | 465 + src/video/uikit/SDL_uikitevents.h | 30 + src/video/uikit/SDL_uikitevents.m | 69 + src/video/uikit/SDL_uikitmessagebox.h | 31 + src/video/uikit/SDL_uikitmessagebox.m | 96 + src/video/uikit/SDL_uikitmodes.h | 49 + src/video/uikit/SDL_uikitmodes.m | 270 + src/video/uikit/SDL_uikitopengles.h | 38 + src/video/uikit/SDL_uikitopengles.m | 218 + src/video/uikit/SDL_uikitopenglview.h | 58 + src/video/uikit/SDL_uikitopenglview.m | 262 + src/video/uikit/SDL_uikitvideo.h | 35 + src/video/uikit/SDL_uikitvideo.m | 183 + src/video/uikit/SDL_uikitview.h | 41 + src/video/uikit/SDL_uikitview.m | 187 + src/video/uikit/SDL_uikitviewcontroller.h | 78 + src/video/uikit/SDL_uikitviewcontroller.m | 401 + src/video/uikit/SDL_uikitwindow.h | 56 + src/video/uikit/SDL_uikitwindow.m | 442 + src/video/uikit/keyinfotable.h | 174 + src/video/vivante/SDL_vivanteopengles.c | 47 + src/video/vivante/SDL_vivanteopengles.h | 48 + src/video/vivante/SDL_vivanteplatform.c | 44 + src/video/vivante/SDL_vivanteplatform.h | 45 + src/video/vivante/SDL_vivantevideo.c | 399 + src/video/vivante/SDL_vivantevideo.h | 91 + src/video/wayland/SDL_waylanddyn.c | 195 + src/video/wayland/SDL_waylanddyn.h | 104 + src/video/wayland/SDL_waylandevents.c | 459 + src/video/wayland/SDL_waylandevents_c.h | 37 + src/video/wayland/SDL_waylandmouse.c | 403 + src/video/wayland/SDL_waylandmouse.h | 31 + src/video/wayland/SDL_waylandopengles.c | 91 + src/video/wayland/SDL_waylandopengles.h | 46 + src/video/wayland/SDL_waylandsym.h | 106 + src/video/wayland/SDL_waylandtouch.c | 265 + src/video/wayland/SDL_waylandtouch.h | 352 + src/video/wayland/SDL_waylandvideo.c | 385 + src/video/wayland/SDL_waylandvideo.h | 65 + src/video/wayland/SDL_waylandwindow.c | 262 + src/video/wayland/SDL_waylandwindow.h | 62 + src/video/windows/SDL_msctf.h | 242 + src/video/windows/SDL_vkeys.h | 76 + src/video/windows/SDL_windowsclipboard.c | 160 + src/video/windows/SDL_windowsclipboard.h | 36 + src/video/windows/SDL_windowsevents.c | 1059 + src/video/windows/SDL_windowsevents.h | 36 + src/video/windows/SDL_windowsframebuffer.c | 124 + src/video/windows/SDL_windowsframebuffer.h | 27 + src/video/windows/SDL_windowskeyboard.c | 1539 + src/video/windows/SDL_windowskeyboard.h | 38 + src/video/windows/SDL_windowsmessagebox.c | 479 + src/video/windows/SDL_windowsmessagebox.h | 29 + src/video/windows/SDL_windowsmodes.c | 312 + src/video/windows/SDL_windowsmodes.h | 46 + src/video/windows/SDL_windowsmouse.c | 328 + src/video/windows/SDL_windowsmouse.h | 33 + src/video/windows/SDL_windowsopengl.c | 810 + src/video/windows/SDL_windowsopengl.h | 131 + src/video/windows/SDL_windowsopengles.c | 141 + src/video/windows/SDL_windowsopengles.h | 51 + src/video/windows/SDL_windowsshape.c | 110 + src/video/windows/SDL_windowsshape.h | 40 + src/video/windows/SDL_windowsvideo.c | 415 + src/video/windows/SDL_windowsvideo.h | 182 + src/video/windows/SDL_windowswindow.c | 791 + src/video/windows/SDL_windowswindow.h | 76 + src/video/windows/wmmsg.h | 1052 + src/video/winrt/SDL_winrtevents.cpp | 153 + src/video/winrt/SDL_winrtevents_c.h | 73 + src/video/winrt/SDL_winrtkeyboard.cpp | 386 + src/video/winrt/SDL_winrtmessagebox.cpp | 112 + src/video/winrt/SDL_winrtmessagebox.h | 29 + src/video/winrt/SDL_winrtmouse.cpp | 165 + src/video/winrt/SDL_winrtmouse_c.h | 40 + src/video/winrt/SDL_winrtopengles.cpp | 202 + src/video/winrt/SDL_winrtopengles.h | 70 + src/video/winrt/SDL_winrtpointerinput.cpp | 394 + src/video/winrt/SDL_winrtvideo.cpp | 440 + src/video/winrt/SDL_winrtvideo_cpp.h | 90 + src/video/x11/SDL_x11clipboard.c | 189 + src/video/x11/SDL_x11clipboard.h | 33 + src/video/x11/SDL_x11dyn.c | 227 + src/video/x11/SDL_x11dyn.h | 117 + src/video/x11/SDL_x11events.c | 1436 + src/video/x11/SDL_x11events.h | 31 + src/video/x11/SDL_x11framebuffer.c | 257 + src/video/x11/SDL_x11framebuffer.h | 31 + src/video/x11/SDL_x11keyboard.c | 383 + src/video/x11/SDL_x11keyboard.h | 35 + src/video/x11/SDL_x11messagebox.c | 823 + src/video/x11/SDL_x11messagebox.h | 28 + src/video/x11/SDL_x11modes.c | 905 + src/video/x11/SDL_x11modes.h | 80 + src/video/x11/SDL_x11mouse.c | 430 + src/video/x11/SDL_x11mouse.h | 31 + src/video/x11/SDL_x11opengl.c | 806 + src/video/x11/SDL_x11opengl.h | 73 + src/video/x11/SDL_x11opengles.c | 109 + src/video/x11/SDL_x11opengles.h | 53 + src/video/x11/SDL_x11shape.c | 121 + src/video/x11/SDL_x11shape.h | 40 + src/video/x11/SDL_x11sym.h | 313 + src/video/x11/SDL_x11touch.c | 47 + src/video/x11/SDL_x11touch.h | 31 + src/video/x11/SDL_x11video.c | 464 + src/video/x11/SDL_x11video.h | 125 + src/video/x11/SDL_x11window.c | 1452 + src/video/x11/SDL_x11window.h | 99 + src/video/x11/SDL_x11xinput2.c | 268 + src/video/x11/SDL_x11xinput2.h | 42 + src/video/x11/edid-parse.c | 752 + src/video/x11/edid.h | 167 + src/video/x11/imKStoUCS.c | 350 + src/video/x11/imKStoUCS.h | 31 + test/COPYING | 8 + test/Makefile.in | 279 + test/README | 31 + test/acinclude.m4 | 359 + test/aclocal.m4 | 359 + test/autogen.sh | 12 + test/axis.bmp | Bin 0 -> 3746 bytes test/button.bmp | Bin 0 -> 3746 bytes test/checkkeys.c | 236 + test/configure | 5124 +++ test/configure.in | 191 + test/controllermap.bmp | Bin 0 -> 163450 bytes test/controllermap.c | 440 + test/emscripten/joystick-pre.js | 25 + test/gcc-fat.sh | 110 + test/icon.bmp | Bin 0 -> 578 bytes test/loopwave.c | 161 + test/loopwavequeue.c | 150 + test/moose.dat | Bin 0 -> 56320 bytes test/nacl/Makefile | 63 + test/nacl/background.js | 40 + test/nacl/common.js | 469 + test/nacl/index.html | 21 + test/nacl/manifest.json | 22 + test/picture.xbm | 14 + test/relative_mode.markdown | 58 + test/sample.bmp | Bin 0 -> 69202 bytes test/sample.wav | Bin 0 -> 121946 bytes test/shapes/p01_shape24.bmp | Bin 0 -> 1228938 bytes test/shapes/p01_shape32alpha.bmp | Bin 0 -> 1638538 bytes test/shapes/p01_shape8.bmp | Bin 0 -> 410678 bytes test/shapes/p02_shape24.bmp | Bin 0 -> 1228938 bytes test/shapes/p02_shape32alpha.bmp | Bin 0 -> 1638538 bytes test/shapes/p02_shape8.bmp | Bin 0 -> 410678 bytes test/shapes/p03_shape24.bmp | Bin 0 -> 1228938 bytes test/shapes/p03_shape8.bmp | Bin 0 -> 410678 bytes test/shapes/p04_shape1.bmp | Bin 0 -> 51346 bytes test/shapes/p04_shape24.bmp | Bin 0 -> 1228938 bytes test/shapes/p04_shape32alpha.bmp | Bin 0 -> 1638538 bytes test/shapes/p04_shape8.bmp | Bin 0 -> 410678 bytes test/shapes/p05_shape8.bmp | Bin 0 -> 410678 bytes test/shapes/p06_shape1alpha.bmp | Bin 0 -> 1638538 bytes test/shapes/p06_shape24.bmp | Bin 0 -> 1228938 bytes test/shapes/p06_shape32alpha.bmp | Bin 0 -> 1638538 bytes test/shapes/p06_shape8.bmp | Bin 0 -> 410678 bytes test/shapes/p07_shape24.bmp | Bin 0 -> 1228938 bytes test/shapes/p07_shape32alpha.bmp | Bin 0 -> 1638538 bytes test/shapes/p07_shape8.bmp | Bin 0 -> 410678 bytes test/shapes/p08_shape24.bmp | Bin 0 -> 1228938 bytes test/shapes/p08_shape32alpha.bmp | Bin 0 -> 1638538 bytes test/shapes/p08_shape8.bmp | Bin 0 -> 410678 bytes test/shapes/p09_shape24.bmp | Bin 0 -> 1228938 bytes test/shapes/p09_shape32alpha.bmp | Bin 0 -> 1638538 bytes test/shapes/p09_shape8.bmp | Bin 0 -> 410678 bytes test/shapes/p10_shape1.bmp | Bin 0 -> 51346 bytes test/shapes/p10_shape24.bmp | Bin 0 -> 1228938 bytes test/shapes/p10_shape32alpha.bmp | Bin 0 -> 1638538 bytes test/shapes/p10_shape8.bmp | Bin 0 -> 410678 bytes test/shapes/p11_shape24.bmp | Bin 0 -> 1228938 bytes test/shapes/p11_shape32alpha.bmp | Bin 0 -> 1638538 bytes test/shapes/p11_shape8.bmp | Bin 0 -> 410678 bytes test/shapes/p12_shape24.bmp | Bin 0 -> 1228938 bytes test/shapes/p12_shape8.bmp | Bin 0 -> 410678 bytes test/shapes/p13_shape24.bmp | Bin 0 -> 1228938 bytes test/shapes/p13_shape32alpha.bmp | Bin 0 -> 1638538 bytes test/shapes/p13_shape8.bmp | Bin 0 -> 410678 bytes test/shapes/p14_shape24.bmp | Bin 0 -> 1228938 bytes test/shapes/p14_shape8.bmp | Bin 0 -> 410678 bytes test/shapes/p15_shape24.bmp | Bin 0 -> 1228938 bytes test/shapes/p15_shape32alpha.bmp | Bin 0 -> 1638538 bytes test/shapes/p15_shape8.bmp | Bin 0 -> 410678 bytes test/shapes/p16_shape1.bmp | Bin 0 -> 51346 bytes test/shapes/p16_shape24.bmp | Bin 0 -> 1228938 bytes test/shapes/p16_shape8.bmp | Bin 0 -> 410678 bytes test/shapes/trollface_24.bmp | Bin 0 -> 196662 bytes test/shapes/trollface_32alpha.bmp | Bin 0 -> 262198 bytes test/testatomic.c | 724 + test/testaudiohotplug.c | 183 + test/testaudioinfo.c | 70 + test/testautomation.c | 124 + test/testautomation_audio.c | 1038 + test/testautomation_clipboard.c | 184 + test/testautomation_events.c | 201 + test/testautomation_hints.c | 168 + test/testautomation_keyboard.c | 713 + test/testautomation_main.c | 157 + test/testautomation_mouse.c | 594 + test/testautomation_pixels.c | 529 + test/testautomation_platform.c | 584 + test/testautomation_rect.c | 1696 + test/testautomation_render.c | 1099 + test/testautomation_rwops.c | 748 + test/testautomation_sdltest.c | 1315 + test/testautomation_stdlib.c | 279 + test/testautomation_suites.h | 54 + test/testautomation_surface.c | 647 + test/testautomation_syswm.c | 61 + test/testautomation_timer.c | 201 + test/testautomation_video.c | 1811 ++ test/testdraw2.c | 305 + test/testdrawchessboard.c | 134 + test/testdropfile.c | 93 + test/testerror.c | 77 + test/testfile.c | 283 + test/testfilesystem.c | 49 + test/testgamecontroller.c | 340 + test/testgesture.c | 310 + test/testgl2.c | 416 + test/testgles.c | 355 + test/testgles2.c | 731 + test/testhaptic.c | 369 + test/testhittesting.c | 134 + test/testhotplug.c | 162 + test/testiconv.c | 88 + test/testime.c | 373 + test/testintersections.c | 363 + test/testjoystick.c | 337 + test/testkeys.c | 40 + test/testloadso.c | 82 + test/testlock.c | 126 + test/testmessage.c | 193 + test/testmultiaudio.c | 200 + test/testnative.c | 237 + test/testnative.h | 46 + test/testnativecocoa.m | 51 + test/testnativew32.c | 86 + test/testnativex11.c | 53 + test/testoverlay2.c | 511 + test/testplatform.c | 204 + test/testpower.c | 80 + test/testrelative.c | 126 + test/testrendercopyex.c | 233 + test/testrendertarget.c | 335 + test/testresample.c | 118 + test/testrumble.c | 152 + test/testscale.c | 224 + test/testsem.c | 130 + test/testshader.c | 500 + test/testshape.c | 201 + test/testsprite2.c | 401 + test/testspriteminimal.c | 194 + test/teststreaming.c | 190 + test/testthread.c | 98 + test/testtimer.c | 122 + test/testver.c | 47 + test/testviewport.c | 217 + test/testwm2.c | 159 + test/torturethread.c | 113 + test/utf8.txt | 287 + visualtest/COPYING.txt | 18 + visualtest/Makefile.in | 37 + visualtest/README.txt | 214 + visualtest/acinclude.m4 | 359 + visualtest/autogen.sh | 12 + visualtest/compile | 1 + visualtest/config.h | 23 + visualtest/config.h.in | 22 + .../testsprite2_blendmodes.actions | 3 + .../testsprite2_blendmodes.config | 5 + .../testsprite2_blendmodes.parameters | 5 + .../testsprite2_crashtest.actions | 1 + .../testsprite2_crashtest.config | 5 + .../testsprite2_crashtest.parameters | 24 + .../testsprite2_fullscreen.actions | 3 + .../testsprite2_fullscreen.config | 5 + .../testsprite2_fullscreen.parameters | 5 + .../testsprite2_geometry.actions | 3 + .../testsprite2_geometry.config | 5 + .../testsprite2_geometry.parameters | 5 + visualtest/configure | 5203 +++ visualtest/configure.in | 166 + visualtest/depcomp | 1 + visualtest/docs/Doxyfile | 1936 ++ .../SDL_visualtest_action_configparser.h | 147 + .../SDL_visualtest_exhaustive_variator.h | 62 + .../SDL_visualtest_harness_argparser.h | 73 + .../include/SDL_visualtest_mischelper.h | 26 + .../include/SDL_visualtest_parsehelper.h | 44 + visualtest/include/SDL_visualtest_process.h | 111 + .../include/SDL_visualtest_random_variator.h | 59 + visualtest/include/SDL_visualtest_rwhelper.h | 85 + .../include/SDL_visualtest_screenshot.h | 50 + .../include/SDL_visualtest_sut_configparser.h | 103 + .../include/SDL_visualtest_variator_common.h | 120 + visualtest/include/SDL_visualtest_variators.h | 64 + visualtest/install-sh | 1 + visualtest/launch_harness.cmd | 2 + visualtest/launch_harness.sh | 6 + visualtest/missing | 1 + visualtest/src/action_configparser.c | 396 + visualtest/src/harness_argparser.c | 358 + visualtest/src/linux/linux_process.c | 199 + visualtest/src/mischelper.c | 28 + visualtest/src/parsehelper.c | 231 + visualtest/src/rwhelper.c | 131 + visualtest/src/screenshot.c | 136 + visualtest/src/sut_configparser.c | 232 + visualtest/src/testharness.c | 533 + visualtest/src/variator_common.c | 225 + visualtest/src/variator_exhaustive.c | 132 + visualtest/src/variator_random.c | 111 + visualtest/src/variators.c | 93 + visualtest/src/windows/windows_process.c | 284 + visualtest/src/windows/windows_screenshot.c | 349 + visualtest/stamp-h1 | 1 + visualtest/testsprite2_sample.actions | 3 + visualtest/testsprite2_sample.config | 6 + visualtest/testsprite2_sample.parameters | 29 + visualtest/unittest/testquit.actions | 1 + visualtest/unittest/testquit.c | 101 + visualtest/unittest/testquit.config | 5 + visualtest/unittest/testquit.parameters | 3 + 1596 files changed, 468120 insertions(+) create mode 100644 .hgignore create mode 100755 Android.mk create mode 100644 BUGS.txt create mode 100644 CMakeLists.txt create mode 100644 COPYING.txt create mode 100644 CREDITS.txt create mode 100644 INSTALL.txt create mode 100644 Makefile.in create mode 100644 Makefile.minimal create mode 100644 Makefile.pandora create mode 100644 Makefile.psp create mode 100644 Makefile.wiz create mode 100644 README-SDL.txt create mode 100644 README.txt create mode 100644 SDL2.spec.in create mode 100644 TODO.txt create mode 100644 VisualC-WinRT/WinPhone80_VS2012/SDL-WinPhone80.vcxproj create mode 100644 VisualC-WinRT/WinPhone80_VS2012/SDL-WinPhone80.vcxproj.filters create mode 100644 VisualC-WinRT/WinPhone81_VS2013/SDL-WinPhone81.vcxproj create mode 100644 VisualC-WinRT/WinPhone81_VS2013/SDL-WinPhone81.vcxproj.filters create mode 100644 VisualC-WinRT/WinRT80_VS2012/SDL-WinRT80.sln create mode 100644 VisualC-WinRT/WinRT80_VS2012/SDL-WinRT80.vcxproj create mode 100644 VisualC-WinRT/WinRT80_VS2012/SDL-WinRT80.vcxproj.filters create mode 100644 VisualC-WinRT/WinRT81_VS2013/SDL-WinRT81.vcxproj create mode 100644 VisualC-WinRT/WinRT81_VS2013/SDL-WinRT81.vcxproj.filters create mode 100644 VisualC-WinRT/tests/loopwave/Assets/Logo.png create mode 100644 VisualC-WinRT/tests/loopwave/Assets/SmallLogo.png create mode 100644 VisualC-WinRT/tests/loopwave/Assets/SplashScreen.png create mode 100644 VisualC-WinRT/tests/loopwave/Assets/StoreLogo.png create mode 100644 VisualC-WinRT/tests/loopwave/Package.appxmanifest create mode 100644 VisualC-WinRT/tests/loopwave/loopwave_VS2012.vcxproj create mode 100644 VisualC-WinRT/tests/loopwave/loopwave_VS2012_TemporaryKey.pfx create mode 100644 VisualC-WinRT/tests/testthread/Assets/Logo.png create mode 100644 VisualC-WinRT/tests/testthread/Assets/SmallLogo.png create mode 100644 VisualC-WinRT/tests/testthread/Assets/SplashScreen.png create mode 100644 VisualC-WinRT/tests/testthread/Assets/StoreLogo.png create mode 100644 VisualC-WinRT/tests/testthread/Package.appxmanifest create mode 100644 VisualC-WinRT/tests/testthread/testthread_VS2012.vcxproj create mode 100644 VisualC-WinRT/tests/testthread/testthread_VS2012_TemporaryKey.pfx create mode 100644 VisualC.html create mode 100644 VisualC/SDL.sln create mode 100644 VisualC/SDL/SDL.vcxproj create mode 100644 VisualC/SDL/SDL.vcxproj.filters create mode 100644 VisualC/SDL/SDL_VS2008.vcproj create mode 100644 VisualC/SDL_VS2008.sln create mode 100644 VisualC/SDLmain/SDLmain.vcxproj create mode 100644 VisualC/SDLmain/SDLmain_VS2008.vcproj create mode 100644 VisualC/SDLtest/SDLtest.vcxproj create mode 100644 VisualC/SDLtest/SDLtest_VS2008.vcproj create mode 100755 VisualC/clean.sh create mode 100644 VisualC/tests/checkkeys/checkkeys.vcxproj create mode 100644 VisualC/tests/checkkeys/checkkeys_VS2008.vcproj create mode 100644 VisualC/tests/controllermap/controllermap.vcxproj create mode 100644 VisualC/tests/controllermap/controllermap_VS2008.vcproj create mode 100644 VisualC/tests/loopwave/loopwave.vcxproj create mode 100644 VisualC/tests/loopwave/loopwave_VS2008.vcproj create mode 100644 VisualC/tests/testatomic/testatomic.vcxproj create mode 100644 VisualC/tests/testatomic/testatomic_VS2008.vcproj create mode 100644 VisualC/tests/testautomation/testautomation.vcxproj create mode 100755 VisualC/tests/testautomation/testautomation_VS2008.vcproj create mode 100644 VisualC/tests/testdraw2/testdraw2.vcxproj create mode 100644 VisualC/tests/testdraw2/testdraw2_VS2008.vcproj create mode 100644 VisualC/tests/testfile/testfile.vcxproj create mode 100644 VisualC/tests/testfile/testfile_VS2008.vcproj create mode 100644 VisualC/tests/testgamecontroller/testgamecontroller.vcxproj create mode 100644 VisualC/tests/testgamecontroller/testgamecontroller_VS2008.vcproj create mode 100644 VisualC/tests/testgesture/testgesture.vcxproj create mode 100644 VisualC/tests/testgesture/testgesture_VS2008.vcproj create mode 100644 VisualC/tests/testgl2/testgl2.vcxproj create mode 100644 VisualC/tests/testgl2/testgl2_VS2008.vcproj create mode 100644 VisualC/tests/testgles2/testgles2.vcxproj create mode 100644 VisualC/tests/testgles2/testgles2_VS2008.vcproj create mode 100644 VisualC/tests/testjoystick/testjoystick.vcxproj create mode 100644 VisualC/tests/testjoystick/testjoystick_VS2008.vcproj create mode 100644 VisualC/tests/testoverlay2/testoverlay2.vcxproj create mode 100644 VisualC/tests/testoverlay2/testoverlay2_VS2008.vcproj create mode 100644 VisualC/tests/testplatform/testplatform.vcxproj create mode 100644 VisualC/tests/testplatform/testplatform_VS2008.vcproj create mode 100644 VisualC/tests/testpower/testpower.vcxproj create mode 100644 VisualC/tests/testpower/testpower_VS2008.vcproj create mode 100644 VisualC/tests/testrendertarget/testrendertarget.vcxproj create mode 100644 VisualC/tests/testrendertarget/testrendertarget_VS2008.vcproj create mode 100644 VisualC/tests/testrumble/testrumble.vcxproj create mode 100644 VisualC/tests/testrumble/testrumble_VS2008.vcproj create mode 100644 VisualC/tests/testscale/testscale.vcxproj create mode 100644 VisualC/tests/testscale/testscale_VS2008.vcproj create mode 100644 VisualC/tests/testshape/testshape.vcxproj create mode 100644 VisualC/tests/testshape/testshape_VS2008.vcproj create mode 100644 VisualC/tests/testsprite2/testsprite2.vcxproj create mode 100644 VisualC/tests/testsprite2/testsprite2_VS2008.vcproj create mode 100755 VisualC/visualtest/unittest/testquit/testquit_VS2012.vcxproj create mode 100755 VisualC/visualtest/visualtest_VS2012.vcxproj create mode 100644 WhatsNew.txt create mode 100644 Xcode-iOS/Demos/Default.png create mode 100755 Xcode-iOS/Demos/Demos.xcodeproj/project.pbxproj create mode 100644 Xcode-iOS/Demos/Icon.png create mode 100644 Xcode-iOS/Demos/Info.plist create mode 100644 Xcode-iOS/Demos/README create mode 100644 Xcode-iOS/Demos/data/bitmapfont/kromasky_16x16.bmp create mode 100755 Xcode-iOS/Demos/data/bitmapfont/license.txt create mode 100644 Xcode-iOS/Demos/data/drums/ds_brush_snare.wav create mode 100644 Xcode-iOS/Demos/data/drums/ds_china.wav create mode 100644 Xcode-iOS/Demos/data/drums/ds_kick_big_amb.wav create mode 100644 Xcode-iOS/Demos/data/drums/ds_loose_skin_mute.wav create mode 100644 Xcode-iOS/Demos/data/icon.bmp create mode 100644 Xcode-iOS/Demos/data/ship.bmp create mode 100644 Xcode-iOS/Demos/data/space.bmp create mode 100644 Xcode-iOS/Demos/data/stroke.bmp create mode 100644 Xcode-iOS/Demos/src/accelerometer.c create mode 100644 Xcode-iOS/Demos/src/common.c create mode 100644 Xcode-iOS/Demos/src/common.h create mode 100644 Xcode-iOS/Demos/src/fireworks.c create mode 100644 Xcode-iOS/Demos/src/happy.c create mode 100644 Xcode-iOS/Demos/src/keyboard.c create mode 100644 Xcode-iOS/Demos/src/mixer.c create mode 100644 Xcode-iOS/Demos/src/rectangles.c create mode 100644 Xcode-iOS/Demos/src/touch.c create mode 100755 Xcode-iOS/SDL/SDL.xcodeproj/project.pbxproj create mode 100644 Xcode-iOS/SDLtest/SDL2test.xcodeproj/project.pbxproj create mode 100644 Xcode-iOS/Template/SDL iOS Application/Default-568h@2x.png create mode 100644 Xcode-iOS/Template/SDL iOS Application/Default.png create mode 100644 Xcode-iOS/Template/SDL iOS Application/Icon.png create mode 100644 Xcode-iOS/Template/SDL iOS Application/Info.plist create mode 100644 Xcode-iOS/Template/SDL iOS Application/___PROJECTNAME___.xcodeproj/TemplateIcon.icns create mode 100644 Xcode-iOS/Template/SDL iOS Application/___PROJECTNAME___.xcodeproj/TemplateInfo.plist create mode 100755 Xcode-iOS/Template/SDL iOS Application/___PROJECTNAME___.xcodeproj/project.pbxproj create mode 100644 Xcode-iOS/Template/SDL iOS Application/___PROJECTNAME___.xcodeproj/project.xcworkspace/contents.xcworkspacedata create mode 100644 Xcode-iOS/Template/SDL iOS Application/main.c create mode 100644 Xcode-iOS/Test/Info.plist create mode 100644 Xcode-iOS/Test/README create mode 100755 Xcode-iOS/Test/TestiPhoneOS.xcodeproj/project.pbxproj create mode 100644 Xcode/SDL/Info-Framework.plist create mode 100755 Xcode/SDL/SDL.xcodeproj/project.pbxproj create mode 100755 Xcode/SDL/pkg-support/SDL.info create mode 100644 Xcode/SDL/pkg-support/resources/License.txt create mode 100755 Xcode/SDL/pkg-support/resources/ReadMe.txt create mode 100644 Xcode/SDL/pkg-support/resources/SDL_DS_Store create mode 100644 Xcode/SDL/pkg-support/sdl_logo.pdf create mode 100755 Xcode/SDLTest/SDLTest.xcodeproj/project.pbxproj create mode 100644 Xcode/SDLTest/TestDropFile-Info.plist create mode 100644 Xcode/XcodeDocSet/Doxyfile create mode 100644 acinclude/ac_check_define.m4 create mode 100644 acinclude/alsa.m4 create mode 100644 acinclude/ax_check_compiler_flags.m4 create mode 100644 acinclude/ax_gcc_archflag.m4 create mode 100644 acinclude/ax_gcc_x86_cpuid.m4.htm create mode 100644 acinclude/esd.m4 create mode 100644 acinclude/libtool.m4 create mode 100644 acinclude/ltoptions.m4 create mode 100644 acinclude/ltsugar.m4 create mode 100644 acinclude/ltversion.m4 create mode 100644 acinclude/lt~obsolete.m4 create mode 100644 android-project/AndroidManifest.xml create mode 100644 android-project/ant.properties create mode 100644 android-project/build.properties create mode 100644 android-project/build.xml create mode 100644 android-project/default.properties create mode 100644 android-project/jni/Android.mk create mode 100644 android-project/jni/Application.mk create mode 100644 android-project/jni/src/Android.mk create mode 100644 android-project/jni/src/Android_static.mk create mode 100644 android-project/proguard-project.txt create mode 100644 android-project/project.properties create mode 100644 android-project/res/drawable-hdpi/ic_launcher.png create mode 100644 android-project/res/drawable-mdpi/ic_launcher.png create mode 100644 android-project/res/drawable-xhdpi/ic_launcher.png create mode 100644 android-project/res/drawable-xxhdpi/ic_launcher.png create mode 100644 android-project/res/layout/main.xml create mode 100644 android-project/res/values/strings.xml create mode 100644 android-project/src/org/libsdl/app/SDLActivity.java create mode 100755 autogen.sh create mode 100755 build-scripts/androidbuild.sh create mode 100755 build-scripts/checker-buildbot.sh create mode 100644 build-scripts/config.guess create mode 100644 build-scripts/config.sub create mode 100755 build-scripts/emscripten-buildbot.sh create mode 100755 build-scripts/g++-fat.sh create mode 100755 build-scripts/gcc-fat.sh create mode 100755 build-scripts/install-sh create mode 100755 build-scripts/iosbuild.sh create mode 100755 build-scripts/ltmain.sh create mode 100755 build-scripts/mkinstalldirs create mode 100755 build-scripts/nacl-buildbot.sh create mode 100755 build-scripts/naclbuild.sh create mode 100755 build-scripts/raspberrypi-buildbot.sh create mode 100755 build-scripts/showrev.sh create mode 100755 build-scripts/strip_fPIC.sh create mode 100755 build-scripts/update-copyright.sh create mode 100755 build-scripts/updaterev.sh create mode 100644 build-scripts/windows-buildbot-zipper.bat create mode 100644 build-scripts/winrtbuild.bat create mode 100644 build-scripts/winrtbuild.ps1 create mode 100644 cmake/macros.cmake create mode 100644 cmake/sdlchecks.cmake create mode 100644 cmake_uninstall.cmake.in create mode 100755 configure create mode 100644 configure.in create mode 100644 debian/changelog create mode 100644 debian/compat create mode 100644 debian/control create mode 100644 debian/copyright create mode 100644 debian/docs create mode 100644 debian/libsdl2-dev.install create mode 100644 debian/libsdl2-dev.manpages create mode 100644 debian/libsdl2.install create mode 100755 debian/rules create mode 100644 debian/sdl2-config.1 create mode 100644 debian/source/format create mode 100644 debian/watch create mode 100644 docs/README-android.md create mode 100644 docs/README-cmake.md create mode 100644 docs/README-directfb.md create mode 100644 docs/README-dynapi.md create mode 100644 docs/README-emscripten.md create mode 100644 docs/README-gesture.md create mode 100644 docs/README-hg.md create mode 100644 docs/README-ios.md create mode 100644 docs/README-linux.md create mode 100644 docs/README-macosx.md create mode 100644 docs/README-nacl.md create mode 100644 docs/README-pandora.md create mode 100644 docs/README-platforms.md create mode 100644 docs/README-porting.md create mode 100644 docs/README-psp.md create mode 100644 docs/README-raspberrypi.md create mode 100644 docs/README-touch.md create mode 100644 docs/README-wince.md create mode 100644 docs/README-windows.md create mode 100644 docs/README-winrt.md create mode 100644 docs/README.md create mode 100644 docs/doxyfile create mode 100644 include/SDL.h create mode 100644 include/SDL_assert.h create mode 100644 include/SDL_atomic.h create mode 100644 include/SDL_audio.h create mode 100644 include/SDL_bits.h create mode 100644 include/SDL_blendmode.h create mode 100644 include/SDL_clipboard.h create mode 100644 include/SDL_config.h create mode 100644 include/SDL_config.h.cmake create mode 100644 include/SDL_config.h.in create mode 100644 include/SDL_config_android.h create mode 100644 include/SDL_config_iphoneos.h create mode 100644 include/SDL_config_macosx.h create mode 100644 include/SDL_config_minimal.h create mode 100644 include/SDL_config_pandora.h create mode 100644 include/SDL_config_psp.h create mode 100644 include/SDL_config_windows.h create mode 100644 include/SDL_config_winrt.h create mode 100644 include/SDL_config_wiz.h create mode 100644 include/SDL_copying.h create mode 100644 include/SDL_cpuinfo.h create mode 100644 include/SDL_egl.h create mode 100644 include/SDL_endian.h create mode 100644 include/SDL_error.h create mode 100644 include/SDL_events.h create mode 100644 include/SDL_filesystem.h create mode 100644 include/SDL_gamecontroller.h create mode 100644 include/SDL_gesture.h create mode 100644 include/SDL_haptic.h create mode 100644 include/SDL_hints.h create mode 100644 include/SDL_joystick.h create mode 100644 include/SDL_keyboard.h create mode 100644 include/SDL_keycode.h create mode 100644 include/SDL_loadso.h create mode 100644 include/SDL_log.h create mode 100644 include/SDL_main.h create mode 100644 include/SDL_messagebox.h create mode 100644 include/SDL_mouse.h create mode 100644 include/SDL_mutex.h create mode 100644 include/SDL_name.h create mode 100644 include/SDL_opengl.h create mode 100644 include/SDL_opengl_glext.h create mode 100644 include/SDL_opengles.h create mode 100644 include/SDL_opengles2.h create mode 100644 include/SDL_opengles2_gl2.h create mode 100644 include/SDL_opengles2_gl2ext.h create mode 100644 include/SDL_opengles2_gl2platform.h create mode 100644 include/SDL_opengles2_khrplatform.h create mode 100644 include/SDL_pixels.h create mode 100644 include/SDL_platform.h create mode 100644 include/SDL_power.h create mode 100644 include/SDL_quit.h create mode 100644 include/SDL_rect.h create mode 100644 include/SDL_render.h create mode 100644 include/SDL_revision.h create mode 100644 include/SDL_rwops.h create mode 100644 include/SDL_scancode.h create mode 100644 include/SDL_shape.h create mode 100644 include/SDL_stdinc.h create mode 100644 include/SDL_surface.h create mode 100644 include/SDL_system.h create mode 100644 include/SDL_syswm.h create mode 100644 include/SDL_test.h create mode 100644 include/SDL_test_assert.h create mode 100644 include/SDL_test_common.h create mode 100644 include/SDL_test_compare.h create mode 100644 include/SDL_test_crc32.h create mode 100644 include/SDL_test_font.h create mode 100644 include/SDL_test_fuzzer.h create mode 100644 include/SDL_test_harness.h create mode 100644 include/SDL_test_images.h create mode 100644 include/SDL_test_log.h create mode 100644 include/SDL_test_md5.h create mode 100644 include/SDL_test_random.h create mode 100644 include/SDL_thread.h create mode 100644 include/SDL_timer.h create mode 100644 include/SDL_touch.h create mode 100644 include/SDL_types.h create mode 100644 include/SDL_version.h create mode 100644 include/SDL_video.h create mode 100644 include/begin_code.h create mode 100644 include/close_code.h create mode 100755 premake/Cygwin/build-scripts/clean_premake.bat create mode 100755 premake/Cygwin/build-scripts/cygwin.bat create mode 100755 premake/Cygwin/build-scripts/make.debug.bat create mode 100755 premake/Cygwin/build-scripts/make.release.bat create mode 100755 premake/Cygwin/build-scripts/premake4.exe create mode 100755 premake/Cygwin/build-scripts/run.tests.debug.bat create mode 100755 premake/Cygwin/build-scripts/run.tests.release.bat create mode 100644 premake/Linux/SDL_config_premake.h create mode 100755 premake/Linux/build-scripts/clean_premake.sh create mode 100755 premake/Linux/build-scripts/gmake.sh create mode 100755 premake/Linux/build-scripts/premake4 create mode 100755 premake/Linux/build-scripts/run.tests.sh create mode 100644 premake/MinGW/SDL_config_premake.h create mode 100755 premake/MinGW/build-scripts/clean_premake.bat create mode 100755 premake/MinGW/build-scripts/mingw.bat create mode 100755 premake/MinGW/build-scripts/premake4.exe create mode 100755 premake/MinGW/build-scripts/run.tests.bat create mode 100755 premake/README-cygwin.txt create mode 100755 premake/README-ios.txt create mode 100755 premake/README-linux.txt create mode 100755 premake/README-macosx.txt create mode 100755 premake/README-mingw.txt create mode 100755 premake/README-windows.txt create mode 100755 premake/README.txt create mode 100755 premake/VisualC/VS2008/SDL.sln create mode 100755 premake/VisualC/VS2008/SDL2/SDL2.vcproj create mode 100755 premake/VisualC/VS2008/SDL2main/SDL2main.vcproj create mode 100755 premake/VisualC/VS2008/SDL2test/SDL2test.vcproj create mode 100644 premake/VisualC/VS2008/SDL_config_premake.h create mode 100755 premake/VisualC/VS2008/tests/checkkeys/checkkeys.vcproj create mode 100755 premake/VisualC/VS2008/tests/loopwave/loopwave.vcproj create mode 100755 premake/VisualC/VS2008/tests/testatomic/testatomic.vcproj create mode 100755 premake/VisualC/VS2008/tests/testaudioinfo/testaudioinfo.vcproj create mode 100755 premake/VisualC/VS2008/tests/testautomation/testautomation.vcproj create mode 100755 premake/VisualC/VS2008/tests/testchessboard/testchessboard.vcproj create mode 100755 premake/VisualC/VS2008/tests/testdraw2/testdraw2.vcproj create mode 100755 premake/VisualC/VS2008/tests/testerror/testerror.vcproj create mode 100755 premake/VisualC/VS2008/tests/testfile/testfile.vcproj create mode 100755 premake/VisualC/VS2008/tests/testfilesystem/testfilesystem.vcproj create mode 100755 premake/VisualC/VS2008/tests/testgamecontroller/testgamecontroller.vcproj create mode 100755 premake/VisualC/VS2008/tests/testgesture/testgesture.vcproj create mode 100755 premake/VisualC/VS2008/tests/testgl2/testgl2.vcproj create mode 100755 premake/VisualC/VS2008/tests/testgles/testgles.vcproj create mode 100755 premake/VisualC/VS2008/tests/testhaptic/testhaptic.vcproj create mode 100755 premake/VisualC/VS2008/tests/testiconv/testiconv.vcproj create mode 100755 premake/VisualC/VS2008/tests/testime/testime.vcproj create mode 100755 premake/VisualC/VS2008/tests/testjoystick/testjoystick.vcproj create mode 100755 premake/VisualC/VS2008/tests/testkeys/testkeys.vcproj create mode 100755 premake/VisualC/VS2008/tests/testloadso/testloadso.vcproj create mode 100755 premake/VisualC/VS2008/tests/testlock/testlock.vcproj create mode 100755 premake/VisualC/VS2008/tests/testmessage/testmessage.vcproj create mode 100755 premake/VisualC/VS2008/tests/testmultiaudio/testmultiaudio.vcproj create mode 100755 premake/VisualC/VS2008/tests/testnative/testnative.vcproj create mode 100755 premake/VisualC/VS2008/tests/testoverlay2/testoverlay2.vcproj create mode 100755 premake/VisualC/VS2008/tests/testplatform/testplatform.vcproj create mode 100755 premake/VisualC/VS2008/tests/testpower/testpower.vcproj create mode 100755 premake/VisualC/VS2008/tests/testrelative/testrelative.vcproj create mode 100755 premake/VisualC/VS2008/tests/testrendercopyex/testrendercopyex.vcproj create mode 100755 premake/VisualC/VS2008/tests/testrendertarget/testrendertarget.vcproj create mode 100755 premake/VisualC/VS2008/tests/testresample/testresample.vcproj create mode 100755 premake/VisualC/VS2008/tests/testrumble/testrumble.vcproj create mode 100755 premake/VisualC/VS2008/tests/testscale/testscale.vcproj create mode 100755 premake/VisualC/VS2008/tests/testsem/testsem.vcproj create mode 100755 premake/VisualC/VS2008/tests/testshader/testshader.vcproj create mode 100755 premake/VisualC/VS2008/tests/testshape/testshape.vcproj create mode 100755 premake/VisualC/VS2008/tests/testsprite2/testsprite2.vcproj create mode 100755 premake/VisualC/VS2008/tests/testspriteminimal/testspriteminimal.vcproj create mode 100755 premake/VisualC/VS2008/tests/teststreaming/teststreaming.vcproj create mode 100755 premake/VisualC/VS2008/tests/testthread/testthread.vcproj create mode 100755 premake/VisualC/VS2008/tests/testtimer/testtimer.vcproj create mode 100755 premake/VisualC/VS2008/tests/testver/testver.vcproj create mode 100755 premake/VisualC/VS2008/tests/testwm2/testwm2.vcproj create mode 100755 premake/VisualC/VS2008/tests/torturethread/torturethread.vcproj create mode 100755 premake/VisualC/VS2010/SDL.sln create mode 100755 premake/VisualC/VS2010/SDL2/SDL2.vcxproj create mode 100755 premake/VisualC/VS2010/SDL2/SDL2.vcxproj.filters create mode 100755 premake/VisualC/VS2010/SDL2main/SDL2main.vcxproj create mode 100755 premake/VisualC/VS2010/SDL2main/SDL2main.vcxproj.filters create mode 100755 premake/VisualC/VS2010/SDL2test/SDL2test.vcxproj create mode 100755 premake/VisualC/VS2010/SDL2test/SDL2test.vcxproj.filters create mode 100644 premake/VisualC/VS2010/SDL_config_premake.h create mode 100755 premake/VisualC/VS2010/tests/checkkeys/checkkeys.vcxproj create mode 100755 premake/VisualC/VS2010/tests/checkkeys/checkkeys.vcxproj.filters create mode 100755 premake/VisualC/VS2010/tests/loopwave/loopwave.vcxproj create mode 100755 premake/VisualC/VS2010/tests/loopwave/loopwave.vcxproj.filters create mode 100755 premake/VisualC/VS2010/tests/testatomic/testatomic.vcxproj create mode 100755 premake/VisualC/VS2010/tests/testatomic/testatomic.vcxproj.filters create mode 100755 premake/VisualC/VS2010/tests/testaudioinfo/testaudioinfo.vcxproj create mode 100755 premake/VisualC/VS2010/tests/testaudioinfo/testaudioinfo.vcxproj.filters create mode 100755 premake/VisualC/VS2010/tests/testautomation/testautomation.vcxproj create mode 100755 premake/VisualC/VS2010/tests/testautomation/testautomation.vcxproj.filters create mode 100755 premake/VisualC/VS2010/tests/testchessboard/testchessboard.vcxproj create mode 100755 premake/VisualC/VS2010/tests/testchessboard/testchessboard.vcxproj.filters create mode 100755 premake/VisualC/VS2010/tests/testdraw2/testdraw2.vcxproj create mode 100755 premake/VisualC/VS2010/tests/testdraw2/testdraw2.vcxproj.filters create mode 100755 premake/VisualC/VS2010/tests/testerror/testerror.vcxproj create mode 100755 premake/VisualC/VS2010/tests/testerror/testerror.vcxproj.filters create mode 100755 premake/VisualC/VS2010/tests/testfile/testfile.vcxproj create mode 100755 premake/VisualC/VS2010/tests/testfile/testfile.vcxproj.filters create mode 100755 premake/VisualC/VS2010/tests/testfilesystem/testfilesystem.vcxproj create mode 100755 premake/VisualC/VS2010/tests/testfilesystem/testfilesystem.vcxproj.filters create mode 100755 premake/VisualC/VS2010/tests/testgamecontroller/testgamecontroller.vcxproj create mode 100755 premake/VisualC/VS2010/tests/testgamecontroller/testgamecontroller.vcxproj.filters create mode 100755 premake/VisualC/VS2010/tests/testgesture/testgesture.vcxproj create mode 100755 premake/VisualC/VS2010/tests/testgesture/testgesture.vcxproj.filters create mode 100755 premake/VisualC/VS2010/tests/testgl2/testgl2.vcxproj create mode 100755 premake/VisualC/VS2010/tests/testgl2/testgl2.vcxproj.filters create mode 100755 premake/VisualC/VS2010/tests/testgles/testgles.vcxproj create mode 100755 premake/VisualC/VS2010/tests/testgles/testgles.vcxproj.filters create mode 100755 premake/VisualC/VS2010/tests/testhaptic/testhaptic.vcxproj create mode 100755 premake/VisualC/VS2010/tests/testhaptic/testhaptic.vcxproj.filters create mode 100755 premake/VisualC/VS2010/tests/testiconv/testiconv.vcxproj create mode 100755 premake/VisualC/VS2010/tests/testiconv/testiconv.vcxproj.filters create mode 100755 premake/VisualC/VS2010/tests/testime/testime.vcxproj create mode 100755 premake/VisualC/VS2010/tests/testime/testime.vcxproj.filters create mode 100755 premake/VisualC/VS2010/tests/testjoystick/testjoystick.vcxproj create mode 100755 premake/VisualC/VS2010/tests/testjoystick/testjoystick.vcxproj.filters create mode 100755 premake/VisualC/VS2010/tests/testkeys/testkeys.vcxproj create mode 100755 premake/VisualC/VS2010/tests/testkeys/testkeys.vcxproj.filters create mode 100755 premake/VisualC/VS2010/tests/testloadso/testloadso.vcxproj create mode 100755 premake/VisualC/VS2010/tests/testloadso/testloadso.vcxproj.filters create mode 100755 premake/VisualC/VS2010/tests/testlock/testlock.vcxproj create mode 100755 premake/VisualC/VS2010/tests/testlock/testlock.vcxproj.filters create mode 100755 premake/VisualC/VS2010/tests/testmessage/testmessage.vcxproj create mode 100755 premake/VisualC/VS2010/tests/testmessage/testmessage.vcxproj.filters create mode 100755 premake/VisualC/VS2010/tests/testmultiaudio/testmultiaudio.vcxproj create mode 100755 premake/VisualC/VS2010/tests/testmultiaudio/testmultiaudio.vcxproj.filters create mode 100755 premake/VisualC/VS2010/tests/testnative/testnative.vcxproj create mode 100755 premake/VisualC/VS2010/tests/testnative/testnative.vcxproj.filters create mode 100755 premake/VisualC/VS2010/tests/testoverlay2/testoverlay2.vcxproj create mode 100755 premake/VisualC/VS2010/tests/testoverlay2/testoverlay2.vcxproj.filters create mode 100755 premake/VisualC/VS2010/tests/testplatform/testplatform.vcxproj create mode 100755 premake/VisualC/VS2010/tests/testplatform/testplatform.vcxproj.filters create mode 100755 premake/VisualC/VS2010/tests/testpower/testpower.vcxproj create mode 100755 premake/VisualC/VS2010/tests/testpower/testpower.vcxproj.filters create mode 100755 premake/VisualC/VS2010/tests/testrelative/testrelative.vcxproj create mode 100755 premake/VisualC/VS2010/tests/testrelative/testrelative.vcxproj.filters create mode 100755 premake/VisualC/VS2010/tests/testrendercopyex/testrendercopyex.vcxproj create mode 100755 premake/VisualC/VS2010/tests/testrendercopyex/testrendercopyex.vcxproj.filters create mode 100755 premake/VisualC/VS2010/tests/testrendertarget/testrendertarget.vcxproj create mode 100755 premake/VisualC/VS2010/tests/testrendertarget/testrendertarget.vcxproj.filters create mode 100755 premake/VisualC/VS2010/tests/testresample/testresample.vcxproj create mode 100755 premake/VisualC/VS2010/tests/testresample/testresample.vcxproj.filters create mode 100755 premake/VisualC/VS2010/tests/testrumble/testrumble.vcxproj create mode 100755 premake/VisualC/VS2010/tests/testrumble/testrumble.vcxproj.filters create mode 100755 premake/VisualC/VS2010/tests/testscale/testscale.vcxproj create mode 100755 premake/VisualC/VS2010/tests/testscale/testscale.vcxproj.filters create mode 100755 premake/VisualC/VS2010/tests/testsem/testsem.vcxproj create mode 100755 premake/VisualC/VS2010/tests/testsem/testsem.vcxproj.filters create mode 100755 premake/VisualC/VS2010/tests/testshader/testshader.vcxproj create mode 100755 premake/VisualC/VS2010/tests/testshader/testshader.vcxproj.filters create mode 100755 premake/VisualC/VS2010/tests/testshape/testshape.vcxproj create mode 100755 premake/VisualC/VS2010/tests/testshape/testshape.vcxproj.filters create mode 100755 premake/VisualC/VS2010/tests/testsprite2/testsprite2.vcxproj create mode 100755 premake/VisualC/VS2010/tests/testsprite2/testsprite2.vcxproj.filters create mode 100755 premake/VisualC/VS2010/tests/testspriteminimal/testspriteminimal.vcxproj create mode 100755 premake/VisualC/VS2010/tests/testspriteminimal/testspriteminimal.vcxproj.filters create mode 100755 premake/VisualC/VS2010/tests/teststreaming/teststreaming.vcxproj create mode 100755 premake/VisualC/VS2010/tests/teststreaming/teststreaming.vcxproj.filters create mode 100755 premake/VisualC/VS2010/tests/testthread/testthread.vcxproj create mode 100755 premake/VisualC/VS2010/tests/testthread/testthread.vcxproj.filters create mode 100755 premake/VisualC/VS2010/tests/testtimer/testtimer.vcxproj create mode 100755 premake/VisualC/VS2010/tests/testtimer/testtimer.vcxproj.filters create mode 100755 premake/VisualC/VS2010/tests/testver/testver.vcxproj create mode 100755 premake/VisualC/VS2010/tests/testver/testver.vcxproj.filters create mode 100755 premake/VisualC/VS2010/tests/testwm2/testwm2.vcxproj create mode 100755 premake/VisualC/VS2010/tests/testwm2/testwm2.vcxproj.filters create mode 100755 premake/VisualC/VS2010/tests/torturethread/torturethread.vcxproj create mode 100755 premake/VisualC/VS2010/tests/torturethread/torturethread.vcxproj.filters create mode 100755 premake/VisualC/VS2012/SDL.sln create mode 100755 premake/VisualC/VS2012/SDL2/SDL2.vcxproj create mode 100755 premake/VisualC/VS2012/SDL2/SDL2.vcxproj.filters create mode 100755 premake/VisualC/VS2012/SDL2main/SDL2main.vcxproj create mode 100755 premake/VisualC/VS2012/SDL2main/SDL2main.vcxproj.filters create mode 100755 premake/VisualC/VS2012/SDL2test/SDL2test.vcxproj create mode 100755 premake/VisualC/VS2012/SDL2test/SDL2test.vcxproj.filters create mode 100644 premake/VisualC/VS2012/SDL_config_premake.h create mode 100755 premake/VisualC/VS2012/tests/checkkeys/checkkeys.vcxproj create mode 100755 premake/VisualC/VS2012/tests/checkkeys/checkkeys.vcxproj.filters create mode 100755 premake/VisualC/VS2012/tests/loopwave/loopwave.vcxproj create mode 100755 premake/VisualC/VS2012/tests/loopwave/loopwave.vcxproj.filters create mode 100755 premake/VisualC/VS2012/tests/testatomic/testatomic.vcxproj create mode 100755 premake/VisualC/VS2012/tests/testatomic/testatomic.vcxproj.filters create mode 100755 premake/VisualC/VS2012/tests/testaudioinfo/testaudioinfo.vcxproj create mode 100755 premake/VisualC/VS2012/tests/testaudioinfo/testaudioinfo.vcxproj.filters create mode 100755 premake/VisualC/VS2012/tests/testautomation/testautomation.vcxproj create mode 100755 premake/VisualC/VS2012/tests/testautomation/testautomation.vcxproj.filters create mode 100755 premake/VisualC/VS2012/tests/testchessboard/testchessboard.vcxproj create mode 100755 premake/VisualC/VS2012/tests/testchessboard/testchessboard.vcxproj.filters create mode 100755 premake/VisualC/VS2012/tests/testdraw2/testdraw2.vcxproj create mode 100755 premake/VisualC/VS2012/tests/testdraw2/testdraw2.vcxproj.filters create mode 100755 premake/VisualC/VS2012/tests/testerror/testerror.vcxproj create mode 100755 premake/VisualC/VS2012/tests/testerror/testerror.vcxproj.filters create mode 100755 premake/VisualC/VS2012/tests/testfile/testfile.vcxproj create mode 100755 premake/VisualC/VS2012/tests/testfile/testfile.vcxproj.filters create mode 100755 premake/VisualC/VS2012/tests/testfilesystem/testfilesystem.vcxproj create mode 100755 premake/VisualC/VS2012/tests/testfilesystem/testfilesystem.vcxproj.filters create mode 100755 premake/VisualC/VS2012/tests/testgamecontroller/testgamecontroller.vcxproj create mode 100755 premake/VisualC/VS2012/tests/testgamecontroller/testgamecontroller.vcxproj.filters create mode 100755 premake/VisualC/VS2012/tests/testgesture/testgesture.vcxproj create mode 100755 premake/VisualC/VS2012/tests/testgesture/testgesture.vcxproj.filters create mode 100755 premake/VisualC/VS2012/tests/testgl2/testgl2.vcxproj create mode 100755 premake/VisualC/VS2012/tests/testgl2/testgl2.vcxproj.filters create mode 100755 premake/VisualC/VS2012/tests/testgles/testgles.vcxproj create mode 100755 premake/VisualC/VS2012/tests/testgles/testgles.vcxproj.filters create mode 100755 premake/VisualC/VS2012/tests/testhaptic/testhaptic.vcxproj create mode 100755 premake/VisualC/VS2012/tests/testhaptic/testhaptic.vcxproj.filters create mode 100755 premake/VisualC/VS2012/tests/testiconv/testiconv.vcxproj create mode 100755 premake/VisualC/VS2012/tests/testiconv/testiconv.vcxproj.filters create mode 100755 premake/VisualC/VS2012/tests/testime/testime.vcxproj create mode 100755 premake/VisualC/VS2012/tests/testime/testime.vcxproj.filters create mode 100755 premake/VisualC/VS2012/tests/testjoystick/testjoystick.vcxproj create mode 100755 premake/VisualC/VS2012/tests/testjoystick/testjoystick.vcxproj.filters create mode 100755 premake/VisualC/VS2012/tests/testkeys/testkeys.vcxproj create mode 100755 premake/VisualC/VS2012/tests/testkeys/testkeys.vcxproj.filters create mode 100755 premake/VisualC/VS2012/tests/testloadso/testloadso.vcxproj create mode 100755 premake/VisualC/VS2012/tests/testloadso/testloadso.vcxproj.filters create mode 100755 premake/VisualC/VS2012/tests/testlock/testlock.vcxproj create mode 100755 premake/VisualC/VS2012/tests/testlock/testlock.vcxproj.filters create mode 100755 premake/VisualC/VS2012/tests/testmessage/testmessage.vcxproj create mode 100755 premake/VisualC/VS2012/tests/testmessage/testmessage.vcxproj.filters create mode 100755 premake/VisualC/VS2012/tests/testmultiaudio/testmultiaudio.vcxproj create mode 100755 premake/VisualC/VS2012/tests/testmultiaudio/testmultiaudio.vcxproj.filters create mode 100755 premake/VisualC/VS2012/tests/testnative/testnative.vcxproj create mode 100755 premake/VisualC/VS2012/tests/testnative/testnative.vcxproj.filters create mode 100755 premake/VisualC/VS2012/tests/testoverlay2/testoverlay2.vcxproj create mode 100755 premake/VisualC/VS2012/tests/testoverlay2/testoverlay2.vcxproj.filters create mode 100755 premake/VisualC/VS2012/tests/testplatform/testplatform.vcxproj create mode 100755 premake/VisualC/VS2012/tests/testplatform/testplatform.vcxproj.filters create mode 100755 premake/VisualC/VS2012/tests/testpower/testpower.vcxproj create mode 100755 premake/VisualC/VS2012/tests/testpower/testpower.vcxproj.filters create mode 100755 premake/VisualC/VS2012/tests/testrelative/testrelative.vcxproj create mode 100755 premake/VisualC/VS2012/tests/testrelative/testrelative.vcxproj.filters create mode 100755 premake/VisualC/VS2012/tests/testrendercopyex/testrendercopyex.vcxproj create mode 100755 premake/VisualC/VS2012/tests/testrendercopyex/testrendercopyex.vcxproj.filters create mode 100755 premake/VisualC/VS2012/tests/testrendertarget/testrendertarget.vcxproj create mode 100755 premake/VisualC/VS2012/tests/testrendertarget/testrendertarget.vcxproj.filters create mode 100755 premake/VisualC/VS2012/tests/testresample/testresample.vcxproj create mode 100755 premake/VisualC/VS2012/tests/testresample/testresample.vcxproj.filters create mode 100755 premake/VisualC/VS2012/tests/testrumble/testrumble.vcxproj create mode 100755 premake/VisualC/VS2012/tests/testrumble/testrumble.vcxproj.filters create mode 100755 premake/VisualC/VS2012/tests/testscale/testscale.vcxproj create mode 100755 premake/VisualC/VS2012/tests/testscale/testscale.vcxproj.filters create mode 100755 premake/VisualC/VS2012/tests/testsem/testsem.vcxproj create mode 100755 premake/VisualC/VS2012/tests/testsem/testsem.vcxproj.filters create mode 100755 premake/VisualC/VS2012/tests/testshader/testshader.vcxproj create mode 100755 premake/VisualC/VS2012/tests/testshader/testshader.vcxproj.filters create mode 100755 premake/VisualC/VS2012/tests/testshape/testshape.vcxproj create mode 100755 premake/VisualC/VS2012/tests/testshape/testshape.vcxproj.filters create mode 100755 premake/VisualC/VS2012/tests/testsprite2/testsprite2.vcxproj create mode 100755 premake/VisualC/VS2012/tests/testsprite2/testsprite2.vcxproj.filters create mode 100755 premake/VisualC/VS2012/tests/testspriteminimal/testspriteminimal.vcxproj create mode 100755 premake/VisualC/VS2012/tests/testspriteminimal/testspriteminimal.vcxproj.filters create mode 100755 premake/VisualC/VS2012/tests/teststreaming/teststreaming.vcxproj create mode 100755 premake/VisualC/VS2012/tests/teststreaming/teststreaming.vcxproj.filters create mode 100755 premake/VisualC/VS2012/tests/testthread/testthread.vcxproj create mode 100755 premake/VisualC/VS2012/tests/testthread/testthread.vcxproj.filters create mode 100755 premake/VisualC/VS2012/tests/testtimer/testtimer.vcxproj create mode 100755 premake/VisualC/VS2012/tests/testtimer/testtimer.vcxproj.filters create mode 100755 premake/VisualC/VS2012/tests/testver/testver.vcxproj create mode 100755 premake/VisualC/VS2012/tests/testver/testver.vcxproj.filters create mode 100755 premake/VisualC/VS2012/tests/testwm2/testwm2.vcxproj create mode 100755 premake/VisualC/VS2012/tests/testwm2/testwm2.vcxproj.filters create mode 100755 premake/VisualC/VS2012/tests/torturethread/torturethread.vcxproj create mode 100755 premake/VisualC/VS2012/tests/torturethread/torturethread.vcxproj.filters create mode 100755 premake/VisualC/build-scripts/build.all.vs2010.bat create mode 100755 premake/VisualC/build-scripts/check.bin.compatibility.vs2010.bat create mode 100755 premake/VisualC/build-scripts/clean_premake.bat create mode 100755 premake/VisualC/build-scripts/generate.all.bat create mode 100755 premake/VisualC/build-scripts/premake4.exe create mode 100755 premake/VisualC/build-scripts/run.tests.vs2010.bat create mode 100755 premake/VisualC/build-scripts/vs2008.bat create mode 100755 premake/VisualC/build-scripts/vs2010.bat create mode 100755 premake/VisualC/build-scripts/vs2012.bat create mode 100755 premake/Xcode-iOS/Demos/accelerometer/accelerometer.xcodeproj/project.pbxproj create mode 100755 premake/Xcode-iOS/Demos/fireworks/fireworks.xcodeproj/project.pbxproj create mode 100755 premake/Xcode-iOS/Demos/happy/happy.xcodeproj/project.pbxproj create mode 100755 premake/Xcode-iOS/Demos/keyboard/keyboard.xcodeproj/project.pbxproj create mode 100755 premake/Xcode-iOS/Demos/mixer/mixer.xcodeproj/project.pbxproj create mode 100755 premake/Xcode-iOS/Demos/rectangles/rectangles.xcodeproj/project.pbxproj create mode 100755 premake/Xcode-iOS/Demos/touch/touch.xcodeproj/project.pbxproj create mode 100755 premake/Xcode-iOS/SDL.xcworkspace/contents.xcworkspacedata create mode 100755 premake/Xcode-iOS/SDL2/SDL2.xcodeproj/project.pbxproj create mode 100755 premake/Xcode-iOS/SDL2main/SDL2main.xcodeproj/project.pbxproj create mode 100755 premake/Xcode-iOS/SDL2test/SDL2test.xcodeproj/project.pbxproj create mode 100644 premake/Xcode-iOS/SDL_config_premake.h create mode 100755 premake/Xcode-iOS/build-scripts/clean_premake.command create mode 100755 premake/Xcode-iOS/build-scripts/premake4 create mode 100755 premake/Xcode-iOS/build-scripts/xcode3.command create mode 100755 premake/Xcode-iOS/build-scripts/xcode4.command create mode 100755 premake/Xcode/Xcode3/SDL2/SDL2.xcodeproj/project.pbxproj create mode 100755 premake/Xcode/Xcode3/SDL2main/SDL2main.xcodeproj/project.pbxproj create mode 100755 premake/Xcode/Xcode3/SDL2test/SDL2test.xcodeproj/project.pbxproj create mode 100644 premake/Xcode/Xcode3/SDL_config_premake.h create mode 100755 premake/Xcode/Xcode3/tests/checkkeys/checkkeys.xcodeproj/project.pbxproj create mode 100755 premake/Xcode/Xcode3/tests/loopwave/loopwave.xcodeproj/project.pbxproj create mode 100755 premake/Xcode/Xcode3/tests/testatomic/testatomic.xcodeproj/project.pbxproj create mode 100755 premake/Xcode/Xcode3/tests/testaudioinfo/testaudioinfo.xcodeproj/project.pbxproj create mode 100755 premake/Xcode/Xcode3/tests/testautomation/testautomation.xcodeproj/project.pbxproj create mode 100755 premake/Xcode/Xcode3/tests/testchessboard/testchessboard.xcodeproj/project.pbxproj create mode 100755 premake/Xcode/Xcode3/tests/testdraw2/testdraw2.xcodeproj/project.pbxproj create mode 100755 premake/Xcode/Xcode3/tests/testerror/testerror.xcodeproj/project.pbxproj create mode 100755 premake/Xcode/Xcode3/tests/testfile/testfile.xcodeproj/project.pbxproj create mode 100755 premake/Xcode/Xcode3/tests/testfilesystem/testfilesystem.xcodeproj/project.pbxproj create mode 100755 premake/Xcode/Xcode3/tests/testgamecontroller/testgamecontroller.xcodeproj/project.pbxproj create mode 100755 premake/Xcode/Xcode3/tests/testgesture/testgesture.xcodeproj/project.pbxproj create mode 100755 premake/Xcode/Xcode3/tests/testgl2/testgl2.xcodeproj/project.pbxproj create mode 100755 premake/Xcode/Xcode3/tests/testgles/testgles.xcodeproj/project.pbxproj create mode 100755 premake/Xcode/Xcode3/tests/testhaptic/testhaptic.xcodeproj/project.pbxproj create mode 100755 premake/Xcode/Xcode3/tests/testiconv/testiconv.xcodeproj/project.pbxproj create mode 100755 premake/Xcode/Xcode3/tests/testime/testime.xcodeproj/project.pbxproj create mode 100755 premake/Xcode/Xcode3/tests/testjoystick/testjoystick.xcodeproj/project.pbxproj create mode 100755 premake/Xcode/Xcode3/tests/testkeys/testkeys.xcodeproj/project.pbxproj create mode 100755 premake/Xcode/Xcode3/tests/testloadso/testloadso.xcodeproj/project.pbxproj create mode 100755 premake/Xcode/Xcode3/tests/testlock/testlock.xcodeproj/project.pbxproj create mode 100755 premake/Xcode/Xcode3/tests/testmessage/testmessage.xcodeproj/project.pbxproj create mode 100755 premake/Xcode/Xcode3/tests/testmultiaudio/testmultiaudio.xcodeproj/project.pbxproj create mode 100755 premake/Xcode/Xcode3/tests/testnative/testnative.xcodeproj/project.pbxproj create mode 100755 premake/Xcode/Xcode3/tests/testoverlay2/testoverlay2.xcodeproj/project.pbxproj create mode 100755 premake/Xcode/Xcode3/tests/testplatform/testplatform.xcodeproj/project.pbxproj create mode 100755 premake/Xcode/Xcode3/tests/testpower/testpower.xcodeproj/project.pbxproj create mode 100755 premake/Xcode/Xcode3/tests/testrelative/testrelative.xcodeproj/project.pbxproj create mode 100755 premake/Xcode/Xcode3/tests/testrendercopyex/testrendercopyex.xcodeproj/project.pbxproj create mode 100755 premake/Xcode/Xcode3/tests/testrendertarget/testrendertarget.xcodeproj/project.pbxproj create mode 100755 premake/Xcode/Xcode3/tests/testresample/testresample.xcodeproj/project.pbxproj create mode 100755 premake/Xcode/Xcode3/tests/testrumble/testrumble.xcodeproj/project.pbxproj create mode 100755 premake/Xcode/Xcode3/tests/testscale/testscale.xcodeproj/project.pbxproj create mode 100755 premake/Xcode/Xcode3/tests/testsem/testsem.xcodeproj/project.pbxproj create mode 100755 premake/Xcode/Xcode3/tests/testshader/testshader.xcodeproj/project.pbxproj create mode 100755 premake/Xcode/Xcode3/tests/testshape/testshape.xcodeproj/project.pbxproj create mode 100755 premake/Xcode/Xcode3/tests/testsprite2/testsprite2.xcodeproj/project.pbxproj create mode 100755 premake/Xcode/Xcode3/tests/testspriteminimal/testspriteminimal.xcodeproj/project.pbxproj create mode 100755 premake/Xcode/Xcode3/tests/teststreaming/teststreaming.xcodeproj/project.pbxproj create mode 100755 premake/Xcode/Xcode3/tests/testthread/testthread.xcodeproj/project.pbxproj create mode 100755 premake/Xcode/Xcode3/tests/testtimer/testtimer.xcodeproj/project.pbxproj create mode 100755 premake/Xcode/Xcode3/tests/testver/testver.xcodeproj/project.pbxproj create mode 100755 premake/Xcode/Xcode3/tests/testwm2/testwm2.xcodeproj/project.pbxproj create mode 100755 premake/Xcode/Xcode3/tests/torturethread/torturethread.xcodeproj/project.pbxproj create mode 100755 premake/Xcode/Xcode4/SDL.xcworkspace/contents.xcworkspacedata create mode 100755 premake/Xcode/Xcode4/SDL2/SDL2.xcodeproj/project.pbxproj create mode 100755 premake/Xcode/Xcode4/SDL2main/SDL2main.xcodeproj/project.pbxproj create mode 100755 premake/Xcode/Xcode4/SDL2test/SDL2test.xcodeproj/project.pbxproj create mode 100644 premake/Xcode/Xcode4/SDL_config_premake.h create mode 100755 premake/Xcode/Xcode4/tests/checkkeys/checkkeys.xcodeproj/project.pbxproj create mode 100755 premake/Xcode/Xcode4/tests/loopwave/loopwave.xcodeproj/project.pbxproj create mode 100755 premake/Xcode/Xcode4/tests/testatomic/testatomic.xcodeproj/project.pbxproj create mode 100755 premake/Xcode/Xcode4/tests/testaudioinfo/testaudioinfo.xcodeproj/project.pbxproj create mode 100755 premake/Xcode/Xcode4/tests/testautomation/testautomation.xcodeproj/project.pbxproj create mode 100755 premake/Xcode/Xcode4/tests/testchessboard/testchessboard.xcodeproj/project.pbxproj create mode 100755 premake/Xcode/Xcode4/tests/testdraw2/testdraw2.xcodeproj/project.pbxproj create mode 100755 premake/Xcode/Xcode4/tests/testerror/testerror.xcodeproj/project.pbxproj create mode 100755 premake/Xcode/Xcode4/tests/testfile/testfile.xcodeproj/project.pbxproj create mode 100755 premake/Xcode/Xcode4/tests/testfilesystem/testfilesystem.xcodeproj/project.pbxproj create mode 100755 premake/Xcode/Xcode4/tests/testgamecontroller/testgamecontroller.xcodeproj/project.pbxproj create mode 100755 premake/Xcode/Xcode4/tests/testgesture/testgesture.xcodeproj/project.pbxproj create mode 100755 premake/Xcode/Xcode4/tests/testgl2/testgl2.xcodeproj/project.pbxproj create mode 100755 premake/Xcode/Xcode4/tests/testgles/testgles.xcodeproj/project.pbxproj create mode 100755 premake/Xcode/Xcode4/tests/testhaptic/testhaptic.xcodeproj/project.pbxproj create mode 100755 premake/Xcode/Xcode4/tests/testiconv/testiconv.xcodeproj/project.pbxproj create mode 100755 premake/Xcode/Xcode4/tests/testime/testime.xcodeproj/project.pbxproj create mode 100755 premake/Xcode/Xcode4/tests/testjoystick/testjoystick.xcodeproj/project.pbxproj create mode 100755 premake/Xcode/Xcode4/tests/testkeys/testkeys.xcodeproj/project.pbxproj create mode 100755 premake/Xcode/Xcode4/tests/testloadso/testloadso.xcodeproj/project.pbxproj create mode 100755 premake/Xcode/Xcode4/tests/testlock/testlock.xcodeproj/project.pbxproj create mode 100755 premake/Xcode/Xcode4/tests/testmessage/testmessage.xcodeproj/project.pbxproj create mode 100755 premake/Xcode/Xcode4/tests/testmultiaudio/testmultiaudio.xcodeproj/project.pbxproj create mode 100755 premake/Xcode/Xcode4/tests/testnative/testnative.xcodeproj/project.pbxproj create mode 100755 premake/Xcode/Xcode4/tests/testoverlay2/testoverlay2.xcodeproj/project.pbxproj create mode 100755 premake/Xcode/Xcode4/tests/testplatform/testplatform.xcodeproj/project.pbxproj create mode 100755 premake/Xcode/Xcode4/tests/testpower/testpower.xcodeproj/project.pbxproj create mode 100755 premake/Xcode/Xcode4/tests/testrelative/testrelative.xcodeproj/project.pbxproj create mode 100755 premake/Xcode/Xcode4/tests/testrendercopyex/testrendercopyex.xcodeproj/project.pbxproj create mode 100755 premake/Xcode/Xcode4/tests/testrendertarget/testrendertarget.xcodeproj/project.pbxproj create mode 100755 premake/Xcode/Xcode4/tests/testresample/testresample.xcodeproj/project.pbxproj create mode 100755 premake/Xcode/Xcode4/tests/testrumble/testrumble.xcodeproj/project.pbxproj create mode 100755 premake/Xcode/Xcode4/tests/testscale/testscale.xcodeproj/project.pbxproj create mode 100755 premake/Xcode/Xcode4/tests/testsem/testsem.xcodeproj/project.pbxproj create mode 100755 premake/Xcode/Xcode4/tests/testshader/testshader.xcodeproj/project.pbxproj create mode 100755 premake/Xcode/Xcode4/tests/testshape/testshape.xcodeproj/project.pbxproj create mode 100755 premake/Xcode/Xcode4/tests/testsprite2/testsprite2.xcodeproj/project.pbxproj create mode 100755 premake/Xcode/Xcode4/tests/testspriteminimal/testspriteminimal.xcodeproj/project.pbxproj create mode 100755 premake/Xcode/Xcode4/tests/teststreaming/teststreaming.xcodeproj/project.pbxproj create mode 100755 premake/Xcode/Xcode4/tests/testthread/testthread.xcodeproj/project.pbxproj create mode 100755 premake/Xcode/Xcode4/tests/testtimer/testtimer.xcodeproj/project.pbxproj create mode 100755 premake/Xcode/Xcode4/tests/testver/testver.xcodeproj/project.pbxproj create mode 100755 premake/Xcode/Xcode4/tests/testwm2/testwm2.xcodeproj/project.pbxproj create mode 100755 premake/Xcode/Xcode4/tests/torturethread/torturethread.xcodeproj/project.pbxproj create mode 100755 premake/Xcode/build-scripts/build.all.xcode3.i386.command create mode 100755 premake/Xcode/build-scripts/build.all.xcode3.x86_64.command create mode 100755 premake/Xcode/build-scripts/build.all.xcode4.i386.command create mode 100755 premake/Xcode/build-scripts/build.all.xcode4.x86_64.command create mode 100755 premake/Xcode/build-scripts/clean_premake.command create mode 100755 premake/Xcode/build-scripts/premake4 create mode 100755 premake/Xcode/build-scripts/run.tests.command create mode 100755 premake/Xcode/build-scripts/xcode3.command create mode 100755 premake/Xcode/build-scripts/xcode4.command create mode 100755 premake/changelog create mode 100644 premake/config/SDL_config_cygwin.template.h create mode 100644 premake/config/SDL_config_iphoneos.template.h create mode 100644 premake/config/SDL_config_linux.template.h create mode 100644 premake/config/SDL_config_macosx.template.h create mode 100644 premake/config/SDL_config_minimal.template.h create mode 100644 premake/config/SDL_config_windows.template.h create mode 100755 premake/patches/709.patch create mode 100755 premake/patches/711.patch create mode 100755 premake/patches/712.patch create mode 100755 premake/patches/713.patch create mode 100755 premake/patches/iOS.patch create mode 100755 premake/patches/premake.patches.txt create mode 100755 premake/premake4.lua create mode 100755 premake/projects/SDL2.lua create mode 100755 premake/projects/SDL2main.lua create mode 100755 premake/projects/SDL2test.lua create mode 100755 premake/projects/accelerometer.lua create mode 100755 premake/projects/checkkeys.lua create mode 100755 premake/projects/fireworks.lua create mode 100755 premake/projects/happy.lua create mode 100755 premake/projects/keyboard.lua create mode 100755 premake/projects/loopwave.lua create mode 100755 premake/projects/mixer.lua create mode 100755 premake/projects/rectangles.lua create mode 100755 premake/projects/testatomic.lua create mode 100755 premake/projects/testaudioinfo.lua create mode 100755 premake/projects/testautomation.lua create mode 100755 premake/projects/testdraw2.lua create mode 100755 premake/projects/testdrawchessboard.lua create mode 100755 premake/projects/testerror.lua create mode 100755 premake/projects/testfile.lua create mode 100755 premake/projects/testfilesystem.lua create mode 100755 premake/projects/testgamecontroller.lua create mode 100755 premake/projects/testgesture.lua create mode 100755 premake/projects/testgl2.lua create mode 100755 premake/projects/testgles.lua create mode 100755 premake/projects/testhaptic.lua create mode 100755 premake/projects/testiconv.lua create mode 100755 premake/projects/testime.lua create mode 100755 premake/projects/testintersection.lua create mode 100755 premake/projects/testjoystick.lua create mode 100755 premake/projects/testkeys.lua create mode 100755 premake/projects/testloadso.lua create mode 100755 premake/projects/testlock.lua create mode 100755 premake/projects/testmessage.lua create mode 100755 premake/projects/testmultiaudio.lua create mode 100755 premake/projects/testnative.lua create mode 100755 premake/projects/testoverlay2.lua create mode 100755 premake/projects/testplatform.lua create mode 100755 premake/projects/testpower.lua create mode 100755 premake/projects/testrelative.lua create mode 100755 premake/projects/testrendercopyex.lua create mode 100755 premake/projects/testrendertarget.lua create mode 100755 premake/projects/testresample.lua create mode 100755 premake/projects/testrumble.lua create mode 100755 premake/projects/testscale.lua create mode 100755 premake/projects/testsem.lua create mode 100755 premake/projects/testshader.lua create mode 100755 premake/projects/testshape.lua create mode 100755 premake/projects/testsprite2.lua create mode 100755 premake/projects/testspriteminimal.lua create mode 100755 premake/projects/teststreaming.lua create mode 100755 premake/projects/testthread.lua create mode 100755 premake/projects/testtimer.lua create mode 100755 premake/projects/testver.lua create mode 100755 premake/projects/testwm2.lua create mode 100755 premake/projects/torturethread.lua create mode 100755 premake/projects/touch.lua create mode 100755 premake/util/sdl_check_compile.lua create mode 100755 premake/util/sdl_dependency_checkers.lua create mode 100755 premake/util/sdl_depends.lua create mode 100755 premake/util/sdl_file.lua create mode 100755 premake/util/sdl_gen_config.lua create mode 100755 premake/util/sdl_projects.lua create mode 100755 premake/util/sdl_string.lua create mode 100644 sdl2-config.in create mode 100644 sdl2.m4 create mode 100644 sdl2.pc.in create mode 100644 src/SDL.c create mode 100644 src/SDL_assert.c create mode 100644 src/SDL_assert_c.h create mode 100644 src/SDL_error.c create mode 100644 src/SDL_error_c.h create mode 100644 src/SDL_hints.c create mode 100644 src/SDL_internal.h create mode 100644 src/SDL_log.c create mode 100644 src/atomic/SDL_atomic.c create mode 100644 src/atomic/SDL_spinlock.c create mode 100644 src/audio/SDL_audio.c create mode 100644 src/audio/SDL_audio_c.h create mode 100644 src/audio/SDL_audiocvt.c create mode 100644 src/audio/SDL_audiodev.c create mode 100644 src/audio/SDL_audiodev_c.h create mode 100644 src/audio/SDL_audiomem.h create mode 100644 src/audio/SDL_audiotypecvt.c create mode 100644 src/audio/SDL_mixer.c create mode 100644 src/audio/SDL_sysaudio.h create mode 100644 src/audio/SDL_wave.c create mode 100644 src/audio/SDL_wave.h create mode 100644 src/audio/alsa/SDL_alsa_audio.c create mode 100644 src/audio/alsa/SDL_alsa_audio.h create mode 100644 src/audio/android/SDL_androidaudio.c create mode 100644 src/audio/android/SDL_androidaudio.h create mode 100644 src/audio/arts/SDL_artsaudio.c create mode 100644 src/audio/arts/SDL_artsaudio.h create mode 100644 src/audio/bsd/SDL_bsdaudio.c create mode 100644 src/audio/bsd/SDL_bsdaudio.h create mode 100644 src/audio/coreaudio/SDL_coreaudio.c create mode 100644 src/audio/coreaudio/SDL_coreaudio.h create mode 100644 src/audio/directsound/SDL_directsound.c create mode 100644 src/audio/directsound/SDL_directsound.h create mode 100644 src/audio/disk/SDL_diskaudio.c create mode 100644 src/audio/disk/SDL_diskaudio.h create mode 100644 src/audio/dsp/SDL_dspaudio.c create mode 100644 src/audio/dsp/SDL_dspaudio.h create mode 100644 src/audio/dummy/SDL_dummyaudio.c create mode 100644 src/audio/dummy/SDL_dummyaudio.h create mode 100644 src/audio/emscripten/SDL_emscriptenaudio.c create mode 100644 src/audio/emscripten/SDL_emscriptenaudio.h create mode 100644 src/audio/esd/SDL_esdaudio.c create mode 100644 src/audio/esd/SDL_esdaudio.h create mode 100644 src/audio/fusionsound/SDL_fsaudio.c create mode 100644 src/audio/fusionsound/SDL_fsaudio.h create mode 100644 src/audio/haiku/SDL_haikuaudio.cc create mode 100644 src/audio/haiku/SDL_haikuaudio.h create mode 100644 src/audio/nacl/SDL_naclaudio.c create mode 100644 src/audio/nacl/SDL_naclaudio.h create mode 100644 src/audio/nas/SDL_nasaudio.c create mode 100644 src/audio/nas/SDL_nasaudio.h create mode 100644 src/audio/paudio/SDL_paudio.c create mode 100644 src/audio/paudio/SDL_paudio.h create mode 100644 src/audio/psp/SDL_pspaudio.c create mode 100644 src/audio/psp/SDL_pspaudio.h create mode 100644 src/audio/pulseaudio/SDL_pulseaudio.c create mode 100644 src/audio/pulseaudio/SDL_pulseaudio.h create mode 100644 src/audio/qsa/SDL_qsa_audio.c create mode 100644 src/audio/qsa/SDL_qsa_audio.h create mode 100755 src/audio/sdlgenaudiocvt.pl create mode 100644 src/audio/sndio/SDL_sndioaudio.c create mode 100644 src/audio/sndio/SDL_sndioaudio.h create mode 100644 src/audio/sun/SDL_sunaudio.c create mode 100644 src/audio/sun/SDL_sunaudio.h create mode 100644 src/audio/winmm/SDL_winmm.c create mode 100644 src/audio/winmm/SDL_winmm.h create mode 100644 src/audio/xaudio2/SDL_xaudio2.c create mode 100644 src/audio/xaudio2/SDL_xaudio2_winrthelpers.cpp create mode 100644 src/audio/xaudio2/SDL_xaudio2_winrthelpers.h create mode 100644 src/core/android/SDL_android.c create mode 100644 src/core/android/SDL_android.h create mode 100644 src/core/linux/SDL_dbus.c create mode 100644 src/core/linux/SDL_dbus.h create mode 100644 src/core/linux/SDL_evdev.c create mode 100644 src/core/linux/SDL_evdev.h create mode 100644 src/core/linux/SDL_ibus.c create mode 100644 src/core/linux/SDL_ibus.h create mode 100644 src/core/linux/SDL_udev.c create mode 100644 src/core/linux/SDL_udev.h create mode 100644 src/core/windows/SDL_directx.h create mode 100644 src/core/windows/SDL_windows.c create mode 100644 src/core/windows/SDL_windows.h create mode 100644 src/core/windows/SDL_xinput.c create mode 100644 src/core/windows/SDL_xinput.h create mode 100644 src/core/winrt/SDL_winrtapp_common.cpp create mode 100644 src/core/winrt/SDL_winrtapp_common.h create mode 100644 src/core/winrt/SDL_winrtapp_direct3d.cpp create mode 100644 src/core/winrt/SDL_winrtapp_direct3d.h create mode 100644 src/core/winrt/SDL_winrtapp_xaml.cpp create mode 100644 src/core/winrt/SDL_winrtapp_xaml.h create mode 100644 src/cpuinfo/SDL_cpuinfo.c create mode 100644 src/dynapi/SDL_dynapi.c create mode 100644 src/dynapi/SDL_dynapi.h create mode 100644 src/dynapi/SDL_dynapi_overrides.h create mode 100644 src/dynapi/SDL_dynapi_procs.h create mode 100755 src/dynapi/gendynapi.pl create mode 100644 src/events/SDL_clipboardevents.c create mode 100644 src/events/SDL_clipboardevents_c.h create mode 100644 src/events/SDL_dropevents.c create mode 100644 src/events/SDL_dropevents_c.h create mode 100644 src/events/SDL_events.c create mode 100644 src/events/SDL_events_c.h create mode 100644 src/events/SDL_gesture.c create mode 100644 src/events/SDL_gesture_c.h create mode 100644 src/events/SDL_keyboard.c create mode 100644 src/events/SDL_keyboard_c.h create mode 100644 src/events/SDL_mouse.c create mode 100644 src/events/SDL_mouse_c.h create mode 100644 src/events/SDL_quit.c create mode 100644 src/events/SDL_sysevents.h create mode 100644 src/events/SDL_touch.c create mode 100644 src/events/SDL_touch_c.h create mode 100644 src/events/SDL_windowevents.c create mode 100644 src/events/SDL_windowevents_c.h create mode 100644 src/events/blank_cursor.h create mode 100644 src/events/default_cursor.h create mode 100644 src/events/scancodes_darwin.h create mode 100644 src/events/scancodes_linux.h create mode 100644 src/events/scancodes_windows.h create mode 100644 src/events/scancodes_xfree86.h create mode 100644 src/file/SDL_rwops.c create mode 100644 src/file/cocoa/SDL_rwopsbundlesupport.h create mode 100644 src/file/cocoa/SDL_rwopsbundlesupport.m create mode 100644 src/filesystem/android/SDL_sysfilesystem.c create mode 100644 src/filesystem/cocoa/SDL_sysfilesystem.m create mode 100644 src/filesystem/dummy/SDL_sysfilesystem.c create mode 100644 src/filesystem/emscripten/SDL_sysfilesystem.c create mode 100644 src/filesystem/haiku/SDL_sysfilesystem.cc create mode 100644 src/filesystem/nacl/SDL_sysfilesystem.c create mode 100644 src/filesystem/unix/SDL_sysfilesystem.c create mode 100644 src/filesystem/windows/SDL_sysfilesystem.c create mode 100644 src/filesystem/winrt/SDL_sysfilesystem.cpp create mode 100644 src/haptic/SDL_haptic.c create mode 100644 src/haptic/SDL_haptic_c.h create mode 100644 src/haptic/SDL_syshaptic.h create mode 100644 src/haptic/darwin/SDL_syshaptic.c create mode 100644 src/haptic/darwin/SDL_syshaptic_c.h create mode 100644 src/haptic/dummy/SDL_syshaptic.c create mode 100644 src/haptic/linux/SDL_syshaptic.c create mode 100644 src/haptic/windows/SDL_dinputhaptic.c create mode 100644 src/haptic/windows/SDL_dinputhaptic_c.h create mode 100644 src/haptic/windows/SDL_windowshaptic.c create mode 100644 src/haptic/windows/SDL_windowshaptic_c.h create mode 100644 src/haptic/windows/SDL_xinputhaptic.c create mode 100644 src/haptic/windows/SDL_xinputhaptic_c.h create mode 100644 src/joystick/SDL_gamecontroller.c create mode 100644 src/joystick/SDL_gamecontrollerdb.h create mode 100644 src/joystick/SDL_joystick.c create mode 100644 src/joystick/SDL_joystick_c.h create mode 100644 src/joystick/SDL_sysjoystick.h create mode 100644 src/joystick/android/SDL_sysjoystick.c create mode 100644 src/joystick/android/SDL_sysjoystick_c.h create mode 100644 src/joystick/bsd/SDL_sysjoystick.c create mode 100644 src/joystick/darwin/SDL_sysjoystick.c create mode 100644 src/joystick/darwin/SDL_sysjoystick_c.h create mode 100644 src/joystick/dummy/SDL_sysjoystick.c create mode 100644 src/joystick/emscripten/SDL_sysjoystick.c create mode 100644 src/joystick/emscripten/SDL_sysjoystick_c.h create mode 100644 src/joystick/haiku/SDL_haikujoystick.cc create mode 100644 src/joystick/iphoneos/SDL_sysjoystick.m create mode 100644 src/joystick/linux/SDL_sysjoystick.c create mode 100644 src/joystick/linux/SDL_sysjoystick_c.h create mode 100644 src/joystick/psp/SDL_sysjoystick.c create mode 100755 src/joystick/sort_controllers.py create mode 100644 src/joystick/windows/SDL_dinputjoystick.c create mode 100644 src/joystick/windows/SDL_dinputjoystick_c.h create mode 100644 src/joystick/windows/SDL_mmjoystick.c create mode 100644 src/joystick/windows/SDL_windowsjoystick.c create mode 100644 src/joystick/windows/SDL_windowsjoystick_c.h create mode 100644 src/joystick/windows/SDL_xinputjoystick.c create mode 100644 src/joystick/windows/SDL_xinputjoystick_c.h create mode 100644 src/libm/e_atan2.c create mode 100644 src/libm/e_log.c create mode 100644 src/libm/e_pow.c create mode 100644 src/libm/e_rem_pio2.c create mode 100644 src/libm/e_sqrt.c create mode 100644 src/libm/k_cos.c create mode 100644 src/libm/k_rem_pio2.c create mode 100644 src/libm/k_sin.c create mode 100644 src/libm/k_tan.c create mode 100644 src/libm/math_libm.h create mode 100644 src/libm/math_private.h create mode 100644 src/libm/s_atan.c create mode 100644 src/libm/s_copysign.c create mode 100644 src/libm/s_cos.c create mode 100644 src/libm/s_fabs.c create mode 100644 src/libm/s_floor.c create mode 100644 src/libm/s_scalbn.c create mode 100644 src/libm/s_sin.c create mode 100644 src/libm/s_tan.c create mode 100644 src/loadso/dlopen/SDL_sysloadso.c create mode 100644 src/loadso/dummy/SDL_sysloadso.c create mode 100644 src/loadso/haiku/SDL_sysloadso.c create mode 100644 src/loadso/windows/SDL_sysloadso.c create mode 100644 src/main/android/SDL_android_main.c create mode 100644 src/main/dummy/SDL_dummy_main.c create mode 100644 src/main/haiku/SDL_BApp.h create mode 100644 src/main/haiku/SDL_BeApp.cc create mode 100644 src/main/haiku/SDL_BeApp.h create mode 100644 src/main/nacl/SDL_nacl_main.c create mode 100644 src/main/psp/SDL_psp_main.c create mode 100644 src/main/windows/SDL_windows_main.c create mode 100644 src/main/windows/version.rc create mode 100644 src/main/winrt/SDL_winrt_main_NonXAML.cpp create mode 100644 src/power/SDL_power.c create mode 100644 src/power/android/SDL_syspower.c create mode 100644 src/power/emscripten/SDL_syspower.c create mode 100644 src/power/haiku/SDL_syspower.c create mode 100644 src/power/linux/SDL_syspower.c create mode 100644 src/power/macosx/SDL_syspower.c create mode 100644 src/power/psp/SDL_syspower.c create mode 100644 src/power/uikit/SDL_syspower.h create mode 100644 src/power/uikit/SDL_syspower.m create mode 100644 src/power/windows/SDL_syspower.c create mode 100644 src/power/winrt/SDL_syspower.cpp create mode 100644 src/render/SDL_d3dmath.c create mode 100644 src/render/SDL_d3dmath.h create mode 100644 src/render/SDL_render.c create mode 100644 src/render/SDL_sysrender.h create mode 100644 src/render/SDL_yuv_mmx.c create mode 100644 src/render/SDL_yuv_sw.c create mode 100644 src/render/SDL_yuv_sw_c.h create mode 100644 src/render/direct3d/SDL_render_d3d.c create mode 100644 src/render/direct3d11/SDL_render_d3d11.c create mode 100644 src/render/direct3d11/SDL_render_winrt.cpp create mode 100644 src/render/direct3d11/SDL_render_winrt.h create mode 100644 src/render/mmx.h create mode 100644 src/render/opengl/SDL_glfuncs.h create mode 100644 src/render/opengl/SDL_render_gl.c create mode 100644 src/render/opengl/SDL_shaders_gl.c create mode 100644 src/render/opengl/SDL_shaders_gl.h create mode 100644 src/render/opengles/SDL_glesfuncs.h create mode 100644 src/render/opengles/SDL_render_gles.c create mode 100644 src/render/opengles2/SDL_gles2funcs.h create mode 100644 src/render/opengles2/SDL_render_gles2.c create mode 100644 src/render/opengles2/SDL_shaders_gles2.c create mode 100644 src/render/opengles2/SDL_shaders_gles2.h create mode 100644 src/render/psp/SDL_render_psp.c create mode 100644 src/render/software/SDL_blendfillrect.c create mode 100644 src/render/software/SDL_blendfillrect.h create mode 100644 src/render/software/SDL_blendline.c create mode 100644 src/render/software/SDL_blendline.h create mode 100644 src/render/software/SDL_blendpoint.c create mode 100644 src/render/software/SDL_blendpoint.h create mode 100644 src/render/software/SDL_draw.h create mode 100644 src/render/software/SDL_drawline.c create mode 100644 src/render/software/SDL_drawline.h create mode 100644 src/render/software/SDL_drawpoint.c create mode 100644 src/render/software/SDL_drawpoint.h create mode 100644 src/render/software/SDL_render_sw.c create mode 100644 src/render/software/SDL_render_sw_c.h create mode 100644 src/render/software/SDL_rotate.c create mode 100644 src/render/software/SDL_rotate.h create mode 100644 src/stdlib/SDL_getenv.c create mode 100644 src/stdlib/SDL_iconv.c create mode 100644 src/stdlib/SDL_malloc.c create mode 100644 src/stdlib/SDL_qsort.c create mode 100644 src/stdlib/SDL_stdlib.c create mode 100644 src/stdlib/SDL_string.c create mode 100644 src/test/SDL_test_assert.c create mode 100644 src/test/SDL_test_common.c create mode 100644 src/test/SDL_test_compare.c create mode 100644 src/test/SDL_test_crc32.c create mode 100644 src/test/SDL_test_font.c create mode 100644 src/test/SDL_test_fuzzer.c create mode 100644 src/test/SDL_test_harness.c create mode 100644 src/test/SDL_test_imageBlit.c create mode 100644 src/test/SDL_test_imageBlitBlend.c create mode 100644 src/test/SDL_test_imageFace.c create mode 100644 src/test/SDL_test_imagePrimitives.c create mode 100644 src/test/SDL_test_imagePrimitivesBlend.c create mode 100644 src/test/SDL_test_log.c create mode 100644 src/test/SDL_test_md5.c create mode 100644 src/test/SDL_test_random.c create mode 100644 src/thread/SDL_systhread.h create mode 100644 src/thread/SDL_thread.c create mode 100644 src/thread/SDL_thread_c.h create mode 100644 src/thread/generic/SDL_syscond.c create mode 100644 src/thread/generic/SDL_sysmutex.c create mode 100644 src/thread/generic/SDL_sysmutex_c.h create mode 100644 src/thread/generic/SDL_syssem.c create mode 100644 src/thread/generic/SDL_systhread.c create mode 100644 src/thread/generic/SDL_systhread_c.h create mode 100644 src/thread/generic/SDL_systls.c create mode 100644 src/thread/psp/SDL_syscond.c create mode 100644 src/thread/psp/SDL_sysmutex.c create mode 100644 src/thread/psp/SDL_sysmutex_c.h create mode 100644 src/thread/psp/SDL_syssem.c create mode 100644 src/thread/psp/SDL_systhread.c create mode 100644 src/thread/psp/SDL_systhread_c.h create mode 100644 src/thread/pthread/SDL_syscond.c create mode 100644 src/thread/pthread/SDL_sysmutex.c create mode 100644 src/thread/pthread/SDL_sysmutex_c.h create mode 100644 src/thread/pthread/SDL_syssem.c create mode 100644 src/thread/pthread/SDL_systhread.c create mode 100644 src/thread/pthread/SDL_systhread_c.h create mode 100644 src/thread/pthread/SDL_systls.c create mode 100644 src/thread/stdcpp/SDL_syscond.cpp create mode 100644 src/thread/stdcpp/SDL_sysmutex.cpp create mode 100644 src/thread/stdcpp/SDL_sysmutex_c.h create mode 100644 src/thread/stdcpp/SDL_systhread.cpp create mode 100644 src/thread/stdcpp/SDL_systhread_c.h create mode 100644 src/thread/windows/SDL_sysmutex.c create mode 100644 src/thread/windows/SDL_syssem.c create mode 100644 src/thread/windows/SDL_systhread.c create mode 100644 src/thread/windows/SDL_systhread_c.h create mode 100644 src/thread/windows/SDL_systls.c create mode 100644 src/timer/SDL_timer.c create mode 100644 src/timer/SDL_timer_c.h create mode 100644 src/timer/dummy/SDL_systimer.c create mode 100644 src/timer/haiku/SDL_systimer.c create mode 100644 src/timer/psp/SDL_systimer.c create mode 100644 src/timer/unix/SDL_systimer.c create mode 100644 src/timer/windows/SDL_systimer.c create mode 100644 src/video/SDL_RLEaccel.c create mode 100644 src/video/SDL_RLEaccel_c.h create mode 100644 src/video/SDL_blit.c create mode 100644 src/video/SDL_blit.h create mode 100644 src/video/SDL_blit_0.c create mode 100644 src/video/SDL_blit_1.c create mode 100644 src/video/SDL_blit_A.c create mode 100644 src/video/SDL_blit_N.c create mode 100644 src/video/SDL_blit_auto.c create mode 100644 src/video/SDL_blit_auto.h create mode 100644 src/video/SDL_blit_copy.c create mode 100644 src/video/SDL_blit_copy.h create mode 100644 src/video/SDL_blit_slow.c create mode 100644 src/video/SDL_blit_slow.h create mode 100644 src/video/SDL_bmp.c create mode 100644 src/video/SDL_clipboard.c create mode 100644 src/video/SDL_egl.c create mode 100644 src/video/SDL_egl_c.h create mode 100644 src/video/SDL_fillrect.c create mode 100644 src/video/SDL_pixels.c create mode 100644 src/video/SDL_pixels_c.h create mode 100644 src/video/SDL_rect.c create mode 100644 src/video/SDL_rect_c.h create mode 100644 src/video/SDL_shape.c create mode 100644 src/video/SDL_shape_internals.h create mode 100644 src/video/SDL_stretch.c create mode 100644 src/video/SDL_surface.c create mode 100644 src/video/SDL_sysvideo.h create mode 100644 src/video/SDL_video.c create mode 100644 src/video/android/SDL_androidclipboard.c create mode 100644 src/video/android/SDL_androidclipboard.h create mode 100644 src/video/android/SDL_androidevents.c create mode 100644 src/video/android/SDL_androidevents.h create mode 100644 src/video/android/SDL_androidgl.c create mode 100644 src/video/android/SDL_androidkeyboard.c create mode 100644 src/video/android/SDL_androidkeyboard.h create mode 100644 src/video/android/SDL_androidmessagebox.c create mode 100644 src/video/android/SDL_androidmessagebox.h create mode 100644 src/video/android/SDL_androidmouse.c create mode 100644 src/video/android/SDL_androidmouse.h create mode 100644 src/video/android/SDL_androidtouch.c create mode 100644 src/video/android/SDL_androidtouch.h create mode 100644 src/video/android/SDL_androidvideo.c create mode 100644 src/video/android/SDL_androidvideo.h create mode 100644 src/video/android/SDL_androidwindow.c create mode 100644 src/video/android/SDL_androidwindow.h create mode 100644 src/video/cocoa/SDL_cocoaclipboard.h create mode 100644 src/video/cocoa/SDL_cocoaclipboard.m create mode 100644 src/video/cocoa/SDL_cocoaevents.h create mode 100644 src/video/cocoa/SDL_cocoaevents.m create mode 100644 src/video/cocoa/SDL_cocoakeyboard.h create mode 100644 src/video/cocoa/SDL_cocoakeyboard.m create mode 100644 src/video/cocoa/SDL_cocoamessagebox.h create mode 100644 src/video/cocoa/SDL_cocoamessagebox.m create mode 100644 src/video/cocoa/SDL_cocoamodes.h create mode 100644 src/video/cocoa/SDL_cocoamodes.m create mode 100644 src/video/cocoa/SDL_cocoamouse.h create mode 100644 src/video/cocoa/SDL_cocoamouse.m create mode 100644 src/video/cocoa/SDL_cocoamousetap.h create mode 100644 src/video/cocoa/SDL_cocoamousetap.m create mode 100644 src/video/cocoa/SDL_cocoaopengl.h create mode 100644 src/video/cocoa/SDL_cocoaopengl.m create mode 100644 src/video/cocoa/SDL_cocoashape.h create mode 100644 src/video/cocoa/SDL_cocoashape.m create mode 100644 src/video/cocoa/SDL_cocoavideo.h create mode 100644 src/video/cocoa/SDL_cocoavideo.m create mode 100644 src/video/cocoa/SDL_cocoawindow.h create mode 100644 src/video/cocoa/SDL_cocoawindow.m create mode 100644 src/video/directfb/SDL_DirectFB_WM.c create mode 100644 src/video/directfb/SDL_DirectFB_WM.h create mode 100644 src/video/directfb/SDL_DirectFB_dyn.c create mode 100644 src/video/directfb/SDL_DirectFB_dyn.h create mode 100644 src/video/directfb/SDL_DirectFB_events.c create mode 100644 src/video/directfb/SDL_DirectFB_events.h create mode 100644 src/video/directfb/SDL_DirectFB_modes.c create mode 100644 src/video/directfb/SDL_DirectFB_modes.h create mode 100644 src/video/directfb/SDL_DirectFB_mouse.c create mode 100644 src/video/directfb/SDL_DirectFB_mouse.h create mode 100644 src/video/directfb/SDL_DirectFB_opengl.c create mode 100644 src/video/directfb/SDL_DirectFB_opengl.h create mode 100644 src/video/directfb/SDL_DirectFB_render.c create mode 100644 src/video/directfb/SDL_DirectFB_render.h create mode 100644 src/video/directfb/SDL_DirectFB_shape.c create mode 100644 src/video/directfb/SDL_DirectFB_shape.h create mode 100644 src/video/directfb/SDL_DirectFB_video.c create mode 100644 src/video/directfb/SDL_DirectFB_video.h create mode 100644 src/video/directfb/SDL_DirectFB_window.c create mode 100644 src/video/directfb/SDL_DirectFB_window.h create mode 100644 src/video/dummy/SDL_nullevents.c create mode 100644 src/video/dummy/SDL_nullevents_c.h create mode 100644 src/video/dummy/SDL_nullframebuffer.c create mode 100644 src/video/dummy/SDL_nullframebuffer_c.h create mode 100644 src/video/dummy/SDL_nullvideo.c create mode 100644 src/video/dummy/SDL_nullvideo.h create mode 100644 src/video/emscripten/SDL_emscriptenevents.c create mode 100644 src/video/emscripten/SDL_emscriptenevents.h create mode 100644 src/video/emscripten/SDL_emscriptenframebuffer.c create mode 100644 src/video/emscripten/SDL_emscriptenframebuffer.h create mode 100644 src/video/emscripten/SDL_emscriptenmouse.c create mode 100644 src/video/emscripten/SDL_emscriptenmouse.h create mode 100644 src/video/emscripten/SDL_emscriptenopengles.c create mode 100644 src/video/emscripten/SDL_emscriptenopengles.h create mode 100644 src/video/emscripten/SDL_emscriptenvideo.c create mode 100644 src/video/emscripten/SDL_emscriptenvideo.h create mode 100644 src/video/haiku/SDL_BWin.h create mode 100644 src/video/haiku/SDL_bclipboard.cc create mode 100644 src/video/haiku/SDL_bclipboard.h create mode 100644 src/video/haiku/SDL_bevents.cc create mode 100644 src/video/haiku/SDL_bevents.h create mode 100644 src/video/haiku/SDL_bframebuffer.cc create mode 100644 src/video/haiku/SDL_bframebuffer.h create mode 100644 src/video/haiku/SDL_bkeyboard.cc create mode 100644 src/video/haiku/SDL_bkeyboard.h create mode 100644 src/video/haiku/SDL_bmodes.cc create mode 100644 src/video/haiku/SDL_bmodes.h create mode 100644 src/video/haiku/SDL_bopengl.cc create mode 100644 src/video/haiku/SDL_bopengl.h create mode 100644 src/video/haiku/SDL_bvideo.cc create mode 100644 src/video/haiku/SDL_bvideo.h create mode 100644 src/video/haiku/SDL_bwindow.cc create mode 100644 src/video/haiku/SDL_bwindow.h create mode 100644 src/video/mir/SDL_mirdyn.c create mode 100644 src/video/mir/SDL_mirdyn.h create mode 100644 src/video/mir/SDL_mirevents.c create mode 100644 src/video/mir/SDL_mirevents.h create mode 100644 src/video/mir/SDL_mirframebuffer.c create mode 100644 src/video/mir/SDL_mirframebuffer.h create mode 100644 src/video/mir/SDL_mirmouse.c create mode 100644 src/video/mir/SDL_mirmouse.h create mode 100644 src/video/mir/SDL_miropengl.c create mode 100644 src/video/mir/SDL_miropengl.h create mode 100644 src/video/mir/SDL_mirsym.h create mode 100644 src/video/mir/SDL_mirvideo.c create mode 100644 src/video/mir/SDL_mirvideo.h create mode 100644 src/video/mir/SDL_mirwindow.c create mode 100644 src/video/mir/SDL_mirwindow.h create mode 100644 src/video/nacl/SDL_naclevents.c create mode 100644 src/video/nacl/SDL_naclevents_c.h create mode 100644 src/video/nacl/SDL_naclglue.c create mode 100644 src/video/nacl/SDL_naclopengles.c create mode 100644 src/video/nacl/SDL_naclopengles.h create mode 100644 src/video/nacl/SDL_naclvideo.c create mode 100644 src/video/nacl/SDL_naclvideo.h create mode 100644 src/video/nacl/SDL_naclwindow.c create mode 100644 src/video/nacl/SDL_naclwindow.h create mode 100644 src/video/pandora/SDL_pandora.c create mode 100644 src/video/pandora/SDL_pandora.h create mode 100644 src/video/pandora/SDL_pandora_events.c create mode 100644 src/video/pandora/SDL_pandora_events.h create mode 100644 src/video/psp/SDL_pspevents.c create mode 100644 src/video/psp/SDL_pspevents_c.h create mode 100644 src/video/psp/SDL_pspgl.c create mode 100644 src/video/psp/SDL_pspgl_c.h create mode 100644 src/video/psp/SDL_pspmouse.c create mode 100644 src/video/psp/SDL_pspmouse_c.h create mode 100644 src/video/psp/SDL_pspvideo.c create mode 100644 src/video/psp/SDL_pspvideo.h create mode 100644 src/video/raspberry/SDL_rpievents.c create mode 100644 src/video/raspberry/SDL_rpievents_c.h create mode 100644 src/video/raspberry/SDL_rpimouse.c create mode 100644 src/video/raspberry/SDL_rpimouse.h create mode 100644 src/video/raspberry/SDL_rpiopengles.c create mode 100644 src/video/raspberry/SDL_rpiopengles.h create mode 100644 src/video/raspberry/SDL_rpivideo.c create mode 100644 src/video/raspberry/SDL_rpivideo.h create mode 100755 src/video/sdlgenblit.pl create mode 100644 src/video/uikit/SDL_uikitappdelegate.h create mode 100644 src/video/uikit/SDL_uikitappdelegate.m create mode 100644 src/video/uikit/SDL_uikitevents.h create mode 100644 src/video/uikit/SDL_uikitevents.m create mode 100644 src/video/uikit/SDL_uikitmessagebox.h create mode 100644 src/video/uikit/SDL_uikitmessagebox.m create mode 100644 src/video/uikit/SDL_uikitmodes.h create mode 100644 src/video/uikit/SDL_uikitmodes.m create mode 100644 src/video/uikit/SDL_uikitopengles.h create mode 100644 src/video/uikit/SDL_uikitopengles.m create mode 100644 src/video/uikit/SDL_uikitopenglview.h create mode 100644 src/video/uikit/SDL_uikitopenglview.m create mode 100644 src/video/uikit/SDL_uikitvideo.h create mode 100644 src/video/uikit/SDL_uikitvideo.m create mode 100644 src/video/uikit/SDL_uikitview.h create mode 100644 src/video/uikit/SDL_uikitview.m create mode 100644 src/video/uikit/SDL_uikitviewcontroller.h create mode 100644 src/video/uikit/SDL_uikitviewcontroller.m create mode 100644 src/video/uikit/SDL_uikitwindow.h create mode 100644 src/video/uikit/SDL_uikitwindow.m create mode 100644 src/video/uikit/keyinfotable.h create mode 100644 src/video/vivante/SDL_vivanteopengles.c create mode 100644 src/video/vivante/SDL_vivanteopengles.h create mode 100644 src/video/vivante/SDL_vivanteplatform.c create mode 100644 src/video/vivante/SDL_vivanteplatform.h create mode 100644 src/video/vivante/SDL_vivantevideo.c create mode 100644 src/video/vivante/SDL_vivantevideo.h create mode 100644 src/video/wayland/SDL_waylanddyn.c create mode 100644 src/video/wayland/SDL_waylanddyn.h create mode 100644 src/video/wayland/SDL_waylandevents.c create mode 100644 src/video/wayland/SDL_waylandevents_c.h create mode 100644 src/video/wayland/SDL_waylandmouse.c create mode 100644 src/video/wayland/SDL_waylandmouse.h create mode 100644 src/video/wayland/SDL_waylandopengles.c create mode 100644 src/video/wayland/SDL_waylandopengles.h create mode 100644 src/video/wayland/SDL_waylandsym.h create mode 100644 src/video/wayland/SDL_waylandtouch.c create mode 100644 src/video/wayland/SDL_waylandtouch.h create mode 100644 src/video/wayland/SDL_waylandvideo.c create mode 100644 src/video/wayland/SDL_waylandvideo.h create mode 100644 src/video/wayland/SDL_waylandwindow.c create mode 100644 src/video/wayland/SDL_waylandwindow.h create mode 100644 src/video/windows/SDL_msctf.h create mode 100644 src/video/windows/SDL_vkeys.h create mode 100644 src/video/windows/SDL_windowsclipboard.c create mode 100644 src/video/windows/SDL_windowsclipboard.h create mode 100644 src/video/windows/SDL_windowsevents.c create mode 100644 src/video/windows/SDL_windowsevents.h create mode 100644 src/video/windows/SDL_windowsframebuffer.c create mode 100644 src/video/windows/SDL_windowsframebuffer.h create mode 100644 src/video/windows/SDL_windowskeyboard.c create mode 100644 src/video/windows/SDL_windowskeyboard.h create mode 100644 src/video/windows/SDL_windowsmessagebox.c create mode 100644 src/video/windows/SDL_windowsmessagebox.h create mode 100644 src/video/windows/SDL_windowsmodes.c create mode 100644 src/video/windows/SDL_windowsmodes.h create mode 100644 src/video/windows/SDL_windowsmouse.c create mode 100644 src/video/windows/SDL_windowsmouse.h create mode 100644 src/video/windows/SDL_windowsopengl.c create mode 100644 src/video/windows/SDL_windowsopengl.h create mode 100644 src/video/windows/SDL_windowsopengles.c create mode 100644 src/video/windows/SDL_windowsopengles.h create mode 100644 src/video/windows/SDL_windowsshape.c create mode 100644 src/video/windows/SDL_windowsshape.h create mode 100644 src/video/windows/SDL_windowsvideo.c create mode 100644 src/video/windows/SDL_windowsvideo.h create mode 100644 src/video/windows/SDL_windowswindow.c create mode 100644 src/video/windows/SDL_windowswindow.h create mode 100644 src/video/windows/wmmsg.h create mode 100644 src/video/winrt/SDL_winrtevents.cpp create mode 100644 src/video/winrt/SDL_winrtevents_c.h create mode 100644 src/video/winrt/SDL_winrtkeyboard.cpp create mode 100644 src/video/winrt/SDL_winrtmessagebox.cpp create mode 100644 src/video/winrt/SDL_winrtmessagebox.h create mode 100644 src/video/winrt/SDL_winrtmouse.cpp create mode 100644 src/video/winrt/SDL_winrtmouse_c.h create mode 100644 src/video/winrt/SDL_winrtopengles.cpp create mode 100644 src/video/winrt/SDL_winrtopengles.h create mode 100644 src/video/winrt/SDL_winrtpointerinput.cpp create mode 100644 src/video/winrt/SDL_winrtvideo.cpp create mode 100644 src/video/winrt/SDL_winrtvideo_cpp.h create mode 100644 src/video/x11/SDL_x11clipboard.c create mode 100644 src/video/x11/SDL_x11clipboard.h create mode 100644 src/video/x11/SDL_x11dyn.c create mode 100644 src/video/x11/SDL_x11dyn.h create mode 100644 src/video/x11/SDL_x11events.c create mode 100644 src/video/x11/SDL_x11events.h create mode 100644 src/video/x11/SDL_x11framebuffer.c create mode 100644 src/video/x11/SDL_x11framebuffer.h create mode 100644 src/video/x11/SDL_x11keyboard.c create mode 100644 src/video/x11/SDL_x11keyboard.h create mode 100644 src/video/x11/SDL_x11messagebox.c create mode 100644 src/video/x11/SDL_x11messagebox.h create mode 100644 src/video/x11/SDL_x11modes.c create mode 100644 src/video/x11/SDL_x11modes.h create mode 100644 src/video/x11/SDL_x11mouse.c create mode 100644 src/video/x11/SDL_x11mouse.h create mode 100644 src/video/x11/SDL_x11opengl.c create mode 100644 src/video/x11/SDL_x11opengl.h create mode 100644 src/video/x11/SDL_x11opengles.c create mode 100644 src/video/x11/SDL_x11opengles.h create mode 100644 src/video/x11/SDL_x11shape.c create mode 100644 src/video/x11/SDL_x11shape.h create mode 100644 src/video/x11/SDL_x11sym.h create mode 100644 src/video/x11/SDL_x11touch.c create mode 100644 src/video/x11/SDL_x11touch.h create mode 100644 src/video/x11/SDL_x11video.c create mode 100644 src/video/x11/SDL_x11video.h create mode 100644 src/video/x11/SDL_x11window.c create mode 100644 src/video/x11/SDL_x11window.h create mode 100644 src/video/x11/SDL_x11xinput2.c create mode 100644 src/video/x11/SDL_x11xinput2.h create mode 100644 src/video/x11/edid-parse.c create mode 100644 src/video/x11/edid.h create mode 100644 src/video/x11/imKStoUCS.c create mode 100644 src/video/x11/imKStoUCS.h create mode 100644 test/COPYING create mode 100644 test/Makefile.in create mode 100644 test/README create mode 100644 test/acinclude.m4 create mode 100644 test/aclocal.m4 create mode 100755 test/autogen.sh create mode 100644 test/axis.bmp create mode 100644 test/button.bmp create mode 100644 test/checkkeys.c create mode 100755 test/configure create mode 100644 test/configure.in create mode 100644 test/controllermap.bmp create mode 100644 test/controllermap.c create mode 100644 test/emscripten/joystick-pre.js create mode 100755 test/gcc-fat.sh create mode 100644 test/icon.bmp create mode 100644 test/loopwave.c create mode 100644 test/loopwavequeue.c create mode 100644 test/moose.dat create mode 100644 test/nacl/Makefile create mode 100644 test/nacl/background.js create mode 100644 test/nacl/common.js create mode 100644 test/nacl/index.html create mode 100644 test/nacl/manifest.json create mode 100644 test/picture.xbm create mode 100644 test/relative_mode.markdown create mode 100644 test/sample.bmp create mode 100644 test/sample.wav create mode 100644 test/shapes/p01_shape24.bmp create mode 100644 test/shapes/p01_shape32alpha.bmp create mode 100644 test/shapes/p01_shape8.bmp create mode 100644 test/shapes/p02_shape24.bmp create mode 100644 test/shapes/p02_shape32alpha.bmp create mode 100644 test/shapes/p02_shape8.bmp create mode 100644 test/shapes/p03_shape24.bmp create mode 100644 test/shapes/p03_shape8.bmp create mode 100644 test/shapes/p04_shape1.bmp create mode 100644 test/shapes/p04_shape24.bmp create mode 100644 test/shapes/p04_shape32alpha.bmp create mode 100644 test/shapes/p04_shape8.bmp create mode 100644 test/shapes/p05_shape8.bmp create mode 100644 test/shapes/p06_shape1alpha.bmp create mode 100644 test/shapes/p06_shape24.bmp create mode 100644 test/shapes/p06_shape32alpha.bmp create mode 100644 test/shapes/p06_shape8.bmp create mode 100644 test/shapes/p07_shape24.bmp create mode 100644 test/shapes/p07_shape32alpha.bmp create mode 100644 test/shapes/p07_shape8.bmp create mode 100644 test/shapes/p08_shape24.bmp create mode 100644 test/shapes/p08_shape32alpha.bmp create mode 100644 test/shapes/p08_shape8.bmp create mode 100644 test/shapes/p09_shape24.bmp create mode 100644 test/shapes/p09_shape32alpha.bmp create mode 100644 test/shapes/p09_shape8.bmp create mode 100644 test/shapes/p10_shape1.bmp create mode 100644 test/shapes/p10_shape24.bmp create mode 100644 test/shapes/p10_shape32alpha.bmp create mode 100644 test/shapes/p10_shape8.bmp create mode 100644 test/shapes/p11_shape24.bmp create mode 100644 test/shapes/p11_shape32alpha.bmp create mode 100644 test/shapes/p11_shape8.bmp create mode 100644 test/shapes/p12_shape24.bmp create mode 100644 test/shapes/p12_shape8.bmp create mode 100644 test/shapes/p13_shape24.bmp create mode 100644 test/shapes/p13_shape32alpha.bmp create mode 100644 test/shapes/p13_shape8.bmp create mode 100644 test/shapes/p14_shape24.bmp create mode 100644 test/shapes/p14_shape8.bmp create mode 100644 test/shapes/p15_shape24.bmp create mode 100644 test/shapes/p15_shape32alpha.bmp create mode 100644 test/shapes/p15_shape8.bmp create mode 100644 test/shapes/p16_shape1.bmp create mode 100644 test/shapes/p16_shape24.bmp create mode 100644 test/shapes/p16_shape8.bmp create mode 100644 test/shapes/trollface_24.bmp create mode 100644 test/shapes/trollface_32alpha.bmp create mode 100644 test/testatomic.c create mode 100644 test/testaudiohotplug.c create mode 100644 test/testaudioinfo.c create mode 100644 test/testautomation.c create mode 100644 test/testautomation_audio.c create mode 100644 test/testautomation_clipboard.c create mode 100644 test/testautomation_events.c create mode 100644 test/testautomation_hints.c create mode 100644 test/testautomation_keyboard.c create mode 100644 test/testautomation_main.c create mode 100644 test/testautomation_mouse.c create mode 100644 test/testautomation_pixels.c create mode 100644 test/testautomation_platform.c create mode 100644 test/testautomation_rect.c create mode 100644 test/testautomation_render.c create mode 100644 test/testautomation_rwops.c create mode 100644 test/testautomation_sdltest.c create mode 100644 test/testautomation_stdlib.c create mode 100644 test/testautomation_suites.h create mode 100644 test/testautomation_surface.c create mode 100644 test/testautomation_syswm.c create mode 100644 test/testautomation_timer.c create mode 100644 test/testautomation_video.c create mode 100644 test/testdraw2.c create mode 100644 test/testdrawchessboard.c create mode 100644 test/testdropfile.c create mode 100644 test/testerror.c create mode 100644 test/testfile.c create mode 100644 test/testfilesystem.c create mode 100644 test/testgamecontroller.c create mode 100644 test/testgesture.c create mode 100644 test/testgl2.c create mode 100644 test/testgles.c create mode 100644 test/testgles2.c create mode 100644 test/testhaptic.c create mode 100644 test/testhittesting.c create mode 100644 test/testhotplug.c create mode 100644 test/testiconv.c create mode 100644 test/testime.c create mode 100644 test/testintersections.c create mode 100644 test/testjoystick.c create mode 100644 test/testkeys.c create mode 100644 test/testloadso.c create mode 100644 test/testlock.c create mode 100644 test/testmessage.c create mode 100644 test/testmultiaudio.c create mode 100644 test/testnative.c create mode 100644 test/testnative.h create mode 100644 test/testnativecocoa.m create mode 100644 test/testnativew32.c create mode 100644 test/testnativex11.c create mode 100644 test/testoverlay2.c create mode 100644 test/testplatform.c create mode 100644 test/testpower.c create mode 100644 test/testrelative.c create mode 100644 test/testrendercopyex.c create mode 100644 test/testrendertarget.c create mode 100644 test/testresample.c create mode 100644 test/testrumble.c create mode 100644 test/testscale.c create mode 100644 test/testsem.c create mode 100644 test/testshader.c create mode 100644 test/testshape.c create mode 100644 test/testsprite2.c create mode 100644 test/testspriteminimal.c create mode 100644 test/teststreaming.c create mode 100644 test/testthread.c create mode 100644 test/testtimer.c create mode 100644 test/testver.c create mode 100644 test/testviewport.c create mode 100644 test/testwm2.c create mode 100644 test/torturethread.c create mode 100644 test/utf8.txt create mode 100755 visualtest/COPYING.txt create mode 100755 visualtest/Makefile.in create mode 100755 visualtest/README.txt create mode 100755 visualtest/acinclude.m4 create mode 100755 visualtest/autogen.sh create mode 100755 visualtest/compile create mode 100644 visualtest/config.h create mode 100755 visualtest/config.h.in create mode 100755 visualtest/configs/testsprite2_blendmodes/testsprite2_blendmodes.actions create mode 100755 visualtest/configs/testsprite2_blendmodes/testsprite2_blendmodes.config create mode 100755 visualtest/configs/testsprite2_blendmodes/testsprite2_blendmodes.parameters create mode 100755 visualtest/configs/testsprite2_crashtest/testsprite2_crashtest.actions create mode 100755 visualtest/configs/testsprite2_crashtest/testsprite2_crashtest.config create mode 100755 visualtest/configs/testsprite2_crashtest/testsprite2_crashtest.parameters create mode 100755 visualtest/configs/testsprite2_fullscreen/testsprite2_fullscreen.actions create mode 100755 visualtest/configs/testsprite2_fullscreen/testsprite2_fullscreen.config create mode 100755 visualtest/configs/testsprite2_fullscreen/testsprite2_fullscreen.parameters create mode 100755 visualtest/configs/testsprite2_geometry/testsprite2_geometry.actions create mode 100755 visualtest/configs/testsprite2_geometry/testsprite2_geometry.config create mode 100755 visualtest/configs/testsprite2_geometry/testsprite2_geometry.parameters create mode 100755 visualtest/configure create mode 100755 visualtest/configure.in create mode 100755 visualtest/depcomp create mode 100755 visualtest/docs/Doxyfile create mode 100644 visualtest/include/SDL_visualtest_action_configparser.h create mode 100644 visualtest/include/SDL_visualtest_exhaustive_variator.h create mode 100644 visualtest/include/SDL_visualtest_harness_argparser.h create mode 100644 visualtest/include/SDL_visualtest_mischelper.h create mode 100644 visualtest/include/SDL_visualtest_parsehelper.h create mode 100644 visualtest/include/SDL_visualtest_process.h create mode 100644 visualtest/include/SDL_visualtest_random_variator.h create mode 100644 visualtest/include/SDL_visualtest_rwhelper.h create mode 100644 visualtest/include/SDL_visualtest_screenshot.h create mode 100644 visualtest/include/SDL_visualtest_sut_configparser.h create mode 100644 visualtest/include/SDL_visualtest_variator_common.h create mode 100644 visualtest/include/SDL_visualtest_variators.h create mode 100755 visualtest/install-sh create mode 100755 visualtest/launch_harness.cmd create mode 100755 visualtest/launch_harness.sh create mode 100755 visualtest/missing create mode 100644 visualtest/src/action_configparser.c create mode 100644 visualtest/src/harness_argparser.c create mode 100644 visualtest/src/linux/linux_process.c create mode 100644 visualtest/src/mischelper.c create mode 100644 visualtest/src/parsehelper.c create mode 100644 visualtest/src/rwhelper.c create mode 100644 visualtest/src/screenshot.c create mode 100644 visualtest/src/sut_configparser.c create mode 100644 visualtest/src/testharness.c create mode 100644 visualtest/src/variator_common.c create mode 100644 visualtest/src/variator_exhaustive.c create mode 100644 visualtest/src/variator_random.c create mode 100644 visualtest/src/variators.c create mode 100644 visualtest/src/windows/windows_process.c create mode 100644 visualtest/src/windows/windows_screenshot.c create mode 100755 visualtest/stamp-h1 create mode 100755 visualtest/testsprite2_sample.actions create mode 100755 visualtest/testsprite2_sample.config create mode 100755 visualtest/testsprite2_sample.parameters create mode 100755 visualtest/unittest/testquit.actions create mode 100644 visualtest/unittest/testquit.c create mode 100755 visualtest/unittest/testquit.config create mode 100755 visualtest/unittest/testquit.parameters diff --git a/.hgignore b/.hgignore new file mode 100644 index 000000000..467cb78bf --- /dev/null +++ b/.hgignore @@ -0,0 +1,123 @@ +syntax:glob +aclocal.m4 +autom4te* +config.cache +config.log +config.status +Makefile +sdl-config +SDL2.spec +build +Build + +# for Xcode +*.orig +*.swp +*.tmp +*.rej +*~ +*.o +*.mode1* +*.perspective* +*.pbxuser +(^|/)build($|/) +.DS_Store +xcuserdata +*.xcworkspace + +# for Visual C++ +Debug +Release +*.user +*.ncb +*.suo +*.sdf +VisualC/tests/loopwave/sample.wav +VisualC/tests/testautomation/CompareSurfaces0001_Reference.bmp +VisualC/tests/testautomation/CompareSurfaces0001_TestOutput.bmp +VisualC/tests/testgamecontroller/axis.bmp +VisualC/tests/testgamecontroller/button.bmp +VisualC/tests/testgamecontroller/controllermap.bmp +VisualC/tests/testoverlay2/moose.dat +VisualC/tests/testrendertarget/icon.bmp +VisualC/tests/testrendertarget/sample.bmp +VisualC/tests/testscale/icon.bmp +VisualC/tests/testscale/sample.bmp +VisualC/tests/testsprite2/icon.bmp +VisualC/visualtest/icon.bmp +VisualC/visualtest/testquit.actions +VisualC/visualtest/testquit.config +VisualC/visualtest/testquit.exe +VisualC/visualtest/testquit.parameters +VisualC/visualtest/testsprite2.exe +VisualC/visualtest/testsprite2_sample.actions +VisualC/visualtest/testsprite2_sample.config +VisualC/visualtest/testsprite2_sample.parameters + +# for Android +android-project/local.properties + +sdl.pc +test/autom4te* +test/config.cache +test/config.log +test/config.status +test/Makefile +test/SDL2.dll +test/checkkeys +test/controllermap +test/loopwave +test/loopwavequeue +test/testatomic +test/testaudiohotplug +test/testaudioinfo +test/testautomation +test/testdraw2 +test/testdrawchessboard +test/testdropfile +test/testerror +test/testfile +test/testgamecontroller +test/testgesture +test/testgl2 +test/testgles +test/testgles2 +test/testhaptic +test/testhittesting +test/testhotplug +test/testiconv +test/testime +test/testintersections +test/testjoystick +test/testkeys +test/testloadso +test/testlock +test/testmessage +test/testmultiaudio +test/testnative +test/testoverlay2 +test/testplatform +test/testpower +test/testfilesystem +test/testrelative +test/testrendercopyex +test/testrendertarget +test/testresample +test/testrumble +test/testscale +test/testsem +test/testshader +test/testshape +test/testsprite2 +test/testspriteminimal +test/teststreaming +test/testthread +test/testtimer +test/testver +test/testviewport +test/testwm2 +test/torturethread +test/*.exe +test/*.dSYM +buildbot +test/buildbot diff --git a/Android.mk b/Android.mk new file mode 100755 index 000000000..13d765f57 --- /dev/null +++ b/Android.mk @@ -0,0 +1,69 @@ +LOCAL_PATH := $(call my-dir) + +########################### +# +# SDL shared library +# +########################### + +include $(CLEAR_VARS) + +LOCAL_MODULE := SDL2 + +LOCAL_C_INCLUDES := $(LOCAL_PATH)/include + +LOCAL_EXPORT_C_INCLUDES := $(LOCAL_C_INCLUDES) + +LOCAL_SRC_FILES := \ + $(subst $(LOCAL_PATH)/,, \ + $(wildcard $(LOCAL_PATH)/src/*.c) \ + $(wildcard $(LOCAL_PATH)/src/audio/*.c) \ + $(wildcard $(LOCAL_PATH)/src/audio/android/*.c) \ + $(wildcard $(LOCAL_PATH)/src/audio/dummy/*.c) \ + $(LOCAL_PATH)/src/atomic/SDL_atomic.c \ + $(LOCAL_PATH)/src/atomic/SDL_spinlock.c.arm \ + $(wildcard $(LOCAL_PATH)/src/core/android/*.c) \ + $(wildcard $(LOCAL_PATH)/src/cpuinfo/*.c) \ + $(wildcard $(LOCAL_PATH)/src/dynapi/*.c) \ + $(wildcard $(LOCAL_PATH)/src/events/*.c) \ + $(wildcard $(LOCAL_PATH)/src/file/*.c) \ + $(wildcard $(LOCAL_PATH)/src/haptic/*.c) \ + $(wildcard $(LOCAL_PATH)/src/haptic/dummy/*.c) \ + $(wildcard $(LOCAL_PATH)/src/joystick/*.c) \ + $(wildcard $(LOCAL_PATH)/src/joystick/android/*.c) \ + $(wildcard $(LOCAL_PATH)/src/loadso/dlopen/*.c) \ + $(wildcard $(LOCAL_PATH)/src/power/*.c) \ + $(wildcard $(LOCAL_PATH)/src/power/android/*.c) \ + $(wildcard $(LOCAL_PATH)/src/filesystem/android/*.c) \ + $(wildcard $(LOCAL_PATH)/src/render/*.c) \ + $(wildcard $(LOCAL_PATH)/src/render/*/*.c) \ + $(wildcard $(LOCAL_PATH)/src/stdlib/*.c) \ + $(wildcard $(LOCAL_PATH)/src/thread/*.c) \ + $(wildcard $(LOCAL_PATH)/src/thread/pthread/*.c) \ + $(wildcard $(LOCAL_PATH)/src/timer/*.c) \ + $(wildcard $(LOCAL_PATH)/src/timer/unix/*.c) \ + $(wildcard $(LOCAL_PATH)/src/video/*.c) \ + $(wildcard $(LOCAL_PATH)/src/video/android/*.c) \ + $(wildcard $(LOCAL_PATH)/src/test/*.c)) + +LOCAL_CFLAGS += -DGL_GLEXT_PROTOTYPES +LOCAL_LDLIBS := -ldl -lGLESv1_CM -lGLESv2 -llog -landroid + +include $(BUILD_SHARED_LIBRARY) + +########################### +# +# SDL static library +# +########################### + +LOCAL_MODULE := SDL2_static + +LOCAL_MODULE_FILENAME := libSDL2 + +LOCAL_SRC_FILES += $(subst $(LOCAL_PATH)/,,$(LOCAL_PATH)/src/main/android/SDL_android_main.c) + +LOCAL_LDLIBS := +LOCAL_EXPORT_LDLIBS := -Wl,--undefined=Java_org_libsdl_app_SDLActivity_nativeInit -ldl -lGLESv1_CM -lGLESv2 -llog -landroid + +include $(BUILD_STATIC_LIBRARY) diff --git a/BUGS.txt b/BUGS.txt new file mode 100644 index 000000000..7ef553875 --- /dev/null +++ b/BUGS.txt @@ -0,0 +1,16 @@ + +Bugs are now managed in the SDL bug tracker, here: + + http://bugzilla.libsdl.org/ + +You may report bugs there, and search to see if a given issue has already + been reported, discussed, and maybe even fixed. + + +You may also find help on the SDL mailing list. Subscription information: + + http://lists.libsdl.org/listinfo.cgi/sdl-libsdl.org + +Bug reports are welcome here, but we really appreciate if you use Bugzilla, as + bugs discussed on the mailing list may be forgotten or missed. + diff --git a/CMakeLists.txt b/CMakeLists.txt new file mode 100644 index 000000000..f1cf7aa98 --- /dev/null +++ b/CMakeLists.txt @@ -0,0 +1,1450 @@ +if(${CMAKE_SOURCE_DIR} STREQUAL ${CMAKE_BINARY_DIR}) + message(FATAL_ERROR "Prevented in-tree built. Please create a build directory outside of the SDL source code and call cmake from there") +endif() + +cmake_minimum_required(VERSION 2.8) +project(SDL2 C) +include(CheckFunctionExists) +include(CheckLibraryExists) +include(CheckIncludeFiles) +include(CheckIncludeFile) +include(CheckSymbolExists) +include(CheckCSourceRuns) +include(CheckCCompilerFlag) +include(CheckTypeSize) +include(CheckStructHasMember) +include(CMakeDependentOption) +include(FindPkgConfig) +set(CMAKE_MODULE_PATH "${SDL2_SOURCE_DIR}/cmake") +include(${SDL2_SOURCE_DIR}/cmake/macros.cmake) +include(${SDL2_SOURCE_DIR}/cmake/sdlchecks.cmake) + +# General settings +# Edit include/SDL_version.h and change the version, then: +# SDL_MICRO_VERSION += 1; +# SDL_INTERFACE_AGE += 1; +# SDL_BINARY_AGE += 1; +# if any functions have been added, set SDL_INTERFACE_AGE to 0. +# if backwards compatibility has been broken, +# set SDL_BINARY_AGE and SDL_INTERFACE_AGE to 0. +set(SDL_MAJOR_VERSION 2) +set(SDL_MINOR_VERSION 0) +set(SDL_MICRO_VERSION 4) +set(SDL_INTERFACE_AGE 0) +set(SDL_BINARY_AGE 4) +set(SDL_VERSION "${SDL_MAJOR_VERSION}.${SDL_MINOR_VERSION}.${SDL_MICRO_VERSION}") + +# Calculate a libtool-like version number +math(EXPR LT_CURRENT "${SDL_MICRO_VERSION} - ${SDL_INTERFACE_AGE}") +math(EXPR LT_AGE "${SDL_BINARY_AGE} - ${SDL_INTERFACE_AGE}") +math(EXPR LT_MAJOR "${LT_CURRENT}- ${LT_AGE}") +set(LT_REVISION "${SDL_INTERFACE_AGE}") +set(LT_RELEASE "${SDL_MAJOR_VERSION}.${SDL_MINOR_VERSION}") +set(LT_VERSION "${LT_MAJOR}.${LT_AGE}.${LT_REVISION}") + +message(STATUS "${LT_VERSION} :: ${LT_AGE} :: ${LT_REVISION} :: ${LT_CURRENT} :: ${LT_RELEASE}") + +# General settings & flags +set(LIBRARY_OUTPUT_DIRECTORY "build") +# Check for 64 or 32 bit +set(SIZEOF_VOIDP ${CMAKE_SIZEOF_VOID_P}) +if(CMAKE_SIZEOF_VOID_P EQUAL 8) + set(ARCH_64 TRUE) + set(PROCESSOR_ARCH "x64") +else() + set(ARCH_64 FALSE) + set(PROCESSOR_ARCH "x86") +endif() +set(LIBNAME SDL2) +if(NOT LIBTYPE) + set(LIBTYPE SHARED) +endif() + +# Get the platform +if(WIN32) + if(NOT WINDOWS) + set(WINDOWS TRUE) + endif() +elseif(UNIX AND NOT APPLE) + if(CMAKE_SYSTEM_NAME MATCHES ".*Linux") + set(LINUX TRUE) + elseif(CMAKE_SYSTEM_NAME MATCHES "kFreeBSD.*") + set(FREEBSD TRUE) + elseif(CMAKE_SYSTEM_NAME MATCHES "kNetBSD.*|NetBSD.*") + set(NETBSD TRUE) + elseif(CMAKE_SYSTEM_NAME MATCHES "kOpenBSD.*|OpenBSD.*") + set(OPENBSD TRUE) + elseif(CMAKE_SYSTEM_NAME MATCHES ".*GNU.*") + set(GNU TRUE) + elseif(CMAKE_SYSTEM_NAME MATCHES ".*BSDI.*") + set(BSDI TRUE) + elseif(CMAKE_SYSTEM_NAME MATCHES "DragonFly.*|FreeBSD") + set(FREEBSD TRUE) + elseif(CMAKE_SYSTEM_NAME MATCHES "SYSV5.*") + set(SYSV5 TRUE) + elseif(CMAKE_SYSTEM_NAME MATCHES "Solaris.*") + set(SOLARIS TRUE) + elseif(CMAKE_SYSTEM_NAME MATCHES "HP-UX.*") + set(HPUX TRUE) + elseif(CMAKE_SYSTEM_NAME MATCHES "AIX.*") + set(AIX TRUE) + elseif(CMAKE_SYSTEM_NAME MATCHES "Minix.*") + set(MINIX TRUE) + endif() +elseif(APPLE) + if(CMAKE_SYSTEM_NAME MATCHES ".*Darwin.*") + set(DARWIN TRUE) + elseif(CMAKE_SYSTEM_NAME MATCHES ".*MacOS.*") + set(MACOSX TRUE) + endif() + # TODO: iOS? +elseif(CMAKE_SYSTEM_NAME MATCHES "BeOS.*") + message_error("BeOS support has been removed as of SDL 2.0.2.") +elseif(CMAKE_SYSTEM_NAME MATCHES "Haiku.*") + set(HAIKU TRUE) +endif() + +# Don't mistake osx for unix +if(UNIX AND NOT APPLE) + set(UNIX_SYS ON) +else() + set(UNIX_SYS OFF) +endif() + +if(UNIX OR APPLE) + set(UNIX_OR_MAC_SYS ON) +else() + set(UNIX_OR_MAC_SYS OFF) +endif() + +if (UNIX_OR_MAC_SYS AND NOT EMSCRIPTEN) # JavaScript does not yet have threading support, so disable pthreads when building for Emscripten. + set(SDL_PTHREADS_ENABLED_BY_DEFAULT ON) +else() + set(SDL_PTHREADS_ENABLED_BY_DEFAULT OFF) +endif() + +# Default option knobs +if(APPLE OR ARCH_64) + set(OPT_DEF_SSEMATH ON) +endif() +if(UNIX OR MINGW OR MSYS) + set(OPT_DEF_LIBC ON) +endif() + +# Compiler info +if(CMAKE_COMPILER_IS_GNUCC) + set(USE_GCC TRUE) + set(OPT_DEF_ASM TRUE) +elseif(CMAKE_C_COMPILER_ID MATCHES "Clang") + set(USE_CLANG TRUE) + set(OPT_DEF_ASM TRUE) +elseif(MSVC_VERSION GREATER 1400) # VisualStudio 8.0+ + set(OPT_DEF_ASM TRUE) + #set(CMAKE_C_FLAGS "/ZI /WX- / +else() + set(OPT_DEF_ASM FALSE) +endif() + +# Default flags, if not set otherwise +if("$ENV{CFLAGS}" STREQUAL "") + if(USE_GCC OR USE_CLANG) + set(CMAKE_C_FLAGS "-g -O3") + endif() +else() + set(CMAKE_C_FLAGS "$ENV{CFLAGS}") + list(APPEND EXTRA_CFLAGS "$ENV{CFLAGS}") +endif() +if(NOT ("$ENV{CFLAGS}" STREQUAL "")) # Hackish, but does the trick on Win32 + list(APPEND EXTRA_LDFLAGS "$ENV{LDFLAGS}") +endif() + +if(MSVC) + option(FORCE_STATIC_VCRT "Force /MT for static VC runtimes" OFF) + if(FORCE_STATIC_VCRT) + foreach(flag_var + CMAKE_C_FLAGS CMAKE_C_FLAGS_DEBUG CMAKE_C_FLAGS_RELEASE + CMAKE_C_FLAGS_MINSIZEREL CMAKE_C_FLAGS_RELWITHDEBINFO) + if(${flag_var} MATCHES "/MD") + string(REGEX REPLACE "/MD" "/MT" ${flag_var} "${${flag_var}}") + endif() + endforeach() + endif() +endif() + +# Those are used for pkg-config and friends, so that the SDL2.pc, sdl2-config, +# etc. are created correctly. +set(SDL_LIBS "-lSDL2") +set(SDL_CFLAGS "") + +# Emscripten toolchain has a nonempty default value for this, and the checks +# in this file need to change that, so remember the original value, and +# restore back to that afterwards. For check_function_exists() to work in +# Emscripten, this value must be at its default value. +set(ORIG_CMAKE_REQUIRED_FLAGS ${CMAKE_REQUIRED_FLAGS}) + +if(CYGWIN) + # We build SDL on cygwin without the UNIX emulation layer + include_directories("-I/usr/include/mingw") + set(CMAKE_REQUIRED_FLAGS "-mno-cygwin") + check_c_source_compiles("int main(int argc, char **argv) {}" + HAVE_GCC_NO_CYGWIN) + set(CMAKE_REQUIRED_FLAGS ${ORIG_CMAKE_REQUIRED_FLAGS}) + if(HAVE_GCC_NO_CYGWIN) + list(APPEND EXTRA_LDFLAGS "-mno-cygwin") + list(APPEND SDL_LIBS "-mno-cygwin") + endif() + set(SDL_CFLAGS "${SDL_CFLAGS} -I/usr/include/mingw") +endif() + +add_definitions(-DUSING_GENERATED_CONFIG_H) +# General includes +include_directories(${SDL2_BINARY_DIR}/include ${SDL2_SOURCE_DIR}/include) + +# All these ENABLED_BY_DEFAULT vars will default to ON if not specified, so +# you only need to have a platform override them if they are disabling. +set(OPT_DEF_ASM TRUE) +if(EMSCRIPTEN) + # Set up default values for the currently supported set of subsystems: + # Emscripten/Javascript does not have assembly support, a dynamic library + # loading architecture, low-level CPU inspection or multithreading. + set(OPT_DEF_ASM FALSE) + set(SDL_SHARED_ENABLED_BY_DEFAULT OFF) + set(SDL_ATOMIC_ENABLED_BY_DEFAULT OFF) + set(SDL_THREADS_ENABLED_BY_DEFAULT OFF) + set(SDL_LOADSO_ENABLED_BY_DEFAULT OFF) + set(SDL_CPUINFO_ENABLED_BY_DEFAULT OFF) + set(SDL_DLOPEN_ENABLED_BY_DEFAULT OFF) +endif() + +if (NOT DEFINED SDL_SHARED_ENABLED_BY_DEFAULT) + set(SDL_SHARED_ENABLED_BY_DEFAULT ON) +endif() + +set(SDL_SUBSYSTEMS + Atomic Audio Video Render Events Joystick Haptic Power Threads Timers + File Loadso CPUinfo Filesystem Dlopen) +foreach(_SUB ${SDL_SUBSYSTEMS}) + string(TOUPPER ${_SUB} _OPT) + if (NOT DEFINED SDL_${_OPT}_ENABLED_BY_DEFAULT) + set(SDL_${_OPT}_ENABLED_BY_DEFAULT ON) + endif() + option(SDL_${_OPT} "Enable the ${_SUB} subsystem" ${SDL_${_OPT}_ENABLED_BY_DEFAULT}) +endforeach() + +option_string(ASSERTIONS "Enable internal sanity checks (auto/disabled/release/enabled/paranoid)" "auto") +#set_option(DEPENDENCY_TRACKING "Use gcc -MMD -MT dependency tracking" ON) +set_option(LIBC "Use the system C library" ${OPT_DEF_LIBC}) +set_option(GCC_ATOMICS "Use gcc builtin atomics" ${USE_GCC}) +set_option(ASSEMBLY "Enable assembly routines" ${OPT_DEF_ASM}) +set_option(SSEMATH "Allow GCC to use SSE floating point math" ${OPT_DEF_SSEMATH}) +set_option(MMX "Use MMX assembly routines" ${OPT_DEF_ASM}) +set_option(3DNOW "Use 3Dnow! MMX assembly routines" ${OPT_DEF_ASM}) +set_option(SSE "Use SSE assembly routines" ${OPT_DEF_ASM}) +set_option(SSE2 "Use SSE2 assembly routines" ${OPT_DEF_SSEMATH}) +set_option(ALTIVEC "Use Altivec assembly routines" ${OPT_DEF_ASM}) +set_option(DISKAUDIO "Support the disk writer audio driver" ON) +set_option(DUMMYAUDIO "Support the dummy audio driver" ON) +set_option(VIDEO_DIRECTFB "Use DirectFB video driver" OFF) +dep_option(DIRECTFB_SHARED "Dynamically load directfb support" ON "VIDEO_DIRECTFB" OFF) +set_option(FUSIONSOUND "Use FusionSound audio driver" OFF) +dep_option(FUSIONSOUND_SHARED "Dynamically load fusionsound audio support" ON "FUSIONSOUND" OFF) +set_option(VIDEO_DUMMY "Use dummy video driver" ON) +set_option(VIDEO_OPENGL "Include OpenGL support" ON) +set_option(VIDEO_OPENGLES "Include OpenGL ES support" ON) +set_option(PTHREADS "Use POSIX threads for multi-threading" ${SDL_PTHREADS_ENABLED_BY_DEFAULT}) +dep_option(PTHREADS_SEM "Use pthread semaphores" ON "PTHREADS" OFF) +set_option(SDL_DLOPEN "Use dlopen for shared object loading" ${SDL_DLOPEN_ENABLED_BY_DEFAULT}) +set_option(OSS "Support the OSS audio API" ${UNIX_SYS}) +set_option(ALSA "Support the ALSA audio API" ${UNIX_SYS}) +dep_option(ALSA_SHARED "Dynamically load ALSA audio support" ON "ALSA" OFF) +set_option(ESD "Support the Enlightened Sound Daemon" ${UNIX_SYS}) +dep_option(ESD_SHARED "Dynamically load ESD audio support" ON "ESD" OFF) +set_option(PULSEAUDIO "Use PulseAudio" ${UNIX_SYS}) +dep_option(PULSEAUDIO_SHARED "Dynamically load PulseAudio support" ON "PULSEAUDIO" OFF) +set_option(ARTS "Support the Analog Real Time Synthesizer" ${UNIX_SYS}) +dep_option(ARTS_SHARED "Dynamically load aRts audio support" ON "ARTS" OFF) +set_option(NAS "Support the NAS audio API" ${UNIX_SYS}) +set_option(NAS_SHARED "Dynamically load NAS audio API" ${UNIX_SYS}) +set_option(SNDIO "Support the sndio audio API" ${UNIX_SYS}) +set_option(RPATH "Use an rpath when linking SDL" ${UNIX_SYS}) +set_option(CLOCK_GETTIME "Use clock_gettime() instead of gettimeofday()" OFF) +set_option(INPUT_TSLIB "Use the Touchscreen library for input" ${UNIX_SYS}) +set_option(VIDEO_X11 "Use X11 video driver" ${UNIX_SYS}) +set_option(VIDEO_WAYLAND "Use Wayland video driver" ${UNIX_SYS}) +dep_option(WAYLAND_SHARED "Dynamically load Wayland support" ON "VIDEO_WAYLAND" OFF) +dep_option(VIDEO_WAYLAND_QT_TOUCH "QtWayland server support for Wayland video driver" ON "VIDEO_WAYLAND" OFF) +set_option(VIDEO_MIR "Use Mir video driver" ${UNIX_SYS}) +dep_option(MIR_SHARED "Dynamically load Mir support" ON "VIDEO_MIR" OFF) +set_option(VIDEO_RPI "Use Raspberry Pi video driver" ${UNIX_SYS}) +dep_option(X11_SHARED "Dynamically load X11 support" ON "VIDEO_X11" OFF) +set(SDL_X11_OPTIONS Xcursor Xinerama XInput Xrandr Xscrnsaver XShape Xvm) +foreach(_SUB ${SDL_X11_OPTIONS}) + string(TOUPPER "VIDEO_X11_${_SUB}" _OPT) + dep_option(${_OPT} "Enable ${_SUB} support" ON "VIDEO_X11" OFF) +endforeach() +set_option(VIDEO_COCOA "Use Cocoa video driver" ${APPLE}) +set_option(DIRECTX "Use DirectX for Windows audio/video" ${WINDOWS}) +set_option(RENDER_D3D "Enable the Direct3D render driver" ${WINDOWS}) +set_option(VIDEO_VIVANTE "Use Vivante EGL video driver" ${UNIX_SYS}) + +# TODO: We should (should we?) respect cmake's ${BUILD_SHARED_LIBS} flag here +# The options below are for compatibility to configure's default behaviour. +set(SDL_SHARED ${SDL_SHARED_ENABLED_BY_DEFAULT} CACHE BOOL "Build a shared version of the library") +set(SDL_STATIC ON CACHE BOOL "Build a static version of the library") + +# General source files +file(GLOB SOURCE_FILES + ${SDL2_SOURCE_DIR}/src/*.c + ${SDL2_SOURCE_DIR}/src/atomic/*.c + ${SDL2_SOURCE_DIR}/src/audio/*.c + ${SDL2_SOURCE_DIR}/src/cpuinfo/*.c + ${SDL2_SOURCE_DIR}/src/dynapi/*.c + ${SDL2_SOURCE_DIR}/src/events/*.c + ${SDL2_SOURCE_DIR}/src/file/*.c + ${SDL2_SOURCE_DIR}/src/libm/*.c + ${SDL2_SOURCE_DIR}/src/render/*.c + ${SDL2_SOURCE_DIR}/src/render/*/*.c + ${SDL2_SOURCE_DIR}/src/stdlib/*.c + ${SDL2_SOURCE_DIR}/src/thread/*.c + ${SDL2_SOURCE_DIR}/src/timer/*.c + ${SDL2_SOURCE_DIR}/src/video/*.c) + + +if(ASSERTIONS STREQUAL "auto") + # Do nada - use optimization settings to determine the assertion level +elseif(ASSERTIONS STREQUAL "disabled") + set(SDL_DEFAULT_ASSERT_LEVEL 0) +elseif(ASSERTIONS STREQUAL "release") + set(SDL_DEFAULT_ASSERT_LEVEL 1) +elseif(ASSERTIONS STREQUAL "enabled") + set(SDL_DEFAULT_ASSERT_LEVEL 2) +elseif(ASSERTIONS STREQUAL "paranoid") + set(SDL_DEFAULT_ASSERT_LEVEL 3) +else() + message_error("unknown assertion level") +endif() +set(HAVE_ASSERTIONS ${ASSERTIONS}) + +# Compiler option evaluation +if(USE_GCC OR USE_CLANG) + if(DEPENDENCY_TRACKING) + check_c_source_compiles(" + #if !defined(__GNUC__) || __GNUC__ < 3 + #error Dependency tracking requires GCC 3.0 or newer + #endif + int main(int argc, char **argv) { }" HAVE_DEPENDENCY_TRACKING) + endif() + + if(GCC_ATOMICS) + check_c_source_compiles("int main(int argc, char **argv) { + int a; + void *x, *y, *z; + __sync_lock_test_and_set(&a, 4); + __sync_lock_test_and_set(&x, y); + __sync_fetch_and_add(&a, 1); + __sync_bool_compare_and_swap(&a, 5, 10); + __sync_bool_compare_and_swap(&x, y, z); }" HAVE_GCC_ATOMICS) + if(NOT HAVE_GCC_ATOMICS) + check_c_source_compiles("int main(int argc, char **argv) { + int a; + __sync_lock_test_and_set(&a, 1); + __sync_lock_release(&a); }" HAVE_GCC_SYNC_LOCK_TEST_AND_SET) + endif() + endif() + + set(CMAKE_REQUIRED_FLAGS "-mpreferred-stack-boundary=2") + check_c_source_compiles("int x = 0; int main(int argc, char **argv) {}" + HAVE_GCC_PREFERRED_STACK_BOUNDARY) + set(CMAKE_REQUIRED_FLAGS ${ORIG_CMAKE_REQUIRED_FLAGS}) + + set(CMAKE_REQUIRED_FLAGS "-fvisibility=hidden -Werror") + check_c_source_compiles(" + #if !defined(__GNUC__) || __GNUC__ < 4 + #error SDL only uses visibility attributes in GCC 4 or newer + #endif + int main(int argc, char **argv) {}" HAVE_GCC_FVISIBILITY) + if(HAVE_GCC_FVISIBILITY) + list(APPEND EXTRA_CFLAGS "-fvisibility=hidden") + endif() + set(CMAKE_REQUIRED_FLAGS ${ORIG_CMAKE_REQUIRED_FLAGS}) + + check_c_compiler_flag(-Wall HAVE_GCC_WALL) + if(HAVE_GCC_WALL) + list(APPEND EXTRA_CFLAGS "-Wall") + if(HAIKU) + set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -Wno-multichar") + endif() + endif() + check_c_compiler_flag(-Wshadow HAVE_GCC_WSHADOW) + if(HAVE_GCC_WSHADOW) + list(APPEND EXTRA_CFLAGS "-Wshadow") + endif() + + set(CMAKE_REQUIRED_FLAGS "-Wl,--no-undefined") + check_c_compiler_flag("" HAVE_NO_UNDEFINED) + set(CMAKE_REQUIRED_FLAGS) + if(HAVE_NO_UNDEFINED) + list(APPEND EXTRA_LDFLAGS "-Wl,--no-undefined") + endif() +endif() + +if(ASSEMBLY) + if(USE_GCC OR USE_CLANG) + set(SDL_ASSEMBLY_ROUTINES 1) + # TODO: Those all seem to be quite GCC specific - needs to be + # reworked for better compiler support + set(HAVE_ASSEMBLY TRUE) + if(MMX) + set(CMAKE_REQUIRED_FLAGS "-mmmx") + check_c_source_compiles(" + #ifdef __MINGW32__ + #include <_mingw.h> + #ifdef __MINGW64_VERSION_MAJOR + #include + #else + #include + #endif + #else + #include + #endif + #ifndef __MMX__ + #error Assembler CPP flag not enabled + #endif + int main(int argc, char **argv) { }" HAVE_MMX) + if(HAVE_MMX) + list(APPEND EXTRA_CFLAGS "-mmmx") + endif() + set(CMAKE_REQUIRED_FLAGS ${ORIG_CMAKE_REQUIRED_FLAGS}) + endif() + + if(3DNOW) + set(CMAKE_REQUIRED_FLAGS "-m3dnow") + check_c_source_compiles(" + #include + #ifndef __3dNOW__ + #error Assembler CPP flag not enabled + #endif + int main(int argc, char **argv) { + void *p = 0; + _m_prefetch(p); + }" HAVE_3DNOW) + if(HAVE_3DNOW) + list(APPEND EXTRA_CFLAGS "-m3dnow") + endif() + set(CMAKE_REQUIRED_FLAGS ${ORIG_CMAKE_REQUIRED_FLAGS}) + endif() + + if(SSE) + set(CMAKE_REQUIRED_FLAGS "-msse") + check_c_source_compiles(" + #ifdef __MINGW32__ + #include <_mingw.h> + #ifdef __MINGW64_VERSION_MAJOR + #include + #else + #include + #endif + #else + #include + #endif + #ifndef __SSE__ + #error Assembler CPP flag not enabled + #endif + int main(int argc, char **argv) { }" HAVE_SSE) + if(HAVE_SSE) + list(APPEND EXTRA_CFLAGS "-msse") + endif() + set(CMAKE_REQUIRED_FLAGS ${ORIG_CMAKE_REQUIRED_FLAGS}) + endif() + + if(SSE2) + set(CMAKE_REQUIRED_FLAGS "-msse2") + check_c_source_compiles(" + #ifdef __MINGW32__ + #include <_mingw.h> + #ifdef __MINGW64_VERSION_MAJOR + #include + #else + #include + #endif + #else + #include + #endif + #ifndef __SSE2__ + #error Assembler CPP flag not enabled + #endif + int main(int argc, char **argv) { }" HAVE_SSE2) + if(HAVE_SSE2) + list(APPEND EXTRA_CFLAGS "-msse2") + endif() + set(CMAKE_REQUIRED_FLAGS ${ORIG_CMAKE_REQUIRED_FLAGS}) + endif() + + if(SSEMATH) + if(SSE OR SSE2) + if(USE_GCC) + list(APPEND EXTRA_CFLAGS "-mfpmath=387") + endif() + set(HAVE_SSEMATH TRUE) + endif() + endif() + + if(ALTIVEC) + set(CMAKE_REQUIRED_FLAGS "-maltivec") + check_c_source_compiles(" + #include + vector unsigned int vzero() { + return vec_splat_u32(0); + } + int main(int argc, char **argv) { }" HAVE_ALTIVEC_H_HDR) + check_c_source_compiles(" + vector unsigned int vzero() { + return vec_splat_u32(0); + } + int main(int argc, char **argv) { }" HAVE_ALTIVEC) + set(CMAKE_REQUIRED_FLAGS ${ORIG_CMAKE_REQUIRED_FLAGS}) + if(HAVE_ALTIVEC OR HAVE_ALTIVEC_H_HDR) + set(HAVE_ALTIVEC TRUE) # if only HAVE_ALTIVEC_H_HDR is set + list(APPEND EXTRA_CFLAGS "-maltivec") + set(SDL_ALTIVEC_BLITTERS 1) + if(HAVE_ALTIVEC_H_HDR) + set(HAVE_ALTIVEC_H 1) + endif() + endif() + endif() + elseif(MSVC_VERSION GREATER 1500) + # TODO: SDL_cpuinfo.h needs to support the user's configuration wish + # for MSVC - right now it is always activated + if(NOT ARCH_64) + set(HAVE_MMX TRUE) + set(HAVE_3DNOW TRUE) + endif() + set(HAVE_SSE TRUE) + set(HAVE_SSE2 TRUE) + set(SDL_ASSEMBLY_ROUTINES 1) + endif() +# TODO: +#else() +# if(USE_GCC OR USE_CLANG) +# list(APPEND EXTRA_CFLAGS "-mno-sse" "-mno-sse2" "-mno-mmx") +# endif() +endif() + +# TODO: Can't deactivate on FreeBSD? w/o LIBC, SDL_stdinc.h can't define +# anything. +if(LIBC) + if(WINDOWS AND NOT MINGW) + set(HAVE_LIBC TRUE) + foreach(_HEADER stdio.h string.h ctype.h math.h) + string(TOUPPER "HAVE_${_HEADER}" _UPPER) + string(REPLACE "." "_" _HAVE_H ${_UPPER}) + set(${_HAVE_H} 1) + endforeach() + set(HAVE_SIGNAL_H 1) + foreach(_FN + malloc calloc realloc free qsort abs memset memcpy memmove memcmp + strlen _strrev _strupr _strlwr strchr strrchr strstr itoa _ltoa + _ultoa strtol strtoul strtoll strtod atoi atof strcmp strncmp + _stricmp _strnicmp sscanf atan atan2 acos asin ceil copysign cos + cosf fabs floor log pow scalbn sin sinf sqrt sqrtf tan tanf) + string(TOUPPER ${_FN} _UPPER) + set(HAVE_${_UPPER} 1) + endforeach() + if(NOT CYGWIN AND NOT MINGW) + set(HAVE_ALLOCA 1) + endif() + set(HAVE_M_PI 1) + add_definitions(-D_USE_MATH_DEFINES) # needed for M_PI + set(STDC_HEADERS 1) + else() + set(HAVE_LIBC TRUE) + check_include_file(sys/types.h HAVE_SYS_TYPES_H) + foreach(_HEADER + stdio.h stdlib.h stddef.h stdarg.h malloc.h memory.h string.h + strings.h inttypes.h stdint.h ctype.h math.h iconv.h signal.h) + string(TOUPPER "HAVE_${_HEADER}" _UPPER) + string(REPLACE "." "_" _HAVE_H ${_UPPER}) + check_include_file("${_HEADER}" ${_HAVE_H}) + endforeach() + + check_include_files("dlfcn.h;stdint.h;stddef.h;inttypes.h;stdlib.h;strings.h;string.h;float.h" STDC_HEADERS) + check_type_size("size_t" SIZEOF_SIZE_T) + check_symbol_exists(M_PI math.h HAVE_M_PI) + # TODO: refine the mprotect check + check_c_source_compiles("#include + #include + int main() { }" HAVE_MPROTECT) + foreach(_FN + strtod malloc calloc realloc free getenv setenv putenv unsetenv + qsort abs bcopy memset memcpy memmove memcmp strlen strlcpy strlcat + strdup _strrev _strupr _strlwr strchr strrchr strstr itoa _ltoa + _uitoa _ultoa strtol strtoul _i64toa _ui64toa strtoll strtoull + atoi atof strcmp strncmp _stricmp strcasecmp _strnicmp strncasecmp + vsscanf vsnprintf fseeko fseeko64 sigaction setjmp + nanosleep sysconf sysctlbyname + ) + string(TOUPPER ${_FN} _UPPER) + set(_HAVEVAR "HAVE_${_UPPER}") + check_function_exists("${_FN}" ${_HAVEVAR}) + endforeach() + + check_library_exists(m pow "" HAVE_LIBM) + if(HAVE_LIBM) + set(CMAKE_REQUIRED_LIBRARIES m) + foreach(_FN + atan atan2 ceil copysign cos cosf fabs floor log pow scalbn sin + sinf sqrt sqrtf tan tanf acos asin) + string(TOUPPER ${_FN} _UPPER) + set(_HAVEVAR "HAVE_${_UPPER}") + check_function_exists("${_FN}" ${_HAVEVAR}) + endforeach() + set(CMAKE_REQUIRED_LIBRARIES) + list(APPEND EXTRA_LIBS m) + endif() + + check_library_exists(iconv iconv_open "" HAVE_LIBICONV) + if(HAVE_LIBICONV) + list(APPEND EXTRA_LIBS iconv) + set(HAVE_ICONV 1) + endif() + + if(NOT APPLE) + check_include_file(alloca.h HAVE_ALLOCA_H) + check_function_exists(alloca HAVE_ALLOCA) + else() + set(HAVE_ALLOCA_H 1) + set(HAVE_ALLOCA 1) + endif() + + check_struct_has_member("struct sigaction" "sa_sigaction" "signal.h" HAVE_SA_SIGACTION) + endif() +else() + if(WINDOWS) + set(HAVE_STDARG_H 1) + set(HAVE_STDDEF_H 1) + endif() +endif() + + +# Enable/disable various subsystems of the SDL library +foreach(_SUB ${SDL_SUBSYSTEMS}) + string(TOUPPER ${_SUB} _OPT) + if(NOT SDL_${_OPT}) + set(SDL_${_OPT}_DISABLED 1) + endif() +endforeach() +if(SDL_JOYSTICK) + file(GLOB JOYSTICK_SOURCES ${SDL2_SOURCE_DIR}/src/joystick/*.c) + set(SOURCE_FILES ${SOURCE_FILES} ${JOYSTICK_SOURCES}) +endif() +if(SDL_HAPTIC) + if(NOT SDL_JOYSTICK) + # Haptic requires some private functions from the joystick subsystem. + message_error("SDL_HAPTIC requires SDL_JOYSTICK, which is not enabled") + endif() + file(GLOB HAPTIC_SOURCES ${SDL2_SOURCE_DIR}/src/haptic/*.c) + set(SOURCE_FILES ${SOURCE_FILES} ${HAPTIC_SOURCES}) +endif() +if(SDL_POWER) + file(GLOB POWER_SOURCES ${SDL2_SOURCE_DIR}/src/power/*.c) + set(SOURCE_FILES ${SOURCE_FILES} ${POWER_SOURCES}) +endif() +# TODO: in configure.in, the test for LOADSO and SDL_DLOPEN is a bit weird: +# if LOADSO is not wanted, SDL_LOADSO_DISABLED is set +# If however on Unix or APPLE dlopen() is detected via CheckDLOPEN(), +# SDL_LOADSO_DISABLED will not be set, regardless of the LOADSO settings + +# General SDL subsystem options, valid for all platforms +if(SDL_AUDIO) + # CheckDummyAudio/CheckDiskAudio - valid for all platforms + if(DUMMYAUDIO) + set(SDL_AUDIO_DRIVER_DUMMY 1) + file(GLOB DUMMYAUDIO_SOURCES ${SDL2_SOURCE_DIR}/src/audio/dummy/*.c) + set(SOURCE_FILES ${SOURCE_FILES} ${DUMMYAUDIO_SOURCES}) + set(HAVE_DUMMYAUDIO TRUE) + endif() + if(DISKAUDIO) + set(SDL_AUDIO_DRIVER_DISK 1) + file(GLOB DISKAUDIO_SOURCES ${SDL2_SOURCE_DIR}/src/audio/disk/*.c) + set(SOURCE_FILES ${SOURCE_FILES} ${DISKAUDIO_SOURCES}) + set(HAVE_DISKAUDIO TRUE) + endif() +endif() + +if(SDL_DLOPEN) + # Relevant for Unix/Darwin only + if(UNIX OR APPLE) + CheckDLOPEN() + endif() +endif() + +if(SDL_VIDEO) + if(VIDEO_DUMMY) + set(SDL_VIDEO_DRIVER_DUMMY 1) + file(GLOB VIDEO_DUMMY_SOURCES ${SDL2_SOURCE_DIR}/src/video/dummy/*.c) + set(SOURCE_FILES ${SOURCE_FILES} ${VIDEO_DUMMY_SOURCES}) + set(HAVE_VIDEO_DUMMY TRUE) + set(HAVE_SDL_VIDEO TRUE) + endif() +endif() + +# Platform-specific options and settings +if(EMSCRIPTEN) + # Hide noisy warnings that intend to aid mostly during initial stages of porting a new + # project. Uncomment at will for verbose cross-compiling -I/../ path info. + add_definitions(-Wno-warn-absolute-paths) + if(SDL_AUDIO) + set(SDL_AUDIO_DRIVER_EMSCRIPTEN 1) + file(GLOB EM_AUDIO_SOURCES ${SDL2_SOURCE_DIR}/src/audio/emscripten/*.c) + set(SOURCE_FILES ${SOURCE_FILES} ${EM_AUDIO_SOURCES}) + set(HAVE_SDL_AUDIO TRUE) + endif() + if(SDL_FILESYSTEM) + set(SDL_FILESYSTEM_EMSCRIPTEN 1) + file(GLOB EM_FILESYSTEM_SOURCES ${SDL2_SOURCE_DIR}/src/filesystem/emscripten/*.c) + set(SOURCE_FILES ${SOURCE_FILES} ${EM_FILESYSTEM_SOURCES}) + set(HAVE_SDL_FILESYSTEM TRUE) + endif() + if(SDL_JOYSTICK) + set(SDL_JOYSTICK_EMSCRIPTEN 1) + file(GLOB EM_JOYSTICK_SOURCES ${SDL2_SOURCE_DIR}/src/joystick/emscripten/*.c) + set(SOURCE_FILES ${SOURCE_FILES} ${EM_JOYSTICK_SOURCES}) + set(HAVE_SDL_JOYSTICK TRUE) + endif() + if(SDL_POWER) + set(SDL_POWER_EMSCRIPTEN 1) + file(GLOB EM_POWER_SOURCES ${SDL2_SOURCE_DIR}/src/power/emscripten/*.c) + set(SOURCE_FILES ${SOURCE_FILES} ${EM_POWER_SOURCES}) + set(HAVE_SDL_POWER TRUE) + endif() + if(SDL_VIDEO) + set(SDL_VIDEO_DRIVER_EMSCRIPTEN 1) + file(GLOB EM_VIDEO_SOURCES ${SDL2_SOURCE_DIR}/src/video/emscripten/*.c) + set(SOURCE_FILES ${SOURCE_FILES} ${EM_VIDEO_SOURCES}) + set(HAVE_SDL_VIDEO TRUE) + + #enable gles + if(VIDEO_OPENGLES) + set(SDL_VIDEO_OPENGL_EGL 1) + set(HAVE_VIDEO_OPENGLES TRUE) + set(SDL_VIDEO_OPENGL_ES2 1) + set(SDL_VIDEO_RENDER_OGL_ES2 1) + endif() + endif() +elseif(UNIX AND NOT APPLE) + if(SDL_AUDIO) + if(SYSV5 OR SOLARIS OR HPUX) + set(SDL_AUDIO_DRIVER_SUNAUDIO 1) + file(GLOB SUN_AUDIO_SOURCES ${SDL2_SOURCE_DIR}/src/audio/sun/*.c) + set(SOURCE_FILES ${SOURCE_FILES} ${SUN_AUDIO_SOURCES}) + set(HAVE_SDL_AUDIO TRUE) + elseif(NETBSD OR OPENBSD) + set(SDL_AUDIO_DRIVER_BSD 1) + file(GLOB BSD_AUDIO_SOURCES ${SDL2_SOURCE_DIR}/src/audio/bsd/*.c) + set(SOURCE_FILES ${SOURCE_FILES} ${BSD_AUDIO_SOURCES}) + set(HAVE_SDL_AUDIO TRUE) + elseif(AIX) + set(SDL_AUDIO_DRIVER_PAUDIO 1) + file(GLOB AIX_AUDIO_SOURCES ${SDL2_SOURCE_DIR}/src/audio/paudio/*.c) + set(SOURCE_FILES ${SOURCE_FILES} ${AIX_AUDIO_SOURCES}) + set(HAVE_SDL_AUDIO TRUE) + endif() + CheckOSS() + CheckALSA() + CheckPulseAudio() + CheckESD() + CheckARTS() + CheckNAS() + CheckSNDIO() + CheckFusionSound() + endif() + + if(SDL_VIDEO) + # Need to check for Raspberry PI first and add platform specific compiler flags, otherwise the test for GLES fails! + CheckRPI() + CheckX11() + CheckMir() + CheckDirectFB() + CheckOpenGLX11() + CheckOpenGLESX11() + CheckWayland() + CheckVivante() + endif() + + if(LINUX) + check_c_source_compiles(" + #include + #ifndef EVIOCGNAME + #error EVIOCGNAME() ioctl not available + #endif + int main(int argc, char** argv) {}" HAVE_INPUT_EVENTS) + + check_c_source_compiles(" + #include + #include + + int main(int argc, char **argv) + { + struct kbentry kbe; + kbe.kb_table = KG_CTRL; + ioctl(0, KDGKBENT, &kbe); + }" HAVE_INPUT_KD) + + file(GLOB CORE_SOURCES ${SDL2_SOURCE_DIR}/src/core/linux/*.c) + set(SOURCE_FILES ${SOURCE_FILES} ${CORE_SOURCES}) + + if(HAVE_INPUT_EVENTS) + set(SDL_INPUT_LINUXEV 1) + endif() + + if(SDL_HAPTIC AND HAVE_INPUT_EVENTS) + set(SDL_HAPTIC_LINUX 1) + file(GLOB HAPTIC_SOURCES ${SDL2_SOURCE_DIR}/src/haptic/linux/*.c) + set(SOURCE_FILES ${SOURCE_FILES} ${HAPTIC_SOURCES}) + set(HAVE_SDL_HAPTIC TRUE) + endif() + + if(HAVE_INPUT_KD) + set(SDL_INPUT_LINUXKD 1) + endif() + + check_include_file("libudev.h" HAVE_LIBUDEV_H) + + # !!! FIXME: this needs pkg-config to find the include path, I think. + check_include_file("dbus/dbus.h" HAVE_DBUS_DBUS_H) + endif() + + if(INPUT_TSLIB) + check_c_source_compiles(" + #include \"tslib.h\" + int main(int argc, char** argv) { }" HAVE_INPUT_TSLIB) + if(HAVE_INPUT_TSLIB) + set(SDL_INPUT_TSLIB 1) + list(APPEND EXTRA_LIBS ts) + endif() + endif() + + if(SDL_JOYSTICK) + CheckUSBHID() # seems to be BSD specific - limit the test to BSD only? + if(LINUX) + set(SDL_JOYSTICK_LINUX 1) + file(GLOB JOYSTICK_SOURCES ${SDL2_SOURCE_DIR}/src/joystick/linux/*.c) + set(SOURCE_FILES ${SOURCE_FILES} ${JOYSTICK_SOURCES}) + set(HAVE_SDL_JOYSTICK TRUE) + endif() + endif() + + CheckPTHREAD() + + if(CLOCK_GETTIME) + check_library_exists(rt clock_gettime "" FOUND_CLOCK_GETTIME) + if(FOUND_CLOCK_GETTIME) + list(APPEND EXTRA_LIBS rt) + set(HAVE_CLOCK_GETTIME 1) + else() + check_library_exists(c clock_gettime "" FOUND_CLOCK_GETTIME) + if(FOUND_CLOCK_GETTIME) + set(HAVE_CLOCK_GETTIME 1) + endif() + endif() + endif() + + check_include_file(linux/version.h HAVE_LINUX_VERSION_H) + if(HAVE_LINUX_VERSION_H) + set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -DHAVE_LINUX_VERSION_H") + endif() + + if(SDL_POWER) + if(LINUX) + set(SDL_POWER_LINUX 1) + file(GLOB POWER_SOURCES ${SDL2_SOURCE_DIR}/src/power/linux/*.c) + set(SOURCE_FILES ${SOURCE_FILES} ${POWER_SOURCES}) + set(HAVE_SDL_POWER TRUE) + endif() + endif() + + if(SDL_FILESYSTEM) + set(SDL_FILESYSTEM_UNIX 1) + file(GLOB FILESYSTEM_SOURCES ${SDL2_SOURCE_DIR}/src/filesystem/unix/*.c) + set(SOURCE_FILES ${SOURCE_FILES} ${FILESYSTEM_SOURCES}) + set(HAVE_SDL_FILESYSTEM TRUE) + endif() + + if(SDL_TIMERS) + set(SDL_TIMER_UNIX 1) + file(GLOB TIMER_SOURCES ${SDL2_SOURCE_DIR}/src/timer/unix/*.c) + set(SOURCE_FILES ${SOURCE_FILES} ${TIMER_SOURCES}) + set(HAVE_SDL_TIMERS TRUE) + endif() + + if(RPATH) + set(SDL_RLD_FLAGS "") + if(BSDI OR FREEBSD OR LINUX OR NETBSD) + set(SDL_RLD_FLAGS "-Wl,-rpath,\${libdir}") + elseif(SOLARIS) + set(SDL_RLD_FLAGS "-R\${libdir}") + endif() + set(CMAKE_BUILD_WITH_INSTALL_RPATH TRUE) + set(HAVE_RPATH TRUE) + endif() + +elseif(WINDOWS) + find_program(WINDRES windres) + + check_c_source_compiles(" + #include + int main(int argc, char **argv) { }" HAVE_WIN32_CC) + + file(GLOB CORE_SOURCES ${SDL2_SOURCE_DIR}/src/core/windows/*.c) + set(SOURCE_FILES ${SOURCE_FILES} ${CORE_SOURCES}) + + # Check for DirectX + if(DIRECTX) + if(NOT CMAKE_COMPILER_IS_MINGW) + if("$ENV{DXSDK_DIR}" STREQUAL "") + message_error("DIRECTX requires the \$DXSDK_DIR environment variable to be set") + endif() + set(CMAKE_REQUIRED_FLAGS "/I\"$ENV{DXSDK_DIR}\\Include\"") + endif() + check_include_file(d3d9.h HAVE_D3D_H) + check_include_file(d3d11_1.h HAVE_D3D11_H) + check_include_file(ddraw.h HAVE_DDRAW_H) + check_include_file(dsound.h HAVE_DSOUND_H) + check_include_file(dinput.h HAVE_DINPUT_H) + check_include_file(xaudio2.h HAVE_XAUDIO2_H) + check_include_file(xinput.h HAVE_XINPUT_H) + check_include_file(dxgi.h HAVE_DXGI_H) + if(HAVE_D3D_H OR HAVE_D3D11_H OR HAVE_DDRAW_H OR HAVE_DSOUND_H OR HAVE_DINPUT_H OR HAVE_XAUDIO2_H) + set(HAVE_DIRECTX TRUE) + if(NOT CMAKE_COMPILER_IS_MINGW) + # TODO: change $ENV{DXSDL_DIR} to get the path from the include checks + link_directories($ENV{DXSDK_DIR}\\lib\\${PROCESSOR_ARCH}) + include_directories($ENV{DXSDK_DIR}\\Include) + endif() + endif() + set(CMAKE_REQUIRED_FLAGS ${ORIG_CMAKE_REQUIRED_FLAGS}) + endif() + + if(SDL_AUDIO) + set(SDL_AUDIO_DRIVER_WINMM 1) + file(GLOB WINMM_AUDIO_SOURCES ${SDL2_SOURCE_DIR}/src/audio/winmm/*.c) + set(SOURCE_FILES ${SOURCE_FILES} ${WINMM_AUDIO_SOURCES}) + set(HAVE_SDL_AUDIO TRUE) + + if(HAVE_DSOUND_H) + set(SDL_AUDIO_DRIVER_DSOUND 1) + file(GLOB DSOUND_AUDIO_SOURCES ${SDL2_SOURCE_DIR}/src/audio/directsound/*.c) + set(SOURCE_FILES ${SOURCE_FILES} ${DSOUND_AUDIO_SOURCES}) + endif() + + if(HAVE_XAUDIO2_H) + set(SDL_AUDIO_DRIVER_XAUDIO2 1) + file(GLOB XAUDIO2_AUDIO_SOURCES ${SDL2_SOURCE_DIR}/src/audio/xaudio2/*.c) + set(SOURCE_FILES ${SOURCE_FILES} ${XAUDIO2_AUDIO_SOURCES}) + endif() + endif() + + if(SDL_VIDEO) + # requires SDL_LOADSO on Windows (IME, DX, etc.) + if(NOT SDL_LOADSO) + message_error("SDL_VIDEO requires SDL_LOADSO, which is not enabled") + endif() + set(SDL_VIDEO_DRIVER_WINDOWS 1) + file(GLOB WIN_VIDEO_SOURCES ${SDL2_SOURCE_DIR}/src/video/windows/*.c) + set(SOURCE_FILES ${SOURCE_FILES} ${WIN_VIDEO_SOURCES}) + + if(RENDER_D3D AND HAVE_D3D_H) + set(SDL_VIDEO_RENDER_D3D 1) + set(HAVE_RENDER_D3D TRUE) + endif() + if(RENDER_D3D AND HAVE_D3D11_H) + set(SDL_VIDEO_RENDER_D3D11 1) + set(HAVE_RENDER_D3D TRUE) + endif() + set(HAVE_SDL_VIDEO TRUE) + endif() + + if(SDL_THREADS) + set(SDL_THREAD_WINDOWS 1) + set(SOURCE_FILES ${SOURCE_FILES} + ${SDL2_SOURCE_DIR}/src/thread/windows/SDL_sysmutex.c + ${SDL2_SOURCE_DIR}/src/thread/windows/SDL_syssem.c + ${SDL2_SOURCE_DIR}/src/thread/windows/SDL_systhread.c + ${SDL2_SOURCE_DIR}/src/thread/windows/SDL_systls.c + ${SDL2_SOURCE_DIR}/src/thread/generic/SDL_syscond.c) + set(HAVE_SDL_THREADS TRUE) + endif() + + if(SDL_POWER) + set(SDL_POWER_WINDOWS 1) + set(SOURCE_FILES ${SOURCE_FILES} ${SDL2_SOURCE_DIR}/src/power/windows/SDL_syspower.c) + set(HAVE_SDL_POWER TRUE) + endif() + + if(SDL_FILESYSTEM) + set(SDL_FILESYSTEM_WINDOWS 1) + file(GLOB FILESYSTEM_SOURCES ${SDL2_SOURCE_DIR}/src/filesystem/windows/*.c) + set(SOURCE_FILES ${SOURCE_FILES} ${FILESYSTEM_SOURCES}) + set(HAVE_SDL_FILESYSTEM TRUE) + endif() + + # Libraries for Win32 native and MinGW + list(APPEND EXTRA_LIBS user32 gdi32 winmm imm32 ole32 oleaut32 version uuid) + + # TODO: in configure.in the check for timers is set on + # cygwin | mingw32* - does this include mingw32CE? + if(SDL_TIMERS) + set(SDL_TIMER_WINDOWS 1) + file(GLOB TIMER_SOURCES ${SDL2_SOURCE_DIR}/src/timer/windows/*.c) + set(SOURCE_FILES ${SOURCE_FILES} ${TIMER_SOURCES}) + set(HAVE_SDL_TIMERS TRUE) + endif() + + if(SDL_LOADSO) + set(SDL_LOADSO_WINDOWS 1) + file(GLOB LOADSO_SOURCES ${SDL2_SOURCE_DIR}/src/loadso/windows/*.c) + set(SOURCE_FILES ${SOURCE_FILES} ${LOADSO_SOURCES}) + set(HAVE_SDL_LOADSO TRUE) + endif() + + file(GLOB CORE_SOURCES ${SDL2_SOURCE_DIR}/src/core/windows/*.c) + set(SOURCE_FILES ${SOURCE_FILES} ${CORE_SOURCES}) + + if(SDL_VIDEO) + if(VIDEO_OPENGL) + set(SDL_VIDEO_OPENGL 1) + set(SDL_VIDEO_OPENGL_WGL 1) + set(SDL_VIDEO_RENDER_OGL 1) + set(HAVE_VIDEO_OPENGL TRUE) + endif() + endif() + + if(SDL_JOYSTICK) + file(GLOB JOYSTICK_SOURCES ${SDL2_SOURCE_DIR}/src/joystick/windows/*.c) + set(SOURCE_FILES ${SOURCE_FILES} ${JOYSTICK_SOURCES}) + if(HAVE_DINPUT_H) + set(SDL_JOYSTICK_DINPUT 1) + list(APPEND EXTRA_LIBS dinput8 dxguid) + if(CMAKE_COMPILER_IS_MINGW) + list(APPEND EXTRA_LIBS dxerr8) + else() + list(APPEND EXTRA_LIBS dxerr) + endif() + endif() + if(HAVE_XINPUT_H) + set(SDL_JOYSTICK_XINPUT 1) + endif() + if(NOT HAVE_DINPUT_H AND NOT HAVE_XINPUT_H) + set(SDL_JOYSTICK_WINMM 1) + endif() + set(HAVE_SDL_JOYSTICK TRUE) + + if(SDL_HAPTIC) + if(HAVE_DINPUT_H OR HAVE_XINPUT_H) + file(GLOB HAPTIC_SOURCES ${SDL2_SOURCE_DIR}/src/haptic/windows/*.c) + if(HAVE_DINPUT_H) + set(SDL_HAPTIC_DINPUT 1) + endif() + if(HAVE_XINPUT_H) + set(SDL_HAPTIC_XINPUT 1) + endif() + else() + file(GLOB HAPTIC_SOURCES ${SDL2_SOURCE_DIR}/src/haptic/dummy/*.c) + set(SDL_HAPTIC_DUMMY 1) + endif() + set(SOURCE_FILES ${SOURCE_FILES} ${HAPTIC_SOURCES}) + set(HAVE_SDL_HAPTIC TRUE) + endif() + endif() + + file(GLOB VERSION_SOURCES ${SDL2_SOURCE_DIR}/src/main/windows/*.rc) + file(GLOB SDLMAIN_SOURCES ${SDL2_SOURCE_DIR}/src/main/windows/*.c) + if(MINGW OR CYGWIN) + list(APPEND EXTRA_LIBS mingw32) + list(APPEND EXTRA_LDFLAGS "-mwindows") + set(SDL_CFLAGS "${SDL_CFLAGS} -Dmain=SDL_main") + list(APPEND SDL_LIBS "-lmingw32" "-lSDL2main" "-mwindows") + endif() +elseif(APPLE) + # TODO: rework this for proper MacOS X, iOS and Darwin support + + # Requires the darwin file implementation + if(SDL_FILE) + file(GLOB EXTRA_SOURCES ${PROJECT_SOURCE_DIR}/src/file/cocoa/*.m) + set(SOURCE_FILES ${EXTRA_SOURCES} ${SOURCE_FILES}) + set_source_files_properties(${EXTRA_SOURCES} PROPERTIES LANGUAGE C) + set(HAVE_SDL_FILE TRUE) + set(SDL_FRAMEWORK_COCOA 1) + set(SDL_FRAMEWORK_COREVIDEO 1) + else() + message_error("SDL_FILE must be enabled to build on MacOS X") + endif() + + if(SDL_AUDIO) + set(SDL_AUDIO_DRIVER_COREAUDIO 1) + file(GLOB AUDIO_SOURCES ${SDL2_SOURCE_DIR}/src/audio/coreaudio/*.c) + set(SOURCE_FILES ${SOURCE_FILES} ${AUDIO_SOURCES}) + set(HAVE_SDL_AUDIO TRUE) + set(SDL_FRAMEWORK_COREAUDIO 1) + set(SDL_FRAMEWORK_AUDIOUNIT 1) + endif() + + if(SDL_JOYSTICK) + set(SDL_JOYSTICK_IOKIT 1) + file(GLOB JOYSTICK_SOURCES ${SDL2_SOURCE_DIR}/src/joystick/darwin/*.c) + set(SOURCE_FILES ${SOURCE_FILES} ${JOYSTICK_SOURCES}) + set(HAVE_SDL_JOYSTICK TRUE) + set(SDL_FRAMEWORK_IOKIT 1) + set(SDL_FRAMEWORK_FF 1) + endif() + + if(SDL_HAPTIC) + set(SDL_HAPTIC_IOKIT 1) + file(GLOB HAPTIC_SOURCES ${SDL2_SOURCE_DIR}/src/haptic/darwin/*.c) + set(SOURCE_FILES ${SOURCE_FILES} ${HAPTIC_SOURCES}) + set(HAVE_SDL_HAPTIC TRUE) + set(SDL_FRAMEWORK_IOKIT 1) + set(SDL_FRAMEWORK_FF 1) + if(NOT SDL_JOYSTICK) + message(FATAL_ERROR "SDL_HAPTIC requires SDL_JOYSTICK to be enabled") + endif() + endif() + + if(SDL_POWER) + set(SDL_POWER_MACOSX 1) + file(GLOB POWER_SOURCES ${SDL2_SOURCE_DIR}/src/power/macosx/*.c) + set(SOURCE_FILES ${SOURCE_FILES} ${POWER_SOURCES}) + set(HAVE_SDL_POWER TRUE) + set(SDL_FRAMEWORK_CARBON 1) + set(SDL_FRAMEWORK_IOKIT 1) + endif() + + if(SDL_TIMERS) + set(SDL_TIMER_UNIX 1) + file(GLOB TIMER_SOURCES ${SDL2_SOURCE_DIR}/src/timer/unix/*.c) + set(SOURCE_FILES ${SOURCE_FILES} ${TIMER_SOURCES}) + set(HAVE_SDL_TIMERS TRUE) + endif(SDL_TIMERS) + + if(SDL_FILESYSTEM) + set(SDL_FILESYSTEM_COCOA 1) + file(GLOB FILESYSTEM_SOURCES ${SDL2_SOURCE_DIR}/src/filesystem/cocoa/*.m) + set_source_files_properties(${FILESYSTEM_SOURCES} PROPERTIES LANGUAGE C) + set(SOURCE_FILES ${SOURCE_FILES} ${FILESYSTEM_SOURCES}) + set(HAVE_SDL_FILESYSTEM TRUE) + endif() + + # Actually load the frameworks at the end so we don't duplicate include. + if(SDL_FRAMEWORK_COREVIDEO) + find_library(COREVIDEO CoreVideo) + list(APPEND EXTRA_LIBS ${COREVIDEO}) + endif() + if(SDL_FRAMEWORK_COCOA) + find_library(COCOA_LIBRARY Cocoa) + list(APPEND EXTRA_LIBS ${COCOA_LIBRARY}) + endif() + if(SDL_FRAMEWORK_IOKIT) + find_library(IOKIT IOKit) + list(APPEND EXTRA_LIBS ${IOKIT}) + endif() + if(SDL_FRAMEWORK_FF) + find_library(FORCEFEEDBACK ForceFeedback) + list(APPEND EXTRA_LIBS ${FORCEFEEDBACK}) + endif() + if(SDL_FRAMEWORK_CARBON) + find_library(CARBON_LIBRARY Carbon) + list(APPEND EXTRA_LIBS ${CARBON_LIBRARY}) + endif() + if(SDL_FRAMEWORK_COREAUDIO) + find_library(COREAUDIO CoreAudio) + list(APPEND EXTRA_LIBS ${COREAUDIO}) + endif() + if(SDL_FRAMEWORK_AUDIOUNIT) + find_library(AUDIOUNIT AudioUnit) + list(APPEND EXTRA_LIBS ${AUDIOUNIT}) + endif() + + # iOS hack needed - http://code.google.com/p/ios-cmake/ ? + if(SDL_VIDEO) + CheckCOCOA() + if(VIDEO_OPENGL) + set(SDL_VIDEO_OPENGL 1) + set(SDL_VIDEO_OPENGL_CGL 1) + set(SDL_VIDEO_RENDER_OGL 1) + set(HAVE_VIDEO_OPENGL TRUE) + endif() + endif() + + CheckPTHREAD() +elseif(HAIKU) + if(SDL_VIDEO) + set(SDL_VIDEO_DRIVER_HAIKU 1) + file(GLOB HAIKUVIDEO_SOURCES ${SDL2_SOURCE_DIR}/src/video/haiku/*.c) + set(SOURCE_FILES ${SOURCE_FILES} ${HAIKUVIDEO_SOURCES}) + set(HAVE_SDL_VIDEO TRUE) + + set(SDL_FILESYSTEM_HAIKU 1) + file(GLOB FILESYSTEM_SOURCES ${SDL2_SOURCE_DIR}/src/filesystem/haiku/*.cc) + set(SOURCE_FILES ${SOURCE_FILES} ${FILESYSTEM_SOURCES}) + set(HAVE_SDL_FILESYSTEM TRUE) + + if(SDL_TIMERS) + set(SDL_TIMER_HAIKU 1) + file(GLOB TIMER_SOURCES ${SDL2_SOURCE_DIR}/src/timer/haiku/*.c) + set(SOURCE_FILES ${SOURCE_FILES} ${TIMER_SOURCES}) + set(HAVE_SDL_TIMERS TRUE) + endif(SDL_TIMERS) + + if(VIDEO_OPENGL) + # TODO: Use FIND_PACKAGE(OpenGL) instead + set(SDL_VIDEO_OPENGL 1) + set(SDL_VIDEO_OPENGL_BGL 1) + set(SDL_VIDEO_RENDER_OGL 1) + list(APPEND EXTRA_LIBS GL) + set(HAVE_VIDEO_OPENGL TRUE) + endif() + endif() + + CheckPTHREAD() +endif() + +# Dummies +# configure.in does it differently: +# if not have X +# if enable_X { SDL_X_DISABLED = 1 } +# [add dummy sources] +# so it always adds a dummy, without checking, if it was actually requested. +# This leads to missing internal references on building, since the +# src/X/*.c does not get included. +if(NOT HAVE_SDL_JOYSTICK) + set(SDL_JOYSTICK_DISABLED 1) + if(SDL_JOYSTICK AND NOT APPLE) # results in unresolved symbols on OSX + + file(GLOB JOYSTICK_SOURCES ${SDL2_SOURCE_DIR}/src/joystick/dummy/*.c) + set(SOURCE_FILES ${SOURCE_FILES} ${JOYSTICK_SOURCES}) + endif() +endif() +if(NOT HAVE_SDL_HAPTIC) + set(SDL_HAPTIC_DISABLED 1) + file(GLOB HAPTIC_SOURCES ${SDL2_SOURCE_DIR}/src/haptic/dummy/*.c) + set(SOURCE_FILES ${SOURCE_FILES} ${HAPTIC_SOURCES}) +endif() +if(NOT HAVE_SDL_LOADSO) + set(SDL_LOADSO_DISABLED 1) + file(GLOB LOADSO_SOURCES ${SDL2_SOURCE_DIR}/src/loadso/dummy/*.c) + set(SOURCE_FILES ${SOURCE_FILES} ${LOADSO_SOURCES}) +endif() +if(NOT HAVE_SDL_FILESYSTEM) + set(SDL_FILESYSTEM_DISABLED 1) + file(GLOB FILESYSTEM_SOURCES ${SDL2_SOURCE_DIR}/src/filesystem/dummy/*.c) + set(SOURCE_FILES ${SOURCE_FILES} ${FILESYSTEM_SOURCES}) +endif() + +# We always need to have threads and timers around +if(NOT HAVE_SDL_THREADS) + set(SDL_THREADS_DISABLED 1) + file(GLOB THREADS_SOURCES ${SDL2_SOURCE_DIR}/src/thread/generic/*.c) + set(SOURCE_FILES ${SOURCE_FILES} ${THREADS_SOURCES}) +endif() +if(NOT HAVE_SDL_TIMERS) + set(SDL_TIMERS_DISABLED 1) + file(GLOB TIMER_SOURCES ${SDL2_SOURCE_DIR}/src/timer/dummy/*.c) + set(SOURCE_FILES ${SOURCE_FILES} ${TIMER_SOURCES}) +endif() + +if(NOT SDLMAIN_SOURCES) + file(GLOB SDLMAIN_SOURCES ${SDL2_SOURCE_DIR}/src/main/dummy/*.c) +endif() + +# Append the -MMD -MT flags +# if(DEPENDENCY_TRACKING) +# if(COMPILER_IS_GNUCC) +# set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} -MMD -MT \$@") +# endif() +# endif() + +configure_file("${SDL2_SOURCE_DIR}/include/SDL_config.h.cmake" + "${SDL2_BINARY_DIR}/include/SDL_config.h") + +# Prepare the flags and remove duplicates +if(EXTRA_LDFLAGS) + list(REMOVE_DUPLICATES EXTRA_LDFLAGS) +endif() +if(EXTRA_LIBS) + list(REMOVE_DUPLICATES EXTRA_LIBS) +endif() +if(EXTRA_CFLAGS) + list(REMOVE_DUPLICATES EXTRA_CFLAGS) +endif() +listtostr(EXTRA_CFLAGS _EXTRA_CFLAGS) +set(EXTRA_CFLAGS ${_EXTRA_CFLAGS}) + +# Compat helpers for the configuration files +if(NOT WINDOWS OR CYGWIN) + # TODO: we need a Windows script, too + execute_process(COMMAND sh ${SDL2_SOURCE_DIR}/build-scripts/updaterev.sh) + + set(prefix ${CMAKE_INSTALL_PREFIX}) + set(exec_prefix "\${prefix}") + set(libdir "\${exec_prefix}/lib${LIB_SUFFIX}") + set(bindir "\${exec_prefix}/bin") + set(includedir "\${prefix}/include") + if(SDL_STATIC) + set(ENABLE_STATIC_TRUE "") + set(ENABLE_STATIC_FALSE "#") + else() + set(ENABLE_STATIC_TRUE "#") + set(ENABLE_STATIC_FALSE "") + endif() + if(SDL_SHARED) + set(ENABLE_SHARED_TRUE "") + set(ENABLE_SHARED_FALSE "#") + else() + set(ENABLE_SHARED_TRUE "#") + set(ENABLE_SHARED_FALSE "") + endif() + + # Clean up the different lists + listtostr(EXTRA_LIBS _EXTRA_LIBS "-l") + set(SDL_STATIC_LIBS ${SDL_LIBS} ${EXTRA_LDFLAGS} ${_EXTRA_LIBS}) + list(REMOVE_DUPLICATES SDL_STATIC_LIBS) + listtostr(SDL_STATIC_LIBS _SDL_STATIC_LIBS) + set(SDL_STATIC_LIBS ${_SDL_STATIC_LIBS}) + listtostr(SDL_LIBS _SDL_LIBS) + set(SDL_LIBS ${_SDL_LIBS}) + + # MESSAGE(STATUS "SDL_LIBS: ${SDL_LIBS}") + # MESSAGE(STATUS "SDL_STATIC_LIBS: ${SDL_STATIC_LIBS}") + + configure_file("${SDL2_SOURCE_DIR}/sdl2.pc.in" + "${SDL2_BINARY_DIR}/sdl2.pc" @ONLY) + configure_file("${SDL2_SOURCE_DIR}/sdl2-config.in" + "${SDL2_BINARY_DIR}/sdl2-config") + configure_file("${SDL2_SOURCE_DIR}/sdl2-config.in" + "${SDL2_BINARY_DIR}/sdl2-config" @ONLY) + configure_file("${SDL2_SOURCE_DIR}/SDL2.spec.in" + "${SDL2_BINARY_DIR}/SDL2.spec" @ONLY) +endif() + +##### Info output ##### +message(STATUS "") +message(STATUS "SDL2 was configured with the following options:") +message(STATUS "") +message(STATUS "Platform: ${CMAKE_SYSTEM}") +message(STATUS "64-bit: ${ARCH_64}") +message(STATUS "Compiler: ${CMAKE_C_COMPILER}") +message(STATUS "") +message(STATUS "Subsystems:") +foreach(_SUB ${SDL_SUBSYSTEMS}) + string(TOUPPER ${_SUB} _OPT) + message_bool_option(${_SUB} SDL_${_OPT}) +endforeach() +message(STATUS "") +message(STATUS "Options:") +list(SORT ALLOPTIONS) +foreach(_OPT ${ALLOPTIONS}) + # Longest option is VIDEO_X11_XSCREENSAVER = 22 characters + # Get the padding + string(LENGTH ${_OPT} _OPTLEN) + math(EXPR _PADLEN "23 - ${_OPTLEN}") + string(RANDOM LENGTH ${_PADLEN} ALPHABET " " _PADDING) + message_tested_option(${_OPT} ${_PADDING}) +endforeach() +message(STATUS "") +message(STATUS " CFLAGS: ${CMAKE_C_FLAGS}") +message(STATUS " EXTRA_CFLAGS: ${EXTRA_CFLAGS}") +message(STATUS " EXTRA_LDFLAGS: ${EXTRA_LDFLAGS}") +message(STATUS " EXTRA_LIBS: ${EXTRA_LIBS}") +message(STATUS "") +message(STATUS " Build Shared Library: ${SDL_SHARED}") +message(STATUS " Build Static Library: ${SDL_STATIC}") +message(STATUS "") +if(UNIX) + message(STATUS "If something was not detected, although the libraries") + message(STATUS "were installed, then make sure you have set the") + message(STATUS "CFLAGS and LDFLAGS environment variables correctly.") + message(STATUS "") +endif() + +# Ensure that the extra cflags are used at compile time +set(CMAKE_C_FLAGS "${CMAKE_C_FLAGS} ${EXTRA_CFLAGS}") + +# Always build SDLmain +add_library(SDL2main STATIC ${SDLMAIN_SOURCES}) +set(_INSTALL_LIBS "SDL2main") + +if(SDL_SHARED) + add_library(SDL2 SHARED ${SOURCE_FILES}) + if(UNIX) + set_target_properties(SDL2 PROPERTIES + VERSION ${LT_VERSION} + SOVERSION ${LT_REVISION} + OUTPUT_NAME "SDL2-${LT_RELEASE}") + else() + set_target_properties(SDL2 PROPERTIES + VERSION ${SDL_VERSION} + SOVERSION ${LT_REVISION} + OUTPUT_NAME "SDL2") + endif() + set(_INSTALL_LIBS "SDL2" ${_INSTALL_LIBS}) + target_link_libraries(SDL2 ${EXTRA_LIBS} ${EXTRA_LDFLAGS}) +endif() + +if(SDL_STATIC) + set (BUILD_SHARED_LIBS FALSE) + add_library(SDL2-static STATIC ${SOURCE_FILES}) + set_target_properties(SDL2-static PROPERTIES OUTPUT_NAME "SDL2") + if(MSVC) + set_target_properties(SDL2-static PROPERTIES LINK_FLAGS_RELEASE "/NODEFAULTLIB") + set_target_properties(SDL2-static PROPERTIES LINK_FLAGS_DEBUG "/NODEFAULTLIB") + set_target_properties(SDL2-static PROPERTIES STATIC_LIBRARY_FLAGS "/NODEFAULTLIB") + endif() + # TODO: Win32 platforms keep the same suffix .lib for import and static + # libraries - do we need to consider this? + set(_INSTALL_LIBS "SDL2-static" ${_INSTALL_LIBS}) + target_link_libraries(SDL2-static ${EXTRA_LIBS} ${EXTRA_LDFLAGS}) +endif() + +##### Installation targets ##### +install(TARGETS ${_INSTALL_LIBS} + LIBRARY DESTINATION "lib${LIB_SUFFIX}" + ARCHIVE DESTINATION "lib${LIB_SUFFIX}" + RUNTIME DESTINATION bin) + +file(GLOB INCLUDE_FILES ${SDL2_SOURCE_DIR}/include/*.h) +file(GLOB BIN_INCLUDE_FILES ${SDL2_BINARY_DIR}/include/*.h) +foreach(_FNAME ${BIN_INCLUDE_FILES}) + get_filename_component(_INCNAME ${_FNAME} NAME) + list(REMOVE_ITEM INCLUDE_FILES ${SDL2_SOURCE_DIR}/include/${_INCNAME}) +endforeach() +list(APPEND INCLUDE_FILES ${BIN_INCLUDE_FILES}) +install(FILES ${INCLUDE_FILES} DESTINATION include/SDL2) + +if(NOT WINDOWS OR CYGWIN) + if(SDL_SHARED) + install(CODE " + execute_process(COMMAND ${CMAKE_COMMAND} -E create_symlink + \"libSDL2-2.0.so\" \"libSDL2.so\")") + install(FILES ${SDL2_BINARY_DIR}/libSDL2.so DESTINATION "lib${LIB_SUFFIX}") + endif() + if(FREEBSD) + # FreeBSD uses ${PREFIX}/libdata/pkgconfig + install(FILES ${SDL2_BINARY_DIR}/sdl2.pc DESTINATION "libdata/pkgconfig") + else() + install(FILES ${SDL2_BINARY_DIR}/sdl2.pc + DESTINATION "lib${LIB_SUFFIX}/pkgconfig") + endif() + install(PROGRAMS ${SDL2_BINARY_DIR}/sdl2-config DESTINATION bin) + # TODO: what about the .spec file? Is it only needed for RPM creation? + install(FILES "${SDL2_SOURCE_DIR}/sdl2.m4" DESTINATION "share/aclocal") +endif() + +##### Uninstall target ##### + +configure_file( + "${CMAKE_CURRENT_SOURCE_DIR}/cmake_uninstall.cmake.in" + "${CMAKE_CURRENT_BINARY_DIR}/cmake_uninstall.cmake" + IMMEDIATE @ONLY) + +add_custom_target(uninstall + COMMAND ${CMAKE_COMMAND} -P ${CMAKE_CURRENT_BINARY_DIR}/cmake_uninstall.cmake) diff --git a/COPYING.txt b/COPYING.txt new file mode 100644 index 000000000..5873af749 --- /dev/null +++ b/COPYING.txt @@ -0,0 +1,20 @@ + +Simple DirectMedia Layer +Copyright (C) 1997-2015 Sam Lantinga + +This software is provided 'as-is', without any express or implied +warranty. In no event will the authors be held liable for any damages +arising from the use of this software. + +Permission is granted to anyone to use this software for any purpose, +including commercial applications, and to alter it and redistribute it +freely, subject to the following restrictions: + +1. The origin of this software must not be misrepresented; you must not + claim that you wrote the original software. If you use this software + in a product, an acknowledgment in the product documentation would be + appreciated but is not required. +2. Altered source versions must be plainly marked as such, and must not be + misrepresented as being the original software. +3. This notice may not be removed or altered from any source distribution. + diff --git a/CREDITS.txt b/CREDITS.txt new file mode 100644 index 000000000..74163e824 --- /dev/null +++ b/CREDITS.txt @@ -0,0 +1,53 @@ + +Simple DirectMedia Layer CREDITS +Thanks to everyone who made this possible, including: + +* Cliff Matthews, for giving me a reason to start this project. :) + -- Executor rocks! *grin* + +* Ryan Gordon for helping everybody out and keeping the dream alive. :) + +* Gabriel Jacobo for his work on the Android port and generally helping out all around. + +* Philipp Wiesemann for his attention to detail reviewing the entire SDL code base and proposes patches. + +* Andreas Schiffler for his dedication to unit tests, Visual Studio projects, and managing the Google Summer of Code. + +* Mike Sartain for incorporating SDL into Team Fortress 2 and cheering me on at Valve. + +* Alfred Reynolds for the game controller API and general (in)sanity + +* Jørgen Tjernø for numerous magical Mac OS X fixes. + +* Pierre-Loup Griffais for his deep knowledge of OpenGL drivers. + +* Julian Winter for the SDL 2.0 website. + +* Sheena Smith for many months of great work on the SDL wiki creating the API documentation and style guides. + +* Paul Hunkin for his port of SDL to Android during the Google Summer of Code 2010. + +* Eli Gottlieb for his work on shaped windows during the Google Summer of Code 2010. + +* Jim Grandpre for his work on multi-touch and gesture recognition during + the Google Summer of Code 2010. + +* Edgar "bobbens" Simo for his force feedback API development during the + Google Summer of Code 2008. + +* Aaron Wishnick for his work on audio resampling and pitch shifting during + the Google Summer of Code 2008. + +* Holmes Futrell for his port of SDL to the iPhone and iPod Touch during the + Google Summer of Code 2008. + +* Jon Atkins for SDL_image, SDL_mixer and SDL_net documentation. + +* Everybody at Loki Software, Inc. for their great contributions! + + And a big hand to everyone else who has contributed over the years. + +THANKS! :) + + -- Sam Lantinga + diff --git a/INSTALL.txt b/INSTALL.txt new file mode 100644 index 000000000..2df10bdd7 --- /dev/null +++ b/INSTALL.txt @@ -0,0 +1,40 @@ + +To compile and install SDL: + + 1. Windows with Visual Studio: + * Read VisualC.html + + Windows with gcc, either native or cross-compiling: + * Read the FAQ at http://wiki.libsdl.org/moin.fcg/FAQWindows + * Run './configure; make; make install' + + Mac OS X with Xcode: + * Read docs/README-macosx.md + + Mac OS X from the command line: + * Run './configure; make; make install' + + Linux and other UNIX systems: + * Run './configure; make; make install' + + Android: + * Read docs/README-android.md + + iOS: + * Read docs/README-ios.md + + Using Cmake: + * Read docs/README-cmake.md + + 2. Look at the example programs in ./test, and check out the online + documentation at http://wiki.libsdl.org/ + + 3. Join the SDL developer mailing list by sending E-mail to + sdl-request@libsdl.org + and put "subscribe" in the subject of the message. + + Or alternatively you can use the web interface: + http://www.libsdl.org/mailing-list.php + +That's it! +Sam Lantinga diff --git a/Makefile.in b/Makefile.in new file mode 100644 index 000000000..ef633521a --- /dev/null +++ b/Makefile.in @@ -0,0 +1,234 @@ +# Makefile to build and install the SDL library + +top_builddir = . +srcdir = @srcdir@ +objects = build +prefix = @prefix@ +exec_prefix = @exec_prefix@ +bindir = @bindir@ +libdir = @libdir@ +includedir = @includedir@ +datarootdir = @datarootdir@ +datadir = @datadir@ +auxdir = @ac_aux_dir@ +distpath = $(srcdir)/.. +distdir = SDL2-@SDL_VERSION@ +distfile = $(distdir).tar.gz + +@SET_MAKE@ +SHELL = @SHELL@ +CC = @CC@ +INCLUDE = @INCLUDE@ +CFLAGS = @BUILD_CFLAGS@ +EXTRA_CFLAGS = @EXTRA_CFLAGS@ +LDFLAGS = @BUILD_LDFLAGS@ +EXTRA_LDFLAGS = @EXTRA_LDFLAGS@ +LIBTOOL = @LIBTOOL@ +INSTALL = @INSTALL@ +AR = @AR@ +RANLIB = @RANLIB@ +WINDRES = @WINDRES@ + +TARGET = libSDL2.la +OBJECTS = @OBJECTS@ +VERSION_OBJECTS = @VERSION_OBJECTS@ + +SDLMAIN_TARGET = libSDL2main.a +SDLMAIN_OBJECTS = @SDLMAIN_OBJECTS@ + +SDLTEST_TARGET = libSDL2_test.a +SDLTEST_OBJECTS = @SDLTEST_OBJECTS@ + +SRC_DIST = *.txt acinclude Android.mk autogen.sh android-project build-scripts cmake cmake_uninstall.cmake.in configure configure.in debian docs include Makefile.* sdl2-config.in sdl2.m4 sdl2.pc.in SDL2.spec.in src test VisualC.html VisualC VisualC-WinRT Xcode Xcode-iOS +GEN_DIST = SDL2.spec + +ifneq ($V,1) +RUN_CMD_AR = @echo " AR " $@; +RUN_CMD_CC = @echo " CC " $@; +RUN_CMD_CXX = @echo " CXX " $@; +RUN_CMD_LTLINK = @echo " LTLINK" $@; +RUN_CMD_RANLIB = @echo " RANLIB" $@; +LIBTOOL += --quiet +endif + +HDRS = \ + SDL.h \ + SDL_assert.h \ + SDL_atomic.h \ + SDL_audio.h \ + SDL_bits.h \ + SDL_blendmode.h \ + SDL_clipboard.h \ + SDL_cpuinfo.h \ + SDL_egl.h \ + SDL_endian.h \ + SDL_error.h \ + SDL_events.h \ + SDL_filesystem.h \ + SDL_gamecontroller.h \ + SDL_gesture.h \ + SDL_haptic.h \ + SDL_hints.h \ + SDL_joystick.h \ + SDL_keyboard.h \ + SDL_keycode.h \ + SDL_loadso.h \ + SDL_log.h \ + SDL_main.h \ + SDL_messagebox.h \ + SDL_mouse.h \ + SDL_mutex.h \ + SDL_name.h \ + SDL_opengl.h \ + SDL_opengl_glext.h \ + SDL_opengles.h \ + SDL_opengles2_gl2ext.h \ + SDL_opengles2_gl2.h \ + SDL_opengles2_gl2platform.h \ + SDL_opengles2.h \ + SDL_opengles2_khrplatform.h \ + SDL_pixels.h \ + SDL_platform.h \ + SDL_power.h \ + SDL_quit.h \ + SDL_rect.h \ + SDL_render.h \ + SDL_rwops.h \ + SDL_scancode.h \ + SDL_shape.h \ + SDL_stdinc.h \ + SDL_surface.h \ + SDL_system.h \ + SDL_syswm.h \ + SDL_thread.h \ + SDL_timer.h \ + SDL_touch.h \ + SDL_types.h \ + SDL_version.h \ + SDL_video.h \ + begin_code.h \ + close_code.h + +SDLTEST_HDRS = $(shell ls $(srcdir)/include | fgrep SDL_test) + +LT_AGE = @LT_AGE@ +LT_CURRENT = @LT_CURRENT@ +LT_RELEASE = @LT_RELEASE@ +LT_REVISION = @LT_REVISION@ +LT_LDFLAGS = -no-undefined -rpath $(DESTDIR)$(libdir) -release $(LT_RELEASE) -version-info $(LT_CURRENT):$(LT_REVISION):$(LT_AGE) + +all: $(srcdir)/configure Makefile $(objects) $(objects)/$(TARGET) $(objects)/$(SDLMAIN_TARGET) $(objects)/$(SDLTEST_TARGET) + +$(srcdir)/configure: $(srcdir)/configure.in + @echo "Warning, configure.in is out of date" + #(cd $(srcdir) && sh autogen.sh && sh configure) + @sleep 3 + +Makefile: $(srcdir)/Makefile.in + $(SHELL) config.status $@ + +Makefile.in:; + +$(objects): + $(SHELL) $(auxdir)/mkinstalldirs $@ + +update-revision: + $(SHELL) $(auxdir)/updaterev.sh + +.PHONY: all update-revision install install-bin install-hdrs install-lib install-data uninstall uninstall-bin uninstall-hdrs uninstall-lib uninstall-data clean distclean dist $(OBJECTS:.lo=.d) + +$(objects)/$(TARGET): $(OBJECTS) $(VERSION_OBJECTS) + $(RUN_CMD_LTLINK)$(LIBTOOL) --tag=CC --mode=link $(CC) -o $@ $(OBJECTS) $(VERSION_OBJECTS) $(LDFLAGS) $(EXTRA_LDFLAGS) $(LT_LDFLAGS) + +$(objects)/$(SDLMAIN_TARGET): $(SDLMAIN_OBJECTS) + $(RUN_CMD_AR)$(AR) cru $@ $(SDLMAIN_OBJECTS) + $(RUN_CMD_RANLIB)$(RANLIB) $@ + +$(objects)/$(SDLTEST_TARGET): $(SDLTEST_OBJECTS) + $(RUN_CMD_AR)$(AR) cru $@ $(SDLTEST_OBJECTS) + $(RUN_CMD_RANLIB)$(RANLIB) $@ + +install: all install-bin install-hdrs install-lib install-data +install-bin: + $(SHELL) $(auxdir)/mkinstalldirs $(DESTDIR)$(bindir) + $(INSTALL) -m 755 sdl2-config $(DESTDIR)$(bindir)/sdl2-config +install-hdrs: update-revision + $(SHELL) $(auxdir)/mkinstalldirs $(DESTDIR)$(includedir)/SDL2 + for file in $(HDRS) $(SDLTEST_HDRS); do \ + $(INSTALL) -m 644 $(srcdir)/include/$$file $(DESTDIR)$(includedir)/SDL2/$$file; \ + done + $(INSTALL) -m 644 include/SDL_config.h $(DESTDIR)$(includedir)/SDL2/SDL_config.h + if test -f include/SDL_revision.h; then \ + $(INSTALL) -m 644 include/SDL_revision.h $(DESTDIR)$(includedir)/SDL2/SDL_revision.h; \ + else \ + $(INSTALL) -m 644 $(srcdir)/include/SDL_revision.h $(DESTDIR)$(includedir)/SDL2/SDL_revision.h; \ + fi + +install-lib: $(objects) $(objects)/$(TARGET) $(objects)/$(SDLMAIN_TARGET) $(objects)/$(SDLTEST_TARGET) + $(SHELL) $(auxdir)/mkinstalldirs $(DESTDIR)$(libdir) + $(LIBTOOL) --mode=install $(INSTALL) $(objects)/$(TARGET) $(DESTDIR)$(libdir)/$(TARGET) + $(INSTALL) -m 644 $(objects)/$(SDLMAIN_TARGET) $(DESTDIR)$(libdir)/$(SDLMAIN_TARGET) + $(RANLIB) $(DESTDIR)$(libdir)/$(SDLMAIN_TARGET) + $(INSTALL) -m 644 $(objects)/$(SDLTEST_TARGET) $(DESTDIR)$(libdir)/$(SDLTEST_TARGET) + $(RANLIB) $(DESTDIR)$(libdir)/$(SDLTEST_TARGET) +install-data: + $(SHELL) $(auxdir)/mkinstalldirs $(DESTDIR)$(datadir)/aclocal + $(INSTALL) -m 644 $(srcdir)/sdl2.m4 $(DESTDIR)$(datadir)/aclocal/sdl2.m4 + $(SHELL) $(auxdir)/mkinstalldirs $(DESTDIR)$(libdir)/pkgconfig + $(INSTALL) -m 644 sdl2.pc $(DESTDIR)$(libdir)/pkgconfig + +uninstall: uninstall-bin uninstall-hdrs uninstall-lib uninstall-data +uninstall-bin: + rm -f $(DESTDIR)$(bindir)/sdl2-config +uninstall-hdrs: + for file in $(HDRS) $(SDLTEST_HDRS); do \ + rm -f $(DESTDIR)$(includedir)/SDL2/$$file; \ + done + rm -f $(DESTDIR)$(includedir)/SDL2/SDL_config.h + rm -f $(DESTDIR)$(includedir)/SDL2/SDL_revision.h + -rmdir $(DESTDIR)$(includedir)/SDL2 +uninstall-lib: + $(LIBTOOL) --mode=uninstall rm -f $(DESTDIR)$(libdir)/$(TARGET) + rm -f $(DESTDIR)$(libdir)/$(SDLMAIN_TARGET) + rm -f $(DESTDIR)$(libdir)/$(SDLTEST_TARGET) +uninstall-data: + rm -f $(DESTDIR)$(datadir)/aclocal/sdl2.m4 + rm -f $(DESTDIR)$(libdir)/pkgconfig/sdl2.pc + +clean: + rm -rf $(objects) + if test -f test/Makefile; then (cd test; $(MAKE) $@); fi + +distclean: clean + rm -f Makefile Makefile.rules sdl2-config + rm -f config.status config.cache config.log libtool + rm -rf $(srcdir)/autom4te* + find $(srcdir) \( \ + -name '*~' -o \ + -name '*.bak' -o \ + -name '*.old' -o \ + -name '*.rej' -o \ + -name '*.orig' -o \ + -name '.#*' \) \ + -exec rm -f {} \; + if test -f test/Makefile; then (cd test; $(MAKE) $@); fi + +dist $(distfile): + $(SHELL) $(auxdir)/mkinstalldirs $(distdir) + (cd $(srcdir); tar cf - $(SRC_DIST)) | (cd $(distdir); tar xf -) + tar cf - $(GEN_DIST) | (cd $(distdir); tar xf -) + find $(distdir) \( \ + -name '*~' -o \ + -name '*.bak' -o \ + -name '*.old' -o \ + -name '*.rej' -o \ + -name '*.orig' -o \ + -name '.#*' \) \ + -exec rm -f {} \; + if test -f $(distdir)/test/Makefile; then (cd $(distdir)/test && make distclean); fi + (cd $(distdir); build-scripts/updaterev.sh) + tar cvf - $(distdir) | gzip --best >$(distfile) + rm -rf $(distdir) + +rpm: $(distfile) + rpmbuild -ta $? diff --git a/Makefile.minimal b/Makefile.minimal new file mode 100644 index 000000000..6ec1ce81c --- /dev/null +++ b/Makefile.minimal @@ -0,0 +1,42 @@ +# Makefile to build the SDL library + +INCLUDE = -I./include +CFLAGS = -g -O2 $(INCLUDE) +AR = ar +RANLIB = ranlib + +TARGET = libSDL.a +SOURCES = \ + src/*.c \ + src/audio/*.c \ + src/audio/dummy/*.c \ + src/cpuinfo/*.c \ + src/events/*.c \ + src/file/*.c \ + src/haptic/*.c \ + src/haptic/dummy/*.c \ + src/joystick/*.c \ + src/joystick/dummy/*.c \ + src/loadso/dummy/*.c \ + src/power/*.c \ + src/filesystem/dummy/*.c \ + src/render/*.c \ + src/render/software/*.c \ + src/stdlib/*.c \ + src/thread/*.c \ + src/thread/generic/*.c \ + src/timer/*.c \ + src/timer/dummy/*.c \ + src/video/*.c \ + src/video/dummy/*.c \ + +OBJECTS = $(shell echo $(SOURCES) | sed -e 's,\.c,\.o,g') + +all: $(TARGET) + +$(TARGET): $(OBJECTS) + $(AR) crv $@ $^ + $(RANLIB) $@ + +clean: + rm -f $(TARGET) $(OBJECTS) diff --git a/Makefile.pandora b/Makefile.pandora new file mode 100644 index 000000000..bb89d52a6 --- /dev/null +++ b/Makefile.pandora @@ -0,0 +1,37 @@ +# Makefile to build the pandora SDL library + +AR = arm-none-linux-gnueabi-ar +RANLIB = arm-none-linux-gnueabi-ranlib +CC = arm-none-linux-gnueabi-gcc +CXX = arm-none-linux-gnueabi-g++ +STRIP = arm-none-linux-gnueabi-strip + +CFLAGS = -O3 -march=armv7-a -mcpu=cortex-a8 -mtune=cortex-a8 -mfloat-abi=softfp \ + -mfpu=neon -ftree-vectorize -ffast-math -fomit-frame-pointer -fno-strict-aliasing -fsingle-precision-constant \ + -I./include -I$(PNDSDK)/usr/include -DSDL_REVISION=0 + +TARGET = libSDL.a + +SOURCES = ./src/*.c ./src/audio/*.c ./src/cpuinfo/*.c ./src/events/*.c \ + ./src/file/*.c ./src/stdlib/*.c ./src/thread/*.c ./src/timer/*.c ./src/video/*.c \ + ./src/joystick/*.c ./src/haptic/*.c ./src/power/*.c ./src/video/dummy/*.c ./src/audio/disk/*.c \ + ./src/audio/dummy/*.c ./src/loadso/dlopen/*.c ./src/audio/dsp/*.c \ + ./src/thread/pthread/SDL_systhread.c ./src/thread/pthread/SDL_syssem.c \ + ./src/thread/pthread/SDL_sysmutex.c ./src/thread/pthread/SDL_syscond.c \ + ./src/joystick/linux/*.c ./src/haptic/linux/*.c ./src/timer/unix/*.c \ + ./src/atomic/linux/*.c ./src/filesystem/unix/*.c \ + ./src/video/pandora/SDL_pandora.o ./src/video/pandora/SDL_pandora_events.o ./src/video/x11/*.c + + +OBJECTS = $(shell echo $(SOURCES) | sed -e 's,\.c,\.o,g') + +CONFIG_H = $(shell cp include/SDL_config_pandora.h include/SDL_config.h && touch include/SDL_revision.h) + +all: $(TARGET) + +$(TARGET): $(CONFIG_H) $(OBJECTS) + $(AR) crv $@ $^ + $(RANLIB) $@ + +clean: + rm -f $(TARGET) $(OBJECTS) diff --git a/Makefile.psp b/Makefile.psp new file mode 100644 index 000000000..5e7dcd29a --- /dev/null +++ b/Makefile.psp @@ -0,0 +1,92 @@ +TARGET_LIB = libSDL2.a +OBJS= src/SDL.o \ + src/SDL_assert.o \ + src/SDL_error.o \ + src/SDL_hints.o \ + src/SDL_log.o \ + src/atomic/SDL_atomic.o \ + src/atomic/SDL_spinlock.o \ + src/audio/SDL_audio.o \ + src/audio/SDL_audiocvt.o \ + src/audio/SDL_audiodev.o \ + src/audio/SDL_audiotypecvt.o \ + src/audio/SDL_mixer.o \ + src/audio/SDL_wave.o \ + src/audio/psp/SDL_pspaudio.o \ + src/cpuinfo/SDL_cpuinfo.o \ + src/events/SDL_clipboardevents.o \ + src/events/SDL_dropevents.o \ + src/events/SDL_events.o \ + src/events/SDL_gesture.o \ + src/events/SDL_keyboard.o \ + src/events/SDL_mouse.o \ + src/events/SDL_quit.o \ + src/events/SDL_touch.o \ + src/events/SDL_windowevents.o \ + src/file/SDL_rwops.o \ + src/haptic/SDL_haptic.o \ + src/haptic/dummy/SDL_syshaptic.o \ + src/joystick/SDL_joystick.o \ + src/joystick/SDL_gamecontroller.o \ + src/joystick/psp/SDL_sysjoystick.o \ + src/power/SDL_power.o \ + src/power/psp/SDL_syspower.o \ + src/filesystem/dummy/SDL_sysfilesystem.o \ + src/render/SDL_render.o \ + src/render/SDL_yuv_sw.o \ + src/render/psp/SDL_render_psp.o \ + src/render/software/SDL_blendfillrect.o \ + src/render/software/SDL_blendline.o \ + src/render/software/SDL_blendpoint.o \ + src/render/software/SDL_drawline.o \ + src/render/software/SDL_drawpoint.o \ + src/render/software/SDL_render_sw.o \ + src/render/software/SDL_rotate.o \ + src/stdlib/SDL_getenv.o \ + src/stdlib/SDL_iconv.o \ + src/stdlib/SDL_malloc.o \ + src/stdlib/SDL_qsort.o \ + src/stdlib/SDL_stdlib.o \ + src/stdlib/SDL_string.o \ + src/thread/SDL_thread.o \ + src/thread/psp/SDL_syssem.o \ + src/thread/psp/SDL_systhread.o \ + src/thread/psp/SDL_sysmutex.o \ + src/thread/psp/SDL_syscond.o \ + src/timer/SDL_timer.o \ + src/timer/psp/SDL_systimer.o \ + src/video/SDL_RLEaccel.o \ + src/video/SDL_blit.o \ + src/video/SDL_blit_0.o \ + src/video/SDL_blit_1.o \ + src/video/SDL_blit_A.o \ + src/video/SDL_blit_N.o \ + src/video/SDL_blit_auto.o \ + src/video/SDL_blit_copy.o \ + src/video/SDL_blit_slow.o \ + src/video/SDL_bmp.o \ + src/video/SDL_clipboard.o \ + src/video/SDL_fillrect.o \ + src/video/SDL_pixels.o \ + src/video/SDL_rect.o \ + src/video/SDL_stretch.o \ + src/video/SDL_surface.o \ + src/video/SDL_video.o \ + src/video/psp/SDL_pspevents.o \ + src/video/psp/SDL_pspvideo.o \ + src/video/psp/SDL_pspgl.o \ + src/video/psp/SDL_pspmouse.o \ + +INCDIR = ./include +CFLAGS = -g -O2 -G0 -Wall -D__PSP__ -DHAVE_OPENGL +CXXFLAGS = $(CFLAGS) -fno-exceptions -fno-rtti +ASFLAGS = $(CFLAGS) + +LIBDIR = +LIBS = -lGL -lGLU -lglut -lz \ + -lpspvfpu -lpsphprm -lpspsdk -lpspctrl -lpspumd -lpsprtc -lpsppower -lpspgum -lpspgu -lpspaudiolib -lpspaudio -lpsphttp -lpspssl -lpspwlan \ + -lpspnet_adhocmatching -lpspnet_adhoc -lpspnet_adhocctl -lm -lpspvram + +PSPSDK=$(shell psp-config --pspsdk-path) +include $(PSPSDK)/lib/build.mak + diff --git a/Makefile.wiz b/Makefile.wiz new file mode 100644 index 000000000..82619f076 --- /dev/null +++ b/Makefile.wiz @@ -0,0 +1,61 @@ +# Makefile to build the pandora SDL library +WIZSDK = /mythtv/media/devel/toolchains/openwiz/arm-openwiz-linux-gnu + +AR = $(WIZSDK)/bin/arm-openwiz-linux-gnu-ar +RANLIB = $(WIZSDK)/bin/arm-openwiz-linux-gnu-ranlib +CC = $(WIZSDK)/bin/arm-openwiz-linux-gnu-gcc +CXX = $(WIZSDK)/bin/arm-openwiz-linux-gnu-g++ +STRIP = $(WIZSDK)/bin/arm-openwiz-linux-gnu-strip + +CFLAGS = -Wall -fPIC -I./include -I$(WIZSDK)/include -DWIZ_GLES_LITE + +TARGET_STATIC = libSDL13.a +TARGET_SHARED = libSDL13.so + +SOURCES = ./src/*.c ./src/audio/*.c ./src/cdrom/*.c ./src/cpuinfo/*.c ./src/events/*.c \ + ./src/file/*.c ./src/stdlib/*.c ./src/thread/*.c ./src/timer/*.c ./src/video/*.c \ + ./src/joystick/*.c ./src/haptic/*.c ./src/video/dummy/*.c ./src/audio/disk/*.c \ + ./src/audio/dummy/*.c ./src/loadso/dlopen/*.c ./src/audio/dsp/*.c \ + ./src/thread/pthread/SDL_systhread.c ./src/thread/pthread/SDL_syssem.c \ + ./src/thread/pthread/SDL_sysmutex.c ./src/thread/pthread/SDL_syscond.c \ + ./src/joystick/linux/*.c ./src/haptic/linux/*.c ./src/timer/unix/*.c ./src/cdrom/dummy/*.c \ + ./src/video/pandora/SDL_pandora.o ./src/video/pandora/SDL_pandora_events.o + + +OBJECTS = $(shell echo $(SOURCES) | sed -e 's,\.c,\.o,g') + +all: config_copy $(TARGET_STATIC) $(TARGET_SHARED) + +$(TARGET_STATIC): $(OBJECTS) + $(AR) crv $@ $^ + $(RANLIB) $@ + +$(TARGET_SHARED): + $(CC) -shared -Wl,-soname,$(TARGET_SHARED).0 -o $(TARGET_SHARED).0.0.1 $(OBJECTS) + ln -s $(TARGET_SHARED).0.0.1 $(TARGET_SHARED).0 + ln -s $(TARGET_SHARED).0 $(TARGET_SHARED) + +config_copy: + cp include/SDL_config_wiz.h include/SDL_config.h + +clean: + rm -f $(TARGET_STATIC) $(TARGET_SHARED)* $(OBJECTS) + +install: + mkdir -p $(WIZSDK)/lib + mkdir -p $(WIZSDK)/include/SDL13 + cp -f $(TARGET_STATIC) $(WIZSDK)/lib + cp -f $(TARGET_SHARED).0.0.1 $(WIZSDK)/lib + rm -f $(WIZSDK)/lib/$(TARGET_SHARED).0 $(WIZSDK)/lib/$(TARGET_SHARED) + ln -s $(WIZSDK)/lib/$(TARGET_SHARED).0.0.1 $(WIZSDK)/lib/$(TARGET_SHARED).0 + ln -s $(WIZSDK)/lib/$(TARGET_SHARED).0 $(WIZSDK)/lib/$(TARGET_SHARED) + + cp $(TARGET_STATIC) ../../toolchain/libs + cp $(TARGET_SHARED).0.0.1 ../../toolchain/libs + rm -f ../../toolchain/libs/$(TARGET_SHARED).0 ../../toolchain/libs/$(TARGET_SHARED) + ln -s ../../toolchain/libs/$(TARGET_SHARED).0.0.1 ../../toolchain/libs/$(TARGET_SHARED).0 + ln -s ../../toolchain/libs/$(TARGET_SHARED).0 ../../toolchain/libs/$(TARGET_SHARED) + + cp $(TARGET_SHARED).0.0.1 ../nehe_demos/build/$(TARGET_SHARED).0 + cp -f include/*.h $(WIZSDK)/include/SDL13/ + cp -f include/*.h ../../toolchain/include/SDL13/ diff --git a/README-SDL.txt b/README-SDL.txt new file mode 100644 index 000000000..0630395e5 --- /dev/null +++ b/README-SDL.txt @@ -0,0 +1,13 @@ + +Please distribute this file with the SDL runtime environment: + +The Simple DirectMedia Layer (SDL for short) is a cross-platform library +designed to make it easy to write multi-media software, such as games and +emulators. + +The Simple DirectMedia Layer library source code is available from: +http://www.libsdl.org/ + +This library is distributed under the terms of the zlib license: +http://www.zlib.net/zlib_license.html + diff --git a/README.txt b/README.txt new file mode 100644 index 000000000..84c335c2b --- /dev/null +++ b/README.txt @@ -0,0 +1,21 @@ + + Simple DirectMedia Layer + + (SDL) + + Version 2.0 + +--- +http://www.libsdl.org/ + +Simple DirectMedia Layer is a cross-platform development library designed +to provide low level access to audio, keyboard, mouse, joystick, and graphics +hardware via OpenGL and Direct3D. It is used by video playback software, +emulators, and popular games including Valve's award winning catalog +and many Humble Bundle games. + +More extensive documentation is available in the docs directory, starting +with README.md + +Enjoy! + Sam Lantinga (slouken@libsdl.org) diff --git a/SDL2.spec.in b/SDL2.spec.in new file mode 100644 index 000000000..dba240037 --- /dev/null +++ b/SDL2.spec.in @@ -0,0 +1,118 @@ +Summary: Simple DirectMedia Layer +Name: SDL2 +Version: @SDL_VERSION@ +Release: 2 +Source: http://www.libsdl.org/release/%{name}-%{version}.tar.gz +URL: http://www.libsdl.org/ +License: zlib +Group: System Environment/Libraries +BuildRoot: %{_tmppath}/%{name}-%{version}-buildroot +Prefix: %{_prefix} +%ifos linux +Provides: libSDL2-2.0.so.0 +%endif + +%define __defattr %defattr(-,root,root) +%define __soext so + +%description +This is the Simple DirectMedia Layer, a generic API that provides low +level access to audio, keyboard, mouse, and display framebuffer across +multiple platforms. + +%package devel +Summary: Libraries, includes and more to develop SDL applications. +Group: Development/Libraries +Requires: %{name} = %{version} + +%description devel +This is the Simple DirectMedia Layer, a generic API that provides low +level access to audio, keyboard, mouse, and display framebuffer across +multiple platforms. + +This is the libraries, include files and other resources you can use +to develop SDL applications. + + +%prep +%setup -q + +%build +%ifos linux +CFLAGS="$RPM_OPT_FLAGS" ./configure --prefix=%{prefix} --disable-video-directfb +%else +%configure +%endif +make + +%install +rm -rf $RPM_BUILD_ROOT +%ifos linux +make install prefix=$RPM_BUILD_ROOT%{prefix} \ + bindir=$RPM_BUILD_ROOT%{_bindir} \ + libdir=$RPM_BUILD_ROOT%{_libdir} \ + includedir=$RPM_BUILD_ROOT%{_includedir} \ + datadir=$RPM_BUILD_ROOT%{_datadir} \ + mandir=$RPM_BUILD_ROOT%{_mandir} +%else +%makeinstall +%endif + +%clean +rm -rf $RPM_BUILD_ROOT + +%files +%{__defattr} +%doc README*.txt COPYING.txt CREDITS.txt BUGS.txt +%{_libdir}/lib*.%{__soext}.* + +%files devel +%{__defattr} +%doc docs/README*.md +%{_bindir}/*-config +%{_libdir}/lib*.a +%{_libdir}/lib*.la +%{_libdir}/lib*.%{__soext} +%{_includedir}/*/*.h +%{_libdir}/pkgconfig/* +%{_datadir}/aclocal/* + +%changelog +* Thu Jun 04 2015 Ryan C. Gordon +- Fixed README paths. + +* Sun Dec 07 2014 Simone Contini +- Fixed changelog date issue and docs filenames + +* Sun Jan 22 2012 Sam Lantinga +- Updated for SDL 2.0 + +* Tue May 16 2006 Sam Lantinga +- Removed support for Darwin, due to build problems on ps2linux + +* Sat Jan 03 2004 Anders Bjorklund +- Added support for Darwin, updated spec file + +* Wed Jan 19 2000 Sam Lantinga +- Re-integrated spec file into SDL distribution +- 'name' and 'version' come from configure +- Some of the documentation is devel specific +- Removed SMP support from %build - it doesn't work with libtool anyway + +* Tue Jan 18 2000 Hakan Tandogan +- Hacked Mandrake sdl spec to build 1.1 + +* Sun Dec 19 1999 John Buswell +- Build Release + +* Sat Dec 18 1999 John Buswell +- Add symlink for libSDL-1.0.so.0 required by sdlbomber +- Added docs + +* Thu Dec 09 1999 Lenny Cartier +- v 1.0.0 + +* Mon Nov 1 1999 Chmouel Boudjnah +- First spec file for Mandrake distribution. + +# end of file diff --git a/TODO.txt b/TODO.txt new file mode 100644 index 000000000..89637ebdb --- /dev/null +++ b/TODO.txt @@ -0,0 +1,10 @@ +Future work roadmap: + * http://wiki.libsdl.org/moin.cgi/Roadmap + + * Check 1.2 revisions: + 3554 - Need to resolve semantics for locking keys on different platforms + 4874 - Do we want screen rotation? At what level? + 4974 - Windows file code needs to convert UTF-8 to Unicode, but we don't need to tap dance for Windows 95/98 + 4865 - See if this is still needed (mouse coordinate clamping) + 4866 - See if this is still needed (blocking window repositioning) + diff --git a/VisualC-WinRT/WinPhone80_VS2012/SDL-WinPhone80.vcxproj b/VisualC-WinRT/WinPhone80_VS2012/SDL-WinPhone80.vcxproj new file mode 100644 index 000000000..3776d2433 --- /dev/null +++ b/VisualC-WinRT/WinPhone80_VS2012/SDL-WinPhone80.vcxproj @@ -0,0 +1,452 @@ + + + + + Debug + Win32 + + + Debug + ARM + + + Release + Win32 + + + Release + ARM + + + + {33048af1-031a-4ce6-b61e-fad2db832e9e} + SDL + en-US + 11.0 + SDL2-WinPhone80 + + + + DynamicLibrary + true + v110_wp80 + false + + + DynamicLibrary + true + v110_wp80 + false + + + DynamicLibrary + false + true + v110_wp80 + false + + + DynamicLibrary + false + true + v110_wp80 + false + + + + + + + + false + + + SDL2 + Objs\$(Platform)\$(Configuration)\$(MSBuildProjectName)\ + + + SDL2 + Objs\$(Platform)\$(Configuration)\$(MSBuildProjectName)\ + + + SDL2 + Objs\$(Platform)\$(Configuration)\$(MSBuildProjectName)\ + + + SDL2 + Objs\$(Platform)\$(Configuration)\$(MSBuildProjectName)\ + + + + _USRDLL;UNICODE;SDL_BUILDING_WINRT=1;%(PreprocessorDefinitions) + NotUsing + pch.h + false + $(WindowsSDK_MetadataPath);$(AdditionalUsingDirectories) + ..\..\include + false + + + Console + false + false + true + DXGI.lib;d3d11.lib;xaudio2.lib;WindowsPhoneCore.lib;RuntimeObject.lib;PhoneAppModelHost.lib;%(AdditionalDependencies) + + + + + _USRDLL;UNICODE;SDL_BUILDING_WINRT=1;NDEBUG;%(PreprocessorDefinitions) + NotUsing + pch.h + false + $(WindowsSDK_MetadataPath);$(AdditionalUsingDirectories) + ..\..\include + + + Console + false + false + true + DXGI.lib;d3d11.lib;xaudio2.lib;WindowsPhoneCore.lib;RuntimeObject.lib;PhoneAppModelHost.lib;%(AdditionalDependencies) + + + + + _USRDLL;UNICODE;SDL_BUILDING_WINRT=1;%(PreprocessorDefinitions) + NotUsing + pch.h + false + $(WindowsSDK_MetadataPath);$(AdditionalUsingDirectories) + ..\..\include + false + + + Console + false + false + true + DXGI.lib;d3d11.lib;xaudio2.lib;WindowsPhoneCore.lib;RuntimeObject.lib;PhoneAppModelHost.lib;%(AdditionalDependencies) + + + + + _USRDLL;UNICODE;SDL_BUILDING_WINRT=1;NDEBUG;%(PreprocessorDefinitions) + NotUsing + pch.h + false + $(WindowsSDK_MetadataPath);$(AdditionalUsingDirectories) + ..\..\include + + + Console + false + false + true + DXGI.lib;d3d11.lib;xaudio2.lib;WindowsPhoneCore.lib;RuntimeObject.lib;PhoneAppModelHost.lib;%(AdditionalDependencies) + + + + + true + + + true + false + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + true + true + true + true + + + + true + true + true + true + + + true + true + true + true + + + true + true + true + true + + + + + + + + + + + + + + true + true + true + true + + + + + + + + + + + + + + true + true + true + true + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + true + true + true + true + + + true + true + true + true + + + true + true + true + true + + + true + true + true + true + + + true + true + true + true + + + true + true + true + true + + + true + true + true + true + + + + + + + \ No newline at end of file diff --git a/VisualC-WinRT/WinPhone80_VS2012/SDL-WinPhone80.vcxproj.filters b/VisualC-WinRT/WinPhone80_VS2012/SDL-WinPhone80.vcxproj.filters new file mode 100644 index 000000000..1f4df44e4 --- /dev/null +++ b/VisualC-WinRT/WinPhone80_VS2012/SDL-WinPhone80.vcxproj.filters @@ -0,0 +1,678 @@ + + + + + {02b21b9a-45a7-41ee-a8a6-e45d14aa28da} + + + {abc3a7e6-f955-4cb5-8340-fae0f653e9c1} + + + + + Header Files + + + Header Files + + + Header Files + + + Header Files + + + Header Files + + + Header Files + + + Header Files + + + Header Files + + + Header Files + + + Header Files + + + Header Files + + + Header Files + + + Header Files + + + Header Files + + + Header Files + + + Header Files + + + Header Files + + + Header Files + + + Header Files + + + Header Files + + + Header Files + + + Header Files + + + Header Files + + + Header Files + + + Header Files + + + Header Files + + + Header Files + + + Header Files + + + Header Files + + + Header Files + + + Header Files + + + Header Files + + + Header Files + + + Header Files + + + Header Files + + + Header Files + + + Header Files + + + Header Files + + + Header Files + + + Header Files + + + Header Files + + + Header Files + + + Header Files + + + Header Files + + + Header Files + + + Header Files + + + Header Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Header Files + + + Source Files + + + Source Files + + + Source Files + + + Header Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + \ No newline at end of file diff --git a/VisualC-WinRT/WinPhone81_VS2013/SDL-WinPhone81.vcxproj b/VisualC-WinRT/WinPhone81_VS2013/SDL-WinPhone81.vcxproj new file mode 100644 index 000000000..ae13b9ccc --- /dev/null +++ b/VisualC-WinRT/WinPhone81_VS2013/SDL-WinPhone81.vcxproj @@ -0,0 +1,446 @@ + + + + + Debug + ARM + + + Debug + Win32 + + + Release + ARM + + + Release + Win32 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + true + true + true + true + + + + true + true + true + true + + + true + true + true + true + + + true + true + true + true + + + + + + + + + + + + + + true + true + true + true + + + + + + + + + + + + + + true + true + true + true + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + true + true + true + true + + + true + true + true + true + + + true + true + true + true + + + true + true + true + true + + + true + true + true + true + + + true + true + true + true + + + true + true + true + true + + + + {48fadc0e-964d-4dab-bced-372e0ad19577} + SDL_WinRT81 + en-US + 12.0 + true + Windows Phone + 8.1 + CodeSharingDll + SDL2-WinPhone81 + + + + DynamicLibrary + true + v120_wp81 + + + DynamicLibrary + true + v120_wp81 + + + DynamicLibrary + false + true + v120_wp81 + + + DynamicLibrary + false + true + v120_wp81 + + + + + + + + + + + + + + + + + false + false + Objs\$(Platform)\$(Configuration)\$(MSBuildProjectName)\ + SDL2 + + + false + false + Objs\$(Platform)\$(Configuration)\$(MSBuildProjectName)\ + SDL2 + + + false + false + Objs\$(Platform)\$(Configuration)\$(MSBuildProjectName)\ + SDL2 + + + false + false + Objs\$(Platform)\$(Configuration)\$(MSBuildProjectName)\ + SDL2 + + + + NotUsing + false + ..\..\include;%(AdditionalIncludeDirectories) + _CRT_SECURE_NO_WARNINGS;SDL_BUILDING_WINRT=1;%(PreprocessorDefinitions) + + + Console + false + false + DXGI.lib;d3d11.lib;xaudio2.lib;%(AdditionalDependencies) + + + + + NotUsing + false + ..\..\include;%(AdditionalIncludeDirectories) + _CRT_SECURE_NO_WARNINGS;SDL_BUILDING_WINRT=1;%(PreprocessorDefinitions) + + + Console + false + false + DXGI.lib;d3d11.lib;xaudio2.lib;%(AdditionalDependencies) + + + + + NotUsing + false + ..\..\include;%(AdditionalIncludeDirectories) + _CRT_SECURE_NO_WARNINGS;SDL_BUILDING_WINRT=1;%(PreprocessorDefinitions) + + + Console + false + false + DXGI.lib;d3d11.lib;xaudio2.lib;%(AdditionalDependencies) + + + + + NotUsing + false + ..\..\include;%(AdditionalIncludeDirectories) + _CRT_SECURE_NO_WARNINGS;SDL_BUILDING_WINRT=1;%(PreprocessorDefinitions) + + + Console + false + false + DXGI.lib;d3d11.lib;xaudio2.lib;%(AdditionalDependencies) + + + + + + \ No newline at end of file diff --git a/VisualC-WinRT/WinPhone81_VS2013/SDL-WinPhone81.vcxproj.filters b/VisualC-WinRT/WinPhone81_VS2013/SDL-WinPhone81.vcxproj.filters new file mode 100644 index 000000000..b0e044d51 --- /dev/null +++ b/VisualC-WinRT/WinPhone81_VS2013/SDL-WinPhone81.vcxproj.filters @@ -0,0 +1,690 @@ + + + + + {d54aa32d-ba0b-491f-ac04-c9b87dd4bc69} + + + {6945cfdb-2dd6-4f78-bbcb-f899c2a86e4a} + + + + + Header Files + + + Header Files + + + Header Files + + + Header Files + + + Header Files + + + Header Files + + + Header Files + + + Header Files + + + Header Files + + + Header Files + + + Header Files + + + Header Files + + + Header Files + + + Header Files + + + Header Files + + + Header Files + + + Header Files + + + Header Files + + + Header Files + + + Header Files + + + Header Files + + + Header Files + + + Header Files + + + Header Files + + + Header Files + + + Header Files + + + Header Files + + + Header Files + + + Header Files + + + Header Files + + + Header Files + + + Header Files + + + Header Files + + + Header Files + + + Header Files + + + Header Files + + + Header Files + + + Header Files + + + Header Files + + + Header Files + + + Header Files + + + Header Files + + + Header Files + + + Header Files + + + Header Files + + + Header Files + + + Header Files + + + Header Files + + + Header Files + + + Header Files + + + Header Files + + + Header Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + \ No newline at end of file diff --git a/VisualC-WinRT/WinRT80_VS2012/SDL-WinRT80.sln b/VisualC-WinRT/WinRT80_VS2012/SDL-WinRT80.sln new file mode 100644 index 000000000..dc3a6ddaf --- /dev/null +++ b/VisualC-WinRT/WinRT80_VS2012/SDL-WinRT80.sln @@ -0,0 +1,32 @@ + +Microsoft Visual Studio Solution File, Format Version 12.00 +# Visual Studio 2012 +Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "SDL-WinRT", "SDL-WinRT80.vcxproj", "{AEAEA3A2-D4E6-45B1-8EC6-53D84287FC14}" +EndProject +Global + GlobalSection(SolutionConfigurationPlatforms) = preSolution + Debug|ARM = Debug|ARM + Debug|Win32 = Debug|Win32 + Debug|x64 = Debug|x64 + Release|ARM = Release|ARM + Release|Win32 = Release|Win32 + Release|x64 = Release|x64 + EndGlobalSection + GlobalSection(ProjectConfigurationPlatforms) = postSolution + {AEAEA3A2-D4E6-45B1-8EC6-53D84287FC14}.Debug|ARM.ActiveCfg = Debug|ARM + {AEAEA3A2-D4E6-45B1-8EC6-53D84287FC14}.Debug|ARM.Build.0 = Debug|ARM + {AEAEA3A2-D4E6-45B1-8EC6-53D84287FC14}.Debug|Win32.ActiveCfg = Debug|Win32 + {AEAEA3A2-D4E6-45B1-8EC6-53D84287FC14}.Debug|Win32.Build.0 = Debug|Win32 + {AEAEA3A2-D4E6-45B1-8EC6-53D84287FC14}.Debug|x64.ActiveCfg = Debug|x64 + {AEAEA3A2-D4E6-45B1-8EC6-53D84287FC14}.Debug|x64.Build.0 = Debug|x64 + {AEAEA3A2-D4E6-45B1-8EC6-53D84287FC14}.Release|ARM.ActiveCfg = Release|ARM + {AEAEA3A2-D4E6-45B1-8EC6-53D84287FC14}.Release|ARM.Build.0 = Release|ARM + {AEAEA3A2-D4E6-45B1-8EC6-53D84287FC14}.Release|Win32.ActiveCfg = Release|Win32 + {AEAEA3A2-D4E6-45B1-8EC6-53D84287FC14}.Release|Win32.Build.0 = Release|Win32 + {AEAEA3A2-D4E6-45B1-8EC6-53D84287FC14}.Release|x64.ActiveCfg = Release|x64 + {AEAEA3A2-D4E6-45B1-8EC6-53D84287FC14}.Release|x64.Build.0 = Release|x64 + EndGlobalSection + GlobalSection(SolutionProperties) = preSolution + HideSolutionNode = FALSE + EndGlobalSection +EndGlobal diff --git a/VisualC-WinRT/WinRT80_VS2012/SDL-WinRT80.vcxproj b/VisualC-WinRT/WinRT80_VS2012/SDL-WinRT80.vcxproj new file mode 100644 index 000000000..fbcd94b6b --- /dev/null +++ b/VisualC-WinRT/WinRT80_VS2012/SDL-WinRT80.vcxproj @@ -0,0 +1,548 @@ + + + + + Debug + ARM + + + Debug + Win32 + + + Debug + x64 + + + Release + ARM + + + Release + Win32 + + + Release + x64 + + + + + + + + + + + + + + + + true + true + true + true + true + true + + + + + true + true + true + true + true + true + + + true + true + true + true + true + true + + + true + true + true + true + true + true + + + + + + + + + + + + + + true + true + true + true + true + true + + + + + + + + + + + + + + + + + + true + true + true + true + true + true + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + true + true + true + true + true + true + + + true + true + true + true + true + true + + + true + true + true + true + true + true + + + true + true + true + true + true + true + + + true + true + true + true + true + true + + + true + true + true + true + true + true + + + true + true + true + true + true + true + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + {aeaea3a2-d4e6-45b1-8ec6-53d84287fc14} + Win32Proj + SDL2-WinRT80 + SDL_VS2012_WinRT + en-US + 11.0 + true + + + + DynamicLibrary + true + v110 + + + DynamicLibrary + true + v110 + + + DynamicLibrary + true + v110 + + + DynamicLibrary + false + true + v110 + + + DynamicLibrary + false + true + v110 + + + DynamicLibrary + false + true + v110 + + + + + + + + + + + + + + + + + + + + + + + + false + false + SDL2 + Objs\$(Platform)\$(Configuration)\$(MSBuildProjectName)\ + + + false + false + SDL2 + Objs\$(Platform)\$(Configuration)\$(MSBuildProjectName)\ + + + false + false + SDL2 + Objs\$(Platform)\$(Configuration)\$(MSBuildProjectName)\ + + + false + false + SDL2 + Objs\$(Platform)\$(Configuration)\$(MSBuildProjectName)\ + + + false + false + SDL2 + Objs\$(Platform)\$(Configuration)\$(MSBuildProjectName)\ + + + false + false + SDL2 + Objs\$(Platform)\$(Configuration)\$(MSBuildProjectName)\ + + + + NotUsing + false + ..\..\include;%(AdditionalIncludeDirectories) + _WINDLL;_CRT_SECURE_NO_WARNINGS;SDL_BUILDING_WINRT=1;%(PreprocessorDefinitions) + + + Console + false + false + xinput.lib;xaudio2.lib;d2d1.lib;d3d11.lib;dxgi.lib;ole32.lib;windowscodecs.lib;dwrite.lib;kernel32.lib;%(AdditionalDependencies) + + + + + NotUsing + false + ..\..\include;%(AdditionalIncludeDirectories) + _WINDLL;_CRT_SECURE_NO_WARNINGS;SDL_BUILDING_WINRT=1;%(PreprocessorDefinitions) + + + Console + false + false + xinput.lib;xaudio2.lib;d2d1.lib;d3d11.lib;dxgi.lib;ole32.lib;windowscodecs.lib;dwrite.lib;kernel32.lib;%(AdditionalDependencies) + + + + + NotUsing + false + ..\..\include;%(AdditionalIncludeDirectories) + _WINDLL;_CRT_SECURE_NO_WARNINGS;SDL_BUILDING_WINRT=1;%(PreprocessorDefinitions) + + + Console + false + false + xinput.lib;xaudio2.lib;d2d1.lib;d3d11.lib;dxgi.lib;ole32.lib;windowscodecs.lib;dwrite.lib;kernel32.lib;%(AdditionalDependencies) + + + + + NotUsing + false + ..\..\include;%(AdditionalIncludeDirectories) + _WINDLL;_CRT_SECURE_NO_WARNINGS;SDL_BUILDING_WINRT=1;%(PreprocessorDefinitions) + + + Console + false + false + xinput.lib;xaudio2.lib;d2d1.lib;d3d11.lib;dxgi.lib;ole32.lib;windowscodecs.lib;dwrite.lib;kernel32.lib;%(AdditionalDependencies) + + + + + NotUsing + false + ..\..\include;%(AdditionalIncludeDirectories) + _WINDLL;_CRT_SECURE_NO_WARNINGS;SDL_BUILDING_WINRT=1;%(PreprocessorDefinitions) + + + Console + false + false + xinput.lib;xaudio2.lib;d2d1.lib;d3d11.lib;dxgi.lib;ole32.lib;windowscodecs.lib;dwrite.lib;kernel32.lib;%(AdditionalDependencies) + + + + + NotUsing + false + ..\..\include;%(AdditionalIncludeDirectories) + _WINDLL;_CRT_SECURE_NO_WARNINGS;SDL_BUILDING_WINRT=1;%(PreprocessorDefinitions) + + + Console + false + false + xinput.lib;xaudio2.lib;d2d1.lib;d3d11.lib;dxgi.lib;ole32.lib;windowscodecs.lib;dwrite.lib;kernel32.lib;%(AdditionalDependencies) + + + + + + \ No newline at end of file diff --git a/VisualC-WinRT/WinRT80_VS2012/SDL-WinRT80.vcxproj.filters b/VisualC-WinRT/WinRT80_VS2012/SDL-WinRT80.vcxproj.filters new file mode 100644 index 000000000..aa539d37e --- /dev/null +++ b/VisualC-WinRT/WinRT80_VS2012/SDL-WinRT80.vcxproj.filters @@ -0,0 +1,726 @@ + + + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + + + Header Files + + + Header Files + + + Header Files + + + Header Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Header Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Header Files + + + Header Files + + + Header Files + + + Header Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Header Files + + + Header Files + + + Header Files + + + Header Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Header Files + + + Header Files + + + Header Files + + + Source Files + + + Header Files + + + Header Files + + + Header Files + + + Header Files + + + Header Files + + + Header Files + + + Header Files + + + Header Files + + + Header Files + + + Header Files + + + Header Files + + + Header Files + + + Source Files + + + Header Files + + + Header Files + + + Header Files + + + Header Files + + + Source Files + + + Header Files + + + Source Files + + + Header Files + + + Header Files + + + Header Files + + + Header Files + + + Header Files + + + Header Files + + + Header Files + + + Header Files + + + Header Files + + + Header Files + + + Header Files + + + Header Files + + + Header Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Header Files + + + Header Files + + + Source Files + + + Source Files + + + Source Files + + + Header Files + + + Source Files + + + Source Files + + + Source Files + + + Header Files + + + Source Files + + + Header Files + + + Header Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + + + {20773b57-7034-4c24-af5a-334844585f1b} + + + {ddf04d85-6a87-4c5a-bc52-869b38f45a61} + + + \ No newline at end of file diff --git a/VisualC-WinRT/WinRT81_VS2013/SDL-WinRT81.vcxproj b/VisualC-WinRT/WinRT81_VS2013/SDL-WinRT81.vcxproj new file mode 100644 index 000000000..7665cc473 --- /dev/null +++ b/VisualC-WinRT/WinRT81_VS2013/SDL-WinRT81.vcxproj @@ -0,0 +1,550 @@ + + + + + Debug + ARM + + + Debug + Win32 + + + Debug + x64 + + + Release + ARM + + + Release + Win32 + + + Release + x64 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + true + true + true + true + true + true + + + + + true + true + true + true + true + true + + + true + true + true + true + true + true + + + true + true + true + true + true + true + + + + + + + + + + + + + + true + true + true + true + true + true + + + + + + + + + + + + + + + + + + + true + true + true + true + true + true + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + true + true + true + true + true + true + + + true + true + true + true + true + true + + + true + true + true + true + true + true + + + true + true + true + true + true + true + + + true + true + true + true + true + true + + + true + true + true + true + true + true + + + true + true + true + true + true + true + + + + {c8df6173-06a1-4f56-a9bc-2002596b30e9} + SDL_WinRT81 + en-US + 12.0 + true + Windows Store + 8.1 + CodeSharingDll + SDL2-WinRT81 + + + + DynamicLibrary + true + v120 + + + DynamicLibrary + true + v120 + + + DynamicLibrary + true + v120 + + + DynamicLibrary + false + true + v120 + + + DynamicLibrary + false + true + v120 + + + DynamicLibrary + false + true + v120 + + + + + + + + + + + + + + + + + + + + + + + false + false + Objs\$(Platform)\$(Configuration)\$(MSBuildProjectName)\ + SDL2 + + + false + false + Objs\$(Platform)\$(Configuration)\$(MSBuildProjectName)\ + SDL2 + + + false + false + Objs\$(Platform)\$(Configuration)\$(MSBuildProjectName)\ + SDL2 + + + false + false + Objs\$(Platform)\$(Configuration)\$(MSBuildProjectName)\ + SDL2 + + + false + false + Objs\$(Platform)\$(Configuration)\$(MSBuildProjectName)\ + SDL2 + + + false + false + Objs\$(Platform)\$(Configuration)\$(MSBuildProjectName)\ + SDL2 + + + + NotUsing + false + ..\..\include;%(AdditionalIncludeDirectories) + _WINDLL;_CRT_SECURE_NO_WARNINGS;SDL_BUILDING_WINRT=1;%(PreprocessorDefinitions) + + + Console + false + false + xinput.lib;xaudio2.lib;d2d1.lib;d3d11.lib;dxgi.lib;ole32.lib;windowscodecs.lib;dwrite.lib;kernel32.lib;%(AdditionalDependencies) + + + + + NotUsing + false + ..\..\include;%(AdditionalIncludeDirectories) + _WINDLL;_CRT_SECURE_NO_WARNINGS;SDL_BUILDING_WINRT=1;%(PreprocessorDefinitions) + + + Console + false + false + xinput.lib;xaudio2.lib;d2d1.lib;d3d11.lib;dxgi.lib;ole32.lib;windowscodecs.lib;dwrite.lib;kernel32.lib;%(AdditionalDependencies) + + + + + NotUsing + false + ..\..\include;%(AdditionalIncludeDirectories) + _WINDLL;_CRT_SECURE_NO_WARNINGS;SDL_BUILDING_WINRT=1;%(PreprocessorDefinitions) + + + Console + false + false + xinput.lib;xaudio2.lib;d2d1.lib;d3d11.lib;dxgi.lib;ole32.lib;windowscodecs.lib;dwrite.lib;kernel32.lib;%(AdditionalDependencies) + + + + + NotUsing + false + ..\..\include;%(AdditionalIncludeDirectories) + _WINDLL;_CRT_SECURE_NO_WARNINGS;SDL_BUILDING_WINRT=1;%(PreprocessorDefinitions) + + + Console + false + false + xinput.lib;xaudio2.lib;d2d1.lib;d3d11.lib;dxgi.lib;ole32.lib;windowscodecs.lib;dwrite.lib;kernel32.lib;%(AdditionalDependencies) + + + + + NotUsing + false + ..\..\include;%(AdditionalIncludeDirectories) + _WINDLL;_CRT_SECURE_NO_WARNINGS;SDL_BUILDING_WINRT=1;%(PreprocessorDefinitions) + + + Console + false + false + xinput.lib;xaudio2.lib;d2d1.lib;d3d11.lib;dxgi.lib;ole32.lib;windowscodecs.lib;dwrite.lib;kernel32.lib;%(AdditionalDependencies) + + + + + NotUsing + false + ..\..\include;%(AdditionalIncludeDirectories) + _WINDLL;_CRT_SECURE_NO_WARNINGS;SDL_BUILDING_WINRT=1;%(PreprocessorDefinitions) + + + Console + false + false + xinput.lib;xaudio2.lib;d2d1.lib;d3d11.lib;dxgi.lib;ole32.lib;windowscodecs.lib;dwrite.lib;kernel32.lib;%(AdditionalDependencies) + + + + + + \ No newline at end of file diff --git a/VisualC-WinRT/WinRT81_VS2013/SDL-WinRT81.vcxproj.filters b/VisualC-WinRT/WinRT81_VS2013/SDL-WinRT81.vcxproj.filters new file mode 100644 index 000000000..502f92cf6 --- /dev/null +++ b/VisualC-WinRT/WinRT81_VS2013/SDL-WinRT81.vcxproj.filters @@ -0,0 +1,717 @@ + + + + + {7c1f964c-e351-49dd-8651-5d5b6b603856} + + + {450d92fd-978d-4025-87a9-6f688f946427} + + + + + Header Files + + + Header Files + + + Header Files + + + Header Files + + + Header Files + + + Header Files + + + Header Files + + + Header Files + + + Header Files + + + Header Files + + + Header Files + + + Header Files + + + Header Files + + + Header Files + + + Header Files + + + Header Files + + + Header Files + + + Header Files + + + Header Files + + + Header Files + + + Header Files + + + Header Files + + + Header Files + + + Header Files + + + Header Files + + + Header Files + + + Header Files + + + Header Files + + + Header Files + + + Header Files + + + Header Files + + + Header Files + + + Header Files + + + Header Files + + + Header Files + + + Header Files + + + Header Files + + + Header Files + + + Header Files + + + Header Files + + + Header Files + + + Header Files + + + Header Files + + + Header Files + + + Header Files + + + Header Files + + + Header Files + + + Header Files + + + Header Files + + + Header Files + + + Header Files + + + Header Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + + + + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + Source Files + + + + + + \ No newline at end of file diff --git a/VisualC-WinRT/tests/loopwave/Assets/Logo.png b/VisualC-WinRT/tests/loopwave/Assets/Logo.png new file mode 100644 index 0000000000000000000000000000000000000000..e26771cb33a49bbef824aa333737181b0a5b09a3 GIT binary patch literal 801 zcmeAS@N?(olHy`uVBq!ia0vp^(?FPm4M^HB7Cr(}k|nMYCBgY=CFO}lsSJ)O`AMk? zp1FzXsX?iUDV2pMQ*9U+m=1foIEGZ*dUJQLud<^=L*gE#63Ho!PGzwUb%GPK6&5iF zt!p@aGNX}6(PVh|N)M-?0RNcTbjaWgEU8noxUax-n>&3Ay)#!y&O11y2sKEF zt72@XC1)RvT6Xw=y_`Ce)`nGULLL^lI$kwi^E+dQT7YeXY4GvlRR%kj1x$VZi%Bdd zz}2Giy=-_$h+v#(S+};)DuE4EM?_^qB_eDeo@&q%StD1F>L|*0ZC2sb-}llSMTM?O z6{b3iid~yk@VE7q7Wb+P8?H5IYp?pSVcLE~18m#ygK20HL@6W5woI~Fjlw$fX1U{xQA5a+t0 zH$WNIb=fNpWHo}M9#;K6eszDZKty_|-?j4iocj5#zotrWc;@;w`H@=mjsvS2wXX0_ zY}l$4@^sE?UcC)ji*L=Z&}P!xaL&2((OQlj2dv~pV-ifAS;ZsH1{`D!GY%yys5WH)f>ZLo5m%6XjuXdbKMR7MEHSyb{m!_{Afji&MT$_sz7 z>1{~MlIFe28FRN(GC_~;#Jp4ADipP+9hh|P#-&`vO-Upt3jE0@YLh(^55uYWl9g)Z RA3>Rb!PC{xWt~$(69A&hN*MqE literal 0 HcmV?d00001 diff --git a/VisualC-WinRT/tests/loopwave/Assets/SmallLogo.png b/VisualC-WinRT/tests/loopwave/Assets/SmallLogo.png new file mode 100644 index 0000000000000000000000000000000000000000..1eb0d9d528c42f132872e8af4dc563081b0b9aff GIT binary patch literal 329 zcmV-P0k-~$P)q$gGRCwC#*X;?zAP@%N+|i#I!$mrh zlQ>KU$Rdu>|JH&931_?y6Djl{gb>4nCV5pzDJ?S!mq|4ZejKj%i@j$H{#ML~2Y{DF z$=}bKPaz+UGt{v(4CTQQXym}&iW8{s!ew~XIE7NLjQpy#I2S$rous$~?f%DHT#B*+ zq=#!zc5=0FEqWFpB%UE(L807on!pidHPLgYO}XEgorrg;PB=8ipgQ5u5`&g_MQaRd zaU7Ao8XQMuuN21-s0PPTs1%38x_Yl3Fs-|Y4!C-;M-8g@n*v@1|s#GQ665=9@Rxy?u0YW0&WN+~=RXpPbVXXL4m7Aq=E6I0%{06TwRn=U9d8>exk> zD-Z%M3DNQ`bTLSEF=%NFyoHcAkD*CiXqljo*0E?o$GiDC4q}}|%*0WghLlK#npw?hecrM}Mw?`E(z5C8< z8&*b^!{>5?4aT89vdrgBgSc-x6JZD3F^l#*G(@OO*^1D%Eu7?HAy<3kTLqW9N{^#6vso zVQwY48q7)m{~xQ64RV7{E7Y=&T~?^05Ky`5oNQ8bLgFCPq9co^R09BVRS1OAmH;hU zC#q(N!gNqm!zU#%sv{r5mm-Uv8b-~a1F-;p^>)pnXfKge4s9?;;MFIr*fixPG}NBA z6_G5BEmeO6XXh(emkciB{7tA;iwC2^s^VzyU_h0@ae84ACMY`cIDEju=<`q|2QAEv zW_)W|i|9aknqdmS=#w73eW_csQ$8IhT^vY1^1;X3&J0{%*tcQq!gJpr3w?TJc~@5= zKV5sM{$3k>b#S$@CTkhIF*{v*u(F&$&Yq1naHxt8Mz2N%7aQ3(^VNRZahk1||7?Bl z*idzO_u)FhRj4cPzDO>YA>>lxAGaciEiX8Xzp1SVPv91};$OG3cC&8!v3{Jq^kH@8 UTIccK;hzT5*3#}uZuEx!0OwrBv;Y7A literal 0 HcmV?d00001 diff --git a/VisualC-WinRT/tests/loopwave/Assets/StoreLogo.png b/VisualC-WinRT/tests/loopwave/Assets/StoreLogo.png new file mode 100644 index 0000000000000000000000000000000000000000..dcb672712c6823a0c91548ded70a8acb85536b4d GIT binary patch literal 429 zcmV;e0aE^nP)NtYJa1l)bQ5qwGXpZbs7%2oRMd4y35$s&66(fxhNg8W02!vSn zdlrL2h^Fx+3=$z;kK{0D#MyeJ8WRWZcLSf(PcQ_mLOhrmC}O-tX^0c>5`YvCUZVsc zG-6#78ubjJ5nA;OX&^K(q=i6ZNE3m?kTwE^AqxZoLskfB3|S&1F=UO9!cY$g2@Lgu z;9{sJ1P9|X2L`r1#Gs8R{E^$PRrMaC86q| + + + + + + loopwave_VS2012_WinRT + David + Assets\StoreLogo.png + + + + 6.2.1 + 6.2.1 + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/VisualC-WinRT/tests/loopwave/loopwave_VS2012.vcxproj b/VisualC-WinRT/tests/loopwave/loopwave_VS2012.vcxproj new file mode 100644 index 000000000..44c32813b --- /dev/null +++ b/VisualC-WinRT/tests/loopwave/loopwave_VS2012.vcxproj @@ -0,0 +1,170 @@ + + + + + Debug + Win32 + + + Release + Win32 + + + Debug + x64 + + + Release + x64 + + + Debug + ARM + + + Release + ARM + + + + {03fcc293-9406-49c2-acf6-6e7d460c3239} + loopwave_VS2012 + en-US + 11.0 + true + loopwave + + + + Application + true + v110 + + + Application + true + v110 + + + Application + true + v110 + + + Application + false + true + v110 + + + Application + false + true + v110 + + + Application + false + true + v110 + + + + + + + + + + + + + + + + + + + + + + + + + loopwave_VS2012_TemporaryKey.pfx + + + + d2d1.lib; d3d11.lib; dxgi.lib; ole32.lib; windowscodecs.lib; dwrite.lib; %(AdditionalDependencies) + + + pch.h + $(IntDir)pch.pch + $(ProjectDir);$(IntermediateOutputPath);$(ProjectDir)..\..\..\include;%(AdditionalIncludeDirectories) + 4453 + + + + + NDEBUG;_CRT_SECURE_NO_WARNINGS;%(PreprocessorDefinitions) + NotUsing + NotUsing + NotUsing + false + false + false + + + + + _DEBUG;_CRT_SECURE_NO_WARNINGS;%(PreprocessorDefinitions) + NotUsing + NotUsing + NotUsing + false + false + false + + + + + + + + + + + Designer + + + + + + true + true + true + true + true + true + + + false + false + false + false + false + false + + + + + + + + {aeaea3a2-d4e6-45b1-8ec6-53d84287fc14} + + + + + + \ No newline at end of file diff --git a/VisualC-WinRT/tests/loopwave/loopwave_VS2012_TemporaryKey.pfx b/VisualC-WinRT/tests/loopwave/loopwave_VS2012_TemporaryKey.pfx new file mode 100644 index 0000000000000000000000000000000000000000..3c07b779f56405e71431543ad8e28b5bbb995690 GIT binary patch literal 2504 zcmY+Ec{tQ-8^?cR#xSxQM3zCxgpA!B3CX^fec$(WM6U=9hHPQ%jj}s zUSkr9#Kg&@4)3pXz3(~K`Qv_`@BMl1`@Zgfo-YQE7-WDzF?d7*9C3kQKsaQBFhR=k zh;SGl5e#B~44(1mUr&tNFg)WXh}XcNz)$_JizQkWALyej1ZjV{}>$34r4~O zzT(_zQ6VxgFipYmum!R4@3eomc+?d6L!Kf~t$1h?NUv@Zk&~3YQ5tYuZ*N!eXK( zJjE1cw7SS8YK#jb-63v+o!CvjWh->q#Eeg6&{7IF)%hc5pjs{zoq(O4e~`DM!CsEhx1yRL zy5{a=!}5zyM4Nk2SGE*4mMT%$z0Kh0M2mXonnQ6fQyv!$XMV#M9?}(ljOvP8RCe!|>f2((*_S@pleL@dAN*ga_Lz=vFNGQ zS<1T;m1bhOA$y0?3@+t}o11k;P}{th;w?dSp*E0vvo%Mw*L?8e0?Zfl;zC3c^AUK~JPdvO;^Q!-(!77_a<6=QPD;HTM0a+$Hb?8~U7k4?@@>dMhSaN0Ihn}!FqEf(&V zXn*?n+;i8RZ;R~99&AP|rWBG?c2Rwo1~Jck^~V``tV= z#z1yb{f!*C$fh6;@x@BCM9nYw3GOA^fJwVSVz^IS>4xn{bBqVEY1G_(-NjsxW)hzx z?zo=JUx|u7$Uyf)wj0KJt@S3}hQ^=Fj_g(y7V0W8U#Q6={YufNzHY3z>FJnI>vAec zf8Z58?bGEWtvYfZqR=L#yPeHT$g=#pc4~S1k0Ki1bEib?^yAD4k2~UVpV16?3$I3n^MteaiNEEfj`!NjfrSZk}u%5w~``Gd`b# zMbDe;eSLe$MDr?HwHyDRM{epC4Pz_cOAXf#IJ6PojX0m@(dw^Z?AX5gz15g0N2jdJ!NW&p82ws&7B5xsL2ABf= zU<(ci1tP%k0d4>&;5vBzBq4w=nCXBz8VCbfD465GVPSyZUtK7`;;*_WF!KV}!eQ`G z-@i9!f|ui=b|A81fB@iS`p*mGUzQL5Y583=eYlV6xaUvHPryS_2|8B|%VlHD+=|*< zlotPtPFb|gp?fc;W#qeBpe6esG+J7Q%CYr{DaVc~kb8i%$)_ak&JXoN7x*j<)o`XQ z8#L+RwXJo2Wivx)LjTTYi^@{9TG+F&Pld4v@oYF@G?&YG|Dkl`R++GXhCBkVMY#0^J30Qt=0R7S3;{F zJL%^13O3J;WpdmYg-)#8`}*)vz{l-FL92NVDUrT|xymV7~3EzxmP{``)6jtNF2nd!S+CRI$h>9;&oP~k>ktmxVE#z zq)IGv^}+|1ZYQ!v7Giw%fP%GAF%^p|{?e}_BV~M)du!f*ak&0~)bV|yaSvhbQ2C^! zM6HOM^`l|P6~-rJzSUD)RydxZ&c-ZR$^6BTA417`*_yY}GEUEWZ4S-j{0v_cR$J`+CZwm-mh0 z{Sx+lBV*qY*L)#gYWWP?QAr&tSj{oM1c^(^U#k=gQ0IgMVPhUfZG0r^(d!XvBCaqG zlc6{y7|C-PqmB{9Fu@t6*`W-AFys>Yl`q$?us-|chdhcMb*VSG+^8_5X>E=8(>Iky ToyCz)S?HfgOO(BupC9bM?VoGZ literal 0 HcmV?d00001 diff --git a/VisualC-WinRT/tests/testthread/Assets/Logo.png b/VisualC-WinRT/tests/testthread/Assets/Logo.png new file mode 100644 index 0000000000000000000000000000000000000000..e26771cb33a49bbef824aa333737181b0a5b09a3 GIT binary patch literal 801 zcmeAS@N?(olHy`uVBq!ia0vp^(?FPm4M^HB7Cr(}k|nMYCBgY=CFO}lsSJ)O`AMk? zp1FzXsX?iUDV2pMQ*9U+m=1foIEGZ*dUJQLud<^=L*gE#63Ho!PGzwUb%GPK6&5iF zt!p@aGNX}6(PVh|N)M-?0RNcTbjaWgEU8noxUax-n>&3Ay)#!y&O11y2sKEF zt72@XC1)RvT6Xw=y_`Ce)`nGULLL^lI$kwi^E+dQT7YeXY4GvlRR%kj1x$VZi%Bdd zz}2Giy=-_$h+v#(S+};)DuE4EM?_^qB_eDeo@&q%StD1F>L|*0ZC2sb-}llSMTM?O z6{b3iid~yk@VE7q7Wb+P8?H5IYp?pSVcLE~18m#ygK20HL@6W5woI~Fjlw$fX1U{xQA5a+t0 zH$WNIb=fNpWHo}M9#;K6eszDZKty_|-?j4iocj5#zotrWc;@;w`H@=mjsvS2wXX0_ zY}l$4@^sE?UcC)ji*L=Z&}P!xaL&2((OQlj2dv~pV-ifAS;ZsH1{`D!GY%yys5WH)f>ZLo5m%6XjuXdbKMR7MEHSyb{m!_{Afji&MT$_sz7 z>1{~MlIFe28FRN(GC_~;#Jp4ADipP+9hh|P#-&`vO-Upt3jE0@YLh(^55uYWl9g)Z RA3>Rb!PC{xWt~$(69A&hN*MqE literal 0 HcmV?d00001 diff --git a/VisualC-WinRT/tests/testthread/Assets/SmallLogo.png b/VisualC-WinRT/tests/testthread/Assets/SmallLogo.png new file mode 100644 index 0000000000000000000000000000000000000000..1eb0d9d528c42f132872e8af4dc563081b0b9aff GIT binary patch literal 329 zcmV-P0k-~$P)q$gGRCwC#*X;?zAP@%N+|i#I!$mrh zlQ>KU$Rdu>|JH&931_?y6Djl{gb>4nCV5pzDJ?S!mq|4ZejKj%i@j$H{#ML~2Y{DF z$=}bKPaz+UGt{v(4CTQQXym}&iW8{s!ew~XIE7NLjQpy#I2S$rous$~?f%DHT#B*+ zq=#!zc5=0FEqWFpB%UE(L807on!pidHPLgYO}XEgorrg;PB=8ipgQ5u5`&g_MQaRd zaU7Ao8XQMuuN21-s0PPTs1%38x_Yl3Fs-|Y4!C-;M-8g@n*v@1|s#GQ665=9@Rxy?u0YW0&WN+~=RXpPbVXXL4m7Aq=E6I0%{06TwRn=U9d8>exk> zD-Z%M3DNQ`bTLSEF=%NFyoHcAkD*CiXqljo*0E?o$GiDC4q}}|%*0WghLlK#npw?hecrM}Mw?`E(z5C8< z8&*b^!{>5?4aT89vdrgBgSc-x6JZD3F^l#*G(@OO*^1D%Eu7?HAy<3kTLqW9N{^#6vso zVQwY48q7)m{~xQ64RV7{E7Y=&T~?^05Ky`5oNQ8bLgFCPq9co^R09BVRS1OAmH;hU zC#q(N!gNqm!zU#%sv{r5mm-Uv8b-~a1F-;p^>)pnXfKge4s9?;;MFIr*fixPG}NBA z6_G5BEmeO6XXh(emkciB{7tA;iwC2^s^VzyU_h0@ae84ACMY`cIDEju=<`q|2QAEv zW_)W|i|9aknqdmS=#w73eW_csQ$8IhT^vY1^1;X3&J0{%*tcQq!gJpr3w?TJc~@5= zKV5sM{$3k>b#S$@CTkhIF*{v*u(F&$&Yq1naHxt8Mz2N%7aQ3(^VNRZahk1||7?Bl z*idzO_u)FhRj4cPzDO>YA>>lxAGaciEiX8Xzp1SVPv91};$OG3cC&8!v3{Jq^kH@8 UTIccK;hzT5*3#}uZuEx!0OwrBv;Y7A literal 0 HcmV?d00001 diff --git a/VisualC-WinRT/tests/testthread/Assets/StoreLogo.png b/VisualC-WinRT/tests/testthread/Assets/StoreLogo.png new file mode 100644 index 0000000000000000000000000000000000000000..dcb672712c6823a0c91548ded70a8acb85536b4d GIT binary patch literal 429 zcmV;e0aE^nP)NtYJa1l)bQ5qwGXpZbs7%2oRMd4y35$s&66(fxhNg8W02!vSn zdlrL2h^Fx+3=$z;kK{0D#MyeJ8WRWZcLSf(PcQ_mLOhrmC}O-tX^0c>5`YvCUZVsc zG-6#78ubjJ5nA;OX&^K(q=i6ZNE3m?kTwE^AqxZoLskfB3|S&1F=UO9!cY$g2@Lgu z;9{sJ1P9|X2L`r1#Gs8R{E^$PRrMaC86q| + + + + + + testthread_VS2012_WinRT + David + Assets\StoreLogo.png + + + + 6.2.1 + 6.2.1 + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/VisualC-WinRT/tests/testthread/testthread_VS2012.vcxproj b/VisualC-WinRT/tests/testthread/testthread_VS2012.vcxproj new file mode 100644 index 000000000..ba1dbc050 --- /dev/null +++ b/VisualC-WinRT/tests/testthread/testthread_VS2012.vcxproj @@ -0,0 +1,160 @@ + + + + + Debug + Win32 + + + Release + Win32 + + + Debug + x64 + + + Release + x64 + + + Debug + ARM + + + Release + ARM + + + + {a8705bee-d01d-46a4-b2ab-feedfb5fdd11} + testthread_VS2012 + en-US + 11.0 + true + testthread + + + + Application + true + v110 + + + Application + true + v110 + + + Application + true + v110 + + + Application + false + true + v110 + + + Application + false + true + v110 + + + Application + false + true + v110 + + + + + + + + + + + + + + + + + + + + + + + + + testthread_VS2012_TemporaryKey.pfx + + + + d2d1.lib; d3d11.lib; dxgi.lib; ole32.lib; windowscodecs.lib; dwrite.lib; %(AdditionalDependencies) + + + pch.h + $(IntDir)pch.pch + $(ProjectDir);$(IntermediateOutputPath);$(ProjectDir)..\..\..\include;%(AdditionalIncludeDirectories) + 4453 + + + + + NDEBUG;_CRT_SECURE_NO_WARNINGS;%(PreprocessorDefinitions) + NotUsing + NotUsing + NotUsing + false + false + false + + + + + _DEBUG;_CRT_SECURE_NO_WARNINGS;%(PreprocessorDefinitions) + NotUsing + NotUsing + NotUsing + false + false + false + + + + + + + + + + + Designer + + + + + + true + true + true + true + true + true + + + + + + {aeaea3a2-d4e6-45b1-8ec6-53d84287fc14} + + + + + + \ No newline at end of file diff --git a/VisualC-WinRT/tests/testthread/testthread_VS2012_TemporaryKey.pfx b/VisualC-WinRT/tests/testthread/testthread_VS2012_TemporaryKey.pfx new file mode 100644 index 0000000000000000000000000000000000000000..97fd1e190077fd22da37b95fd53038fdd2ab7917 GIT binary patch literal 2504 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 S`-p?_$L3!@7-%tneg6fLkX32` literal 0 HcmV?d00001 diff --git a/VisualC.html b/VisualC.html new file mode 100644 index 000000000..89035d677 --- /dev/null +++ b/VisualC.html @@ -0,0 +1,146 @@ + + + Using SDL with Microsoft Visual C++ + + +

+ Using SDL with Microsoft Visual C++ +

+

+ by Lion Kimbro and additions by + James Turk +

+

+ You can either use the precompiled libraries from the SDL Download web site , or you can build SDL yourself. +

+

+ Building SDL +

+

+ Go into the VisualC directory and double-click on the Visual Studio solution for your version of Visual Studio, e.g. SDL_VS2008.sln This should open up the IDE. +

+

+ There are different solution files for the various + versions of the IDE. Please use the appropiate version + 2008, 2010, 2012 or 2013. +

+

+ Build the .dll and .lib files. +

+

+ This is done by right clicking on each project in turn (Projects are listed in + the Workspace panel in the FileView tab), and selecting "Build". +

+

+ You may get a few warnings, but you should not get any errors. You do have to + have at least the DirectX 9 SDK installed, however. The latest + version of DirectX can be downloaded from Microsoft. +

+

+ Later, we will refer to the following .lib and .dll files that have just been + generated: +

+
    +
  • SDL2.dll
  • +
  • SDL2.lib
  • +
  • SDL2main.lib
  • +
+

+ Search for these using the Windows Find (Windows-F) utility inside the VisualC directory. +

+

+ Creating a Project with SDL +

+

+ Create a project as a Win32 Application. +

+

+ Create a C++ file for your project. +

+

+ Set the C runtime to "Multi-threaded DLL" in the menu: Project|Settings|C/C++ + tab|Code Generation|Runtime Library . +

+

+ Add the SDL include directory to your list of includes in the + menu: Project|Settings|C/C++ tab|Preprocessor|Additional include directories + . +
+ VC7 Specific: Instead of doing this I find it easier to + add the include and library directories to the list that VC7 keeps. Do this by + selecting Tools|Options|Projects|VC++ Directories and under the "Show + Directories For:" dropbox select "Include Files", and click the "New Directory + Icon" and add the [SDLROOT]\include directory (e.g. If you installed to + c:\SDL\ add c:\SDL\include). Proceed to change the + dropbox selection to "Library Files" and add [SDLROOT]\lib. +

+

+ The "include directory" I am referring to is the include folder + within the main SDL directory (the one that this HTML file located within). +

+

+ Now we're going to use the files that we had created earlier in the Build SDL + step. +

+

+ Copy the following files into your Project directory: +

+
    +
  • SDL2.dll
  • +
+

+ Add the following files to your project (It is not necessary to copy them to + your project directory): +

+
    +
  • SDL2.lib
  • +
  • SDL2main.lib
  • +
+

+ (To add them to your project, right click on your project, and select "Add + files to project") +

+

Instead of adding the files to your project it is more + desireable to add them to the linker options: Project|Properties|Linker|Command + Line and type the names of the libraries to link with in the "Additional + Options:" box.  Note: This must be done for each build + configuration (e.g. Release,Debug).

+

+ SDL 101, First Day of Class +

+

+ Now create the basic body of your project. The body of your program should take + the following form: +


+#include "SDL.h"
+
+int main( int argc, char* argv[] )
+{
+  // Body of the program goes here.
+  return 0;
+}
+			
+

+

+ That's it! +

+

+ I hope that this document has helped you get through the most difficult part of + using the SDL: installing it. Suggestions for improvements to this document + should be sent to the writers of this document. +

+

+ Thanks to Paulus Esterhazy (pesterhazy@gmx.net), for the work on VC++ port. +

+

+ This document was originally called "VisualC.txt", and was written by + Sam Lantinga. +

+

+ Later, it was converted to HTML and expanded into the document that you see + today by Lion Kimbro. +

+

Minor Fixes and Visual C++ 7 Information (In Green) was added by James Turk +

+ + diff --git a/VisualC/SDL.sln b/VisualC/SDL.sln new file mode 100644 index 000000000..5fc834583 --- /dev/null +++ b/VisualC/SDL.sln @@ -0,0 +1,269 @@ +Microsoft Visual Studio Solution File, Format Version 11.00 +# Visual Studio 2010 +Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "tests", "tests", "{D69D5741-611F-4E14-8541-1FEE94F50B5A}" +EndProject +Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "SDL2", "SDL\SDL.vcxproj", "{81CE8DAF-EBB2-4761-8E45-B71ABCCA8C68}" +EndProject +Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "SDL2main", "SDLmain\SDLmain.vcxproj", "{DA956FD3-E142-46F2-9DD5-C78BEBB56B7A}" +EndProject +Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "checkkeys", "tests\checkkeys\checkkeys.vcxproj", "{26828762-C95D-4637-9CB1-7F0979523813}" +EndProject +Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "loopwave", "tests\loopwave\loopwave.vcxproj", "{AAAD1CB5-7ADA-47AE-85A0-08A6EC48FAFB}" +EndProject +Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "testatomic", "tests\testatomic\testatomic.vcxproj", "{66B32F7E-5716-48D0-B5B9-D832FD052DD5}" +EndProject +Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "testautomation", "tests\testautomation\testautomation.vcxproj", "{9C7E8C03-3130-436D-A97E-E8F8ED1AC4EA}" +EndProject +Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "testdraw2", "tests\testdraw2\testdraw2.vcxproj", "{8682FE1E-0CF6-4EDD-9BB5-1733D8C8B4DF}" +EndProject +Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "testfile", "tests\testfile\testfile.vcxproj", "{CAE4F1D0-314F-4B10-805B-0EFD670133A0}" +EndProject +Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "testgesture", "tests\testgesture\testgesture.vcxproj", "{79CEE57E-1BC3-4FF6-90B3-9E39763CDAFF}" +EndProject +Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "testgl2", "tests\testgl2\testgl2.vcxproj", "{8B5CFB38-CCBA-40A8-AD7A-89C57B070884}" +EndProject +Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "testjoystick", "tests\testjoystick\testjoystick.vcxproj", "{55812185-D13C-4022-9C81-32E0F4A08304}" +EndProject +Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "testoverlay2", "tests\testoverlay2\testoverlay2.vcxproj", "{B51E0D74-F0A2-45A2-BD2A-8B7D95B8204A}" +EndProject +Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "testplatform", "tests\testplatform\testplatform.vcxproj", "{26932B24-EFC6-4E3A-B277-ED653DA37968}" +EndProject +Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "testpower", "tests\testpower\testpower.vcxproj", "{C4E04D18-EF76-4B42-B4C2-16A1BACDC0A3}" +EndProject +Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "testrendertarget", "tests\testrendertarget\testrendertarget.vcxproj", "{2D17C1EB-1157-460E-9A99-A82BFC1F9D1E}" +EndProject +Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "testrumble", "tests\testrumble\testrumble.vcxproj", "{BFF40245-E9A6-4297-A425-A554E5D767E8}" +EndProject +Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "testscale", "tests\testscale\testscale.vcxproj", "{5D0930C0-7C91-4ECE-9014-7B7DDE9502E6}" +EndProject +Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "testshape", "tests\testshape\testshape.vcxproj", "{31A3E4E1-AAE9-4EF3-9B23-18D0924BE4D2}" +EndProject +Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "testsprite2", "tests\testsprite2\testsprite2.vcxproj", "{40FB7794-D3C3-4CFE-BCF4-A80C96635682}" +EndProject +Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "SDL2test", "SDLtest\SDLtest.vcxproj", "{DA956FD3-E143-46F2-9FE5-C77BEBC56B1A}" +EndProject +Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "testgamecontroller", "tests\testgamecontroller\testgamecontroller.vcxproj", "{55812185-D13C-4022-9C81-32E0F4A08305}" +EndProject +Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "testgles2", "tests\testgles2\testgles2.vcxproj", "{E9558DFE-1961-4DD4-B09B-DD0EEFD5C315}" +EndProject +Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "controllermap", "tests\controllermap\controllermap.vcxproj", "{55812185-D13C-4022-9C81-32E0F4A08306}" +EndProject +Global + GlobalSection(SolutionConfigurationPlatforms) = preSolution + Debug|Win32 = Debug|Win32 + Debug|x64 = Debug|x64 + Release|Win32 = Release|Win32 + Release|x64 = Release|x64 + EndGlobalSection + GlobalSection(ProjectConfigurationPlatforms) = postSolution + {81CE8DAF-EBB2-4761-8E45-B71ABCCA8C68}.Debug|Win32.ActiveCfg = Debug|Win32 + {81CE8DAF-EBB2-4761-8E45-B71ABCCA8C68}.Debug|Win32.Build.0 = Debug|Win32 + {81CE8DAF-EBB2-4761-8E45-B71ABCCA8C68}.Debug|x64.ActiveCfg = Debug|x64 + {81CE8DAF-EBB2-4761-8E45-B71ABCCA8C68}.Debug|x64.Build.0 = Debug|x64 + {81CE8DAF-EBB2-4761-8E45-B71ABCCA8C68}.Release|Win32.ActiveCfg = Release|Win32 + {81CE8DAF-EBB2-4761-8E45-B71ABCCA8C68}.Release|Win32.Build.0 = Release|Win32 + {81CE8DAF-EBB2-4761-8E45-B71ABCCA8C68}.Release|x64.ActiveCfg = Release|x64 + {81CE8DAF-EBB2-4761-8E45-B71ABCCA8C68}.Release|x64.Build.0 = Release|x64 + {DA956FD3-E142-46F2-9DD5-C78BEBB56B7A}.Debug|Win32.ActiveCfg = Debug|Win32 + {DA956FD3-E142-46F2-9DD5-C78BEBB56B7A}.Debug|Win32.Build.0 = Debug|Win32 + {DA956FD3-E142-46F2-9DD5-C78BEBB56B7A}.Debug|x64.ActiveCfg = Debug|x64 + {DA956FD3-E142-46F2-9DD5-C78BEBB56B7A}.Debug|x64.Build.0 = Debug|x64 + {DA956FD3-E142-46F2-9DD5-C78BEBB56B7A}.Release|Win32.ActiveCfg = Release|Win32 + {DA956FD3-E142-46F2-9DD5-C78BEBB56B7A}.Release|Win32.Build.0 = Release|Win32 + {DA956FD3-E142-46F2-9DD5-C78BEBB56B7A}.Release|x64.ActiveCfg = Release|x64 + {DA956FD3-E142-46F2-9DD5-C78BEBB56B7A}.Release|x64.Build.0 = Release|x64 + {26828762-C95D-4637-9CB1-7F0979523813}.Debug|Win32.ActiveCfg = Debug|Win32 + {26828762-C95D-4637-9CB1-7F0979523813}.Debug|Win32.Build.0 = Debug|Win32 + {26828762-C95D-4637-9CB1-7F0979523813}.Debug|x64.ActiveCfg = Debug|x64 + {26828762-C95D-4637-9CB1-7F0979523813}.Debug|x64.Build.0 = Debug|x64 + {26828762-C95D-4637-9CB1-7F0979523813}.Release|Win32.ActiveCfg = Release|Win32 + {26828762-C95D-4637-9CB1-7F0979523813}.Release|Win32.Build.0 = Release|Win32 + {26828762-C95D-4637-9CB1-7F0979523813}.Release|x64.ActiveCfg = Release|x64 + {26828762-C95D-4637-9CB1-7F0979523813}.Release|x64.Build.0 = Release|x64 + {AAAD1CB5-7ADA-47AE-85A0-08A6EC48FAFB}.Debug|Win32.ActiveCfg = Debug|Win32 + {AAAD1CB5-7ADA-47AE-85A0-08A6EC48FAFB}.Debug|Win32.Build.0 = Debug|Win32 + {AAAD1CB5-7ADA-47AE-85A0-08A6EC48FAFB}.Debug|x64.ActiveCfg = Debug|x64 + {AAAD1CB5-7ADA-47AE-85A0-08A6EC48FAFB}.Debug|x64.Build.0 = Debug|x64 + {AAAD1CB5-7ADA-47AE-85A0-08A6EC48FAFB}.Release|Win32.ActiveCfg = Release|Win32 + {AAAD1CB5-7ADA-47AE-85A0-08A6EC48FAFB}.Release|Win32.Build.0 = Release|Win32 + {AAAD1CB5-7ADA-47AE-85A0-08A6EC48FAFB}.Release|x64.ActiveCfg = Release|x64 + {AAAD1CB5-7ADA-47AE-85A0-08A6EC48FAFB}.Release|x64.Build.0 = Release|x64 + {66B32F7E-5716-48D0-B5B9-D832FD052DD5}.Debug|Win32.ActiveCfg = Debug|Win32 + {66B32F7E-5716-48D0-B5B9-D832FD052DD5}.Debug|Win32.Build.0 = Debug|Win32 + {66B32F7E-5716-48D0-B5B9-D832FD052DD5}.Debug|x64.ActiveCfg = Debug|x64 + {66B32F7E-5716-48D0-B5B9-D832FD052DD5}.Debug|x64.Build.0 = Debug|x64 + {66B32F7E-5716-48D0-B5B9-D832FD052DD5}.Release|Win32.ActiveCfg = Release|Win32 + {66B32F7E-5716-48D0-B5B9-D832FD052DD5}.Release|Win32.Build.0 = Release|Win32 + {66B32F7E-5716-48D0-B5B9-D832FD052DD5}.Release|x64.ActiveCfg = Release|x64 + {66B32F7E-5716-48D0-B5B9-D832FD052DD5}.Release|x64.Build.0 = Release|x64 + {9C7E8C03-3130-436D-A97E-E8F8ED1AC4EA}.Debug|Win32.ActiveCfg = Debug|Win32 + {9C7E8C03-3130-436D-A97E-E8F8ED1AC4EA}.Debug|Win32.Build.0 = Debug|Win32 + {9C7E8C03-3130-436D-A97E-E8F8ED1AC4EA}.Debug|x64.ActiveCfg = Debug|x64 + {9C7E8C03-3130-436D-A97E-E8F8ED1AC4EA}.Debug|x64.Build.0 = Debug|x64 + {9C7E8C03-3130-436D-A97E-E8F8ED1AC4EA}.Release|Win32.ActiveCfg = Release|Win32 + {9C7E8C03-3130-436D-A97E-E8F8ED1AC4EA}.Release|Win32.Build.0 = Release|Win32 + {9C7E8C03-3130-436D-A97E-E8F8ED1AC4EA}.Release|x64.ActiveCfg = Release|x64 + {9C7E8C03-3130-436D-A97E-E8F8ED1AC4EA}.Release|x64.Build.0 = Release|x64 + {8682FE1E-0CF6-4EDD-9BB5-1733D8C8B4DF}.Debug|Win32.ActiveCfg = Debug|Win32 + {8682FE1E-0CF6-4EDD-9BB5-1733D8C8B4DF}.Debug|Win32.Build.0 = Debug|Win32 + {8682FE1E-0CF6-4EDD-9BB5-1733D8C8B4DF}.Debug|x64.ActiveCfg = Debug|x64 + {8682FE1E-0CF6-4EDD-9BB5-1733D8C8B4DF}.Debug|x64.Build.0 = Debug|x64 + {8682FE1E-0CF6-4EDD-9BB5-1733D8C8B4DF}.Release|Win32.ActiveCfg = Release|Win32 + {8682FE1E-0CF6-4EDD-9BB5-1733D8C8B4DF}.Release|Win32.Build.0 = Release|Win32 + {8682FE1E-0CF6-4EDD-9BB5-1733D8C8B4DF}.Release|x64.ActiveCfg = Release|x64 + {8682FE1E-0CF6-4EDD-9BB5-1733D8C8B4DF}.Release|x64.Build.0 = Release|x64 + {CAE4F1D0-314F-4B10-805B-0EFD670133A0}.Debug|Win32.ActiveCfg = Debug|Win32 + {CAE4F1D0-314F-4B10-805B-0EFD670133A0}.Debug|Win32.Build.0 = Debug|Win32 + {CAE4F1D0-314F-4B10-805B-0EFD670133A0}.Debug|x64.ActiveCfg = Debug|x64 + {CAE4F1D0-314F-4B10-805B-0EFD670133A0}.Debug|x64.Build.0 = Debug|x64 + {CAE4F1D0-314F-4B10-805B-0EFD670133A0}.Release|Win32.ActiveCfg = Release|Win32 + {CAE4F1D0-314F-4B10-805B-0EFD670133A0}.Release|Win32.Build.0 = Release|Win32 + {CAE4F1D0-314F-4B10-805B-0EFD670133A0}.Release|x64.ActiveCfg = Release|x64 + {CAE4F1D0-314F-4B10-805B-0EFD670133A0}.Release|x64.Build.0 = Release|x64 + {79CEE57E-1BC3-4FF6-90B3-9E39763CDAFF}.Debug|Win32.ActiveCfg = Debug|Win32 + {79CEE57E-1BC3-4FF6-90B3-9E39763CDAFF}.Debug|Win32.Build.0 = Debug|Win32 + {79CEE57E-1BC3-4FF6-90B3-9E39763CDAFF}.Debug|x64.ActiveCfg = Debug|x64 + {79CEE57E-1BC3-4FF6-90B3-9E39763CDAFF}.Debug|x64.Build.0 = Debug|x64 + {79CEE57E-1BC3-4FF6-90B3-9E39763CDAFF}.Release|Win32.ActiveCfg = Release|Win32 + {79CEE57E-1BC3-4FF6-90B3-9E39763CDAFF}.Release|Win32.Build.0 = Release|Win32 + {79CEE57E-1BC3-4FF6-90B3-9E39763CDAFF}.Release|x64.ActiveCfg = Release|x64 + {79CEE57E-1BC3-4FF6-90B3-9E39763CDAFF}.Release|x64.Build.0 = Release|x64 + {8B5CFB38-CCBA-40A8-AD7A-89C57B070884}.Debug|Win32.ActiveCfg = Debug|Win32 + {8B5CFB38-CCBA-40A8-AD7A-89C57B070884}.Debug|Win32.Build.0 = Debug|Win32 + {8B5CFB38-CCBA-40A8-AD7A-89C57B070884}.Debug|x64.ActiveCfg = Debug|x64 + {8B5CFB38-CCBA-40A8-AD7A-89C57B070884}.Debug|x64.Build.0 = Debug|x64 + {8B5CFB38-CCBA-40A8-AD7A-89C57B070884}.Release|Win32.ActiveCfg = Release|Win32 + {8B5CFB38-CCBA-40A8-AD7A-89C57B070884}.Release|Win32.Build.0 = Release|Win32 + {8B5CFB38-CCBA-40A8-AD7A-89C57B070884}.Release|x64.ActiveCfg = Release|x64 + {8B5CFB38-CCBA-40A8-AD7A-89C57B070884}.Release|x64.Build.0 = Release|x64 + {55812185-D13C-4022-9C81-32E0F4A08304}.Debug|Win32.ActiveCfg = Debug|Win32 + {55812185-D13C-4022-9C81-32E0F4A08304}.Debug|Win32.Build.0 = Debug|Win32 + {55812185-D13C-4022-9C81-32E0F4A08304}.Debug|x64.ActiveCfg = Debug|x64 + {55812185-D13C-4022-9C81-32E0F4A08304}.Debug|x64.Build.0 = Debug|x64 + {55812185-D13C-4022-9C81-32E0F4A08304}.Release|Win32.ActiveCfg = Release|Win32 + {55812185-D13C-4022-9C81-32E0F4A08304}.Release|Win32.Build.0 = Release|Win32 + {55812185-D13C-4022-9C81-32E0F4A08304}.Release|x64.ActiveCfg = Release|x64 + {55812185-D13C-4022-9C81-32E0F4A08304}.Release|x64.Build.0 = Release|x64 + {B51E0D74-F0A2-45A2-BD2A-8B7D95B8204A}.Debug|Win32.ActiveCfg = Debug|Win32 + {B51E0D74-F0A2-45A2-BD2A-8B7D95B8204A}.Debug|Win32.Build.0 = Debug|Win32 + {B51E0D74-F0A2-45A2-BD2A-8B7D95B8204A}.Debug|x64.ActiveCfg = Debug|x64 + {B51E0D74-F0A2-45A2-BD2A-8B7D95B8204A}.Debug|x64.Build.0 = Debug|x64 + {B51E0D74-F0A2-45A2-BD2A-8B7D95B8204A}.Release|Win32.ActiveCfg = Release|Win32 + {B51E0D74-F0A2-45A2-BD2A-8B7D95B8204A}.Release|Win32.Build.0 = Release|Win32 + {B51E0D74-F0A2-45A2-BD2A-8B7D95B8204A}.Release|x64.ActiveCfg = Release|x64 + {B51E0D74-F0A2-45A2-BD2A-8B7D95B8204A}.Release|x64.Build.0 = Release|x64 + {26932B24-EFC6-4E3A-B277-ED653DA37968}.Debug|Win32.ActiveCfg = Debug|Win32 + {26932B24-EFC6-4E3A-B277-ED653DA37968}.Debug|Win32.Build.0 = Debug|Win32 + {26932B24-EFC6-4E3A-B277-ED653DA37968}.Debug|x64.ActiveCfg = Debug|x64 + {26932B24-EFC6-4E3A-B277-ED653DA37968}.Debug|x64.Build.0 = Debug|x64 + {26932B24-EFC6-4E3A-B277-ED653DA37968}.Release|Win32.ActiveCfg = Release|Win32 + {26932B24-EFC6-4E3A-B277-ED653DA37968}.Release|Win32.Build.0 = Release|Win32 + {26932B24-EFC6-4E3A-B277-ED653DA37968}.Release|x64.ActiveCfg = Release|x64 + {26932B24-EFC6-4E3A-B277-ED653DA37968}.Release|x64.Build.0 = Release|x64 + {C4E04D18-EF76-4B42-B4C2-16A1BACDC0A3}.Debug|Win32.ActiveCfg = Debug|Win32 + {C4E04D18-EF76-4B42-B4C2-16A1BACDC0A3}.Debug|Win32.Build.0 = Debug|Win32 + {C4E04D18-EF76-4B42-B4C2-16A1BACDC0A3}.Debug|x64.ActiveCfg = Debug|x64 + {C4E04D18-EF76-4B42-B4C2-16A1BACDC0A3}.Debug|x64.Build.0 = Debug|x64 + {C4E04D18-EF76-4B42-B4C2-16A1BACDC0A3}.Release|Win32.ActiveCfg = Release|Win32 + {C4E04D18-EF76-4B42-B4C2-16A1BACDC0A3}.Release|Win32.Build.0 = Release|Win32 + {C4E04D18-EF76-4B42-B4C2-16A1BACDC0A3}.Release|x64.ActiveCfg = Release|x64 + {C4E04D18-EF76-4B42-B4C2-16A1BACDC0A3}.Release|x64.Build.0 = Release|x64 + {2D17C1EB-1157-460E-9A99-A82BFC1F9D1E}.Debug|Win32.ActiveCfg = Debug|Win32 + {2D17C1EB-1157-460E-9A99-A82BFC1F9D1E}.Debug|Win32.Build.0 = Debug|Win32 + {2D17C1EB-1157-460E-9A99-A82BFC1F9D1E}.Debug|x64.ActiveCfg = Debug|x64 + {2D17C1EB-1157-460E-9A99-A82BFC1F9D1E}.Debug|x64.Build.0 = Debug|x64 + {2D17C1EB-1157-460E-9A99-A82BFC1F9D1E}.Release|Win32.ActiveCfg = Release|Win32 + {2D17C1EB-1157-460E-9A99-A82BFC1F9D1E}.Release|Win32.Build.0 = Release|Win32 + {2D17C1EB-1157-460E-9A99-A82BFC1F9D1E}.Release|x64.ActiveCfg = Release|x64 + {2D17C1EB-1157-460E-9A99-A82BFC1F9D1E}.Release|x64.Build.0 = Release|x64 + {BFF40245-E9A6-4297-A425-A554E5D767E8}.Debug|Win32.ActiveCfg = Debug|Win32 + {BFF40245-E9A6-4297-A425-A554E5D767E8}.Debug|Win32.Build.0 = Debug|Win32 + {BFF40245-E9A6-4297-A425-A554E5D767E8}.Debug|x64.ActiveCfg = Debug|x64 + {BFF40245-E9A6-4297-A425-A554E5D767E8}.Debug|x64.Build.0 = Debug|x64 + {BFF40245-E9A6-4297-A425-A554E5D767E8}.Release|Win32.ActiveCfg = Release|Win32 + {BFF40245-E9A6-4297-A425-A554E5D767E8}.Release|Win32.Build.0 = Release|Win32 + {BFF40245-E9A6-4297-A425-A554E5D767E8}.Release|x64.ActiveCfg = Release|x64 + {BFF40245-E9A6-4297-A425-A554E5D767E8}.Release|x64.Build.0 = Release|x64 + {5D0930C0-7C91-4ECE-9014-7B7DDE9502E6}.Debug|Win32.ActiveCfg = Debug|Win32 + {5D0930C0-7C91-4ECE-9014-7B7DDE9502E6}.Debug|Win32.Build.0 = Debug|Win32 + {5D0930C0-7C91-4ECE-9014-7B7DDE9502E6}.Debug|x64.ActiveCfg = Debug|x64 + {5D0930C0-7C91-4ECE-9014-7B7DDE9502E6}.Debug|x64.Build.0 = Debug|x64 + {5D0930C0-7C91-4ECE-9014-7B7DDE9502E6}.Release|Win32.ActiveCfg = Release|Win32 + {5D0930C0-7C91-4ECE-9014-7B7DDE9502E6}.Release|Win32.Build.0 = Release|Win32 + {5D0930C0-7C91-4ECE-9014-7B7DDE9502E6}.Release|x64.ActiveCfg = Release|x64 + {5D0930C0-7C91-4ECE-9014-7B7DDE9502E6}.Release|x64.Build.0 = Release|x64 + {31A3E4E1-AAE9-4EF3-9B23-18D0924BE4D2}.Debug|Win32.ActiveCfg = Debug|Win32 + {31A3E4E1-AAE9-4EF3-9B23-18D0924BE4D2}.Debug|Win32.Build.0 = Debug|Win32 + {31A3E4E1-AAE9-4EF3-9B23-18D0924BE4D2}.Debug|x64.ActiveCfg = Debug|x64 + {31A3E4E1-AAE9-4EF3-9B23-18D0924BE4D2}.Debug|x64.Build.0 = Debug|x64 + {31A3E4E1-AAE9-4EF3-9B23-18D0924BE4D2}.Release|Win32.ActiveCfg = Release|Win32 + {31A3E4E1-AAE9-4EF3-9B23-18D0924BE4D2}.Release|Win32.Build.0 = Release|Win32 + {31A3E4E1-AAE9-4EF3-9B23-18D0924BE4D2}.Release|x64.ActiveCfg = Release|x64 + {31A3E4E1-AAE9-4EF3-9B23-18D0924BE4D2}.Release|x64.Build.0 = Release|x64 + {40FB7794-D3C3-4CFE-BCF4-A80C96635682}.Debug|Win32.ActiveCfg = Debug|Win32 + {40FB7794-D3C3-4CFE-BCF4-A80C96635682}.Debug|Win32.Build.0 = Debug|Win32 + {40FB7794-D3C3-4CFE-BCF4-A80C96635682}.Debug|x64.ActiveCfg = Debug|x64 + {40FB7794-D3C3-4CFE-BCF4-A80C96635682}.Debug|x64.Build.0 = Debug|x64 + {40FB7794-D3C3-4CFE-BCF4-A80C96635682}.Release|Win32.ActiveCfg = Release|Win32 + {40FB7794-D3C3-4CFE-BCF4-A80C96635682}.Release|Win32.Build.0 = Release|Win32 + {40FB7794-D3C3-4CFE-BCF4-A80C96635682}.Release|x64.ActiveCfg = Release|x64 + {40FB7794-D3C3-4CFE-BCF4-A80C96635682}.Release|x64.Build.0 = Release|x64 + {DA956FD3-E143-46F2-9FE5-C77BEBC56B1A}.Debug|Win32.ActiveCfg = Debug|Win32 + {DA956FD3-E143-46F2-9FE5-C77BEBC56B1A}.Debug|Win32.Build.0 = Debug|Win32 + {DA956FD3-E143-46F2-9FE5-C77BEBC56B1A}.Debug|x64.ActiveCfg = Debug|x64 + {DA956FD3-E143-46F2-9FE5-C77BEBC56B1A}.Debug|x64.Build.0 = Debug|x64 + {DA956FD3-E143-46F2-9FE5-C77BEBC56B1A}.Release|Win32.ActiveCfg = Release|Win32 + {DA956FD3-E143-46F2-9FE5-C77BEBC56B1A}.Release|Win32.Build.0 = Release|Win32 + {DA956FD3-E143-46F2-9FE5-C77BEBC56B1A}.Release|x64.ActiveCfg = Release|x64 + {DA956FD3-E143-46F2-9FE5-C77BEBC56B1A}.Release|x64.Build.0 = Release|x64 + {55812185-D13C-4022-9C81-32E0F4A08305}.Debug|Win32.ActiveCfg = Debug|Win32 + {55812185-D13C-4022-9C81-32E0F4A08305}.Debug|Win32.Build.0 = Debug|Win32 + {55812185-D13C-4022-9C81-32E0F4A08305}.Debug|x64.ActiveCfg = Debug|x64 + {55812185-D13C-4022-9C81-32E0F4A08305}.Debug|x64.Build.0 = Debug|x64 + {55812185-D13C-4022-9C81-32E0F4A08305}.Release|Win32.ActiveCfg = Release|Win32 + {55812185-D13C-4022-9C81-32E0F4A08305}.Release|Win32.Build.0 = Release|Win32 + {55812185-D13C-4022-9C81-32E0F4A08305}.Release|x64.ActiveCfg = Release|x64 + {55812185-D13C-4022-9C81-32E0F4A08305}.Release|x64.Build.0 = Release|x64 + {E9558DFE-1961-4DD4-B09B-DD0EEFD5C315}.Debug|Win32.ActiveCfg = Debug|Win32 + {E9558DFE-1961-4DD4-B09B-DD0EEFD5C315}.Debug|Win32.Build.0 = Debug|Win32 + {E9558DFE-1961-4DD4-B09B-DD0EEFD5C315}.Debug|x64.ActiveCfg = Debug|x64 + {E9558DFE-1961-4DD4-B09B-DD0EEFD5C315}.Debug|x64.Build.0 = Debug|x64 + {E9558DFE-1961-4DD4-B09B-DD0EEFD5C315}.Release|Win32.ActiveCfg = Release|Win32 + {E9558DFE-1961-4DD4-B09B-DD0EEFD5C315}.Release|Win32.Build.0 = Release|Win32 + {E9558DFE-1961-4DD4-B09B-DD0EEFD5C315}.Release|x64.ActiveCfg = Release|x64 + {E9558DFE-1961-4DD4-B09B-DD0EEFD5C315}.Release|x64.Build.0 = Release|x64 + {55812185-D13C-4022-9C81-32E0F4A08306}.Debug|Win32.ActiveCfg = Debug|Win32 + {55812185-D13C-4022-9C81-32E0F4A08306}.Debug|Win32.Build.0 = Debug|Win32 + {55812185-D13C-4022-9C81-32E0F4A08306}.Debug|x64.ActiveCfg = Debug|x64 + {55812185-D13C-4022-9C81-32E0F4A08306}.Debug|x64.Build.0 = Debug|x64 + {55812185-D13C-4022-9C81-32E0F4A08306}.Release|Win32.ActiveCfg = Release|Win32 + {55812185-D13C-4022-9C81-32E0F4A08306}.Release|Win32.Build.0 = Release|Win32 + {55812185-D13C-4022-9C81-32E0F4A08306}.Release|x64.ActiveCfg = Release|x64 + {55812185-D13C-4022-9C81-32E0F4A08306}.Release|x64.Build.0 = Release|x64 + EndGlobalSection + GlobalSection(SolutionProperties) = preSolution + HideSolutionNode = FALSE + EndGlobalSection + GlobalSection(NestedProjects) = preSolution + {26828762-C95D-4637-9CB1-7F0979523813} = {D69D5741-611F-4E14-8541-1FEE94F50B5A} + {AAAD1CB5-7ADA-47AE-85A0-08A6EC48FAFB} = {D69D5741-611F-4E14-8541-1FEE94F50B5A} + {66B32F7E-5716-48D0-B5B9-D832FD052DD5} = {D69D5741-611F-4E14-8541-1FEE94F50B5A} + {9C7E8C03-3130-436D-A97E-E8F8ED1AC4EA} = {D69D5741-611F-4E14-8541-1FEE94F50B5A} + {8682FE1E-0CF6-4EDD-9BB5-1733D8C8B4DF} = {D69D5741-611F-4E14-8541-1FEE94F50B5A} + {CAE4F1D0-314F-4B10-805B-0EFD670133A0} = {D69D5741-611F-4E14-8541-1FEE94F50B5A} + {79CEE57E-1BC3-4FF6-90B3-9E39763CDAFF} = {D69D5741-611F-4E14-8541-1FEE94F50B5A} + {8B5CFB38-CCBA-40A8-AD7A-89C57B070884} = {D69D5741-611F-4E14-8541-1FEE94F50B5A} + {55812185-D13C-4022-9C81-32E0F4A08304} = {D69D5741-611F-4E14-8541-1FEE94F50B5A} + {B51E0D74-F0A2-45A2-BD2A-8B7D95B8204A} = {D69D5741-611F-4E14-8541-1FEE94F50B5A} + {26932B24-EFC6-4E3A-B277-ED653DA37968} = {D69D5741-611F-4E14-8541-1FEE94F50B5A} + {C4E04D18-EF76-4B42-B4C2-16A1BACDC0A3} = {D69D5741-611F-4E14-8541-1FEE94F50B5A} + {2D17C1EB-1157-460E-9A99-A82BFC1F9D1E} = {D69D5741-611F-4E14-8541-1FEE94F50B5A} + {BFF40245-E9A6-4297-A425-A554E5D767E8} = {D69D5741-611F-4E14-8541-1FEE94F50B5A} + {5D0930C0-7C91-4ECE-9014-7B7DDE9502E6} = {D69D5741-611F-4E14-8541-1FEE94F50B5A} + {31A3E4E1-AAE9-4EF3-9B23-18D0924BE4D2} = {D69D5741-611F-4E14-8541-1FEE94F50B5A} + {40FB7794-D3C3-4CFE-BCF4-A80C96635682} = {D69D5741-611F-4E14-8541-1FEE94F50B5A} + {55812185-D13C-4022-9C81-32E0F4A08305} = {D69D5741-611F-4E14-8541-1FEE94F50B5A} + {E9558DFE-1961-4DD4-B09B-DD0EEFD5C315} = {D69D5741-611F-4E14-8541-1FEE94F50B5A} + {55812185-D13C-4022-9C81-32E0F4A08306} = {D69D5741-611F-4E14-8541-1FEE94F50B5A} + EndGlobalSection +EndGlobal diff --git a/VisualC/SDL/SDL.vcxproj b/VisualC/SDL/SDL.vcxproj new file mode 100644 index 000000000..399551438 --- /dev/null +++ b/VisualC/SDL/SDL.vcxproj @@ -0,0 +1,511 @@ + + + + + Debug + Win32 + + + Debug + x64 + + + Release + Win32 + + + Release + x64 + + + + SDL2 + {81CE8DAF-EBB2-4761-8E45-B71ABCCA8C68} + SDL + + + + DynamicLibrary + + + DynamicLibrary + + + DynamicLibrary + + + DynamicLibrary + + + + + + + + + + + + + + + + + + + + + + + <_ProjectFileVersion>10.0.40219.1 + $(SolutionDir)$(Platform)\$(Configuration)\ + $(Platform)\$(Configuration)\ + $(SolutionDir)$(Platform)\$(Configuration)\ + $(Platform)\$(Configuration)\ + $(SolutionDir)$(Platform)\$(Configuration)\ + $(Platform)\$(Configuration)\ + $(SolutionDir)$(Platform)\$(Configuration)\ + $(Platform)\$(Configuration)\ + AllRules.ruleset + + + AllRules.ruleset + + + AllRules.ruleset + + + AllRules.ruleset + + + + + + + + + + _DEBUG;%(PreprocessorDefinitions) + true + true + Win32 + .\Debug/SDL.tlb + + + Disabled + $(SolutionDir)/../include;%(AdditionalIncludeDirectories) + %(AdditionalUsingDirectories) + _DEBUG;_WINDOWS;%(PreprocessorDefinitions) + MultiThreadedDLL + false + StreamingSIMDExtensions + Level3 + OldStyle + true + OnlyExplicitInline + + + _DEBUG;%(PreprocessorDefinitions) + + + winmm.lib;imm32.lib;version.lib;%(AdditionalDependencies) + true + true + Windows + + + + + _DEBUG;%(PreprocessorDefinitions) + true + true + X64 + .\Debug/SDL.tlb + + + Disabled + $(SolutionDir)/../include;%(AdditionalIncludeDirectories) + %(AdditionalUsingDirectories) + _DEBUG;_WINDOWS;%(PreprocessorDefinitions) + MultiThreadedDLL + false + StreamingSIMDExtensions + Level3 + OldStyle + true + OnlyExplicitInline + + + _DEBUG;%(PreprocessorDefinitions) + + + winmm.lib;imm32.lib;version.lib;%(AdditionalDependencies) + true + true + Windows + + + + + + + + + NDEBUG;%(PreprocessorDefinitions) + true + true + Win32 + .\Release/SDL.tlb + + + $(SolutionDir)/../include;%(AdditionalIncludeDirectories) + %(AdditionalUsingDirectories) + NDEBUG;_WINDOWS;%(PreprocessorDefinitions) + MultiThreadedDLL + false + StreamingSIMDExtensions + Level3 + ProgramDatabase + true + OnlyExplicitInline + + + NDEBUG;%(PreprocessorDefinitions) + + + winmm.lib;imm32.lib;version.lib;%(AdditionalDependencies) + true + false + Windows + true + true + + + + + NDEBUG;%(PreprocessorDefinitions) + true + true + X64 + .\Release/SDL.tlb + + + $(SolutionDir)/../include;%(AdditionalIncludeDirectories) + %(AdditionalUsingDirectories) + NDEBUG;_WINDOWS;%(PreprocessorDefinitions) + MultiThreadedDLL + false + StreamingSIMDExtensions + Level3 + ProgramDatabase + true + OnlyExplicitInline + + + NDEBUG;%(PreprocessorDefinitions) + + + winmm.lib;imm32.lib;version.lib;%(AdditionalDependencies) + true + false + Windows + true + true + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/VisualC/SDL/SDL.vcxproj.filters b/VisualC/SDL/SDL.vcxproj.filters new file mode 100644 index 000000000..a2ba2cb5c --- /dev/null +++ b/VisualC/SDL/SDL.vcxproj.filters @@ -0,0 +1,444 @@ + + + + + {395b3af0-33d0-411b-b153-de1676bf1ef8} + + + + + API Headers + + + API Headers + + + API Headers + + + API Headers + + + API Headers + + + API Headers + + + API Headers + + + API Headers + + + API Headers + + + API Headers + + + API Headers + + + API Headers + + + API Headers + + + API Headers + + + API Headers + + + API Headers + + + API Headers + + + API Headers + + + API Headers + + + API Headers + + + API Headers + + + API Headers + + + API Headers + + + API Headers + + + API Headers + + + API Headers + + + API Headers + + + API Headers + + + API Headers + + + API Headers + + + API Headers + + + API Headers + + + API Headers + + + API Headers + + + API Headers + + + API Headers + + + API Headers + + + API Headers + + + API Headers + + + API Headers + + + API Headers + + + API Headers + + + API Headers + + + API Headers + + + API Headers + + + API Headers + + + API Headers + + + API Headers + + + API Headers + + + API Headers + + + API Headers + + + API Headers + + + API Headers + + + API Headers + + + API Headers + + + API Headers + + + API Headers + + + API Headers + + + API Headers + + + API Headers + + + API Headers + + + API Headers + + + API Headers + + + API Headers + + + API Headers + + + API Headers + + + API Headers + + + API Headers + + + API Headers + + + API Headers + + + API Headers + + + API Headers + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/VisualC/SDL/SDL_VS2008.vcproj b/VisualC/SDL/SDL_VS2008.vcproj new file mode 100644 index 000000000..3d3d39969 --- /dev/null +++ b/VisualC/SDL/SDL_VS2008.vcproj @@ -0,0 +1,1509 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/VisualC/SDL_VS2008.sln b/VisualC/SDL_VS2008.sln new file mode 100644 index 000000000..5398bfb22 --- /dev/null +++ b/VisualC/SDL_VS2008.sln @@ -0,0 +1,269 @@ +Microsoft Visual Studio Solution File, Format Version 10.00 +# Visual Studio 2008 +Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "SDL2", "SDL\SDL_VS2008.vcproj", "{81CE8DAF-EBB2-4761-8E45-B71ABCCA8C68}" +EndProject +Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "SDL2main", "SDLmain\SDLmain_VS2008.vcproj", "{DA956FD3-E142-46F2-9DD5-C78BEBB56B7A}" +EndProject +Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "checkkeys", "tests\checkkeys\checkkeys_VS2008.vcproj", "{26828762-C95D-4637-9CB1-7F0979523813}" +EndProject +Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "loopwave", "tests\loopwave\loopwave_VS2008.vcproj", "{AAAD1CB5-7ADA-47AE-85A0-08A6EC48FAFB}" +EndProject +Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "testatomic", "tests\testatomic\testatomic_VS2008.vcproj", "{66B32F7E-5716-48D0-B5B9-D832FD052DD5}" +EndProject +Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "testautomation", "tests\testautomation\testautomation_VS2008.vcproj", "{9C7E8C03-3130-436D-A97E-E8F8ED1AC4EA}" +EndProject +Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "testdraw2", "tests\testdraw2\testdraw2_VS2008.vcproj", "{8682FE1E-0CF6-4EDD-9BB5-1733D8C8B4DF}" +EndProject +Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "testfile", "tests\testfile\testfile_VS2008.vcproj", "{CAE4F1D0-314F-4B10-805B-0EFD670133A0}" +EndProject +Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "testgesture", "tests\testgesture\testgesture_VS2008.vcproj", "{79CEE57E-1BC3-4FF6-90B3-9E39763CDAFF}" +EndProject +Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "testgl2", "tests\testgl2\testgl2_VS2008.vcproj", "{8B5CFB38-CCBA-40A8-AD7A-89C57B070884}" +EndProject +Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "testjoystick", "tests\testjoystick\testjoystick_VS2008.vcproj", "{55812185-D13C-4022-9C81-32E0F4A08304}" +EndProject +Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "testoverlay2", "tests\testoverlay2\testoverlay2_VS2008.vcproj", "{B51E0D74-F0A2-45A2-BD2A-8B7D95B8204A}" +EndProject +Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "testplatform", "tests\testplatform\testplatform_VS2008.vcproj", "{26932B24-EFC6-4E3A-B277-ED653DA37968}" +EndProject +Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "testpower", "tests\testpower\testpower_VS2008.vcproj", "{C4E04D18-EF76-4B42-B4C2-16A1BACDC0A3}" +EndProject +Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "testrendertarget", "tests\testrendertarget\testrendertarget_VS2008.vcproj", "{2D17C1EB-1157-460E-9A99-A82BFC1F9D1E}" +EndProject +Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "testrumble", "tests\testrumble\testrumble_VS2008.vcproj", "{BFF40245-E9A6-4297-A425-A554E5D767E8}" +EndProject +Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "testscale", "tests\testscale\testscale_VS2008.vcproj", "{5D0930C0-7C91-4ECE-9014-7B7DDE9502E6}" +EndProject +Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "testshape", "tests\testshape\testshape_VS2008.vcproj", "{31A3E4E1-AAE9-4EF3-9B23-18D0924BE4D2}" +EndProject +Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "testsprite2", "tests\testsprite2\testsprite2_VS2008.vcproj", "{40FB7794-D3C3-4CFE-BCF4-A80C96635682}" +EndProject +Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "SDL2test", "SDLtest\SDLtest_VS2008.vcproj", "{DA956FD3-E143-46F2-9FE5-C77BEBC56B1A}" +EndProject +Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "testgamecontroller", "tests\testgamecontroller\testgamecontroller_VS2008.vcproj", "{55812185-D13C-4022-9C81-32E0F4A08305}" +EndProject +Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "testgles2", "tests\testgles2\testgles2_VS2008.vcproj", "{E9558DFE-1961-4DD4-B09B-DD0EEFD5C315}" +EndProject +Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "controllermap", "tests\controllermap\controllermap_VS2008.vcproj", "{55812185-D13C-4022-9C81-32E0F4A08306}" +EndProject +Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "tests", "tests", "{D69D5741-611F-4E14-8541-1FEE94F50B5A}" +EndProject +Global + GlobalSection(SolutionConfigurationPlatforms) = preSolution + Debug|Win32 = Debug|Win32 + Debug|x64 = Debug|x64 + Release|Win32 = Release|Win32 + Release|x64 = Release|x64 + EndGlobalSection + GlobalSection(ProjectConfigurationPlatforms) = postSolution + {81CE8DAF-EBB2-4761-8E45-B71ABCCA8C68}.Debug|Win32.ActiveCfg = Debug|Win32 + {81CE8DAF-EBB2-4761-8E45-B71ABCCA8C68}.Debug|Win32.Build.0 = Debug|Win32 + {81CE8DAF-EBB2-4761-8E45-B71ABCCA8C68}.Debug|x64.ActiveCfg = Debug|x64 + {81CE8DAF-EBB2-4761-8E45-B71ABCCA8C68}.Debug|x64.Build.0 = Debug|x64 + {81CE8DAF-EBB2-4761-8E45-B71ABCCA8C68}.Release|Win32.ActiveCfg = Release|Win32 + {81CE8DAF-EBB2-4761-8E45-B71ABCCA8C68}.Release|Win32.Build.0 = Release|Win32 + {81CE8DAF-EBB2-4761-8E45-B71ABCCA8C68}.Release|x64.ActiveCfg = Release|x64 + {81CE8DAF-EBB2-4761-8E45-B71ABCCA8C68}.Release|x64.Build.0 = Release|x64 + {DA956FD3-E142-46F2-9DD5-C78BEBB56B7A}.Debug|Win32.ActiveCfg = Debug|Win32 + {DA956FD3-E142-46F2-9DD5-C78BEBB56B7A}.Debug|Win32.Build.0 = Debug|Win32 + {DA956FD3-E142-46F2-9DD5-C78BEBB56B7A}.Debug|x64.ActiveCfg = Debug|x64 + {DA956FD3-E142-46F2-9DD5-C78BEBB56B7A}.Debug|x64.Build.0 = Debug|x64 + {DA956FD3-E142-46F2-9DD5-C78BEBB56B7A}.Release|Win32.ActiveCfg = Release|Win32 + {DA956FD3-E142-46F2-9DD5-C78BEBB56B7A}.Release|Win32.Build.0 = Release|Win32 + {DA956FD3-E142-46F2-9DD5-C78BEBB56B7A}.Release|x64.ActiveCfg = Release|x64 + {DA956FD3-E142-46F2-9DD5-C78BEBB56B7A}.Release|x64.Build.0 = Release|x64 + {26828762-C95D-4637-9CB1-7F0979523813}.Debug|Win32.ActiveCfg = Debug|Win32 + {26828762-C95D-4637-9CB1-7F0979523813}.Debug|Win32.Build.0 = Debug|Win32 + {26828762-C95D-4637-9CB1-7F0979523813}.Debug|x64.ActiveCfg = Debug|x64 + {26828762-C95D-4637-9CB1-7F0979523813}.Debug|x64.Build.0 = Debug|x64 + {26828762-C95D-4637-9CB1-7F0979523813}.Release|Win32.ActiveCfg = Release|Win32 + {26828762-C95D-4637-9CB1-7F0979523813}.Release|Win32.Build.0 = Release|Win32 + {26828762-C95D-4637-9CB1-7F0979523813}.Release|x64.ActiveCfg = Release|x64 + {26828762-C95D-4637-9CB1-7F0979523813}.Release|x64.Build.0 = Release|x64 + {AAAD1CB5-7ADA-47AE-85A0-08A6EC48FAFB}.Debug|Win32.ActiveCfg = Debug|Win32 + {AAAD1CB5-7ADA-47AE-85A0-08A6EC48FAFB}.Debug|Win32.Build.0 = Debug|Win32 + {AAAD1CB5-7ADA-47AE-85A0-08A6EC48FAFB}.Debug|x64.ActiveCfg = Debug|x64 + {AAAD1CB5-7ADA-47AE-85A0-08A6EC48FAFB}.Debug|x64.Build.0 = Debug|x64 + {AAAD1CB5-7ADA-47AE-85A0-08A6EC48FAFB}.Release|Win32.ActiveCfg = Release|Win32 + {AAAD1CB5-7ADA-47AE-85A0-08A6EC48FAFB}.Release|Win32.Build.0 = Release|Win32 + {AAAD1CB5-7ADA-47AE-85A0-08A6EC48FAFB}.Release|x64.ActiveCfg = Release|x64 + {AAAD1CB5-7ADA-47AE-85A0-08A6EC48FAFB}.Release|x64.Build.0 = Release|x64 + {66B32F7E-5716-48D0-B5B9-D832FD052DD5}.Debug|Win32.ActiveCfg = Debug|Win32 + {66B32F7E-5716-48D0-B5B9-D832FD052DD5}.Debug|Win32.Build.0 = Debug|Win32 + {66B32F7E-5716-48D0-B5B9-D832FD052DD5}.Debug|x64.ActiveCfg = Debug|x64 + {66B32F7E-5716-48D0-B5B9-D832FD052DD5}.Debug|x64.Build.0 = Debug|x64 + {66B32F7E-5716-48D0-B5B9-D832FD052DD5}.Release|Win32.ActiveCfg = Release|Win32 + {66B32F7E-5716-48D0-B5B9-D832FD052DD5}.Release|Win32.Build.0 = Release|Win32 + {66B32F7E-5716-48D0-B5B9-D832FD052DD5}.Release|x64.ActiveCfg = Release|x64 + {66B32F7E-5716-48D0-B5B9-D832FD052DD5}.Release|x64.Build.0 = Release|x64 + {9C7E8C03-3130-436D-A97E-E8F8ED1AC4EA}.Debug|Win32.ActiveCfg = Debug|Win32 + {9C7E8C03-3130-436D-A97E-E8F8ED1AC4EA}.Debug|Win32.Build.0 = Debug|Win32 + {9C7E8C03-3130-436D-A97E-E8F8ED1AC4EA}.Debug|x64.ActiveCfg = Debug|x64 + {9C7E8C03-3130-436D-A97E-E8F8ED1AC4EA}.Debug|x64.Build.0 = Debug|x64 + {9C7E8C03-3130-436D-A97E-E8F8ED1AC4EA}.Release|Win32.ActiveCfg = Release|Win32 + {9C7E8C03-3130-436D-A97E-E8F8ED1AC4EA}.Release|Win32.Build.0 = Release|Win32 + {9C7E8C03-3130-436D-A97E-E8F8ED1AC4EA}.Release|x64.ActiveCfg = Release|x64 + {9C7E8C03-3130-436D-A97E-E8F8ED1AC4EA}.Release|x64.Build.0 = Release|x64 + {8682FE1E-0CF6-4EDD-9BB5-1733D8C8B4DF}.Debug|Win32.ActiveCfg = Debug|Win32 + {8682FE1E-0CF6-4EDD-9BB5-1733D8C8B4DF}.Debug|Win32.Build.0 = Debug|Win32 + {8682FE1E-0CF6-4EDD-9BB5-1733D8C8B4DF}.Debug|x64.ActiveCfg = Debug|x64 + {8682FE1E-0CF6-4EDD-9BB5-1733D8C8B4DF}.Debug|x64.Build.0 = Debug|x64 + {8682FE1E-0CF6-4EDD-9BB5-1733D8C8B4DF}.Release|Win32.ActiveCfg = Release|Win32 + {8682FE1E-0CF6-4EDD-9BB5-1733D8C8B4DF}.Release|Win32.Build.0 = Release|Win32 + {8682FE1E-0CF6-4EDD-9BB5-1733D8C8B4DF}.Release|x64.ActiveCfg = Release|x64 + {8682FE1E-0CF6-4EDD-9BB5-1733D8C8B4DF}.Release|x64.Build.0 = Release|x64 + {CAE4F1D0-314F-4B10-805B-0EFD670133A0}.Debug|Win32.ActiveCfg = Debug|Win32 + {CAE4F1D0-314F-4B10-805B-0EFD670133A0}.Debug|Win32.Build.0 = Debug|Win32 + {CAE4F1D0-314F-4B10-805B-0EFD670133A0}.Debug|x64.ActiveCfg = Debug|x64 + {CAE4F1D0-314F-4B10-805B-0EFD670133A0}.Debug|x64.Build.0 = Debug|x64 + {CAE4F1D0-314F-4B10-805B-0EFD670133A0}.Release|Win32.ActiveCfg = Release|Win32 + {CAE4F1D0-314F-4B10-805B-0EFD670133A0}.Release|Win32.Build.0 = Release|Win32 + {CAE4F1D0-314F-4B10-805B-0EFD670133A0}.Release|x64.ActiveCfg = Release|x64 + {CAE4F1D0-314F-4B10-805B-0EFD670133A0}.Release|x64.Build.0 = Release|x64 + {79CEE57E-1BC3-4FF6-90B3-9E39763CDAFF}.Debug|Win32.ActiveCfg = Debug|Win32 + {79CEE57E-1BC3-4FF6-90B3-9E39763CDAFF}.Debug|Win32.Build.0 = Debug|Win32 + {79CEE57E-1BC3-4FF6-90B3-9E39763CDAFF}.Debug|x64.ActiveCfg = Debug|x64 + {79CEE57E-1BC3-4FF6-90B3-9E39763CDAFF}.Debug|x64.Build.0 = Debug|x64 + {79CEE57E-1BC3-4FF6-90B3-9E39763CDAFF}.Release|Win32.ActiveCfg = Release|Win32 + {79CEE57E-1BC3-4FF6-90B3-9E39763CDAFF}.Release|Win32.Build.0 = Release|Win32 + {79CEE57E-1BC3-4FF6-90B3-9E39763CDAFF}.Release|x64.ActiveCfg = Release|x64 + {79CEE57E-1BC3-4FF6-90B3-9E39763CDAFF}.Release|x64.Build.0 = Release|x64 + {8B5CFB38-CCBA-40A8-AD7A-89C57B070884}.Debug|Win32.ActiveCfg = Debug|Win32 + {8B5CFB38-CCBA-40A8-AD7A-89C57B070884}.Debug|Win32.Build.0 = Debug|Win32 + {8B5CFB38-CCBA-40A8-AD7A-89C57B070884}.Debug|x64.ActiveCfg = Debug|x64 + {8B5CFB38-CCBA-40A8-AD7A-89C57B070884}.Debug|x64.Build.0 = Debug|x64 + {8B5CFB38-CCBA-40A8-AD7A-89C57B070884}.Release|Win32.ActiveCfg = Release|Win32 + {8B5CFB38-CCBA-40A8-AD7A-89C57B070884}.Release|Win32.Build.0 = Release|Win32 + {8B5CFB38-CCBA-40A8-AD7A-89C57B070884}.Release|x64.ActiveCfg = Release|x64 + {8B5CFB38-CCBA-40A8-AD7A-89C57B070884}.Release|x64.Build.0 = Release|x64 + {55812185-D13C-4022-9C81-32E0F4A08304}.Debug|Win32.ActiveCfg = Debug|Win32 + {55812185-D13C-4022-9C81-32E0F4A08304}.Debug|Win32.Build.0 = Debug|Win32 + {55812185-D13C-4022-9C81-32E0F4A08304}.Debug|x64.ActiveCfg = Debug|x64 + {55812185-D13C-4022-9C81-32E0F4A08304}.Debug|x64.Build.0 = Debug|x64 + {55812185-D13C-4022-9C81-32E0F4A08304}.Release|Win32.ActiveCfg = Release|Win32 + {55812185-D13C-4022-9C81-32E0F4A08304}.Release|Win32.Build.0 = Release|Win32 + {55812185-D13C-4022-9C81-32E0F4A08304}.Release|x64.ActiveCfg = Release|x64 + {55812185-D13C-4022-9C81-32E0F4A08304}.Release|x64.Build.0 = Release|x64 + {B51E0D74-F0A2-45A2-BD2A-8B7D95B8204A}.Debug|Win32.ActiveCfg = Debug|Win32 + {B51E0D74-F0A2-45A2-BD2A-8B7D95B8204A}.Debug|Win32.Build.0 = Debug|Win32 + {B51E0D74-F0A2-45A2-BD2A-8B7D95B8204A}.Debug|x64.ActiveCfg = Debug|x64 + {B51E0D74-F0A2-45A2-BD2A-8B7D95B8204A}.Debug|x64.Build.0 = Debug|x64 + {B51E0D74-F0A2-45A2-BD2A-8B7D95B8204A}.Release|Win32.ActiveCfg = Release|Win32 + {B51E0D74-F0A2-45A2-BD2A-8B7D95B8204A}.Release|Win32.Build.0 = Release|Win32 + {B51E0D74-F0A2-45A2-BD2A-8B7D95B8204A}.Release|x64.ActiveCfg = Release|x64 + {B51E0D74-F0A2-45A2-BD2A-8B7D95B8204A}.Release|x64.Build.0 = Release|x64 + {26932B24-EFC6-4E3A-B277-ED653DA37968}.Debug|Win32.ActiveCfg = Debug|Win32 + {26932B24-EFC6-4E3A-B277-ED653DA37968}.Debug|Win32.Build.0 = Debug|Win32 + {26932B24-EFC6-4E3A-B277-ED653DA37968}.Debug|x64.ActiveCfg = Debug|x64 + {26932B24-EFC6-4E3A-B277-ED653DA37968}.Debug|x64.Build.0 = Debug|x64 + {26932B24-EFC6-4E3A-B277-ED653DA37968}.Release|Win32.ActiveCfg = Release|Win32 + {26932B24-EFC6-4E3A-B277-ED653DA37968}.Release|Win32.Build.0 = Release|Win32 + {26932B24-EFC6-4E3A-B277-ED653DA37968}.Release|x64.ActiveCfg = Release|x64 + {26932B24-EFC6-4E3A-B277-ED653DA37968}.Release|x64.Build.0 = Release|x64 + {C4E04D18-EF76-4B42-B4C2-16A1BACDC0A3}.Debug|Win32.ActiveCfg = Debug|Win32 + {C4E04D18-EF76-4B42-B4C2-16A1BACDC0A3}.Debug|Win32.Build.0 = Debug|Win32 + {C4E04D18-EF76-4B42-B4C2-16A1BACDC0A3}.Debug|x64.ActiveCfg = Debug|x64 + {C4E04D18-EF76-4B42-B4C2-16A1BACDC0A3}.Debug|x64.Build.0 = Debug|x64 + {C4E04D18-EF76-4B42-B4C2-16A1BACDC0A3}.Release|Win32.ActiveCfg = Release|Win32 + {C4E04D18-EF76-4B42-B4C2-16A1BACDC0A3}.Release|Win32.Build.0 = Release|Win32 + {C4E04D18-EF76-4B42-B4C2-16A1BACDC0A3}.Release|x64.ActiveCfg = Release|x64 + {C4E04D18-EF76-4B42-B4C2-16A1BACDC0A3}.Release|x64.Build.0 = Release|x64 + {2D17C1EB-1157-460E-9A99-A82BFC1F9D1E}.Debug|Win32.ActiveCfg = Debug|Win32 + {2D17C1EB-1157-460E-9A99-A82BFC1F9D1E}.Debug|Win32.Build.0 = Debug|Win32 + {2D17C1EB-1157-460E-9A99-A82BFC1F9D1E}.Debug|x64.ActiveCfg = Debug|x64 + {2D17C1EB-1157-460E-9A99-A82BFC1F9D1E}.Debug|x64.Build.0 = Debug|x64 + {2D17C1EB-1157-460E-9A99-A82BFC1F9D1E}.Release|Win32.ActiveCfg = Release|Win32 + {2D17C1EB-1157-460E-9A99-A82BFC1F9D1E}.Release|Win32.Build.0 = Release|Win32 + {2D17C1EB-1157-460E-9A99-A82BFC1F9D1E}.Release|x64.ActiveCfg = Release|x64 + {2D17C1EB-1157-460E-9A99-A82BFC1F9D1E}.Release|x64.Build.0 = Release|x64 + {BFF40245-E9A6-4297-A425-A554E5D767E8}.Debug|Win32.ActiveCfg = Debug|Win32 + {BFF40245-E9A6-4297-A425-A554E5D767E8}.Debug|Win32.Build.0 = Debug|Win32 + {BFF40245-E9A6-4297-A425-A554E5D767E8}.Debug|x64.ActiveCfg = Debug|x64 + {BFF40245-E9A6-4297-A425-A554E5D767E8}.Debug|x64.Build.0 = Debug|x64 + {BFF40245-E9A6-4297-A425-A554E5D767E8}.Release|Win32.ActiveCfg = Release|Win32 + {BFF40245-E9A6-4297-A425-A554E5D767E8}.Release|Win32.Build.0 = Release|Win32 + {BFF40245-E9A6-4297-A425-A554E5D767E8}.Release|x64.ActiveCfg = Release|x64 + {BFF40245-E9A6-4297-A425-A554E5D767E8}.Release|x64.Build.0 = Release|x64 + {5D0930C0-7C91-4ECE-9014-7B7DDE9502E6}.Debug|Win32.ActiveCfg = Debug|Win32 + {5D0930C0-7C91-4ECE-9014-7B7DDE9502E6}.Debug|Win32.Build.0 = Debug|Win32 + {5D0930C0-7C91-4ECE-9014-7B7DDE9502E6}.Debug|x64.ActiveCfg = Debug|x64 + {5D0930C0-7C91-4ECE-9014-7B7DDE9502E6}.Debug|x64.Build.0 = Debug|x64 + {5D0930C0-7C91-4ECE-9014-7B7DDE9502E6}.Release|Win32.ActiveCfg = Release|Win32 + {5D0930C0-7C91-4ECE-9014-7B7DDE9502E6}.Release|Win32.Build.0 = Release|Win32 + {5D0930C0-7C91-4ECE-9014-7B7DDE9502E6}.Release|x64.ActiveCfg = Release|x64 + {5D0930C0-7C91-4ECE-9014-7B7DDE9502E6}.Release|x64.Build.0 = Release|x64 + {31A3E4E1-AAE9-4EF3-9B23-18D0924BE4D2}.Debug|Win32.ActiveCfg = Debug|Win32 + {31A3E4E1-AAE9-4EF3-9B23-18D0924BE4D2}.Debug|Win32.Build.0 = Debug|Win32 + {31A3E4E1-AAE9-4EF3-9B23-18D0924BE4D2}.Debug|x64.ActiveCfg = Debug|x64 + {31A3E4E1-AAE9-4EF3-9B23-18D0924BE4D2}.Debug|x64.Build.0 = Debug|x64 + {31A3E4E1-AAE9-4EF3-9B23-18D0924BE4D2}.Release|Win32.ActiveCfg = Release|Win32 + {31A3E4E1-AAE9-4EF3-9B23-18D0924BE4D2}.Release|Win32.Build.0 = Release|Win32 + {31A3E4E1-AAE9-4EF3-9B23-18D0924BE4D2}.Release|x64.ActiveCfg = Release|x64 + {31A3E4E1-AAE9-4EF3-9B23-18D0924BE4D2}.Release|x64.Build.0 = Release|x64 + {40FB7794-D3C3-4CFE-BCF4-A80C96635682}.Debug|Win32.ActiveCfg = Debug|Win32 + {40FB7794-D3C3-4CFE-BCF4-A80C96635682}.Debug|Win32.Build.0 = Debug|Win32 + {40FB7794-D3C3-4CFE-BCF4-A80C96635682}.Debug|x64.ActiveCfg = Debug|x64 + {40FB7794-D3C3-4CFE-BCF4-A80C96635682}.Debug|x64.Build.0 = Debug|x64 + {40FB7794-D3C3-4CFE-BCF4-A80C96635682}.Release|Win32.ActiveCfg = Release|Win32 + {40FB7794-D3C3-4CFE-BCF4-A80C96635682}.Release|Win32.Build.0 = Release|Win32 + {40FB7794-D3C3-4CFE-BCF4-A80C96635682}.Release|x64.ActiveCfg = Release|x64 + {40FB7794-D3C3-4CFE-BCF4-A80C96635682}.Release|x64.Build.0 = Release|x64 + {DA956FD3-E143-46F2-9FE5-C77BEBC56B1A}.Debug|Win32.ActiveCfg = Debug|Win32 + {DA956FD3-E143-46F2-9FE5-C77BEBC56B1A}.Debug|Win32.Build.0 = Debug|Win32 + {DA956FD3-E143-46F2-9FE5-C77BEBC56B1A}.Debug|x64.ActiveCfg = Debug|x64 + {DA956FD3-E143-46F2-9FE5-C77BEBC56B1A}.Debug|x64.Build.0 = Debug|x64 + {DA956FD3-E143-46F2-9FE5-C77BEBC56B1A}.Release|Win32.ActiveCfg = Release|Win32 + {DA956FD3-E143-46F2-9FE5-C77BEBC56B1A}.Release|Win32.Build.0 = Release|Win32 + {DA956FD3-E143-46F2-9FE5-C77BEBC56B1A}.Release|x64.ActiveCfg = Release|x64 + {DA956FD3-E143-46F2-9FE5-C77BEBC56B1A}.Release|x64.Build.0 = Release|x64 + {55812185-D13C-4022-9C81-32E0F4A08305}.Debug|Win32.ActiveCfg = Debug|Win32 + {55812185-D13C-4022-9C81-32E0F4A08305}.Debug|Win32.Build.0 = Debug|Win32 + {55812185-D13C-4022-9C81-32E0F4A08305}.Debug|x64.ActiveCfg = Debug|x64 + {55812185-D13C-4022-9C81-32E0F4A08305}.Debug|x64.Build.0 = Debug|x64 + {55812185-D13C-4022-9C81-32E0F4A08305}.Release|Win32.ActiveCfg = Release|Win32 + {55812185-D13C-4022-9C81-32E0F4A08305}.Release|Win32.Build.0 = Release|Win32 + {55812185-D13C-4022-9C81-32E0F4A08305}.Release|x64.ActiveCfg = Release|x64 + {55812185-D13C-4022-9C81-32E0F4A08305}.Release|x64.Build.0 = Release|x64 + {E9558DFE-1961-4DD4-B09B-DD0EEFD5C315}.Debug|Win32.ActiveCfg = Debug|Win32 + {E9558DFE-1961-4DD4-B09B-DD0EEFD5C315}.Debug|Win32.Build.0 = Debug|Win32 + {E9558DFE-1961-4DD4-B09B-DD0EEFD5C315}.Debug|x64.ActiveCfg = Debug|x64 + {E9558DFE-1961-4DD4-B09B-DD0EEFD5C315}.Debug|x64.Build.0 = Debug|x64 + {E9558DFE-1961-4DD4-B09B-DD0EEFD5C315}.Release|Win32.ActiveCfg = Release|Win32 + {E9558DFE-1961-4DD4-B09B-DD0EEFD5C315}.Release|Win32.Build.0 = Release|Win32 + {E9558DFE-1961-4DD4-B09B-DD0EEFD5C315}.Release|x64.ActiveCfg = Release|x64 + {E9558DFE-1961-4DD4-B09B-DD0EEFD5C315}.Release|x64.Build.0 = Release|x64 + {55812185-D13C-4022-9C81-32E0F4A08306}.Debug|Win32.ActiveCfg = Debug|Win32 + {55812185-D13C-4022-9C81-32E0F4A08306}.Debug|Win32.Build.0 = Debug|Win32 + {55812185-D13C-4022-9C81-32E0F4A08306}.Debug|x64.ActiveCfg = Debug|x64 + {55812185-D13C-4022-9C81-32E0F4A08306}.Debug|x64.Build.0 = Debug|x64 + {55812185-D13C-4022-9C81-32E0F4A08306}.Release|Win32.ActiveCfg = Release|Win32 + {55812185-D13C-4022-9C81-32E0F4A08306}.Release|Win32.Build.0 = Release|Win32 + {55812185-D13C-4022-9C81-32E0F4A08306}.Release|x64.ActiveCfg = Release|x64 + {55812185-D13C-4022-9C81-32E0F4A08306}.Release|x64.Build.0 = Release|x64 + EndGlobalSection + GlobalSection(SolutionProperties) = preSolution + HideSolutionNode = FALSE + EndGlobalSection + GlobalSection(NestedProjects) = preSolution + {AAAD1CB5-7ADA-47AE-85A0-08A6EC48FAFB} = {D69D5741-611F-4E14-8541-1FEE94F50B5A} + {66B32F7E-5716-48D0-B5B9-D832FD052DD5} = {D69D5741-611F-4E14-8541-1FEE94F50B5A} + {9C7E8C03-3130-436D-A97E-E8F8ED1AC4EA} = {D69D5741-611F-4E14-8541-1FEE94F50B5A} + {8682FE1E-0CF6-4EDD-9BB5-1733D8C8B4DF} = {D69D5741-611F-4E14-8541-1FEE94F50B5A} + {CAE4F1D0-314F-4B10-805B-0EFD670133A0} = {D69D5741-611F-4E14-8541-1FEE94F50B5A} + {79CEE57E-1BC3-4FF6-90B3-9E39763CDAFF} = {D69D5741-611F-4E14-8541-1FEE94F50B5A} + {8B5CFB38-CCBA-40A8-AD7A-89C57B070884} = {D69D5741-611F-4E14-8541-1FEE94F50B5A} + {55812185-D13C-4022-9C81-32E0F4A08304} = {D69D5741-611F-4E14-8541-1FEE94F50B5A} + {B51E0D74-F0A2-45A2-BD2A-8B7D95B8204A} = {D69D5741-611F-4E14-8541-1FEE94F50B5A} + {26932B24-EFC6-4E3A-B277-ED653DA37968} = {D69D5741-611F-4E14-8541-1FEE94F50B5A} + {C4E04D18-EF76-4B42-B4C2-16A1BACDC0A3} = {D69D5741-611F-4E14-8541-1FEE94F50B5A} + {2D17C1EB-1157-460E-9A99-A82BFC1F9D1E} = {D69D5741-611F-4E14-8541-1FEE94F50B5A} + {BFF40245-E9A6-4297-A425-A554E5D767E8} = {D69D5741-611F-4E14-8541-1FEE94F50B5A} + {5D0930C0-7C91-4ECE-9014-7B7DDE9502E6} = {D69D5741-611F-4E14-8541-1FEE94F50B5A} + {31A3E4E1-AAE9-4EF3-9B23-18D0924BE4D2} = {D69D5741-611F-4E14-8541-1FEE94F50B5A} + {40FB7794-D3C3-4CFE-BCF4-A80C96635682} = {D69D5741-611F-4E14-8541-1FEE94F50B5A} + {55812185-D13C-4022-9C81-32E0F4A08305} = {D69D5741-611F-4E14-8541-1FEE94F50B5A} + {E9558DFE-1961-4DD4-B09B-DD0EEFD5C315} = {D69D5741-611F-4E14-8541-1FEE94F50B5A} + {55812185-D13C-4022-9C81-32E0F4A08306} = {D69D5741-611F-4E14-8541-1FEE94F50B5A} + {26828762-C95D-4637-9CB1-7F0979523813} = {D69D5741-611F-4E14-8541-1FEE94F50B5A} + EndGlobalSection +EndGlobal diff --git a/VisualC/SDLmain/SDLmain.vcxproj b/VisualC/SDLmain/SDLmain.vcxproj new file mode 100644 index 000000000..abbb01e3d --- /dev/null +++ b/VisualC/SDLmain/SDLmain.vcxproj @@ -0,0 +1,158 @@ + + + + + Debug + Win32 + + + Debug + x64 + + + Release + Win32 + + + Release + x64 + + + + SDL2main + {DA956FD3-E142-46F2-9DD5-C78BEBB56B7A} + SDLmain + + + + StaticLibrary + + + StaticLibrary + + + StaticLibrary + + + StaticLibrary + + + + + + + + + + + + + + + + + + + + + + + <_ProjectFileVersion>10.0.40219.1 + $(SolutionDir)$(Platform)\$(Configuration)\ + $(Platform)\$(Configuration)\ + $(SolutionDir)$(Platform)\$(Configuration)\ + $(Platform)\$(Configuration)\ + $(SolutionDir)$(Platform)\$(Configuration)\ + $(Platform)\$(Configuration)\ + $(SolutionDir)$(Platform)\$(Configuration)\ + $(Platform)\$(Configuration)\ + AllRules.ruleset + + + AllRules.ruleset + + + AllRules.ruleset + + + AllRules.ruleset + + + + + + + + + + $(SolutionDir)/../include;%(AdditionalIncludeDirectories) + %(AdditionalUsingDirectories) + WIN32;NDEBUG;_WINDOWS;%(PreprocessorDefinitions) + true + MultiThreadedDLL + false + StreamingSIMDExtensions + Level3 + OldStyle + true + + + + + X64 + + + $(SolutionDir)/../include;%(AdditionalIncludeDirectories) + %(AdditionalUsingDirectories) + WIN32;NDEBUG;_WINDOWS;%(PreprocessorDefinitions) + true + MultiThreadedDLL + false + StreamingSIMDExtensions + Level3 + OldStyle + true + + + + + + + + + Disabled + $(SolutionDir)/../include;%(AdditionalIncludeDirectories) + %(AdditionalUsingDirectories) + WIN32;_DEBUG;_WINDOWS;%(PreprocessorDefinitions) + MultiThreadedDLL + false + StreamingSIMDExtensions + Level3 + OldStyle + true + + + + + X64 + + + Disabled + $(SolutionDir)/../include;%(AdditionalIncludeDirectories) + %(AdditionalUsingDirectories) + WIN32;_DEBUG;_WINDOWS;%(PreprocessorDefinitions) + MultiThreadedDLL + false + StreamingSIMDExtensions + Level3 + OldStyle + true + + + + + + + + + \ No newline at end of file diff --git a/VisualC/SDLmain/SDLmain_VS2008.vcproj b/VisualC/SDLmain/SDLmain_VS2008.vcproj new file mode 100644 index 000000000..65dd31d39 --- /dev/null +++ b/VisualC/SDLmain/SDLmain_VS2008.vcproj @@ -0,0 +1,296 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/VisualC/SDLtest/SDLtest.vcxproj b/VisualC/SDLtest/SDLtest.vcxproj new file mode 100644 index 000000000..db92a49c7 --- /dev/null +++ b/VisualC/SDLtest/SDLtest.vcxproj @@ -0,0 +1,172 @@ + + + + + Debug + Win32 + + + Debug + x64 + + + Release + Win32 + + + Release + x64 + + + + SDL2test + {DA956FD3-E143-46F2-9FE5-C77BEBC56B1A} + SDLtest + + + + StaticLibrary + + + StaticLibrary + + + StaticLibrary + + + StaticLibrary + + + + + + + + + + + + + + + + + + + + + + + <_ProjectFileVersion>10.0.40219.1 + $(SolutionDir)$(Platform)\$(Configuration)\ + $(Platform)\$(Configuration)\ + $(SolutionDir)$(Platform)\$(Configuration)\ + $(Platform)\$(Configuration)\ + $(SolutionDir)$(Platform)\$(Configuration)\ + $(Platform)\$(Configuration)\ + $(SolutionDir)$(Platform)\$(Configuration)\ + $(Platform)\$(Configuration)\ + AllRules.ruleset + + + AllRules.ruleset + + + AllRules.ruleset + + + AllRules.ruleset + + + + + + + + + + $(SolutionDir)/../include;%(AdditionalIncludeDirectories) + %(AdditionalUsingDirectories) + WIN32;NDEBUG;_WINDOWS;%(PreprocessorDefinitions) + true + MultiThreadedDLL + false + StreamingSIMDExtensions + Level3 + OldStyle + true + + + + + X64 + + + $(SolutionDir)/../include;%(AdditionalIncludeDirectories) + %(AdditionalUsingDirectories) + WIN32;NDEBUG;_WINDOWS;%(PreprocessorDefinitions) + true + MultiThreadedDLL + false + StreamingSIMDExtensions + Level3 + OldStyle + true + + + + + + + + + Disabled + $(SolutionDir)/../include;%(AdditionalIncludeDirectories) + %(AdditionalUsingDirectories) + WIN32;_DEBUG;_WINDOWS;%(PreprocessorDefinitions) + MultiThreadedDLL + false + StreamingSIMDExtensions + Level3 + OldStyle + true + + + + + X64 + + + Disabled + $(SolutionDir)/../include;%(AdditionalIncludeDirectories) + %(AdditionalUsingDirectories) + WIN32;_DEBUG;_WINDOWS;%(PreprocessorDefinitions) + MultiThreadedDLL + false + StreamingSIMDExtensions + Level3 + OldStyle + true + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/VisualC/SDLtest/SDLtest_VS2008.vcproj b/VisualC/SDLtest/SDLtest_VS2008.vcproj new file mode 100644 index 000000000..8a22d0fc4 --- /dev/null +++ b/VisualC/SDLtest/SDLtest_VS2008.vcproj @@ -0,0 +1,352 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/VisualC/clean.sh b/VisualC/clean.sh new file mode 100755 index 000000000..fd16f9a12 --- /dev/null +++ b/VisualC/clean.sh @@ -0,0 +1,4 @@ +#!/bin/sh +find . -type f \( -name '*.user' -o -name '*.sdf' -o -name '*.ncb' -o -name '*.suo' \) -print -delete +find . -type f \( -name '*.bmp' -o -name '*.wav' -o -name '*.dat' \) -print -delete +find . -depth -type d \( -name Win32 -o -name x64 \) -exec rm -rv {} \; diff --git a/VisualC/tests/checkkeys/checkkeys.vcxproj b/VisualC/tests/checkkeys/checkkeys.vcxproj new file mode 100644 index 000000000..46e257732 --- /dev/null +++ b/VisualC/tests/checkkeys/checkkeys.vcxproj @@ -0,0 +1,214 @@ + + + + + Debug + Win32 + + + Debug + x64 + + + Release + Win32 + + + Release + x64 + + + + {26828762-C95D-4637-9CB1-7F0979523813} + checkkeys + + + + Application + + + Application + + + Application + + + Application + + + + + + + + + + + + + + + + + + + + + + + <_ProjectFileVersion>10.0.40219.1 + $(SolutionDir)$(Platform)\$(Configuration)\ + $(Platform)\$(Configuration)\ + $(SolutionDir)$(Platform)\$(Configuration)\ + $(Platform)\$(Configuration)\ + $(SolutionDir)$(Platform)\$(Configuration)\ + $(Platform)\$(Configuration)\ + $(SolutionDir)$(Platform)\$(Configuration)\ + $(Platform)\$(Configuration)\ + AllRules.ruleset + + + AllRules.ruleset + + + AllRules.ruleset + + + AllRules.ruleset + + + + + + _DEBUG;%(PreprocessorDefinitions) + true + true + Win32 + .\Debug/checkkeys.tlb + + + Disabled + $(SolutionDir)/../include;%(AdditionalIncludeDirectories) + %(AdditionalUsingDirectories) + WIN32;_DEBUG;_WINDOWS;%(PreprocessorDefinitions) + MultiThreadedDLL + Level3 + OldStyle + + + _DEBUG;%(PreprocessorDefinitions) + 0x0409 + + + true + Windows + + + + + _DEBUG;%(PreprocessorDefinitions) + true + true + X64 + .\Debug/checkkeys.tlb + + + Disabled + $(SolutionDir)/../include;%(AdditionalIncludeDirectories) + %(AdditionalUsingDirectories) + WIN32;_DEBUG;_WINDOWS;%(PreprocessorDefinitions) + MultiThreadedDebugDLL + Level3 + OldStyle + + + _DEBUG;%(PreprocessorDefinitions) + 0x0409 + + + true + Windows + + + + + NDEBUG;%(PreprocessorDefinitions) + true + true + Win32 + .\Release/checkkeys.tlb + + + $(SolutionDir)/../include;%(AdditionalIncludeDirectories) + %(AdditionalUsingDirectories) + WIN32;NDEBUG;_WINDOWS;%(PreprocessorDefinitions) + MultiThreadedDLL + + + .\Release/checkkeys.pch + Level3 + + + NDEBUG;%(PreprocessorDefinitions) + 0x0409 + + + Windows + + + + + NDEBUG;%(PreprocessorDefinitions) + true + true + X64 + .\Release/checkkeys.tlb + + + $(SolutionDir)/../include;%(AdditionalIncludeDirectories) + %(AdditionalUsingDirectories) + WIN32;NDEBUG;_WINDOWS;%(PreprocessorDefinitions) + MultiThreadedDLL + + + .\Release/checkkeys.pch + Level3 + + + NDEBUG;%(PreprocessorDefinitions) + 0x0409 + + + Windows + + + + + {81ce8daf-ebb2-4761-8e45-b71abcca8c68} + false + false + true + + + {da956fd3-e142-46f2-9dd5-c78bebb56b7a} + false + false + true + + + + + $(SolutionDir)$(Platform)\$(Configuration);%(AdditionalIncludeDirectories) + $(Platform)\$(Configuration)\;%(AdditionalUsingDirectories) + %(AdditionalIncludeDirectories) + %(AdditionalUsingDirectories) + $(SolutionDir)$(Platform)\$(Configuration);%(AdditionalIncludeDirectories) + $(Platform)\$(Configuration)\;%(AdditionalUsingDirectories) + $(SolutionDir)$(Platform)\$(Configuration);%(AdditionalIncludeDirectories) + $(Platform)\$(Configuration)\;%(AdditionalUsingDirectories) + + + + + + \ No newline at end of file diff --git a/VisualC/tests/checkkeys/checkkeys_VS2008.vcproj b/VisualC/tests/checkkeys/checkkeys_VS2008.vcproj new file mode 100644 index 000000000..b02c4cfa7 --- /dev/null +++ b/VisualC/tests/checkkeys/checkkeys_VS2008.vcproj @@ -0,0 +1,388 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/VisualC/tests/controllermap/controllermap.vcxproj b/VisualC/tests/controllermap/controllermap.vcxproj new file mode 100644 index 000000000..fedaf6cc8 --- /dev/null +++ b/VisualC/tests/controllermap/controllermap.vcxproj @@ -0,0 +1,255 @@ + + + + + Debug + Win32 + + + Debug + x64 + + + Release + Win32 + + + Release + x64 + + + + {55812185-D13C-4022-9C81-32E0F4A08306} + controllermap + + + + Application + + + Application + + + Application + + + Application + + + + + + + + + + + + + + + + + + + + + + + <_ProjectFileVersion>10.0.40219.1 + $(SolutionDir)$(Platform)\$(Configuration)\ + $(Platform)\$(Configuration)\ + $(SolutionDir)$(Platform)\$(Configuration)\ + $(Platform)\$(Configuration)\ + $(SolutionDir)$(Platform)\$(Configuration)\ + $(Platform)\$(Configuration)\ + $(SolutionDir)$(Platform)\$(Configuration)\ + $(Platform)\$(Configuration)\ + AllRules.ruleset + + + AllRules.ruleset + + + AllRules.ruleset + + + AllRules.ruleset + + + + + + NDEBUG;%(PreprocessorDefinitions) + true + true + Win32 + .\Release/controllermap.tlb + + + $(SolutionDir)/../include;%(AdditionalIncludeDirectories) + %(AdditionalUsingDirectories) + WIN32;NDEBUG;_WINDOWS;%(PreprocessorDefinitions) + MultiThreadedDLL + Level3 + + + NDEBUG;%(PreprocessorDefinitions) + 0x0409 + + + Windows + + + + + NDEBUG;%(PreprocessorDefinitions) + true + true + X64 + .\Release/controllermap.tlb + + + $(SolutionDir)/../include;%(AdditionalIncludeDirectories) + %(AdditionalUsingDirectories) + WIN32;NDEBUG;_WINDOWS;%(PreprocessorDefinitions) + MultiThreadedDLL + Level3 + + + NDEBUG;%(PreprocessorDefinitions) + 0x0409 + + + Windows + + + + + _DEBUG;%(PreprocessorDefinitions) + true + true + Win32 + .\Debug/controllermap.tlb + + + Disabled + $(SolutionDir)/../include;%(AdditionalIncludeDirectories) + %(AdditionalUsingDirectories) + WIN32;_DEBUG;_WINDOWS;%(PreprocessorDefinitions) + MultiThreadedDLL + Level3 + OldStyle + + + _DEBUG;%(PreprocessorDefinitions) + 0x0409 + + + true + Windows + + + + + _DEBUG;%(PreprocessorDefinitions) + true + true + X64 + .\Debug/controllermap.tlb + + + Disabled + $(SolutionDir)/../include;%(AdditionalIncludeDirectories) + %(AdditionalUsingDirectories) + WIN32;_DEBUG;_WINDOWS;%(PreprocessorDefinitions) + MultiThreadedDebugDLL + Level3 + OldStyle + + + _DEBUG;%(PreprocessorDefinitions) + 0x0409 + + + true + Windows + + + + + {81ce8daf-ebb2-4761-8e45-b71abcca8c68} + false + false + true + + + {da956fd3-e142-46f2-9dd5-c78bebb56b7a} + false + false + true + + + + + Copying %(Filename)%(Extension) + copy %(FullPath) $(ProjectDir)\ + + $(ProjectDir)\%(Filename)%(Extension);%(Outputs) + Copying %(Filename)%(Extension) + copy %(FullPath) $(ProjectDir)\ + + $(ProjectDir)\%(Filename)%(Extension);%(Outputs) + Copying %(Filename)%(Extension) + copy %(FullPath) $(ProjectDir)\ + + $(ProjectDir)\%(Filename)%(Extension);%(Outputs) + Copying %(Filename)%(Extension) + copy %(FullPath) $(ProjectDir)\ + + $(ProjectDir)\%(Filename)%(Extension);%(Outputs) + + + Copying %(Filename)%(Extension) + copy %(FullPath) $(ProjectDir)\ + + $(ProjectDir)\%(Filename)%(Extension);%(Outputs) + Copying %(Filename)%(Extension) + copy %(FullPath) $(ProjectDir)\ + + $(ProjectDir)\%(Filename)%(Extension);%(Outputs) + Copying %(Filename)%(Extension) + copy %(FullPath) $(ProjectDir)\ + + $(ProjectDir)\%(Filename)%(Extension);%(Outputs) + Copying %(Filename)%(Extension) + copy %(FullPath) $(ProjectDir)\ + + $(ProjectDir)\%(Filename)%(Extension);%(Outputs) + + + Copying %(Filename)%(Extension) + copy %(FullPath) $(ProjectDir)\ + + $(ProjectDir)\%(Filename)%(Extension);%(Outputs) + Copying %(Filename)%(Extension) + copy %(FullPath) $(ProjectDir)\ + + $(ProjectDir)\%(Filename)%(Extension);%(Outputs) + Copying %(Filename)%(Extension) + copy %(FullPath) $(ProjectDir)\ + + $(ProjectDir)\%(Filename)%(Extension);%(Outputs) + Copying %(Filename)%(Extension) + copy %(FullPath) $(ProjectDir)\ + + $(ProjectDir)\%(Filename)%(Extension);%(Outputs) + + + + + + + + + \ No newline at end of file diff --git a/VisualC/tests/controllermap/controllermap_VS2008.vcproj b/VisualC/tests/controllermap/controllermap_VS2008.vcproj new file mode 100644 index 000000000..1ecce6737 --- /dev/null +++ b/VisualC/tests/controllermap/controllermap_VS2008.vcproj @@ -0,0 +1,480 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/VisualC/tests/loopwave/loopwave.vcxproj b/VisualC/tests/loopwave/loopwave.vcxproj new file mode 100644 index 000000000..182a38bc4 --- /dev/null +++ b/VisualC/tests/loopwave/loopwave.vcxproj @@ -0,0 +1,225 @@ + + + + + Debug + Win32 + + + Debug + x64 + + + Release + Win32 + + + Release + x64 + + + + {AAAD1CB5-7ADA-47AE-85A0-08A6EC48FAFB} + loopwave + + + + Application + + + Application + + + Application + + + Application + + + + + + + + + + + + + + + + + + + + + + + <_ProjectFileVersion>10.0.40219.1 + $(SolutionDir)$(Platform)\$(Configuration)\ + $(Platform)\$(Configuration)\ + $(SolutionDir)$(Platform)\$(Configuration)\ + $(Platform)\$(Configuration)\ + $(SolutionDir)$(Platform)\$(Configuration)\ + $(Platform)\$(Configuration)\ + $(SolutionDir)$(Platform)\$(Configuration)\ + $(Platform)\$(Configuration)\ + AllRules.ruleset + + + AllRules.ruleset + + + AllRules.ruleset + + + AllRules.ruleset + + + + + + NDEBUG;%(PreprocessorDefinitions) + true + true + Win32 + .\Release/loopwave.tlb + + + $(SolutionDir)/../include;%(AdditionalIncludeDirectories) + %(AdditionalUsingDirectories) + WIN32;NDEBUG;_WINDOWS;%(PreprocessorDefinitions) + MultiThreadedDLL + + + .\Release/loopwave.pch + Level3 + + + NDEBUG;%(PreprocessorDefinitions) + 0x0409 + + + Windows + + + + + NDEBUG;%(PreprocessorDefinitions) + true + true + X64 + .\Release/loopwave.tlb + + + $(SolutionDir)/../include;%(AdditionalIncludeDirectories) + %(AdditionalUsingDirectories) + WIN32;NDEBUG;_WINDOWS;%(PreprocessorDefinitions) + MultiThreadedDLL + + + .\Release/loopwave.pch + Level3 + + + NDEBUG;%(PreprocessorDefinitions) + 0x0409 + + + Windows + + + + + _DEBUG;%(PreprocessorDefinitions) + true + true + Win32 + .\Debug/loopwave.tlb + + + Disabled + $(SolutionDir)/../include;%(AdditionalIncludeDirectories) + %(AdditionalUsingDirectories) + WIN32;_DEBUG;_WINDOWS;%(PreprocessorDefinitions) + MultiThreadedDLL + Level3 + OldStyle + + + _DEBUG;%(PreprocessorDefinitions) + 0x0409 + + + true + Windows + + + + + _DEBUG;%(PreprocessorDefinitions) + true + true + X64 + .\Debug/loopwave.tlb + + + Disabled + $(SolutionDir)/../include;%(AdditionalIncludeDirectories) + %(AdditionalUsingDirectories) + WIN32;_DEBUG;_WINDOWS;%(PreprocessorDefinitions) + MultiThreadedDebugDLL + Level3 + OldStyle + + + _DEBUG;%(PreprocessorDefinitions) + 0x0409 + + + true + Windows + + + + + {81ce8daf-ebb2-4761-8e45-b71abcca8c68} + false + false + true + + + {da956fd3-e142-46f2-9dd5-c78bebb56b7a} + false + false + true + + + + + + + + Copying %(Filename)%(Extension) + copy %(FullPath) $(ProjectDir)\ + + $(ProjectDir)\%(Filename)%(Extension);%(Outputs) + Copying %(Filename)%(Extension) + copy %(FullPath) $(ProjectDir)\ + + $(ProjectDir)\%(Filename)%(Extension);%(Outputs) + Copying %(Filename)%(Extension) + copy %(FullPath) $(ProjectDir)\ + + $(ProjectDir)\%(Filename)%(Extension);%(Outputs) + Copying %(Filename)%(Extension) + copy %(FullPath) $(ProjectDir)\ + + $(ProjectDir)\%(Filename)%(Extension);%(Outputs) + + + + + + \ No newline at end of file diff --git a/VisualC/tests/loopwave/loopwave_VS2008.vcproj b/VisualC/tests/loopwave/loopwave_VS2008.vcproj new file mode 100644 index 000000000..1cbf89a8c --- /dev/null +++ b/VisualC/tests/loopwave/loopwave_VS2008.vcproj @@ -0,0 +1,396 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/VisualC/tests/testatomic/testatomic.vcxproj b/VisualC/tests/testatomic/testatomic.vcxproj new file mode 100644 index 000000000..f66dee8ab --- /dev/null +++ b/VisualC/tests/testatomic/testatomic.vcxproj @@ -0,0 +1,199 @@ + + + + + Debug + Win32 + + + Debug + x64 + + + Release + Win32 + + + Release + x64 + + + + {66B32F7E-5716-48D0-B5B9-D832FD052DD5} + testatomic + + + + Application + + + Application + + + Application + + + Application + + + + + + + + + + + + + + + + + + + + + + + <_ProjectFileVersion>10.0.40219.1 + $(SolutionDir)$(Platform)\$(Configuration)\ + $(Platform)\$(Configuration)\ + $(SolutionDir)$(Platform)\$(Configuration)\ + $(Platform)\$(Configuration)\ + $(SolutionDir)$(Platform)\$(Configuration)\ + $(Platform)\$(Configuration)\ + $(SolutionDir)$(Platform)\$(Configuration)\ + $(Platform)\$(Configuration)\ + AllRules.ruleset + + + AllRules.ruleset + + + AllRules.ruleset + + + AllRules.ruleset + + + + + + _DEBUG;%(PreprocessorDefinitions) + true + true + Win32 + .\Debug/testatomic.tlb + + + Disabled + $(SolutionDir)/../include;%(AdditionalIncludeDirectories) + %(AdditionalUsingDirectories) + WIN32;_DEBUG;_WINDOWS;%(PreprocessorDefinitions) + MultiThreadedDLL + Level3 + OldStyle + + + _DEBUG;%(PreprocessorDefinitions) + 0x0409 + + + true + Windows + + + + + _DEBUG;%(PreprocessorDefinitions) + true + true + X64 + .\Debug/testatomic.tlb + + + Disabled + $(SolutionDir)/../include;%(AdditionalIncludeDirectories) + %(AdditionalUsingDirectories) + WIN32;_DEBUG;_WINDOWS;%(PreprocessorDefinitions) + MultiThreadedDebugDLL + Level3 + OldStyle + + + _DEBUG;%(PreprocessorDefinitions) + 0x0409 + + + true + Windows + + + + + NDEBUG;%(PreprocessorDefinitions) + true + true + Win32 + .\Release/testatomic.tlb + + + $(SolutionDir)/../include;%(AdditionalIncludeDirectories) + %(AdditionalUsingDirectories) + WIN32;NDEBUG;_WINDOWS;%(PreprocessorDefinitions) + MultiThreadedDLL + Level3 + + + NDEBUG;%(PreprocessorDefinitions) + 0x0409 + + + Windows + + + + + NDEBUG;%(PreprocessorDefinitions) + true + true + X64 + .\Release/testatomic.tlb + + + $(SolutionDir)/../include;%(AdditionalIncludeDirectories) + %(AdditionalUsingDirectories) + WIN32;NDEBUG;_WINDOWS;%(PreprocessorDefinitions) + MultiThreadedDLL + Level3 + + + NDEBUG;%(PreprocessorDefinitions) + 0x0409 + + + Windows + + + + + {81ce8daf-ebb2-4761-8e45-b71abcca8c68} + false + false + true + + + {da956fd3-e142-46f2-9dd5-c78bebb56b7a} + false + false + true + + + + + + + + + \ No newline at end of file diff --git a/VisualC/tests/testatomic/testatomic_VS2008.vcproj b/VisualC/tests/testatomic/testatomic_VS2008.vcproj new file mode 100644 index 000000000..5f4452b58 --- /dev/null +++ b/VisualC/tests/testatomic/testatomic_VS2008.vcproj @@ -0,0 +1,348 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/VisualC/tests/testautomation/testautomation.vcxproj b/VisualC/tests/testautomation/testautomation.vcxproj new file mode 100644 index 000000000..e5ce6a3cb --- /dev/null +++ b/VisualC/tests/testautomation/testautomation.vcxproj @@ -0,0 +1,226 @@ + + + + + Debug + Win32 + + + Debug + x64 + + + Release + Win32 + + + Release + x64 + + + + {9C7E8C03-3130-436D-A97E-E8F8ED1AC4EA} + testautomation + + + + Application + + + Application + + + Application + + + Application + + + + + + + + + + + + + + + + + + + + + + + <_ProjectFileVersion>10.0.40219.1 + $(SolutionDir)$(Platform)\$(Configuration)\ + $(Platform)\$(Configuration)\ + $(SolutionDir)$(Platform)\$(Configuration)\ + $(Platform)\$(Configuration)\ + $(SolutionDir)$(Platform)\$(Configuration)\ + $(Platform)\$(Configuration)\ + $(SolutionDir)$(Platform)\$(Configuration)\ + $(Platform)\$(Configuration)\ + AllRules.ruleset + + + AllRules.ruleset + + + AllRules.ruleset + + + AllRules.ruleset + + + + + + _DEBUG;%(PreprocessorDefinitions) + true + true + Win32 + .\Debug/testautomation.tlb + + + Disabled + $(SolutionDir)/../include;%(AdditionalIncludeDirectories) + %(AdditionalUsingDirectories) + WIN32;_DEBUG;_WINDOWS;%(PreprocessorDefinitions) + MultiThreadedDLL + Level3 + OldStyle + + + _DEBUG;%(PreprocessorDefinitions) + 0x0409 + + + true + Windows + + + + + _DEBUG;%(PreprocessorDefinitions) + true + true + X64 + .\Debug/testautomation.tlb + + + Disabled + $(SolutionDir)/../include;%(AdditionalIncludeDirectories) + %(AdditionalUsingDirectories) + WIN32;_DEBUG;_WINDOWS;%(PreprocessorDefinitions) + MultiThreadedDebugDLL + Level3 + OldStyle + + + _DEBUG;%(PreprocessorDefinitions) + 0x0409 + + + true + Windows + + + + + NDEBUG;%(PreprocessorDefinitions) + true + true + Win32 + .\Release/testautomation.tlb + + + $(SolutionDir)/../include;%(AdditionalIncludeDirectories) + %(AdditionalUsingDirectories) + WIN32;NDEBUG;_WINDOWS;%(PreprocessorDefinitions) + MultiThreadedDLL + Level3 + + + NDEBUG;%(PreprocessorDefinitions) + 0x0409 + + + Windows + + + + + NDEBUG;%(PreprocessorDefinitions) + true + true + X64 + .\Release/testautomation.tlb + + + $(SolutionDir)/../include;%(AdditionalIncludeDirectories) + %(AdditionalUsingDirectories) + WIN32;NDEBUG;_WINDOWS;%(PreprocessorDefinitions) + MultiThreadedDLL + Level3 + + + NDEBUG;%(PreprocessorDefinitions) + 0x0409 + + + Windows + + + + + {81ce8daf-ebb2-4761-8e45-b71abcca8c68} + false + false + true + + + {da956fd3-e142-46f2-9dd5-c78bebb56b7a} + false + false + true + + + {da956fd3-e143-46f2-9fe5-c77bebc56b1a} + false + false + true + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/VisualC/tests/testautomation/testautomation_VS2008.vcproj b/VisualC/tests/testautomation/testautomation_VS2008.vcproj new file mode 100755 index 000000000..dc1bec0f4 --- /dev/null +++ b/VisualC/tests/testautomation/testautomation_VS2008.vcproj @@ -0,0 +1,431 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/VisualC/tests/testdraw2/testdraw2.vcxproj b/VisualC/tests/testdraw2/testdraw2.vcxproj new file mode 100644 index 000000000..c6dd91194 --- /dev/null +++ b/VisualC/tests/testdraw2/testdraw2.vcxproj @@ -0,0 +1,205 @@ + + + + + Debug + Win32 + + + Debug + x64 + + + Release + Win32 + + + Release + x64 + + + + {8682FE1E-0CF6-4EDD-9BB5-1733D8C8B4DF} + testdraw2 + + + + Application + + + Application + + + Application + + + Application + + + + + + + + + + + + + + + + + + + + + + + <_ProjectFileVersion>10.0.40219.1 + $(SolutionDir)$(Platform)\$(Configuration)\ + $(Platform)\$(Configuration)\ + $(SolutionDir)$(Platform)\$(Configuration)\ + $(Platform)\$(Configuration)\ + $(SolutionDir)$(Platform)\$(Configuration)\ + $(Platform)\$(Configuration)\ + $(SolutionDir)$(Platform)\$(Configuration)\ + $(Platform)\$(Configuration)\ + AllRules.ruleset + + + AllRules.ruleset + + + AllRules.ruleset + + + AllRules.ruleset + + + + + + NDEBUG;%(PreprocessorDefinitions) + true + true + Win32 + .\Release/testdraw2.tlb + + + $(SolutionDir)/../include;%(AdditionalIncludeDirectories) + %(AdditionalUsingDirectories) + WIN32;NDEBUG;_WINDOWS;%(PreprocessorDefinitions) + MultiThreadedDLL + Level3 + + + NDEBUG;%(PreprocessorDefinitions) + 0x0409 + + + Windows + + + + + NDEBUG;%(PreprocessorDefinitions) + true + true + X64 + .\Release/testdraw2.tlb + + + $(SolutionDir)/../include;%(AdditionalIncludeDirectories) + %(AdditionalUsingDirectories) + WIN32;NDEBUG;_WINDOWS;%(PreprocessorDefinitions) + MultiThreadedDLL + Level3 + + + NDEBUG;%(PreprocessorDefinitions) + 0x0409 + + + Windows + + + + + _DEBUG;%(PreprocessorDefinitions) + true + true + Win32 + .\Debug/testdraw2.tlb + + + Disabled + $(SolutionDir)/../include;%(AdditionalIncludeDirectories) + %(AdditionalUsingDirectories) + WIN32;_DEBUG;_WINDOWS;%(PreprocessorDefinitions) + MultiThreadedDLL + Level3 + OldStyle + + + _DEBUG;%(PreprocessorDefinitions) + 0x0409 + + + true + Windows + + + + + _DEBUG;%(PreprocessorDefinitions) + true + true + X64 + .\Debug/testdraw2.tlb + + + Disabled + $(SolutionDir)/../include;%(AdditionalIncludeDirectories) + %(AdditionalUsingDirectories) + WIN32;_DEBUG;_WINDOWS;%(PreprocessorDefinitions) + MultiThreadedDebugDLL + Level3 + OldStyle + + + _DEBUG;%(PreprocessorDefinitions) + 0x0409 + + + true + Windows + + + + + {81ce8daf-ebb2-4761-8e45-b71abcca8c68} + false + false + true + + + {da956fd3-e142-46f2-9dd5-c78bebb56b7a} + false + false + true + + + {da956fd3-e143-46f2-9fe5-c77bebc56b1a} + false + false + true + + + + + + + + + \ No newline at end of file diff --git a/VisualC/tests/testdraw2/testdraw2_VS2008.vcproj b/VisualC/tests/testdraw2/testdraw2_VS2008.vcproj new file mode 100644 index 000000000..16612aeaa --- /dev/null +++ b/VisualC/tests/testdraw2/testdraw2_VS2008.vcproj @@ -0,0 +1,355 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/VisualC/tests/testfile/testfile.vcxproj b/VisualC/tests/testfile/testfile.vcxproj new file mode 100644 index 000000000..d4967d76c --- /dev/null +++ b/VisualC/tests/testfile/testfile.vcxproj @@ -0,0 +1,199 @@ + + + + + Debug + Win32 + + + Debug + x64 + + + Release + Win32 + + + Release + x64 + + + + {CAE4F1D0-314F-4B10-805B-0EFD670133A0} + testfile + + + + Application + + + Application + + + Application + + + Application + + + + + + + + + + + + + + + + + + + + + + + <_ProjectFileVersion>10.0.40219.1 + $(SolutionDir)$(Platform)\$(Configuration)\ + $(Platform)\$(Configuration)\ + $(SolutionDir)$(Platform)\$(Configuration)\ + $(Platform)\$(Configuration)\ + $(SolutionDir)$(Platform)\$(Configuration)\ + $(Platform)\$(Configuration)\ + $(SolutionDir)$(Platform)\$(Configuration)\ + $(Platform)\$(Configuration)\ + AllRules.ruleset + + + AllRules.ruleset + + + AllRules.ruleset + + + AllRules.ruleset + + + + + + _DEBUG;%(PreprocessorDefinitions) + true + true + Win32 + .\Debug/testfile.tlb + + + Disabled + $(SolutionDir)/../include;%(AdditionalIncludeDirectories) + %(AdditionalUsingDirectories) + WIN32;_DEBUG;_WINDOWS;%(PreprocessorDefinitions) + MultiThreadedDLL + Level3 + OldStyle + + + _DEBUG;%(PreprocessorDefinitions) + 0x0409 + + + true + Windows + + + + + _DEBUG;%(PreprocessorDefinitions) + true + true + X64 + .\Debug/testfile.tlb + + + Disabled + $(SolutionDir)/../include;%(AdditionalIncludeDirectories) + %(AdditionalUsingDirectories) + WIN32;_DEBUG;_WINDOWS;%(PreprocessorDefinitions) + MultiThreadedDebugDLL + Level3 + OldStyle + + + _DEBUG;%(PreprocessorDefinitions) + 0x0409 + + + true + Windows + + + + + NDEBUG;%(PreprocessorDefinitions) + true + true + Win32 + .\Release/testfile.tlb + + + $(SolutionDir)/../include;%(AdditionalIncludeDirectories) + %(AdditionalUsingDirectories) + WIN32;NDEBUG;_WINDOWS;%(PreprocessorDefinitions) + MultiThreadedDLL + Level3 + + + NDEBUG;%(PreprocessorDefinitions) + 0x0409 + + + Windows + + + + + NDEBUG;%(PreprocessorDefinitions) + true + true + X64 + .\Release/testfile.tlb + + + $(SolutionDir)/../include;%(AdditionalIncludeDirectories) + %(AdditionalUsingDirectories) + WIN32;NDEBUG;_WINDOWS;%(PreprocessorDefinitions) + MultiThreadedDLL + Level3 + + + NDEBUG;%(PreprocessorDefinitions) + 0x0409 + + + Windows + + + + + {81ce8daf-ebb2-4761-8e45-b71abcca8c68} + false + false + true + + + {da956fd3-e142-46f2-9dd5-c78bebb56b7a} + false + false + true + + + + + + + + + \ No newline at end of file diff --git a/VisualC/tests/testfile/testfile_VS2008.vcproj b/VisualC/tests/testfile/testfile_VS2008.vcproj new file mode 100644 index 000000000..46f796a4a --- /dev/null +++ b/VisualC/tests/testfile/testfile_VS2008.vcproj @@ -0,0 +1,348 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/VisualC/tests/testgamecontroller/testgamecontroller.vcxproj b/VisualC/tests/testgamecontroller/testgamecontroller.vcxproj new file mode 100644 index 000000000..1b91b8774 --- /dev/null +++ b/VisualC/tests/testgamecontroller/testgamecontroller.vcxproj @@ -0,0 +1,255 @@ + + + + + Debug + Win32 + + + Debug + x64 + + + Release + Win32 + + + Release + x64 + + + + {55812185-D13C-4022-9C81-32E0F4A08305} + testgamecontroller + + + + Application + + + Application + + + Application + + + Application + + + + + + + + + + + + + + + + + + + + + + + <_ProjectFileVersion>10.0.40219.1 + $(SolutionDir)$(Platform)\$(Configuration)\ + $(Platform)\$(Configuration)\ + $(SolutionDir)$(Platform)\$(Configuration)\ + $(Platform)\$(Configuration)\ + $(SolutionDir)$(Platform)\$(Configuration)\ + $(Platform)\$(Configuration)\ + $(SolutionDir)$(Platform)\$(Configuration)\ + $(Platform)\$(Configuration)\ + AllRules.ruleset + + + AllRules.ruleset + + + AllRules.ruleset + + + AllRules.ruleset + + + + + + NDEBUG;%(PreprocessorDefinitions) + true + true + Win32 + .\Release/testgamecontroller.tlb + + + $(SolutionDir)/../include;%(AdditionalIncludeDirectories) + %(AdditionalUsingDirectories) + WIN32;NDEBUG;_WINDOWS;%(PreprocessorDefinitions) + MultiThreadedDLL + Level3 + + + NDEBUG;%(PreprocessorDefinitions) + 0x0409 + + + Windows + + + + + NDEBUG;%(PreprocessorDefinitions) + true + true + X64 + .\Release/testgamecontroller.tlb + + + $(SolutionDir)/../include;%(AdditionalIncludeDirectories) + %(AdditionalUsingDirectories) + WIN32;NDEBUG;_WINDOWS;%(PreprocessorDefinitions) + MultiThreadedDLL + Level3 + + + NDEBUG;%(PreprocessorDefinitions) + 0x0409 + + + Windows + + + + + _DEBUG;%(PreprocessorDefinitions) + true + true + Win32 + .\Debug/testgamecontroller.tlb + + + Disabled + $(SolutionDir)/../include;%(AdditionalIncludeDirectories) + %(AdditionalUsingDirectories) + WIN32;_DEBUG;_WINDOWS;%(PreprocessorDefinitions) + MultiThreadedDLL + Level3 + OldStyle + + + _DEBUG;%(PreprocessorDefinitions) + 0x0409 + + + true + Windows + + + + + _DEBUG;%(PreprocessorDefinitions) + true + true + X64 + .\Debug/testgamecontroller.tlb + + + Disabled + $(SolutionDir)/../include;%(AdditionalIncludeDirectories) + %(AdditionalUsingDirectories) + WIN32;_DEBUG;_WINDOWS;%(PreprocessorDefinitions) + MultiThreadedDebugDLL + Level3 + OldStyle + + + _DEBUG;%(PreprocessorDefinitions) + 0x0409 + + + true + Windows + + + + + {81ce8daf-ebb2-4761-8e45-b71abcca8c68} + false + false + true + + + {da956fd3-e142-46f2-9dd5-c78bebb56b7a} + false + false + true + + + + + Copying %(Filename)%(Extension) + copy %(FullPath) $(ProjectDir)\ + + $(ProjectDir)\%(Filename)%(Extension);%(Outputs) + Copying %(Filename)%(Extension) + copy %(FullPath) $(ProjectDir)\ + + $(ProjectDir)\%(Filename)%(Extension);%(Outputs) + Copying %(Filename)%(Extension) + copy %(FullPath) $(ProjectDir)\ + + $(ProjectDir)\%(Filename)%(Extension);%(Outputs) + Copying %(Filename)%(Extension) + copy %(FullPath) $(ProjectDir)\ + + $(ProjectDir)\%(Filename)%(Extension);%(Outputs) + + + Copying %(Filename)%(Extension) + copy %(FullPath) $(ProjectDir)\ + + $(ProjectDir)\%(Filename)%(Extension);%(Outputs) + Copying %(Filename)%(Extension) + copy %(FullPath) $(ProjectDir)\ + + $(ProjectDir)\%(Filename)%(Extension);%(Outputs) + Copying %(Filename)%(Extension) + copy %(FullPath) $(ProjectDir)\ + + $(ProjectDir)\%(Filename)%(Extension);%(Outputs) + Copying %(Filename)%(Extension) + copy %(FullPath) $(ProjectDir)\ + + $(ProjectDir)\%(Filename)%(Extension);%(Outputs) + + + Copying %(Filename)%(Extension) + copy %(FullPath) $(ProjectDir)\ + + $(ProjectDir)\%(Filename)%(Extension);%(Outputs) + Copying %(Filename)%(Extension) + copy %(FullPath) $(ProjectDir)\ + + $(ProjectDir)\%(Filename)%(Extension);%(Outputs) + Copying %(Filename)%(Extension) + copy %(FullPath) $(ProjectDir)\ + + $(ProjectDir)\%(Filename)%(Extension);%(Outputs) + Copying %(Filename)%(Extension) + copy %(FullPath) $(ProjectDir)\ + + $(ProjectDir)\%(Filename)%(Extension);%(Outputs) + + + + + + + + + \ No newline at end of file diff --git a/VisualC/tests/testgamecontroller/testgamecontroller_VS2008.vcproj b/VisualC/tests/testgamecontroller/testgamecontroller_VS2008.vcproj new file mode 100644 index 000000000..1b31f57b0 --- /dev/null +++ b/VisualC/tests/testgamecontroller/testgamecontroller_VS2008.vcproj @@ -0,0 +1,480 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/VisualC/tests/testgesture/testgesture.vcxproj b/VisualC/tests/testgesture/testgesture.vcxproj new file mode 100644 index 000000000..30800e0bb --- /dev/null +++ b/VisualC/tests/testgesture/testgesture.vcxproj @@ -0,0 +1,199 @@ + + + + + Debug + Win32 + + + Debug + x64 + + + Release + Win32 + + + Release + x64 + + + + {79CEE57E-1BC3-4FF6-90B3-9E39763CDAFF} + testgesture + + + + Application + + + Application + + + Application + + + Application + + + + + + + + + + + + + + + + + + + + + + + <_ProjectFileVersion>10.0.40219.1 + $(SolutionDir)$(Platform)\$(Configuration)\ + $(Platform)\$(Configuration)\ + $(SolutionDir)$(Platform)\$(Configuration)\ + $(Platform)\$(Configuration)\ + $(SolutionDir)$(Platform)\$(Configuration)\ + $(Platform)\$(Configuration)\ + $(SolutionDir)$(Platform)\$(Configuration)\ + $(Platform)\$(Configuration)\ + AllRules.ruleset + + + AllRules.ruleset + + + AllRules.ruleset + + + AllRules.ruleset + + + + + + _DEBUG;%(PreprocessorDefinitions) + true + true + Win32 + .\Debug/testgesture.tlb + + + Disabled + $(SolutionDir)/../include;%(AdditionalIncludeDirectories) + %(AdditionalUsingDirectories) + WIN32;_DEBUG;_WINDOWS;%(PreprocessorDefinitions) + MultiThreadedDLL + Level3 + OldStyle + + + _DEBUG;%(PreprocessorDefinitions) + 0x0409 + + + true + Windows + + + + + _DEBUG;%(PreprocessorDefinitions) + true + true + X64 + .\Debug/testgesture.tlb + + + Disabled + $(SolutionDir)/../include;%(AdditionalIncludeDirectories) + %(AdditionalUsingDirectories) + WIN32;_DEBUG;_WINDOWS;%(PreprocessorDefinitions) + MultiThreadedDebugDLL + Level3 + OldStyle + + + _DEBUG;%(PreprocessorDefinitions) + 0x0409 + + + true + Windows + + + + + NDEBUG;%(PreprocessorDefinitions) + true + true + Win32 + .\Release/testgesture.tlb + + + $(SolutionDir)/../include;%(AdditionalIncludeDirectories) + %(AdditionalUsingDirectories) + WIN32;NDEBUG;_WINDOWS;%(PreprocessorDefinitions) + MultiThreadedDLL + Level3 + + + NDEBUG;%(PreprocessorDefinitions) + 0x0409 + + + Windows + + + + + NDEBUG;%(PreprocessorDefinitions) + true + true + X64 + .\Release/testgesture.tlb + + + $(SolutionDir)/../include;%(AdditionalIncludeDirectories) + %(AdditionalUsingDirectories) + WIN32;NDEBUG;_WINDOWS;%(PreprocessorDefinitions) + MultiThreadedDLL + Level3 + + + NDEBUG;%(PreprocessorDefinitions) + 0x0409 + + + Windows + + + + + {81ce8daf-ebb2-4761-8e45-b71abcca8c68} + false + false + true + + + {da956fd3-e142-46f2-9dd5-c78bebb56b7a} + false + false + true + + + + + + + + + \ No newline at end of file diff --git a/VisualC/tests/testgesture/testgesture_VS2008.vcproj b/VisualC/tests/testgesture/testgesture_VS2008.vcproj new file mode 100644 index 000000000..4fff2273e --- /dev/null +++ b/VisualC/tests/testgesture/testgesture_VS2008.vcproj @@ -0,0 +1,348 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/VisualC/tests/testgl2/testgl2.vcxproj b/VisualC/tests/testgl2/testgl2.vcxproj new file mode 100644 index 000000000..3e5049652 --- /dev/null +++ b/VisualC/tests/testgl2/testgl2.vcxproj @@ -0,0 +1,209 @@ + + + + + Debug + Win32 + + + Debug + x64 + + + Release + Win32 + + + Release + x64 + + + + {8B5CFB38-CCBA-40A8-AD7A-89C57B070884} + testgl2 + + + + Application + + + Application + + + Application + + + Application + + + + + + + + + + + + + + + + + + + + + + + <_ProjectFileVersion>10.0.40219.1 + $(SolutionDir)$(Platform)\$(Configuration)\ + $(Platform)\$(Configuration)\ + $(SolutionDir)$(Platform)\$(Configuration)\ + $(Platform)\$(Configuration)\ + $(SolutionDir)$(Platform)\$(Configuration)\ + $(Platform)\$(Configuration)\ + $(SolutionDir)$(Platform)\$(Configuration)\ + $(Platform)\$(Configuration)\ + AllRules.ruleset + + + AllRules.ruleset + + + AllRules.ruleset + + + AllRules.ruleset + + + + + + _DEBUG;%(PreprocessorDefinitions) + true + true + Win32 + .\Debug/testgl2.tlb + + + Disabled + $(SolutionDir)/../include;%(AdditionalIncludeDirectories) + %(AdditionalUsingDirectories) + _DEBUG;WIN32;_WINDOWS;HAVE_OPENGL;%(PreprocessorDefinitions) + MultiThreadedDLL + Level3 + OldStyle + + + _DEBUG;%(PreprocessorDefinitions) + 0x0409 + + + opengl32.lib;%(AdditionalDependencies) + true + Windows + + + + + _DEBUG;%(PreprocessorDefinitions) + true + true + X64 + .\Debug/testgl2.tlb + + + Disabled + $(SolutionDir)/../include;%(AdditionalIncludeDirectories) + %(AdditionalUsingDirectories) + _DEBUG;WIN32;_WINDOWS;HAVE_OPENGL;%(PreprocessorDefinitions) + MultiThreadedDebugDLL + Level3 + OldStyle + + + _DEBUG;%(PreprocessorDefinitions) + 0x0409 + + + opengl32.lib;%(AdditionalDependencies) + true + Windows + + + + + NDEBUG;%(PreprocessorDefinitions) + true + true + Win32 + .\Release/testgl2.tlb + + + $(SolutionDir)/../include;%(AdditionalIncludeDirectories) + %(AdditionalUsingDirectories) + NDEBUG;WIN32;_WINDOWS;HAVE_OPENGL;%(PreprocessorDefinitions) + MultiThreadedDLL + Level3 + + + NDEBUG;%(PreprocessorDefinitions) + 0x0409 + + + opengl32.lib;%(AdditionalDependencies) + Windows + + + + + NDEBUG;%(PreprocessorDefinitions) + true + true + X64 + .\Release/testgl2.tlb + + + $(SolutionDir)/../include;%(AdditionalIncludeDirectories) + %(AdditionalUsingDirectories) + NDEBUG;WIN32;_WINDOWS;HAVE_OPENGL;%(PreprocessorDefinitions) + MultiThreadedDLL + Level3 + + + NDEBUG;%(PreprocessorDefinitions) + 0x0409 + + + opengl32.lib;%(AdditionalDependencies) + Windows + + + + + {81ce8daf-ebb2-4761-8e45-b71abcca8c68} + false + false + true + + + {da956fd3-e142-46f2-9dd5-c78bebb56b7a} + false + false + true + + + {da956fd3-e143-46f2-9fe5-c77bebc56b1a} + false + false + true + + + + + + + + + \ No newline at end of file diff --git a/VisualC/tests/testgl2/testgl2_VS2008.vcproj b/VisualC/tests/testgl2/testgl2_VS2008.vcproj new file mode 100644 index 000000000..0c42dc72a --- /dev/null +++ b/VisualC/tests/testgl2/testgl2_VS2008.vcproj @@ -0,0 +1,359 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/VisualC/tests/testgles2/testgles2.vcxproj b/VisualC/tests/testgles2/testgles2.vcxproj new file mode 100644 index 000000000..186f6affd --- /dev/null +++ b/VisualC/tests/testgles2/testgles2.vcxproj @@ -0,0 +1,199 @@ + + + + + Debug + Win32 + + + Debug + x64 + + + Release + Win32 + + + Release + x64 + + + + {E9558DFE-1961-4DD4-B09B-DD0EEFD5C315} + testgles2 + + + + Application + + + Application + + + Application + + + Application + + + + + + + + + + + + + + + + + + + + + + + <_ProjectFileVersion>10.0.40219.1 + $(SolutionDir)$(Platform)\$(Configuration)\ + $(Platform)\$(Configuration)\ + $(SolutionDir)$(Platform)\$(Configuration)\ + $(Platform)\$(Configuration)\ + $(SolutionDir)$(Platform)\$(Configuration)\ + $(Platform)\$(Configuration)\ + $(SolutionDir)$(Platform)\$(Configuration)\ + $(Platform)\$(Configuration)\ + AllRules.ruleset + + + AllRules.ruleset + + + AllRules.ruleset + + + AllRules.ruleset + + + + + + _DEBUG;%(PreprocessorDefinitions) + true + true + Win32 + .\Debug/testgles2.tlb + + + Disabled + $(SolutionDir)/../include;%(AdditionalIncludeDirectories) + _DEBUG;WIN32;_WINDOWS;HAVE_OPENGL;%(PreprocessorDefinitions) + MultiThreadedDLL + Level3 + OldStyle + + + _DEBUG;%(PreprocessorDefinitions) + 0x0409 + + + opengl32.lib;%(AdditionalDependencies) + true + Windows + + + + + _DEBUG;%(PreprocessorDefinitions) + true + true + X64 + .\Debug/testgles2.tlb + + + Disabled + $(SolutionDir)/../include;%(AdditionalIncludeDirectories) + _DEBUG;WIN32;_WINDOWS;HAVE_OPENGL;%(PreprocessorDefinitions) + MultiThreadedDLL + Level3 + OldStyle + + + _DEBUG;%(PreprocessorDefinitions) + 0x0409 + + + opengl32.lib;%(AdditionalDependencies) + true + Windows + + + + + NDEBUG;%(PreprocessorDefinitions) + true + true + Win32 + .\Release/testgles2.tlb + + + $(SolutionDir)/../include;%(AdditionalIncludeDirectories) + NDEBUG;WIN32;_WINDOWS;HAVE_OPENGL;%(PreprocessorDefinitions) + MultiThreadedDLL + Level3 + + + NDEBUG;%(PreprocessorDefinitions) + 0x0409 + + + opengl32.lib;%(AdditionalDependencies) + Windows + + + + + NDEBUG;%(PreprocessorDefinitions) + true + true + X64 + .\Release/testgles2.tlb + + + $(SolutionDir)/../include;%(AdditionalIncludeDirectories) + NDEBUG;WIN32;_WINDOWS;HAVE_OPENGL;%(PreprocessorDefinitions) + MultiThreadedDLL + Level3 + + + NDEBUG;%(PreprocessorDefinitions) + 0x0409 + + + opengl32.lib;%(AdditionalDependencies) + Windows + + + + + {81ce8daf-ebb2-4761-8e45-b71abcca8c68} + false + false + true + + + {da956fd3-e142-46f2-9dd5-c78bebb56b7a} + false + false + true + + + + + + + + + \ No newline at end of file diff --git a/VisualC/tests/testgles2/testgles2_VS2008.vcproj b/VisualC/tests/testgles2/testgles2_VS2008.vcproj new file mode 100644 index 000000000..b70a13715 --- /dev/null +++ b/VisualC/tests/testgles2/testgles2_VS2008.vcproj @@ -0,0 +1,348 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/VisualC/tests/testjoystick/testjoystick.vcxproj b/VisualC/tests/testjoystick/testjoystick.vcxproj new file mode 100644 index 000000000..b1c909f44 --- /dev/null +++ b/VisualC/tests/testjoystick/testjoystick.vcxproj @@ -0,0 +1,199 @@ + + + + + Debug + Win32 + + + Debug + x64 + + + Release + Win32 + + + Release + x64 + + + + {55812185-D13C-4022-9C81-32E0F4A08304} + testjoystick + + + + Application + + + Application + + + Application + + + Application + + + + + + + + + + + + + + + + + + + + + + + <_ProjectFileVersion>10.0.40219.1 + $(SolutionDir)$(Platform)\$(Configuration)\ + $(Platform)\$(Configuration)\ + $(SolutionDir)$(Platform)\$(Configuration)\ + $(Platform)\$(Configuration)\ + $(SolutionDir)$(Platform)\$(Configuration)\ + $(Platform)\$(Configuration)\ + $(SolutionDir)$(Platform)\$(Configuration)\ + $(Platform)\$(Configuration)\ + AllRules.ruleset + + + AllRules.ruleset + + + AllRules.ruleset + + + AllRules.ruleset + + + + + + NDEBUG;%(PreprocessorDefinitions) + true + true + Win32 + .\Release/testjoystick.tlb + + + $(SolutionDir)/../include;%(AdditionalIncludeDirectories) + %(AdditionalUsingDirectories) + WIN32;NDEBUG;_WINDOWS;%(PreprocessorDefinitions) + MultiThreadedDLL + Level3 + + + NDEBUG;%(PreprocessorDefinitions) + 0x0409 + + + Windows + + + + + NDEBUG;%(PreprocessorDefinitions) + true + true + X64 + .\Release/testjoystick.tlb + + + $(SolutionDir)/../include;%(AdditionalIncludeDirectories) + %(AdditionalUsingDirectories) + WIN32;NDEBUG;_WINDOWS;%(PreprocessorDefinitions) + MultiThreadedDLL + Level3 + + + NDEBUG;%(PreprocessorDefinitions) + 0x0409 + + + Windows + + + + + _DEBUG;%(PreprocessorDefinitions) + true + true + Win32 + .\Debug/testjoystick.tlb + + + Disabled + $(SolutionDir)/../include;%(AdditionalIncludeDirectories) + %(AdditionalUsingDirectories) + WIN32;_DEBUG;_WINDOWS;%(PreprocessorDefinitions) + MultiThreadedDLL + Level3 + OldStyle + + + _DEBUG;%(PreprocessorDefinitions) + 0x0409 + + + true + Windows + + + + + _DEBUG;%(PreprocessorDefinitions) + true + true + X64 + .\Debug/testjoystick.tlb + + + Disabled + $(SolutionDir)/../include;%(AdditionalIncludeDirectories) + %(AdditionalUsingDirectories) + WIN32;_DEBUG;_WINDOWS;%(PreprocessorDefinitions) + MultiThreadedDebugDLL + Level3 + OldStyle + + + _DEBUG;%(PreprocessorDefinitions) + 0x0409 + + + true + Windows + + + + + {81ce8daf-ebb2-4761-8e45-b71abcca8c68} + false + false + true + + + {da956fd3-e142-46f2-9dd5-c78bebb56b7a} + false + false + true + + + + + + + + + \ No newline at end of file diff --git a/VisualC/tests/testjoystick/testjoystick_VS2008.vcproj b/VisualC/tests/testjoystick/testjoystick_VS2008.vcproj new file mode 100644 index 000000000..eb1a19fa6 --- /dev/null +++ b/VisualC/tests/testjoystick/testjoystick_VS2008.vcproj @@ -0,0 +1,348 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/VisualC/tests/testoverlay2/testoverlay2.vcxproj b/VisualC/tests/testoverlay2/testoverlay2.vcxproj new file mode 100644 index 000000000..b17f64c01 --- /dev/null +++ b/VisualC/tests/testoverlay2/testoverlay2.vcxproj @@ -0,0 +1,219 @@ + + + + + Debug + Win32 + + + Debug + x64 + + + Release + Win32 + + + Release + x64 + + + + {B51E0D74-F0A2-45A2-BD2A-8B7D95B8204A} + testoverlay2 + + + + Application + + + Application + + + Application + + + Application + + + + + + + + + + + + + + + + + + + + + + + <_ProjectFileVersion>10.0.40219.1 + $(SolutionDir)$(Platform)\$(Configuration)\ + $(Platform)\$(Configuration)\ + $(SolutionDir)$(Platform)\$(Configuration)\ + $(Platform)\$(Configuration)\ + $(SolutionDir)$(Platform)\$(Configuration)\ + $(Platform)\$(Configuration)\ + $(SolutionDir)$(Platform)\$(Configuration)\ + $(Platform)\$(Configuration)\ + AllRules.ruleset + + + AllRules.ruleset + + + AllRules.ruleset + + + AllRules.ruleset + + + + + + NDEBUG;%(PreprocessorDefinitions) + true + true + Win32 + .\Release/testoverlay2.tlb + + + $(SolutionDir)/../include;%(AdditionalIncludeDirectories) + %(AdditionalUsingDirectories) + WIN32;NDEBUG;_WINDOWS;%(PreprocessorDefinitions) + MultiThreadedDLL + Level3 + + + NDEBUG;%(PreprocessorDefinitions) + 0x0409 + + + Windows + + + + + NDEBUG;%(PreprocessorDefinitions) + true + true + X64 + .\Release/testoverlay2.tlb + + + $(SolutionDir)/../include;%(AdditionalIncludeDirectories) + %(AdditionalUsingDirectories) + WIN32;NDEBUG;_WINDOWS;%(PreprocessorDefinitions) + MultiThreadedDLL + Level3 + + + NDEBUG;%(PreprocessorDefinitions) + 0x0409 + + + Windows + + + + + _DEBUG;%(PreprocessorDefinitions) + true + true + Win32 + .\Debug/testoverlay2.tlb + + + Disabled + $(SolutionDir)/../include;%(AdditionalIncludeDirectories) + %(AdditionalUsingDirectories) + WIN32;_DEBUG;_WINDOWS;%(PreprocessorDefinitions) + MultiThreadedDLL + Level3 + OldStyle + + + _DEBUG;%(PreprocessorDefinitions) + 0x0409 + + + true + Windows + + + + + _DEBUG;%(PreprocessorDefinitions) + true + true + X64 + .\Debug/testoverlay2.tlb + + + Disabled + $(SolutionDir)/../include;%(AdditionalIncludeDirectories) + %(AdditionalUsingDirectories) + WIN32;_DEBUG;_WINDOWS;%(PreprocessorDefinitions) + MultiThreadedDebugDLL + Level3 + OldStyle + + + _DEBUG;%(PreprocessorDefinitions) + 0x0409 + + + true + Windows + + + + + {81ce8daf-ebb2-4761-8e45-b71abcca8c68} + false + false + true + + + {da956fd3-e142-46f2-9dd5-c78bebb56b7a} + false + false + true + + + + + Copying %(Filename)%(Extension) + copy %(FullPath) $(ProjectDir)\ + + $(ProjectDir)\%(Filename)%(Extension);%(Outputs) + Copying %(Filename)%(Extension) + copy %(FullPath) $(ProjectDir)\ + + $(ProjectDir)\%(Filename)%(Extension);%(Outputs) + Copying %(Filename)%(Extension) + copy %(FullPath) $(ProjectDir)\ + + $(ProjectDir)\%(Filename)%(Extension);%(Outputs) + Copying %(Filename)%(Extension) + copy %(FullPath) $(ProjectDir)\ + + $(ProjectDir)\%(Filename)%(Extension);%(Outputs) + + + + + + + + + \ No newline at end of file diff --git a/VisualC/tests/testoverlay2/testoverlay2_VS2008.vcproj b/VisualC/tests/testoverlay2/testoverlay2_VS2008.vcproj new file mode 100644 index 000000000..578a7c34a --- /dev/null +++ b/VisualC/tests/testoverlay2/testoverlay2_VS2008.vcproj @@ -0,0 +1,392 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/VisualC/tests/testplatform/testplatform.vcxproj b/VisualC/tests/testplatform/testplatform.vcxproj new file mode 100644 index 000000000..db3b7e9ec --- /dev/null +++ b/VisualC/tests/testplatform/testplatform.vcxproj @@ -0,0 +1,227 @@ + + + + + Debug + Win32 + + + Debug + x64 + + + Release + Win32 + + + Release + x64 + + + + {26932B24-EFC6-4E3A-B277-ED653DA37968} + testplatform + + + + Application + + + Application + + + Application + + + Application + + + + + + + + + + + + + + + + + + + + + + + <_ProjectFileVersion>10.0.40219.1 + $(SolutionDir)$(Platform)\$(Configuration)\ + $(Platform)\$(Configuration)\ + $(SolutionDir)$(Platform)\$(Configuration)\ + $(Platform)\$(Configuration)\ + $(SolutionDir)$(Platform)\$(Configuration)\ + $(Platform)\$(Configuration)\ + $(SolutionDir)$(Platform)\$(Configuration)\ + $(Platform)\$(Configuration)\ + AllRules.ruleset + + + AllRules.ruleset + + + AllRules.ruleset + + + AllRules.ruleset + + + + + + _DEBUG;%(PreprocessorDefinitions) + true + true + Win32 + .\Debug/testplatform.tlb + + + + + Disabled + $(SolutionDir)/../include;%(AdditionalIncludeDirectories) + %(AdditionalUsingDirectories) + WIN32;_DEBUG;_WINDOWS;%(PreprocessorDefinitions) + MultiThreadedDLL + .\Debug/testplatform.pch + Level3 + OldStyle + + + _DEBUG;%(PreprocessorDefinitions) + 0x0409 + + + true + Windows + + + true + .\Debug/testplatform.bsc + + + + + _DEBUG;%(PreprocessorDefinitions) + true + true + X64 + .\Debug/testplatform.tlb + + + + + Disabled + $(SolutionDir)/../include;%(AdditionalIncludeDirectories) + %(AdditionalUsingDirectories) + WIN32;_DEBUG;_WINDOWS;%(PreprocessorDefinitions) + MultiThreadedDebugDLL + .\Debug/testplatform.pch + Level3 + OldStyle + + + _DEBUG;%(PreprocessorDefinitions) + 0x0409 + + + true + Windows + + + true + .\Debug/testplatform.bsc + + + + + NDEBUG;%(PreprocessorDefinitions) + true + true + Win32 + .\Release/testplatform.tlb + + + + + $(SolutionDir)/../include;%(AdditionalIncludeDirectories) + %(AdditionalUsingDirectories) + WIN32;NDEBUG;_WINDOWS;%(PreprocessorDefinitions) + MultiThreadedDLL + .\Release/testplatform.pch + Level3 + + + NDEBUG;%(PreprocessorDefinitions) + 0x0409 + + + Windows + + + true + .\Release/testplatform.bsc + + + + + NDEBUG;%(PreprocessorDefinitions) + true + true + X64 + .\Release/testplatform.tlb + + + + + $(SolutionDir)/../include;%(AdditionalIncludeDirectories) + %(AdditionalUsingDirectories) + WIN32;NDEBUG;_WINDOWS;%(PreprocessorDefinitions) + MultiThreadedDLL + .\Release/testplatform.pch + Level3 + + + NDEBUG;%(PreprocessorDefinitions) + 0x0409 + + + Windows + + + true + .\Release/testplatform.bsc + + + + + {81ce8daf-ebb2-4761-8e45-b71abcca8c68} + false + false + true + + + {da956fd3-e142-46f2-9dd5-c78bebb56b7a} + false + false + true + + + + + + + + + \ No newline at end of file diff --git a/VisualC/tests/testplatform/testplatform_VS2008.vcproj b/VisualC/tests/testplatform/testplatform_VS2008.vcproj new file mode 100644 index 000000000..014faeeaa --- /dev/null +++ b/VisualC/tests/testplatform/testplatform_VS2008.vcproj @@ -0,0 +1,364 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/VisualC/tests/testpower/testpower.vcxproj b/VisualC/tests/testpower/testpower.vcxproj new file mode 100644 index 000000000..63e016834 --- /dev/null +++ b/VisualC/tests/testpower/testpower.vcxproj @@ -0,0 +1,199 @@ + + + + + Debug + Win32 + + + Debug + x64 + + + Release + Win32 + + + Release + x64 + + + + {C4E04D18-EF76-4B42-B4C2-16A1BACDC0A3} + testpower + + + + Application + + + Application + + + Application + + + Application + + + + + + + + + + + + + + + + + + + + + + + <_ProjectFileVersion>10.0.40219.1 + $(SolutionDir)$(Platform)\$(Configuration)\ + $(Platform)\$(Configuration)\ + $(SolutionDir)$(Platform)\$(Configuration)\ + $(Platform)\$(Configuration)\ + $(SolutionDir)$(Platform)\$(Configuration)\ + $(Platform)\$(Configuration)\ + $(SolutionDir)$(Platform)\$(Configuration)\ + $(Platform)\$(Configuration)\ + AllRules.ruleset + + + AllRules.ruleset + + + AllRules.ruleset + + + AllRules.ruleset + + + + + + _DEBUG;%(PreprocessorDefinitions) + true + true + Win32 + .\Debug/testpower.tlb + + + Disabled + $(SolutionDir)/../include;%(AdditionalIncludeDirectories) + %(AdditionalUsingDirectories) + WIN32;_DEBUG;_WINDOWS;%(PreprocessorDefinitions) + MultiThreadedDLL + Level3 + OldStyle + + + _DEBUG;%(PreprocessorDefinitions) + 0x0409 + + + true + Windows + + + + + _DEBUG;%(PreprocessorDefinitions) + true + true + X64 + .\Debug/testpower.tlb + + + Disabled + $(SolutionDir)/../include;%(AdditionalIncludeDirectories) + %(AdditionalUsingDirectories) + WIN32;_DEBUG;_WINDOWS;%(PreprocessorDefinitions) + MultiThreadedDebugDLL + Level3 + OldStyle + + + _DEBUG;%(PreprocessorDefinitions) + 0x0409 + + + true + Windows + + + + + NDEBUG;%(PreprocessorDefinitions) + true + true + Win32 + .\Release/testpower.tlb + + + $(SolutionDir)/../include;%(AdditionalIncludeDirectories) + %(AdditionalUsingDirectories) + WIN32;NDEBUG;_WINDOWS;%(PreprocessorDefinitions) + MultiThreadedDLL + Level3 + + + NDEBUG;%(PreprocessorDefinitions) + 0x0409 + + + Windows + + + + + NDEBUG;%(PreprocessorDefinitions) + true + true + X64 + .\Release/testpower.tlb + + + $(SolutionDir)/../include;%(AdditionalIncludeDirectories) + %(AdditionalUsingDirectories) + WIN32;NDEBUG;_WINDOWS;%(PreprocessorDefinitions) + MultiThreadedDLL + Level3 + + + NDEBUG;%(PreprocessorDefinitions) + 0x0409 + + + Windows + + + + + {81ce8daf-ebb2-4761-8e45-b71abcca8c68} + false + false + true + + + {da956fd3-e142-46f2-9dd5-c78bebb56b7a} + false + false + true + + + + + + + + + \ No newline at end of file diff --git a/VisualC/tests/testpower/testpower_VS2008.vcproj b/VisualC/tests/testpower/testpower_VS2008.vcproj new file mode 100644 index 000000000..e140e6b94 --- /dev/null +++ b/VisualC/tests/testpower/testpower_VS2008.vcproj @@ -0,0 +1,348 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/VisualC/tests/testrendertarget/testrendertarget.vcxproj b/VisualC/tests/testrendertarget/testrendertarget.vcxproj new file mode 100644 index 000000000..b186ee994 --- /dev/null +++ b/VisualC/tests/testrendertarget/testrendertarget.vcxproj @@ -0,0 +1,243 @@ + + + + + Debug + Win32 + + + Debug + x64 + + + Release + Win32 + + + Release + x64 + + + + {2D17C1EB-1157-460E-9A99-A82BFC1F9D1E} + testrendertarget + + + + Application + + + Application + + + Application + + + Application + + + + + + + + + + + + + + + + + + + + + + + <_ProjectFileVersion>10.0.40219.1 + $(SolutionDir)$(Platform)\$(Configuration)\ + $(Platform)\$(Configuration)\ + $(SolutionDir)$(Platform)\$(Configuration)\ + $(Platform)\$(Configuration)\ + $(SolutionDir)$(Platform)\$(Configuration)\ + $(Platform)\$(Configuration)\ + $(SolutionDir)$(Platform)\$(Configuration)\ + $(Platform)\$(Configuration)\ + AllRules.ruleset + + + AllRules.ruleset + + + AllRules.ruleset + + + AllRules.ruleset + + + + + + NDEBUG;%(PreprocessorDefinitions) + true + true + Win32 + .\Release/testrendertarget.tlb + + + $(SolutionDir)/../include;%(AdditionalIncludeDirectories) + %(AdditionalUsingDirectories) + WIN32;NDEBUG;_WINDOWS;%(PreprocessorDefinitions) + MultiThreadedDLL + Level3 + + + NDEBUG;%(PreprocessorDefinitions) + 0x0409 + + + Windows + + + + + NDEBUG;%(PreprocessorDefinitions) + true + true + X64 + .\Release/testrendertarget.tlb + + + $(SolutionDir)/../include;%(AdditionalIncludeDirectories) + %(AdditionalUsingDirectories) + WIN32;NDEBUG;_WINDOWS;%(PreprocessorDefinitions) + MultiThreadedDLL + Level3 + + + NDEBUG;%(PreprocessorDefinitions) + 0x0409 + + + Windows + + + + + _DEBUG;%(PreprocessorDefinitions) + true + true + Win32 + .\Debug/testrendertarget.tlb + + + Disabled + $(SolutionDir)/../include;%(AdditionalIncludeDirectories) + %(AdditionalUsingDirectories) + WIN32;_DEBUG;_WINDOWS;%(PreprocessorDefinitions) + MultiThreadedDLL + Level3 + OldStyle + + + _DEBUG;%(PreprocessorDefinitions) + 0x0409 + + + true + Windows + + + + + _DEBUG;%(PreprocessorDefinitions) + true + true + X64 + .\Debug/testrendertarget.tlb + + + Disabled + $(SolutionDir)/../include;%(AdditionalIncludeDirectories) + %(AdditionalUsingDirectories) + WIN32;_DEBUG;_WINDOWS;%(PreprocessorDefinitions) + MultiThreadedDebugDLL + Level3 + OldStyle + + + _DEBUG;%(PreprocessorDefinitions) + 0x0409 + + + true + Windows + + + + + {81ce8daf-ebb2-4761-8e45-b71abcca8c68} + false + false + true + + + {da956fd3-e142-46f2-9dd5-c78bebb56b7a} + false + false + true + + + {da956fd3-e143-46f2-9fe5-c77bebc56b1a} + false + false + true + + + + + Copying %(Filename)%(Extension) + copy %(FullPath) $(ProjectDir)\ + + $(ProjectDir)\%(Filename)%(Extension);%(Outputs) + Copying %(Filename)%(Extension) + copy %(FullPath) $(ProjectDir)\ + + $(ProjectDir)\%(Filename)%(Extension);%(Outputs) + Copying %(Filename)%(Extension) + copy %(FullPath) $(ProjectDir)\ + + $(ProjectDir)\%(Filename)%(Extension);%(Outputs) + Copying %(Filename)%(Extension) + copy %(FullPath) $(ProjectDir)\ + + $(ProjectDir)\%(Filename)%(Extension);%(Outputs) + + + Copying %(Filename)%(Extension) + copy %(FullPath) $(ProjectDir)\ + + $(ProjectDir)\%(Filename)%(Extension);%(Outputs) + Copying %(Filename)%(Extension) + copy %(FullPath) $(ProjectDir)\ + + $(ProjectDir)\%(Filename)%(Extension);%(Outputs) + Copying %(Filename)%(Extension) + copy %(FullPath) $(ProjectDir)\ + + $(ProjectDir)\%(Filename)%(Extension);%(Outputs) + Copying %(Filename)%(Extension) + copy %(FullPath) $(ProjectDir)\ + + $(ProjectDir)\%(Filename)%(Extension);%(Outputs) + + + + + + + + + \ No newline at end of file diff --git a/VisualC/tests/testrendertarget/testrendertarget_VS2008.vcproj b/VisualC/tests/testrendertarget/testrendertarget_VS2008.vcproj new file mode 100644 index 000000000..d13432ac2 --- /dev/null +++ b/VisualC/tests/testrendertarget/testrendertarget_VS2008.vcproj @@ -0,0 +1,443 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/VisualC/tests/testrumble/testrumble.vcxproj b/VisualC/tests/testrumble/testrumble.vcxproj new file mode 100644 index 000000000..81e6b9f2d --- /dev/null +++ b/VisualC/tests/testrumble/testrumble.vcxproj @@ -0,0 +1,199 @@ + + + + + Debug + Win32 + + + Debug + x64 + + + Release + Win32 + + + Release + x64 + + + + {BFF40245-E9A6-4297-A425-A554E5D767E8} + testrumble + + + + Application + + + Application + + + Application + + + Application + + + + + + + + + + + + + + + + + + + + + + + <_ProjectFileVersion>10.0.40219.1 + $(SolutionDir)$(Platform)\$(Configuration)\ + $(Platform)\$(Configuration)\ + $(SolutionDir)$(Platform)\$(Configuration)\ + $(Platform)\$(Configuration)\ + $(SolutionDir)$(Platform)\$(Configuration)\ + $(Platform)\$(Configuration)\ + $(SolutionDir)$(Platform)\$(Configuration)\ + $(Platform)\$(Configuration)\ + AllRules.ruleset + + + AllRules.ruleset + + + AllRules.ruleset + + + AllRules.ruleset + + + + + + _DEBUG;%(PreprocessorDefinitions) + true + true + Win32 + .\Debug/testrumble.tlb + + + Disabled + $(SolutionDir)/../include;%(AdditionalIncludeDirectories) + %(AdditionalUsingDirectories) + WIN32;_DEBUG;_WINDOWS;%(PreprocessorDefinitions) + MultiThreadedDLL + Level3 + OldStyle + + + _DEBUG;%(PreprocessorDefinitions) + 0x0409 + + + true + Windows + + + + + _DEBUG;%(PreprocessorDefinitions) + true + true + X64 + .\Debug/testrumble.tlb + + + Disabled + $(SolutionDir)/../include;%(AdditionalIncludeDirectories) + %(AdditionalUsingDirectories) + WIN32;_DEBUG;_WINDOWS;%(PreprocessorDefinitions) + MultiThreadedDebugDLL + Level3 + OldStyle + + + _DEBUG;%(PreprocessorDefinitions) + 0x0409 + + + true + Windows + + + + + NDEBUG;%(PreprocessorDefinitions) + true + true + Win32 + .\Release/testrumble.tlb + + + $(SolutionDir)/../include;%(AdditionalIncludeDirectories) + %(AdditionalUsingDirectories) + WIN32;NDEBUG;_WINDOWS;%(PreprocessorDefinitions) + MultiThreadedDLL + Level3 + + + NDEBUG;%(PreprocessorDefinitions) + 0x0409 + + + Windows + + + + + NDEBUG;%(PreprocessorDefinitions) + true + true + X64 + .\Release/testrumble.tlb + + + $(SolutionDir)/../include;%(AdditionalIncludeDirectories) + %(AdditionalUsingDirectories) + WIN32;NDEBUG;_WINDOWS;%(PreprocessorDefinitions) + MultiThreadedDLL + Level3 + + + NDEBUG;%(PreprocessorDefinitions) + 0x0409 + + + Windows + + + + + {81ce8daf-ebb2-4761-8e45-b71abcca8c68} + false + false + true + + + {da956fd3-e142-46f2-9dd5-c78bebb56b7a} + false + false + true + + + + + + + + + \ No newline at end of file diff --git a/VisualC/tests/testrumble/testrumble_VS2008.vcproj b/VisualC/tests/testrumble/testrumble_VS2008.vcproj new file mode 100644 index 000000000..ea4a85836 --- /dev/null +++ b/VisualC/tests/testrumble/testrumble_VS2008.vcproj @@ -0,0 +1,348 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/VisualC/tests/testscale/testscale.vcxproj b/VisualC/tests/testscale/testscale.vcxproj new file mode 100644 index 000000000..64ce50db9 --- /dev/null +++ b/VisualC/tests/testscale/testscale.vcxproj @@ -0,0 +1,243 @@ + + + + + Debug + Win32 + + + Debug + x64 + + + Release + Win32 + + + Release + x64 + + + + {5D0930C0-7C91-4ECE-9014-7B7DDE9502E6} + testscale + + + + Application + + + Application + + + Application + + + Application + + + + + + + + + + + + + + + + + + + + + + + <_ProjectFileVersion>10.0.40219.1 + $(SolutionDir)$(Platform)\$(Configuration)\ + $(Platform)\$(Configuration)\ + $(SolutionDir)$(Platform)\$(Configuration)\ + $(Platform)\$(Configuration)\ + $(SolutionDir)$(Platform)\$(Configuration)\ + $(Platform)\$(Configuration)\ + $(SolutionDir)$(Platform)\$(Configuration)\ + $(Platform)\$(Configuration)\ + AllRules.ruleset + + + AllRules.ruleset + + + AllRules.ruleset + + + AllRules.ruleset + + + + + + NDEBUG;%(PreprocessorDefinitions) + true + true + Win32 + .\Release/testscale.tlb + + + $(SolutionDir)/../include;%(AdditionalIncludeDirectories) + %(AdditionalUsingDirectories) + WIN32;NDEBUG;_WINDOWS;%(PreprocessorDefinitions) + MultiThreadedDLL + Level3 + + + NDEBUG;%(PreprocessorDefinitions) + 0x0409 + + + Windows + + + + + NDEBUG;%(PreprocessorDefinitions) + true + true + X64 + .\Release/testscale.tlb + + + $(SolutionDir)/../include;%(AdditionalIncludeDirectories) + %(AdditionalUsingDirectories) + WIN32;NDEBUG;_WINDOWS;%(PreprocessorDefinitions) + MultiThreadedDLL + Level3 + + + NDEBUG;%(PreprocessorDefinitions) + 0x0409 + + + Windows + + + + + _DEBUG;%(PreprocessorDefinitions) + true + true + Win32 + .\Debug/testscale.tlb + + + Disabled + $(SolutionDir)/../include;%(AdditionalIncludeDirectories) + %(AdditionalUsingDirectories) + WIN32;_DEBUG;_WINDOWS;%(PreprocessorDefinitions) + MultiThreadedDLL + Level3 + OldStyle + + + _DEBUG;%(PreprocessorDefinitions) + 0x0409 + + + true + Windows + + + + + _DEBUG;%(PreprocessorDefinitions) + true + true + X64 + .\Debug/testscale.tlb + + + Disabled + $(SolutionDir)/../include;%(AdditionalIncludeDirectories) + %(AdditionalUsingDirectories) + WIN32;_DEBUG;_WINDOWS;%(PreprocessorDefinitions) + MultiThreadedDebugDLL + Level3 + OldStyle + + + _DEBUG;%(PreprocessorDefinitions) + 0x0409 + + + true + Windows + + + + + {81ce8daf-ebb2-4761-8e45-b71abcca8c68} + false + false + true + + + {da956fd3-e142-46f2-9dd5-c78bebb56b7a} + false + false + true + + + {da956fd3-e143-46f2-9fe5-c77bebc56b1a} + false + false + true + + + + + Copying %(Filename)%(Extension) + copy %(FullPath) $(ProjectDir)\ + + $(ProjectDir)\%(Filename)%(Extension);%(Outputs) + Copying %(Filename)%(Extension) + copy %(FullPath) $(ProjectDir)\ + + $(ProjectDir)\%(Filename)%(Extension);%(Outputs) + Copying %(Filename)%(Extension) + copy %(FullPath) $(ProjectDir)\ + + $(ProjectDir)\%(Filename)%(Extension);%(Outputs) + Copying %(Filename)%(Extension) + copy %(FullPath) $(ProjectDir)\ + + $(ProjectDir)\%(Filename)%(Extension);%(Outputs) + + + Copying %(Filename)%(Extension) + copy %(FullPath) $(ProjectDir)\ + + $(ProjectDir)\%(Filename)%(Extension);%(Outputs) + Copying %(Filename)%(Extension) + copy %(FullPath) $(ProjectDir)\ + + $(ProjectDir)\%(Filename)%(Extension);%(Outputs) + Copying %(Filename)%(Extension) + copy %(FullPath) $(ProjectDir)\ + + $(ProjectDir)\%(Filename)%(Extension);%(Outputs) + Copying %(Filename)%(Extension) + copy %(FullPath) $(ProjectDir)\ + + $(ProjectDir)\%(Filename)%(Extension);%(Outputs) + + + + + + + + + \ No newline at end of file diff --git a/VisualC/tests/testscale/testscale_VS2008.vcproj b/VisualC/tests/testscale/testscale_VS2008.vcproj new file mode 100644 index 000000000..5a15fccf8 --- /dev/null +++ b/VisualC/tests/testscale/testscale_VS2008.vcproj @@ -0,0 +1,443 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/VisualC/tests/testshape/testshape.vcxproj b/VisualC/tests/testshape/testshape.vcxproj new file mode 100644 index 000000000..81938c334 --- /dev/null +++ b/VisualC/tests/testshape/testshape.vcxproj @@ -0,0 +1,199 @@ + + + + + Debug + Win32 + + + Debug + x64 + + + Release + Win32 + + + Release + x64 + + + + {31A3E4E1-AAE9-4EF3-9B23-18D0924BE4D2} + testshape + + + + Application + + + Application + + + Application + + + Application + + + + + + + + + + + + + + + + + + + + + + + <_ProjectFileVersion>10.0.40219.1 + $(SolutionDir)$(Platform)\$(Configuration)\ + $(Platform)\$(Configuration)\ + $(SolutionDir)$(Platform)\$(Configuration)\ + $(Platform)\$(Configuration)\ + $(SolutionDir)$(Platform)\$(Configuration)\ + $(Platform)\$(Configuration)\ + $(SolutionDir)$(Platform)\$(Configuration)\ + $(Platform)\$(Configuration)\ + AllRules.ruleset + + + AllRules.ruleset + + + AllRules.ruleset + + + AllRules.ruleset + + + + + + NDEBUG;%(PreprocessorDefinitions) + true + true + Win32 + .\Release/testshape.tlb + + + $(SolutionDir)/../include;%(AdditionalIncludeDirectories) + %(AdditionalUsingDirectories) + WIN32;NDEBUG;_WINDOWS;%(PreprocessorDefinitions) + MultiThreadedDLL + Level3 + + + NDEBUG;%(PreprocessorDefinitions) + 0x0409 + + + Windows + + + + + NDEBUG;%(PreprocessorDefinitions) + true + true + X64 + .\Release/testshape.tlb + + + $(SolutionDir)/../include;%(AdditionalIncludeDirectories) + %(AdditionalUsingDirectories) + WIN32;NDEBUG;_WINDOWS;%(PreprocessorDefinitions) + MultiThreadedDLL + Level3 + + + NDEBUG;%(PreprocessorDefinitions) + 0x0409 + + + Windows + + + + + _DEBUG;%(PreprocessorDefinitions) + true + true + Win32 + .\Debug/testshape.tlb + + + Disabled + $(SolutionDir)/../include;%(AdditionalIncludeDirectories) + %(AdditionalUsingDirectories) + WIN32;_DEBUG;_WINDOWS;%(PreprocessorDefinitions) + MultiThreadedDLL + Level3 + OldStyle + + + _DEBUG;%(PreprocessorDefinitions) + 0x0409 + + + true + Windows + + + + + _DEBUG;%(PreprocessorDefinitions) + true + true + X64 + .\Debug/testshape.tlb + + + Disabled + $(SolutionDir)/../include;%(AdditionalIncludeDirectories) + %(AdditionalUsingDirectories) + WIN32;_DEBUG;_WINDOWS;%(PreprocessorDefinitions) + MultiThreadedDebugDLL + Level3 + OldStyle + + + _DEBUG;%(PreprocessorDefinitions) + 0x0409 + + + true + Windows + + + + + {81ce8daf-ebb2-4761-8e45-b71abcca8c68} + false + false + true + + + {da956fd3-e142-46f2-9dd5-c78bebb56b7a} + false + false + true + + + + + + + + + \ No newline at end of file diff --git a/VisualC/tests/testshape/testshape_VS2008.vcproj b/VisualC/tests/testshape/testshape_VS2008.vcproj new file mode 100644 index 000000000..73db78931 --- /dev/null +++ b/VisualC/tests/testshape/testshape_VS2008.vcproj @@ -0,0 +1,348 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/VisualC/tests/testsprite2/testsprite2.vcxproj b/VisualC/tests/testsprite2/testsprite2.vcxproj new file mode 100644 index 000000000..7af6e1ee2 --- /dev/null +++ b/VisualC/tests/testsprite2/testsprite2.vcxproj @@ -0,0 +1,225 @@ + + + + + Debug + Win32 + + + Debug + x64 + + + Release + Win32 + + + Release + x64 + + + + {40FB7794-D3C3-4CFE-BCF4-A80C96635682} + testsprite2 + + + + Application + + + Application + + + Application + + + Application + + + + + + + + + + + + + + + + + + + + + + + <_ProjectFileVersion>10.0.40219.1 + $(SolutionDir)$(Platform)\$(Configuration)\ + $(Platform)\$(Configuration)\ + $(SolutionDir)$(Platform)\$(Configuration)\ + $(Platform)\$(Configuration)\ + $(SolutionDir)$(Platform)\$(Configuration)\ + $(Platform)\$(Configuration)\ + $(SolutionDir)$(Platform)\$(Configuration)\ + $(Platform)\$(Configuration)\ + AllRules.ruleset + + + AllRules.ruleset + + + AllRules.ruleset + + + AllRules.ruleset + + + + + + NDEBUG;%(PreprocessorDefinitions) + true + true + Win32 + .\Release/testsprite2.tlb + + + $(SolutionDir)/../include;%(AdditionalIncludeDirectories) + %(AdditionalUsingDirectories) + WIN32;NDEBUG;_WINDOWS;%(PreprocessorDefinitions) + MultiThreadedDLL + Level3 + + + NDEBUG;%(PreprocessorDefinitions) + 0x0409 + + + Windows + + + + + NDEBUG;%(PreprocessorDefinitions) + true + true + X64 + .\Release/testsprite2.tlb + + + $(SolutionDir)/../include;%(AdditionalIncludeDirectories) + %(AdditionalUsingDirectories) + WIN32;NDEBUG;_WINDOWS;%(PreprocessorDefinitions) + MultiThreadedDLL + Level3 + + + NDEBUG;%(PreprocessorDefinitions) + 0x0409 + + + Windows + + + + + _DEBUG;%(PreprocessorDefinitions) + true + true + Win32 + .\Debug/testsprite2.tlb + + + Disabled + $(SolutionDir)/../include;%(AdditionalIncludeDirectories) + %(AdditionalUsingDirectories) + WIN32;_DEBUG;_WINDOWS;%(PreprocessorDefinitions) + MultiThreadedDLL + Level3 + OldStyle + + + _DEBUG;%(PreprocessorDefinitions) + 0x0409 + + + true + Windows + + + + + _DEBUG;%(PreprocessorDefinitions) + true + true + X64 + .\Debug/testsprite2.tlb + + + Disabled + $(SolutionDir)/../include;%(AdditionalIncludeDirectories) + %(AdditionalUsingDirectories) + WIN32;_DEBUG;_WINDOWS;%(PreprocessorDefinitions) + MultiThreadedDebugDLL + Level3 + OldStyle + + + _DEBUG;%(PreprocessorDefinitions) + 0x0409 + + + true + Windows + + + + + {81ce8daf-ebb2-4761-8e45-b71abcca8c68} + false + false + true + + + {da956fd3-e142-46f2-9dd5-c78bebb56b7a} + false + false + true + + + {da956fd3-e143-46f2-9fe5-c77bebc56b1a} + false + false + true + + + + + Copying %(Filename)%(Extension) + copy %(FullPath) $(ProjectDir)\ + + $(ProjectDir)\%(Filename)%(Extension);%(Outputs) + Copying %(Filename)%(Extension) + copy %(FullPath) $(ProjectDir)\ + + $(ProjectDir)\%(Filename)%(Extension);%(Outputs) + Copying %(Filename)%(Extension) + copy %(FullPath) $(ProjectDir)\ + + $(ProjectDir)\%(Filename)%(Extension);%(Outputs) + Copying %(Filename)%(Extension) + copy %(FullPath) $(ProjectDir)\ + + $(ProjectDir)\%(Filename)%(Extension);%(Outputs) + + + + + + + + + \ No newline at end of file diff --git a/VisualC/tests/testsprite2/testsprite2_VS2008.vcproj b/VisualC/tests/testsprite2/testsprite2_VS2008.vcproj new file mode 100644 index 000000000..7236ecc4f --- /dev/null +++ b/VisualC/tests/testsprite2/testsprite2_VS2008.vcproj @@ -0,0 +1,399 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/VisualC/visualtest/unittest/testquit/testquit_VS2012.vcxproj b/VisualC/visualtest/unittest/testquit/testquit_VS2012.vcxproj new file mode 100755 index 000000000..219b864b0 --- /dev/null +++ b/VisualC/visualtest/unittest/testquit/testquit_VS2012.vcxproj @@ -0,0 +1,216 @@ + + + + + Debug + Win32 + + + Debug + x64 + + + Release + Win32 + + + Release + x64 + + + + testquit + testquit + {1D12C737-7C71-45CE-AE2C-AAB47B690BC8} + + + + Application + false + v110 + + + Application + false + MultiByte + v110 + + + Application + false + v110 + + + Application + false + v110 + + + + + + + + + + + + + + + + + + + + + + + <_ProjectFileVersion>10.0.30319.1 + $(SolutionDir)\$(Platform)\$(Configuration)\ + $(SolutionDir)\$(Platform)\$(Configuration)\ + $(Platform)\$(Configuration)\ + $(Platform)\$(Configuration)\ + false + false + $(SolutionDir)\$(Platform)\$(Configuration)\ + $(SolutionDir)\$(Platform)\$(Configuration)\ + $(Platform)\$(Configuration)\ + $(Platform)\$(Configuration)\ + true + true + + + + NDEBUG;%(PreprocessorDefinitions) + true + true + Win32 + + + OnlyExplicitInline + ..\..\..\..\include;%(AdditionalIncludeDirectories) + WIN32;NDEBUG;_WINDOWS;%(PreprocessorDefinitions) + true + MultiThreadedDLL + true + + + Level3 + true + Default + + + NDEBUG;%(PreprocessorDefinitions) + 0x0409 + + + true + Windows + + + + + NDEBUG;%(PreprocessorDefinitions) + true + true + + + OnlyExplicitInline + ..\..\..\..\include;%(AdditionalIncludeDirectories) + WIN32;NDEBUG;_WINDOWS;%(PreprocessorDefinitions) + true + MultiThreadedDLL + true + + + Level3 + true + Default + + + NDEBUG;%(PreprocessorDefinitions) + 0x0409 + + + true + Windows + + + + + _DEBUG;%(PreprocessorDefinitions) + true + true + Win32 + + + Disabled + ..\..\..\..\include;%(AdditionalIncludeDirectories) + WIN32;_DEBUG;_WINDOWS;%(PreprocessorDefinitions) + MultiThreadedDebugDLL + + + Level3 + true + EditAndContinue + Default + + + _DEBUG;%(PreprocessorDefinitions) + 0x0409 + + + true + true + Windows + false + + + + + _DEBUG;%(PreprocessorDefinitions) + true + true + + + Disabled + ..\..\..\..\include;%(AdditionalIncludeDirectories) + WIN32;_DEBUG;_WINDOWS;%(PreprocessorDefinitions) + MultiThreadedDebugDLL + + + Level3 + true + ProgramDatabase + Default + + + _DEBUG;%(PreprocessorDefinitions) + 0x0409 + + + true + true + Windows + false + + + + + + + + {da956fd3-e142-46f2-9dd5-c78bebb56b7a} + + + {da956fd3-e143-46f2-9fe5-c77bebc56b1a} + + + {81ce8daf-ebb2-4761-8e45-b71abcca8c68} + + + + + + \ No newline at end of file diff --git a/VisualC/visualtest/visualtest_VS2012.vcxproj b/VisualC/visualtest/visualtest_VS2012.vcxproj new file mode 100755 index 000000000..9244b6a2f --- /dev/null +++ b/VisualC/visualtest/visualtest_VS2012.vcxproj @@ -0,0 +1,304 @@ + + + + + Debug + Win32 + + + Debug + x64 + + + Release + Win32 + + + Release + x64 + + + + visualtest + visualtest + {13DDF23A-4A8F-4AF9-9734-CC09D9157924} + + + + Application + false + v110 + + + Application + false + MultiByte + v110 + + + Application + false + v110 + + + Application + false + v110 + + + + + + + + + + + + + + + + + + + + + + + <_ProjectFileVersion>10.0.30319.1 + $(SolutionDir)\$(Platform)\$(Configuration)\ + $(SolutionDir)\$(Platform)\$(Configuration)\ + $(Platform)\$(Configuration)\ + $(Platform)\$(Configuration)\ + false + false + $(SolutionDir)\$(Platform)\$(Configuration)\ + $(SolutionDir)\$(Platform)\$(Configuration)\ + $(Platform)\$(Configuration)\ + $(Platform)\$(Configuration)\ + true + true + + + testharness + + + + NDEBUG;%(PreprocessorDefinitions) + true + true + Win32 + + + OnlyExplicitInline + ..\..\include;..\..\visualtest\include;%(AdditionalIncludeDirectories) + WIN32;NDEBUG;_WINDOWS;%(PreprocessorDefinitions) + true + MultiThreadedDLL + true + + + Level3 + true + Default + + + NDEBUG;%(PreprocessorDefinitions) + 0x0409 + + + true + Windows + + + copy "$(SolutionDir)..\test\icon.bmp" "$(ProjectDir)icon.bmp" +copy "$(SolutionDir)\$(Platform)\$(Configuration)\testsprite2.exe" "$(ProjectDir)" +copy "$(SolutionDir)\$(Platform)\$(Configuration)\testquit.exe" "$(ProjectDir)" +copy /y "$(SolutionDir)..\visualtest\*.config" "$(ProjectDir)" +copy /y "$(SolutionDir)..\visualtest\*.parameters" "$(ProjectDir)" +copy /y "$(SolutionDir)..\visualtest\*.actions" "$(ProjectDir)" +copy /y "$(SolutionDir)..\visualtest\unittest\*.config" "$(ProjectDir)" +copy /y "$(SolutionDir)..\visualtest\unittest\*.parameters" "$(ProjectDir)" +copy /y "$(SolutionDir)..\visualtest\unittest\*.actions" "$(ProjectDir)" + + + Copy data files + + + + + NDEBUG;%(PreprocessorDefinitions) + true + true + + + OnlyExplicitInline + ..\..\include;..\..\visualtest\include;%(AdditionalIncludeDirectories) + WIN32;NDEBUG;_WINDOWS;%(PreprocessorDefinitions) + true + MultiThreadedDLL + true + + + Level3 + true + Default + + + NDEBUG;%(PreprocessorDefinitions) + 0x0409 + + + true + Windows + + + copy "$(SolutionDir)..\test\icon.bmp" "$(ProjectDir)icon.bmp" +copy "$(SolutionDir)\$(Platform)\$(Configuration)\testsprite2.exe" "$(ProjectDir)" +copy "$(SolutionDir)\$(Platform)\$(Configuration)\testquit.exe" "$(ProjectDir)" +copy /y "$(SolutionDir)..\visualtest\*.config" "$(ProjectDir)" +copy /y "$(SolutionDir)..\visualtest\*.parameters" "$(ProjectDir)" +copy /y "$(SolutionDir)..\visualtest\*.actions" "$(ProjectDir)" +copy /y "$(SolutionDir)..\visualtest\unittest\*.config" "$(ProjectDir)" +copy /y "$(SolutionDir)..\visualtest\unittest\*.parameters" "$(ProjectDir)" +copy /y "$(SolutionDir)..\visualtest\unittest\*.actions" "$(ProjectDir)" + + + Copy data files + + + + + _DEBUG;%(PreprocessorDefinitions) + true + true + Win32 + + + Disabled + ..\..\include;..\..\visualtest\include;%(AdditionalIncludeDirectories) + WIN32;_DEBUG;_WINDOWS;_CRT_SECURE_NO_DEPRECATE;%(PreprocessorDefinitions) + MultiThreadedDebugDLL + + + Level3 + true + EditAndContinue + Default + false + + + _DEBUG;%(PreprocessorDefinitions) + 0x0409 + + + true + true + Windows + kernel32.lib;user32.lib;gdi32.lib;winspool.lib;comdlg32.lib;advapi32.lib;shell32.lib;ole32.lib;oleaut32.lib;uuid.lib;odbc32.lib;odbccp32.lib;Shlwapi.lib;%(AdditionalDependencies) + false + + + copy "$(SolutionDir)..\test\icon.bmp" "$(ProjectDir)icon.bmp" +copy "$(SolutionDir)\$(Platform)\$(Configuration)\testsprite2.exe" "$(ProjectDir)" +copy "$(SolutionDir)\$(Platform)\$(Configuration)\testquit.exe" "$(ProjectDir)" +copy /y "$(SolutionDir)..\visualtest\*.config" "$(ProjectDir)" +copy /y "$(SolutionDir)..\visualtest\*.parameters" "$(ProjectDir)" +copy /y "$(SolutionDir)..\visualtest\*.actions" "$(ProjectDir)" +copy /y "$(SolutionDir)..\visualtest\unittest\*.config" "$(ProjectDir)" +copy /y "$(SolutionDir)..\visualtest\unittest\*.parameters" "$(ProjectDir)" +copy /y "$(SolutionDir)..\visualtest\unittest\*.actions" "$(ProjectDir)" + + + Copy data files + + + + + _DEBUG;%(PreprocessorDefinitions) + true + true + + + Disabled + ..\..\include;..\..\visualtest\include;%(AdditionalIncludeDirectories) + WIN32;_DEBUG;_WINDOWS;%(PreprocessorDefinitions) + MultiThreadedDebugDLL + + + Level3 + true + ProgramDatabase + Default + + + _DEBUG;%(PreprocessorDefinitions) + 0x0409 + + + true + true + Windows + false + + + copy "$(SolutionDir)..\test\icon.bmp" "$(ProjectDir)icon.bmp" +copy "$(SolutionDir)\$(Platform)\$(Configuration)\testsprite2.exe" "$(ProjectDir)" +copy "$(SolutionDir)\$(Platform)\$(Configuration)\testquit.exe" "$(ProjectDir)" +copy /y "$(SolutionDir)..\visualtest\*.config" "$(ProjectDir)" +copy /y "$(SolutionDir)..\visualtest\*.parameters" "$(ProjectDir)" +copy /y "$(SolutionDir)..\visualtest\*.actions" "$(ProjectDir)" +copy /y "$(SolutionDir)..\visualtest\unittest\*.config" "$(ProjectDir)" +copy /y "$(SolutionDir)..\visualtest\unittest\*.parameters" "$(ProjectDir)" +copy /y "$(SolutionDir)..\visualtest\unittest\*.actions" "$(ProjectDir)" + + + Copy data files + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + {da956fd3-e142-46f2-9dd5-c78bebb56b7a} + + + {da956fd3-e143-46f2-9fe5-c77bebc56b1a} + + + {81ce8daf-ebb2-4761-8e45-b71abcca8c68} + + + + + + \ No newline at end of file diff --git a/WhatsNew.txt b/WhatsNew.txt new file mode 100644 index 000000000..4f9b30c5f --- /dev/null +++ b/WhatsNew.txt @@ -0,0 +1,185 @@ + +This is a list of major changes in SDL's version history. + +--------------------------------------------------------------------------- +2.0.4: +--------------------------------------------------------------------------- + +General: +* Added support for web applications using Emscripten, see docs/README-emscripten.md for more information +* Added support for web applications using Native Client (NaCl), see docs/README-nacl.md for more information +* Added an API to queue audio instead of using the audio callback: + SDL_QueueAudio(), SDL_GetQueuedAudioSize(), SDL_ClearQueuedAudio() +* Added events for audio device hot plug support: + SDL_AUDIODEVICEADDED, SDL_AUDIODEVICEREMOVED +* Added SDL_PointInRect() +* Added SDL_HasAVX2() to detect CPUs with AVX2 support +* Added SDL_SetWindowHitTest() to let apps treat parts of their SDL window like traditional window decorations (drag areas, resize areas) +* Added SDL_GetGrabbedWindow() to get the window that currently has input grab, if any +* Added SDL_RenderIsClipEnabled() to tell whether clipping is currently enabled in a renderer +* Added SDL_CaptureMouse() to capture the mouse to get events while the mouse is not in your window +* Added SDL_WarpMouseGlobal() to warp the mouse cursor in global screen space +* Added SDL_GetGlobalMouseState() to get the current mouse state outside of an SDL window +* Added a direction field to mouse wheel events to tell whether they are flipped (natural) or not +* Added GL_CONTEXT_RELEASE_BEHAVIOR GL attribute (maps to [WGL|GLX]_ARB_context_flush_control extension) +* Added EGL_KHR_create_context support to allow OpenGL ES version selection on some platforms +* Added NV12 and NV21 YUV texture support for OpenGL and OpenGL ES 2.0 renderers +* Added a Vivante video driver that is used on various SoC platforms +* Added an event SDL_RENDER_DEVICE_RESET that is sent from the D3D renderers when the D3D device is lost, and from Android's event loop when the GLES context had to be recreated +* Added a hint SDL_HINT_NO_SIGNAL_HANDLERS to disable SDL's built in signal handling +* Added a hint SDL_HINT_THREAD_STACK_SIZE to set the stack size of SDL's threads +* Added SDL_sqrtf(), SDL_tan(), and SDL_tanf() to the stdlib routines +* Improved support for WAV and BMP files with unusual chunks in them +* Renamed SDL_assert_data to SDL_AssertData and SDL_assert_state to SDL_AssertState + +Windows: +* Added support for Windows Phone 8.1 +* Timer resolution is now 1 ms by default, adjustable with the SDL_HINT_TIMER_RESOLUTION hint +* SDLmain no longer depends on the C runtime, so you can use the same .lib in both Debug and Release builds +* Added SDL_SetWindowsMessageHook() to set a function to be called for every windows message before TranslateMessage() +* Added a hint SDL_HINT_WINDOWS_ENABLE_MESSAGELOOP to control whether SDL_PumpEvents() processes the Windows message loop +* You can distinguish between real mouse and touch events by looking for SDL_TOUCH_MOUSEID in the mouse event "which" field +* SDL_SysWMinfo now contains the window HDC +* Added support for Unicode command line options +* Prevent beeping when Alt-key combos are pressed +* SDL_SetTextInputRect() re-positions the OS-rendered IME + +Mac OS X: +* Implemented drag-and-drop support +* Improved joystick hot-plug detection +* The SDL_WINDOWEVENT_EXPOSED window event is triggered in the appropriate situations +* Fixed relative mouse mode when the application loses/regains focus +* Fixed bugs related to transitioning to and from Spaces-aware fullscreen-desktop mode +* Fixed the refresh rate of display modes +* SDL_SysWMInfo is now ARC-compatible + +Linux: +* Enabled building with Mir and Wayland support by default. +* Added IBus IME support +* Added a hint SDL_HINT_IME_INTERNAL_EDITING to control whether IBus should handle text editing internally instead of sending SDL_TEXTEDITING events +* Added support for multiple audio devices when using Pulseaudio +* Fixed duplicate mouse events when using relative mouse motion + +iOS: +* Added support for iOS 8 +* Added support for the hint SDL_HINT_ACCELEROMETER_AS_JOYSTICK +* Added sRGB OpenGL ES context support on iOS 7+ +* Added native resolution support for the iPhone 6 Plus +* The SDL_WINDOW_ALLOW_HIGHDPI window flag now enables high-dpi support, and SDL_GL_GetDrawableSize() or SDL_GetRendererOutputSize() gets the window resolution in pixels +* SDL_GetWindowSize() and display mode sizes are in the "DPI-independent points" coordinate space rather than pixels (matches OS X behavior) +* SDL_SysWMinfo now contains the OpenGL ES framebuffer and color renderbuffer objects used by the window's active GLES view +* Fixed various rotation and orientation issues +* Fixed memory leaks + +Android: +* Added a hint SDL_HINT_ANDROID_SEPARATE_MOUSE_AND_TOUCH to prevent mouse events from being registered as touch events + +Raspberry Pi: +* Added support for the Raspberry Pi 2 + + +--------------------------------------------------------------------------- +2.0.3: +--------------------------------------------------------------------------- + +Mac OS X: +* Fixed creating an OpenGL context by default on Mac OS X 10.6 + + +--------------------------------------------------------------------------- +2.0.2: +--------------------------------------------------------------------------- +General: +* Added SDL_GL_ResetAttributes() to reset OpenGL attributes to default values +* Added an API to load a database of game controller mappings from a file: + SDL_GameControllerAddMappingsFromFile(), SDL_GameControllerAddMappingsFromRW() +* Added game controller mappings for the PS4 and OUYA controllers +* Added SDL_GetDefaultAssertionHandler() and SDL_GetAssertionHandler() +* Added SDL_DetachThread() +* Added SDL_HasAVX() to determine if the CPU has AVX features +* Added SDL_vsscanf(), SDL_acos(), and SDL_asin() to the stdlib routines +* EGL can now create/manage OpenGL and OpenGL ES 1.x/2.x contexts, and share + them using SDL_GL_SHARE_WITH_CURRENT_CONTEXT +* Added a field "clicks" to the mouse button event which records whether the event is a single click, double click, etc. +* The screensaver is now disabled by default, and there is a hint SDL_HINT_VIDEO_ALLOW_SCREENSAVER that can change that behavior. +* Added a hint SDL_HINT_MOUSE_RELATIVE_MODE_WARP to specify whether mouse relative mode should be emulated using mouse warping. +* testgl2 does not need to link with libGL anymore +* Added testgles2 test program to demonstrate working with OpenGL ES 2.0 +* Added controllermap test program to visually map a game controller + +Windows: +* Support for OpenGL ES 2.x contexts using either WGL or EGL (natively via + the driver or emulated through ANGLE) +* Added a hint SDL_HINT_VIDEO_WIN_D3DCOMPILER to specify which D3D shader compiler to use for OpenGL ES 2 support through ANGLE +* Added a hint SDL_HINT_VIDEO_WINDOW_SHARE_PIXEL_FORMAT that is useful when creating multiple windows that should share the same OpenGL context. +* Added an event SDL_RENDER_TARGETS_RESET that is sent when D3D9 render targets are reset after the device has been restored. + +Mac OS X: +* Added a hint SDL_HINT_MAC_CTRL_CLICK_EMULATE_RIGHT_CLICK to control whether Ctrl+click should be treated as a right click on Mac OS X. This is off by default. + +Linux: +* Fixed fullscreen and focused behavior when receiving NotifyGrab events +* Added experimental Wayland and Mir support, disabled by default + +Android: +* Joystick support (minimum SDK version required to build SDL is now 12, + the required runtime version remains at 10, but on such devices joystick + support won't be available). +* Hotplugging support for joysticks +* Added a hint SDL_HINT_ACCELEROMETER_AS_JOYSTICK to control whether the accelerometer should be listed as a 3 axis joystick, which it will by default. + + +--------------------------------------------------------------------------- +2.0.1: +--------------------------------------------------------------------------- + +General: +* Added an API to get common filesystem paths in SDL_filesystem.h: + SDL_GetBasePath(), SDL_GetPrefPath() +* Added an API to do optimized YV12 and IYUV texture updates: + SDL_UpdateYUVTexture() +* Added an API to get the amount of RAM on the system: + SDL_GetSystemRAM() +* Added a macro to perform timestamp comparisons with SDL_GetTicks(): + SDL_TICKS_PASSED() +* Dramatically improved OpenGL ES 2.0 rendering performance +* Added OpenGL attribute SDL_GL_FRAMEBUFFER_SRGB_CAPABLE + +Windows: +* Created a static library configuration for the Visual Studio 2010 project +* Added a hint to create the Direct3D device with support for multi-threading: + SDL_HINT_RENDER_DIRECT3D_THREADSAFE +* Added a function to get the D3D9 adapter index for a display: + SDL_Direct3D9GetAdapterIndex() +* Added a function to get the D3D9 device for a D3D9 renderer: + SDL_RenderGetD3D9Device() +* Fixed building SDL with the mingw32 toolchain (mingw-w64 is preferred) +* Fixed crash when using two XInput controllers at the same time +* Fixed detecting a mixture of XInput and DirectInput controllers +* Fixed clearing a D3D render target larger than the window +* Improved support for format specifiers in SDL_snprintf() + +Mac OS X: +* Added support for retina displays: + Create your window with the SDL_WINDOW_ALLOW_HIGHDPI flag, and then use SDL_GL_GetDrawableSize() to find the actual drawable size. You are responsible for scaling mouse and drawing coordinates appropriately. +* Fixed mouse warping in fullscreen mode +* Right mouse click is emulated by holding the Ctrl key while left clicking + +Linux: +* Fixed float audio support with the PulseAudio driver +* Fixed missing line endpoints in the OpenGL renderer on some drivers +* X11 symbols are no longer defined to avoid collisions when linking statically + +iOS: +* Fixed status bar visibility on iOS 7 +* Flipped the accelerometer Y axis to match expected values + +Android: +IMPORTANT: You MUST get the updated SDLActivity.java to match C code +* Moved EGL initialization to native code +* Fixed the accelerometer axis rotation relative to the device rotation +* Fixed race conditions when handling the EGL context on pause/resume +* Touch devices are available for enumeration immediately after init + +Raspberry Pi: +* Added support for the Raspberry Pi, see README-raspberrypi.txt for details diff --git a/Xcode-iOS/Demos/Default.png b/Xcode-iOS/Demos/Default.png new file mode 100644 index 0000000000000000000000000000000000000000..f91282875ae2654ee5ff9f347921620f358fd85e GIT binary patch literal 18383 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 literal 0 HcmV?d00001 diff --git a/Xcode-iOS/Demos/Info.plist b/Xcode-iOS/Demos/Info.plist new file mode 100644 index 000000000..0398f008b --- /dev/null +++ b/Xcode-iOS/Demos/Info.plist @@ -0,0 +1,30 @@ + + + + + CFBundleDevelopmentRegion + en + CFBundleDisplayName + ${PRODUCT_NAME} + CFBundleExecutable + ${EXECUTABLE_NAME} + CFBundleIconFile + + CFBundleIdentifier + com.yourcompany.${PRODUCT_NAME:identifier} + CFBundleInfoDictionaryVersion + 6.0 + CFBundleName + ${PRODUCT_NAME} + CFBundlePackageType + APPL + CFBundleSignature + ???? + CFBundleVersion + 1.0 + NSMainNibFile + + UISupportedInterfaceOrientations + + + diff --git a/Xcode-iOS/Demos/README b/Xcode-iOS/Demos/README new file mode 100644 index 000000000..55f8066d6 --- /dev/null +++ b/Xcode-iOS/Demos/README @@ -0,0 +1,43 @@ +============================================================================== +About the iPhone OS Demo Applications +============================================================================== + +Demos.xcodeproj contains several targets for iPhone oriented SDL demos. These demos are written strictly using SDL 1.3 calls. All the demos except for Fireworks (which requires OpenGL ES) should work on platforms other than iPhone OS, though you'll need to write your own compile script. To run them on your favorite platform, you may wish to set the macros SCREEN_WIDTH and SCREEN_HEIGHT, located in common.h. + +Common files: + + common.c and common.h contain code common to all demo applications. This includes macros about the screen dimensions (in pixels), simple error handling, and functions for generating random numbers. + +Rectangles (rectangles.c): + + Draws randomly sized and colored rectangles all over the screen by using SDL_RenderFill. This is the simplest of all the demos. + +Happy (happy.c): + + Loads the classic happy-face bitmap and draws a large number of happy faces bouncing around the screen. Shows how you can load a bitmap into an SDL_Texture. + +Accelerometer (accelerometer.c): + + Uses the iPhone's accelerometer as a joystick device to move a spaceship around the screen. Note the use of the macro SDL_IPHONE_MAX_GFORCE (normally defined in SDL_config_iphoneos.h) which converts between the Sint16 number returned by SDL_JoystickGetAxis, and the floating point units of g-force reported natively by the iPhone. + +Touch (touch.c): + + Acts as a finger-paint type program. Demonstrates how you can use SDL mouse input to accept touch input from the iPhone. If SDL for iPhone is compiled with multitouch as multiple mouse emulation (SDL_IPHONE_MULTIPLE_MICE in SDL_config_iphoneos.h) then the program will accept multiple finger inputs simultaneously. + +Mixer (mixer.c): + + Displays several rectangular buttons which can be used as a virtual drumkit. Demonstrates how you can play .wav sounds in SDL and how you can use SDL_MixAudioFormat to build a software mixer that can play multiple sounds at once. + +Keyboard (keyboard.c): + + Loads a bitmap font and let's the user type words, numbers, and symbols using the iPhone's virtual keyboard. The iPhone's onscreen keyboard visibility is toggled when the user taps the screen. If the user types ':)' a happy face is displayed. Demonstrates how to use functions added to the iPhone implementation of SDL to toggle keyboard onscreen visibility. + +Fireworks (fireworks.c): + + Displays a fireworks show. When you tap the iPhone's screen, fireworks fly from the bottom of the screen and explode at the point that you tapped. Demonstrates how you can use SDL on iPhone to build an OpenGL ES based application. Shows you how you can use SDL_LoadBMP to load a bmp image and convert it to an OpenGL ES texture. Of lesser importance, shows how you can use OpenGL ES point sprites to build an efficient particle system. + +============================================================================== +Building and Running the demos +============================================================================== + +Before building the demos you must first build SDL as a static library for BOTH the iPhone Simulator and the iPhone itself. See the iPhone SDL main README file for directions on how to do this. Once this is done, simply launch XCode, select the target you'd like to build, select the active SDK (simulator or device), and then build and go. diff --git a/Xcode-iOS/Demos/data/bitmapfont/kromasky_16x16.bmp b/Xcode-iOS/Demos/data/bitmapfont/kromasky_16x16.bmp new file mode 100644 index 0000000000000000000000000000000000000000..c0b6fb964fd176d5770cf7000088fe1c87b220bf GIT binary patch literal 45368 zcmeHPF{`CX6&y7%FcCK~G8Qut)Nm0L4EzVi`xD$Bp_$Qwk*f;^D{7`-WV$SDCJ2h4 z*{Wb5h{Chpt9@n7sXqO6fA`**eY(TlZ>mq%sZ)LWd*AK3duP7(t*`$4*~70dQc8Et4vTyOxTdFfapyc~ z>DW`cxN{skzr!7WH@>UC%fGcB*C(b!kGtpHxaT@v(Q%Gr*CFPt$2yw~!BiG`0I$eC%4|P&4BlC52{7d|}x9jSst8@D9 zu+yA#GK-P*taYZ>VwOj|Zi%Zzi4TV&0}Khnpl6-H)cnRbzy97Yzl#?DBPXPkBA=3_ zxL;KWWF z*02`pGSRPYCUGgmVbT;K;iaF4wLo@8L-{O#gq7z5nYw?}=f!yL6eFF^RrnD9(pSC+ zhgfy-xvMXqrGXk=OTXx-F5|d%&KVa?V9qc47?Qsm@2VW?uz_@&OL$p+w5S5NnDhI80hblsJ^__*#fS zR%GPG`8FnS0q$%wzD3Ry7k8vsCCKuqS`+X^R@i#|nsbtOeVTrku5 zFa3c6naSUc7c&^H_{l8R^?vSRD*WNyxAnT6=3=b}+FP%^cK5~`cf%ub>cG4jsD%Jr zzLwp7-iVKd=&cQJaQp@E(4RYgV$3(eG~n$zY>1QD$-|VaIEk$2C&%|U#fN;q4TQ^D zIK)*100mWu5$AMRxkYo%S0RC{$Os8JJJ;Xk%LYK^x|4H$*0WY>C1=;a^MNVo=V3$& z$A{!EeqVxQTwUMQ9E&XAvyMUF^8t?n;Ge$zi|@StI-U{$7?$S))%>1eWIgV=jyoOa zIDT1t*7XKD&OW$j$DRLq9JQPP+-YJ;Wao6)Wu3Dd_gu#-I^-~Gg}6#)&1E~Z12#>4Z^ zzx}m5?CLn5no#4*n*gjh0H-1s9}DB8cZVbKJMRpR#LR+Kmjb5wTuU)t449B1x| zez(7<<$}Ph?wXEyV>3dgr)Ta8$MuDI`!OBY^iSs8553J@adurl)#Mpq?k97#OtmpN zEBf6kcKuLCW(r7eb3W2Z;Cc1OKl%xWejS#WoQFM^7_wJ94^xxR2Vk6m(LWX`78cQt0kWP-CkE~&XG7k>Zc}Xut$fB zd@muq(g%?NoWI^5W_5h&gFvSD>I8O^R}_5zkMH6oaSqG1lzSL{a2VE+c=#zX6VZVp zsGg`U8X~+1vWHB}_$0DetI±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 a>CgMt_2-hf@6IJUzMH!`p6mG0+kXHiqKaAo literal 0 HcmV?d00001 diff --git a/Xcode-iOS/Demos/data/bitmapfont/license.txt b/Xcode-iOS/Demos/data/bitmapfont/license.txt new file mode 100755 index 000000000..6949ec444 --- /dev/null +++ b/Xcode-iOS/Demos/data/bitmapfont/license.txt @@ -0,0 +1,258 @@ + __ _ _ + / _| | | | | +| |_ ___ _ __ | |_ _ __ __ _ ___| | __ +| _/ _ \| '_ \| __| '_ \ / _` |/ __| |/ / +| || (_) | | | | |_| |_) | (_| | (__| < +|_| \___/|_| |_|\__| .__/ \__,_|\___|_|\_\ + | | + |_| +---------------------------------------------------------------------- +Product : font-pack.zip +Website : http://www.spicypixel.net +Author : Marc Russell +Released: 16th January 2008 +---------------------------------------------------------------------- + +What is this? +------------- +font-pack is a package of free art assets to be used under the terms of this document. It is available to game developers and hobbyists alike. + +Contents +-------- +The contents of the font-pack ZIP file include 20 bitmap fonts + +Usage License & Restrictions +---------------------------- +font-pack is distributed under the "Common Public License Version 1.0." +The terms of which are given below. If you do not understand the terms of the license please refer to a solicitor. It should however, be relatively clear how this package can be used. + +THE ACCOMPANYING PROGRAM IS PROVIDED UNDER THE TERMS OF THIS COMMON +PUBLIC LICENSE ("AGREEMENT"). ANY USE, REPRODUCTION OR DISTRIBUTION OF +THE PROGRAM CONSTITUTES RECIPIENT'S ACCEPTANCE OF THIS AGREEMENT. + +1. DEFINITIONS + +"Contribution" means: + + a) in the case of the initial Contributor, the initial code and + documentation distributed under this Agreement, and + + b) in the case of each subsequent Contributor: + + i) changes to the Program, and + + ii) additions to the Program; + + where such changes and/or additions to the Program originate from + and are distributed by that particular Contributor. A Contribution + 'originates' from a Contributor if it was added to the Program by + such Contributor itself or anyone acting on such Contributor's + behalf. Contributions do not include additions to the Program which: + (i) are separate modules of software distributed in conjunction with + the Program under their own license agreement, and (ii) are not + derivative works of the Program. + +"Contributor" means any person or entity that distributes the Program. + +"Licensed Patents " mean patent claims licensable by a Contributor which +are necessarily infringed by the use or sale of its Contribution alone +or when combined with the Program. + +"Program" means the Contributions distributed in accordance with this +Agreement. + +"Recipient" means anyone who receives the Program under this Agreement, +including all Contributors. + +2. GRANT OF RIGHTS + + a) Subject to the terms of this Agreement, each Contributor hereby + grants Recipient a non-exclusive, worldwide, royalty-free copyright + license to reproduce, prepare derivative works of, publicly display, + publicly perform, distribute and sublicense the Contribution of such + Contributor, if any, and such derivative works, in source code and + object code form. + + b) Subject to the terms of this Agreement, each Contributor hereby + grants Recipient a non-exclusive, worldwide, royalty-free patent + license under Licensed Patents to make, use, sell, offer to sell, + import and otherwise transfer the Contribution of such Contributor, + if any, in source code and object code form. This patent license + shall apply to the combination of the Contribution and the Program + if, at the time the Contribution is added by the Contributor, such + addition of the Contribution causes such combination to be covered + by the Licensed Patents. The patent license shall not apply to any + other combinations which include the Contribution. No hardware per + se is licensed hereunder. + + c) Recipient understands that although each Contributor grants the + licenses to its Contributions set forth herein, no assurances are + provided by any Contributor that the Program does not infringe the + patent or other intellectual property rights of any other entity. + Each Contributor disclaims any liability to Recipient for claims + brought by any other entity based on infringement of intellectual + property rights or otherwise. As a condition to exercising the + rights and licenses granted hereunder, each Recipient hereby assumes + sole responsibility to secure any other intellectual property rights + needed, if any. For example, if a third party patent license is + required to allow Recipient to distribute the Program, it is + Recipient's responsibility to acquire that license before + distributing the Program. + + d) Each Contributor represents that to its knowledge it has + sufficient copyright rights in its Contribution, if any, to grant + the copyright license set forth in this Agreement. + +3. REQUIREMENTS + +A Contributor may choose to distribute the Program in object code form +under its own license agreement, provided that: + + a) it complies with the terms and conditions of this Agreement; and + + b) its license agreement: + + i) effectively disclaims on behalf of all Contributors all + warranties and conditions, express and implied, including warranties + or conditions of title and non-infringement, and implied warranties + or conditions of merchantability and fitness for a particular + purpose; + + ii) effectively excludes on behalf of all Contributors all liability + for damages, including direct, indirect, special, incidental and + consequential damages, such as lost profits; + + iii) states that any provisions which differ from this Agreement are + offered by that Contributor alone and not by any other party; and + + iv) states that source code for the Program is available from such + Contributor, and informs licensees how to obtain it in a reasonable + manner on or through a medium customarily used for software + exchange. + +When the Program is made available in source code form: + + a) it must be made available under this Agreement; and + + b) a copy of this Agreement must be included with each copy of the + Program. + +Contributors may not remove or alter any copyright notices contained +within the Program. + +Each Contributor must identify itself as the originator of its +Contribution, if any, in a manner that reasonably allows subsequent +Recipients to identify the originator of the Contribution. + +4. COMMERCIAL DISTRIBUTION + +Commercial distributors of software may accept certain responsibilities +with respect to end users, business partners and the like. While this +license is intended to facilitate the commercial use of the Program, the +Contributor who includes the Program in a commercial product offering +should do so in a manner which does not create potential liability for +other Contributors. Therefore, if a Contributor includes the Program in +a commercial product offering, such Contributor ("Commercial +Contributor") hereby agrees to defend and indemnify every other +Contributor ("Indemnified Contributor") against any losses, damages and +costs (collectively "Losses") arising from claims, lawsuits and other +legal actions brought by a third party against the Indemnified +Contributor to the extent caused by the acts or omissions of such +Commercial Contributor in connection with its distribution of the +Program in a commercial product offering. The obligations in this +section do not apply to any claims or Losses relating to any actual or +alleged intellectual property infringement. In order to qualify, an +Indemnified Contributor must: a) promptly notify the Commercial +Contributor in writing of such claim, and b) allow the Commercial +Contributor to control, and cooperate with the Commercial Contributor +in, the defense and any related settlement negotiations. The Indemnified +Contributor may participate in any such claim at its own expense. + +For example, a Contributor might include the Program in a commercial +product offering, Product X. That Contributor is then a Commercial +Contributor. If that Commercial Contributor then makes performance +claims, or offers warranties related to Product X, those performance +claims and warranties are such Commercial Contributor's responsibility +alone. Under this section, the Commercial Contributor would have to +defend claims against the other Contributors related to those +performance claims and warranties, and if a court requires any other +Contributor to pay any damages as a result, the Commercial Contributor +must pay those damages. + +5. NO WARRANTY + +EXCEPT AS EXPRESSLY SET FORTH IN THIS AGREEMENT, THE PROGRAM IS PROVIDED +ON AN "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, +EITHER EXPRESS OR IMPLIED INCLUDING, WITHOUT LIMITATION, ANY WARRANTIES +OR CONDITIONS OF TITLE, NON-INFRINGEMENT, MERCHANTABILITY OR FITNESS FOR +A PARTICULAR PURPOSE. Each Recipient is solely responsible for +determining the appropriateness of using and distributing the Program +and assumes all risks associated with its exercise of rights under this +Agreement, including but not limited to the risks and costs of program +errors, compliance with applicable laws, damage to or loss of data, +programs or equipment, and unavailability or interruption of operations. + +6. DISCLAIMER OF LIABILITY + +EXCEPT AS EXPRESSLY SET FORTH IN THIS AGREEMENT, NEITHER RECIPIENT NOR +ANY CONTRIBUTORS SHALL HAVE ANY LIABILITY FOR ANY DIRECT, INDIRECT, +INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING +WITHOUT LIMITATION LOST PROFITS), HOWEVER CAUSED AND ON ANY THEORY OF +LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING +NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OR +DISTRIBUTION OF THE PROGRAM OR THE EXERCISE OF ANY RIGHTS GRANTED +HEREUNDER, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGES. + +7. GENERAL + +If any provision of this Agreement is invalid or unenforceable under +applicable law, it shall not affect the validity or enforceability of +the remainder of the terms of this Agreement, and without further action +by the parties hereto, such provision shall be reformed to the minimum +extent necessary to make such provision valid and enforceable. + +If Recipient institutes patent litigation against a Contributor with +respect to a patent applicable to software (including a cross-claim or +counterclaim in a lawsuit), then any patent licenses granted by that +Contributor to such Recipient under this Agreement shall terminate as of +the date such litigation is filed. In addition, if Recipient institutes +patent litigation against any entity (including a cross-claim or +counterclaim in a lawsuit) alleging that the Program itself (excluding +combinations of the Program with other software or hardware) infringes +such Recipient's patent(s), then such Recipient's rights granted under +Section 2(b) shall terminate as of the date such litigation is filed. + +All Recipient's rights under this Agreement shall terminate if it fails +to comply with any of the material terms or conditions of this Agreement +and does not cure such failure in a reasonable period of time after +becoming aware of such noncompliance. If all Recipient's rights under +this Agreement terminate, Recipient agrees to cease use and distribution +of the Program as soon as reasonably practicable. However, Recipient's +obligations under this Agreement and any licenses granted by Recipient +relating to the Program shall continue and survive. + +Everyone is permitted to copy and distribute copies of this Agreement, +but in order to avoid inconsistency the Agreement is copyrighted and may +only be modified in the following manner. The Agreement Steward reserves +the right to publish new versions (including revisions) of this +Agreement from time to time. No one other than the Agreement Steward has +the right to modify this Agreement. IBM is the initial Agreement +Steward. IBM may assign the responsibility to serve as the Agreement +Steward to a suitable separate entity. Each new version of the Agreement +will be given a distinguishing version number. The Program (including +Contributions) may always be distributed subject to the version of the +Agreement under which it was received. In addition, after a new version +of the Agreement is published, Contributor may elect to distribute the +Program (including its Contributions) under the new version. Except as +expressly stated in Sections 2(a) and 2(b) above, Recipient receives no +rights or licenses to the intellectual property of any Contributor under +this Agreement, whether expressly, by implication, estoppel or +otherwise. All rights in the Program not expressly granted under this +Agreement are reserved. + +This Agreement is governed by the laws of the State of New York and the +intellectual property laws of the United States of America. No party to +this Agreement will bring a legal action under this Agreement more than +one year after the cause of action arose. Each party waives its rights +to a jury trial in any resulting litigation. + diff --git a/Xcode-iOS/Demos/data/drums/ds_brush_snare.wav b/Xcode-iOS/Demos/data/drums/ds_brush_snare.wav new file mode 100644 index 0000000000000000000000000000000000000000..fa752637a0e32359a2339d235d0c069d61f4494d GIT binary patch literal 194604 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 z%0D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