Compare commits

...

14 Commits

Author SHA1 Message Date
Martin Felis 0ac43aa717 Updated love sources to changeset 0ab246b5045d and updated android version 2018-04-15 21:22:56 +02:00
Martin Felis 7fbf155d82 Setting target SDK to 22 to mark app as legacy app which gets storage permissions without having to write request code 2018-04-15 11:05:23 +02:00
Martin Felis 3df1807c6f Fix for #159 2018-04-08 21:03:05 +02:00
Martin Felis c979f65152 New version: 11.0. Also bumped minSdkVersion to 14 to be in sync with used SDL2 version 2018-04-01 22:52:58 +02:00
Martin Felis 1dba069683 Updated LÖVE to 11.0 tag (6504209dc45b) 2018-04-01 22:45:58 +02:00
Martin Felis 408778fb8f Minor adjustments for 0.11.0-alpha1 2018-03-31 19:48:40 +02:00
Martin Felis f8241c1b65 Updated LÖVE to changeset c303c1f52ea6 2018-03-30 21:42:03 +02:00
Martin Felis 4d8f4f70ce Initial works to support 0.11.x, disabled armeabi builds, using now clang and libc++ instead of gnustl 2018-02-02 21:10:33 +01:00
Martin Felis f40577c9cb Upgraded OpenAL-Soft to 0.18.2 2018-02-01 15:53:05 +01:00
Martin Felis fd60978b7b Merge branch 'master' into 0.10.x 2018-01-24 10:17:36 +01:00
Martin Felis fb34e99d9a merge 2018-01-22 22:57:29 +01:00
Martin Felis ad5db40a9d Merge branch 'setSource_mount_order' 2018-01-22 22:52:36 +01:00
Martin Felis a22628bc1b Updgraded SDL2 to version 2.0.7 2017-12-26 22:04:21 +01:00
Martin Felis 1fe6d7b640 Removed physfs, updated LÖVE to changeset 7bb02207faa6 2017-12-26 16:42:40 +01:00
1148 changed files with 181554 additions and 77415 deletions
+6 -6
View File
@@ -1,14 +1,14 @@
apply plugin: 'com.android.application'
android {
compileSdkVersion 25
compileSdkVersion 22
buildToolsVersion "26.0.2"
defaultConfig {
applicationId "org.love2d.android"
versionCode 22
versionName "0.10.2"
minSdkVersion 10
targetSdkVersion 25
versionCode 26
versionName "11.1"
minSdkVersion 14
targetSdkVersion 22
}
buildTypes {
release {
@@ -24,6 +24,6 @@ android {
dependencies {
compile 'com.android.support:multidex:1.0.1'
compile fileTree(dir: 'libs', include: ['*.jar'])
compile 'com.android.support:appcompat-v7:25.1.0'
compile 'com.android.support:appcompat-v7:22.2.0'
compile project(':love')
}
+2 -10
View File
@@ -18,7 +18,7 @@
<service android:name="org.love2d.android.DownloadService" />
<activity
android:name="org.love2d.android.GameActivity"
android:configChanges="orientation|screenSize"
android:configChanges="orientation|screenSize|keyboard|keyboardHidden|navigation"
android:label="LÖVE for Android"
android:launchMode="singleTop"
android:screenOrientation="landscape" >
@@ -30,13 +30,7 @@
<intent-filter>
<action android:name="android.intent.action.VIEW" />
<category android:name="android.intent.category.DEFAULT" />
<data android:scheme="file" />
<data android:scheme="content" />
<data android:mimeType="application/x-love-game" />
</intent-filter>
<intent-filter>
<action android:name="android.intent.action.VIEW" />
<category android:name="android.intent.category.DEFAULT" />
<category android:name="android.intent.category.BROWSABLE" />
<data android:scheme="file" />
<data android:mimeType="*/*" />
<data android:pathPattern=".*\\.love" />
@@ -52,12 +46,10 @@
<category android:name="android.intent.category.BROWSABLE" />
<data android:scheme="http"
android:host="*"
android:pathPrefix="*"
android:mimeType="*/*"
android:pathPattern=".*\\.love" />
<data android:scheme="https"
android:host="*"
android:pathPrefix="*"
android:mimeType="*/*"
android:pathPattern=".*\\.love" />
</intent-filter>
+5
View File
@@ -3,6 +3,7 @@
buildscript {
repositories {
jcenter()
google()
}
dependencies {
classpath 'com.android.tools.build:gradle:3.0.1'
@@ -15,3 +16,7 @@ buildscript {
task clean(type: Delete) {
delete rootProject.buildDir
}
repositories {
google()
}
+5 -5
View File
@@ -6,13 +6,13 @@ android {
// See https://code.google.com/p/android/issues/detail?id=52962
// and http://stackoverflow.com/questions/27277433/why-does-gradle-build-my-module-in-release-mode-when-the-app-is-in-debug
// defaultPublishConfig "debug"
compileSdkVersion 25
compileSdkVersion 22
buildToolsVersion "26.0.2"
defaultConfig {
compileSdkVersion 25
compileSdkVersion 22
buildToolsVersion "26.0.2"
minSdkVersion 10
minSdkVersion 14
externalNativeBuild {
ndkBuild {
arguments "-j4"
@@ -21,7 +21,7 @@ android {
ndk {
// Specifies the ABI configurations of your native
// libraries Gradle should build and package with your APK.
abiFilters 'armeabi-v7a', 'armeabi'
abiFilters 'armeabi-v7a'
}
}
buildTypes {
@@ -49,5 +49,5 @@ android {
dependencies {
compile fileTree(dir: 'libs', include: ['*.jar'])
compile 'com.android.support:appcompat-v7:25.1.0'
compile 'com.android.support:appcompat-v7:22.2.0'
}
+3 -3
View File
@@ -1,12 +1,12 @@
# Uncomment this if you're using STL in your project
# See CPLUSPLUS-SUPPORT.html in the NDK documentation for more information
# APP_STL := stlport_static
APP_STL := gnustl_shared
APP_ABI := armeabi armeabi-v7a
APP_STL := c++_shared
APP_ABI := armeabi-v7a
APP_CPPFLAGS := -frtti
APP_LDFLAGS := -llog -landroid -lz
APP_PLATFORM := 10
NDK_TOOLCHAIN_VERSION := 4.9
NDK_TOOLCHAIN_VERSION := clang
# Fix for building on Windows
# http://stackoverflow.com/questions/12598933/ndk-build-createprocess-make-e-87-the-parameter-is-incorrect
+3 -4
View File
@@ -1,5 +1,4 @@
repo: d362ae6ab7f5005b8dbc7cba9ce592637de60f99
node: 228a26ab99bbb41e47d7ff792c670dba220fca88
branch: android
latesttag: 0.9.1
latesttagdistance: 105
node: 0ab246b5045d2e697a516fcc0f8b12496a2d5c78
branch: default
tag: 11.1
+57 -45
View File
@@ -1,45 +1,57 @@
relre:platform/msvc2008/include/
glob:platform/msvc2008/lib/
relre:platform/msvc2008/(.*)txt
relre:platform/msvc2008/(.*)suo
glob:extra/reshax/Release/
glob:extra/reshax/Debug/
glob:extra/reshax/resources.h
glob:extra/reshax/resources.cpp
glob:*.obj
glob:*.o
glob:*.dirstamp
glob:*.m4
glob:*.Po
glob:*.lo
glob:*.Plo
glob:*.dll
glob:*.user
glob:*.suo
glob:*/Release*
glob:*/Debug*
glob:*.lib
glob:*.ncb
glob:*.exe
glob:*.bat
glob:platform/macosx/build
glob:platform/macosx/Build
glob:platform/macosx/DerivedData
glob:platform/macosx/*.xcodeproj/bill*
glob:platform/macosx/*.xcodeproj/xcuserdata
glob:platform/macosx/*.xcodeproj/project.xcworkspace
glob:*.DS_Store
glob:*.dylib
glob:*.dmg*
glob:demos
glob:*.orig
relre:platform/msvc2010/include/
glob:platform/msvc2010/lib/
relre:platform/msvc2010/(.*)txt
relre:platform/msvc2010/(.*)suo
relre:platform/msvc2010/(.*)sdf
relre:platform/msvc2010/(.*)ipch
glob:.*.swp
glob:autom4te.cache/
glob:src/.libs/
glob:*~
glob:extra/reshax/Release/
glob:extra/reshax/Debug/
glob:extra/reshax/resources.h
glob:extra/reshax/resources.cpp
glob:*.obj
glob:*.o
glob:*.dirstamp
glob:*.m4
glob:*.Po
glob:*.lo
glob:*.Plo
glob:*.dll
glob:*.user
glob:*.suo
glob:*/Release*
glob:*/Debug*
glob:*.lib
glob:*.ncb
glob:*.exe
glob:*.bat
glob:platform/xcode/Build
glob:platform/xcode/DerivedData
glob:platform/xcode/ios/include
glob:platform/xcode/ios/libraries
glob:*xcuserdata*
glob:*.DS_Store
glob:*.dylib
glob:*.dmg*
glob:demos
glob:*.orig
glob:.*.swp
glob:autom4te.cache/
glob:src/.libs/
glob:*~
glob:Makefile*
glob:config*
glob:libtool
glob:platform/unix/ar-lib
glob:platform/unix/compile
glob:platform/unix/config.guess
glob:platform/unix/config.sub
glob:platform/unix/debian/changelog
glob:platform/unix/debian/control
glob:platform/unix/debian/rules
glob:platform/unix/depcomp
glob:platform/unix/install-sh
glob:platform/unix/love.desktop
glob:platform/unix/ltmain.sh
glob:platform/unix/missing
glob:.lineno
glob:*.la
glob:*.Tpo
glob:*.rej
glob:*/.deps
glob:stamp-h1
glob:src/love
glob:src/tags
+5
View File
@@ -7,3 +7,8 @@ bcca82b60d0f5cd724edbe4ed65db18ab95d4691 0.7.2
e0f98d53debb62347c6433ca0534a0f77f15f76f 0.8.0
38c00c788bcb03bda2ad40efebcdfe7a6be85b4a 0.9.0
8b113c345e97e7bb7e963e5d67451abdfb05cfde 0.9.1
a5e405cdf14d030b71d09a105086797942ae91a9 0.9.2
14717f0fb5d96d380c10fe6f41b74b7652c7d836 0.10.0
3cb3559eebb89803c0b7fa83d51d8e48a2b20b7a 0.10.1
afc69c4f714534c64e6f8c8660b724b5b736d7f3 0.10.2
bf8892ecbd07a10453c4bb36aa538b90a2830d2b 11.0
+17 -6
View File
@@ -16,16 +16,17 @@ LOCAL_C_INCLUDES := \
${LOCAL_PATH}/src/modules \
${LOCAL_PATH}/src/libraries/ \
${LOCAL_PATH}/src/libraries/enet/libenet/include \
${LOCAL_PATH}/src/libraries/physfs \
${LOCAL_PATH}/src/libraries/glslang/glslang/Include \
${LOCAL_PATH}/../SDL2-2.0.7/include \
${LOCAL_PATH}/../jasper-1.900.1/src/libjasper/include \
${LOCAL_PATH}/../libmng-1.0.10/ \
${LOCAL_PATH}/../lcms2-2.5/include \
${LOCAL_PATH}/../tiff-3.9.5/libtiff \
${LOCAL_PATH}/../openal-soft-1.17.0/include \
${LOCAL_PATH}/../openal-soft-1.17.0/OpenAL32/Include \
${LOCAL_PATH}/../openal-soft-1.18.2/include \
${LOCAL_PATH}/../openal-soft-1.18.2/OpenAL32/Include \
${LOCAL_PATH}/../freetype2-android/include \
${LOCAL_PATH}/../freetype2-android/src \
${LOCAL_PATH}/../physfs-3.0.1/src \
${LOCAL_PATH}/../mpg123-1.17.0/src/libmpg123 \
${LOCAL_PATH}/../libmodplug-0.8.8.4/src \
${LOCAL_PATH}/../libvorbis-1.3.5/include \
@@ -43,6 +44,7 @@ LOCAL_SRC_FILES := \
$(wildcard ${LOCAL_PATH}/src/modules/audio/*.cpp) \
$(wildcard ${LOCAL_PATH}/src/modules/audio/null/*.cpp) \
$(wildcard ${LOCAL_PATH}/src/modules/audio/openal/*.cpp) \
$(wildcard ${LOCAL_PATH}/src/modules/data/*.cpp) \
$(wildcard ${LOCAL_PATH}/src/modules/event/*.cpp) \
$(wildcard ${LOCAL_PATH}/src/modules/event/sdl/*.cpp) \
$(wildcard ${LOCAL_PATH}/src/modules/filesystem/*.cpp) \
@@ -87,22 +89,31 @@ LOCAL_SRC_FILES := \
$(wildcard ${LOCAL_PATH}/src/libraries/Box2D/Dynamics/Joints/*.cpp) \
$(wildcard ${LOCAL_PATH}/src/libraries/Box2D/Rope/*.cpp) \
$(wildcard ${LOCAL_PATH}/src/libraries/glad/*.cpp) \
$(wildcard ${LOCAL_PATH}/src/libraries/glslang/glslang/GenericCodeGen/*.cpp) \
$(wildcard ${LOCAL_PATH}/src/libraries/glslang/glslang/MachineIndependent/*.cpp) \
$(wildcard ${LOCAL_PATH}/src/libraries/glslang/glslang/MachineIndependent/preprocessor/*.cpp) \
$(wildcard ${LOCAL_PATH}/src/libraries/glslang/glslang/OSDependent/Unix/*.cpp) \
$(wildcard ${LOCAL_PATH}/src/libraries/glslang/OGLCompilersDLL/*.cpp) \
$(wildcard ${LOCAL_PATH}/src/libraries/glslang/glslang//*.cpp) \
$(wildcard ${LOCAL_PATH}/src/libraries/enet/*.cpp) \
$(wildcard ${LOCAL_PATH}/src/libraries/enet/libenet/*.c) \
$(wildcard ${LOCAL_PATH}/src/libraries/lua53/*.c) \
$(wildcard ${LOCAL_PATH}/src/libraries/luasocket/*.cpp) \
$(wildcard ${LOCAL_PATH}/src/libraries/luautf8/*.c) \
$(wildcard ${LOCAL_PATH}/src/libraries/luasocket/libluasocket/*.c) \
$(wildcard ${LOCAL_PATH}/src/libraries/noise1234/*.cpp) \
$(wildcard ${LOCAL_PATH}/src/libraries/Wuff/*.c) \
$(wildcard ${LOCAL_PATH}/src/libraries/lodepng/*.cpp) \
$(wildcard ${LOCAL_PATH}/src/libraries/lz4/*.c) \
$(wildcard ${LOCAL_PATH}/src/libraries/noise1234/*.cpp) \
$(wildcard ${LOCAL_PATH}/src/libraries/physfs/*.c) \
$(wildcard ${LOCAL_PATH}/src/libraries/Wuff/*.c) \
$(wildcard ${LOCAL_PATH}/src/libraries/xxHash/*.c) \
))
LOCAL_CXXFLAGS := -std=c++0x
LOCAL_SHARED_LIBRARIES := libopenal libmpg123
LOCAL_STATIC_LIBRARIES := libphysfs libvorbis libogg libtheora libmodplug libfreetype libluajit SDL2_static
LOCAL_STATIC_LIBRARIES := libvorbis libogg libtheora libmodplug libfreetype libluajit SDL2_static
# $(info liblove: include dirs $(LOCAL_C_INCLUDES))
# $(info liblove: src files $(LOCAL_SRC_FILES))
+359 -89
View File
@@ -1,5 +1,5 @@
#
# Copyright (c) 2006-2016 LOVE Development Team
# Copyright (c) 2006-2018 LOVE Development Team
#
# This software is provided 'as-is', without any express or implied
# warranty. In no event will the authors be held liable for any damages
@@ -97,7 +97,6 @@ if(MEGA)
${MEGA_LIBTHEORA}
${MEGA_MODPLUG}
${MEGA_OPENAL}
${MEGA_PHYSFS}
${MEGA_SDL2MAIN}
${MEGA_SDL2}
${MEGA_ZLIB}
@@ -172,7 +171,6 @@ Please see http://bitbucket.org/rude/megasource
find_package(ModPlug REQUIRED)
find_package(OpenAL REQUIRED)
find_package(OpenGL REQUIRED)
find_package(PhysFS REQUIRED)
find_package(SDL2 REQUIRED)
find_package(Theora REQUIRED)
find_package(Vorbis REQUIRED)
@@ -182,7 +180,6 @@ Please see http://bitbucket.org/rude/megasource
set(LOVE_INCLUDE_DIRS
${SDL2_INCLUDE_DIR}
${PHYSFS_INCLUDE_DIR}
${FREETYPE_INCLUDE_DIRS}
${VORBIS_INCLUDE_DIR}
)
@@ -193,7 +190,6 @@ Please see http://bitbucket.org/rude/megasource
${FREETYPE_LIBRARY}
${OPENAL_LIBRARY}
${MODPLUG_LIBRARY}
${PHYSFS_LIBRARY}
${THEORA_LIBRARY}
${THEORADEC_LIBRARY}
${VORBISFILE_LIBRARY}
@@ -255,27 +251,41 @@ endfunction()
set(LOVE_SRC_COMMON
src/common/b64.cpp
src/common/b64.h
src/common/Color.h
src/common/config.h
src/common/Data.cpp
src/common/Data.h
src/common/delay.cpp
src/common/delay.h
src/common/deprecation.cpp
src/common/deprecation.h
src/common/EnumMap.h
src/common/Exception.cpp
src/common/Exception.h
src/common/halffloat.cpp
src/common/halffloat.h
src/common/int.h
src/common/math.h
src/common/Matrix.cpp
src/common/Matrix.h
src/common/Memoizer.cpp
src/common/Memoizer.h
src/common/memory.cpp
src/common/memory.h
src/common/Module.cpp
src/common/Module.h
src/common/Object.cpp
src/common/Object.h
src/common/Optional.h
src/common/pixelformat.cpp
src/common/pixelformat.h
src/common/Reference.cpp
src/common/Reference.h
src/common/runtime.cpp
src/common/runtime.h
src/common/Stream.cpp
src/common/Stream.h
src/common/StringMap.cpp
src/common/StringMap.h
src/common/types.cpp
src/common/types.h
@@ -286,8 +296,6 @@ set(LOVE_SRC_COMMON
#src/common/Vector.cpp # Vector.cpp is empty.
src/common/Vector.h
src/common/version.h
src/common/wrap_Data.cpp
src/common/wrap_Data.h
)
if (APPLE)
@@ -307,10 +315,18 @@ set(LOVE_SRC_MODULE_AUDIO_ROOT
src/modules/audio/Audio.h
src/modules/audio/Source.cpp
src/modules/audio/Source.h
src/modules/audio/RecordingDevice.cpp
src/modules/audio/RecordingDevice.h
src/modules/audio/Filter.cpp
src/modules/audio/Filter.h
src/modules/audio/Effect.cpp
src/modules/audio/Effect.h
src/modules/audio/wrap_Audio.cpp
src/modules/audio/wrap_Audio.h
src/modules/audio/wrap_Source.cpp
src/modules/audio/wrap_Source.h
src/modules/audio/wrap_RecordingDevice.cpp
src/modules/audio/wrap_RecordingDevice.h
)
set(LOVE_SRC_MODULE_AUDIO_NULL
@@ -318,6 +334,8 @@ set(LOVE_SRC_MODULE_AUDIO_NULL
src/modules/audio/null/Audio.h
src/modules/audio/null/Source.cpp
src/modules/audio/null/Source.h
src/modules/audio/null/RecordingDevice.cpp
src/modules/audio/null/RecordingDevice.h
)
set(LOVE_SRC_MODULE_AUDIO_OPENAL
@@ -327,6 +345,12 @@ set(LOVE_SRC_MODULE_AUDIO_OPENAL
src/modules/audio/openal/Pool.h
src/modules/audio/openal/Source.cpp
src/modules/audio/openal/Source.h
src/modules/audio/openal/RecordingDevice.cpp
src/modules/audio/openal/RecordingDevice.h
src/modules/audio/openal/Filter.cpp
src/modules/audio/openal/Filter.h
src/modules/audio/openal/Effect.cpp
src/modules/audio/openal/Effect.h
)
set(LOVE_SRC_MODULE_AUDIO
@@ -339,6 +363,37 @@ source_group("modules\\audio" FILES ${LOVE_SRC_MODULE_AUDIO_ROOT})
source_group("modules\\audio\\null" FILES ${LOVE_SRC_MODULE_AUDIO_NULL})
source_group("modules\\audio\\openal" FILES ${LOVE_SRC_MODULE_AUDIO_OPENAL})
#
# love.data
#
set(LOVE_SRC_MODULE_DATA
src/modules/data/ByteData.cpp
src/modules/data/ByteData.h
src/modules/data/CompressedData.cpp
src/modules/data/CompressedData.h
src/modules/data/Compressor.cpp
src/modules/data/Compressor.h
src/modules/data/DataModule.cpp
src/modules/data/DataModule.h
src/modules/data/DataView.cpp
src/modules/data/DataView.h
src/modules/data/HashFunction.cpp
src/modules/data/HashFunction.h
src/modules/data/wrap_ByteData.cpp
src/modules/data/wrap_ByteData.h
src/modules/data/wrap_CompressedData.cpp
src/modules/data/wrap_CompressedData.h
src/modules/data/wrap_Data.cpp
src/modules/data/wrap_Data.h
src/modules/data/wrap_DataModule.cpp
src/modules/data/wrap_DataModule.h
src/modules/data/wrap_DataView.cpp
src/modules/data/wrap_DataView.h
)
source_group("modules\\data" FILES ${LOVE_SRC_MODULE_DATA})
#
# love.event
#
@@ -446,71 +501,94 @@ source_group("modules\\font\\freetype" FILES ${LOVE_SRC_MODULE_FONT_FREETYPE})
#
set(LOVE_SRC_MODULE_GRAPHICS_ROOT
src/modules/graphics/Color.h
src/modules/graphics/Buffer.cpp
src/modules/graphics/Buffer.h
src/modules/graphics/Canvas.cpp
src/modules/graphics/Canvas.h
src/modules/graphics/depthstencil.cpp
src/modules/graphics/depthstencil.h
src/modules/graphics/Deprecations.cpp
src/modules/graphics/Deprecations.h
src/modules/graphics/Drawable.cpp
src/modules/graphics/Drawable.h
src/modules/graphics/Font.cpp
src/modules/graphics/Font.h
src/modules/graphics/Graphics.cpp
src/modules/graphics/Graphics.h
src/modules/graphics/Image.cpp
src/modules/graphics/Image.h
src/modules/graphics/Mesh.cpp
src/modules/graphics/Mesh.h
src/modules/graphics/ParticleSystem.cpp
src/modules/graphics/ParticleSystem.h
src/modules/graphics/Polyline.cpp
src/modules/graphics/Polyline.h
src/modules/graphics/Quad.cpp
src/modules/graphics/Quad.h
src/modules/graphics/Resource.h
src/modules/graphics/Shader.cpp
src/modules/graphics/Shader.h
src/modules/graphics/ShaderStage.cpp
src/modules/graphics/ShaderStage.h
src/modules/graphics/SpriteBatch.cpp
src/modules/graphics/SpriteBatch.h
src/modules/graphics/StreamBuffer.cpp
src/modules/graphics/StreamBuffer.h
src/modules/graphics/Text.cpp
src/modules/graphics/Text.h
src/modules/graphics/Texture.cpp
src/modules/graphics/Texture.h
src/modules/graphics/vertex.cpp
src/modules/graphics/vertex.h
src/modules/graphics/Video.cpp
src/modules/graphics/Video.h
src/modules/graphics/Volatile.cpp
src/modules/graphics/Volatile.h
src/modules/graphics/wrap_Canvas.cpp
src/modules/graphics/wrap_Canvas.h
src/modules/graphics/wrap_Font.cpp
src/modules/graphics/wrap_Font.h
src/modules/graphics/wrap_Graphics.cpp
src/modules/graphics/wrap_Graphics.h
src/modules/graphics/wrap_Image.cpp
src/modules/graphics/wrap_Image.h
src/modules/graphics/wrap_Mesh.cpp
src/modules/graphics/wrap_Mesh.h
src/modules/graphics/wrap_ParticleSystem.cpp
src/modules/graphics/wrap_ParticleSystem.h
src/modules/graphics/wrap_Quad.cpp
src/modules/graphics/wrap_Quad.h
src/modules/graphics/wrap_Shader.cpp
src/modules/graphics/wrap_Shader.h
src/modules/graphics/wrap_SpriteBatch.cpp
src/modules/graphics/wrap_SpriteBatch.h
src/modules/graphics/wrap_Texture.cpp
src/modules/graphics/wrap_Texture.h
src/modules/graphics/wrap_Text.cpp
src/modules/graphics/wrap_Text.h
src/modules/graphics/wrap_Video.cpp
src/modules/graphics/wrap_Video.h
)
set(LOVE_SRC_MODULE_GRAPHICS_OPENGL
src/modules/graphics/opengl/Buffer.cpp
src/modules/graphics/opengl/Buffer.h
src/modules/graphics/opengl/Canvas.cpp
src/modules/graphics/opengl/Canvas.h
src/modules/graphics/opengl/Font.cpp
src/modules/graphics/opengl/Font.h
src/modules/graphics/opengl/GLBuffer.cpp
src/modules/graphics/opengl/GLBuffer.h
src/modules/graphics/opengl/FenceSync.cpp
src/modules/graphics/opengl/FenceSync.h
src/modules/graphics/opengl/Graphics.cpp
src/modules/graphics/opengl/Graphics.h
src/modules/graphics/opengl/Image.cpp
src/modules/graphics/opengl/Image.h
src/modules/graphics/opengl/Mesh.cpp
src/modules/graphics/opengl/Mesh.h
src/modules/graphics/opengl/OpenGL.cpp
src/modules/graphics/opengl/OpenGL.h
src/modules/graphics/opengl/ParticleSystem.cpp
src/modules/graphics/opengl/ParticleSystem.h
src/modules/graphics/opengl/Polyline.cpp
src/modules/graphics/opengl/Polyline.h
src/modules/graphics/opengl/Shader.cpp
src/modules/graphics/opengl/Shader.h
src/modules/graphics/opengl/SpriteBatch.cpp
src/modules/graphics/opengl/SpriteBatch.h
src/modules/graphics/opengl/Text.cpp
src/modules/graphics/opengl/Text.h
src/modules/graphics/opengl/Video.cpp
src/modules/graphics/opengl/Video.h
src/modules/graphics/opengl/wrap_Canvas.cpp
src/modules/graphics/opengl/wrap_Canvas.h
src/modules/graphics/opengl/wrap_Font.cpp
src/modules/graphics/opengl/wrap_Font.h
src/modules/graphics/opengl/wrap_Graphics.cpp
src/modules/graphics/opengl/wrap_Graphics.h
src/modules/graphics/opengl/wrap_Image.cpp
src/modules/graphics/opengl/wrap_Image.h
src/modules/graphics/opengl/wrap_Mesh.cpp
src/modules/graphics/opengl/wrap_Mesh.h
src/modules/graphics/opengl/wrap_ParticleSystem.cpp
src/modules/graphics/opengl/wrap_ParticleSystem.h
src/modules/graphics/opengl/wrap_Shader.cpp
src/modules/graphics/opengl/wrap_Shader.h
src/modules/graphics/opengl/wrap_SpriteBatch.cpp
src/modules/graphics/opengl/wrap_SpriteBatch.h
src/modules/graphics/opengl/wrap_Text.cpp
src/modules/graphics/opengl/wrap_Text.h
src/modules/graphics/opengl/wrap_Video.cpp
src/modules/graphics/opengl/wrap_Video.h
src/modules/graphics/opengl/ShaderStage.cpp
src/modules/graphics/opengl/ShaderStage.h
src/modules/graphics/opengl/StreamBuffer.cpp
src/modules/graphics/opengl/StreamBuffer.h
)
set(LOVE_SRC_MODULE_GRAPHICS
@@ -528,9 +606,16 @@ source_group("modules\\graphics\\opengl" FILES ${LOVE_SRC_MODULE_GRAPHICS_OPENGL
set(LOVE_SRC_MODULE_IMAGE_ROOT
src/modules/image/CompressedImageData.cpp
src/modules/image/CompressedImageData.h
src/modules/image/CompressedSlice.cpp
src/modules/image/CompressedSlice.h
src/modules/image/FormatHandler.cpp
src/modules/image/FormatHandler.h
src/modules/image/Image.cpp
src/modules/image/Image.h
src/modules/image/ImageData.cpp
src/modules/image/ImageData.h
src/modules/image/ImageDataBase.cpp
src/modules/image/ImageDataBase.h
src/modules/image/wrap_CompressedImageData.cpp
src/modules/image/wrap_CompressedImageData.h
src/modules/image/wrap_Image.cpp
@@ -542,17 +627,10 @@ set(LOVE_SRC_MODULE_IMAGE_ROOT
set(LOVE_SRC_MODULE_IMAGE_MAGPIE
src/modules/image/magpie/ASTCHandler.cpp
src/modules/image/magpie/ASTCHandler.h
src/modules/image/magpie/CompressedImageData.cpp
src/modules/image/magpie/CompressedImageData.h
src/modules/image/magpie/CompressedFormatHandler.h
src/modules/image/magpie/ddsHandler.cpp
src/modules/image/magpie/ddsHandler.h
src/modules/image/magpie/FormatHandler.cpp
src/modules/image/magpie/FormatHandler.h
src/modules/image/magpie/Image.cpp
src/modules/image/magpie/Image.h
src/modules/image/magpie/ImageData.cpp
src/modules/image/magpie/ImageData.h
src/modules/image/magpie/EXRHandler.cpp
src/modules/image/magpie/EXRHandler.h
src/modules/image/magpie/KTXHandler.cpp
src/modules/image/magpie/KTXHandler.h
src/modules/image/magpie/PKMHandler.cpp
@@ -633,22 +711,20 @@ source_group("modules\\keyboard\\sdl" FILES ${LOVE_SRC_MODULE_KEYBOARD_SDL})
set(LOVE_SRC_MODULE_MATH
src/modules/math/BezierCurve.cpp
src/modules/math/BezierCurve.h
src/modules/math/CompressedData.cpp
src/modules/math/CompressedData.h
src/modules/math/Compressor.cpp
src/modules/math/Compressor.h
src/modules/math/MathModule.cpp
src/modules/math/MathModule.h
src/modules/math/RandomGenerator.cpp
src/modules/math/RandomGenerator.h
src/modules/math/Transform.cpp
src/modules/math/Transform.h
src/modules/math/wrap_BezierCurve.cpp
src/modules/math/wrap_BezierCurve.h
src/modules/math/wrap_CompressedData.cpp
src/modules/math/wrap_CompressedData.h
src/modules/math/wrap_Math.cpp
src/modules/math/wrap_Math.h
src/modules/math/wrap_RandomGenerator.cpp
src/modules/math/wrap_RandomGenerator.h
src/modules/math/wrap_Transform.cpp
src/modules/math/wrap_Transform.h
)
source_group("modules\\math" FILES ${LOVE_SRC_MODULE_MATH})
@@ -809,6 +885,7 @@ source_group("modules\\physics\\box2d" FILES ${LOVE_SRC_MODULE_PHYSICS_BOX2D})
#
set(LOVE_SRC_MODULE_SOUND_ROOT
src/modules/sound/Decoder.cpp
src/modules/sound/Decoder.h
src/modules/sound/Sound.cpp
src/modules/sound/Sound.h
@@ -823,8 +900,6 @@ set(LOVE_SRC_MODULE_SOUND_ROOT
)
set(LOVE_SRC_MODULE_SOUND_LULLABY
src/modules/sound/lullaby/Decoder.cpp
src/modules/sound/lullaby/Decoder.h
src/modules/sound/lullaby/FLACDecoder.cpp
src/modules/sound/lullaby/FLACDecoder.h
src/modules/sound/lullaby/GmeDecoder.cpp
@@ -920,25 +995,14 @@ source_group("modules\\thread\\sdl" FILES ${LOVE_SRC_MODULE_THREAD_SDL})
# love.timer
#
set(LOVE_SRC_MODULE_TIMER_ROOT
set(LOVE_SRC_MODULE_TIMER
src/modules/timer/Timer.cpp
src/modules/timer/Timer.h
src/modules/timer/wrap_Timer.cpp
src/modules/timer/wrap_Timer.h
)
set(LOVE_SRC_MODULE_TIMER_SDL
src/modules/timer/sdl/Timer.cpp
src/modules/timer/sdl/Timer.h
)
set(LOVE_SRC_MODULE_TIMER
${LOVE_SRC_MODULE_TIMER_ROOT}
${LOVE_SRC_MODULE_TIMER_SDL}
)
source_group("modules\\timer" FILES ${LOVE_SRC_MODULE_TIMER_ROOT})
source_group("modules\\timer\\sdl" FILES ${LOVE_SRC_MODULE_TIMER_SDL})
source_group("modules\\timer" FILES ${LOVE_SRC_MODULE_TIMER})
#
# love.touch
@@ -980,8 +1044,10 @@ set(LOVE_SRC_MODULE_VIDEO_ROOT
set(LOVE_SRC_MODULE_VIDEO_THEORA
src/modules/video/theora/Video.cpp
src/modules/video/theora/Video.h
src/modules/video/theora/VideoStream.cpp
src/modules/video/theora/VideoStream.h
src/modules/video/theora/OggDemuxer.cpp
src/modules/video/theora/OggDemuxer.h
src/modules/video/theora/TheoraVideoStream.cpp
src/modules/video/theora/TheoraVideoStream.h
)
set(LOVE_SRC_MODULE_VIDEO
@@ -1220,6 +1286,121 @@ set(LOVE_SRC_3P_GLAD
add_library(love_3p_glad ${LOVE_SRC_3P_GLAD})
#
# glslang
#
set(LOVE_SRC_3P_GLSLANG_GLSLANG_GENERICCODEGEN
src/libraries/glslang/glslang/GenericCodeGen/CodeGen.cpp
src/libraries/glslang/glslang/GenericCodeGen/Link.cpp
)
set(LOVE_SRC_3P_GLSLANG_GLSLANG_INCLUDE
src/libraries/glslang/glslang/Include/arrays.h
src/libraries/glslang/glslang/Include/BaseTypes.h
src/libraries/glslang/glslang/Include/Common.h
src/libraries/glslang/glslang/Include/ConstantUnion.h
src/libraries/glslang/glslang/Include/InfoSink.h
src/libraries/glslang/glslang/Include/InitializeGlobals.h
src/libraries/glslang/glslang/Include/intermediate.h
src/libraries/glslang/glslang/Include/PoolAlloc.h
src/libraries/glslang/glslang/Include/ResourceLimits.h
src/libraries/glslang/glslang/Include/revision.h
src/libraries/glslang/glslang/Include/ShHandle.h
src/libraries/glslang/glslang/Include/Types.h
)
set(LOVE_SRC_3P_GLSLANG_GLSLANG_MACHINEINDEPENDENT_PREPROCESSOR
src/libraries/glslang/glslang/MachineIndependent/preprocessor/Pp.cpp
src/libraries/glslang/glslang/MachineIndependent/preprocessor/PpAtom.cpp
src/libraries/glslang/glslang/MachineIndependent/preprocessor/PpContext.cpp
src/libraries/glslang/glslang/MachineIndependent/preprocessor/PpContext.h
src/libraries/glslang/glslang/MachineIndependent/preprocessor/PpScanner.cpp
src/libraries/glslang/glslang/MachineIndependent/preprocessor/PpTokens.cpp
src/libraries/glslang/glslang/MachineIndependent/preprocessor/PpTokens.h
)
set(LOVE_SRC_3P_GLSLANG_GLSLANG_MACHINEINDEPENDENT
${LOVE_SRC_3P_GLSLANG_GLSLANG_MACHINEINDEPENDENT_PREPROCESSOR}
src/libraries/glslang/glslang/MachineIndependent/Constant.cpp
src/libraries/glslang/glslang/MachineIndependent/gl_types.h
src/libraries/glslang/glslang/MachineIndependent/glslang_tab.cpp
src/libraries/glslang/glslang/MachineIndependent/glslang_tab.cpp.h
src/libraries/glslang/glslang/MachineIndependent/InfoSink.cpp
src/libraries/glslang/glslang/MachineIndependent/Initialize.cpp
src/libraries/glslang/glslang/MachineIndependent/Initialize.h
src/libraries/glslang/glslang/MachineIndependent/Intermediate.cpp
src/libraries/glslang/glslang/MachineIndependent/intermOut.cpp
src/libraries/glslang/glslang/MachineIndependent/IntermTraverse.cpp
src/libraries/glslang/glslang/MachineIndependent/iomapper.cpp
src/libraries/glslang/glslang/MachineIndependent/iomapper.h
src/libraries/glslang/glslang/MachineIndependent/limits.cpp
src/libraries/glslang/glslang/MachineIndependent/linkValidate.cpp
src/libraries/glslang/glslang/MachineIndependent/LiveTraverser.h
src/libraries/glslang/glslang/MachineIndependent/localintermediate.h
src/libraries/glslang/glslang/MachineIndependent/parseConst.cpp
src/libraries/glslang/glslang/MachineIndependent/ParseContextBase.cpp
src/libraries/glslang/glslang/MachineIndependent/ParseHelper.cpp
src/libraries/glslang/glslang/MachineIndependent/ParseHelper.h
src/libraries/glslang/glslang/MachineIndependent/parseVersions.h
src/libraries/glslang/glslang/MachineIndependent/PoolAlloc.cpp
src/libraries/glslang/glslang/MachineIndependent/propagateNoContraction.cpp
src/libraries/glslang/glslang/MachineIndependent/propagateNoContraction.h
src/libraries/glslang/glslang/MachineIndependent/reflection.cpp
src/libraries/glslang/glslang/MachineIndependent/reflection.h
src/libraries/glslang/glslang/MachineIndependent/RemoveTree.cpp
src/libraries/glslang/glslang/MachineIndependent/RemoveTree.h
src/libraries/glslang/glslang/MachineIndependent/Scan.cpp
src/libraries/glslang/glslang/MachineIndependent/Scan.h
src/libraries/glslang/glslang/MachineIndependent/ScanContext.h
src/libraries/glslang/glslang/MachineIndependent/ShaderLang.cpp
src/libraries/glslang/glslang/MachineIndependent/SymbolTable.cpp
src/libraries/glslang/glslang/MachineIndependent/SymbolTable.h
src/libraries/glslang/glslang/MachineIndependent/Versions.cpp
src/libraries/glslang/glslang/MachineIndependent/Versions.h
)
set(LOVE_SRC_3P_GLSLANG_GLSLANG_OSDEPENDENT
src/libraries/glslang/glslang/OSDependent/osinclude.h
)
if(MSVC)
set(LOVE_SRC_3P_GLSLANG_GLSLANG_OSDEPENDENT
${LOVE_SRC_3P_GLSLANG_GLSLANG_OSDEPENDENT}
src/libraries/glslang/glslang/OSDependent/Windows/main.cpp
src/libraries/glslang/glslang/OSDependent/Windows/ossource.cpp
)
else()
set(LOVE_SRC_3P_GLSLANG_GLSLANG_OSDEPENDENT
${LOVE_SRC_3P_GLSLANG_GLSLANG_OSDEPENDENT}
src/libraries/glslang/glslang/OSDependent/Unix/ossource.cpp
)
endif()
set(LOVE_SRC_3P_GLSLANG_GLSLANG_PUBLIC
src/libraries/glslang/glslang/Public/ShaderLang.h
)
set(LOVE_SRC_3P_GLSLANG_GLSLANG
${LOVE_SRC_3P_GLSLANG_GLSLANG_GENERICCODEGEN}
${LOVE_SRC_3P_GLSLANG_GLSLANG_INCLUDE}
${LOVE_SRC_3P_GLSLANG_GLSLANG_MACHINEINDEPENDENT}
${LOVE_SRC_3P_GLSLANG_GLSLANG_OSDEPENDENT}
${LOVE_SRC_3P_GLSLANG_GLSLANG_PUBLIC}
)
set(LOVE_SRC_3P_GLSLANG_OGLCOMPILERSDLL
src/libraries/glslang/OGLCompilersDLL/InitializeDll.cpp
src/libraries/glslang/OGLCompilersDLL/InitializeDll.h
)
set(LOVE_SRC_3P_GLSLANG
${LOVE_SRC_3P_GLSLANG_GLSLANG}
${LOVE_SRC_3P_GLSLANG_OGLCOMPILERSDLL}
)
add_library(love_3p_glslang ${LOVE_SRC_3P_GLSLANG})
#
# LodePNG
#
@@ -1245,23 +1426,27 @@ set(LOVE_SRC_3P_LUASOCKET_LIBLUASOCKET
src/libraries/luasocket/libluasocket/auxiliar.h
src/libraries/luasocket/libluasocket/buffer.c
src/libraries/luasocket/libluasocket/buffer.h
src/libraries/luasocket/libluasocket/compat.c
src/libraries/luasocket/libluasocket/compat.h
src/libraries/luasocket/libluasocket/except.c
src/libraries/luasocket/libluasocket/except.h
src/libraries/luasocket/libluasocket/ftp.lua.h
src/libraries/luasocket/libluasocket/headers.lua.h
src/libraries/luasocket/libluasocket/http.lua.h
src/libraries/luasocket/libluasocket/inet.c
src/libraries/luasocket/libluasocket/inet.h
src/libraries/luasocket/libluasocket/io.c
src/libraries/luasocket/libluasocket/io.h
src/libraries/luasocket/libluasocket/ltn12.lua.h
src/libraries/luasocket/libluasocket/lua.h
src/libraries/luasocket/libluasocket/luasocket.c
src/libraries/luasocket/libluasocket/luasocket.h
src/libraries/luasocket/libluasocket/mbox.lua.h
src/libraries/luasocket/libluasocket/mime.c
src/libraries/luasocket/libluasocket/mime.h
src/libraries/luasocket/libluasocket/mime.lua.h
src/libraries/luasocket/libluasocket/options.c
src/libraries/luasocket/libluasocket/options.h
src/libraries/luasocket/libluasocket/pierror.h
src/libraries/luasocket/libluasocket/select.c
src/libraries/luasocket/libluasocket/select.h
src/libraries/luasocket/libluasocket/smtp.lua.h
@@ -1277,15 +1462,29 @@ set(LOVE_SRC_3P_LUASOCKET_LIBLUASOCKET
src/libraries/luasocket/libluasocket/url.lua.h
)
set(LOVE_LINK_L3P_LUASOCKET_LIBLUASOCKET)
if(MSVC)
set(LOVE_SRC_3P_LUASOCKET_LIBLUASOCKET
${LOVE_SRC_3P_LUASOCKET_LIBLUASOCKET}
src/libraries/luasocket/libluasocket/wsocket.c
src/libraries/luasocket/libluasocket/wsocket.h
)
set(LOVE_LINK_L3P_LUASOCKET_LIBLUASOCKET
${LOVE_LINK_L3P_LUASOCKET_LIBLUASOCKET}
ws2_32.lib
)
else()
set(LOVE_SRC_3P_LUASOCKET_LIBLUASOCKET
${LOVE_SRC_3P_LUASOCKET_LIBLUASOCKET}
src/libraries/luasocket/libluasocket/serial.c
src/libraries/luasocket/libluasocket/unix.c
src/libraries/luasocket/libluasocket/unix.h
src/libraries/luasocket/libluasocket/unixtcp.c
src/libraries/luasocket/libluasocket/unixtcp.h
src/libraries/luasocket/libluasocket/unixudp.c
src/libraries/luasocket/libluasocket/unixudp.h
src/libraries/luasocket/libluasocket/usocket.c
src/libraries/luasocket/libluasocket/usocket.h
)
@@ -1297,20 +1496,22 @@ set(LOVE_SRC_3P_LUASOCKET
)
add_library(love_3p_luasocket ${LOVE_SRC_3P_LUASOCKET})
target_link_libraries(love_3p_luasocket ${LOVE_LUA_LIBRARY})
target_link_libraries(love_3p_luasocket ${LOVE_LUA_LIBRARY} ${LOVE_LINK_L3P_LUASOCKET_LIBLUASOCKET})
#
# Lua 5.3's UTF-8 library
# APIs from Lua 5.3
#
set(LOVE_SRC_3P_LUAUTF8
src/libraries/luautf8/lprefix.h
src/libraries/luautf8/lutf8lib.c
src/libraries/luautf8/lutf8lib.h
set(LOVE_SRC_3P_LUA53
src/libraries/lua53/lprefix.h
src/libraries/lua53/lstrlib.c
src/libraries/lua53/lstrlib.h
src/libraries/lua53/lutf8lib.c
src/libraries/lua53/lutf8lib.h
)
add_library(love_3p_luautf8 ${LOVE_SRC_3P_LUAUTF8})
target_link_libraries(love_3p_luautf8 ${LOVE_LUA_LIBRARY})
add_library(love_3p_lua53 ${LOVE_SRC_3P_LUA53})
target_link_libraries(love_3p_lua53 ${LOVE_LUA_LIBRARY})
#
# lz4
@@ -1321,6 +1522,7 @@ set(LOVE_SRC_3P_LZ4
src/libraries/lz4/lz4.h
src/libraries/lz4/lz4hc.c
src/libraries/lz4/lz4hc.h
src/libraries/lz4/lz4opt.h
)
add_library(love_3p_lz4 ${LOVE_SRC_3P_LZ4})
@@ -1338,6 +1540,49 @@ set(LOVE_SRC_3P_NOISE1234
add_library(love_3p_noise1234 ${LOVE_SRC_3P_NOISE1234})
#
# physfs
#
set(LOVE_SRC_3P_PHYSFS
src/libraries/physfs/physfs_archiver_7z.c
src/libraries/physfs/physfs_archiver_dir.c
src/libraries/physfs/physfs_archiver_grp.c
src/libraries/physfs/physfs_archiver_hog.c
src/libraries/physfs/physfs_archiver_iso9660.c
src/libraries/physfs/physfs_archiver_mvl.c
src/libraries/physfs/physfs_archiver_qpak.c
src/libraries/physfs/physfs_archiver_slb.c
src/libraries/physfs/physfs_archiver_unpacked.c
src/libraries/physfs/physfs_archiver_vdf.c
src/libraries/physfs/physfs_archiver_wad.c
src/libraries/physfs/physfs_archiver_zip.c
src/libraries/physfs/physfs_byteorder.c
src/libraries/physfs/physfs_casefolding.h
src/libraries/physfs/physfs_internal.h
src/libraries/physfs/physfs_lzmasdk.h
src/libraries/physfs/physfs_miniz.h
src/libraries/physfs/physfs_platform_haiku.cpp
src/libraries/physfs/physfs_platform_os2.c
src/libraries/physfs/physfs_platform_posix.c
src/libraries/physfs/physfs_platform_qnx.c
src/libraries/physfs/physfs_platform_unix.c
src/libraries/physfs/physfs_platform_windows.c
src/libraries/physfs/physfs_platform_winrt.cpp
src/libraries/physfs/physfs_platforms.h
src/libraries/physfs/physfs_unicode.c
src/libraries/physfs/physfs.c
src/libraries/physfs/physfs.h
)
if(APPLE)
set(LOVE_SRC_3P_PHYSFS ${LOVE_SRC_3P_PHYSFS}
src/libraries/physfs/physfs_platform_apple.m
)
endif()
add_library(love_3p_physfs ${LOVE_SRC_3P_PHYSFS})
#
# stb_image
#
@@ -1348,6 +1593,16 @@ set(LOVE_SRC_3P_STB
# stb_image has no implementation files of its own.
#
# tiny exr
#
set(LOVE_SRC_3P_TINYEXR
src/libraries/tinyexr/tinyexr.h
)
# tinyexr has no implementation files of its own.
#
# utf8
#
@@ -1385,20 +1640,34 @@ set(LOVE_SRC_3P_WUFF
add_library(love_3p_wuff ${LOVE_SRC_3P_WUFF})
#
# xxHash
#
set(LOVE_SRC_3P_XXHASH
src/libraries/xxHash/xxhash.c
src/libraries/xxHash/xxhash.h
)
add_library(love_3p_xxhash ${LOVE_SRC_3P_XXHASH})
set(LOVE_3P
love_3p_box2d
love_3p_ddsparse
love_3p_enet
love_3p_glad
love_3p_glslang
love_3p_lodepng
love_3p_luasocket
love_3p_luautf8
love_3p_lua53
love_3p_lz4
love_3p_noise1234
love_3p_physfs
love_3p_wuff
love_3p_xxhash
)
love_disable_warnings(love_3p_box2d love_3p_enet love_3p_luasocket)
love_disable_warnings(love_3p_box2d love_3p_enet love_3p_luasocket love_3p_physfs)
#
# liblove
@@ -1407,6 +1676,7 @@ set(LOVE_LIB_SRC
${LOVE_SRC_COMMON}
# Modules
${LOVE_SRC_MODULE_AUDIO}
${LOVE_SRC_MODULE_DATA}
${LOVE_SRC_MODULE_EVENT}
${LOVE_SRC_MODULE_FILESYSTEM}
${LOVE_SRC_MODULE_FONT}
@@ -1583,7 +1853,7 @@ set(CPACK_RESOURCE_FILE_README "${CMAKE_CURRENT_SOURCE_DIR}/readme.md")
set(CPACK_RESOURCE_FILE_LICENSE "${CMAKE_CURRENT_SOURCE_DIR}/license.txt")
set(CPACK_NSIS_EXECUTABLES_DIRECTORY .)
set(CPACK_NSIS_PACKAGE_NAME "LÖVE")
set(CPACK_NSIS_PACKAGE_NAME "LOVE")
set(CPACK_NSIS_DISPLAY_NAME "LOVE ${LOVE_VERSION_STR}")
set(CPACK_NSIS_MODIFY_PATH OFF)
@@ -1604,7 +1874,7 @@ set(NSIS_MUI_ICON "${CMAKE_CURRENT_SOURCE_DIR}/extra/nsis\\\\love.ico")
set(NSIS_MUI_UNICON "${CMAKE_CURRENT_SOURCE_DIR}/extra/nsis\\\\love.ico")
set(CPACK_NSIS_INSTALLER_MUI_ICON_CODE "
!define MUI_WELCOMEPAGE_TITLE \\\"LÖVE ${LOVE_VERSION_STR} Setup\\\"
!define MUI_WELCOMEPAGE_TITLE \\\"LOVE ${LOVE_VERSION_STR} Setup\\\"
!define MUI_WELCOMEFINISHPAGE_BITMAP \\\"${NSIS_LEFT_BMP}\\\"
!define MUI_HEADERIMAGE_BITMAP \\\"${NSIS_TOP_BMP}\\\"
!define MUI_ICON \\\"${NSIS_MUI_ICON}\\\"
+184
View File
@@ -1,3 +1,187 @@
LOVE 11.1 [Mysterious Mysteries]
--------------------------------
Released: 2018-04-15
* Fixed love.graphics.setCanvas failing randomly.
* Fixed love.graphics.clear(colortable) when no Canvas is active.
* Fixed stencil and depth support on older phones.
* Fixed love.event.quit causing crashes and other unexpected behaviour if a Canvas is active.
* Fixed Fixture:getShape crashing when returning a ChainShape.
* Fixed love.joystick.loadJoystickMappings outputting a deprecation warning about love.filesystem.isFile.
* Fixed Source:queue to show the correct argument name in the error message when an invalid data parameter is given.
* Fixed t.console=true causing an error on Windows if lovec.exe is used.
LOVE 11.0 [Mysterious Mysteries]
--------------------------------
Released: 2018-04-01
* Added Object:release.
* Added Data:clone.
* Added queueable audio sources.
* Added audio input support.
* Added Source filters: low gain, high gain and band pass.
* Added audio effect APIs (reverb, echo, etc.)
* Added variants of SoundData:getSample/setSample which take a channel parameter.
* Added variants of all table-with-fields-returning get* functions, the new variants take an existing table to fill in.
* Added a variant to World:update, which accepts the number of iterations to run. The defaults are now 8 and 3.
* Added Body:isTouching.
* Added RopeJoint:setMaxLength.
* Added a click count argument to love.mousepressed and love.mousereleased.
* Added variants of love.filesystem.mount which accept a Data or FileData object containing zipped data.
* Added love.filesystem.get/setCRequirePath, and use that to find c libraries for require.
* Added variants of File:read and love.filesystem.read which take an enum to determine whether they return a FileData or a string.
* Added love.data module. It includes hex/base64 encoding functions, MD5 and SHA hashing, string packing, compression APIs, and more.
* Added Channel:hasRead, which checks if a message has been read. Takes an id, which Channel:push will now return.
* Added variants of Channel:demand and Channel:supply which take a timeout argument.
* Added Transform objects to love.math.
* Added support for different ImageData formats, including RGBA8 (the default), RGBA16, RGBA16F, and RGBA32F.
* Added the ability to load Radiance HDR, OpenEXR, and 16 bit PNG images.
* Added love.graphics.getImageFormats (replaces love.graphics.getCompressedImageFormats).
* Added the ability to specify a per-object pixel density scale factor when creating Images, Canvases, Fonts, and Videos. Affects drawing.
* Added Texture:getPixelWidth/Height and love.graphics.getPixelWidth/Height.
* Added Texture:getPixelDensity, love.graphics.getPixelDensity, and Font:getPixelDensity.
* Added Texture:getMipmapCount, getFormat, getLayerCount, getDepth, and getTextureType.
* Added Array, Cubemap, and Volume texture types and corresponding Image and Canvas APIs.
* Added love.graphics.getTextureTypes, returns a table with fields indicating support for each texture type.
* Added mipmapping support to Canvases, including both auto-generated mipmaps and manually rendering to a specific mipmap level.
* Added 'stencil8', 'depth24stencil8', 'depth32fstencil8', 'depth16', 'depth24', and 'depth32f' pixel formats for Canvases.
* Added variant of love.graphics.newCanvas which accepts a table of settings.
* Added optional 'readable' boolean field to the table passed into love.graphics.newCanvas.
* Added optional 'depthstencil' field to the table passed into love.graphics.setCanvas, for using a depth/stencil Canvas.
* Added optional 'depth' and 'stencil' boolean fields to the table passed into setCanvas, for enabling depth and stencil buffers if 'depthstencil' isn't used.
* Added shadow sampler support for Canvases.
* Added love.graphics.setDepthMode for using the depth buffer for depth testing/writes. Depth values of rendered objects can only be set via shaders.
* Added love.graphics.setMeshCullMode, for culling back- or front-facing triangles when drawing a Mesh.
* Added love.graphics.setFrontFaceWinding.
* Added variant of love.graphics.getCanvasFormats which takes a 'readable' boolean.
* Added love.graphics.drawLayer and SpriteBatch:add/setLayer for easily drawing layers of Array Textures.
* Added variants of love.graphics.print and printf which take a Font argument.
* Added variants of love.graphics.clear to control how the active depth and stencil buffers are cleared.
* Added love.graphics.applyTransform and love.graphics.replaceTransform.
* Added love.graphics.transformPoint and love.graphics.inverseTransformPoint.
* Added love.graphics.getStackDepth.
* Added love.graphics.flushBatch for manually flushing automatically batched draws.
* Added SpriteBatch:setDrawRange.
* Added per-shader opt in support for the GLSL 3.30 and GLSL ES 3.00 shading languages.
* Added 'void effect()' pixel shader entry point.
* Added love.graphics.validateShader.
* Added Shader:hasUniform.
* Added support for non-square shader uniform matrices on desktop platforms and on mobile GLSL 3.
* Added Shader:send(matrixname, is_column_major, matrix, ...) which specifies how to interpret the matrix table arguments.
* Added Shader:send variants which accept a Data object.
* Added 'borderellipse' and 'borderrectangle' ParticleSystem distributions.
* Added variant of ParticleSystem:setEmissionArea which accepts an area angle and a flag for whether particle directions are relative to the center of the area.
* Added ParticleSystem:set/getAreaSpreadAngle and set/getAreaSpreadIsRelativeDirection.
* Added love.graphics.captureScreenshot (replaces love.graphics.newScreenshot).
* Added 'glsl3', 'instancing', 'fullnpot','pixelshaderhighp', and 'shaderderivatives' graphics features.
* Added 'anisotropy' graphics limit.
* Added Mesh instancing support via love.graphics.drawInstanced and Mesh:attachAttribute.
* Added a Mesh:attachAttribute variant that takes a different target attribute name.
* Added Mesh:detachAttribute.
* Added a variant of Mesh:setVertexMap which accepts a Data object.
* Added love.window.updateMode.
* Added love.window.isMinimized.
* Added love.window.restore.
* Added the ability to prevent love from creating a stencil buffer for the window.
* Added cycle detection to Variant's table serialization, cycles now cause an error, rather than a stack overflow.
* Added love.graphics.newShader File and FileData variants.
* Added a default love.threaderror callback, which raises the error in the main thread.
* Added checks for invalid constants passed to love.keyboard.isDown/isScancodeDown.
* Added deprecation warnings, on by default for non-fused games.
* Added love.filesystem.getInfo.
* Added 'drawcallsbatched' to love.graphics.getStats.
* Added support for header-less DEFLATE to love.data.compress/decompress.
* Deprecated love.filesystem.exists / isFile / isDirectory / isSymlink / getLastModified / getSize (use getInfo instead).
* Deprecated love.math.compress / decompress (use love.data.compress / decompress instead).
* - All renamed APIs are formally deprecated rather than completely removed.
* Renamed love.window.getPixelScale to love.window.getDPIScale.
* Renamed love.mouse.hasCursor to love.mouse.isCursorSupported.
* Renamed ParticleSystem:setAreaSpread to ParticleSystem:setEmissionArea.
* Renamed love.errhand to love.errorhandler.
* Renamed Source/SoundData/Decoder:getChannels to getChannelCount.
* Renamed PrismaticJoint/RevoluteJoint:hasLimitsEnabled to areLimitsEnabled.
* Renamed love.audio.getSourceCount to love.audio.getActiveSourceCount.
* Renamed all get[Object]List functions to get[Object]s.
* Removed the default source type for love.audio.newSource.
* Removed variant of love.filesystem.newFileData which takes base64 data, use love.data.decode instead.
* Removed the no-argument variant of Text:set, use Text:clear instead.
* Removed love.graphics.getCompressedImageFormats, use love.graphics.getImageFormats instead.
* Removed the 'void effects(...)' pixel shader entry point. Use the new 'void effect()' instead.
* Removed Shader:getExternVariable, use Shader:hasUniform instead.
* Removed love.graphics.newScreenshot, use love.graphics.captureScreenshot instead.
* Removed deprecated enet function host:socket_get_address.
* Removed functions deprecated in LÖVE 0.10.2:
* Removed Shader:sendInt, Shader:sendBoolean, Shader:sentFloat, Shader:sendMatrix, and Shader:sendTexture (use Shader:send instead).
* Removed love.window.isCreated (use love.window.isOpen instead).
* Improved performance when drawing textures, shapes, lines, and points by automatically batching their draw calls together when possible.
* Improved performance of Shader:send when the Shader is not active.
* Improved performance of love.math.randomNormal when LuaJIT's JIT compiler is enabled.
* Improved performance of love.filesystem.lines and File:lines, especially when reading from a file inside a zip/.love.
* Changed all color values to be in the range 0-1, rather than 0-255.
* Changed high-dpi functionality to require much less code (often none at all) for graphics to appear at the correct sizes and positions.
* Changed love.graphics.print and friends to ignore carriage returns.
* Changed the 'multiply' blend mode to error if not used with the 'premultiplied' blend alpha mode, since the formula only works with that anyway.
* Changed some love.graphics, love.window, and love.event APIs to cause an error if a Canvas is active.
* Changed stenciling functionality with a Canvas active to require stencil=true (or a custom stencil-formatted Canvas) to be set in setCanvas.
* Changed Mesh:setDrawRange to take 'start' and 'count' parameters instead of 'min' and 'max'.
* Changed the 'vsync' field of love.window.setMode and t.window in love.conf. It's now an integer with 0 disabling vsync.
* Changed the audio playback APIs drastically.
* Changed enet to no longer set the 'enet' global, again matching luasocket.
* Changed Source seeking behaviour, all kinds of Sources now behave similarly when seeking past the boundaries.
* Changed love.timer.step, it now returns dt.
* Changed love.run and love.errhand to return a function for their main loop, which gets called until love quits.
* Updated and improved command line argument handling.
* Updated the boot sequence to show an error instead of the no-game screen, if a nonexistant folder is passed in as the source game directory.
* Updated 'love.exe --version' on Windows to print to the parent console.
* Updated Android print rerouting and JIT compilation disabling to apply inside threads.
* Updated invalid enum value error messages to show a list of the valid enum values.
* Updated Source:seek to work if the Source isn't playing.
* Updated love.event.poll to stop allocating memory unnecessarily.
* Updated love.math.random to have improved numeric distribution.
* Updated love.graphics to support Core Profile OpenGL 3.3+ when available.
* Updated shaders to always expose derivative functions (dFdx, dFdy, fwidth) when available in OpenGL ES.
* Updated shaders to allow using VERTEX and PIXEL in shader code.
* Updated love.graphics.circle/ellipse/arc/rectangle to take transformation scale into account when determining the number of segments to use.
* Updated Font glyph generation to improve antialiasing.
* Updated Canvas:newImageData to return an ImageData with a format that matches the Canvas' as closely as possible.
* Updated love.graphics.newImage to treat file names ending with "@2x", "@3x", etc. as a pixel density scale factor if none is explicitly supplied.
* Updated the error message when bad values are given to love.graphics.line.
* Updated the maximum love.graphics transformation/state stack depth from 64 to 128.
* Updated the default error handler to allow copying the error to the clipboard when the user decides to do so.
* Updated love.filesystem.setRequirePath to support multiple template '?' characters in each path.
* Updated luasocket to version 3.0rc1.
* Updated love.joystick.loadGamepadMappings so it doesn't error when given an empty string.
* Updated love.joystick.setGamepadMapping to use the controller's name for the new mapping when possible.
* Fixed error in default error handler when the error message contains non UTF-8 bytes.
* Fixed a memory leak when sending love objects to threads which never load that object's module.
* Fixed a memory leak in enet when peer:send fails.
* Fixed os.execute always returning -1 in Linux.
* Fixed the default reference angle for WeldJoint, PrismaticJoint, and RevoluteJoint.
* Fixed Fixture:getShape to reuse the existing internal Fixture-owned shape.
* Fixed MouseJoint:setFrequency to error instead of crashing if a frequency of 0 is set.
* Fixed love.system.set/getClipboardText to error instead of crashing, when a window hasn't been created.
* Fixed Joystick:getGamepadMapping to work with xinput controllers.
* Fixed love.joystick.setGamepadMapping's replacement code.
* Fixed baseline calculation when rendering text.
* Fixed VaryingTexCoords and love_ScreenSize in shaders to be 'highp' in OpenGL ES, when supported.
* Fixed ParticleSystem:setParticleLifetime to error if a negative value is given.
* Fixed Shader:send and Shader:sendColor ignoring the last argument for an array.
* Fixed a crash when love.graphics.pop is called after a love.window.setMode while the transformation stack was not empty.
* Fixed love.window.isMaximized.
* Fixed video playback to work with a wider range of Ogg Theora files.
* Fixed video seeking to be faster.
* Fixed BezierCurves to error instead of hanging in some situations.
* Fixed compilation of luasocket with newer luajit 2.1.0 beta versions.
LOVE 0.10.2 [Super Toast]
-------------------------
+12 -3
View File
@@ -1,12 +1,21 @@
version: 0.10.2.{build}
version: 11.1.{build}
image: Visual Studio 2013
shallow_clone: true
environment:
matrix:
- PLATFORM: x86
VCVARSALL_PLATFORM: x86
GENERATOR: "Visual Studio 12"
- PLATFORM: x64
VCVARSALL_PLATFORM: x86_amd64
GENERATOR: "Visual Studio 12 Win64"
init:
# Make VS 2013 command line tools available
- call "C:\Program Files (x86)\Microsoft Visual Studio 12.0\VC\vcvarsall.bat" %platform%
- call "C:\Program Files (x86)\Microsoft Visual Studio 12.0\VC\vcvarsall.bat" %VCVARSALL_PLATFORM%
install:
# We need to install NSIS to create the packaged installer executable.
@@ -26,7 +35,7 @@ install:
- move love libs\love
before_build:
- cmake -G "Visual Studio 12" -H. -Bbuild
- cmake -G "%GENERATOR%" -H. -Bbuild
build_script:
- cmake --build build --target PACKAGE --config Release
Binary file not shown.
File diff suppressed because it is too large Load Diff
@@ -1,28 +0,0 @@
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
<key>CFBundleDevelopmentRegion</key>
<string>English</string>
<key>CFBundleExecutable</key>
<string>${EXECUTABLE_NAME}</string>
<key>CFBundleIconFile</key>
<string></string>
<key>CFBundleIdentifier</key>
<string>love2d.${PRODUCT_NAME:rfc1034identifier}</string>
<key>CFBundleInfoDictionaryVersion</key>
<string>6.0</string>
<key>CFBundleName</key>
<string>LÖVE</string>
<key>CFBundlePackageType</key>
<string>FMWK</string>
<key>CFBundleShortVersionString</key>
<string>0.9.2</string>
<key>CFBundleSignature</key>
<string>LoVe</string>
<key>CFBundleVersion</key>
<string>0.9.2</string>
<key>NSPrincipalClass</key>
<string></string>
</dict>
</plist>
-75
View File
@@ -1,75 +0,0 @@
/**
* Copyright (c) 2006-2014 LOVE Development Team
*
* 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.
**/
#import "OSX.h"
#import <Foundation/Foundation.h>
#include <SDL2/SDL.h>
namespace love
{
namespace osx
{
std::string getLoveInResources()
{
std::string path;
@autoreleasepool
{
// check to see if there are any .love files in Resources - props to stevejohnson/diordna
NSArray *lovePaths = [[NSBundle mainBundle] pathsForResourcesOfType:@"love" inDirectory:nil];
if ([lovePaths count] > 0)
{
NSString *firstLovePath = [lovePaths objectAtIndex:0];
path = std::string([firstLovePath UTF8String]);
}
}
return path;
}
std::string checkDropEvents()
{
std::string dropstr;
SDL_Event event;
bool initvideo = SDL_WasInit(SDL_INIT_VIDEO) != 0;
if (!initvideo)
SDL_InitSubSystem(SDL_INIT_VIDEO);
SDL_PumpEvents();
if (SDL_PeepEvents(&event, 1, SDL_GETEVENT, SDL_DROPFILE, SDL_DROPFILE) > 0)
{
if (event.type == SDL_DROPFILE)
{
dropstr = std::string(event.drop.file);
SDL_free(event.drop.file);
}
}
if (!initvideo)
SDL_QuitSubSystem(SDL_INIT_VIDEO);
return dropstr;
}
} // osx
} // love
Binary file not shown.
Binary file not shown.
@@ -1,87 +0,0 @@
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
<key>CFBundleDevelopmentRegion</key>
<string>English</string>
<key>CFBundleDocumentTypes</key>
<array>
<dict>
<key>CFBundleTypeIconFile</key>
<string>LoveDocument.icns</string>
<key>CFBundleTypeName</key>
<string>LÖVE Project</string>
<key>CFBundleTypeRole</key>
<string>Viewer</string>
<key>LSHandlerRank</key>
<string>Owner</string>
<key>LSItemContentTypes</key>
<array>
<string>org.love2d.love-game</string>
</array>
</dict>
<dict>
<key>CFBundleTypeName</key>
<string>Folder</string>
<key>CFBundleTypeOSTypes</key>
<array>
<string>fold</string>
</array>
<key>CFBundleTypeRole</key>
<string>Viewer</string>
<key>LSHandlerRank</key>
<string>None</string>
</dict>
</array>
<key>CFBundleExecutable</key>
<string>love</string>
<key>CFBundleIconFile</key>
<string>Love.icns</string>
<key>CFBundleIdentifier</key>
<string>org.love2d.love</string>
<key>CFBundleInfoDictionaryVersion</key>
<string>6.0</string>
<key>CFBundleName</key>
<string>LÖVE</string>
<key>CFBundlePackageType</key>
<string>APPL</string>
<key>CFBundleShortVersionString</key>
<string>0.9.2</string>
<key>CFBundleSignature</key>
<string>LoVe</string>
<key>LSApplicationCategoryType</key>
<string>public.app-category.games</string>
<key>NSHumanReadableCopyright</key>
<string>© 2006-2014 LÖVE Development Team</string>
<key>NSPrincipalClass</key>
<string>NSApplication</string>
<key>UTExportedTypeDeclarations</key>
<array>
<dict>
<key>UTTypeConformsTo</key>
<array>
<string>com.pkware.zip-archive</string>
</array>
<key>UTTypeDescription</key>
<string>LÖVE Project</string>
<key>UTTypeIconFile</key>
<string>LoveDocument.icns</string>
<key>UTTypeIdentifier</key>
<string>org.love2d.love-game</string>
<key>UTTypeReferenceURL</key>
<string>http://love2d.org/wiki/Game_Distribution</string>
<key>UTTypeTagSpecification</key>
<dict>
<key>com.apple.ostype</key>
<string>LOVE</string>
<key>public.filename-extension</key>
<array>
<string>love</string>
</array>
<key>public.mime-type</key>
<string>application/x-love-game</string>
</dict>
</dict>
</array>
</dict>
</plist>
File diff suppressed because it is too large Load Diff
File diff suppressed because it is too large Load Diff
@@ -1,508 +0,0 @@
// !$*UTF8*$!
{
archiveVersion = 1;
classes = {
};
objectVersion = 46;
objects = {
/* Begin PBXBuildFile section */
8D11072F0486CEB800E47090 /* Cocoa.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 1058C7A1FEA54F0111CA2CBB /* Cocoa.framework */; };
A9255DD11043183600BA1496 /* FreeType.framework in Copy Frameworks */ = {isa = PBXBuildFile; fileRef = A93E6E4810420B4A007D418B /* FreeType.framework */; };
A9255DD31043183600BA1496 /* Lua.framework in Copy Frameworks */ = {isa = PBXBuildFile; fileRef = A93E6E5310420B57007D418B /* Lua.framework */; };
A9255E031043195A00BA1496 /* Vorbis.framework in Copy Frameworks */ = {isa = PBXBuildFile; fileRef = A9255E021043195A00BA1496 /* Vorbis.framework */; };
A9255F431043240F00BA1496 /* IL.framework in Copy Frameworks */ = {isa = PBXBuildFile; fileRef = A9255F421043240F00BA1496 /* IL.framework */; };
A9255F58104324E100BA1496 /* Ogg.framework in Copy Frameworks */ = {isa = PBXBuildFile; fileRef = A9255F51104324D700BA1496 /* Ogg.framework */; };
A93E6E5510420B57007D418B /* Lua.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = A93E6E5310420B57007D418B /* Lua.framework */; };
A93E6EED10420BA8007D418B /* love.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A93E6A3410420AC0007D418B /* love.cpp */; };
A9D307F2106635D3004FEDF8 /* physfs.framework in Copy Frameworks */ = {isa = PBXBuildFile; fileRef = A9D307E9106635C3004FEDF8 /* physfs.framework */; };
A9DEC1C11046EFA70049C70C /* Love.icns in Resources */ = {isa = PBXBuildFile; fileRef = A9DEC1BF1046EFA60049C70C /* Love.icns */; };
A9DEC1C21046EFA70049C70C /* LoveDocument.icns in Resources */ = {isa = PBXBuildFile; fileRef = A9DEC1C01046EFA70049C70C /* LoveDocument.icns */; };
A9F169AC109E825000FC83D1 /* mpg123.framework in Copy Frameworks */ = {isa = PBXBuildFile; fileRef = A9F169A6109E824900FC83D1 /* mpg123.framework */; };
A9F169AD109E825000FC83D1 /* libmodplug.framework in Copy Frameworks */ = {isa = PBXBuildFile; fileRef = A9F16926109E7BAD00FC83D1 /* libmodplug.framework */; };
FA08F69616C766E000F007B5 /* love.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = FA08F69116C765A200F007B5 /* love.framework */; };
FA08F69716C766E700F007B5 /* love.framework in Copy Frameworks */ = {isa = PBXBuildFile; fileRef = FA08F69116C765A200F007B5 /* love.framework */; };
FA9B4A0A16E1579F00074F42 /* SDL2.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = FA9B4A0916E1579F00074F42 /* SDL2.framework */; };
FA9B4A0B16E157B500074F42 /* SDL2.framework in Copy Frameworks */ = {isa = PBXBuildFile; fileRef = FA9B4A0916E1579F00074F42 /* SDL2.framework */; };
FAAFF04716CB120000CCDE45 /* OpenAL-Soft.framework in Copy Frameworks */ = {isa = PBXBuildFile; fileRef = FAAFF04616CB120000CCDE45 /* OpenAL-Soft.framework */; };
FAC1A449196F5DC600125284 /* license.txt in Resources */ = {isa = PBXBuildFile; fileRef = FAC1A448196F5DC600125284 /* license.txt */; };
FAC8E8D416F3C468004DADF3 /* OSX.mm in Sources */ = {isa = PBXBuildFile; fileRef = FAC8E8D316F3C468004DADF3 /* OSX.mm */; };
/* End PBXBuildFile section */
/* Begin PBXContainerItemProxy section */
FA08F6A616C77A4300F007B5 /* PBXContainerItemProxy */ = {
isa = PBXContainerItemProxy;
containerPortal = FA577A9316C7217800860150 /* love-framework.xcodeproj */;
proxyType = 2;
remoteGlobalIDString = FA577AAF16C7507900860150;
remoteInfo = "love framework";
};
/* End PBXContainerItemProxy section */
/* Begin PBXCopyFilesBuildPhase section */
A9255DDE1043185300BA1496 /* Copy Frameworks */ = {
isa = PBXCopyFilesBuildPhase;
buildActionMask = 2147483647;
dstPath = "";
dstSubfolderSpec = 10;
files = (
FA08F69716C766E700F007B5 /* love.framework in Copy Frameworks */,
FA9B4A0B16E157B500074F42 /* SDL2.framework in Copy Frameworks */,
FAAFF04716CB120000CCDE45 /* OpenAL-Soft.framework in Copy Frameworks */,
A9F169AC109E825000FC83D1 /* mpg123.framework in Copy Frameworks */,
A9F169AD109E825000FC83D1 /* libmodplug.framework in Copy Frameworks */,
A9D307F2106635D3004FEDF8 /* physfs.framework in Copy Frameworks */,
A9255F58104324E100BA1496 /* Ogg.framework in Copy Frameworks */,
A9255F431043240F00BA1496 /* IL.framework in Copy Frameworks */,
A9255E031043195A00BA1496 /* Vorbis.framework in Copy Frameworks */,
A9255DD11043183600BA1496 /* FreeType.framework in Copy Frameworks */,
A9255DD31043183600BA1496 /* Lua.framework in Copy Frameworks */,
);
name = "Copy Frameworks";
runOnlyForDeploymentPostprocessing = 0;
};
/* End PBXCopyFilesBuildPhase section */
/* Begin PBXFileReference section */
1058C7A1FEA54F0111CA2CBB /* Cocoa.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = Cocoa.framework; path = /System/Library/Frameworks/Cocoa.framework; sourceTree = "<absolute>"; };
8D1107320486CEB800E47090 /* love.app */ = {isa = PBXFileReference; explicitFileType = wrapper.application; includeInIndex = 0; path = love.app; sourceTree = BUILT_PRODUCTS_DIR; };
A9255E021043195A00BA1496 /* Vorbis.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = Vorbis.framework; path = /Library/Frameworks/Vorbis.framework; sourceTree = "<absolute>"; };
A9255F421043240F00BA1496 /* IL.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = IL.framework; path = /Library/Frameworks/IL.framework; sourceTree = "<absolute>"; };
A9255F51104324D700BA1496 /* Ogg.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = Ogg.framework; path = /Library/Frameworks/Ogg.framework; sourceTree = "<absolute>"; };
A93E6A3410420AC0007D418B /* love.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; name = love.cpp; path = ../../src/love.cpp; sourceTree = "<group>"; };
A93E6E4710420B4A007D418B /* OpenGL.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = OpenGL.framework; path = /System/Library/Frameworks/OpenGL.framework; sourceTree = "<absolute>"; };
A93E6E4810420B4A007D418B /* FreeType.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = FreeType.framework; path = /Library/Frameworks/FreeType.framework; sourceTree = "<absolute>"; };
A93E6E5310420B57007D418B /* Lua.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = Lua.framework; path = /Library/Frameworks/Lua.framework; sourceTree = "<absolute>"; };
A97E3842132A9EDE00198A2F /* love-Info.plist */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.plist.xml; path = "love-Info.plist"; sourceTree = "<group>"; };
A9D307E9106635C3004FEDF8 /* physfs.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = physfs.framework; path = /Library/Frameworks/physfs.framework; sourceTree = "<absolute>"; };
A9DEC1BF1046EFA60049C70C /* Love.icns */ = {isa = PBXFileReference; lastKnownFileType = image.icns; name = Love.icns; path = icons/Love.icns; sourceTree = "<group>"; };
A9DEC1C01046EFA70049C70C /* LoveDocument.icns */ = {isa = PBXFileReference; lastKnownFileType = image.icns; name = LoveDocument.icns; path = icons/LoveDocument.icns; sourceTree = "<group>"; };
A9F16926109E7BAD00FC83D1 /* libmodplug.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = libmodplug.framework; path = /Library/Frameworks/libmodplug.framework; sourceTree = "<absolute>"; };
A9F169A6109E824900FC83D1 /* mpg123.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = mpg123.framework; path = /Library/Frameworks/mpg123.framework; sourceTree = "<absolute>"; };
FA08F69116C765A200F007B5 /* love.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; path = love.framework; sourceTree = BUILT_PRODUCTS_DIR; };
FA577A9316C7217800860150 /* love-framework.xcodeproj */ = {isa = PBXFileReference; lastKnownFileType = "wrapper.pb-project"; path = "love-framework.xcodeproj"; sourceTree = "<group>"; };
FA9B4A0916E1579F00074F42 /* SDL2.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = SDL2.framework; path = /Library/Frameworks/SDL2.framework; sourceTree = "<absolute>"; };
FAAFF04616CB120000CCDE45 /* OpenAL-Soft.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = "OpenAL-Soft.framework"; path = "/Library/Frameworks/OpenAL-Soft.framework"; sourceTree = "<absolute>"; };
FAC1A448196F5DC600125284 /* license.txt */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text; name = license.txt; path = ../../license.txt; sourceTree = "<group>"; };
FAC8E8D316F3C468004DADF3 /* OSX.mm */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.objcpp; path = OSX.mm; sourceTree = "<group>"; };
FAC8E8D616F3C46E004DADF3 /* OSX.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = OSX.h; sourceTree = "<group>"; };
/* End PBXFileReference section */
/* Begin PBXFrameworksBuildPhase section */
8D11072E0486CEB800E47090 /* Frameworks */ = {
isa = PBXFrameworksBuildPhase;
buildActionMask = 2147483647;
files = (
FA08F69616C766E000F007B5 /* love.framework in Frameworks */,
8D11072F0486CEB800E47090 /* Cocoa.framework in Frameworks */,
A93E6E5510420B57007D418B /* Lua.framework in Frameworks */,
FA9B4A0A16E1579F00074F42 /* SDL2.framework in Frameworks */,
);
runOnlyForDeploymentPostprocessing = 0;
};
/* End PBXFrameworksBuildPhase section */
/* Begin PBXGroup section */
1058C7A0FEA54F0111CA2CBB /* Frameworks */ = {
isa = PBXGroup;
children = (
FA9B4A0916E1579F00074F42 /* SDL2.framework */,
1058C7A1FEA54F0111CA2CBB /* Cocoa.framework */,
A93E6E4810420B4A007D418B /* FreeType.framework */,
A9255F421043240F00BA1496 /* IL.framework */,
A9F16926109E7BAD00FC83D1 /* libmodplug.framework */,
FA08F69116C765A200F007B5 /* love.framework */,
A93E6E5310420B57007D418B /* Lua.framework */,
A9F169A6109E824900FC83D1 /* mpg123.framework */,
A9255F51104324D700BA1496 /* Ogg.framework */,
FAAFF04616CB120000CCDE45 /* OpenAL-Soft.framework */,
A93E6E4710420B4A007D418B /* OpenGL.framework */,
A9D307E9106635C3004FEDF8 /* physfs.framework */,
A9255E021043195A00BA1496 /* Vorbis.framework */,
);
name = Frameworks;
sourceTree = "<group>";
};
19C28FACFE9D520D11CA2CBB /* Products */ = {
isa = PBXGroup;
children = (
8D1107320486CEB800E47090 /* love.app */,
);
name = Products;
sourceTree = "<group>";
};
29B97314FDCFA39411CA2CEA /* love */ = {
isa = PBXGroup;
children = (
FA577A9D16C7262E00860150 /* Source */,
1058C7A0FEA54F0111CA2CBB /* Frameworks */,
29B97317FDCFA39411CA2CEA /* Resources */,
19C28FACFE9D520D11CA2CBB /* Products */,
FA577A9316C7217800860150 /* love-framework.xcodeproj */,
);
name = love;
sourceTree = "<group>";
usesTabs = 1;
};
29B97317FDCFA39411CA2CEA /* Resources */ = {
isa = PBXGroup;
children = (
FAC1A448196F5DC600125284 /* license.txt */,
A97E3842132A9EDE00198A2F /* love-Info.plist */,
A9DEC1BF1046EFA60049C70C /* Love.icns */,
A9DEC1C01046EFA70049C70C /* LoveDocument.icns */,
);
name = Resources;
sourceTree = "<group>";
};
FA08F6A316C77A4300F007B5 /* Products */ = {
isa = PBXGroup;
children = (
FA08F6A716C77A4300F007B5 /* love.framework */,
);
name = Products;
sourceTree = "<group>";
};
FA577A9D16C7262E00860150 /* Source */ = {
isa = PBXGroup;
children = (
A93E6A3410420AC0007D418B /* love.cpp */,
FAC8E8D616F3C46E004DADF3 /* OSX.h */,
FAC8E8D316F3C468004DADF3 /* OSX.mm */,
);
name = Source;
sourceTree = "<group>";
};
/* End PBXGroup section */
/* Begin PBXNativeTarget section */
8D1107260486CEB800E47090 /* love */ = {
isa = PBXNativeTarget;
buildConfigurationList = C01FCF4A08A954540054247B /* Build configuration list for PBXNativeTarget "love" */;
buildPhases = (
8D1107290486CEB800E47090 /* Resources */,
8D11072C0486CEB800E47090 /* Sources */,
A9255DDE1043185300BA1496 /* Copy Frameworks */,
8D11072E0486CEB800E47090 /* Frameworks */,
);
buildRules = (
);
dependencies = (
);
name = love;
productInstallPath = "$(HOME)/Applications";
productName = love;
productReference = 8D1107320486CEB800E47090 /* love.app */;
productType = "com.apple.product-type.application";
};
/* End PBXNativeTarget section */
/* Begin PBXProject section */
29B97313FDCFA39411CA2CEA /* Project object */ = {
isa = PBXProject;
attributes = {
LastUpgradeCheck = 0510;
};
buildConfigurationList = C01FCF4E08A954540054247B /* Build configuration list for PBXProject "love" */;
compatibilityVersion = "Xcode 3.2";
developmentRegion = English;
hasScannedForEncodings = 1;
knownRegions = (
English,
Japanese,
French,
German,
);
mainGroup = 29B97314FDCFA39411CA2CEA /* love */;
projectDirPath = "";
projectReferences = (
{
ProductGroup = FA08F6A316C77A4300F007B5 /* Products */;
ProjectRef = FA577A9316C7217800860150 /* love-framework.xcodeproj */;
},
);
projectRoot = "";
targets = (
8D1107260486CEB800E47090 /* love */,
);
};
/* End PBXProject section */
/* Begin PBXReferenceProxy section */
FA08F6A716C77A4300F007B5 /* love.framework */ = {
isa = PBXReferenceProxy;
fileType = wrapper.framework;
path = love.framework;
remoteRef = FA08F6A616C77A4300F007B5 /* PBXContainerItemProxy */;
sourceTree = BUILT_PRODUCTS_DIR;
};
/* End PBXReferenceProxy section */
/* Begin PBXResourcesBuildPhase section */
8D1107290486CEB800E47090 /* Resources */ = {
isa = PBXResourcesBuildPhase;
buildActionMask = 2147483647;
files = (
FAC1A449196F5DC600125284 /* license.txt in Resources */,
A9DEC1C11046EFA70049C70C /* Love.icns in Resources */,
A9DEC1C21046EFA70049C70C /* LoveDocument.icns in Resources */,
);
runOnlyForDeploymentPostprocessing = 0;
};
/* End PBXResourcesBuildPhase section */
/* Begin PBXSourcesBuildPhase section */
8D11072C0486CEB800E47090 /* Sources */ = {
isa = PBXSourcesBuildPhase;
buildActionMask = 2147483647;
files = (
A93E6EED10420BA8007D418B /* love.cpp in Sources */,
FAC8E8D416F3C468004DADF3 /* OSX.mm in Sources */,
);
runOnlyForDeploymentPostprocessing = 0;
};
/* End PBXSourcesBuildPhase section */
/* Begin XCBuildConfiguration section */
C01FCF4B08A954540054247B /* Debug */ = {
isa = XCBuildConfiguration;
buildSettings = {
COMBINE_HIDPI_IMAGES = YES;
FRAMEWORK_SEARCH_PATHS = (
"$(inherited)",
"\"$(SRCROOT)/build/Release\"",
"\"$(SRCROOT)/build/Debug\"",
);
GCC_DYNAMIC_NO_PIC = NO;
GCC_OPTIMIZATION_LEVEL = 0;
INSTALL_PATH = /Applications;
PRODUCT_NAME = love;
};
name = Debug;
};
C01FCF4C08A954540054247B /* Release */ = {
isa = XCBuildConfiguration;
buildSettings = {
COMBINE_HIDPI_IMAGES = YES;
DEBUG_INFORMATION_FORMAT = "dwarf-with-dsym";
FRAMEWORK_SEARCH_PATHS = (
"$(inherited)",
"\"$(SRCROOT)/build/Release\"",
"\"$(SRCROOT)/build/Debug\"",
);
INSTALL_PATH = /Applications;
PRODUCT_NAME = love;
};
name = Release;
};
C01FCF4F08A954540054247B /* Debug */ = {
isa = XCBuildConfiguration;
buildSettings = {
ALWAYS_SEARCH_USER_PATHS = NO;
ARCHS = "$(ARCHS_STANDARD_64_BIT)";
CLANG_CXX_LANGUAGE_STANDARD = "c++0x";
CLANG_ENABLE_MODULES = YES;
FRAMEWORK_SEARCH_PATHS = /Library/Frameworks;
GCC_INCREASE_PRECOMPILED_HEADER_SHARING = YES;
GCC_OPTIMIZATION_LEVEL = 0;
GCC_PREPROCESSOR_DEFINITIONS = LOVE_MACOSX_USE_FRAMEWORKS;
GCC_TREAT_IMPLICIT_FUNCTION_DECLARATIONS_AS_ERRORS = NO;
GCC_WARN_ABOUT_MISSING_NEWLINE = NO;
GCC_WARN_ABOUT_MISSING_PROTOTYPES = NO;
GCC_WARN_ABOUT_POINTER_SIGNEDNESS = YES;
GCC_WARN_ABOUT_RETURN_TYPE = NO;
GCC_WARN_CHECK_SWITCH_STATEMENTS = YES;
GCC_WARN_FOUR_CHARACTER_CONSTANTS = NO;
GCC_WARN_HIDDEN_VIRTUAL_FUNCTIONS = NO;
GCC_WARN_INITIALIZER_NOT_FULLY_BRACKETED = NO;
GCC_WARN_MISSING_PARENTHESES = NO;
GCC_WARN_NON_VIRTUAL_DESTRUCTOR = NO;
GCC_WARN_PEDANTIC = NO;
GCC_WARN_SHADOW = NO;
GCC_WARN_SIGN_COMPARE = YES;
GCC_WARN_TYPECHECK_CALLS_TO_PRINTF = NO;
GCC_WARN_UNUSED_VARIABLE = YES;
HEADER_SEARCH_PATHS = (
"\"$(SRCROOT)/../../src\"",
"\"$(SRCROOT)/../../src/libraries\"",
"\"$(SRCROOT)/../../src/modules\"",
/Library/Frameworks/Lua.framework/Headers,
/Library/Frameworks/SDL2.framework/Headers,
);
INFOPLIST_FILE = "love-Info.plist";
LD_RUNPATH_SEARCH_PATHS = "@loader_path/../Frameworks";
MACOSX_DEPLOYMENT_TARGET = 10.6;
ONLY_ACTIVE_ARCH = YES;
OTHER_LDFLAGS = "";
"OTHER_LDFLAGS[arch=x86_64]" = (
"-pagezero_size",
10000,
"-image_base",
100000000,
);
PRODUCT_NAME = love;
WARNING_CFLAGS = (
"-Wall",
"-W",
);
};
name = Debug;
};
C01FCF5008A954540054247B /* Release */ = {
isa = XCBuildConfiguration;
buildSettings = {
ALWAYS_SEARCH_USER_PATHS = NO;
ARCHS = "$(ARCHS_STANDARD_64_BIT)";
CLANG_CXX_LANGUAGE_STANDARD = "c++0x";
CLANG_ENABLE_MODULES = YES;
DEPLOYMENT_POSTPROCESSING = NO;
FRAMEWORK_SEARCH_PATHS = /Library/Frameworks;
GCC_INPUT_FILETYPE = automatic;
GCC_OPTIMIZATION_LEVEL = 3;
GCC_PREPROCESSOR_DEFINITIONS = LOVE_MACOSX_USE_FRAMEWORKS;
GCC_TREAT_IMPLICIT_FUNCTION_DECLARATIONS_AS_ERRORS = NO;
GCC_WARN_ABOUT_MISSING_NEWLINE = NO;
GCC_WARN_ABOUT_MISSING_PROTOTYPES = NO;
GCC_WARN_ABOUT_POINTER_SIGNEDNESS = YES;
GCC_WARN_ABOUT_RETURN_TYPE = NO;
GCC_WARN_CHECK_SWITCH_STATEMENTS = YES;
GCC_WARN_FOUR_CHARACTER_CONSTANTS = NO;
GCC_WARN_HIDDEN_VIRTUAL_FUNCTIONS = NO;
GCC_WARN_INITIALIZER_NOT_FULLY_BRACKETED = NO;
GCC_WARN_MISSING_PARENTHESES = NO;
GCC_WARN_NON_VIRTUAL_DESTRUCTOR = NO;
GCC_WARN_PEDANTIC = NO;
GCC_WARN_SHADOW = NO;
GCC_WARN_SIGN_COMPARE = YES;
GCC_WARN_TYPECHECK_CALLS_TO_PRINTF = NO;
GCC_WARN_UNUSED_PARAMETER = NO;
GCC_WARN_UNUSED_VALUE = NO;
GCC_WARN_UNUSED_VARIABLE = YES;
HEADER_SEARCH_PATHS = (
"\"$(SRCROOT)/../../src\"",
"\"$(SRCROOT)/../../src/libraries\"",
"\"$(SRCROOT)/../../src/modules\"",
/Library/Frameworks/Lua.framework/Headers,
/Library/Frameworks/SDL2.framework/Headers,
);
INFOPLIST_FILE = "love-Info.plist";
LD_RUNPATH_SEARCH_PATHS = "@loader_path/../Frameworks";
LLVM_LTO = YES;
MACOSX_DEPLOYMENT_TARGET = 10.6;
ONLY_ACTIVE_ARCH = NO;
OTHER_LDFLAGS = "";
"OTHER_LDFLAGS[arch=x86_64]" = (
"-pagezero_size",
10000,
"-image_base",
100000000,
);
PRODUCT_NAME = love;
SCAN_ALL_SOURCE_FILES_FOR_INCLUDES = YES;
WARNING_CFLAGS = (
"-Wall",
"-W",
);
};
name = Release;
};
FA5326C618971A0900F7BBF4 /* Distribution */ = {
isa = XCBuildConfiguration;
buildSettings = {
ALWAYS_SEARCH_USER_PATHS = NO;
ARCHS = "$(ARCHS_STANDARD_64_BIT)";
CLANG_CXX_LANGUAGE_STANDARD = "c++0x";
CLANG_ENABLE_MODULES = YES;
DEPLOYMENT_POSTPROCESSING = NO;
FRAMEWORK_SEARCH_PATHS = /Library/Frameworks;
GCC_INPUT_FILETYPE = automatic;
GCC_OPTIMIZATION_LEVEL = 3;
GCC_PREPROCESSOR_DEFINITIONS = LOVE_MACOSX_USE_FRAMEWORKS;
GCC_TREAT_IMPLICIT_FUNCTION_DECLARATIONS_AS_ERRORS = NO;
GCC_WARN_ABOUT_MISSING_NEWLINE = NO;
GCC_WARN_ABOUT_MISSING_PROTOTYPES = NO;
GCC_WARN_ABOUT_POINTER_SIGNEDNESS = YES;
GCC_WARN_ABOUT_RETURN_TYPE = NO;
GCC_WARN_CHECK_SWITCH_STATEMENTS = YES;
GCC_WARN_FOUR_CHARACTER_CONSTANTS = NO;
GCC_WARN_HIDDEN_VIRTUAL_FUNCTIONS = NO;
GCC_WARN_INITIALIZER_NOT_FULLY_BRACKETED = NO;
GCC_WARN_MISSING_PARENTHESES = NO;
GCC_WARN_NON_VIRTUAL_DESTRUCTOR = NO;
GCC_WARN_PEDANTIC = NO;
GCC_WARN_SHADOW = NO;
GCC_WARN_SIGN_COMPARE = YES;
GCC_WARN_TYPECHECK_CALLS_TO_PRINTF = NO;
GCC_WARN_UNUSED_PARAMETER = NO;
GCC_WARN_UNUSED_VALUE = NO;
GCC_WARN_UNUSED_VARIABLE = YES;
HEADER_SEARCH_PATHS = (
"\"$(SRCROOT)/../../src\"",
"\"$(SRCROOT)/../../src/libraries\"",
"\"$(SRCROOT)/../../src/modules\"",
/Library/Frameworks/Lua.framework/Headers,
/Library/Frameworks/SDL2.framework/Headers,
);
INFOPLIST_FILE = "love-Info.plist";
LD_RUNPATH_SEARCH_PATHS = "@loader_path/../Frameworks";
LLVM_LTO = YES;
MACOSX_DEPLOYMENT_TARGET = 10.6;
ONLY_ACTIVE_ARCH = NO;
OTHER_LDFLAGS = "";
"OTHER_LDFLAGS[arch=x86_64]" = (
"-pagezero_size",
10000,
"-image_base",
100000000,
);
PRODUCT_NAME = love;
SCAN_ALL_SOURCE_FILES_FOR_INCLUDES = YES;
WARNING_CFLAGS = (
"-Wall",
"-W",
);
};
name = Distribution;
};
FA5326C718971A0900F7BBF4 /* Distribution */ = {
isa = XCBuildConfiguration;
buildSettings = {
COMBINE_HIDPI_IMAGES = YES;
DEBUG_INFORMATION_FORMAT = "dwarf-with-dsym";
FRAMEWORK_SEARCH_PATHS = (
"$(inherited)",
"\"$(SRCROOT)/build/Release\"",
"\"$(SRCROOT)/build/Debug\"",
);
INSTALL_PATH = /Applications;
PRODUCT_NAME = love;
};
name = Distribution;
};
/* End XCBuildConfiguration section */
/* Begin XCConfigurationList section */
C01FCF4A08A954540054247B /* Build configuration list for PBXNativeTarget "love" */ = {
isa = XCConfigurationList;
buildConfigurations = (
C01FCF4B08A954540054247B /* Debug */,
C01FCF4C08A954540054247B /* Release */,
FA5326C718971A0900F7BBF4 /* Distribution */,
);
defaultConfigurationIsVisible = 0;
defaultConfigurationName = Release;
};
C01FCF4E08A954540054247B /* Build configuration list for PBXProject "love" */ = {
isa = XCConfigurationList;
buildConfigurations = (
C01FCF4F08A954540054247B /* Debug */,
C01FCF5008A954540054247B /* Release */,
FA5326C618971A0900F7BBF4 /* Distribution */,
);
defaultConfigurationIsVisible = 0;
defaultConfigurationName = Release;
};
/* End XCConfigurationList section */
};
rootObject = 29B97313FDCFA39411CA2CEA /* Project object */;
}
@@ -1,847 +0,0 @@
<?xml version="1.0" encoding="utf-8"?>
<Project DefaultTargets="Build" ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
<ItemGroup Label="ProjectConfigurations">
<ProjectConfiguration Include="Debug Dynamic|Win32">
<Configuration>Debug Dynamic</Configuration>
<Platform>Win32</Platform>
</ProjectConfiguration>
<ProjectConfiguration Include="Debug Dynamic|x64">
<Configuration>Debug Dynamic</Configuration>
<Platform>x64</Platform>
</ProjectConfiguration>
<ProjectConfiguration Include="Release Dynamic|Win32">
<Configuration>Release Dynamic</Configuration>
<Platform>Win32</Platform>
</ProjectConfiguration>
<ProjectConfiguration Include="Release Dynamic|x64">
<Configuration>Release Dynamic</Configuration>
<Platform>x64</Platform>
</ProjectConfiguration>
<ProjectConfiguration Include="Release Static|Win32">
<Configuration>Release Static</Configuration>
<Platform>Win32</Platform>
</ProjectConfiguration>
<ProjectConfiguration Include="Release Static|x64">
<Configuration>Release Static</Configuration>
<Platform>x64</Platform>
</ProjectConfiguration>
</ItemGroup>
<PropertyGroup Label="Globals">
<ProjectGuid>{A3FCC735-3E18-4D6B-9DA9-01D9E910B7F8}</ProjectGuid>
<RootNamespace>liblove</RootNamespace>
</PropertyGroup>
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.Default.props" />
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug Dynamic|Win32'" Label="Configuration">
<ConfigurationType>DynamicLibrary</ConfigurationType>
<UseDebugLibraries>true</UseDebugLibraries>
<CharacterSet>Unicode</CharacterSet>
</PropertyGroup>
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug Dynamic|x64'" Label="Configuration">
<ConfigurationType>DynamicLibrary</ConfigurationType>
<UseDebugLibraries>true</UseDebugLibraries>
<CharacterSet>Unicode</CharacterSet>
</PropertyGroup>
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release Static|Win32'" Label="Configuration">
<ConfigurationType>StaticLibrary</ConfigurationType>
<UseDebugLibraries>false</UseDebugLibraries>
<WholeProgramOptimization>true</WholeProgramOptimization>
<CharacterSet>Unicode</CharacterSet>
</PropertyGroup>
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release Static|x64'" Label="Configuration">
<ConfigurationType>StaticLibrary</ConfigurationType>
<UseDebugLibraries>false</UseDebugLibraries>
<WholeProgramOptimization>true</WholeProgramOptimization>
<CharacterSet>Unicode</CharacterSet>
</PropertyGroup>
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release Dynamic|Win32'" Label="Configuration">
<ConfigurationType>DynamicLibrary</ConfigurationType>
<UseDebugLibraries>false</UseDebugLibraries>
<WholeProgramOptimization>true</WholeProgramOptimization>
<CharacterSet>Unicode</CharacterSet>
</PropertyGroup>
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release Dynamic|x64'" Label="Configuration">
<ConfigurationType>DynamicLibrary</ConfigurationType>
<UseDebugLibraries>false</UseDebugLibraries>
<WholeProgramOptimization>true</WholeProgramOptimization>
<CharacterSet>Unicode</CharacterSet>
<PlatformToolset>Windows7.1SDK</PlatformToolset>
</PropertyGroup>
<PropertyGroup Label="Configuration" Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">
<ConfigurationType>StaticLibrary</ConfigurationType>
<CharacterSet>Unicode</CharacterSet>
</PropertyGroup>
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'" Label="Configuration">
<ConfigurationType>StaticLibrary</ConfigurationType>
<CharacterSet>Unicode</CharacterSet>
</PropertyGroup>
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.props" />
<ImportGroup Label="ExtensionSettings">
</ImportGroup>
<ImportGroup Condition="'$(Configuration)|$(Platform)'=='Debug Dynamic|Win32'" Label="PropertySheets">
<Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
</ImportGroup>
<ImportGroup Condition="'$(Configuration)|$(Platform)'=='Debug Dynamic|x64'" Label="PropertySheets">
<Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
</ImportGroup>
<ImportGroup Label="PropertySheets" Condition="'$(Configuration)|$(Platform)'=='Release Static|Win32'">
<Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
</ImportGroup>
<ImportGroup Condition="'$(Configuration)|$(Platform)'=='Release Static|x64'" Label="PropertySheets">
<Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
</ImportGroup>
<ImportGroup Condition="'$(Configuration)|$(Platform)'=='Release Dynamic|Win32'" Label="PropertySheets">
<Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
</ImportGroup>
<ImportGroup Condition="'$(Configuration)|$(Platform)'=='Release Dynamic|x64'" Label="PropertySheets">
<Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
</ImportGroup>
<PropertyGroup Label="UserMacros" />
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">
<OutDir>$(SolutionDir)\$(PlatformShortName)\$(Configuration)</OutDir>
</PropertyGroup>
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">
<OutDir>$(SolutionDir)\$(PlatformShortName)\$(Configuration)</OutDir>
</PropertyGroup>
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|Win32'">
<IntDir>$(ProjectName)\$(Configuration)\</IntDir>
</PropertyGroup>
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug|x64'">
<IntDir>$(ProjectName)\$(Configuration)\</IntDir>
</PropertyGroup>
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug Dynamic|Win32'">
<OutDir>$(SolutionDir)\bin\$(PlatformShortName)\Debug\MD\</OutDir>
<IntDir>$(ProjectName)\$(PlatformShortName)\Debug\</IntDir>
<GenerateManifest>false</GenerateManifest>
<TargetName>love</TargetName>
</PropertyGroup>
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug Dynamic|x64'">
<OutDir>$(SolutionDir)\bin\$(PlatformShortName)\Debug\MD\</OutDir>
<IntDir>$(ProjectName)\$(PlatformShortName)\Debug\</IntDir>
<GenerateManifest>false</GenerateManifest>
<TargetName>love</TargetName>
</PropertyGroup>
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release Static|Win32'">
<OutDir>$(SolutionDir)\bin\$(PlatformShortName)\Release\MT\</OutDir>
<IntDir>$(ProjectName)\$(PlatformShortName)\Release\</IntDir>
</PropertyGroup>
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release Static|x64'">
<OutDir>$(SolutionDir)\bin\$(PlatformShortName)\Release\MT\</OutDir>
<IntDir>$(ProjectName)\$(PlatformShortName)\Release\</IntDir>
</PropertyGroup>
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release Dynamic|Win32'">
<OutDir>$(SolutionDir)\bin\$(PlatformShortName)\Release\MD\</OutDir>
<IntDir>$(ProjectName)\$(PlatformShortName)\Release\</IntDir>
<GenerateManifest>false</GenerateManifest>
<TargetName>love</TargetName>
</PropertyGroup>
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release Dynamic|x64'">
<OutDir>$(SolutionDir)\bin\$(PlatformShortName)\Release\MD\</OutDir>
<IntDir>$(ProjectName)\$(PlatformShortName)\Release\</IntDir>
<GenerateManifest>false</GenerateManifest>
<TargetName>love</TargetName>
</PropertyGroup>
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug Dynamic|Win32'">
<ClCompile>
<WarningLevel>Level3</WarningLevel>
<Optimization>Disabled</Optimization>
<AdditionalIncludeDirectories>include;include\SDL;include\AL;..\..\src;..\..\src\libraries;..\..\src\modules;..\..\src\libraries\enet\libenet\include;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
<MultiProcessorCompilation>true</MultiProcessorCompilation>
<PreprocessorDefinitions>_DEBUG;DEBUG;%(PreprocessorDefinitions)</PreprocessorDefinitions>
<MinimalRebuild>false</MinimalRebuild>
<RuntimeLibrary>MultiThreadedDebugDLL</RuntimeLibrary>
<ObjectFileName>$(IntDir)obj\obj\obj\%(RelativeDir)</ObjectFileName>
<DebugInformationFormat>ProgramDatabase</DebugInformationFormat>
</ClCompile>
<Link>
<GenerateDebugInformation>true</GenerateDebugInformation>
<AdditionalDependencies>msvcrtd.lib;msvcprtd.lib;kernel32.lib;user32.lib;shell32.lib;uuid.lib;advapi32.lib;ws2_32.lib;winmm.lib;opengl32.lib;oldnames.lib;DevIL.lib;freetype.lib;libmodplug.lib;libogg.lib;libvorbis.lib;libvorbisfile.lib;lua51.lib;mpg123.lib;physfs.lib;OpenAL.lib;zlib.lib;SDL2.lib;%(AdditionalDependencies)</AdditionalDependencies>
<IgnoreAllDefaultLibraries>true</IgnoreAllDefaultLibraries>
<AdditionalLibraryDirectories>lib\$(PlatformShortName)\Debug\MD\</AdditionalLibraryDirectories>
<ProgramDatabaseFile>$(TargetDir)lib$(TargetName).pdb</ProgramDatabaseFile>
<ProfileGuidedDatabase>$(TargetDir)lib$(TargetName).pgd</ProfileGuidedDatabase>
</Link>
<ResourceCompile>
<PreprocessorDefinitions>LOVE_LIB;_UNICODE;UNICODE;%(PreprocessorDefinitions)</PreprocessorDefinitions>
</ResourceCompile>
</ItemDefinitionGroup>
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug Dynamic|x64'">
<ClCompile>
<WarningLevel>Level3</WarningLevel>
<Optimization>Disabled</Optimization>
<AdditionalIncludeDirectories>include;include\SDL;include\AL;..\..\src;..\..\src\libraries;..\..\src\modules;..\..\src\libraries\enet\libenet\include;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
<MultiProcessorCompilation>true</MultiProcessorCompilation>
<PreprocessorDefinitions>_DEBUG;DEBUG;%(PreprocessorDefinitions)</PreprocessorDefinitions>
<MinimalRebuild>false</MinimalRebuild>
<RuntimeLibrary>MultiThreadedDebugDLL</RuntimeLibrary>
<ObjectFileName>$(IntDir)obj\obj\obj\%(RelativeDir)</ObjectFileName>
<DebugInformationFormat>ProgramDatabase</DebugInformationFormat>
</ClCompile>
<Link>
<GenerateDebugInformation>true</GenerateDebugInformation>
<AdditionalDependencies>msvcrtd.lib;msvcprtd.lib;kernel32.lib;user32.lib;shell32.lib;uuid.lib;advapi32.lib;ws2_32.lib;winmm.lib;opengl32.lib;oldnames.lib;DevIL.lib;freetype.lib;libmodplug.lib;libogg.lib;libvorbis.lib;libvorbisfile.lib;lua51.lib;mpg123.lib;physfs.lib;OpenAL.lib;zlib.lib;SDL2.lib;%(AdditionalDependencies)</AdditionalDependencies>
<IgnoreAllDefaultLibraries>true</IgnoreAllDefaultLibraries>
<AdditionalLibraryDirectories>lib\$(PlatformShortName)\Debug\MD\</AdditionalLibraryDirectories>
<ProgramDatabaseFile>$(TargetDir)lib$(TargetName).pdb</ProgramDatabaseFile>
<ProfileGuidedDatabase>$(TargetDir)lib$(TargetName).pgd</ProfileGuidedDatabase>
</Link>
<ResourceCompile>
<PreprocessorDefinitions>LOVE_LIB;_UNICODE;UNICODE;%(PreprocessorDefinitions)</PreprocessorDefinitions>
</ResourceCompile>
</ItemDefinitionGroup>
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release Static|Win32'">
<ClCompile>
<WarningLevel>Level3</WarningLevel>
<Optimization>MaxSpeed</Optimization>
<FunctionLevelLinking>true</FunctionLevelLinking>
<IntrinsicFunctions>true</IntrinsicFunctions>
<AdditionalIncludeDirectories>include;include\SDL;include\AL;..\..\src;..\..\src\libraries;..\..\src\modules;..\..\src\libraries\enet\libenet\include;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
<MultiProcessorCompilation>true</MultiProcessorCompilation>
<OmitFramePointers>true</OmitFramePointers>
<PreprocessorDefinitions>NDEBUG;%(PreprocessorDefinitions)</PreprocessorDefinitions>
<RuntimeLibrary>MultiThreaded</RuntimeLibrary>
<BufferSecurityCheck>false</BufferSecurityCheck>
<ObjectFileName>$(IntDir)obj\obj\obj\%(RelativeDir)</ObjectFileName>
<StringPooling>true</StringPooling>
</ClCompile>
<Link>
<GenerateDebugInformation>true</GenerateDebugInformation>
<EnableCOMDATFolding>true</EnableCOMDATFolding>
<OptimizeReferences>true</OptimizeReferences>
</Link>
<ResourceCompile>
<PreprocessorDefinitions>LOVE_LIB;_UNICODE;UNICODE;%(PreprocessorDefinitions)</PreprocessorDefinitions>
</ResourceCompile>
<Lib>
<TargetMachine>MachineX86</TargetMachine>
<AdditionalDependencies>
</AdditionalDependencies>
<AdditionalLibraryDirectories>
</AdditionalLibraryDirectories>
<IgnoreAllDefaultLibraries>true</IgnoreAllDefaultLibraries>
<SuppressStartupBanner>true</SuppressStartupBanner>
</Lib>
</ItemDefinitionGroup>
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release Static|x64'">
<ClCompile>
<WarningLevel>Level3</WarningLevel>
<Optimization>MaxSpeed</Optimization>
<FunctionLevelLinking>true</FunctionLevelLinking>
<IntrinsicFunctions>true</IntrinsicFunctions>
<AdditionalIncludeDirectories>include;include\SDL;include\AL;..\..\src;..\..\src\libraries;..\..\src\modules;..\..\src\libraries\enet\libenet\include;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
<MultiProcessorCompilation>true</MultiProcessorCompilation>
<OmitFramePointers>true</OmitFramePointers>
<PreprocessorDefinitions>NDEBUG;%(PreprocessorDefinitions)</PreprocessorDefinitions>
<RuntimeLibrary>MultiThreaded</RuntimeLibrary>
<BufferSecurityCheck>false</BufferSecurityCheck>
<ObjectFileName>$(IntDir)obj\obj\obj\%(RelativeDir)</ObjectFileName>
<StringPooling>true</StringPooling>
</ClCompile>
<Link>
<GenerateDebugInformation>true</GenerateDebugInformation>
<EnableCOMDATFolding>true</EnableCOMDATFolding>
<OptimizeReferences>true</OptimizeReferences>
</Link>
<ResourceCompile>
<PreprocessorDefinitions>LOVE_LIB;_UNICODE;UNICODE;%(PreprocessorDefinitions)</PreprocessorDefinitions>
</ResourceCompile>
<Lib>
<TargetMachine>MachineX64</TargetMachine>
<AdditionalDependencies>
</AdditionalDependencies>
<AdditionalLibraryDirectories>
</AdditionalLibraryDirectories>
<IgnoreAllDefaultLibraries>true</IgnoreAllDefaultLibraries>
<SuppressStartupBanner>true</SuppressStartupBanner>
</Lib>
</ItemDefinitionGroup>
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release Dynamic|Win32'">
<ClCompile>
<WarningLevel>Level3</WarningLevel>
<Optimization>MaxSpeed</Optimization>
<FunctionLevelLinking>true</FunctionLevelLinking>
<IntrinsicFunctions>true</IntrinsicFunctions>
<AdditionalIncludeDirectories>include;include\SDL;include\AL;..\..\src;..\..\src\libraries;..\..\src\modules;..\..\src\libraries\enet\libenet\include;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
<MultiProcessorCompilation>true</MultiProcessorCompilation>
<OmitFramePointers>true</OmitFramePointers>
<PreprocessorDefinitions>NDEBUG;%(PreprocessorDefinitions)</PreprocessorDefinitions>
<RuntimeLibrary>MultiThreadedDLL</RuntimeLibrary>
<BufferSecurityCheck>false</BufferSecurityCheck>
<ObjectFileName>$(IntDir)obj\obj\obj\%(RelativeDir)</ObjectFileName>
<StringPooling>true</StringPooling>
</ClCompile>
<Link>
<GenerateDebugInformation>true</GenerateDebugInformation>
<EnableCOMDATFolding>true</EnableCOMDATFolding>
<OptimizeReferences>true</OptimizeReferences>
<AdditionalDependencies>msvcrt.lib;msvcprt.lib;kernel32.lib;user32.lib;shell32.lib;uuid.lib;advapi32.lib;ws2_32.lib;winmm.lib;opengl32.lib;oldnames.lib;DevIL.lib;freetype.lib;libmodplug.lib;libogg.lib;libvorbis.lib;libvorbisfile.lib;lua51.lib;mpg123.lib;physfs.lib;OpenAL.lib;zlib.lib;SDL2.lib;%(AdditionalDependencies)</AdditionalDependencies>
<IgnoreAllDefaultLibraries>true</IgnoreAllDefaultLibraries>
<AdditionalLibraryDirectories>lib\$(PlatformShortName)\Release\MD\</AdditionalLibraryDirectories>
<ProgramDatabaseFile>$(TargetDir)lib$(TargetName).pdb</ProgramDatabaseFile>
<ProfileGuidedDatabase>$(TargetDir)lib$(TargetName).pgd</ProfileGuidedDatabase>
</Link>
<ResourceCompile>
<PreprocessorDefinitions>LOVE_LIB;_UNICODE;UNICODE;%(PreprocessorDefinitions)</PreprocessorDefinitions>
</ResourceCompile>
</ItemDefinitionGroup>
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release Dynamic|x64'">
<ClCompile>
<WarningLevel>Level3</WarningLevel>
<Optimization>MaxSpeed</Optimization>
<FunctionLevelLinking>true</FunctionLevelLinking>
<IntrinsicFunctions>true</IntrinsicFunctions>
<AdditionalIncludeDirectories>include;include\SDL;include\AL;..\..\src;..\..\src\libraries;..\..\src\modules;..\..\src\libraries\enet\libenet\include;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
<MultiProcessorCompilation>true</MultiProcessorCompilation>
<OmitFramePointers>true</OmitFramePointers>
<PreprocessorDefinitions>NDEBUG;%(PreprocessorDefinitions)</PreprocessorDefinitions>
<RuntimeLibrary>MultiThreadedDLL</RuntimeLibrary>
<BufferSecurityCheck>false</BufferSecurityCheck>
<ObjectFileName>$(IntDir)obj\obj\obj\%(RelativeDir)</ObjectFileName>
<StringPooling>true</StringPooling>
</ClCompile>
<Link>
<GenerateDebugInformation>true</GenerateDebugInformation>
<EnableCOMDATFolding>true</EnableCOMDATFolding>
<OptimizeReferences>true</OptimizeReferences>
<AdditionalDependencies>msvcrt.lib;msvcprt.lib;kernel32.lib;user32.lib;shell32.lib;uuid.lib;advapi32.lib;ws2_32.lib;winmm.lib;opengl32.lib;oldnames.lib;DevIL.lib;freetype.lib;libmodplug.lib;libogg.lib;libvorbis.lib;libvorbisfile.lib;lua51.lib;mpg123.lib;physfs.lib;OpenAL.lib;zlib.lib;SDL2.lib;%(AdditionalDependencies)</AdditionalDependencies>
<IgnoreAllDefaultLibraries>true</IgnoreAllDefaultLibraries>
<AdditionalLibraryDirectories>lib\$(PlatformShortName)\Release\MD\</AdditionalLibraryDirectories>
<ProgramDatabaseFile>$(TargetDir)lib$(TargetName).pdb</ProgramDatabaseFile>
<ProfileGuidedDatabase>$(TargetDir)lib$(TargetName).pgd</ProfileGuidedDatabase>
</Link>
<ResourceCompile>
<PreprocessorDefinitions>LOVE_LIB;_UNICODE;UNICODE;%(PreprocessorDefinitions)</PreprocessorDefinitions>
</ResourceCompile>
</ItemDefinitionGroup>
<ItemGroup>
<ClCompile Include="..\..\src\common\b64.cpp" />
<ClCompile Include="..\..\src\common\delay.cpp" />
<ClCompile Include="..\..\src\common\Exception.cpp" />
<ClCompile Include="..\..\src\common\Matrix.cpp" />
<ClCompile Include="..\..\src\common\Memoizer.cpp" />
<ClCompile Include="..\..\src\common\Module.cpp" />
<ClCompile Include="..\..\src\common\Object.cpp" />
<ClCompile Include="..\..\src\common\Reference.cpp" />
<ClCompile Include="..\..\src\common\runtime.cpp" />
<ClCompile Include="..\..\src\common\utf8.cpp" />
<ClCompile Include="..\..\src\common\Variant.cpp" />
<ClCompile Include="..\..\src\common\Vector.cpp" />
<ClCompile Include="..\..\src\common\wrap_Data.cpp" />
<ClCompile Include="..\..\src\libraries\Box2D\Collision\b2BroadPhase.cpp" />
<ClCompile Include="..\..\src\libraries\Box2D\Collision\b2CollideCircle.cpp" />
<ClCompile Include="..\..\src\libraries\Box2D\Collision\b2CollideEdge.cpp" />
<ClCompile Include="..\..\src\libraries\Box2D\Collision\b2CollidePolygon.cpp" />
<ClCompile Include="..\..\src\libraries\Box2D\Collision\b2Collision.cpp" />
<ClCompile Include="..\..\src\libraries\Box2D\Collision\b2Distance.cpp" />
<ClCompile Include="..\..\src\libraries\Box2D\Collision\b2DynamicTree.cpp" />
<ClCompile Include="..\..\src\libraries\Box2D\Collision\b2TimeOfImpact.cpp" />
<ClCompile Include="..\..\src\libraries\Box2D\Collision\Shapes\b2ChainShape.cpp" />
<ClCompile Include="..\..\src\libraries\Box2D\Collision\Shapes\b2CircleShape.cpp" />
<ClCompile Include="..\..\src\libraries\Box2D\Collision\Shapes\b2EdgeShape.cpp" />
<ClCompile Include="..\..\src\libraries\Box2D\Collision\Shapes\b2PolygonShape.cpp" />
<ClCompile Include="..\..\src\libraries\Box2D\Common\b2BlockAllocator.cpp" />
<ClCompile Include="..\..\src\libraries\Box2D\Common\b2Draw.cpp" />
<ClCompile Include="..\..\src\libraries\Box2D\Common\b2Math.cpp" />
<ClCompile Include="..\..\src\libraries\Box2D\Common\b2Settings.cpp" />
<ClCompile Include="..\..\src\libraries\Box2D\Common\b2StackAllocator.cpp" />
<ClCompile Include="..\..\src\libraries\Box2D\Common\b2Timer.cpp" />
<ClCompile Include="..\..\src\libraries\Box2D\Dynamics\b2Body.cpp" />
<ClCompile Include="..\..\src\libraries\Box2D\Dynamics\b2ContactManager.cpp" />
<ClCompile Include="..\..\src\libraries\Box2D\Dynamics\b2Fixture.cpp" />
<ClCompile Include="..\..\src\libraries\Box2D\Dynamics\b2Island.cpp" />
<ClCompile Include="..\..\src\libraries\Box2D\Dynamics\b2World.cpp" />
<ClCompile Include="..\..\src\libraries\Box2D\Dynamics\b2WorldCallbacks.cpp" />
<ClCompile Include="..\..\src\libraries\Box2D\Dynamics\Contacts\b2ChainAndCircleContact.cpp" />
<ClCompile Include="..\..\src\libraries\Box2D\Dynamics\Contacts\b2ChainAndPolygonContact.cpp" />
<ClCompile Include="..\..\src\libraries\Box2D\Dynamics\Contacts\b2CircleContact.cpp" />
<ClCompile Include="..\..\src\libraries\Box2D\Dynamics\Contacts\b2Contact.cpp" />
<ClCompile Include="..\..\src\libraries\Box2D\Dynamics\Contacts\b2ContactSolver.cpp" />
<ClCompile Include="..\..\src\libraries\Box2D\Dynamics\Contacts\b2EdgeAndCircleContact.cpp" />
<ClCompile Include="..\..\src\libraries\Box2D\Dynamics\Contacts\b2EdgeAndPolygonContact.cpp" />
<ClCompile Include="..\..\src\libraries\Box2D\Dynamics\Contacts\b2PolygonAndCircleContact.cpp" />
<ClCompile Include="..\..\src\libraries\Box2D\Dynamics\Contacts\b2PolygonContact.cpp" />
<ClCompile Include="..\..\src\libraries\Box2D\Dynamics\Joints\b2DistanceJoint.cpp" />
<ClCompile Include="..\..\src\libraries\Box2D\Dynamics\Joints\b2FrictionJoint.cpp" />
<ClCompile Include="..\..\src\libraries\Box2D\Dynamics\Joints\b2GearJoint.cpp" />
<ClCompile Include="..\..\src\libraries\Box2D\Dynamics\Joints\b2Joint.cpp" />
<ClCompile Include="..\..\src\libraries\Box2D\Dynamics\Joints\b2MouseJoint.cpp" />
<ClCompile Include="..\..\src\libraries\Box2D\Dynamics\Joints\b2PrismaticJoint.cpp" />
<ClCompile Include="..\..\src\libraries\Box2D\Dynamics\Joints\b2PulleyJoint.cpp" />
<ClCompile Include="..\..\src\libraries\Box2D\Dynamics\Joints\b2RevoluteJoint.cpp" />
<ClCompile Include="..\..\src\libraries\Box2D\Dynamics\Joints\b2RopeJoint.cpp" />
<ClCompile Include="..\..\src\libraries\Box2D\Dynamics\Joints\b2WeldJoint.cpp" />
<ClCompile Include="..\..\src\libraries\Box2D\Dynamics\Joints\b2WheelJoint.cpp" />
<ClCompile Include="..\..\src\libraries\Box2D\Rope\b2Rope.cpp" />
<ClCompile Include="..\..\src\libraries\ddsparse\ddsparse.cpp" />
<ClCompile Include="..\..\src\libraries\enet\enet.cpp" />
<ClCompile Include="..\..\src\libraries\enet\libenet\callbacks.c" />
<ClCompile Include="..\..\src\libraries\enet\libenet\compress.c" />
<ClCompile Include="..\..\src\libraries\enet\libenet\host.c" />
<ClCompile Include="..\..\src\libraries\enet\libenet\list.c" />
<ClCompile Include="..\..\src\libraries\enet\libenet\packet.c" />
<ClCompile Include="..\..\src\libraries\enet\libenet\peer.c" />
<ClCompile Include="..\..\src\libraries\enet\libenet\protocol.c" />
<ClCompile Include="..\..\src\libraries\enet\libenet\win32.c" />
<ClCompile Include="..\..\src\libraries\luasocket\libluasocket\auxiliar.c" />
<ClCompile Include="..\..\src\libraries\luasocket\libluasocket\buffer.c" />
<ClCompile Include="..\..\src\libraries\luasocket\libluasocket\except.c" />
<ClCompile Include="..\..\src\libraries\luasocket\libluasocket\inet.c" />
<ClCompile Include="..\..\src\libraries\luasocket\libluasocket\io.c" />
<ClCompile Include="..\..\src\libraries\luasocket\libluasocket\luasocket.c" />
<ClCompile Include="..\..\src\libraries\luasocket\libluasocket\mime.c" />
<ClCompile Include="..\..\src\libraries\luasocket\libluasocket\options.c" />
<ClCompile Include="..\..\src\libraries\luasocket\libluasocket\select.c" />
<ClCompile Include="..\..\src\libraries\luasocket\libluasocket\tcp.c" />
<ClCompile Include="..\..\src\libraries\luasocket\libluasocket\timeout.c" />
<ClCompile Include="..\..\src\libraries\luasocket\libluasocket\udp.c" />
<ClCompile Include="..\..\src\libraries\luasocket\libluasocket\wsocket.c" />
<ClCompile Include="..\..\src\libraries\luasocket\luasocket.cpp" />
<ClCompile Include="..\..\src\libraries\noise1234\simplexnoise1234.cpp" />
<ClCompile Include="..\..\src\libraries\Wuff\wuff.c" />
<ClCompile Include="..\..\src\libraries\Wuff\wuff_convert.c" />
<ClCompile Include="..\..\src\libraries\Wuff\wuff_internal.c" />
<ClCompile Include="..\..\src\libraries\Wuff\wuff_memory.c" />
<ClCompile Include="..\..\src\modules\audio\Audio.cpp" />
<ClCompile Include="..\..\src\modules\audio\null\Audio.cpp" />
<ClCompile Include="..\..\src\modules\audio\null\Source.cpp" />
<ClCompile Include="..\..\src\modules\audio\openal\Audio.cpp" />
<ClCompile Include="..\..\src\modules\audio\openal\Pool.cpp" />
<ClCompile Include="..\..\src\modules\audio\openal\Source.cpp" />
<ClCompile Include="..\..\src\modules\audio\Source.cpp" />
<ClCompile Include="..\..\src\modules\audio\wrap_Audio.cpp" />
<ClCompile Include="..\..\src\modules\audio\wrap_Source.cpp" />
<ClCompile Include="..\..\src\modules\event\Event.cpp" />
<ClCompile Include="..\..\src\modules\event\sdl\Event.cpp" />
<ClCompile Include="..\..\src\modules\event\sdl\wrap_Event.cpp" />
<ClCompile Include="..\..\src\modules\filesystem\File.cpp" />
<ClCompile Include="..\..\src\modules\filesystem\FileData.cpp" />
<ClCompile Include="..\..\src\modules\filesystem\physfs\File.cpp" />
<ClCompile Include="..\..\src\modules\filesystem\physfs\Filesystem.cpp" />
<ClCompile Include="..\..\src\modules\filesystem\physfs\wrap_File.cpp" />
<ClCompile Include="..\..\src\modules\filesystem\physfs\wrap_FileData.cpp" />
<ClCompile Include="..\..\src\modules\filesystem\physfs\wrap_Filesystem.cpp" />
<ClCompile Include="..\..\src\modules\font\freetype\Font.cpp" />
<ClCompile Include="..\..\src\modules\font\freetype\TrueTypeRasterizer.cpp" />
<ClCompile Include="..\..\src\modules\font\freetype\wrap_Font.cpp" />
<ClCompile Include="..\..\src\modules\font\GlyphData.cpp" />
<ClCompile Include="..\..\src\modules\font\ImageRasterizer.cpp" />
<ClCompile Include="..\..\src\modules\font\Rasterizer.cpp" />
<ClCompile Include="..\..\src\modules\font\wrap_GlyphData.cpp" />
<ClCompile Include="..\..\src\modules\font\wrap_Rasterizer.cpp" />
<ClCompile Include="..\..\src\modules\graphics\Drawable.cpp" />
<ClCompile Include="..\..\src\modules\graphics\Graphics.cpp" />
<ClCompile Include="..\..\src\modules\graphics\Image.cpp" />
<ClCompile Include="..\..\src\modules\graphics\opengl\Canvas.cpp" />
<ClCompile Include="..\..\src\modules\graphics\opengl\Font.cpp" />
<ClCompile Include="..\..\src\modules\graphics\opengl\GLee.c" />
<ClCompile Include="..\..\src\modules\graphics\opengl\Graphics.cpp" />
<ClCompile Include="..\..\src\modules\graphics\opengl\Image.cpp" />
<ClCompile Include="..\..\src\modules\graphics\opengl\Mesh.cpp" />
<ClCompile Include="..\..\src\modules\graphics\opengl\OpenGL.cpp" />
<ClCompile Include="..\..\src\modules\graphics\opengl\ParticleSystem.cpp" />
<ClCompile Include="..\..\src\modules\graphics\opengl\Polyline.cpp" />
<ClCompile Include="..\..\src\modules\graphics\opengl\Shader.cpp" />
<ClCompile Include="..\..\src\modules\graphics\opengl\SpriteBatch.cpp" />
<ClCompile Include="..\..\src\modules\graphics\opengl\VertexBuffer.cpp" />
<ClCompile Include="..\..\src\modules\graphics\opengl\wrap_Canvas.cpp" />
<ClCompile Include="..\..\src\modules\graphics\opengl\wrap_Font.cpp" />
<ClCompile Include="..\..\src\modules\graphics\opengl\wrap_Graphics.cpp" />
<ClCompile Include="..\..\src\modules\graphics\opengl\wrap_Image.cpp" />
<ClCompile Include="..\..\src\modules\graphics\opengl\wrap_Mesh.cpp" />
<ClCompile Include="..\..\src\modules\graphics\opengl\wrap_ParticleSystem.cpp" />
<ClCompile Include="..\..\src\modules\graphics\opengl\wrap_Quad.cpp" />
<ClCompile Include="..\..\src\modules\graphics\opengl\wrap_Shader.cpp" />
<ClCompile Include="..\..\src\modules\graphics\opengl\wrap_SpriteBatch.cpp" />
<ClCompile Include="..\..\src\modules\graphics\Quad.cpp" />
<ClCompile Include="..\..\src\modules\graphics\Volatile.cpp" />
<ClCompile Include="..\..\src\modules\image\CompressedData.cpp" />
<ClCompile Include="..\..\src\modules\image\ImageData.cpp" />
<ClCompile Include="..\..\src\modules\image\magpie\CompressedData.cpp" />
<ClCompile Include="..\..\src\modules\image\magpie\ddsHandler.cpp" />
<ClCompile Include="..\..\src\modules\image\magpie\DevilHandler.cpp" />
<ClCompile Include="..\..\src\modules\image\magpie\Image.cpp" />
<ClCompile Include="..\..\src\modules\image\magpie\ImageData.cpp" />
<ClCompile Include="..\..\src\modules\image\wrap_CompressedData.cpp" />
<ClCompile Include="..\..\src\modules\image\wrap_Image.cpp" />
<ClCompile Include="..\..\src\modules\image\wrap_ImageData.cpp" />
<ClCompile Include="..\..\src\modules\joystick\Joystick.cpp" />
<ClCompile Include="..\..\src\modules\joystick\sdl\Joystick.cpp" />
<ClCompile Include="..\..\src\modules\joystick\sdl\JoystickModule.cpp" />
<ClCompile Include="..\..\src\modules\joystick\sdl\wrap_Joystick.cpp" />
<ClCompile Include="..\..\src\modules\joystick\sdl\wrap_JoystickModule.cpp" />
<ClCompile Include="..\..\src\modules\keyboard\Keyboard.cpp" />
<ClCompile Include="..\..\src\modules\keyboard\sdl\Keyboard.cpp" />
<ClCompile Include="..\..\src\modules\keyboard\wrap_Keyboard.cpp" />
<ClCompile Include="..\..\src\modules\love\love.cpp" />
<ClCompile Include="..\..\src\modules\math\BezierCurve.cpp" />
<ClCompile Include="..\..\src\modules\math\MathModule.cpp" />
<ClCompile Include="..\..\src\modules\math\RandomGenerator.cpp" />
<ClCompile Include="..\..\src\modules\math\wrap_BezierCurve.cpp" />
<ClCompile Include="..\..\src\modules\math\wrap_Math.cpp" />
<ClCompile Include="..\..\src\modules\math\wrap_RandomGenerator.cpp" />
<ClCompile Include="..\..\src\modules\mouse\Cursor.cpp" />
<ClCompile Include="..\..\src\modules\mouse\Mouse.cpp" />
<ClCompile Include="..\..\src\modules\mouse\sdl\Cursor.cpp" />
<ClCompile Include="..\..\src\modules\mouse\sdl\Mouse.cpp" />
<ClCompile Include="..\..\src\modules\mouse\wrap_Cursor.cpp" />
<ClCompile Include="..\..\src\modules\mouse\wrap_Mouse.cpp" />
<ClCompile Include="..\..\src\modules\physics\Body.cpp" />
<ClCompile Include="..\..\src\modules\physics\box2d\Body.cpp" />
<ClCompile Include="..\..\src\modules\physics\box2d\ChainShape.cpp" />
<ClCompile Include="..\..\src\modules\physics\box2d\CircleShape.cpp" />
<ClCompile Include="..\..\src\modules\physics\box2d\Contact.cpp" />
<ClCompile Include="..\..\src\modules\physics\box2d\DistanceJoint.cpp" />
<ClCompile Include="..\..\src\modules\physics\box2d\EdgeShape.cpp" />
<ClCompile Include="..\..\src\modules\physics\box2d\Fixture.cpp" />
<ClCompile Include="..\..\src\modules\physics\box2d\FrictionJoint.cpp" />
<ClCompile Include="..\..\src\modules\physics\box2d\GearJoint.cpp" />
<ClCompile Include="..\..\src\modules\physics\box2d\Joint.cpp" />
<ClCompile Include="..\..\src\modules\physics\box2d\MouseJoint.cpp" />
<ClCompile Include="..\..\src\modules\physics\box2d\Physics.cpp" />
<ClCompile Include="..\..\src\modules\physics\box2d\PolygonShape.cpp" />
<ClCompile Include="..\..\src\modules\physics\box2d\PrismaticJoint.cpp" />
<ClCompile Include="..\..\src\modules\physics\box2d\PulleyJoint.cpp" />
<ClCompile Include="..\..\src\modules\physics\box2d\RevoluteJoint.cpp" />
<ClCompile Include="..\..\src\modules\physics\box2d\RopeJoint.cpp" />
<ClCompile Include="..\..\src\modules\physics\box2d\Shape.cpp" />
<ClCompile Include="..\..\src\modules\physics\box2d\WeldJoint.cpp" />
<ClCompile Include="..\..\src\modules\physics\box2d\WheelJoint.cpp" />
<ClCompile Include="..\..\src\modules\physics\box2d\World.cpp" />
<ClCompile Include="..\..\src\modules\physics\box2d\wrap_Body.cpp" />
<ClCompile Include="..\..\src\modules\physics\box2d\wrap_ChainShape.cpp" />
<ClCompile Include="..\..\src\modules\physics\box2d\wrap_CircleShape.cpp" />
<ClCompile Include="..\..\src\modules\physics\box2d\wrap_Contact.cpp" />
<ClCompile Include="..\..\src\modules\physics\box2d\wrap_DistanceJoint.cpp" />
<ClCompile Include="..\..\src\modules\physics\box2d\wrap_EdgeShape.cpp" />
<ClCompile Include="..\..\src\modules\physics\box2d\wrap_Fixture.cpp" />
<ClCompile Include="..\..\src\modules\physics\box2d\wrap_FrictionJoint.cpp" />
<ClCompile Include="..\..\src\modules\physics\box2d\wrap_GearJoint.cpp" />
<ClCompile Include="..\..\src\modules\physics\box2d\wrap_Joint.cpp" />
<ClCompile Include="..\..\src\modules\physics\box2d\wrap_MouseJoint.cpp" />
<ClCompile Include="..\..\src\modules\physics\box2d\wrap_Physics.cpp" />
<ClCompile Include="..\..\src\modules\physics\box2d\wrap_PolygonShape.cpp" />
<ClCompile Include="..\..\src\modules\physics\box2d\wrap_PrismaticJoint.cpp" />
<ClCompile Include="..\..\src\modules\physics\box2d\wrap_PulleyJoint.cpp" />
<ClCompile Include="..\..\src\modules\physics\box2d\wrap_RevoluteJoint.cpp" />
<ClCompile Include="..\..\src\modules\physics\box2d\wrap_RopeJoint.cpp" />
<ClCompile Include="..\..\src\modules\physics\box2d\wrap_Shape.cpp" />
<ClCompile Include="..\..\src\modules\physics\box2d\wrap_WeldJoint.cpp" />
<ClCompile Include="..\..\src\modules\physics\box2d\wrap_WheelJoint.cpp" />
<ClCompile Include="..\..\src\modules\physics\box2d\wrap_World.cpp" />
<ClCompile Include="..\..\src\modules\physics\Joint.cpp" />
<ClCompile Include="..\..\src\modules\physics\Shape.cpp" />
<ClCompile Include="..\..\src\modules\sound\lullaby\Decoder.cpp" />
<ClCompile Include="..\..\src\modules\sound\lullaby\FLACDecoder.cpp" />
<ClCompile Include="..\..\src\modules\sound\lullaby\ModPlugDecoder.cpp" />
<ClCompile Include="..\..\src\modules\sound\lullaby\Mpg123Decoder.cpp" />
<ClCompile Include="..\..\src\modules\sound\lullaby\Sound.cpp" />
<ClCompile Include="..\..\src\modules\sound\lullaby\VorbisDecoder.cpp" />
<ClCompile Include="..\..\src\modules\sound\lullaby\WaveDecoder.cpp" />
<ClCompile Include="..\..\src\modules\sound\Sound.cpp" />
<ClCompile Include="..\..\src\modules\sound\SoundData.cpp" />
<ClCompile Include="..\..\src\modules\sound\wrap_Decoder.cpp" />
<ClCompile Include="..\..\src\modules\sound\wrap_Sound.cpp" />
<ClCompile Include="..\..\src\modules\sound\wrap_SoundData.cpp" />
<ClCompile Include="..\..\src\modules\system\sdl\System.cpp" />
<ClCompile Include="..\..\src\modules\system\System.cpp" />
<ClCompile Include="..\..\src\modules\system\wrap_System.cpp" />
<ClCompile Include="..\..\src\modules\thread\Channel.cpp" />
<ClCompile Include="..\..\src\modules\thread\LuaThread.cpp" />
<ClCompile Include="..\..\src\modules\thread\sdl\Thread.cpp" />
<ClCompile Include="..\..\src\modules\thread\sdl\threads.cpp" />
<ClCompile Include="..\..\src\modules\thread\ThreadModule.cpp" />
<ClCompile Include="..\..\src\modules\thread\threads.cpp" />
<ClCompile Include="..\..\src\modules\thread\wrap_Channel.cpp" />
<ClCompile Include="..\..\src\modules\thread\wrap_LuaThread.cpp" />
<ClCompile Include="..\..\src\modules\thread\wrap_ThreadModule.cpp" />
<ClCompile Include="..\..\src\modules\timer\sdl\Timer.cpp" />
<ClCompile Include="..\..\src\modules\timer\wrap_Timer.cpp" />
<ClCompile Include="..\..\src\modules\window\sdl\Window.cpp" />
<ClCompile Include="..\..\src\modules\window\Window.cpp" />
<ClCompile Include="..\..\src\modules\window\wrap_Window.cpp" />
</ItemGroup>
<ItemGroup>
<None Include="..\..\src\scripts\auto.lua" />
<None Include="..\..\src\scripts\boot.lua" />
<None Include="..\..\src\scripts\graphics.lua" />
</ItemGroup>
<ItemGroup>
<ClInclude Include="..\..\src\common\b64.h" />
<ClInclude Include="..\..\src\common\config.h" />
<ClInclude Include="..\..\src\common\Data.h" />
<ClInclude Include="..\..\src\common\delay.h" />
<ClInclude Include="..\..\src\common\EnumMap.h" />
<ClInclude Include="..\..\src\common\Exception.h" />
<ClInclude Include="..\..\src\common\int.h" />
<ClInclude Include="..\..\src\common\math.h" />
<ClInclude Include="..\..\src\common\Matrix.h" />
<ClInclude Include="..\..\src\common\Memoizer.h" />
<ClInclude Include="..\..\src\common\Module.h" />
<ClInclude Include="..\..\src\common\Object.h" />
<ClInclude Include="..\..\src\common\Reference.h" />
<ClInclude Include="..\..\src\common\runtime.h" />
<ClInclude Include="..\..\src\common\StringMap.h" />
<ClInclude Include="..\..\src\common\types.h" />
<ClInclude Include="..\..\src\common\utf8.h" />
<ClInclude Include="..\..\src\common\Variant.h" />
<ClInclude Include="..\..\src\common\Vector.h" />
<ClInclude Include="..\..\src\common\version.h" />
<ClInclude Include="..\..\src\common\wrap_Data.h" />
<ClInclude Include="..\..\src\libraries\Box2D\Box2D.h" />
<ClInclude Include="..\..\src\libraries\Box2D\Collision\b2BroadPhase.h" />
<ClInclude Include="..\..\src\libraries\Box2D\Collision\b2Collision.h" />
<ClInclude Include="..\..\src\libraries\Box2D\Collision\b2Distance.h" />
<ClInclude Include="..\..\src\libraries\Box2D\Collision\b2DynamicTree.h" />
<ClInclude Include="..\..\src\libraries\Box2D\Collision\b2TimeOfImpact.h" />
<ClInclude Include="..\..\src\libraries\Box2D\Collision\Shapes\b2ChainShape.h" />
<ClInclude Include="..\..\src\libraries\Box2D\Collision\Shapes\b2CircleShape.h" />
<ClInclude Include="..\..\src\libraries\Box2D\Collision\Shapes\b2EdgeShape.h" />
<ClInclude Include="..\..\src\libraries\Box2D\Collision\Shapes\b2PolygonShape.h" />
<ClInclude Include="..\..\src\libraries\Box2D\Collision\Shapes\b2Shape.h" />
<ClInclude Include="..\..\src\libraries\Box2D\Common\b2BlockAllocator.h" />
<ClInclude Include="..\..\src\libraries\Box2D\Common\b2Draw.h" />
<ClInclude Include="..\..\src\libraries\Box2D\Common\b2GrowableStack.h" />
<ClInclude Include="..\..\src\libraries\Box2D\Common\b2Math.h" />
<ClInclude Include="..\..\src\libraries\Box2D\Common\b2Settings.h" />
<ClInclude Include="..\..\src\libraries\Box2D\Common\b2StackAllocator.h" />
<ClInclude Include="..\..\src\libraries\Box2D\Common\b2Timer.h" />
<ClInclude Include="..\..\src\libraries\Box2D\Dynamics\b2Body.h" />
<ClInclude Include="..\..\src\libraries\Box2D\Dynamics\b2ContactManager.h" />
<ClInclude Include="..\..\src\libraries\Box2D\Dynamics\b2Fixture.h" />
<ClInclude Include="..\..\src\libraries\Box2D\Dynamics\b2Island.h" />
<ClInclude Include="..\..\src\libraries\Box2D\Dynamics\b2TimeStep.h" />
<ClInclude Include="..\..\src\libraries\Box2D\Dynamics\b2World.h" />
<ClInclude Include="..\..\src\libraries\Box2D\Dynamics\b2WorldCallbacks.h" />
<ClInclude Include="..\..\src\libraries\Box2D\Dynamics\Contacts\b2ChainAndCircleContact.h" />
<ClInclude Include="..\..\src\libraries\Box2D\Dynamics\Contacts\b2ChainAndPolygonContact.h" />
<ClInclude Include="..\..\src\libraries\Box2D\Dynamics\Contacts\b2CircleContact.h" />
<ClInclude Include="..\..\src\libraries\Box2D\Dynamics\Contacts\b2Contact.h" />
<ClInclude Include="..\..\src\libraries\Box2D\Dynamics\Contacts\b2ContactSolver.h" />
<ClInclude Include="..\..\src\libraries\Box2D\Dynamics\Contacts\b2EdgeAndCircleContact.h" />
<ClInclude Include="..\..\src\libraries\Box2D\Dynamics\Contacts\b2EdgeAndPolygonContact.h" />
<ClInclude Include="..\..\src\libraries\Box2D\Dynamics\Contacts\b2PolygonAndCircleContact.h" />
<ClInclude Include="..\..\src\libraries\Box2D\Dynamics\Contacts\b2PolygonContact.h" />
<ClInclude Include="..\..\src\libraries\Box2D\Dynamics\Joints\b2DistanceJoint.h" />
<ClInclude Include="..\..\src\libraries\Box2D\Dynamics\Joints\b2FrictionJoint.h" />
<ClInclude Include="..\..\src\libraries\Box2D\Dynamics\Joints\b2GearJoint.h" />
<ClInclude Include="..\..\src\libraries\Box2D\Dynamics\Joints\b2Joint.h" />
<ClInclude Include="..\..\src\libraries\Box2D\Dynamics\Joints\b2MouseJoint.h" />
<ClInclude Include="..\..\src\libraries\Box2D\Dynamics\Joints\b2PrismaticJoint.h" />
<ClInclude Include="..\..\src\libraries\Box2D\Dynamics\Joints\b2PulleyJoint.h" />
<ClInclude Include="..\..\src\libraries\Box2D\Dynamics\Joints\b2RevoluteJoint.h" />
<ClInclude Include="..\..\src\libraries\Box2D\Dynamics\Joints\b2RopeJoint.h" />
<ClInclude Include="..\..\src\libraries\Box2D\Dynamics\Joints\b2WeldJoint.h" />
<ClInclude Include="..\..\src\libraries\Box2D\Dynamics\Joints\b2WheelJoint.h" />
<ClInclude Include="..\..\src\libraries\Box2D\Rope\b2Rope.h" />
<ClInclude Include="..\..\src\libraries\ddsparse\ddsinfo.h" />
<ClInclude Include="..\..\src\libraries\ddsparse\ddsparse.h" />
<ClInclude Include="..\..\src\libraries\enet\libenet\include\enet\callbacks.h" />
<ClInclude Include="..\..\src\libraries\enet\libenet\include\enet\enet.h" />
<ClInclude Include="..\..\src\libraries\enet\libenet\include\enet\list.h" />
<ClInclude Include="..\..\src\libraries\enet\libenet\include\enet\protocol.h" />
<ClInclude Include="..\..\src\libraries\enet\libenet\include\enet\time.h" />
<ClInclude Include="..\..\src\libraries\enet\libenet\include\enet\types.h" />
<ClInclude Include="..\..\src\libraries\enet\libenet\include\enet\unix.h" />
<ClInclude Include="..\..\src\libraries\enet\libenet\include\enet\utility.h" />
<ClInclude Include="..\..\src\libraries\enet\libenet\include\enet\win32.h" />
<ClInclude Include="..\..\src\libraries\enet\lua-enet.h" />
<ClInclude Include="..\..\src\libraries\luasocket\libluasocket\auxiliar.h" />
<ClInclude Include="..\..\src\libraries\luasocket\libluasocket\buffer.h" />
<ClInclude Include="..\..\src\libraries\luasocket\libluasocket\except.h" />
<ClInclude Include="..\..\src\libraries\luasocket\libluasocket\inet.h" />
<ClInclude Include="..\..\src\libraries\luasocket\libluasocket\io.h" />
<ClInclude Include="..\..\src\libraries\luasocket\libluasocket\luasocket.h" />
<ClInclude Include="..\..\src\libraries\luasocket\libluasocket\mime.h" />
<ClInclude Include="..\..\src\libraries\luasocket\libluasocket\options.h" />
<ClInclude Include="..\..\src\libraries\luasocket\libluasocket\select.h" />
<ClInclude Include="..\..\src\libraries\luasocket\libluasocket\socket.h" />
<ClInclude Include="..\..\src\libraries\luasocket\libluasocket\tcp.h" />
<ClInclude Include="..\..\src\libraries\luasocket\libluasocket\timeout.h" />
<ClInclude Include="..\..\src\libraries\luasocket\libluasocket\tp.lua.h" />
<ClInclude Include="..\..\src\libraries\luasocket\libluasocket\udp.h" />
<ClInclude Include="..\..\src\libraries\luasocket\libluasocket\url.lua.h" />
<ClInclude Include="..\..\src\libraries\luasocket\libluasocket\wsocket.h" />
<ClInclude Include="..\..\src\libraries\luasocket\luasocket.h" />
<ClInclude Include="..\..\src\libraries\noise1234\simplexnoise1234.h" />
<ClInclude Include="..\..\src\libraries\utf8\utf8.h" />
<ClInclude Include="..\..\src\libraries\utf8\utf8\checked.h" />
<ClInclude Include="..\..\src\libraries\utf8\utf8\core.h" />
<ClInclude Include="..\..\src\libraries\utf8\utf8\unchecked.h" />
<ClInclude Include="..\..\src\libraries\Wuff\wuff.h" />
<ClInclude Include="..\..\src\libraries\Wuff\wuff_config.h" />
<ClInclude Include="..\..\src\libraries\Wuff\wuff_convert.h" />
<ClInclude Include="..\..\src\libraries\Wuff\wuff_internal.h" />
<ClInclude Include="..\..\src\modules\audio\Audio.h" />
<ClInclude Include="..\..\src\modules\audio\null\Audio.h" />
<ClInclude Include="..\..\src\modules\audio\null\Source.h" />
<ClInclude Include="..\..\src\modules\audio\openal\Audio.h" />
<ClInclude Include="..\..\src\modules\audio\openal\Pool.h" />
<ClInclude Include="..\..\src\modules\audio\openal\Source.h" />
<ClInclude Include="..\..\src\modules\audio\Source.h" />
<ClInclude Include="..\..\src\modules\audio\wrap_Audio.h" />
<ClInclude Include="..\..\src\modules\audio\wrap_Source.h" />
<ClInclude Include="..\..\src\modules\event\Event.h" />
<ClInclude Include="..\..\src\modules\event\sdl\Event.h" />
<ClInclude Include="..\..\src\modules\event\sdl\wrap_Event.h" />
<ClInclude Include="..\..\src\modules\filesystem\File.h" />
<ClInclude Include="..\..\src\modules\filesystem\FileData.h" />
<ClInclude Include="..\..\src\modules\filesystem\physfs\File.h" />
<ClInclude Include="..\..\src\modules\filesystem\physfs\Filesystem.h" />
<ClInclude Include="..\..\src\modules\filesystem\physfs\wrap_File.h" />
<ClInclude Include="..\..\src\modules\filesystem\physfs\wrap_FileData.h" />
<ClInclude Include="..\..\src\modules\filesystem\physfs\wrap_Filesystem.h" />
<ClInclude Include="..\..\src\modules\font\Font.h" />
<ClInclude Include="..\..\src\modules\font\freetype\Font.h" />
<ClInclude Include="..\..\src\modules\font\freetype\TrueTypeRasterizer.h" />
<ClInclude Include="..\..\src\modules\font\freetype\wrap_Font.h" />
<ClInclude Include="..\..\src\modules\font\GlyphData.h" />
<ClInclude Include="..\..\src\modules\font\ImageRasterizer.h" />
<ClInclude Include="..\..\src\modules\font\Rasterizer.h" />
<ClInclude Include="..\..\src\modules\font\wrap_GlyphData.h" />
<ClInclude Include="..\..\src\modules\font\wrap_Rasterizer.h" />
<ClInclude Include="..\..\src\modules\graphics\Color.h" />
<ClInclude Include="..\..\src\modules\graphics\Drawable.h" />
<ClInclude Include="..\..\src\modules\graphics\DrawQable.h" />
<ClInclude Include="..\..\src\modules\graphics\Graphics.h" />
<ClInclude Include="..\..\src\modules\graphics\Image.h" />
<ClInclude Include="..\..\src\modules\graphics\opengl\Canvas.h" />
<ClInclude Include="..\..\src\modules\graphics\opengl\Font.h" />
<ClInclude Include="..\..\src\modules\graphics\opengl\GLee.h" />
<ClInclude Include="..\..\src\modules\graphics\opengl\Graphics.h" />
<ClInclude Include="..\..\src\modules\graphics\opengl\Image.h" />
<ClInclude Include="..\..\src\modules\graphics\opengl\Mesh.h" />
<ClInclude Include="..\..\src\modules\graphics\opengl\OpenGL.h" />
<ClInclude Include="..\..\src\modules\graphics\opengl\ParticleSystem.h" />
<ClInclude Include="..\..\src\modules\graphics\opengl\Polyline.h" />
<ClInclude Include="..\..\src\modules\graphics\opengl\Shader.h" />
<ClInclude Include="..\..\src\modules\graphics\opengl\SpriteBatch.h" />
<ClInclude Include="..\..\src\modules\graphics\opengl\VertexBuffer.h" />
<ClInclude Include="..\..\src\modules\graphics\opengl\wrap_Canvas.h" />
<ClInclude Include="..\..\src\modules\graphics\opengl\wrap_Font.h" />
<ClInclude Include="..\..\src\modules\graphics\opengl\wrap_Graphics.h" />
<ClInclude Include="..\..\src\modules\graphics\opengl\wrap_Image.h" />
<ClInclude Include="..\..\src\modules\graphics\opengl\wrap_Mesh.h" />
<ClInclude Include="..\..\src\modules\graphics\opengl\wrap_ParticleSystem.h" />
<ClInclude Include="..\..\src\modules\graphics\opengl\wrap_Quad.h" />
<ClInclude Include="..\..\src\modules\graphics\opengl\wrap_Shader.h" />
<ClInclude Include="..\..\src\modules\graphics\opengl\wrap_SpriteBatch.h" />
<ClInclude Include="..\..\src\modules\graphics\Quad.h" />
<ClInclude Include="..\..\src\modules\graphics\Volatile.h" />
<ClInclude Include="..\..\src\modules\image\CompressedData.h" />
<ClInclude Include="..\..\src\modules\image\Image.h" />
<ClInclude Include="..\..\src\modules\image\ImageData.h" />
<ClInclude Include="..\..\src\modules\image\magpie\CompressedData.h" />
<ClInclude Include="..\..\src\modules\image\magpie\ddsHandler.h" />
<ClInclude Include="..\..\src\modules\image\magpie\DevilHandler.h" />
<ClInclude Include="..\..\src\modules\image\magpie\FormatHandler.h" />
<ClInclude Include="..\..\src\modules\image\magpie\Image.h" />
<ClInclude Include="..\..\src\modules\image\magpie\ImageData.h" />
<ClInclude Include="..\..\src\modules\image\wrap_CompressedData.h" />
<ClInclude Include="..\..\src\modules\image\wrap_Image.h" />
<ClInclude Include="..\..\src\modules\image\wrap_ImageData.h" />
<ClInclude Include="..\..\src\modules\joystick\Joystick.h" />
<ClInclude Include="..\..\src\modules\joystick\JoystickModule.h" />
<ClInclude Include="..\..\src\modules\joystick\sdl\Joystick.h" />
<ClInclude Include="..\..\src\modules\joystick\sdl\JoystickModule.h" />
<ClInclude Include="..\..\src\modules\joystick\sdl\wrap_Joystick.h" />
<ClInclude Include="..\..\src\modules\joystick\sdl\wrap_JoystickModule.h" />
<ClInclude Include="..\..\src\modules\keyboard\Keyboard.h" />
<ClInclude Include="..\..\src\modules\keyboard\sdl\Keyboard.h" />
<ClInclude Include="..\..\src\modules\keyboard\wrap_Keyboard.h" />
<ClInclude Include="..\..\src\modules\love\love.h" />
<ClInclude Include="..\..\src\modules\math\BezierCurve.h" />
<ClInclude Include="..\..\src\modules\math\MathModule.h" />
<ClInclude Include="..\..\src\modules\math\RandomGenerator.h" />
<ClInclude Include="..\..\src\modules\math\wrap_BezierCurve.h" />
<ClInclude Include="..\..\src\modules\math\wrap_Math.h" />
<ClInclude Include="..\..\src\modules\math\wrap_RandomGenerator.h" />
<ClInclude Include="..\..\src\modules\mouse\Cursor.h" />
<ClInclude Include="..\..\src\modules\mouse\Mouse.h" />
<ClInclude Include="..\..\src\modules\mouse\sdl\Cursor.h" />
<ClInclude Include="..\..\src\modules\mouse\sdl\Mouse.h" />
<ClInclude Include="..\..\src\modules\mouse\wrap_Cursor.h" />
<ClInclude Include="..\..\src\modules\mouse\wrap_Mouse.h" />
<ClInclude Include="..\..\src\modules\physics\Body.h" />
<ClInclude Include="..\..\src\modules\physics\box2d\Body.h" />
<ClInclude Include="..\..\src\modules\physics\box2d\ChainShape.h" />
<ClInclude Include="..\..\src\modules\physics\box2d\CircleShape.h" />
<ClInclude Include="..\..\src\modules\physics\box2d\Contact.h" />
<ClInclude Include="..\..\src\modules\physics\box2d\DistanceJoint.h" />
<ClInclude Include="..\..\src\modules\physics\box2d\EdgeShape.h" />
<ClInclude Include="..\..\src\modules\physics\box2d\Fixture.h" />
<ClInclude Include="..\..\src\modules\physics\box2d\FrictionJoint.h" />
<ClInclude Include="..\..\src\modules\physics\box2d\GearJoint.h" />
<ClInclude Include="..\..\src\modules\physics\box2d\Joint.h" />
<ClInclude Include="..\..\src\modules\physics\box2d\MouseJoint.h" />
<ClInclude Include="..\..\src\modules\physics\box2d\Physics.h" />
<ClInclude Include="..\..\src\modules\physics\box2d\PolygonShape.h" />
<ClInclude Include="..\..\src\modules\physics\box2d\PrismaticJoint.h" />
<ClInclude Include="..\..\src\modules\physics\box2d\PulleyJoint.h" />
<ClInclude Include="..\..\src\modules\physics\box2d\RevoluteJoint.h" />
<ClInclude Include="..\..\src\modules\physics\box2d\RopeJoint.h" />
<ClInclude Include="..\..\src\modules\physics\box2d\Shape.h" />
<ClInclude Include="..\..\src\modules\physics\box2d\WeldJoint.h" />
<ClInclude Include="..\..\src\modules\physics\box2d\WheelJoint.h" />
<ClInclude Include="..\..\src\modules\physics\box2d\World.h" />
<ClInclude Include="..\..\src\modules\physics\box2d\wrap_Body.h" />
<ClInclude Include="..\..\src\modules\physics\box2d\wrap_ChainShape.h" />
<ClInclude Include="..\..\src\modules\physics\box2d\wrap_CircleShape.h" />
<ClInclude Include="..\..\src\modules\physics\box2d\wrap_Contact.h" />
<ClInclude Include="..\..\src\modules\physics\box2d\wrap_DistanceJoint.h" />
<ClInclude Include="..\..\src\modules\physics\box2d\wrap_EdgeShape.h" />
<ClInclude Include="..\..\src\modules\physics\box2d\wrap_Fixture.h" />
<ClInclude Include="..\..\src\modules\physics\box2d\wrap_FrictionJoint.h" />
<ClInclude Include="..\..\src\modules\physics\box2d\wrap_GearJoint.h" />
<ClInclude Include="..\..\src\modules\physics\box2d\wrap_Joint.h" />
<ClInclude Include="..\..\src\modules\physics\box2d\wrap_MouseJoint.h" />
<ClInclude Include="..\..\src\modules\physics\box2d\wrap_Physics.h" />
<ClInclude Include="..\..\src\modules\physics\box2d\wrap_PolygonShape.h" />
<ClInclude Include="..\..\src\modules\physics\box2d\wrap_PrismaticJoint.h" />
<ClInclude Include="..\..\src\modules\physics\box2d\wrap_PulleyJoint.h" />
<ClInclude Include="..\..\src\modules\physics\box2d\wrap_RevoluteJoint.h" />
<ClInclude Include="..\..\src\modules\physics\box2d\wrap_RopeJoint.h" />
<ClInclude Include="..\..\src\modules\physics\box2d\wrap_Shape.h" />
<ClInclude Include="..\..\src\modules\physics\box2d\wrap_WeldJoint.h" />
<ClInclude Include="..\..\src\modules\physics\box2d\wrap_WheelJoint.h" />
<ClInclude Include="..\..\src\modules\physics\box2d\wrap_World.h" />
<ClInclude Include="..\..\src\modules\physics\Joint.h" />
<ClInclude Include="..\..\src\modules\physics\Shape.h" />
<ClInclude Include="..\..\src\modules\sound\Decoder.h" />
<ClInclude Include="..\..\src\modules\sound\lullaby\Decoder.h" />
<ClInclude Include="..\..\src\modules\sound\lullaby\FLACDecoder.h" />
<ClInclude Include="..\..\src\modules\sound\lullaby\ModPlugDecoder.h" />
<ClInclude Include="..\..\src\modules\sound\lullaby\Mpg123Decoder.h" />
<ClInclude Include="..\..\src\modules\sound\lullaby\Sound.h" />
<ClInclude Include="..\..\src\modules\sound\lullaby\VorbisDecoder.h" />
<ClInclude Include="..\..\src\modules\sound\lullaby\WaveDecoder.h" />
<ClInclude Include="..\..\src\modules\sound\Sound.h" />
<ClInclude Include="..\..\src\modules\sound\SoundData.h" />
<ClInclude Include="..\..\src\modules\sound\wrap_Decoder.h" />
<ClInclude Include="..\..\src\modules\sound\wrap_Sound.h" />
<ClInclude Include="..\..\src\modules\sound\wrap_SoundData.h" />
<ClInclude Include="..\..\src\modules\system\sdl\System.h" />
<ClInclude Include="..\..\src\modules\system\System.h" />
<ClInclude Include="..\..\src\modules\system\wrap_System.h" />
<ClInclude Include="..\..\src\modules\thread\Channel.h" />
<ClInclude Include="..\..\src\modules\thread\LuaThread.h" />
<ClInclude Include="..\..\src\modules\thread\sdl\Thread.h" />
<ClInclude Include="..\..\src\modules\thread\sdl\threads.h" />
<ClInclude Include="..\..\src\modules\thread\Thread.h" />
<ClInclude Include="..\..\src\modules\thread\ThreadModule.h" />
<ClInclude Include="..\..\src\modules\thread\threads.h" />
<ClInclude Include="..\..\src\modules\thread\wrap_Channel.h" />
<ClInclude Include="..\..\src\modules\thread\wrap_LuaThread.h" />
<ClInclude Include="..\..\src\modules\thread\wrap_ThreadModule.h" />
<ClInclude Include="..\..\src\modules\timer\sdl\Timer.h" />
<ClInclude Include="..\..\src\modules\timer\Timer.h" />
<ClInclude Include="..\..\src\modules\timer\wrap_Timer.h" />
<ClInclude Include="..\..\src\modules\window\sdl\Window.h" />
<ClInclude Include="..\..\src\modules\window\Window.h" />
<ClInclude Include="..\..\src\modules\window\wrap_Window.h" />
</ItemGroup>
<ItemGroup>
<ResourceCompile Include="love.rc" />
</ItemGroup>
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.targets" />
<ImportGroup Label="ExtensionTargets">
</ImportGroup>
</Project>
File diff suppressed because it is too large Load Diff
Binary file not shown.

Before

Width:  |  Height:  |  Size: 35 KiB

Binary file not shown.
@@ -1,47 +0,0 @@
Microsoft Visual Studio Solution File, Format Version 11.00
# Visual C++ Express 2010
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "love", "love.vcxproj", "{B496CCF6-9B6D-0794-8F41-67A6EC86B4AA}"
ProjectSection(ProjectDependencies) = postProject
{A3FCC735-3E18-4D6B-9DA9-01D9E910B7F8} = {A3FCC735-3E18-4D6B-9DA9-01D9E910B7F8}
EndProjectSection
EndProject
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "liblove", "liblove.vcxproj", "{A3FCC735-3E18-4D6B-9DA9-01D9E910B7F8}"
EndProject
Global
GlobalSection(SolutionConfigurationPlatforms) = preSolution
Debug MD|Win32 = Debug MD|Win32
Debug MD|x64 = Debug MD|x64
Release MD|Win32 = Release MD|Win32
Release MD|x64 = Release MD|x64
Release MT|Win32 = Release MT|Win32
Release MT|x64 = Release MT|x64
EndGlobalSection
GlobalSection(ProjectConfigurationPlatforms) = postSolution
{B496CCF6-9B6D-0794-8F41-67A6EC86B4AA}.Debug MD|Win32.ActiveCfg = Debug Dynamic|Win32
{B496CCF6-9B6D-0794-8F41-67A6EC86B4AA}.Debug MD|Win32.Build.0 = Debug Dynamic|Win32
{B496CCF6-9B6D-0794-8F41-67A6EC86B4AA}.Debug MD|x64.ActiveCfg = Debug Dynamic|x64
{B496CCF6-9B6D-0794-8F41-67A6EC86B4AA}.Release MD|Win32.ActiveCfg = Release Dynamic|Win32
{B496CCF6-9B6D-0794-8F41-67A6EC86B4AA}.Release MD|Win32.Build.0 = Release Dynamic|Win32
{B496CCF6-9B6D-0794-8F41-67A6EC86B4AA}.Release MD|x64.ActiveCfg = Release Dynamic|x64
{B496CCF6-9B6D-0794-8F41-67A6EC86B4AA}.Release MD|x64.Build.0 = Release Dynamic|x64
{B496CCF6-9B6D-0794-8F41-67A6EC86B4AA}.Release MT|Win32.ActiveCfg = Release Static|Win32
{B496CCF6-9B6D-0794-8F41-67A6EC86B4AA}.Release MT|Win32.Build.0 = Release Static|Win32
{B496CCF6-9B6D-0794-8F41-67A6EC86B4AA}.Release MT|x64.ActiveCfg = Release Static|x64
{B496CCF6-9B6D-0794-8F41-67A6EC86B4AA}.Release MT|x64.Build.0 = Release Static|x64
{A3FCC735-3E18-4D6B-9DA9-01D9E910B7F8}.Debug MD|Win32.ActiveCfg = Debug Dynamic|Win32
{A3FCC735-3E18-4D6B-9DA9-01D9E910B7F8}.Debug MD|Win32.Build.0 = Debug Dynamic|Win32
{A3FCC735-3E18-4D6B-9DA9-01D9E910B7F8}.Debug MD|x64.ActiveCfg = Debug Dynamic|x64
{A3FCC735-3E18-4D6B-9DA9-01D9E910B7F8}.Release MD|Win32.ActiveCfg = Release Dynamic|Win32
{A3FCC735-3E18-4D6B-9DA9-01D9E910B7F8}.Release MD|Win32.Build.0 = Release Dynamic|Win32
{A3FCC735-3E18-4D6B-9DA9-01D9E910B7F8}.Release MD|x64.ActiveCfg = Release Dynamic|x64
{A3FCC735-3E18-4D6B-9DA9-01D9E910B7F8}.Release MD|x64.Build.0 = Release Dynamic|x64
{A3FCC735-3E18-4D6B-9DA9-01D9E910B7F8}.Release MT|Win32.ActiveCfg = Release Static|Win32
{A3FCC735-3E18-4D6B-9DA9-01D9E910B7F8}.Release MT|Win32.Build.0 = Release Static|Win32
{A3FCC735-3E18-4D6B-9DA9-01D9E910B7F8}.Release MT|x64.ActiveCfg = Release Static|x64
{A3FCC735-3E18-4D6B-9DA9-01D9E910B7F8}.Release MT|x64.Build.0 = Release Static|x64
EndGlobalSection
GlobalSection(SolutionProperties) = preSolution
HideSolutionNode = FALSE
EndGlobalSection
EndGlobal
@@ -1,273 +0,0 @@
<?xml version="1.0" encoding="utf-8"?>
<Project DefaultTargets="Build" ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
<ItemGroup Label="ProjectConfigurations">
<ProjectConfiguration Include="Debug Dynamic|Win32">
<Configuration>Debug Dynamic</Configuration>
<Platform>Win32</Platform>
</ProjectConfiguration>
<ProjectConfiguration Include="Debug Dynamic|x64">
<Configuration>Debug Dynamic</Configuration>
<Platform>x64</Platform>
</ProjectConfiguration>
<ProjectConfiguration Include="Release Dynamic|Win32">
<Configuration>Release Dynamic</Configuration>
<Platform>Win32</Platform>
</ProjectConfiguration>
<ProjectConfiguration Include="Release Dynamic|x64">
<Configuration>Release Dynamic</Configuration>
<Platform>x64</Platform>
</ProjectConfiguration>
<ProjectConfiguration Include="Release Static|Win32">
<Configuration>Release Static</Configuration>
<Platform>Win32</Platform>
</ProjectConfiguration>
<ProjectConfiguration Include="Release Static|x64">
<Configuration>Release Static</Configuration>
<Platform>x64</Platform>
</ProjectConfiguration>
</ItemGroup>
<PropertyGroup Label="Globals">
<Keyword>Win32Proj</Keyword>
</PropertyGroup>
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.Default.props" />
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug Dynamic|Win32'" Label="Configuration">
<ConfigurationType>Application</ConfigurationType>
<UseDebugLibraries>true</UseDebugLibraries>
<CharacterSet>Unicode</CharacterSet>
</PropertyGroup>
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug Dynamic|x64'" Label="Configuration">
<ConfigurationType>Application</ConfigurationType>
<UseDebugLibraries>true</UseDebugLibraries>
<CharacterSet>Unicode</CharacterSet>
</PropertyGroup>
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release Dynamic|Win32'" Label="Configuration">
<ConfigurationType>Application</ConfigurationType>
<UseDebugLibraries>false</UseDebugLibraries>
<CharacterSet>Unicode</CharacterSet>
<WholeProgramOptimization>true</WholeProgramOptimization>
</PropertyGroup>
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release Dynamic|x64'" Label="Configuration">
<ConfigurationType>Application</ConfigurationType>
<UseDebugLibraries>false</UseDebugLibraries>
<CharacterSet>Unicode</CharacterSet>
<WholeProgramOptimization>true</WholeProgramOptimization>
<PlatformToolset>Windows7.1SDK</PlatformToolset>
</PropertyGroup>
<PropertyGroup Label="Configuration" Condition="'$(Configuration)|$(Platform)'=='Release Static|Win32'">
<CharacterSet>Unicode</CharacterSet>
</PropertyGroup>
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release Static|x64'" Label="Configuration">
<CharacterSet>Unicode</CharacterSet>
</PropertyGroup>
<PropertyGroup Label="Configuration" Condition="'$(Configuration)|$(Platform)'=='Release Static|Win32'">
<WholeProgramOptimization>true</WholeProgramOptimization>
</PropertyGroup>
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release Static|x64'" Label="Configuration">
<WholeProgramOptimization>true</WholeProgramOptimization>
<PlatformToolset>Windows7.1SDK</PlatformToolset>
</PropertyGroup>
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.props" />
<ImportGroup Label="ExtensionSettings">
</ImportGroup>
<ImportGroup Label="PropertySheets" Condition="'$(Configuration)|$(Platform)'=='Debug Dynamic|Win32'">
<Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
</ImportGroup>
<ImportGroup Condition="'$(Configuration)|$(Platform)'=='Debug Dynamic|x64'" Label="PropertySheets">
<Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
</ImportGroup>
<ImportGroup Label="PropertySheets" Condition="'$(Configuration)|$(Platform)'=='Release Dynamic|Win32'">
<Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
</ImportGroup>
<ImportGroup Condition="'$(Configuration)|$(Platform)'=='Release Dynamic|x64'" Label="PropertySheets">
<Import Project="$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props" Condition="exists('$(UserRootDir)\Microsoft.Cpp.$(Platform).user.props')" Label="LocalAppDataPlatform" />
</ImportGroup>
<PropertyGroup Label="UserMacros" />
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug Dynamic|Win32'">
<LinkIncremental>false</LinkIncremental>
<GenerateManifest>false</GenerateManifest>
<OutDir>$(SolutionDir)\bin\$(PlatformShortName)\Debug\MD\</OutDir>
<IntDir>$(ProjectName)\$(PlatformShortName)\Debug\</IntDir>
</PropertyGroup>
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Debug Dynamic|x64'">
<LinkIncremental>false</LinkIncremental>
<GenerateManifest>false</GenerateManifest>
<OutDir>$(SolutionDir)\bin\$(PlatformShortName)\Debug\MD\</OutDir>
<IntDir>$(ProjectName)\$(PlatformShortName)\Debug\</IntDir>
</PropertyGroup>
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release Dynamic|Win32'">
<LinkIncremental>false</LinkIncremental>
<OutDir>$(SolutionDir)\bin\$(PlatformShortName)\Release\MD\</OutDir>
<IntDir>$(ProjectName)\$(PlatformShortName)\Release\</IntDir>
<GenerateManifest>false</GenerateManifest>
</PropertyGroup>
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release Dynamic|x64'">
<LinkIncremental>false</LinkIncremental>
<OutDir>$(SolutionDir)\bin\$(PlatformShortName)\Release\MD\</OutDir>
<IntDir>$(ProjectName)\$(PlatformShortName)\Release\</IntDir>
<GenerateManifest>false</GenerateManifest>
</PropertyGroup>
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release Static|Win32'">
<OutDir>$(SolutionDir)\bin\$(PlatformShortName)\Release\MT\</OutDir>
<IntDir>$(ProjectName)\$(PlatformShortName)\Release\</IntDir>
<GenerateManifest>false</GenerateManifest>
<LinkIncremental>false</LinkIncremental>
</PropertyGroup>
<PropertyGroup Condition="'$(Configuration)|$(Platform)'=='Release Static|x64'">
<OutDir>$(SolutionDir)\bin\$(PlatformShortName)\Release\MT\</OutDir>
<IntDir>$(ProjectName)\$(PlatformShortName)\Release\</IntDir>
<GenerateManifest>false</GenerateManifest>
<LinkIncremental>false</LinkIncremental>
</PropertyGroup>
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug Dynamic|Win32'">
<ClCompile>
<PreprocessorDefinitions>DEBUG;_DEBUG%(PreprocessorDefinitions)</PreprocessorDefinitions>
<RuntimeLibrary>MultiThreadedDebugDLL</RuntimeLibrary>
<WarningLevel>Level3</WarningLevel>
<DebugInformationFormat>ProgramDatabase</DebugInformationFormat>
<Optimization>Disabled</Optimization>
<AdditionalIncludeDirectories>include;include\SDL;..\..\src;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
<MultiProcessorCompilation>
</MultiProcessorCompilation>
<MinimalRebuild>false</MinimalRebuild>
</ClCompile>
<Link>
<TargetMachine>MachineX86</TargetMachine>
<GenerateDebugInformation>true</GenerateDebugInformation>
<SubSystem>Windows</SubSystem>
<AdditionalLibraryDirectories>lib\$(PlatformShortName)\Debug\MD\</AdditionalLibraryDirectories>
<AdditionalDependencies>msvcrtd.lib;msvcprtd.lib;kernel32.lib;lua51.lib;SDL2main.lib;SDL2.lib;%(AdditionalDependencies)</AdditionalDependencies>
<IgnoreAllDefaultLibraries>true</IgnoreAllDefaultLibraries>
<ProgramDatabaseFile>$(TargetDir)$(TargetName).pdb</ProgramDatabaseFile>
<ProfileGuidedDatabase>$(TargetDir)$(TargetName).pgd</ProfileGuidedDatabase>
</Link>
</ItemDefinitionGroup>
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Debug Dynamic|x64'">
<ClCompile>
<PreprocessorDefinitions>DEBUG;_DEBUG%(PreprocessorDefinitions)</PreprocessorDefinitions>
<RuntimeLibrary>MultiThreadedDebugDLL</RuntimeLibrary>
<WarningLevel>Level3</WarningLevel>
<DebugInformationFormat>ProgramDatabase</DebugInformationFormat>
<Optimization>Disabled</Optimization>
<AdditionalIncludeDirectories>include;include\SDL;..\..\src;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
<MultiProcessorCompilation>
</MultiProcessorCompilation>
<MinimalRebuild>false</MinimalRebuild>
<OmitFramePointers>false</OmitFramePointers>
</ClCompile>
<Link>
<GenerateDebugInformation>true</GenerateDebugInformation>
<SubSystem>Windows</SubSystem>
<AdditionalLibraryDirectories>lib\$(PlatformShortName)\Debug\MD\</AdditionalLibraryDirectories>
<AdditionalDependencies>msvcrtd.lib;msvcprtd.lib;kernel32.lib;lua51.lib;SDL2main.lib;SDL2.lib;%(AdditionalDependencies)</AdditionalDependencies>
<IgnoreAllDefaultLibraries>true</IgnoreAllDefaultLibraries>
<ProfileGuidedDatabase>$(TargetDir)$(TargetName).pgd</ProfileGuidedDatabase>
<ProgramDatabaseFile>$(TargetDir)$(TargetName).pdb</ProgramDatabaseFile>
</Link>
</ItemDefinitionGroup>
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release Dynamic|Win32'">
<ClCompile>
<PreprocessorDefinitions>NDEBUG;%(PreprocessorDefinitions)</PreprocessorDefinitions>
<RuntimeLibrary>MultiThreadedDLL</RuntimeLibrary>
<WarningLevel>Level1</WarningLevel>
<DebugInformationFormat>ProgramDatabase</DebugInformationFormat>
<AdditionalIncludeDirectories>include;include\SDL;..\..\src;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
<OmitFramePointers>true</OmitFramePointers>
<StringPooling>true</StringPooling>
<BufferSecurityCheck>false</BufferSecurityCheck>
<FunctionLevelLinking>true</FunctionLevelLinking>
</ClCompile>
<Link>
<TargetMachine>MachineX86</TargetMachine>
<GenerateDebugInformation>true</GenerateDebugInformation>
<SubSystem>Windows</SubSystem>
<EnableCOMDATFolding>true</EnableCOMDATFolding>
<OptimizeReferences>true</OptimizeReferences>
<AdditionalLibraryDirectories>lib\$(PlatformShortName)\Release\MD\</AdditionalLibraryDirectories>
<AdditionalDependencies>msvcrt.lib;msvcprt.lib;kernel32.lib;lua51.lib;SDL2main.lib;SDL2.lib;%(AdditionalDependencies)</AdditionalDependencies>
<IgnoreAllDefaultLibraries>true</IgnoreAllDefaultLibraries>
</Link>
</ItemDefinitionGroup>
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release Dynamic|x64'">
<ClCompile>
<PreprocessorDefinitions>NDEBUG;%(PreprocessorDefinitions)</PreprocessorDefinitions>
<RuntimeLibrary>MultiThreadedDLL</RuntimeLibrary>
<WarningLevel>Level1</WarningLevel>
<DebugInformationFormat>ProgramDatabase</DebugInformationFormat>
<AdditionalIncludeDirectories>include;include\SDL;..\..\src;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
<OmitFramePointers>true</OmitFramePointers>
<StringPooling>true</StringPooling>
<BufferSecurityCheck>false</BufferSecurityCheck>
<FunctionLevelLinking>true</FunctionLevelLinking>
</ClCompile>
<Link>
<GenerateDebugInformation>true</GenerateDebugInformation>
<SubSystem>Windows</SubSystem>
<EnableCOMDATFolding>true</EnableCOMDATFolding>
<OptimizeReferences>true</OptimizeReferences>
<AdditionalLibraryDirectories>lib\$(PlatformShortName)\Release\MD\</AdditionalLibraryDirectories>
<AdditionalDependencies>msvcrt.lib;msvcprt.lib;kernel32.lib;lua51.lib;SDL2main.lib;SDL2.lib;%(AdditionalDependencies)</AdditionalDependencies>
<IgnoreAllDefaultLibraries>true</IgnoreAllDefaultLibraries>
</Link>
</ItemDefinitionGroup>
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release Static|Win32'">
<ClCompile>
<AdditionalIncludeDirectories>include;include\SDL;..\..\src;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
<OmitFramePointers>true</OmitFramePointers>
<PreprocessorDefinitions>NDEBUG;%(PreprocessorDefinitions)</PreprocessorDefinitions>
<StringPooling>true</StringPooling>
<RuntimeLibrary>MultiThreaded</RuntimeLibrary>
<BufferSecurityCheck>false</BufferSecurityCheck>
<FunctionLevelLinking>true</FunctionLevelLinking>
</ClCompile>
<Link>
<SubSystem>Windows</SubSystem>
<OptimizeReferences>true</OptimizeReferences>
<EnableCOMDATFolding>true</EnableCOMDATFolding>
<AdditionalDependencies>libcmt.lib;libcpmt.lib;kernel32.lib;user32.lib;shell32.lib;uuid.lib;advapi32.lib;ws2_32.lib;winmm.lib;opengl32.lib;oldnames.lib;DevIL.lib;freetype.lib;libmodplug.lib;libogg.lib;libvorbis.lib;libvorbisfile.lib;lua51.lib;mpg123.lib;physfs.lib;OpenAL.lib;zlib.lib;SDL2main.lib;SDL2.lib;%(AdditionalDependencies)</AdditionalDependencies>
<AdditionalLibraryDirectories>lib\$(PlatformShortName)\Release\MT\</AdditionalLibraryDirectories>
<IgnoreAllDefaultLibraries>true</IgnoreAllDefaultLibraries>
<ShowProgress>NotSet</ShowProgress>
<SuppressStartupBanner>true</SuppressStartupBanner>
<GenerateDebugInformation>true</GenerateDebugInformation>
</Link>
</ItemDefinitionGroup>
<ItemDefinitionGroup Condition="'$(Configuration)|$(Platform)'=='Release Static|x64'">
<ClCompile>
<AdditionalIncludeDirectories>include;include\SDL;..\..\src;%(AdditionalIncludeDirectories)</AdditionalIncludeDirectories>
<OmitFramePointers>true</OmitFramePointers>
<PreprocessorDefinitions>NDEBUG;%(PreprocessorDefinitions)</PreprocessorDefinitions>
<StringPooling>true</StringPooling>
<RuntimeLibrary>MultiThreaded</RuntimeLibrary>
<BufferSecurityCheck>false</BufferSecurityCheck>
<FunctionLevelLinking>true</FunctionLevelLinking>
</ClCompile>
<Link>
<SubSystem>Windows</SubSystem>
<OptimizeReferences>true</OptimizeReferences>
<EnableCOMDATFolding>true</EnableCOMDATFolding>
<AdditionalDependencies>libcmt.lib;libcpmt.lib;kernel32.lib;user32.lib;shell32.lib;uuid.lib;advapi32.lib;ws2_32.lib;winmm.lib;opengl32.lib;oldnames.lib;DevIL.lib;freetype.lib;libmodplug.lib;libogg.lib;libvorbis.lib;libvorbisfile.lib;lua51.lib;mpg123.lib;physfs.lib;OpenAL.lib;zlib.lib;SDL2main.lib;SDL2.lib;%(AdditionalDependencies)</AdditionalDependencies>
<AdditionalLibraryDirectories>lib\$(PlatformShortName)\Release\MT\</AdditionalLibraryDirectories>
<IgnoreAllDefaultLibraries>true</IgnoreAllDefaultLibraries>
<GenerateDebugInformation>true</GenerateDebugInformation>
</Link>
</ItemDefinitionGroup>
<ItemGroup>
<ResourceCompile Include="love.rc" />
</ItemGroup>
<ItemGroup>
<ProjectReference Include="liblove.vcxproj">
<Project>{a3fcc735-3e18-4d6b-9da9-01d9e910b7f8}</Project>
<Private>false</Private>
<ReferenceOutputAssembly>false</ReferenceOutputAssembly>
<CopyLocalSatelliteAssemblies>false</CopyLocalSatelliteAssemblies>
<LinkLibraryDependencies>true</LinkLibraryDependencies>
<UseLibraryDependencyInputs>false</UseLibraryDependencyInputs>
</ProjectReference>
</ItemGroup>
<ItemGroup>
<ClCompile Include="..\..\src\love.cpp" />
</ItemGroup>
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.targets" />
<ImportGroup Label="ExtensionTargets">
</ImportGroup>
</Project>
@@ -1,9 +0,0 @@
<?xml version="1.0" encoding="utf-8"?>
<Project ToolsVersion="4.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
<ItemGroup>
<ResourceCompile Include="love.rc" />
</ItemGroup>
<ItemGroup>
<ClCompile Include="..\..\src\love.cpp" />
</ItemGroup>
</Project>
+22 -20
View File
@@ -26,42 +26,44 @@ AUTOMAKE=${AUTOMAKE:-$(which automake)}
[[ -x ${ACLOCAL} ]] || die "Could not find aclocal. Install automake."
[[ -x ${AUTOMAKE} ]] || die "Could not find automake."
print_errors() {
local output
output="$("$@" 2>&1)" && return 0
printf "%s\n" "$output"
return 1
}
automagic() {
log "Copying files..." >&2
log "Copying files..."
cp platform/unix/configure.ac .
cp platform/unix/Makefile.am .
log "Running genmodules..." >&2
if ! bash platform/unix/genmodules "$1"; then
log "Running genmodules..."
if ! print_errors bash platform/unix/genmodules "$1"; then
echo "You should be doing this from the root directory of the project."
exit 1
fi
log "Running autoheader..." >&2
${AUTOHEADER} 2>&1 || return 1 # Gimmie config.h.in
log "Running autoheader..."
print_errors ${AUTOHEADER} || return 1 # Gimmie config.h.in
log "Running libtoolize..." >&2
${LIBTOOLIZE} --force 2>&1 || return 1
log "Running libtoolize..."
print_errors ${LIBTOOLIZE} --force || return 1
log "Running aclocal..." >&2
${ACLOCAL} 2>&1 || return 1
log "Running aclocal..."
print_errors ${ACLOCAL} || return 1
log "Running autoconf..." >&2
${AUTOCONF} 2>&1 || return 1
log "Running autoconf..."
print_errors ${AUTOCONF} || return 1
log "Running automake..." >&2
${AUTOMAKE} -a 2>&1 || return 1
log "Running automake..."
print_errors ${AUTOMAKE} -a || return 1
}
if [[ $1 == "-d" ]]; then
shift 1
automagic "$@" 2>&1
else
(automagic "$@" > /dev/null) 2>&1
fi
automagic "$@"
if [[ $? -eq 1 ]]; then
log "Failed, sadface."
log "You can make this script more verbose running it in debug mode (-d)"
log "This is generally a configuration error (I'm looking at you aclocal)"
exit 1
else
+53 -56
View File
@@ -1,4 +1,4 @@
AC_INIT([love], [HEAD])
AC_INIT([love], [11.1])
AC_CONFIG_HEADERS([config.h])
AC_CONFIG_AUX_DIR([platform/unix])
AC_CONFIG_MACRO_DIR([platform/unix/m4])
@@ -19,6 +19,7 @@ AC_LANG([C++])
dnl Workaround for old aclocal versions
m4_include([platform/unix/cpp11.m4])
m4_include([platform/unix/deps.m4])
includes=
@@ -44,70 +45,68 @@ AS_VAR_IF([enable_stbi_sse2_override], [no], [], #else
# --with-lua and --with-luaversion
AC_ARG_WITH([lua], [AS_HELP_STRING([--with-lua], [Select the lua implementation])],
[], [with_lua=luajit])
[], [with_lua=luajit])
AC_ARG_WITH([luaversion], [AS_HELP_STRING([--with-luaversion], [Select the lua version])],
[], [with_luaversion=5.1])
[], [with_luaversion=5.1])
# pkg-config libraries
AM_PATH_SDL2([], [], [LOVE_MSG_ERROR([SDL 2])])
with_clean_luaversion=`printf ${with_luaversion} | sed 's/\.//g'`
PKG_CHECK_MODULES([lua], [${with_lua}${with_luaversion}], [lua_found=yes],
[PKG_CHECK_MODULES([lua], [${with_lua}${with_clean_luaversion}], [lua_found=yes],
[PKG_CHECK_MODULES([lua], [${with_lua}], [lua_found=yes], [lua_found=no])])])
PKG_CHECK_MODULES([freetype2], [freetype2], [], [LOVE_MSG_ERROR([FreeType2])])
PKG_CHECK_MODULES([openal], [openal], [], [LOVE_MSG_ERROR([OpenAL])])
PKG_CHECK_MODULES([libmodplug], [libmodplug], [], [LOVE_MSG_ERROR([libmodplug])])
PKG_CHECK_MODULES([vorbisfile], [vorbisfile], [], [LOVE_MSG_ERROR([libvorbis and libvorbisfile])])
PKG_CHECK_MODULES([zlib], [zlib], [], [LOVE_MSG_ERROR([zlib])])
PKG_CHECK_MODULES([theora], [theoradec], [], [LOVE_MSG_ERROR([libtheora])])
# Other libraries
AC_SEARCH_LIBS([sqrt], [m], [], [LOVE_MSG_ERROR([the C math library])])
AC_SEARCH_LIBS([PHYSFS_init], [physfs], [], [LOVE_MSG_ERROR([PhysicsFS])])
# Generated sources for enabling/disabling modules
m4_include([configure-modules-pre.ac])
# Lua, treated seperately because of --with-lua
AS_VAR_IF([lua_found], [yes],
#if
[
luaheaders_found=yes
AC_MSG_CHECKING([for library containing lua_call])
AC_MSG_RESULT([${lua_LIBS}])],
#else
[
AC_MSG_WARN([Could not find pkg-config definition for ${with_lua}${with_luaversion} or ${with_lua}${with_clean_luaversion}${with_lua}, falling back to manual detection])
AC_SEARCH_LIBS([lua_call], ["${with_lua}${with_luaversion}" "${with_lua}"], [],
[LOVE_MSG_ERROR([$with_lua])])
luaheaders_found=no
AC_CHECK_HEADER(["${with_lua}${with_luaversion}/lua.h"], [luaheaders_found=yes includes="$includes -I/usr/include/${with_lua}${with_luaversion}"], [])
AC_CHECK_HEADER(["${with_lua}/lua.h"], [luaheaders_found=yes includes="$includes -I/usr/include/${with_lua}"], [])])
AS_VAR_IF([luaheaders_found], [yes], [], #else
[
AC_MSG_WARN([Could not locate lua headers for ${with_lua}${with_luaversion} or ${with_lua}, you probably need to specify them with CPPFLAGS])])
# mpg123, treated seperately because it can be disabled (default on)
# also not pkg-config because of the FILE_OFFSET_BITS.. bit
# Other features that can be enabled/disabled
AC_ARG_ENABLE([mpg123], AC_HELP_STRING([--disable-mpg123], [Disable mp3 support, for patent-free builds]), [], [enable_mpg123=yes])
AC_ARG_ENABLE([gme], AC_HELP_STRING([--enable-gme], [Enable GME support, for more chiptuney goodness]), [], [enable_gme=no])
# Dependencies we always use
ACLOVE_DEP_LUA
ACLOVE_DEP_SDL2
ACLOVE_DEP_LIBM
ACLOVE_DEP_ZLIB
# Conditional dependencies
AS_VAR_IF([enable_module_audio], [yes], [ACLOVE_DEP_OPENAL], [])
AS_VAR_IF([enable_module_font], [yes], [ACLOVE_DEP_FREETYPE2], [])
AS_VAR_IF([enable_module_sound], [yes], [
ACLOVE_DEP_LIBMODPLUG
ACLOVE_DEP_VORBISFILE
], [enable_mpg123=no])
AS_VAR_IF([enable_module_video], [yes], [ACLOVE_DEP_THEORA], [])
AS_VAR_IF([enable_gme], [yes], [ACLOVE_DEP_GME], [])
AS_VAR_IF([enable_mpg123], [no],
AC_DEFINE([LOVE_NOMPG123], [], [Build without mpg123]),
# else
AC_SEARCH_LIBS([mpg123_open_feed], [mpg123], [],
[LOVE_MSG_ERROR([libmpg123])])
AC_SEARCH_LIBS([mpg123_seek_64], [mpg123],
AC_SUBST([FILE_OFFSET],[-D_FILE_OFFSET_BITS=64]),
AC_SUBST([FILE_OFFSET],[])))
[ACLOVE_DEP_MPG123])
# GME, treated seperately because it can be enabled (default off)
AC_ARG_ENABLE([gme], AC_HELP_STRING([--enable-gme], [Enable GME support, for more chiptuney goodness]), [], [enable_gme=no])
AS_VAR_IF([enable_gme], [yes],
AC_SEARCH_LIBS([gme_open_data], [gme], [], [LOVE_MSG_ERROR([gme])])
AC_DEFINE([LOVE_SUPPORT_GME], [], [Enable gme])
AC_CHECK_HEADER([gme/gme.h], [includes="$includes -I/usr/include/gme"], []))
# Add flags for optional libraries
AC_ARG_ENABLE([library-enet], [ --disable-library-enet Turn off library enet], [], [enable_library_enet=yes])
AC_ARG_ENABLE([library-luasocket], [ --disable-library-luasocket Turn off library luasocket], [], [enable_library_luasocket=yes])
AC_ARG_ENABLE([library-lua53], [ --disable-library-lua53 Turn off library lua53 (lua 5.3 backports, required by love.data)], [], [enable_library_lua53=yes])
# Select the libraries we need to build, based on the selected modules
AS_VAR_IF([enable_module_filesystem], [yes], [enable_library_physfs=yes], [enable_library_physfs=no])
AS_VAR_IF([enable_module_physics], [yes], [enable_library_Box2D=yes], [enable_library_Box2D=no])
AS_VAR_IF([enable_module_image], [yes], [enable_library_ddsparse=yes], [enable_library_ddsparse=no])
AS_VAR_IF([enable_module_graphics], [yes], [enable_library_glad=yes], [enable_library_glad=no])
AS_VAR_IF([enable_module_graphics], [yes], [enable_library_glslang=yes], [enable_library_glslang=no])
AS_VAR_IF([enable_module_image], [yes], [enable_library_lodepng=yes], [enable_library_lodepng=no])
AS_VAR_IF([enable_module_data], [yes], [enable_library_lua53=yes], [])
AS_VAR_IF([enable_module_math], [yes], [enable_library_lz4=yes], [enable_library_lz4=no])
AS_VAR_IF([enable_module_math], [yes], [enable_library_noise1234=yes], [enable_library_noise1234=no])
AS_VAR_IF([enable_module_image], [yes], [enable_library_stb=yes], [enable_library_stb=no])
AS_VAR_IF([enable_module_image], [yes], [enable_library_tinyexr=yes], [enable_library_tinyexr=no])
AS_VAR_IF([enable_module_sound], [yes], [enable_library_Wuff=yes], [enable_library_Wuff=no])
AS_VAR_IF([enable_module_graphics], [yes], [enable_library_xxHash=yes], [enable_library_xxHash=no])
# Utf8 is required by both graphics and font, so enable if either is enabled
enable_library_utf8=no
AS_VAR_IF([enable_module_graphics], [yes], [enable_library_utf8=yes], [])
AS_VAR_IF([enable_module_font], [yes], [enable_library_utf8=yes], [])
# libenet check for socklen_t
AC_CHECK_TYPE([socklen_t], [AC_DEFINE([HAS_SOCKLEN_T], [1], [Define if socklen_t exists.] )], ,
#include <sys/types.h>
#include <sys/socket.h>
)
ACLOVE_SOCKLEN_T
# Generated sources for enabling/disabling modules
m4_include([configure-modules-post.ac])
# Optionally build the executable (default on)
AC_ARG_ENABLE([exe],
@@ -128,8 +127,6 @@ AS_VAR_IF([LUA_EXECUTABLE], [:],
# Set our includes as automake variable
AC_SUBST([LOVE_INCLUDES], ["$includes"])
m4_include([configure-modules.ac])
AC_CONFIG_FILES([
Makefile
src/Makefile
@@ -1,5 +0,0 @@
love (0.9.0~ppatest5) precise; urgency=medium
* Upstream testing release
-- Bart van Strien <bart.bes@gmail.com> Sat, 2 Nov 2013 16:23:40 +0100
@@ -1,5 +1,5 @@
love@LOVE_SUFFIX@ (0.10.0~pre2657ppa2) trusty; urgency=medium
love@LOVE_SUFFIX@ (0.11.0~pre3420ppa3) trusty; urgency=medium
* Upstream testing release
-- Bart van Strien <bart.bes@gmail.com> Sat, 2 Nov 2013 16:23:40 +0100
-- Bart van Strien <bart.bes@gmail.com> Sat, 31 Mar 2018 13:50:30 +0200
@@ -1,58 +0,0 @@
Source: love
Section: games
Priority: extra
Maintainer: Bart van Strien <bart.bes@gmail.com>
Build-Depends: debhelper (>= 9),
autotools-dev,
libdevil-dev,
libfreetype6-dev,
libluajit-5.1-dev,
libphysfs-dev,
libsdl2-dev (>= 2.0.1),
libopenal-dev,
libogg-dev,
libvorbis-dev,
libflac-dev,
libflac++-dev,
libmodplug-dev,
libmpg123-dev,
libmng-dev
Standards-Version: 3.9.3
Homepage: http://love2d.org
Package: liblove
Architecture: any
Multi-Arch: same
Pre-Depends: ${misc:Pre-Depends}
Depends: ${misc:Depends},
${shlibs:Depends},
libdevil1c2,
libmng1,
libfreetype6,
libgl1-mesa-glx,
libluajit-5.1-2,
libphysfs-1.0-0,
libsdl2 (>= 2.0.1),
libopenal1,
libogg0,
libvorbis0a,
libvorbisfile3,
libmodplug1,
libmpg123-0
Description: LOVE is a free 2D game engine which enables easy game creation in Lua.
Package: love
Architecture: any
Multi-Arch: same
Depends: ${misc:Depends},
liblove (= ${binary:Version})
Description: LOVE is a free 2D game engine which enables easy game creation in Lua.
Package: love-dbg
Priority: extra
Section: debug
Architecture: any
Multi-Arch: same
Depends: ${misc:Depends},
love (= ${binary:Version}),
Description: LOVE is a free 2D game engine which enables easy game creation in Lua.
@@ -4,7 +4,7 @@ Upstream-Contact: Bart van Strien <bart.bes@gmail.com>
Source: http://www.love2d.org/
Files: *
Copyright: 2006-2015 LOVE Development Team
Copyright: 2006-2018 LOVE Development Team
License: zlib
This software is provided 'as-is', without any express or implied
warranty. In no event will the authors be held liable for any damages
@@ -1 +0,0 @@
usr/lib/*/liblove-unstable.so.*
@@ -1 +1 @@
usr/lib/*/liblove-unstable.so.*
usr/lib/*/liblove-unstable-*.so
@@ -1 +0,0 @@
usr/lib/*/liblove.so.*
@@ -1 +1 @@
usr/lib/*/liblove.so.*
usr/lib/*/liblove-*.so
@@ -1,16 +0,0 @@
#!/usr/bin/make -f
DEB_HOST_ARCH_CPU ?= $(shell dpkg-architecture -qDEB_HOST_ARCH_CPU)
DEB_HOST_MULTIARCH ?= $(shell dpkg-architecture -qDEB_HOST_MULTIARCH)
override_dh_auto_configure:
dh_auto_configure -- CPPFLAGS=-I/usr/include/luajit-2.0 --with-lua=luajit-5.1
override_dh_link:
dh_link -plove-dev usr/lib/$(DEB_HOST_MULTIARCH)/liblove.so.0.0.0 usr/lib/$(DEB_HOST_MULTIARCH)/liblove.so
override_dh_strip:
dh_strip --dbg-package=love-dbg
%:
dh $@ --parallel
+74
View File
@@ -0,0 +1,74 @@
AC_DEFUN([ACLOVE_DEP_FREETYPE2], [
PKG_CHECK_MODULES([freetype2], [freetype2], [], [LOVE_MSG_ERROR([FreeType2])])])
AC_DEFUN([ACLOVE_DEP_OPENAL], [
PKG_CHECK_MODULES([openal], [openal], [], [LOVE_MSG_ERROR([OpenAL])])])
AC_DEFUN([ACLOVE_DEP_LIBMODPLUG], [
PKG_CHECK_MODULES([libmodplug], [libmodplug], [], [LOVE_MSG_ERROR([libmodplug])])])
AC_DEFUN([ACLOVE_DEP_VORBISFILE], [
PKG_CHECK_MODULES([vorbisfile], [vorbisfile], [], [LOVE_MSG_ERROR([libvorbis and libvorbisfile])])])
AC_DEFUN([ACLOVE_DEP_ZLIB], [
PKG_CHECK_MODULES([zlib], [zlib], [], [LOVE_MSG_ERROR([zlib])])])
AC_DEFUN([ACLOVE_DEP_THEORA], [
PKG_CHECK_MODULES([theora], [theoradec], [], [LOVE_MSG_ERROR([libtheora])])])
AC_DEFUN([ACLOVE_DEP_LIBM], [
AC_SEARCH_LIBS([sqrt], [m], [], [LOVE_MSG_ERROR([the C math library])])])
AC_DEFUN([ACLOVE_DEP_SDL2], [
AM_PATH_SDL2([], [], [LOVE_MSG_ERROR([SDL 2])])])
# does not use pkg-config because of the FILE_OFFSET_BITS.. bit
AC_DEFUN([ACLOVE_DEP_MPG123], [
AC_SEARCH_LIBS([mpg123_open_feed], [mpg123], [],
[LOVE_MSG_ERROR([libmpg123])])
AC_SEARCH_LIBS([mpg123_seek_64], [mpg123],
AC_SUBST([FILE_OFFSET],[-D_FILE_OFFSET_BITS=64]),
AC_SUBST([FILE_OFFSET],[]))])
AC_DEFUN([ACLOVE_DEP_GME], [
AC_SEARCH_LIBS([gme_open_data], [gme], [], [LOVE_MSG_ERROR([gme])])
AC_DEFINE([LOVE_SUPPORT_GME], [], [Enable gme])
AC_CHECK_HEADER([gme/gme.h], [includes="$includes -I/usr/include/gme"], [])])
# For enet
AC_DEFUN([ACLOVE_SOCKLEN_T], [
AC_CHECK_TYPE([socklen_t], [AC_DEFINE([HAS_SOCKLEN_T], [1], [Define if socklen_t exists.] )], ,
#include <sys/types.h>
#include <sys/socket.h>
)])
# The lua detection is quite annoying because of distro differences and our version selection code
AC_DEFUN([ACLOVE_DEP_LUA_PKGCONFIG], [
PKG_CHECK_MODULES([lua], [${with_lua}${with_luaversion}], [aclove_lua_found=yes],
[PKG_CHECK_MODULES([lua], [${with_lua}${with_clean_luaversion}], [aclove_lua_found=yes],
[PKG_CHECK_MODULES([lua], [${with_lua}], [aclove_lua_found=yes], [])])])
AS_VAR_IF([aclove_lua_found], [yes],
[
aclove_luaheaders_found=yes
AC_MSG_CHECKING([for library containing lua_call])
AC_MSG_RESULT([${lua_LIBS}])
], [])])
AC_DEFUN([ACLOVE_DEP_LUA_FALLBACK], [
AC_MSG_WARN([Could not find pkg-config definition for ${with_lua}${with_luaversion} or ${with_lua}${with_clean_luaversion}${with_lua}, falling back to manual detection])
AC_SEARCH_LIBS([lua_call], ["${with_lua}${with_luaversion}" "${with_lua}"], [aclove_lua_found=yes],
[LOVE_MSG_ERROR([$with_lua])])
AC_CHECK_HEADER(["${with_lua}${with_luaversion}/lua.h"], [aclove_luaheaders_found=yes includes="$includes -I/usr/include/${with_lua}${with_luaversion}"], [])
AC_CHECK_HEADER(["${with_lua}/lua.h"], [aclove_luaheaders_found=yes includes="$includes -I/usr/include/${with_lua}"], [])])
# First, try pkg-config, then fall back to manual detection if not available.
AC_DEFUN([ACLOVE_DEP_LUA], [ dnl Requires with-lua and with-luaversion
aclove_lua_found=no
aclove_luaheaders_found=no
ACLOVE_DEP_LUA_PKGCONFIG
AS_VAR_IF([aclove_lua_found], [no], [ACLOVE_DEP_LUA_FALLBACK], [])
AS_VAR_IF([aclove_luaheaders_found], [no],
[AC_MSG_WARN([Could not locate lua headers for ${with_lua}${with_luaversion} or ${with_lua}, you probably need to specify them with CPPFLAGS])], [])])
+3 -2
View File
@@ -1,5 +1,6 @@
\./libraries/luasocket/libluasocket/wsocket\.*
\./modules/sound/lullaby/FLACDecoder\.*
\./libraries/luasocket/libluasocket/wsocket.*
\./modules/sound/lullaby/FLACDecoder\..*
\./love\.cpp
\./modules/sound/lullaby/Mpg123Decoder\.cpp
\./modules/sound/lullaby/Mpg123Decoder\.h
\./libraries/glslang/glslang/OSDependent/Windows
@@ -1,38 +0,0 @@
#!/bin/bash
echo Generating src/Makefile.am ...
inc_current='$(srcdir)'
inc_modules="$inc_current/modules"
inc_libraries="$inc_current/libraries"
cat > src/Makefile.am << EOF
AM_CPPFLAGS = -I$inc_current -I$inc_modules -I$inc_libraries -I$inc_libraries/enet/libenet/include \$(LOVE_INCLUDES) \$(FILE_OFFSET)
AM_CXXFLAGS = \$(SDL_CFLAGS)
AUTOMAKE_OPTIONS = subdir-objects
SUBDIRS =
if LOVE_BUILD_EXE
# LÖVE executable
bin_PROGRAMS = love
#love_LDFLAGS =
love_LDADD = liblove.la
love_SOURCES = love.cpp
endif
# Compile scripts
#scripts/%.lua.h: scripts/%.lua
# cd scripts; \
# lua auto.lua \$*
#TODO: Figure out how to only do this on gnu make, and detect which lua
# executable to run
# libLÖVE
lib_LTLIBRARIES = liblove.la
liblove_la_LDFLAGS = -module -export-dynamic \$(LDFLAGS) \$(SDL_LIBS)
EOF
platform/unix/genmodules >> src/Makefile.am
printf "\n" >> src/Makefile.am
cd ..
echo "src/Makefile.am is updated! ^.^"
+60 -64
View File
@@ -3,20 +3,15 @@
love_suffix="$1"
love_amsuffix="$(echo "$love_suffix" | sed 's/\-/_/g' | sed 's/\./_/g')"
flags=""
flags=()
upper()
{
echo "$@" | tr '[:lower:]' '[:upper:]'
}
implfind()
{
find "$1" -maxdepth 1 -type d -exec basename '{}' \; | grep -v "^\." | tail -n +2
}
sourcefind()
{
find "$1" $2 -type f \( -iname "*.c" -o -iname "*.cpp" -o -iname "*.h" -o -iname "*.hpp" -o -iname "*.lch" \) | awk "{print \"./$prefix\"\$0\" \\\\\"}" | grep -v -f"$LOVEROOT/platform/unix/exclude"
find "$1" $2 -type f \( -iname "*.c" -o -iname "*.cpp" -o -iname "*.h" -o -iname "*.hpp" -o -iname "*.lch" -o -iname "*.lua" \) | awk "{print \"./$prefix\"\$0\" \\\\\"}" | grep -v -f"$LOVEROOT/platform/unix/exclude" | sort
}
handlemodule()
@@ -26,82 +21,90 @@ handlemodule()
printf "$DEFINENAME"
}
handleimpl()
{
module="$1"
implementation="$2"
name="$3"
printf "if $name\n"
FILES="$(sourcefind "$module/$implementation" | sed "s/^/ /")"
if [[ "x$FILES" != "x" ]]; then
printf "liblove${love_amsuffix}_la_SOURCES += \\\\\n"
printf "${FILES:0:${#FILES}-2}\n"
fi
printf "endif\n\n"
}
genmodules()
{
LOVEROOT="$(pwd)"
cd src
cd ./src
printf "liblove${love_amsuffix}_la_SOURCES = \\\\\n"
sourcefind "common" | sed "s/^/ /"
FILES="$(sourcefind "scripts" | sed "s/^/ /")"
printf "${FILES:0:${#FILES}-2}\n\n"
cd modules
local -a modulelist=()
local -a liblist=()
cd ./modules
prefix="modules/"
for module in *; do
NAME=$(handlemodule "$module")
flags="$flags module-$module"
flags+=("module-$module")
printf "if $NAME\n"
for implementation in $(implfind "$module"); do
flags="$flags implementation-$module-$implementation"
handleimpl "$module" "$implementation" "LOVE_IMPLEMENTATION_$(upper "$module")_$(upper "$implementation")"
done
FILES="$(sourcefind "$module" "-maxdepth 1" | sed "s/^/ /")"
FILES="$(sourcefind "$module" | sed "s/^/ /")"
if [[ "x$FILES" != "x" ]]; then
printf "liblove${love_amsuffix}_la_SOURCES += \\\\\n"
printf "${FILES:0:${#FILES}-2}\n"
printf "liblove_module_$module = \\\\\n"
printf "${FILES:0:${#FILES}-2}\n\n"
modulelist+=("$module")
fi
printf "endif\n\n"
if [[ "$module" = "sound" ]]; then
printf "if !LOVE_NOMPG123\n"
printf "liblove_module_$module += \\\\\n"
printf "\t./modules/sound/lullaby/Mpg123Decoder.cpp \\\\\n"
printf "\t./modules/sound/lullaby/Mpg123Decoder.h\n"
printf "endif\n\n"
fi
done
cd ../libraries
prefix="libraries/"
for library in *; do
NAME="LOVE_LIBRARY_$(upper "$library")"
flags="$flags library-$library"
flags+=("library-$library")
FILES="$(sourcefind "$library" | sed "s/^/ /")"
if [[ ${#FILES} -gt 2 ]]; then
printf "if $NAME\n"
printf "liblove${love_amsuffix}_la_SOURCES += \\\\\n"
printf "${FILES:0:${#FILES}-2}\nendif\n\n"
printf "liblove_library_$library = \\\\\n"
printf "${FILES:0:${#FILES}-2}\n\n"
liblist+=("$library")
fi
done
for module in "${modulelist[@]}"; do
NAME=$(handlemodule "$module")
printf "if $NAME\n"
printf "liblove${love_amsuffix}_la_SOURCES += \$(liblove_module_$module)\n"
printf "endif\n\n"
done
for library in "${liblist[@]}"; do
NAME="LOVE_LIBRARY_$(upper "$library")"
printf "if $NAME\n"
printf "liblove${love_amsuffix}_la_SOURCES += \$(liblove_library_$library)\n"
printf "endif\n\n"
done
cd ../..
}
genflags()
{
for flag in $flags; do
prettyflag="$(echo "$flag" | sed 's/-/ love./' | sed 's/-/./g')"
varflag="enable_$(echo "$flag" | sed 's/^[^-]*-//' | sed 's/[^a-zA-Z0-9]/_/')"
defineflag="LOVE_ENABLE_$(upper $(echo $flag | sed 's/^[^-]*-//' | sed 's/-/_/g'))"
printf > configure-modules-pre.ac
printf > configure-modules-post.ac
for flag in "${flags[@]}"; do
prettyflag="$(echo "$flag" | sed -e 's/-/ love./' -e 's/-/./g')"
varflag="enable_$(echo "$flag" | sed -e 's/[^a-zA-Z0-9]/_/')"
defineflag="LOVE_ENABLE_$(upper $(echo $flag | sed -e 's/^[^-]*-//' -e 's/-/_/g'))"
amflag="$(upper $(echo love-$flag | sed 's/-/_/g'))"
printf "AC_ARG_ENABLE([$flag], [ --disable-$flag Turn off $prettyflag], [], [$varflag=true])\n"
printf "AH_TEMPLATE([$defineflag], [])\n"
printf "if test x\"\$$varflag\" = xtrue; then\n"
printf " AC_DEFINE([$defineflag], [])\n"
printf "fi\n"
printf "AM_CONDITIONAL([$amflag], [test x\$$varflag = xtrue])\n\n"
# Don't generate an --enable rule for libraries
if [[ "$(echo $flag | sed -e '/^library-/d')" != "" ]]; then
printf "AC_ARG_ENABLE([$flag], [ --disable-$flag Turn off $prettyflag], [], [$varflag=yes])\n" >> configure-modules-pre.ac
fi
printf "AH_TEMPLATE([$defineflag], [])\n" >> configure-modules-post.ac
printf "if test x\"\$$varflag\" = xyes; then\n" >> configure-modules-post.ac
printf " AC_DEFINE([$defineflag], [])\n" >> configure-modules-post.ac
printf "fi\n" >> configure-modules-post.ac
printf "AM_CONDITIONAL([$amflag], [test x\$$varflag = xyes])\n\n" >> configure-modules-post.ac
done
}
@@ -137,33 +140,26 @@ endif
# Compile scripts
.lua.lua.h:
cd scripts; \
cd ./scripts; \
\$(LUA_EXECUTABLE) auto.lua \$<
# libLÖVE
lib_LTLIBRARIES = liblove${love_suffix}.la
liblove${love_amsuffix}_la_LDFLAGS = -module -export-dynamic \$(LDFLAGS)
liblove${love_amsuffix}_la_LDFLAGS = -module -export-dynamic \$(LDFLAGS) -release \$(PACKAGE_VERSION)
liblove${love_amsuffix}_la_LIBADD = \
\$(SDL_LIBS) \$(freetype2_LIBS) \$(lua_LIBS)\
\$(openal_LIBS) \$(zlib_LIBS) \$(libmodplug_LIBS)\
\$(vorbisfile_LIBS) \$(theora_LIBS)
EOF
genmodules >> src/Makefile.am
cat >> src/Makefile.am << EOF
if !LOVE_NOMPG123
liblove${love_amsuffix}_la_SOURCES += \\
./modules/sound/lullaby/Mpg123Decoder.cpp \\
./modules/sound/lullaby/Mpg123Decoder.h
endif
EOF
echo "src/Makefile.am is updated! ^.^"
echo "Generating configure-modules.ac"
genflags > configure-modules.ac
cat >> configure-modules.ac << EOF
genflags
cat >> configure-modules-post.ac << EOF
AC_SUBST([LOVE_SUFFIX], [${love_suffix}])
EOF
echo "configure-modules.ac is updated! ^.^"
-36
View File
@@ -1,36 +0,0 @@
.\" (c) 2008-2011 Miriam Ruiz <little_miry@yahoo.es>
.\" (c) 2013 Bart van Strien <bart.bes@gmail.com>
.\"
.\" This software is provided 'as-is', without any express or implied warranty. In no event will the authors be held liable for any damagesarising 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.
.\"
.\" Modifications:
.\" - Update version to 0.9 and remove reference to doc dir
.\" - Add fused and version flags
.TH "LÖVE" "1" "0.9" "" ""
.SH "NAME"
love \- 2D game development framework
.SH "SYNOPSIS"
.B love
[--fused] <\fIgame.love\fR>
.PP
.B love
--version
.PP
.SH "DESCRIPTION"
LÖVE was created to be a user\-friendly engine in which simple (or complicated) games could be made without having extensive knowledge of system or graphics functions and without having to dedicate time towards developing the same engine features time and time again.
.P
Developed with cross\-platform implementation in mind, it utilizes the latest open source libraries to deliver a similar game experience, independent of operating system. By relying on the Lua scripting language for game\-specific programming, it allows even the novice game creator to quickly and efficiently develop an idea into a fully working game.
.SH "SEE ALSO"
You can find more information at \fIhttp://love2d.org/\fR
+3 -3
View File
@@ -1,5 +1,5 @@
.\" (c) 2008-2011 Miriam Ruiz <little_miry@yahoo.es>
.\" (c) 2013 Bart van Strien <bart.bes@gmail.com>
.\" (c) 2013-2018 Bart van Strien <bart.bes@gmail.com>
.\"
.\" This software is provided 'as-is', without any express or implied warranty. In no event will the authors be held liable for any damagesarising from the use of this software.
.\"
@@ -10,9 +10,9 @@
.\" 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.
.Dd December 23, 2015
.Dd March 31, 2018
.Dt LOVE 6
.Os LÖVE 0.10.0
.Os LÖVE 11.1
.Sh NAME
.Nm love
.Nd 2D game development framework
-5
View File
@@ -1,5 +0,0 @@
#!/bin/sh
update-mime-database /usr/share/mime
gtk-update-icon-cache --force /usr/share/icons/gnome
xdg-mime default love.desktop application/x-love-game
-4
View File
@@ -1,4 +0,0 @@
#!/bin/sh
update-mime-database /usr/share/mime
gtk-update-icon-cache --force /usr/share/icons/gnome
@@ -1,5 +1,15 @@
{
"images" : [
{
"idiom" : "iphone",
"size" : "20x20",
"scale" : "2x"
},
{
"idiom" : "iphone",
"size" : "20x20",
"scale" : "3x"
},
{
"size" : "29x29",
"idiom" : "iphone",
@@ -54,6 +64,16 @@
"filename" : "icon-60pt@3x.png",
"scale" : "3x"
},
{
"idiom" : "ipad",
"size" : "20x20",
"scale" : "1x"
},
{
"idiom" : "ipad",
"size" : "20x20",
"scale" : "2x"
},
{
"size" : "29x29",
"idiom" : "ipad",
@@ -119,10 +139,16 @@
"idiom" : "ipad",
"filename" : "icon-83.5pt@2x.png",
"scale" : "2x"
},
{
"idiom" : "ios-marketing",
"size" : "1024x1024",
"filename" : "icon-1024pt@1x.png",
"scale" : "1x"
}
],
"info" : {
"version" : 1,
"author" : "xcode"
}
}
}
Binary file not shown.

After

Width:  |  Height:  |  Size: 112 KiB

@@ -40,7 +40,7 @@
<key>CFBundlePackageType</key>
<string>APPL</string>
<key>CFBundleShortVersionString</key>
<string>0.10.2</string>
<string>11.1</string>
<key>CFBundleSignature</key>
<string>????</string>
<key>CFBundleVersion</key>
@@ -11,12 +11,12 @@ git checkout v2.1
ISDKP=$(xcrun --sdk iphoneos --show-sdk-path)
ICC=$(xcrun --sdk iphoneos --find clang)
ISDKF="-arch armv7 -isysroot $ISDKP -mios-version-min=6.0"
ISDKF="-arch armv7 -isysroot $ISDKP -mios-version-min=8.0"
make clean
make -j8 HOST_CC="clang -m32 -arch i386" CROSS="$(dirname $ICC)/" TARGET_FLAGS="$ISDKF" TARGET_SYS=iOS
cp src/libluajit.a ../libraries/luajit/libluajit_arm7.a
ISDKF="-arch arm64 -isysroot $ISDKP -mios-version-min=6.0"
ISDKF="-arch arm64 -isysroot $ISDKP -mios-version-min=8.0"
make clean
make -j8 CROSS="$(dirname $ICC)/" TARGET_FLAGS="$ISDKF" TARGET_SYS=iOS
cp src/libluajit.a ../libraries/luajit/libluajit_arm64.a
@@ -27,12 +27,12 @@ cp src/libluajit.a ../libraries/luajit/libluajit_arm64.a
ISDKP=$(xcrun --sdk iphonesimulator --show-sdk-path)
ICC=$(xcrun --sdk iphonesimulator --find clang)
ISDKF="-arch i386 -isysroot $ISDKP -mios-simulator-version-min=6.0"
ISDKF="-arch i386 -isysroot $ISDKP -mios-simulator-version-min=8.0"
make clean
make -j8 HOST_CC="clang -m32 -arch i386" CROSS="$(dirname $ICC)/" TARGET_FLAGS="$ISDKF" TARGET_SYS=iOS
cp src/libluajit.a ../libraries/luajit/libluajit_x86.a
ISDKF="-arch x86_64 -isysroot $ISDKP -mios-simulator-version-min=6.0"
ISDKF="-arch x86_64 -isysroot $ISDKP -mios-simulator-version-min=8.0"
make clean
make -j8 CROSS="$(dirname $ICC)/" TARGET_FLAGS="$ISDKF" TARGET_SYS=iOS
cp src/libluajit.a ../libraries/luajit/libluajit_x86_64.a
File diff suppressed because it is too large Load Diff
@@ -8,20 +8,20 @@
/* Begin PBXBuildFile section */
8D11072F0486CEB800E47090 /* Cocoa.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 1058C7A1FEA54F0111CA2CBB /* Cocoa.framework */; };
A9255DD11043183600BA1496 /* FreeType.framework in Copy Frameworks */ = {isa = PBXBuildFile; fileRef = A93E6E4810420B4A007D418B /* FreeType.framework */; settings = {ATTRIBUTES = (CodeSignOnCopy, ); }; };
A9255DD31043183600BA1496 /* Lua.framework in Copy Frameworks */ = {isa = PBXBuildFile; fileRef = A93E6E5310420B57007D418B /* Lua.framework */; settings = {ATTRIBUTES = (CodeSignOnCopy, ); }; };
A9255E031043195A00BA1496 /* Vorbis.framework in Copy Frameworks */ = {isa = PBXBuildFile; fileRef = A9255E021043195A00BA1496 /* Vorbis.framework */; settings = {ATTRIBUTES = (CodeSignOnCopy, ); }; };
A9255F58104324E100BA1496 /* Ogg.framework in Copy Frameworks */ = {isa = PBXBuildFile; fileRef = A9255F51104324D700BA1496 /* Ogg.framework */; settings = {ATTRIBUTES = (CodeSignOnCopy, ); }; };
A9255E031043195A00BA1496 /* vorbis.framework in Copy Frameworks */ = {isa = PBXBuildFile; fileRef = A9255E021043195A00BA1496 /* vorbis.framework */; settings = {ATTRIBUTES = (CodeSignOnCopy, ); }; };
A9255F58104324E100BA1496 /* ogg.framework in Copy Frameworks */ = {isa = PBXBuildFile; fileRef = A9255F51104324D700BA1496 /* ogg.framework */; settings = {ATTRIBUTES = (CodeSignOnCopy, ); }; };
A93E6E5510420B57007D418B /* Lua.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = A93E6E5310420B57007D418B /* Lua.framework */; };
A93E6EED10420BA8007D418B /* love.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A93E6A3410420AC0007D418B /* love.cpp */; };
A9D307F2106635D3004FEDF8 /* physfs.framework in Copy Frameworks */ = {isa = PBXBuildFile; fileRef = A9D307E9106635C3004FEDF8 /* physfs.framework */; settings = {ATTRIBUTES = (CodeSignOnCopy, ); }; };
A9F169AC109E825000FC83D1 /* mpg123.framework in Copy Frameworks */ = {isa = PBXBuildFile; fileRef = A9F169A6109E824900FC83D1 /* mpg123.framework */; settings = {ATTRIBUTES = (CodeSignOnCopy, ); }; };
A9F169AD109E825000FC83D1 /* libmodplug.framework in Copy Frameworks */ = {isa = PBXBuildFile; fileRef = A9F16926109E7BAD00FC83D1 /* libmodplug.framework */; settings = {ATTRIBUTES = (CodeSignOnCopy, ); }; };
CE73F8001EEB64150052DAB3 /* AVFoundation.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = CE73F7FF1EEB64150052DAB3 /* AVFoundation.framework */; };
FA0797991BF480A200034B7C /* GameController.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = FA0797981BF480A200034B7C /* GameController.framework */; settings = {ATTRIBUTES = (Weak, ); }; };
FA08F69616C766E000F007B5 /* love.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = FA08F69116C765A200F007B5 /* love.framework */; };
FA08F69716C766E700F007B5 /* love.framework in Copy Frameworks */ = {isa = PBXBuildFile; fileRef = FA08F69116C765A200F007B5 /* love.framework */; settings = {ATTRIBUTES = (CodeSignOnCopy, ); }; };
FA0B7F301A95AC7D000E1D17 /* love.cpp in Sources */ = {isa = PBXBuildFile; fileRef = A93E6A3410420AC0007D418B /* love.cpp */; };
FA27B3CB1B498696008A9DCE /* Theora.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = FA27B3CA1B498696008A9DCE /* Theora.framework */; };
FA15DFB41F9B8D9E0042AB22 /* libbz2.tbd in Frameworks */ = {isa = PBXBuildFile; fileRef = FA15DFB31F9B8D9E0042AB22 /* libbz2.tbd */; };
FA27B3CB1B498696008A9DCE /* theora.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = FA27B3CA1B498696008A9DCE /* theora.framework */; };
FA5933751C6D625B000EC779 /* Images.xcassets in Resources */ = {isa = PBXBuildFile; fileRef = FA5D249A1A96CF4300C6FC8F /* Images.xcassets */; };
FA5D24821A96CA1800C6FC8F /* OpenAL.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = FA5D24811A96CA1800C6FC8F /* OpenAL.framework */; };
FA5D24841A96CA2700C6FC8F /* OpenGLES.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = FA5D24831A96CA2700C6FC8F /* OpenGLES.framework */; };
@@ -39,7 +39,9 @@
FA9B4A0B16E157B500074F42 /* SDL2.framework in Copy Frameworks */ = {isa = PBXBuildFile; fileRef = FA9B4A0916E1579F00074F42 /* SDL2.framework */; settings = {ATTRIBUTES = (CodeSignOnCopy, ); }; };
FAAFF04716CB120000CCDE45 /* OpenAL-Soft.framework in Copy Frameworks */ = {isa = PBXBuildFile; fileRef = FAAFF04616CB120000CCDE45 /* OpenAL-Soft.framework */; settings = {ATTRIBUTES = (CodeSignOnCopy, ); }; };
FAC1A449196F5DC600125284 /* license.txt in Resources */ = {isa = PBXBuildFile; fileRef = FAC1A448196F5DC600125284 /* license.txt */; };
FAD4B1731C1F50A3004CF150 /* Theora.framework in Copy Frameworks */ = {isa = PBXBuildFile; fileRef = FA27B3CA1B498696008A9DCE /* Theora.framework */; settings = {ATTRIBUTES = (CodeSignOnCopy, ); }; };
FAD43ED01FF3136500831BB8 /* freetype.framework in Copy Frameworks */ = {isa = PBXBuildFile; fileRef = FAD43ECF1FF3133700831BB8 /* freetype.framework */; settings = {ATTRIBUTES = (CodeSignOnCopy, RemoveHeadersOnCopy, ); }; };
FAD4B1731C1F50A3004CF150 /* theora.framework in Copy Frameworks */ = {isa = PBXBuildFile; fileRef = FA27B3CA1B498696008A9DCE /* theora.framework */; settings = {ATTRIBUTES = (CodeSignOnCopy, ); }; };
FAE64A9D2072738600BC7981 /* Metal.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = FAE64A9C2072738600BC7981 /* Metal.framework */; settings = {ATTRIBUTES = (Weak, ); }; };
/* End PBXBuildFile section */
/* Begin PBXContainerItemProxy section */
@@ -82,14 +84,13 @@
files = (
FA08F69716C766E700F007B5 /* love.framework in Copy Frameworks */,
FA9B4A0B16E157B500074F42 /* SDL2.framework in Copy Frameworks */,
FAD4B1731C1F50A3004CF150 /* Theora.framework in Copy Frameworks */,
FAD4B1731C1F50A3004CF150 /* theora.framework in Copy Frameworks */,
FAAFF04716CB120000CCDE45 /* OpenAL-Soft.framework in Copy Frameworks */,
FAD43ED01FF3136500831BB8 /* freetype.framework in Copy Frameworks */,
A9F169AC109E825000FC83D1 /* mpg123.framework in Copy Frameworks */,
A9F169AD109E825000FC83D1 /* libmodplug.framework in Copy Frameworks */,
A9D307F2106635D3004FEDF8 /* physfs.framework in Copy Frameworks */,
A9255F58104324E100BA1496 /* Ogg.framework in Copy Frameworks */,
A9255E031043195A00BA1496 /* Vorbis.framework in Copy Frameworks */,
A9255DD11043183600BA1496 /* FreeType.framework in Copy Frameworks */,
A9255F58104324E100BA1496 /* ogg.framework in Copy Frameworks */,
A9255E031043195A00BA1496 /* vorbis.framework in Copy Frameworks */,
A9255DD31043183600BA1496 /* Lua.framework in Copy Frameworks */,
);
name = "Copy Frameworks";
@@ -100,20 +101,20 @@
/* Begin PBXFileReference section */
1058C7A1FEA54F0111CA2CBB /* Cocoa.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = Cocoa.framework; path = /System/Library/Frameworks/Cocoa.framework; sourceTree = "<absolute>"; };
8D1107320486CEB800E47090 /* love.app */ = {isa = PBXFileReference; explicitFileType = wrapper.application; includeInIndex = 0; path = love.app; sourceTree = BUILT_PRODUCTS_DIR; };
A9255E021043195A00BA1496 /* Vorbis.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = Vorbis.framework; path = /Library/Frameworks/Vorbis.framework; sourceTree = "<absolute>"; };
A9255F51104324D700BA1496 /* Ogg.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = Ogg.framework; path = /Library/Frameworks/Ogg.framework; sourceTree = "<absolute>"; };
A9255E021043195A00BA1496 /* vorbis.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = vorbis.framework; path = /Library/Frameworks/vorbis.framework; sourceTree = "<absolute>"; };
A9255F51104324D700BA1496 /* ogg.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = ogg.framework; path = /Library/Frameworks/ogg.framework; sourceTree = "<absolute>"; };
A93E6A3410420AC0007D418B /* love.cpp */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; name = love.cpp; path = ../../src/love.cpp; sourceTree = "<group>"; };
A93E6E4710420B4A007D418B /* OpenGL.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = OpenGL.framework; path = /System/Library/Frameworks/OpenGL.framework; sourceTree = "<absolute>"; };
A93E6E4810420B4A007D418B /* FreeType.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = FreeType.framework; path = /Library/Frameworks/FreeType.framework; sourceTree = "<absolute>"; };
A93E6E5310420B57007D418B /* Lua.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = Lua.framework; path = /Library/Frameworks/Lua.framework; sourceTree = "<absolute>"; };
A97E3842132A9EDE00198A2F /* love-macosx.plist */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.plist.xml; name = "love-macosx.plist"; path = "macosx/love-macosx.plist"; sourceTree = "<group>"; };
A9D307E9106635C3004FEDF8 /* physfs.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = physfs.framework; path = /Library/Frameworks/physfs.framework; sourceTree = "<absolute>"; };
A9F16926109E7BAD00FC83D1 /* libmodplug.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = libmodplug.framework; path = /Library/Frameworks/libmodplug.framework; sourceTree = "<absolute>"; };
A9F169A6109E824900FC83D1 /* mpg123.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = mpg123.framework; path = /Library/Frameworks/mpg123.framework; sourceTree = "<absolute>"; };
CE73F7FF1EEB64150052DAB3 /* AVFoundation.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = AVFoundation.framework; path = Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS10.3.sdk/System/Library/Frameworks/AVFoundation.framework; sourceTree = DEVELOPER_DIR; };
FA0797981BF480A200034B7C /* GameController.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = GameController.framework; path = Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS9.1.sdk/System/Library/Frameworks/GameController.framework; sourceTree = DEVELOPER_DIR; };
FA08F69116C765A200F007B5 /* love.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; path = love.framework; sourceTree = BUILT_PRODUCTS_DIR; };
FA0B7F061A95AAF3000E1D17 /* love.app */ = {isa = PBXFileReference; explicitFileType = wrapper.application; includeInIndex = 0; path = love.app; sourceTree = BUILT_PRODUCTS_DIR; };
FA27B3CA1B498696008A9DCE /* Theora.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = Theora.framework; path = /Library/Frameworks/Theora.framework; sourceTree = "<absolute>"; };
FA15DFB31F9B8D9E0042AB22 /* libbz2.tbd */ = {isa = PBXFileReference; lastKnownFileType = "sourcecode.text-based-dylib-definition"; name = libbz2.tbd; path = Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS11.0.sdk/usr/lib/libbz2.tbd; sourceTree = DEVELOPER_DIR; };
FA27B3CA1B498696008A9DCE /* theora.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = theora.framework; path = /Library/Frameworks/theora.framework; sourceTree = "<absolute>"; };
FA577A9316C7217800860150 /* liblove.xcodeproj */ = {isa = PBXFileReference; lastKnownFileType = "wrapper.pb-project"; path = liblove.xcodeproj; sourceTree = "<group>"; };
FA5D24811A96CA1800C6FC8F /* OpenAL.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = OpenAL.framework; path = Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS8.1.sdk/System/Library/Frameworks/OpenAL.framework; sourceTree = DEVELOPER_DIR; };
FA5D24831A96CA2700C6FC8F /* OpenGLES.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = OpenGLES.framework; path = Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS8.1.sdk/System/Library/Frameworks/OpenGLES.framework; sourceTree = DEVELOPER_DIR; };
@@ -130,6 +131,8 @@
FA9B4A0916E1579F00074F42 /* SDL2.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = SDL2.framework; path = /Library/Frameworks/SDL2.framework; sourceTree = "<absolute>"; };
FAAFF04616CB120000CCDE45 /* OpenAL-Soft.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = "OpenAL-Soft.framework"; path = "/Library/Frameworks/OpenAL-Soft.framework"; sourceTree = "<absolute>"; };
FAC1A448196F5DC600125284 /* license.txt */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text; name = license.txt; path = ../../license.txt; sourceTree = "<group>"; };
FAD43ECF1FF3133700831BB8 /* freetype.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = freetype.framework; path = /Library/Frameworks/freetype.framework; sourceTree = "<absolute>"; };
FAE64A9C2072738600BC7981 /* Metal.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = Metal.framework; path = Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS11.2.sdk/System/Library/Frameworks/Metal.framework; sourceTree = DEVELOPER_DIR; };
/* End PBXFileReference section */
/* Begin PBXFrameworksBuildPhase section */
@@ -140,7 +143,7 @@
FA08F69616C766E000F007B5 /* love.framework in Frameworks */,
8D11072F0486CEB800E47090 /* Cocoa.framework in Frameworks */,
A93E6E5510420B57007D418B /* Lua.framework in Frameworks */,
FA27B3CB1B498696008A9DCE /* Theora.framework in Frameworks */,
FA27B3CB1B498696008A9DCE /* theora.framework in Frameworks */,
FA9B4A0A16E1579F00074F42 /* SDL2.framework in Frameworks */,
);
runOnlyForDeploymentPostprocessing = 0;
@@ -149,6 +152,9 @@
isa = PBXFrameworksBuildPhase;
buildActionMask = 2147483647;
files = (
FAE64A9D2072738600BC7981 /* Metal.framework in Frameworks */,
FA15DFB41F9B8D9E0042AB22 /* libbz2.tbd in Frameworks */,
CE73F8001EEB64150052DAB3 /* AVFoundation.framework in Frameworks */,
FA5D24D11A96E73300C6FC8F /* liblove.a in Frameworks */,
FA5D24C21A96D78000C6FC8F /* Foundation.framework in Frameworks */,
FA5D24961A96CAC200C6FC8F /* CoreMotion.framework in Frameworks */,
@@ -169,6 +175,9 @@
1058C7A0FEA54F0111CA2CBB /* Frameworks */ = {
isa = PBXGroup;
children = (
FAE64A9C2072738600BC7981 /* Metal.framework */,
FA15DFB31F9B8D9E0042AB22 /* libbz2.tbd */,
CE73F7FF1EEB64150052DAB3 /* AVFoundation.framework */,
FA5D24801A96C97900C6FC8F /* ios */,
FA0B7EEC1A959249000E1D17 /* macosx */,
);
@@ -219,19 +228,18 @@
FA0B7EEC1A959249000E1D17 /* macosx */ = {
isa = PBXGroup;
children = (
FA27B3CA1B498696008A9DCE /* Theora.framework */,
1058C7A1FEA54F0111CA2CBB /* Cocoa.framework */,
A93E6E4810420B4A007D418B /* FreeType.framework */,
FAD43ECF1FF3133700831BB8 /* freetype.framework */,
A9F16926109E7BAD00FC83D1 /* libmodplug.framework */,
FA08F69116C765A200F007B5 /* love.framework */,
A93E6E5310420B57007D418B /* Lua.framework */,
A9F169A6109E824900FC83D1 /* mpg123.framework */,
A9255F51104324D700BA1496 /* Ogg.framework */,
A9255F51104324D700BA1496 /* ogg.framework */,
FAAFF04616CB120000CCDE45 /* OpenAL-Soft.framework */,
A93E6E4710420B4A007D418B /* OpenGL.framework */,
A9D307E9106635C3004FEDF8 /* physfs.framework */,
FA9B4A0916E1579F00074F42 /* SDL2.framework */,
A9255E021043195A00BA1496 /* Vorbis.framework */,
FA27B3CA1B498696008A9DCE /* theora.framework */,
A9255E021043195A00BA1496 /* vorbis.framework */,
);
name = macosx;
sourceTree = "<group>";
@@ -318,7 +326,7 @@
29B97313FDCFA39411CA2CEA /* Project object */ = {
isa = PBXProject;
attributes = {
LastUpgradeCheck = 0700;
LastUpgradeCheck = 0920;
TargetAttributes = {
FA0B7F051A95AAF3000E1D17 = {
CreatedOnToolsVersion = 6.1.1;
@@ -430,6 +438,7 @@
COMBINE_HIDPI_IMAGES = YES;
FRAMEWORK_SEARCH_PATHS = (
"$(inherited)",
"$(PROJECT_DIR)/macosx/Frameworks",
/Library/Frameworks,
"\"$(SRCROOT)/build/Release\"",
"\"$(SRCROOT)/build/Debug\"",
@@ -439,6 +448,8 @@
GCC_OPTIMIZATION_LEVEL = 0;
HEADER_SEARCH_PATHS = (
"$(inherited)",
"$(PROJECT_DIR)/macosx/Frameworks/Lua.framework/Headers",
"$(PROJECT_DIR)/macosx/Frameworks/SDL2.framework/Headers",
/Library/Frameworks/Lua.framework/Headers,
/Library/Frameworks/SDL2.framework/Headers,
);
@@ -458,6 +469,7 @@
DEBUG_INFORMATION_FORMAT = "dwarf-with-dsym";
FRAMEWORK_SEARCH_PATHS = (
"$(inherited)",
"$(PROJECT_DIR)/macosx/Frameworks",
/Library/Frameworks,
"\"$(SRCROOT)/build/Release\"",
"\"$(SRCROOT)/build/Debug\"",
@@ -465,6 +477,8 @@
);
HEADER_SEARCH_PATHS = (
"$(inherited)",
"$(PROJECT_DIR)/macosx/Frameworks/Lua.framework/Headers",
"$(PROJECT_DIR)/macosx/Frameworks/SDL2.framework/Headers",
/Library/Frameworks/Lua.framework/Headers,
/Library/Frameworks/SDL2.framework/Headers,
);
@@ -480,16 +494,35 @@
isa = XCBuildConfiguration;
buildSettings = {
ALWAYS_SEARCH_USER_PATHS = NO;
CLANG_ANALYZER_LOCALIZABILITY_NONLOCALIZED = YES;
CLANG_CXX_LANGUAGE_STANDARD = "c++0x";
CLANG_CXX_LIBRARY = "libc++";
CLANG_ENABLE_MODULES = YES;
CLANG_ENABLE_OBJC_ARC = YES;
CLANG_WARN_BLOCK_CAPTURE_AUTORELEASING = YES;
CLANG_WARN_BOOL_CONVERSION = YES;
CLANG_WARN_COMMA = YES;
CLANG_WARN_CONSTANT_CONVERSION = YES;
CLANG_WARN_EMPTY_BODY = YES;
CLANG_WARN_ENUM_CONVERSION = YES;
CLANG_WARN_INFINITE_RECURSION = YES;
CLANG_WARN_INT_CONVERSION = YES;
CLANG_WARN_NON_LITERAL_NULL_CONVERSION = YES;
CLANG_WARN_OBJC_LITERAL_CONVERSION = YES;
CLANG_WARN_RANGE_LOOP_ANALYSIS = YES;
CLANG_WARN_STRICT_PROTOTYPES = YES;
CLANG_WARN_SUSPICIOUS_MOVE = YES;
CLANG_WARN_UNREACHABLE_CODE = YES;
CLANG_WARN__DUPLICATE_METHOD_MATCH = YES;
ENABLE_STRICT_OBJC_MSGSEND = YES;
ENABLE_TESTABILITY = YES;
FRAMEWORK_SEARCH_PATHS = "";
GCC_INCREASE_PRECOMPILED_HEADER_SHARING = YES;
GCC_NO_COMMON_BLOCKS = YES;
GCC_OPTIMIZATION_LEVEL = 0;
GCC_PREPROCESSOR_DEFINITIONS = LOVE_APPLE_USE_FRAMEWORKS;
GCC_TREAT_IMPLICIT_FUNCTION_DECLARATIONS_AS_ERRORS = NO;
GCC_WARN_64_TO_32_BIT_CONVERSION = NO;
GCC_WARN_ABOUT_MISSING_NEWLINE = NO;
GCC_WARN_ABOUT_MISSING_PROTOTYPES = NO;
GCC_WARN_ABOUT_POINTER_SIGNEDNESS = YES;
@@ -504,6 +537,9 @@
GCC_WARN_SHADOW = NO;
GCC_WARN_SIGN_COMPARE = YES;
GCC_WARN_TYPECHECK_CALLS_TO_PRINTF = NO;
GCC_WARN_UNDECLARED_SELECTOR = YES;
GCC_WARN_UNINITIALIZED_AUTOS = YES;
GCC_WARN_UNUSED_FUNCTION = YES;
GCC_WARN_UNUSED_VARIABLE = YES;
HEADER_SEARCH_PATHS = (
"\"$(SRCROOT)/../../src\"",
@@ -511,7 +547,7 @@
"\"$(SRCROOT)/../../src/modules\"",
);
INFOPLIST_FILE = "love-Info.plist";
IPHONEOS_DEPLOYMENT_TARGET = 6.0;
IPHONEOS_DEPLOYMENT_TARGET = 8.0;
LD_RUNPATH_SEARCH_PATHS = "@loader_path/../Frameworks";
MACOSX_DEPLOYMENT_TARGET = 10.7;
ONLY_ACTIVE_ARCH = YES;
@@ -535,16 +571,35 @@
isa = XCBuildConfiguration;
buildSettings = {
ALWAYS_SEARCH_USER_PATHS = NO;
CLANG_ANALYZER_LOCALIZABILITY_NONLOCALIZED = YES;
CLANG_CXX_LANGUAGE_STANDARD = "c++0x";
CLANG_CXX_LIBRARY = "libc++";
CLANG_ENABLE_MODULES = YES;
CLANG_ENABLE_OBJC_ARC = YES;
CLANG_WARN_BLOCK_CAPTURE_AUTORELEASING = YES;
CLANG_WARN_BOOL_CONVERSION = YES;
CLANG_WARN_COMMA = YES;
CLANG_WARN_CONSTANT_CONVERSION = YES;
CLANG_WARN_EMPTY_BODY = YES;
CLANG_WARN_ENUM_CONVERSION = YES;
CLANG_WARN_INFINITE_RECURSION = YES;
CLANG_WARN_INT_CONVERSION = YES;
CLANG_WARN_NON_LITERAL_NULL_CONVERSION = YES;
CLANG_WARN_OBJC_LITERAL_CONVERSION = YES;
CLANG_WARN_RANGE_LOOP_ANALYSIS = YES;
CLANG_WARN_STRICT_PROTOTYPES = YES;
CLANG_WARN_SUSPICIOUS_MOVE = YES;
CLANG_WARN_UNREACHABLE_CODE = YES;
CLANG_WARN__DUPLICATE_METHOD_MATCH = YES;
DEPLOYMENT_POSTPROCESSING = NO;
ENABLE_STRICT_OBJC_MSGSEND = YES;
FRAMEWORK_SEARCH_PATHS = "";
GCC_INPUT_FILETYPE = automatic;
GCC_NO_COMMON_BLOCKS = YES;
GCC_OPTIMIZATION_LEVEL = 3;
GCC_PREPROCESSOR_DEFINITIONS = LOVE_APPLE_USE_FRAMEWORKS;
GCC_TREAT_IMPLICIT_FUNCTION_DECLARATIONS_AS_ERRORS = NO;
GCC_WARN_64_TO_32_BIT_CONVERSION = NO;
GCC_WARN_ABOUT_MISSING_NEWLINE = NO;
GCC_WARN_ABOUT_MISSING_PROTOTYPES = NO;
GCC_WARN_ABOUT_POINTER_SIGNEDNESS = YES;
@@ -559,6 +614,9 @@
GCC_WARN_SHADOW = NO;
GCC_WARN_SIGN_COMPARE = YES;
GCC_WARN_TYPECHECK_CALLS_TO_PRINTF = NO;
GCC_WARN_UNDECLARED_SELECTOR = YES;
GCC_WARN_UNINITIALIZED_AUTOS = YES;
GCC_WARN_UNUSED_FUNCTION = YES;
GCC_WARN_UNUSED_PARAMETER = NO;
GCC_WARN_UNUSED_VALUE = NO;
GCC_WARN_UNUSED_VARIABLE = YES;
@@ -568,7 +626,7 @@
"\"$(SRCROOT)/../../src/modules\"",
);
INFOPLIST_FILE = "love-Info.plist";
IPHONEOS_DEPLOYMENT_TARGET = 6.0;
IPHONEOS_DEPLOYMENT_TARGET = 8.0;
LD_RUNPATH_SEARCH_PATHS = "@loader_path/../Frameworks";
LLVM_LTO = YES;
MACOSX_DEPLOYMENT_TARGET = 10.7;
@@ -609,6 +667,10 @@
COPY_PHASE_STRIP = NO;
ENABLE_BITCODE = NO;
ENABLE_STRICT_OBJC_MSGSEND = YES;
FRAMEWORK_SEARCH_PATHS = (
"$(inherited)",
"$(PROJECT_DIR)",
);
GCC_DYNAMIC_NO_PIC = NO;
GCC_PREPROCESSOR_DEFINITIONS = (
"DEBUG=1",
@@ -627,7 +689,6 @@
ios/include/SDL2,
);
INFOPLIST_FILE = "$(SRCROOT)/ios/love-ios.plist";
IPHONEOS_DEPLOYMENT_TARGET = 6.0;
LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks";
MTL_ENABLE_DEBUG_INFO = YES;
PRODUCT_BUNDLE_IDENTIFIER = org.love2d.love;
@@ -658,6 +719,10 @@
ENABLE_BITCODE = NO;
ENABLE_NS_ASSERTIONS = NO;
ENABLE_STRICT_OBJC_MSGSEND = YES;
FRAMEWORK_SEARCH_PATHS = (
"$(inherited)",
"$(PROJECT_DIR)",
);
GCC_WARN_64_TO_32_BIT_CONVERSION = YES;
GCC_WARN_ABOUT_RETURN_TYPE = YES_ERROR;
GCC_WARN_UNDECLARED_SELECTOR = YES;
@@ -670,7 +735,6 @@
ios/include/SDL2,
);
INFOPLIST_FILE = "$(SRCROOT)/ios/love-ios.plist";
IPHONEOS_DEPLOYMENT_TARGET = 6.0;
LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks";
MTL_ENABLE_DEBUG_INFO = NO;
PRODUCT_BUNDLE_IDENTIFIER = org.love2d.love;
@@ -702,6 +766,10 @@
ENABLE_BITCODE = NO;
ENABLE_NS_ASSERTIONS = NO;
ENABLE_STRICT_OBJC_MSGSEND = YES;
FRAMEWORK_SEARCH_PATHS = (
"$(inherited)",
"$(PROJECT_DIR)",
);
GCC_WARN_64_TO_32_BIT_CONVERSION = YES;
GCC_WARN_ABOUT_RETURN_TYPE = YES_ERROR;
GCC_WARN_UNDECLARED_SELECTOR = YES;
@@ -714,7 +782,6 @@
ios/include/SDL2,
);
INFOPLIST_FILE = "$(SRCROOT)/ios/love-ios.plist";
IPHONEOS_DEPLOYMENT_TARGET = 6.0;
LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks";
MTL_ENABLE_DEBUG_INFO = NO;
PRODUCT_BUNDLE_IDENTIFIER = org.love2d.love;
@@ -730,16 +797,35 @@
isa = XCBuildConfiguration;
buildSettings = {
ALWAYS_SEARCH_USER_PATHS = NO;
CLANG_ANALYZER_LOCALIZABILITY_NONLOCALIZED = YES;
CLANG_CXX_LANGUAGE_STANDARD = "c++0x";
CLANG_CXX_LIBRARY = "libc++";
CLANG_ENABLE_MODULES = YES;
CLANG_ENABLE_OBJC_ARC = YES;
CLANG_WARN_BLOCK_CAPTURE_AUTORELEASING = YES;
CLANG_WARN_BOOL_CONVERSION = YES;
CLANG_WARN_COMMA = YES;
CLANG_WARN_CONSTANT_CONVERSION = YES;
CLANG_WARN_EMPTY_BODY = YES;
CLANG_WARN_ENUM_CONVERSION = YES;
CLANG_WARN_INFINITE_RECURSION = YES;
CLANG_WARN_INT_CONVERSION = YES;
CLANG_WARN_NON_LITERAL_NULL_CONVERSION = YES;
CLANG_WARN_OBJC_LITERAL_CONVERSION = YES;
CLANG_WARN_RANGE_LOOP_ANALYSIS = YES;
CLANG_WARN_STRICT_PROTOTYPES = YES;
CLANG_WARN_SUSPICIOUS_MOVE = YES;
CLANG_WARN_UNREACHABLE_CODE = YES;
CLANG_WARN__DUPLICATE_METHOD_MATCH = YES;
DEPLOYMENT_POSTPROCESSING = NO;
ENABLE_STRICT_OBJC_MSGSEND = YES;
FRAMEWORK_SEARCH_PATHS = "";
GCC_INPUT_FILETYPE = automatic;
GCC_NO_COMMON_BLOCKS = YES;
GCC_OPTIMIZATION_LEVEL = 3;
GCC_PREPROCESSOR_DEFINITIONS = LOVE_APPLE_USE_FRAMEWORKS;
GCC_TREAT_IMPLICIT_FUNCTION_DECLARATIONS_AS_ERRORS = NO;
GCC_WARN_64_TO_32_BIT_CONVERSION = NO;
GCC_WARN_ABOUT_MISSING_NEWLINE = NO;
GCC_WARN_ABOUT_MISSING_PROTOTYPES = NO;
GCC_WARN_ABOUT_POINTER_SIGNEDNESS = YES;
@@ -754,6 +840,9 @@
GCC_WARN_SHADOW = NO;
GCC_WARN_SIGN_COMPARE = YES;
GCC_WARN_TYPECHECK_CALLS_TO_PRINTF = NO;
GCC_WARN_UNDECLARED_SELECTOR = YES;
GCC_WARN_UNINITIALIZED_AUTOS = YES;
GCC_WARN_UNUSED_FUNCTION = YES;
GCC_WARN_UNUSED_PARAMETER = NO;
GCC_WARN_UNUSED_VALUE = NO;
GCC_WARN_UNUSED_VARIABLE = YES;
@@ -763,7 +852,7 @@
"\"$(SRCROOT)/../../src/modules\"",
);
INFOPLIST_FILE = "love-Info.plist";
IPHONEOS_DEPLOYMENT_TARGET = 6.0;
IPHONEOS_DEPLOYMENT_TARGET = 8.0;
LD_RUNPATH_SEARCH_PATHS = "@loader_path/../Frameworks";
LLVM_LTO = YES;
MACOSX_DEPLOYMENT_TARGET = 10.7;
@@ -793,6 +882,7 @@
DEBUG_INFORMATION_FORMAT = "dwarf-with-dsym";
FRAMEWORK_SEARCH_PATHS = (
"$(inherited)",
"$(PROJECT_DIR)/macosx/Frameworks",
/Library/Frameworks,
"\"$(SRCROOT)/build/Release\"",
"\"$(SRCROOT)/build/Debug\"",
@@ -800,6 +890,8 @@
);
HEADER_SEARCH_PATHS = (
"$(inherited)",
"$(PROJECT_DIR)/macosx/Frameworks/Lua.framework/Headers",
"$(PROJECT_DIR)/macosx/Frameworks/SDL2.framework/Headers",
/Library/Frameworks/Lua.framework/Headers,
/Library/Frameworks/SDL2.framework/Headers,
);
@@ -0,0 +1,5 @@
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict/>
</plist>
@@ -17,7 +17,7 @@
<key>CFBundlePackageType</key>
<string>FMWK</string>
<key>CFBundleShortVersionString</key>
<string>0.10.1</string>
<string>11.1</string>
<key>CFBundleSignature</key>
<string>LoVe</string>
<key>NSPrincipalClass</key>
@@ -62,7 +62,7 @@
<key>CFBundlePackageType</key>
<string>APPL</string>
<key>CFBundleShortVersionString</key>
<string>0.10.2</string>
<string>11.1</string>
<key>CFBundleSignature</key>
<string>LoVe</string>
<key>LSApplicationCategoryType</key>
@@ -70,9 +70,11 @@
<key>NSHighResolutionCapable</key>
<true/>
<key>NSHumanReadableCopyright</key>
<string>© 2006-2016 LÖVE Development Team</string>
<string>© 2006-2018 LÖVE Development Team</string>
<key>NSPrincipalClass</key>
<string>NSApplication</string>
<key>NSSupportsAutomaticGraphicsSwitching</key>
<false/>
<key>UTExportedTypeDeclarations</key>
<array>
<dict>
+2
View File
@@ -21,6 +21,8 @@ Run `platform/unix/automagic` from the repository root, then run ./configure and
$ ./configure
$ make
When using a source release, automagic has already been run, and the first step can be skipped.
###Mac OS X
Download the required frameworks from [here][dependencies] and place them in `/Library/Frameworks/`.
@@ -1,5 +1,5 @@
/**
* Copyright (c) 2006-2011 LOVE Development Team
* Copyright (c) 2006-2018 LOVE Development Team
*
* This software is provided 'as-is', without any express or implied
* warranty. In no event will the authors be held liable for any damages
@@ -18,13 +18,11 @@
* 3. This notice may not be removed or altered from any source distribution.
**/
#ifndef LOVE_GRAPHICS_COLOR_H
#define LOVE_GRAPHICS_COLOR_H
#ifndef LOVE_COLOR_H
#define LOVE_COLOR_H
namespace love
{
namespace graphics
{
template <typename T>
struct ColorT
@@ -48,6 +46,7 @@ struct ColorT
bool operator!=(const ColorT<T> &other) const;
ColorT<T> operator+=(const ColorT<T> &other);
ColorT<T> operator*=(const ColorT<T> &other);
ColorT<T> operator*=(T s);
ColorT<T> operator/=(T s);
};
@@ -74,6 +73,16 @@ ColorT<T> ColorT<T>::operator+=(const ColorT<T> &other)
return *this;
}
template <typename T>
ColorT<T> ColorT<T>::operator*=(const ColorT<T> &other)
{
r *= other.r;
g *= other.g;
b *= other.b;
a *= other.a;
return *this;
}
template <typename T>
ColorT<T> ColorT<T>::operator*=(T s)
{
@@ -101,6 +110,17 @@ ColorT<T> operator+(const ColorT<T> &a, const ColorT<T> &b)
return tmp += b;
}
template <typename T>
ColorT<T> operator*(const ColorT<T> &a, const ColorT<T> &b)
{
ColorT<T> res;
res.r = a.r * b.r;
res.g = a.g * b.g;
res.b = a.b * b.b;
res.a = a.a * b.a;
return res;
}
template <typename T>
ColorT<T> operator*(const ColorT<T> &a, T s)
{
@@ -118,7 +138,19 @@ ColorT<T> operator/(const ColorT<T> &a, T s)
typedef ColorT<unsigned char> Color;
typedef ColorT<float> Colorf;
} // graphics
inline Color toColor(Colorf cf)
{
return Color((unsigned char) (cf.r * 255.0f),
(unsigned char) (cf.g * 255.0f),
(unsigned char) (cf.b * 255.0f),
(unsigned char) (cf.a * 255.0f));
}
inline Colorf toColorf(Color c)
{
return Colorf(c.r / 255.0f, c.g / 255.0f, c.b / 255.0f, c.a / 255.0f);
}
} // love
#endif // LOVE_GRAPHICS_COLOR_H
#endif // LOVE_COLOR_H
+29
View File
@@ -0,0 +1,29 @@
/**
* Copyright (c) 2006-2018 LOVE Development Team
*
* 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.
**/
// LOVE
#include "Data.h"
namespace love
{
love::Type Data::type("Data", &Object::type);
} // love
+7 -1
View File
@@ -1,5 +1,5 @@
/**
* Copyright (c) 2006-2016 LOVE Development Team
* Copyright (c) 2006-2018 LOVE Development Team
*
* This software is provided 'as-is', without any express or implied
* warranty. In no event will the authors be held liable for any damages
@@ -38,11 +38,17 @@ class Data : public Object
{
public:
static love::Type type;
/**
* Destructor.
**/
virtual ~Data() {}
/**
* Creates a duplicate of Data derived class instance.
**/
virtual Data *clone() const = 0;
/**
* Gets a pointer to the data. This pointer will obviously not
* be valid if the Data object is destroyed.
+1 -1
View File
@@ -1,5 +1,5 @@
/**
* Copyright (c) 2006-2016 LOVE Development Team
* Copyright (c) 2006-2018 LOVE Development Team
*
* This software is provided 'as-is', without any express or implied
* warranty. In no event will the authors be held liable for any damages
+1 -1
View File
@@ -1,5 +1,5 @@
/**
* Copyright (c) 2006-2016 LOVE Development Team
* Copyright (c) 2006-2018 LOVE Development Team
*
* This software is provided 'as-is', without any express or implied
* warranty. In no event will the authors be held liable for any damages
+1 -1
View File
@@ -1,5 +1,5 @@
/**
* Copyright (c) 2006-2016 LOVE Development Team
* Copyright (c) 2006-2018 LOVE Development Team
*
* This software is provided 'as-is', without any express or implied
* warranty. In no event will the authors be held liable for any damages
+242 -53
View File
@@ -1,5 +1,5 @@
/**
* Copyright (c) 2006-2016 LOVE Development Team
* Copyright (c) 2006-2018 LOVE Development Team
*
* This software is provided 'as-is', without any express or implied
* warranty. In no event will the authors be held liable for any damages
@@ -19,38 +19,19 @@
**/
#include "Matrix.h"
#include "common/config.h"
// STD
#include <cstring> // memcpy
#include <cmath>
#if defined(LOVE_SIMD_SSE)
#include <xmmintrin.h>
#endif
namespace love
{
// | e0 e4 e8 e12 |
// | e1 e5 e9 e13 |
// | e2 e6 e10 e14 |
// | e3 e7 e11 e15 |
Matrix4::Matrix4()
{
setIdentity();
}
Matrix4::Matrix4(float t00, float t10, float t01, float t11, float x, float y)
{
setRawTransformation(t00, t10, t01, t11, x, y);
}
Matrix4::Matrix4(float x, float y, float angle, float sx, float sy, float ox, float oy, float kx, float ky)
{
setTransformation(x, y, angle, sx, sy, ox, oy, kx, ky);
}
Matrix4::~Matrix4()
{
}
// | e0 e4 e8 e12 |
// | e1 e5 e9 e13 |
// | e2 e6 e10 e14 |
@@ -60,37 +41,106 @@ Matrix4::~Matrix4()
// | e2 e6 e10 e14 |
// | e3 e7 e11 e15 |
void Matrix4::multiply(const Matrix4 &a, const Matrix4 &b, float t[16])
{
// NOTE: in my testing with ARM NEON instructions (on an iPhone 6 with arm64)
// it performed slightly worse than the regular add/multiply code. Further
// investigation would be useful.
#if defined(LOVE_SIMD_SSE)
// We can't guarantee 16-bit alignment (e.g. for heap-allocated Matrix4
// objects) so we use unaligned loads and stores.
__m128 col1 = _mm_loadu_ps(&a.e[0]);
__m128 col2 = _mm_loadu_ps(&a.e[4]);
__m128 col3 = _mm_loadu_ps(&a.e[8]);
__m128 col4 = _mm_loadu_ps(&a.e[12]);
for (int i = 0; i < 4; i++)
{
__m128 brod1 = _mm_set1_ps(b.e[4*i + 0]);
__m128 brod2 = _mm_set1_ps(b.e[4*i + 1]);
__m128 brod3 = _mm_set1_ps(b.e[4*i + 2]);
__m128 brod4 = _mm_set1_ps(b.e[4*i + 3]);
__m128 col = _mm_add_ps(
_mm_add_ps(_mm_mul_ps(brod1, col1), _mm_mul_ps(brod2, col2)),
_mm_add_ps(_mm_mul_ps(brod3, col3), _mm_mul_ps(brod4, col4))
);
_mm_storeu_ps(&t[4*i], col);
}
#else
t[0] = (a.e[0]*b.e[0]) + (a.e[4]*b.e[1]) + (a.e[8]*b.e[2]) + (a.e[12]*b.e[3]);
t[4] = (a.e[0]*b.e[4]) + (a.e[4]*b.e[5]) + (a.e[8]*b.e[6]) + (a.e[12]*b.e[7]);
t[8] = (a.e[0]*b.e[8]) + (a.e[4]*b.e[9]) + (a.e[8]*b.e[10]) + (a.e[12]*b.e[11]);
t[12] = (a.e[0]*b.e[12]) + (a.e[4]*b.e[13]) + (a.e[8]*b.e[14]) + (a.e[12]*b.e[15]);
t[1] = (a.e[1]*b.e[0]) + (a.e[5]*b.e[1]) + (a.e[9]*b.e[2]) + (a.e[13]*b.e[3]);
t[5] = (a.e[1]*b.e[4]) + (a.e[5]*b.e[5]) + (a.e[9]*b.e[6]) + (a.e[13]*b.e[7]);
t[9] = (a.e[1]*b.e[8]) + (a.e[5]*b.e[9]) + (a.e[9]*b.e[10]) + (a.e[13]*b.e[11]);
t[13] = (a.e[1]*b.e[12]) + (a.e[5]*b.e[13]) + (a.e[9]*b.e[14]) + (a.e[13]*b.e[15]);
t[2] = (a.e[2]*b.e[0]) + (a.e[6]*b.e[1]) + (a.e[10]*b.e[2]) + (a.e[14]*b.e[3]);
t[6] = (a.e[2]*b.e[4]) + (a.e[6]*b.e[5]) + (a.e[10]*b.e[6]) + (a.e[14]*b.e[7]);
t[10] = (a.e[2]*b.e[8]) + (a.e[6]*b.e[9]) + (a.e[10]*b.e[10]) + (a.e[14]*b.e[11]);
t[14] = (a.e[2]*b.e[12]) + (a.e[6]*b.e[13]) + (a.e[10]*b.e[14]) + (a.e[14]*b.e[15]);
t[3] = (a.e[3]*b.e[0]) + (a.e[7]*b.e[1]) + (a.e[11]*b.e[2]) + (a.e[15]*b.e[3]);
t[7] = (a.e[3]*b.e[4]) + (a.e[7]*b.e[5]) + (a.e[11]*b.e[6]) + (a.e[15]*b.e[7]);
t[11] = (a.e[3]*b.e[8]) + (a.e[7]*b.e[9]) + (a.e[11]*b.e[10]) + (a.e[15]*b.e[11]);
t[15] = (a.e[3]*b.e[12]) + (a.e[7]*b.e[13]) + (a.e[11]*b.e[14]) + (a.e[15]*b.e[15]);
#endif
}
void Matrix4::multiply(const Matrix4 &a, const Matrix4 &b, Matrix4 &t)
{
multiply(a, b, t.e);
}
// | e0 e4 e8 e12 |
// | e1 e5 e9 e13 |
// | e2 e6 e10 e14 |
// | e3 e7 e11 e15 |
Matrix4::Matrix4()
{
setIdentity();
}
Matrix4::Matrix4(const float elements[16])
{
memcpy(e, elements, sizeof(float) * 16);
}
Matrix4::Matrix4(float t00, float t10, float t01, float t11, float x, float y)
{
setRawTransformation(t00, t10, t01, t11, x, y);
}
Matrix4::Matrix4(const Matrix4 &a, const Matrix4 &b)
{
multiply(a, b, e);
}
Matrix4::Matrix4(float x, float y, float angle, float sx, float sy, float ox, float oy, float kx, float ky)
{
setTransformation(x, y, angle, sx, sy, ox, oy, kx, ky);
}
Matrix4 Matrix4::operator * (const Matrix4 &m) const
{
Matrix4 t;
t.e[0] = (e[0]*m.e[0]) + (e[4]*m.e[1]) + (e[8]*m.e[2]) + (e[12]*m.e[3]);
t.e[4] = (e[0]*m.e[4]) + (e[4]*m.e[5]) + (e[8]*m.e[6]) + (e[12]*m.e[7]);
t.e[8] = (e[0]*m.e[8]) + (e[4]*m.e[9]) + (e[8]*m.e[10]) + (e[12]*m.e[11]);
t.e[12] = (e[0]*m.e[12]) + (e[4]*m.e[13]) + (e[8]*m.e[14]) + (e[12]*m.e[15]);
t.e[1] = (e[1]*m.e[0]) + (e[5]*m.e[1]) + (e[9]*m.e[2]) + (e[13]*m.e[3]);
t.e[5] = (e[1]*m.e[4]) + (e[5]*m.e[5]) + (e[9]*m.e[6]) + (e[13]*m.e[7]);
t.e[9] = (e[1]*m.e[8]) + (e[5]*m.e[9]) + (e[9]*m.e[10]) + (e[13]*m.e[11]);
t.e[13] = (e[1]*m.e[12]) + (e[5]*m.e[13]) + (e[9]*m.e[14]) + (e[13]*m.e[15]);
t.e[2] = (e[2]*m.e[0]) + (e[6]*m.e[1]) + (e[10]*m.e[2]) + (e[14]*m.e[3]);
t.e[6] = (e[2]*m.e[4]) + (e[6]*m.e[5]) + (e[10]*m.e[6]) + (e[14]*m.e[7]);
t.e[10] = (e[2]*m.e[8]) + (e[6]*m.e[9]) + (e[10]*m.e[10]) + (e[14]*m.e[11]);
t.e[14] = (e[2]*m.e[12]) + (e[6]*m.e[13]) + (e[10]*m.e[14]) + (e[14]*m.e[15]);
t.e[3] = (e[3]*m.e[0]) + (e[7]*m.e[1]) + (e[11]*m.e[2]) + (e[15]*m.e[3]);
t.e[7] = (e[3]*m.e[4]) + (e[7]*m.e[5]) + (e[11]*m.e[6]) + (e[15]*m.e[7]);
t.e[11] = (e[3]*m.e[8]) + (e[7]*m.e[9]) + (e[11]*m.e[10]) + (e[15]*m.e[11]);
t.e[15] = (e[3]*m.e[12]) + (e[7]*m.e[13]) + (e[11]*m.e[14]) + (e[15]*m.e[15]);
return t;
return Matrix4(*this, m);
}
void Matrix4::operator *= (const Matrix4 &m)
{
Matrix4 t = (*this) * m;
memcpy(this->e, t.e, sizeof(float)*16);
float t[16];
multiply(*this, m, t);
memcpy(this->e, t, sizeof(float)*16);
}
const float *Matrix4::getElements() const
@@ -101,7 +151,7 @@ const float *Matrix4::getElements() const
void Matrix4::setIdentity()
{
memset(e, 0, sizeof(float)*16);
e[0] = e[5] = e[10] = e[15] = 1;
e[15] = e[10] = e[5] = e[0] = 1;
}
void Matrix4::setTranslation(float x, float y)
@@ -134,6 +184,12 @@ void Matrix4::setShear(float kx, float ky)
e[1] = ky;
e[4] = kx;
}
void Matrix4::getApproximateScale(float &sx, float &sy) const
{
sx = sqrtf(e[0] * e[0] + e[4] * e[4]);
sy = sqrtf(e[1] * e[1] + e[5] * e[5]);
}
void Matrix4::setRawTransformation(float t00, float t10, float t01, float t11, float x, float y)
{
@@ -194,16 +250,149 @@ void Matrix4::shear(float kx, float ky)
this->operator *=(t);
}
Matrix4 Matrix4::ortho(float left, float right, float bottom, float top)
bool Matrix4::isAffine2DTransform() const
{
return fabsf(e[2] + e[3] + e[6] + e[7] + e[8] + e[9] + e[11] + e[14]) < 0.00001f
&& fabsf(e[10] + e[15] - 2.0f) < 0.00001f;
}
Matrix4 Matrix4::inverse() const
{
Matrix4 inv;
inv.e[0] = e[5] * e[10] * e[15] -
e[5] * e[11] * e[14] -
e[9] * e[6] * e[15] +
e[9] * e[7] * e[14] +
e[13] * e[6] * e[11] -
e[13] * e[7] * e[10];
inv.e[4] = -e[4] * e[10] * e[15] +
e[4] * e[11] * e[14] +
e[8] * e[6] * e[15] -
e[8] * e[7] * e[14] -
e[12] * e[6] * e[11] +
e[12] * e[7] * e[10];
inv.e[8] = e[4] * e[9] * e[15] -
e[4] * e[11] * e[13] -
e[8] * e[5] * e[15] +
e[8] * e[7] * e[13] +
e[12] * e[5] * e[11] -
e[12] * e[7] * e[9];
inv.e[12] = -e[4] * e[9] * e[14] +
e[4] * e[10] * e[13] +
e[8] * e[5] * e[14] -
e[8] * e[6] * e[13] -
e[12] * e[5] * e[10] +
e[12] * e[6] * e[9];
inv.e[1] = -e[1] * e[10] * e[15] +
e[1] * e[11] * e[14] +
e[9] * e[2] * e[15] -
e[9] * e[3] * e[14] -
e[13] * e[2] * e[11] +
e[13] * e[3] * e[10];
inv.e[5] = e[0] * e[10] * e[15] -
e[0] * e[11] * e[14] -
e[8] * e[2] * e[15] +
e[8] * e[3] * e[14] +
e[12] * e[2] * e[11] -
e[12] * e[3] * e[10];
inv.e[9] = -e[0] * e[9] * e[15] +
e[0] * e[11] * e[13] +
e[8] * e[1] * e[15] -
e[8] * e[3] * e[13] -
e[12] * e[1] * e[11] +
e[12] * e[3] * e[9];
inv.e[13] = e[0] * e[9] * e[14] -
e[0] * e[10] * e[13] -
e[8] * e[1] * e[14] +
e[8] * e[2] * e[13] +
e[12] * e[1] * e[10] -
e[12] * e[2] * e[9];
inv.e[2] = e[1] * e[6] * e[15] -
e[1] * e[7] * e[14] -
e[5] * e[2] * e[15] +
e[5] * e[3] * e[14] +
e[13] * e[2] * e[7] -
e[13] * e[3] * e[6];
inv.e[6] = -e[0] * e[6] * e[15] +
e[0] * e[7] * e[14] +
e[4] * e[2] * e[15] -
e[4] * e[3] * e[14] -
e[12] * e[2] * e[7] +
e[12] * e[3] * e[6];
inv.e[10] = e[0] * e[5] * e[15] -
e[0] * e[7] * e[13] -
e[4] * e[1] * e[15] +
e[4] * e[3] * e[13] +
e[12] * e[1] * e[7] -
e[12] * e[3] * e[5];
inv.e[14] = -e[0] * e[5] * e[14] +
e[0] * e[6] * e[13] +
e[4] * e[1] * e[14] -
e[4] * e[2] * e[13] -
e[12] * e[1] * e[6] +
e[12] * e[2] * e[5];
inv.e[3] = -e[1] * e[6] * e[11] +
e[1] * e[7] * e[10] +
e[5] * e[2] * e[11] -
e[5] * e[3] * e[10] -
e[9] * e[2] * e[7] +
e[9] * e[3] * e[6];
inv.e[7] = e[0] * e[6] * e[11] -
e[0] * e[7] * e[10] -
e[4] * e[2] * e[11] +
e[4] * e[3] * e[10] +
e[8] * e[2] * e[7] -
e[8] * e[3] * e[6];
inv.e[11] = -e[0] * e[5] * e[11] +
e[0] * e[7] * e[9] +
e[4] * e[1] * e[11] -
e[4] * e[3] * e[9] -
e[8] * e[1] * e[7] +
e[8] * e[3] * e[5];
inv.e[15] = e[0] * e[5] * e[10] -
e[0] * e[6] * e[9] -
e[4] * e[1] * e[10] +
e[4] * e[2] * e[9] +
e[8] * e[1] * e[6] -
e[8] * e[2] * e[5];
float det = e[0] * inv.e[0] + e[1] * inv.e[4] + e[2] * inv.e[8] + e[3] * inv.e[12];
float invdet = 1.0f / det;
for (int i = 0; i < 16; i++)
inv.e[i] *= invdet;
return inv;
}
Matrix4 Matrix4::ortho(float left, float right, float bottom, float top, float near, float far)
{
Matrix4 m;
m.e[0] = 2.0f / (right - left);
m.e[5] = 2.0f / (top - bottom);
m.e[10] = -1.0;
m.e[10] = -2.0f / (far - near);
m.e[12] = -(right + left) / (right - left);
m.e[13] = -(top + bottom) / (top - bottom);
m.e[14] = -(far + near) / (far - near);
return m;
}
+104 -23
View File
@@ -1,5 +1,5 @@
/**
* Copyright (c) 2006-2016 LOVE Development Team
* Copyright (c) 2006-2018 LOVE Development Team
*
* This software is provided 'as-is', without any express or implied
* warranty. In no event will the authors be held liable for any damages
@@ -34,8 +34,14 @@ namespace love
**/
class Matrix4
{
private:
static void multiply(const Matrix4 &a, const Matrix4 &b, float t[16]);
public:
static void multiply(const Matrix4 &a, const Matrix4 &b, Matrix4 &result);
/**
* Creates a new identity matrix.
**/
@@ -46,16 +52,23 @@ public:
**/
Matrix4(float t00, float t10, float t01, float t11, float x, float y);
/**
* Creates a new matrix from the specified elements. Be sure to pass
* exactly 16 elements in!
**/
Matrix4(const float elements[16]);
/**
* Creates a new matrix from the result of multiplying the two specified
* matrices.
**/
Matrix4(const Matrix4 &a, const Matrix4 &b);
/**
* Creates a new matrix set to a transformation.
**/
Matrix4(float x, float y, float angle, float sx, float sy, float ox, float oy, float kx, float ky);
/**
* Destructor.
**/
~Matrix4();
/**
* Multiplies this Matrix with another Matrix, changing neither.
* @param m The Matrix to multiply with this Matrix.
@@ -106,6 +119,12 @@ public:
* @param ky Shear along y-axis.
**/
void setShear(float kx, float ky);
/**
* Calculates the scale factors for a 2D affine transform. The output values
* are absolute (not signed).
**/
void getApproximateScale(float &sx, float &sy) const;
/**
* Sets a transformation's values directly. Useful if you want to modify them inplace,
@@ -166,21 +185,42 @@ public:
void shear(float kx, float ky);
/**
* Transforms an array of vertices by this Matrix. The sources and
* destination arrays may be the same.
*
* @param dst Storage for the transformed vertices.
* @param src The source vertices.
* @param size The number of vertices.
* Transforms an array of 2-component vertices by this Matrix. The source
* and destination arrays may be the same.
**/
template <typename V>
void transform(V *dst, const V *src, int size) const;
template <typename Vdst, typename Vsrc>
void transformXY(Vdst *dst, const Vsrc *src, int size) const;
/**
* Creates a new orthographic projection matrix with depth in the range of
* [-1, 1].
* Transforms an array of 2-component vertices by this Matrix, and stores
* them in an array of 3-component vertices.
**/
static Matrix4 ortho(float left, float right, float bottom, float top);
template <typename Vdst, typename Vsrc>
void transformXY0(Vdst *dst, const Vsrc *src, int size) const;
/**
* Transforms an array of 3-component vertices by this Matrix. The source
* and destination arrays may be the same.
**/
template <typename Vdst, typename Vsrc>
void transformXYZ(Vdst *dst, const Vsrc *src, int size) const;
/**
* Gets whether this matrix is an affine 2D transform (if the only non-
* identity elements are the upper-left 2x2 and 2 translation values in the
* 4th column).
**/
bool isAffine2DTransform() const;
/**
* Computes and returns the inverse of the matrix.
**/
Matrix4 inverse() const;
/**
* Creates a new orthographic projection matrix.
**/
static Matrix4 ortho(float left, float right, float bottom, float top, float near, float far);
private:
@@ -249,8 +289,8 @@ public:
/**
* Transforms an array of vertices by this matrix.
**/
template <typename V>
void transform(V *dst, const V *src, int size) const;
template <typename Vdst, typename Vsrc>
void transformXY(Vdst *dst, const Vsrc *src, int size) const;
private:
@@ -272,8 +312,8 @@ private:
// | e2 e6 e10 e14 |
// | e3 e7 e11 e15 |
template <typename V>
void Matrix4::transform(V *dst, const V *src, int size) const
template <typename Vdst, typename Vsrc>
void Matrix4::transformXY(Vdst *dst, const Vsrc *src, int size) const
{
for (int i = 0; i < size; i++)
{
@@ -286,14 +326,55 @@ void Matrix4::transform(V *dst, const V *src, int size) const
}
}
template <typename Vdst, typename Vsrc>
void Matrix4::transformXY0(Vdst *dst, const Vsrc *src, int size) const
{
for (int i = 0; i < size; i++)
{
// Store in temp variables in case src = dst
float x = (e[0]*src[i].x) + (e[4]*src[i].y) + (0) + (e[12]);
float y = (e[1]*src[i].x) + (e[5]*src[i].y) + (0) + (e[13]);
float z = (e[2]*src[i].x) + (e[6]*src[i].y) + (0) + (e[14]);
dst[i].x = x;
dst[i].y = y;
dst[i].z = z;
}
}
// | x |
// | y |
// | z |
// | 1 |
// | e0 e4 e8 e12 |
// | e1 e5 e9 e13 |
// | e2 e6 e10 e14 |
// | e3 e7 e11 e15 |
template <typename Vdst, typename Vsrc>
void Matrix4::transformXYZ(Vdst *dst, const Vsrc *src, int size) const
{
for (int i = 0; i < size; i++)
{
// Store in temp variables in case src = dst
float x = (e[0]*src[i].x) + (e[4]*src[i].y) + (e[ 8]*src[i].z) + (e[12]);
float y = (e[1]*src[i].x) + (e[5]*src[i].y) + (e[ 9]*src[i].z) + (e[13]);
float z = (e[2]*src[i].x) + (e[6]*src[i].y) + (e[10]*src[i].z) + (e[14]);
dst[i].x = x;
dst[i].y = y;
dst[i].z = z;
}
}
// | x |
// | y |
// | 1 |
// | e0 e3 e6 |
// | e1 e4 e7 |
// | e2 e5 e8 |
template <typename V>
void Matrix3::transform(V *dst, const V *src, int size) const
template <typename Vdst, typename Vsrc>
void Matrix3::transformXY(Vdst *dst, const Vsrc *src, int size) const
{
for (int i = 0; i < size; i++)
{
+1 -1
View File
@@ -1,5 +1,5 @@
/**
* Copyright (c) 2006-2016 LOVE Development Team
* Copyright (c) 2006-2018 LOVE Development Team
*
* This software is provided 'as-is', without any express or implied
* warranty. In no event will the authors be held liable for any damages
+1 -1
View File
@@ -1,5 +1,5 @@
/**
* Copyright (c) 2006-2016 LOVE Development Team
* Copyright (c) 2006-2018 LOVE Development Team
*
* This software is provided 'as-is', without any express or implied
* warranty. In no event will the authors be held liable for any damages
+10 -1
View File
@@ -1,5 +1,5 @@
/**
* Copyright (c) 2006-2016 LOVE Development Team
* Copyright (c) 2006-2018 LOVE Development Team
*
* This software is provided 'as-is', without any express or implied
* warranty. In no event will the authors be held liable for any damages
@@ -21,6 +21,7 @@
// LOVE
#include "Module.h"
#include "Exception.h"
#include "deprecation.h"
// std
#include <map>
@@ -58,8 +59,14 @@ namespace
namespace love
{
love::Type Module::type("Module", &Object::type);
Module *Module::instances[] = {};
Module::Module()
{
initDeprecation();
}
Module::~Module()
{
ModuleRegistry &registry = registryInstance();
@@ -82,6 +89,8 @@ Module::~Module()
}
freeEmptyRegistry();
deinitDeprecation();
}
void Module::registerInstance(Module *instance)
+6 -2
View File
@@ -1,5 +1,5 @@
/**
* Copyright (c) 2006-2016 LOVE Development Team
* Copyright (c) 2006-2018 LOVE Development Team
*
* This software is provided 'as-is', without any express or implied
* warranty. In no event will the authors be held liable for any damages
@@ -34,9 +34,12 @@ class Module : public Object
{
public:
static love::Type type;
enum ModuleType
{
M_AUDIO,
M_DATA,
M_EVENT,
M_FILESYSTEM,
M_FONT,
@@ -52,11 +55,12 @@ public:
M_THREAD,
M_TIMER,
M_TOUCH,
M_WINDOW,
M_VIDEO,
M_WINDOW,
M_MAX_ENUM
};
Module();
virtual ~Module();
/**
+3 -1
View File
@@ -1,5 +1,5 @@
/**
* Copyright (c) 2006-2016 LOVE Development Team
* Copyright (c) 2006-2018 LOVE Development Team
*
* This software is provided 'as-is', without any express or implied
* warranty. In no event will the authors be held liable for any damages
@@ -24,6 +24,8 @@
namespace love
{
love::Type Object::type("Object", nullptr);
Object::Object()
: count(1)
{
+4 -1
View File
@@ -1,5 +1,5 @@
/**
* Copyright (c) 2006-2016 LOVE Development Team
* Copyright (c) 2006-2018 LOVE Development Team
*
* This software is provided 'as-is', without any express or implied
* warranty. In no event will the authors be held liable for any damages
@@ -22,6 +22,7 @@
#define LOVE_OBJECT_H
#include <atomic>
#include "types.h"
namespace love
{
@@ -38,6 +39,8 @@ class Object
{
public:
static love::Type type;
/**
* Constructor. Sets reference count to one.
**/
+55
View File
@@ -0,0 +1,55 @@
/**
* Copyright (c) 2006-2018 LOVE Development Team
*
* 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.
**/
#pragma once
namespace love
{
// Currently only meant for simple and small types.
template <typename T>
struct Optional
{
bool hasValue;
T value;
Optional()
: hasValue(false)
, value(T())
{}
Optional(T val)
: hasValue(true)
, value(val)
{}
void set(T val)
{
hasValue = true;
value = val;
}
};
typedef Optional<bool> OptionalBool;
typedef Optional<float> OptionalFloat;
typedef Optional<double> OptionalDouble;
typedef Optional<int> OptionalInt;
} // love
+2 -2
View File
@@ -1,5 +1,5 @@
/**
* Copyright (c) 2006-2016 LOVE Development Team
* Copyright (c) 2006-2018 LOVE Development Team
*
* This software is provided 'as-is', without any express or implied
* warranty. In no event will the authors be held liable for any damages
@@ -45,7 +45,7 @@ Reference::~Reference()
void Reference::ref(lua_State *L)
{
unref(); // Just to be safe.
unref(); // Previously created reference needs to be cleared
pinnedL = luax_getpinnedthread(L);
luax_insist(L, LUA_REGISTRYINDEX, REFERENCE_TABLE_NAME);
lua_insert(L, -2); // Move reference table behind value.
+1 -1
View File
@@ -1,5 +1,5 @@
/**
* Copyright (c) 2006-2016 LOVE Development Team
* Copyright (c) 2006-2018 LOVE Development Team
*
* This software is provided 'as-is', without any express or implied
* warranty. In no event will the authors be held liable for any damages
+29
View File
@@ -0,0 +1,29 @@
/**
* Copyright (c) 2006-2015 LOVE Development Team
*
* 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.
**/
// LOVE
#include "Stream.h"
namespace love
{
love::Type Stream::type("Stream", &Object::type);
} // love
+2
View File
@@ -31,6 +31,8 @@ namespace love
class Stream : public Object
{
public:
static love::Type type;
virtual ~Stream() {}
// getData and getSize are assumed to talk about
@@ -0,0 +1,25 @@
/**
* Copyright (c) 2006-2018 LOVE Development Team
*
* 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.
**/
#include "StringMap.h"
// See the header
template class std::vector<std::string>;
template decltype(std::vector<std::string>().emplace_back("")) std::vector<std::string>::emplace_back<const char *const&>(const char *const&);
+22 -1
View File
@@ -1,5 +1,5 @@
/**
* Copyright (c) 2006-2016 LOVE Development Team
* Copyright (c) 2006-2018 LOVE Development Team
*
* This software is provided 'as-is', without any express or implied
* warranty. In no event will the authors be held liable for any damages
@@ -23,6 +23,15 @@
#include "Exception.h"
#include <string>
#include <vector>
// As StringMap instantiates std::vector<std::string> for instances that use
// getNames(), we end up with multiple copies in the object files. This
// declaration means we only emit it once (in StringMap.cpp).
extern template class std::vector<std::string>;
extern template decltype(std::vector<std::string>().emplace_back("")) std::vector<std::string>::emplace_back<const char *const&>(const char *const&);
namespace love
{
@@ -145,6 +154,18 @@ public:
return hash;
}
std::vector<std::string> getNames() const
{
std::vector<std::string> names;
names.reserve(SIZE);
for (unsigned int i = 0; i < SIZE; ++i)
if (reverse[i] != nullptr)
names.emplace_back(reverse[i]);
return names;
}
private:
struct Record
+56 -52
View File
@@ -1,5 +1,5 @@
/**
* Copyright (c) 2006-2016 LOVE Development Team
* Copyright (c) 2006-2018 LOVE Development Team
*
* This software is provided 'as-is', without any express or implied
* warranty. In no event will the authors be held liable for any damages
@@ -18,25 +18,27 @@
* 3. This notice may not be removed or altered from any source distribution.
**/
#include <memory>
#include "Variant.h"
#include "common/StringMap.h"
namespace love
{
static love::Type extractudatatype(lua_State *L, int idx)
static Proxy *tryextractproxy(lua_State *L, int idx)
{
Proxy *u = (Proxy *)lua_touserdata(L, idx);
if (u == nullptr || u->type <= INVALID_ID || u->type >= TYPE_MAX_ENUM)
return INVALID_ID;
if (u == nullptr || u->type == nullptr)
return nullptr;
// We could get rid of the dynamic_cast for more performance, but it would
// be less safe...
if (dynamic_cast<Object *>(u->object) != nullptr)
return u->type;
return u;
return INVALID_ID;
return nullptr;
}
Variant::Variant()
@@ -71,24 +73,20 @@ Variant::Variant(const char *string, size_t len)
}
}
Variant::Variant(void *userdata)
Variant::Variant(void *lightuserdata)
: type(LUSERDATA)
{
data.userdata = userdata;
data.userdata = lightuserdata;
}
Variant::Variant(love::Type udatatype, void *userdata)
: type(FUSERDATA)
, udatatype(udatatype)
Variant::Variant(love::Type *lovetype, love::Object *object)
: type(LOVEOBJECT)
{
if (udatatype != INVALID_ID)
{
Proxy *p = (Proxy *) userdata;
data.userdata = p->object;
p->object->retain();
}
else
data.userdata = userdata;
data.objectproxy.type = lovetype;
data.objectproxy.object = object;
if (data.objectproxy.object != nullptr)
data.objectproxy.object->retain();
}
// Variant gets ownership of the vector.
@@ -100,20 +98,18 @@ Variant::Variant(std::vector<std::pair<Variant, Variant>> *table)
Variant::Variant(const Variant &v)
: type(v.type)
, udatatype(v.udatatype)
, data(v.data)
{
if (type == STRING)
data.string->retain();
else if (type == FUSERDATA)
((love::Object *) data.userdata)->retain();
else if (type == LOVEOBJECT && data.objectproxy.object != nullptr)
data.objectproxy.object->retain();
else if (type == TABLE)
data.table->retain();
}
Variant::Variant(Variant &&v)
: type(std::move(v.type))
, udatatype(std::move(v.udatatype))
, data(std::move(v.data))
{
v.type = NIL;
@@ -121,49 +117,41 @@ Variant::Variant(Variant &&v)
Variant::~Variant()
{
switch (type)
{
case STRING:
if (type == STRING)
data.string->release();
break;
case FUSERDATA:
((love::Object *) data.userdata)->release();
break;
case TABLE:
else if (type == LOVEOBJECT && data.objectproxy.object != nullptr)
data.objectproxy.object->release();
else if (type == TABLE)
data.table->release();
break;
default:
break;
}
}
Variant &Variant::operator = (const Variant &v)
{
if (v.type == STRING)
v.data.string->retain();
else if (v.type == FUSERDATA)
((love::Object *) v.data.userdata)->retain();
else if (v.type == LOVEOBJECT && v.data.objectproxy.object != nullptr)
v.data.objectproxy.object->retain();
else if (v.type == TABLE)
v.data.table->retain();
if (type == STRING)
data.string->release();
else if (type == FUSERDATA)
((love::Object *) v.data.userdata)->release();
else if (type == LOVEOBJECT && data.objectproxy.object != nullptr)
data.objectproxy.object->release();
else if (type == TABLE)
data.table->release();
type = v.type;
data = v.data;
udatatype = v.udatatype;
return *this;
}
Variant Variant::fromLua(lua_State *L, int n, bool allowTables)
Variant Variant::fromLua(lua_State *L, int n, std::set<const void*> *tableSet)
{
size_t len;
const char *str;
Proxy *p = nullptr;
if (n < 0) // Fix the stack position, we might modify it later
n += lua_gettop(L) + 1;
@@ -180,15 +168,34 @@ Variant Variant::fromLua(lua_State *L, int n, bool allowTables)
case LUA_TLIGHTUSERDATA:
return Variant(lua_touserdata(L, n));
case LUA_TUSERDATA:
return Variant(extractudatatype(L, n), lua_touserdata(L, n));
p = tryextractproxy(L, n);
if (p != nullptr)
return Variant(p->type, p->object);
else
{
luax_typerror(L, n, "love type");
return Variant();
}
case LUA_TNIL:
return Variant();
case LUA_TTABLE:
if (allowTables)
{
bool success = true;
std::unique_ptr<std::set<const void*>> tableSetPtr;
std::vector<std::pair<Variant, Variant>> *table = new std::vector<std::pair<Variant, Variant>>();
// If we had no tables argument, allocate one now, and store it in our unique_ptr
if (tableSet == nullptr)
tableSetPtr.reset(tableSet = new std::set<const void*>);
// Now make sure this table wasn't already serialised
const void *tablePointer = lua_topointer(L, n);
{
auto result = tableSet->insert(tablePointer);
if (!result.second) // insertion failed
throw love::Exception("Cycle detected in table");
}
size_t len = luax_objlen(L, -1);
if (len > 0)
table->reserve(len);
@@ -197,7 +204,7 @@ Variant Variant::fromLua(lua_State *L, int n, bool allowTables)
while (lua_next(L, n))
{
table->emplace_back(fromLua(L, -2), fromLua(L, -1));
table->emplace_back(fromLua(L, -2, tableSet), fromLua(L, -1, tableSet));
lua_pop(L, 1);
const auto &p = table->back();
@@ -208,6 +215,9 @@ Variant Variant::fromLua(lua_State *L, int n, bool allowTables)
}
}
// And remove the table from the set again
tableSet->erase(tablePointer);
if (success)
return Variant(table);
else
@@ -240,14 +250,8 @@ void Variant::toLua(lua_State *L) const
case LUSERDATA:
lua_pushlightuserdata(L, data.userdata);
break;
case FUSERDATA:
if (udatatype != INVALID_ID)
luax_pushtype(L, udatatype, (love::Object *) data.userdata);
else
lua_pushlightuserdata(L, data.userdata);
// I know this is not the same
// sadly, however, it's the most
// I can do (at the moment).
case LOVEOBJECT:
luax_pushtype(L, *data.objectproxy.type, data.objectproxy.object);
break;
case TABLE:
{
+7 -6
View File
@@ -1,5 +1,5 @@
/**
* Copyright (c) 2006-2016 LOVE Development Team
* Copyright (c) 2006-2018 LOVE Development Team
*
* This software is provided 'as-is', without any express or implied
* warranty. In no event will the authors be held liable for any damages
@@ -27,6 +27,7 @@
#include <cstring>
#include <vector>
#include <set>
namespace love
{
@@ -43,7 +44,7 @@ public:
STRING,
SMALLSTRING,
LUSERDATA,
FUSERDATA,
LOVEOBJECT,
NIL,
TABLE
};
@@ -52,8 +53,8 @@ public:
Variant(bool boolean);
Variant(double number);
Variant(const char *string, size_t len);
Variant(void *userdata);
Variant(love::Type udatatype, void *userdata);
Variant(void *lightuserdata);
Variant(love::Type *type, love::Object *object);
Variant(std::vector<std::pair<Variant, Variant>> *table);
Variant(const Variant &v);
Variant(Variant &&v);
@@ -63,7 +64,7 @@ public:
Type getType() const { return type; }
static Variant fromLua(lua_State *L, int n, bool allowTables = true);
static Variant fromLua(lua_State *L, int n, std::set<const void*> *tableSet = nullptr);
void toLua(lua_State *L) const;
private:
@@ -101,7 +102,6 @@ private:
static const int MAX_SMALL_STRING_LENGTH = 15;
Type type;
love::Type udatatype;
union Data
{
@@ -109,6 +109,7 @@ private:
double number;
SharedString *string;
void *userdata;
Proxy objectproxy;
SharedTable *table;
struct
{
+1 -1
View File
@@ -1,5 +1,5 @@
/**
* Copyright (c) 2006-2016 LOVE Development Team
* Copyright (c) 2006-2018 LOVE Development Team
*
* This software is provided 'as-is', without any express or implied
* warranty. In no event will the authors be held liable for any damages
+228 -143
View File
@@ -1,5 +1,5 @@
/**
* Copyright (c) 2006-2016 LOVE Development Team
* Copyright (c) 2006-2018 LOVE Development Team
*
* This software is provided 'as-is', without any express or implied
* warranty. In no event will the authors be held liable for any damages
@@ -24,45 +24,30 @@
// STD
#include <cmath>
// LOVE
#include "Matrix.h"
namespace love
{
/**
* 2D Vector class.
*
* @author Anders Ruud
* @date 2006-05-13
**/
class Vector
struct Vector2
{
public:
// The components.
float x, y;
/**
* Creates a new (1,1) Vector.
**/
Vector();
Vector2()
: x(0.0f), y(0.0f)
{}
/**
* Creates a new Vector.
* @param x The x position/dimension.
* @param y The y position/dimension.
**/
Vector(float x, float y);
Vector2(float x, float y)
: x(x), y(y)
{}
Vector2(const Vector2 &v)
: x(v.x), y(v.y)
{}
/**
* Gets the length of the Vector.
* @return The length of the Vector.
*
* This method requires sqrtf() and should be used
* carefully.
**/
float getLength() const;
float getLengthSquare() const;
/**
* Normalizes the Vector.
@@ -76,7 +61,7 @@ public:
* To get the true (normalized) normal, use v.getNormal(1.0f / v.getLength())
* @return A normal to the Vector.
**/
Vector getNormal() const;
Vector2 getNormal() const;
/**
* Gets a vector perpendicular to the Vector.
@@ -84,125 +69,177 @@ public:
* @param scale factor to apply.
* @return A normal to the Vector.
**/
Vector getNormal(float scale) const;
Vector2 getNormal(float scale) const;
static inline float dot(const Vector2 &a, const Vector2 &b);
static inline float cross(const Vector2 &a, const Vector2 &b);
/**
* Adds a Vector to this Vector.
* @param v The Vector we want to add to this Vector.
* @return The resulting Vector.
**/
Vector operator + (const Vector &v) const;
Vector2 operator + (const Vector2 &v) const;
/**
* Substracts a Vector to this Vector.
* @param v The Vector we want to subtract to this Vector.
* @return The resulting Vector.
* Substracts a Vector from this Vector.
**/
Vector operator - (const Vector &v) const;
Vector2 operator - (const Vector2 &v) const;
/**
* Resizes a Vector by a scalar.
* @param s The scalar with which to resize the Vector.
* @return The resulting Vector.
* Component-wise multiplies the Vector by a scalar.
**/
Vector operator * (float s) const;
Vector2 operator * (float s) const;
/**
* Resizes a Vector by a scalar.
* @param s The scalar with which to resize the Vector.
* @return The resulting Vector.
* Component-wise divides the Vector by a scalar.
**/
Vector operator / (float s) const;
Vector2 operator / (float s) const;
/**
* Reverses the Vector.
* @return The reversed Vector.
* Component-wise negates the Vector.
**/
Vector operator - () const;
Vector2 operator - () const;
/**
* Adds a Vector to this Vector, and also saves changes in the first Vector.
* @param v The Vector we want to add to this Vector.
**/
void operator += (const Vector &v);
void operator += (const Vector2 &v);
/**
* Subtracts a Vector to this Vector, and also saves changes in the first Vector.
* @param v The Vector we want to subtract to this Vector.
**/
void operator -= (const Vector &v);
void operator -= (const Vector2 &v);
/**
* Resizes the Vector, and also saves changes in the first Vector.
* @param s The scalar by which we want to resize the Vector.
**/
void operator *= (float s);
/**
* Resizes the Vector, and also saves changes in the first Vector.
* @param s The scalar by which we want to resize the Vector.
**/
void operator /= (float s);
/**
* Calculates the dot product of two Vectors.
* @return The dot product of the two Vectors.
**/
float operator * (const Vector &v) const;
bool operator == (const Vector2 &v) const;
bool operator != (const Vector2 &v) const;
}; // Vector2
struct Vector3
{
float x, y, z;
Vector3()
: x(0.0f), y(0.0f), z(0.0f)
{}
Vector3(float x, float y, float z)
: x(x), y(y), z(z)
{}
Vector3(const Vector2 &v)
: x(v.x), y(v.y), z(0.0f)
{}
/**
* Calculates the cross product of two Vectors.
* @return The cross product of the two Vectors.
* Gets the length of the Vector.
**/
float operator ^ (const Vector &v) const;
bool operator == (const Vector &v) const;
bool operator < (const Vector &v) const;
/**
* Gets the x value of the Vector.
* @return The x value of the Vector.
**/
float getX() const;
float getLength() const;
float getLengthSquare() const;
/**
* Gets the x value of the Vector.
* @return The x value of the Vector.
* Normalizes the Vector.
* @param length Desired length of the vector.
* @return The old length of the Vector.
**/
float getY() const;
float normalize(float length = 1.0);
static inline float dot(const Vector3 &a, const Vector3 &b);
static inline Vector3 cross(const Vector3 &a, const Vector3 &b);
/**
* Sets the x value of the Vector.
* @param x The x value of the Vector.
* Adds a Vector to this Vector.
**/
void setX(float x);
Vector3 operator + (const Vector3 &v) const;
/**
* Sets the x value of the Vector.
* @param y The x value of the Vector.
* Substracts a Vector from this Vector.
**/
void setY(float y);
Vector3 operator - (const Vector3 &v) const;
};
/**
* Component-wise multiplies the Vector by a scalar.
**/
Vector3 operator * (float s) const;
inline float Vector::getLength() const
/**
* Component-wise divides the Vector by a scalar.
**/
Vector3 operator / (float s) const;
/**
* Component-wise negates the Vector.
**/
Vector3 operator - () const;
/**
* Adds a Vector to this Vector, and also saves changes in the first Vector.
**/
void operator += (const Vector3 &v);
/**
* Subtracts a Vector to this Vector, and also saves changes in the first Vector.
**/
void operator -= (const Vector3 &v);
/**
* Resizes the Vector, and also saves changes in the first Vector.
**/
void operator *= (float s);
/**
* Resizes the Vector, and also saves changes in the first Vector.
**/
void operator /= (float s);
bool operator == (const Vector3 &v) const;
bool operator != (const Vector3 &v) const;
}; // Vector3
inline float Vector2::getLength() const
{
return sqrtf(x*x + y*y);
}
inline Vector Vector::getNormal() const
inline float Vector2::getLengthSquare() const
{
return Vector(-y, x);
return x*x + y*y;
}
inline Vector Vector::getNormal(float scale) const
inline Vector2 Vector2::getNormal() const
{
return Vector(-y * scale, x * scale);
return Vector2(-y, x);
}
inline float Vector::normalize(float length)
inline Vector2 Vector2::getNormal(float scale) const
{
return Vector2(-y * scale, x * scale);
}
inline float Vector2::dot(const Vector2 &a, const Vector2 &b)
{
return a.x * b.x + a.y * b.y;
}
inline float Vector2::cross(const Vector2 &a, const Vector2 &b)
{
return a.x * b.y - a.y * b.x;
}
inline float Vector2::normalize(float length)
{
float length_current = getLength();
if (length_current > 0)
@@ -211,113 +248,161 @@ inline float Vector::normalize(float length)
return length_current;
}
/**
* Inline methods must have body in header.
**/
inline Vector::Vector()
: x(0.0f)
, y(0.0f)
inline Vector2 Vector2::operator + (const Vector2 &v) const
{
return Vector2(x + v.x, y + v.y);
}
inline Vector::Vector(float x, float y)
: x(x)
, y(y)
inline Vector2 Vector2::operator - (const Vector2 &v) const
{
return Vector2(x - v.x, y - v.y);
}
inline Vector Vector::operator + (const Vector &v) const
inline Vector2 Vector2::operator * (float s) const
{
return Vector(x + v.x, y + v.y);
return Vector2(x*s, y*s);
}
inline Vector Vector::operator - (const Vector &v) const
inline Vector2 Vector2::operator / (float s) const
{
return Vector(x - v.getX(), y - v.getY());
float invs = 1.0f / s;
return Vector2(x*invs, y*invs);
}
inline Vector Vector::operator * (float s) const
inline Vector2 Vector2::operator - () const
{
return Vector(x*s, y*s);
return Vector2(-x, -y);
}
inline Vector Vector::operator / (float s) const
inline void Vector2::operator += (const Vector2 &v)
{
return Vector(x/s, y/s);
x += v.x;
y += v.y;
}
inline Vector Vector::operator - () const
inline void Vector2::operator -= (const Vector2 &v)
{
return Vector(-x, -y);
x -= v.x;
y -= v.y;
}
inline void Vector::operator += (const Vector &v)
{
x += v.getX();
y += v.getY();
}
inline void Vector::operator -= (const Vector &v)
{
x -= v.getX();
y -= v.getY();
}
inline void Vector::operator *= (float s)
inline void Vector2::operator *= (float s)
{
x *= s;
y *= s;
}
inline void Vector::operator /= (float s)
inline void Vector2::operator /= (float s)
{
x /= s;
y /= s;
float invs = 1.0f / s;
x *= invs;
y *= invs;
}
inline float Vector::operator * (const Vector &v) const
inline bool Vector2::operator == (const Vector2 &v) const
{
return x * v.getX() + y * v.getY();
return x == v.x && y == v.y;
}
inline float Vector::operator ^ (const Vector &v) const
inline bool Vector2::operator != (const Vector2 &v) const
{
return x * v.getY() - y * v.getX();
return x != v.x || y != v.y;
}
inline bool Vector::operator == (const Vector &v) const
inline float Vector3::getLength() const
{
return getLength() == v.getLength();
return sqrtf(x*x + y*y + z*z);
}
inline bool Vector::operator < (const Vector &v) const
inline float Vector3::getLengthSquare() const
{
return getLength() < v.getLength();
return x*x + y*y + z*z;
}
/**
* Accessor methods
**/
inline float Vector::getX() const
inline float Vector3::dot(const Vector3 &a, const Vector3 &b)
{
return x;
return a.x * b.x + a.y * b.y + a.z * b.z;
}
inline float Vector::getY() const
inline Vector3 Vector3::cross(const Vector3 &a, const Vector3 &b)
{
return y;
return Vector3(a.y*b.z - a.z*b.y, a.z*b.x - a.x*b.z, a.x*b.y - a.y*b.x);
}
inline void Vector::setX(float x)
inline float Vector3::normalize(float length)
{
this->x = x;
float length_current = getLength();
if (length_current > 0)
(*this) *= length / length_current;
return length_current;
}
inline void Vector::setY(float y)
inline Vector3 Vector3::operator + (const Vector3 &v) const
{
this->y = y;
return Vector3(x + v.x, y + v.y, z + v.z);
}
inline Vector3 Vector3::operator - (const Vector3 &v) const
{
return Vector3(x - v.x, y - v.y, z - v.z);
}
inline Vector3 Vector3::operator * (float s) const
{
return Vector3(x*s, y*s, z*s);
}
inline Vector3 Vector3::operator / (float s) const
{
float invs = 1.0f / s;
return Vector3(x*invs, y*invs, z*invs);
}
inline Vector3 Vector3::operator - () const
{
return Vector3(-x, -y, -z);
}
inline void Vector3::operator += (const Vector3 &v)
{
x += v.x;
y += v.y;
z += v.z;
}
inline void Vector3::operator -= (const Vector3 &v)
{
x -= v.x;
y -= v.y;
z -= v.z;
}
inline void Vector3::operator *= (float s)
{
x *= s;
y *= s;
z *= s;
}
inline void Vector3::operator /= (float s)
{
float invs = 1.0f / s;
x *= invs;
y *= invs;
z *= invs;
}
inline bool Vector3::operator == (const Vector3 &v) const
{
return x == v.x && y == v.y && z == v.z;
}
inline bool Vector3::operator != (const Vector3 &v) const
{
return x != v.x || y != v.y || z != v.z;
}
} //love
+17 -1
View File
@@ -1,5 +1,5 @@
/**
* Copyright (c) 2006-2016 LOVE Development Team
* Copyright (c) 2006-2018 LOVE Development Team
*
* This software is provided 'as-is', without any express or implied
* warranty. In no event will the authors be held liable for any damages
@@ -225,6 +225,22 @@ bool createStorageDirectories()
return true;
}
bool hasBackgroundMusic()
{
JNIEnv *env = (JNIEnv*) SDL_AndroidGetJNIEnv();
jobject activity = (jobject) SDL_AndroidGetActivity();
jclass clazz(env->GetObjectClass(activity));
jmethodID method_id = env->GetMethodID(clazz, "hasBackgroundMusic", "()Z");
jboolean result = env->CallBooleanMethod(activity, method_id);
env->DeleteLocalRef(activity);
env->DeleteLocalRef(clazz);
return result;
}
} // android
} // love
+3 -1
View File
@@ -1,5 +1,5 @@
/**
* Copyright (c) 2006-2016 LOVE Development Team
* Copyright (c) 2006-2018 LOVE Development Team
*
* This software is provided 'as-is', without any express or implied
* warranty. In no event will the authors be held liable for any damages
@@ -66,6 +66,8 @@ bool mkdir(const char *path);
bool createStorageDirectories();
bool hasBackgroundMusic();
} // android
} // love
+112 -19
View File
@@ -1,5 +1,5 @@
/**
* Copyright (c) 2006-2016 LOVE Development Team
* Copyright (c) 2006-2018 LOVE Development Team
*
* This software is provided 'as-is', without any express or implied
* warranty. In no event will the authors be held liable for any damages
@@ -19,12 +19,98 @@
**/
#include "b64.h"
#include "Exception.h"
#include <limits>
#include <stdio.h>
namespace love
{
// Translation table as described in RFC1113
static const char cb64[]="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/";
// Translation table to decode (created by Bob Trower)
static const char cd64[]="|$$$}rstuvwxyz{$$$$$$$>?@ABCDEFGHIJKLMNOPQRSTUVW$$$$$$XYZ[\\]^_`abcdefghijklmnopq";
/**
* encode 3 8-bit binary bytes as 4 '6-bit' characters
**/
static void b64_encode_block(char in[3], char out[4], int len)
{
out[0] = (char) cb64[(int)((in[0] & 0xfc) >> 2)];
out[1] = (char) cb64[(int)(((in[0] & 0x03) << 4) | ((in[1] & 0xf0) >> 4))];
out[2] = (char) (len > 1 ? cb64[(int)(((in[1] & 0x0f) << 2) | ((in[2] & 0xc0) >> 6))] : '=');
out[3] = (char) (len > 2 ? cb64[(int)(in[2] & 0x3f)] : '=');
}
char *b64_encode(const char *src, size_t srclen, size_t linelen, size_t &dstlen)
{
if (linelen == 0)
linelen = std::numeric_limits<size_t>::max();
size_t blocksout = 0;
size_t srcpos = 0;
size_t adjustment = (srclen % 3) ? (3 - (srclen % 3)) : 0;
size_t paddedlen = ((srclen + adjustment) / 3) * 4;
dstlen = paddedlen + paddedlen / linelen;
if (dstlen == 0)
return nullptr;
char *dst = nullptr;
try
{
dst = new char[dstlen + 1];
}
catch (std::exception &)
{
throw love::Exception("Out of memory.");
}
size_t dstpos = 0;
while (srcpos < srclen)
{
char in[3] = {0};
char out[4] = {0};
int len = 0;
for (int i = 0; i < 3; i++)
{
if (srcpos >= srclen)
break;
in[i] = src[srcpos++];
len++;
}
if (len > 0)
{
b64_encode_block(in, out, len);
for (int i = 0; i < 4 && dstpos < dstlen; i++, dstpos++)
dst[dstpos] = out[i];
blocksout++;
}
if (blocksout >= linelen / 4 || srcpos >= srclen)
{
if (blocksout > 0 && dstpos < dstlen)
dst[dstpos++] = '\n';
blocksout = 0;
}
}
dst[dstpos] = '\0';
return dst;
}
static void b64_decode_block(char in[4], char out[3])
{
out[0] = (char)(in[0] << 2 | in[1] >> 4);
@@ -32,36 +118,44 @@ static void b64_decode_block(char in[4], char out[3])
out[2] = (char)(((in[2] << 6) & 0xc0) | in[3]);
}
char *b64_decode(const char *src, int slen, int &size)
char *b64_decode(const char *src, size_t srclen, size_t &size)
{
// Actual output may be smaller due to padding and/or whitespace in the
// base64-encoded string.
int max_size = (slen / 4) * 3;
size_t paddedsize = (srclen / 4) * 3;
char *dst = nullptr;
try
{
dst = new char[paddedsize];
}
catch (std::exception &)
{
throw love::Exception("Out of memory.");
}
char *dst = new char[max_size];
char *d = dst;
char in[4] = {0}, out[3], v;
int i, len, pos = 0;
char in[4] = {0};
char out[3] = {0};
size_t i, len, srcpos = 0;
while (pos <= slen)
while (srcpos <= srclen)
{
for (len = 0, i = 0; i < 4 && pos <= slen; i++)
for (len = 0, i = 0; i < 4 && srcpos <= srclen; i++)
{
v = 0;
char v = 0;
while (pos <= slen && v == 0)
while (srcpos <= srclen && v == 0)
{
v = src[pos++];
v = src[srcpos++];
v = (char)((v < 43 || v > 122) ? 0 : cd64[v - 43]);
if (v)
if (v != 0)
v = (char)((v == '$') ? 0 : v - 61);
}
if (pos <= slen)
if (srcpos <= srclen)
{
len++;
if (v)
if (v != 0)
in[i] = (char)(v - 1);
}
else
@@ -72,12 +166,11 @@ char *b64_decode(const char *src, int slen, int &size)
{
b64_decode_block(in, out);
for (i = 0; i < len - 1; i++)
*(d++) = out[i];
*(d++) = out[i];
}
}
size = int(d - dst);
size = (size_t)(ptrdiff_t) (d - dst);
return dst;
}
+18 -4
View File
@@ -1,5 +1,5 @@
/**
* Copyright (c) 2006-2016 LOVE Development Team
* Copyright (c) 2006-2018 LOVE Development Team
*
* This software is provided 'as-is', without any express or implied
* warranty. In no event will the authors be held liable for any damages
@@ -20,21 +20,35 @@
#include "config.h"
#include <stddef.h>
#ifndef LOVE_B64_H
#define LOVE_B64_H
namespace love
{
/**
* Base64-encode data.
*
* @param src The data to encode.
* @param srclen The size in bytes of the data.
* @param linelen The maximum length of each line in the encoded string.
* 0 indicates no maximum length.
* @param dstlen The length of the encoded string is stored here.
* @return A string containing the base64-encoded data (allocated with new[]).
*/
char *b64_encode(const char *src, size_t srclen, size_t linelen, size_t &dstlen);
/**
* Decode base64 encoded data.
*
* @param src The string containing the base64 data.
* @param slen The length of the string.
* @param size The size of the binary data is stored here.
* @param srclen The length of the string.
* @param dstlen The size of the binary data is stored here.
* @return A chunk of memory containing the binary data (allocated with new[]).
*/
char *b64_decode(const char *src, int slen, int &size);
char *b64_decode(const char *src, size_t srclen, size_t &dstlen);
} // love
+41 -36
View File
@@ -1,5 +1,5 @@
/**
* Copyright (c) 2006-2016 LOVE Development Team
* Copyright (c) 2006-2018 LOVE Development Team
*
* This software is provided 'as-is', without any express or implied
* warranty. In no event will the authors be held liable for any damages
@@ -26,7 +26,7 @@
# define LOVE_WINDOWS 1
// If _USING_V110_SDK71_ is defined it means we are using the xp toolset.
# if defined(_MSC_VER) && (_MSC_VER >= 1700) && !_USING_V110_SDK71_
# include <winapifamily.h>
# include <winapifamily.h>
# if WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_APP) && !WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_DESKTOP)
# define LOVE_WINDOWS_UWP 1
# define LOVE_NO_MODPLUG 1
@@ -60,6 +60,22 @@
# define LOVE_LITTLE_ENDIAN 1
#endif
// SSE instructions.
#if defined(__SSE__)
# define LOVE_SIMD_SSE
#elif defined(_MSC_VER)
# if defined(_M_AMD64) || defined(_M_X64)
# define LOVE_SIMD_SSE
# elif _M_IX86_FP
# define LOVE_SIMD_SSE
# endif
#endif
// NEON instructions.
#if defined(__ARM_NEON)
# define LOVE_SIMD_NEON
#endif
// Warnings.
#ifndef _CRT_SECURE_NO_WARNINGS
# define _CRT_SECURE_NO_WARNINGS
@@ -70,6 +86,16 @@
# define LOVE_UNUSED(x) (void)sizeof(x)
#endif
// Warn on unused return values
#ifdef __GNUC__
# define LOVE_WARN_UNUSED __attribute__((warn_unused_result))
#elif _MSC_VER
# define LOVE_WARN_UNUSED _Check_return_
#else
# define LOVE_WARN_UNUSED
#endif
#ifndef LOVE_BUILD
# define LOVE_BUILD
# define LOVE_BUILD_STANDALONE
@@ -111,51 +137,30 @@
# define LOVE_LITTLE_ENDIAN 1
# endif
#else
# define LOVE_ENABLE_AUDIO
# define LOVE_ENABLE_AUDIO_NULL
# define LOVE_ENABLE_AUDIO_OPENAL
# define LOVE_ENABLE_BOX2D
# define LOVE_ENABLE_DDSPARSE
# define LOVE_ENABLE_ENET
# define LOVE_ENABLE_EVENT
# define LOVE_ENABLE_EVENT_SDL
# define LOVE_ENABLE_FILESYSTEM
# define LOVE_ENABLE_FILESYSTEM_PHYSFS
# define LOVE_ENABLE_FONT
# define LOVE_ENABLE_FONT_FREETYPE
# define LOVE_ENABLE_GRAPHICS
# define LOVE_ENABLE_GRAPHICS_OPENGL
# define LOVE_ENABLE_IMAGE
# define LOVE_ENABLE_IMAGE_MAGPIE
# define LOVE_ENABLE_JOYSTICK
# define LOVE_ENABLE_JOYSTICK_SDL
# define LOVE_ENABLE_KEYBOARD
# define LOVE_ENABLE_KEYBOARD_SDL
# define LOVE_ENABLE_LOVE
# define LOVE_ENABLE_LUASOCKET
# define LOVE_ENABLE_LUAUTF8
# define LOVE_ENABLE_AUDIO
# define LOVE_ENABLE_DATA
# define LOVE_ENABLE_EVENT
# define LOVE_ENABLE_FILESYSTEM
# define LOVE_ENABLE_FONT
# define LOVE_ENABLE_GRAPHICS
# define LOVE_ENABLE_IMAGE
# define LOVE_ENABLE_JOYSTICK
# define LOVE_ENABLE_KEYBOARD
# define LOVE_ENABLE_MATH
# define LOVE_ENABLE_MOUSE
# define LOVE_ENABLE_MOUSE_SDL
# define LOVE_ENABLE_NOISE1234
# define LOVE_ENABLE_PHYSICS
# define LOVE_ENABLE_PHYSICS_BOX2D
# define LOVE_ENABLE_SOUND
# define LOVE_ENABLE_SOUND_LULLABY
# define LOVE_ENABLE_SYSTEM
# define LOVE_ENABLE_SYSTEM_SDL
# define LOVE_ENABLE_THREAD
# define LOVE_ENABLE_THREAD_SDL
# define LOVE_ENABLE_TIMER
# define LOVE_ENABLE_TIMER_SDL
# define LOVE_ENABLE_TOUCH
# define LOVE_ENABLE_TOUCH_SDL
# define LOVE_ENABLE_UTF8
# define LOVE_ENABLE_VIDEO
# define LOVE_ENABLE_VIDEO_THEORA
# define LOVE_ENABLE_WINDOW
# define LOVE_ENABLE_WINDOW_SDL
# define LOVE_ENABLE_WUFF
# define LOVE_ENABLE_ENET
# define LOVE_ENABLE_LUASOCKET
# define LOVE_ENABLE_LUA53
#endif
// Check we have a sane configuration
+3 -1
View File
@@ -1,5 +1,5 @@
/**
* Copyright (c) 2006-2016 LOVE Development Team
* Copyright (c) 2006-2018 LOVE Development Team
*
* This software is provided 'as-is', without any express or implied
* warranty. In no event will the authors be held liable for any damages
@@ -27,6 +27,8 @@ namespace love
void sleep(unsigned int ms)
{
// We don't need to initialize the SDL timer subsystem for SDL_Delay to
// function - and doing so causes SDL to create a worker thread.
SDL_Delay(ms);
}
+1 -1
View File
@@ -1,5 +1,5 @@
/**
* Copyright (c) 2006-2016 LOVE Development Team
* Copyright (c) 2006-2018 LOVE Development Team
*
* This software is provided 'as-is', without any express or implied
* warranty. In no event will the authors be held liable for any damages
@@ -0,0 +1,187 @@
/**
* Copyright (c) 2006-2018 LOVE Development Team
*
* 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.
**/
#include "common/config.h"
#include "deprecation.h"
#include "thread/threads.h"
#include <atomic>
#include <map>
namespace love
{
static std::map<std::string, DeprecationInfo> *deprecated = nullptr;
static std::vector<const DeprecationInfo *> *deprecatedList = nullptr;
static std::atomic<int> initCount;
static thread::Mutex *mutex = nullptr;
static bool outputEnabled = false;
void initDeprecation()
{
if (initCount.fetch_add(1) == 0)
{
mutex = thread::newMutex();
// These are heap-allocated because we want to clear them on deinit,
// and deinit may be called when the program is shutting down in the
// middle of static variable cleanup (eg in the Math module destructor).
// Calling std::map::clear() in that case was causing segfaults.
deprecated = new std::map<std::string, DeprecationInfo>();
deprecatedList = new std::vector<const DeprecationInfo *>();
}
}
void deinitDeprecation()
{
if (initCount.fetch_sub(1) == 1)
{
delete deprecated;
delete deprecatedList;
delete mutex;
deprecated = nullptr;
deprecatedList = nullptr;
mutex = nullptr;
}
}
static void printDeprecationNotice(const DeprecationInfo &info)
{
std::string notice = getDeprecationNotice(info, true);
printf("LOVE - Warning: %s\n", notice.c_str());
}
void setDeprecationOutputEnabled(bool enable)
{
if (enable == outputEnabled)
return;
outputEnabled = enable;
if (enable)
{
GetDeprecated deprecated;
for (const DeprecationInfo *info : deprecated.all)
{
if (info->uses == 1)
printDeprecationNotice(*info);
}
}
}
bool isDeprecationOutputEnabled()
{
return outputEnabled;
}
std::string getDeprecationNotice(const DeprecationInfo &info, bool usewhere)
{
std::string notice;
if (usewhere)
notice += info.where;
notice += "Using deprecated ";
if (info.apiType == API_FUNCTION)
notice += "function ";
else if (info.apiType == API_METHOD)
notice += "method ";
else if (info.apiType == API_FIELD)
notice += "field ";
else if (info.apiType == API_CONSTANT)
notice += "constant ";
else
notice += "API ";
notice += info.name;
if (info.type == DEPRECATED_REPLACED && !info.replacement.empty())
notice += " (replaced by " + info.replacement + ")";
else if (info.type == DEPRECATED_RENAMED && !info.replacement.empty())
notice += " (renamed to " + info.replacement + ")";
return notice;
}
GetDeprecated::GetDeprecated()
: all(*deprecatedList)
{
if (mutex != nullptr)
mutex->lock();
}
GetDeprecated::~GetDeprecated()
{
if (mutex != nullptr)
mutex->unlock();
}
MarkDeprecated::MarkDeprecated(const char *name, APIType api)
: MarkDeprecated(name, api, DEPRECATED_NO_REPLACEMENT, nullptr)
{
}
MarkDeprecated::MarkDeprecated(const char *name, APIType api, DeprecationType type, const char *replacement)
: info(nullptr)
{
if (mutex != nullptr)
mutex->lock();
auto it = deprecated->find(name);
if (it != deprecated->end())
{
it->second.uses++;
info = &it->second;
}
else
{
DeprecationInfo newinfo = {};
newinfo.type = type;
newinfo.apiType = api;
newinfo.uses = 1;
newinfo.name = name;
if (replacement != nullptr)
newinfo.replacement = replacement;
auto inserted = deprecated->insert(std::make_pair(newinfo.name, newinfo));
info = &inserted.first->second;
deprecatedList->push_back(info);
}
}
MarkDeprecated::~MarkDeprecated()
{
if (outputEnabled && info != nullptr && info->uses == 1)
printDeprecationNotice(*info);
if (mutex != nullptr)
mutex->unlock();
}
} // love
@@ -0,0 +1,81 @@
/**
* Copyright (c) 2006-2018 LOVE Development Team
*
* 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.
**/
#pragma once
#include "int.h"
#include <string>
#include <vector>
namespace love
{
enum APIType
{
API_FUNCTION,
API_METHOD,
API_FIELD,
API_CONSTANT,
};
enum DeprecationType
{
DEPRECATED_NO_REPLACEMENT,
DEPRECATED_REPLACED,
DEPRECATED_RENAMED,
};
struct DeprecationInfo
{
DeprecationType type;
APIType apiType;
int64 uses;
std::string name;
std::string replacement;
std::string where;
};
void initDeprecation();
void deinitDeprecation();
void setDeprecationOutputEnabled(bool enable);
bool isDeprecationOutputEnabled();
std::string getDeprecationNotice(const DeprecationInfo &info, bool usewhere);
struct GetDeprecated
{
GetDeprecated();
~GetDeprecated();
const std::vector<const DeprecationInfo *> &all;
};
struct MarkDeprecated
{
MarkDeprecated(const char *name, APIType api);
MarkDeprecated(const char *name, APIType api, DeprecationType type, const char *replacement);
~MarkDeprecated();
DeprecationInfo *info;
};
} // love
+156
View File
@@ -0,0 +1,156 @@
/**
* Copyright (c) 2006-2018 LOVE Development Team
*
* 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.
**/
#include "halffloat.h"
namespace love
{
// Code from ftp://www.fox-toolkit.org/pub/fasthalffloatconversion.pdf
static bool initialized = false;
// tables for half -> float conversions
static uint32 mantissatable[2048];
static uint16 offsettable[64];
static uint32 exponenttable[64];
// tables for float -> half conversions
static uint16 basetable[512];
static uint8 shifttable[512];
static uint32 convertMantissa(uint32 i)
{
uint32 m = i << 13; // Zero pad mantissa bits
uint32 e = 0; // Zero exponent
while (!(m & 0x00800000)) // While not normalized
{
e -= 0x00800000; // Decrement exponent (1<<23)
m <<= 1; // Shift mantissa
}
m &= ~(0x00800000); // Clear leading 1 bit
e += 0x38800000; // Adjust bias ((127-14)<<23)
return m | e; // Return combined number
}
void halfInit()
{
if (initialized)
return;
initialized = true;
// tables for half -> float conversions.
mantissatable[0] = 0;
for (uint32 i = 1; i < 1024; i++)
mantissatable[i] = convertMantissa(i);
for (uint32 i = 1024; i < 2048; i++)
mantissatable[i] = 0x38000000 + ((i - 1024) << 13);
exponenttable[0] = 0;
exponenttable[32] = 0x80000000;
for (uint32 i = 0; i < 31; i++)
exponenttable[i] = i << 23;
for (uint32 i = 33; i < 63; i++)
exponenttable[i] = 0x80000000 + ((i - 32) << 23);
exponenttable[31] = 0x47800000;
exponenttable[63] = 0xC7800000;
for (int i = 0; i < 64; i++)
{
if (i == 0 || i == 32)
offsettable[i] = 0;
else
offsettable[i] = 1024;
}
// tables for float -> half conversions.
for (uint32 i = 0; i < 256; i++)
{
int e = (int) i - 127;
if (e < -24) // Very small numbers map to zero
{
basetable[i | 0x000] = 0x0000;
basetable[i | 0x100] = 0x8000;
shifttable[i | 0x000] = 24;
shifttable[i | 0x100] = 24;
}
else if (e < -14) // Small numbers map to denorms
{
basetable[i | 0x000] = (0x0400 >> (-e - 14));
basetable[i | 0x100] = (0x0400 >> (-e - 14)) | 0x8000;
shifttable[i | 0x000] = -e - 1;
shifttable[i | 0x100] = -e - 1;
}
else if (e <= 15) // Normal numbers just lose precision
{
basetable[i | 0x000] = ((e + 15) << 10);
basetable[i | 0x100] = ((e + 15) << 10) | 0x8000;
shifttable[i | 0x000] = 13;
shifttable[i | 0x100] = 13;
}
else if (e < 128) // Large numbers map to Infinity
{
basetable[i | 0x000] = 0x7C00;
basetable[i | 0x100] = 0xFC00;
shifttable[i | 0x000] = 24;
shifttable[i | 0x100] = 24;
}
else // Infinity and NaN's stay Infinity and NaN's
{
basetable[i | 0x000] = 0x7C00;
basetable[i | 0x100] = 0xFC00;
shifttable[i | 0x000] = 13;
shifttable[i | 0x100] = 13;
}
}
}
float halfToFloat(half h)
{
union { float f; uint32 i; } conv;
conv.i = mantissatable[offsettable[h >> 10] + (h & 0x3FF)] + exponenttable[h >> 10];
return conv.f;
}
half floatToHalf(float f)
{
union { float f; uint32 i; } conv;
conv.f = f;
return basetable[(conv.i >> 23) & 0x1FF] + ((conv.i & 0x007FFFFF) >> shifttable[(conv.i >> 23) & 0x1FF]);
}
} // love
+38
View File
@@ -0,0 +1,38 @@
/**
* Copyright (c) 2006-2018 LOVE Development Team
*
* 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.
**/
#ifndef LOVE_HALF_FLOAT_H
#define LOVE_HALF_FLOAT_H
#include "int.h"
namespace love
{
typedef uint16 half;
void halfInit();
float halfToFloat(half h);
half floatToHalf(float f);
} // love
#endif // LOVE_HALF_FLOAT_H
+1 -1
View File
@@ -1,5 +1,5 @@
/**
* Copyright (c) 2006-2016 LOVE Development Team
* Copyright (c) 2006-2018 LOVE Development Team
*
* This software is provided 'as-is', without any express or implied
* warranty. In no event will the authors be held liable for any damages
+11 -1
View File
@@ -1,5 +1,5 @@
/**
* Copyright (c) 2006-2016 LOVE Development Team
* Copyright (c) 2006-2018 LOVE Development Team
*
* This software is provided 'as-is', without any express or implied
* warranty. In no event will the authors be held liable for any damages
@@ -64,6 +64,16 @@ std::string getExecutablePath();
**/
void vibrate();
/**
* Enable mix mode (e.g. with background music apps) and playback with a muted device.
**/
void setAudioMixWithOthers(bool mixEnabled);
/**
* Returns whether another application is playing audio.
**/
bool hasBackgroundMusic();
} // ios
} // love

Some files were not shown because too many files have changed in this diff Show More