From 7865ffa1a7b580c075e07ad071f3385b5b67e124 Mon Sep 17 00:00:00 2001 From: Ilya Zhuravlev Date: Sun, 28 Apr 2019 17:52:53 -0400 Subject: [PATCH 1/2] android: Switch to C++ --- apps/openmw/CMakeLists.txt | 2 +- .../{android_main.c => android_main.cpp} | 20 +++++++++---------- 2 files changed, 11 insertions(+), 11 deletions(-) rename apps/openmw/{android_main.c => android_main.cpp} (58%) diff --git a/apps/openmw/CMakeLists.txt b/apps/openmw/CMakeLists.txt index 7bce1ce40..d6e5a44f0 100644 --- a/apps/openmw/CMakeLists.txt +++ b/apps/openmw/CMakeLists.txt @@ -9,7 +9,7 @@ set(GAME if (ANDROID) set(GAME ${GAME} android_commandLine.cpp) - set(GAME ${GAME} android_main.c) + set(GAME ${GAME} android_main.cpp) endif() set(GAME_HEADER diff --git a/apps/openmw/android_main.c b/apps/openmw/android_main.cpp similarity index 58% rename from apps/openmw/android_main.c rename to apps/openmw/android_main.cpp index 393d48d77..cc36388b0 100644 --- a/apps/openmw/android_main.c +++ b/apps/openmw/android_main.cpp @@ -18,35 +18,35 @@ extern const char **argvData; void releaseArgv(); -int Java_org_libsdl_app_SDLActivity_getMouseX(JNIEnv *env, jclass cls, jobject obj) { +extern "C" int Java_org_libsdl_app_SDLActivity_getMouseX(JNIEnv *env, jclass cls, jobject obj) { int ret = 0; - SDL_GetMouseState(&ret, NULL); + SDL_GetMouseState(&ret, nullptr); return ret; } -int Java_org_libsdl_app_SDLActivity_getMouseY(JNIEnv *env, jclass cls, jobject obj) { +extern "C" int Java_org_libsdl_app_SDLActivity_getMouseY(JNIEnv *env, jclass cls, jobject obj) { int ret = 0; - SDL_GetMouseState(NULL, &ret); + SDL_GetMouseState(nullptr, &ret); return ret; } -int Java_org_libsdl_app_SDLActivity_isMouseShown(JNIEnv *env, jclass cls, jobject obj) { +extern "C" int Java_org_libsdl_app_SDLActivity_isMouseShown(JNIEnv *env, jclass cls, jobject obj) { return SDL_ShowCursor(SDL_QUERY); } extern SDL_Window *Android_Window; -int SDL_SendMouseMotion(SDL_Window * window, int mouseID, int relative, int x, int y); -void Java_org_libsdl_app_SDLActivity_sendRelativeMouseMotion(JNIEnv *env, jclass cls, int x, int y) { +extern "C" int SDL_SendMouseMotion(SDL_Window * window, int mouseID, int relative, int x, int y); +extern "C" void Java_org_libsdl_app_SDLActivity_sendRelativeMouseMotion(JNIEnv *env, jclass cls, int x, int y) { SDL_SendMouseMotion(Android_Window, 0, 1, x, y); } -int SDL_SendMouseButton(SDL_Window * window, int mouseID, Uint8 state, Uint8 button); -void Java_org_libsdl_app_SDLActivity_sendMouseButton(JNIEnv *env, jclass cls, int state, int button) { +extern "C" int SDL_SendMouseButton(SDL_Window * window, int mouseID, Uint8 state, Uint8 button); +extern "C" void Java_org_libsdl_app_SDLActivity_sendMouseButton(JNIEnv *env, jclass cls, int state, int button) { SDL_SendMouseButton(Android_Window, 0, state, button); } -int Java_org_libsdl_app_SDLActivity_nativeInit(JNIEnv* env, jclass cls, jobject obj) { +extern "C" int Java_org_libsdl_app_SDLActivity_nativeInit(JNIEnv* env, jclass cls, jobject obj) { setenv("OPENMW_DECOMPRESS_TEXTURES", "1", 1); // On Android, we use a virtual controller with guid="Virtual" From 16d2db8492f64d33789fd0d393f78f85709a551e Mon Sep 17 00:00:00 2001 From: Ilya Zhuravlev Date: Sun, 28 Apr 2019 18:21:48 -0400 Subject: [PATCH 2/2] android: remove unused file --- apps/openmw/CMakeLists.txt | 1 - apps/openmw/android_commandLine.cpp | 27 --------------------------- apps/openmw/android_commandLine.h | 15 --------------- 3 files changed, 43 deletions(-) delete mode 100644 apps/openmw/android_commandLine.cpp delete mode 100644 apps/openmw/android_commandLine.h diff --git a/apps/openmw/CMakeLists.txt b/apps/openmw/CMakeLists.txt index d6e5a44f0..39842db66 100644 --- a/apps/openmw/CMakeLists.txt +++ b/apps/openmw/CMakeLists.txt @@ -8,7 +8,6 @@ set(GAME ) if (ANDROID) - set(GAME ${GAME} android_commandLine.cpp) set(GAME ${GAME} android_main.cpp) endif() diff --git a/apps/openmw/android_commandLine.cpp b/apps/openmw/android_commandLine.cpp deleted file mode 100644 index 7e7f368e0..000000000 --- a/apps/openmw/android_commandLine.cpp +++ /dev/null @@ -1,27 +0,0 @@ -#include "android_commandLine.h" -#include "string.h" - -const char **argvData; -int argcData; - -extern "C" void releaseArgv(); - -void releaseArgv() { - delete[] argvData; -} - -JNIEXPORT void JNICALL Java_ui_activity_GameActivity_commandLine(JNIEnv *env, - jobject obj, jint argc, jobjectArray stringArray) { - jboolean iscopy; - argcData = (int) argc; - argvData = new const char *[argcData + 1]; - argvData[0] = "openmw"; - for (int i = 1; i < argcData + 1; i++) { - jstring string = (jstring) (env)->GetObjectArrayElement(stringArray, - i - 1); - argvData[i] = (env)->GetStringUTFChars(string, &iscopy); - (env)->DeleteLocalRef(string); - } - (env)->DeleteLocalRef(stringArray); -} - diff --git a/apps/openmw/android_commandLine.h b/apps/openmw/android_commandLine.h deleted file mode 100644 index 5ca79c2d0..000000000 --- a/apps/openmw/android_commandLine.h +++ /dev/null @@ -1,15 +0,0 @@ - -/* DO NOT EDIT THIS FILE - it is machine generated */ -#include -#ifndef _Included_ui_activity_GameActivity_commandLine -#define _Included_ui_activity_GameActivity_commandLine -#ifdef __cplusplus -extern "C" { -#endif - -JNIEXPORT void JNICALL Java_ui_activity_GameActivity_commandLine(JNIEnv *env, jobject obj,jint argcData, jobjectArray stringArray); - -#ifdef __cplusplus -} -#endif -#endif