2
0
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:
Angga Permana
2023-08-23 19:18:50 +07:00
committed by GitHub
parent 23ed54cc24
commit 5ae2104c9a
11 changed files with 156 additions and 9 deletions

View 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>

View 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);
}

View 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