|
@@ -240,7 +240,6 @@ Variant _jobject_to_variant(JNIEnv *env, jobject obj) {
|
|
|
jclass c = env->GetObjectClass(obj);
|
|
|
bool array;
|
|
|
String name = _get_class_name(env, c, &array);
|
|
|
- //print_line("name is " + name + ", array "+Variant(array));
|
|
|
|
|
|
if (name == "java.lang.String") {
|
|
|
|
|
@@ -251,7 +250,6 @@ Variant _jobject_to_variant(JNIEnv *env, jobject obj) {
|
|
|
|
|
|
jobjectArray arr = (jobjectArray)obj;
|
|
|
int stringCount = env->GetArrayLength(arr);
|
|
|
- //print_line("String array! " + String::num(stringCount));
|
|
|
PoolVector<String> sarr;
|
|
|
|
|
|
for (int i = 0; i < stringCount; i++) {
|
|
@@ -380,7 +378,6 @@ Variant _jobject_to_variant(JNIEnv *env, jobject obj) {
|
|
|
Array vals = _jobject_to_variant(env, arr);
|
|
|
env->DeleteLocalRef(arr);
|
|
|
|
|
|
- //print_line("adding " + String::num(keys.size()) + " to Dictionary!");
|
|
|
for (int i = 0; i < keys.size(); i++) {
|
|
|
|
|
|
ret[keys[i]] = vals[i];
|
|
@@ -411,7 +408,6 @@ class JNISingleton : public Object {
|
|
|
public:
|
|
|
virtual Variant call(const StringName &p_method, const Variant **p_args, int p_argcount, Variant::CallError &r_error) {
|
|
|
|
|
|
- //print_line("attempt to call "+String(p_method));
|
|
|
ERR_FAIL_COND_V(!instance, Variant());
|
|
|
|
|
|
r_error.error = Variant::CallError::CALL_OK;
|
|
@@ -419,7 +415,6 @@ public:
|
|
|
Map<StringName, MethodData>::Element *E = method_map.find(p_method);
|
|
|
if (!E) {
|
|
|
|
|
|
- print_line("no exists");
|
|
|
r_error.error = Variant::CallError::CALL_ERROR_INVALID_METHOD;
|
|
|
return Variant();
|
|
|
}
|
|
@@ -427,7 +422,6 @@ public:
|
|
|
int ac = E->get().argtypes.size();
|
|
|
if (ac < p_argcount) {
|
|
|
|
|
|
- print_line("fewargs");
|
|
|
r_error.error = Variant::CallError::CALL_ERROR_TOO_FEW_ARGUMENTS;
|
|
|
r_error.argument = ac;
|
|
|
return Variant();
|
|
@@ -435,7 +429,6 @@ public:
|
|
|
|
|
|
if (ac > p_argcount) {
|
|
|
|
|
|
- print_line("manyargs");
|
|
|
r_error.error = Variant::CallError::CALL_ERROR_TOO_MANY_ARGUMENTS;
|
|
|
r_error.argument = ac;
|
|
|
return Variant();
|
|
@@ -464,7 +457,6 @@ public:
|
|
|
|
|
|
ERR_FAIL_COND_V(res != 0, Variant());
|
|
|
|
|
|
- //print_line("argcount "+String::num(p_argcount));
|
|
|
List<jobject> to_erase;
|
|
|
for (int i = 0; i < p_argcount; i++) {
|
|
|
|
|
@@ -474,26 +466,21 @@ public:
|
|
|
to_erase.push_back(vr.obj);
|
|
|
}
|
|
|
|
|
|
- //print_line("calling method!!");
|
|
|
-
|
|
|
Variant ret;
|
|
|
|
|
|
switch (E->get().ret_type) {
|
|
|
|
|
|
case Variant::NIL: {
|
|
|
|
|
|
- //print_line("call void");
|
|
|
env->CallVoidMethodA(instance, E->get().method, v);
|
|
|
} break;
|
|
|
case Variant::BOOL: {
|
|
|
|
|
|
ret = env->CallBooleanMethodA(instance, E->get().method, v) == JNI_TRUE;
|
|
|
- //print_line("call bool");
|
|
|
} break;
|
|
|
case Variant::INT: {
|
|
|
|
|
|
ret = env->CallIntMethodA(instance, E->get().method, v);
|
|
|
- //print_line("call int");
|
|
|
} break;
|
|
|
case Variant::REAL: {
|
|
|
|
|
@@ -544,7 +531,6 @@ public:
|
|
|
|
|
|
case Variant::DICTIONARY: {
|
|
|
|
|
|
- //print_line("call dictionary");
|
|
|
jobject obj = env->CallObjectMethodA(instance, E->get().method, v);
|
|
|
ret = _jobject_to_variant(env, obj);
|
|
|
env->DeleteLocalRef(obj);
|
|
@@ -552,7 +538,6 @@ public:
|
|
|
} break;
|
|
|
default: {
|
|
|
|
|
|
- print_line("failure..");
|
|
|
env->PopLocalFrame(NULL);
|
|
|
ERR_FAIL_V(Variant());
|
|
|
} break;
|
|
@@ -564,7 +549,6 @@ public:
|
|
|
}
|
|
|
|
|
|
env->PopLocalFrame(NULL);
|
|
|
- //print_line("success");
|
|
|
|
|
|
return ret;
|
|
|
}
|
|
@@ -757,8 +741,6 @@ JNIEXPORT void JNICALL Java_org_godotengine_godot_GodotLib_setVirtualKeyboardHei
|
|
|
|
|
|
JNIEXPORT void JNICALL Java_org_godotengine_godot_GodotLib_initialize(JNIEnv *env, jobject obj, jobject activity, jboolean p_need_reload_hook, jobject p_asset_manager, jboolean p_use_apk_expansion) {
|
|
|
|
|
|
- __android_log_print(ANDROID_LOG_INFO, "godot", "**INIT EVENT! - %p\n", env);
|
|
|
-
|
|
|
initialized = true;
|
|
|
|
|
|
JavaVM *jvm;
|
|
@@ -767,8 +749,6 @@ JNIEXPORT void JNICALL Java_org_godotengine_godot_GodotLib_initialize(JNIEnv *en
|
|
|
_godot_instance = env->NewGlobalRef(activity);
|
|
|
//_godot_instance=activity;
|
|
|
|
|
|
- __android_log_print(ANDROID_LOG_INFO, "godot", "***************** HELLO FROM JNI!!!!!!!!");
|
|
|
-
|
|
|
{
|
|
|
//setup IO Object
|
|
|
|
|
@@ -776,17 +756,12 @@ JNIEXPORT void JNICALL Java_org_godotengine_godot_GodotLib_initialize(JNIEnv *en
|
|
|
if (cls) {
|
|
|
|
|
|
cls = (jclass)env->NewGlobalRef(cls);
|
|
|
- __android_log_print(ANDROID_LOG_INFO, "godot", "*******CLASS FOUND!!!");
|
|
|
}
|
|
|
|
|
|
- __android_log_print(ANDROID_LOG_INFO, "godot", "STEP2, %p", cls);
|
|
|
jfieldID fid = env->GetStaticFieldID(cls, "io", "Lorg/godotengine/godot/GodotIO;");
|
|
|
- __android_log_print(ANDROID_LOG_INFO, "godot", "STEP3 %i", fid);
|
|
|
jobject ob = env->GetStaticObjectField(cls, fid);
|
|
|
- __android_log_print(ANDROID_LOG_INFO, "godot", "STEP4, %p", ob);
|
|
|
jobject gob = env->NewGlobalRef(ob);
|
|
|
|
|
|
- __android_log_print(ANDROID_LOG_INFO, "godot", "STEP4.5, %p", gob);
|
|
|
godot_io = gob;
|
|
|
|
|
|
_on_video_init = env->GetMethodID(cls, "onVideoInit", "(Z)V");
|
|
@@ -831,9 +806,6 @@ JNIEXPORT void JNICALL Java_org_godotengine_godot_GodotLib_initialize(JNIEnv *en
|
|
|
char wd[500];
|
|
|
getcwd(wd, 500);
|
|
|
|
|
|
- __android_log_print(ANDROID_LOG_INFO, "godot", "test construction %i\n", tst.a);
|
|
|
- __android_log_print(ANDROID_LOG_INFO, "godot", "running from dir %s\n", wd);
|
|
|
-
|
|
|
//video driver is determined here, because once initialized, it can't be changed
|
|
|
// String vd = ProjectSettings::get_singleton()->get("display/driver");
|
|
|
|
|
@@ -843,7 +815,7 @@ JNIEXPORT void JNICALL Java_org_godotengine_godot_GodotLib_initialize(JNIEnv *en
|
|
|
static void _initialize_java_modules() {
|
|
|
|
|
|
if (!ProjectSettings::get_singleton()->has_setting("android/modules")) {
|
|
|
- print_line("ANDROID MODULES: Nothing to load, aborting");
|
|
|
+ print_line("Android modules: Nothing to load, aborting");
|
|
|
return;
|
|
|
}
|
|
|
|
|
@@ -853,8 +825,6 @@ static void _initialize_java_modules() {
|
|
|
return;
|
|
|
}
|
|
|
Vector<String> mods = modules.split(",", false);
|
|
|
- print_line("ANDROID MODULES : " + modules);
|
|
|
- __android_log_print(ANDROID_LOG_INFO, "godot", "mod count: %i", mods.size());
|
|
|
|
|
|
if (mods.size()) {
|
|
|
|
|
@@ -877,7 +847,7 @@ static void _initialize_java_modules() {
|
|
|
String m = mods[i];
|
|
|
//jclass singletonClass = env->FindClass(m.utf8().get_data());
|
|
|
|
|
|
- print_line("LOADING MODULE: " + m);
|
|
|
+ print_line("Loading module: " + m);
|
|
|
jstring strClassName = env->NewStringUTF(m.utf8().get_data());
|
|
|
jclass singletonClass = (jclass)env->CallObjectMethod(cls, findClass, strClassName);
|
|
|
|
|
@@ -888,7 +858,6 @@ static void _initialize_java_modules() {
|
|
|
}
|
|
|
//singletonClass=(jclass)env->NewGlobalRef(singletonClass);
|
|
|
|
|
|
- __android_log_print(ANDROID_LOG_INFO, "godot", "****^*^*?^*^*class data %x", singletonClass);
|
|
|
jmethodID initialize = env->GetStaticMethodID(singletonClass, "initialize", "(Landroid/app/Activity;)Lorg/godotengine/godot/Godot$SingletonBase;");
|
|
|
|
|
|
if (!initialize) {
|
|
@@ -897,7 +866,6 @@ static void _initialize_java_modules() {
|
|
|
ERR_CONTINUE(!initialize);
|
|
|
}
|
|
|
jobject obj = env->CallStaticObjectMethod(singletonClass, initialize, _godot_instance);
|
|
|
- __android_log_print(ANDROID_LOG_INFO, "godot", "****^*^*?^*^*class instance %x", obj);
|
|
|
jobject gob = env->NewGlobalRef(obj);
|
|
|
}
|
|
|
}
|
|
@@ -906,8 +874,6 @@ static void _initialize_java_modules() {
|
|
|
JNIEXPORT void JNICALL Java_org_godotengine_godot_GodotLib_setup(JNIEnv *env, jobject obj, jobjectArray p_cmdline) {
|
|
|
ThreadAndroid::setup_thread();
|
|
|
|
|
|
- __android_log_print(ANDROID_LOG_INFO, "godot", "**SETUP");
|
|
|
-
|
|
|
const char **cmdline = NULL;
|
|
|
int cmdlen = 0;
|
|
|
bool use_apk_expansion = false;
|
|
@@ -921,20 +887,14 @@ JNIEXPORT void JNICALL Java_org_godotengine_godot_GodotLib_setup(JNIEnv *env, jo
|
|
|
|
|
|
jstring string = (jstring)env->GetObjectArrayElement(p_cmdline, i);
|
|
|
const char *rawString = env->GetStringUTFChars(string, 0);
|
|
|
- if (!rawString) {
|
|
|
- __android_log_print(ANDROID_LOG_INFO, "godot", "cmdline arg %i is null\n", i);
|
|
|
- } else {
|
|
|
- //__android_log_print(ANDROID_LOG_INFO,"godot","cmdline arg %i is: %s\n",i,rawString);
|
|
|
-
|
|
|
- if (strcmp(rawString, "--main-pack") == 0)
|
|
|
- use_apk_expansion = true;
|
|
|
+ if (rawString && strcmp(rawString, "--main-pack") == 0) {
|
|
|
+ use_apk_expansion = true;
|
|
|
}
|
|
|
|
|
|
cmdline[i] = rawString;
|
|
|
}
|
|
|
}
|
|
|
}
|
|
|
- __android_log_print(ANDROID_LOG_INFO, "godot", "CMDLINE LEN %i - APK EXPANSION %i\n", cmdlen, int(use_apk_expansion));
|
|
|
|
|
|
Error err = Main::setup("apk", cmdlen, (char **)cmdline, false);
|
|
|
if (cmdline) {
|
|
@@ -942,10 +902,8 @@ JNIEXPORT void JNICALL Java_org_godotengine_godot_GodotLib_setup(JNIEnv *env, jo
|
|
|
}
|
|
|
|
|
|
if (err != OK) {
|
|
|
- __android_log_print(ANDROID_LOG_INFO, "godot", "*****UNABLE TO SETUP");
|
|
|
return; //should exit instead and print the error
|
|
|
}
|
|
|
- __android_log_print(ANDROID_LOG_INFO, "godot", "*****SETUP OK");
|
|
|
|
|
|
java_class_wrapper = memnew(JavaClassWrapper(_godot_instance));
|
|
|
Engine::get_singleton()->add_singleton(Engine::Singleton("JavaClassWrapper", java_class_wrapper));
|
|
@@ -954,7 +912,6 @@ JNIEXPORT void JNICALL Java_org_godotengine_godot_GodotLib_setup(JNIEnv *env, jo
|
|
|
|
|
|
JNIEXPORT void JNICALL Java_org_godotengine_godot_GodotLib_resize(JNIEnv *env, jobject obj, jint width, jint height, jboolean reload) {
|
|
|
|
|
|
- __android_log_print(ANDROID_LOG_INFO, "godot", "^_^_^_^_^ resize %lld, %i, %i\n", Thread::get_caller_id(), width, height);
|
|
|
if (os_android)
|
|
|
os_android->set_display_size(Size2(width, height));
|
|
|
|
|
@@ -968,8 +925,6 @@ JNIEXPORT void JNICALL Java_org_godotengine_godot_GodotLib_resize(JNIEnv *env, j
|
|
|
|
|
|
JNIEXPORT void JNICALL Java_org_godotengine_godot_GodotLib_newcontext(JNIEnv *env, jobject obj, bool p_32_bits) {
|
|
|
|
|
|
- __android_log_print(ANDROID_LOG_INFO, "godot", "^_^_^_^_^ newcontext %lld\n", Thread::get_caller_id());
|
|
|
-
|
|
|
if (os_android) {
|
|
|
os_android->set_context_is_16_bits(!p_32_bits);
|
|
|
}
|
|
@@ -986,7 +941,6 @@ JNIEXPORT void JNICALL Java_org_godotengine_godot_GodotLib_back(JNIEnv *env, job
|
|
|
|
|
|
JNIEXPORT void JNICALL Java_org_godotengine_godot_GodotLib_step(JNIEnv *env, jobject obj) {
|
|
|
if (step == 0) {
|
|
|
- __android_log_print(ANDROID_LOG_INFO, "godot", "**FIRST_STEP");
|
|
|
|
|
|
// Since Godot is initialized on the UI thread, _main_thread_id was set to that thread's id,
|
|
|
// but for Godot purposes, the main thread is the one running the game loop
|
|
@@ -1004,8 +958,6 @@ JNIEXPORT void JNICALL Java_org_godotengine_godot_GodotLib_step(JNIEnv *env, job
|
|
|
++step;
|
|
|
}
|
|
|
|
|
|
- //__android_log_print(ANDROID_LOG_INFO,"godot","**STEP EVENT! - %p-%i\n",env,Thread::get_caller_id());
|
|
|
-
|
|
|
os_android->process_accelerometer(accelerometer);
|
|
|
|
|
|
os_android->process_gravity(gravity);
|
|
@@ -1019,14 +971,11 @@ JNIEXPORT void JNICALL Java_org_godotengine_godot_GodotLib_step(JNIEnv *env, job
|
|
|
jclass cls = env->FindClass("org/godotengine/godot/Godot");
|
|
|
jmethodID _finish = env->GetMethodID(cls, "forceQuit", "()V");
|
|
|
env->CallVoidMethod(_godot_instance, _finish);
|
|
|
- __android_log_print(ANDROID_LOG_INFO, "godot", "**FINISH REQUEST!!! - %p-%i\n", env, Thread::get_caller_id());
|
|
|
}
|
|
|
}
|
|
|
|
|
|
JNIEXPORT void JNICALL Java_org_godotengine_godot_GodotLib_touch(JNIEnv *env, jobject obj, jint ev, jint pointer, jint count, jintArray positions) {
|
|
|
|
|
|
- //__android_log_print(ANDROID_LOG_INFO,"godot","**TOUCH EVENT! - %p-%i\n",env,Thread::get_caller_id());
|
|
|
-
|
|
|
Vector<OS_Android::TouchPos> points;
|
|
|
for (int i = 0; i < count; i++) {
|
|
|
|
|
@@ -1292,7 +1241,6 @@ static unsigned int android_get_keysym(unsigned int p_code) {
|
|
|
for (int i = 0; _ak_to_keycode[i].keysym != KEY_UNKNOWN; i++) {
|
|
|
|
|
|
if (_ak_to_keycode[i].keycode == p_code) {
|
|
|
- //print_line("outcode: " + _ak_to_keycode[i].keysym);
|
|
|
|
|
|
return _ak_to_keycode[i].keysym;
|
|
|
}
|
|
@@ -1362,8 +1310,6 @@ JNIEXPORT void JNICALL Java_org_godotengine_godot_GodotLib_key(JNIEnv *env, jobj
|
|
|
ievent->set_unicode(val);
|
|
|
ievent->set_pressed(p_pressed);
|
|
|
|
|
|
- print_line("Scancode: " + String::num(p_scancode) + ":" + String::num(ievent->get_scancode()) + " Unicode: " + String::num(val));
|
|
|
-
|
|
|
if (val == '\n') {
|
|
|
ievent->set_scancode(KEY_ENTER);
|
|
|
} else if (val == 61448) {
|
|
@@ -1527,7 +1473,7 @@ JNIEXPORT void JNICALL Java_org_godotengine_godot_GodotLib_method(JNIEnv *env, j
|
|
|
jmethodID mid = env->GetMethodID(cls, mname.ascii().get_data(), cs.ascii().get_data());
|
|
|
if (!mid) {
|
|
|
|
|
|
- print_line("FAILED GETTING METHOID " + mname);
|
|
|
+ print_line("Failed getting method ID " + mname);
|
|
|
}
|
|
|
|
|
|
s->add_method(mname, mid, types, get_jni_type(retval));
|
|
@@ -1578,16 +1524,12 @@ JNIEXPORT void JNICALL Java_org_godotengine_godot_GodotLib_calldeferred(JNIEnv *
|
|
|
int count = env->GetArrayLength(params);
|
|
|
Variant args[VARIANT_ARG_MAX];
|
|
|
|
|
|
- //print_line("Java->GD call: "+obj->get_type()+"::"+str_method+" argc "+itos(count));
|
|
|
-
|
|
|
for (int i = 0; i < MIN(count, VARIANT_ARG_MAX); i++) {
|
|
|
|
|
|
jobject obj = env->GetObjectArrayElement(params, i);
|
|
|
if (obj)
|
|
|
args[i] = _jobject_to_variant(env, obj);
|
|
|
env->DeleteLocalRef(obj);
|
|
|
-
|
|
|
- //print_line("\targ"+itos(i)+": "+Variant::get_type_name(args[i].get_type()));
|
|
|
};
|
|
|
|
|
|
obj->call_deferred(str_method, args[0], args[1], args[2], args[3], args[4]);
|