diff options
Diffstat (limited to 'platform/android')
-rw-r--r-- | platform/android/audio_driver_jandroid.cpp | 2 | ||||
-rw-r--r-- | platform/android/detect.py | 28 | ||||
-rw-r--r-- | platform/android/export/export.cpp | 46 | ||||
-rw-r--r-- | platform/android/globals/global_defaults.cpp | 4 | ||||
-rw-r--r-- | platform/android/godot_android.cpp | 8 | ||||
-rw-r--r-- | platform/android/java_glue.cpp | 16 | ||||
-rw-r--r-- | platform/android/os_android.cpp | 8 | ||||
-rw-r--r-- | platform/android/os_android.h | 1 |
8 files changed, 69 insertions, 44 deletions
diff --git a/platform/android/audio_driver_jandroid.cpp b/platform/android/audio_driver_jandroid.cpp index 7b2127a211..cf1ea169b3 100644 --- a/platform/android/audio_driver_jandroid.cpp +++ b/platform/android/audio_driver_jandroid.cpp @@ -29,7 +29,7 @@ /*************************************************************************/ #include "audio_driver_jandroid.h" -#include "global_config.h" +#include "project_settings.h" #include "os/os.h" #include "thread_jandroid.h" diff --git a/platform/android/detect.py b/platform/android/detect.py index 7508c9ed0e..55b7052393 100644 --- a/platform/android/detect.py +++ b/platform/android/detect.py @@ -87,20 +87,6 @@ def configure(env): env['SPAWN'] = mySpawn - ## Build type - - if (env["target"].startswith("release")): - env.Append(LINKFLAGS=['-O2']) - env.Append(CPPFLAGS=['-O2', '-DNDEBUG', '-ffast-math', '-funsafe-math-optimizations', '-fomit-frame-pointer']) - if (can_vectorize): - env.Append(CPPFLAGS=['-ftree-vectorize']) - if (env["target"] == "release_debug"): - env.Append(CPPFLAGS=['-DDEBUG_ENABLED']) - elif (env["target"] == "debug"): - env.Append(LINKFLAGS=['-O0']) - env.Append(CPPFLAGS=['-O0', '-D_DEBUG', '-UNDEBUG', '-DDEBUG_ENABLED', - '-DDEBUG_MEMORY_ENABLED', '-g', '-fno-limit-debug-info']) - ## Architecture if env['android_arch'] not in ['armv7', 'armv6', 'x86']: @@ -133,6 +119,20 @@ def configure(env): else: env.extra_suffix = ".armv7" + env.extra_suffix + ## Build type + + if (env["target"].startswith("release")): + env.Append(LINKFLAGS=['-O2']) + env.Append(CPPFLAGS=['-O2', '-DNDEBUG', '-ffast-math', '-funsafe-math-optimizations', '-fomit-frame-pointer']) + if (can_vectorize): + env.Append(CPPFLAGS=['-ftree-vectorize']) + if (env["target"] == "release_debug"): + env.Append(CPPFLAGS=['-DDEBUG_ENABLED']) + elif (env["target"] == "debug"): + env.Append(LINKFLAGS=['-O0']) + env.Append(CPPFLAGS=['-O0', '-D_DEBUG', '-UNDEBUG', '-DDEBUG_ENABLED', + '-DDEBUG_MEMORY_ENABLED', '-g', '-fno-limit-debug-info']) + ## Compiler configuration env['SHLIBSUFFIX'] = '.so' diff --git a/platform/android/export/export.cpp b/platform/android/export/export.cpp index 95f48521f8..97f239c4da 100644 --- a/platform/android/export/export.cpp +++ b/platform/android/export/export.cpp @@ -31,13 +31,13 @@ #include "editor/editor_export.h" #include "editor/editor_node.h" #include "editor/editor_settings.h" -#include "global_config.h" #include "io/marshalls.h" #include "io/zip_io.h" #include "os/file_access.h" #include "os/os.h" #include "platform/android/logo.gen.h" #include "platform/android/run_icon.gen.h" +#include "project_settings.h" #include "version.h" #include <string.h> #if 0 @@ -555,8 +555,8 @@ void EditorExportPlatformAndroid::_fix_resources(Vector<uint8_t>& p_manifest) { String lang = str.substr(str.find_last("-")+1,str.length()).replace("-","_"); String prop = "application/config/name_"+lang; - if (GlobalConfig::get_singleton()->has(prop)) { - str = GlobalConfig::get_singleton()->get(prop); + if (ProjectSettings::get_singleton()->has(prop)) { + str = ProjectSettings::get_singleton()->get(prop); } else { str = get_project_name(); } @@ -628,7 +628,7 @@ String EditorExportPlatformAndroid::get_project_name() const { if (this->name!="") { aname=this->name; } else { - aname = GlobalConfig::get_singleton()->get("application/config/name"); + aname = ProjectSettings::get_singleton()->get("application/config/name"); } @@ -1144,7 +1144,7 @@ Error EditorExportPlatformAndroid::export_project(const String& p_path, bool p_d if (!found) { - String appicon = GlobalConfig::get_singleton()->get("application/config/icon"); + String appicon = ProjectSettings::get_singleton()->get("application/config/icon"); if (appicon!="" && appicon.ends_with(".png")) { FileAccess*f = FileAccess::open(appicon,FileAccess::READ); if (f) { @@ -1763,7 +1763,7 @@ Error EditorExportPlatformAndroid::run(int p_device, int p_flags) { String EditorExportPlatformAndroid::get_package_name() { String pname = package; - String basename = GlobalConfig::get_singleton()->get("application/config/name"); + String basename = ProjectSettings::get_singleton()->get("application/config/name"); basename=basename.to_lower(); String name; @@ -2208,7 +2208,7 @@ class EditorExportAndroid : public EditorExportPlatform { if (p_name != "") { aname = p_name; } else { - aname = GlobalConfig::get_singleton()->get("application/config/name"); + aname = ProjectSettings::get_singleton()->get("application/config/name"); } if (aname == "") { @@ -2221,7 +2221,7 @@ class EditorExportAndroid : public EditorExportPlatform { String get_package_name(const String &p_package) { String pname = p_package; - String basename = GlobalConfig::get_singleton()->get("application/config/name"); + String basename = ProjectSettings::get_singleton()->get("application/config/name"); basename = basename.to_lower(); String name; @@ -2537,6 +2537,10 @@ class EditorExportAndroid : public EditorExportPlatform { }*/ } + if (tname == "uses-feature" && /*nspace=="android" &&*/ attrname == "glEsVersion") { + print_line("version number: " + itos(decode_uint32(&p_manifest[iofs + 16]))); + } + if (tname == "uses-permission" && /*nspace=="android" &&*/ attrname == "name") { if (value.begins_with("godot.custom")) { @@ -2751,8 +2755,8 @@ class EditorExportAndroid : public EditorExportPlatform { String lang = str.substr(str.find_last("-") + 1, str.length()).replace("-", "_"); String prop = "application/config/name_" + lang; - if (GlobalConfig::get_singleton()->has(prop)) { - str = GlobalConfig::get_singleton()->get(prop); + if (ProjectSettings::get_singleton()->has(prop)) { + str = ProjectSettings::get_singleton()->get(prop); } else { str = get_project_name(package_name); } @@ -2826,11 +2830,17 @@ public: public: virtual void get_preset_features(const Ref<EditorExportPreset> &p_preset, List<String> *r_features) { - r_features->push_back("etc"); + int api = p_preset->get("graphics/api"); + if (api == 0) + r_features->push_back("etc"); + else + r_features->push_back("etc2"); } virtual void get_export_options(List<ExportOption> *r_options) { + r_options->push_back(ExportOption(PropertyInfo(Variant::INT, "graphics/api", PROPERTY_HINT_ENUM, "OpenGL ES 2.0,OpenGL ES 3.0"), 1)); + r_options->push_back(ExportOption(PropertyInfo(Variant::BOOL, "graphics/32_bits_framebuffer"), true)); r_options->push_back(ExportOption(PropertyInfo(Variant::BOOL, "one_click_deploy/clear_previous_install"), true)); r_options->push_back(ExportOption(PropertyInfo(Variant::STRING, "custom_package/debug", PROPERTY_HINT_GLOBAL_FILE, "apk"), "")); r_options->push_back(ExportOption(PropertyInfo(Variant::STRING, "custom_package/release", PROPERTY_HINT_GLOBAL_FILE, "apk"), "")); @@ -2843,7 +2853,6 @@ public: r_options->push_back(ExportOption(PropertyInfo(Variant::BOOL, "package/signed"), true)); r_options->push_back(ExportOption(PropertyInfo(Variant::BOOL, "architecture/arm"), true)); r_options->push_back(ExportOption(PropertyInfo(Variant::BOOL, "architecture/x86"), false)); - r_options->push_back(ExportOption(PropertyInfo(Variant::BOOL, "screen/use_32_bits_view"), true)); r_options->push_back(ExportOption(PropertyInfo(Variant::BOOL, "screen/immersive_mode"), true)); r_options->push_back(ExportOption(PropertyInfo(Variant::INT, "screen/orientation", PROPERTY_HINT_ENUM, "Landscape,Portrait"), 0)); r_options->push_back(ExportOption(PropertyInfo(Variant::BOOL, "screen/support_small"), true)); @@ -2875,6 +2884,11 @@ public: virtual String get_name() const { return "Android"; } + + virtual String get_os_name() const { + return "Android"; + } + virtual Ref<Texture> get_logo() const { return logo; } @@ -3219,7 +3233,7 @@ public: if (!found) { - String appicon = GlobalConfig::get_singleton()->get("application/config/icon"); + String appicon = ProjectSettings::get_singleton()->get("application/config/icon"); if (appicon != "" && appicon.ends_with(".png")) { FileAccess *f = FileAccess::open(appicon, FileAccess::READ); if (f) { @@ -3527,6 +3541,12 @@ public: return OK; } + virtual void get_platform_features(List<String> *r_features) { + + r_features->push_back("mobile"); + r_features->push_back("Android"); + } + EditorExportAndroid() { Ref<Image> img = memnew(Image(_android_logo)); diff --git a/platform/android/globals/global_defaults.cpp b/platform/android/globals/global_defaults.cpp index f708ad5dd7..6bdc6b337c 100644 --- a/platform/android/globals/global_defaults.cpp +++ b/platform/android/globals/global_defaults.cpp @@ -28,7 +28,7 @@ /* SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. */ /*************************************************************************/ #include "global_defaults.h" -#include "global_config.h" +#include "project_settings.h" void register_android_global_defaults() { @@ -37,6 +37,6 @@ void register_android_global_defaults() { GLOBAL_DEF("display.Android/driver","GLES2"); //GLOBAL_DEF("rasterizer.Android/trilinear_mipmap_filter",false); - GlobalConfig::get_singleton()->set_custom_property_info("display.Android/driver",PropertyInfo(Variant::STRING,"display.Android/driver",PROPERTY_HINT_ENUM,"GLES2")); + ProjectSettings::get_singleton()->set_custom_property_info("display.Android/driver",PropertyInfo(Variant::STRING,"display.Android/driver",PROPERTY_HINT_ENUM,"GLES2")); */ } diff --git a/platform/android/godot_android.cpp b/platform/android/godot_android.cpp index 3a21f9212f..4e4fd8074c 100644 --- a/platform/android/godot_android.cpp +++ b/platform/android/godot_android.cpp @@ -36,7 +36,7 @@ #include <GLES2/gl2.h> #include "file_access_android.h" -#include "global_config.h" +#include "project_settings.h" #include "main/main.h" #include "os_android.h" #include <android/log.h> @@ -623,7 +623,7 @@ static void engine_handle_cmd(struct android_app *app, int32_t cmd) { #else Error err = Main::setup("apk", 0, NULL); - String modules = GlobalConfig::get_singleton()->get("android/modules"); + String modules = ProjectSettings::get_singleton()->get("android/modules"); Vector<String> mods = modules.split(",", false); mods.push_back("GodotOS"); __android_log_print(ANDROID_LOG_INFO, "godot", "mod count: %i", mods.size()); @@ -859,7 +859,7 @@ JNIEXPORT void JNICALL Java_org_godotengine_godot_Godot_registerSingleton(JNIEnv s->set_instance(env->NewGlobalRef(p_object)); jni_singletons[singname] = s; - GlobalConfig::get_singleton()->add_singleton(GlobalConfig::Singleton(singname, s)); + ProjectSettings::get_singleton()->add_singleton(ProjectSettings::Singleton(singname, s)); } static Variant::Type get_jni_type(const String &p_type) { @@ -926,7 +926,7 @@ JNIEXPORT jstring JNICALL Java_org_godotengine_godot_Godot_getGlobal(JNIEnv *env String js = env->GetStringUTFChars(path, NULL); - return env->NewStringUTF(GlobalConfig::get_singleton()->get(js).operator String().utf8().get_data()); + return env->NewStringUTF(ProjectSettings::get_singleton()->get(js).operator String().utf8().get_data()); } JNIEXPORT void JNICALL Java_org_godotengine_godot_Godot_registerMethod(JNIEnv *env, jobject obj, jstring sname, jstring name, jstring ret, jobjectArray args) { diff --git a/platform/android/java_glue.cpp b/platform/android/java_glue.cpp index d4bd443689..bd234fa4a2 100644 --- a/platform/android/java_glue.cpp +++ b/platform/android/java_glue.cpp @@ -36,7 +36,7 @@ #include "dir_access_jandroid.h" #include "file_access_android.h" #include "file_access_jandroid.h" -#include "global_config.h" +#include "project_settings.h" #include "java_class_wrapper.h" #include "main/input_default.h" #include "main/main.h" @@ -883,7 +883,7 @@ JNIEXPORT void JNICALL Java_org_godotengine_godot_GodotLib_initialize(JNIEnv *en __android_log_print(ANDROID_LOG_INFO, "godot", "*****SETUP OK"); //video driver is determined here, because once initialized, it can't be changed - String vd = GlobalConfig::get_singleton()->get("display/driver"); + String vd = ProjectSettings::get_singleton()->get("display/driver"); env->CallVoidMethod(_godot_instance, _on_video_init, (jboolean) true); @@ -930,12 +930,12 @@ JNIEXPORT void JNICALL Java_org_godotengine_godot_GodotLib_back(JNIEnv *env, job static void _initialize_java_modules() { - if (!GlobalConfig::get_singleton()->has("android/modules")) { + if (!ProjectSettings::get_singleton()->has("android/modules")) { print_line("ANDROID MODULES: Nothing to load, aborting"); return; } - String modules = GlobalConfig::get_singleton()->get("android/modules"); + String modules = ProjectSettings::get_singleton()->get("android/modules"); modules = modules.strip_edges(); if (modules == String()) { return; @@ -1005,7 +1005,7 @@ JNIEXPORT void JNICALL Java_org_godotengine_godot_GodotLib_step(JNIEnv *env, job // because of the way android forces you to do everything with threads java_class_wrapper = memnew(JavaClassWrapper(_godot_instance)); - GlobalConfig::get_singleton()->add_singleton(GlobalConfig::Singleton("JavaClassWrapper", java_class_wrapper)); + ProjectSettings::get_singleton()->add_singleton(ProjectSettings::Singleton("JavaClassWrapper", java_class_wrapper)); _initialize_java_modules(); Main::setup2(); @@ -1504,8 +1504,8 @@ JNIEXPORT void JNICALL Java_org_godotengine_godot_GodotLib_singleton(JNIEnv *env s->set_instance(env->NewGlobalRef(p_object)); jni_singletons[singname] = s; - GlobalConfig::get_singleton()->add_singleton(GlobalConfig::Singleton(singname, s)); - GlobalConfig::get_singleton()->set(singname, s); + ProjectSettings::get_singleton()->add_singleton(ProjectSettings::Singleton(singname, s)); + ProjectSettings::get_singleton()->set(singname, s); } static Variant::Type get_jni_type(const String &p_type) { @@ -1578,7 +1578,7 @@ JNIEXPORT jstring JNICALL Java_org_godotengine_godot_GodotLib_getGlobal(JNIEnv * String js = env->GetStringUTFChars(path, NULL); - return env->NewStringUTF(GlobalConfig::get_singleton()->get(js).operator String().utf8().get_data()); + return env->NewStringUTF(ProjectSettings::get_singleton()->get(js).operator String().utf8().get_data()); } JNIEXPORT void JNICALL Java_org_godotengine_godot_GodotLib_method(JNIEnv *env, jobject obj, jstring sname, jstring name, jstring ret, jobjectArray args) { diff --git a/platform/android/os_android.cpp b/platform/android/os_android.cpp index 9010b9e7da..ad46ceb43f 100644 --- a/platform/android/os_android.cpp +++ b/platform/android/os_android.cpp @@ -29,8 +29,8 @@ /*************************************************************************/ #include "os_android.h" -#include "core/global_config.h" #include "core/io/file_access_buffered_fa.h" +#include "core/project_settings.h" #include "drivers/gles3/rasterizer_gles3.h" #include "drivers/unix/dir_access_unix.h" #include "drivers/unix/file_access_unix.h" @@ -677,7 +677,7 @@ String OS_Android::get_data_dir() const { } return "."; - //return GlobalConfig::get_singleton()->get_singleton_object("GodotOS")->call("get_data_dir"); + //return ProjectSettings::get_singleton()->get_singleton_object("GodotOS")->call("get_data_dir"); } void OS_Android::set_screen_orientation(ScreenOrientation p_orientation) { @@ -741,6 +741,10 @@ String OS_Android::get_joy_guid(int p_device) const { return input->get_joy_guid_remapped(p_device); } +bool OS_Android::_check_internal_feature_support(const String &p_feature) { + return p_feature == "mobile" || p_feature == "etc" || p_feature == "etc2"; //TODO support etc2 only if GLES3 driver is selected +} + OS_Android::OS_Android(GFXInitFunc p_gfx_init_func, void *p_gfx_init_ud, OpenURIFunc p_open_uri_func, GetDataDirFunc p_get_data_dir_func, GetLocaleFunc p_get_locale_func, GetModelFunc p_get_model_func, GetScreenDPIFunc p_get_screen_dpi_func, ShowVirtualKeyboardFunc p_show_vk, HideVirtualKeyboardFunc p_hide_vk, SetScreenOrientationFunc p_screen_orient, GetUniqueIDFunc p_get_unique_id, GetSystemDirFunc p_get_sdir_func, VideoPlayFunc p_video_play_func, VideoIsPlayingFunc p_video_is_playing_func, VideoPauseFunc p_video_pause_func, VideoStopFunc p_video_stop_func, SetKeepScreenOnFunc p_set_keep_screen_on_func, AlertFunc p_alert_func, bool p_use_apk_expansion) { use_apk_expansion = p_use_apk_expansion; diff --git a/platform/android/os_android.h b/platform/android/os_android.h index 897c71a7df..393bc68d8a 100644 --- a/platform/android/os_android.h +++ b/platform/android/os_android.h @@ -243,6 +243,7 @@ public: virtual String get_joy_guid(int p_device) const; void joy_connection_changed(int p_device, bool p_connected, String p_name); + virtual bool _check_internal_feature_support(const String &p_feature); OS_Android(GFXInitFunc p_gfx_init_func, void *p_gfx_init_ud, OpenURIFunc p_open_uri_func, GetDataDirFunc p_get_data_dir_func, GetLocaleFunc p_get_locale_func, GetModelFunc p_get_model_func, GetScreenDPIFunc p_get_screen_dpi_func, ShowVirtualKeyboardFunc p_show_vk, HideVirtualKeyboardFunc p_hide_vk, SetScreenOrientationFunc p_screen_orient, GetUniqueIDFunc p_get_unique_id, GetSystemDirFunc p_get_sdir_func, VideoPlayFunc p_video_play_func, VideoIsPlayingFunc p_video_is_playing_func, VideoPauseFunc p_video_pause_func, VideoStopFunc p_video_stop_func, SetKeepScreenOnFunc p_set_keep_screen_on_func, AlertFunc p_alert_func, bool p_use_apk_expansion); ~OS_Android(); }; |