Make onNativePen available for Android

This commit is contained in:
hwsmm 2024-11-12 22:58:39 +09:00 committed by Ryan C. Gordon
parent a5e8fc21b2
commit f5fbdf7ed5
2 changed files with 19 additions and 0 deletions

View file

@ -1059,6 +1059,7 @@ public class SDLActivity extends Activity implements View.OnSystemUiVisibilityCh
public static native void onNativeTouch(int touchDevId, int pointerFingerId, public static native void onNativeTouch(int touchDevId, int pointerFingerId,
int action, float x, int action, float x,
float y, float p); 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 onNativeAccel(float x, float y, float z);
public static native void onNativeClipboardChanged(); public static native void onNativeClipboardChanged();
public static native void onNativeSurfaceCreated(); public static native void onNativeSurfaceCreated();

View file

@ -28,6 +28,7 @@
#include "../../video/android/SDL_androidkeyboard.h" #include "../../video/android/SDL_androidkeyboard.h"
#include "../../video/android/SDL_androidmouse.h" #include "../../video/android/SDL_androidmouse.h"
#include "../../video/android/SDL_androidtouch.h" #include "../../video/android/SDL_androidtouch.h"
#include "../../video/android/SDL_androidpen.h"
#include "../../video/android/SDL_androidvideo.h" #include "../../video/android/SDL_androidvideo.h"
#include "../../video/android/SDL_androidwindow.h" #include "../../video/android/SDL_androidwindow.h"
#include "../../joystick/android/SDL_sysjoystick_c.h" #include "../../joystick/android/SDL_sysjoystick_c.h"
@ -118,6 +119,10 @@ JNIEXPORT void JNICALL SDL_JAVA_INTERFACE(onNativeMouse)(
JNIEnv *env, jclass jcls, JNIEnv *env, jclass jcls,
jint button, jint action, jfloat x, jfloat y, jboolean relative); 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)( JNIEXPORT void JNICALL SDL_JAVA_INTERFACE(onNativeAccel)(
JNIEnv *env, jclass jcls, JNIEnv *env, jclass jcls,
jfloat x, jfloat y, jfloat z); jfloat x, jfloat y, jfloat z);
@ -209,6 +214,7 @@ static JNINativeMethod SDLActivity_tab[] = {
{ "onNativeKeyboardFocusLost", "()V", SDL_JAVA_INTERFACE(onNativeKeyboardFocusLost) }, { "onNativeKeyboardFocusLost", "()V", SDL_JAVA_INTERFACE(onNativeKeyboardFocusLost) },
{ "onNativeTouch", "(IIIFFF)V", SDL_JAVA_INTERFACE(onNativeTouch) }, { "onNativeTouch", "(IIIFFF)V", SDL_JAVA_INTERFACE(onNativeTouch) },
{ "onNativeMouse", "(IIFFZ)V", SDL_JAVA_INTERFACE(onNativeMouse) }, { "onNativeMouse", "(IIFFZ)V", SDL_JAVA_INTERFACE(onNativeMouse) },
{ "onNativePen", "(IIIFFF)V", SDL_JAVA_INTERFACE(onNativePen) },
{ "onNativeAccel", "(FFF)V", SDL_JAVA_INTERFACE(onNativeAccel) }, { "onNativeAccel", "(FFF)V", SDL_JAVA_INTERFACE(onNativeAccel) },
{ "onNativeClipboardChanged", "()V", SDL_JAVA_INTERFACE(onNativeClipboardChanged) }, { "onNativeClipboardChanged", "()V", SDL_JAVA_INTERFACE(onNativeClipboardChanged) },
{ "nativeLowMemory", "()V", SDL_JAVA_INTERFACE(nativeLowMemory) }, { "nativeLowMemory", "()V", SDL_JAVA_INTERFACE(nativeLowMemory) },
@ -1362,6 +1368,18 @@ JNIEXPORT void JNICALL SDL_JAVA_INTERFACE(onNativeMouse)(
SDL_UnlockMutex(Android_ActivityMutex); 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 // Accelerometer
JNIEXPORT void JNICALL SDL_JAVA_INTERFACE(onNativeAccel)( JNIEXPORT void JNICALL SDL_JAVA_INTERFACE(onNativeAccel)(
JNIEnv *env, jclass jcls, JNIEnv *env, jclass jcls,