diff options
author | RĂ©mi Verschelde <rverschelde@gmail.com> | 2018-01-13 17:04:42 +0100 |
---|---|---|
committer | GitHub <noreply@github.com> | 2018-01-13 17:04:42 +0100 |
commit | 5f22422d99f8da2216d03d90355fec7016286255 (patch) | |
tree | 9c3ccf54e795f79bc16b5b0d0218f5f624403696 | |
parent | d4fc8c8ea17bf8cfabef7d742ea037d0f53e319c (diff) | |
parent | 1d763a2cb8a65f4ed47edad7c1b7abd3d1becbd5 (diff) |
Merge pull request #15665 from endragor/fix-android-gdnative
Fix open_dynamic_library for Android
-rw-r--r-- | platform/android/os_android.cpp | 11 | ||||
-rw-r--r-- | platform/android/os_android.h | 2 |
2 files changed, 13 insertions, 0 deletions
diff --git a/platform/android/os_android.cpp b/platform/android/os_android.cpp index 23811f963a..67ce796279 100644 --- a/platform/android/os_android.cpp +++ b/platform/android/os_android.cpp @@ -48,6 +48,8 @@ #include "file_access_jandroid.h" #endif +#include <dlfcn.h> + class AndroidLogger : public Logger { public: virtual void logv(const char *p_format, va_list p_list, bool p_err) { @@ -173,6 +175,15 @@ void OS_Android::alert(const String &p_alert, const String &p_title) { alert_func(p_alert, p_title); } +Error OS_Android::open_dynamic_library(const String p_path, void *&p_library_handle, bool p_also_set_library_path) { + p_library_handle = dlopen(p_path.utf8().get_data(), RTLD_NOW); + if (!p_library_handle) { + ERR_EXPLAIN("Can't open dynamic library: " + p_path + ". Error: " + dlerror()); + ERR_FAIL_V(ERR_CANT_OPEN); + } + return OK; +} + void OS_Android::set_mouse_show(bool p_show) { //android has no mouse... diff --git a/platform/android/os_android.h b/platform/android/os_android.h index 7ace7b5200..12181b3688 100644 --- a/platform/android/os_android.h +++ b/platform/android/os_android.h @@ -159,6 +159,8 @@ public: virtual void alert(const String &p_alert, const String &p_title = "ALERT!"); + virtual Error open_dynamic_library(const String p_path, void *&p_library_handle, bool p_also_set_library_path = false); + virtual void set_mouse_show(bool p_show); virtual void set_mouse_grab(bool p_grab); virtual bool is_mouse_grab_enabled() const; |