mirror of
https://github.com/raylib-cs/raylib-cs
synced 2025-06-30 19:03:42 -04:00
Add experimental Android support (#190)
* Add `Raylib-cs.Android` project * Update ci to handle android native libraries * Update ci to pack android project
This commit is contained in:
15
Raylib-cs.Android/Raylib-cs.Android.csproj
Normal file
15
Raylib-cs.Android/Raylib-cs.Android.csproj
Normal file
@ -0,0 +1,15 @@
|
||||
<Project Sdk="Microsoft.NET.Sdk">
|
||||
|
||||
<PropertyGroup>
|
||||
<TargetFrameworks>net6.0-android;net7.0-android</TargetFrameworks>
|
||||
<SupportedOSPlatformVersion>21</SupportedOSPlatformVersion>
|
||||
<RootNamespace>Raylib_cs</RootNamespace>
|
||||
<Nullable>enable</Nullable>
|
||||
<ImplicitUsings>enable</ImplicitUsings>
|
||||
</PropertyGroup>
|
||||
|
||||
<ItemGroup>
|
||||
<ProjectReference Include="../Raylib-cs/Raylib-cs.csproj" />
|
||||
</ItemGroup>
|
||||
|
||||
</Project>
|
17
Raylib-cs.Android/RaylibActivity.cs
Normal file
17
Raylib-cs.Android/RaylibActivity.cs
Normal file
@ -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);
|
||||
}
|
27
Raylib-cs.Android/android.patch
Normal file
27
Raylib-cs.Android/android.patch
Normal file
@ -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 <stdlib.h>
|
||||
+
|
||||
+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
|
0
Raylib-cs.Android/runtimes/android-arm/native/.keep
Normal file
0
Raylib-cs.Android/runtimes/android-arm/native/.keep
Normal file
0
Raylib-cs.Android/runtimes/android-x64/native/.keep
Normal file
0
Raylib-cs.Android/runtimes/android-x64/native/.keep
Normal file
0
Raylib-cs.Android/runtimes/android-x86/native/.keep
Normal file
0
Raylib-cs.Android/runtimes/android-x86/native/.keep
Normal file
Reference in New Issue
Block a user