From 570ccef6af5a93b91b1583e712b3db32371d75c4 Mon Sep 17 00:00:00 2001 From: anggape Date: Wed, 23 Aug 2023 12:43:13 +0700 Subject: [PATCH] add `Raylib-cs.Android` project --- Raylib-cs.Android/Raylib-cs.Android.csproj | 15 +++++++++++ Raylib-cs.Android/RaylibActivity.cs | 17 ++++++++++++ Raylib-cs.Android/android.patch | 27 +++++++++++++++++++ .../runtimes/android-arm/native/.keep | 0 .../runtimes/android-arm64/native/.keep | 0 .../runtimes/android-x64/native/.keep | 0 .../runtimes/android-x86/native/.keep | 0 Raylib-cs.sln | 14 ++++++++++ 8 files changed, 73 insertions(+) create mode 100644 Raylib-cs.Android/Raylib-cs.Android.csproj create mode 100644 Raylib-cs.Android/RaylibActivity.cs create mode 100644 Raylib-cs.Android/android.patch create mode 100644 Raylib-cs.Android/runtimes/android-arm/native/.keep create mode 100644 Raylib-cs.Android/runtimes/android-arm64/native/.keep create mode 100644 Raylib-cs.Android/runtimes/android-x64/native/.keep create mode 100644 Raylib-cs.Android/runtimes/android-x86/native/.keep diff --git a/Raylib-cs.Android/Raylib-cs.Android.csproj b/Raylib-cs.Android/Raylib-cs.Android.csproj new file mode 100644 index 0000000..09525f5 --- /dev/null +++ b/Raylib-cs.Android/Raylib-cs.Android.csproj @@ -0,0 +1,15 @@ + + + + net6.0-android;net7.0-android + 21 + Raylib_cs + enable + enable + + + + + + + \ No newline at end of file diff --git a/Raylib-cs.Android/RaylibActivity.cs b/Raylib-cs.Android/RaylibActivity.cs new file mode 100644 index 0000000..14d7c54 --- /dev/null +++ b/Raylib-cs.Android/RaylibActivity.cs @@ -0,0 +1,17 @@ +using System.Runtime.InteropServices; + +namespace Raylib_cs; + +public abstract class RaylibActivity : NativeActivity +{ + protected override void OnCreate(Bundle? savedInstanceState) + { + base.OnCreate(savedInstanceState); + RaylibSetAndroidCallback(OnReady); + } + + protected abstract void OnReady(); + + [DllImport(Raylib.NativeLibName, CallingConvention = CallingConvention.Cdecl)] + private static extern void RaylibSetAndroidCallback(Action callback); +} diff --git a/Raylib-cs.Android/android.patch b/Raylib-cs.Android/android.patch new file mode 100644 index 0000000..6d70c48 --- /dev/null +++ b/Raylib-cs.Android/android.patch @@ -0,0 +1,27 @@ +diff --git a/src/rcore.c b/src/rcore.c +index eae4951..4400b22 100644 +--- a/src/rcore.c ++++ b/src/rcore.c +@@ -1,3 +1,22 @@ ++#if defined (PLATFORM_ANDROID) ++#include ++ ++typedef void (*RaylibAndroidCallback)(); ++static RaylibAndroidCallback _androidCallback = NULL; ++ ++void RaylibSetAndroidCallback(RaylibAndroidCallback callback) { ++ _androidCallback = callback; ++} ++ ++int main(int argc, char *argv[]) { ++ (void)argc; ++ (void)argv; ++ while (_androidCallback == NULL) { ++ } ++ _androidCallback(); ++} ++#endif ++ + /********************************************************************************************** + * + * rcore - Basic functions to manage windows, OpenGL context and input on multiple platforms diff --git a/Raylib-cs.Android/runtimes/android-arm/native/.keep b/Raylib-cs.Android/runtimes/android-arm/native/.keep new file mode 100644 index 0000000..e69de29 diff --git a/Raylib-cs.Android/runtimes/android-arm64/native/.keep b/Raylib-cs.Android/runtimes/android-arm64/native/.keep new file mode 100644 index 0000000..e69de29 diff --git a/Raylib-cs.Android/runtimes/android-x64/native/.keep b/Raylib-cs.Android/runtimes/android-x64/native/.keep new file mode 100644 index 0000000..e69de29 diff --git a/Raylib-cs.Android/runtimes/android-x86/native/.keep b/Raylib-cs.Android/runtimes/android-x86/native/.keep new file mode 100644 index 0000000..e69de29 diff --git a/Raylib-cs.sln b/Raylib-cs.sln index 823188f..6e28f1f 100644 --- a/Raylib-cs.sln +++ b/Raylib-cs.sln @@ -7,6 +7,8 @@ Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Raylib-cs", "Raylib-cs\Rayl EndProject Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Raylib-cs.Tests", "Raylib-cs.Tests\Raylib-cs.Tests.csproj", "{523DEE6A-20CD-47AB-94A6-8D3C3CF9ADAD}" EndProject +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Raylib-cs.Android", "Raylib-cs.Android\Raylib-cs.Android.csproj", "{8C2B9C24-3926-4B3A-902C-6429CF4864AA}" +EndProject Global GlobalSection(SolutionConfigurationPlatforms) = preSolution Debug|Any CPU = Debug|Any CPU @@ -25,6 +27,18 @@ Global {523DEE6A-20CD-47AB-94A6-8D3C3CF9ADAD}.Release|Any CPU.Build.0 = Release|Any CPU {523DEE6A-20CD-47AB-94A6-8D3C3CF9ADAD}.Debug|Any CPU.ActiveCfg = Debug|Any CPU {523DEE6A-20CD-47AB-94A6-8D3C3CF9ADAD}.Debug|Any CPU.Build.0 = Debug|Any CPU + {8C2B9C24-3926-4B3A-902C-6429CF4864AA}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {8C2B9C24-3926-4B3A-902C-6429CF4864AA}.Debug|Any CPU.Build.0 = Debug|Any CPU + {8C2B9C24-3926-4B3A-902C-6429CF4864AA}.Debug|x64.ActiveCfg = Debug|Any CPU + {8C2B9C24-3926-4B3A-902C-6429CF4864AA}.Debug|x64.Build.0 = Debug|Any CPU + {8C2B9C24-3926-4B3A-902C-6429CF4864AA}.Debug|x86.ActiveCfg = Debug|Any CPU + {8C2B9C24-3926-4B3A-902C-6429CF4864AA}.Debug|x86.Build.0 = Debug|Any CPU + {8C2B9C24-3926-4B3A-902C-6429CF4864AA}.Release|Any CPU.ActiveCfg = Release|Any CPU + {8C2B9C24-3926-4B3A-902C-6429CF4864AA}.Release|Any CPU.Build.0 = Release|Any CPU + {8C2B9C24-3926-4B3A-902C-6429CF4864AA}.Release|x64.ActiveCfg = Release|Any CPU + {8C2B9C24-3926-4B3A-902C-6429CF4864AA}.Release|x64.Build.0 = Release|Any CPU + {8C2B9C24-3926-4B3A-902C-6429CF4864AA}.Release|x86.ActiveCfg = Release|Any CPU + {8C2B9C24-3926-4B3A-902C-6429CF4864AA}.Release|x86.Build.0 = Release|Any CPU EndGlobalSection GlobalSection(SolutionProperties) = preSolution HideSolutionNode = FALSE