├── .gitattributes ├── .gitignore ├── Readme.md ├── android ├── app │ ├── build.gradle │ ├── proguard-rules.pro │ └── src │ │ └── main │ │ ├── AndroidManifest.xml │ │ ├── ic_launcher-web.png │ │ ├── java │ │ └── com │ │ │ └── jaredforsyth │ │ │ └── reprocessing_example │ │ │ └── MainActivity.java │ │ ├── jniLibs │ │ ├── armeabi-v7a │ │ │ ├── libasmrun_shared.so │ │ │ └── libreasongl.so │ │ └── x86 │ │ │ └── libreasongl.so │ │ └── res │ │ ├── layout │ │ └── activity_main.xml │ │ ├── mipmap-hdpi │ │ └── ic_launcher.png │ │ ├── mipmap-mdpi │ │ └── ic_launcher.png │ │ ├── mipmap-xhdpi │ │ └── ic_launcher.png │ │ ├── mipmap-xxhdpi │ │ └── ic_launcher.png │ │ ├── mipmap-xxxhdpi │ │ └── ic_launcher.png │ │ ├── values-w820dp │ │ └── dimens.xml │ │ └── values │ │ ├── colors.xml │ │ ├── dimens.xml │ │ ├── strings.xml │ │ └── styles.xml ├── build.gradle ├── gradle.properties ├── gradle │ └── wrapper │ │ ├── gradle-wrapper.jar │ │ └── gradle-wrapper.properties ├── gradlew ├── gradlew.bat └── settings.gradle ├── assets ├── Arial-Black-32.fnt ├── Arial-Black-64.fnt ├── SFCompactDisplay-Regular-16.fnt ├── arial.png ├── player.png ├── player2.png ├── star.png └── ultralight.png ├── bsconfig.json ├── icons ├── icon.png ├── icon.sketch ├── icon_120.png ├── icon_180.png └── icon_512.png ├── ios ├── App.xcodeproj │ ├── project.pbxproj │ └── project.xcworkspace │ │ ├── contents.xcworkspacedata │ │ └── xcshareddata │ │ └── OCamlTest.xcscmblueprint ├── App │ ├── AppDelegate.h │ ├── AppDelegate.m │ ├── Assets.xcassets │ │ └── AppIcon.appiconset │ │ │ ├── Contents.json │ │ │ ├── icon.png │ │ │ ├── icon_120-1.png │ │ │ ├── icon_120-2.png │ │ │ ├── icon_120-3.png │ │ │ ├── icon_120-4.png │ │ │ ├── icon_120-5.png │ │ │ ├── icon_120-6.png │ │ │ ├── icon_120.png │ │ │ └── icon_180.png │ ├── Base.lproj │ │ └── Main.storyboard │ ├── Info.plist │ ├── LaunchScreen.storyboard │ ├── background.png │ └── main.m ├── libreasongl.a └── reprocessing ├── package-lock.json ├── package.json ├── public └── index.html └── src ├── Game.re ├── android.re ├── androidhot.re ├── dev.re ├── indexhot.re ├── ios.re ├── prod.re ├── web.re └── webhot.re /.gitattributes: -------------------------------------------------------------------------------- 1 | package-lock.json binary 2 | -------------------------------------------------------------------------------- /.gitignore: -------------------------------------------------------------------------------- 1 | .DS_Store 2 | .merlin 3 | .bsb.lock 4 | npm-debug.log 5 | /lib/ 6 | /node_modules/ 7 | user_data_highest_beaten_level 8 | bundler/node_modules 9 | docs 10 | .vscode 11 | bundler/Gravitron.app 12 | bundler/Gravitron.zip 13 | user_data_gravitron_data 14 | _build 15 | *.iml 16 | *.apk 17 | android/app/build 18 | android/build 19 | .gradle 20 | .idea 21 | ios/Build 22 | *.xcuserdatad 23 | android/local.properties 24 | keystore.properties 25 | public/assets 26 | android/app/src/main/assets 27 | CamlQuest.app 28 | -------------------------------------------------------------------------------- /Readme.md: -------------------------------------------------------------------------------- 1 | # Setup 2 | 3 | First go to https://github.com/jaredly/ocaml-cross-mobile/ to set up your cross-compilers. 4 | 5 | Check out `package.json` to see what commands are available, or run `npm run` to see the list. 6 | 7 | NOTE: macos is the only development platform currently supported. 8 | 9 | # Development 10 | 11 | I recommend using native build + hot reloading for most of your development, and only build to web or mobile to check things out. 12 | 13 | `npm start` will get your bsb build going, and start the app. It will try to keep the app alive, by checking every second if it's died, and restarting it if it has. 14 | 15 | # iOS 16 | 17 | `npm run ios`, and then open the `./ios/App.xcodeproj` in Xcode to finish the build. 18 | 19 | # Android 20 | 21 | `npm run android` to build, or `npm run android:run` to build & install to the currently running emulator / attached device. 22 | 23 | # License 24 | 25 | This code is all licensed Creative Commons CC0 26 | -------------------------------------------------------------------------------- /android/app/build.gradle: -------------------------------------------------------------------------------- 1 | apply plugin: 'com.android.application' 2 | 3 | // def keystorePropertiesFile = rootProject.file("keystore.properties") 4 | // def keystoreProperties = new Properties() 5 | // keystoreProperties.load(new FileInputStream(keystorePropertiesFile)) 6 | 7 | task copyTask(type: Copy) { 8 | def toDir = rootProject.file('app/src/main/assets') 9 | from rootProject.file('../assets') 10 | into toDir 11 | } 12 | 13 | 14 | android { 15 | // signingConfigs { 16 | // config { 17 | // keyAlias keystoreProperties['keyAlias'] 18 | // keyPassword keystoreProperties['keyPassword'] 19 | // storeFile file(keystoreProperties['storeFile']) 20 | // storePassword keystoreProperties['storePassword'] 21 | // } 22 | // } 23 | compileSdkVersion = 21 24 | buildToolsVersion = '25.0.0' 25 | defaultConfig { 26 | applicationId = 'com.jaredforsyth.reprocessing_example' 27 | minSdkVersion 21 28 | targetSdkVersion 21 29 | versionCode = 3 30 | versionName = '1.2' 31 | // signingConfig signingConfigs.config 32 | } 33 | buildTypes { 34 | debug { 35 | 36 | copyTask.execute() 37 | } 38 | release { 39 | minifyEnabled false 40 | copyTask.execute() 41 | proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro' 42 | // signingConfig signingConfigs.config 43 | } 44 | } 45 | productFlavors { 46 | } 47 | } 48 | 49 | dependencies { 50 | compile fileTree(include: ['*.jar'], dir: 'libs') 51 | compile 'com.android.support:appcompat-v7:21.0.0' 52 | compile 'com.android.support.constraint:constraint-layout:1.0.0-alpha2' 53 | compile project(':reasongl-android') 54 | } 55 | -------------------------------------------------------------------------------- /android/app/proguard-rules.pro: -------------------------------------------------------------------------------- 1 | # Add project specific ProGuard rules here. 2 | # By default, the flags in this file are appended to flags specified 3 | # in /Users/gfan/dev/sdk_current/tools/proguard/proguard-android.txt 4 | # You can edit the include path and order by changing the proguardFiles 5 | # directive in build.gradle. 6 | # 7 | # For more details, see 8 | # http://developer.android.com/guide/developing/tools/proguard.html 9 | 10 | # Add any project specific keep options here: 11 | 12 | # If your project uses WebView with JS, uncomment the following 13 | # and specify the fully qualified class name to the JavaScript interface 14 | # class: 15 | #-keepclassmembers class fqcn.of.javascript.interface.for.webview { 16 | # public *; 17 | #} 18 | -------------------------------------------------------------------------------- /android/app/src/main/AndroidManifest.xml: -------------------------------------------------------------------------------- 1 | 2 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 18 | 20 | 21 | 22 | 23 | 24 | 25 | 26 | 27 | 28 | -------------------------------------------------------------------------------- /android/app/src/main/ic_launcher-web.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jaredly/reprocessing-example-cross-platform/a9f4b2cd4b9c76445755e7e3ae31b7789157226b/android/app/src/main/ic_launcher-web.png -------------------------------------------------------------------------------- /android/app/src/main/java/com/jaredforsyth/reprocessing_example/MainActivity.java: -------------------------------------------------------------------------------- 1 | package com.jaredforsyth.reprocessing_example; 2 | 3 | import com.jaredforsyth.reasongl.ReasonglActivity; 4 | 5 | public class MainActivity extends ReasonglActivity { 6 | // Nothing to override at the moment. 7 | } 8 | -------------------------------------------------------------------------------- /android/app/src/main/jniLibs/armeabi-v7a/libasmrun_shared.so: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jaredly/reprocessing-example-cross-platform/a9f4b2cd4b9c76445755e7e3ae31b7789157226b/android/app/src/main/jniLibs/armeabi-v7a/libasmrun_shared.so -------------------------------------------------------------------------------- /android/app/src/main/jniLibs/armeabi-v7a/libreasongl.so: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jaredly/reprocessing-example-cross-platform/a9f4b2cd4b9c76445755e7e3ae31b7789157226b/android/app/src/main/jniLibs/armeabi-v7a/libreasongl.so -------------------------------------------------------------------------------- /android/app/src/main/jniLibs/x86/libreasongl.so: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jaredly/reprocessing-example-cross-platform/a9f4b2cd4b9c76445755e7e3ae31b7789157226b/android/app/src/main/jniLibs/x86/libreasongl.so -------------------------------------------------------------------------------- /android/app/src/main/res/layout/activity_main.xml: -------------------------------------------------------------------------------- 1 | 2 | 11 | 12 | 16 | 17 | -------------------------------------------------------------------------------- /android/app/src/main/res/mipmap-hdpi/ic_launcher.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jaredly/reprocessing-example-cross-platform/a9f4b2cd4b9c76445755e7e3ae31b7789157226b/android/app/src/main/res/mipmap-hdpi/ic_launcher.png -------------------------------------------------------------------------------- /android/app/src/main/res/mipmap-mdpi/ic_launcher.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jaredly/reprocessing-example-cross-platform/a9f4b2cd4b9c76445755e7e3ae31b7789157226b/android/app/src/main/res/mipmap-mdpi/ic_launcher.png -------------------------------------------------------------------------------- /android/app/src/main/res/mipmap-xhdpi/ic_launcher.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jaredly/reprocessing-example-cross-platform/a9f4b2cd4b9c76445755e7e3ae31b7789157226b/android/app/src/main/res/mipmap-xhdpi/ic_launcher.png -------------------------------------------------------------------------------- /android/app/src/main/res/mipmap-xxhdpi/ic_launcher.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jaredly/reprocessing-example-cross-platform/a9f4b2cd4b9c76445755e7e3ae31b7789157226b/android/app/src/main/res/mipmap-xxhdpi/ic_launcher.png -------------------------------------------------------------------------------- /android/app/src/main/res/mipmap-xxxhdpi/ic_launcher.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jaredly/reprocessing-example-cross-platform/a9f4b2cd4b9c76445755e7e3ae31b7789157226b/android/app/src/main/res/mipmap-xxxhdpi/ic_launcher.png -------------------------------------------------------------------------------- /android/app/src/main/res/values-w820dp/dimens.xml: -------------------------------------------------------------------------------- 1 | 2 | 5 | 64dp 6 | 7 | -------------------------------------------------------------------------------- /android/app/src/main/res/values/colors.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | #3F51B5 4 | #303F9F 5 | #FF4081 6 | 7 | -------------------------------------------------------------------------------- /android/app/src/main/res/values/dimens.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 16dp 4 | 16dp 5 | 6 | -------------------------------------------------------------------------------- /android/app/src/main/res/values/strings.xml: -------------------------------------------------------------------------------- 1 | 2 | Reprocessing Example 3 | 4 | -------------------------------------------------------------------------------- /android/app/src/main/res/values/styles.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 10 | 11 | 12 | -------------------------------------------------------------------------------- /android/build.gradle: -------------------------------------------------------------------------------- 1 | // Top-level build file where you can add configuration options common to all sub-projects/modules. 2 | 3 | buildscript { 4 | repositories { 5 | jcenter() 6 | } 7 | dependencies { 8 | classpath 'com.android.tools.build:gradle:2.3.0' 9 | } 10 | } 11 | 12 | allprojects { 13 | repositories { 14 | jcenter() 15 | } 16 | } 17 | 18 | task clean(type: Delete) { 19 | delete rootProject.buildDir 20 | } 21 | -------------------------------------------------------------------------------- /android/gradle.properties: -------------------------------------------------------------------------------- 1 | # Project-wide Gradle settings. 2 | 3 | # IDE (e.g. Android Studio) users: 4 | # Gradle settings configured through the IDE *will override* 5 | # any settings specified in this file. 6 | 7 | # For more details on how to configure your build environment visit 8 | # http://www.gradle.org/docs/current/userguide/build_environment.html 9 | 10 | # Specifies the JVM arguments used for the daemon process. 11 | # The setting is particularly useful for tweaking memory settings. 12 | # Default value: -Xmx10248m -XX:MaxPermSize=256m 13 | # org.gradle.jvmargs=-Xmx2048m -XX:MaxPermSize=512m -XX:+HeapDumpOnOutOfMemoryError -Dfile.encoding=UTF-8 14 | 15 | # When configured, Gradle will run in incubating parallel mode. 16 | # This option should only be used with decoupled projects. More details, visit 17 | # http://www.gradle.org/docs/current/userguide/multi_project_builds.html#sec:decoupled_projects 18 | # org.gradle.parallel=true -------------------------------------------------------------------------------- /android/gradle/wrapper/gradle-wrapper.jar: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jaredly/reprocessing-example-cross-platform/a9f4b2cd4b9c76445755e7e3ae31b7789157226b/android/gradle/wrapper/gradle-wrapper.jar -------------------------------------------------------------------------------- /android/gradle/wrapper/gradle-wrapper.properties: -------------------------------------------------------------------------------- 1 | #Thu Jul 27 17:46:02 PDT 2017 2 | distributionBase=GRADLE_USER_HOME 3 | distributionPath=wrapper/dists 4 | zipStoreBase=GRADLE_USER_HOME 5 | zipStorePath=wrapper/dists 6 | distributionUrl=https\://services.gradle.org/distributions/gradle-3.3-all.zip 7 | -------------------------------------------------------------------------------- /android/gradlew: -------------------------------------------------------------------------------- 1 | #!/usr/bin/env bash 2 | 3 | ############################################################################## 4 | ## 5 | ## Gradle start up script for UN*X 6 | ## 7 | ############################################################################## 8 | 9 | # Add default JVM options here. You can also use JAVA_OPTS and GRADLE_OPTS to pass JVM options to this script. 10 | DEFAULT_JVM_OPTS="" 11 | 12 | APP_NAME="Gradle" 13 | APP_BASE_NAME=`basename "$0"` 14 | 15 | # Use the maximum available, or set MAX_FD != -1 to use that value. 16 | MAX_FD="maximum" 17 | 18 | warn ( ) { 19 | echo "$*" 20 | } 21 | 22 | die ( ) { 23 | echo 24 | echo "$*" 25 | echo 26 | exit 1 27 | } 28 | 29 | # OS specific support (must be 'true' or 'false'). 30 | cygwin=false 31 | msys=false 32 | darwin=false 33 | case "`uname`" in 34 | CYGWIN* ) 35 | cygwin=true 36 | ;; 37 | Darwin* ) 38 | darwin=true 39 | ;; 40 | MINGW* ) 41 | msys=true 42 | ;; 43 | esac 44 | 45 | # Attempt to set APP_HOME 46 | # Resolve links: $0 may be a link 47 | PRG="$0" 48 | # Need this for relative symlinks. 49 | while [ -h "$PRG" ] ; do 50 | ls=`ls -ld "$PRG"` 51 | link=`expr "$ls" : '.*-> \(.*\)$'` 52 | if expr "$link" : '/.*' > /dev/null; then 53 | PRG="$link" 54 | else 55 | PRG=`dirname "$PRG"`"/$link" 56 | fi 57 | done 58 | SAVED="`pwd`" 59 | cd "`dirname \"$PRG\"`/" >/dev/null 60 | APP_HOME="`pwd -P`" 61 | cd "$SAVED" >/dev/null 62 | 63 | CLASSPATH=$APP_HOME/gradle/wrapper/gradle-wrapper.jar 64 | 65 | # Determine the Java command to use to start the JVM. 66 | if [ -n "$JAVA_HOME" ] ; then 67 | if [ -x "$JAVA_HOME/jre/sh/java" ] ; then 68 | # IBM's JDK on AIX uses strange locations for the executables 69 | JAVACMD="$JAVA_HOME/jre/sh/java" 70 | else 71 | JAVACMD="$JAVA_HOME/bin/java" 72 | fi 73 | if [ ! -x "$JAVACMD" ] ; then 74 | die "ERROR: JAVA_HOME is set to an invalid directory: $JAVA_HOME 75 | 76 | Please set the JAVA_HOME variable in your environment to match the 77 | location of your Java installation." 78 | fi 79 | else 80 | JAVACMD="java" 81 | which java >/dev/null 2>&1 || die "ERROR: JAVA_HOME is not set and no 'java' command could be found in your PATH. 82 | 83 | Please set the JAVA_HOME variable in your environment to match the 84 | location of your Java installation." 85 | fi 86 | 87 | # Increase the maximum file descriptors if we can. 88 | if [ "$cygwin" = "false" -a "$darwin" = "false" ] ; then 89 | MAX_FD_LIMIT=`ulimit -H -n` 90 | if [ $? -eq 0 ] ; then 91 | if [ "$MAX_FD" = "maximum" -o "$MAX_FD" = "max" ] ; then 92 | MAX_FD="$MAX_FD_LIMIT" 93 | fi 94 | ulimit -n $MAX_FD 95 | if [ $? -ne 0 ] ; then 96 | warn "Could not set maximum file descriptor limit: $MAX_FD" 97 | fi 98 | else 99 | warn "Could not query maximum file descriptor limit: $MAX_FD_LIMIT" 100 | fi 101 | fi 102 | 103 | # For Darwin, add options to specify how the application appears in the dock 104 | if $darwin; then 105 | GRADLE_OPTS="$GRADLE_OPTS \"-Xdock:name=$APP_NAME\" \"-Xdock:icon=$APP_HOME/media/gradle.icns\"" 106 | fi 107 | 108 | # For Cygwin, switch paths to Windows format before running java 109 | if $cygwin ; then 110 | APP_HOME=`cygpath --path --mixed "$APP_HOME"` 111 | CLASSPATH=`cygpath --path --mixed "$CLASSPATH"` 112 | JAVACMD=`cygpath --unix "$JAVACMD"` 113 | 114 | # We build the pattern for arguments to be converted via cygpath 115 | ROOTDIRSRAW=`find -L / -maxdepth 1 -mindepth 1 -type d 2>/dev/null` 116 | SEP="" 117 | for dir in $ROOTDIRSRAW ; do 118 | ROOTDIRS="$ROOTDIRS$SEP$dir" 119 | SEP="|" 120 | done 121 | OURCYGPATTERN="(^($ROOTDIRS))" 122 | # Add a user-defined pattern to the cygpath arguments 123 | if [ "$GRADLE_CYGPATTERN" != "" ] ; then 124 | OURCYGPATTERN="$OURCYGPATTERN|($GRADLE_CYGPATTERN)" 125 | fi 126 | # Now convert the arguments - kludge to limit ourselves to /bin/sh 127 | i=0 128 | for arg in "$@" ; do 129 | CHECK=`echo "$arg"|egrep -c "$OURCYGPATTERN" -` 130 | CHECK2=`echo "$arg"|egrep -c "^-"` ### Determine if an option 131 | 132 | if [ $CHECK -ne 0 ] && [ $CHECK2 -eq 0 ] ; then ### Added a condition 133 | eval `echo args$i`=`cygpath --path --ignore --mixed "$arg"` 134 | else 135 | eval `echo args$i`="\"$arg\"" 136 | fi 137 | i=$((i+1)) 138 | done 139 | case $i in 140 | (0) set -- ;; 141 | (1) set -- "$args0" ;; 142 | (2) set -- "$args0" "$args1" ;; 143 | (3) set -- "$args0" "$args1" "$args2" ;; 144 | (4) set -- "$args0" "$args1" "$args2" "$args3" ;; 145 | (5) set -- "$args0" "$args1" "$args2" "$args3" "$args4" ;; 146 | (6) set -- "$args0" "$args1" "$args2" "$args3" "$args4" "$args5" ;; 147 | (7) set -- "$args0" "$args1" "$args2" "$args3" "$args4" "$args5" "$args6" ;; 148 | (8) set -- "$args0" "$args1" "$args2" "$args3" "$args4" "$args5" "$args6" "$args7" ;; 149 | (9) set -- "$args0" "$args1" "$args2" "$args3" "$args4" "$args5" "$args6" "$args7" "$args8" ;; 150 | esac 151 | fi 152 | 153 | # Split up the JVM_OPTS And GRADLE_OPTS values into an array, following the shell quoting and substitution rules 154 | function splitJvmOpts() { 155 | JVM_OPTS=("$@") 156 | } 157 | eval splitJvmOpts $DEFAULT_JVM_OPTS $JAVA_OPTS $GRADLE_OPTS 158 | JVM_OPTS[${#JVM_OPTS[*]}]="-Dorg.gradle.appname=$APP_BASE_NAME" 159 | 160 | exec "$JAVACMD" "${JVM_OPTS[@]}" -classpath "$CLASSPATH" org.gradle.wrapper.GradleWrapperMain "$@" 161 | -------------------------------------------------------------------------------- /android/gradlew.bat: -------------------------------------------------------------------------------- 1 | @if "%DEBUG%" == "" @echo off 2 | @rem ########################################################################## 3 | @rem 4 | @rem Gradle startup script for Windows 5 | @rem 6 | @rem ########################################################################## 7 | 8 | @rem Set local scope for the variables with windows NT shell 9 | if "%OS%"=="Windows_NT" setlocal 10 | 11 | @rem Add default JVM options here. You can also use JAVA_OPTS and GRADLE_OPTS to pass JVM options to this script. 12 | set DEFAULT_JVM_OPTS= 13 | 14 | set DIRNAME=%~dp0 15 | if "%DIRNAME%" == "" set DIRNAME=. 16 | set APP_BASE_NAME=%~n0 17 | set APP_HOME=%DIRNAME% 18 | 19 | @rem Find java.exe 20 | if defined JAVA_HOME goto findJavaFromJavaHome 21 | 22 | set JAVA_EXE=java.exe 23 | %JAVA_EXE% -version >NUL 2>&1 24 | if "%ERRORLEVEL%" == "0" goto init 25 | 26 | echo. 27 | echo ERROR: JAVA_HOME is not set and no 'java' command could be found in your PATH. 28 | echo. 29 | echo Please set the JAVA_HOME variable in your environment to match the 30 | echo location of your Java installation. 31 | 32 | goto fail 33 | 34 | :findJavaFromJavaHome 35 | set JAVA_HOME=%JAVA_HOME:"=% 36 | set JAVA_EXE=%JAVA_HOME%/bin/java.exe 37 | 38 | if exist "%JAVA_EXE%" goto init 39 | 40 | echo. 41 | echo ERROR: JAVA_HOME is set to an invalid directory: %JAVA_HOME% 42 | echo. 43 | echo Please set the JAVA_HOME variable in your environment to match the 44 | echo location of your Java installation. 45 | 46 | goto fail 47 | 48 | :init 49 | @rem Get command-line arguments, handling Windowz variants 50 | 51 | if not "%OS%" == "Windows_NT" goto win9xME_args 52 | if "%@eval[2+2]" == "4" goto 4NT_args 53 | 54 | :win9xME_args 55 | @rem Slurp the command line arguments. 56 | set CMD_LINE_ARGS= 57 | set _SKIP=2 58 | 59 | :win9xME_args_slurp 60 | if "x%~1" == "x" goto execute 61 | 62 | set CMD_LINE_ARGS=%* 63 | goto execute 64 | 65 | :4NT_args 66 | @rem Get arguments from the 4NT Shell from JP Software 67 | set CMD_LINE_ARGS=%$ 68 | 69 | :execute 70 | @rem Setup the command line 71 | 72 | set CLASSPATH=%APP_HOME%\gradle\wrapper\gradle-wrapper.jar 73 | 74 | @rem Execute Gradle 75 | "%JAVA_EXE%" %DEFAULT_JVM_OPTS% %JAVA_OPTS% %GRADLE_OPTS% "-Dorg.gradle.appname=%APP_BASE_NAME%" -classpath "%CLASSPATH%" org.gradle.wrapper.GradleWrapperMain %CMD_LINE_ARGS% 76 | 77 | :end 78 | @rem End local scope for the variables with windows NT shell 79 | if "%ERRORLEVEL%"=="0" goto mainEnd 80 | 81 | :fail 82 | rem Set variable GRADLE_EXIT_CONSOLE if you need the _script_ return code instead of 83 | rem the _cmd.exe /c_ return code! 84 | if not "" == "%GRADLE_EXIT_CONSOLE%" exit 1 85 | exit /b 1 86 | 87 | :mainEnd 88 | if "%OS%"=="Windows_NT" endlocal 89 | 90 | :omega 91 | -------------------------------------------------------------------------------- /android/settings.gradle: -------------------------------------------------------------------------------- 1 | include ':app' 2 | include ':reasongl-android' 3 | project(':reasongl-android').projectDir = new File(rootProject.projectDir, '.././node_modules/@jaredly/reprocessing/node_modules/@jaredly/reasongl-android/android') // GENERATED -------------------------------------------------------------------------------- /assets/Arial-Black-32.fnt: -------------------------------------------------------------------------------- 1 | info face="Arial Black" size=32 bold=0 italic=0 charset="" unicode=1 stretchH=100 smooth=1 aa=2 padding=0,0,0,0 spacing=0,0 2 | common lineHeight=45 base=35 scaleW=512 scaleH=512 pages=1 packed=0 alphaChnl=0 redChnl=0 greenChnl=0 blueChnl=0 3 | page id=0 file="arial.png" 4 | chars count=95 5 | char id=32 x=0 y=0 width=0 height=0 xoffset=0 yoffset=0 xadvance=11 page=0 chnl=0 6 | char id=33 x=40 y=428 width=6 height=23 xoffset=2 yoffset=12 xadvance=11 page=0 chnl=0 7 | char id=34 x=79 y=498 width=15 height=8 xoffset=0 yoffset=12 xadvance=16 page=0 chnl=0 8 | char id=35 x=393 y=283 width=19 height=23 xoffset=1 yoffset=12 xadvance=21 page=0 chnl=0 9 | char id=36 x=328 y=336 width=19 height=28 xoffset=1 yoffset=10 xadvance=21 page=0 chnl=0 10 | char id=37 x=362 y=283 width=29 height=23 xoffset=1 yoffset=12 xadvance=32 page=0 chnl=0 11 | char id=38 x=414 y=283 width=26 height=23 xoffset=1 yoffset=12 xadvance=28 page=0 chnl=0 12 | char id=39 x=505 y=26 width=6 height=8 xoffset=1 yoffset=12 xadvance=9 page=0 chnl=0 13 | char id=40 x=499 y=99 width=10 height=29 xoffset=2 yoffset=12 xadvance=12 page=0 chnl=0 14 | char id=41 x=162 y=183 width=10 height=29 xoffset=0 yoffset=12 xadvance=12 page=0 chnl=0 15 | char id=42 x=63 y=498 width=11 height=12 xoffset=3 yoffset=12 xadvance=18 page=0 chnl=0 16 | char id=43 x=305 y=264 width=17 height=17 xoffset=2 yoffset=15 xadvance=21 page=0 chnl=0 17 | char id=44 x=40 y=124 width=6 height=12 xoffset=2 yoffset=29 xadvance=11 page=0 chnl=0 18 | char id=45 x=85 y=346 width=9 height=5 xoffset=1 yoffset=24 xadvance=11 page=0 chnl=0 19 | char id=46 x=505 y=36 width=6 height=6 xoffset=2 yoffset=29 xadvance=11 page=0 chnl=0 20 | char id=47 x=85 y=321 width=9 height=23 xoffset=0 yoffset=12 xadvance=9 page=0 chnl=0 21 | char id=48 x=282 y=458 width=18 height=23 xoffset=1 yoffset=12 xadvance=21 page=0 chnl=0 22 | char id=49 x=265 y=323 width=13 height=23 xoffset=2 yoffset=12 xadvance=21 page=0 chnl=0 23 | char id=50 x=282 y=283 width=18 height=23 xoffset=1 yoffset=12 xadvance=21 page=0 chnl=0 24 | char id=51 x=282 y=308 width=18 height=23 xoffset=1 yoffset=12 xadvance=21 page=0 chnl=0 25 | char id=52 x=302 y=283 width=20 height=23 xoffset=1 yoffset=12 xadvance=21 page=0 chnl=0 26 | char id=53 x=282 y=333 width=18 height=23 xoffset=1 yoffset=12 xadvance=21 page=0 chnl=0 27 | char id=54 x=282 y=358 width=18 height=23 xoffset=1 yoffset=12 xadvance=21 page=0 chnl=0 28 | char id=55 x=282 y=383 width=18 height=23 xoffset=1 yoffset=12 xadvance=21 page=0 chnl=0 29 | char id=56 x=282 y=408 width=18 height=23 xoffset=1 yoffset=12 xadvance=21 page=0 chnl=0 30 | char id=57 x=282 y=433 width=18 height=23 xoffset=1 yoffset=12 xadvance=21 page=0 chnl=0 31 | char id=58 x=40 y=453 width=6 height=17 xoffset=2 yoffset=18 xadvance=11 page=0 chnl=0 32 | char id=59 x=87 y=136 width=6 height=23 xoffset=2 yoffset=18 xadvance=11 page=0 chnl=0 33 | char id=60 x=324 y=283 width=17 height=19 xoffset=2 yoffset=14 xadvance=21 page=0 chnl=0 34 | char id=61 x=175 y=496 width=17 height=13 xoffset=2 yoffset=17 xadvance=21 page=0 chnl=0 35 | char id=62 x=343 y=283 width=17 height=19 xoffset=2 yoffset=14 xadvance=21 page=0 chnl=0 36 | char id=63 x=282 y=483 width=17 height=23 xoffset=1 yoffset=12 xadvance=20 page=0 chnl=0 37 | char id=64 x=328 y=308 width=24 height=26 xoffset=0 yoffset=12 xadvance=24 page=0 chnl=0 38 | char id=65 x=362 y=99 width=25 height=23 xoffset=0 yoffset=12 xadvance=25 page=0 chnl=0 39 | char id=66 x=389 y=99 width=21 height=23 xoffset=2 yoffset=12 xadvance=25 page=0 chnl=0 40 | char id=67 x=412 y=99 width=22 height=23 xoffset=1 yoffset=12 xadvance=25 page=0 chnl=0 41 | char id=68 x=436 y=99 width=21 height=23 xoffset=2 yoffset=12 xadvance=25 page=0 chnl=0 42 | char id=69 x=459 y=99 width=19 height=23 xoffset=2 yoffset=12 xadvance=23 page=0 chnl=0 43 | char id=70 x=480 y=99 width=17 height=23 xoffset=2 yoffset=12 xadvance=21 page=0 chnl=0 44 | char id=71 x=147 y=480 width=24 height=23 xoffset=1 yoffset=12 xadvance=27 page=0 chnl=0 45 | char id=72 x=486 y=134 width=22 height=23 xoffset=2 yoffset=12 xadvance=27 page=0 chnl=0 46 | char id=73 x=38 y=477 width=7 height=23 xoffset=2 yoffset=12 xadvance=12 page=0 chnl=0 47 | char id=74 x=215 y=346 width=17 height=23 xoffset=1 yoffset=12 xadvance=21 page=0 chnl=0 48 | char id=75 x=442 y=183 width=25 height=23 xoffset=2 yoffset=12 xadvance=27 page=0 chnl=0 49 | char id=76 x=215 y=371 width=17 height=23 xoffset=2 yoffset=12 xadvance=21 page=0 chnl=0 50 | char id=77 x=442 y=208 width=25 height=23 xoffset=2 yoffset=12 xadvance=30 page=0 chnl=0 51 | char id=78 x=215 y=396 width=22 height=23 xoffset=2 yoffset=12 xadvance=27 page=0 chnl=0 52 | char id=79 x=215 y=421 width=24 height=23 xoffset=1 yoffset=12 xadvance=27 page=0 chnl=0 53 | char id=80 x=215 y=446 width=19 height=23 xoffset=2 yoffset=12 xadvance=23 page=0 chnl=0 54 | char id=81 x=469 y=183 width=25 height=25 xoffset=1 yoffset=12 xadvance=27 page=0 chnl=0 55 | char id=82 x=215 y=471 width=23 height=23 xoffset=2 yoffset=12 xadvance=25 page=0 chnl=0 56 | char id=83 x=469 y=210 width=21 height=23 xoffset=0 yoffset=12 xadvance=23 page=0 chnl=0 57 | char id=84 x=241 y=298 width=21 height=23 xoffset=1 yoffset=12 xadvance=23 page=0 chnl=0 58 | char id=85 x=241 y=323 width=22 height=23 xoffset=2 yoffset=12 xadvance=27 page=0 chnl=0 59 | char id=86 x=241 y=348 width=25 height=23 xoffset=0 yoffset=12 xadvance=25 page=0 chnl=0 60 | char id=87 x=241 y=373 width=33 height=23 xoffset=0 yoffset=12 xadvance=32 page=0 chnl=0 61 | char id=88 x=241 y=398 width=25 height=23 xoffset=0 yoffset=12 xadvance=25 page=0 chnl=0 62 | char id=89 x=241 y=423 width=25 height=23 xoffset=0 yoffset=12 xadvance=25 page=0 chnl=0 63 | char id=90 x=241 y=448 width=20 height=23 xoffset=1 yoffset=12 xadvance=23 page=0 chnl=0 64 | char id=91 x=302 y=308 width=10 height=29 xoffset=2 yoffset=12 xadvance=12 page=0 chnl=0 65 | char id=92 x=85 y=369 width=9 height=23 xoffset=0 yoffset=12 xadvance=9 page=0 chnl=0 66 | char id=93 x=302 y=339 width=10 height=29 xoffset=0 yoffset=12 xadvance=12 page=0 chnl=0 67 | char id=94 x=297 y=116 width=18 height=13 xoffset=2 yoffset=12 xadvance=21 page=0 chnl=0 68 | char id=95 x=388 y=90 width=16 height=2 xoffset=0 yoffset=37 xadvance=16 page=0 chnl=0 69 | char id=96 x=38 y=502 width=8 height=5 xoffset=0 yoffset=12 xadvance=11 page=0 chnl=0 70 | char id=97 x=486 y=159 width=18 height=17 xoffset=1 yoffset=18 xadvance=21 page=0 chnl=0 71 | char id=98 x=492 y=210 width=17 height=23 xoffset=2 yoffset=12 xadvance=21 page=0 chnl=0 72 | char id=99 x=241 y=473 width=18 height=17 xoffset=1 yoffset=18 xadvance=21 page=0 chnl=0 73 | char id=100 x=263 y=448 width=17 height=23 xoffset=1 yoffset=12 xadvance=21 page=0 chnl=0 74 | char id=101 x=261 y=473 width=18 height=17 xoffset=1 yoffset=18 xadvance=21 page=0 chnl=0 75 | char id=102 x=133 y=238 width=12 height=23 xoffset=1 yoffset=12 xadvance=12 page=0 chnl=0 76 | char id=103 x=282 y=239 width=18 height=23 xoffset=1 yoffset=18 xadvance=21 page=0 chnl=0 77 | char id=104 x=264 y=298 width=16 height=23 xoffset=2 yoffset=12 xadvance=21 page=0 chnl=0 78 | char id=105 x=505 y=1 width=6 height=23 xoffset=2 yoffset=12 xadvance=11 page=0 chnl=0 79 | char id=106 x=135 y=153 width=10 height=29 xoffset=-2 yoffset=12 xadvance=11 page=0 chnl=0 80 | char id=107 x=302 y=239 width=19 height=23 xoffset=2 yoffset=12 xadvance=21 page=0 chnl=0 81 | char id=108 x=40 y=99 width=6 height=23 xoffset=2 yoffset=12 xadvance=11 page=0 chnl=0 82 | char id=109 x=241 y=492 width=28 height=17 xoffset=2 yoffset=18 xadvance=32 page=0 chnl=0 83 | char id=110 x=323 y=239 width=16 height=17 xoffset=2 yoffset=18 xadvance=21 page=0 chnl=0 84 | char id=111 x=341 y=239 width=18 height=17 xoffset=1 yoffset=18 xadvance=21 page=0 chnl=0 85 | char id=112 x=361 y=239 width=17 height=23 xoffset=2 yoffset=18 xadvance=21 page=0 chnl=0 86 | char id=113 x=380 y=239 width=17 height=23 xoffset=1 yoffset=18 xadvance=21 page=0 chnl=0 87 | char id=114 x=132 y=479 width=13 height=17 xoffset=2 yoffset=18 xadvance=14 page=0 chnl=0 88 | char id=115 x=399 y=239 width=18 height=17 xoffset=0 yoffset=18 xadvance=20 page=0 chnl=0 89 | char id=116 x=133 y=324 width=12 height=23 xoffset=1 yoffset=12 xadvance=14 page=0 chnl=0 90 | char id=117 x=419 y=239 width=16 height=17 xoffset=2 yoffset=18 xadvance=21 page=0 chnl=0 91 | char id=118 x=437 y=239 width=19 height=17 xoffset=0 yoffset=18 xadvance=20 page=0 chnl=0 92 | char id=119 x=458 y=239 width=31 height=17 xoffset=0 yoffset=18 xadvance=30 page=0 chnl=0 93 | char id=120 x=282 y=264 width=21 height=17 xoffset=0 yoffset=18 xadvance=21 page=0 chnl=0 94 | char id=121 x=491 y=239 width=20 height=23 xoffset=0 yoffset=18 xadvance=20 page=0 chnl=0 95 | char id=122 x=496 y=183 width=15 height=17 xoffset=1 yoffset=18 xadvance=18 page=0 chnl=0 96 | char id=123 x=314 y=308 width=12 height=29 xoffset=0 yoffset=12 xadvance=12 page=0 chnl=0 97 | char id=124 x=42 y=391 width=4 height=29 xoffset=3 yoffset=12 xadvance=9 page=0 chnl=0 98 | char id=125 x=314 y=339 width=12 height=29 xoffset=0 yoffset=12 xadvance=12 page=0 chnl=0 99 | char id=126 x=426 y=86 width=17 height=8 xoffset=2 yoffset=19 xadvance=21 page=0 chnl=0 100 | kernings count=240 101 | kerning first=65 second=67 amount=-2 102 | kerning first=65 second=71 amount=-2 103 | kerning first=65 second=79 amount=-2 104 | kerning first=65 second=81 amount=-2 105 | kerning first=65 second=84 amount=-3 106 | kerning first=65 second=85 amount=-2 107 | kerning first=65 second=86 amount=-3 108 | kerning first=65 second=89 amount=-4 109 | kerning first=65 second=112 amount=1 110 | kerning first=65 second=118 amount=-2 111 | kerning first=66 second=44 amount=1 112 | kerning first=66 second=46 amount=1 113 | kerning first=66 second=65 amount=-2 114 | kerning first=66 second=85 amount=-2 115 | kerning first=67 second=44 amount=1 116 | kerning first=67 second=46 amount=1 117 | kerning first=68 second=46 amount=-2 118 | kerning first=68 second=65 amount=-2 119 | kerning first=68 second=86 amount=-2 120 | kerning first=68 second=87 amount=1 121 | kerning first=68 second=89 amount=-2 122 | kerning first=70 second=44 amount=-6 123 | kerning first=70 second=46 amount=-6 124 | kerning first=70 second=65 amount=-4 125 | kerning first=70 second=97 amount=-2 126 | kerning first=70 second=101 amount=-2 127 | kerning first=70 second=111 amount=-2 128 | kerning first=70 second=114 amount=-2 129 | kerning first=71 second=44 amount=1 130 | kerning first=74 second=44 amount=-2 131 | kerning first=74 second=46 amount=-2 132 | kerning first=74 second=65 amount=-2 133 | kerning first=74 second=97 amount=-2 134 | kerning first=74 second=101 amount=-2 135 | kerning first=74 second=111 amount=-2 136 | kerning first=74 second=117 amount=-2 137 | kerning first=74 second=121 amount=-2 138 | kerning first=75 second=67 amount=-2 139 | kerning first=75 second=71 amount=-2 140 | kerning first=75 second=79 amount=-2 141 | kerning first=75 second=101 amount=-2 142 | kerning first=75 second=111 amount=-2 143 | kerning first=75 second=117 amount=-2 144 | kerning first=75 second=118 amount=-2 145 | kerning first=75 second=121 amount=-2 146 | kerning first=76 second=67 amount=-2 147 | kerning first=76 second=71 amount=-2 148 | kerning first=76 second=79 amount=-2 149 | kerning first=76 second=84 amount=-3 150 | kerning first=76 second=85 amount=-2 151 | kerning first=76 second=86 amount=-3 152 | kerning first=76 second=87 amount=-2 153 | kerning first=76 second=89 amount=-3 154 | kerning first=76 second=119 amount=-2 155 | kerning first=79 second=44 amount=-2 156 | kerning first=79 second=46 amount=-2 157 | kerning first=79 second=65 amount=-2 158 | kerning first=79 second=84 amount=-2 159 | kerning first=79 second=86 amount=-2 160 | kerning first=79 second=87 amount=-2 161 | kerning first=79 second=88 amount=-3 162 | kerning first=79 second=89 amount=-3 163 | kerning first=80 second=44 amount=-7 164 | kerning first=80 second=46 amount=-7 165 | kerning first=80 second=65 amount=-4 166 | kerning first=80 second=97 amount=-2 167 | kerning first=80 second=101 amount=-2 168 | kerning first=80 second=111 amount=-2 169 | kerning first=81 second=44 amount=1 170 | kerning first=81 second=46 amount=1 171 | kerning first=81 second=65 amount=1 172 | kerning first=81 second=84 amount=-2 173 | kerning first=81 second=86 amount=-2 174 | kerning first=81 second=89 amount=-3 175 | kerning first=82 second=67 amount=-2 176 | kerning first=82 second=71 amount=-2 177 | kerning first=82 second=79 amount=-2 178 | kerning first=82 second=81 amount=-2 179 | kerning first=82 second=85 amount=-2 180 | kerning first=82 second=86 amount=-2 181 | kerning first=82 second=89 amount=-2 182 | kerning first=82 second=101 amount=-2 183 | kerning first=82 second=111 amount=-2 184 | kerning first=82 second=117 amount=-2 185 | kerning first=82 second=119 amount=1 186 | kerning first=84 second=44 amount=-6 187 | kerning first=84 second=45 amount=-3 188 | kerning first=84 second=46 amount=-6 189 | kerning first=84 second=58 amount=-2 190 | kerning first=84 second=59 amount=-2 191 | kerning first=84 second=65 amount=-3 192 | kerning first=84 second=67 amount=-2 193 | kerning first=84 second=71 amount=-2 194 | kerning first=84 second=79 amount=-2 195 | kerning first=84 second=81 amount=-2 196 | kerning first=84 second=97 amount=-3 197 | kerning first=84 second=99 amount=-3 198 | kerning first=84 second=101 amount=-3 199 | kerning first=84 second=104 amount=1 200 | kerning first=84 second=108 amount=1 201 | kerning first=84 second=109 amount=-2 202 | kerning first=84 second=111 amount=-3 203 | kerning first=84 second=114 amount=-2 204 | kerning first=84 second=115 amount=-3 205 | kerning first=84 second=117 amount=-2 206 | kerning first=84 second=121 amount=-2 207 | kerning first=84 second=122 amount=-2 208 | kerning first=85 second=44 amount=-2 209 | kerning first=85 second=46 amount=-2 210 | kerning first=85 second=65 amount=-2 211 | kerning first=86 second=44 amount=-5 212 | kerning first=86 second=45 amount=-2 213 | kerning first=86 second=46 amount=-5 214 | kerning first=86 second=58 amount=-2 215 | kerning first=86 second=59 amount=-2 216 | kerning first=86 second=65 amount=-3 217 | kerning first=86 second=67 amount=-2 218 | kerning first=86 second=71 amount=-2 219 | kerning first=86 second=79 amount=-2 220 | kerning first=86 second=81 amount=-2 221 | kerning first=86 second=97 amount=-2 222 | kerning first=86 second=101 amount=-3 223 | kerning first=86 second=105 amount=1 224 | kerning first=86 second=111 amount=-3 225 | kerning first=86 second=114 amount=-2 226 | kerning first=86 second=117 amount=-2 227 | kerning first=87 second=44 amount=-2 228 | kerning first=87 second=46 amount=-3 229 | kerning first=87 second=67 amount=-2 230 | kerning first=87 second=71 amount=-2 231 | kerning first=87 second=79 amount=-2 232 | kerning first=87 second=97 amount=-2 233 | kerning first=87 second=100 amount=-2 234 | kerning first=87 second=101 amount=-2 235 | kerning first=87 second=104 amount=1 236 | kerning first=87 second=105 amount=1 237 | kerning first=87 second=111 amount=-2 238 | kerning first=87 second=117 amount=-2 239 | kerning first=88 second=67 amount=-2 240 | kerning first=88 second=71 amount=-2 241 | kerning first=88 second=79 amount=-2 242 | kerning first=89 second=44 amount=-6 243 | kerning first=89 second=45 amount=-4 244 | kerning first=89 second=46 amount=-6 245 | kerning first=89 second=58 amount=-3 246 | kerning first=89 second=59 amount=-3 247 | kerning first=89 second=65 amount=-4 248 | kerning first=89 second=67 amount=-3 249 | kerning first=89 second=71 amount=-3 250 | kerning first=89 second=79 amount=-3 251 | kerning first=89 second=83 amount=-2 252 | kerning first=89 second=97 amount=-4 253 | kerning first=89 second=100 amount=-4 254 | kerning first=89 second=101 amount=-4 255 | kerning first=89 second=111 amount=-4 256 | kerning first=89 second=112 amount=-3 257 | kerning first=89 second=113 amount=-4 258 | kerning first=89 second=117 amount=-3 259 | kerning first=89 second=118 amount=-2 260 | kerning first=97 second=103 amount=1 261 | kerning first=97 second=116 amount=-2 262 | kerning first=97 second=118 amount=-2 263 | kerning first=98 second=118 amount=-2 264 | kerning first=99 second=104 amount=-2 265 | kerning first=99 second=107 amount=-2 266 | kerning first=99 second=108 amount=-2 267 | kerning first=99 second=121 amount=-2 268 | kerning first=101 second=103 amount=1 269 | kerning first=101 second=118 amount=-2 270 | kerning first=101 second=120 amount=-2 271 | kerning first=102 second=33 amount=3 272 | kerning first=102 second=44 amount=-3 273 | kerning first=102 second=46 amount=-3 274 | kerning first=102 second=63 amount=3 275 | kerning first=102 second=101 amount=-2 276 | kerning first=102 second=102 amount=1 277 | kerning first=102 second=111 amount=-2 278 | kerning first=103 second=114 amount=1 279 | kerning first=103 second=121 amount=1 280 | kerning first=107 second=101 amount=-2 281 | kerning first=107 second=111 amount=-2 282 | kerning first=107 second=121 amount=1 283 | kerning first=108 second=121 amount=1 284 | kerning first=110 second=118 amount=-2 285 | kerning first=111 second=46 amount=-2 286 | kerning first=111 second=118 amount=-2 287 | kerning first=111 second=119 amount=-2 288 | kerning first=111 second=120 amount=-2 289 | kerning first=111 second=121 amount=-2 290 | kerning first=111 second=122 amount=1 291 | kerning first=112 second=46 amount=-2 292 | kerning first=112 second=119 amount=-2 293 | kerning first=112 second=121 amount=-2 294 | kerning first=114 second=44 amount=-3 295 | kerning first=114 second=46 amount=-3 296 | kerning first=114 second=58 amount=1 297 | kerning first=114 second=59 amount=1 298 | kerning first=114 second=97 amount=1 299 | kerning first=114 second=99 amount=1 300 | kerning first=114 second=100 amount=1 301 | kerning first=114 second=101 amount=1 302 | kerning first=114 second=103 amount=1 303 | kerning first=114 second=106 amount=1 304 | kerning first=114 second=107 amount=1 305 | kerning first=114 second=108 amount=1 306 | kerning first=114 second=109 amount=2 307 | kerning first=114 second=110 amount=2 308 | kerning first=114 second=111 amount=1 309 | kerning first=114 second=112 amount=1 310 | kerning first=114 second=113 amount=1 311 | kerning first=114 second=114 amount=1 312 | kerning first=114 second=115 amount=1 313 | kerning first=114 second=116 amount=2 314 | kerning first=114 second=117 amount=1 315 | kerning first=114 second=118 amount=2 316 | kerning first=114 second=121 amount=2 317 | kerning first=115 second=119 amount=-2 318 | kerning first=118 second=44 amount=-4 319 | kerning first=118 second=46 amount=-4 320 | kerning first=118 second=99 amount=-2 321 | kerning first=118 second=100 amount=-2 322 | kerning first=118 second=101 amount=-2 323 | kerning first=118 second=111 amount=-2 324 | kerning first=118 second=113 amount=-2 325 | kerning first=119 second=44 amount=-3 326 | kerning first=119 second=46 amount=-4 327 | kerning first=119 second=104 amount=1 328 | kerning first=119 second=111 amount=-2 329 | kerning first=119 second=113 amount=-2 330 | kerning first=120 second=99 amount=-2 331 | kerning first=120 second=100 amount=-2 332 | kerning first=120 second=101 amount=-2 333 | kerning first=120 second=111 amount=-2 334 | kerning first=121 second=44 amount=-4 335 | kerning first=121 second=46 amount=-4 336 | kerning first=121 second=97 amount=-2 337 | kerning first=121 second=99 amount=-2 338 | kerning first=121 second=100 amount=-2 339 | kerning first=121 second=101 amount=-2 340 | kerning first=121 second=111 amount=-2 341 | -------------------------------------------------------------------------------- /assets/Arial-Black-64.fnt: -------------------------------------------------------------------------------- 1 | info face="Arial Black" size=64 bold=0 italic=0 charset="" unicode=1 stretchH=100 smooth=1 aa=2 padding=0,0,0,0 spacing=0,0 2 | common lineHeight=90 base=70 scaleW=512 scaleH=512 pages=1 packed=0 alphaChnl=0 redChnl=0 greenChnl=0 blueChnl=0 3 | page id=0 file="arial.png" 4 | chars count=95 5 | char id=32 x=0 y=0 width=0 height=0 xoffset=0 yoffset=0 xadvance=21 page=0 chnl=0 6 | char id=33 x=123 y=275 width=13 height=46 xoffset=4 yoffset=24 xadvance=21 page=0 chnl=0 7 | char id=34 x=48 y=479 width=29 height=17 xoffset=2 yoffset=24 xadvance=32 page=0 chnl=0 8 | char id=35 x=350 y=183 width=38 height=48 xoffset=2 yoffset=23 xadvance=42 page=0 chnl=0 9 | char id=36 x=241 y=239 width=39 height=57 xoffset=2 yoffset=20 xadvance=43 page=0 chnl=0 10 | char id=37 x=290 y=183 width=58 height=48 xoffset=3 yoffset=23 xadvance=64 page=0 chnl=0 11 | char id=38 x=390 y=183 width=50 height=48 xoffset=5 yoffset=23 xadvance=57 page=0 chnl=0 12 | char id=39 x=79 y=479 width=13 height=17 xoffset=3 yoffset=24 xadvance=18 page=0 chnl=0 13 | char id=40 x=147 y=232 width=19 height=61 xoffset=4 yoffset=23 xadvance=25 page=0 chnl=0 14 | char id=41 x=147 y=295 width=19 height=61 xoffset=2 yoffset=23 xadvance=25 page=0 chnl=0 15 | char id=42 x=335 y=99 width=25 height=23 xoffset=5 yoffset=23 xadvance=36 page=0 chnl=0 16 | char id=43 x=450 y=134 width=34 height=34 xoffset=4 yoffset=30 xadvance=42 page=0 chnl=0 17 | char id=44 x=124 y=202 width=13 height=27 xoffset=4 yoffset=57 xadvance=21 page=0 chnl=0 18 | char id=45 x=367 y=85 width=19 height=10 xoffset=1 yoffset=48 xadvance=21 page=0 chnl=0 19 | char id=46 x=48 y=498 width=13 height=13 xoffset=4 yoffset=57 xadvance=21 page=0 chnl=0 20 | char id=47 x=215 y=246 width=18 height=48 xoffset=0 yoffset=23 xadvance=18 page=0 chnl=0 21 | char id=48 x=175 y=383 width=37 height=48 xoffset=3 yoffset=23 xadvance=43 page=0 chnl=0 22 | char id=49 x=147 y=134 width=26 height=47 xoffset=6 yoffset=23 xadvance=43 page=0 chnl=0 23 | char id=50 x=175 y=134 width=38 height=47 xoffset=2 yoffset=23 xadvance=43 page=0 chnl=0 24 | char id=51 x=175 y=183 width=38 height=48 xoffset=2 yoffset=23 xadvance=43 page=0 chnl=0 25 | char id=52 x=215 y=134 width=40 height=47 xoffset=1 yoffset=23 xadvance=43 page=0 chnl=0 26 | char id=53 x=257 y=134 width=39 height=47 xoffset=2 yoffset=24 xadvance=43 page=0 chnl=0 27 | char id=54 x=175 y=233 width=38 height=48 xoffset=3 yoffset=23 xadvance=43 page=0 chnl=0 28 | char id=55 x=298 y=134 width=37 height=46 xoffset=3 yoffset=24 xadvance=43 page=0 chnl=0 29 | char id=56 x=175 y=283 width=37 height=48 xoffset=3 yoffset=23 xadvance=43 page=0 chnl=0 30 | char id=57 x=175 y=333 width=38 height=48 xoffset=2 yoffset=23 xadvance=43 page=0 chnl=0 31 | char id=58 x=246 y=99 width=13 height=33 xoffset=4 yoffset=37 xadvance=21 page=0 chnl=0 32 | char id=59 x=147 y=183 width=13 height=47 xoffset=4 yoffset=37 xadvance=21 page=0 chnl=0 33 | char id=60 x=374 y=134 width=36 height=39 xoffset=3 yoffset=28 xadvance=42 page=0 chnl=0 34 | char id=61 x=261 y=99 width=34 height=25 xoffset=4 yoffset=35 xadvance=42 page=0 chnl=0 35 | char id=62 x=412 y=134 width=36 height=39 xoffset=3 yoffset=28 xadvance=42 page=0 chnl=0 36 | char id=63 x=337 y=134 width=35 height=47 xoffset=2 yoffset=23 xadvance=39 page=0 chnl=0 37 | char id=64 x=241 y=183 width=47 height=54 xoffset=0 yoffset=23 xadvance=47 page=0 chnl=0 38 | char id=65 x=1 y=1 width=50 height=46 xoffset=0 yoffset=24 xadvance=50 page=0 chnl=0 39 | char id=66 x=53 y=1 width=42 height=46 xoffset=5 yoffset=24 xadvance=50 page=0 chnl=0 40 | char id=67 x=1 y=49 width=45 height=48 xoffset=3 yoffset=23 xadvance=50 page=0 chnl=0 41 | char id=68 x=97 y=1 width=42 height=46 xoffset=5 yoffset=24 xadvance=50 page=0 chnl=0 42 | char id=69 x=141 y=1 width=38 height=46 xoffset=5 yoffset=24 xadvance=46 page=0 chnl=0 43 | char id=70 x=181 y=1 width=35 height=46 xoffset=5 yoffset=24 xadvance=43 page=0 chnl=0 44 | char id=71 x=48 y=49 width=46 height=48 xoffset=3 yoffset=23 xadvance=53 page=0 chnl=0 45 | char id=72 x=218 y=1 width=43 height=46 xoffset=5 yoffset=24 xadvance=53 page=0 chnl=0 46 | char id=73 x=263 y=1 width=14 height=46 xoffset=5 yoffset=24 xadvance=25 page=0 chnl=0 47 | char id=74 x=1 y=99 width=37 height=47 xoffset=1 yoffset=24 xadvance=43 page=0 chnl=0 48 | char id=75 x=279 y=1 width=48 height=46 xoffset=5 yoffset=24 xadvance=53 page=0 chnl=0 49 | char id=76 x=329 y=1 width=36 height=46 xoffset=5 yoffset=24 xadvance=43 page=0 chnl=0 50 | char id=77 x=367 y=1 width=51 height=46 xoffset=5 yoffset=24 xadvance=60 page=0 chnl=0 51 | char id=78 x=420 y=1 width=43 height=46 xoffset=5 yoffset=24 xadvance=53 page=0 chnl=0 52 | char id=79 x=96 y=49 width=47 height=48 xoffset=3 yoffset=23 xadvance=53 page=0 chnl=0 53 | char id=80 x=465 y=1 width=38 height=46 xoffset=5 yoffset=24 xadvance=46 page=0 chnl=0 54 | char id=81 x=96 y=99 width=49 height=52 xoffset=3 yoffset=23 xadvance=53 page=0 chnl=0 55 | char id=82 x=1 y=148 width=45 height=46 xoffset=5 yoffset=24 xadvance=50 page=0 chnl=0 56 | char id=83 x=1 y=196 width=42 height=48 xoffset=2 yoffset=23 xadvance=46 page=0 chnl=0 57 | char id=84 x=1 y=246 width=42 height=46 xoffset=2 yoffset=24 xadvance=46 page=0 chnl=0 58 | char id=85 x=1 y=294 width=43 height=47 xoffset=5 yoffset=24 xadvance=53 page=0 chnl=0 59 | char id=86 x=145 y=49 width=50 height=46 xoffset=0 yoffset=24 xadvance=50 page=0 chnl=0 60 | char id=87 x=197 y=49 width=65 height=46 xoffset=0 yoffset=24 xadvance=64 page=0 chnl=0 61 | char id=88 x=264 y=49 width=49 height=46 xoffset=0 yoffset=24 xadvance=50 page=0 chnl=0 62 | char id=89 x=315 y=49 width=50 height=46 xoffset=0 yoffset=24 xadvance=50 page=0 chnl=0 63 | char id=90 x=1 y=343 width=43 height=46 xoffset=1 yoffset=24 xadvance=46 page=0 chnl=0 64 | char id=91 x=147 y=358 width=21 height=59 xoffset=3 yoffset=24 xadvance=25 page=0 chnl=0 65 | char id=92 x=215 y=296 width=18 height=48 xoffset=0 yoffset=23 xadvance=18 page=0 chnl=0 66 | char id=93 x=147 y=419 width=21 height=59 xoffset=1 yoffset=24 xadvance=25 page=0 chnl=0 67 | char id=94 x=96 y=479 width=34 height=25 xoffset=4 yoffset=23 xadvance=42 page=0 chnl=0 68 | char id=95 x=388 y=85 width=32 height=3 xoffset=0 yoffset=75 xadvance=32 page=0 chnl=0 69 | char id=96 x=70 y=417 width=16 height=9 xoffset=-1 yoffset=23 xadvance=21 page=0 chnl=0 70 | char id=97 x=1 y=391 width=39 height=35 xoffset=2 yoffset=36 xadvance=43 page=0 chnl=0 71 | char id=98 x=1 y=428 width=37 height=47 xoffset=4 yoffset=24 xadvance=43 page=0 chnl=0 72 | char id=99 x=48 y=99 width=39 height=35 xoffset=2 yoffset=36 xadvance=43 page=0 chnl=0 73 | char id=100 x=48 y=136 width=37 height=47 xoffset=2 yoffset=24 xadvance=43 page=0 chnl=0 74 | char id=101 x=48 y=185 width=39 height=35 xoffset=2 yoffset=36 xadvance=43 page=0 chnl=0 75 | char id=102 x=48 y=222 width=27 height=47 xoffset=0 yoffset=23 xadvance=25 page=0 chnl=0 76 | char id=103 x=48 y=271 width=38 height=48 xoffset=2 yoffset=36 xadvance=43 page=0 chnl=0 77 | char id=104 x=48 y=321 width=35 height=46 xoffset=4 yoffset=24 xadvance=43 page=0 chnl=0 78 | char id=105 x=77 y=222 width=13 height=46 xoffset=4 yoffset=24 xadvance=21 page=0 chnl=0 79 | char id=106 x=48 y=369 width=20 height=60 xoffset=-3 yoffset=24 xadvance=21 page=0 chnl=0 80 | char id=107 x=48 y=431 width=39 height=46 xoffset=4 yoffset=24 xadvance=43 page=0 chnl=0 81 | char id=108 x=70 y=369 width=13 height=46 xoffset=4 yoffset=24 xadvance=21 page=0 chnl=0 82 | char id=109 x=367 y=49 width=57 height=34 xoffset=4 yoffset=36 xadvance=64 page=0 chnl=0 83 | char id=110 x=1 y=477 width=35 height=34 xoffset=4 yoffset=36 xadvance=43 page=0 chnl=0 84 | char id=111 x=426 y=49 width=39 height=35 xoffset=2 yoffset=36 xadvance=43 page=0 chnl=0 85 | char id=112 x=467 y=49 width=37 height=47 xoffset=4 yoffset=36 xadvance=43 page=0 chnl=0 86 | char id=113 x=96 y=153 width=37 height=47 xoffset=2 yoffset=36 xadvance=43 page=0 chnl=0 87 | char id=114 x=96 y=202 width=26 height=34 xoffset=4 yoffset=36 xadvance=28 page=0 chnl=0 88 | char id=115 x=96 y=238 width=35 height=35 xoffset=2 yoffset=36 xadvance=39 page=0 chnl=0 89 | char id=116 x=96 y=275 width=25 height=47 xoffset=1 yoffset=24 xadvance=28 page=0 chnl=0 90 | char id=117 x=96 y=324 width=35 height=34 xoffset=4 yoffset=37 xadvance=43 page=0 chnl=0 91 | char id=118 x=96 y=360 width=39 height=33 xoffset=0 yoffset=37 xadvance=39 page=0 chnl=0 92 | char id=119 x=147 y=99 width=61 height=33 xoffset=0 yoffset=37 xadvance=60 page=0 chnl=0 93 | char id=120 x=96 y=395 width=41 height=33 xoffset=1 yoffset=37 xadvance=43 page=0 chnl=0 94 | char id=121 x=96 y=430 width=39 height=47 xoffset=0 yoffset=37 xadvance=39 page=0 chnl=0 95 | char id=122 x=210 y=99 width=34 height=33 xoffset=1 yoffset=37 xadvance=36 page=0 chnl=0 96 | char id=123 x=175 y=433 width=24 height=61 xoffset=1 yoffset=23 xadvance=25 page=0 chnl=0 97 | char id=124 x=201 y=433 width=8 height=59 xoffset=5 yoffset=24 xadvance=18 page=0 chnl=0 98 | char id=125 x=215 y=183 width=24 height=61 xoffset=0 yoffset=23 xadvance=25 page=0 chnl=0 99 | char id=126 x=297 y=99 width=36 height=15 xoffset=3 yoffset=40 xadvance=42 page=0 chnl=0 100 | kernings count=270 101 | kerning first=65 second=67 amount=-2 102 | kerning first=65 second=71 amount=-2 103 | kerning first=65 second=79 amount=-2 104 | kerning first=65 second=81 amount=-2 105 | kerning first=65 second=84 amount=-5 106 | kerning first=65 second=85 amount=-3 107 | kerning first=65 second=86 amount=-5 108 | kerning first=65 second=87 amount=1 109 | kerning first=65 second=89 amount=-6 110 | kerning first=65 second=112 amount=1 111 | kerning first=65 second=117 amount=-2 112 | kerning first=65 second=118 amount=-2 113 | kerning first=66 second=44 amount=2 114 | kerning first=66 second=46 amount=1 115 | kerning first=66 second=65 amount=-2 116 | kerning first=66 second=85 amount=-3 117 | kerning first=67 second=44 amount=2 118 | kerning first=67 second=46 amount=1 119 | kerning first=68 second=44 amount=-2 120 | kerning first=68 second=46 amount=-2 121 | kerning first=68 second=65 amount=-4 122 | kerning first=68 second=86 amount=-3 123 | kerning first=68 second=87 amount=1 124 | kerning first=68 second=89 amount=-3 125 | kerning first=70 second=44 amount=-10 126 | kerning first=70 second=46 amount=-11 127 | kerning first=70 second=65 amount=-7 128 | kerning first=70 second=97 amount=-3 129 | kerning first=70 second=101 amount=-3 130 | kerning first=70 second=108 amount=1 131 | kerning first=70 second=111 amount=-3 132 | kerning first=70 second=114 amount=-3 133 | kerning first=71 second=44 amount=1 134 | kerning first=71 second=46 amount=1 135 | kerning first=74 second=44 amount=-2 136 | kerning first=74 second=46 amount=-3 137 | kerning first=74 second=65 amount=-3 138 | kerning first=74 second=97 amount=-2 139 | kerning first=74 second=101 amount=-3 140 | kerning first=74 second=111 amount=-3 141 | kerning first=74 second=117 amount=-3 142 | kerning first=74 second=121 amount=-2 143 | kerning first=75 second=67 amount=-3 144 | kerning first=75 second=71 amount=-3 145 | kerning first=75 second=79 amount=-3 146 | kerning first=75 second=101 amount=-3 147 | kerning first=75 second=111 amount=-3 148 | kerning first=75 second=117 amount=-3 149 | kerning first=75 second=118 amount=-2 150 | kerning first=75 second=121 amount=-2 151 | kerning first=76 second=67 amount=-2 152 | kerning first=76 second=71 amount=-2 153 | kerning first=76 second=79 amount=-2 154 | kerning first=76 second=84 amount=-4 155 | kerning first=76 second=85 amount=-3 156 | kerning first=76 second=86 amount=-4 157 | kerning first=76 second=87 amount=-2 158 | kerning first=76 second=89 amount=-6 159 | kerning first=76 second=119 amount=-2 160 | kerning first=76 second=121 amount=-2 161 | kerning first=78 second=65 amount=-2 162 | kerning first=79 second=44 amount=-2 163 | kerning first=79 second=46 amount=-3 164 | kerning first=79 second=65 amount=-3 165 | kerning first=79 second=84 amount=-3 166 | kerning first=79 second=86 amount=-4 167 | kerning first=79 second=87 amount=-2 168 | kerning first=79 second=88 amount=-4 169 | kerning first=79 second=89 amount=-5 170 | kerning first=80 second=44 amount=-13 171 | kerning first=80 second=46 amount=-13 172 | kerning first=80 second=65 amount=-6 173 | kerning first=80 second=97 amount=-2 174 | kerning first=80 second=101 amount=-3 175 | kerning first=80 second=111 amount=-3 176 | kerning first=81 second=44 amount=2 177 | kerning first=81 second=46 amount=1 178 | kerning first=81 second=65 amount=1 179 | kerning first=81 second=84 amount=-2 180 | kerning first=81 second=86 amount=-4 181 | kerning first=81 second=89 amount=-4 182 | kerning first=82 second=67 amount=-2 183 | kerning first=82 second=71 amount=-2 184 | kerning first=82 second=79 amount=-2 185 | kerning first=82 second=81 amount=-2 186 | kerning first=82 second=84 amount=-2 187 | kerning first=82 second=85 amount=-2 188 | kerning first=82 second=86 amount=-2 189 | kerning first=82 second=89 amount=-4 190 | kerning first=82 second=101 amount=-3 191 | kerning first=82 second=111 amount=-3 192 | kerning first=82 second=117 amount=-2 193 | kerning first=82 second=119 amount=1 194 | kerning first=84 second=44 amount=-10 195 | kerning first=84 second=45 amount=-5 196 | kerning first=84 second=46 amount=-11 197 | kerning first=84 second=58 amount=-3 198 | kerning first=84 second=59 amount=-3 199 | kerning first=84 second=65 amount=-5 200 | kerning first=84 second=67 amount=-3 201 | kerning first=84 second=71 amount=-3 202 | kerning first=84 second=79 amount=-3 203 | kerning first=84 second=81 amount=-3 204 | kerning first=84 second=97 amount=-4 205 | kerning first=84 second=99 amount=-5 206 | kerning first=84 second=101 amount=-5 207 | kerning first=84 second=104 amount=2 208 | kerning first=84 second=108 amount=1 209 | kerning first=84 second=109 amount=-4 210 | kerning first=84 second=111 amount=-5 211 | kerning first=84 second=114 amount=-4 212 | kerning first=84 second=115 amount=-5 213 | kerning first=84 second=117 amount=-4 214 | kerning first=84 second=119 amount=-2 215 | kerning first=84 second=121 amount=-2 216 | kerning first=84 second=122 amount=-3 217 | kerning first=85 second=44 amount=-3 218 | kerning first=85 second=46 amount=-3 219 | kerning first=85 second=65 amount=-3 220 | kerning first=86 second=44 amount=-9 221 | kerning first=86 second=45 amount=-4 222 | kerning first=86 second=46 amount=-9 223 | kerning first=86 second=58 amount=-3 224 | kerning first=86 second=59 amount=-3 225 | kerning first=86 second=65 amount=-5 226 | kerning first=86 second=67 amount=-3 227 | kerning first=86 second=71 amount=-3 228 | kerning first=86 second=79 amount=-3 229 | kerning first=86 second=81 amount=-3 230 | kerning first=86 second=97 amount=-4 231 | kerning first=86 second=101 amount=-4 232 | kerning first=86 second=105 amount=1 233 | kerning first=86 second=111 amount=-4 234 | kerning first=86 second=114 amount=-3 235 | kerning first=86 second=117 amount=-3 236 | kerning first=87 second=44 amount=-4 237 | kerning first=87 second=45 amount=-2 238 | kerning first=87 second=46 amount=-4 239 | kerning first=87 second=67 amount=-2 240 | kerning first=87 second=71 amount=-2 241 | kerning first=87 second=79 amount=-2 242 | kerning first=87 second=97 amount=-2 243 | kerning first=87 second=100 amount=-3 244 | kerning first=87 second=101 amount=-3 245 | kerning first=87 second=104 amount=2 246 | kerning first=87 second=105 amount=2 247 | kerning first=87 second=111 amount=-3 248 | kerning first=87 second=117 amount=-2 249 | kerning first=88 second=67 amount=-3 250 | kerning first=88 second=71 amount=-3 251 | kerning first=88 second=79 amount=-3 252 | kerning first=89 second=44 amount=-11 253 | kerning first=89 second=45 amount=-6 254 | kerning first=89 second=46 amount=-12 255 | kerning first=89 second=58 amount=-5 256 | kerning first=89 second=59 amount=-5 257 | kerning first=89 second=65 amount=-7 258 | kerning first=89 second=67 amount=-5 259 | kerning first=89 second=71 amount=-5 260 | kerning first=89 second=79 amount=-5 261 | kerning first=89 second=83 amount=-4 262 | kerning first=89 second=97 amount=-6 263 | kerning first=89 second=100 amount=-7 264 | kerning first=89 second=101 amount=-7 265 | kerning first=89 second=111 amount=-6 266 | kerning first=89 second=112 amount=-4 267 | kerning first=89 second=113 amount=-6 268 | kerning first=89 second=117 amount=-5 269 | kerning first=89 second=118 amount=-3 270 | kerning first=97 second=98 amount=1 271 | kerning first=97 second=103 amount=1 272 | kerning first=97 second=112 amount=1 273 | kerning first=97 second=116 amount=-2 274 | kerning first=97 second=118 amount=-2 275 | kerning first=98 second=98 amount=1 276 | kerning first=98 second=118 amount=-3 277 | kerning first=99 second=104 amount=-2 278 | kerning first=99 second=107 amount=-2 279 | kerning first=99 second=108 amount=-3 280 | kerning first=99 second=121 amount=-2 281 | kerning first=100 second=100 amount=1 282 | kerning first=100 second=119 amount=1 283 | kerning first=101 second=98 amount=-2 284 | kerning first=101 second=103 amount=2 285 | kerning first=101 second=118 amount=-3 286 | kerning first=101 second=120 amount=-3 287 | kerning first=102 second=33 amount=5 288 | kerning first=102 second=44 amount=-4 289 | kerning first=102 second=46 amount=-5 290 | kerning first=102 second=63 amount=5 291 | kerning first=102 second=97 amount=-2 292 | kerning first=102 second=101 amount=-2 293 | kerning first=102 second=102 amount=2 294 | kerning first=102 second=107 amount=1 295 | kerning first=102 second=111 amount=-2 296 | kerning first=103 second=103 amount=1 297 | kerning first=103 second=108 amount=1 298 | kerning first=103 second=114 amount=1 299 | kerning first=103 second=121 amount=1 300 | kerning first=107 second=101 amount=-3 301 | kerning first=107 second=111 amount=-3 302 | kerning first=107 second=121 amount=1 303 | kerning first=108 second=121 amount=1 304 | kerning first=110 second=118 amount=-3 305 | kerning first=111 second=44 amount=-2 306 | kerning first=111 second=46 amount=-2 307 | kerning first=111 second=118 amount=-3 308 | kerning first=111 second=119 amount=-2 309 | kerning first=111 second=120 amount=-3 310 | kerning first=111 second=121 amount=-2 311 | kerning first=111 second=122 amount=1 312 | kerning first=112 second=44 amount=-2 313 | kerning first=112 second=46 amount=-2 314 | kerning first=112 second=119 amount=-3 315 | kerning first=112 second=121 amount=-2 316 | kerning first=114 second=44 amount=-5 317 | kerning first=114 second=46 amount=-6 318 | kerning first=114 second=58 amount=3 319 | kerning first=114 second=59 amount=3 320 | kerning first=114 second=97 amount=1 321 | kerning first=114 second=99 amount=1 322 | kerning first=114 second=100 amount=2 323 | kerning first=114 second=101 amount=1 324 | kerning first=114 second=103 amount=2 325 | kerning first=114 second=106 amount=3 326 | kerning first=114 second=107 amount=2 327 | kerning first=114 second=108 amount=2 328 | kerning first=114 second=109 amount=3 329 | kerning first=114 second=110 amount=3 330 | kerning first=114 second=111 amount=1 331 | kerning first=114 second=112 amount=3 332 | kerning first=114 second=113 amount=2 333 | kerning first=114 second=114 amount=3 334 | kerning first=114 second=115 amount=2 335 | kerning first=114 second=116 amount=3 336 | kerning first=114 second=117 amount=2 337 | kerning first=114 second=118 amount=4 338 | kerning first=114 second=121 amount=4 339 | kerning first=115 second=119 amount=-3 340 | kerning first=118 second=44 amount=-6 341 | kerning first=118 second=46 amount=-7 342 | kerning first=118 second=99 amount=-3 343 | kerning first=118 second=100 amount=-2 344 | kerning first=118 second=101 amount=-3 345 | kerning first=118 second=111 amount=-3 346 | kerning first=118 second=113 amount=-3 347 | kerning first=119 second=44 amount=-6 348 | kerning first=119 second=46 amount=-6 349 | kerning first=119 second=97 amount=-2 350 | kerning first=119 second=99 amount=-2 351 | kerning first=119 second=100 amount=-2 352 | kerning first=119 second=101 amount=-2 353 | kerning first=119 second=104 amount=1 354 | kerning first=119 second=111 amount=-2 355 | kerning first=119 second=113 amount=-2 356 | kerning first=120 second=99 amount=-2 357 | kerning first=120 second=100 amount=-2 358 | kerning first=120 second=101 amount=-2 359 | kerning first=120 second=111 amount=-2 360 | kerning first=121 second=44 amount=-6 361 | kerning first=121 second=46 amount=-7 362 | kerning first=121 second=97 amount=-2 363 | kerning first=121 second=99 amount=-2 364 | kerning first=121 second=100 amount=-2 365 | kerning first=121 second=101 amount=-2 366 | kerning first=121 second=111 amount=-2 367 | kerning first=122 second=99 amount=-2 368 | kerning first=122 second=100 amount=-2 369 | kerning first=122 second=101 amount=-2 370 | kerning first=122 second=111 amount=-2 371 | -------------------------------------------------------------------------------- /assets/SFCompactDisplay-Regular-16.fnt: -------------------------------------------------------------------------------- 1 | info face="SFCompactDisplay-Regular" size=16 bold=0 italic=0 charset="" unicode=1 stretchH=100 smooth=1 aa=2 padding=0,0,0,0 spacing=0,0 2 | common lineHeight=19 base=16 scaleW=1024 scaleH=512 pages=1 packed=0 alphaChnl=0 redChnl=0 greenChnl=0 blueChnl=0 3 | page id=0 file="ultralight.png" 4 | chars count=95 5 | char id=32 x=0 y=0 width=0 height=0 xoffset=0 yoffset=0 xadvance=3 page=0 chnl=0 6 | char id=33 x=94 y=49 width=2 height=11 xoffset=1 yoffset=5 xadvance=4 page=0 chnl=0 7 | char id=34 x=135 y=507 width=5 height=4 xoffset=0 yoffset=5 xadvance=6 page=0 chnl=0 8 | char id=35 x=571 y=131 width=9 height=11 xoffset=0 yoffset=5 xadvance=9 page=0 chnl=0 9 | char id=36 x=571 y=116 width=9 height=13 xoffset=0 yoffset=4 xadvance=9 page=0 chnl=0 10 | char id=37 x=582 y=116 width=11 height=12 xoffset=0 yoffset=4 xadvance=11 page=0 chnl=0 11 | char id=38 x=582 y=131 width=11 height=11 xoffset=0 yoffset=5 xadvance=10 page=0 chnl=0 12 | char id=39 x=93 y=446 width=3 height=4 xoffset=0 yoffset=5 xadvance=3 page=0 chnl=0 13 | char id=40 x=283 y=195 width=4 height=14 xoffset=1 yoffset=5 xadvance=5 page=0 chnl=0 14 | char id=41 x=283 y=247 width=4 height=14 xoffset=0 yoffset=5 xadvance=5 page=0 chnl=0 15 | char id=42 x=245 y=502 width=5 height=6 xoffset=1 yoffset=5 xadvance=7 page=0 chnl=0 16 | char id=43 x=1003 y=64 width=9 height=9 xoffset=0 yoffset=7 xadvance=9 page=0 chnl=0 17 | char id=44 x=93 y=452 width=3 height=4 xoffset=0 yoffset=14 xadvance=3 page=0 chnl=0 18 | char id=45 x=49 y=397 width=6 height=2 xoffset=0 yoffset=11 xadvance=6 page=0 chnl=0 19 | char id=46 x=52 y=103 width=3 height=2 xoffset=0 yoffset=14 xadvance=4 page=0 chnl=0 20 | char id=47 x=514 y=364 width=6 height=15 xoffset=0 yoffset=4 xadvance=5 page=0 chnl=0 21 | char id=48 x=1005 y=35 width=9 height=11 xoffset=0 yoffset=5 xadvance=9 page=0 chnl=0 22 | char id=49 x=454 y=93 width=5 height=11 xoffset=0 yoffset=5 xadvance=6 page=0 chnl=0 23 | char id=50 x=561 y=406 width=8 height=11 xoffset=0 yoffset=5 xadvance=9 page=0 chnl=0 24 | char id=51 x=561 y=424 width=8 height=12 xoffset=0 yoffset=5 xadvance=9 page=0 chnl=0 25 | char id=52 x=956 y=62 width=9 height=11 xoffset=0 yoffset=5 xadvance=9 page=0 chnl=0 26 | char id=53 x=561 y=442 width=8 height=11 xoffset=1 yoffset=5 xadvance=9 page=0 chnl=0 27 | char id=54 x=983 y=35 width=9 height=11 xoffset=0 yoffset=5 xadvance=9 page=0 chnl=0 28 | char id=55 x=983 y=48 width=8 height=11 xoffset=0 yoffset=5 xadvance=8 page=0 chnl=0 29 | char id=56 x=983 y=61 width=9 height=11 xoffset=0 yoffset=5 xadvance=9 page=0 chnl=0 30 | char id=57 x=994 y=35 width=9 height=11 xoffset=0 yoffset=5 xadvance=9 page=0 chnl=0 31 | char id=58 x=177 y=164 width=2 height=8 xoffset=1 yoffset=8 xadvance=4 page=0 chnl=0 32 | char id=59 x=177 y=59 width=3 height=10 xoffset=0 yoffset=8 xadvance=4 page=0 chnl=0 33 | char id=60 x=1016 y=35 width=7 height=10 xoffset=1 yoffset=7 xadvance=9 page=0 chnl=0 34 | char id=61 x=155 y=505 width=7 height=5 xoffset=1 yoffset=9 xadvance=9 page=0 chnl=0 35 | char id=62 x=994 y=48 width=7 height=10 xoffset=1 yoffset=7 xadvance=9 page=0 chnl=0 36 | char id=63 x=562 y=370 width=7 height=11 xoffset=0 yoffset=5 xadvance=7 page=0 chnl=0 37 | char id=64 x=1003 y=48 width=13 height=14 xoffset=0 yoffset=5 xadvance=13 page=0 chnl=0 38 | char id=65 x=1014 y=1 width=9 height=11 xoffset=0 yoffset=5 xadvance=9 page=0 chnl=0 39 | char id=66 x=512 y=334 width=8 height=11 xoffset=1 yoffset=5 xadvance=10 page=0 chnl=0 40 | char id=67 x=535 y=107 width=9 height=11 xoffset=0 yoffset=5 xadvance=10 page=0 chnl=0 41 | char id=68 x=535 y=120 width=9 height=11 xoffset=1 yoffset=5 xadvance=10 page=0 chnl=0 42 | char id=69 x=413 y=237 width=7 height=11 xoffset=1 yoffset=5 xadvance=9 page=0 chnl=0 43 | char id=70 x=413 y=306 width=7 height=11 xoffset=1 yoffset=5 xadvance=8 page=0 chnl=0 44 | char id=71 x=535 y=133 width=9 height=11 xoffset=0 yoffset=5 xadvance=10 page=0 chnl=0 45 | char id=72 x=535 y=148 width=9 height=11 xoffset=1 yoffset=5 xadvance=11 page=0 chnl=0 46 | char id=73 x=37 y=500 width=2 height=11 xoffset=1 yoffset=5 xadvance=4 page=0 chnl=0 47 | char id=74 x=513 y=196 width=7 height=11 xoffset=0 yoffset=5 xadvance=8 page=0 chnl=0 48 | char id=75 x=512 y=414 width=8 height=11 xoffset=1 yoffset=5 xadvance=9 page=0 chnl=0 49 | char id=76 x=513 y=296 width=7 height=11 xoffset=1 yoffset=5 xadvance=8 page=0 chnl=0 50 | char id=77 x=905 y=57 width=10 height=11 xoffset=1 yoffset=5 xadvance=12 page=0 chnl=0 51 | char id=78 x=535 y=161 width=9 height=11 xoffset=1 yoffset=5 xadvance=11 page=0 chnl=0 52 | char id=79 x=938 y=53 width=10 height=11 xoffset=0 yoffset=5 xadvance=10 page=0 chnl=0 53 | char id=80 x=535 y=174 width=8 height=11 xoffset=1 yoffset=5 xadvance=9 page=0 chnl=0 54 | char id=81 x=956 y=35 width=10 height=12 xoffset=0 yoffset=5 xadvance=10 page=0 chnl=0 55 | char id=82 x=536 y=188 width=8 height=11 xoffset=1 yoffset=5 xadvance=9 page=0 chnl=0 56 | char id=83 x=535 y=493 width=9 height=11 xoffset=0 yoffset=5 xadvance=9 page=0 chnl=0 57 | char id=84 x=536 y=201 width=8 height=11 xoffset=0 yoffset=5 xadvance=8 page=0 chnl=0 58 | char id=85 x=560 y=260 width=9 height=11 xoffset=1 yoffset=5 xadvance=10 page=0 chnl=0 59 | char id=86 x=956 y=49 width=10 height=11 xoffset=0 yoffset=5 xadvance=9 page=0 chnl=0 60 | char id=87 x=968 y=35 width=13 height=11 xoffset=0 yoffset=5 xadvance=13 page=0 chnl=0 61 | char id=88 x=560 y=298 width=9 height=11 xoffset=0 yoffset=5 xadvance=9 page=0 chnl=0 62 | char id=89 x=560 y=334 width=9 height=11 xoffset=0 yoffset=5 xadvance=9 page=0 chnl=0 63 | char id=90 x=560 y=460 width=9 height=11 xoffset=0 yoffset=5 xadvance=9 page=0 chnl=0 64 | char id=91 x=283 y=263 width=4 height=13 xoffset=1 yoffset=5 xadvance=5 page=0 chnl=0 65 | char id=92 x=538 y=421 width=6 height=15 xoffset=0 yoffset=4 xadvance=5 page=0 chnl=0 66 | char id=93 x=283 y=281 width=4 height=13 xoffset=0 yoffset=5 xadvance=5 page=0 chnl=0 67 | char id=94 x=173 y=267 width=6 height=5 xoffset=0 yoffset=5 xadvance=6 page=0 chnl=0 68 | char id=95 x=109 y=282 width=8 height=2 xoffset=-1 yoffset=16 xadvance=7 page=0 chnl=0 69 | char id=96 x=92 y=395 width=3 height=3 xoffset=2 yoffset=4 xadvance=7 page=0 chnl=0 70 | char id=97 x=325 y=339 width=7 height=9 xoffset=0 yoffset=7 xadvance=8 page=0 chnl=0 71 | char id=98 x=536 y=214 width=8 height=12 xoffset=1 yoffset=4 xadvance=9 page=0 chnl=0 72 | char id=99 x=444 y=239 width=8 height=9 xoffset=0 yoffset=7 xadvance=8 page=0 chnl=0 73 | char id=100 x=561 y=134 width=8 height=12 xoffset=0 yoffset=4 xadvance=9 page=0 chnl=0 74 | char id=101 x=450 y=405 width=8 height=9 xoffset=0 yoffset=7 xadvance=8 page=0 chnl=0 75 | char id=102 x=282 y=160 width=5 height=12 xoffset=0 yoffset=4 xadvance=5 page=0 chnl=0 76 | char id=103 x=561 y=152 width=8 height=12 xoffset=0 yoffset=7 xadvance=9 page=0 chnl=0 77 | char id=104 x=513 y=456 width=7 height=12 xoffset=1 yoffset=4 xadvance=9 page=0 chnl=0 78 | char id=105 x=94 y=35 width=2 height=12 xoffset=1 yoffset=4 xadvance=4 page=0 chnl=0 79 | char id=106 x=283 y=178 width=4 height=15 xoffset=-1 yoffset=4 xadvance=4 page=0 chnl=0 80 | char id=107 x=513 y=470 width=7 height=12 xoffset=1 yoffset=4 xadvance=8 page=0 chnl=0 81 | char id=108 x=93 y=320 width=2 height=12 xoffset=1 yoffset=4 xadvance=4 page=0 chnl=0 82 | char id=109 x=968 y=48 width=12 height=9 xoffset=1 yoffset=7 xadvance=14 page=0 chnl=0 83 | char id=110 x=452 y=304 width=7 height=9 xoffset=1 yoffset=7 xadvance=9 page=0 chnl=0 84 | char id=111 x=561 y=170 width=8 height=9 xoffset=0 yoffset=7 xadvance=9 page=0 chnl=0 85 | char id=112 x=561 y=224 width=8 height=12 xoffset=1 yoffset=7 xadvance=9 page=0 chnl=0 86 | char id=113 x=561 y=242 width=8 height=12 xoffset=0 yoffset=7 xadvance=9 page=0 chnl=0 87 | char id=114 x=246 y=296 width=4 height=9 xoffset=1 yoffset=7 xadvance=5 page=0 chnl=0 88 | char id=115 x=537 y=439 width=7 height=9 xoffset=0 yoffset=7 xadvance=8 page=0 chnl=0 89 | char id=116 x=454 y=80 width=5 height=11 xoffset=0 yoffset=5 xadvance=5 page=0 chnl=0 90 | char id=117 x=537 y=457 width=7 height=9 xoffset=1 yoffset=7 xadvance=9 page=0 chnl=0 91 | char id=118 x=561 y=278 width=8 height=9 xoffset=0 yoffset=7 xadvance=7 page=0 chnl=0 92 | char id=119 x=968 y=59 width=11 height=9 xoffset=0 yoffset=7 xadvance=11 page=0 chnl=0 93 | char id=120 x=561 y=316 width=8 height=9 xoffset=0 yoffset=7 xadvance=8 page=0 chnl=0 94 | char id=121 x=561 y=352 width=8 height=12 xoffset=0 yoffset=7 xadvance=8 page=0 chnl=0 95 | char id=122 x=537 y=475 width=7 height=9 xoffset=0 yoffset=7 xadvance=8 page=0 chnl=0 96 | char id=123 x=514 y=347 width=6 height=15 xoffset=0 yoffset=4 xadvance=6 page=0 chnl=0 97 | char id=124 x=177 y=218 width=3 height=15 xoffset=1 yoffset=4 xadvance=5 page=0 chnl=0 98 | char id=125 x=454 y=126 width=5 height=15 xoffset=0 yoffset=4 xadvance=6 page=0 chnl=0 99 | char id=126 x=172 y=250 width=8 height=4 xoffset=0 yoffset=9 xadvance=9 page=0 chnl=0 100 | kernings count=0 101 | -------------------------------------------------------------------------------- /assets/arial.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jaredly/reprocessing-example-cross-platform/a9f4b2cd4b9c76445755e7e3ae31b7789157226b/assets/arial.png -------------------------------------------------------------------------------- /assets/player.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jaredly/reprocessing-example-cross-platform/a9f4b2cd4b9c76445755e7e3ae31b7789157226b/assets/player.png -------------------------------------------------------------------------------- /assets/player2.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jaredly/reprocessing-example-cross-platform/a9f4b2cd4b9c76445755e7e3ae31b7789157226b/assets/player2.png -------------------------------------------------------------------------------- /assets/star.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jaredly/reprocessing-example-cross-platform/a9f4b2cd4b9c76445755e7e3ae31b7789157226b/assets/star.png -------------------------------------------------------------------------------- /assets/ultralight.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jaredly/reprocessing-example-cross-platform/a9f4b2cd4b9c76445755e7e3ae31b7789157226b/assets/ultralight.png -------------------------------------------------------------------------------- /bsconfig.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "reprocessing-example-cross-platform", 3 | "bsc-flags": "-w -27 -g", 4 | "warnings": { 5 | "number": "-40+6+7-26-27+32..39-28-44+45", 6 | "error": "+8", 7 | }, 8 | "sources": [ 9 | "src" 10 | ], 11 | "bs-dependencies": ["@jaredly/reprocessing"], 12 | "package-specs": ["commonjs", "es6"], 13 | "entries": [{ 14 | "backend": "bytecode", 15 | "main-module": "Indexhot", 16 | },{ 17 | "backend": "bytecode", 18 | "main-module": "Dev", 19 | },{ 20 | "backend": "native", 21 | "main-module": "Prod", 22 | },{ 23 | "backend": "js", 24 | "main-module": "Web" 25 | }], 26 | "icon": "./icons/icon.png", 27 | "appName": "CamlQuest", 28 | "androidPackage": "com.jaredforsyth.reprocessing_example", 29 | "refmt": 3, 30 | } 31 | -------------------------------------------------------------------------------- /icons/icon.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jaredly/reprocessing-example-cross-platform/a9f4b2cd4b9c76445755e7e3ae31b7789157226b/icons/icon.png -------------------------------------------------------------------------------- /icons/icon.sketch: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jaredly/reprocessing-example-cross-platform/a9f4b2cd4b9c76445755e7e3ae31b7789157226b/icons/icon.sketch -------------------------------------------------------------------------------- /icons/icon_120.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jaredly/reprocessing-example-cross-platform/a9f4b2cd4b9c76445755e7e3ae31b7789157226b/icons/icon_120.png -------------------------------------------------------------------------------- /icons/icon_180.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jaredly/reprocessing-example-cross-platform/a9f4b2cd4b9c76445755e7e3ae31b7789157226b/icons/icon_180.png -------------------------------------------------------------------------------- /icons/icon_512.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jaredly/reprocessing-example-cross-platform/a9f4b2cd4b9c76445755e7e3ae31b7789157226b/icons/icon_512.png -------------------------------------------------------------------------------- /ios/App.xcodeproj/project.pbxproj: -------------------------------------------------------------------------------- 1 | // !$*UTF8*$! 2 | { 3 | archiveVersion = 1; 4 | classes = { 5 | }; 6 | objectVersion = 46; 7 | objects = { 8 | 9 | /* Begin PBXBuildFile section */ 10 | 7F5A5AF11FFDFEB900E7603B /* Reprocessing.m in Sources */ = {isa = PBXBuildFile; fileRef = 7F5A5AF01FFDFEB900E7603B /* Reprocessing.m */; }; 11 | 7F5A5AF41FFE010600E7603B /* LaunchScreen.storyboard in Resources */ = {isa = PBXBuildFile; fileRef = 7F5A5AF31FFE010600E7603B /* LaunchScreen.storyboard */; }; 12 | 7F6B2A481FDF7C9B00DC8E5E /* assets in Resources */ = {isa = PBXBuildFile; fileRef = 7F6B2A471FDF7C9B00DC8E5E /* assets */; }; 13 | 7F6B2A4C1FDF7F4400DC8E5E /* libreasongl.a in Frameworks */ = {isa = PBXBuildFile; fileRef = 7F6B2A4B1FDF7F4400DC8E5E /* libreasongl.a */; }; 14 | C99F606A1E34FE8F0064B563 /* main.m in Sources */ = {isa = PBXBuildFile; fileRef = C99F60691E34FE8F0064B563 /* main.m */; }; 15 | C99F606D1E34FE8F0064B563 /* AppDelegate.m in Sources */ = {isa = PBXBuildFile; fileRef = C99F606C1E34FE8F0064B563 /* AppDelegate.m */; }; 16 | C99F60751E34FE8F0064B563 /* Assets.xcassets in Resources */ = {isa = PBXBuildFile; fileRef = C99F60741E34FE8F0064B563 /* Assets.xcassets */; }; 17 | /* End PBXBuildFile section */ 18 | 19 | /* Begin PBXFileReference section */ 20 | 7F5A5AF01FFDFEB900E7603B /* Reprocessing.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; name = Reprocessing.m; path = "../reprocessing/Reprocessing.m"; sourceTree = ""; }; 21 | 7F5A5AF21FFDFEBE00E7603B /* Reprocessing.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; name = Reprocessing.h; path = "../reprocessing/Reprocessing.h"; sourceTree = ""; }; 22 | 7F5A5AF31FFE010600E7603B /* LaunchScreen.storyboard */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = file.storyboard; path = LaunchScreen.storyboard; sourceTree = ""; }; 23 | 7F6B2A471FDF7C9B00DC8E5E /* assets */ = {isa = PBXFileReference; lastKnownFileType = folder; name = assets; path = ../../assets; sourceTree = ""; }; 24 | 7F6B2A4B1FDF7F4400DC8E5E /* libreasongl.a */ = {isa = PBXFileReference; lastKnownFileType = archive.ar; path = libreasongl.a; sourceTree = ""; }; 25 | C99F60651E34FE8F0064B563 /* Gravitron.app */ = {isa = PBXFileReference; explicitFileType = wrapper.application; includeInIndex = 0; name = Gravitron.app; path = App.app; sourceTree = BUILT_PRODUCTS_DIR; }; 26 | C99F60691E34FE8F0064B563 /* main.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = main.m; sourceTree = ""; }; 27 | C99F606B1E34FE8F0064B563 /* AppDelegate.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = AppDelegate.h; sourceTree = ""; }; 28 | C99F606C1E34FE8F0064B563 /* AppDelegate.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = AppDelegate.m; sourceTree = ""; }; 29 | C99F60741E34FE8F0064B563 /* Assets.xcassets */ = {isa = PBXFileReference; lastKnownFileType = folder.assetcatalog; path = Assets.xcassets; sourceTree = ""; }; 30 | C99F60791E34FE8F0064B563 /* Info.plist */ = {isa = PBXFileReference; lastKnownFileType = text.plist.xml; path = Info.plist; sourceTree = ""; }; 31 | /* End PBXFileReference section */ 32 | 33 | /* Begin PBXFrameworksBuildPhase section */ 34 | C99F60621E34FE8E0064B563 /* Frameworks */ = { 35 | isa = PBXFrameworksBuildPhase; 36 | buildActionMask = 2147483647; 37 | files = ( 38 | 7F6B2A4C1FDF7F4400DC8E5E /* libreasongl.a in Frameworks */, 39 | ); 40 | runOnlyForDeploymentPostprocessing = 0; 41 | }; 42 | /* End PBXFrameworksBuildPhase section */ 43 | 44 | /* Begin PBXGroup section */ 45 | 278727F01E3805CF004B754D /* Frameworks */ = { 46 | isa = PBXGroup; 47 | children = ( 48 | 7F6B2A4B1FDF7F4400DC8E5E /* libreasongl.a */, 49 | ); 50 | name = Frameworks; 51 | sourceTree = ""; 52 | }; 53 | C99F605C1E34FE8E0064B563 = { 54 | isa = PBXGroup; 55 | children = ( 56 | C99F60671E34FE8F0064B563 /* App */, 57 | C99F60661E34FE8F0064B563 /* Products */, 58 | 278727F01E3805CF004B754D /* Frameworks */, 59 | ); 60 | sourceTree = ""; 61 | }; 62 | C99F60661E34FE8F0064B563 /* Products */ = { 63 | isa = PBXGroup; 64 | children = ( 65 | C99F60651E34FE8F0064B563 /* Gravitron.app */, 66 | ); 67 | name = Products; 68 | sourceTree = ""; 69 | }; 70 | C99F60671E34FE8F0064B563 /* App */ = { 71 | isa = PBXGroup; 72 | children = ( 73 | 7F6B2A471FDF7C9B00DC8E5E /* assets */, 74 | C99F606B1E34FE8F0064B563 /* AppDelegate.h */, 75 | C99F606C1E34FE8F0064B563 /* AppDelegate.m */, 76 | 7F5A5AF31FFE010600E7603B /* LaunchScreen.storyboard */, 77 | 7F5A5AF01FFDFEB900E7603B /* Reprocessing.m */, 78 | 7F5A5AF21FFDFEBE00E7603B /* Reprocessing.h */, 79 | C99F60741E34FE8F0064B563 /* Assets.xcassets */, 80 | C99F60791E34FE8F0064B563 /* Info.plist */, 81 | C99F60681E34FE8F0064B563 /* Supporting Files */, 82 | ); 83 | path = App; 84 | sourceTree = ""; 85 | }; 86 | C99F60681E34FE8F0064B563 /* Supporting Files */ = { 87 | isa = PBXGroup; 88 | children = ( 89 | C99F60691E34FE8F0064B563 /* main.m */, 90 | ); 91 | name = "Supporting Files"; 92 | sourceTree = ""; 93 | }; 94 | /* End PBXGroup section */ 95 | 96 | /* Begin PBXNativeTarget section */ 97 | C99F60641E34FE8E0064B563 /* App */ = { 98 | isa = PBXNativeTarget; 99 | buildConfigurationList = C99F60871E34FE8F0064B563 /* Build configuration list for PBXNativeTarget "App" */; 100 | buildPhases = ( 101 | C99F60611E34FE8E0064B563 /* Sources */, 102 | C99F60621E34FE8E0064B563 /* Frameworks */, 103 | C99F60631E34FE8E0064B563 /* Resources */, 104 | ); 105 | buildRules = ( 106 | ); 107 | dependencies = ( 108 | ); 109 | name = App; 110 | productName = Gravitron; 111 | productReference = C99F60651E34FE8F0064B563 /* Gravitron.app */; 112 | productType = "com.apple.product-type.application"; 113 | }; 114 | /* End PBXNativeTarget section */ 115 | 116 | /* Begin PBXProject section */ 117 | C99F605D1E34FE8E0064B563 /* Project object */ = { 118 | isa = PBXProject; 119 | attributes = { 120 | LastUpgradeCheck = 0810; 121 | ORGANIZATIONNAME = wokalski; 122 | TargetAttributes = { 123 | C99F60641E34FE8E0064B563 = { 124 | CreatedOnToolsVersion = 8.1; 125 | DevelopmentTeam = B79F793LZ6; 126 | ProvisioningStyle = Automatic; 127 | }; 128 | }; 129 | }; 130 | buildConfigurationList = C99F60601E34FE8E0064B563 /* Build configuration list for PBXProject "App" */; 131 | compatibilityVersion = "Xcode 3.2"; 132 | developmentRegion = English; 133 | hasScannedForEncodings = 0; 134 | knownRegions = ( 135 | en, 136 | Base, 137 | ); 138 | mainGroup = C99F605C1E34FE8E0064B563; 139 | productRefGroup = C99F60661E34FE8F0064B563 /* Products */; 140 | projectDirPath = ""; 141 | projectRoot = ""; 142 | targets = ( 143 | C99F60641E34FE8E0064B563 /* App */, 144 | ); 145 | }; 146 | /* End PBXProject section */ 147 | 148 | /* Begin PBXResourcesBuildPhase section */ 149 | C99F60631E34FE8E0064B563 /* Resources */ = { 150 | isa = PBXResourcesBuildPhase; 151 | buildActionMask = 2147483647; 152 | files = ( 153 | C99F60751E34FE8F0064B563 /* Assets.xcassets in Resources */, 154 | 7F6B2A481FDF7C9B00DC8E5E /* assets in Resources */, 155 | 7F5A5AF41FFE010600E7603B /* LaunchScreen.storyboard in Resources */, 156 | ); 157 | runOnlyForDeploymentPostprocessing = 0; 158 | }; 159 | /* End PBXResourcesBuildPhase section */ 160 | 161 | /* Begin PBXSourcesBuildPhase section */ 162 | C99F60611E34FE8E0064B563 /* Sources */ = { 163 | isa = PBXSourcesBuildPhase; 164 | buildActionMask = 2147483647; 165 | files = ( 166 | C99F606D1E34FE8F0064B563 /* AppDelegate.m in Sources */, 167 | 7F5A5AF11FFDFEB900E7603B /* Reprocessing.m in Sources */, 168 | C99F606A1E34FE8F0064B563 /* main.m in Sources */, 169 | ); 170 | runOnlyForDeploymentPostprocessing = 0; 171 | }; 172 | /* End PBXSourcesBuildPhase section */ 173 | 174 | /* Begin XCBuildConfiguration section */ 175 | C99F60851E34FE8F0064B563 /* Debug */ = { 176 | isa = XCBuildConfiguration; 177 | buildSettings = { 178 | ALWAYS_SEARCH_USER_PATHS = NO; 179 | CLANG_ANALYZER_NONNULL = YES; 180 | CLANG_CXX_LANGUAGE_STANDARD = "gnu++0x"; 181 | CLANG_CXX_LIBRARY = "libc++"; 182 | CLANG_ENABLE_MODULES = YES; 183 | CLANG_ENABLE_OBJC_ARC = YES; 184 | CLANG_WARN_BOOL_CONVERSION = YES; 185 | CLANG_WARN_CONSTANT_CONVERSION = YES; 186 | CLANG_WARN_DIRECT_OBJC_ISA_USAGE = YES_ERROR; 187 | CLANG_WARN_DOCUMENTATION_COMMENTS = YES; 188 | CLANG_WARN_EMPTY_BODY = YES; 189 | CLANG_WARN_ENUM_CONVERSION = YES; 190 | CLANG_WARN_INFINITE_RECURSION = YES; 191 | CLANG_WARN_INT_CONVERSION = YES; 192 | CLANG_WARN_OBJC_ROOT_CLASS = YES_ERROR; 193 | CLANG_WARN_SUSPICIOUS_MOVES = YES; 194 | CLANG_WARN_UNREACHABLE_CODE = YES; 195 | CLANG_WARN__DUPLICATE_METHOD_MATCH = YES; 196 | "CODE_SIGN_IDENTITY[sdk=iphoneos*]" = "iPhone Developer"; 197 | COPY_PHASE_STRIP = NO; 198 | DEBUG_INFORMATION_FORMAT = dwarf; 199 | ENABLE_STRICT_OBJC_MSGSEND = YES; 200 | ENABLE_TESTABILITY = YES; 201 | GCC_C_LANGUAGE_STANDARD = gnu99; 202 | GCC_DYNAMIC_NO_PIC = NO; 203 | GCC_NO_COMMON_BLOCKS = YES; 204 | GCC_OPTIMIZATION_LEVEL = 0; 205 | GCC_PREPROCESSOR_DEFINITIONS = ( 206 | "DEBUG=1", 207 | "$(inherited)", 208 | ); 209 | GCC_WARN_64_TO_32_BIT_CONVERSION = YES; 210 | GCC_WARN_ABOUT_RETURN_TYPE = YES_ERROR; 211 | GCC_WARN_UNDECLARED_SELECTOR = YES; 212 | GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE; 213 | GCC_WARN_UNUSED_FUNCTION = YES; 214 | GCC_WARN_UNUSED_VARIABLE = YES; 215 | IPHONEOS_DEPLOYMENT_TARGET = 10.1; 216 | MTL_ENABLE_DEBUG_INFO = YES; 217 | ONLY_ACTIVE_ARCH = YES; 218 | SDKROOT = iphoneos; 219 | }; 220 | name = Debug; 221 | }; 222 | C99F60861E34FE8F0064B563 /* Release */ = { 223 | isa = XCBuildConfiguration; 224 | buildSettings = { 225 | ALWAYS_SEARCH_USER_PATHS = NO; 226 | CLANG_ANALYZER_NONNULL = YES; 227 | CLANG_CXX_LANGUAGE_STANDARD = "gnu++0x"; 228 | CLANG_CXX_LIBRARY = "libc++"; 229 | CLANG_ENABLE_MODULES = YES; 230 | CLANG_ENABLE_OBJC_ARC = YES; 231 | CLANG_WARN_BOOL_CONVERSION = YES; 232 | CLANG_WARN_CONSTANT_CONVERSION = YES; 233 | CLANG_WARN_DIRECT_OBJC_ISA_USAGE = YES_ERROR; 234 | CLANG_WARN_DOCUMENTATION_COMMENTS = YES; 235 | CLANG_WARN_EMPTY_BODY = YES; 236 | CLANG_WARN_ENUM_CONVERSION = YES; 237 | CLANG_WARN_INFINITE_RECURSION = YES; 238 | CLANG_WARN_INT_CONVERSION = YES; 239 | CLANG_WARN_OBJC_ROOT_CLASS = YES_ERROR; 240 | CLANG_WARN_SUSPICIOUS_MOVES = YES; 241 | CLANG_WARN_UNREACHABLE_CODE = YES; 242 | CLANG_WARN__DUPLICATE_METHOD_MATCH = YES; 243 | "CODE_SIGN_IDENTITY[sdk=iphoneos*]" = "iPhone Developer"; 244 | COPY_PHASE_STRIP = NO; 245 | DEBUG_INFORMATION_FORMAT = "dwarf-with-dsym"; 246 | ENABLE_NS_ASSERTIONS = NO; 247 | ENABLE_STRICT_OBJC_MSGSEND = YES; 248 | GCC_C_LANGUAGE_STANDARD = gnu99; 249 | GCC_NO_COMMON_BLOCKS = YES; 250 | GCC_WARN_64_TO_32_BIT_CONVERSION = YES; 251 | GCC_WARN_ABOUT_RETURN_TYPE = YES_ERROR; 252 | GCC_WARN_UNDECLARED_SELECTOR = YES; 253 | GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE; 254 | GCC_WARN_UNUSED_FUNCTION = YES; 255 | GCC_WARN_UNUSED_VARIABLE = YES; 256 | IPHONEOS_DEPLOYMENT_TARGET = 10.1; 257 | MTL_ENABLE_DEBUG_INFO = NO; 258 | SDKROOT = iphoneos; 259 | VALIDATE_PRODUCT = YES; 260 | }; 261 | name = Release; 262 | }; 263 | C99F60881E34FE8F0064B563 /* Debug */ = { 264 | isa = XCBuildConfiguration; 265 | buildSettings = { 266 | ARCHS = ( 267 | arm64, 268 | x86_64, 269 | ); 270 | ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon; 271 | "CODE_SIGN_IDENTITY[sdk=iphoneos*]" = "iPhone Developer"; 272 | CODE_SIGN_STYLE = Automatic; 273 | DEVELOPMENT_TEAM = B79F793LZ6; 274 | ENABLE_BITCODE = NO; 275 | GCC_DYNAMIC_NO_PIC = NO; 276 | HEADER_SEARCH_PATHS = "\"~/.ocaml-cross-mobile/ios-x86_64/lib/ocaml/caml\""; 277 | INFOPLIST_FILE = "$(SRCROOT)/App/Info.plist"; 278 | IPHONEOS_DEPLOYMENT_TARGET = 9.3; 279 | LD_NO_PIE = NO; 280 | LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks"; 281 | LIBRARY_SEARCH_PATHS = "$(PROJECT_DIR)"; 282 | PRODUCT_BUNDLE_IDENTIFIER = "com.jaredforsyth.reprocessing-example"; 283 | PRODUCT_NAME = "$(TARGET_NAME)"; 284 | PROVISIONING_PROFILE_SPECIFIER = ""; 285 | SDKROOT = iphoneos; 286 | SYMROOT = _build; 287 | }; 288 | name = Debug; 289 | }; 290 | C99F60891E34FE8F0064B563 /* Release */ = { 291 | isa = XCBuildConfiguration; 292 | buildSettings = { 293 | ARCHS = ( 294 | arm64, 295 | x86_64, 296 | ); 297 | ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon; 298 | "CODE_SIGN_IDENTITY[sdk=iphoneos*]" = "iPhone Developer"; 299 | CODE_SIGN_STYLE = Automatic; 300 | DEVELOPMENT_TEAM = B79F793LZ6; 301 | ENABLE_BITCODE = NO; 302 | GCC_DYNAMIC_NO_PIC = NO; 303 | HEADER_SEARCH_PATHS = "\"~/.ocaml-cross-mobile/ios-x86_64/lib/ocaml/caml\""; 304 | INFOPLIST_FILE = "$(SRCROOT)/App/Info.plist"; 305 | IPHONEOS_DEPLOYMENT_TARGET = 9.3; 306 | LD_NO_PIE = NO; 307 | LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks"; 308 | LIBRARY_SEARCH_PATHS = "$(PROJECT_DIR)"; 309 | PRODUCT_BUNDLE_IDENTIFIER = "com.jaredforsyth.reprocessing-example"; 310 | PRODUCT_NAME = "$(TARGET_NAME)"; 311 | PROVISIONING_PROFILE_SPECIFIER = ""; 312 | SDKROOT = iphoneos; 313 | SYMROOT = _build; 314 | }; 315 | name = Release; 316 | }; 317 | /* End XCBuildConfiguration section */ 318 | 319 | /* Begin XCConfigurationList section */ 320 | C99F60601E34FE8E0064B563 /* Build configuration list for PBXProject "App" */ = { 321 | isa = XCConfigurationList; 322 | buildConfigurations = ( 323 | C99F60851E34FE8F0064B563 /* Debug */, 324 | C99F60861E34FE8F0064B563 /* Release */, 325 | ); 326 | defaultConfigurationIsVisible = 0; 327 | defaultConfigurationName = Release; 328 | }; 329 | C99F60871E34FE8F0064B563 /* Build configuration list for PBXNativeTarget "App" */ = { 330 | isa = XCConfigurationList; 331 | buildConfigurations = ( 332 | C99F60881E34FE8F0064B563 /* Debug */, 333 | C99F60891E34FE8F0064B563 /* Release */, 334 | ); 335 | defaultConfigurationIsVisible = 0; 336 | defaultConfigurationName = Release; 337 | }; 338 | /* End XCConfigurationList section */ 339 | }; 340 | rootObject = C99F605D1E34FE8E0064B563 /* Project object */; 341 | } 342 | -------------------------------------------------------------------------------- /ios/App.xcodeproj/project.xcworkspace/contents.xcworkspacedata: -------------------------------------------------------------------------------- 1 | 2 | 4 | 6 | 7 | 8 | -------------------------------------------------------------------------------- /ios/App.xcodeproj/project.xcworkspace/xcshareddata/OCamlTest.xcscmblueprint: -------------------------------------------------------------------------------- 1 | { 2 | "DVTSourceControlWorkspaceBlueprintPrimaryRemoteRepositoryKey" : "8E05851A0CC76F451431915BBC433AA850D431F2", 3 | "DVTSourceControlWorkspaceBlueprintWorkingCopyRepositoryLocationsKey" : { 4 | 5 | }, 6 | "DVTSourceControlWorkspaceBlueprintWorkingCopyStatesKey" : { 7 | "61BBD15622E96048305185FEA7CDC0BB1B536343" : 9223372036854775807, 8 | "8E05851A0CC76F451431915BBC433AA850D431F2" : 9223372036854775807 9 | }, 10 | "DVTSourceControlWorkspaceBlueprintIdentifierKey" : "7A3F09D0-3E9C-4C79-B357-E8902CA475E9", 11 | "DVTSourceControlWorkspaceBlueprintWorkingCopyPathsKey" : { 12 | "61BBD15622E96048305185FEA7CDC0BB1B536343" : "reasongl-ios\/bin\/ocaml-iPhoneSimulator-64\/", 13 | "8E05851A0CC76F451431915BBC433AA850D431F2" : "reasongl-ios\/" 14 | }, 15 | "DVTSourceControlWorkspaceBlueprintNameKey" : "OCamlTest", 16 | "DVTSourceControlWorkspaceBlueprintVersion" : 204, 17 | "DVTSourceControlWorkspaceBlueprintRelativePathToProjectKey" : "OCamlTest\/OCamlTest.xcodeproj", 18 | "DVTSourceControlWorkspaceBlueprintRemoteRepositoriesKey" : [ 19 | { 20 | "DVTSourceControlWorkspaceBlueprintRemoteRepositoryURLKey" : "https:\/\/github.com\/whitequark\/ocaml.git", 21 | "DVTSourceControlWorkspaceBlueprintRemoteRepositorySystemKey" : "com.apple.dt.Xcode.sourcecontrol.Git", 22 | "DVTSourceControlWorkspaceBlueprintRemoteRepositoryIdentifierKey" : "61BBD15622E96048305185FEA7CDC0BB1B536343" 23 | }, 24 | { 25 | "DVTSourceControlWorkspaceBlueprintRemoteRepositoryURLKey" : "https:\/\/github.com\/bsansouci\/gobi.git", 26 | "DVTSourceControlWorkspaceBlueprintRemoteRepositorySystemKey" : "com.apple.dt.Xcode.sourcecontrol.Git", 27 | "DVTSourceControlWorkspaceBlueprintRemoteRepositoryIdentifierKey" : "8E05851A0CC76F451431915BBC433AA850D431F2" 28 | } 29 | ] 30 | } -------------------------------------------------------------------------------- /ios/App/AppDelegate.h: -------------------------------------------------------------------------------- 1 | // 2 | // AppDelegate.h 3 | // OCamlTest 4 | // 5 | // Created by Wojciech Czekalski on 22.01.2017. 6 | // Copyright © 2017 wokalski. All rights reserved. 7 | // 8 | 9 | #import 10 | 11 | @interface AppDelegate : UIResponder 12 | 13 | @property (strong, nonatomic) UIWindow *window; 14 | 15 | 16 | @end 17 | 18 | -------------------------------------------------------------------------------- /ios/App/AppDelegate.m: -------------------------------------------------------------------------------- 1 | // 2 | // AppDelegate.m 3 | // OCamlTest 4 | // 5 | // Created by Wojciech Czekalski on 22.01.2017. 6 | // Copyright © 2017 wokalski. All rights reserved. 7 | // 8 | 9 | #import "AppDelegate.h" 10 | #import "Reprocessing.h" 11 | 12 | @interface AppDelegate () 13 | 14 | @end 15 | 16 | @implementation AppDelegate 17 | 18 | 19 | - (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions { 20 | // Override point for customization after application launch. 21 | self.window = [[UIWindow alloc] initWithFrame:[[UIScreen mainScreen] bounds]]; 22 | UIViewController *viewController = [[ReprocessingViewController alloc] init]; 23 | self.window.rootViewController = viewController; 24 | [self.window makeKeyAndVisible]; 25 | return YES; 26 | } 27 | 28 | 29 | - (void)applicationWillResignActive:(UIApplication *)application { 30 | // Sent when the application is about to move from active to inactive state. This can occur for certain types of temporary interruptions (such as an incoming phone call or SMS message) or when the user quits the application and it begins the transition to the background state. 31 | // Use this method to pause ongoing tasks, disable timers, and invalidate graphics rendering callbacks. Games should use this method to pause the game. 32 | } 33 | 34 | 35 | - (void)applicationDidEnterBackground:(UIApplication *)application { 36 | // Use this method to release shared resources, save user data, invalidate timers, and store enough application state information to restore your application to its current state in case it is terminated later. 37 | // If your application supports background execution, this method is called instead of applicationWillTerminate: when the user quits. 38 | } 39 | 40 | 41 | - (void)applicationWillEnterForeground:(UIApplication *)application { 42 | // Called as part of the transition from the background to the active state; here you can undo many of the changes made on entering the background. 43 | } 44 | 45 | 46 | - (void)applicationDidBecomeActive:(UIApplication *)application { 47 | // Restart any tasks that were paused (or not yet started) while the application was inactive. If the application was previously in the background, optionally refresh the user interface. 48 | } 49 | 50 | 51 | - (void)applicationWillTerminate:(UIApplication *)application { 52 | // Called when the application is about to terminate. Save data if appropriate. See also applicationDidEnterBackground:. 53 | } 54 | 55 | 56 | @end 57 | -------------------------------------------------------------------------------- /ios/App/Assets.xcassets/AppIcon.appiconset/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "images" : [ 3 | { 4 | "size" : "20x20", 5 | "idiom" : "iphone", 6 | "filename" : "icon_120-6.png", 7 | "scale" : "2x" 8 | }, 9 | { 10 | "size" : "20x20", 11 | "idiom" : "iphone", 12 | "filename" : "icon_120-5.png", 13 | "scale" : "3x" 14 | }, 15 | { 16 | "size" : "29x29", 17 | "idiom" : "iphone", 18 | "filename" : "icon_120-3.png", 19 | "scale" : "2x" 20 | }, 21 | { 22 | "size" : "29x29", 23 | "idiom" : "iphone", 24 | "filename" : "icon_120-4.png", 25 | "scale" : "3x" 26 | }, 27 | { 28 | "size" : "40x40", 29 | "idiom" : "iphone", 30 | "filename" : "icon_120-2.png", 31 | "scale" : "2x" 32 | }, 33 | { 34 | "size" : "40x40", 35 | "idiom" : "iphone", 36 | "filename" : "icon_120-1.png", 37 | "scale" : "3x" 38 | }, 39 | { 40 | "size" : "60x60", 41 | "idiom" : "iphone", 42 | "filename" : "icon_120.png", 43 | "scale" : "2x" 44 | }, 45 | { 46 | "size" : "60x60", 47 | "idiom" : "iphone", 48 | "filename" : "icon_180.png", 49 | "scale" : "3x" 50 | }, 51 | { 52 | "size" : "1024x1024", 53 | "idiom" : "ios-marketing", 54 | "filename" : "icon.png", 55 | "scale" : "1x" 56 | } 57 | ], 58 | "info" : { 59 | "version" : 1, 60 | "author" : "xcode" 61 | } 62 | } -------------------------------------------------------------------------------- /ios/App/Assets.xcassets/AppIcon.appiconset/icon.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jaredly/reprocessing-example-cross-platform/a9f4b2cd4b9c76445755e7e3ae31b7789157226b/ios/App/Assets.xcassets/AppIcon.appiconset/icon.png -------------------------------------------------------------------------------- /ios/App/Assets.xcassets/AppIcon.appiconset/icon_120-1.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jaredly/reprocessing-example-cross-platform/a9f4b2cd4b9c76445755e7e3ae31b7789157226b/ios/App/Assets.xcassets/AppIcon.appiconset/icon_120-1.png -------------------------------------------------------------------------------- /ios/App/Assets.xcassets/AppIcon.appiconset/icon_120-2.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jaredly/reprocessing-example-cross-platform/a9f4b2cd4b9c76445755e7e3ae31b7789157226b/ios/App/Assets.xcassets/AppIcon.appiconset/icon_120-2.png -------------------------------------------------------------------------------- /ios/App/Assets.xcassets/AppIcon.appiconset/icon_120-3.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jaredly/reprocessing-example-cross-platform/a9f4b2cd4b9c76445755e7e3ae31b7789157226b/ios/App/Assets.xcassets/AppIcon.appiconset/icon_120-3.png -------------------------------------------------------------------------------- /ios/App/Assets.xcassets/AppIcon.appiconset/icon_120-4.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jaredly/reprocessing-example-cross-platform/a9f4b2cd4b9c76445755e7e3ae31b7789157226b/ios/App/Assets.xcassets/AppIcon.appiconset/icon_120-4.png -------------------------------------------------------------------------------- /ios/App/Assets.xcassets/AppIcon.appiconset/icon_120-5.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jaredly/reprocessing-example-cross-platform/a9f4b2cd4b9c76445755e7e3ae31b7789157226b/ios/App/Assets.xcassets/AppIcon.appiconset/icon_120-5.png -------------------------------------------------------------------------------- /ios/App/Assets.xcassets/AppIcon.appiconset/icon_120-6.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jaredly/reprocessing-example-cross-platform/a9f4b2cd4b9c76445755e7e3ae31b7789157226b/ios/App/Assets.xcassets/AppIcon.appiconset/icon_120-6.png -------------------------------------------------------------------------------- /ios/App/Assets.xcassets/AppIcon.appiconset/icon_120.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jaredly/reprocessing-example-cross-platform/a9f4b2cd4b9c76445755e7e3ae31b7789157226b/ios/App/Assets.xcassets/AppIcon.appiconset/icon_120.png -------------------------------------------------------------------------------- /ios/App/Assets.xcassets/AppIcon.appiconset/icon_180.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jaredly/reprocessing-example-cross-platform/a9f4b2cd4b9c76445755e7e3ae31b7789157226b/ios/App/Assets.xcassets/AppIcon.appiconset/icon_180.png -------------------------------------------------------------------------------- /ios/App/Base.lproj/Main.storyboard: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | 24 | 25 | 26 | 27 | 28 | -------------------------------------------------------------------------------- /ios/App/Info.plist: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | CFBundleDevelopmentRegion 6 | en 7 | CFBundleDisplayName 8 | ReprocessingExample 9 | CFBundleExecutable 10 | $(EXECUTABLE_NAME) 11 | CFBundleIdentifier 12 | $(PRODUCT_BUNDLE_IDENTIFIER) 13 | CFBundleInfoDictionaryVersion 14 | 6.0 15 | CFBundleName 16 | $(PRODUCT_NAME) 17 | CFBundlePackageType 18 | APPL 19 | CFBundleShortVersionString 20 | 1.0 21 | CFBundleVersion 22 | 1 23 | LSRequiresIPhoneOS 24 | 25 | NSHumanReadableCopyright 26 | Copyright © 2017 Jared Forsyth 27 | UILaunchStoryboardName 28 | LaunchScreen 29 | UIRequiredDeviceCapabilities 30 | 31 | armv7 32 | 33 | UIStatusBarHidden 34 | 35 | UISupportedInterfaceOrientations 36 | 37 | UIInterfaceOrientationPortrait 38 | 39 | 40 | 41 | -------------------------------------------------------------------------------- /ios/App/LaunchScreen.storyboard: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | 24 | 25 | 26 | 27 | 28 | -------------------------------------------------------------------------------- /ios/App/background.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jaredly/reprocessing-example-cross-platform/a9f4b2cd4b9c76445755e7e3ae31b7789157226b/ios/App/background.png -------------------------------------------------------------------------------- /ios/App/main.m: -------------------------------------------------------------------------------- 1 | // 2 | // main.m 3 | // OCamlTest 4 | // 5 | // Created by Wojciech Czekalski on 22.01.2017. 6 | // Copyright © 2017 wokalski. All rights reserved. 7 | // 8 | 9 | #import 10 | #import "AppDelegate.h" 11 | #import "callback.h" 12 | 13 | int main(int argc, char * argv[]) { 14 | @autoreleasepool { 15 | // Initialize OCaml. 16 | caml_main(argv); 17 | return UIApplicationMain(argc, argv, nil, NSStringFromClass([AppDelegate class])); 18 | } 19 | } 20 | -------------------------------------------------------------------------------- /ios/libreasongl.a: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/jaredly/reprocessing-example-cross-platform/a9f4b2cd4b9c76445755e7e3ae31b7789157226b/ios/libreasongl.a -------------------------------------------------------------------------------- /ios/reprocessing: -------------------------------------------------------------------------------- 1 | ../node_modules/@jaredly/reasongl-ios/ios -------------------------------------------------------------------------------- /package-lock.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "reprocessing-example-cross-platform", 3 | "version": "1.0.3", 4 | "lockfileVersion": 1, 5 | "requires": true, 6 | "dependencies": { 7 | "@jaredly/reasongl-android": { 8 | "version": "1.1.2", 9 | "resolved": "https://registry.npmjs.org/@jaredly/reasongl-android/-/reasongl-android-1.1.2.tgz", 10 | "integrity": "sha512-8WmEM6WlwUTPuksYJzkHm1cWeERbQg6qVBOQ1bFefs3aNocq5zJc6a4J8RYXOZL/ymFiqVYB6dci92uvZ30hOQ==", 11 | "requires": { 12 | "@jaredly/reasongl-interface": "1.0.1", 13 | "ppx-env": "1.0.0" 14 | } 15 | }, 16 | "@jaredly/reasongl-interface": { 17 | "version": "1.0.1", 18 | "resolved": "https://registry.npmjs.org/@jaredly/reasongl-interface/-/reasongl-interface-1.0.1.tgz", 19 | "integrity": "sha512-HBj6tofj4suyoinPiDWZf4KyuqPogcbQqMaUlFvzISFYzpRNJ2YZQbijet/9YFwm/0BmlY16PPwig8T953j5gg==" 20 | }, 21 | "@jaredly/reasongl-ios": { 22 | "version": "1.1.0", 23 | "resolved": "https://registry.npmjs.org/@jaredly/reasongl-ios/-/reasongl-ios-1.1.0.tgz", 24 | "integrity": "sha512-vgXWTFyHp9cunimxFukw/wO6E3MxmIZviXnZTEW9XKoFgq3wMRFJzfNREZpM94IGCJMSf2+Wn9PLPlUoOBnHmw==", 25 | "requires": { 26 | "@jaredly/reasongl-interface": "1.0.1" 27 | } 28 | }, 29 | "@jaredly/reasongl-native": { 30 | "version": "1.0.3", 31 | "resolved": "https://registry.npmjs.org/@jaredly/reasongl-native/-/reasongl-native-1.0.3.tgz", 32 | "integrity": "sha512-GbxeAiP2jduUNNXAHtPbOc+k1y5PKf90n3GI8AibRm7Lss0qpPl5ZaaKDeKwFvPddueMWBsj+WuJ6MQf8foWcw==", 33 | "requires": { 34 | "@jaredly/reasongl-interface": "1.0.1", 35 | "Tgls": "github:bsansouci/tgls#45ca252012060f1f96f85361776815eeb8b26b8c", 36 | "Tsdl": "github:bsansouci/tsdl#ff6f02470778999ebdf9868f36bb3058ca6deb23" 37 | } 38 | }, 39 | "@jaredly/reasongl-web": { 40 | "version": "1.0.2", 41 | "resolved": "https://registry.npmjs.org/@jaredly/reasongl-web/-/reasongl-web-1.0.2.tgz", 42 | "integrity": "sha512-th+GhIX5En9h+Bskx5Dr+c66ghwTlMoiMyOIyFKw/jk/V5Tl10pEc+9bn8w2xvp65V6WKvSD9R5EZyJgMXk3rQ==", 43 | "requires": { 44 | "@jaredly/reasongl-interface": "1.0.1", 45 | "gl-matrix": "2.4.0" 46 | } 47 | }, 48 | "@jaredly/reprocessing": { 49 | "version": "1.1.5", 50 | "resolved": "https://registry.npmjs.org/@jaredly/reprocessing/-/reprocessing-1.1.5.tgz", 51 | "integrity": "sha512-ANQt5+tsLcpzkM7L5B73tJMlrJP8W02eK2jd2jEKhQBoSi9zEi8FdIVo0EYby+CogNEA3lPID12V9nH25uHu3w==", 52 | "requires": { 53 | "@jaredly/reasongl-android": "1.1.2", 54 | "@jaredly/reasongl-interface": "1.0.1", 55 | "@jaredly/reasongl-ios": "1.1.0", 56 | "@jaredly/reasongl-native": "1.0.3", 57 | "@jaredly/reasongl-web": "1.0.2", 58 | "matchenv": "github:bsansouci/matchenv#076d9d6b55c62721b289bdfa024e4f2c659e492b" 59 | } 60 | }, 61 | "Tgls": { 62 | "version": "github:bsansouci/tgls#45ca252012060f1f96f85361776815eeb8b26b8c" 63 | }, 64 | "Tsdl": { 65 | "version": "github:bsansouci/tsdl#ff6f02470778999ebdf9868f36bb3058ca6deb23", 66 | "requires": { 67 | "sdl2": "github:bsansouci/SDL-mirror#436449d6406ee0185737aedae1b8ddbb4c6d81a9" 68 | } 69 | }, 70 | "abbrev": { 71 | "version": "1.1.1", 72 | "resolved": "https://registry.npmjs.org/abbrev/-/abbrev-1.1.1.tgz", 73 | "integrity": "sha512-nne9/IiQ/hzIhY6pdDnbBtz7DjPTKrY00P/zvPSm5pOFkl6xuGrGnXn/VtTNNfNtAfZ9/1RtehkszU9qcTii0Q==", 74 | "dev": true 75 | }, 76 | "base64-js": { 77 | "version": "0.0.8", 78 | "resolved": "https://registry.npmjs.org/base64-js/-/base64-js-0.0.8.tgz", 79 | "integrity": "sha1-EQHpVE9KdrG8OybUUsqW16NeeXg=", 80 | "dev": true 81 | }, 82 | "bplist-parser": { 83 | "version": "0.0.6", 84 | "resolved": "https://registry.npmjs.org/bplist-parser/-/bplist-parser-0.0.6.tgz", 85 | "integrity": "sha1-ONo0cYF9+dRKs4kuJ3B7u9daEbk=", 86 | "dev": true 87 | }, 88 | "bs-platform": { 89 | "version": "github:bsansouci/bsb-native#d76155b709dba032cdb11e99ebe0e2c37bcb2c85", 90 | "dev": true, 91 | "requires": { 92 | "yauzl": "2.9.1" 93 | } 94 | }, 95 | "buffer-crc32": { 96 | "version": "0.2.13", 97 | "resolved": "https://registry.npmjs.org/buffer-crc32/-/buffer-crc32-0.2.13.tgz", 98 | "integrity": "sha1-DTM+PwDqxQqhRUq9MO+MKl2ackI=" 99 | }, 100 | "fd-slicer": { 101 | "version": "1.0.1", 102 | "resolved": "https://registry.npmjs.org/fd-slicer/-/fd-slicer-1.0.1.tgz", 103 | "integrity": "sha1-i1vL2ewyfFBBv5qwI/1nUPEXfmU=", 104 | "requires": { 105 | "pend": "1.2.0" 106 | } 107 | }, 108 | "gl-matrix": { 109 | "version": "2.4.0", 110 | "resolved": "https://registry.npmjs.org/gl-matrix/-/gl-matrix-2.4.0.tgz", 111 | "integrity": "sha1-IImxMwGinuyCLZ2Z3/wfeO6aPFA=" 112 | }, 113 | "ios-deploy": { 114 | "version": "1.9.2", 115 | "resolved": "https://registry.npmjs.org/ios-deploy/-/ios-deploy-1.9.2.tgz", 116 | "integrity": "sha1-wvTEawbbR3GTmyn5gMfBqJBrR6I=", 117 | "dev": true 118 | }, 119 | "ios-sim": { 120 | "version": "6.1.2", 121 | "resolved": "https://registry.npmjs.org/ios-sim/-/ios-sim-6.1.2.tgz", 122 | "integrity": "sha512-kWSc7XJfYAGaQSh51UM4pDgXc77vqBS62oBA2tnXsHajk2+xl7Oyt613GYq64eMry2BM1F3tJLGFCJfpp1Ge+A==", 123 | "dev": true, 124 | "requires": { 125 | "bplist-parser": "0.0.6", 126 | "nopt": "1.0.9", 127 | "plist": "1.2.0", 128 | "simctl": "1.1.1" 129 | } 130 | }, 131 | "lodash": { 132 | "version": "3.10.1", 133 | "resolved": "https://registry.npmjs.org/lodash/-/lodash-3.10.1.tgz", 134 | "integrity": "sha1-W/Rejkm6QYnhfUgnid/RW9FAt7Y=", 135 | "dev": true 136 | }, 137 | "matchenv": { 138 | "version": "github:bsansouci/matchenv#076d9d6b55c62721b289bdfa024e4f2c659e492b", 139 | "requires": { 140 | "bs-platform": "github:bsansouci/bsb-native#d76155b709dba032cdb11e99ebe0e2c37bcb2c85" 141 | }, 142 | "dependencies": { 143 | "bs-platform": { 144 | "version": "github:bsansouci/bsb-native#d76155b709dba032cdb11e99ebe0e2c37bcb2c85", 145 | "requires": { 146 | "yauzl": "2.9.1" 147 | } 148 | } 149 | } 150 | }, 151 | "minimist.re": { 152 | "version": "0.0.3", 153 | "resolved": "https://registry.npmjs.org/minimist.re/-/minimist.re-0.0.3.tgz", 154 | "integrity": "sha512-wztAFj4fpx4NHxzMIVzYgJBXv7pv3lUBSfghGr8piZZqexI7NCI3XOkTovmRmXicYZR5w5Ga5nsDFwGBpxwJDw==", 155 | "dev": true 156 | }, 157 | "nopt": { 158 | "version": "1.0.9", 159 | "resolved": "https://registry.npmjs.org/nopt/-/nopt-1.0.9.tgz", 160 | "integrity": "sha1-O8DXy6e/sNWmdtvtfA6+SKT9RU4=", 161 | "dev": true, 162 | "requires": { 163 | "abbrev": "1.1.1" 164 | } 165 | }, 166 | "pack.re": { 167 | "version": "0.1.0", 168 | "resolved": "https://registry.npmjs.org/pack.re/-/pack.re-0.1.0.tgz", 169 | "integrity": "sha512-6b7oCCJkCcCJPQVddshk1O2zVmK5t3d7tAdZWtYaPvYWOoWFXHqUzbMNsx/5KcEVt6ONEBkgX1RDTqt/3zLx1Q==", 170 | "dev": true, 171 | "requires": { 172 | "minimist.re": "0.0.2", 173 | "reason-cli-tools": "1.0.4", 174 | "rex-json": "1.0.2" 175 | }, 176 | "dependencies": { 177 | "minimist.re": { 178 | "version": "0.0.2", 179 | "resolved": "https://registry.npmjs.org/minimist.re/-/minimist.re-0.0.2.tgz", 180 | "integrity": "sha512-O95bsm/QcNu857RHjPqHVfncXk+rXIDQSTsbLkT4kESmgu+UcQE5jAkZ8Zv3ufCGiuHJzxTAG9jnJTQt95zUqQ==", 181 | "dev": true 182 | }, 183 | "rex-json": { 184 | "version": "1.0.2", 185 | "resolved": "https://registry.npmjs.org/rex-json/-/rex-json-1.0.2.tgz", 186 | "integrity": "sha512-URYGoOqo1JhUXILx9OYMgK3TxVsk9ZbcU8V4bbn30UhkDoNpHIA+PAe3ni+CWCRARB61TaExS7gQZ7S+XX5//Q==", 187 | "dev": true, 188 | "requires": { 189 | "bs-platform": "github:bsansouci/bsb-native#d76155b709dba032cdb11e99ebe0e2c37bcb2c85" 190 | } 191 | } 192 | } 193 | }, 194 | "pend": { 195 | "version": "1.2.0", 196 | "resolved": "https://registry.npmjs.org/pend/-/pend-1.2.0.tgz", 197 | "integrity": "sha1-elfrVQpng/kRUzH89GY9XI4AelA=" 198 | }, 199 | "plist": { 200 | "version": "1.2.0", 201 | "resolved": "https://registry.npmjs.org/plist/-/plist-1.2.0.tgz", 202 | "integrity": "sha1-CEtQk93JJQbiWfh0uNmxr7jHlZM=", 203 | "dev": true, 204 | "requires": { 205 | "base64-js": "0.0.8", 206 | "util-deprecate": "1.0.2", 207 | "xmlbuilder": "4.0.0", 208 | "xmldom": "0.1.27" 209 | } 210 | }, 211 | "ppx-env": { 212 | "version": "1.0.0", 213 | "resolved": "https://registry.npmjs.org/ppx-env/-/ppx-env-1.0.0.tgz", 214 | "integrity": "sha512-n1mnqdAyhzrWvb9a9sWoyXDC2Zm7rKlYddT/WxtdpM64Q330a6zczQFOnna5e0OYTS+le+uwvybABA2vOEp+7g==", 215 | "requires": { 216 | "bs-platform": "github:bsansouci/bsb-native#d76155b709dba032cdb11e99ebe0e2c37bcb2c85" 217 | }, 218 | "dependencies": { 219 | "bs-platform": { 220 | "version": "github:bsansouci/bsb-native#d76155b709dba032cdb11e99ebe0e2c37bcb2c85", 221 | "requires": { 222 | "yauzl": "2.9.1" 223 | } 224 | } 225 | } 226 | }, 227 | "reason-cli-tools": { 228 | "version": "1.0.4", 229 | "resolved": "https://registry.npmjs.org/reason-cli-tools/-/reason-cli-tools-1.0.4.tgz", 230 | "integrity": "sha512-W+yLX6ye271FOXY+Zm2iGdwOI3BxEGfKZ6g8heZ0X2ZbdgVoXC/mfDZIDwPxvsELlqqi6+O4JWrvBAQZ75IKig==", 231 | "dev": true, 232 | "requires": { 233 | "matchenv": "github:bsansouci/matchenv#076d9d6b55c62721b289bdfa024e4f2c659e492b" 234 | } 235 | }, 236 | "reason-simple-server": { 237 | "version": "1.2.0", 238 | "resolved": "https://registry.npmjs.org/reason-simple-server/-/reason-simple-server-1.2.0.tgz", 239 | "integrity": "sha512-NSeh3WY5riPL07Kgt77hKfTlEQd3YUkzAW3oF7jBtNnXD8Viw6ZTvjcsprqcB75PEUn6OnUaiVB5/eiqHH03LQ==", 240 | "dev": true, 241 | "requires": { 242 | "reason-cli-tools": "1.0.4" 243 | } 244 | }, 245 | "reprocessing-scripts": { 246 | "version": "1.3.5", 247 | "resolved": "https://registry.npmjs.org/reprocessing-scripts/-/reprocessing-scripts-1.3.5.tgz", 248 | "integrity": "sha512-lB4U0UvBJR8qPMgqtRm85YpuoDwO3QV/s8Uc3r4+GfRCsSkMuPkz70AqWpUAp5L022gV+LIMdJx3E/9FKi3kTg==", 249 | "dev": true, 250 | "requires": { 251 | "bs-platform": "github:bsansouci/bsb-native#d76155b709dba032cdb11e99ebe0e2c37bcb2c85", 252 | "ios-deploy": "1.9.2", 253 | "ios-sim": "6.1.2", 254 | "minimist.re": "0.0.3", 255 | "pack.re": "0.1.0", 256 | "reason-cli-tools": "1.0.4", 257 | "reason-simple-server": "1.2.0", 258 | "rex-json": "1.1.0" 259 | } 260 | }, 261 | "rex-json": { 262 | "version": "1.1.0", 263 | "resolved": "https://registry.npmjs.org/rex-json/-/rex-json-1.1.0.tgz", 264 | "integrity": "sha512-vIvrHo6vEbHkK34LmGCqARuC7O3Nmb8XbI1oybRFawQhRcaf4d/ZV29xjFZ7GM3Lm7Ke7/v2ZObZ4h3tXLcadw==", 265 | "dev": true, 266 | "requires": { 267 | "bs-platform": "github:bsansouci/bsb-native#d76155b709dba032cdb11e99ebe0e2c37bcb2c85" 268 | } 269 | }, 270 | "sdl2": { 271 | "version": "github:bsansouci/SDL-mirror#436449d6406ee0185737aedae1b8ddbb4c6d81a9" 272 | }, 273 | "shelljs": { 274 | "version": "0.2.6", 275 | "resolved": "https://registry.npmjs.org/shelljs/-/shelljs-0.2.6.tgz", 276 | "integrity": "sha1-kEktcv/MgVmXa6umL7D2iE8MM3g=", 277 | "dev": true 278 | }, 279 | "simctl": { 280 | "version": "1.1.1", 281 | "resolved": "https://registry.npmjs.org/simctl/-/simctl-1.1.1.tgz", 282 | "integrity": "sha512-yY1WQMq/pneY5jQb2+lFp45qEtcz4yKBu1NOPo2OFDVCkwSkQhpkoaAaO1fWhq4IU0+8TQ2r1PMGSTedP0A/Og==", 283 | "dev": true, 284 | "requires": { 285 | "shelljs": "0.2.6", 286 | "tail": "0.4.0" 287 | } 288 | }, 289 | "tail": { 290 | "version": "0.4.0", 291 | "resolved": "https://registry.npmjs.org/tail/-/tail-0.4.0.tgz", 292 | "integrity": "sha1-0p3nJ1DMmdseBTr/E8NZ7PtxMAI=", 293 | "dev": true 294 | }, 295 | "util-deprecate": { 296 | "version": "1.0.2", 297 | "resolved": "https://registry.npmjs.org/util-deprecate/-/util-deprecate-1.0.2.tgz", 298 | "integrity": "sha1-RQ1Nyfpw3nMnYvvS1KKJgUGaDM8=", 299 | "dev": true 300 | }, 301 | "xmlbuilder": { 302 | "version": "4.0.0", 303 | "resolved": "https://registry.npmjs.org/xmlbuilder/-/xmlbuilder-4.0.0.tgz", 304 | "integrity": "sha1-mLj2UcowqmJANvEn0RzGbce5B6M=", 305 | "dev": true, 306 | "requires": { 307 | "lodash": "3.10.1" 308 | } 309 | }, 310 | "xmldom": { 311 | "version": "0.1.27", 312 | "resolved": "https://registry.npmjs.org/xmldom/-/xmldom-0.1.27.tgz", 313 | "integrity": "sha1-1QH5ezvbQDr4757MIFcxh6rawOk=", 314 | "dev": true 315 | }, 316 | "yauzl": { 317 | "version": "2.9.1", 318 | "resolved": "https://registry.npmjs.org/yauzl/-/yauzl-2.9.1.tgz", 319 | "integrity": "sha1-qBmB6nCleUYTOIPwKcWCGok1mn8=", 320 | "requires": { 321 | "buffer-crc32": "0.2.13", 322 | "fd-slicer": "1.0.1" 323 | } 324 | } 325 | } 326 | } 327 | -------------------------------------------------------------------------------- /package.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "reprocessing-example-cross-platform", 3 | "version": "1.0.3", 4 | "scripts": { 5 | "start": "rsb native:hot", 6 | "native": "rsb native", 7 | "bundle": "rsb native:bundle", 8 | "all": "rsb all", 9 | "android": "rsb android", 10 | "android:run": "rsb android:run", 11 | "android:hot": "rsb android:hot", 12 | "ios": "rsb ios", 13 | "ios:sim": "rsb ios:sim", 14 | "ios:device": "rsb ios:device", 15 | "js": "rsb js", 16 | "serve": "rsb js:serve", 17 | "clean": "rm -rf _build && bsb -clean-world" 18 | }, 19 | "keywords": [ 20 | "BuckleScript" 21 | ], 22 | "author": "", 23 | "license": "MIT", 24 | "devDependencies": { 25 | "bs-platform": "bsansouci/bsb-native#fast", 26 | "reprocessing-scripts": "1.3.5" 27 | }, 28 | "dependencies": { 29 | "@jaredly/reprocessing": "1.1.5" 30 | } 31 | } 32 | -------------------------------------------------------------------------------- /public/index.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | My Reprocessing Game 8 | 9 | 10 | 11 | 12 | -------------------------------------------------------------------------------- /src/Game.re: -------------------------------------------------------------------------------- 1 | open Reprocessing; 2 | 3 | type state = { 4 | titleFont: fontT, 5 | statusFont: fontT, 6 | player: imageT, 7 | star: imageT, 8 | left: bool, 9 | hasInteracted: bool, 10 | points: int, 11 | starPos: (float, float), 12 | pos: (float, float), 13 | velocity: (float, float), 14 | t: float 15 | }; 16 | 17 | let playerWidth = 200 / 2; 18 | let playerHeight = 133 / 2; 19 | let starSize = 100 / 2; 20 | 21 | let groundColor = Utils.color(~r=183, ~g=114, ~b=59, ~a=255); 22 | let groundHeight = 100; 23 | 24 | let randomStarPos = env => { 25 | ( 26 | Random.float(float_of_int(Env.width(env) - starSize)), 27 | Random.float(float_of_int(Env.height(env) - groundHeight - starSize)), 28 | ) 29 | }; 30 | 31 | let setup = (size, assetDir, env) => { 32 | switch size { 33 | | `InitialSize => () 34 | | `FullScreen => Env.size(~width=Env.maxWidth(env), ~height=Env.maxHeight(env), env) 35 | | `Normal => Env.size(~width=500, ~height=500, env) 36 | }; 37 | { 38 | t: 0., 39 | points: 0, 40 | left: false, 41 | hasInteracted: false, 42 | velocity: (0., 0.), 43 | starPos: randomStarPos(env), 44 | pos: (0., float_of_int(Env.height(env) - playerHeight - groundHeight)), 45 | star: Draw.loadImage(~filename=Filename.concat(assetDir, "star.png"), env), 46 | player: Draw.loadImage(~filename=Filename.concat(assetDir, "player2.png"), env), 47 | statusFont: Draw.loadFont(~filename=Filename.concat(assetDir, "SFCompactDisplay-Regular-16.fnt"), env), 48 | titleFont: Draw.loadFont(~filename=Filename.concat(assetDir, "Arial-Black-32.fnt"), env), 49 | } 50 | }; 51 | 52 | let isJumping = env => { 53 | if (Env.mousePressed(env)) { 54 | let (x, y) = Env.mouse(env); 55 | if (y < Env.height(env) / 2) { 56 | true 57 | } else { 58 | (Env.key(Events.Up, env)) 59 | } 60 | } else { 61 | (Env.key(Events.Up, env)) 62 | } 63 | }; 64 | 65 | let action = env => { 66 | if (Env.mousePressed(env)) { 67 | let (x, y) = Env.mouse(env); 68 | if (x < Env.width(env) / 3) { 69 | `Left 70 | } else if (x > Env.width(env) * 2 / 3) { 71 | `Right 72 | } else { 73 | `Nothing 74 | } 75 | } else if (Env.key(Events.Left, env)) { 76 | `Left 77 | } else if (Env.key(Events.Right, env)) { 78 | `Right 79 | } else { 80 | `Nothing 81 | } 82 | }; 83 | 84 | let step = ({pos: (x, y) as pos, left, velocity: (vx, vy)} as state, env) => { 85 | let delta = Env.deltaTime(env) *. 60.; 86 | let maxY = float_of_int(Env.height(env) - groundHeight - playerHeight); 87 | let vy = y <= 0. ? max(0., vy) : vy; 88 | let y = min(max(y, 0.), maxY); 89 | let x = min(max(x, 0.), float_of_int(Env.width(env) - playerWidth)); 90 | let pos = (x,y); 91 | let vx = vx *. (1.0 -. 0.1 *. delta); 92 | 93 | let ((vx, vy), (x, y)) = if (isJumping(env)) { 94 | /* if (y == maxY) { */ 95 | /* Yay double jump */ 96 | if (vy >= 0.) { 97 | ((vx, -15.), pos) 98 | } else { 99 | ((vx, vy), pos) 100 | } 101 | } else { 102 | if (y >= maxY) { 103 | ((vx, 0.), (x, maxY)) 104 | } else { 105 | ((vx, vy), pos) 106 | } 107 | }; 108 | 109 | let xspeed = min(3., float_of_int(Env.width(env)) /. 320.) *. 4.; 110 | let ((vx, vy), left) = switch (action(env)) { 111 | | `Nothing => ((vx, vy), left) 112 | | `Left => ((-. xspeed, vy), true) 113 | | `Right => ((xspeed, vy), false) 114 | }; 115 | let x = x +. vx *. delta; 116 | let y = y +. vy *. delta; 117 | 118 | let y = min(max(y, 0.), maxY); 119 | let vy = y >= maxY ? vy : vy +. 0.5 *. delta; 120 | let x = min(max(x, 0.), float_of_int(Env.width(env) - playerWidth)); 121 | 122 | 123 | let gotStar = Utils.intersectRectRect( 124 | ~rect1Pos=(x, y), 125 | ~rect1H=float_of_int(playerHeight), 126 | ~rect1W=float_of_int(playerWidth), 127 | ~rect2Pos=state.starPos, 128 | ~rect2H=float_of_int(starSize), 129 | ~rect2W=float_of_int(starSize) 130 | ); 131 | let (points, starPos) = gotStar 132 | ? (state.points + 1, randomStarPos(env)) 133 | : (state.points, state.starPos); 134 | 135 | { 136 | ...state, 137 | left, 138 | points, 139 | starPos, 140 | hasInteracted: state.hasInteracted || (isJumping(env) || action(env) !== `Nothing), 141 | pos: (x, y), 142 | velocity: (vx, vy) 143 | } 144 | }; 145 | 146 | let draw = ({left, pos, points, t} as state, env) => { 147 | let floorY = Env.height(env) - groundHeight; 148 | 149 | let state = step(state, env); 150 | 151 | Draw.background(Utils.color(~r=240, ~g=240, ~b=240, ~a=255), env); 152 | 153 | /* Floor */ 154 | Draw.fill(groundColor, env); 155 | Draw.rect(~pos=(0, floorY), ~width=Env.width(env), ~height=groundHeight, env); 156 | 157 | let (x, y) = pos; 158 | let x = int_of_float(x); 159 | let y = int_of_float(y); 160 | Draw.image(state.player, 161 | ~pos=left ? (x + playerWidth, y) : (x, y), 162 | ~width=left ? -playerWidth : playerWidth, 163 | ~height=playerHeight, 164 | env 165 | ); 166 | 167 | let (x, y) = state.starPos; 168 | Draw.image(state.star, 169 | ~pos=(int_of_float(x), int_of_float(y)), 170 | ~width=starSize, 171 | ~height=starSize, 172 | env 173 | ); 174 | 175 | let (x, y) = Env.mouse(env); 176 | Draw.tint(Constants.black, env); 177 | Draw.text( 178 | ~font=state.statusFont, 179 | ~body="You have " ++ string_of_int(points) ++ " points", 180 | ~pos=(10, 5), 181 | env 182 | ); 183 | 184 | Draw.tint(groundColor, env); 185 | if (!state.hasInteracted) { 186 | switch (state.titleFont^) { 187 | | None => () 188 | | Some(font) => 189 | let width = Reprocessing_Font.Font.calcStringWidth( 190 | env, 191 | font, 192 | "CamlQuest" 193 | ); 194 | Draw.text( 195 | ~font=state.titleFont, 196 | ~body="CamlQuest", 197 | ~pos=(Env.width(env) / 2 - width / 2, 100), 198 | env 199 | ); 200 | } 201 | }; 202 | 203 | Draw.noTint(env); 204 | {...state, t: t +. Env.deltaTime(env)} 205 | }; 206 | 207 | let run = (size, assetDir) => Reprocessing.run(~setup=setup(size, assetDir), ~draw, ~title="CamlQuest", ()); -------------------------------------------------------------------------------- /src/android.re: -------------------------------------------------------------------------------- 1 | /* Dynlink.loadfile("./awesome"); */ 2 | Game.run(`InitialSize, ""); 3 | -------------------------------------------------------------------------------- /src/androidhot.re: -------------------------------------------------------------------------------- 1 | 2 | Reprocessing.hotreload("./src/android.re"); 3 | -------------------------------------------------------------------------------- /src/dev.re: -------------------------------------------------------------------------------- 1 | Game.run(`Normal, "./assets"); -------------------------------------------------------------------------------- /src/indexhot.re: -------------------------------------------------------------------------------- 1 | Reprocessing.hotreload("./src/dev.re"); 2 | -------------------------------------------------------------------------------- /src/ios.re: -------------------------------------------------------------------------------- 1 | Game.run(`InitialSize, "./assets"); -------------------------------------------------------------------------------- /src/prod.re: -------------------------------------------------------------------------------- 1 | let (/+) = Filename.concat; 2 | let assetDir = Filename.dirname(Sys.argv[0]) /+ "assets"; 3 | Game.run(`Normal, assetDir); 4 | -------------------------------------------------------------------------------- /src/web.re: -------------------------------------------------------------------------------- 1 | Game.run(`FullScreen, "./assets") 2 | -------------------------------------------------------------------------------- /src/webhot.re: -------------------------------------------------------------------------------- 1 | let m = Game.run; /* This is needed so dependencies will load */ 2 | Reprocessing.hotreload("./src/web.re") --------------------------------------------------------------------------------