From f5fbdf7ed542d693b32033ab80ffc763a1016076 Mon Sep 17 00:00:00 2001
From: hwsmm <[EMAIL REDACTED]>
Date: Tue, 12 Nov 2024 22:58:39 +0900
Subject: [PATCH] Make onNativePen available for Android
---
.../main/java/org/libsdl/app/SDLActivity.java | 1 +
src/core/android/SDL_android.c | 18 ++++++++++++++++++
2 files changed, 19 insertions(+)
diff --git a/android-project/app/src/main/java/org/libsdl/app/SDLActivity.java b/android-project/app/src/main/java/org/libsdl/app/SDLActivity.java
index 8666885a4a4bd..a1edff7f407de 100644
--- a/android-project/app/src/main/java/org/libsdl/app/SDLActivity.java
+++ b/android-project/app/src/main/java/org/libsdl/app/SDLActivity.java
@@ -1059,6 +1059,7 @@ protected boolean sendCommand(int command, Object data) {
public static native void onNativeTouch(int touchDevId, int pointerFingerId,
int action, float x,
float y, float p);
+ public static native void onNativePen(int penId, int button, int action, float x, float y, float p);
public static native void onNativeAccel(float x, float y, float z);
public static native void onNativeClipboardChanged();
public static native void onNativeSurfaceCreated();
diff --git a/src/core/android/SDL_android.c b/src/core/android/SDL_android.c
index e24a7547e35b8..2835ad3e212ba 100644
--- a/src/core/android/SDL_android.c
+++ b/src/core/android/SDL_android.c
@@ -28,6 +28,7 @@
#include "../../video/android/SDL_androidkeyboard.h"
#include "../../video/android/SDL_androidmouse.h"
#include "../../video/android/SDL_androidtouch.h"
+#include "../../video/android/SDL_androidpen.h"
#include "../../video/android/SDL_androidvideo.h"
#include "../../video/android/SDL_androidwindow.h"
#include "../../joystick/android/SDL_sysjoystick_c.h"
@@ -118,6 +119,10 @@ JNIEXPORT void JNICALL SDL_JAVA_INTERFACE(onNativeMouse)(
JNIEnv *env, jclass jcls,
jint button, jint action, jfloat x, jfloat y, jboolean relative);
+JNIEXPORT void JNICALL SDL_JAVA_INTERFACE(onNativePen)(
+ JNIEnv *env, jclass jcls,
+ jint pen_id_in, jint button, jint action, jfloat x, jfloat y, jfloat p);
+
JNIEXPORT void JNICALL SDL_JAVA_INTERFACE(onNativeAccel)(
JNIEnv *env, jclass jcls,
jfloat x, jfloat y, jfloat z);
@@ -209,6 +214,7 @@ static JNINativeMethod SDLActivity_tab[] = {
{ "onNativeKeyboardFocusLost", "()V", SDL_JAVA_INTERFACE(onNativeKeyboardFocusLost) },
{ "onNativeTouch", "(IIIFFF)V", SDL_JAVA_INTERFACE(onNativeTouch) },
{ "onNativeMouse", "(IIFFZ)V", SDL_JAVA_INTERFACE(onNativeMouse) },
+ { "onNativePen", "(IIIFFF)V", SDL_JAVA_INTERFACE(onNativePen) },
{ "onNativeAccel", "(FFF)V", SDL_JAVA_INTERFACE(onNativeAccel) },
{ "onNativeClipboardChanged", "()V", SDL_JAVA_INTERFACE(onNativeClipboardChanged) },
{ "nativeLowMemory", "()V", SDL_JAVA_INTERFACE(nativeLowMemory) },
@@ -1362,6 +1368,18 @@ JNIEXPORT void JNICALL SDL_JAVA_INTERFACE(onNativeMouse)(
SDL_UnlockMutex(Android_ActivityMutex);
}
+// Pen
+JNIEXPORT void JNICALL SDL_JAVA_INTERFACE(onNativePen)(
+ JNIEnv *env, jclass jcls,
+ jint pen_id_in, jint button, jint action, jfloat x, jfloat y, jfloat p)
+{
+ SDL_LockMutex(Android_ActivityMutex);
+
+ Android_OnPen(Android_Window, pen_id_in, button, action, x, y, p);
+
+ SDL_UnlockMutex(Android_ActivityMutex);
+}
+
// Accelerometer
JNIEXPORT void JNICALL SDL_JAVA_INTERFACE(onNativeAccel)(
JNIEnv *env, jclass jcls,